Copy disabled (too large)
Download .txt
Showing preview only (11,254K chars total). Download the full file to get everything.
Repository: Z-Siqi/Clash-for-Windows_Chinese
Branch: main
Commit: d530262f46af
Files: 81
Total size: 48.1 MB
Directory structure:
gitextract_qv68qdhq/
├── .github/
│ ├── FUNDING.yml
│ ├── ISSUE_TEMPLATE/
│ │ └── issues-template-and-rules.yaml
│ └── workflows/
│ └── CloseStaleIssues.yml
├── .gitignore
├── CFW/
│ └── README.md
├── README.md
├── app/
│ ├── README.md
│ ├── build_default.bat
│ ├── build_linux_arm64.ps1
│ ├── build_linux_x64.ps1
│ ├── build_win32-ia32.ps1
│ ├── build_win32_arm64.ps1
│ ├── build_win_x64.ps1
│ ├── clash_core/
│ │ ├── linux-arm64/
│ │ │ └── static/
│ │ │ └── files/
│ │ │ ├── default/
│ │ │ │ └── Country.mmdb
│ │ │ └── linux/
│ │ │ └── arm64/
│ │ │ ├── clash-linux
│ │ │ ├── clash-linux.sign
│ │ │ └── service/
│ │ │ └── clash-core-service
│ │ ├── linux-x64/
│ │ │ └── static/
│ │ │ └── files/
│ │ │ ├── default/
│ │ │ │ └── Country.mmdb
│ │ │ └── linux/
│ │ │ └── x64/
│ │ │ ├── clash-linux
│ │ │ ├── clash-linux.sign
│ │ │ └── service/
│ │ │ └── clash-core-service
│ │ ├── win32-arm64/
│ │ │ └── static/
│ │ │ └── files/
│ │ │ ├── default/
│ │ │ │ └── Country.mmdb
│ │ │ └── win/
│ │ │ ├── arm64/
│ │ │ │ └── clash-win-arm64.exe.sign
│ │ │ └── common/
│ │ │ ├── schtasks.xml
│ │ │ ├── service.yml
│ │ │ └── tun2socks/
│ │ │ ├── add_tap_device.bat
│ │ │ ├── amd64/
│ │ │ │ ├── OemVista.inf
│ │ │ │ ├── tap0901.cat
│ │ │ │ └── tap0901.sys
│ │ │ ├── find_tap_device_name.bat
│ │ │ ├── i386/
│ │ │ │ ├── OemVista.inf
│ │ │ │ ├── tap0901.cat
│ │ │ │ └── tap0901.sys
│ │ │ └── remove_tap_device.bat
│ │ ├── win32-ia32/
│ │ │ └── static/
│ │ │ └── files/
│ │ │ ├── default/
│ │ │ │ └── Country.mmdb
│ │ │ └── win/
│ │ │ ├── common/
│ │ │ │ ├── schtasks.xml
│ │ │ │ ├── service.yml
│ │ │ │ └── tun2socks/
│ │ │ │ ├── add_tap_device.bat
│ │ │ │ ├── amd64/
│ │ │ │ │ ├── OemVista.inf
│ │ │ │ │ ├── tap0901.cat
│ │ │ │ │ └── tap0901.sys
│ │ │ │ ├── find_tap_device_name.bat
│ │ │ │ ├── i386/
│ │ │ │ │ ├── OemVista.inf
│ │ │ │ │ ├── tap0901.cat
│ │ │ │ │ └── tap0901.sys
│ │ │ │ └── remove_tap_device.bat
│ │ │ └── ia32/
│ │ │ └── clash-win32.exe.sign
│ │ └── win_x64/
│ │ └── static/
│ │ └── files/
│ │ ├── default/
│ │ │ └── Country.mmdb
│ │ └── win/
│ │ ├── common/
│ │ │ ├── schtasks.xml
│ │ │ ├── service.yml
│ │ │ └── tun2socks/
│ │ │ ├── add_tap_device.bat
│ │ │ ├── amd64/
│ │ │ │ ├── OemVista.inf
│ │ │ │ ├── tap0901.cat
│ │ │ │ └── tap0901.sys
│ │ │ ├── find_tap_device_name.bat
│ │ │ ├── i386/
│ │ │ │ ├── OemVista.inf
│ │ │ │ ├── tap0901.cat
│ │ │ │ └── tap0901.sys
│ │ │ └── remove_tap_device.bat
│ │ └── x64/
│ │ └── clash-win64.exe.sign
│ └── main/
│ ├── ABOUT/
│ │ ├── LICENSE.electron.txt
│ │ └── state.txt
│ ├── dist/
│ │ └── electron/
│ │ ├── 287.js
│ │ ├── 295.js
│ │ ├── 585.js
│ │ ├── editor.worker.js
│ │ ├── index.html
│ │ ├── main.js
│ │ ├── renderer.js
│ │ └── renderer.js.LICENSE.txt
│ └── package.json
├── chinese_file/
│ ├── Auto/
│ │ ├── main-chinese.txt
│ │ └── renderer-chinese.txt
│ ├── Manual-Chinese/
│ │ ├── Clash_Sinicization_Comparison_Table_Old
│ │ ├── main
│ │ └── renderer
│ ├── Sinicization_files/
│ │ ├── main.js
│ │ └── renderer.js
│ └── packing_script.iss
├── image/
│ └── This folder stores pictures
└── update
================================================
FILE CONTENTS
================================================
================================================
FILE: .github/FUNDING.yml
================================================
# These are supported funding model platforms
github: Z-Siqi
================================================
FILE: .github/ISSUE_TEMPLATE/issues-template-and-rules.yaml
================================================
name: Issues Release Rule
description: 通过这个模板发布你的问题
body:
- type: markdown
attributes:
value: |
请遵循模板发布问题
- type: textarea
id: text
attributes:
label: 你的问题/建议/想说的内容是什么?
description: 提出问题前,先看看主页中的 "下载前你需要知晓的内容:" <br/> 发布问题前请检查是否有重复的 <br/> 如果是反馈bug,请先确定是由汉化导致的,否则请在原版的Issues提交问题
placeholder: "说些什么?建议尽可能清晰的描述问题"
validations:
required: true
- type: textarea
id: version
attributes:
label: 版本
description: 这个问题发生在哪个版本? <br/> 如果是建议,汉化或故障请填写当前最新的版本号
placeholder: "no-version"
validations:
required: true
================================================
FILE: .github/workflows/CloseStaleIssues.yml
================================================
name: "Close Stale Issues"
on:
schedule:
- cron: "0 0 * * *"
jobs:
stale:
runs-on: ubuntu-latest
steps:
- uses: actions/stale@v4
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
days-before-stale: 14
days-before-close: 14
exempt-issue-labels: 'bug, Put on Hold, In Processing, Investigating'
close-issue-reason: 'not_planned'
================================================
FILE: .gitignore
================================================
/.vs
/app/output
================================================
FILE: CFW/README.md
================================================
### 众所周知 Clash for Windows 原版仓库已经删库跑路,~这个库将再无活动的必要,因此该仓库将被存档~
**考虑到因为原版的online资料都已经缺失,部分维护仍然是必要的**
***
**以下是一些原版包的存档**
* https://github.com/Z-Siqi/Clash-for-Windows_Chinese/releases/tag/CFW
================================================
FILE: README.md
================================================
# 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">
### Clash 汉化版
**提供clash for windows的汉化版, 汉化补丁以及汉化版Clash安装程序**
效果图
[](https://github.com/Z-Siqi/Clash-for-Windows_Chinese/releases/)
**支持的clash版本:**
[0.15.3](https://github.com/Z-Siqi/Clash-for-Windows_Chinese/releases/tag/CFW-V0.15.3_CN-V4)
~
[当前的最新兼容](https://github.com/Z-Siqi/Clash-for-Windows_Chinese/releases/latest)
**基本特征&介绍:**
* 使用安装程序(Clash.for.Windows.Setup. ** . ** . ** .exe)安装的汉化版CFW将劫持更新,之后可直接通过应用内置的更新方式进行汉化版/软件更新
* 使用安装包(Clash.for.Windows- ** . ** . ** -win.7z)请不要在解压时选择解压到当前文件夹,否则软件相关的所有文件将放到当前所在文件夹
* ~app.asar需要替换掉对应版本的原版app.asar以完成汉化~
* ~使用7z格式压缩包(app.7z)需要先进行解压,然后提取里面的app.asar并替换掉原有文件以完成汉化,即在节省流量~
**<details><summary>下载前你需要知晓的内容:</summary>**
~**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)**~
**下载将代表你对以下内容无任何异议**
**非官方版本,Unofficial!**
*简单来说,这个库提供的Clash for Windows是修改过的,请在向原版Clash for Windows反馈漏洞前先更换回原版*
**修改的方式/内容大致说明列表 (可能不适用于 Optimize 版本)**
对Clash for Windows进行的修改:
1, 修改"app.asar"文件中的"renderer.js"
2, 修改"app.asar"文件中的"main.js"
3, 修改"app.asar"文件中的其它内容(具体参见 https://github.com/Z-Siqi/Clash-for-Windows_Chinese/tree/main/app 目录下的所有 .md 文件)
对Clash for Windows植入的第三方链接:
1, https://github.com/Z-Siqi/Clash-for-Windows_Chinese-Attached
对app.asar替换的文件:
1, app.asar\dist\electron\static\*
汉化的方式
通过Notepad++进行替换 (已被淘汰)
手动替换用表位置:
Clash-for-Windows_Chinese/chinese_file/Clash_Sinicization_Comparison_Table
下载链接:
https://notepad-plus-plus.org/downloads/
通过Replace Pioneer的Batch Rnuuer工具配合替换表进行批量替换
替换表的位置:
Clash-for-Windows_Chinese/chinese_file/Auto/main-chinese
Clash-for-Windows_Chinese/chinese_file/Auto/renderer-chinese
下载链接
https://www.mind-pioneer.com/
zh-cn.js的汉化方式:
将文件中的"后"改为"前"
在app.asar中的位置:
app.asar\node_modules\moment\locale\zh-cn.js
封包方式
安装程序的封包程序:
简易封包工具_3.2.0.1.exe (已被淘汰)
Inno Setup Compiler
下载链接:
https://jrsoftware.org/isdl.php
.7z扩展名的封包程序:
7-zip (已弃用)
下载链接:
https://7-zip.org/
NanaZip
下载链接:
In the Microsoft Store
**Optimize (优化) 版本**
源代码:https://github.com/Z-Siqi/Clash-for-Windows_Chinese/tree/main/app
**重要内容**
----------------------------------------------------
* Important, You MUST agree!
* 此项目不为中国大陆地区提供任何帮助与支持
* 赞助商的一切内容与该库无关
* 该库不承担由使用者造成的任何行为
* 该库的所有内容仅存在于GitHub
* 此汉化版适用于Clash for Windows免责声明的 1 ~ 6 条
----------------------------------------------------
**免责声明**
免责声明如下:
1. 本软件仅供学习和研究网络技术之用,用户必须遵守所在地区的法律法规,不得用于非法用途,本软件不对任何人的行为负责。
2. 用户在使用本软件时必须严格遵守所在国家/地区的法律、法规和政策。 因违反有关法律、法规和政策而导致的任何后果或责任由用户自行承担。
3. 本软件不负责传输内容。 因此,如因使用本软件而产生任何问题或后果,由用户自行承担全部责任。
4. 如本软件违反用户所在国家/地区的任何法律法规,用户必须立即停止使用并承担相应的法律责任。
5. 用户在使用本软件时,即承认并同意本软件不能保证网络的稳定性、准确性、及时性和安全性。 因网络拥塞、防火墙限制、DNS污染、运营商干扰等原因造成的连接问题或无法连接,本软件不承担任何责任。
6. 本软件不提供技术支持,对因用户使用本软件而造成的任何直接或间接损失,包括但不限于财产损失、数据丢失及其他形式的损失不承担任何责任。
</details>
***
### 讨论/Discussions
**[参与或发起讨论](https://github.com/Z-Siqi/Clash-for-Windows_Chinese/discussions)**
### 参与该项目的开发/工作
*通过提出 Pull Request 将你的维护添加到下一个版本的更新里并成为这个库的共同维护者*
**[这些issues非常需要您的帮助/贡献](https://github.com/Z-Siqi/Clash-for-Windows_Chinese/issues?q=label%3A%22Need+Help%22+)**
***
#### 赞助商的广告
[](https://live.cute-cloud.de/register?code=uIyXpA5O)
[[CUTECLOUD](https://live.cute-cloud.de/register?code=uIyXpA5O)] 多年老牌机场,有试用,线路优秀,解锁全面,并提供丰富的共享账户。速度与稳定性很好,Youtube全天8K无压。
[点击此处或图片直达](https://live.cute-cloud.de/register?code=uIyXpA5O)
***
### 快速导航
[前往汉化下载界面](https://github.com/Z-Siqi/Clash-for-Windows_Chinese/releases)
[Clash for Windows 线上文档副本](https://github.com/Z-Siqi/Clash-for-Windows_Chinese/wiki)
~[前往原版Clash for Windows下载界面](https://github.com/Fndroid/clash_for_windows_pkg/releases)~
#### 能够解压7z格式的软件
[NanaZip](https://github.com/M2Team/NanaZip) *(兼容Windows11)*
[7-Zip](https://www.7-zip.org/)
[WinRAR](https://www.rarlab.com/)
***
### 如果你喜欢的话,可以考虑[向我赞助](https://github.com/sponsors/Z-Siqi)
================================================
FILE: app/README.md
================================================
### Guide
* Extract these files in ONE folder
* Run `build_default_.bat` to quick generate runnable software (Windows x64)
* Run `xxx.ps1` to build the program (linux, arm, etc.)
================================================
FILE: app/build_default.bat
================================================
@echo off
cd /d "%~dp0"
powershell.exe -NoProfile -ExecutionPolicy Bypass -File "%~dp0\build_win_x64.ps1" %*
================================================
FILE: app/build_linux_arm64.ps1
================================================
# Requires PowerShell 3.0+
# Script Directory
$scriptDir = $PSScriptRoot
$staticDir = Join-Path $scriptDir 'clash_core\linux-arm64\static'
$mainDir = Join-Path $scriptDir 'main'
$logoFile = Join-Path $scriptDir 'logo.ico'
$outputDir = Join-Path $scriptDir 'output'
$outWinDir = Join-Path $outputDir 'cfw-linux-arm64'
Write-Host 'Checking environment...'
# Checking static
if (-not (Test-Path $staticDir)) {
Write-Error 'Failed! "static" folder not found!'
Read-Host 'Press Enter to exit'
exit 1
}
# Checking main
if (-not (Test-Path $mainDir)) {
Write-Error 'Failed! "main" folder not found!'
Read-Host 'Press Enter to exit'
exit 1
}
# Checking logo.ico
if (-not (Test-Path $logoFile)) {
Write-Error 'Failed! "logo.ico" not found!'
Read-Host 'Press Enter to exit'
exit 1
}
# Checking npm
& npm --version > $null 2>&1
if ($LASTEXITCODE -eq 0) {
Write-Host 'npm is detected...'
} else {
Write-Error 'Failed! No npm command!'
Write-Host 'Install Node.js might fix this.'
Read-Host 'Press Enter to exit'
exit 1
}
# Checking electron-packager
& npx electron-packager --version > $null 2>&1
if ($LASTEXITCODE -eq 0) {
Write-Host 'electron-packager is detected...'
} else {
Write-Warning 'Failed! No electron-packager command!'
Write-Host 'But npm is detected!'
Read-Host 'Press Enter to install electron-packager or Ctrl+C to exit'
npm install -g electron-packager
}
# Checking asar
& npx asar --version > $null 2>&1
if ($LASTEXITCODE -eq 0) {
Write-Host 'asar is detected...'
} else {
Write-Warning 'Failed! No asar command!'
Write-Host 'But npm is detected!'
Read-Host 'Press Enter to install asar or Ctrl+C to exit'
npm install -g asar
}
Write-Host 'Success!'
# Clear old output
if (Test-Path $outWinDir) {
Write-Host 'Detected old output!'
Read-Host 'Press Enter to delete and rebuild'
Remove-Item -Recurse -Force $outWinDir
Write-Host 'Success!'
}
# Make sure output dir is existed
if (-not (Test-Path $outputDir)) {
New-Item -ItemType Directory -Path $outputDir | Out-Null
}
# Start packaging
Write-Host 'Starting electron-packager...'
& npx electron-packager `
"`"$mainDir`"" "cfw" `
--platform=linux --arch=arm64 --electron-version=34.0.0 `
--icon="`"$logoFile`"" --out="`"$outputDir`"" --prune=true --asar
if ($LASTEXITCODE -ne 0) {
Write-Error 'electron-packager Failed!'
exit 1
}
Write-Host 'Waiting app building...'
Write-Host 'Note: If wait too long, it may mean that the execution has failed. Press Ctrl+C to terminate.'
# Wait for the program
$exePath = Join-Path $outWinDir 'cfw'
while (-not (Test-Path $exePath)) {
Start-Sleep -Seconds 5
}
Write-Host 'Success!'
# Adding files
Write-Host 'Adding proxy core files...'
Start-Sleep -Seconds 1
$destStatic = Join-Path $outWinDir 'resources\static'
# Make sure resources dir is existed
$resourcesDir = Split-Path $destStatic -Parent
if (-not (Test-Path $resourcesDir)) {
New-Item -ItemType Directory -Path $resourcesDir | Out-Null
}
# Make sure static dir is existed
if (-not (Test-Path $destStatic)) {
New-Item -ItemType Directory -Path $destStatic | Out-Null
}
# Then copy it
Copy-Item -Path "$staticDir\*" -Destination $destStatic -Recurse -Force
Write-Host 'Success!'
Write-Host 'Finish!'
Read-Host 'Press Enter to exit'
================================================
FILE: app/build_linux_x64.ps1
================================================
# Requires PowerShell 3.0+
# Script Directory
$scriptDir = $PSScriptRoot
$staticDir = Join-Path $scriptDir 'clash_core\linux-x64\static'
$mainDir = Join-Path $scriptDir 'main'
$logoFile = Join-Path $scriptDir 'logo.ico'
$outputDir = Join-Path $scriptDir 'output'
$outWinDir = Join-Path $outputDir 'cfw-linux-x64'
Write-Host 'Checking environment...'
# Checking static
if (-not (Test-Path $staticDir)) {
Write-Error 'Failed! "static" folder not found!'
Read-Host 'Press Enter to exit'
exit 1
}
# Checking main
if (-not (Test-Path $mainDir)) {
Write-Error 'Failed! "main" folder not found!'
Read-Host 'Press Enter to exit'
exit 1
}
# Checking logo.ico
if (-not (Test-Path $logoFile)) {
Write-Error 'Failed! "logo.ico" not found!'
Read-Host 'Press Enter to exit'
exit 1
}
# Checking npm
& npm --version > $null 2>&1
if ($LASTEXITCODE -eq 0) {
Write-Host 'npm is detected...'
} else {
Write-Error 'Failed! No npm command!'
Write-Host 'Install Node.js might fix this.'
Read-Host 'Press Enter to exit'
exit 1
}
# Checking electron-packager
& npx electron-packager --version > $null 2>&1
if ($LASTEXITCODE -eq 0) {
Write-Host 'electron-packager is detected...'
} else {
Write-Warning 'Failed! No electron-packager command!'
Write-Host 'But npm is detected!'
Read-Host 'Press Enter to install electron-packager or Ctrl+C to exit'
npm install -g electron-packager
}
# Checking asar
& npx asar --version > $null 2>&1
if ($LASTEXITCODE -eq 0) {
Write-Host 'asar is detected...'
} else {
Write-Warning 'Failed! No asar command!'
Write-Host 'But npm is detected!'
Read-Host 'Press Enter to install asar or Ctrl+C to exit'
npm install -g asar
}
Write-Host 'Success!'
# Clear old output
if (Test-Path $outWinDir) {
Write-Host 'Detected old output!'
Read-Host 'Press Enter to delete and rebuild'
Remove-Item -Recurse -Force $outWinDir
Write-Host 'Success!'
}
# Make sure output dir is existed
if (-not (Test-Path $outputDir)) {
New-Item -ItemType Directory -Path $outputDir | Out-Null
}
# Start packaging
Write-Host 'Starting electron-packager...'
& npx electron-packager `
"`"$mainDir`"" "cfw" `
--platform=linux --arch=x64 --electron-version=34.0.0 `
--icon="`"$logoFile`"" --out="`"$outputDir`"" --prune=true --asar
if ($LASTEXITCODE -ne 0) {
Write-Error 'electron-packager Failed!'
exit 1
}
Write-Host 'Waiting app building...'
Write-Host 'Note: If wait too long, it may mean that the execution has failed. Press Ctrl+C to terminate.'
# Wait for the program
$exePath = Join-Path $outWinDir 'cfw'
while (-not (Test-Path $exePath)) {
Start-Sleep -Seconds 5
}
Write-Host 'Success!'
# Adding files
Write-Host 'Adding proxy core files...'
Start-Sleep -Seconds 1
$destStatic = Join-Path $outWinDir 'resources\static'
# Make sure resources dir is existed
$resourcesDir = Split-Path $destStatic -Parent
if (-not (Test-Path $resourcesDir)) {
New-Item -ItemType Directory -Path $resourcesDir | Out-Null
}
# Make sure static dir is existed
if (-not (Test-Path $destStatic)) {
New-Item -ItemType Directory -Path $destStatic | Out-Null
}
# Then copy it
Copy-Item -Path "$staticDir\*" -Destination $destStatic -Recurse -Force
Write-Host 'Success!'
Write-Host 'Finish!'
Read-Host 'Press Enter to exit'
================================================
FILE: app/build_win32-ia32.ps1
================================================
# Requires PowerShell 3.0+
# Script Directory
$scriptDir = $PSScriptRoot
$staticDir = Join-Path $scriptDir 'clash_core\win32-ia32\static'
$mainDir = Join-Path $scriptDir 'main'
$logoFile = Join-Path $scriptDir 'logo.ico'
$outputDir = Join-Path $scriptDir 'output'
$outWinDir = Join-Path $outputDir 'Clash for Windows-win32-ia32'
Write-Host 'Checking environment...'
# Checking static
if (-not (Test-Path $staticDir)) {
Write-Error 'Failed! "static" folder not found!'
Read-Host 'Press Enter to exit'
exit 1
}
# Checking main
if (-not (Test-Path $mainDir)) {
Write-Error 'Failed! "main" folder not found!'
Read-Host 'Press Enter to exit'
exit 1
}
# Checking logo.ico
if (-not (Test-Path $logoFile)) {
Write-Error 'Failed! "logo.ico" not found!'
Read-Host 'Press Enter to exit'
exit 1
}
# Checking npm
& npm --version > $null 2>&1
if ($LASTEXITCODE -eq 0) {
Write-Host 'npm is detected...'
} else {
Write-Error 'Failed! No npm command!'
Write-Host 'Install Node.js might fix this.'
Read-Host 'Press Enter to exit'
exit 1
}
# Checking electron-packager
& npx electron-packager --version > $null 2>&1
if ($LASTEXITCODE -eq 0) {
Write-Host 'electron-packager is detected...'
} else {
Write-Warning 'Failed! No electron-packager command!'
Write-Host 'But npm is detected!'
Read-Host 'Press Enter to install electron-packager or Ctrl+C to exit'
npm install -g electron-packager
}
# Checking asar
& npx asar --version > $null 2>&1
if ($LASTEXITCODE -eq 0) {
Write-Host 'asar is detected...'
} else {
Write-Warning 'Failed! No asar command!'
Write-Host 'But npm is detected!'
Read-Host 'Press Enter to install asar or Ctrl+C to exit'
npm install -g asar
}
Write-Host 'Success!'
# Clear old output
if (Test-Path $outWinDir) {
Write-Host 'Detected old output!'
Read-Host 'Press Enter to delete and rebuild'
Remove-Item -Recurse -Force $outWinDir
Write-Host 'Success!'
}
# Make sure output dir is existed
if (-not (Test-Path $outputDir)) {
New-Item -ItemType Directory -Path $outputDir | Out-Null
}
# Start packaging
Write-Host 'Starting electron-packager...'
& npx electron-packager `
"`"$mainDir`"" "Clash for Windows" `
--platform=win32 --arch=ia32 --electron-version=34.0.0 `
--icon="`"$logoFile`"" --out="`"$outputDir`"" --prune=true --asar
if ($LASTEXITCODE -ne 0) {
Write-Error 'electron-packager Failed!'
exit 1
}
Write-Host 'Waiting app building...'
Write-Host 'Note: If wait too long, it may mean that the execution has failed. Press Ctrl+C to terminate.'
# Wait for the program
$exePath = Join-Path $outWinDir 'Clash for Windows.exe'
while (-not (Test-Path $exePath)) {
Start-Sleep -Seconds 5
}
Write-Host 'Success!'
# Adding files
Write-Host 'Adding proxy core files...'
Start-Sleep -Seconds 1
$destStatic = Join-Path $outWinDir 'resources\static'
# Make sure resources dir is existed
$resourcesDir = Split-Path $destStatic -Parent
if (-not (Test-Path $resourcesDir)) {
New-Item -ItemType Directory -Path $resourcesDir | Out-Null
}
# Make sure static dir is existed
if (-not (Test-Path $destStatic)) {
New-Item -ItemType Directory -Path $destStatic | Out-Null
}
# Then copy it
Copy-Item -Path "$staticDir\*" -Destination $destStatic -Recurse -Force
Write-Host 'Success!'
Write-Host 'Finish!'
Read-Host 'Press Enter to exit'
================================================
FILE: app/build_win32_arm64.ps1
================================================
# Requires PowerShell 3.0+
# Script Directory
$scriptDir = $PSScriptRoot
$staticDir = Join-Path $scriptDir 'clash_core\win32-arm64\static'
$mainDir = Join-Path $scriptDir 'main'
$logoFile = Join-Path $scriptDir 'logo.ico'
$outputDir = Join-Path $scriptDir 'output'
$outWinDir = Join-Path $outputDir 'Clash for Windows-win32-arm64'
Write-Host 'Checking environment...'
# Checking static
if (-not (Test-Path $staticDir)) {
Write-Error 'Failed! "static" folder not found!'
Read-Host 'Press Enter to exit'
exit 1
}
# Checking main
if (-not (Test-Path $mainDir)) {
Write-Error 'Failed! "main" folder not found!'
Read-Host 'Press Enter to exit'
exit 1
}
# Checking logo.ico
if (-not (Test-Path $logoFile)) {
Write-Error 'Failed! "logo.ico" not found!'
Read-Host 'Press Enter to exit'
exit 1
}
# Checking npm
& npm --version > $null 2>&1
if ($LASTEXITCODE -eq 0) {
Write-Host 'npm is detected...'
} else {
Write-Error 'Failed! No npm command!'
Write-Host 'Install Node.js might fix this.'
Read-Host 'Press Enter to exit'
exit 1
}
# Checking electron-packager
& npx electron-packager --version > $null 2>&1
if ($LASTEXITCODE -eq 0) {
Write-Host 'electron-packager is detected...'
} else {
Write-Warning 'Failed! No electron-packager command!'
Write-Host 'But npm is detected!'
Read-Host 'Press Enter to install electron-packager or Ctrl+C to exit'
npm install -g electron-packager
}
# Checking asar
& npx asar --version > $null 2>&1
if ($LASTEXITCODE -eq 0) {
Write-Host 'asar is detected...'
} else {
Write-Warning 'Failed! No asar command!'
Write-Host 'But npm is detected!'
Read-Host 'Press Enter to install asar or Ctrl+C to exit'
npm install -g asar
}
Write-Host 'Success!'
# Clear old output
if (Test-Path $outWinDir) {
Write-Host 'Detected old output!'
Read-Host 'Press Enter to delete and rebuild'
Remove-Item -Recurse -Force $outWinDir
Write-Host 'Success!'
}
# Make sure output dir is existed
if (-not (Test-Path $outputDir)) {
New-Item -ItemType Directory -Path $outputDir | Out-Null
}
# Start packaging
Write-Host 'Starting electron-packager...'
& npx electron-packager `
"`"$mainDir`"" "Clash for Windows" `
--platform=win32 --arch=arm64 --electron-version=34.0.0 `
--icon="`"$logoFile`"" --out="`"$outputDir`"" --prune=true --asar
if ($LASTEXITCODE -ne 0) {
Write-Error 'electron-packager Failed!'
exit 1
}
Write-Host 'Waiting app building...'
Write-Host 'Note: If wait too long, it may mean that the execution has failed. Press Ctrl+C to terminate.'
# Wait for the program
$exePath = Join-Path $outWinDir 'Clash for Windows.exe'
while (-not (Test-Path $exePath)) {
Start-Sleep -Seconds 5
}
Write-Host 'Success!'
# Adding files
Write-Host 'Adding proxy core files...'
Start-Sleep -Seconds 1
$destStatic = Join-Path $outWinDir 'resources\static'
# Make sure resources dir is existed
$resourcesDir = Split-Path $destStatic -Parent
if (-not (Test-Path $resourcesDir)) {
New-Item -ItemType Directory -Path $resourcesDir | Out-Null
}
# Make sure static dir is existed
if (-not (Test-Path $destStatic)) {
New-Item -ItemType Directory -Path $destStatic | Out-Null
}
# Then copy it
Copy-Item -Path "$staticDir\*" -Destination $destStatic -Recurse -Force
Write-Host 'Success!'
Write-Host 'Finish!'
Read-Host 'Press Enter to exit'
================================================
FILE: app/build_win_x64.ps1
================================================
# Requires PowerShell 3.0+
# Script Directory
$scriptDir = $PSScriptRoot
$staticDir = Join-Path $scriptDir 'clash_core\win_x64\static'
$mainDir = Join-Path $scriptDir 'main'
$logoFile = Join-Path $scriptDir 'logo.ico'
$outputDir = Join-Path $scriptDir 'output'
$oldWinDir = Join-Path $outputDir 'Clash for Windows'
$wrongWinDir = Join-Path $outputDir 'Clash for Windows-win32-x64'
Write-Host 'Checking environment...'
# Checking static
if (-not (Test-Path $staticDir)) {
Write-Error 'Failed! "static" folder not found!'
Read-Host 'Press Enter to exit'
exit 1
}
# Checking main
if (-not (Test-Path $mainDir)) {
Write-Error 'Failed! "main" folder not found!'
Read-Host 'Press Enter to exit'
exit 1
}
# Checking logo.ico
if (-not (Test-Path $logoFile)) {
Write-Error 'Failed! "logo.ico" not found!'
Read-Host 'Press Enter to exit'
exit 1
}
# Checking npm
& npm --version > $null 2>&1
if ($LASTEXITCODE -eq 0) {
Write-Host 'npm is detected...'
} else {
Write-Error 'Failed! No npm command!'
Write-Host 'Install Node.js might fix this.'
Read-Host 'Press Enter to exit'
exit 1
}
# Checking electron-packager
& npx electron-packager --version > $null 2>&1
if ($LASTEXITCODE -eq 0) {
Write-Host 'electron-packager is detected...'
} else {
Write-Warning 'Failed! No electron-packager command!'
Write-Host 'But npm is detected!'
Read-Host 'Press Enter to install electron-packager or Ctrl+C to exit'
npm install -g electron-packager
}
# Checking asar
& npx asar --version > $null 2>&1
if ($LASTEXITCODE -eq 0) {
Write-Host 'asar is detected...'
} else {
Write-Warning 'Failed! No asar command!'
Write-Host 'But npm is detected!'
Read-Host 'Press Enter to install asar or Ctrl+C to exit'
npm install -g asar
}
Write-Host 'Success!'
# Clear old output
if (Test-Path $oldWinDir) {
Write-Host 'Detected old output!'
Read-Host 'Press Enter to delete and rebuild'
Remove-Item -Recurse -Force $oldWinDir
Write-Host 'Success!'
}
if (Test-Path $wrongWinDir) {
Write-Host 'Detected wrong building files!'
Read-Host 'Press Enter to delete and continue'
Remove-Item -Recurse -Force $wrongWinDir
Write-Host 'Success!'
}
# Make sure output dir is existed
if (-not (Test-Path $outputDir)) {
New-Item -ItemType Directory -Path $outputDir | Out-Null
}
# Start packaging
Write-Host 'Starting electron-packager...'
& npx electron-packager `
"`"$mainDir`"" "Clash for Windows" `
--platform=win32 --arch=x64 --electron-version=34.0.0 `
--icon="`"$logoFile`"" --out="`"$outputDir`"" --prune=true --asar
if ($LASTEXITCODE -ne 0) {
Write-Error 'electron-packager Failed!'
exit 1
}
Write-Host 'Waiting app building...'
Write-Host 'Note: If wait too long, it may mean that the execution has failed. Press Ctrl+C to terminate.'
# Wait for the program
$exePath = Join-Path $wrongWinDir 'Clash for Windows.exe'
while (-not (Test-Path $exePath)) {
Start-Sleep -Seconds 5
}
Write-Host 'Success!'
# Adding files and rename
Write-Host 'Adding proxy core files...'
Start-Sleep -Seconds 1
Rename-Item -Path $wrongWinDir -NewName 'Clash for Windows'
$destStatic = Join-Path $oldWinDir 'resources\static'
# Make sure resources dir is existed
$resourcesDir = Split-Path $destStatic -Parent
if (-not (Test-Path $resourcesDir)) {
New-Item -ItemType Directory -Path $resourcesDir | Out-Null
}
# Make sure static dir is existed
if (-not (Test-Path $destStatic)) {
New-Item -ItemType Directory -Path $destStatic | Out-Null
}
# Then copy it
Copy-Item -Path "$staticDir\*" -Destination $destStatic -Recurse -Force
Write-Host 'Success!'
Write-Host 'Finish!'
Read-Host 'Press Enter to exit'
================================================
FILE: app/clash_core/linux-arm64/static/files/linux/arm64/clash-linux
================================================
[File too large to display: 18.4 MB]
================================================
FILE: app/clash_core/linux-arm64/static/files/linux/arm64/clash-linux.sign
================================================
U2KIAkV6aF08JlUXVPChLl6W2d0/78V16zzz7Mz5bH2nbYfNADFCVK10wB8/LDGz9PrIkSNaceKGbdn7zdVhyQ==
================================================
FILE: app/clash_core/linux-x64/static/files/linux/x64/clash-linux
================================================
[File too large to display: 19.0 MB]
================================================
FILE: app/clash_core/linux-x64/static/files/linux/x64/clash-linux.sign
================================================
g4db2Nr6eFh0TnYY1jiDD/wENCzputDYksyhcs9AyOoJxvcbr1dVhTgk0OJwvzdiPd+QV/u958/YkmbB1iytBw==
================================================
FILE: app/clash_core/win32-arm64/static/files/win/arm64/clash-win-arm64.exe.sign
================================================
ITc2EBlFAD1GjpFIotoMMlMk9xt5GrqaVEJSnoyirU2zM/hMts4RfwFL3rXpa3IL/dSgmnsaPTuBLzPIK6IGKA==
================================================
FILE: app/clash_core/win32-arm64/static/files/win/common/schtasks.xml
================================================
<?xml version="1.0" encoding="UTF-16"?>
<Task version="1.2" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task">
<Triggers>
<LogonTrigger>
<Enabled>true</Enabled>
</LogonTrigger>
</Triggers>
<Settings>
<MultipleInstancesPolicy>StopExisting</MultipleInstancesPolicy>
<DisallowStartIfOnBatteries>false</DisallowStartIfOnBatteries>
<StopIfGoingOnBatteries>false</StopIfGoingOnBatteries>
<AllowHardTerminate>false</AllowHardTerminate>
<StartWhenAvailable>true</StartWhenAvailable>
<RunOnlyIfNetworkAvailable>false</RunOnlyIfNetworkAvailable>
<IdleSettings>
<StopOnIdleEnd>true</StopOnIdleEnd>
<RestartOnIdle>false</RestartOnIdle>
</IdleSettings>
<AllowStartOnDemand>true</AllowStartOnDemand>
<Enabled>true</Enabled>
<Hidden>false</Hidden>
<RunOnlyIfIdle>false</RunOnlyIfIdle>
<WakeToRun>false</WakeToRun>
<ExecutionTimeLimit>PT0S</ExecutionTimeLimit>
<Priority>7</Priority>
<RestartOnFailure>
<Interval>PT1M</Interval>
<Count>5</Count>
</RestartOnFailure>
</Settings>
<Actions Context="Author">
<Exec>
<Command>""</Command>
</Exec>
</Actions>
</Task>
================================================
FILE: app/clash_core/win32-arm64/static/files/win/common/service.yml
================================================
id: Clash Core Service
name: Clash Core Service
description: Clash Core Service started by Clash for Windows
executable: clash-core-service
log:
mode: none
================================================
FILE: app/clash_core/win32-arm64/static/files/win/common/tun2socks/add_tap_device.bat
================================================
:: Copyright 2018 The Outline Authors
::
:: Licensed under the Apache License, Version 2.0 (the "License");
:: you may not use this file except in compliance with the License.
:: You may obtain a copy of the License at
::
:: http://www.apache.org/licenses/LICENSE-2.0
::
:: Unless required by applicable law or agreed to in writing, software
:: distributed under the License is distributed on an "AS IS" BASIS,
:: WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
:: See the License for the specific language governing permissions and
:: limitations under the License.
@echo off
:: See https://ss64.com/nt/delayedexpansion.html
setlocal enabledelayedexpansion
set DEVICE_NAME=cfw-tap
set DEVICE_HWID=tap0901
set SCRIPT_DIR=%~dp0
set ARCH=%1
set IP=%2
set SUBNET=%3
set GATEWAY=%4
:: Error codes for surfacing to the user and sentry.
set ERROR_TAP_INSTALL=1
set ERROR_TAP_FIND_NAME=2
set ERROR_TAP_RENAME=3
set ERROR_TAP_CONFIGURE_SUBNET=4
set ERROR_TAP_CONFIGURE_DNS=5
:: Because we've seen multiple failures due to commands (netsh, etc.) not being
:: found, append some common directories to the PATH.
::
:: Note:
:: - %SystemRoot% almost always expands to c:\windows.
:: - Do *not* surround with quotes.
set PATH=%PATH%;%SystemRoot%\system32;%SystemRoot%\system32\wbem;%SystemRoot%\system32\WindowsPowerShell/v1.0
:: Check whether the device already exists.
netsh interface show interface name=%DEVICE_NAME%
if %errorlevel% equ 0 (
echo TAP network device already exists.
goto :configure
)
echo Creating TAP network device...
"%SCRIPT_DIR%\%ARCH%\tapinstall" install "%SCRIPT_DIR%\%ARCH%\OemVista.inf" %DEVICE_HWID%
if %errorlevel% neq 0 (
echo Could not create TAP network device. Try to do it manually. >&2
REM exit /b %ERROR_TAP_INSTALL%
start /wait /D "%SCRIPT_DIR%" tap-windows-installer.exe
)
:: Find the name of the most recently installed TAP device in the registry and rename it.
echo Searching for new TAP network device name...
call "%SCRIPT_DIR%\find_tap_device_name.bat" TAP_NAME
if %errorlevel% neq 0 (
echo Could not find TAP device name. >&2
exit /b %ERROR_TAP_FIND_NAME%
)
echo Found TAP device name: "%TAP_NAME%"
:: We've occasionally seen delays before netsh will "see" the new device, at least for
:: purposes of configuring IP and DNS ("netsh interface show interface name=xxx" does not
:: seem to be affected).
call :wait_for_device "%TAP_NAME%"
:: Attempt to rename the device even if waiting timed out.
netsh interface set interface name="%TAP_NAME%" newname="%DEVICE_NAME%"
if %errorlevel% neq 0 (
:: Try to rename the device through powershell in case netsh failed due to not being able to "see"
:: the device. Pipe input from /dev/null to prevent powershell from waiting forever on EOF.
powershell "Rename-NetAdapter -Name \"%TAP_NAME%\" -NewName \"%DEVICE_NAME%\"" <nul
:: Note that we use delayed variable expansion inside a control block to check errorlevel.
if !errorlevel! neq 0 (
echo Could not rename TAP device. >&2
exit /b %ERROR_TAP_RENAME%
)
)
:: Wait for the new name to propagate to netsh.
call :wait_for_device "%DEVICE_NAME%"
:: Attempt to configure the device even if waiting timed out.
:configure
:: Try to enable the device, in case it's somehow been disabled.
::
:: Annoyingly, this returns an error and outputs a confusing message if the device exists and is
:: already enabled:
:: This network connection does not exist.
::
:: So, continue even if this command fails - and always include its output.
echo (Re-)enabling TAP network device...
netsh interface set interface "%DEVICE_NAME%" admin=enabled
:: The powershell command is used to ensure the adapter is enabled if netsh fails and leaves it in
:: a disabled state. While no such failure has yet been observed, this command would correct it and
:: should behave idempotently otherwise.
powershell "Enable-NetAdapter -Name \"%DEVICE_NAME%\"" <nul
:: Give the device an IP address.
:: 10.0.85.x is a guess which we hope will work for most users (Docker for
:: Windows uses 10.0.75.x by default): if the address is already in use the
:: script will fail and the installer will show an error message to the user.
:: TODO: Actually search the system for an unused subnet or make the subnet
:: configurable in the Outline client.
echo Configuring TAP device subnet...
netsh interface ip set address %DEVICE_NAME% static %IP% %SUBNET% %GATEWAY%
if %errorlevel% neq 0 (
echo Could not set TAP network device subnet. >&2
exit /b %ERROR_TAP_CONFIGURE_SUBNET%
)
:: Windows has no system-wide DNS server; each network device can have its
:: "own" set of DNS servers. Windows seems to use the DNS server(s) of the
:: network device associated with the default gateway. This is good for us
:: as it means we do not have to modify the DNS settings of any other network
:: device in the system. Configure with OpenDNS and Dyn resolvers.
echo Configuring primary DNS...
netsh interface ip set dnsservers %DEVICE_NAME% static address=%IP%
if %errorlevel% neq 0 (
echo Could not configure TAP device primary DNS. >&2
exit /b %ERROR_TAP_CONFIGURE_DNS%
)
echo Setting interface metric (1) for this interface...
powershell "Set-NetIPInterface -InterfaceAlias \"%DEVICE_NAME%\" -InterfaceMetric 1" <nul
if %errorlevel% neq 0 (
echo Could not set interface metric. >&2
exit /b 1
)
echo TAP network device added and configured successfully
exit /b 0
:: Waits up to a minute until a device is visible to netsh. Accepts the device name as a parameter.
:: Exits with a non-zero code if the operation times out.
:wait_for_device
echo Testing that the network device "%~1" is visible to netsh...
netsh interface ip show interfaces | find "%~1" >nul 2>&1
if %errorlevel% equ 0 exit /b 0
for /l %%N in (1, 1, 6) do (
echo Waiting... %%N
:: timeout doesn't like the environment created by nsExec::ExecToStack and exits with:
:: "ERROR: Input redirection is not supported, exiting the process immediately."
waitfor /t 10 thisisnotarealsignalname >nul 2>&1
netsh interface ip show interfaces | find "%~1" >nul 2>&1
if !errorlevel! equ 0 exit /b 0
)
exit /b 1
================================================
FILE: app/clash_core/win32-arm64/static/files/win/common/tun2socks/amd64/OemVista.inf
================================================
; ****************************************************************************
; * Copyright (C) 2002-2014 OpenVPN Technologies, Inc. *
; * This program is free software; you can redistribute it and/or modify *
; * it under the terms of the GNU General Public License version 2 *
; * as published by the Free Software Foundation. *
; ****************************************************************************
; SYNTAX CHECKER
; cd \WINDDK\3790\tools\chkinf
; chkinf c:\src\openvpn\tap-win32\i386\oemvista.inf
; OUTPUT -> file:///c:/WINDDK/3790/tools/chkinf/htm/c%23+src+openvpn+tap-win32+i386+__OemWin2k.htm
; INSTALL/REMOVE DRIVER
; tapinstall install OemVista.inf tapoas
; tapinstall update OemVista.inf tapoas
; tapinstall remove tapoas
;*********************************************************
; Note to Developers:
;
; If you are bundling the TAP-Windows driver with your app,
; you should try to rename it in such a way that it will
; not collide with other instances of TAP-Windows defined
; by other apps. Multiple versions of the TAP-Windows
; driver, each installed by different apps, can coexist
; on the same machine if you follow these guidelines.
; NOTE: these instructions assume you are editing the
; generated OemWin2k.inf file, not the source
; OemWin2k.inf.in file which is preprocessed by winconfig
; and uses macro definitions from settings.in.
;
; (1) Rename all tapXXXX instances in this file to
; something different (use at least 5 characters
; for this name!)
; (2) Change the "!define TAP" definition in openvpn.nsi
; to match what you changed tapXXXX to.
; (3) Change TARGETNAME in SOURCES to match what you
; changed tapXXXX to.
; (4) Change TAP_COMPONENT_ID in common.h to match what
; you changed tapXXXX to.
; (5) Change SZDEPENDENCIES in service.h to match what
; you changed tapXXXX to.
; (6) Change DeviceDescription and Provider strings.
; (7) Change PRODUCT_TAP_WIN_DEVICE_DESCRIPTION in constants.h to what you
; set DeviceDescription to.
;
;*********************************************************
[Version]
Signature = "$Windows NT$"
CatalogFile = tap0901.cat
ClassGUID = {4d36e972-e325-11ce-bfc1-08002be10318}
Provider = %Provider%
Class = Net
; This version number should match the version
; number given in ..\version.m4.
DriverVer = 04/16/2019,9.23.1.601
[Strings]
DeviceDescription = "TAP-Windows Adapter V9"
Provider = "TAP-Windows Provider V9"
;----------------------------------------------------------------
; Manufacturer + Product Section (Done)
;----------------------------------------------------------------
[Manufacturer]
%Provider% = tap0901, NTamd64
[tap0901.NTamd64]
%DeviceDescription% = tap0901.ndi, root\tap0901 ; Root enumerated
%DeviceDescription% = tap0901.ndi, tap0901 ; Legacy
;---------------------------------------------------------------
; Driver Section (Done)
;---------------------------------------------------------------
;----------------- Characteristics ------------
; NCF_PHYSICAL = 0x04
; NCF_VIRTUAL = 0x01
; NCF_SOFTWARE_ENUMERATED = 0x02
; NCF_HIDDEN = 0x08
; NCF_NO_SERVICE = 0x10
; NCF_HAS_UI = 0x80
;----------------- Characteristics ------------
[tap0901.ndi]
CopyFiles = tap0901.driver, tap0901.files
AddReg = tap0901.reg
AddReg = tap0901.params.reg
Characteristics = 0x81
*IfType = 0x6 ; IF_TYPE_ETHERNET_CSMACD
*MediaType = 0x0 ; NdisMedium802_3
*PhysicalMediaType = 14 ; NdisPhysicalMedium802_3
[tap0901.ndi.Services]
AddService = tap0901, 2, tap0901.service
[tap0901.reg]
HKR, Ndi, Service, 0, "tap0901"
HKR, Ndi\Interfaces, UpperRange, 0, "ndis5"
HKR, Ndi\Interfaces, LowerRange, 0, "ethernet"
HKR, , Manufacturer, 0, "%Provider%"
HKR, , ProductName, 0, "%DeviceDescription%"
[tap0901.params.reg]
HKR, Ndi\params\MTU, ParamDesc, 0, "MTU"
HKR, Ndi\params\MTU, Type, 0, "int"
HKR, Ndi\params\MTU, Default, 0, "1500"
HKR, Ndi\params\MTU, Optional, 0, "0"
HKR, Ndi\params\MTU, Min, 0, "100"
HKR, Ndi\params\MTU, Max, 0, "1500"
HKR, Ndi\params\MTU, Step, 0, "1"
HKR, Ndi\params\MediaStatus, ParamDesc, 0, "Media Status"
HKR, Ndi\params\MediaStatus, Type, 0, "enum"
HKR, Ndi\params\MediaStatus, Default, 0, "0"
HKR, Ndi\params\MediaStatus, Optional, 0, "0"
HKR, Ndi\params\MediaStatus\enum, "0", 0, "Application Controlled"
HKR, Ndi\params\MediaStatus\enum, "1", 0, "Always Connected"
HKR, Ndi\params\MAC, ParamDesc, 0, "MAC Address"
HKR, Ndi\params\MAC, Type, 0, "edit"
HKR, Ndi\params\MAC, Optional, 0, "1"
HKR, Ndi\params\AllowNonAdmin, ParamDesc, 0, "Non-Admin Access"
HKR, Ndi\params\AllowNonAdmin, Type, 0, "enum"
HKR, Ndi\params\AllowNonAdmin, Default, 0, "1"
HKR, Ndi\params\AllowNonAdmin, Optional, 0, "0"
HKR, Ndi\params\AllowNonAdmin\enum, "0", 0, "Not Allowed"
HKR, Ndi\params\AllowNonAdmin\enum, "1", 0, "Allowed"
;----------------------------------------------------------------
; Service Section
;----------------------------------------------------------------
;---------- Service Type -------------
; SERVICE_KERNEL_DRIVER = 0x01
; SERVICE_WIN32_OWN_PROCESS = 0x10
;---------- Service Type -------------
;---------- Start Mode ---------------
; SERVICE_BOOT_START = 0x0
; SERVICE_SYSTEM_START = 0x1
; SERVICE_AUTO_START = 0x2
; SERVICE_DEMAND_START = 0x3
; SERVICE_DISABLED = 0x4
;---------- Start Mode ---------------
[tap0901.service]
DisplayName = %DeviceDescription%
ServiceType = 1
StartType = 3
ErrorControl = 1
LoadOrderGroup = NDIS
ServiceBinary = %12%\tap0901.sys
;-----------------------------------------------------------------
; File Installation
;-----------------------------------------------------------------
;----------------- Copy Flags ------------
; COPYFLG_NOSKIP = 0x02
; COPYFLG_NOVERSIONCHECK = 0x04
;----------------- Copy Flags ------------
; SourceDisksNames
; diskid = description[, [tagfile] [, <unused>, subdir]]
; 1 = "Intel Driver Disk 1",e100bex.sys,,
[SourceDisksNames]
1 = %DeviceDescription%, tap0901.sys
; SourceDisksFiles
; filename_on_source = diskID[, [subdir][, size]]
; e100bex.sys = 1,, ; on distribution disk 1
[SourceDisksFiles]
tap0901.sys = 1
[DestinationDirs]
tap0901.files = 11
tap0901.driver = 12
[tap0901.files]
; TapPanel.cpl,,,6 ; COPYFLG_NOSKIP | COPYFLG_NOVERSIONCHECK
; cipsrvr.exe,,,6 ; COPYFLG_NOSKIP | COPYFLG_NOVERSIONCHECK
[tap0901.driver]
tap0901.sys,,,6 ; COPYFLG_NOSKIP | COPYFLG_NOVERSIONCHECK
;---------------------------------------------------------------
; End
;---------------------------------------------------------------
================================================
FILE: app/clash_core/win32-arm64/static/files/win/common/tun2socks/find_tap_device_name.bat
================================================
:: Copyright 2020 The Outline Authors
::
:: Licensed under the Apache License, Version 2.0 (the "License");
:: you may not use this file except in compliance with the License.
:: You may obtain a copy of the License at
::
:: http://www.apache.org/licenses/LICENSE-2.0
::
:: Unless required by applicable law or agreed to in writing, software
:: distributed under the License is distributed on an "AS IS" BASIS,
:: WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
:: See the License for the specific language governing permissions and
:: limitations under the License.
:: Queries the registry in order to retrieve the most recently installed TAP network adapter's name.
:: Accepts a single argument, the name of an environment variable to store the adapter's name.
:: Exits with a non-zero exit code on failure.
:: Usage example: find_tap_name.bat TAP_NAME
@echo off
:: See https://ss64.com/nt/delayedexpansion.html
setlocal enabledelayedexpansion
set NET_ADAPTERS_CLASS_GUID={4D36E972-E325-11CE-BFC1-08002BE10318}
set NET_ADAPTERS_KEY=HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\%NET_ADAPTERS_CLASS_GUID%
set NET_CONFIG_KEY=HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Network\%NET_ADAPTERS_CLASS_GUID%
set NET_ADAPTERS_FILE="%tmp%\netadapters.txt"
:: Find all network adapters that match the "tap0901" component ID and store their registry path in a file.
:: Note that adapter keys are increasing four-digit integers, padded with leading zeros.
reg query %NET_ADAPTERS_KEY% /s /f "tap0901" /e /d | findstr "HKEY.*\\[0-9][0-9][0-9][0-9]$" > %NET_ADAPTERS_FILE%
if %errorlevel% neq 0 (
echo Could not find TAP network adapter in the registry. >&2
exit /b 1
)
set TIMESTAMP=0
set NAME=
for /f "tokens=*" %%K in ('type "%NET_ADAPTERS_FILE%"') do (
set ADAPTER_NAME=
set ADAPTER_NET_CONFIG_ID=
set ADAPTER_TIMESTAMP=
:: Retrieve the adapter's network config ID.
set ADAPTER_KEY=%%K
for /f "tokens=3" %%I in ('reg query !ADAPTER_KEY! /v "NetCfgInstanceId"') do (
set ADAPTER_NET_CONFIG_ID=%%I
)
:: Retrieve the adapter's install timestamp.
for /f "tokens=3" %%T in ('reg query !ADAPTER_KEY! /v "InstallTimeStamp"') do (
set ADAPTER_TIMESTAMP=%%T
)
:: Retrieve the adapter's name.
set ADAPTER_CONFIG_KEY=!NET_CONFIG_KEY!\!ADAPTER_NET_CONFIG_ID!\Connection
for /f "tokens=3*" %%N in ('reg query !ADAPTER_CONFIG_KEY! /v "Name"') do (
:: If the name contains spaces our tokenization will store the rest of the name in %%O.
if [%%O] == [] (
set ADAPTER_NAME=%%N
) else (
set ADAPTER_NAME=%%N %%O
)
)
:: Ensure we found the adapter's install timestamp and name.
if not [!ADAPTER_TIMESTAMP!] == [] (
if not [!ADAPTER_NAME!] == [] (
echo Found adapter "!ADAPTER_NAME!", !ADAPTER_TIMESTAMP!
:: Store the adapter's name if it's the most recently installed one.
if !ADAPTER_TIMESTAMP! gtr !TIMESTAMP! (
set TIMESTAMP=!ADAPTER_TIMESTAMP!
set NAME=!ADAPTER_NAME!
)
) else (
echo Failed to retrieve name of adapter !ADAPTER_KEY! >&2
)
) else (
echo Failed to retrieve install timestamp of adapter !ADAPTER_KEY! >&2
)
)
if [!NAME!] == [] (
echo Could not find TAP adapter name. >&2
exit /b 1
)
echo TAP device name: "!NAME!"
endlocal & set "%1=%NAME%"
exit /b 0
================================================
FILE: app/clash_core/win32-arm64/static/files/win/common/tun2socks/i386/OemVista.inf
================================================
; ****************************************************************************
; * Copyright (C) 2002-2014 OpenVPN Technologies, Inc. *
; * This program is free software; you can redistribute it and/or modify *
; * it under the terms of the GNU General Public License version 2 *
; * as published by the Free Software Foundation. *
; ****************************************************************************
; SYNTAX CHECKER
; cd \WINDDK\3790\tools\chkinf
; chkinf c:\src\openvpn\tap-win32\i386\oemvista.inf
; OUTPUT -> file:///c:/WINDDK/3790/tools/chkinf/htm/c%23+src+openvpn+tap-win32+i386+__OemWin2k.htm
; INSTALL/REMOVE DRIVER
; tapinstall install OemVista.inf tapoas
; tapinstall update OemVista.inf tapoas
; tapinstall remove tapoas
;*********************************************************
; Note to Developers:
;
; If you are bundling the TAP-Windows driver with your app,
; you should try to rename it in such a way that it will
; not collide with other instances of TAP-Windows defined
; by other apps. Multiple versions of the TAP-Windows
; driver, each installed by different apps, can coexist
; on the same machine if you follow these guidelines.
; NOTE: these instructions assume you are editing the
; generated OemWin2k.inf file, not the source
; OemWin2k.inf.in file which is preprocessed by winconfig
; and uses macro definitions from settings.in.
;
; (1) Rename all tapXXXX instances in this file to
; something different (use at least 5 characters
; for this name!)
; (2) Change the "!define TAP" definition in openvpn.nsi
; to match what you changed tapXXXX to.
; (3) Change TARGETNAME in SOURCES to match what you
; changed tapXXXX to.
; (4) Change TAP_COMPONENT_ID in common.h to match what
; you changed tapXXXX to.
; (5) Change SZDEPENDENCIES in service.h to match what
; you changed tapXXXX to.
; (6) Change DeviceDescription and Provider strings.
; (7) Change PRODUCT_TAP_WIN_DEVICE_DESCRIPTION in constants.h to what you
; set DeviceDescription to.
;
;*********************************************************
[Version]
Signature = "$Windows NT$"
CatalogFile = tap0901.cat
ClassGUID = {4d36e972-e325-11ce-bfc1-08002be10318}
Provider = %Provider%
Class = Net
; This version number should match the version
; number given in SOURCES.
DriverVer=04/21/2016,9.00.00.21
[Strings]
DeviceDescription = "TAP-Windows Adapter V9"
Provider = "TAP-Windows Provider V9"
;----------------------------------------------------------------
; Manufacturer + Product Section (Done)
;----------------------------------------------------------------
[Manufacturer]
%Provider% = tap0901
[tap0901]
%DeviceDescription% = tap0901.ndi, root\tap0901 ; Root enumerated
%DeviceDescription% = tap0901.ndi, tap0901 ; Legacy
;---------------------------------------------------------------
; Driver Section (Done)
;---------------------------------------------------------------
;----------------- Characteristics ------------
; NCF_PHYSICAL = 0x04
; NCF_VIRTUAL = 0x01
; NCF_SOFTWARE_ENUMERATED = 0x02
; NCF_HIDDEN = 0x08
; NCF_NO_SERVICE = 0x10
; NCF_HAS_UI = 0x80
;----------------- Characteristics ------------
[tap0901.ndi]
CopyFiles = tap0901.driver, tap0901.files
AddReg = tap0901.reg
AddReg = tap0901.params.reg
Characteristics =
*IfType = 0x6 ; IF_TYPE_ETHERNET_CSMACD
*MediaType = 0x0 ; NdisMedium802_3
*PhysicalMediaType = 14 ; NdisPhysicalMedium802_3
[tap0901.ndi.Services]
AddService = tap0901, 2, tap0901.service
[tap0901.reg]
HKR, Ndi, Service, 0, "tap0901"
HKR, Ndi\Interfaces, UpperRange, 0, "ndis5"
HKR, Ndi\Interfaces, LowerRange, 0, "ethernet"
HKR, , Manufacturer, 0, "%Provider%"
HKR, , ProductName, 0, "%DeviceDescription%"
[tap0901.params.reg]
HKR, Ndi\params\MTU, ParamDesc, 0, "MTU"
HKR, Ndi\params\MTU, Type, 0, "int"
HKR, Ndi\params\MTU, Default, 0, "1500"
HKR, Ndi\params\MTU, Optional, 0, "0"
HKR, Ndi\params\MTU, Min, 0, "100"
HKR, Ndi\params\MTU, Max, 0, "1500"
HKR, Ndi\params\MTU, Step, 0, "1"
HKR, Ndi\params\MediaStatus, ParamDesc, 0, "Media Status"
HKR, Ndi\params\MediaStatus, Type, 0, "enum"
HKR, Ndi\params\MediaStatus, Default, 0, "0"
HKR, Ndi\params\MediaStatus, Optional, 0, "0"
HKR, Ndi\params\MediaStatus\enum, "0", 0, "Application Controlled"
HKR, Ndi\params\MediaStatus\enum, "1", 0, "Always Connected"
HKR, Ndi\params\MAC, ParamDesc, 0, "MAC Address"
HKR, Ndi\params\MAC, Type, 0, "edit"
HKR, Ndi\params\MAC, Optional, 0, "1"
HKR, Ndi\params\AllowNonAdmin, ParamDesc, 0, "Non-Admin Access"
HKR, Ndi\params\AllowNonAdmin, Type, 0, "enum"
HKR, Ndi\params\AllowNonAdmin, Default, 0, "1"
HKR, Ndi\params\AllowNonAdmin, Optional, 0, "0"
HKR, Ndi\params\AllowNonAdmin\enum, "0", 0, "Not Allowed"
HKR, Ndi\params\AllowNonAdmin\enum, "1", 0, "Allowed"
;----------------------------------------------------------------
; Service Section
;----------------------------------------------------------------
;---------- Service Type -------------
; SERVICE_KERNEL_DRIVER = 0x01
; SERVICE_WIN32_OWN_PROCESS = 0x10
;---------- Service Type -------------
;---------- Start Mode ---------------
; SERVICE_BOOT_START = 0x0
; SERVICE_SYSTEM_START = 0x1
; SERVICE_AUTO_START = 0x2
; SERVICE_DEMAND_START = 0x3
; SERVICE_DISABLED = 0x4
;---------- Start Mode ---------------
[tap0901.service]
DisplayName = %DeviceDescription%
ServiceType = 1
StartType = 3
ErrorControl = 1
LoadOrderGroup = NDIS
ServiceBinary = %12%\tap0901.sys
;-----------------------------------------------------------------
; File Installation
;-----------------------------------------------------------------
;----------------- Copy Flags ------------
; COPYFLG_NOSKIP = 0x02
; COPYFLG_NOVERSIONCHECK = 0x04
;----------------- Copy Flags ------------
; SourceDisksNames
; diskid = description[, [tagfile] [, <unused>, subdir]]
; 1 = "Intel Driver Disk 1",e100bex.sys,,
[SourceDisksNames]
1 = %DeviceDescription%, tap0901.sys
; SourceDisksFiles
; filename_on_source = diskID[, [subdir][, size]]
; e100bex.sys = 1,, ; on distribution disk 1
[SourceDisksFiles]
tap0901.sys = 1
[DestinationDirs]
tap0901.files = 11
tap0901.driver = 12
[tap0901.files]
; TapPanel.cpl,,,6 ; COPYFLG_NOSKIP | COPYFLG_NOVERSIONCHECK
; cipsrvr.exe,,,6 ; COPYFLG_NOSKIP | COPYFLG_NOVERSIONCHECK
[tap0901.driver]
tap0901.sys,,,6 ; COPYFLG_NOSKIP | COPYFLG_NOVERSIONCHECK
;---------------------------------------------------------------
; End
;---------------------------------------------------------------
================================================
FILE: app/clash_core/win32-arm64/static/files/win/common/tun2socks/remove_tap_device.bat
================================================
@echo off
setlocal
set DEVICE_NAME=cfw-tap
set DEVICE_HWID=tap0901
set SCRIPT_DIR=%~dp0
set ARCH=%1
set PATH=%PATH%;%SystemRoot%\system32;%SystemRoot%\system32\wbem;%SystemRoot%\system32\WindowsPowerShell/v1.0
echo Removing old TAP network device...
"%SCRIPT_DIR%\%ARCH%\tapinstall" remove %DEVICE_HWID%
if %errorlevel% neq 0 (
echo Could not remove TAP network device. >&2
exit /b 1
)
================================================
FILE: app/clash_core/win32-ia32/static/files/win/common/schtasks.xml
================================================
<?xml version="1.0" encoding="UTF-16"?>
<Task version="1.2" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task">
<Triggers>
<LogonTrigger>
<Enabled>true</Enabled>
</LogonTrigger>
</Triggers>
<Settings>
<MultipleInstancesPolicy>StopExisting</MultipleInstancesPolicy>
<DisallowStartIfOnBatteries>false</DisallowStartIfOnBatteries>
<StopIfGoingOnBatteries>false</StopIfGoingOnBatteries>
<AllowHardTerminate>false</AllowHardTerminate>
<StartWhenAvailable>true</StartWhenAvailable>
<RunOnlyIfNetworkAvailable>false</RunOnlyIfNetworkAvailable>
<IdleSettings>
<StopOnIdleEnd>true</StopOnIdleEnd>
<RestartOnIdle>false</RestartOnIdle>
</IdleSettings>
<AllowStartOnDemand>true</AllowStartOnDemand>
<Enabled>true</Enabled>
<Hidden>false</Hidden>
<RunOnlyIfIdle>false</RunOnlyIfIdle>
<WakeToRun>false</WakeToRun>
<ExecutionTimeLimit>PT0S</ExecutionTimeLimit>
<Priority>7</Priority>
<RestartOnFailure>
<Interval>PT1M</Interval>
<Count>5</Count>
</RestartOnFailure>
</Settings>
<Actions Context="Author">
<Exec>
<Command>""</Command>
</Exec>
</Actions>
</Task>
================================================
FILE: app/clash_core/win32-ia32/static/files/win/common/service.yml
================================================
id: Clash Core Service
name: Clash Core Service
description: Clash Core Service started by Clash for Windows
executable: clash-core-service
log:
mode: none
================================================
FILE: app/clash_core/win32-ia32/static/files/win/common/tun2socks/add_tap_device.bat
================================================
:: Copyright 2018 The Outline Authors
::
:: Licensed under the Apache License, Version 2.0 (the "License");
:: you may not use this file except in compliance with the License.
:: You may obtain a copy of the License at
::
:: http://www.apache.org/licenses/LICENSE-2.0
::
:: Unless required by applicable law or agreed to in writing, software
:: distributed under the License is distributed on an "AS IS" BASIS,
:: WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
:: See the License for the specific language governing permissions and
:: limitations under the License.
@echo off
:: See https://ss64.com/nt/delayedexpansion.html
setlocal enabledelayedexpansion
set DEVICE_NAME=cfw-tap
set DEVICE_HWID=tap0901
set SCRIPT_DIR=%~dp0
set ARCH=%1
set IP=%2
set SUBNET=%3
set GATEWAY=%4
:: Error codes for surfacing to the user and sentry.
set ERROR_TAP_INSTALL=1
set ERROR_TAP_FIND_NAME=2
set ERROR_TAP_RENAME=3
set ERROR_TAP_CONFIGURE_SUBNET=4
set ERROR_TAP_CONFIGURE_DNS=5
:: Because we've seen multiple failures due to commands (netsh, etc.) not being
:: found, append some common directories to the PATH.
::
:: Note:
:: - %SystemRoot% almost always expands to c:\windows.
:: - Do *not* surround with quotes.
set PATH=%PATH%;%SystemRoot%\system32;%SystemRoot%\system32\wbem;%SystemRoot%\system32\WindowsPowerShell/v1.0
:: Check whether the device already exists.
netsh interface show interface name=%DEVICE_NAME%
if %errorlevel% equ 0 (
echo TAP network device already exists.
goto :configure
)
echo Creating TAP network device...
"%SCRIPT_DIR%\%ARCH%\tapinstall" install "%SCRIPT_DIR%\%ARCH%\OemVista.inf" %DEVICE_HWID%
if %errorlevel% neq 0 (
echo Could not create TAP network device. Try to do it manually. >&2
REM exit /b %ERROR_TAP_INSTALL%
start /wait /D "%SCRIPT_DIR%" tap-windows-installer.exe
)
:: Find the name of the most recently installed TAP device in the registry and rename it.
echo Searching for new TAP network device name...
call "%SCRIPT_DIR%\find_tap_device_name.bat" TAP_NAME
if %errorlevel% neq 0 (
echo Could not find TAP device name. >&2
exit /b %ERROR_TAP_FIND_NAME%
)
echo Found TAP device name: "%TAP_NAME%"
:: We've occasionally seen delays before netsh will "see" the new device, at least for
:: purposes of configuring IP and DNS ("netsh interface show interface name=xxx" does not
:: seem to be affected).
call :wait_for_device "%TAP_NAME%"
:: Attempt to rename the device even if waiting timed out.
netsh interface set interface name="%TAP_NAME%" newname="%DEVICE_NAME%"
if %errorlevel% neq 0 (
:: Try to rename the device through powershell in case netsh failed due to not being able to "see"
:: the device. Pipe input from /dev/null to prevent powershell from waiting forever on EOF.
powershell "Rename-NetAdapter -Name \"%TAP_NAME%\" -NewName \"%DEVICE_NAME%\"" <nul
:: Note that we use delayed variable expansion inside a control block to check errorlevel.
if !errorlevel! neq 0 (
echo Could not rename TAP device. >&2
exit /b %ERROR_TAP_RENAME%
)
)
:: Wait for the new name to propagate to netsh.
call :wait_for_device "%DEVICE_NAME%"
:: Attempt to configure the device even if waiting timed out.
:configure
:: Try to enable the device, in case it's somehow been disabled.
::
:: Annoyingly, this returns an error and outputs a confusing message if the device exists and is
:: already enabled:
:: This network connection does not exist.
::
:: So, continue even if this command fails - and always include its output.
echo (Re-)enabling TAP network device...
netsh interface set interface "%DEVICE_NAME%" admin=enabled
:: The powershell command is used to ensure the adapter is enabled if netsh fails and leaves it in
:: a disabled state. While no such failure has yet been observed, this command would correct it and
:: should behave idempotently otherwise.
powershell "Enable-NetAdapter -Name \"%DEVICE_NAME%\"" <nul
:: Give the device an IP address.
:: 10.0.85.x is a guess which we hope will work for most users (Docker for
:: Windows uses 10.0.75.x by default): if the address is already in use the
:: script will fail and the installer will show an error message to the user.
:: TODO: Actually search the system for an unused subnet or make the subnet
:: configurable in the Outline client.
echo Configuring TAP device subnet...
netsh interface ip set address %DEVICE_NAME% static %IP% %SUBNET% %GATEWAY%
if %errorlevel% neq 0 (
echo Could not set TAP network device subnet. >&2
exit /b %ERROR_TAP_CONFIGURE_SUBNET%
)
:: Windows has no system-wide DNS server; each network device can have its
:: "own" set of DNS servers. Windows seems to use the DNS server(s) of the
:: network device associated with the default gateway. This is good for us
:: as it means we do not have to modify the DNS settings of any other network
:: device in the system. Configure with OpenDNS and Dyn resolvers.
echo Configuring primary DNS...
netsh interface ip set dnsservers %DEVICE_NAME% static address=%IP%
if %errorlevel% neq 0 (
echo Could not configure TAP device primary DNS. >&2
exit /b %ERROR_TAP_CONFIGURE_DNS%
)
echo Setting interface metric (1) for this interface...
powershell "Set-NetIPInterface -InterfaceAlias \"%DEVICE_NAME%\" -InterfaceMetric 1" <nul
if %errorlevel% neq 0 (
echo Could not set interface metric. >&2
exit /b 1
)
echo TAP network device added and configured successfully
exit /b 0
:: Waits up to a minute until a device is visible to netsh. Accepts the device name as a parameter.
:: Exits with a non-zero code if the operation times out.
:wait_for_device
echo Testing that the network device "%~1" is visible to netsh...
netsh interface ip show interfaces | find "%~1" >nul 2>&1
if %errorlevel% equ 0 exit /b 0
for /l %%N in (1, 1, 6) do (
echo Waiting... %%N
:: timeout doesn't like the environment created by nsExec::ExecToStack and exits with:
:: "ERROR: Input redirection is not supported, exiting the process immediately."
waitfor /t 10 thisisnotarealsignalname >nul 2>&1
netsh interface ip show interfaces | find "%~1" >nul 2>&1
if !errorlevel! equ 0 exit /b 0
)
exit /b 1
================================================
FILE: app/clash_core/win32-ia32/static/files/win/common/tun2socks/amd64/OemVista.inf
================================================
; ****************************************************************************
; * Copyright (C) 2002-2014 OpenVPN Technologies, Inc. *
; * This program is free software; you can redistribute it and/or modify *
; * it under the terms of the GNU General Public License version 2 *
; * as published by the Free Software Foundation. *
; ****************************************************************************
; SYNTAX CHECKER
; cd \WINDDK\3790\tools\chkinf
; chkinf c:\src\openvpn\tap-win32\i386\oemvista.inf
; OUTPUT -> file:///c:/WINDDK/3790/tools/chkinf/htm/c%23+src+openvpn+tap-win32+i386+__OemWin2k.htm
; INSTALL/REMOVE DRIVER
; tapinstall install OemVista.inf tapoas
; tapinstall update OemVista.inf tapoas
; tapinstall remove tapoas
;*********************************************************
; Note to Developers:
;
; If you are bundling the TAP-Windows driver with your app,
; you should try to rename it in such a way that it will
; not collide with other instances of TAP-Windows defined
; by other apps. Multiple versions of the TAP-Windows
; driver, each installed by different apps, can coexist
; on the same machine if you follow these guidelines.
; NOTE: these instructions assume you are editing the
; generated OemWin2k.inf file, not the source
; OemWin2k.inf.in file which is preprocessed by winconfig
; and uses macro definitions from settings.in.
;
; (1) Rename all tapXXXX instances in this file to
; something different (use at least 5 characters
; for this name!)
; (2) Change the "!define TAP" definition in openvpn.nsi
; to match what you changed tapXXXX to.
; (3) Change TARGETNAME in SOURCES to match what you
; changed tapXXXX to.
; (4) Change TAP_COMPONENT_ID in common.h to match what
; you changed tapXXXX to.
; (5) Change SZDEPENDENCIES in service.h to match what
; you changed tapXXXX to.
; (6) Change DeviceDescription and Provider strings.
; (7) Change PRODUCT_TAP_WIN_DEVICE_DESCRIPTION in constants.h to what you
; set DeviceDescription to.
;
;*********************************************************
[Version]
Signature = "$Windows NT$"
CatalogFile = tap0901.cat
ClassGUID = {4d36e972-e325-11ce-bfc1-08002be10318}
Provider = %Provider%
Class = Net
; This version number should match the version
; number given in ..\version.m4.
DriverVer = 04/16/2019,9.23.1.601
[Strings]
DeviceDescription = "TAP-Windows Adapter V9"
Provider = "TAP-Windows Provider V9"
;----------------------------------------------------------------
; Manufacturer + Product Section (Done)
;----------------------------------------------------------------
[Manufacturer]
%Provider% = tap0901, NTamd64
[tap0901.NTamd64]
%DeviceDescription% = tap0901.ndi, root\tap0901 ; Root enumerated
%DeviceDescription% = tap0901.ndi, tap0901 ; Legacy
;---------------------------------------------------------------
; Driver Section (Done)
;---------------------------------------------------------------
;----------------- Characteristics ------------
; NCF_PHYSICAL = 0x04
; NCF_VIRTUAL = 0x01
; NCF_SOFTWARE_ENUMERATED = 0x02
; NCF_HIDDEN = 0x08
; NCF_NO_SERVICE = 0x10
; NCF_HAS_UI = 0x80
;----------------- Characteristics ------------
[tap0901.ndi]
CopyFiles = tap0901.driver, tap0901.files
AddReg = tap0901.reg
AddReg = tap0901.params.reg
Characteristics = 0x81
*IfType = 0x6 ; IF_TYPE_ETHERNET_CSMACD
*MediaType = 0x0 ; NdisMedium802_3
*PhysicalMediaType = 14 ; NdisPhysicalMedium802_3
[tap0901.ndi.Services]
AddService = tap0901, 2, tap0901.service
[tap0901.reg]
HKR, Ndi, Service, 0, "tap0901"
HKR, Ndi\Interfaces, UpperRange, 0, "ndis5"
HKR, Ndi\Interfaces, LowerRange, 0, "ethernet"
HKR, , Manufacturer, 0, "%Provider%"
HKR, , ProductName, 0, "%DeviceDescription%"
[tap0901.params.reg]
HKR, Ndi\params\MTU, ParamDesc, 0, "MTU"
HKR, Ndi\params\MTU, Type, 0, "int"
HKR, Ndi\params\MTU, Default, 0, "1500"
HKR, Ndi\params\MTU, Optional, 0, "0"
HKR, Ndi\params\MTU, Min, 0, "100"
HKR, Ndi\params\MTU, Max, 0, "1500"
HKR, Ndi\params\MTU, Step, 0, "1"
HKR, Ndi\params\MediaStatus, ParamDesc, 0, "Media Status"
HKR, Ndi\params\MediaStatus, Type, 0, "enum"
HKR, Ndi\params\MediaStatus, Default, 0, "0"
HKR, Ndi\params\MediaStatus, Optional, 0, "0"
HKR, Ndi\params\MediaStatus\enum, "0", 0, "Application Controlled"
HKR, Ndi\params\MediaStatus\enum, "1", 0, "Always Connected"
HKR, Ndi\params\MAC, ParamDesc, 0, "MAC Address"
HKR, Ndi\params\MAC, Type, 0, "edit"
HKR, Ndi\params\MAC, Optional, 0, "1"
HKR, Ndi\params\AllowNonAdmin, ParamDesc, 0, "Non-Admin Access"
HKR, Ndi\params\AllowNonAdmin, Type, 0, "enum"
HKR, Ndi\params\AllowNonAdmin, Default, 0, "1"
HKR, Ndi\params\AllowNonAdmin, Optional, 0, "0"
HKR, Ndi\params\AllowNonAdmin\enum, "0", 0, "Not Allowed"
HKR, Ndi\params\AllowNonAdmin\enum, "1", 0, "Allowed"
;----------------------------------------------------------------
; Service Section
;----------------------------------------------------------------
;---------- Service Type -------------
; SERVICE_KERNEL_DRIVER = 0x01
; SERVICE_WIN32_OWN_PROCESS = 0x10
;---------- Service Type -------------
;---------- Start Mode ---------------
; SERVICE_BOOT_START = 0x0
; SERVICE_SYSTEM_START = 0x1
; SERVICE_AUTO_START = 0x2
; SERVICE_DEMAND_START = 0x3
; SERVICE_DISABLED = 0x4
;---------- Start Mode ---------------
[tap0901.service]
DisplayName = %DeviceDescription%
ServiceType = 1
StartType = 3
ErrorControl = 1
LoadOrderGroup = NDIS
ServiceBinary = %12%\tap0901.sys
;-----------------------------------------------------------------
; File Installation
;-----------------------------------------------------------------
;----------------- Copy Flags ------------
; COPYFLG_NOSKIP = 0x02
; COPYFLG_NOVERSIONCHECK = 0x04
;----------------- Copy Flags ------------
; SourceDisksNames
; diskid = description[, [tagfile] [, <unused>, subdir]]
; 1 = "Intel Driver Disk 1",e100bex.sys,,
[SourceDisksNames]
1 = %DeviceDescription%, tap0901.sys
; SourceDisksFiles
; filename_on_source = diskID[, [subdir][, size]]
; e100bex.sys = 1,, ; on distribution disk 1
[SourceDisksFiles]
tap0901.sys = 1
[DestinationDirs]
tap0901.files = 11
tap0901.driver = 12
[tap0901.files]
; TapPanel.cpl,,,6 ; COPYFLG_NOSKIP | COPYFLG_NOVERSIONCHECK
; cipsrvr.exe,,,6 ; COPYFLG_NOSKIP | COPYFLG_NOVERSIONCHECK
[tap0901.driver]
tap0901.sys,,,6 ; COPYFLG_NOSKIP | COPYFLG_NOVERSIONCHECK
;---------------------------------------------------------------
; End
;---------------------------------------------------------------
================================================
FILE: app/clash_core/win32-ia32/static/files/win/common/tun2socks/find_tap_device_name.bat
================================================
:: Copyright 2020 The Outline Authors
::
:: Licensed under the Apache License, Version 2.0 (the "License");
:: you may not use this file except in compliance with the License.
:: You may obtain a copy of the License at
::
:: http://www.apache.org/licenses/LICENSE-2.0
::
:: Unless required by applicable law or agreed to in writing, software
:: distributed under the License is distributed on an "AS IS" BASIS,
:: WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
:: See the License for the specific language governing permissions and
:: limitations under the License.
:: Queries the registry in order to retrieve the most recently installed TAP network adapter's name.
:: Accepts a single argument, the name of an environment variable to store the adapter's name.
:: Exits with a non-zero exit code on failure.
:: Usage example: find_tap_name.bat TAP_NAME
@echo off
:: See https://ss64.com/nt/delayedexpansion.html
setlocal enabledelayedexpansion
set NET_ADAPTERS_CLASS_GUID={4D36E972-E325-11CE-BFC1-08002BE10318}
set NET_ADAPTERS_KEY=HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\%NET_ADAPTERS_CLASS_GUID%
set NET_CONFIG_KEY=HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Network\%NET_ADAPTERS_CLASS_GUID%
set NET_ADAPTERS_FILE="%tmp%\netadapters.txt"
:: Find all network adapters that match the "tap0901" component ID and store their registry path in a file.
:: Note that adapter keys are increasing four-digit integers, padded with leading zeros.
reg query %NET_ADAPTERS_KEY% /s /f "tap0901" /e /d | findstr "HKEY.*\\[0-9][0-9][0-9][0-9]$" > %NET_ADAPTERS_FILE%
if %errorlevel% neq 0 (
echo Could not find TAP network adapter in the registry. >&2
exit /b 1
)
set TIMESTAMP=0
set NAME=
for /f "tokens=*" %%K in ('type "%NET_ADAPTERS_FILE%"') do (
set ADAPTER_NAME=
set ADAPTER_NET_CONFIG_ID=
set ADAPTER_TIMESTAMP=
:: Retrieve the adapter's network config ID.
set ADAPTER_KEY=%%K
for /f "tokens=3" %%I in ('reg query !ADAPTER_KEY! /v "NetCfgInstanceId"') do (
set ADAPTER_NET_CONFIG_ID=%%I
)
:: Retrieve the adapter's install timestamp.
for /f "tokens=3" %%T in ('reg query !ADAPTER_KEY! /v "InstallTimeStamp"') do (
set ADAPTER_TIMESTAMP=%%T
)
:: Retrieve the adapter's name.
set ADAPTER_CONFIG_KEY=!NET_CONFIG_KEY!\!ADAPTER_NET_CONFIG_ID!\Connection
for /f "tokens=3*" %%N in ('reg query !ADAPTER_CONFIG_KEY! /v "Name"') do (
:: If the name contains spaces our tokenization will store the rest of the name in %%O.
if [%%O] == [] (
set ADAPTER_NAME=%%N
) else (
set ADAPTER_NAME=%%N %%O
)
)
:: Ensure we found the adapter's install timestamp and name.
if not [!ADAPTER_TIMESTAMP!] == [] (
if not [!ADAPTER_NAME!] == [] (
echo Found adapter "!ADAPTER_NAME!", !ADAPTER_TIMESTAMP!
:: Store the adapter's name if it's the most recently installed one.
if !ADAPTER_TIMESTAMP! gtr !TIMESTAMP! (
set TIMESTAMP=!ADAPTER_TIMESTAMP!
set NAME=!ADAPTER_NAME!
)
) else (
echo Failed to retrieve name of adapter !ADAPTER_KEY! >&2
)
) else (
echo Failed to retrieve install timestamp of adapter !ADAPTER_KEY! >&2
)
)
if [!NAME!] == [] (
echo Could not find TAP adapter name. >&2
exit /b 1
)
echo TAP device name: "!NAME!"
endlocal & set "%1=%NAME%"
exit /b 0
================================================
FILE: app/clash_core/win32-ia32/static/files/win/common/tun2socks/i386/OemVista.inf
================================================
; ****************************************************************************
; * Copyright (C) 2002-2014 OpenVPN Technologies, Inc. *
; * This program is free software; you can redistribute it and/or modify *
; * it under the terms of the GNU General Public License version 2 *
; * as published by the Free Software Foundation. *
; ****************************************************************************
; SYNTAX CHECKER
; cd \WINDDK\3790\tools\chkinf
; chkinf c:\src\openvpn\tap-win32\i386\oemvista.inf
; OUTPUT -> file:///c:/WINDDK/3790/tools/chkinf/htm/c%23+src+openvpn+tap-win32+i386+__OemWin2k.htm
; INSTALL/REMOVE DRIVER
; tapinstall install OemVista.inf tapoas
; tapinstall update OemVista.inf tapoas
; tapinstall remove tapoas
;*********************************************************
; Note to Developers:
;
; If you are bundling the TAP-Windows driver with your app,
; you should try to rename it in such a way that it will
; not collide with other instances of TAP-Windows defined
; by other apps. Multiple versions of the TAP-Windows
; driver, each installed by different apps, can coexist
; on the same machine if you follow these guidelines.
; NOTE: these instructions assume you are editing the
; generated OemWin2k.inf file, not the source
; OemWin2k.inf.in file which is preprocessed by winconfig
; and uses macro definitions from settings.in.
;
; (1) Rename all tapXXXX instances in this file to
; something different (use at least 5 characters
; for this name!)
; (2) Change the "!define TAP" definition in openvpn.nsi
; to match what you changed tapXXXX to.
; (3) Change TARGETNAME in SOURCES to match what you
; changed tapXXXX to.
; (4) Change TAP_COMPONENT_ID in common.h to match what
; you changed tapXXXX to.
; (5) Change SZDEPENDENCIES in service.h to match what
; you changed tapXXXX to.
; (6) Change DeviceDescription and Provider strings.
; (7) Change PRODUCT_TAP_WIN_DEVICE_DESCRIPTION in constants.h to what you
; set DeviceDescription to.
;
;*********************************************************
[Version]
Signature = "$Windows NT$"
CatalogFile = tap0901.cat
ClassGUID = {4d36e972-e325-11ce-bfc1-08002be10318}
Provider = %Provider%
Class = Net
; This version number should match the version
; number given in SOURCES.
DriverVer=04/21/2016,9.00.00.21
[Strings]
DeviceDescription = "TAP-Windows Adapter V9"
Provider = "TAP-Windows Provider V9"
;----------------------------------------------------------------
; Manufacturer + Product Section (Done)
;----------------------------------------------------------------
[Manufacturer]
%Provider% = tap0901
[tap0901]
%DeviceDescription% = tap0901.ndi, root\tap0901 ; Root enumerated
%DeviceDescription% = tap0901.ndi, tap0901 ; Legacy
;---------------------------------------------------------------
; Driver Section (Done)
;---------------------------------------------------------------
;----------------- Characteristics ------------
; NCF_PHYSICAL = 0x04
; NCF_VIRTUAL = 0x01
; NCF_SOFTWARE_ENUMERATED = 0x02
; NCF_HIDDEN = 0x08
; NCF_NO_SERVICE = 0x10
; NCF_HAS_UI = 0x80
;----------------- Characteristics ------------
[tap0901.ndi]
CopyFiles = tap0901.driver, tap0901.files
AddReg = tap0901.reg
AddReg = tap0901.params.reg
Characteristics =
*IfType = 0x6 ; IF_TYPE_ETHERNET_CSMACD
*MediaType = 0x0 ; NdisMedium802_3
*PhysicalMediaType = 14 ; NdisPhysicalMedium802_3
[tap0901.ndi.Services]
AddService = tap0901, 2, tap0901.service
[tap0901.reg]
HKR, Ndi, Service, 0, "tap0901"
HKR, Ndi\Interfaces, UpperRange, 0, "ndis5"
HKR, Ndi\Interfaces, LowerRange, 0, "ethernet"
HKR, , Manufacturer, 0, "%Provider%"
HKR, , ProductName, 0, "%DeviceDescription%"
[tap0901.params.reg]
HKR, Ndi\params\MTU, ParamDesc, 0, "MTU"
HKR, Ndi\params\MTU, Type, 0, "int"
HKR, Ndi\params\MTU, Default, 0, "1500"
HKR, Ndi\params\MTU, Optional, 0, "0"
HKR, Ndi\params\MTU, Min, 0, "100"
HKR, Ndi\params\MTU, Max, 0, "1500"
HKR, Ndi\params\MTU, Step, 0, "1"
HKR, Ndi\params\MediaStatus, ParamDesc, 0, "Media Status"
HKR, Ndi\params\MediaStatus, Type, 0, "enum"
HKR, Ndi\params\MediaStatus, Default, 0, "0"
HKR, Ndi\params\MediaStatus, Optional, 0, "0"
HKR, Ndi\params\MediaStatus\enum, "0", 0, "Application Controlled"
HKR, Ndi\params\MediaStatus\enum, "1", 0, "Always Connected"
HKR, Ndi\params\MAC, ParamDesc, 0, "MAC Address"
HKR, Ndi\params\MAC, Type, 0, "edit"
HKR, Ndi\params\MAC, Optional, 0, "1"
HKR, Ndi\params\AllowNonAdmin, ParamDesc, 0, "Non-Admin Access"
HKR, Ndi\params\AllowNonAdmin, Type, 0, "enum"
HKR, Ndi\params\AllowNonAdmin, Default, 0, "1"
HKR, Ndi\params\AllowNonAdmin, Optional, 0, "0"
HKR, Ndi\params\AllowNonAdmin\enum, "0", 0, "Not Allowed"
HKR, Ndi\params\AllowNonAdmin\enum, "1", 0, "Allowed"
;----------------------------------------------------------------
; Service Section
;----------------------------------------------------------------
;---------- Service Type -------------
; SERVICE_KERNEL_DRIVER = 0x01
; SERVICE_WIN32_OWN_PROCESS = 0x10
;---------- Service Type -------------
;---------- Start Mode ---------------
; SERVICE_BOOT_START = 0x0
; SERVICE_SYSTEM_START = 0x1
; SERVICE_AUTO_START = 0x2
; SERVICE_DEMAND_START = 0x3
; SERVICE_DISABLED = 0x4
;---------- Start Mode ---------------
[tap0901.service]
DisplayName = %DeviceDescription%
ServiceType = 1
StartType = 3
ErrorControl = 1
LoadOrderGroup = NDIS
ServiceBinary = %12%\tap0901.sys
;-----------------------------------------------------------------
; File Installation
;-----------------------------------------------------------------
;----------------- Copy Flags ------------
; COPYFLG_NOSKIP = 0x02
; COPYFLG_NOVERSIONCHECK = 0x04
;----------------- Copy Flags ------------
; SourceDisksNames
; diskid = description[, [tagfile] [, <unused>, subdir]]
; 1 = "Intel Driver Disk 1",e100bex.sys,,
[SourceDisksNames]
1 = %DeviceDescription%, tap0901.sys
; SourceDisksFiles
; filename_on_source = diskID[, [subdir][, size]]
; e100bex.sys = 1,, ; on distribution disk 1
[SourceDisksFiles]
tap0901.sys = 1
[DestinationDirs]
tap0901.files = 11
tap0901.driver = 12
[tap0901.files]
; TapPanel.cpl,,,6 ; COPYFLG_NOSKIP | COPYFLG_NOVERSIONCHECK
; cipsrvr.exe,,,6 ; COPYFLG_NOSKIP | COPYFLG_NOVERSIONCHECK
[tap0901.driver]
tap0901.sys,,,6 ; COPYFLG_NOSKIP | COPYFLG_NOVERSIONCHECK
;---------------------------------------------------------------
; End
;---------------------------------------------------------------
================================================
FILE: app/clash_core/win32-ia32/static/files/win/common/tun2socks/remove_tap_device.bat
================================================
@echo off
setlocal
set DEVICE_NAME=cfw-tap
set DEVICE_HWID=tap0901
set SCRIPT_DIR=%~dp0
set ARCH=%1
set PATH=%PATH%;%SystemRoot%\system32;%SystemRoot%\system32\wbem;%SystemRoot%\system32\WindowsPowerShell/v1.0
echo Removing old TAP network device...
"%SCRIPT_DIR%\%ARCH%\tapinstall" remove %DEVICE_HWID%
if %errorlevel% neq 0 (
echo Could not remove TAP network device. >&2
exit /b 1
)
================================================
FILE: app/clash_core/win32-ia32/static/files/win/ia32/clash-win32.exe.sign
================================================
3VaQI4a8c85DFudDHL1gSc6TUm49Hf9TxMf337ImoDXvTDwOf/XngT1FyzatFgZ+h1FBT5uEqlJFcAKKkVvY1w==
================================================
FILE: app/clash_core/win_x64/static/files/win/common/schtasks.xml
================================================
<?xml version="1.0" encoding="UTF-16"?>
<Task version="1.2" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task">
<Triggers>
<LogonTrigger>
<Enabled>true</Enabled>
</LogonTrigger>
</Triggers>
<Settings>
<MultipleInstancesPolicy>StopExisting</MultipleInstancesPolicy>
<DisallowStartIfOnBatteries>false</DisallowStartIfOnBatteries>
<StopIfGoingOnBatteries>false</StopIfGoingOnBatteries>
<AllowHardTerminate>false</AllowHardTerminate>
<StartWhenAvailable>true</StartWhenAvailable>
<RunOnlyIfNetworkAvailable>false</RunOnlyIfNetworkAvailable>
<IdleSettings>
<StopOnIdleEnd>true</StopOnIdleEnd>
<RestartOnIdle>false</RestartOnIdle>
</IdleSettings>
<AllowStartOnDemand>true</AllowStartOnDemand>
<Enabled>true</Enabled>
<Hidden>false</Hidden>
<RunOnlyIfIdle>false</RunOnlyIfIdle>
<WakeToRun>false</WakeToRun>
<ExecutionTimeLimit>PT0S</ExecutionTimeLimit>
<Priority>7</Priority>
<RestartOnFailure>
<Interval>PT1M</Interval>
<Count>5</Count>
</RestartOnFailure>
</Settings>
<Actions Context="Author">
<Exec>
<Command>""</Command>
</Exec>
</Actions>
</Task>
================================================
FILE: app/clash_core/win_x64/static/files/win/common/service.yml
================================================
id: Clash Core Service
name: Clash Core Service
description: Clash Core Service started by Clash for Windows
executable: clash-core-service
log:
mode: none
================================================
FILE: app/clash_core/win_x64/static/files/win/common/tun2socks/add_tap_device.bat
================================================
:: Copyright 2018 The Outline Authors
::
:: Licensed under the Apache License, Version 2.0 (the "License");
:: you may not use this file except in compliance with the License.
:: You may obtain a copy of the License at
::
:: http://www.apache.org/licenses/LICENSE-2.0
::
:: Unless required by applicable law or agreed to in writing, software
:: distributed under the License is distributed on an "AS IS" BASIS,
:: WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
:: See the License for the specific language governing permissions and
:: limitations under the License.
@echo off
:: See https://ss64.com/nt/delayedexpansion.html
setlocal enabledelayedexpansion
set DEVICE_NAME=cfw-tap
set DEVICE_HWID=tap0901
set SCRIPT_DIR=%~dp0
set ARCH=%1
set IP=%2
set SUBNET=%3
set GATEWAY=%4
:: Error codes for surfacing to the user and sentry.
set ERROR_TAP_INSTALL=1
set ERROR_TAP_FIND_NAME=2
set ERROR_TAP_RENAME=3
set ERROR_TAP_CONFIGURE_SUBNET=4
set ERROR_TAP_CONFIGURE_DNS=5
:: Because we've seen multiple failures due to commands (netsh, etc.) not being
:: found, append some common directories to the PATH.
::
:: Note:
:: - %SystemRoot% almost always expands to c:\windows.
:: - Do *not* surround with quotes.
set PATH=%PATH%;%SystemRoot%\system32;%SystemRoot%\system32\wbem;%SystemRoot%\system32\WindowsPowerShell/v1.0
:: Check whether the device already exists.
netsh interface show interface name=%DEVICE_NAME%
if %errorlevel% equ 0 (
echo TAP network device already exists.
goto :configure
)
echo Creating TAP network device...
"%SCRIPT_DIR%\%ARCH%\tapinstall" install "%SCRIPT_DIR%\%ARCH%\OemVista.inf" %DEVICE_HWID%
if %errorlevel% neq 0 (
echo Could not create TAP network device. Try to do it manually. >&2
REM exit /b %ERROR_TAP_INSTALL%
start /wait /D "%SCRIPT_DIR%" tap-windows-installer.exe
)
:: Find the name of the most recently installed TAP device in the registry and rename it.
echo Searching for new TAP network device name...
call "%SCRIPT_DIR%\find_tap_device_name.bat" TAP_NAME
if %errorlevel% neq 0 (
echo Could not find TAP device name. >&2
exit /b %ERROR_TAP_FIND_NAME%
)
echo Found TAP device name: "%TAP_NAME%"
:: We've occasionally seen delays before netsh will "see" the new device, at least for
:: purposes of configuring IP and DNS ("netsh interface show interface name=xxx" does not
:: seem to be affected).
call :wait_for_device "%TAP_NAME%"
:: Attempt to rename the device even if waiting timed out.
netsh interface set interface name="%TAP_NAME%" newname="%DEVICE_NAME%"
if %errorlevel% neq 0 (
:: Try to rename the device through powershell in case netsh failed due to not being able to "see"
:: the device. Pipe input from /dev/null to prevent powershell from waiting forever on EOF.
powershell "Rename-NetAdapter -Name \"%TAP_NAME%\" -NewName \"%DEVICE_NAME%\"" <nul
:: Note that we use delayed variable expansion inside a control block to check errorlevel.
if !errorlevel! neq 0 (
echo Could not rename TAP device. >&2
exit /b %ERROR_TAP_RENAME%
)
)
:: Wait for the new name to propagate to netsh.
call :wait_for_device "%DEVICE_NAME%"
:: Attempt to configure the device even if waiting timed out.
:configure
:: Try to enable the device, in case it's somehow been disabled.
::
:: Annoyingly, this returns an error and outputs a confusing message if the device exists and is
:: already enabled:
:: This network connection does not exist.
::
:: So, continue even if this command fails - and always include its output.
echo (Re-)enabling TAP network device...
netsh interface set interface "%DEVICE_NAME%" admin=enabled
:: The powershell command is used to ensure the adapter is enabled if netsh fails and leaves it in
:: a disabled state. While no such failure has yet been observed, this command would correct it and
:: should behave idempotently otherwise.
powershell "Enable-NetAdapter -Name \"%DEVICE_NAME%\"" <nul
:: Give the device an IP address.
:: 10.0.85.x is a guess which we hope will work for most users (Docker for
:: Windows uses 10.0.75.x by default): if the address is already in use the
:: script will fail and the installer will show an error message to the user.
:: TODO: Actually search the system for an unused subnet or make the subnet
:: configurable in the Outline client.
echo Configuring TAP device subnet...
netsh interface ip set address %DEVICE_NAME% static %IP% %SUBNET% %GATEWAY%
if %errorlevel% neq 0 (
echo Could not set TAP network device subnet. >&2
exit /b %ERROR_TAP_CONFIGURE_SUBNET%
)
:: Windows has no system-wide DNS server; each network device can have its
:: "own" set of DNS servers. Windows seems to use the DNS server(s) of the
:: network device associated with the default gateway. This is good for us
:: as it means we do not have to modify the DNS settings of any other network
:: device in the system. Configure with OpenDNS and Dyn resolvers.
echo Configuring primary DNS...
netsh interface ip set dnsservers %DEVICE_NAME% static address=%IP%
if %errorlevel% neq 0 (
echo Could not configure TAP device primary DNS. >&2
exit /b %ERROR_TAP_CONFIGURE_DNS%
)
echo Setting interface metric (1) for this interface...
powershell "Set-NetIPInterface -InterfaceAlias \"%DEVICE_NAME%\" -InterfaceMetric 1" <nul
if %errorlevel% neq 0 (
echo Could not set interface metric. >&2
exit /b 1
)
echo TAP network device added and configured successfully
exit /b 0
:: Waits up to a minute until a device is visible to netsh. Accepts the device name as a parameter.
:: Exits with a non-zero code if the operation times out.
:wait_for_device
echo Testing that the network device "%~1" is visible to netsh...
netsh interface ip show interfaces | find "%~1" >nul 2>&1
if %errorlevel% equ 0 exit /b 0
for /l %%N in (1, 1, 6) do (
echo Waiting... %%N
:: timeout doesn't like the environment created by nsExec::ExecToStack and exits with:
:: "ERROR: Input redirection is not supported, exiting the process immediately."
waitfor /t 10 thisisnotarealsignalname >nul 2>&1
netsh interface ip show interfaces | find "%~1" >nul 2>&1
if !errorlevel! equ 0 exit /b 0
)
exit /b 1
================================================
FILE: app/clash_core/win_x64/static/files/win/common/tun2socks/amd64/OemVista.inf
================================================
; ****************************************************************************
; * Copyright (C) 2002-2014 OpenVPN Technologies, Inc. *
; * This program is free software; you can redistribute it and/or modify *
; * it under the terms of the GNU General Public License version 2 *
; * as published by the Free Software Foundation. *
; ****************************************************************************
; SYNTAX CHECKER
; cd \WINDDK\3790\tools\chkinf
; chkinf c:\src\openvpn\tap-win32\i386\oemvista.inf
; OUTPUT -> file:///c:/WINDDK/3790/tools/chkinf/htm/c%23+src+openvpn+tap-win32+i386+__OemWin2k.htm
; INSTALL/REMOVE DRIVER
; tapinstall install OemVista.inf tapoas
; tapinstall update OemVista.inf tapoas
; tapinstall remove tapoas
;*********************************************************
; Note to Developers:
;
; If you are bundling the TAP-Windows driver with your app,
; you should try to rename it in such a way that it will
; not collide with other instances of TAP-Windows defined
; by other apps. Multiple versions of the TAP-Windows
; driver, each installed by different apps, can coexist
; on the same machine if you follow these guidelines.
; NOTE: these instructions assume you are editing the
; generated OemWin2k.inf file, not the source
; OemWin2k.inf.in file which is preprocessed by winconfig
; and uses macro definitions from settings.in.
;
; (1) Rename all tapXXXX instances in this file to
; something different (use at least 5 characters
; for this name!)
; (2) Change the "!define TAP" definition in openvpn.nsi
; to match what you changed tapXXXX to.
; (3) Change TARGETNAME in SOURCES to match what you
; changed tapXXXX to.
; (4) Change TAP_COMPONENT_ID in common.h to match what
; you changed tapXXXX to.
; (5) Change SZDEPENDENCIES in service.h to match what
; you changed tapXXXX to.
; (6) Change DeviceDescription and Provider strings.
; (7) Change PRODUCT_TAP_WIN_DEVICE_DESCRIPTION in constants.h to what you
; set DeviceDescription to.
;
;*********************************************************
[Version]
Signature = "$Windows NT$"
CatalogFile = tap0901.cat
ClassGUID = {4d36e972-e325-11ce-bfc1-08002be10318}
Provider = %Provider%
Class = Net
; This version number should match the version
; number given in ..\version.m4.
DriverVer = 04/16/2019,9.23.1.601
[Strings]
DeviceDescription = "TAP-Windows Adapter V9"
Provider = "TAP-Windows Provider V9"
;----------------------------------------------------------------
; Manufacturer + Product Section (Done)
;----------------------------------------------------------------
[Manufacturer]
%Provider% = tap0901, NTamd64
[tap0901.NTamd64]
%DeviceDescription% = tap0901.ndi, root\tap0901 ; Root enumerated
%DeviceDescription% = tap0901.ndi, tap0901 ; Legacy
;---------------------------------------------------------------
; Driver Section (Done)
;---------------------------------------------------------------
;----------------- Characteristics ------------
; NCF_PHYSICAL = 0x04
; NCF_VIRTUAL = 0x01
; NCF_SOFTWARE_ENUMERATED = 0x02
; NCF_HIDDEN = 0x08
; NCF_NO_SERVICE = 0x10
; NCF_HAS_UI = 0x80
;----------------- Characteristics ------------
[tap0901.ndi]
CopyFiles = tap0901.driver, tap0901.files
AddReg = tap0901.reg
AddReg = tap0901.params.reg
Characteristics = 0x81
*IfType = 0x6 ; IF_TYPE_ETHERNET_CSMACD
*MediaType = 0x0 ; NdisMedium802_3
*PhysicalMediaType = 14 ; NdisPhysicalMedium802_3
[tap0901.ndi.Services]
AddService = tap0901, 2, tap0901.service
[tap0901.reg]
HKR, Ndi, Service, 0, "tap0901"
HKR, Ndi\Interfaces, UpperRange, 0, "ndis5"
HKR, Ndi\Interfaces, LowerRange, 0, "ethernet"
HKR, , Manufacturer, 0, "%Provider%"
HKR, , ProductName, 0, "%DeviceDescription%"
[tap0901.params.reg]
HKR, Ndi\params\MTU, ParamDesc, 0, "MTU"
HKR, Ndi\params\MTU, Type, 0, "int"
HKR, Ndi\params\MTU, Default, 0, "1500"
HKR, Ndi\params\MTU, Optional, 0, "0"
HKR, Ndi\params\MTU, Min, 0, "100"
HKR, Ndi\params\MTU, Max, 0, "1500"
HKR, Ndi\params\MTU, Step, 0, "1"
HKR, Ndi\params\MediaStatus, ParamDesc, 0, "Media Status"
HKR, Ndi\params\MediaStatus, Type, 0, "enum"
HKR, Ndi\params\MediaStatus, Default, 0, "0"
HKR, Ndi\params\MediaStatus, Optional, 0, "0"
HKR, Ndi\params\MediaStatus\enum, "0", 0, "Application Controlled"
HKR, Ndi\params\MediaStatus\enum, "1", 0, "Always Connected"
HKR, Ndi\params\MAC, ParamDesc, 0, "MAC Address"
HKR, Ndi\params\MAC, Type, 0, "edit"
HKR, Ndi\params\MAC, Optional, 0, "1"
HKR, Ndi\params\AllowNonAdmin, ParamDesc, 0, "Non-Admin Access"
HKR, Ndi\params\AllowNonAdmin, Type, 0, "enum"
HKR, Ndi\params\AllowNonAdmin, Default, 0, "1"
HKR, Ndi\params\AllowNonAdmin, Optional, 0, "0"
HKR, Ndi\params\AllowNonAdmin\enum, "0", 0, "Not Allowed"
HKR, Ndi\params\AllowNonAdmin\enum, "1", 0, "Allowed"
;----------------------------------------------------------------
; Service Section
;----------------------------------------------------------------
;---------- Service Type -------------
; SERVICE_KERNEL_DRIVER = 0x01
; SERVICE_WIN32_OWN_PROCESS = 0x10
;---------- Service Type -------------
;---------- Start Mode ---------------
; SERVICE_BOOT_START = 0x0
; SERVICE_SYSTEM_START = 0x1
; SERVICE_AUTO_START = 0x2
; SERVICE_DEMAND_START = 0x3
; SERVICE_DISABLED = 0x4
;---------- Start Mode ---------------
[tap0901.service]
DisplayName = %DeviceDescription%
ServiceType = 1
StartType = 3
ErrorControl = 1
LoadOrderGroup = NDIS
ServiceBinary = %12%\tap0901.sys
;-----------------------------------------------------------------
; File Installation
;-----------------------------------------------------------------
;----------------- Copy Flags ------------
; COPYFLG_NOSKIP = 0x02
; COPYFLG_NOVERSIONCHECK = 0x04
;----------------- Copy Flags ------------
; SourceDisksNames
; diskid = description[, [tagfile] [, <unused>, subdir]]
; 1 = "Intel Driver Disk 1",e100bex.sys,,
[SourceDisksNames]
1 = %DeviceDescription%, tap0901.sys
; SourceDisksFiles
; filename_on_source = diskID[, [subdir][, size]]
; e100bex.sys = 1,, ; on distribution disk 1
[SourceDisksFiles]
tap0901.sys = 1
[DestinationDirs]
tap0901.files = 11
tap0901.driver = 12
[tap0901.files]
; TapPanel.cpl,,,6 ; COPYFLG_NOSKIP | COPYFLG_NOVERSIONCHECK
; cipsrvr.exe,,,6 ; COPYFLG_NOSKIP | COPYFLG_NOVERSIONCHECK
[tap0901.driver]
tap0901.sys,,,6 ; COPYFLG_NOSKIP | COPYFLG_NOVERSIONCHECK
;---------------------------------------------------------------
; End
;---------------------------------------------------------------
================================================
FILE: app/clash_core/win_x64/static/files/win/common/tun2socks/find_tap_device_name.bat
================================================
:: Copyright 2020 The Outline Authors
::
:: Licensed under the Apache License, Version 2.0 (the "License");
:: you may not use this file except in compliance with the License.
:: You may obtain a copy of the License at
::
:: http://www.apache.org/licenses/LICENSE-2.0
::
:: Unless required by applicable law or agreed to in writing, software
:: distributed under the License is distributed on an "AS IS" BASIS,
:: WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
:: See the License for the specific language governing permissions and
:: limitations under the License.
:: Queries the registry in order to retrieve the most recently installed TAP network adapter's name.
:: Accepts a single argument, the name of an environment variable to store the adapter's name.
:: Exits with a non-zero exit code on failure.
:: Usage example: find_tap_name.bat TAP_NAME
@echo off
:: See https://ss64.com/nt/delayedexpansion.html
setlocal enabledelayedexpansion
set NET_ADAPTERS_CLASS_GUID={4D36E972-E325-11CE-BFC1-08002BE10318}
set NET_ADAPTERS_KEY=HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\%NET_ADAPTERS_CLASS_GUID%
set NET_CONFIG_KEY=HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Network\%NET_ADAPTERS_CLASS_GUID%
set NET_ADAPTERS_FILE="%tmp%\netadapters.txt"
:: Find all network adapters that match the "tap0901" component ID and store their registry path in a file.
:: Note that adapter keys are increasing four-digit integers, padded with leading zeros.
reg query %NET_ADAPTERS_KEY% /s /f "tap0901" /e /d | findstr "HKEY.*\\[0-9][0-9][0-9][0-9]$" > %NET_ADAPTERS_FILE%
if %errorlevel% neq 0 (
echo Could not find TAP network adapter in the registry. >&2
exit /b 1
)
set TIMESTAMP=0
set NAME=
for /f "tokens=*" %%K in ('type "%NET_ADAPTERS_FILE%"') do (
set ADAPTER_NAME=
set ADAPTER_NET_CONFIG_ID=
set ADAPTER_TIMESTAMP=
:: Retrieve the adapter's network config ID.
set ADAPTER_KEY=%%K
for /f "tokens=3" %%I in ('reg query !ADAPTER_KEY! /v "NetCfgInstanceId"') do (
set ADAPTER_NET_CONFIG_ID=%%I
)
:: Retrieve the adapter's install timestamp.
for /f "tokens=3" %%T in ('reg query !ADAPTER_KEY! /v "InstallTimeStamp"') do (
set ADAPTER_TIMESTAMP=%%T
)
:: Retrieve the adapter's name.
set ADAPTER_CONFIG_KEY=!NET_CONFIG_KEY!\!ADAPTER_NET_CONFIG_ID!\Connection
for /f "tokens=3*" %%N in ('reg query !ADAPTER_CONFIG_KEY! /v "Name"') do (
:: If the name contains spaces our tokenization will store the rest of the name in %%O.
if [%%O] == [] (
set ADAPTER_NAME=%%N
) else (
set ADAPTER_NAME=%%N %%O
)
)
:: Ensure we found the adapter's install timestamp and name.
if not [!ADAPTER_TIMESTAMP!] == [] (
if not [!ADAPTER_NAME!] == [] (
echo Found adapter "!ADAPTER_NAME!", !ADAPTER_TIMESTAMP!
:: Store the adapter's name if it's the most recently installed one.
if !ADAPTER_TIMESTAMP! gtr !TIMESTAMP! (
set TIMESTAMP=!ADAPTER_TIMESTAMP!
set NAME=!ADAPTER_NAME!
)
) else (
echo Failed to retrieve name of adapter !ADAPTER_KEY! >&2
)
) else (
echo Failed to retrieve install timestamp of adapter !ADAPTER_KEY! >&2
)
)
if [!NAME!] == [] (
echo Could not find TAP adapter name. >&2
exit /b 1
)
echo TAP device name: "!NAME!"
endlocal & set "%1=%NAME%"
exit /b 0
================================================
FILE: app/clash_core/win_x64/static/files/win/common/tun2socks/i386/OemVista.inf
================================================
; ****************************************************************************
; * Copyright (C) 2002-2014 OpenVPN Technologies, Inc. *
; * This program is free software; you can redistribute it and/or modify *
; * it under the terms of the GNU General Public License version 2 *
; * as published by the Free Software Foundation. *
; ****************************************************************************
; SYNTAX CHECKER
; cd \WINDDK\3790\tools\chkinf
; chkinf c:\src\openvpn\tap-win32\i386\oemvista.inf
; OUTPUT -> file:///c:/WINDDK/3790/tools/chkinf/htm/c%23+src+openvpn+tap-win32+i386+__OemWin2k.htm
; INSTALL/REMOVE DRIVER
; tapinstall install OemVista.inf tapoas
; tapinstall update OemVista.inf tapoas
; tapinstall remove tapoas
;*********************************************************
; Note to Developers:
;
; If you are bundling the TAP-Windows driver with your app,
; you should try to rename it in such a way that it will
; not collide with other instances of TAP-Windows defined
; by other apps. Multiple versions of the TAP-Windows
; driver, each installed by different apps, can coexist
; on the same machine if you follow these guidelines.
; NOTE: these instructions assume you are editing the
; generated OemWin2k.inf file, not the source
; OemWin2k.inf.in file which is preprocessed by winconfig
; and uses macro definitions from settings.in.
;
; (1) Rename all tapXXXX instances in this file to
; something different (use at least 5 characters
; for this name!)
; (2) Change the "!define TAP" definition in openvpn.nsi
; to match what you changed tapXXXX to.
; (3) Change TARGETNAME in SOURCES to match what you
; changed tapXXXX to.
; (4) Change TAP_COMPONENT_ID in common.h to match what
; you changed tapXXXX to.
; (5) Change SZDEPENDENCIES in service.h to match what
; you changed tapXXXX to.
; (6) Change DeviceDescription and Provider strings.
; (7) Change PRODUCT_TAP_WIN_DEVICE_DESCRIPTION in constants.h to what you
; set DeviceDescription to.
;
;*********************************************************
[Version]
Signature = "$Windows NT$"
CatalogFile = tap0901.cat
ClassGUID = {4d36e972-e325-11ce-bfc1-08002be10318}
Provider = %Provider%
Class = Net
; This version number should match the version
; number given in SOURCES.
DriverVer=04/21/2016,9.00.00.21
[Strings]
DeviceDescription = "TAP-Windows Adapter V9"
Provider = "TAP-Windows Provider V9"
;----------------------------------------------------------------
; Manufacturer + Product Section (Done)
;----------------------------------------------------------------
[Manufacturer]
%Provider% = tap0901
[tap0901]
%DeviceDescription% = tap0901.ndi, root\tap0901 ; Root enumerated
%DeviceDescription% = tap0901.ndi, tap0901 ; Legacy
;---------------------------------------------------------------
; Driver Section (Done)
;---------------------------------------------------------------
;----------------- Characteristics ------------
; NCF_PHYSICAL = 0x04
; NCF_VIRTUAL = 0x01
; NCF_SOFTWARE_ENUMERATED = 0x02
; NCF_HIDDEN = 0x08
; NCF_NO_SERVICE = 0x10
; NCF_HAS_UI = 0x80
;----------------- Characteristics ------------
[tap0901.ndi]
CopyFiles = tap0901.driver, tap0901.files
AddReg = tap0901.reg
AddReg = tap0901.params.reg
Characteristics =
*IfType = 0x6 ; IF_TYPE_ETHERNET_CSMACD
*MediaType = 0x0 ; NdisMedium802_3
*PhysicalMediaType = 14 ; NdisPhysicalMedium802_3
[tap0901.ndi.Services]
AddService = tap0901, 2, tap0901.service
[tap0901.reg]
HKR, Ndi, Service, 0, "tap0901"
HKR, Ndi\Interfaces, UpperRange, 0, "ndis5"
HKR, Ndi\Interfaces, LowerRange, 0, "ethernet"
HKR, , Manufacturer, 0, "%Provider%"
HKR, , ProductName, 0, "%DeviceDescription%"
[tap0901.params.reg]
HKR, Ndi\params\MTU, ParamDesc, 0, "MTU"
HKR, Ndi\params\MTU, Type, 0, "int"
HKR, Ndi\params\MTU, Default, 0, "1500"
HKR, Ndi\params\MTU, Optional, 0, "0"
HKR, Ndi\params\MTU, Min, 0, "100"
HKR, Ndi\params\MTU, Max, 0, "1500"
HKR, Ndi\params\MTU, Step, 0, "1"
HKR, Ndi\params\MediaStatus, ParamDesc, 0, "Media Status"
HKR, Ndi\params\MediaStatus, Type, 0, "enum"
HKR, Ndi\params\MediaStatus, Default, 0, "0"
HKR, Ndi\params\MediaStatus, Optional, 0, "0"
HKR, Ndi\params\MediaStatus\enum, "0", 0, "Application Controlled"
HKR, Ndi\params\MediaStatus\enum, "1", 0, "Always Connected"
HKR, Ndi\params\MAC, ParamDesc, 0, "MAC Address"
HKR, Ndi\params\MAC, Type, 0, "edit"
HKR, Ndi\params\MAC, Optional, 0, "1"
HKR, Ndi\params\AllowNonAdmin, ParamDesc, 0, "Non-Admin Access"
HKR, Ndi\params\AllowNonAdmin, Type, 0, "enum"
HKR, Ndi\params\AllowNonAdmin, Default, 0, "1"
HKR, Ndi\params\AllowNonAdmin, Optional, 0, "0"
HKR, Ndi\params\AllowNonAdmin\enum, "0", 0, "Not Allowed"
HKR, Ndi\params\AllowNonAdmin\enum, "1", 0, "Allowed"
;----------------------------------------------------------------
; Service Section
;----------------------------------------------------------------
;---------- Service Type -------------
; SERVICE_KERNEL_DRIVER = 0x01
; SERVICE_WIN32_OWN_PROCESS = 0x10
;---------- Service Type -------------
;---------- Start Mode ---------------
; SERVICE_BOOT_START = 0x0
; SERVICE_SYSTEM_START = 0x1
; SERVICE_AUTO_START = 0x2
; SERVICE_DEMAND_START = 0x3
; SERVICE_DISABLED = 0x4
;---------- Start Mode ---------------
[tap0901.service]
DisplayName = %DeviceDescription%
ServiceType = 1
StartType = 3
ErrorControl = 1
LoadOrderGroup = NDIS
ServiceBinary = %12%\tap0901.sys
;-----------------------------------------------------------------
; File Installation
;-----------------------------------------------------------------
;----------------- Copy Flags ------------
; COPYFLG_NOSKIP = 0x02
; COPYFLG_NOVERSIONCHECK = 0x04
;----------------- Copy Flags ------------
; SourceDisksNames
; diskid = description[, [tagfile] [, <unused>, subdir]]
; 1 = "Intel Driver Disk 1",e100bex.sys,,
[SourceDisksNames]
1 = %DeviceDescription%, tap0901.sys
; SourceDisksFiles
; filename_on_source = diskID[, [subdir][, size]]
; e100bex.sys = 1,, ; on distribution disk 1
[SourceDisksFiles]
tap0901.sys = 1
[DestinationDirs]
tap0901.files = 11
tap0901.driver = 12
[tap0901.files]
; TapPanel.cpl,,,6 ; COPYFLG_NOSKIP | COPYFLG_NOVERSIONCHECK
; cipsrvr.exe,,,6 ; COPYFLG_NOSKIP | COPYFLG_NOVERSIONCHECK
[tap0901.driver]
tap0901.sys,,,6 ; COPYFLG_NOSKIP | COPYFLG_NOVERSIONCHECK
;---------------------------------------------------------------
; End
;---------------------------------------------------------------
================================================
FILE: app/clash_core/win_x64/static/files/win/common/tun2socks/remove_tap_device.bat
================================================
@echo off
setlocal
set DEVICE_NAME=cfw-tap
set DEVICE_HWID=tap0901
set SCRIPT_DIR=%~dp0
set ARCH=%1
set PATH=%PATH%;%SystemRoot%\system32;%SystemRoot%\system32\wbem;%SystemRoot%\system32\WindowsPowerShell/v1.0
echo Removing old TAP network device...
"%SCRIPT_DIR%\%ARCH%\tapinstall" remove %DEVICE_HWID%
if %errorlevel% neq 0 (
echo Could not remove TAP network device. >&2
exit /b 1
)
================================================
FILE: app/clash_core/win_x64/static/files/win/x64/clash-win64.exe.sign
================================================
0BpClCU/jf0VdpLKDVPSHLec5YpcR2GiqM589Z2k4t5K5WTfSTTcQWHbS5T+lxoO8pRvi+aILnLytkbNvFhi1w==
================================================
FILE: app/main/ABOUT/LICENSE.electron.txt
================================================
Copyright (c) Electron contributors
Copyright (c) 2013-2020 GitHub Inc.
Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:
The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
================================================
FILE: app/main/ABOUT/state.txt
================================================
Disclaimer Statement
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.
2. 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.
3. 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.
4. 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.
5. 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.
6. 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.
Links
Official Link: https://github.com/Fndroid/clash_for_windows_pkg
CFW Chinese version link: https://github.com/Z-Siqi/Clash-for-Windows_Chinese
================================================
FILE: app/main/dist/electron/287.js
================================================
"use strict";
(global.webpackChunkclash_win = global.webpackChunkclash_win || []).push([
[287], {
37287: (e, n, s) => {
s.r(n), s.d(n, { conf: () => r, language: () => i });
var t = s(89587),
r = {
comments: { lineComment: "#", blockComment: ["'''", "'''"] },
brackets: [
["{", "}"],
["[", "]"],
["(", ")"]
],
autoClosingPairs: [{ open: "{", close: "}" }, { open: "[", close: "]" }, { open: "(", close: ")" }, { open: '"', close: '"', notIn: ["string"] }, { open: "'", close: "'", notIn: ["string", "comment"] }],
surroundingPairs: [{ open: "{", close: "}" }, { open: "[", close: "]" }, { open: "(", close: ")" }, { open: '"', close: '"' }, { open: "'", close: "'" }],
onEnterRules: [{ beforeText: new RegExp("^\\s*(?:def|class|for|if|elif|else|while|try|with|finally|except|async).*?:\\s*$"), action: { indentAction: t.Mj.IndentAction.Indent } }],
folding: { offSide: !0, markers: { start: new RegExp("^\\s*#region\\b"), end: new RegExp("^\\s*#endregion\\b") } }
},
i = {
defaultToken: "",
tokenPostfix: ".python",
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__"],
brackets: [{ open: "{", close: "}", token: "delimiter.curly" }, { open: "[", close: "]", token: "delimiter.bracket" }, { open: "(", close: ")", token: "delimiter.parenthesis" }],
tokenizer: {
root: [{ include: "@whitespace" }, { include: "@numbers" }, { include: "@strings" },
[/[,:;]/, "delimiter"],
[/[{}\[\]()]/, "@brackets"],
[/@[a-zA-Z_]\w*/, "tag"],
[/[a-zA-Z_]\w*/, { cases: { "@keywords": "keyword", "@default": "identifier" } }]
],
whitespace: [
[/\s+/, "white"],
[/(^#.*$)/, "comment"],
[/'''/, "string", "@endDocString"],
[/"""/, "string", "@endDblDocString"]
],
endDocString: [
[/[^']+/, "string"],
[/\\'/, "string"],
[/'''/, "string", "@popall"],
[/'/, "string"]
],
endDblDocString: [
[/[^"]+/, "string"],
[/\\"/, "string"],
[/"""/, "string", "@popall"],
[/"/, "string"]
],
numbers: [
[/-?0x([abcdef]|[ABCDEF]|\d)+[lL]?/, "number.hex"],
[/-?(\d*\.)?\d+([eE][+\-]?\d+)?[jJ]?[lL]?/, "number"]
],
strings: [
[/'$/, "string.escape", "@popall"],
[/'/, "string.escape", "@stringBody"],
[/"$/, "string.escape", "@popall"],
[/"/, "string.escape", "@dblStringBody"]
],
stringBody: [
[/[^\\']+$/, "string", "@popall"],
[/[^\\']+/, "string"],
[/\\./, "string"],
[/'/, "string.escape", "@popall"],
[/\\$/, "string"]
],
dblStringBody: [
[/[^\\"]+$/, "string", "@popall"],
[/[^\\"]+/, "string"],
[/\\./, "string"],
[/"/, "string.escape", "@popall"],
[/\\$/, "string"]
]
}
}
}
}
]);
================================================
FILE: app/main/dist/electron/295.js
================================================
"use strict";
(global.webpackChunkclash_win = global.webpackChunkclash_win || []).push([
[295], {
62295: (e, t, n) => {
n.r(t), n.d(t, { conf: () => s, language: () => r });
var o = n(89587),
i = {
defaultToken: "invalid",
tokenPostfix: ".ts",
keywords: ["abstract", "any", "as", "asserts", "bigint", "boolean", "break", "case", "catch", "class", "continue", "const", "constructor", "debugger", "declare", "default", "delete", "do", "else", "enum", "export", "extends", "false", "finally", "for", "from", "function", "get", "if", "implements", "import", "in", "infer", "instanceof", "interface", "is", "keyof", "let", "module", "namespace", "never", "new", "null", "number", "object", "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"],
operators: ["<=", ">=", "==", "!=", "===", "!==", "=>", "+", "-", "**", "*", "/", "%", "++", "--", "<<", "</", ">>", ">>>", "&", "|", "^", "!", "~", "&&", "||", "??", "?", ":", "=", "+=", "-=", "*=", "**=", "/=", "%=", "<<=", ">>=", ">>>=", "&=", "|=", "^=", "@"],
symbols: /[=><!~?:&|+\-*\/\^%]+/,
escapes: /\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,
digits: /\d+(_+\d+)*/,
octaldigits: /[0-7]+(_+[0-7]+)*/,
binarydigits: /[0-1]+(_+[0-1]+)*/,
hexdigits: /[[0-9a-fA-F]+(_+[0-9a-fA-F]+)*/,
regexpctl: /[(){}\[\]\$\^|\-*+?\.]/,
regexpesc: /\\(?:[bBdDfnrstvwWn0\\\/]|@regexpctl|c[A-Z]|x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4})/,
tokenizer: {
root: [
[/[{}]/, "delimiter.bracket"], { include: "common" }
],
common: [
[/[a-z_$][\w$]*/, { cases: { "@keywords": "keyword", "@default": "identifier" } }],
[/[A-Z][\w\$]*/, "type.identifier"], { include: "@whitespace" },
[/\/(?=([^\\\/]|\\.)+\/([dgimsuy]*)(\s*)(\.|;|,|\)|\]|\}|$))/, { token: "regexp", bracket: "@open", next: "@regexp" }],
[/[()\[\]]/, "@brackets"],
[/[<>](?!@symbols)/, "@brackets"],
[/!(?=([^=]|$))/, "delimiter"],
[/@symbols/, { cases: { "@operators": "delimiter", "@default": "" } }],
[/(@digits)[eE]([\-+]?(@digits))?/, "number.float"],
[/(@digits)\.(@digits)([eE][\-+]?(@digits))?/, "number.float"],
[/0[xX](@hexdigits)n?/, "number.hex"],
[/0[oO]?(@octaldigits)n?/, "number.octal"],
[/0[bB](@binarydigits)n?/, "number.binary"],
[/(@digits)n?/, "number"],
[/[;,.]/, "delimiter"],
[/"([^"\\]|\\.)*$/, "string.invalid"],
[/'([^'\\]|\\.)*$/, "string.invalid"],
[/"/, "string", "@string_double"],
[/'/, "string", "@string_single"],
[/`/, "string", "@string_backtick"]
],
whitespace: [
[/[ \t\r\n]+/, ""],
[/\/\*\*(?!\/)/, "comment.doc", "@jsdoc"],
[/\/\*/, "comment", "@comment"],
[/\/\/.*$/, "comment"]
],
comment: [
[/[^\/*]+/, "comment"],
[/\*\//, "comment", "@pop"],
[/[\/*]/, "comment"]
],
jsdoc: [
[/[^\/*]+/, "comment.doc"],
[/\*\//, "comment.doc", "@pop"],
[/[\/*]/, "comment.doc"]
],
regexp: [
[/(\{)(\d+(?:,\d*)?)(\})/, ["regexp.escape.control", "regexp.escape.control", "regexp.escape.control"]],
[/(\[)(\^?)(?=(?:[^\]\\\/]|\\.)+)/, ["regexp.escape.control", { token: "regexp.escape.control", next: "@regexrange" }]],
[/(\()(\?:|\?=|\?!)/, ["regexp.escape.control", "regexp.escape.control"]],
[/[()]/, "regexp.escape.control"],
[/@regexpctl/, "regexp.escape.control"],
[/[^\\\/]/, "regexp"],
[/@regexpesc/, "regexp.escape"],
[/\\\./, "regexp.invalid"],
[/(\/)([dgimsuy]*)/, [{ token: "regexp", bracket: "@close", next: "@pop" }, "keyword.other"]]
],
regexrange: [
[/-/, "regexp.escape.control"],
[/\^/, "regexp.invalid"],
[/@regexpesc/, "regexp.escape"],
[/[^\]]/, "regexp"],
[/\]/, { token: "regexp.escape.control", next: "@pop", bracket: "@close" }]
],
string_double: [
[/[^\\"]+/, "string"],
[/@escapes/, "string.escape"],
[/\\./, "string.escape.invalid"],
[/"/, "string", "@pop"]
],
string_single: [
[/[^\\']+/, "string"],
[/@escapes/, "string.escape"],
[/\\./, "string.escape.invalid"],
[/'/, "string", "@pop"]
],
string_backtick: [
[/\$\{/, { token: "delimiter.bracket", next: "@bracketCounting" }],
[/[^\\`$]+/, "string"],
[/@escapes/, "string.escape"],
[/\\./, "string.escape.invalid"],
[/`/, "string", "@pop"]
],
bracketCounting: [
[/\{/, "delimiter.bracket", "@bracketCounting"],
[/\}/, "delimiter.bracket", "@pop"], { include: "common" }
]
}
},
s = {
wordPattern: /(-?\d*\.\d\w*)|([^\`\~\!\@\#\%\^\&\*\(\)\-\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\?\s]+)/g,
comments: { lineComment: "//", blockComment: ["/*", "*/"] },
brackets: [
["{", "}"],
["[", "]"],
["(", ")"]
],
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 } }],
autoClosingPairs: [{ open: "{", close: "}" }, { open: "[", close: "]" }, { open: "(", close: ")" }, { open: '"', close: '"', notIn: ["string"] }, { open: "'", close: "'", notIn: ["string", "comment"] }, { open: "`", close: "`", notIn: ["string", "comment"] }, { open: "/**", close: " */", notIn: ["string"] }],
folding: { markers: { start: new RegExp("^\\s*//\\s*#?region\\b"), end: new RegExp("^\\s*//\\s*#?endregion\\b") } }
},
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 }
}
}
]);
================================================
FILE: app/main/dist/electron/585.js
================================================
"use strict";
(global.webpackChunkclash_win = global.webpackChunkclash_win || []).push([
[585], {
23585: (e, n, t) => {
t.r(n), t.d(n, { conf: () => r, language: () => o });
var r = {
comments: { lineComment: "#" },
brackets: [
["{", "}"],
["[", "]"],
["(", ")"]
],
autoClosingPairs: [{ open: "{", close: "}" }, { open: "[", close: "]" }, { open: "(", close: ")" }, { open: '"', close: '"' }, { open: "'", close: "'" }],
surroundingPairs: [{ open: "{", close: "}" }, { open: "[", close: "]" }, { open: "(", close: ")" }, { open: '"', close: '"' }, { open: "'", close: "'" }],
folding: { offSide: !0 }
},
o = {
tokenPostfix: ".yaml",
brackets: [{ token: "delimiter.bracket", open: "{", close: "}" }, { token: "delimiter.square", open: "[", close: "]" }],
keywords: ["true", "True", "TRUE", "false", "False", "FALSE", "null", "Null", "Null", "~"],
numberInteger: /(?:0|[+-]?[0-9]+)/,
numberFloat: /(?:0|[+-]?[0-9]+)(?:\.[0-9]+)?(?:e[-+][1-9][0-9]*)?/,
numberOctal: /0o[0-7]+/,
numberHex: /0x[0-9a-fA-F]+/,
numberInfinity: /[+-]?\.(?:inf|Inf|INF)/,
numberNaN: /\.(?:nan|Nan|NAN)/,
numberDate: /\d{4}-\d\d-\d\d([Tt ]\d\d:\d\d:\d\d(\.\d+)?(( ?[+-]\d\d?(:\d\d)?)|Z)?)?/,
escapes: /\\(?:[btnfr\\"']|[0-7][0-7]?|[0-3][0-7]{2})/,
tokenizer: {
root: [{ include: "@whitespace" }, { include: "@comment" },
[/%[^ ]+.*$/, "meta.directive"],
[/---/, "operators.directivesEnd"],
[/\.{3}/, "operators.documentEnd"],
[/[-?:](?= )/, "operators"], { include: "@anchor" }, { include: "@tagHandle" }, { include: "@flowCollections" }, { include: "@blockStyle" },
[/@numberInteger(?![ \t]*\S+)/, "number"],
[/@numberFloat(?![ \t]*\S+)/, "number.float"],
[/@numberOctal(?![ \t]*\S+)/, "number.octal"],
[/@numberHex(?![ \t]*\S+)/, "number.hex"],
[/@numberInfinity(?![ \t]*\S+)/, "number.infinity"],
[/@numberNaN(?![ \t]*\S+)/, "number.nan"],
[/@numberDate(?![ \t]*\S+)/, "number.date"],
[/(".*?"|'.*?'|.*?)([ \t]*)(:)( |$)/, ["type", "white", "operators", "white"]], { include: "@flowScalars" },
[/[^#]+/, { cases: { "@keywords": "keyword", "@default": "string" } }]
],
object: [{ include: "@whitespace" }, { include: "@comment" },
[/\}/, "@brackets", "@pop"],
[/,/, "delimiter.comma"],
[/:(?= )/, "operators"],
[/(?:".*?"|'.*?'|[^,\{\[]+?)(?=: )/, "type"], { include: "@flowCollections" }, { include: "@flowScalars" }, { include: "@tagHandle" }, { include: "@anchor" }, { include: "@flowNumber" },
[/[^\},]+/, { cases: { "@keywords": "keyword", "@default": "string" } }]
],
array: [{ include: "@whitespace" }, { include: "@comment" },
[/\]/, "@brackets", "@pop"],
[/,/, "delimiter.comma"], { include: "@flowCollections" }, { include: "@flowScalars" }, { include: "@tagHandle" }, { include: "@anchor" }, { include: "@flowNumber" },
[/[^\],]+/, { cases: { "@keywords": "keyword", "@default": "string" } }]
],
multiString: [
[/^( +).+$/, "string", "@multiStringContinued.$1"]
],
multiStringContinued: [
[/^( *).+$/, { cases: { "$1==$S2": "string", "@default": { token: "@rematch", next: "@popall" } } }]
],
whitespace: [
[/[ \t\r\n]+/, "white"]
],
comment: [
[/#.*$/, "comment"]
],
flowCollections: [
[/\[/, "@brackets", "@array"],
[/\{/, "@brackets", "@object"]
],
flowScalars: [
[/"([^"\\]|\\.)*$/, "string.invalid"],
[/'([^'\\]|\\.)*$/, "string.invalid"],
[/'[^']*'/, "string"],
[/"/, "string", "@doubleQuotedString"]
],
doubleQuotedString: [
[/[^\\"]+/, "string"],
[/@escapes/, "string.escape"],
[/\\./, "string.escape.invalid"],
[/"/, "string", "@pop"]
],
blockStyle: [
[/[>|][0-9]*[+-]?$/, "operators", "@multiString"]
],
flowNumber: [
[/@numberInteger(?=[ \t]*[,\]\}])/, "number"],
[/@numberFloat(?=[ \t]*[,\]\}])/, "number.float"],
[/@numberOctal(?=[ \t]*[,\]\}])/, "number.octal"],
[/@numberHex(?=[ \t]*[,\]\}])/, "number.hex"],
[/@numberInfinity(?=[ \t]*[,\]\}])/, "number.infinity"],
[/@numberNaN(?=[ \t]*[,\]\}])/, "number.nan"],
[/@numberDate(?=[ \t]*[,\]\}])/, "number.date"]
],
tagHandle: [
[/\![^ ]*/, "tag"]
],
anchor: [
[/[&*][^ ]+/, "namespace"]
]
}
}
}
}
]);
================================================
FILE: app/main/dist/electron/editor.worker.js
================================================
(() => {
"use strict";
const e = new class {
constructor() {
this.listeners = [], this.unexpectedErrorHandler = function(e) {
setTimeout((() => {
if (e.stack) throw new Error(e.message + "\n\n" + e.stack);
throw e
}), 0)
}
}
emit(e) {
this.listeners.forEach((t => {
t(e)
}))
}
onUnexpectedError(e) {
this.unexpectedErrorHandler(e), this.emit(e)
}
onUnexpectedExternalError(e) {
this.unexpectedErrorHandler(e)
}
};
function t(t) {
r(t) || e.onUnexpectedError(t)
}
function n(e) {
if (e instanceof Error) {
let {
name: t,
message: n
} = e;
return {
$isError: !0,
name: t,
message: n,
stack: e.stacktrace || e.stack
}
}
return e
}
const i = "Canceled";
function r(e) {
return e instanceof Error && e.name === i && e.message === i
}
function s(e) {
const t = this;
let n, i = !1;
return function() {
return i || (i = !0, n = e.apply(t, arguments)), n
}
}
var o;
! function(e) {
e.is = function(e) {
return e && "object" == typeof e && "function" == typeof e[Symbol.iterator]
};
const t = Object.freeze([]);
e.empty = function() {
return t
}, e.single = function*(e) {
yield e
}, e.from = function(e) {
return e || t
}, e.isEmpty = function(e) {
return !e || !0 === e[Symbol.iterator]().next().done
}, e.first = function(e) {
return e[Symbol.iterator]().next().value
}, e.some = function(e, t) {
for (const n of e)
if (t(n)) return !0;
return !1
}, e.find = function(e, t) {
for (const n of e)
if (t(n)) return n
}, e.filter = function*(e, t) {
for (const n of e) t(n) && (yield n)
}, e.map = function*(e, t) {
let n = 0;
for (const i of e) yield t(i, n++)
}, e.concat = function*(...e) {
for (const t of e)
for (const e of t) yield e
}, e.concatNested = function*(e) {
for (const t of e)
for (const e of t) yield e
}, e.reduce = function(e, t, n) {
let i = n;
for (const n of e) i = t(i, n);
return i
}, e.slice = function*(e, t, n = e.length) {
for (t < 0 && (t += e.length), n < 0 ? n += e.length : n > e.length && (n = e.length); t < n; t++) yield e[t]
}, e.consume = function(t, n = Number.POSITIVE_INFINITY) {
const i = [];
if (0 === n) return [i, t];
const r = t[Symbol.iterator]();
for (let t = 0; t < n; t++) {
const t = r.next();
if (t.done) return [i, e.empty()];
i.push(t.value)
}
return [i, {
[Symbol.iterator]: () => r
}]
}, e.equals = function(e, t, n = ((e, t) => e === t)) {
const i = e[Symbol.iterator](),
r = t[Symbol.iterator]();
for (;;) {
const e = i.next(),
t = r.next();
if (e.done !== t.done) return !1;
if (e.done) return !0;
if (!n(e.value, t.value)) return !1
}
}
}(o || (o = {}));
let a = null;
var l;
function u(e) {
return null == a || a.trackDisposable(e), e
}
function h(e) {
null == a || a.markAsDisposed(e)
}
function d(e, t) {
null == a || a.setParent(e, t)
}
class c extends Error {
constructor(e) {
super(`Encountered errors while disposing of store. Errors: [${e.join(", ")}]`), this.errors = e
}
}
function m(e) {
if (o.is(e)) {
let t = [];
for (const n of e)
if (n) try {
n.dispose()
} catch (e) {
t.push(e)
}
if (1 === t.length) throw t[0];
if (t.length > 1) throw new c(t);
return Array.isArray(e) ? [] : e
}
if (e) return e.dispose(), e
}
function f(...e) {
const t = g((() => m(e)));
return function(e, t) {
if (a)
for (const n of e) a.setParent(n, t)
}(e, t), t
}
function g(e) {
const t = u({
dispose: s((() => {
h(t), e()
}))
});
return t
}
class _ {
constructor() {
this._toDispose = new Set, this._isDisposed = !1, u(this)
}
dispose() {
this._isDisposed || (h(this), this._isDisposed = !0, this.clear())
}
clear() {
try {
m(this._toDispose.values())
} finally {
this._toDispose.clear()
}
}
add(e) {
if (!e) return e;
if (e === this) throw new Error("Cannot register a disposable on itself!");
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
}
}
_.DISABLE_DISPOSED_WARNING = !1;
class p {
constructor() {
this._store = new _, u(this), d(this._store, this)
}
dispose() {
h(this), this._store.dispose()
}
_register(e) {
if (e === this) throw new Error("Cannot register a disposable on itself!");
return this._store.add(e)
}
}
p.None = Object.freeze({
dispose() {}
});
class C {
constructor(e) {
this.element = e, this.next = C.Undefined, this.prev = C.Undefined
}
}
C.Undefined = new C(void 0);
class L {
constructor() {
this._first = C.Undefined, this._last = C.Undefined, this._size = 0
}
get size() {
return this._size
}
isEmpty() {
return this._first === C.Undefined
}
clear() {
let e = this._first;
for (; e !== C.Undefined;) {
const t = e.next;
e.prev = C.Undefined, e.next = C.Undefined, e = t
}
this._first = C.Undefined, this._last = C.Undefined, this._size = 0
}
unshift(e) {
return this._insert(e, !1)
}
push(e) {
return this._insert(e, !0)
}
_insert(e, t) {
const n = new C(e);
if (this._first === C.Undefined) this._first = n, this._last = n;
else if (t) {
const e = this._last;
this._last = n, n.prev = e, e.next = n
} else {
const e = this._first;
this._first = n, n.next = e, e.prev = n
}
this._size += 1;
let i = !1;
return () => {
i || (i = !0, this._remove(n))
}
}
shift() {
if (this._first !== C.Undefined) {
const e = this._first.element;
return this._remove(this._first), e
}
}
pop() {
if (this._last !== C.Undefined) {
const e = this._last.element;
return this._remove(this._last), e
}
}
_remove(e) {
if (e.prev !== C.Undefined && e.next !== C.Undefined) {
const t = e.prev;
t.next = e.next, e.next.prev = t
} 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);
this._size -= 1
}*[Symbol.iterator]() {
let e = this._first;
for (; e !== C.Undefined;) yield e.element, e = e.next
}
}
const S = "en";
let b, N, E = !1,
y = !1,
A = !1,
w = !1,
v = !1,
M = !1,
K = !1,
O = null,
T = null;
const R = "object" == typeof self ? self : "object" == typeof global ? global : {};
let V;
void 0 !== R.vscode && void 0 !== R.vscode.process ? V = R.vscode.process : "undefined" != typeof process && (V = process);
const I = "string" == typeof(null === (l = null == V ? void 0 : V.versions) || void 0 === l ? void 0 : l.electron) && "renderer" === V.type;
if ("object" != typeof navigator || I)
if ("object" == typeof V) {
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;
const e = V.env.VSCODE_NLS_CONFIG;
if (e) try {
const t = JSON.parse(e),
n = t.availableLanguages["*"];
b = t.locale, O = n || S, T = t._translationsConfigFile
} catch (e) {}
v = !0
} else console.error("Unable to resolve platform.");
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;
let P = 0;
y ? P = 1 : E ? P = 3 : A && (P = 2);
const x = E,
k = y,
D = function() {
if (R.setImmediate) return R.setImmediate.bind(R);
if ("function" == typeof R.postMessage && !R.importScripts) {
let e = [];
R.addEventListener("message", (t => {
if (t.data && t.data.vscodeSetImmediateId)
for (let n = 0, i = e.length; n < i; n++) {
const i = e[n];
if (i.id === t.data.vscodeSetImmediateId) return e.splice(n, 1), void i.callback()
}
}));
let t = 0;
return n => {
const i = ++t;
e.push({
id: i,
callback: n
}), R.postMessage({
vscodeSetImmediateId: i
}, "*")
}
}
if ("function" == typeof(null == V ? void 0 : V.nextTick)) return V.nextTick.bind(V);
const e = Promise.resolve();
return t => e.then(t)
}();
const F = R.performance && "function" == typeof R.performance.now;
class U {
constructor(e) {
this._highResolution = F && e, this._startTime = this._now(), this._stopTime = -1
}
static create(e = !0) {
return new U(e)
}
stop() {
this._stopTime = this._now()
}
elapsed() {
return -1 !== this._stopTime ? this._stopTime - this._startTime : this._now() - this._startTime
}
_now() {
return this._highResolution ? R.performance.now() : Date.now()
}
}
var B;
! function(e) {
function t(e) {
return (t, n = null, i) => {
let r, s = !1;
return r = e((e => {
if (!s) return r ? r.dispose() : s = !0, t.call(n, e)
}), null, i), s && r.dispose(), r
}
}
function n(e, t) {
return o(((n, i = null, r) => e((e => n.call(i, t(e))), null, r)))
}
function i(e, t) {
return o(((n, i = null, r) => e((e => {
t(e), n.call(i, e)
}), null, r)))
}
function r(e, t) {
return o(((n, i = null, r) => e((e => t(e) && n.call(i, e)), null, r)))
}
function s(e, t, i) {
let r = i;
return n(e, (e => (r = t(r, e), r)))
}
function o(e) {
let t;
const n = new H({
onFirstListenerAdd() {
t = e(n.fire, n)
},
onLastListenerRemove() {
t.dispose()
}
});
return n.event
}
function a(e, t, n = 100, i = !1, r) {
let s, o, a, l = 0;
const u = new H({
leakWarningThreshold: r,
onFirstListenerAdd() {
s = e((e => {
l++, o = t(o, e), i && !a && (u.fire(o), o = void 0), clearTimeout(a), a = setTimeout((() => {
const e = o;
o = void 0, a = void 0, (!i || l > 1) && u.fire(e), l = 0
}), n)
}))
},
onLastListenerRemove() {
s.dispose()
}
});
return u.event
}
function l(e, t = ((e, t) => e === t)) {
let n, i = !0;
return r(e, (e => {
const r = i || !t(e, n);
return i = !1, n = e, r
}))
}
e.None = () => p.None, e.once = t, e.map = n, e.forEach = i, e.filter = r, e.signal = function(e) {
return e
}, e.any = function(...e) {
return (t, n = null, i) => f(...e.map((e => e((e => t.call(n, e)), null, i))))
}, e.reduce = s, e.debounce = a, e.latch = l, e.split = function(t, n) {
return [e.filter(t, n), e.filter(t, (e => !n(e)))]
}, e.buffer = function(e, t = !1, n = []) {
let i = n.slice(),
r = e((e => {
i ? i.push(e) : o.fire(e)
}));
const s = () => {
i && i.forEach((e => o.fire(e))), i = null
},
o = new H({
onFirstListenerAdd() {
r || (r = e((e => o.fire(e))))
},
onFirstListenerDidAdd() {
i && (t ? setTimeout(s) : s())
},
onLastListenerRemove() {
r && r.dispose(), r = null
}
});
return o.event
};
class u {
constructor(e) {
this.event = e
}
map(e) {
return new u(n(this.event, e))
}
forEach(e) {
return new u(i(this.event, e))
}
filter(e) {
return new u(r(this.event, e))
}
reduce(e, t) {
return new u(s(this.event, e, t))
}
latch() {
return new u(l(this.event))
}
debounce(e, t = 100, n = !1, i) {
return new u(a(this.event, e, t, n, i))
}
on(e, t, n) {
return this.event(e, t, n)
}
once(e, n, i) {
return t(this.event)(e, n, i)
}
}
e.chain = function(e) {
return new u(e)
}, e.fromNodeEventEmitter = function(e, t, n = (e => e)) {
const i = (...e) => r.fire(n(...e)),
r = new H({
onFirstListenerAdd: () => e.on(t, i),
onLastListenerRemove: () => e.removeListener(t, i)
});
return r.event
}, e.fromDOMEventEmitter = function(e, t, n = (e => e)) {
const i = (...e) => r.fire(n(...e)),
r = new H({
onFirstListenerAdd: () => e.addEventListener(t, i),
onLastListenerRemove: () => e.removeEventListener(t, i)
});
return r.event
}, e.toPromise = function(e) {
return new Promise((n => t(e)(n)))
}
}(B || (B = {}));
class q {
constructor(e) {
this._listenerCount = 0, this._invocationCount = 0, this._elapsedOverall = 0, this._name = `${e}_${q._idPool++}`
}
start(e) {
this._stopWatch = new U(!0), this._listenerCount = e
}
stop() {
if (this._stopWatch) {
const e = this._stopWatch.elapsed();
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
}
}
}
q._idPool = 0;
class H {
constructor(e) {
var t;
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
}
get event() {
return this._event || (this._event = (e, t, n) => {
var i;
this._listeners || (this._listeners = new L);
const r = this._listeners.isEmpty();
r && this._options && this._options.onFirstListenerAdd && this._options.onFirstListenerAdd(this);
const s = this._listeners.push(t ? [e, t] : e);
r && this._options && this._options.onFirstListenerDidAdd && this._options.onFirstListenerDidAdd(this), this._options && this._options.onListenerDidAdd && this._options.onListenerDidAdd(this, e, t);
const o = null === (i = this._leakageMon) || void 0 === i ? void 0 : i.check(this._listeners.size),
a = g((() => {
if (o && o(), !this._disposed && (s(), this._options && this._options.onLastListenerRemove)) {
this._listeners && !this._listeners.isEmpty() || this._options.onLastListenerRemove(this)
}
}));
return n instanceof _ ? n.add(a) : Array.isArray(n) && n.push(a), a
}), this._event
}
fire(e) {
var n, i;
if (this._listeners) {
this._deliveryQueue || (this._deliveryQueue = new L);
for (let t of this._listeners) this._deliveryQueue.push([t, e]);
for (null === (n = this._perfMon) || void 0 === n || n.start(this._deliveryQueue.size); this._deliveryQueue.size > 0;) {
const [e, n] = this._deliveryQueue.shift();
try {
"function" == typeof e ? e.call(void 0, n) : e[0].call(e[1], n)
} catch (e) {
t(e)
}
}
null === (i = this._perfMon) || void 0 === i || i.stop()
}
}
dispose() {
var e, t, n, i, r;
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())
}
}
function W(e) {
const t = [];
for (const n of function(e) {
let t = [],
n = Object.getPrototypeOf(e);
for (; Object.prototype !== n;) t = t.concat(Object.getOwnPropertyNames(n)), n = Object.getPrototypeOf(n);
return t
}(e)) "function" == typeof e[n] && t.push(n);
return t
}
function $(e) {
return e >= 65 && e <= 90
}
function j(e) {
return 55296 <= e && e <= 56319
}
function G(e) {
return 56320 <= e && e <= 57343
}
function z(e, t) {
return t - 56320 + (e - 55296 << 10) + 65536
}
String.fromCharCode(65279);
class Y {
constructor() {
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]")
}
static getInstance() {
return Y._INSTANCE || (Y._INSTANCE = new Y), Y._INSTANCE
}
getGraphemeBreakType(e) {
if (e < 32) return 10 === e ? 3 : 13 === e ? 2 : 4;
if (e < 127) return 0;
const t = this._data,
n = t.length / 3;
let i = 1;
for (; i <= n;)
if (e < t[3 * i]) i *= 2;
else {
if (!(e > t[3 * i + 1])) return t[3 * i + 2];
i = 2 * i + 1
} return 0
}
}
Y._INSTANCE = null;
const Q = "$initialize";
let X;
class Z {
constructor(e, t, n, i) {
this.vsWorker = e, this.req = t, this.method = n, this.args = i, this.type = 0
}
}
class J {
constructor(e, t, n, i) {
this.vsWorker = e, this.seq = t, this.res = n, this.err = i, this.type = 1
}
}
class ee {
constructor(e, t, n, i) {
this.vsWorker = e, this.req = t, this.eventName = n, this.arg = i, this.type = 2
}
}
class te {
constructor(e, t, n) {
this.vsWorker = e, this.req = t, this.event = n, this.type = 3
}
}
class ne {
constructor(e, t) {
this.vsWorker = e, this.req = t, this.type = 4
}
}
class ie {
constructor(e) {
this._workerId = -1, this._handler = e, this._lastSentReq = 0, this._pendingReplies = Object.create(null), this._pendingEmitters = new Map, this._pendingEvents = new Map
}
setWorkerId(e) {
this._workerId = e
}
sendMessage(e, t) {
const n = String(++this._lastSentReq);
return new Promise(((i, r) => {
this._pendingReplies[n] = {
resolve: i,
reject: r
}, this._send(new Z(this._workerId, n, e, t))
}))
}
listen(e, t) {
let n = null;
const i = new H({
onFirstListenerAdd: () => {
n = String(++this._lastSentReq), this._pendingEmitters.set(n, i), this._send(new ee(this._workerId, n, e, t))
},
onLastListenerRemove: () => {
this._pendingEmitters.delete(n), this._send(new ne(this._workerId, n)), n = null
}
});
return i.event
}
handleMessage(e) {
e && e.vsWorker && (-1 !== this._workerId && e.vsWorker !== this._workerId || this._handleMessage(e))
}
_handleMessage(e) {
switch (e.type) {
case 1:
return this._handleReplyMessage(e);
case 0:
return this._handleRequestMessage(e);
case 2:
return this._handleSubscribeEventMessage(e);
case 3:
return this._handleEventMessage(e);
case 4:
return this._handleUnsubscribeEventMessage(e)
}
}
_handleReplyMessage(e) {
if (!this._pendingReplies[e.seq]) return void console.warn("Got reply to unknown seq");
let t = this._pendingReplies[e.seq];
if (delete this._pendingReplies[e.seq], e.err) {
let n = e.err;
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)
}
t.resolve(e.res)
}
_handleRequestMessage(e) {
let t = e.req;
this._handler.handleMessage(e.method, e.args).then((e => {
this._send(new J(this._workerId, t, e, void 0))
}), (e => {
e.detail instanceof Error && (e.detail = n(e.detail)), this._send(new J(this._workerId, t, void 0, n(e)))
}))
}
_handleSubscribeEventMessage(e) {
const t = e.req,
n = this._handler.handleEvent(e.eventName, e.arg)((e => {
this._send(new te(this._workerId, t, e))
}));
this._pendingEvents.set(t, n)
}
_handleEventMessage(e) {
this._pendingEmitters.has(e.req) ? this._pendingEmitters.get(e.req).fire(e.event) : console.warn("Got event for unknown req")
}
_handleUnsubscribeEventMessage(e) {
this._pendingEvents.has(e.req) ? (this._pendingEvents.get(e.req).dispose(), this._pendingEvents.delete(e.req)) : console.warn("Got unsubscribe for unknown req")
}
_send(e) {
let t = [];
if (0 === e.type)
for (let n = 0; n < e.args.length; n++) e.args[n] instanceof ArrayBuffer && t.push(e.args[n]);
else 1 === e.type && e.res instanceof ArrayBuffer && t.push(e.res);
this._handler.sendMessage(e, t)
}
}
function re(e) {
return "o" === e[0] && "n" === e[1] && $(e.charCodeAt(2))
}
function se(e) {
return /^onDynamic/.test(e) && $(e.charCodeAt(9))
}
function oe(e, t, n) {
const i = e => function() {
const n = Array.prototype.slice.call(arguments, 0);
return t(e, n)
},
r = e => function(t) {
return n(e, t)
};
let s = {};
for (const t of e) se(t) ? s[t] = r(t) : re(t) ? s[t] = n(t, void 0) : s[t] = i(t);
return s
}
class ae {
constructor(e, t) {
this._requestHandlerFactory = t, this._requestHandler = null, this._protocol = new ie({
sendMessage: (t, n) => {
e(t, n)
},
handleMessage: (e, t) => this._handleMessage(e, t),
handleEvent: (e, t) => this._handleEvent(e, t)
})
}
onmessage(e) {
this._protocol.handleMessage(e)
}
_handleMessage(e, t) {
if (e === Q) return this.initialize(t[0], t[1], t[2], t[3]);
if (!this._requestHandler || "function" != typeof this._requestHandler[e]) return Promise.reject(new Error("Missing requestHandler or method: " + e));
try {
return Promise.resolve(this._requestHandler[e].apply(this._requestHandler, t))
} catch (e) {
return Promise.reject(e)
}
}
_handleEvent(e, t) {
if (!this._requestHandler) throw new Error("Missing requestHandler");
if (se(e)) {
const n = this._requestHandler[e].call(this._requestHandler, t);
if ("function" != typeof n) throw new Error(`Missing dynamic event ${e} on request handler.`);
return n
}
if (re(e)) {
const t = this._requestHandler[e];
if ("function" != typeof t) throw new Error(`Missing event ${e} on request handler.`);
return t
}
throw new Error(`Malformed event name ${e}`)
}
initialize(e, t, n, i) {
this._protocol.setWorkerId(e);
const r = oe(i, ((e, t) => this._protocol.sendMessage(e, t)), ((e, t) => this._protocol.listen(e, t)));
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) => {
(0, R.require)([n], (n => {
this._requestHandler = n.create(r), this._requestHandler ? e(W(this._requestHandler)) : t(new Error("No RequestHandler!"))
}), t)
})))
}
}
class le {
constructor(e, t, n, i) {
this.originalStart = e, this.originalLength = t, this.modifiedStart = n, this.modifiedLength = i
}
getOriginalEnd() {
return this.originalStart + this.originalLength
}
getModifiedEnd() {
return this.modifiedStart + this.modifiedLength
}
}
function ue(e, t) {
return (t << 5) - t + e | 0
}
function he(e, t) {
t = ue(149417, t);
for (let n = 0, i = e.length; n < i; n++) t = ue(e.charCodeAt(n), t);
return t
}
function de(e, t, n = 32) {
const i = n - t;
return (e << t | (~((1 << i) - 1) & e) >>> i) >>> 0
}
function ce(e, t = 0, n = e.byteLength, i = 0) {
for (let r = 0; r < n; r++) e[t + r] = i
}
function me(e, t = 32) {
return e instanceof ArrayBuffer ? Array.from(new Uint8Array(e)).map((e => e.toString(16).padStart(2, "0"))).join("") : function(e, t, n = "0") {
for (; e.length < t;) e = n + e;
return e
}((e >>> 0).toString(16), t / 4)
}
class fe {
constructor() {
this._h0 = 1732584193, this._h1 = 4023233417, this._h2 = 2562383102, this._h3 = 271733878, this._h4 = 3285377520, this._buff = new Uint8Array(67), this._buffDV = new DataView(this._buff.buffer), this._buffLen = 0, this._totalLen = 0, this._leftoverHighSurrogate = 0, this._finished = !1
}
update(e) {
const t = e.length;
if (0 === t) return;
const n = this._buff;
let i, r, s = this._buffLen,
o = this._leftoverHighSurrogate;
for (0 !== o ? (i = o, r = -1, o = 0) : (i = e.charCodeAt(0), r = 0);;) {
let a = i;
if (j(i)) {
if (!(r + 1 < t)) {
o = i;
break
} {
const t = e.charCodeAt(r + 1);
G(t) ? (r++, a = z(i, t)) : a = 65533
}
} else G(i) && (a = 65533);
if (s = this._push(n, s, a), r++, !(r < t)) break;
i = e.charCodeAt(r)
}
this._buffLen = s, this._leftoverHighSurrogate = o
}
_push(e, t, 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
}
digest() {
return this._finished || (this._finished = !0, this._leftoverHighSurrogate && (this._leftoverHighSurrogate = 0, this._buffLen = this._push(this._buff, this._buffLen, 65533)), this._totalLen += this._buffLen, this._wrapUp()), me(this._h0) + me(this._h1) + me(this._h2) + me(this._h3) + me(this._h4)
}
_wrapUp() {
this._buff[this._buffLen++] = 128, ce(this._buff, this._buffLen), this._buffLen > 56 && (this._step(), ce(this._buff));
const e = 8 * this._totalLen;
this._buffDV.setUint32(56, Math.floor(e / 4294967296), !1), this._buffDV.setUint32(60, e % 4294967296, !1), this._step()
}
_step() {
const e = fe._bigBlock32,
t = this._buffDV;
for (let n = 0; n < 64; n += 4) e.setUint32(n, t.getUint32(n, !1), !1);
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);
let n, i, r, s = this._h0,
o = this._h1,
a = this._h2,
l = this._h3,
u = this._h4;
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;
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
}
}
fe._bigBlock32 = new DataView(new ArrayBuffer(320));
class ge {
constructor(e) {
this.source = e
}
getElements() {
const e = this.source,
t = new Int32Array(e.length);
for (let n = 0, i = e.length; n < i; n++) t[n] = e.charCodeAt(n);
return t
}
}
function _e(e, t, n) {
return new Se(new ge(e), new ge(t)).ComputeDiff(n).changes
}
class pe {
static Assert(e, t) {
if (!e) throw new Error(t)
}
}
class Ce {
static Copy(e, t, n, i, r) {
for (let s = 0; s < r; s++) n[i + s] = e[t + s]
}
static Copy2(e, t, n, i, r) {
for (let s = 0; s < r; s++) n[i + s] = e[t + s]
}
}
class Le {
constructor() {
this.m_changes = [], this.m_originalStart = 1073741824, this.m_modifiedStart = 1073741824, this.m_originalCount = 0, this.m_modifiedCount = 0
}
MarkNextChange() {
(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
}
AddOriginalElement(e, t) {
this.m_originalStart = Math.min(this.m_originalStart, e), this.m_modifiedStart = Math.min(this.m_modifiedStart, t), this.m_originalCount++
}
AddModifiedElement(e, t) {
this.m_originalStart = Math.min(this.m_originalStart, e), this.m_modifiedStart = Math.min(this.m_modifiedStart, t), this.m_modifiedCount++
}
getChanges() {
return (this.m_originalCount > 0 || this.m_modifiedCount > 0) && this.MarkNextChange(), this.m_changes
}
getReverseChanges() {
return (this.m_originalCount > 0 || this.m_modifiedCount > 0) && this.MarkNextChange(), this.m_changes.reverse(), this.m_changes
}
}
class Se {
constructor(e, t, n = null) {
this.ContinueProcessingPredicate = n, this._originalSequence = e, this._modifiedSequence = t;
const [i, r, s] = Se._getElements(e), [o, a, l] = Se._getElements(t);
this._hasStrings = s && l, this._originalStringElements = i, this._originalElementsOrHash = r, this._modifiedStringElements = o, this._modifiedElementsOrHash = a, this.m_forwardHistory = [], this.m_reverseHistory = []
}
static _isStringArray(e) {
return e.length > 0 && "string" == typeof e[0]
}
static _getElements(e) {
const t = e.getElements();
if (Se._isStringArray(t)) {
const e = new Int32Array(t.length);
for (let n = 0, i = t.length; n < i; n++) e[n] = he(t[n], 0);
return [t, e, !0]
}
return t instanceof Int32Array ? [
[], t, !1
] : [
[], new Int32Array(t), !1
]
}
ElementsAreEqual(e, t) {
return this._originalElementsOrHash[e] === this._modifiedElementsOrHash[t] && (!this._hasStrings || this._originalStringElements[e] === this._modifiedStringElements[t])
}
ElementsAreStrictEqual(e, t) {
if (!this.ElementsAreEqual(e, t)) return !1;
return Se._getStrictElement(this._originalSequence, e) === Se._getStrictElement(this._modifiedSequence, t)
}
static _getStrictElement(e, t) {
return "function" == typeof e.getStrictElement ? e.getStrictElement(t) : null
}
OriginalElementsAreEqual(e, t) {
return this._originalElementsOrHash[e] === this._originalElementsOrHash[t] && (!this._hasStrings || this._originalStringElements[e] === this._originalStringElements[t])
}
ModifiedElementsAreEqual(e, t) {
return this._modifiedElementsOrHash[e] === this._modifiedElementsOrHash[t] && (!this._hasStrings || this._modifiedStringElements[e] === this._modifiedStringElements[t])
}
ComputeDiff(e) {
return this._ComputeDiff(0, this._originalElementsOrHash.length - 1, 0, this._modifiedElementsOrHash.length - 1, e)
}
_ComputeDiff(e, t, n, i, r) {
const s = [!1];
let o = this.ComputeDiffRecursive(e, t, n, i, s);
return r && (o = this.PrettifyChanges(o)), {
quitEarly: s[0],
changes: o
}
}
ComputeDiffRecursive(e, t, n, i, r) {
for (r[0] = !1; e <= t && n <= i && this.ElementsAreEqual(e, n);) e++, n++;
for (; t >= e && i >= n && this.ElementsAreEqual(t, i);) t--, i--;
if (e > t || n > i) {
let r;
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
}
const s = [0],
o = [0],
a = this.ComputeRecursionPoint(e, t, n, i, s, o, r),
l = s[0],
u = o[0];
if (null !== a) return a;
if (!r[0]) {
const s = this.ComputeDiffRecursive(e, l, n, u, r);
let o = [];
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)
}
return [new le(e, t - e + 1, n, i - n + 1)]
}
WALKTRACE(e, t, n, i, r, s, o, a, l, u, h, d, c, m, f, g, _, p) {
let C = null,
L = null,
S = new Le,
b = t,
N = n,
E = c[0] - g[0] - i,
y = -1073741824,
A = this.m_forwardHistory.length - 1;
do {
const t = E + e;
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)
} while (--A >= -1);
if (C = S.getReverseChanges(), p[0]) {
let e = c[0] + 1,
t = g[0] + 1;
if (null !== C && C.length > 0) {
const n = C[C.length - 1];
e = Math.max(e, n.getOriginalEnd()), t = Math.max(t, n.getModifiedEnd())
}
L = [new le(e, d - e + 1, t, f - t + 1)]
} else {
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;
do {
const e = E + r;
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)
} while (--A >= -1);
L = S.getChanges()
}
return this.ConcatenateChanges(C, L)
}
ComputeRecursionPoint(e, t, n, i, r, s, o) {
let a = 0,
l = 0,
u = 0,
h = 0,
d = 0,
c = 0;
e--, n--, r[0] = 0, s[0] = 0, this.m_forwardHistory = [], this.m_reverseHistory = [];
const m = t - e + (i - n),
f = m + 1,
g = new Int32Array(f),
_ = new Int32Array(f),
p = i - n,
C = t - e,
L = e - n,
S = t - i,
b = (C - p) % 2 == 0;
g[p] = e, _[C] = t, o[0] = !1;
for (let N = 1; N <= m / 2 + 1; N++) {
let m = 0,
E = 0;
u = this.ClipDiagonalBound(p - N, N, p, f), h = this.ClipDiagonalBound(p + N, N, p, f);
for (let e = u; e <= h; e += 2) {
a = e === u || e < h && g[e - 1] < g[e + 1] ? g[e + 1] : g[e - 1] + 1, l = a - (e - p) - L;
const n = a;
for (; a < t && l < i && this.ElementsAreEqual(a + 1, l + 1);) a++, l++;
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
}
const y = (m - e + (E - n) - N) / 2;
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)]);
d = this.ClipDiagonalBound(C - N, N, C, f), c = this.ClipDiagonalBound(C + N, N, C, f);
for (let m = d; m <= c; m += 2) {
a = m === d || m < c && _[m - 1] >= _[m + 1] ? _[m + 1] - 1 : _[m - 1], l = a - (m - C) - S;
const f = a;
for (; a > e && l > n && this.ElementsAreEqual(a, l);) a--, l--;
gitextract_qv68qdhq/ ├── .github/ │ ├── FUNDING.yml │ ├── ISSUE_TEMPLATE/ │ │ └── issues-template-and-rules.yaml │ └── workflows/ │ └── CloseStaleIssues.yml ├── .gitignore ├── CFW/ │ └── README.md ├── README.md ├── app/ │ ├── README.md │ ├── build_default.bat │ ├── build_linux_arm64.ps1 │ ├── build_linux_x64.ps1 │ ├── build_win32-ia32.ps1 │ ├── build_win32_arm64.ps1 │ ├── build_win_x64.ps1 │ ├── clash_core/ │ │ ├── linux-arm64/ │ │ │ └── static/ │ │ │ └── files/ │ │ │ ├── default/ │ │ │ │ └── Country.mmdb │ │ │ └── linux/ │ │ │ └── arm64/ │ │ │ ├── clash-linux │ │ │ ├── clash-linux.sign │ │ │ └── service/ │ │ │ └── clash-core-service │ │ ├── linux-x64/ │ │ │ └── static/ │ │ │ └── files/ │ │ │ ├── default/ │ │ │ │ └── Country.mmdb │ │ │ └── linux/ │ │ │ └── x64/ │ │ │ ├── clash-linux │ │ │ ├── clash-linux.sign │ │ │ └── service/ │ │ │ └── clash-core-service │ │ ├── win32-arm64/ │ │ │ └── static/ │ │ │ └── files/ │ │ │ ├── default/ │ │ │ │ └── Country.mmdb │ │ │ └── win/ │ │ │ ├── arm64/ │ │ │ │ └── clash-win-arm64.exe.sign │ │ │ └── common/ │ │ │ ├── schtasks.xml │ │ │ ├── service.yml │ │ │ └── tun2socks/ │ │ │ ├── add_tap_device.bat │ │ │ ├── amd64/ │ │ │ │ ├── OemVista.inf │ │ │ │ ├── tap0901.cat │ │ │ │ └── tap0901.sys │ │ │ ├── find_tap_device_name.bat │ │ │ ├── i386/ │ │ │ │ ├── OemVista.inf │ │ │ │ ├── tap0901.cat │ │ │ │ └── tap0901.sys │ │ │ └── remove_tap_device.bat │ │ ├── win32-ia32/ │ │ │ └── static/ │ │ │ └── files/ │ │ │ ├── default/ │ │ │ │ └── Country.mmdb │ │ │ └── win/ │ │ │ ├── common/ │ │ │ │ ├── schtasks.xml │ │ │ │ ├── service.yml │ │ │ │ └── tun2socks/ │ │ │ │ ├── add_tap_device.bat │ │ │ │ ├── amd64/ │ │ │ │ │ ├── OemVista.inf │ │ │ │ │ ├── tap0901.cat │ │ │ │ │ └── tap0901.sys │ │ │ │ ├── find_tap_device_name.bat │ │ │ │ ├── i386/ │ │ │ │ │ ├── OemVista.inf │ │ │ │ │ ├── tap0901.cat │ │ │ │ │ └── tap0901.sys │ │ │ │ └── remove_tap_device.bat │ │ │ └── ia32/ │ │ │ └── clash-win32.exe.sign │ │ └── win_x64/ │ │ └── static/ │ │ └── files/ │ │ ├── default/ │ │ │ └── Country.mmdb │ │ └── win/ │ │ ├── common/ │ │ │ ├── schtasks.xml │ │ │ ├── service.yml │ │ │ └── tun2socks/ │ │ │ ├── add_tap_device.bat │ │ │ ├── amd64/ │ │ │ │ ├── OemVista.inf │ │ │ │ ├── tap0901.cat │ │ │ │ └── tap0901.sys │ │ │ ├── find_tap_device_name.bat │ │ │ ├── i386/ │ │ │ │ ├── OemVista.inf │ │ │ │ ├── tap0901.cat │ │ │ │ └── tap0901.sys │ │ │ └── remove_tap_device.bat │ │ └── x64/ │ │ └── clash-win64.exe.sign │ └── main/ │ ├── ABOUT/ │ │ ├── LICENSE.electron.txt │ │ └── state.txt │ ├── dist/ │ │ └── electron/ │ │ ├── 287.js │ │ ├── 295.js │ │ ├── 585.js │ │ ├── editor.worker.js │ │ ├── index.html │ │ ├── main.js │ │ ├── renderer.js │ │ └── renderer.js.LICENSE.txt │ └── package.json ├── chinese_file/ │ ├── Auto/ │ │ ├── main-chinese.txt │ │ └── renderer-chinese.txt │ ├── Manual-Chinese/ │ │ ├── Clash_Sinicization_Comparison_Table_Old │ │ ├── main │ │ └── renderer │ ├── Sinicization_files/ │ │ ├── main.js │ │ └── renderer.js │ └── packing_script.iss ├── image/ │ └── This folder stores pictures └── update
Copy disabled (too large)
Download .txt
Showing preview only (13,778K chars total). Download the full file to get everything.
SYMBOL INDEX (19695 symbols across 5 files)
FILE: app/main/dist/electron/editor.worker.js
method constructor (line 4) | constructor() {
method emit (line 12) | emit(e) {
method onUnexpectedError (line 17) | onUnexpectedError(e) {
method onUnexpectedExternalError (line 20) | onUnexpectedExternalError(e) {
function t (line 25) | function t(t) {
function n (line 29) | function n(e) {
function r (line 46) | function r(e) {
function s (line 50) | function s(e) {
function u (line 124) | function u(e) {
method constructor (line 449) | constructor(e) {
method map (line 452) | map(e) {
method forEach (line 455) | forEach(e) {
method filter (line 458) | filter(e) {
method reduce (line 461) | reduce(e, t) {
method latch (line 464) | latch() {
method debounce (line 467) | debounce(e, t = 100, n = !1, i) {
method on (line 470) | on(e, t, n) {
method once (line 473) | once(e, n, i) {
function h (line 128) | function h(e) {
function d (line 132) | function d(e, t) {
class c (line 135) | class c extends Error {
method constructor (line 136) | constructor(e) {
function m (line 141) | function m(e) {
function f (line 157) | function f(...e) {
function g (line 165) | function g(e) {
class _ (line 173) | class _ {
method constructor (line 174) | constructor() {
method dispose (line 177) | dispose() {
method clear (line 180) | clear() {
method add (line 187) | add(e) {
class p (line 194) | class p {
method constructor (line 195) | constructor() {
method dispose (line 198) | dispose() {
method _register (line 201) | _register(e) {
method dispose (line 207) | dispose() {}
class C (line 209) | class C {
method constructor (line 210) | constructor(e) {
class L (line 215) | class L {
method constructor (line 216) | constructor() {
method size (line 219) | get size() {
method isEmpty (line 222) | isEmpty() {
method clear (line 225) | clear() {
method unshift (line 233) | unshift(e) {
method push (line 236) | push(e) {
method _insert (line 239) | _insert(e, t) {
method shift (line 255) | shift() {
method pop (line 261) | pop() {
method _remove (line 267) | _remove(e) {
method [Symbol.iterator] (line 273) | *[Symbol.iterator]() {
class U (line 335) | class U {
method constructor (line 336) | constructor(e) {
method create (line 339) | static create(e = !0) {
method stop (line 342) | stop() {
method elapsed (line 345) | elapsed() {
method _now (line 348) | _now() {
function t (line 354) | function t(e) {
function n (line 363) | function n(e, t) {
function i (line 367) | function i(e, t) {
function r (line 373) | function r(e, t) {
function s (line 377) | function s(e, t, i) {
function o (line 382) | function o(e) {
function a (line 395) | function a(e, t, n = 100, i = !1, r) {
function l (line 414) | function l(e, t = ((e, t) => e === t)) {
method onFirstListenerAdd (line 436) | onFirstListenerAdd() {
method onFirstListenerDidAdd (line 439) | onFirstListenerDidAdd() {
method onLastListenerRemove (line 442) | onLastListenerRemove() {
class u (line 448) | class u {
method constructor (line 449) | constructor(e) {
method map (line 452) | map(e) {
method forEach (line 455) | forEach(e) {
method filter (line 458) | filter(e) {
method reduce (line 461) | reduce(e, t) {
method latch (line 464) | latch() {
method debounce (line 467) | debounce(e, t = 100, n = !1, i) {
method on (line 470) | on(e, t, n) {
method once (line 473) | once(e, n, i) {
class q (line 497) | class q {
method constructor (line 498) | constructor(e) {
method start (line 501) | start(e) {
method stop (line 504) | stop() {
class H (line 512) | class H {
method constructor (line 513) | constructor(e) {
method event (line 517) | get event() {
method fire (line 534) | fire(e) {
method dispose (line 550) | dispose() {
function W (line 556) | function W(e) {
function $ (line 567) | function $(e) {
function j (line 571) | function j(e) {
function G (line 575) | function G(e) {
function z (line 579) | function z(e, t) {
class Y (line 583) | class Y {
method constructor (line 584) | constructor() {
method getInstance (line 587) | static getInstance() {
method getGraphemeBreakType (line 590) | getGraphemeBreakType(e) {
class Z (line 607) | class Z {
method constructor (line 608) | constructor(e, t, n, i) {
class J (line 612) | class J {
method constructor (line 613) | constructor(e, t, n, i) {
class ee (line 617) | class ee {
method constructor (line 618) | constructor(e, t, n, i) {
class te (line 622) | class te {
method constructor (line 623) | constructor(e, t, n) {
class ne (line 627) | class ne {
method constructor (line 628) | constructor(e, t) {
class ie (line 632) | class ie {
method constructor (line 633) | constructor(e) {
method setWorkerId (line 636) | setWorkerId(e) {
method sendMessage (line 639) | sendMessage(e, t) {
method listen (line 648) | listen(e, t) {
method handleMessage (line 660) | handleMessage(e) {
method _handleMessage (line 663) | _handleMessage(e) {
method _handleReplyMessage (line 677) | _handleReplyMessage(e) {
method _handleRequestMessage (line 686) | _handleRequestMessage(e) {
method _handleSubscribeEventMessage (line 694) | _handleSubscribeEventMessage(e) {
method _handleEventMessage (line 701) | _handleEventMessage(e) {
method _handleUnsubscribeEventMessage (line 704) | _handleUnsubscribeEventMessage(e) {
method _send (line 707) | _send(e) {
function re (line 716) | function re(e) {
function se (line 720) | function se(e) {
function oe (line 724) | function oe(e, t, n) {
class ae (line 736) | class ae {
method constructor (line 737) | constructor(e, t) {
method onmessage (line 746) | onmessage(e) {
method _handleMessage (line 749) | _handleMessage(e, t) {
method _handleEvent (line 758) | _handleEvent(e, t) {
method initialize (line 772) | initialize(e, t, n, i) {
class le (line 782) | class le {
method constructor (line 783) | constructor(e, t, n, i) {
method getOriginalEnd (line 786) | getOriginalEnd() {
method getModifiedEnd (line 789) | getModifiedEnd() {
function ue (line 794) | function ue(e, t) {
function he (line 798) | function he(e, t) {
function de (line 804) | function de(e, t, n = 32) {
function ce (line 809) | function ce(e, t = 0, n = e.byteLength, i = 0) {
function me (line 813) | function me(e, t = 32) {
class fe (line 819) | class fe {
method constructor (line 820) | constructor() {
method update (line 823) | update(e) {
method _push (line 845) | _push(e, t, n) {
method digest (line 848) | digest() {
method _wrapUp (line 851) | _wrapUp() {
method _step (line 856) | _step() {
class ge (line 871) | class ge {
method constructor (line 872) | constructor(e) {
method getElements (line 875) | getElements() {
function _e (line 883) | function _e(e, t, n) {
class pe (line 886) | class pe {
method Assert (line 887) | static Assert(e, t) {
class Ce (line 891) | class Ce {
method Copy (line 892) | static Copy(e, t, n, i, r) {
method Copy2 (line 895) | static Copy2(e, t, n, i, r) {
class Le (line 899) | class Le {
method constructor (line 900) | constructor() {
method MarkNextChange (line 903) | MarkNextChange() {
method AddOriginalElement (line 906) | AddOriginalElement(e, t) {
method AddModifiedElement (line 909) | AddModifiedElement(e, t) {
method getChanges (line 912) | getChanges() {
method getReverseChanges (line 915) | getReverseChanges() {
class Se (line 919) | class Se {
method constructor (line 920) | constructor(e, t, n = null) {
method _isStringArray (line 925) | static _isStringArray(e) {
method _getElements (line 928) | static _getElements(e) {
method ElementsAreEqual (line 941) | ElementsAreEqual(e, t) {
method ElementsAreStrictEqual (line 944) | ElementsAreStrictEqual(e, t) {
method _getStrictElement (line 948) | static _getStrictElement(e, t) {
method OriginalElementsAreEqual (line 951) | OriginalElementsAreEqual(e, t) {
method ModifiedElementsAreEqual (line 954) | ModifiedElementsAreEqual(e, t) {
method ComputeDiff (line 957) | ComputeDiff(e) {
method _ComputeDiff (line 960) | _ComputeDiff(e, t, n, i, r) {
method ComputeDiffRecursive (line 968) | ComputeDiffRecursive(e, t, n, i, r) {
method WALKTRACE (line 988) | WALKTRACE(e, t, n, i, r, s, o, a, l, u, h, d, c, m, f, g, _, p) {
method ComputeRecursionPoint (line 1019) | ComputeRecursionPoint(e, t, n, i, r, s, o) {
method PrettifyChanges (line 1063) | PrettifyChanges(e) {
method _findBetterContiguousSequence (line 1124) | _findBetterContiguousSequence(e, t, n, i, r) {
method _contiguousSequenceScore (line 1138) | _contiguousSequenceScore(e, t, n) {
method _OriginalIsBoundary (line 1146) | _OriginalIsBoundary(e) {
method _OriginalRegionIsBoundary (line 1149) | _OriginalRegionIsBoundary(e, t) {
method _ModifiedIsBoundary (line 1157) | _ModifiedIsBoundary(e) {
method _ModifiedRegionIsBoundary (line 1160) | _ModifiedRegionIsBoundary(e, t) {
method _boundaryScore (line 1168) | _boundaryScore(e, t, n, i) {
method ConcatenateChanges (line 1171) | ConcatenateChanges(e, t) {
method ChangesOverlap (line 1182) | ChangesOverlap(e, t, n) {
method ClipDiagonalBound (line 1192) | ClipDiagonalBound(e, t, n, i) {
method platform (line 1204) | get platform() {
method arch (line 1207) | get arch() {
method env (line 1210) | get env() {
method platform (line 1217) | get platform() {
method arch (line 1220) | get arch() {
method env (line 1223) | get env() {
method platform (line 1229) | get platform() {
method arch (line 1232) | get arch() {}
method env (line 1234) | get env() {
class Me (line 1246) | class Me extends Error {
method constructor (line 1247) | constructor(e, t, n) {
function Ke (line 1256) | function Ke(e, t) {
function Oe (line 1260) | function Oe(e) {
function Te (line 1264) | function Te(e) {
function Re (line 1268) | function Re(e) {
function Ve (line 1272) | function Ve(e, t, n, i) {
function Ie (line 1305) | function Ie(e, t) {
method resolve (line 1312) | resolve(...e) {
method normalize (line 1352) | normalize(e) {
method isAbsolute (line 1379) | isAbsolute(e) {
method join (line 1386) | join(...e) {
method relative (line 1407) | relative(e, t) {
method toNamespacedPath (line 1444) | toNamespacedPath(e) {
method dirname (line 1457) | dirname(e) {
method basename (line 1495) | basename(e, t) {
method extname (line 1524) | extname(e) {
method parse (line 1545) | parse(e) {
method resolve (line 1601) | resolve(...e) {
method normalize (line 1610) | normalize(e) {
method join (line 1617) | join(...e) {
method relative (line 1626) | relative(e, t) {
method dirname (line 1650) | dirname(e) {
method basename (line 1664) | basename(e, t) {
method extname (line 1693) | extname(e) {
method parse (line 1711) | parse(e) {
function Ue (line 1754) | function Ue(e, t) {
class We (line 1765) | class We {
method constructor (line 1766) | constructor(e, t, n, i, r, s = !1) {
method isUri (line 1779) | static isUri(e) {
method fsPath (line 1782) | get fsPath() {
method with (line 1785) | with(e) {
method parse (line 1796) | static parse(e, t = !1) {
method file (line 1800) | static file(e) {
method from (line 1807) | static from(e) {
method joinPath (line 1811) | static joinPath(e, ...t) {
method toString (line 1818) | toString(e = !1) {
method toJSON (line 1821) | toJSON() {
method revive (line 1824) | static revive(e) {
class je (line 1835) | class je extends We {
method constructor (line 1836) | constructor() {
method fsPath (line 1839) | get fsPath() {
method toString (line 1842) | toString(e = !1) {
method toJSON (line 1845) | toJSON() {
function ze (line 1874) | function ze(e, t) {
function Ye (line 1888) | function Ye(e) {
function Qe (line 1897) | function Qe(e, t) {
function Xe (line 1902) | function Xe(e, t) {
function Ze (line 1933) | function Ze(e) {
function et (line 1942) | function et(e) {
class tt (line 1945) | class tt {
method constructor (line 1946) | constructor(e, t) {
method with (line 1949) | with(e = this.lineNumber, t = this.column) {
method delta (line 1952) | delta(e = 0, t = 0) {
method equals (line 1955) | equals(e) {
method equals (line 1958) | static equals(e, t) {
method isBefore (line 1961) | isBefore(e) {
method isBefore (line 1964) | static isBefore(e, t) {
method isBeforeOrEqual (line 1967) | isBeforeOrEqual(e) {
method isBeforeOrEqual (line 1970) | static isBeforeOrEqual(e, t) {
method compare (line 1973) | static compare(e, t) {
method clone (line 1981) | clone() {
method toString (line 1984) | toString() {
method lift (line 1987) | static lift(e) {
method isIPosition (line 1990) | static isIPosition(e) {
class nt (line 1994) | class nt {
method constructor (line 1995) | constructor(e, t, n, i) {
method isEmpty (line 1998) | isEmpty() {
method isEmpty (line 2001) | static isEmpty(e) {
method containsPosition (line 2004) | containsPosition(e) {
method containsPosition (line 2007) | static containsPosition(e, t) {
method containsRange (line 2010) | containsRange(e) {
method containsRange (line 2013) | static containsRange(e, t) {
method strictContainsRange (line 2016) | strictContainsRange(e) {
method strictContainsRange (line 2019) | static strictContainsRange(e, t) {
method plusRange (line 2022) | plusRange(e) {
method plusRange (line 2025) | static plusRange(e, t) {
method intersectRanges (line 2029) | intersectRanges(e) {
method intersectRanges (line 2032) | static intersectRanges(e, t) {
method equalsRange (line 2043) | equalsRange(e) {
method equalsRange (line 2046) | static equalsRange(e, t) {
method getEndPosition (line 2049) | getEndPosition() {
method getEndPosition (line 2052) | static getEndPosition(e) {
method getStartPosition (line 2055) | getStartPosition() {
method getStartPosition (line 2058) | static getStartPosition(e) {
method toString (line 2061) | toString() {
method setEndPosition (line 2064) | setEndPosition(e, t) {
method setStartPosition (line 2067) | setStartPosition(e, t) {
method collapseToStart (line 2070) | collapseToStart() {
method collapseToStart (line 2073) | static collapseToStart(e) {
method fromPositions (line 2076) | static fromPositions(e, t = e) {
method lift (line 2079) | static lift(e) {
method isIRange (line 2082) | static isIRange(e) {
method areIntersectingOrTouching (line 2085) | static areIntersectingOrTouching(e, t) {
method areIntersecting (line 2088) | static areIntersecting(e, t) {
method compareRangesUsingStarts (line 2091) | static compareRangesUsingStarts(e, t) {
method compareRangesUsingEnds (line 2112) | static compareRangesUsingEnds(e, t) {
method spansMultipleLines (line 2115) | static spansMultipleLines(e) {
function it (line 2120) | function it(e, t, n, i) {
class rt (line 2123) | class rt {
method constructor (line 2124) | constructor(e) {
method getElements (line 2130) | getElements() {
method getStrictElement (line 2135) | getStrictElement(e) {
method getStartLineNumber (line 2138) | getStartLineNumber(e) {
method getEndLineNumber (line 2141) | getEndLineNumber(e) {
method createCharSequence (line 2144) | createCharSequence(e, t, n) {
class st (line 2158) | class st {
method constructor (line 2159) | constructor(e, t, n) {
method getElements (line 2162) | getElements() {
method getStartLineNumber (line 2165) | getStartLineNumber(e) {
method getStartColumn (line 2168) | getStartColumn(e) {
method getEndLineNumber (line 2171) | getEndLineNumber(e) {
method getEndColumn (line 2174) | getEndColumn(e) {
class ot (line 2178) | class ot {
method constructor (line 2179) | constructor(e, t, n, i, r, s, o, a) {
method createFromDiffChange (line 2182) | static createFromDiffChange(e, t, n) {
class at (line 2187) | class at {
method constructor (line 2188) | constructor(e, t, n, i, r) {
method createFromDiffResult (line 2191) | static createFromDiffResult(e, t, n, i, r, s, o) {
class lt (line 2214) | class lt {
method constructor (line 2215) | constructor(e, t, n) {
method computeDiff (line 2218) | computeDiff() {
method _pushTrimWhitespaceCharChange (line 2309) | _pushTrimWhitespaceCharChange(e, t, n, i, r, s, o) {
method _mergeTrimWhitespaceCharChange (line 2314) | _mergeTrimWhitespaceCharChange(e, t, n, i, r, s, o) {
function ut (line 2322) | function ut(e, t) {
function ht (line 2333) | function ht(e, t) {
function dt (line 2344) | function dt(e) {
function ct (line 2350) | function ct(e) {
function mt (line 2354) | function mt(e) {
class ft (line 2357) | class ft {
method constructor (line 2358) | constructor(e, t) {
class gt (line 2362) | class gt {
method constructor (line 2363) | constructor(e) {
method insertValues (line 2366) | insertValues(e, t) {
method changeValue (line 2373) | changeValue(e, t) {
method removeValues (line 2376) | removeValues(e, t) {
method getTotalSum (line 2384) | getTotalSum() {
method getPrefixSum (line 2387) | getPrefixSum(e) {
method _getPrefixSum (line 2390) | _getPrefixSum(e) {
method getIndexOf (line 2397) | getIndexOf(e) {
class _t (line 2412) | class _t {
method constructor (line 2413) | constructor(e, t, n, i) {
method dispose (line 2416) | dispose() {
method version (line 2419) | get version() {
method getText (line 2422) | getText() {
method onEvents (line 2425) | onEvents(e) {
method _ensureLineStarts (line 2431) | _ensureLineStarts() {
method _setLineText (line 2440) | _setLineText(e, t) {
method _acceptDeleteRange (line 2443) | _acceptDeleteRange(e) {
method _acceptInsertText (line 2450) | _acceptInsertText(e, t) {
function Lt (line 2471) | function Lt(e, t, n, i, r = Ct) {
function St (line 2499) | function St(e, t, n, i) {
class bt (line 2508) | class bt {
method constructor (line 2509) | constructor(e) {
method _createAsciiMap (line 2513) | static _createAsciiMap(e) {
method set (line 2518) | set(e, t) {
method get (line 2522) | get(e) {
class Nt (line 2526) | class Nt {
method constructor (line 2527) | constructor(e, t, n) {
method get (line 2532) | get(e, t) {
method set (line 2535) | set(e, t, n) {
class Et (line 2539) | class Et {
method constructor (line 2540) | constructor(e) {
method nextState (line 2555) | nextState(e, t) {
class wt (line 2561) | class wt {
method _createLink (line 2562) | static _createLink(e, t, n, i, r) {
method computeLinks (line 2584) | static computeLinks(e, t = function() {
class vt (line 2689) | class vt {
method constructor (line 2690) | constructor() {
method navigateValueSet (line 2698) | navigateValueSet(e, t, n, i, r) {
method doNavigateValueSet (line 2715) | doNavigateValueSet(e, t) {
method numberReplace (line 2719) | numberReplace(e, t) {
method textReplace (line 2725) | textReplace(e, t) {
method valueSetsReplace (line 2728) | valueSetsReplace(e, t, n) {
method valueSetReplace (line 2733) | valueSetReplace(e, t, n) {
method dispose (line 2742) | dispose() {
class Ot (line 2759) | class Ot {
method constructor (line 2760) | constructor() {
method cancel (line 2763) | cancel() {
method isCancellationRequested (line 2766) | get isCancellationRequested() {
method onCancellationRequested (line 2769) | get onCancellationRequested() {
method dispose (line 2772) | dispose() {
class Tt (line 2776) | class Tt {
method constructor (line 2777) | constructor(e) {
method token (line 2780) | get token() {
method cancel (line 2783) | cancel() {
method dispose (line 2786) | dispose(e = !1) {
class Rt (line 2790) | class Rt {
method constructor (line 2791) | constructor() {
method define (line 2794) | define(e, t) {
method keyCodeToStr (line 2797) | keyCodeToStr(e) {
method strToKeyCode (line 2800) | strToKeyCode(e) {
class wn (line 3089) | class wn extends nt {
method constructor (line 3090) | constructor(e, t, n, i) {
method toString (line 3093) | toString() {
method equalsSelection (line 3096) | equalsSelection(e) {
method selectionsEqual (line 3099) | static selectionsEqual(e, t) {
method getDirection (line 3102) | getDirection() {
method setEndPosition (line 3105) | setEndPosition(e, t) {
method getPosition (line 3108) | getPosition() {
method setStartPosition (line 3111) | setStartPosition(e, t) {
method fromPositions (line 3114) | static fromPositions(e, t = e) {
method liftSelection (line 3117) | static liftSelection(e) {
method selectionsArrEqual (line 3120) | static selectionsArrEqual(e, t) {
method isISelection (line 3128) | static isISelection(e) {
method createWithDirection (line 3131) | static createWithDirection(e, t, n, i, r) {
class vn (line 3135) | class vn {
method constructor (line 3136) | constructor(e, t, n) {
method toString (line 3139) | toString() {
class Mn (line 3247) | class Mn {
method chord (line 3248) | static chord(e, t) {
function o (line 3257) | function o(e) {
function a (line 3265) | function a(e) {
function l (line 3273) | function l(e) {
class On (line 3282) | class On extends _t {
method uri (line 3283) | get uri() {
method eol (line 3286) | get eol() {
method getValue (line 3289) | getValue() {
method getLinesContent (line 3292) | getLinesContent() {
method getLineCount (line 3295) | getLineCount() {
method getLineContent (line 3298) | getLineContent(e) {
method getWordAtPosition (line 3301) | getWordAtPosition(e, t) {
method words (line 3313) | words(e) {
method getLineWords (line 3333) | getLineWords(e, t) {
method _wordenize (line 3344) | _wordenize(e, t) {
method getValueInRange (line 3354) | getValueInRange(e) {
method offsetAt (line 3364) | offsetAt(e) {
method positionAt (line 3367) | positionAt(e) {
method _validateRange (line 3376) | _validateRange(e) {
method _validatePosition (line 3392) | _validatePosition(e) {
class Tn (line 3410) | class Tn {
method constructor (line 3411) | constructor(e, t) {
method dispose (line 3414) | dispose() {
method _getModel (line 3417) | _getModel(e) {
method _getModels (line 3420) | _getModels() {
method acceptNewModel (line 3424) | acceptNewModel(e) {
method acceptModelChanged (line 3427) | acceptModelChanged(e, t) {
method acceptRemovedModel (line 3431) | acceptRemovedModel(e) {
method computeDiff (line 3434) | computeDiff(e, t, n, i) {
method _modelsAreIdentical (line 3456) | _modelsAreIdentical(e, t) {
method computeMoreMinimalEdits (line 3464) | computeMoreMinimalEdits(e, t) {
method computeLinks (line 3518) | computeLinks(e) {
method textualSuggest (line 3526) | textualSuggest(e, t, n, i) {
method computeWordRanges (line 3543) | computeWordRanges(e, t, n, i) {
method navigateValueSet (line 3565) | navigateValueSet(e, t, n, i, r) {
method loadForeignModule (line 3586) | loadForeignModule(e, t, n) {
method fmr (line 3602) | fmr(e, t) {
FILE: app/main/dist/electron/main.js
function language (line 1) | function language(v, en, cn) {
function t (line 39) | function t(args, next, b, c, reject, type, message) {
function c (line 59) | function c(e) {
function s (line 63) | function s(e) {
function s (line 159) | function s(e, t, n) {
function l (line 175) | function l(e, t, n, r) {
function u (line 216) | function u(e, t, n) {
function b (line 236) | function b() {}
function g (line 238) | function g() {}
function y (line 240) | function y() {}
function C (line 250) | function C(e) {
function M (line 258) | function M(e, t) {
function _ (line 287) | function _(e, n) {
function S (line 302) | function S(e) {
function O (line 309) | function O(e) {
function P (line 314) | function P(e) {
function I (line 320) | function I(e) {
function T (line 340) | function T() {
function o (line 394) | function o(r, o) {
function n (line 498) | function n(r) {
function m (line 542) | function m(e, t) {
function b (line 553) | function b(e) {
function j (line 574) | function j() {
function Launch (line 578) | function Launch() {
function D (line 596) | function D() {
function R (line 1689) | function R() {
function RelaunchApp (line 1699) | function RelaunchApp() {
function B (line 1707) | function B(e) {
FILE: app/main/dist/electron/renderer.js
constant VERSION (line 3) | const VERSION = "0.20.39 Opt-3";
function language (line 4) | function language(v, en, cn) {
class Language (line 7) | class Language {
method constructor (line 8) | constructor(language) {
method locale (line 11) | locale() { return language(this.language, 'en-us', 'zh-cn') }
method languageString (line 12) | languageString() { return language(this.language, "Language", "语言") }
method loading (line 13) | loading() { return language(this.language, "Loading...", "加载中...") }
method error (line 14) | error() { return language(this.language, "Error", "错误") }
method yes (line 15) | yes() { return language(this.language, "Yes", "是") }
method no (line 16) | no() { return language(this.language, "No", "否") }
method failedConnectCore (line 17) | failedConnectCore() { return language(this.language, "Could not connec...
method homeDirectory (line 18) | homeDirectory() { return language(this.language, "Home Directory", "主目...
method openFolder (line 19) | openFolder() { return language(this.language, "Open Folder", "打开文件夹") }
method logsFolder (line 20) | logsFolder() { return language(this.language, "Logs Folder", "日志文件夹") }
method tryRepair (line 21) | tryRepair() { return language(this.language, "Try to repair", "尝试修复") }
method ok (line 22) | ok() { return language(this.language, "OK", "确定") }
method text (line 23) | text() { return language(this.language, "Text", "文本") }
method install (line 24) | install() { return language(this.language, "Install", "安装") }
method uninstall (line 25) | uninstall() { return language(this.language, "Uninstall", "卸载") }
method name (line 26) | name() { return language(this.language, "Name", "名字") }
method save (line 27) | save() { return language(this.language, "Save", "保存") }
method cancel (line 28) | cancel() { return language(this.language, "Cancel", "取消") }
method add (line 29) | add() { return language(this.language, "Add", "添加") }
method quit (line 30) | quit() { return language(this.language, "Quit", "退出") }
method restartingCore (line 31) | restartingCore() { return language(this.language, "Restarting core..."...
method noProxyGroupInProfile (line 32) | noProxyGroupInProfile() { return language(this.language, "No proxy gro...
method connectInfo (line 33) | connectInfo() { return language(this.language, "Connection Info", "连接信...
method cfwRunInBg (line 34) | cfwRunInBg() { return language(this.language, "Clash is running in the...
method enjoyFreedom (line 35) | enjoyFreedom() { return language(this.language, "Enjoy your free time"...
method failUpdateUrlProfile (line 36) | failUpdateUrlProfile() { return language(this.language, "fail to updat...
method profileUpdateFail (line 37) | profileUpdateFail() { return language(this.language, "Profile update f...
method profileDownloaded (line 38) | profileDownloaded() { return language(this.language, "Profile had been...
method appExiting (line 39) | appExiting() { return language(this.language, "app exiting, turn off s...
method httpFailStart (line 40) | httpFailStart() { return language(this.language, "http server failed t...
method httpStartAt (line 41) | httpStartAt() { return language(this.language, "http server started at...
method firstLunach (line 42) | firstLunach() { return language(this.language, "first luanch, creating...
method appStartWithMode (line 43) | appStartWithMode() { return language(this.language, "app start with mo...
method failLoadGeneralCfg (line 44) | failLoadGeneralCfg() { return language(this.language, "fail to load ge...
method loadDataFromGeneral (line 45) | loadDataFromGeneral() { return language(this.language, "load data from...
method general (line 46) | general() { return language(this.language, "General", "主页") }
method proxies (line 47) | proxies() { return language(this.language, "Proxies", "代理") }
method profiles (line 48) | profiles() { return language(this.language, "Profiles", "配置") }
method logs (line 49) | logs() { return language(this.language, "Logs", "日志") }
method connections (line 50) | connections() { return language(this.language, "Connections", "连接") }
method feedback (line 51) | feedback() { return language(this.language, "Feedback", "关于") }
method providers (line 52) | providers() { return language(this.language, "Providers", "提供") }
method stopSorting (line 53) | stopSorting() { return language(this.language, "Stop Sorting", "停止排序") }
method connected (line 54) | connected() { return language(this.language, "Connected", "已连接") }
method disconnected (line 55) | disconnected() { return language(this.language, "Disconnected", "未连接") }
method nowVersionUpToDate (line 56) | nowVersionUpToDate() { return language(this.language, "You are awesome...
method nowVersionUpToDateDescribe (line 57) | nowVersionUpToDateDescribe() { return language(this.language, "The cur...
method updatedThenRestartAsk (line 58) | updatedThenRestartAsk() { return language(this.language, "Update insta...
method downloadDoneRunAsk (line 59) | downloadDoneRunAsk() { return language(this.language, "Package downloa...
method port (line 60) | port() { return language(this.language, "Port", "端口") }
method changeMixedPort (line 61) | changeMixedPort() { return language(this.language, "Change Mixed Port"...
method newPort (line 62) | newPort() { return language(this.language, "New Port", "新端口") }
method allowLAN (line 63) | allowLAN() { return language(this.language, "Allow LAN", "允许局域网") }
method infoAllowLAN (line 64) | infoAllowLAN() { return language(this.language, "Turn on to listen on ...
method logLevel (line 65) | logLevel() { return language(this.language, "Log Level", "日志级别") }
method clashCore (line 66) | clashCore() { return language(this.language, "Clash Core", "Clash 内核") }
method loopbackUWP (line 67) | loopbackUWP() { return language(this.language, "UWP Loopback", "UWP 应用...
method deviceTAP (line 68) | deviceTAP() { return language(this.language, "TAP Device", "虚拟网卡安装(TAP...
method serviceMode (line 69) | serviceMode() { return language(this.language, "Service Mode", "服务模式") }
method mixin (line 70) | mixin() { return language(this.language, "Mixin", "混合配置") }
method sysProxy (line 71) | sysProxy() { return language(this.language, "System Proxy", "系统代理") }
method askOpenURL (line 72) | askOpenURL() { return language(this.language, "Are you sure to open th...
method silent (line 73) | silent() { return language(this.language, "silent", "静默") }
method errorS (line 74) | errorS() { return language(this.language, "error", "错误") }
method warn (line 75) | warn() { return language(this.language, "warn", "警告") }
method warning (line 76) | warning() { return language(this.language, "Warning", "警告") }
method info (line 77) | info() { return language(this.language, "info", "信息") }
method debug (line 78) | debug() { return language(this.language, "debug", "调试") }
method logLevelSelection (line 79) | logLevelSelection() { return language(this.language, ["silent", "error...
method silentDescribe (line 80) | silentDescribe() { return language(this.language, "silent will prevent...
method changeLogLevel (line 81) | changeLogLevel() { return language(this.language, "Change Log Level", ...
method global (line 82) | global() { return language(this.language, "Global", "全局") }
method rule (line 83) | rule() { return language(this.language, "Rule", "规则") }
method direct (line 84) | direct() { return language(this.language, "Direct", "直连") }
method script (line 85) | script() { return language(this.language, "Script", "脚本") }
method settings (line 86) | settings() { return language(this.language, "Settings", "设置") }
method resetAllSettings (line 87) | resetAllSettings() { return language(this.language, "Reset All Setting...
method forceQuit (line 88) | forceQuit() { return language(this.language, "Force Quit", "强制退出") }
method security (line 89) | security() { return language(this.language, "Security", "安全") }
method coreSecret (line 90) | coreSecret() { return language(this.language, "Core Secret", "核心Secret...
method coreSecretDscribeFirst (line 91) | coreSecretDscribeFirst() { return language(this.language, "Set Clash C...
method coreSecretDscribeSecond (line 92) | coreSecretDscribeSecond() { return language(this.language, "to a rando...
method coreSecretDscribeThird (line 93) | coreSecretDscribeThird() { return language(this.language, "4122 versio...
method coreSecretDscribeFourth (line 94) | coreSecretDscribeFourth() { return language(this.language, "The value ...
method coreSecretDscribeFifth (line 95) | coreSecretDscribeFifth() { return language(this.language, "For details...
method allowUnsafeURLs (line 96) | allowUnsafeURLs() { return language(this.language, "Allow Unsafe URLs"...
method allowUnsafeURLsDescribeFirst (line 97) | allowUnsafeURLsDescribeFirst() { return language(this.language, "Set t...
method allowUnsafeURLsDescribeSecond (line 98) | allowUnsafeURLsDescribeSecond() { return language(this.language, "Do n...
method allowUnsafeURLsDescribeThird (line 99) | allowUnsafeURLsDescribeThird() { return language(this.language, "chang...
method settingsEditor (line 100) | settingsEditor() { return language(this.language, "Settings Editor", "...
method settingsEditorFirst (line 101) | settingsEditorFirst() { return language(this.language, "Text editor us...
method settingsEditorSecond (line 102) | settingsEditorSecond() { return language(this.language, "For", "对于") }
method settingsEditorThird (line 103) | settingsEditorThird() { return language(this.language, ", the command ...
method settingsEditorFourth (line 104) | settingsEditorFourth() { return language(this.language, "after the edi...
method custom (line 105) | custom() { return language(this.language, "Custom", "自定义") }
method actions (line 106) | actions() { return language(this.language, "Actions", "操作(Actions)") }
method theme (line 107) | theme() { return language(this.language, "Theme", "主题") }
method themeOption (line 108) | themeOption() { return language(this.language, ["Light", "Dark", "Mine...
method networkInterfaces (line 109) | networkInterfaces() { return language(this.language, "Network Interfac...
method mixinAllowsDescribe (line 110) | mixinAllowsDescribe() { return language(this.language, "Mixin allows y...
method startWithWindows (line 111) | startWithWindows() { return language(this.language, "Start with Window...
method sortDescribe (line 112) | sortDescribe() { return language(this.language, "Drag to sort or add t...
method manage (line 113) | manage() { return language(this.language, "Manage", "管理") }
method reinstallDescribeWithTAP (line 114) | reinstallDescribeWithTAP() { return language(this.language, "You need ...
method TAPdeviceManagement (line 115) | TAPdeviceManagement() { return language(this.language, "TAP device man...
method TAPinstallDescribe (line 116) | TAPinstallDescribe() { return language(this.language, "An adapter name...
method customize (line 117) | customize() { return language(this.language, "Customize", "定制") }
method serviceManagement (line 118) | serviceManagement() { return language(this.language, "Service manageme...
method serviceManagementDescribe (line 119) | serviceManagementDescribe() { return language(this.language, "It might...
method inactive (line 120) | inactive() { return language(this.language, "Inactive", "未安装") }
method active (line 121) | active() { return language(this.language, "Active", "已安装") }
method IPaddress (line 122) | IPaddress() { return language(this.language, "IP Address", "IP地址") }
method subnetMask (line 123) | subnetMask() { return language(this.language, "Subnet Mask", "子网掩码") }
method defaultGateway (line 124) | defaultGateway() { return language(this.language, "Default Gateway", "...
method success (line 125) | success() { return language(this.language, "Success", "成功") }
method failed (line 126) | failed() { return language(this.language, "Failed", "失败") }
method tapDeviceInstalled (line 127) | tapDeviceInstalled() { return language(this.language, "cfw-tap device ...
method notInstallTapDevice (line 128) | notInstallTapDevice() { return language(this.language, "counld not ins...
method tapDeviceRemoved (line 129) | tapDeviceRemoved() { return language(this.language, "cfw-tap device ha...
method notRemoveTapDevice (line 130) | notRemoveTapDevice() { return language(this.language, "counld not remo...
method TUNmode (line 131) | TUNmode() { return language(this.language, "TUN Mode", "TUN 模式") }
method TUNmodeDescribe (line 132) | TUNmodeDescribe() { return language(this.language, "To enable this mod...
method recommended (line 133) | recommended() { return language(this.language, "recommended", "推荐") }
method installMethod (line 134) | installMethod() { return language(this.language, "Install method:", "安...
method cmmandsInCopied (line 135) | cmmandsInCopied() { return language(this.language, "Commands have been...
method openTerminalSetProxy (line 136) | openTerminalSetProxy() { return language(this.language, "Open terminal...
method runAsAdmin (line 137) | runAsAdmin() { return language(this.language, "run as admin", "以管理员身份运...
method selectTterminal (line 138) | selectTterminal() { return language(this.language, "Select a terminal"...
method copyCommandsOnly (line 139) | copyCommandsOnly() { return language(this.language, "Copy Commands Onl...
method copyCommand (line 140) | copyCommand() { return language(this.language, "Copy Command", "复制命令") }
method copyProxySettingCommands (line 141) | copyProxySettingCommands() { return language(this.language, "Copy prox...
method terminal (line 142) | terminal() { return language(this.language, "terminal", "终端") }
method specialProxies (line 143) | specialProxies() { return language(this.language, "Special Proxies", "...
method randomMixedPort (line 144) | randomMixedPort() { return language(this.language, "Random Mixed Port"...
method randomMixedPortDescribeFirst (line 145) | randomMixedPortDescribeFirst() { return language(this.language, "Turn ...
method randomMixedPortDescribeSecond (line 146) | randomMixedPortDescribeSecond() { return language(this.language, "The ...
method randomMixedPortDescribeThird (line 147) | randomMixedPortDescribeThird() { return language(this.language, "\n ...
method launchHelper (line 148) | launchHelper() { return language(this.language, "Launch Helper", "启动助手...
method bind (line 149) | bind() { return language(this.language, "Bind: ", "绑定地址: ") }
method newBindAddress (line 150) | newBindAddress() { return language(this.language, "New Bind Address", ...
method changeBindAddress (line 151) | changeBindAddress() { return language(this.language, "Change Bind Addr...
method changeBindAddressDescribe (line 152) | changeBindAddressDescribe() { return language(this.language, "Allow LA...
method serversDNS (line 153) | serversDNS() { return language(this.language, "DNS Servers", "DNS 服务器") }
method modeSettingsTUN (line 154) | modeSettingsTUN() { return language(this.language, "TUN Mode Settings"...
method fallbackDNSServers (line 155) | fallbackDNSServers() { return language(this.language, "Fallback DNS Se...
method deaultNameserver (line 156) | deaultNameserver() { return language(this.language, "Deault Nameserver...
method fakeIPFilter (line 157) | fakeIPFilter() { return language(this.language, "Fake IP Filter", "Fak...
method nameserverPolicy (line 158) | nameserverPolicy() { return language(this.language, "Nameserver Policy...
method domain (line 159) | domain() { return language(this.language, "domain", "域名") }
method hijacksDNS (line 160) | hijacksDNS() { return language(this.language, "DNS Hijacks", "DNS 劫持") }
method stackTUN (line 161) | stackTUN() { return language(this.language, "TUN Stack", "TUN 码(TUN St...
method autoDetectInterface (line 162) | autoDetectInterface() { return language(this.language, "Auto Detect In...
method eg (line 163) | eg() { return language(this.language, "eg: ", "例子: ") }
method addFirewallRules (line 164) | addFirewallRules() { return language(this.language, "add firewall rule...
method previewCfgToClashCore (line 165) | previewCfgToClashCore() { return language(this.language, "Preview the ...
method useClashCoreSeeHost (line 166) | useClashCoreSeeHost() { return language(this.language, "Resolve a host...
method testByScriptMode (line 167) | testByScriptMode() { return language(this.language, "Test script using...
method authority (line 168) | authority() { return language(this.language, "Authority", "授权") }
method queryDNS (line 169) | queryDNS() { return language(this.language, "DNS Query", "DNS 查询") }
method host (line 170) | host() { return language(this.language, "Host", "主机(Host)") }
method lookup (line 171) | lookup() { return language(this.language, "Lookup", "检索") }
method pleaseInputDomain (line 172) | pleaseInputDomain() { return language(this.language, "Please input dom...
method scriptTest (line 173) | scriptTest() { return language(this.language, "Script Test", "脚本测试") }
method network (line 174) | network() { return language(this.language, "Network", "网络") }
method modeDNS (line 175) | modeDNS() { return language(this.language, "DNS Mode", "DNS 模式") }
method sourceIP (line 176) | sourceIP() { return language(this.language, "Source IP", "源 IP") }
method sourcePort (line 177) | sourcePort() { return language(this.language, "Source Port", "源端口") }
method destinationIP (line 178) | destinationIP() { return language(this.language, "Destination IP", "目的...
method destinationPort (line 179) | destinationPort() { return language(this.language, "Destination Port",...
method processPath (line 180) | processPath() { return language(this.language, "Process Path", "进程路径") }
method type (line 181) | type() { return language(this.language, "type", "类型") }
method typeDescribe (line 182) | typeDescribe() { return language(this.language, "Windows accepts an HT...
method customizeTrayIconInProxy (line 183) | customizeTrayIconInProxy() { return language(this.language, "Proxy On ...
method customizeTrayIconInProxyDescribe (line 184) | customizeTrayIconInProxyDescribe() { return language(this.language, "S...
method customizeTrayIcon (line 185) | customizeTrayIcon() { return language(this.language, "Default Icon Pat...
method customizeTrayIconDescribe (line 186) | customizeTrayIconDescribe() { return language(this.language, "Set the ...
method check (line 187) | check() { return language(this.language, "Check", "测试") }
method timeout (line 188) | timeout() { return language(this.language, "Timeout", "超时") }
method profileDescribeStart (line 189) | profileDescribeStart() { return language(this.language, "Go to", "前往") }
method profileDescribeEnd (line 190) | profileDescribeEnd() { return language(this.language, "to import/switc...
method allTrafficGoDirectly (line 191) | allTrafficGoDirectly() { return language(this.language, "All traffic w...
method routedThroughSelectedProxy (line 192) | routedThroughSelectedProxy() { return language(this.language, "Routed ...
method routedAccordingRule (line 193) | routedAccordingRule() { return language(this.language, "Routed accordi...
method goDirectly (line 194) | goDirectly() { return language(this.language, "Go directly", "直接连接") }
method routedAccordingScript (line 195) | routedAccordingScript() { return language(this.language, "Routed accor...
method inbound (line 196) | inbound() { return language(this.language, "Inbounds", "进入") }
method edit (line 197) | edit() { return language(this.language, "Edit", "编辑") }
method editExternally (line 198) | editExternally() { return language(this.language, "Edit externally", "...
method update (line 199) | update() { return language(this.language, "Update", "更新") }
method openFile (line 200) | openFile() { return language(this.language, "Open File", "打开文件") }
method showInFolder (line 201) | showInFolder() { return language(this.language, "Show in folder", "打开文...
method diffDescribe (line 202) | diffDescribe() { return language(this.language, "Make changes to a pro...
method docs (line 203) | docs() { return language(this.language, "Docs", "文档") }
method initDiffFiles (line 204) | initDiffFiles() { return language(this.language, "Init diff files", "初...
method sideBySideMode (line 205) | sideBySideMode() { return language(this.language, "Side by side mode",...
method diffControlsDescribe (line 206) | diffControlsDescribe() { return language(this.language, "Controls whet...
method makeChangesAndDelete (line 207) | makeChangesAndDelete() { return language(this.language, ["Make changes...
method askDelete (line 208) | askDelete() { return language(this.language, "Are you sure to delete "...
method diffFiles (line 209) | diffFiles() { return language(this.language, "diff files", "diff 文件") }
method failMergeProfile (line 210) | failMergeProfile() { return language(this.language, 'Fail to merge pro...
method scrollGroup (line 211) | scrollGroup() { return language(this.language, "Scroll to group", "移动至...
method proxyGroups (line 212) | proxyGroups() { return language(this.language, "Proxy Groups", "代理组") }
method diffChangeContainConflict (line 213) | diffChangeContainConflict() { return language(this.language, 'Changes ...
method askSaveChange (line 214) | askSaveChange() { return language(this.language, "Do you want to save ...
method requestRefresh (line 215) | requestRefresh() { return language(this.language, "A refresh is requir...
method requestRefreshOption (line 216) | requestRefreshOption() { return language(this.language, ["Refresh", "N...
method fiterByKeywords (line 217) | fiterByKeywords() { return language(this.language, "fiter by keywords"...
method scrollToProxy (line 218) | scrollToProxy() { return language(this.language, "scroll to selected p...
method showHieDashboard (line 219) | showHieDashboard() { return language(this.language, "Show/Hide Dashboa...
method showHieTimedOutProxies (line 220) | showHieTimedOutProxies() { return language(this.language, "Show/Hide t...
method runTrayScript (line 221) | runTrayScript() { return language(this.language, "Run Tray Script", "运...
method showConnections (line 222) | showConnections() { return language(this.language, "Show connections",...
method testLatency (line 223) | testLatency() { return language(this.language, "test latency", "测试延迟") }
method runScript (line 224) | runScript() { return language(this.language, "Run script", "运行脚本") }
method topMatchRule (line 225) | topMatchRule() { return language(this.language, "Top 100 matching rule...
method copy (line 226) | copy() { return language(this.language, "Copy", "复制") }
method duplicateProfile (line 227) | duplicateProfile() { return language(this.language, "duplicate profile...
method inputNewFileName (line 228) | inputNewFileName() { return language(this.language, "Input a new file ...
method downloadFromURL (line 229) | downloadFromURL() { return language(this.language, "Download from a UR...
method downloading (line 230) | downloading() { return language(this.language, "Downloading", "下载中") }
method download (line 231) | download() { return language(this.language, "Download", "下载") }
method copyURL (line 232) | copyURL() { return language(this.language, "Copy URL", "复制 URL") }
method updateAll (line 233) | updateAll() { return language(this.language, "Update All", "更新全部") }
method import (line 234) | import() { return language(this.language, "Import", "导入") }
method scheme (line 235) | scheme() { return language(this.language, "Scheme", "跳转方案") }
method delete (line 236) | delete() { return language(this.language, "Delete", "删除") }
method editProfileInformation (line 237) | editProfileInformation() { return language(this.language, "Edit profil...
method updateInterval (line 238) | updateInterval() { return language(this.language, "Update Interval (ho...
method localFileAlreadyExist (line 239) | localFileAlreadyExist() { return language(this.language, "Local file a...
method closeEditingFileSave (line 240) | closeEditingFileSave() { return language(this.language, "Close the edi...
method requestLogs (line 241) | requestLogs() { return language(this.language, "Request Logs", "请求日志") }
method emptyLogList (line 242) | emptyLogList() { return language(this.language, "Empty log list", "空日志...
method start (line 243) | start() { return language(this.language, "Start", "开始") }
method pause (line 244) | pause() { return language(this.language, "Pause", "暂停") }
method refreshBrowserMakeRequest (line 245) | refreshBrowserMakeRequest() { return language(this.language, "Refresh ...
method clear (line 246) | clear() { return language(this.language, "Clear", "清除") }
method search (line 247) | search() { return language(this.language, "Search", "搜索") }
method resume (line 248) | resume() { return language(this.language, "Resume", "恢复") }
method headers (line 249) | headers() { return language(this.language, "Headers", "标头") }
method updateCron (line 250) | updateCron() { return language(this.language, "Update ", "更新定时程序 ") }
method parsers (line 251) | parsers() { return language(this.language, "Parsers", "配置文件预处理") }
method parsersOption (line 252) | parsersOption() { return language(this.language, ["Edit Parsers", "OK"...
method parsersDescribeStart (line 253) | parsersDescribeStart() { return language(this.language, "Modify and cu...
method parsersDescribeEnd (line 254) | parsersDescribeEnd() { return language(this.language, ".", "开始之前.") }
method parsersStart (line 255) | parsersStart() { return language(this.language, "Found ", "找到 ") }
method parsersEnd (line 256) | parsersEnd() { return language(this.language, " matching parsers", " 个...
method qrCode (line 257) | qrCode() { return language(this.language, "QR Code", "二维码") }
method chains (line 258) | chains() { return language(this.language, "Chains: ", "模式: ") }
method simpleAndDetailed (line 259) | simpleAndDetailed() { return language(this.language, ["Simple", "Detai...
method infoAndDebug (line 260) | infoAndDebug() { return language(this.language, ["info", "debug"], ["信...
method server (line 261) | server() { return language(this.language, "server", "服务器") }
method updateThroughBuiltInProxyDescribe (line 262) | updateThroughBuiltInProxyDescribe() { return language(this.language, "...
method updateThroughBuiltInProxy (line 263) | updateThroughBuiltInProxy() { return language(this.language, "Update T...
method checkForUpdate (line 264) | checkForUpdate() { return language(this.language, "Check For Updates",...
method checkForUpdateDescribe (line 265) | checkForUpdateDescribe() { return language(this.language, "Set whether...
method ssid (line 266) | ssid() { return language(this.language, "Service Set Identifier (SSID)...
method closeAll (line 267) | closeAll() { return language(this.language, "Close All", "全部关闭") }
method startTime (line 268) | startTime() { return language(this.language, "Start Time", "开始时间") }
method uploadSpeed (line 269) | uploadSpeed() { return language(this.language, "Upload Speed", "上传速度") }
method downloadSpeed (line 270) | downloadSpeed() { return language(this.language, "Download Speed", "下载...
method total (line 271) | total() { return language(this.language, "Total", "总共") }
method uploadTraffic (line 272) | uploadTraffic() { return language(this.language, "Upload Traffic", "上传...
method downloadTraffic (line 273) | downloadTraffic() { return language(this.language, "Download Traffic",...
method destination (line 274) | destination() { return language(this.language, "Destination", "目的地") }
method reorder (line 275) | reorder() { return language(this.language, "Reorder", "重新排序") }
method scrollViewMore (line 276) | scrollViewMore() { return language(this.language, "scroll to view more...
method askResetAllSettings (line 277) | askResetAllSettings() { return language(this.language, "Are you sure t...
method askQuit (line 278) | askQuit() { return language(this.language, "Are you sure to quit?", "你...
method path (line 279) | path() { return language(this.language, "path", "路径") }
method appearance (line 280) | appearance() { return language(this.language, "Appearance", "外观") }
method notifications (line 281) | notifications() { return language(this.language, "Send Relevant Inform...
method notificationsDescribe (line 282) | notificationsDescribe() { return language(this.language, "Set whether ...
method silentStart (line 283) | silentStart() { return language(this.language, "Silent Start", "开启Clas...
method silentStartDescribe (line 284) | silentStartDescribe() { return language(this.language, "Set whether to...
method randomControllerPort (line 285) | randomControllerPort() { return language(this.language, "Random Contro...
method randomControllerPortDescribe (line 286) | randomControllerPortDescribe() { return language(this.language, "Set w...
method lightweightMode (line 287) | lightweightMode() { return language(this.language, "Lightweight Mode",...
method lightweightModeDescribeStart (line 288) | lightweightModeDescribeStart() { return language(this.language, "Turn ...
method lightweightModeDescribeEnd (line 289) | lightweightModeDescribeEnd() { return language(this.language, "Relies ...
method runTimeFormat (line 290) | runTimeFormat() { return language(this.language, "Run Time Format", "运...
method guiLogFolder (line 291) | guiLogFolder() { return language(this.language, "GUI Log Folder", "GUI...
method guiDataFolder (line 292) | guiDataFolder() { return language(this.language, "GUI Data Folder", "G...
method open (line 293) | open() { return language(this.language, "Open", "打开") }
method followSystemTheme (line 294) | followSystemTheme() { return language(this.language, "Follow System Th...
method fontFamily (line 295) | fontFamily() { return language(this.language, "Font Family", "字体系列") }
method useSystemEmoji (line 296) | useSystemEmoji() { return language(this.language, "Use System Emoji", ...
method assetpath (line 297) | assetpath() { return language(this.language, "asset path", "路径") }
method enhancedTray (line 298) | enhancedTray() { return language(this.language, "Enhanced Tray", "悬浮窗") }
method enhancedTrayDescribeFirst (line 299) | enhancedTrayDescribeFirst() { return language(this.language, "Set whet...
method enhancedTrayDescribeSecond (line 300) | enhancedTrayDescribeSecond() { return language(this.language, "Drag ic...
method textdisplayTray (line 301) | textdisplayTray() { return language(this.language, "Text to display in...
method select (line 302) | select() { return language(this.language, "Select", "选择") }
method transparent (line 303) | transparent() { return language(this.language, "Transparent", "透明") }
method foregroundColor (line 304) | foregroundColor() { return language(this.language, "foreground color",...
method scriptToRun (line 305) | scriptToRun() { return language(this.language, "Script to run", "要运行的脚...
method showNewVersionIcon (line 306) | showNewVersionIcon() { return language(this.language, "Show New Versio...
method bypassDomain (line 307) | bypassDomain() { return language(this.language, "Bypass Domain", "绕过域/...
method bypassDomainDescribeStart (line 308) | bypassDomainDescribeStart() { return language(this.language, "Bypass (...
method bypassDomainDescribeEnd (line 309) | bypassDomainDescribeEnd() { return language(this.language, "\n ...
method specifyProtocol (line 310) | specifyProtocol() { return language(this.language, "Specify Protocol",...
method specifyProtocolDescribeStart (line 311) | specifyProtocolDescribeStart() { return language(this.language, "Turn ...
method specifyProtocolDescribeEnd (line 312) | specifyProtocolDescribeEnd() { return language(this.language, "\n ...
method staticHost (line 313) | staticHost() { return language(this.language, "Static Host", "静态主机") }
method staticHostDescribe (line 314) | staticHostDescribe() { return language(this.language, "Set the system ...
method proxyItemWidth (line 315) | proxyItemWidth() { return language(this.language, "Proxy Item Width", ...
method proxyItemWidthDescribe (line 316) | proxyItemWidthDescribe() { return language(this.language, "Set the dis...
method breakWhenProxyChange (line 317) | breakWhenProxyChange() { return language(this.language, "Break When Pr...
method breakWhenProxyChangeOption (line 318) | breakWhenProxyChangeOption() { return language(this.language, ["None",...
method breakWhenProxyChangeDescribeFirst (line 319) | breakWhenProxyChangeDescribeFirst() { return language(this.language, "...
method breakWhenProxyChangeDescribeSecond (line 320) | breakWhenProxyChangeDescribeSecond() { return language(this.language, ...
method breakWhenProxyChangeDescribeThird (line 321) | breakWhenProxyChangeDescribeThird() { return language(this.language, "...
method breakWhenProxyChangeDescribeFourth (line 322) | breakWhenProxyChangeDescribeFourth() { return language(this.language, ...
method breakWhenProxyChangeDescribeFifth (line 323) | breakWhenProxyChangeDescribeFifth() { return language(this.language, "...
method all (line 324) | all() { return language(this.language, "All", "全部") }
method breakWhenProxyChangeDescribeSeventh (line 325) | breakWhenProxyChangeDescribeSeventh() { return language(this.language,...
method miniListWidth (line 326) | miniListWidth() { return language(this.language, "Mini List Width", "策...
method miniListWidthDescribe (line 327) | miniListWidthDescribe() { return language(this.language, "Set the widt...
method orderBy (line 328) | orderBy() { return language(this.language, "Order By", "自定义节点排序") }
method orderByOption (line 329) | orderByOption() { return language(this.language, ["Default", "Latency"...
method latencyTestURL (line 330) | latencyTestURL() { return language(this.language, "Latency Test URL", ...
method latencyTestURLDescribe (line 331) | latencyTestURLDescribe() { return language(this.language, "Set the URL...
method latencyTestTimeout (line 332) | latencyTestTimeout() { return language(this.language, "Latency Test Ti...
method showFilter (line 333) | showFilter() { return language(this.language, "Show Filter", "显示筛选过滤器") }
method showFilterDescribe (line 334) | showFilterDescribe() { return language(this.language, "Set the Proxies...
method hideUnselectableGroup (line 335) | hideUnselectableGroup() { return language(this.language, "Hide Unselec...
method hideUnselectableGroupDescribe (line 336) | hideUnselectableGroupDescribe() { return language(this.language, "Set ...
method forDetails (line 337) | forDetails() { return language(this.language, "For details, see", "有关详...
method docs (line 338) | docs() { return language(this.language, "docs", "帮助文档") }
method titleBarText (line 339) | titleBarText() { return language(this.language, "Title Bar Text", "标题栏...
method titleBarTextDescribe (line 340) | titleBarTextDescribe() { return language(this.language, "Text to displ...
method titleBarTextDescribeFirst (line 341) | titleBarTextDescribeFirst() { return language(this.language, "Set the ...
method titleBarTextDescribeSecond (line 342) | titleBarTextDescribeSecond() { return language(this.language, "Current...
method titleBarTextDescribeThird (line 343) | titleBarTextDescribeThird() { return language(this.language, "System P...
method titleBarTextDescribeFourth (line 344) | titleBarTextDescribeFourth() { return language(this.language, "TUN Mod...
method titleBarTextDescribeFifth (line 345) | titleBarTextDescribeFifth() { return language(this.language, "Mixin st...
method breakWhenProfileChange (line 346) | breakWhenProfileChange() { return language(this.language, "Break When ...
method breakWhenProfileChangeDescribe (line 347) | breakWhenProfileChangeDescribe() { return language(this.language, "Set...
method breakWhenModeChange (line 348) | breakWhenModeChange() { return language(this.language, "Break When Mod...
method breakWhenModeChangeDescribe (line 349) | breakWhenModeChangeDescribe() { return language(this.language, "Set wh...
method displayChainType (line 350) | displayChainType() { return language(this.language, "Display Chain Typ...
method displayChainTypeDescribe (line 351) | displayChainTypeDescribe() { return language(this.language, "Set the t...
method displayChainTypeOption (line 352) | displayChainTypeOption() { return language(this.language, ["Proxy", "G...
method outbound (line 353) | outbound() { return language(this.language, "Outbound", "选择流量出接口") }
method interfaceName (line 354) | interfaceName() { return language(this.language, "Interface Name", "接口...
method interfaceNameDescribe (line 355) | interfaceNameDescribe() { return language(this.language, "Set interfac...
method detected (line 356) | detected() { return language(this.language, "Detected", "侦测到") }
method childProcesses (line 357) | childProcesses() { return language(this.language, "Child Processes", "...
method processes (line 358) | processes() { return language(this.language, "Processes", "启动其他应用") }
method processesDescribe (line 359) | processesDescribe() { return language(this.language, "Set child proces...
method consoleOutput (line 360) | consoleOutput() { return language(this.language, "Console Output", "控制...
method folderPathDescribe (line 361) | folderPathDescribe() { return language(this.language, "Set the path to...
method folderPath (line 362) | folderPath() { return language(this.language, "Folder Path", "资料夹路径") }
method requestHeaders (line 363) | requestHeaders() { return language(this.language, "Request Headers", "...
method requestHeadersDescribeFirst (line 364) | requestHeadersDescribeFirst() { return language(this.language, "Set th...
method requestHeadersDescribeSecond (line 365) | requestHeadersDescribeSecond() { return language(this.language, "the i...
method scriptActionDescribe (line 366) | scriptActionDescribe() { return language(this.language, "Set the code ...
method selectAfterUpdated (line 367) | selectAfterUpdated() { return language(this.language, "Select After Up...
method selectAfterUpdatedDescribe (line 368) | selectAfterUpdatedDescribe() { return language(this.language, "Set whe...
method profilesFolderPath (line 369) | profilesFolderPath() { return language(this.language, "Profiles folder...
method healthCheckAll (line 370) | healthCheckAll() { return language(this.language, "Health Check All", ...
method proxyProviders (line 371) | proxyProviders() { return language(this.language, "Proxy Providers", "...
method chooseOutboundInterface (line 372) | chooseOutboundInterface() { return language(this.language, "Choose out...
method chooseOutboundInterfaceDescribe (line 373) | chooseOutboundInterfaceDescribe() { return language(this.language, "on...
method reset (line 374) | reset() { return language(this.language, "Reset", "重置") }
method onlineDocs (line 375) | onlineDocs() { return language(this.language, "Docs", "在线文档") }
method shortcut (line 376) | shortcut() { return language(this.language, "Shortcuts", "快捷键") }
method globalMode (line 377) | globalMode() { return language(this.language, "Global Mode", "全局模式") }
method ruleMode (line 378) | ruleMode() { return language(this.language, "Rule Mode", "规则模式") }
method directMode (line 379) | directMode() { return language(this.language, "Direct Mode", "直连模式") }
method scriptMode (line 380) | scriptMode() { return language(this.language, "Script Mode", "脚本模式") }
method pressEnterStop (line 381) | pressEnterStop() { return language(this.language, "Press Enter to stop...
method record (line 382) | record() { return language(this.language, "Record", "点击以录制热键") }
method recording (line 383) | recording() { return language(this.language, "Recording...", "记录中...") }
method developer (line 384) | developer() { return language(this.language, "Developer", "作者") }
method relevance (line 385) | relevance() { return language(this.language, "Relevance", "关于") }
method credits (line 386) | credits() { return language(this.language, "Credits", "鸣谢") }
method advertisementOriginal (line 387) | advertisementOriginal() { return language(this.language, "Original Adv...
method imageIsOnWay (line 388) | imageIsOnWay() { return language(this.language, "Image is on the way",...
method updateIntervalMustBeInteger (line 389) | updateIntervalMustBeInteger() { return language(this.language, "Update...
method downloadProfile (line 390) | downloadProfile() { return language(this.language, "Download profile",...
method failedErrorHTTP (line 391) | failedErrorHTTP() { return language(this.language, "failed with error:...
method serviceModeCtrlSysProxy (line 392) | serviceModeCtrlSysProxy() { return language(this.language, "Service Mo...
method makeSureYouHave (line 393) | makeSureYouHave() { return language(this.language, "Make sure you have...
method unknowErr (line 394) | unknowErr() { return language(this.language, "unknow error", "未知错误") }
method updateFailedNetErr (line 395) | updateFailedNetErr() { return language(this.language, "update failed(N...
method couldNotSwitchProfile (line 396) | couldNotSwitchProfile() { return language(this.language, "Could not sw...
method downloadDbErrGeoIP (line 397) | downloadDbErrGeoIP() { return language(this.language, "Download GeoIP ...
method inputFieldAlternative (line 398) | inputFieldAlternative() { return language(this.language, "Input fields...
method updateDbGeoIP (line 399) | updateDbGeoIP() { return language(this.language, "Update GeoIP databas...
method updatingDbNotAllowedCFW (line 400) | updatingDbNotAllowedCFW() { return language(this.language, "Updating G...
method imageFailedLoad (line 401) | imageFailedLoad() { return language(this.language, "The image failed t...
method updating (line 402) | updating() { return language(this.language, "Updating", "更新中") }
method hide (line 403) | hide() { return language(this.language, "hide", "隐藏") }
method couldNotUpdateProvider (line 404) | couldNotUpdateProvider() { return language(this.language, "could not u...
method dhcpServer (line 405) | dhcpServer() { return language(this.language, "DHCP Server", "DHCP 服务器...
method localIpAddress (line 406) | localIpAddress() { return language(this.language, "Local IP Address", ...
method cfg (line 407) | cfg() { return language(this.language, "Configuration", "配置") }
method include (line 408) | include() { return language(this.language, "Include", "包括") }
method updated (line 409) | updated() { return language(this.language, "updated", "已更新") }
method installed (line 410) | installed() { return language(this.language, "installed", "已安装") }
method now (line 411) | now() { return language(this.language, "Now", "现在") }
method askRestartAPP (line 412) | askRestartAPP() { return language(this.language, "Do you want to resta...
method restart (line 413) | restart() { return language(this.language, "Restart", "重新启动") }
method clashCoreFailedStartup (line 414) | clashCoreFailedStartup() { return language(this.language, "clash core ...
method restoreProxyGroup (line 415) | restoreProxyGroup() { return language(this.language, "restore proxy gr...
method tunModeEnableButIssue (line 416) | tunModeEnableButIssue() { return language(this.language, "TUN mode ena...
method couldNotEditProxyGroupType (line 417) | couldNotEditProxyGroupType() { return language(this.language, "Could n...
method contentPAC (line 418) | contentPAC() { return language(this.language, "PAC Content", "PAC 内容") }
method scriptInterval (line 419) | scriptInterval() { return language(this.language, "Script Interval", "...
method automaticUpgrade (line 420) | automaticUpgrade() { return language(this.language, "Automatic Upgrade...
method automaticUpgradeDescribe (line 421) | automaticUpgradeDescribe() { return language(this.language, "Set wheth...
method automaticUpgradeCompleted (line 422) | automaticUpgradeCompleted() { return language(this.language, "Automati...
method updateProvider (line 423) | updateProvider() { return language(this.language, "Update provider", "...
method hideTrayIcon (line 424) | hideTrayIcon() { return language(this.language, "Hide Tray Icon", "隐藏托...
method hideTrayIconDescribe (line 425) | hideTrayIconDescribe() { return language(this.language, "Set whether t...
method proxyPolicy (line 426) | proxyPolicy() { return language(this.language, "Proxy or Policy", "代理或...
method content (line 427) | content() { return language(this.language, "Content", "内容") }
method createNewRule (line 428) | createNewRule() { return language(this.language, "Create a new rule", ...
method skipCertVerify (line 429) | skipCertVerify() { return language(this.language, "Skip Cert Verify", ...
method customEditorCommand (line 430) | customEditorCommand() { return language(this.language, "Custom Editor ...
method editMixinContent (line 431) | editMixinContent() { return language(this.language, "Edit Mixin conten...
method fakeIPCache (line 432) | fakeIPCache() { return language(this.language, "Fake IP Cache", "Fake ...
method cache (line 433) | cache() { return language(this.language, "Cache", "缓存") }
method cannotEditReadOnlyEditor (line 434) | cannotEditReadOnlyEditor() { return language(this.language, "Cannot ed...
method startWithLinux (line 435) | startWithLinux() { return language(this.language, "Start with Linux", ...
method startWithMacOS (line 436) | startWithMacOS() { return language(this.language, "Start with macOS", ...
method geoIPDatabase (line 437) | geoIPDatabase() { return language(this.language, "GeoIP Database", "Ge...
method preload (line 438) | preload() { return language(this.language, "Preload", "预载") }
method preloadDescribe (line 439) | preloadDescribe() { return language(this.language, "Set the number of ...
method lines (line 440) | lines() { return language(this.language, "lines", "线程") }
method experimentalFeatures (line 441) | experimentalFeatures() { return language(this.language, "Experimental ...
method selectInterface (line 442) | selectInterface() { return language(this.language, "Select a interface...
method hadBeenReleased (line 443) | hadBeenReleased() { return language(this.language, " had been released...
method pleaseConfirm (line 444) | pleaseConfirm() { return language(this.language, "Please confirm", "请确...
method cfgWillBeRemoved (line 445) | cfgWillBeRemoved() { return language(this.language, "config.yaml and c...
method router (line 446) | router() { return language(this.language, "Router", "路由器") }
method editInTextMode (line 447) | editInTextMode() { return language(this.language, ["OK", "Edit in Text...
method upgradeFailedWithErr (line 448) | upgradeFailedWithErr() { return language(this.language, "upgrade app f...
method dontSave (line 449) | dontSave() { return language(this.language, "Don't Save", "不保存") }
method failRestoreLastProfileErr (line 450) | failRestoreLastProfileErr() { return language(this.language, "fail to ...
method askSetConfig (line 451) | askSetConfig() { return language(this.language, "Do you want to set a ...
method recommendGenerateSecret (line 452) | recommendGenerateSecret() { return language(this.language, "secret is ...
method generate (line 453) | generate() { return language(this.language, "Generate", "生成更新") }
method overallColorSettings (line 454) | overallColorSettings() { return language(this.language, "Overall foreg...
method overallColorSettingsErr (line 455) | overallColorSettingsErr() { return language(this.language, "Overall fo...
method colorNeedValue (line 456) | colorNeedValue() { return language(this.language, "Color needs a value...
method invalidColorArgument (line 457) | invalidColorArgument() { return language(this.language, "Invalid color...
method proxyName (line 458) | proxyName() { return language(this.language, "Proxy Name", "代理名称") }
method cannotEditProxyType (line 459) | cannotEditProxyType() { return language(this.language, "Could not edit...
method trayProxyGroupsStyle (line 460) | trayProxyGroupsStyle() { return language(this.language, "Tray Proxy Gr...
method trayProxyGroupsStyleDescribeFirst (line 461) | trayProxyGroupsStyleDescribeFirst() { return language(this.language, "...
method trayProxyGroupsStyleDescribeSecond (line 462) | trayProxyGroupsStyleDescribeSecond() { return language(this.language, ...
method trayProxyGroupsStyleDescribeThird (line 463) | trayProxyGroupsStyleDescribeThird() { return language(this.language, "...
method trayProxyGroupsStyleDescribeFourth (line 464) | trayProxyGroupsStyleDescribeFourth() { return language(this.language, ...
method submenu (line 465) | submenu() { return language(this.language, "Submenu", "折叠") }
method expand (line 466) | expand() { return language(this.language, "Expand", "展开") }
method hidden (line 467) | hidden() { return language(this.language, "Hidden", "隐蔽") }
method showProcessIfPresent (line 468) | showProcessIfPresent() { return language(this.language, "Show Process ...
method showProcessIfPresentDescribe (line 469) | showProcessIfPresentDescribe() { return language(this.language, "Set w...
method showTrayProxyDelayIndicator (line 470) | showTrayProxyDelayIndicator() { return language(this.language, "Show T...
method showTrayProxyDelayIndicatorDescribe (line 471) | showTrayProxyDelayIndicatorDescribe() { return language(this.language,...
method reloadAPP (line 472) | reloadAPP() { return language(this.language, "Reload APP", "重新加载 APP") }
method failTo (line 473) | failTo() { return language(this.language, "Fail to ", "未能") }
method delayType (line 474) | delayType() { return language(this.language, "Delay Type", "延迟类型") }
method delayTypeDescribeStart (line 475) | delayTypeDescribeStart() { return language(this.language, "Delay of a ...
method delayTypeDescribeEnd (line 476) | delayTypeDescribeEnd() { return language(this.language, "Average delay...
method default (line 477) | default() { return language(this.language, "Default", "默认") }
method meanDelay (line 478) | meanDelay() { return language(this.language, "Mean Delay", "平均延迟") }
method fetch (line 479) | fetch() { return language(this.language, "Fetch", "获取") }
method currentSSID (line 480) | currentSSID() { return language(this.language, "Current SSID", "当前的 SS...
method currentSSIDDescribe (line 481) | currentSSIDDescribe() { return language(this.language, "Copy the SSID ...
method getCurrentSSID (line 482) | getCurrentSSID() { return language(this.language, "Get Current SSID", ...
method getCurrentSSIDDescribe (line 483) | getCurrentSSIDDescribe() { return language(this.language, "Multiple SS...
method strategy (line 484) | strategy() { return language(this.language, "Strategy", "策略") }
method failedWithError (line 485) | failedWithError() { return language(this.language, "failed with error:...
method preserveCase (line 486) | preserveCase() { return language(this.language, "Preserve Case", "保留大写...
method previousMatch (line 487) | previousMatch() { return language(this.language, "Previous Match", "上一...
method nextMatch (line 488) | nextMatch() { return language(this.language, "Next Match", "下一个匹配") }
method find (line 489) | find() { return language(this.language, "Find", "查找") }
method findinSelection (line 490) | findinSelection() { return language(this.language, "Find in Selection"...
method toggleReplace (line 491) | toggleReplace() { return language(this.language, "Toggle Replace", "切换...
method close (line 492) | close() { return language(this.language, "Close", "关闭") }
method replace (line 493) | replace() { return language(this.language, "Replace", "替换") }
method replaceAll (line 494) | replaceAll() { return language(this.language, "Replace All", "替换全部") }
method resultHighlighted (line 495) | resultHighlighted() { return language(this.language, "Only the first {...
method numberOf (line 496) | numberOf() { return language(this.language, "{0} of {1}", "{0} / {1}") }
method noResults (line 497) | noResults() { return language(this.language, "No results", "无结果") }
method useProxyServerWindows (line 498) | useProxyServerWindows() { return language(this.language, "Use a proxy ...
method enterProxyServerSettingsMac (line 499) | enterProxyServerSettingsMac() { return language(this.language, "Enter ...
method followLink (line 500) | followLink() { return language(this.language, "Follow link", "进入链接") }
method proxyName (line 501) | proxyName() { return language(this.language, " - Proxy Name", "") }
method proxy (line 502) | proxy() { return language(this.language, "Proxy", "节点名") }
method groupName (line 503) | groupName() { return language(this.language, " - Group name", "") }
method group (line 504) | group() { return language(this.language, "Group", "分组名") }
method bothName (line 505) | bothName() { return language(this.language, " - Proxy name and group n...
method both (line 506) | both() { return language(this.language, "Both", "全部") }
method color (line 507) | color() { return language(this.language, "colors:", "颜色:") }
method available (line 508) | available() { return language(this.language, "available", "可用的") }
method unknown (line 509) | unknown() { return language(this.language, "unknown", "未知") }
method alive (line 510) | alive() { return language(this.language, "Alive", "活动") }
method useModeIcons (line 511) | useModeIcons() { return language(this.language, "Use Mode Icons", "使用连...
method useModeIconsDescribe (line 512) | useModeIconsDescribe() { return language(this.language, "Use first let...
method showActualFile (line 513) | showActualFile() { return language(this.language, "Show actual file", ...
method fontSize (line 514) | fontSize() { return language(this.language, "Font Size", "字体大小") }
method copyURLAndMD5 (line 515) | copyURLAndMD5() { return language(this.language, "Copy URL MD5", "复制 U...
method executeCommand (line 516) | executeCommand() { return language(this.language, "Execute command", "...
method openWebPage (line 517) | openWebPage() { return language(this.language, "Open web page", "打开配置网...
method cut (line 518) | cut() { return language(this.language, "Cut", "剪切") }
method paste (line 519) | paste() { return language(this.language, "Paste", "粘贴") }
method status (line 520) | status() { return language(this.language, "Status", "状态") }
method flags (line 521) | flags() { return language(this.language, "Flags", "标签") }
method disclaimerStatement (line 522) | disclaimerStatement() { return language(this.language, "Disclaimer Sta...
method disclaimerStatementDescribe (line 523) | disclaimerStatementDescribe() {
method matchCase (line 529) | matchCase() { return language(this.language, "Match Case", "匹配大小写") }
method matchWholeWord (line 530) | matchWholeWord() { return language(this.language, "Match Whole Word", ...
method useRegularExpression (line 531) | useRegularExpression() { return language(this.language, "Use Regular E...
method failWithError (line 532) | failWithError() { return language(this.language, "Fail, error: ", "失败,...
method resetDNSSettings (line 533) | resetDNSSettings() { return language(this.language, "Reset DNS Setting...
method enable (line 534) | enable() { return language(this.language, "Enable", "启用") }
method enabled (line 535) | enabled() { return language(this.language, "Enabled", "已启用") }
method customServers (line 536) | customServers() { return language(this.language, "Custom Servers", "自定...
method forHistory (line 537) | forHistory() { return language(this.language, "for history", "查看历史记录") }
method textWillDescribe (line 538) | textWillDescribe() { return language(this.language, "Text will be pref...
method timeoutInTimeDiff (line 539) | timeoutInTimeDiff() { return language(this.language, "Timeout in milli...
method fileSizeInMBForDiff (line 540) | fileSizeInMBForDiff() { return language(this.language, "Maximum file s...
method ssidStrategy (line 541) | ssidStrategy() { return language(this.language, "SSID Strategy", "SSID...
method strategyDescribe (line 542) | strategyDescribe() { return language(this.language, "\n S...
method useCFWEditor (line 543) | useCFWEditor() { return language(this.language, "Use CFW Editor", "使用 ...
method other (line 544) | other() { return language(this.language, "Other", "其它") }
method show (line 545) | show() { return language(this.language, "show", "显示") }
method disableLoadingAdsLink (line 546) | disableLoadingAdsLink() { return language(this.language, "Disable Load...
constant LANGUAGE (line 548) | const LANGUAGE = "language";
function t (line 577) | function t(e, t, i, n, o, s, r) {
method constructor (line 20006) | constructor(e) {
method runCoreEditorCommand (line 20009) | runCoreEditorCommand(e, t) {
method runEditorCommand (line 21025) | runEditorCommand(e, t, i) {
function a (line 593) | function a(e) {
method constructor (line 6409) | constructor(e) {
method eos (line 6412) | eos() {
method next (line 6415) | next() {
method peek (line 6419) | peek() {
method advance (line 6422) | advance() {
method constructor (line 6668) | constructor(e, t = 0, i = 0) {
method preventDefault (line 6687) | preventDefault() {
method stopPropagation (line 6690) | stopPropagation() {
method constructor (line 10860) | constructor(e, t = "", i = "", o = !0, s) {
method id (line 10863) | get id() {
method label (line 10866) | get label() {
method label (line 10869) | set label(e) {
method _setLabel (line 10872) | _setLabel(e) {
method tooltip (line 10877) | get tooltip() {
method tooltip (line 10880) | set tooltip(e) {
method _setTooltip (line 10883) | _setTooltip(e) {
method class (line 10888) | get class() {
method class (line 10891) | set class(e) {
method _setClass (line 10894) | _setClass(e) {
method enabled (line 10899) | get enabled() {
method enabled (line 10902) | set enabled(e) {
method _setEnabled (line 10905) | _setEnabled(e) {
method checked (line 10910) | get checked() {
method checked (line 10913) | set checked(e) {
method _setChecked (line 10916) | _setChecked(e) {
method run (line 10921) | run(e, t) {
method constructor (line 11596) | constructor(e) {
method token (line 11599) | get token() {
method cancel (line 11602) | cancel() {
method dispose (line 11605) | dispose(e = !1) {
method constructor (line 12768) | constructor(e) {
method fromHex (line 12777) | static fromHex(e) {
method hsla (line 12780) | get hsla() {
method hsva (line 12783) | get hsva() {
method equals (line 12786) | equals(e) {
method getRelativeLuminance (line 12789) | getRelativeLuminance() {
method _relativeLuminanceForComponent (line 12792) | static _relativeLuminanceForComponent(e) {
method isLighter (line 12796) | isLighter() {
method isLighterThan (line 12799) | isLighterThan(e) {
method isDarkerThan (line 12802) | isDarkerThan(e) {
method lighten (line 12805) | lighten(e) {
method darken (line 12808) | darken(e) {
method transparent (line 12811) | transparent(e) {
method isTransparent (line 12820) | isTransparent() {
method isOpaque (line 12823) | isOpaque() {
method opposite (line 12826) | opposite() {
method toString (line 12829) | toString() {
method getLighterColor (line 12832) | static getLighterColor(e, t, i) {
method getDarkerColor (line 12839) | static getDarkerColor(e, t, i) {
method Assert (line 13005) | static Assert(e, t) {
method constructor (line 15270) | constructor(e) {
method constructor (line 15549) | constructor(e = !0) {
method reset (line 15552) | reset(e) {
method hasNext (line 15555) | hasNext() {
method next (line 15558) | next() {
method cmp (line 15569) | cmp(e) {
method value (line 15572) | value() {
method asBrowserUri (line 17509) | asBrowserUri(e, t) {
method toUri (line 17518) | toUri(e, t) {
method constructor (line 18555) | constructor(e, t, i) {
method constructor (line 21437) | constructor(e, t, i, n, o) {
method toString (line 21440) | toString() {
method readFromTextArea (line 21443) | static readFromTextArea(e) {
method collapseSelection (line 21446) | collapseSelection() {
method writeToTextArea (line 21449) | writeToTextArea(e, t, i) {
method deduceEditorPosition (line 21452) | deduceEditorPosition(e) {
method _finishDeduceEditorPosition (line 21466) | _finishDeduceEditorPosition(e, t, i) {
method selectedText (line 21472) | static selectedText(e) {
method deduceInput (line 21475) | static deduceInput(e, t, i) {
method deduceAndroidCompositionInput (line 21527) | static deduceAndroidCompositionInput(e, t) {
method constructor (line 22804) | constructor(e) {
method convert (line 22807) | static convert(e) {
method constructor (line 33190) | constructor(e, t, i, n, o = !1) {
method getEditOperations (line 33193) | getEditOperations(e, t) {
method computeCursorState (line 33196) | computeCursorState(e, t) {
method constructor (line 33744) | constructor(e) {
method hasChanged (line 33747) | hasChanged(e) {
method constructor (line 35706) | constructor(e, t) {
method equals (line 35709) | equals(e) {
method constructor (line 38338) | constructor(e) {
method equals (line 38341) | equals(e) {
method createChangeEvent (line 38344) | createChangeEvent(e) {
method constructor (line 43698) | constructor(e, t, i, n) {
method constructor (line 45817) | constructor(e, t) {
method normalize (line 47407) | static normalize(e, t) {
method constructor (line 47458) | constructor(e, t) {
method equals (line 47461) | equals(e) {
method constructor (line 47933) | constructor(e, t) {
method toString (line 47936) | toString() {
method toPosition (line 47939) | toPosition(e, t) {
method constructor (line 48482) | constructor(e, t) {
method getEditOperations (line 48485) | getEditOperations(e, t) {
method computeCursorState (line 48501) | computeCursorState(e, t) {
method constructor (line 49959) | constructor(e, t, i) {
method fromUser (line 49962) | static fromUser(e, t) {
method getApplyFromUser (line 49965) | static getApplyFromUser(e, t) {
method getKindFromUser (line 49977) | static getKindFromUser(e, t) {
method getPreferredUser (line 49980) | static getPreferredUser(e) {
method constructor (line 50664) | constructor(e) {
method dispose (line 50667) | dispose() {
method onMouseDown (line 50670) | onMouseDown(e) {
method constructor (line 51330) | constructor(e) {
method equals (line 51333) | equals(e) {
method constructor (line 55678) | constructor() {
method run (line 55686) | run(e, t) {
method constructor (line 57706) | constructor(e, t) {
method provideSelectionRanges (line 66214) | provideSelectionRanges(e, t) {
method _bracketsRightYield (line 66226) | static _bracketsRightYield(e, t, i, o, s) {
method _bracketsLeftYield (line 66261) | static _bracketsLeftYield(e, t, i, n, o, r) {
method _addBracketLeading (line 66306) | static _addBracketLeading(e, t, i) {
method constructor (line 66849) | constructor(e) {
method compareByIndex (line 66852) | static compareByIndex(e, t) {
method isFinalTabstop (line 66855) | get isFinalTabstop() {
method choice (line 66858) | get choice() {
method clone (line 66861) | clone() {
method constructor (line 70614) | constructor() {
method run (line 70633) | run(e, t) {
method constructor (line 83180) | constructor(e) {
method update (line 83183) | update() {
method dispose (line 83187) | dispose() {
method constructor (line 83873) | constructor() {
method provideWithoutTextEditor (line 83878) | provideWithoutTextEditor(e) {
method provideWithTextEditor (line 83884) | provideWithTextEditor(e, t, i) {
method toRange (line 83920) | toRange(e = 1, t = 1) {
method parsePosition (line 83928) | parsePosition(e, t) {
method getPickLabel (line 83936) | getPickLabel(e, t, i) {
method isValidLineNumber (line 83945) | isValidLineNumber(e, t) {
method isValidColumn (line 83948) | isValidColumn(e, t, i) {
method lineCount (line 83958) | lineCount(e) {
method constructor (line 86420) | constructor() {
method bindToCurrentPlatform (line 86423) | static bindToCurrentPlatform(e) {
method registerKeybindingRule (line 86431) | registerKeybindingRule(e) {
method registerCommandAndKeybindingRule (line 86444) | registerCommandAndKeybindingRule(e) {
method _mightProduceChar (line 86447) | static _mightProduceChar(e) {
method _assertNoCtrlAlt (line 86450) | _assertNoCtrlAlt(e, t) {
method _registerDefaultKeybinding (line 86453) | _registerDefaultKeybinding(e, t, i, n, s, r) {
method getDefaultKeybindings (line 86465) | getDefaultKeybindings() {
function l (line 597) | function l(e) {
method constructor (line 7218) | constructor(e, t) {
method setCount (line 7221) | setCount(e) {
method setTitleFormat (line 7224) | setTitleFormat(e) {
method render (line 7227) | render() {
method style (line 7230) | style(e) {
method applyStyles (line 7233) | applyStyles() {
method constructor (line 8657) | constructor(e) {
method splice (line 8660) | splice(e, t, i) {
method onclick (line 10788) | onclick(e, t) {
method onmousedown (line 10791) | onmousedown(e, t) {
method onmouseover (line 10794) | onmouseover(e, t) {
method onnonbubblingmouseout (line 10797) | onnonbubblingmouseout(e, t) {
method onkeydown (line 10800) | onkeydown(e, t) {
method onkeyup (line 10803) | onkeyup(e, t) {
method oninput (line 10806) | oninput(e, t) {
method onblur (line 10809) | onblur(e, t) {
method onfocus (line 10812) | onfocus(e, t) {
method ignoreGesture (line 10815) | ignoreGesture(e) {
method constructor (line 10928) | constructor() {
method run (line 10931) | run(e, t) {
method runAction (line 10949) | runAction(e, t) {
method constructor (line 11648) | constructor(e, t, i) {
method classNames (line 11651) | get classNames() {
method classNamesArray (line 11654) | get classNamesArray() {
method cssSelector (line 11657) | get cssSelector() {
method Copy (line 13010) | static Copy(e, t, i, n, o) {
method Copy2 (line 13013) | static Copy2(e, t, i, n, o) {
method constructor (line 13560) | constructor(e) {
method start (line 13563) | start(e) {
method stop (line 13566) | stop() {
method constructor (line 15276) | constructor(e, t, i, n, o, s) {
method constructor (line 15577) | constructor(e = !0, t = !0) {
method reset (line 15580) | reset(e) {
method hasNext (line 15583) | hasNext() {
method next (line 15586) | next() {
method cmp (line 15598) | cmp(e) {
method value (line 15601) | value() {
method constructor (line 19515) | constructor(e, t) {
method fulfill (line 19518) | fulfill(e) {
method constructor (line 20120) | constructor(e) {
method _getColumnSelectResult (line 20123) | _getColumnSelectResult(e, t, i, n) {
method _getPageOfLine (line 21558) | static _getPageOfLine(e, t) {
method _getRangeForPage (line 21561) | static _getRangeForPage(e, t) {
method fromEditorSelection (line 21567) | static fromEditorSelection(e, t, i, n, r) {
method constructor (line 22819) | constructor(e, t, i, n) {
method constructor (line 33202) | constructor(e, t, i, n = !1) {
method getEditOperations (line 33205) | getEditOperations(e, t) {
method computeCursorState (line 33208) | computeCursorState(e, t) {
method constructor (line 33752) | constructor() {
method _read (line 33755) | _read(e) {
method get (line 33758) | get(e) {
method _write (line 33761) | _write(e, t) {
method constructor (line 36653) | constructor(e, t, i) {
method constructor (line 38354) | constructor(e, t) {
method constructor (line 38695) | constructor(e, t) {
method compress (line 38698) | compress() {
method _acceptCurr (line 38744) | _acceptCurr(e) {
method _getCurr (line 38747) | _getCurr(e) {
method _acceptPrev (line 38750) | _acceptPrev(e) {
method _getPrev (line 38753) | _getPrev(e) {
method _rebaseCurr (line 38756) | static _rebaseCurr(e, t) {
method _rebasePrev (line 38759) | static _rebasePrev(e, t) {
method _splitPrev (line 38762) | static _splitPrev(e, t) {
method _splitCurr (line 38767) | static _splitCurr(e, t) {
method _merge (line 38772) | static _merge(e) {
method _removeNoOps (line 38783) | static _removeNoOps(e) {
method constructor (line 43703) | constructor() {
method constructor (line 43766) | constructor(e, t, i, n) {
method parseSearchRequest (line 43769) | parseSearchRequest() {
method constructor (line 47466) | constructor(e, t, i, n, o, r, a, l, c, d, h, u, g, p, f, m, v, _, b) {
method sameSelection (line 47470) | sameSelection(e) {
method equals (line 47478) | equals(e) {
method constructor (line 47945) | constructor(e, t, i, n, o) {
method getInputOffsetOfOutputPosition (line 47948) | getInputOffsetOfOutputPosition(e, t) {
method getOutputPositionOfInputOffset (line 47954) | getOutputPositionOfInputOffset(e, t = 2) {
method getOutputPositionOfOffsetInUnwrappedLine (line 47960) | getOutputPositionOfOffsetInUnwrappedLine(e, t = 2) {
method outputPositionToOffsetInUnwrappedLine (line 47982) | outputPositionToOffsetInUnwrappedLine(e, t) {
method normalizeOffsetAroundInjections (line 47986) | normalizeOffsetAroundInjections(e, t) {
method getInjectedText (line 48001) | getInjectedText(e, t) {
method getInjectedTextAtOffset (line 48008) | getInjectedTextAtOffset(e) {
method constructor (line 51342) | constructor(e, t, i) {
method constructor (line 55691) | constructor() {
method run (line 55699) | run(e, t) {
method constructor (line 57711) | constructor(e, t) {
method constructor (line 66867) | constructor() {
method appendChild (line 66870) | appendChild(e) {
method toString (line 66873) | toString() {
method len (line 66876) | len() {
method clone (line 66879) | clone() {
method constructor (line 83193) | constructor(e) {
method dispose (line 83200) | dispose() {
method getId (line 83203) | getId() {
method getDomNode (line 83206) | getDomNode() {
method getPosition (line 83209) | getPosition() {
method constructor (line 89569) | constructor() {
method setLevel (line 89572) | setLevel(e) {
method getLevel (line 89575) | getLevel() {
function t (line 692) | function t(i) {
method constructor (line 20006) | constructor(e) {
method runCoreEditorCommand (line 20009) | runCoreEditorCommand(e, t) {
method runEditorCommand (line 21025) | runEditorCommand(e, t, i) {
function k (line 1157) | function k(e, t) {
method constructor (line 8138) | constructor() {
method update (line 8141) | update(e) {
method getData (line 8150) | getData() {
method constructor (line 8718) | constructor(e) {
method templateId (line 8721) | get templateId() {
method renderTemplate (line 8724) | renderTemplate(e) {
method renderElement (line 8727) | renderElement(e, t, i) {
method splice (line 8741) | splice(e, t, i) {
method renderIndexes (line 8749) | renderIndexes(e) {
method disposeTemplate (line 8755) | disposeTemplate(e) {
method constructor (line 20634) | constructor(e) {
method runCoreEditorCommand (line 20637) | runCoreEditorCommand(e, t) {
method constructor (line 22887) | constructor(e, t) {
method toPageCoordinates (line 22890) | toPageCoordinates() {
method constructor (line 33921) | constructor() {
method compute (line 33924) | compute(e, t, i) {
method computeContainedMinimapLineCount (line 33938) | static computeContainedMinimapLineCount(e) {
method _computeMinimapLayout (line 33949) | static _computeMinimapLayout(e, t) {
method computeLayout (line 34035) | static computeLayout(e, t) {
method constructor (line 38923) | constructor(e, t, i) {
method reset (line 38926) | reset(e, t, i, n) {
method setOptions (line 38929) | setOptions(e) {
method setCachedOffsets (line 38934) | setCachedOffsets(e, t, i) {
method detach (line 38937) | detach() {
method constructor (line 51998) | constructor(e) {
method fromStaticValue (line 52001) | static fromStaticValue(e) {
method hasReplacementPatterns (line 52004) | get hasReplacementPatterns() {
method buildReplaceString (line 52007) | buildReplaceString(e, t) {
method _substitute (line 52049) | static _substitute(e, t) {
method constructor (line 58918) | constructor(e, t, i) {
method color (line 58921) | get color() {
method color (line 58924) | set color(e) {
method presentation (line 58927) | get presentation() {
method colorPresentations (line 58930) | get colorPresentations() {
method colorPresentations (line 58933) | set colorPresentations(e) {
method selectNextColorPresentation (line 58936) | selectNextColorPresentation() {
method guessColorPresentation (line 58939) | guessColorPresentation(e, t) {
method flushColor (line 58946) | flushColor() {
method constructor (line 60552) | constructor() {
method run (line 60560) | run(e, t) {
method constructor (line 60795) | constructor() {
method push (line 60798) | push(e, t) {
method pop (line 60802) | pop(e, t) {
method has (line 60806) | has(e, t) {
method constructor (line 62616) | constructor(e, t) {
method run (line 62619) | run(e, t) {
method constructor (line 64231) | constructor() {
method run (line 64239) | run(e, t) {
method constructor (line 71297) | constructor() {
method constructor (line 85950) | constructor(e, t) {
method create (line 85953) | static create(e, t) {
method cmp (line 85956) | cmp(e) {
method equals (line 85964) | equals(e) {
method substituteConstants (line 85972) | substituteConstants() {
method evaluate (line 85975) | evaluate(e) {
method serialize (line 85979) | serialize() {
method keys (line 85983) | keys() {
method negate (line 85986) | negate() {
function L (line 1168) | function L(e) {
method constructor (line 8158) | constructor(e) {
method constructor (line 8761) | constructor(e) {
method trait (line 8764) | get trait() {
method renderer (line 8767) | get renderer() {
method splice (line 8770) | splice(e, t, i) {
method renderIndex (line 8783) | renderIndex(e, t) {
method unrender (line 8786) | unrender(e) {
method set (line 8789) | set(e, t) {
method _set (line 8792) | _set(e, t, i) {
method get (line 8802) | get() {
method contains (line 8805) | contains(e) {
method dispose (line 8808) | dispose() {
method constructor (line 10078) | constructor(e, t, i) {
method constructor (line 20667) | constructor(e) {
method runCoreEditorCommand (line 20670) | runCoreEditorCommand(e, t) {
method constructor (line 22895) | constructor(e, t, i, n) {
method constructor (line 49165) | constructor(e) {
method getResolver (line 49168) | getResolver() {
method bestKeybindingForCodeAction (line 49189) | bestKeybindingForCodeAction(e, t) {
method constructor (line 52063) | constructor(e, t, i) {
method staticValue (line 52066) | static staticValue(e) {
method caseOps (line 52069) | static caseOps(e, t) {
method constructor (line 60579) | constructor(e, t) {
method getEditOperations (line 60583) | getEditOperations(e, t) {
method computeCursorState (line 60588) | computeCursorState(e, t) {
method constructor (line 62638) | constructor() {
method run (line 62655) | run(e, t, i) {
method constructor (line 64251) | constructor() {
method run (line 64259) | run(e, t) {
method constructor (line 67221) | constructor(e) {
method resolve (line 67224) | resolve(e) {
method constructor (line 67792) | constructor(e, t, i, n) {
method constructor (line 71307) | constructor() {
method constructor (line 84164) | constructor(e = Object.create(null)) {
method provideWithoutTextEditor (line 84167) | provideWithoutTextEditor(e) {
method provideWithTextEditor (line 84170) | provideWithTextEditor(e, t, i) {
method doProvideWithoutEditorSymbols (line 84175) | doProvideWithoutEditorSymbols(e, t, i, n) {
method provideLabelPick (line 84183) | provideLabelPick(e, t) {
method waitForLanguageSymbolRegistry (line 84190) | waitForLanguageSymbolRegistry(e, t) {
method doProvideWithEditorSymbols (line 84201) | doProvideWithEditorSymbols(e, t, i, o) {
method doGetSymbolPicks (line 84243) | doGetSymbolPicks(e, t, i, n) {
method compareByScore (line 84314) | compareByScore(e, t) {
method compareByKindAndScore (line 84323) | compareByKindAndScore(e, t) {
method getDocumentSymbols (line 84329) | getDocumentSymbols(e, t) {
method constructor (line 85991) | constructor(e) {
method create (line 85994) | static create(e) {
method cmp (line 85997) | cmp(e) {
method equals (line 86000) | equals(e) {
method substituteConstants (line 86003) | substituteConstants() {
method evaluate (line 86006) | evaluate(e) {
method serialize (line 86009) | serialize() {
method keys (line 86012) | keys() {
method negate (line 86015) | negate() {
function c (line 1425) | function c(e, t) {
method constructor (line 6487) | constructor() {
method dispose (line 6490) | dispose() {
method stopMonitoring (line 6493) | stopMonitoring(e, t) {
method isMonitoring (line 6499) | isMonitoring() {
method startMonitoring (line 6502) | startMonitoring(e, t, i, r, l) {
method constructor (line 6598) | constructor(e) {
method preventDefault (line 6621) | preventDefault() {
method stopPropagation (line 6624) | stopPropagation() {
method toKeybinding (line 6627) | toKeybinding() {
method equals (line 6630) | equals(e) {
method _computeKeybinding (line 6633) | _computeKeybinding() {
method _computeRuntimeKeybinding (line 6639) | _computeRuntimeKeybinding() {
method constructor (line 6717) | constructor() {
method addTarget (line 6724) | static addTarget(e) {
method ignoreTarget (line 6731) | static ignoreTarget(e) {
method isTouchDevice (line 6738) | static isTouchDevice() {
method dispose (line 6741) | dispose() {
method onTouchStart (line 6744) | onTouchStart(e) {
method onTouchEnd (line 6764) | onTouchEnd(e) {
method newGestureEvent (line 6794) | newGestureEvent(e, t) {
method dispatchEvent (line 6798) | dispatchEvent(e) {
method inertia (line 6810) | inertia(e, t, i, s, r, a, l, d) {
method onTouchMove (line 6822) | onTouchMove(e) {
method constructor (line 10956) | constructor(e) {
method constructor (line 13018) | constructor() {
method MarkNextChange (line 13021) | MarkNextChange() {
method AddOriginalElement (line 13024) | AddOriginalElement(e, t) {
method AddModifiedElement (line 13027) | AddModifiedElement(e, t) {
method getChanges (line 13030) | getChanges() {
method getReverseChanges (line 13033) | getReverseChanges() {
method constructor (line 13575) | constructor(e) {
method event (line 13579) | get event() {
method fire (line 13596) | fire(e) {
method dispose (line 13612) | dispose() {
method constructor (line 15606) | constructor(e) {
method reset (line 15609) | reset(e) {
method next (line 15612) | next() {
method hasNext (line 15615) | hasNext() {
method cmp (line 15618) | cmp(e) {
method value (line 15626) | value() {
method constructor (line 18569) | constructor(e, t, i, n) {
method _initAnimations (line 18572) | _initAnimations() {
method _initAnimation (line 18575) | _initAnimation(e, t, i) {
method dispose (line 18586) | dispose() {
method acceptScrollDimensions (line 18589) | acceptScrollDimensions(e) {
method tick (line 18592) | tick() {
method _tick (line 18595) | _tick(e) {
method combine (line 18604) | combine(e, t, i) {
method start (line 18607) | static start(e, t, i) {
method constructor (line 19523) | constructor(e, t) {
method read (line 19526) | read() {
method _createDomElements (line 19529) | _createDomElements() {
method _render (line 19548) | static _render(e, t) {
method _readFromDomElements (line 19559) | _readFromDomElements() {
method constructor (line 22824) | constructor(e, t, i, n) {
method constructor (line 33766) | constructor() {
method deleteRight (line 36063) | static deleteRight(e, t, i, n) {
method isAutoClosingPairDelete (line 36078) | static isAutoClosingPairDelete(e, t, i, n, o, r, a) {
method _runAutoClosingPairDelete (line 36111) | static _runAutoClosingPairDelete(e, t, i) {
method deleteLeft (line 36120) | static deleteLeft(e, t, i, n, s) {
method getDeleteRange (line 36130) | static getDeleteRange(e, t, i) {
method getPositionAfterDeleteLeft (line 36146) | static getPositionAfterDeleteLeft(e, t) {
method cut (line 36157) | static cut(e, t, i) {
method leftPosition (line 36658) | static leftPosition(e, t) {
method leftPositionAtomicSoftTabs (line 36666) | static leftPositionAtomicSoftTabs(e, t, i) {
method left (line 36675) | static left(e, t, i) {
method moveLeft (line 36679) | static moveLeft(e, t, i, n, o) {
method clipPositionColumn (line 36690) | static clipPositionColumn(e, t) {
method clipRange (line 36693) | static clipRange(e, t, i) {
method rightPosition (line 36696) | static rightPosition(e, t, i) {
method rightPositionAtomicSoftTabs (line 36699) | static rightPositionAtomicSoftTabs(e, t, i, n, s) {
method right (line 36707) | static right(e, t, i) {
method moveRight (line 36711) | static moveRight(e, t, i, n, o) {
method vertical (line 36722) | static vertical(e, t, i, o, s, r, a) {
method down (line 36730) | static down(e, t, i, n, o, s, r) {
method moveDown (line 36733) | static moveDown(e, t, i, n, o) {
method translateDown (line 36739) | static translateDown(e, t, i) {
method up (line 36745) | static up(e, t, i, n, o, s, r) {
method moveUp (line 36748) | static moveUp(e, t, i, n, o) {
method translateUp (line 36754) | static translateUp(e, t, i) {
method _isBlankLine (line 36760) | static _isBlankLine(e, t) {
method moveToPrevBlankLine (line 36763) | static moveToPrevBlankLine(e, t, i, n) {
method moveToNextBlankLine (line 36769) | static moveToNextBlankLine(e, t, i, n) {
method moveToBeginningOfLine (line 36776) | static moveToBeginningOfLine(e, t, i, n) {
method moveToEndOfLine (line 36782) | static moveToEndOfLine(e, t, i, n, o) {
method moveToBeginningOfBuffer (line 36787) | static moveToBeginningOfBuffer(e, t, i, n) {
method moveToEndOfBuffer (line 36790) | static moveToEndOfBuffer(e, t, i, n) {
method constructor (line 36810) | constructor(e, t, i) {
method getEditOperations (line 36813) | getEditOperations(e, t) {
method computeCursorState (line 36816) | computeCursorState(e, t) {
method _createWord (line 37375) | static _createWord(e, t, i, n, o) {
method _findPreviousWordOnLine (line 37383) | static _findPreviousWordOnLine(e, t, i) {
method _doFindPreviousWordOnLine (line 37387) | static _doFindPreviousWordOnLine(e, t, i) {
method _findEndOfWord (line 37402) | static _findEndOfWord(e, t, i, n) {
method _findNextWordOnLine (line 37413) | static _findNextWordOnLine(e, t, i) {
method _doFindNextWordOnLine (line 37417) | static _doFindNextWordOnLine(e, t, i) {
method _findStartOfWord (line 37433) | static _findStartOfWord(e, t, i, n) {
method moveWordLeft (line 37443) | static moveWordLeft(e, t, i, n) {
method _moveWordPartLeft (line 37456) | static _moveWordPartLeft(e, t) {
method moveWordRight (line 37473) | static moveWordRight(e, t, i, n) {
method _moveWordPartRight (line 37486) | static _moveWordPartRight(e, t) {
method _deleteWordLeftWhitespace (line 37503) | static _deleteWordLeftWhitespace(e, t) {
method deleteWordLeft (line 37509) | static deleteWordLeft(e, t) {
method deleteInsideWord (line 37530) | static deleteInsideWord(e, t, i) {
method _charAtIsWhitespace (line 37536) | static _charAtIsWhitespace(e, t) {
method _deleteInsideWordWhitespace (line 37540) | static _deleteInsideWordWhitespace(e, t) {
method _deleteInsideWordDetermineDeleteRange (line 37552) | static _deleteInsideWordDetermineDeleteRange(e, t, i) {
method _deleteWordPartLeft (line 37572) | static _deleteWordPartLeft(e, t) {
method _findFirstNonWhitespaceChar (line 37578) | static _findFirstNonWhitespaceChar(e, t) {
method _deleteWordRightWhitespace (line 37586) | static _deleteWordRightWhitespace(e, t) {
method deleteWordRight (line 37592) | static deleteWordRight(e, t) {
method _deleteWordPartRight (line 37611) | static _deleteWordPartRight(e, t) {
method _createWordAtPosition (line 37617) | static _createWordAtPosition(e, t, i) {
method getWordAtPosition (line 37625) | static getWordAtPosition(e, t, i) {
method word (line 37632) | static word(e, t, i, n, s) {
method constructor (line 38361) | constructor(e, t, i) {
method constructor (line 43708) | constructor(e, t, i, n) {
method containsEvent (line 43711) | containsEvent(e) {
method merge (line 43717) | static merge(e, t) {
method constructor (line 43801) | constructor(e, t, i) {
method getLanguageId (line 44674) | static getLanguageId(e) {
method getTokenType (line 44677) | static getTokenType(e) {
method getFontStyle (line 44680) | static getFontStyle(e) {
method getForeground (line 44683) | static getForeground(e) {
method getBackground (line 44686) | static getBackground(e) {
method getClassNameFromMetadata (line 44689) | static getClassNameFromMetadata(e) {
method getInlineStyleFromMetadata (line 44694) | static getInlineStyleFromMetadata(e, t) {
method constructor (line 44882) | constructor(e) {
method getAutoClosingPairs (line 44895) | getAutoClosingPairs() {
method getAutoCloseBeforeSet (line 44898) | getAutoCloseBeforeSet() {
method shouldAutoClosePair (line 44901) | static shouldAutoClosePair(e, t, i) {
method getSurroundingPairs (line 44907) | getSurroundingPairs() {
method getColorizedBrackets (line 44910) | getColorizedBrackets() {
method constructor (line 47483) | constructor(e, t) {
method constructor (line 48029) | constructor(e, t) {
method constructor (line 48507) | constructor(e, t) {
method run (line 48510) | run(e, t) {
method constructor (line 48547) | constructor() {
method run (line 48563) | run(e, t) {
method constructor (line 51347) | constructor(e) {
method get (line 51360) | static get(e) {
method cursorUndo (line 51363) | cursorUndo() {
method cursorRedo (line 51366) | cursorRedo() {
method _applyState (line 51369) | _applyState(e) {
method constructor (line 57716) | constructor(e, t, i, n) {
method equals (line 57719) | equals(e) {
method constructor (line 66885) | constructor() {
method resolve (line 66888) | resolve(e) {
method _replace (line 66896) | _replace(e) {
method toString (line 66905) | toString() {
method clone (line 66908) | clone() {
method constructor (line 71616) | constructor() {
method _delete (line 71632) | _delete(e, t) {
method constructor (line 84614) | constructor(e, t) {
method element (line 84629) | get element() {
method show (line 84632) | show() {
method hide (line 84635) | hide() {
method dispose (line 84638) | dispose() {
method has (line 85470) | static has(e) {
method equals (line 85473) | static equals(e, t) {
method regex (line 85476) | static regex(e, t) {
method not (line 85479) | static not(e) {
method and (line 85482) | static and(...e) {
method or (line 85485) | static or(...e) {
method deserialize (line 85488) | static deserialize(e, t = !1) {
method _deserializeOrExpression (line 85491) | static _deserializeOrExpression(e, t) {
method _deserializeAndExpression (line 85495) | static _deserializeAndExpression(e, t) {
method _deserializeOne (line 85499) | static _deserializeOne(e, t) {
method _deserializeValue (line 85534) | static _deserializeValue(e, t) {
method _deserializeRegexValue (line 85540) | static _deserializeRegexValue(e, t) {
method constructor (line 86499) | constructor(e, t) {
method templateId (line 86502) | get templateId() {
method renderTemplate (line 86505) | renderTemplate(e) {
method renderElement (line 86511) | renderElement(e, t, i, n) {
method disposeTemplate (line 86521) | disposeTemplate(e) {
method constructor (line 89580) | constructor(e = a) {
method trace (line 89583) | trace(e, ...t) {
method debug (line 89586) | debug(e, ...t) {
method info (line 89589) | info(e, ...t) {
method error (line 89592) | error(e, ...t) {
method dispose (line 89595) | dispose() {}
method constructor (line 89873) | constructor(e, t = Object.create(null)) {
method registerListeners (line 89876) | registerListeners() {
method onDidChangeItemsExternal (line 89879) | onDidChangeItemsExternal(e) {
method accept (line 89883) | accept(e, t) {
method get (line 89892) | get(e, t) {
method getBoolean (line 89896) | getBoolean(e, t) {
method getNumber (line 89900) | getNumber(e, t) {
method set (line 89904) | set(e, t) {
method delete (line 89912) | delete(e) {
method hasPending (line 89918) | get hasPending() {
method flushPending (line 89921) | flushPending() {
method dispose (line 89935) | dispose() {
function d (line 1480) | function d(e, t) {
method constructor (line 10962) | constructor(e, t, i, n) {
method actions (line 10965) | get actions() {
method dispose (line 10968) | dispose() {}
method run (line 10969) | run() {
method constructor (line 11270) | constructor() {
method queue (line 11273) | queue(e) {
method constructor (line 13038) | constructor(e, t, i = null) {
method _isStringArray (line 13043) | static _isStringArray(e) {
method _getElements (line 13046) | static _getElements(e) {
method ElementsAreEqual (line 13059) | ElementsAreEqual(e, t) {
method ElementsAreStrictEqual (line 13062) | ElementsAreStrictEqual(e, t) {
method _getStrictElement (line 13066) | static _getStrictElement(e, t) {
method OriginalElementsAreEqual (line 13069) | OriginalElementsAreEqual(e, t) {
method ModifiedElementsAreEqual (line 13072) | ModifiedElementsAreEqual(e, t) {
method ComputeDiff (line 13075) | ComputeDiff(e) {
method _ComputeDiff (line 13078) | _ComputeDiff(e, t, i, n, o) {
method ComputeDiffRecursive (line 13086) | ComputeDiffRecursive(e, t, i, o, s) {
method WALKTRACE (line 13106) | WALKTRACE(e, t, i, o, s, r, a, l, d, h, u, g, p, f, m, v, _, b) {
method ComputeRecursionPoint (line 13137) | ComputeRecursionPoint(e, t, i, o, s, r, a) {
method PrettifyChanges (line 13181) | PrettifyChanges(e) {
method _findBetterContiguousSequence (line 13242) | _findBetterContiguousSequence(e, t, i, n, o) {
method _contiguousSequenceScore (line 13256) | _contiguousSequenceScore(e, t, i) {
method _OriginalIsBoundary (line 13264) | _OriginalIsBoundary(e) {
method _OriginalRegionIsBoundary (line 13267) | _OriginalRegionIsBoundary(e, t) {
method _ModifiedIsBoundary (line 13275) | _ModifiedIsBoundary(e) {
method _ModifiedRegionIsBoundary (line 13278) | _ModifiedRegionIsBoundary(e, t) {
method _boundaryScore (line 13286) | _boundaryScore(e, t, i, n) {
method ConcatenateChanges (line 13289) | ConcatenateChanges(e, t) {
method ChangesOverlap (line 13300) | ChangesOverlap(e, t, i) {
method ClipDiagonalBound (line 13310) | ClipDiagonalBound(e, t, i, n) {
method constructor (line 13618) | constructor(e) {
method pause (line 13621) | pause() {
method resume (line 13624) | resume() {
method fire (line 13632) | fire(e) {
method constructor (line 15338) | constructor(e) {
method constructor (line 15636) | constructor() {
method rotateLeft (line 15639) | rotateLeft() {
method rotateRight (line 15643) | rotateRight() {
method updateHeight (line 15647) | updateHeight() {
method balanceFactor (line 15650) | balanceFactor() {
method heightLeft (line 15653) | get heightLeft() {
method heightRight (line 15657) | get heightRight() {
method constructor (line 33233) | constructor(e, t) {
method unshiftIndent (line 33236) | static unshiftIndent(e, t, i, n, s) {
method shiftIndent (line 33244) | static shiftIndent(e, t, i, n, s) {
method _addEditOperation (line 33252) | _addEditOperation(e, t, i) {
method getEditOperations (line 33255) | getEditOperations(e, t) {
method computeCursorState (line 33308) | computeCursorState(e, t) {
method constructor (line 33771) | constructor(e, t, i, n) {
method compute (line 33774) | compute(e, t, i) {
method addCursorDown (line 36192) | static addCursorDown(e, t, i) {
method addCursorUp (line 36201) | static addCursorUp(e, t, i) {
method moveToBeginningOfLine (line 36210) | static moveToBeginningOfLine(e, t, i) {
method _moveToLineStart (line 36218) | static _moveToLineStart(e, t, i) {
method _moveToLineStartByView (line 36225) | static _moveToLineStartByView(e, t, i) {
method _moveToLineStartByModel (line 36228) | static _moveToLineStartByModel(e, t, i) {
method moveToEndOfLine (line 36231) | static moveToEndOfLine(e, t, i, n) {
method _moveToLineEnd (line 36239) | static _moveToLineEnd(e, t, i, n) {
method _moveToLineEndByView (line 36248) | static _moveToLineEndByView(e, t, i, n) {
method _moveToLineEndByModel (line 36251) | static _moveToLineEndByModel(e, t, i, n) {
method expandLineSelection (line 36254) | static expandLineSelection(e, t) {
method moveToBeginningOfBuffer (line 36265) | static moveToBeginningOfBuffer(e, t, i) {
method moveToEndOfBuffer (line 36273) | static moveToEndOfBuffer(e, t, i) {
method selectAll (line 36281) | static selectAll(e, t) {
method line (line 36286) | static line(e, t, i, n, o) {
method word (line 36307) | static word(e, t, i, n) {
method cancelSelection (line 36311) | static cancelSelection(e, t) {
method moveTo (line 36317) | static moveTo(e, t, i, n, o) {
method simpleMove (line 36322) | static simpleMove(e, t, i, n, o, a) {
method viewportMove (line 36350) | static viewportMove(e, t, i, n, o) {
method findPositionInViewportIfOutside (line 36381) | static findPositionInViewportIfOutside(e, t, i, n) {
method _firstLineNumberInRange (line 36390) | static _firstLineNumberInRange(e, t, i) {
method _lastLineNumberInRange (line 36394) | static _lastLineNumberInRange(e, t, i) {
method _moveLeft (line 36398) | static _moveLeft(e, t, i, n) {
method _moveHalfLineLeft (line 36401) | static _moveHalfLineLeft(e, t, i) {
method _moveRight (line 36411) | static _moveRight(e, t, i, n) {
method _moveHalfLineRight (line 36414) | static _moveHalfLineRight(e, t, i) {
method _moveDownByViewLines (line 36424) | static _moveDownByViewLines(e, t, i, n) {
method _moveDownByModelLines (line 36432) | static _moveDownByModelLines(e, t, i, n) {
method _moveUpByViewLines (line 36440) | static _moveUpByViewLines(e, t, i, n) {
method _moveUpByModelLines (line 36448) | static _moveUpByModelLines(e, t, i, n) {
method _moveToViewPosition (line 36456) | static _moveToViewPosition(e, t, i, n, o) {
method _moveToModelPosition (line 36459) | static _moveToModelPosition(e, t, i, n, o) {
method _moveToViewMinColumn (line 36462) | static _moveToViewMinColumn(e, t, i) {
method _moveToViewFirstNonWhitespaceColumn (line 36472) | static _moveToViewFirstNonWhitespaceColumn(e, t, i) {
method _moveToViewCenterColumn (line 36482) | static _moveToViewCenterColumn(e, t, i) {
method _moveToViewMaxColumn (line 36492) | static _moveToViewMaxColumn(e, t, i) {
method _moveToViewLastNonWhitespaceColumn (line 36502) | static _moveToViewLastNonWhitespaceColumn(e, t, i) {
method deleteWordPartLeft (line 37656) | static deleteWordPartLeft(e) {
method deleteWordPartRight (line 37660) | static deleteWordPartRight(e) {
method moveWordPartLeft (line 37664) | static moveWordPartLeft(e, t, i) {
method moveWordPartRight (line 37668) | static moveWordPartRight(e, t, i) {
method constructor (line 38366) | constructor(e, t) {
method constructor (line 43726) | constructor(e) {
method constructor (line 47488) | constructor(e, t) {
method getPartIndex (line 47491) | static getPartIndex(e) {
method getCharIndex (line 47494) | static getCharIndex(e) {
method setColumnInfo (line 47497) | setColumnInfo(e, t, i, n) {
method getAbsoluteOffset (line 47501) | getAbsoluteOffset(e) {
method charOffsetToPartData (line 47504) | charOffsetToPartData(e) {
method getDomPosition (line 47507) | getDomPosition(e) {
method getColumn (line 47513) | getColumn(e, t) {
method partDataToCharOffset (line 47516) | partDataToCharOffset(e, t, i) {
method constructor (line 48034) | constructor(e, t, i, n, o, s, r) {
method constructor (line 51378) | constructor() {
method run (line 51391) | run(e, t, i) {
method constructor (line 51422) | constructor(e, t, i) {
method getEditOperations (line 51425) | getEditOperations(e, t) {
method computeCursorState (line 51429) | computeCursorState(e, t) {
method constructor (line 62339) | constructor(e, t) {
method getEditOperations (line 62342) | getEditOperations(e, t) {
method computeCursorState (line 62373) | computeCursorState(e, t) {
method constructor (line 65725) | constructor(e) {
method provide (line 65728) | provide(e, t) {
method doProvide (line 65737) | doProvide(e, t) {
method canProvideWithTextEditor (line 65760) | canProvideWithTextEditor(e) {
method gotoLocation (line 65763) | gotoLocation({
method getModel (line 65768) | getModel(e) {
method addDecorations (line 65772) | addDecorations(e, t) {
method clearDecorations (line 65800) | clearDecorations(e) {
method constructor (line 66914) | constructor(e, t, i, n) {
method resolve (line 66917) | resolve(e) {
method _toPascalCase (line 66920) | _toPascalCase(e) {
method _toCamelCase (line 66924) | _toCamelCase(e) {
method clone (line 66928) | clone() {
method constructor (line 71638) | constructor() {
method _delete (line 71654) | _delete(e, t) {
method constructor (line 84643) | constructor(e, t) {
method menuOptions (line 84646) | set menuOptions(e) {
method menuOptions (line 84649) | get menuOptions() {
method actions (line 84652) | get actions() {
method actions (line 84655) | set actions(e) {
method show (line 84658) | show() {
method hide (line 84672) | hide() {
method onHide (line 84675) | onHide() {
method constructor (line 86526) | constructor(e, t) {
method getWidgetAriaLabel (line 86529) | getWidgetAriaLabel() {
method getAriaLabel (line 86532) | getAriaLabel(e) {
method constructor (line 89598) | constructor(e) {
method getLevel (line 89601) | getLevel() {
method trace (line 89604) | trace(e, ...t) {
method debug (line 89607) | debug(e, ...t) {
method info (line 89610) | info(e, ...t) {
method error (line 89613) | error(e, ...t) {
method constructor (line 89941) | constructor() {
method updateItems (line 89944) | updateItems(e) {
function B (line 1762) | function B(e, t) {
method constructor (line 8969) | constructor(e) {
method updateOptions (line 8972) | updateOptions(e) {
method isSelectionSingleChangeEvent (line 8975) | isSelectionSingleChangeEvent(e) {
method isSelectionRangeChangeEvent (line 8978) | isSelectionRangeChangeEvent(e) {
method isSelectionChangeEvent (line 8981) | isSelectionChangeEvent(e) {
method onMouseDown (line 8984) | onMouseDown(e) {
method onContextMenu (line 8987) | onContextMenu(e) {
method onViewPointer (line 8992) | onViewPointer(e) {
method onDoubleClick (line 8999) | onDoubleClick(e) {
method changeSelection (line 9005) | changeSelection(e) {
method dispose (line 9051) | dispose() {
method constructor (line 23176) | constructor(e, t) {
method from (line 23179) | static from(e) {
method toString (line 23187) | toString() {
method constructor (line 46597) | constructor(e, t, i) {
method dispose (line 46600) | dispose() {
method constructor (line 50184) | constructor(e, t, i) {
method onComputedHeight (line 50187) | onComputedHeight(e) {
method isVisible (line 50190) | isVisible() {
method constructor (line 54849) | constructor(e, t, i, n) {
method dispose (line 54866) | dispose() {
method compute (line 54869) | compute(e) {
method constructor (line 59093) | constructor(e, t, i, n) {
method layout (line 59100) | layout() {
method run (line 62893) | run(e, t) {
method constructor (line 64611) | constructor(e) {
method _update (line 64624) | _update() {
method _createState (line 64627) | static _createState(e, t) {
method _setState (line 64659) | _setState(e) {
method dispose (line 64685) | dispose() {
method constructor (line 65976) | constructor(e, t) {
method hasProvider (line 65979) | hasProvider() {
method resolveRenameLocation (line 65982) | resolveRenameLocation(e) {
method provideRenameEdits (line 66006) | provideRenameEdits(e, t) {
method _provideRenameEdits (line 66011) | _provideRenameEdits(e, t, i, n) {
method _delete (line 71486) | _delete(e, t) {
method constructor (line 83758) | constructor(e, t, i, n, o, s) {
method getCodeEditorCommandPicks (line 83761) | getCodeEditorCommandPicks() {
function V (line 1817) | function V(e, t) {
method constructor (line 9056) | constructor(e, t) {
method style (line 9059) | style(e) {
method constructor (line 23192) | constructor(e, t) {
method toString (line 23195) | toString() {
method compare (line 23198) | static compare(e, t) {
method constructor (line 39228) | constructor(e, t) {
method next (line 39231) | next() {
method prev (line 39237) | prev() {
method detach (line 39243) | detach() {
method constructor (line 46605) | constructor(e, t, i) {
method dispose (line 46621) | dispose() {
method _fetchDocumentSemanticTokensNow (line 46624) | _fetchDocumentSemanticTokensNow() {
method _copy (line 46648) | static _copy(e, t, i, n, o) {
method _setDocumentSemanticTokens (line 46651) | _setDocumentSemanticTokens(e, t, i, n) {
method constructor (line 50195) | constructor(e, t, i) {
method withCommands (line 50198) | withCommands(e, t) {
method getCommand (line 50216) | getCommand(e) {
method getId (line 50219) | getId() {
method getDomNode (line 50222) | getDomNode() {
method updatePosition (line 50225) | updatePosition(e) {
method getPosition (line 50235) | getPosition() {
method constructor (line 61489) | constructor(e, t) {
method state (line 61542) | get state() {
method update (line 61547) | update(e) {
method getInlineCompletion (line 61553) | getInlineCompletion() {
method stopForceRenderingAbove (line 61560) | stopForceRenderingAbove() {
method forceRenderingAbove (line 61564) | forceRenderingAbove() {
method constructor (line 62910) | constructor() {
method _getEndCursorState (line 62926) | _getEndCursorState(e, t) {
method _getRangesToDelete (line 62939) | _getRangesToDelete(e) {
method _delete (line 71492) | _delete(e, t) {
function W (line 1823) | function W(e, t) {
method constructor (line 23203) | constructor(e, t) {
method constructor (line 50241) | constructor() {
method addDecoration (line 50244) | addDecoration(e, t) {
method removeDecoration (line 50247) | removeDecoration(e) {
method commit (line 50250) | commit(e) {
method constructor (line 62958) | constructor() {
method _getEndCursorState (line 62975) | _getEndCursorState(e, t) {
method _getRangesToDelete (line 62985) | _getRangesToDelete(e) {
method constructor (line 71501) | constructor() {
function H (line 1834) | function H(e) {
method constructor (line 23208) | constructor(e, t) {
method constructor (line 50256) | constructor(e, t, i, n, o, s, r) {
method _createContentWidgetIfNecessary (line 50267) | _createContentWidgetIfNecessary() {
method dispose (line 50270) | dispose(e, t) {
method isDisposed (line 50273) | isDisposed() {
method isValid (line 50276) | isValid() {
method updateCodeLensSymbols (line 50283) | updateCodeLensSymbols(e, t) {
method updateHeight (line 50291) | updateHeight(e, t) {
method computeIfNecessary (line 50294) | computeIfNecessary(e) {
method updateCommands (line 50302) | updateCommands(e) {
method getCommand (line 50314) | getCommand(e) {
method getLineNumber (line 50318) | getLineNumber() {
method update (line 50322) | update(e) {
method getItems (line 50328) | getItems() {
method constructor (line 63001) | constructor() {
method run (line 63017) | run(e, t) {
method constructor (line 66096) | constructor() {
method runCommand (line 66113) | runCommand(e, t) {
method run (line 66122) | run(e, t) {
method constructor (line 71511) | constructor() {
method constructor (line 84409) | constructor() {
method run (line 84426) | run(e) {
function a (line 2861) | function a(e, t) {
method constructor (line 6409) | constructor(e) {
method eos (line 6412) | eos() {
method next (line 6415) | next() {
method peek (line 6419) | peek() {
method advance (line 6422) | advance() {
method constructor (line 6668) | constructor(e, t = 0, i = 0) {
method preventDefault (line 6687) | preventDefault() {
method stopPropagation (line 6690) | stopPropagation() {
method constructor (line 10860) | constructor(e, t = "", i = "", o = !0, s) {
method id (line 10863) | get id() {
method label (line 10866) | get label() {
method label (line 10869) | set label(e) {
method _setLabel (line 10872) | _setLabel(e) {
method tooltip (line 10877) | get tooltip() {
method tooltip (line 10880) | set tooltip(e) {
method _setTooltip (line 10883) | _setTooltip(e) {
method class (line 10888) | get class() {
method class (line 10891) | set class(e) {
method _setClass (line 10894) | _setClass(e) {
method enabled (line 10899) | get enabled() {
method enabled (line 10902) | set enabled(e) {
method _setEnabled (line 10905) | _setEnabled(e) {
method checked (line 10910) | get checked() {
method checked (line 10913) | set checked(e) {
method _setChecked (line 10916) | _setChecked(e) {
method run (line 10921) | run(e, t) {
method constructor (line 11596) | constructor(e) {
method token (line 11599) | get token() {
method cancel (line 11602) | cancel() {
method dispose (line 11605) | dispose(e = !1) {
method constructor (line 12768) | constructor(e) {
method fromHex (line 12777) | static fromHex(e) {
method hsla (line 12780) | get hsla() {
method hsva (line 12783) | get hsva() {
method equals (line 12786) | equals(e) {
method getRelativeLuminance (line 12789) | getRelativeLuminance() {
method _relativeLuminanceForComponent (line 12792) | static _relativeLuminanceForComponent(e) {
method isLighter (line 12796) | isLighter() {
method isLighterThan (line 12799) | isLighterThan(e) {
method isDarkerThan (line 12802) | isDarkerThan(e) {
method lighten (line 12805) | lighten(e) {
method darken (line 12808) | darken(e) {
method transparent (line 12811) | transparent(e) {
method isTransparent (line 12820) | isTransparent() {
method isOpaque (line 12823) | isOpaque() {
method opposite (line 12826) | opposite() {
method toString (line 12829) | toString() {
method getLighterColor (line 12832) | static getLighterColor(e, t, i) {
method getDarkerColor (line 12839) | static getDarkerColor(e, t, i) {
method Assert (line 13005) | static Assert(e, t) {
method constructor (line 15270) | constructor(e) {
method constructor (line 15549) | constructor(e = !0) {
method reset (line 15552) | reset(e) {
method hasNext (line 15555) | hasNext() {
method next (line 15558) | next() {
method cmp (line 15569) | cmp(e) {
method value (line 15572) | value() {
method asBrowserUri (line 17509) | asBrowserUri(e, t) {
method toUri (line 17518) | toUri(e, t) {
method constructor (line 18555) | constructor(e, t, i) {
method constructor (line 21437) | constructor(e, t, i, n, o) {
method toString (line 21440) | toString() {
method readFromTextArea (line 21443) | static readFromTextArea(e) {
method collapseSelection (line 21446) | collapseSelection() {
method writeToTextArea (line 21449) | writeToTextArea(e, t, i) {
method deduceEditorPosition (line 21452) | deduceEditorPosition(e) {
method _finishDeduceEditorPosition (line 21466) | _finishDeduceEditorPosition(e, t, i) {
method selectedText (line 21472) | static selectedText(e) {
method deduceInput (line 21475) | static deduceInput(e, t, i) {
method deduceAndroidCompositionInput (line 21527) | static deduceAndroidCompositionInput(e, t) {
method constructor (line 22804) | constructor(e) {
method convert (line 22807) | static convert(e) {
method constructor (line 33190) | constructor(e, t, i, n, o = !1) {
method getEditOperations (line 33193) | getEditOperations(e, t) {
method computeCursorState (line 33196) | computeCursorState(e, t) {
method constructor (line 33744) | constructor(e) {
method hasChanged (line 33747) | hasChanged(e) {
method constructor (line 35706) | constructor(e, t) {
method equals (line 35709) | equals(e) {
method constructor (line 38338) | constructor(e) {
method equals (line 38341) | equals(e) {
method createChangeEvent (line 38344) | createChangeEvent(e) {
method constructor (line 43698) | constructor(e, t, i, n) {
method constructor (line 45817) | constructor(e, t) {
method normalize (line 47407) | static normalize(e, t) {
method constructor (line 47458) | constructor(e, t) {
method equals (line 47461) | equals(e) {
method constructor (line 47933) | constructor(e, t) {
method toString (line 47936) | toString() {
method toPosition (line 47939) | toPosition(e, t) {
method constructor (line 48482) | constructor(e, t) {
method getEditOperations (line 48485) | getEditOperations(e, t) {
method computeCursorState (line 48501) | computeCursorState(e, t) {
method constructor (line 49959) | constructor(e, t, i) {
method fromUser (line 49962) | static fromUser(e, t) {
method getApplyFromUser (line 49965) | static getApplyFromUser(e, t) {
method getKindFromUser (line 49977) | static getKindFromUser(e, t) {
method getPreferredUser (line 49980) | static getPreferredUser(e) {
method constructor (line 50664) | constructor(e) {
method dispose (line 50667) | dispose() {
method onMouseDown (line 50670) | onMouseDown(e) {
method constructor (line 51330) | constructor(e) {
method equals (line 51333) | equals(e) {
method constructor (line 55678) | constructor() {
method run (line 55686) | run(e, t) {
method constructor (line 57706) | constructor(e, t) {
method provideSelectionRanges (line 66214) | provideSelectionRanges(e, t) {
method _bracketsRightYield (line 66226) | static _bracketsRightYield(e, t, i, o, s) {
method _bracketsLeftYield (line 66261) | static _bracketsLeftYield(e, t, i, n, o, r) {
method _addBracketLeading (line 66306) | static _addBracketLeading(e, t, i) {
method constructor (line 66849) | constructor(e) {
method compareByIndex (line 66852) | static compareByIndex(e, t) {
method isFinalTabstop (line 66855) | get isFinalTabstop() {
method choice (line 66858) | get choice() {
method clone (line 66861) | clone() {
method constructor (line 70614) | constructor() {
method run (line 70633) | run(e, t) {
method constructor (line 83180) | constructor(e) {
method update (line 83183) | update() {
method dispose (line 83187) | dispose() {
method constructor (line 83873) | constructor() {
method provideWithoutTextEditor (line 83878) | provideWithoutTextEditor(e) {
method provideWithTextEditor (line 83884) | provideWithTextEditor(e, t, i) {
method toRange (line 83920) | toRange(e = 1, t = 1) {
method parsePosition (line 83928) | parsePosition(e, t) {
method getPickLabel (line 83936) | getPickLabel(e, t, i) {
method isValidLineNumber (line 83945) | isValidLineNumber(e, t) {
method isValidColumn (line 83948) | isValidColumn(e, t, i) {
method lineCount (line 83958) | lineCount(e) {
method constructor (line 86420) | constructor() {
method bindToCurrentPlatform (line 86423) | static bindToCurrentPlatform(e) {
method registerKeybindingRule (line 86431) | registerKeybindingRule(e) {
method registerCommandAndKeybindingRule (line 86444) | registerCommandAndKeybindingRule(e) {
method _mightProduceChar (line 86447) | static _mightProduceChar(e) {
method _assertNoCtrlAlt (line 86450) | _assertNoCtrlAlt(e, t) {
method _registerDefaultKeybinding (line 86453) | _registerDefaultKeybinding(e, t, i, n, s, r) {
method getDefaultKeybindings (line 86465) | getDefaultKeybindings() {
function l (line 2916) | function l(e, t) {
method constructor (line 7218) | constructor(e, t) {
method setCount (line 7221) | setCount(e) {
method setTitleFormat (line 7224) | setTitleFormat(e) {
method render (line 7227) | render() {
method style (line 7230) | style(e) {
method applyStyles (line 7233) | applyStyles() {
method constructor (line 8657) | constructor(e) {
method splice (line 8660) | splice(e, t, i) {
method onclick (line 10788) | onclick(e, t) {
method onmousedown (line 10791) | onmousedown(e, t) {
method onmouseover (line 10794) | onmouseover(e, t) {
method onnonbubblingmouseout (line 10797) | onnonbubblingmouseout(e, t) {
method onkeydown (line 10800) | onkeydown(e, t) {
method onkeyup (line 10803) | onkeyup(e, t) {
method oninput (line 10806) | oninput(e, t) {
method onblur (line 10809) | onblur(e, t) {
method onfocus (line 10812) | onfocus(e, t) {
method ignoreGesture (line 10815) | ignoreGesture(e) {
method constructor (line 10928) | constructor() {
method run (line 10931) | run(e, t) {
method runAction (line 10949) | runAction(e, t) {
method constructor (line 11648) | constructor(e, t, i) {
method classNames (line 11651) | get classNames() {
method classNamesArray (line 11654) | get classNamesArray() {
method cssSelector (line 11657) | get cssSelector() {
method Copy (line 13010) | static Copy(e, t, i, n, o) {
method Copy2 (line 13013) | static Copy2(e, t, i, n, o) {
method constructor (line 13560) | constructor(e) {
method start (line 13563) | start(e) {
method stop (line 13566) | stop() {
method constructor (line 15276) | constructor(e, t, i, n, o, s) {
method constructor (line 15577) | constructor(e = !0, t = !0) {
method reset (line 15580) | reset(e) {
method hasNext (line 15583) | hasNext() {
method next (line 15586) | next() {
method cmp (line 15598) | cmp(e) {
method value (line 15601) | value() {
method constructor (line 19515) | constructor(e, t) {
method fulfill (line 19518) | fulfill(e) {
method constructor (line 20120) | constructor(e) {
method _getColumnSelectResult (line 20123) | _getColumnSelectResult(e, t, i, n) {
method _getPageOfLine (line 21558) | static _getPageOfLine(e, t) {
method _getRangeForPage (line 21561) | static _getRangeForPage(e, t) {
method fromEditorSelection (line 21567) | static fromEditorSelection(e, t, i, n, r) {
method constructor (line 22819) | constructor(e, t, i, n) {
method constructor (line 33202) | constructor(e, t, i, n = !1) {
method getEditOperations (line 33205) | getEditOperations(e, t) {
method computeCursorState (line 33208) | computeCursorState(e, t) {
method constructor (line 33752) | constructor() {
method _read (line 33755) | _read(e) {
method get (line 33758) | get(e) {
method _write (line 33761) | _write(e, t) {
method constructor (line 36653) | constructor(e, t, i) {
method constructor (line 38354) | constructor(e, t) {
method constructor (line 38695) | constructor(e, t) {
method compress (line 38698) | compress() {
method _acceptCurr (line 38744) | _acceptCurr(e) {
method _getCurr (line 38747) | _getCurr(e) {
method _acceptPrev (line 38750) | _acceptPrev(e) {
method _getPrev (line 38753) | _getPrev(e) {
method _rebaseCurr (line 38756) | static _rebaseCurr(e, t) {
method _rebasePrev (line 38759) | static _rebasePrev(e, t) {
method _splitPrev (line 38762) | static _splitPrev(e, t) {
method _splitCurr (line 38767) | static _splitCurr(e, t) {
method _merge (line 38772) | static _merge(e) {
method _removeNoOps (line 38783) | static _removeNoOps(e) {
method constructor (line 43703) | constructor() {
method constructor (line 43766) | constructor(e, t, i, n) {
method parseSearchRequest (line 43769) | parseSearchRequest() {
method constructor (line 47466) | constructor(e, t, i, n, o, r, a, l, c, d, h, u, g, p, f, m, v, _, b) {
method sameSelection (line 47470) | sameSelection(e) {
method equals (line 47478) | equals(e) {
method constructor (line 47945) | constructor(e, t, i, n, o) {
method getInputOffsetOfOutputPosition (line 47948) | getInputOffsetOfOutputPosition(e, t) {
method getOutputPositionOfInputOffset (line 47954) | getOutputPositionOfInputOffset(e, t = 2) {
method getOutputPositionOfOffsetInUnwrappedLine (line 47960) | getOutputPositionOfOffsetInUnwrappedLine(e, t = 2) {
method outputPositionToOffsetInUnwrappedLine (line 47982) | outputPositionToOffsetInUnwrappedLine(e, t) {
method normalizeOffsetAroundInjections (line 47986) | normalizeOffsetAroundInjections(e, t) {
method getInjectedText (line 48001) | getInjectedText(e, t) {
method getInjectedTextAtOffset (line 48008) | getInjectedTextAtOffset(e) {
method constructor (line 51342) | constructor(e, t, i) {
method constructor (line 55691) | constructor() {
method run (line 55699) | run(e, t) {
method constructor (line 57711) | constructor(e, t) {
method constructor (line 66867) | constructor() {
method appendChild (line 66870) | appendChild(e) {
method toString (line 66873) | toString() {
method len (line 66876) | len() {
method clone (line 66879) | clone() {
method constructor (line 83193) | constructor(e) {
method dispose (line 83200) | dispose() {
method getId (line 83203) | getId() {
method getDomNode (line 83206) | getDomNode() {
method getPosition (line 83209) | getPosition() {
method constructor (line 89569) | constructor() {
method setLevel (line 89572) | setLevel(e) {
method getLevel (line 89575) | getLevel() {
function M (line 3271) | function M(e, t) {
method constructor (line 22983) | constructor() {
method shouldRender (line 22986) | shouldRender() {
method forceShouldRender (line 22989) | forceShouldRender() {
method setShouldRender (line 22992) | setShouldRender() {
method onDidRender (line 22995) | onDidRender() {
method onCompositionStart (line 22998) | onCompositionStart(e) {
method onCompositionEnd (line 23001) | onCompositionEnd(e) {
method onConfigurationChanged (line 23004) | onConfigurationChanged(e) {
method onCursorStateChanged (line 23007) | onCursorStateChanged(e) {
method onDecorationsChanged (line 23010) | onDecorationsChanged(e) {
method onFlushed (line 23013) | onFlushed(e) {
method onFocusChanged (line 23016) | onFocusChanged(e) {
method onLanguageConfigurationChanged (line 23019) | onLanguageConfigurationChanged(e) {
method onLineMappingChanged (line 23022) | onLineMappingChanged(e) {
method onLinesChanged (line 23025) | onLinesChanged(e) {
method onLinesDeleted (line 23028) | onLinesDeleted(e) {
method onLinesInserted (line 23031) | onLinesInserted(e) {
method onRevealRangeRequest (line 23034) | onRevealRangeRequest(e) {
method onScrollChanged (line 23037) | onScrollChanged(e) {
method onThemeChanged (line 23040) | onThemeChanged(e) {
method onTokensChanged (line 23043) | onTokensChanged(e) {
method onTokensColorsChanged (line 23046) | onTokensColorsChanged(e) {
method onZonesChanged (line 23049) | onZonesChanged(e) {
method handleEvents (line 23052) | handleEvents(e) {
method constructor (line 45464) | constructor(e, t, i) {
method cmp (line 45467) | static cmp(e, t) {
method constructor (line 46351) | constructor(e, t, i, n, o, s, r, a) {
method constructor (line 58957) | constructor(e, t, i) {
method onDidChangeColor (line 58968) | onDidChangeColor(e) {
method onDidChangePresentation (line 58971) | onDidChangePresentation() {
method constructor (line 61387) | constructor(e, t, i, o) {
method constructor (line 62745) | constructor() {
method run (line 62758) | run(e, t, i) {
method constructor (line 64501) | constructor() {
method _run (line 64518) | _run(e, t) {
method constructor (line 64853) | constructor(e, t = M.DEFAULT_DELAY) {
method state (line 64856) | get state() {
method state (line 64859) | set state(e) {
method cancel (line 64862) | cancel(e = !1) {
method trigger (line 64865) | trigger(e, t) {
method next (line 64871) | next() {
method previous (line 64879) | previous() {
method updateActiveSignature (line 64887) | updateActiveSignature(e) {
method doTrigger (line 64892) | doTrigger(e) {
method getLastActiveHints (line 64917) | getLastActiveHints() {
method isTriggered (line 64927) | get isTriggered() {
method onModelChanged (line 64930) | onModelChanged() {
method onDidType (line 64939) | onDidType(e) {
method onCursorChange (line 64948) | onCursorChange(e) {
method onModelContentChange (line 64953) | onModelContentChange() {
method onEditorConfigurationChange (line 64958) | onEditorConfigurationChange() {
method dispose (line 64961) | dispose() {
method constructor (line 67327) | constructor(e) {
method resolve (line 67330) | resolve(e) {
method _resolveWorkspaceName (line 67343) | _resolveWorkspaceName(e) {
method _resoveWorkspacePath (line 67348) | _resoveWorkspacePath(e) {
method constructor (line 70922) | constructor(e, t) {
method hasDecorations (line 70932) | hasDecorations() {
method restore (line 70935) | restore() {
method _getSortedHighlights (line 70938) | _getSortedHighlights() {
method moveNext (line 70941) | moveNext() {
method moveBack (line 70956) | moveBack() {
method _removeDecorations (line 70971) | _removeDecorations() {
method _stopAll (line 70974) | _stopAll() {
method _onPositionChanged (line 70977) | _onPositionChanged(e) {
method _getWord (line 70980) | _getWord() {
method _run (line 70989) | _run() {
method _beginRenderDecorations (line 71007) | _beginRenderDecorations() {
method renderDecorations (line 71014) | renderDecorations() {
method _getDecorationOptions (line 71023) | static _getDecorationOptions(e) {
method dispose (line 71026) | dispose() {
method constructor (line 71391) | constructor() {
function A (line 3282) | function A(e) {
method convertToPixels (line 5808) | static convertToPixels(e, t) {
method getDimension (line 5811) | static getDimension(e, t, i) {
method getBorderLeftWidth (line 5816) | static getBorderLeftWidth(e) {
method getBorderRightWidth (line 5819) | static getBorderRightWidth(e) {
method getBorderTopWidth (line 5822) | static getBorderTopWidth(e) {
method getBorderBottomWidth (line 5825) | static getBorderBottomWidth(e) {
method getPaddingLeft (line 5828) | static getPaddingLeft(e) {
method getPaddingRight (line 5831) | static getPaddingRight(e) {
method getPaddingTop (line 5834) | static getPaddingTop(e) {
method getPaddingBottom (line 5837) | static getPaddingBottom(e) {
method getMarginLeft (line 5840) | static getMarginLeft(e) {
method getMarginTop (line 5843) | static getMarginTop(e) {
method getMarginRight (line 5846) | static getMarginRight(e) {
method getMarginBottom (line 5849) | static getMarginBottom(e) {
method constructor (line 8893) | constructor(e, t, i, n) {
method updateOptions (line 8896) | updateOptions(e) {
method enable (line 8899) | enable() {
method disable (line 8907) | disable() {
method onClear (line 8910) | onClear() {
method onInput (line 8919) | onInput(e) {
method dispose (line 8932) | dispose() {
method constructor (line 23119) | constructor(e) {
method dispose (line 23122) | dispose() {
method constructor (line 45472) | constructor(e, t) {
method getWordDefinition (line 45475) | getWordDefinition() {
method brackets (line 45478) | get brackets() {
method electricCharacter (line 45481) | get electricCharacter() {
method onEnter (line 45484) | onEnter(e, t, i, n) {
method _handleComments (line 45487) | static _handleComments(e) {
method constructor (line 58976) | constructor(e, t, i) {
method flushColor (line 58979) | flushColor() {
method onDidSaturationValueChange (line 58982) | onDidSaturationValueChange({
method onDidOpacityChange (line 58989) | onDidOpacityChange(e) {
method onDidHueChange (line 58993) | onDidHueChange(e) {
method layout (line 58998) | layout() {
method constructor (line 61409) | constructor(e, t) {
method toLiveInlineCompletion (line 61417) | toLiveInlineCompletion() {
method constructor (line 62769) | constructor() {
method run (line 62782) | run(e, t) {
method _getLinesToRemove (line 62800) | _getLinesToRemove(e) {
method constructor (line 64523) | constructor() {
method _run (line 64536) | _run(e, t) {
method resolve (line 67356) | resolve(e) {
method constructor (line 71401) | constructor() {
class o (line 5505) | class o {
method constructor (line 5506) | constructor() {
method getZoomLevel (line 5509) | getZoomLevel() {
method getTimeSinceLastZoomLevelChanged (line 5512) | getTimeSinceLastZoomLevelChanged() {
method getZoomFactor (line 5515) | getZoomFactor() {
method getPixelRatio (line 5518) | getPixelRatio() {
method constructor (line 5585) | constructor(e) {
method update (line 5588) | update() {}
method getData (line 5589) | getData() {
method constructor (line 6231) | constructor(e, t, i) {
method event (line 6238) | get event() {
method dispose (line 6241) | dispose() {
method constructor (line 12678) | constructor(e, t, i, o = 1) {
method equals (line 12681) | static equals(e, t) {
method constructor (line 15096) | constructor(e, t, i = t) {
method toLabel (line 15099) | toLabel(e, t, i) {
method constructor (line 15457) | constructor() {
method size (line 15460) | get size() {
method isEmpty (line 15463) | isEmpty() {
method clear (line 15466) | clear() {
method unshift (line 15474) | unshift(e) {
method push (line 15477) | push(e) {
method _insert (line 15480) | _insert(e, t) {
method shift (line 15496) | shift() {
method pop (line 15502) | pop() {
method _remove (line 15508) | _remove(e) {
method constructor (line 17536) | constructor() {
method update (line 17539) | update(e) {
method value (line 17542) | get value() {
method constructor (line 19749) | constructor(e, t, i) {
method dispose (line 19752) | dispose() {
method getWidth (line 19755) | getWidth() {
method getHeight (line 19758) | getHeight() {
method startObserving (line 19761) | startObserving() {
method stopObserving (line 19769) | stopObserving() {
method observe (line 19772) | observe(e) {
method measureReferenceDomElement (line 19775) | measureReferenceDomElement(e, t) {
method constructor (line 33154) | constructor(e, t, i = !1) {
method getEditOperations (line 33157) | getEditOperations(e, t) {
method computeCursorState (line 33160) | computeCursorState(e, t) {
method whitespaceVisibleColumn (line 35721) | static whitespaceVisibleColumn(e, t, i) {
method atomicPosition (line 35742) | static atomicPosition(e, t, i, s) {
method visibleColumnFromColumn (line 35802) | static visibleColumnFromColumn(e, t, i) {
method visibleColumnsByColumns (line 35823) | static visibleColumnsByColumns(e, t) {
method visibleColumnFromColumn2 (line 35845) | static visibleColumnFromColumn2(e, t, i) {
method columnFromVisibleColumn (line 35848) | static columnFromVisibleColumn(e, t, i) {
method columnFromVisibleColumn2 (line 35876) | static columnFromVisibleColumn2(e, t, i, n) {
method nextRenderTabStop (line 35883) | static nextRenderTabStop(e, t) {
method nextIndentTabStop (line 35886) | static nextIndentTabStop(e, t) {
method prevRenderTabStop (line 35889) | static prevRenderTabStop(e, t) {
method prevIndentTabStop (line 35892) | static prevIndentTabStop(e, t) {
method constructor (line 37685) | constructor(e) {
method constructor (line 37704) | constructor(e) {
method _createAsciiMap (line 37708) | static _createAsciiMap(e) {
method set (line 37713) | set(e, t) {
method get (line 37717) | get(e) {
method insert (line 37740) | static insert(e, t) {
method delete (line 37747) | static delete(e) {
method replace (line 37753) | static replace(e, t) {
method replaceMove (line 37759) | static replaceMove(e, t) {
method constructor (line 37775) | constructor(e, t, i) {
method createEmpty (line 37778) | static createEmpty(e, t) {
method equals (line 37783) | equals(e) {
method slicedEquals (line 37786) | slicedEquals(e, t, i) {
method getLineContent (line 37795) | getLineContent() {
method getCount (line 37798) | getCount() {
method getStartOffset (line 37801) | getStartOffset(e) {
method getMetadata (line 37804) | getMetadata(e) {
method getLanguageId (line 37807) | getLanguageId(e) {
method getStandardTokenType (line 37812) | getStandardTokenType(e) {
method getForeground (line 37816) | getForeground(e) {
method getClassName (line 37820) | getClassName(e) {
method getInlineStyle (line 37824) | getInlineStyle(e, t) {
method getEndOffset (line 37828) | getEndOffset(e) {
method findTokenIndexAtOffset (line 37831) | findTokenIndexAtOffset(e) {
method inflate (line 37834) | inflate() {
method sliceAndInflate (line 37837) | sliceAndInflate(e, t, i) {
method convertToEndOffset (line 37840) | static convertToEndOffset(e, t) {
method findIndexInTokensArray (line 37845) | static findIndexInTokensArray(e, t) {
method withInserted (line 37857) | withInserted(e) {
method constructor (line 37979) | constructor(e, t, i, n) {
method isEmpty (line 37982) | isEmpty() {
method isEmpty (line 37985) | static isEmpty(e) {
method containsPosition (line 37988) | containsPosition(e) {
method containsPosition (line 37991) | static containsPosition(e, t) {
method containsRange (line 37994) | containsRange(e) {
method containsRange (line 37997) | static containsRange(e, t) {
method strictContainsRange (line 38000) | strictContainsRange(e) {
method strictContainsRange (line 38003) | static strictContainsRange(e, t) {
method plusRange (line 38006) | plusRange(e) {
method plusRange (line 38009) | static plusRange(e, t) {
method intersectRanges (line 38013) | intersectRanges(e) {
method intersectRanges (line 38016) | static intersectRanges(e, t) {
method equalsRange (line 38027) | equalsRange(e) {
method equalsRange (line 38030) | static equalsRange(e, t) {
method getEndPosition (line 38033) | getEndPosition() {
method getEndPosition (line 38036) | static getEndPosition(e) {
method getStartPosition (line 38039) | getStartPosition() {
method getStartPosition (line 38042) | static getStartPosition(e) {
method toString (line 38045) | toString() {
method setEndPosition (line 38048) | setEndPosition(e, t) {
method setStartPosition (line 38051) | setStartPosition(e, t) {
method collapseToStart (line 38054) | collapseToStart() {
method collapseToStart (line 38057) | static collapseToStart(e) {
method fromPositions (line 38060) | static fromPositions(e, t = e) {
method lift (line 38063) | static lift(e) {
method isIRange (line 38066) | static isIRange(e) {
method areIntersectingOrTouching (line 38069) | static areIntersectingOrTouching(e, t) {
method areIntersecting (line 38072) | static areIntersecting(e, t) {
method compareRangesUsingStarts (line 38075) | static compareRangesUsingStarts(e, t) {
method compareRangesUsingEnds (line 38096) | static compareRangesUsingEnds(e, t) {
method spansMultipleLines (line 38099) | static spansMultipleLines(e) {
method constructor (line 38264) | constructor(e, t) {
method constructor (line 43671) | constructor(e, t, i, n, o) {
method applyInjectedText (line 43674) | static applyInjectedText(e, t) {
method fromDecorations (line 43681) | static fromDecorations(e) {
method constructor (line 44838) | constructor(e) {
method isOK (line 44853) | isOK(e) {
method constructor (line 45767) | constructor(e, t, i, n, o, s) {
method getLineContent (line 45770) | getLineContent() {
method getActualLineContentBefore (line 45773) | getActualLineContentBefore(e) {
method getTokenCount (line 45776) | getTokenCount() {
method findTokenIndexAtOffset (line 45779) | findTokenIndexAtOffset(e) {
method getStandardTokenType (line 45782) | getStandardTokenType(e) {
method constructor (line 47233) | constructor(e, t, i) {
method compare (line 47236) | static compare(e, t) {
method setColorZone (line 47239) | setColorZone(e) {
method getColorZones (line 47242) | getColorZones() {
method constructor (line 47325) | constructor(e, t, i, n) {
method _equals (line 47328) | static _equals(e, t) {
method equalsArr (line 47331) | static equalsArr(e, t) {
method extractWrapped (line 47338) | static extractWrapped(e, t, i) {
method filter (line 47348) | static filter(e, t, i, n) {
method _typeCompare (line 47363) | static _typeCompare(e, t) {
method compare (line 47367) | static compare(e, t) {
method constructor (line 47856) | constructor(e, t) {
method constructor (line 49020) | constructor(e) {
method getValue (line 49023) | getValue() {
method rawValue (line 49034) | get rawValue() {
method constructor (line 66800) | constructor() {
method appendChild (line 66803) | appendChild(e) {
method replace (line 66806) | replace(e, t) {
method children (line 66815) | get children() {
method snippet (line 66818) | get snippet() {
method toString (line 66826) | toString() {
method len (line 66829) | len() {
method constructor (line 89758) | constructor(e) {
method report (line 89761) | report(e) {
method constructor (line 91395) | constructor(e, t) {
method constructor (line 91427) | constructor(e, t) {
method toJSON (line 91430) | toJSON() {
function s (line 5524) | function s() {
method constructor (line 11516) | constructor(e) {
method wrap (line 11519) | static wrap(e) {
method toString (line 11522) | toString() {
method constructor (line 12648) | constructor() {
method add (line 12651) | add(e, t) {
method delete (line 12655) | delete(e, t) {
method forEach (line 12659) | forEach(e, t) {
method constructor (line 12686) | constructor(e, t, i, o) {
method equals (line 12689) | static equals(e, t) {
method fromRGBA (line 12692) | static fromRGBA(e) {
method _hue2rgb (line 12718) | static _hue2rgb(e, t, i) {
method toRGBA (line 12721) | static toRGBA(e) {
method constructor (line 12990) | constructor(e) {
method getElements (line 12993) | getElements() {
method constructor (line 14560) | constructor(e = "", t = !1) {
method appendText (line 14565) | appendText(e, t = 0) {
method appendMarkdown (line 14569) | appendMarkdown(e) {
method appendCodeblock (line 14572) | appendCodeblock(e, t) {
method constructor (line 18450) | constructor(e, t, i, n, o, s) {
method equals (line 18453) | equals(e) {
method withScrollDimensions (line 18456) | withScrollDimensions(e, t) {
method withScrollPosition (line 18459) | withScrollPosition(e) {
method createScrollEvent (line 18462) | createScrollEvent(e, t) {
method constructor (line 18652) | constructor(e) {
method create (line 18655) | static create(e = !0) {
method stop (line 18658) | stop() {
method elapsed (line 18661) | elapsed() {
method _now (line 18664) | _now() {
method constructor (line 20087) | constructor(e) {
method _getColumnSelectResult (line 20090) | _getColumnSelectResult(e, t, i, n) {
method constructor (line 33166) | constructor(e, t) {
method getEditOperations (line 33169) | getEditOperations(e, t) {
method computeCursorState (line 33172) | computeCursorState(e, t) {
method constructor (line 37722) | constructor() {
method add (line 37725) | add(e) {
method has (line 37728) | has(e) {
method constructor (line 37886) | constructor(e, t, i, n) {
method equals (line 37893) | equals(e) {
method getCount (line 37896) | getCount() {
method getForeground (line 37899) | getForeground(e) {
method getEndOffset (line 37902) | getEndOffset(e) {
method getClassName (line 37906) | getClassName(e) {
method getInlineStyle (line 37909) | getInlineStyle(e, t) {
method findTokenIndexAtOffset (line 37912) | findTokenIndexAtOffset(e) {
method constructor (line 38112) | constructor(e, t, i, n) {
method toString (line 38115) | toString() {
method equalsSelection (line 38118) | equalsSelection(e) {
method selectionsEqual (line 38121) | static selectionsEqual(e, t) {
method getDirection (line 38124) | getDirection() {
method setEndPosition (line 38127) | setEndPosition(e, t) {
method getPosition (line 38130) | getPosition() {
method setStartPosition (line 38133) | setStartPosition(e, t) {
method fromPositions (line 38136) | static fromPositions(e, t = e) {
method liftSelection (line 38139) | static liftSelection(e) {
method selectionsArrEqual (line 38142) | static selectionsArrEqual(e, t) {
method isISelection (line 38150) | static isISelection(e) {
method createWithDirection (line 38153) | static createWithDirection(e, t, i, n, o) {
method constructor (line 38269) | constructor(e, t) {
method constructor (line 43688) | constructor(e, t, i) {
method constructor (line 44858) | constructor(e) {
method constructor (line 47247) | constructor(e) {
method getId2Color (line 47250) | getId2Color() {
method setZones (line 47253) | setZones(e) {
method setLineHeight (line 47256) | setLineHeight(e) {
method setPixelRatio (line 47259) | setPixelRatio(e) {
method getDOMWidth (line 47262) | getDOMWidth() {
method getCanvasWidth (line 47265) | getCanvasWidth() {
method setDOMWidth (line 47268) | setDOMWidth(e) {
method getDOMHeight (line 47271) | getDOMHeight() {
method getCanvasHeight (line 47274) | getCanvasHeight() {
method setDOMHeight (line 47277) | setDOMHeight(e) {
method getOuterHeight (line 47280) | getOuterHeight() {
method setOuterHeight (line 47283) | setOuterHeight(e) {
method resolveColorZones (line 47286) | resolveColorZones() {
method constructor (line 47375) | constructor(e, t, i, n) {
method constructor (line 47861) | constructor(e) {
method insertValues (line 47864) | insertValues(e, t) {
method changeValue (line 47871) | changeValue(e, t) {
method removeValues (line 47874) | removeValues(e, t) {
method getTotalSum (line 47882) | getTotalSum() {
method getPrefixSum (line 47885) | getPrefixSum(e) {
method _getPrefixSum (line 47888) | _getPrefixSum(e) {
method getIndexOf (line 47895) | getIndexOf(e) {
method _handleEolEdits (line 56190) | static _handleEolEdits(e, t) {
method _isFullModelReplaceEdit (line 56195) | static _isFullModelReplaceEdit(e, t) {
method execute (line 56201) | static execute(e, t, i) {
method constructor (line 66834) | constructor(e) {
method toString (line 66837) | toString() {
method len (line 66840) | len() {
method clone (line 66843) | clone() {
method constructor (line 91400) | constructor() {
method nextOrder (line 91403) | nextOrder() {
function r (line 5528) | function r() {
method getSameOriginWindowChain (line 6546) | static getSameOriginWindowChain() {
method hasDifferentOriginAncestor (line 6562) | static hasDifferentOriginAncestor() {
method getPositionOfChildWindowRelativeToAncestorWindow (line 6565) | static getPositionOfChildWindowRelativeToAncestorWindow(e, t) {
method constructor (line 6655) | constructor(e) {
method preventDefault (line 6660) | preventDefault() {
method stopPropagation (line 6663) | stopPropagation() {
method constructor (line 7252) | constructor(e, t) {
method element (line 7255) | get element() {
method set (line 7258) | set(e, t = [], i = "", n) {
method render (line 7261) | render() {
method escapeNewLines (line 7280) | static escapeNewLines(e, t) {
method constructor (line 11579) | constructor() {
method cancel (line 11582) | cancel() {
method isCancellationRequested (line 11585) | get isCancellationRequested() {
method onCancellationRequested (line 11588) | get onCancellationRequested() {
method dispose (line 11591) | dispose() {
method constructor (line 12739) | constructor(e, t, i, o) {
method equals (line 12742) | static equals(e, t) {
method fromRGBA (line 12745) | static fromRGBA(e) {
method toRGBA (line 12755) | static toRGBA(e) {
method constructor (line 15253) | constructor(e, t, i, n, o) {
method equals (line 15256) | equals(e) {
method isModifierKey (line 15259) | isModifierKey() {
method toChord (line 15262) | toChord() {
method isDuplicateModifierCase (line 15265) | isDuplicateModifierCase() {
method constructor (line 15529) | constructor() {
method reset (line 15532) | reset(e) {
method next (line 15535) | next() {
method hasNext (line 15538) | hasNext() {
method cmp (line 15541) | cmp(e) {
method value (line 15544) | value() {
method constructor (line 18493) | constructor(e, t) {
method dispose (line 18496) | dispose() {
method setSmoothScrollDuration (line 18499) | setSmoothScrollDuration(e) {
method validateScrollPosition (line 18502) | validateScrollPosition(e) {
method getScrollDimensions (line 18505) | getScrollDimensions() {
method setScrollDimensions (line 18508) | setScrollDimensions(e, t) {
method getFutureScrollPosition (line 18512) | getFutureScrollPosition() {
method getCurrentScrollPosition (line 18515) | getCurrentScrollPosition() {
method setScrollPositionNow (line 18518) | setScrollPositionNow(e) {
method setScrollPositionSmooth (line 18522) | setScrollPositionSmooth(e, t) {
method _performSmoothScrolling (line 18541) | _performSmoothScrolling() {
method _setState (line 18549) | _setState(e, t) {
method constructor (line 33178) | constructor(e, t, i = !1) {
method getEditOperations (line 33181) | getEditOperations(e, t) {
method computeCursorState (line 33184) | computeCursorState(e, t) {
method constructor (line 35668) | constructor(e) {
method createFromValidatedSettings (line 35671) | static createFromValidatedSettings(e, t, i, n) {
method _create (line 35680) | static _create(e, t, i, n, a, l, c, d, h) {
method getId (line 35694) | getId() {
method getMassagedFontFamily (line 35697) | getMassagedFontFamily(e) {
method _wrapInQuotes (line 35701) | static _wrapInQuotes(e) {
method constructor (line 38641) | constructor(e, t, i, n) {
method oldLength (line 38644) | get oldLength() {
method oldEnd (line 38647) | get oldEnd() {
method newLength (line 38650) | get newLength() {
method newEnd (line 38653) | get newEnd() {
method toString (line 38656) | toString() {
method _writeStringSize (line 38659) | static _writeStringSize(e) {
method _writeString (line 38662) | static _writeString(e, t, i) {
method _readString (line 38668) | static _readString(e, t) {
method writeSize (line 38672) | writeSize() {
method write (line 38675) | write(e, t) {
method read (line 38678) | static read(e, t, i) {
method constructor (line 43693) | constructor(e, t) {
method constructor (line 45801) | constructor(e, t, i, n, o, s) {
method isOpen (line 45804) | isOpen(e) {
method isClose (line 45807) | isClose(e) {
method _toSet (line 45810) | static _toSet(e) {
method constructor (line 47380) | constructor() {
method _metadata (line 47383) | static _metadata(e) {
method consumeLowerThan (line 47388) | consumeLowerThan(e, t, i) {
method insert (line 47396) | insert(e, t, i) {
method constructor (line 47447) | constructor(e, t, i) {
method isWhitespace (line 47450) | isWhitespace() {
method isPseudoAfter (line 47453) | isPseudoAfter() {
method constructor (line 47928) | constructor(e, t, i, n) {
method constructor (line 55665) | constructor() {
method run (line 55673) | run(e, t) {
method constructor (line 84552) | constructor() {
method run (line 84560) | run(e, t) {
method constructor (line 91409) | constructor() {
method nextOrder (line 91412) | nextOrder() {
function a (line 5532) | function a(e) {
method constructor (line 6409) | constructor(e) {
method eos (line 6412) | eos() {
method next (line 6415) | next() {
method peek (line 6419) | peek() {
method advance (line 6422) | advance() {
method constructor (line 6668) | constructor(e, t = 0, i = 0) {
method preventDefault (line 6687) | preventDefault() {
method stopPropagation (line 6690) | stopPropagation() {
method constructor (line 10860) | constructor(e, t = "", i = "", o = !0, s) {
method id (line 10863) | get id() {
method label (line 10866) | get label() {
method label (line 10869) | set label(e) {
method _setLabel (line 10872) | _setLabel(e) {
method tooltip (line 10877) | get tooltip() {
method tooltip (line 10880) | set tooltip(e) {
method _setTooltip (line 10883) | _setTooltip(e) {
method class (line 10888) | get class() {
method class (line 10891) | set class(e) {
method _setClass (line 10894) | _setClass(e) {
method enabled (line 10899) | get enabled() {
method enabled (line 10902) | set enabled(e) {
method _setEnabled (line 10905) | _setEnabled(e) {
method checked (line 10910) | get checked() {
method checked (line 10913) | set checked(e) {
method _setChecked (line 10916) | _setChecked(e) {
method run (line 10921) | run(e, t) {
method constructor (line 11596) | constructor(e) {
method token (line 11599) | get token() {
method cancel (line 11602) | cancel() {
method dispose (line 11605) | dispose(e = !1) {
method constructor (line 12768) | constructor(e) {
method fromHex (line 12777) | static fromHex(e) {
method hsla (line 12780) | get hsla() {
method hsva (line 12783) | get hsva() {
method equals (line 12786) | equals(e) {
method getRelativeLuminance (line 12789) | getRelativeLuminance() {
method _relativeLuminanceForComponent (line 12792) | static _relativeLuminanceForComponent(e) {
method isLighter (line 12796) | isLighter() {
method isLighterThan (line 12799) | isLighterThan(e) {
method isDarkerThan (line 12802) | isDarkerThan(e) {
method lighten (line 12805) | lighten(e) {
method darken (line 12808) | darken(e) {
method transparent (line 12811) | transparent(e) {
method isTransparent (line 12820) | isTransparent() {
method isOpaque (line 12823) | isOpaque() {
method opposite (line 12826) | opposite() {
method toString (line 12829) | toString() {
method getLighterColor (line 12832) | static getLighterColor(e, t, i) {
method getDarkerColor (line 12839) | static getDarkerColor(e, t, i) {
method Assert (line 13005) | static Assert(e, t) {
method constructor (line 15270) | constructor(e) {
method constructor (line 15549) | constructor(e = !0) {
method reset (line 15552) | reset(e) {
method hasNext (line 15555) | hasNext() {
method next (line 15558) | next() {
method cmp (line 15569) | cmp(e) {
method value (line 15572) | value() {
method asBrowserUri (line 17509) | asBrowserUri(e, t) {
method toUri (line 17518) | toUri(e, t) {
method constructor (line 18555) | constructor(e, t, i) {
method constructor (line 21437) | constructor(e, t, i, n, o) {
method toString (line 21440) | toString() {
method readFromTextArea (line 21443) | static readFromTextArea(e) {
method collapseSelection (line 21446) | collapseSelection() {
method writeToTextArea (line 21449) | writeToTextArea(e, t, i) {
method deduceEditorPosition (line 21452) | deduceEditorPosition(e) {
method _finishDeduceEditorPosition (line 21466) | _finishDeduceEditorPosition(e, t, i) {
method selectedText (line 21472) | static selectedText(e) {
method deduceInput (line 21475) | static deduceInput(e, t, i) {
method deduceAndroidCompositionInput (line 21527) | static deduceAndroidCompositionInput(e, t) {
method constructor (line 22804) | constructor(e) {
method convert (line 22807) | static convert(e) {
method constructor (line 33190) | constructor(e, t, i, n, o = !1) {
method getEditOperations (line 33193) | getEditOperations(e, t) {
method computeCursorState (line 33196) | computeCursorState(e, t) {
method constructor (line 33744) | constructor(e) {
method hasChanged (line 33747) | hasChanged(e) {
method constructor (line 35706) | constructor(e, t) {
method equals (line 35709) | equals(e) {
method constructor (line 38338) | constructor(e) {
method equals (line 38341) | equals(e) {
method createChangeEvent (line 38344) | createChangeEvent(e) {
method constructor (line 43698) | constructor(e, t, i, n) {
method constructor (line 45817) | constructor(e, t) {
method normalize (line 47407) | static normalize(e, t) {
method constructor (line 47458) | constructor(e, t) {
method equals (line 47461) | equals(e) {
method constructor (line 47933) | constructor(e, t) {
method toString (line 47936) | toString() {
method toPosition (line 47939) | toPosition(e, t) {
method constructor (line 48482) | constructor(e, t) {
method getEditOperations (line 48485) | getEditOperations(e, t) {
method computeCursorState (line 48501) | computeCursorState(e, t) {
method constructor (line 49959) | constructor(e, t, i) {
method fromUser (line 49962) | static fromUser(e, t) {
method getApplyFromUser (line 49965) | static getApplyFromUser(e, t) {
method getKindFromUser (line 49977) | static getKindFromUser(e, t) {
method getPreferredUser (line 49980) | static getPreferredUser(e) {
method constructor (line 50664) | constructor(e) {
method dispose (line 50667) | dispose() {
method onMouseDown (line 50670) | onMouseDown(e) {
method constructor (line 51330) | constructor(e) {
method equals (line 51333) | equals(e) {
method constructor (line 55678) | constructor() {
method run (line 55686) | run(e, t) {
method constructor (line 57706) | constructor(e, t) {
method provideSelectionRanges (line 66214) | provideSelectionRanges(e, t) {
method _bracketsRightYield (line 66226) | static _bracketsRightYield(e, t, i, o, s) {
method _bracketsLeftYield (line 66261) | static _bracketsLeftYield(e, t, i, n, o, r) {
method _addBracketLeading (line 66306) | static _addBracketLeading(e, t, i) {
method constructor (line 66849) | constructor(e) {
method compareByIndex (line 66852) | static compareByIndex(e, t) {
method isFinalTabstop (line 66855) | get isFinalTabstop() {
method choice (line 66858) | get choice() {
method clone (line 66861) | clone() {
method constructor (line 70614) | constructor() {
method run (line 70633) | run(e, t) {
method constructor (line 83180) | constructor(e) {
method update (line 83183) | update() {
method dispose (line 83187) | dispose() {
method constructor (line 83873) | constructor() {
method provideWithoutTextEditor (line 83878) | provideWithoutTextEditor(e) {
method provideWithTextEditor (line 83884) | provideWithTextEditor(e, t, i) {
method toRange (line 83920) | toRange(e = 1, t = 1) {
method parsePosition (line 83928) | parsePosition(e, t) {
method getPickLabel (line 83936) | getPickLabel(e, t, i) {
method isValidLineNumber (line 83945) | isValidLineNumber(e, t) {
method isValidColumn (line 83948) | isValidColumn(e, t, i) {
method lineCount (line 83958) | lineCount(e) {
method constructor (line 86420) | constructor() {
method bindToCurrentPlatform (line 86423) | static bindToCurrentPlatform(e) {
method registerKeybindingRule (line 86431) | registerKeybindingRule(e) {
method registerCommandAndKeybindingRule (line 86444) | registerCommandAndKeybindingRule(e) {
method _mightProduceChar (line 86447) | static _mightProduceChar(e) {
method _assertNoCtrlAlt (line 86450) | _assertNoCtrlAlt(e, t) {
method _registerDefaultKeybinding (line 86453) | _registerDefaultKeybinding(e, t, i, n, s, r) {
method getDefaultKeybindings (line 86465) | getDefaultKeybindings() {
function l (line 5536) | function l() {
method constructor (line 7218) | constructor(e, t) {
method setCount (line 7221) | setCount(e) {
method setTitleFormat (line 7224) | setTitleFormat(e) {
method render (line 7227) | render() {
method style (line 7230) | style(e) {
method applyStyles (line 7233) | applyStyles() {
method constructor (line 8657) | constructor(e) {
method splice (line 8660) | splice(e, t, i) {
method onclick (line 10788) | onclick(e, t) {
method onmousedown (line 10791) | onmousedown(e, t) {
method onmouseover (line 10794) | onmouseover(e, t) {
method onnonbubblingmouseout (line 10797) | onnonbubblingmouseout(e, t) {
method onkeydown (line 10800) | onkeydown(e, t) {
method onkeyup (line 10803) | onkeyup(e, t) {
method oninput (line 10806) | oninput(e, t) {
method onblur (line 10809) | onblur(e, t) {
method onfocus (line 10812) | onfocus(e, t) {
method ignoreGesture (line 10815) | ignoreGesture(e) {
method constructor (line 10928) | constructor() {
method run (line 10931) | run(e, t) {
method runAction (line 10949) | runAction(e, t) {
method constructor (line 11648) | constructor(e, t, i) {
method classNames (line 11651) | get classNames() {
method classNamesArray (line 11654) | get classNamesArray() {
method cssSelector (line 11657) | get cssSelector() {
method Copy (line 13010) | static Copy(e, t, i, n, o) {
method Copy2 (line 13013) | static Copy2(e, t, i, n, o) {
method constructor (line 13560) | constructor(e) {
method start (line 13563) | start(e) {
method stop (line 13566) | stop() {
method constructor (line 15276) | constructor(e, t, i, n, o, s) {
method constructor (line 15577) | constructor(e = !0, t = !0) {
method reset (line 15580) | reset(e) {
method hasNext (line 15583) | hasNext() {
method next (line 15586) | next() {
method cmp (line 15598) | cmp(e) {
method value (line 15601) | value() {
method constructor (line 19515) | constructor(e, t) {
method fulfill (line 19518) | fulfill(e) {
method constructor (line 20120) | constructor(e) {
method _getColumnSelectResult (line 20123) | _getColumnSelectResult(e, t, i, n) {
method _getPageOfLine (line 21558) | static _getPageOfLine(e, t) {
method _getRangeForPage (line 21561) | static _getRangeForPage(e, t) {
method fromEditorSelection (line 21567) | static fromEditorSelection(e, t, i, n, r) {
method constructor (line 22819) | constructor(e, t, i, n) {
method constructor (line 33202) | constructor(e, t, i, n = !1) {
method getEditOperations (line 33205) | getEditOperations(e, t) {
method computeCursorState (line 33208) | computeCursorState(e, t) {
method constructor (line 33752) | constructor() {
method _read (line 33755) | _read(e) {
method get (line 33758) | get(e) {
method _write (line 33761) | _write(e, t) {
method constructor (line 36653) | constructor(e, t, i) {
method constructor (line 38354) | constructor(e, t) {
method constructor (line 38695) | constructor(e, t) {
method compress (line 38698) | compress() {
method _acceptCurr (line 38744) | _acceptCurr(e) {
method _getCurr (line 38747) | _getCurr(e) {
method _acceptPrev (line 38750) | _acceptPrev(e) {
method _getPrev (line 38753) | _getPrev(e) {
method _rebaseCurr (line 38756) | static _rebaseCurr(e, t) {
method _rebasePrev (line 38759) | static _rebasePrev(e, t) {
method _splitPrev (line 38762) | static _splitPrev(e, t) {
method _splitCurr (line 38767) | static _splitCurr(e, t) {
method _merge (line 38772) | static _merge(e) {
method _removeNoOps (line 38783) | static _removeNoOps(e) {
method constructor (line 43703) | constructor() {
method constructor (line 43766) | constructor(e, t, i, n) {
method parseSearchRequest (line 43769) | parseSearchRequest() {
method constructor (line 47466) | constructor(e, t, i, n, o, r, a, l, c, d, h, u, g, p, f, m, v, _, b) {
method sameSelection (line 47470) | sameSelection(e) {
method equals (line 47478) | equals(e) {
method constructor (line 47945) | constructor(e, t, i, n, o) {
method getInputOffsetOfOutputPosition (line 47948) | getInputOffsetOfOutputPosition(e, t) {
method getOutputPositionOfInputOffset (line 47954) | getOutputPositionOfInputOffset(e, t = 2) {
method getOutputPositionOfOffsetInUnwrappedLine (line 47960) | getOutputPositionOfOffsetInUnwrappedLine(e, t = 2) {
method outputPositionToOffsetInUnwrappedLine (line 47982) | outputPositionToOffsetInUnwrappedLine(e, t) {
method normalizeOffsetAroundInjections (line 47986) | normalizeOffsetAroundInjections(e, t) {
method getInjectedText (line 48001) | getInjectedText(e, t) {
method getInjectedTextAtOffset (line 48008) | getInjectedTextAtOffset(e) {
method constructor (line 51342) | constructor(e, t, i) {
method constructor (line 55691) | constructor() {
method run (line 55699) | run(e, t) {
method constructor (line 57711) | constructor(e, t) {
method constructor (line 66867) | constructor() {
method appendChild (line 66870) | appendChild(e) {
method toString (line 66873) | toString() {
method len (line 66876) | len() {
method clone (line 66879) | clone() {
method constructor (line 83193) | constructor(e) {
method dispose (line 83200) | dispose() {
method getId (line 83203) | getId() {
method getDomNode (line 83206) | getDomNode() {
method getPosition (line 83209) | getPosition() {
method constructor (line 89569) | constructor() {
method setLevel (line 89572) | setLevel(e) {
method getLevel (line 89575) | getLevel() {
function c (line 5540) | function c() {
method constructor (line 6487) | constructor() {
method dispose (line 6490) | dispose() {
method stopMonitoring (line 6493) | stopMonitoring(e, t) {
method isMonitoring (line 6499) | isMonitoring() {
method startMonitoring (line 6502) | startMonitoring(e, t, i, r, l) {
method constructor (line 6598) | constructor(e) {
method preventDefault (line 6621) | preventDefault() {
method stopPropagation (line 6624) | stopPropagation() {
method toKeybinding (line 6627) | toKeybinding() {
method equals (line 6630) | equals(e) {
method _computeKeybinding (line 6633) | _computeKeybinding() {
method _computeRuntimeKeybinding (line 6639) | _computeRuntimeKeybinding() {
method constructor (line 6717) | constructor() {
method addTarget (line 6724) | static addTarget(e) {
method ignoreTarget (line 6731) | static ignoreTarget(e) {
method isTouchDevice (line 6738) | static isTouchDevice() {
method dispose (line 6741) | dispose() {
method onTouchStart (line 6744) | onTouchStart(e) {
method onTouchEnd (line 6764) | onTouchEnd(e) {
method newGestureEvent (line 6794) | newGestureEvent(e, t) {
method dispatchEvent (line 6798) | dispatchEvent(e) {
method inertia (line 6810) | inertia(e, t, i, s, r, a, l, d) {
method onTouchMove (line 6822) | onTouchMove(e) {
method constructor (line 10956) | constructor(e) {
method constructor (line 13018) | constructor() {
method MarkNextChange (line 13021) | MarkNextChange() {
method AddOriginalElement (line 13024) | AddOriginalElement(e, t) {
method AddModifiedElement (line 13027) | AddModifiedElement(e, t) {
method getChanges (line 13030) | getChanges() {
method getReverseChanges (line 13033) | getReverseChanges() {
method constructor (line 13575) | constructor(e) {
method event (line 13579) | get event() {
method fire (line 13596) | fire(e) {
method dispose (line 13612) | dispose() {
method constructor (line 15606) | constructor(e) {
method reset (line 15609) | reset(e) {
method next (line 15612) | next() {
method hasNext (line 15615) | hasNext() {
method cmp (line 15618) | cmp(e) {
method value (line 15626) | value() {
method constructor (line 18569) | constructor(e, t, i, n) {
method _initAnimations (line 18572) | _initAnimations() {
method _initAnimation (line 18575) | _initAnimation(e, t, i) {
method dispose (line 18586) | dispose() {
method acceptScrollDimensions (line 18589) | acceptScrollDimensions(e) {
method tick (line 18592) | tick() {
method _tick (line 18595) | _tick(e) {
method combine (line 18604) | combine(e, t, i) {
method start (line 18607) | static start(e, t, i) {
method constructor (line 19523) | constructor(e, t) {
method read (line 19526) | read() {
method _createDomElements (line 19529) | _createDomElements() {
method _render (line 19548) | static _render(e, t) {
method _readFromDomElements (line 19559) | _readFromDomElements() {
method constructor (line 22824) | constructor(e, t, i, n) {
method constructor (line 33766) | constructor() {
method deleteRight (line 36063) | static deleteRight(e, t, i, n) {
method isAutoClosingPairDelete (line 36078) | static isAutoClosingPairDelete(e, t, i, n, o, r, a) {
method _runAutoClosingPairDelete (line 36111) | static _runAutoClosingPairDelete(e, t, i) {
method deleteLeft (line 36120) | static deleteLeft(e, t, i, n, s) {
method getDeleteRange (line 36130) | static getDeleteRange(e, t, i) {
method getPositionAfterDeleteLeft (line 36146) | static getPositionAfterDeleteLeft(e, t) {
method cut (line 36157) | static cut(e, t, i) {
method leftPosition (line 36658) | static leftPosition(e, t) {
method leftPositionAtomicSoftTabs (line 36666) | static leftPositionAtomicSoftTabs(e, t, i) {
method left (line 36675) | static left(e, t, i) {
method moveLeft (line 36679) | static moveLeft(e, t, i, n, o) {
method clipPositionColumn (line 36690) | static clipPositionColumn(e, t) {
method clipRange (line 36693) | static clipRange(e, t, i) {
method rightPosition (line 36696) | static rightPosition(e, t, i) {
method rightPositionAtomicSoftTabs (line 36699) | static rightPositionAtomicSoftTabs(e, t, i, n, s) {
method right (line 36707) | static right(e, t, i) {
method moveRight (line 36711) | static moveRight(e, t, i, n, o) {
method vertical (line 36722) | static vertical(e, t, i, o, s, r, a) {
method down (line 36730) | static down(e, t, i, n, o, s, r) {
method moveDown (line 36733) | static moveDown(e, t, i, n, o) {
method translateDown (line 36739) | static translateDown(e, t, i) {
method up (line 36745) | static up(e, t, i, n, o, s, r) {
method moveUp (line 36748) | static moveUp(e, t, i, n, o) {
method translateUp (line 36754) | static translateUp(e, t, i) {
method _isBlankLine (line 36760) | static _isBlankLine(e, t) {
method moveToPrevBlankLine (line 36763) | static moveToPrevBlankLine(e, t, i, n) {
method moveToNextBlankLine (line 36769) | static moveToNextBlankLine(e, t, i, n) {
method moveToBeginningOfLine (line 36776) | static moveToBeginningOfLine(e, t, i, n) {
method moveToEndOfLine (line 36782) | static moveToEndOfLine(e, t, i, n, o) {
method moveToBeginningOfBuffer (line 36787) | static moveToBeginningOfBuffer(e, t, i, n) {
method moveToEndOfBuffer (line 36790) | static moveToEndOfBuffer(e, t, i, n) {
method constructor (line 36810) | constructor(e, t, i) {
method getEditOperations (line 36813) | getEditOperations(e, t) {
method computeCursorState (line 36816) | computeCursorState(e, t) {
method _createWord (line 37375) | static _createWord(e, t, i, n, o) {
method _findPreviousWordOnLine (line 37383) | static _findPreviousWordOnLine(e, t, i) {
method _doFindPreviousWordOnLine (line 37387) | static _doFindPreviousWordOnLine(e, t, i) {
method _findEndOfWord (line 37402) | static _findEndOfWord(e, t, i, n) {
method _findNextWordOnLine (line 37413) | static _findNextWordOnLine(e, t, i) {
method _doFindNextWordOnLine (line 37417) | static _doFindNextWordOnLine(e, t, i) {
method _findStartOfWord (line 37433) | static _findStartOfWord(e, t, i, n) {
method moveWordLeft (line 37443) | static moveWordLeft(e, t, i, n) {
method _moveWordPartLeft (line 37456) | static _moveWordPartLeft(e, t) {
method moveWordRight (line 37473) | static moveWordRight(e, t, i, n) {
method _moveWordPartRight (line 37486) | static _moveWordPartRight(e, t) {
method _deleteWordLeftWhitespace (line 37503) | static _deleteWordLeftWhitespace(e, t) {
method deleteWordLeft (line 37509) | static deleteWordLeft(e, t) {
method deleteInsideWord (line 37530) | static deleteInsideWord(e, t, i) {
method _charAtIsWhitespace (line 37536) | static _charAtIsWhitespace(e, t) {
method _deleteInsideWordWhitespace (line 37540) | static _deleteInsideWordWhitespace(e, t) {
method _deleteInsideWordDetermineDeleteRange (line 37552) | static _deleteInsideWordDetermineDeleteRange(e, t, i) {
method _deleteWordPartLeft (line 37572) | static _deleteWordPartLeft(e, t) {
method _findFirstNonWhitespaceChar (line 37578) | static _findFirstNonWhitespaceChar(e, t) {
method _deleteWordRightWhitespace (line 37586) | static _deleteWordRightWhitespace(e, t) {
method deleteWordRight (line 37592) | static deleteWordRight(e, t) {
method _deleteWordPartRight (line 37611) | static _deleteWordPartRight(e, t) {
method _createWordAtPosition (line 37617) | static _createWordAtPosition(e, t, i) {
method getWordAtPosition (line 37625) | static getWordAtPosition(e, t, i) {
method word (line 37632) | static word(e, t, i, n, s) {
method constructor (line 38361) | constructor(e, t, i) {
method constructor (line 43708) | constructor(e, t, i, n) {
method containsEvent (line 43711) | containsEvent(e) {
method merge (line 43717) | static merge(e, t) {
method constructor (line 43801) | constructor(e, t, i) {
method getLanguageId (line 44674) | static getLanguageId(e) {
method getTokenType (line 44677) | static getTokenType(e) {
method getFontStyle (line 44680) | static getFontStyle(e) {
method getForeground (line 44683) | static getForeground(e) {
method getBackground (line 44686) | static getBackground(e) {
method getClassNameFromMetadata (line 44689) | static getClassNameFromMetadata(e) {
method getInlineStyleFromMetadata (line 44694) | static getInlineStyleFromMetadata(e, t) {
method constructor (line 44882) | constructor(e) {
method getAutoClosingPairs (line 44895) | getAutoClosingPairs() {
method getAutoCloseBeforeSet (line 44898) | getAutoCloseBeforeSet() {
method shouldAutoClosePair (line 44901) | static shouldAutoClosePair(e, t, i) {
method getSurroundingPairs (line 44907) | getSurroundingPairs() {
method getColorizedBrackets (line 44910) | getColorizedBrackets() {
method constructor (line 47483) | constructor(e, t) {
method constructor (line 48029) | constructor(e, t) {
method constructor (line 48507) | constructor(e, t) {
method run (line 48510) | run(e, t) {
method constructor (line 48547) | constructor() {
method run (line 48563) | run(e, t) {
method constructor (line 51347) | constructor(e) {
method get (line 51360) | static get(e) {
method cursorUndo (line 51363) | cursorUndo() {
method cursorRedo (line 51366) | cursorRedo() {
method _applyState (line 51369) | _applyState(e) {
method constructor (line 57716) | constructor(e, t, i, n) {
method equals (line 57719) | equals(e) {
method constructor (line 66885) | constructor() {
method resolve (line 66888) | resolve(e) {
method _replace (line 66896) | _replace(e) {
method toString (line 66905) | toString() {
method clone (line 66908) | clone() {
method constructor (line 71616) | constructor() {
method _delete (line 71632) | _delete(e, t) {
method constructor (line 84614) | constructor(e, t) {
method element (line 84629) | get element() {
method show (line 84632) | show() {
method hide (line 84635) | hide() {
method dispose (line 84638) | dispose() {
method has (line 85470) | static has(e) {
method equals (line 85473) | static equals(e, t) {
method regex (line 85476) | static regex(e, t) {
method not (line 85479) | static not(e) {
method and (line 85482) | static and(...e) {
method or (line 85485) | static or(...e) {
method deserialize (line 85488) | static deserialize(e, t = !1) {
method _deserializeOrExpression (line 85491) | static _deserializeOrExpression(e, t) {
method _deserializeAndExpression (line 85495) | static _deserializeAndExpression(e, t) {
method _deserializeOne (line 85499) | static _deserializeOne(e, t) {
method _deserializeValue (line 85534) | static _deserializeValue(e, t) {
method _deserializeRegexValue (line 85540) | static _deserializeRegexValue(e, t) {
method constructor (line 86499) | constructor(e, t) {
method templateId (line 86502) | get templateId() {
method renderTemplate (line 86505) | renderTemplate(e) {
method renderElement (line 86511) | renderElement(e, t, i, n) {
method disposeTemplate (line 86521) | disposeTemplate(e) {
method constructor (line 89580) | constructor(e = a) {
method trace (line 89583) | trace(e, ...t) {
method debug (line 89586) | debug(e, ...t) {
method info (line 89589) | info(e, ...t) {
method error (line 89592) | error(e, ...t) {
method dispose (line 89595) | dispose() {}
method constructor (line 89873) | constructor(e, t = Object.create(null)) {
method registerListeners (line 89876) | registerListeners() {
method onDidChangeItemsExternal (line 89879) | onDidChangeItemsExternal(e) {
method accept (line 89883) | accept(e, t) {
method get (line 89892) | get(e, t) {
method getBoolean (line 89896) | getBoolean(e, t) {
method getNumber (line 89900) | getNumber(e, t) {
method set (line 89904) | set(e, t) {
method delete (line 89912) | delete(e) {
method hasPending (line 89918) | get hasPending() {
method flushPending (line 89921) | flushPending() {
method dispose (line 89935) | dispose() {
class o (line 5584) | class o {
method constructor (line 5506) | constructor() {
method getZoomLevel (line 5509) | getZoomLevel() {
method getTimeSinceLastZoomLevelChanged (line 5512) | getTimeSinceLastZoomLevelChanged() {
method getZoomFactor (line 5515) | getZoomFactor() {
method getPixelRatio (line 5518) | getPixelRatio() {
method constructor (line 5585) | constructor(e) {
method update (line 5588) | update() {}
method getData (line 5589) | getData() {
method constructor (line 6231) | constructor(e, t, i) {
method event (line 6238) | get event() {
Copy disabled (too large)
Download .json
Condensed preview — 81 files, each showing path, character count, and a content snippet. Download the .json file for the full structured content (11,575K chars).
[
{
"path": ".github/FUNDING.yml",
"chars": 62,
"preview": "# These are supported funding model platforms\n\ngithub: Z-Siqi\n"
},
{
"path": ".github/ISSUE_TEMPLATE/issues-template-and-rules.yaml",
"chars": 594,
"preview": "name: Issues Release Rule\ndescription: 通过这个模板发布你的问题\nbody:\n - type: markdown\n attributes:\n value: |\n 请遵循模"
},
{
"path": ".github/workflows/CloseStaleIssues.yml",
"chars": 405,
"preview": "name: \"Close Stale Issues\"\n\non:\n schedule:\n - cron: \"0 0 * * *\"\n\njobs:\n stale:\n runs-on: ubuntu-latest\n steps"
},
{
"path": ".gitignore",
"chars": 17,
"preview": "/.vs\n/app/output\n"
},
{
"path": "CFW/README.md",
"chars": 194,
"preview": "### 众所周知 Clash for Windows 原版仓库已经删库跑路,~这个库将再无活动的必要,因此该仓库将被存档~\n\n**考虑到因为原版的online资料都已经缺失,部分维护仍然是必要的**\n\n***\n\n**以下是一些原版包的存档*"
},
{
"path": "README.md",
"chars": 4449,
"preview": "# Clash for Windows Chinese<img src=\"https://github.com/Z-Siqi/Clash-for-Windows_Chinese/blob/main/image/image_clash.png"
},
{
"path": "app/README.md",
"chars": 179,
"preview": "### Guide\n* Extract these files in ONE folder\n* Run `build_default_.bat` to quick generate runnable software (Windows x6"
},
{
"path": "app/build_default.bat",
"chars": 111,
"preview": "@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",
"chars": 3361,
"preview": "# Requires PowerShell 3.0+\n# Script Directory\n$scriptDir = $PSScriptRoot\n$staticDir = Join-Path $scriptDir 'clash_co"
},
{
"path": "app/build_linux_x64.ps1",
"chars": 3355,
"preview": "# Requires PowerShell 3.0+\n# Script Directory\n$scriptDir = $PSScriptRoot\n$staticDir = Join-Path $scriptDir 'clash_co"
},
{
"path": "app/build_win32-ia32.ps1",
"chars": 3404,
"preview": "# Requires PowerShell 3.0+\n# Script Directory\n$scriptDir = $PSScriptRoot\n$staticDir = Join-Path $scriptDir 'clash_co"
},
{
"path": "app/build_win32_arm64.ps1",
"chars": 3407,
"preview": "# Requires PowerShell 3.0+\n# Script Directory\n$scriptDir = $PSScriptRoot\n$staticDir = Join-Path $scriptDir 'clash_co"
},
{
"path": "app/build_win_x64.ps1",
"chars": 3729,
"preview": "# Requires PowerShell 3.0+\n# Script Directory\n$scriptDir = $PSScriptRoot\n$staticDir = Join-Path $scriptDir 'clash_co"
},
{
"path": "app/clash_core/linux-arm64/static/files/linux/arm64/clash-linux.sign",
"chars": 88,
"preview": "U2KIAkV6aF08JlUXVPChLl6W2d0/78V16zzz7Mz5bH2nbYfNADFCVK10wB8/LDGz9PrIkSNaceKGbdn7zdVhyQ=="
},
{
"path": "app/clash_core/linux-x64/static/files/linux/x64/clash-linux.sign",
"chars": 88,
"preview": "g4db2Nr6eFh0TnYY1jiDD/wENCzputDYksyhcs9AyOoJxvcbr1dVhTgk0OJwvzdiPd+QV/u958/YkmbB1iytBw=="
},
{
"path": "app/clash_core/win32-arm64/static/files/win/arm64/clash-win-arm64.exe.sign",
"chars": 88,
"preview": "ITc2EBlFAD1GjpFIotoMMlMk9xt5GrqaVEJSnoyirU2zM/hMts4RfwFL3rXpa3IL/dSgmnsaPTuBLzPIK6IGKA=="
},
{
"path": "app/clash_core/win32-arm64/static/files/win/common/schtasks.xml",
"chars": 1188,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-16\"?>\n<Task version=\"1.2\" xmlns=\"http://schemas.microsoft.com/windows/2004/02/mit/task"
},
{
"path": "app/clash_core/win32-arm64/static/files/win/common/service.yml",
"chars": 158,
"preview": "id: Clash Core Service\nname: Clash Core Service\ndescription: Clash Core Service started by Clash for Windows\nexecutable:"
},
{
"path": "app/clash_core/win32-arm64/static/files/win/common/tun2socks/add_tap_device.bat",
"chars": 6141,
"preview": ":: Copyright 2018 The Outline Authors\n::\n:: Licensed under the Apache License, Version 2.0 (the \"License\");\n:: you may n"
},
{
"path": "app/clash_core/win32-arm64/static/files/win/common/tun2socks/amd64/OemVista.inf",
"chars": 7344,
"preview": "; ****************************************************************************\n; * Copyright (C) 2002-2014 OpenVPN Techn"
},
{
"path": "app/clash_core/win32-arm64/static/files/win/common/tun2socks/find_tap_device_name.bat",
"chars": 3344,
"preview": ":: Copyright 2020 The Outline Authors\n::\n:: Licensed under the Apache License, Version 2.0 (the \"License\");\n:: you may n"
},
{
"path": "app/clash_core/win32-arm64/static/files/win/common/tun2socks/i386/OemVista.inf",
"chars": 7315,
"preview": "; ****************************************************************************\n; * Copyright (C) 2002-2014 OpenVPN Techn"
},
{
"path": "app/clash_core/win32-arm64/static/files/win/common/tun2socks/remove_tap_device.bat",
"chars": 393,
"preview": "@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%;%"
},
{
"path": "app/clash_core/win32-ia32/static/files/win/common/schtasks.xml",
"chars": 1188,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-16\"?>\n<Task version=\"1.2\" xmlns=\"http://schemas.microsoft.com/windows/2004/02/mit/task"
},
{
"path": "app/clash_core/win32-ia32/static/files/win/common/service.yml",
"chars": 158,
"preview": "id: Clash Core Service\nname: Clash Core Service\ndescription: Clash Core Service started by Clash for Windows\nexecutable:"
},
{
"path": "app/clash_core/win32-ia32/static/files/win/common/tun2socks/add_tap_device.bat",
"chars": 6141,
"preview": ":: Copyright 2018 The Outline Authors\n::\n:: Licensed under the Apache License, Version 2.0 (the \"License\");\n:: you may n"
},
{
"path": "app/clash_core/win32-ia32/static/files/win/common/tun2socks/amd64/OemVista.inf",
"chars": 7344,
"preview": "; ****************************************************************************\n; * Copyright (C) 2002-2014 OpenVPN Techn"
},
{
"path": "app/clash_core/win32-ia32/static/files/win/common/tun2socks/find_tap_device_name.bat",
"chars": 3344,
"preview": ":: Copyright 2020 The Outline Authors\n::\n:: Licensed under the Apache License, Version 2.0 (the \"License\");\n:: you may n"
},
{
"path": "app/clash_core/win32-ia32/static/files/win/common/tun2socks/i386/OemVista.inf",
"chars": 7315,
"preview": "; ****************************************************************************\n; * Copyright (C) 2002-2014 OpenVPN Techn"
},
{
"path": "app/clash_core/win32-ia32/static/files/win/common/tun2socks/remove_tap_device.bat",
"chars": 393,
"preview": "@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%;%"
},
{
"path": "app/clash_core/win32-ia32/static/files/win/ia32/clash-win32.exe.sign",
"chars": 88,
"preview": "3VaQI4a8c85DFudDHL1gSc6TUm49Hf9TxMf337ImoDXvTDwOf/XngT1FyzatFgZ+h1FBT5uEqlJFcAKKkVvY1w=="
},
{
"path": "app/clash_core/win_x64/static/files/win/common/schtasks.xml",
"chars": 1188,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-16\"?>\n<Task version=\"1.2\" xmlns=\"http://schemas.microsoft.com/windows/2004/02/mit/task"
},
{
"path": "app/clash_core/win_x64/static/files/win/common/service.yml",
"chars": 158,
"preview": "id: Clash Core Service\nname: Clash Core Service\ndescription: Clash Core Service started by Clash for Windows\nexecutable:"
},
{
"path": "app/clash_core/win_x64/static/files/win/common/tun2socks/add_tap_device.bat",
"chars": 6141,
"preview": ":: Copyright 2018 The Outline Authors\n::\n:: Licensed under the Apache License, Version 2.0 (the \"License\");\n:: you may n"
},
{
"path": "app/clash_core/win_x64/static/files/win/common/tun2socks/amd64/OemVista.inf",
"chars": 7344,
"preview": "; ****************************************************************************\n; * Copyright (C) 2002-2014 OpenVPN Techn"
},
{
"path": "app/clash_core/win_x64/static/files/win/common/tun2socks/find_tap_device_name.bat",
"chars": 3344,
"preview": ":: Copyright 2020 The Outline Authors\n::\n:: Licensed under the Apache License, Version 2.0 (the \"License\");\n:: you may n"
},
{
"path": "app/clash_core/win_x64/static/files/win/common/tun2socks/i386/OemVista.inf",
"chars": 7315,
"preview": "; ****************************************************************************\n; * Copyright (C) 2002-2014 OpenVPN Techn"
},
{
"path": "app/clash_core/win_x64/static/files/win/common/tun2socks/remove_tap_device.bat",
"chars": 393,
"preview": "@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%;%"
},
{
"path": "app/clash_core/win_x64/static/files/win/x64/clash-win64.exe.sign",
"chars": 88,
"preview": "0BpClCU/jf0VdpLKDVPSHLec5YpcR2GiqM589Z2k4t5K5WTfSTTcQWHbS5T+lxoO8pRvi+aILnLytkbNvFhi1w=="
},
{
"path": "app/main/ABOUT/LICENSE.electron.txt",
"chars": 1096,
"preview": "Copyright (c) Electron contributors\nCopyright (c) 2013-2020 GitHub Inc.\n\nPermission is hereby granted, free of charge, t"
},
{
"path": "app/main/ABOUT/state.txt",
"chars": 1667,
"preview": "Disclaimer Statement\n1. This software is only intended for the purpose of learning and researching network technology. U"
},
{
"path": "app/main/dist/electron/287.js",
"chars": 5354,
"preview": "\"use strict\";\n(global.webpackChunkclash_win = global.webpackChunkclash_win || []).push([\n [287], {\n 37287: (e,"
},
{
"path": "app/main/dist/electron/295.js",
"chars": 9060,
"preview": "\"use strict\";\n(global.webpackChunkclash_win = global.webpackChunkclash_win || []).push([\n [295], {\n 62295: (e,"
},
{
"path": "app/main/dist/electron/585.js",
"chars": 6430,
"preview": "\"use strict\";\n(global.webpackChunkclash_win = global.webpackChunkclash_win || []).push([\n [585], {\n 23585: (e,"
},
{
"path": "app/main/dist/electron/editor.worker.js",
"chars": 198413,
"preview": "(() => {\n \"use strict\";\n const e = new class {\n constructor() {\n this.listeners = [], this.unexp"
},
{
"path": "app/main/dist/electron/index.html",
"chars": 361,
"preview": "<!DOCTYPE html>\n<html>\n\n<head>\n <meta charset=utf-8>\n <title>Clash for Windows</title>\n <script defer=defer src"
},
{
"path": "app/main/dist/electron/main.js",
"chars": 84540,
"preview": "function language(v, en, cn) {\n return v === 0 ? cn : v === 1 ? en : en;\n}\n\n(() => {\n var e = {\n 228: e"
},
{
"path": "app/main/dist/electron/renderer.js",
"chars": 6822137,
"preview": "/*! For license information please see renderer.js.LICENSE.txt */\n\nconst VERSION = \"0.20.39 Opt-3\";\nfunction language(v,"
},
{
"path": "app/main/dist/electron/renderer.js.LICENSE.txt",
"chars": 276,
"preview": "/*!\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 | ("
},
{
"path": "app/main/package.json",
"chars": 1414,
"preview": "{\n \"name\": \"clash_win\",\n \"version\": \"0.20.39.3\",\n \"author\": \"Fndroid\",\n \"description\": \"A Windows client bas"
},
{
"path": "chinese_file/Auto/main-chinese.txt",
"chars": 1203,
"preview": "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>\"仪表盘\"<"
},
{
"path": "chinese_file/Auto/renderer-chinese.txt",
"chars": 47719,
"preview": "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>\\(\"确定\"\\)<"
},
{
"path": "chinese_file/Manual-Chinese/Clash_Sinicization_Comparison_Table_Old",
"chars": 11613,
"preview": "*****************\n* renderer.js *\n*****************\n\n************************************\n全局调用的文本\n********************"
},
{
"path": "chinese_file/Manual-Chinese/main",
"chars": 394,
"preview": "\"Dashboard\"\n\"仪表盘\"\n\"Dashboard has crashed\n\"仪表板崩溃了\n\"Run Tray Script\"\n\"运行任务栏脚本\"\n\"System Proxy\"\n\"系统代理\"\n\"Mixin\"\n\"混合配置\"\n\"Proxy"
},
{
"path": "chinese_file/Manual-Chinese/renderer",
"chars": 20328,
"preview": "# 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"
},
{
"path": "chinese_file/Sinicization_files/main.js",
"chars": 40077,
"preview": "module.exports = function(e) {\n var t = {};\n\n function n(r) {\n if (t[r]) return t[r].exports;\n var o"
},
{
"path": "chinese_file/Sinicization_files/renderer.js",
"chars": 3881669,
"preview": "module.exports = function(e) {\n function t(t) {\n for (var i, n, r = t[0], o = t[1], s = 0, a = []; s < r.lengt"
},
{
"path": "chinese_file/packing_script.iss",
"chars": 3359,
"preview": "; Script generated by the Inno Setup Script Wizard.\n; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FI"
},
{
"path": "image/This folder stores pictures",
"chars": 102,
"preview": "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",
"chars": 409,
"preview": "{\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\","
}
]
// ... and 21 more files (download for full content)
About this extraction
This page contains the full source code of the Z-Siqi/Clash-for-Windows_Chinese GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 81 files (48.1 MB), approximately 2.8M tokens, and a symbol index with 19695 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.