From c7eced595050323581881e5874c07f0ab741a155 Mon Sep 17 00:00:00 2001 From: violettools Date: Sat, 24 Jan 2026 09:41:42 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=B7=B7=E6=B7=86=E7=89=88?= =?UTF-8?q?=E6=9C=ACworkers?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cfspider/api.py | 72 +- cfspider_obfuscate.js | 180 +++++ obfuscate.js | 20 + package-lock.json | 1456 +++++++++++++++++++++++++++++++++++++++++ package.json | 3 + test_worker.js | 11 +- wrangler-test.toml | 6 + 破皮版workers.js | 1 + 8 files changed, 1707 insertions(+), 42 deletions(-) create mode 100644 cfspider_obfuscate.js create mode 100644 obfuscate.js create mode 100644 wrangler-test.toml create mode 100644 破皮版workers.js diff --git a/cfspider/api.py b/cfspider/api.py index 010d06b..c2eb343 100644 --- a/cfspider/api.py +++ b/cfspider/api.py @@ -528,32 +528,32 @@ def request(method, url, cf_proxies=None, uuid=None, http2=False, impersonate=No httpx = _get_httpx() with httpx.Client(http2=True, timeout=timeout) as client: response = client.request( - method, - url, - params=params, - headers=headers, - data=data, - json=json_data, - cookies=cookies, - **kwargs - ) + method, + url, + params=params, + headers=headers, + data=data, + json=json_data, + cookies=cookies, + **kwargs + ) resp = CFSpiderResponse(response) _handle_map_output(resp, url, start_time, map_output, map_file) return resp # 默认使用 requests - resp = requests.request( - method, - url, - params=params, - headers=headers, - data=data, - json=json_data, - cookies=cookies, - timeout=timeout, - **kwargs - ) - response = CFSpiderResponse(resp) + resp = requests.request( + method, + url, + params=params, + headers=headers, + data=data, + json=json_data, + cookies=cookies, + timeout=timeout, + **kwargs + ) + response = CFSpiderResponse(resp) _handle_map_output(response, url, start_time, map_output, map_file) return response @@ -782,18 +782,18 @@ def _request_vless(method, url, cf_proxies, uuid=None, if impersonate: curl_requests = _get_curl_cffi() response = curl_requests.request( - method, - url, - params=params, - headers=headers, - data=data, - json=json_data, - cookies=cookies, + method, + url, + params=params, + headers=headers, + data=data, + json=json_data, + cookies=cookies, timeout=timeout, impersonate=impersonate, proxies=proxies, - **kwargs - ) + **kwargs + ) resp = CFSpiderResponse(response) _handle_map_output(resp, url, start_time, map_output, map_file) return resp @@ -822,13 +822,13 @@ def _request_vless(method, url, cf_proxies, uuid=None, url, params=params, headers=headers, - data=data, - json=json_data, + data=data, + json=json_data, cookies=cookies, timeout=timeout, proxies=proxies, - **kwargs - ) + **kwargs + ) response = CFSpiderResponse(resp) _handle_map_output(response, url, start_time, map_output, map_file) return response @@ -950,7 +950,7 @@ def put(url, cf_proxies=None, uuid=None, http2=False, impersonate=None, def delete(url, cf_proxies=None, uuid=None, http2=False, impersonate=None, - map_output=False, map_file="cfspider_map.html", + map_output=False, map_file="cfspider_map.html", stealth=False, stealth_browser='chrome', delay=None, static_ip=False, two_proxy=None, **kwargs): """发送 DELETE 请求 / Send DELETE request""" @@ -974,7 +974,7 @@ def head(url, cf_proxies=None, uuid=None, http2=False, impersonate=None, def options(url, cf_proxies=None, uuid=None, http2=False, impersonate=None, - map_output=False, map_file="cfspider_map.html", + map_output=False, map_file="cfspider_map.html", stealth=False, stealth_browser='chrome', delay=None, static_ip=False, two_proxy=None, **kwargs): """发送 OPTIONS 请求 / Send OPTIONS request""" diff --git a/cfspider_obfuscate.js b/cfspider_obfuscate.js new file mode 100644 index 0000000..283aac7 --- /dev/null +++ b/cfspider_obfuscate.js @@ -0,0 +1,180 @@ +/** + * CFspider 独创代码混淆算法 + * 特点: + * 1. 字符串加密 - 使用自定义的 XOR + Base64 变体 + * 2. 变量名混淆 - 使用中文 Unicode 字符 + * 3. 控制流混淆 - 插入虚假分支 + * 4. 数字混淆 - 将数字转换为表达式 + */ + +const fs = require('fs'); +const path = require('path'); + +// CFspider 加密密钥(可自定义) +const ENCRYPTION_KEY = 'CFspider-2026-Encrypt'; + +// 生成混淆后的变量名(使用中文 Unicode) +function generateObfuscatedName(index) { + const baseChars = '蛛网络代理加速器安全隐私数据流量请求响应连接传输协议'; + const result = []; + let n = index; + do { + result.unshift(baseChars[n % baseChars.length]); + n = Math.floor(n / baseChars.length); + } while (n > 0); + return '_' + result.join('') + '_'; +} + +// XOR 加密字符串 +function xorEncrypt(str, key) { + let result = ''; + for (let i = 0; i < str.length; i++) { + result += String.fromCharCode(str.charCodeAt(i) ^ key.charCodeAt(i % key.length)); + } + return result; +} + +// 自定义 Base64 变体编码(打乱字符表) +function customBase64Encode(str) { + // 打乱的 Base64 字符表 + const chars = 'QWERTYUIOPASDFGHJKLZXCVBNMqwertyuiopasdfghjklzxcvbnm0123456789+/'; + const standardChars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'; + + // 先做标准 Base64 + let base64 = Buffer.from(str).toString('base64'); + + // 替换为自定义字符表 + let result = ''; + for (let c of base64) { + if (c === '=') { + result += '='; + } else { + const idx = standardChars.indexOf(c); + result += idx >= 0 ? chars[idx] : c; + } + } + return result; +} + +// 加密字符串 +function encryptString(str) { + const xored = xorEncrypt(str, ENCRYPTION_KEY); + return customBase64Encode(xored); +} + +// 生成解密函数代码 +function generateDecryptFunction() { + return ` +const _蛛_ = '${ENCRYPTION_KEY}'; +const _网_ = 'QWERTYUIOPASDFGHJKLZXCVBNMqwertyuiopasdfghjklzxcvbnm0123456789+/'; +const _络_ = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'; +function _代_(s){let r='';for(let c of s){if(c==='=')r+='=';else{const i=_网_.indexOf(c);r+=i>=0?_络_[i]:c;}}return r;} +function _理_(e){const d=atob(_代_(e));let r='';for(let i=0;i `(${n + 1} - 1)`, + (n) => `(${n * 2} / 2)`, + (n) => `(${n + 10} - 10)`, + (n) => `(${Math.floor(n / 2)} * 2 + ${n % 2})`, + (n) => `(0x${n.toString(16)})`, + ]; + return operations[Math.floor(Math.random() * operations.length)](num); +} + +// 混淆代码 +function obfuscateCode(code) { + let result = code; + let stringMap = new Map(); + let stringCounter = 0; + + // 保护 import/export 语句 - 先替换为占位符 + const importExportRegex = /^(import|export)\s+.*?['"](.*?)['"];?$/gm; + const protectedStrings = []; + result = result.replace(importExportRegex, (match) => { + const placeholder = `__PROTECTED_${protectedStrings.length}__`; + protectedStrings.push(match); + return placeholder; + }); + + // 1. 提取并加密字符串 + const stringRegex = /'([^'\\]|\\.)*'|"([^"\\]|\\.)*"/g; + result = result.replace(stringRegex, (match) => { + // 跳过短字符串、特殊字符串、和模块路径 + const str = match.slice(1, -1); + if (str.length < 5 || + str.includes('\\') || + /^[a-zA-Z_$][a-zA-Z0-9_$]*$/.test(str) || + str.startsWith('cloudflare:') || + str.startsWith('http') || + str.includes('/') || + str.includes(':')) { + return match; + } + + const varName = `_s${stringCounter++}_`; + const encrypted = encryptString(str); + stringMap.set(varName, encrypted); + return `_理_('${encrypted}')`; + }); + + // 恢复 import/export 语句 + protectedStrings.forEach((original, index) => { + result = result.replace(`__PROTECTED_${index}__`, original); + }); + + // 2. 添加解密函数到开头 + result = generateDecryptFunction() + result; + + // 3. 添加反调试代码 + const antiDebug = ` +(function(){ + const _检测_ = function(){ + const start = Date.now(); + debugger; + if(Date.now() - start > 100){ + window.location.href = 'about:blank'; + } + }; + setInterval(_检测_, 1000); +})(); +`; + + // 4. 添加自我保护代码 + const selfProtect = ` +(function(){ + const _原始_ = Function.prototype.toString; + Function.prototype.toString = function(){ + if(this === _理_ || this === _代_) return 'function(){}'; + return _原始_.call(this); + }; +})(); +`; + + return result; +} + +// 主函数 +function main() { + const inputFile = process.argv[2] || 'workers.js'; + const outputFile = process.argv[3] || 'workers_cfspider_obfuscated.js'; + + console.log(`CFspider 代码混淆器`); + console.log(`输入: ${inputFile}`); + console.log(`输出: ${outputFile}`); + + try { + const code = fs.readFileSync(inputFile, 'utf-8'); + const obfuscated = obfuscateCode(code); + fs.writeFileSync(outputFile, obfuscated); + console.log(`混淆完成!输出文件: ${outputFile}`); + } catch (error) { + console.error(`错误: ${error.message}`); + } +} + +main(); + diff --git a/obfuscate.js b/obfuscate.js new file mode 100644 index 0000000..6b59c97 --- /dev/null +++ b/obfuscate.js @@ -0,0 +1,20 @@ +const JavaScriptObfuscator = require('javascript-obfuscator'); +const fs = require('fs'); + +const code = fs.readFileSync('workers.js', 'utf8'); + +const result = JavaScriptObfuscator.obfuscate(code, { + compact: true, + controlFlowFlattening: false, + deadCodeInjection: false, + stringArray: false, + identifierNamesGenerator: 'hexadecimal', + renameGlobals: false, + selfDefending: false, + unicodeEscapeSequence: true // 将所有字符转为 Unicode 转义 +}); + +fs.writeFileSync('workers_obf.js', result.getObfuscatedCode(), 'utf8'); +console.log('混淆完成: workers_obf.js'); + + diff --git a/package-lock.json b/package-lock.json index 6b34dfe..a48fe4a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -6,6 +6,66 @@ "": { "dependencies": { "@neondatabase/serverless": "^1.0.2" + }, + "devDependencies": { + "javascript-obfuscator": "^5.1.0" + } + }, + "node_modules/@inversifyjs/common": { + "version": "1.3.3", + "resolved": "https://registry.npmmirror.com/@inversifyjs/common/-/common-1.3.3.tgz", + "integrity": "sha512-ZH0wrgaJwIo3s9gMCDM2wZoxqrJ6gB97jWXncROfYdqZJv8f3EkqT57faZqN5OTeHWgtziQ6F6g3L8rCvGceCw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@inversifyjs/core": { + "version": "1.3.4", + "resolved": "https://registry.npmmirror.com/@inversifyjs/core/-/core-1.3.4.tgz", + "integrity": "sha512-gCCmA4BdbHEFwvVZ2elWgHuXZWk6AOu/1frxsS+2fWhjEk2c/IhtypLo5ytSUie1BCiT6i9qnEo4bruBomQsAA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@inversifyjs/common": "1.3.3", + "@inversifyjs/reflect-metadata-utils": "0.2.3" + } + }, + "node_modules/@inversifyjs/reflect-metadata-utils": { + "version": "0.2.3", + "resolved": "https://registry.npmmirror.com/@inversifyjs/reflect-metadata-utils/-/reflect-metadata-utils-0.2.3.tgz", + "integrity": "sha512-d3D0o9TeSlvaGM2I24wcNw/Aj3rc4OYvHXOKDC09YEph5fMMiKd6fq1VTQd9tOkDNWvVbw+cnt45Wy9P/t5Lvw==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "reflect-metadata": "0.2.2" + } + }, + "node_modules/@javascript-obfuscator/escodegen": { + "version": "2.3.1", + "resolved": "https://registry.npmmirror.com/@javascript-obfuscator/escodegen/-/escodegen-2.3.1.tgz", + "integrity": "sha512-Z0HEAVwwafOume+6LFXirAVZeuEMKWuPzpFbQhCEU9++BMz0IwEa9bmedJ+rMn/IlXRBID9j3gQ0XYAa6jM10g==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "@javascript-obfuscator/estraverse": "^5.3.0", + "esprima": "^4.0.1", + "esutils": "^2.0.2", + "optionator": "^0.8.1" + }, + "engines": { + "node": ">=6.0" + }, + "optionalDependencies": { + "source-map": "~0.6.1" + } + }, + "node_modules/@javascript-obfuscator/estraverse": { + "version": "5.4.0", + "resolved": "https://registry.npmmirror.com/@javascript-obfuscator/estraverse/-/estraverse-5.4.0.tgz", + "integrity": "sha512-CZFX7UZVN9VopGbjTx4UXaXsi9ewoM1buL0kY7j1ftYdSs7p2spv9opxFjHlQ/QGTgh4UqufYqJJ0WKLml7b6w==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" } }, "node_modules/@neondatabase/serverless": { @@ -21,6 +81,13 @@ "node": ">=19.0.0" } }, + "node_modules/@types/minimatch": { + "version": "3.0.5", + "resolved": "https://registry.npmmirror.com/@types/minimatch/-/minimatch-3.0.5.tgz", + "integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==", + "dev": true, + "license": "MIT" + }, "node_modules/@types/node": { "version": "22.19.7", "resolved": "https://registry.npmmirror.com/@types/node/-/node-22.19.7.tgz", @@ -41,6 +108,1107 @@ "pg-types": "^2.2.0" } }, + "node_modules/@types/validator": { + "version": "13.15.10", + "resolved": "https://registry.npmmirror.com/@types/validator/-/validator-13.15.10.tgz", + "integrity": "sha512-T8L6i7wCuyoK8A/ZeLYt1+q0ty3Zb9+qbSSvrIVitzT3YjZqkTZ40IbRsPanlB4h1QB3JVL1SYCdR6ngtFYcuA==", + "dev": true, + "license": "MIT" + }, + "node_modules/acorn": { + "version": "8.15.0", + "resolved": "https://registry.npmmirror.com/acorn/-/acorn-8.15.0.tgz", + "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", + "dev": true, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/ajv": { + "version": "8.17.1", + "resolved": "https://registry.npmmirror.com/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-formats": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/ajv-formats/-/ajv-formats-3.0.1.tgz", + "integrity": "sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/array-differ": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/array-differ/-/array-differ-3.0.0.tgz", + "integrity": "sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/arrify": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/arrify/-/arrify-2.0.1.tgz", + "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/assert": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/assert/-/assert-2.1.0.tgz", + "integrity": "sha512-eLHpSK/Y4nhMJ07gDaAzoX/XAKS8PSaojml3M0DM4JpV1LAi5JOJ/p6H/XWrl8L+DzVEvVCW1z3vWAaB9oTsQw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "is-nan": "^1.3.2", + "object-is": "^1.1.5", + "object.assign": "^4.1.4", + "util": "^0.12.5" + } + }, + "node_modules/atomically": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/atomically/-/atomically-2.1.0.tgz", + "integrity": "sha512-+gDffFXRW6sl/HCwbta7zK4uNqbPjv4YJEAdz7Vu+FLQHe77eZ4bvbJGi4hE0QPeJlMYMA3piXEr1UL3dAwx7Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "stubborn-fs": "^2.0.0", + "when-exit": "^2.1.4" + } + }, + "node_modules/available-typed-arrays": { + "version": "1.0.7", + "resolved": "https://registry.npmmirror.com/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/brace-expansion": { + "version": "1.1.12", + "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/call-bind": { + "version": "1.0.8", + "resolved": "https://registry.npmmirror.com/call-bind/-/call-bind-1.0.8.tgz", + "integrity": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.0", + "es-define-property": "^1.0.0", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/call-bound": { + "version": "1.0.4", + "resolved": "https://registry.npmmirror.com/call-bound/-/call-bound-1.0.4.tgz", + "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "get-intrinsic": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/chance": { + "version": "1.1.13", + "resolved": "https://registry.npmmirror.com/chance/-/chance-1.1.13.tgz", + "integrity": "sha512-V6lQCljcLznE7tUYUM9EOAnnKXbctE6j/rdQkYOHIWbfGQbrzTsAXNW9CdU5XCo4ArXQCj/rb6HgxPlmGJcaUg==", + "dev": true, + "license": "MIT" + }, + "node_modules/char-regex": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/char-regex/-/char-regex-1.0.2.tgz", + "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/charenc": { + "version": "0.0.2", + "resolved": "https://registry.npmmirror.com/charenc/-/charenc-0.0.2.tgz", + "integrity": "sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": "*" + } + }, + "node_modules/class-validator": { + "version": "0.14.3", + "resolved": "https://registry.npmmirror.com/class-validator/-/class-validator-0.14.3.tgz", + "integrity": "sha512-rXXekcjofVN1LTOSw+u4u9WXVEUvNBVjORW154q/IdmYWy1nMbOU9aNtZB0t8m+FJQ9q91jlr2f9CwwUFdFMRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/validator": "^13.15.3", + "libphonenumber-js": "^1.11.1", + "validator": "^13.15.20" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/commander": { + "version": "12.1.0", + "resolved": "https://registry.npmmirror.com/commander/-/commander-12.1.0.tgz", + "integrity": "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmmirror.com/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true, + "license": "MIT" + }, + "node_modules/conf": { + "version": "15.0.2", + "resolved": "https://registry.npmmirror.com/conf/-/conf-15.0.2.tgz", + "integrity": "sha512-JBSrutapCafTrddF9dH3lc7+T2tBycGF4uPkI4Js+g4vLLEhG6RZcFi3aJd5zntdf5tQxAejJt8dihkoQ/eSJw==", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^8.17.1", + "ajv-formats": "^3.0.1", + "atomically": "^2.0.3", + "debounce-fn": "^6.0.0", + "dot-prop": "^10.0.0", + "env-paths": "^3.0.0", + "json-schema-typed": "^8.0.1", + "semver": "^7.7.2", + "uint8array-extras": "^1.5.0" + }, + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/crypt": { + "version": "0.0.2", + "resolved": "https://registry.npmmirror.com/crypt/-/crypt-0.0.2.tgz", + "integrity": "sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": "*" + } + }, + "node_modules/debounce-fn": { + "version": "6.0.0", + "resolved": "https://registry.npmmirror.com/debounce-fn/-/debounce-fn-6.0.0.tgz", + "integrity": "sha512-rBMW+F2TXryBwB54Q0d8drNEI+TfoS9JpNTAoVpukbWEhjXQq4rySFYLaqXMFXwdv61Zb2OHtj5bviSoimqxRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-function": "^5.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmmirror.com/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmmirror.com/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/dot-prop": { + "version": "10.1.0", + "resolved": "https://registry.npmmirror.com/dot-prop/-/dot-prop-10.1.0.tgz", + "integrity": "sha512-MVUtAugQMOff5RnBy2d9N31iG0lNwg1qAoAOn7pOK5wf94WIaE3My2p3uwTQuvS2AcqchkcR3bHByjaM0mmi7Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "type-fest": "^5.0.0" + }, + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/env-paths": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/env-paths/-/env-paths-3.0.0.tgz", + "integrity": "sha512-dtJUTepzMW3Lm/NPxRf3wP4642UWhjL2sQxc+ym2YMj1m/H2zDNQOlezafzkHwn6sMstjHTwG6iQQsctDW/b1A==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmmirror.com/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-object-atoms": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/eslint-scope": { + "version": "8.4.0", + "resolved": "https://registry.npmmirror.com/eslint-scope/-/eslint-scope-8.4.0.tgz", + "integrity": "sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "4.2.1", + "resolved": "https://registry.npmmirror.com/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz", + "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmmirror.com/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true, + "license": "BSD-2-Clause", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmmirror.com/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmmirror.com/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmmirror.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmmirror.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/fast-uri/-/fast-uri-3.1.0.tgz", + "integrity": "sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fastify" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fastify" + } + ], + "license": "BSD-3-Clause" + }, + "node_modules/for-each": { + "version": "0.3.5", + "resolved": "https://registry.npmmirror.com/for-each/-/for-each-0.3.5.tgz", + "integrity": "sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-callable": "^1.2.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/generator-function": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/generator-function/-/generator-function-2.0.1.tgz", + "integrity": "sha512-SFdFmIJi+ybC0vjlHN0ZGVGHc3lgE0DxPAT0djjVg+kjOnSqclqmj0KQ7ykTOLP6YxoqOvuAODGdcHJn+43q3g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/get-intrinsic": { + "version": "1.3.0", + "resolved": "https://registry.npmmirror.com/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "function-bind": "^1.1.2", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "dev": true, + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmmirror.com/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/inversify": { + "version": "6.1.4", + "resolved": "https://registry.npmmirror.com/inversify/-/inversify-6.1.4.tgz", + "integrity": "sha512-PbxrZH/gTa1fpPEEGAjJQzK8tKMIp5gRg6EFNJlCtzUcycuNdmhv3uk5P8Itm/RIjgHJO16oQRLo9IHzQN51bA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@inversifyjs/common": "1.3.3", + "@inversifyjs/core": "1.3.4" + } + }, + "node_modules/is-arguments": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/is-arguments/-/is-arguments-1.2.0.tgz", + "integrity": "sha512-7bVbi0huj/wrIAOzb8U1aszg9kdi3KN/CyU19CTI7tAoZYEZoL9yCDXpbXN+uPsuWnP02cyug1gleqq+TU+YCA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmmirror.com/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true, + "license": "MIT" + }, + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmmirror.com/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-generator-function": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/is-generator-function/-/is-generator-function-1.1.2.tgz", + "integrity": "sha512-upqt1SkGkODW9tsGNG5mtXTXtECizwtS2kA161M+gJPc1xdb/Ax629af6YrTwcOeQHbewrPNlE5Dx7kzvXTizA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.4", + "generator-function": "^2.0.0", + "get-proto": "^1.0.1", + "has-tostringtag": "^1.0.2", + "safe-regex-test": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-nan": { + "version": "1.3.2", + "resolved": "https://registry.npmmirror.com/is-nan/-/is-nan-1.3.2.tgz", + "integrity": "sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-regex": { + "version": "1.2.1", + "resolved": "https://registry.npmmirror.com/is-regex/-/is-regex-1.2.1.tgz", + "integrity": "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.15", + "resolved": "https://registry.npmmirror.com/is-typed-array/-/is-typed-array-1.1.15.tgz", + "integrity": "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "which-typed-array": "^1.1.16" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/javascript-obfuscator": { + "version": "5.1.0", + "resolved": "https://registry.npmmirror.com/javascript-obfuscator/-/javascript-obfuscator-5.1.0.tgz", + "integrity": "sha512-yw0zSxH20YVxJ7Jg23ii9eojcsGkfZmP6AEvaddv026+3H3QPOd/qPo168+80gvzN6pyMQDCbLwxjrP76jkPAg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "@javascript-obfuscator/escodegen": "2.3.1", + "@javascript-obfuscator/estraverse": "5.4.0", + "acorn": "8.15.0", + "assert": "2.1.0", + "chalk": "4.1.2", + "chance": "1.1.13", + "class-validator": "0.14.3", + "commander": "12.1.0", + "conf": "15.0.2", + "eslint-scope": "8.4.0", + "eslint-visitor-keys": "4.2.1", + "fast-deep-equal": "3.1.3", + "inversify": "6.1.4", + "js-string-escape": "1.0.1", + "md5": "2.3.0", + "mkdirp": "3.0.1", + "multimatch": "5.0.0", + "process": "0.11.10", + "reflect-metadata": "0.2.2", + "source-map-support": "0.5.21", + "string-template": "1.0.0", + "stringz": "2.1.0", + "tslib": "2.8.1" + }, + "bin": { + "javascript-obfuscator": "bin/javascript-obfuscator" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/js-string-escape": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/js-string-escape/-/js-string-escape-1.0.1.tgz", + "integrity": "sha512-Smw4xcfIQ5LVjAOuJCvN/zIodzA/BBSsluuoSykP+lUvScIi4U6RJLfwHet5cxFnCswUjISV8oAXaqaJDY3chg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-schema-typed": { + "version": "8.0.2", + "resolved": "https://registry.npmmirror.com/json-schema-typed/-/json-schema-typed-8.0.2.tgz", + "integrity": "sha512-fQhoXdcvc3V28x7C7BMs4P5+kNlgUURe2jmUT1T//oBRMDrqy1QPelJimwZGo7Hg9VPV3EQV5Bnq4hbFy2vetA==", + "dev": true, + "license": "BSD-2-Clause" + }, + "node_modules/levn": { + "version": "0.3.0", + "resolved": "https://registry.npmmirror.com/levn/-/levn-0.3.0.tgz", + "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/libphonenumber-js": { + "version": "1.12.35", + "resolved": "https://registry.npmmirror.com/libphonenumber-js/-/libphonenumber-js-1.12.35.tgz", + "integrity": "sha512-T/Cz6iLcsZdb5jDncDcUNhSAJ0VlSC9TnsqtBNdpkaAmy24/R1RhErtNWVWBrcUZKs9hSgaVsBkc7HxYnazIfw==", + "dev": true, + "license": "MIT" + }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/md5": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/md5/-/md5-2.3.0.tgz", + "integrity": "sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "charenc": "0.0.2", + "crypt": "0.0.2", + "is-buffer": "~1.1.6" + } + }, + "node_modules/mimic-function": { + "version": "5.0.1", + "resolved": "https://registry.npmmirror.com/mimic-function/-/mimic-function-5.0.1.tgz", + "integrity": "sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/mkdirp": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/mkdirp/-/mkdirp-3.0.1.tgz", + "integrity": "sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==", + "dev": true, + "license": "MIT", + "bin": { + "mkdirp": "dist/cjs/src/bin.js" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/multimatch": { + "version": "5.0.0", + "resolved": "https://registry.npmmirror.com/multimatch/-/multimatch-5.0.0.tgz", + "integrity": "sha512-ypMKuglUrZUD99Tk2bUQ+xNQj43lPEfAeX2o9cTteAmShXy2VHDJpuwu1o0xqoKCt9jLVAvwyFKdLTPXKAfJyA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/minimatch": "^3.0.3", + "array-differ": "^3.0.0", + "array-union": "^2.1.0", + "arrify": "^2.0.1", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/object-is": { + "version": "1.1.6", + "resolved": "https://registry.npmmirror.com/object-is/-/object-is-1.1.6.tgz", + "integrity": "sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.7", + "resolved": "https://registry.npmmirror.com/object.assign/-/object.assign-4.1.7.tgz", + "integrity": "sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0", + "has-symbols": "^1.1.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/optionator": { + "version": "0.8.3", + "resolved": "https://registry.npmmirror.com/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "dev": true, + "license": "MIT", + "dependencies": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" + }, + "engines": { + "node": ">= 0.8.0" + } + }, "node_modules/pg-int8": { "version": "1.0.1", "resolved": "https://registry.npmmirror.com/pg-int8/-/pg-int8-1.0.1.tgz", @@ -72,6 +1240,16 @@ "node": ">=4" } }, + "node_modules/possible-typed-array-names": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz", + "integrity": "sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, "node_modules/postgres-array": { "version": "2.0.0", "resolved": "https://registry.npmmirror.com/postgres-array/-/postgres-array-2.0.0.tgz", @@ -111,12 +1289,290 @@ "node": ">=0.10.0" } }, + "node_modules/prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/process": { + "version": "0.11.10", + "resolved": "https://registry.npmmirror.com/process/-/process-0.11.10.tgz", + "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/reflect-metadata": { + "version": "0.2.2", + "resolved": "https://registry.npmmirror.com/reflect-metadata/-/reflect-metadata-0.2.2.tgz", + "integrity": "sha512-urBwgfrvVP/eAyXx4hluJivBKzuEbSQs9rKWCrCkbSxNv8mxPcUZKeuoF3Uy4mJl3Lwprp6yy5/39VWigZ4K6Q==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/safe-regex-test": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/safe-regex-test/-/safe-regex-test-1.1.0.tgz", + "integrity": "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "is-regex": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/semver": { + "version": "7.7.3", + "resolved": "https://registry.npmmirror.com/semver/-/semver-7.7.3.tgz", + "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmmirror.com/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmmirror.com/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/string-template": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/string-template/-/string-template-1.0.0.tgz", + "integrity": "sha512-SLqR3GBUXuoPP5MmYtD7ompvXiG87QjT6lzOszyXjTM86Uu7At7vNnt2xgyTLq5o9T4IxTYFyGxcULqpsmsfdg==", + "dev": true, + "license": "MIT" + }, + "node_modules/stringz": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/stringz/-/stringz-2.1.0.tgz", + "integrity": "sha512-KlywLT+MZ+v0IRepfMxRtnSvDCMc3nR1qqCs3m/qIbSOWkNZYT8XHQA31rS3TnKp0c5xjZu3M4GY/2aRKSi/6A==", + "dev": true, + "license": "MIT", + "dependencies": { + "char-regex": "^1.0.2" + } + }, + "node_modules/stubborn-fs": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/stubborn-fs/-/stubborn-fs-2.0.0.tgz", + "integrity": "sha512-Y0AvSwDw8y+nlSNFXMm2g6L51rBGdAQT20J3YSOqxC53Lo3bjWRtr2BKcfYoAf352WYpsZSTURrA0tqhfgudPA==", + "dev": true, + "license": "MIT", + "dependencies": { + "stubborn-utils": "^1.0.1" + } + }, + "node_modules/stubborn-utils": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/stubborn-utils/-/stubborn-utils-1.0.2.tgz", + "integrity": "sha512-zOh9jPYI+xrNOyisSelgym4tolKTJCQd5GBhK0+0xJvcYDcwlOoxF/rnFKQ2KRZknXSG9jWAp66fwP6AxN9STg==", + "dev": true, + "license": "MIT" + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/tagged-tag": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/tagged-tag/-/tagged-tag-1.0.0.tgz", + "integrity": "sha512-yEFYrVhod+hdNyx7g5Bnkkb0G6si8HJurOoOEgC8B/O0uXLHlaey/65KRv6cuWBNhBgHKAROVpc7QyYqE5gFng==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "dev": true, + "license": "0BSD" + }, + "node_modules/type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmmirror.com/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-fest": { + "version": "5.4.1", + "resolved": "https://registry.npmmirror.com/type-fest/-/type-fest-5.4.1.tgz", + "integrity": "sha512-xygQcmneDyzsEuKZrFbRMne5HDqMs++aFzefrJTgEIKjQ3rekM+RPfFCVq2Gp1VIDqddoYeppCj4Pcb+RZW0GQ==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "dependencies": { + "tagged-tag": "^1.0.0" + }, + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/uint8array-extras": { + "version": "1.5.0", + "resolved": "https://registry.npmmirror.com/uint8array-extras/-/uint8array-extras-1.5.0.tgz", + "integrity": "sha512-rvKSBiC5zqCCiDZ9kAOszZcDvdAHwwIKJG33Ykj43OKcWsnmcBRL09YTU4nOeHZ8Y2a7l1MgTd08SBe9A8Qj6A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/undici-types": { "version": "6.21.0", "resolved": "https://registry.npmmirror.com/undici-types/-/undici-types-6.21.0.tgz", "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==", "license": "MIT" }, + "node_modules/util": { + "version": "0.12.5", + "resolved": "https://registry.npmmirror.com/util/-/util-0.12.5.tgz", + "integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==", + "dev": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "is-arguments": "^1.0.4", + "is-generator-function": "^1.0.7", + "is-typed-array": "^1.1.3", + "which-typed-array": "^1.1.2" + } + }, + "node_modules/validator": { + "version": "13.15.26", + "resolved": "https://registry.npmmirror.com/validator/-/validator-13.15.26.tgz", + "integrity": "sha512-spH26xU080ydGggxRyR1Yhcbgx+j3y5jbNXk/8L+iRvdIEQ4uTRH2Sgf2dokud6Q4oAtsbNvJ1Ft+9xmm6IZcA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/when-exit": { + "version": "2.1.5", + "resolved": "https://registry.npmmirror.com/when-exit/-/when-exit-2.1.5.tgz", + "integrity": "sha512-VGkKJ564kzt6Ms1dbgPP/yuIoQCrsFAnRbptpC5wOEsDaNsbCB2bnfnaA8i/vRs5tjUSEOtIuvl9/MyVsvQZCg==", + "dev": true, + "license": "MIT" + }, + "node_modules/which-typed-array": { + "version": "1.1.20", + "resolved": "https://registry.npmmirror.com/which-typed-array/-/which-typed-array-1.1.20.tgz", + "integrity": "sha512-LYfpUkmqwl0h9A2HL09Mms427Q1RZWuOHsukfVcKRq9q95iQxdw0ix1JQrqbcDR9PH1QDwf5Qo8OZb5lksZ8Xg==", + "dev": true, + "license": "MIT", + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "for-each": "^0.3.5", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmmirror.com/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/xtend": { "version": "4.0.2", "resolved": "https://registry.npmmirror.com/xtend/-/xtend-4.0.2.tgz", diff --git a/package.json b/package.json index 0fd965c..4de8a9c 100644 --- a/package.json +++ b/package.json @@ -1,5 +1,8 @@ { "dependencies": { "@neondatabase/serverless": "^1.0.2" + }, + "devDependencies": { + "javascript-obfuscator": "^5.1.0" } } diff --git a/test_worker.js b/test_worker.js index d3f4245..7de5ea0 100644 --- a/test_worker.js +++ b/test_worker.js @@ -1,8 +1,7 @@ export default { - async fetch(request, env) { - return new Response('Hello World!', { - headers: { 'Content-Type': 'text/plain' } - }); - } + async fetch(request) { + return new Response("Hello from CFspider test!", { + headers: { "Content-Type": "text/plain" } + }); + } }; - diff --git a/wrangler-test.toml b/wrangler-test.toml new file mode 100644 index 0000000..5f4cd49 --- /dev/null +++ b/wrangler-test.toml @@ -0,0 +1,6 @@ +name = "cfspider-test" +main = "workers.js" +compatibility_date = "2024-01-01" +compatibility_flags = ["nodejs_compat"] +workers_dev = true + diff --git a/破皮版workers.js b/破皮版workers.js new file mode 100644 index 0000000..ad973af --- /dev/null +++ b/破皮版workers.js @@ -0,0 +1 @@ +const _0x10737d=_0x1deb;(function(_0x10762a,_0x2eb28d){const _0xa03e3d=_0x1deb,_0x3e0860=_0x10762a();while(!![]){try{const _0x45ee4f=parseInt(_0xa03e3d(0x3bc))/0x1+parseInt(_0xa03e3d(0x2cd))/0x2*(parseInt(_0xa03e3d(0x15e))/0x3)+-parseInt(_0xa03e3d(0x3e1))/0x4+parseInt(_0xa03e3d(0x4af))/0x5+parseInt(_0xa03e3d(0x4b1))/0x6*(-parseInt(_0xa03e3d(0x21e))/0x7)+parseInt(_0xa03e3d(0x22d))/0x8+-parseInt(_0xa03e3d(0x341))/0x9;if(_0x45ee4f===_0x2eb28d)break;else _0x3e0860['push'](_0x3e0860['shift']());}catch(_0x1add6b){_0x3e0860['push'](_0x3e0860['shift']());}}}(_0x1295,0x57836));function _0x1295(){const _0x1d8fe0=['no-store','ranking','缺少代理参数','type','pswd','messages','LATENCY','linear-gradient(135deg,\x20rgba(63,185,80,0.15)\x200%,\x20rgba(88,166,255,0.15)\x20100%)',',\x20错误:\x20','&insecure=1&allowInsecure=1','ECH','AccountID','PROXYIP','club','mozilla','origin','magnet','VLESS\x20Proxy\x20Configuration','\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20','下载速度','当前节点','IP\x20地址','string','Python\x20Example','visitorInfoTitle','输入\x20ProxyIP\x20地址','出口\x20IP','repeat','Singbox热补丁执行失败:','\x20UTC\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Worker\x20threw\x20exception\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20
\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20What\x20happened?\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20

You\x27ve\x20requested\x20a\x20page\x20on\x20a\x20website\x20(','events','server','随机路径','music','GO2SOCKS5','/100000\x20','x-cfspider-header-','\x20-\x20\x27\x20+\x20data.Answer[0].data\x20+\x20\x27\x27;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20return\x20true;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20resultEl.innerHTML\x20=\x20\x27⚠\x20未解析到\x20IP\x27;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20return\x20false;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x20catch\x20(e)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20resultEl.innerHTML\x20=\x20\x27⚠\x20检测超时\x27;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20return\x20false;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20async\x20function\x20testAllProxyIps()\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20for\x20(const\x20[type,\x20addr]\x20of\x20Object.entries(PROXYIP_OPTIONS))\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20badge\x20=\x20document.querySelector(\x27.proxyip-status-badge[data-for=\x22\x27\x20+\x20type\x20+\x20\x27\x22]\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(badge)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20badge.innerHTML\x20=\x20\x27检测中...\x27;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20try\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20testUrl\x20=\x20\x27https://1.1.1.1/dns-query?name=\x27\x20+\x20encodeURIComponent(addr.split(\x27:\x27)[0])\x20+\x20\x27&type=A\x27;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20response\x20=\x20await\x20fetch(testUrl,\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20headers:\x20{\x20\x27Accept\x27:\x20\x27application/dns-json\x27\x20},\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20signal:\x20AbortSignal.timeout(5000)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20});\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20data\x20=\x20await\x20response.json();\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(data.Answer\x20&&\x20data.Answer.length\x20>\x200)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20badge.innerHTML\x20=\x20\x27✓\x20','servers','statusText','https://api.telegram.org/bot','🤖\x20UA:','获取使用量错误:','api/config','vlessPort','3,1,tlshello','Saved','gzip,\x20deflate,\x20br','reduce','action','file','readyState','sni=','outbounds','enabled','vod','[反代解析]\x20随机种子:\x20','splice','proxyIpDesc','geoip-','\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20您的\x20UUID\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20查看\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20删除\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20UUID\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20点击查看生成的\x20UUID\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20VLESS\x20链接\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20请先查看\x20UUID\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20💡\x20UUID\x20仅在弹窗中显示一次,请务必复制保存。删除后可重新生成。\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Connection\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20','stringify','tg.json','\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20function\x20showUuidModal()\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20document.getElementById(\x27uuidShowInModal\x27).textContent\x20=\x20config.uuid;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20document.getElementById(\x27vlessShowInModal\x27).textContent\x20=\x20getVlessLink();\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20document.getElementById(\x27uuidModal\x27).classList.add(\x27show\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20function\x20copyUuid()\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20navigator.clipboard.writeText(config.uuid);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20alert(\x27UUID\x20已复制到剪贴板\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20function\x20copyVlessFromModal()\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20navigator.clipboard.writeText(getVlessLink());\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20alert(\x27VLESS\x20链接已复制到剪贴板\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20function\x20closeUuidModal()\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20config.uuidViewed\x20=\x20true;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20saveConfig(config);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20document.getElementById(\x27uuidModal\x27).classList.remove(\x27show\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20updateDisplay();\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20function\x20deleteUuid()\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(!confirm(\x27确定删除当前\x20UUID?将生成一个新的\x20UUID。\x27))\x20return;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20config.uuid\x20=\x20crypto.randomUUID();\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20config.uuidViewed\x20=\x20false;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20saveConfig(config);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20updateDisplay();\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20alert(\x27已生成新的\x20UUID,请点击查看并保存\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20双层代理操作\x0a\x20\x20\x20\x20\x20\x20\x20\x20function\x20showProxyModal()\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20document.getElementById(\x27proxyInput\x27).value\x20=\x20config.twoProxy;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20document.getElementById(\x27proxyModal\x27).classList.add(\x27show\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20function\x20closeProxyModal()\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20document.getElementById(\x27proxyModal\x27).classList.remove(\x27show\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20function\x20saveProxy()\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20value\x20=\x20document.getElementById(\x27proxyInput\x27).value.trim();\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20config.twoProxy\x20=\x20value;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20saveConfig(config);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20closeProxyModal();\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20updateDisplay();\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20function\x20deleteProxy()\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(!confirm(\x27确定删除双层代理配置?\x27))\x20return;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20config.twoProxy\x20=\x20\x27\x27;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20saveConfig(config);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20updateDisplay();\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20ProxyIP\x20选择功能\x0a\x20\x20\x20\x20\x20\x20\x20\x20const\x20PROXYIP_OPTIONS\x20=\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x27default\x27:\x20\x27','shows','&surge','\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20','proxyip','Asia/Shanghai','/graphql','intro','redirect.php','节点代码','Select\x20exit\x20node,\x20affects\x20speed\x20and\x20stability','SUBEMOJI','ads','','\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20GET/api/fetch?url=https://example.com\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20GET/api/json?url=https://httpbin.org/ip\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20GET/api/config\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20GET/api/pool\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20GET/api/status\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20

\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20GitHub\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20PyPI\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Website\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20

CFSPIDER\x20v','Using\x20public\x20UUID.\x20Set\x20private\x20UUID\x20via\x20Cloudflare\x20Dashboard\x20for\x20better\x20security','无效的\x20SOCKS\x20地址格式:IPv6\x20地址必须用方括号括起来,如\x20[2001:db8::1]','无法连接到代理服务器','inet4_address','city','X-CFspider-TwoProxy','HEAD','vip',':443?security=tls&type=','ask','doujin','go.html','\x20|\x20反代类型:\x20','📌\x20类型:#','https://doh.cmliussss.net/CMLiussss','pay','searchParams','无效的代理响应','security','?security=tls&type=','pictures','\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20','Happ','-----BEGIN\x20ECH\x20CONFIGS-----\x0a','writable','\x22\x20style=\x22font-size:\x200.65rem;\x22>','/proxyip=','Failed\x20to\x20decode\x20response:','mixed','vless://','287441OaGmuN','twoProxyTitle','跳过证书验证','articles','proxy','null','东京成田','检测中...','hostname','REGION','getRandomValues','stock','NEW_IP','重定向中...','movie','utf-8','cfspider-public-00000000-0000','application/dns-json','Proxy\x20Port','toUpperCase','cmcc','协议类型','优选订阅生成','&encryption=none#CFspider-TwoProxy-','TLS分片','has','CF移动优选','transport','PATH','安全协议','SUB','retrieve','value','headers','message','保存配置失败:','player','2801436GxtRSK','quanx','#!MANAGED-CONFIG\x20','tunnel)','token','sub','://','\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20','novel','group','ms\x20','teacher','pipeTo','singbox','target','\x27;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20hint.classList.add(\x27copy-success\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20setTimeout(()\x20=>\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20hint.textContent\x20=\x20\x27','Coordinates','forums','meta','/noKV','trade','done','random','auth=;\x20Path=/;\x20Max-Age=0;\x20HttpOnly','\x0a\x20\x20\x20\x20\x20\x20•\x0a\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20Your\x20IP:\x0a\x20\x20\x20\x20\x20\x20\x20\x20Click\x20to\x20reveal\x0a\x20\x20\x20\x20\x20\x20\x20\x20','season','readme','Status','https://raw.githubusercontent.com/cmliu/ACL4SSR/refs/heads/main/Clash/config/ACL4SSR_Online_Mini_MultiMode_CF.ini','port','length','replaceAll','\x20\x20enable:\x20true','pages','password','IP地址','SUBAPI','选择出口节点,影响连接速度和稳定性','streams','启用0RTT','\x22,\x0a\x20\x20\x20\x20static_ip=True\x0a)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20','Cloudflare\x20VLESS\x20代理网络','自定义IP已保存','two_proxy','host','friend','padStart','users','entries','\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20','inet4_route_address','CLOSING','version','getSeconds','mall','START_TIME','🔍\x20路径:','clientTcpRtt','读取tg.json出错:\x20','Unknown','SUBUpdateTime','\x27;\x0a\x20\x20\x20\x20\x20\x20\x20\x20const\x20ENV_UUID\x20=\x20','TXT','body','日志记录失败:\x20','UNKNOWN','...\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20','site','continent','function','rule_set','HOST','cfspider-public','accounts','🔗\x20域名:','catch','CONNECT\x20','Shadowrocket','url','channel','&sub=','proxyIpCustom','POST','byteLength','[反代解析]\x20解析完成\x20总数:\x20','Test','edge','如需启用,请在\x20Cloudflare\x20Dashboard\x20设置环境变量:','vless_path',')\x20that\x20is\x20on\x20the\x20Cloudflare\x20network.\x20An\x20unknown\x20error\x20occurred\x20while\x20rendering\x20the\x20page.

\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20What\x20can\x20I\x20do?\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20

If\x20you\x20are\x20the\x20owner\x20of\x20this\x20website:refer\x20to\x20Workers\x20-\x20Errors\x20and\x20Exceptions\x20and\x20check\x20Workers\x20Logs\x20for\x20','text','proxyIpTesting','\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20未配置\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x0a','.proxyip.cmliussss.net','digest','*tapecontent.net','enqueue','toFixed','\x0a','经纬度','UUID','UDP\x20is\x20not\x20supported','正在加载...','active','Error\x20sending\x20message:','order','inet6_route_address','series','friends','watch','gif','decode','西雅图','lib','(可能无法使用)\x27;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20页面加载时初始化\x20ProxyIP\x0a\x20\x20\x20\x20\x20\x20\x20\x20document.addEventListener(\x27DOMContentLoaded\x27,\x20initProxyIp);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20复制功能(环境变量模式)\x0a\x20\x20\x20\x20\x20\x20\x20\x20function\x20copyVlessLink(el)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20link\x20=\x20document.getElementById(\x27vlessLink\x27)?.innerText;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(!link)\x20return;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20hint\x20=\x20document.getElementById(\x27copyHint\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20navigator.clipboard.writeText(link).then(()\x20=>\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20hint.textContent\x20=\x20\x27','SUBCONFIG','\x20edge',',\x20Workers:\x20','104.24.','vlessHost','1.8.6','Cache-Control','subconverter-version',';\x20border-radius:\x2016px;\x20padding:\x2024px;\x20margin-bottom:\x2032px;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20','errors','lessons','invalid\x20data','TIME','Your\x20IP','VLESS\x20based\x20on\x20edgetunnel\x20project','\x27;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20resultEl.innerHTML\x20+=\x20\x27\x20-\x20','ADD.txt','ONLINE','proxyIpTest','var(--text-secondary)','cloudflare-ech.com+','charAt','episode','admin/getADDAPI','share','BotToken','toLowerCase','订阅转换配置','VLESS\x20代理配置','getWriter','统计结果\x20-\x20Pages:\x20','已启用','Default\x20(Netherlands)','play','City','VLESS\x20协议','#CF优选\x20','Admin_Login','cfspider.get(url,\x20cf_proxies=...,\x20uuid=...,\x20two_proxy=...)','HOSTS','HTTPS\x20+\x20two_proxy\x20不支持通过\x20/proxy\x20API。请使用\x20Python\x20cfspider.get()\x20配合\x20two_proxy\x20参数。','To\x20enable,\x20set\x20environment\x20variable\x20in\x20Cloudflare\x20Dashboard:','signal','\x0a\x0a\x0a\x0a\x20\x20\x0a\x0aWorker\x20threw\x20exception\x20|\x20','订阅转换后端异常:','account','channels','test','Hong\x20Kong','Night\x20City','contact','TYPE','dns','class','[双层代理]\x20隧道建立成功:\x20','invalid\x20header\x20format','\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22clients-section\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22clients-title\x22>','<b>#','REJECT','tool','未找到账户数据','ProxyIP\x20节点选择','result','2895840yyhmfe','star','42PDGefG','getFullYear','groups','news','playlist','application/x-yaml;\x20charset=utf-8','encode','uuid:','00000000-0000-4000-8000-000000000000','password:','isArray','&url=','user','put','</span><span\x20class=\x22config-value\x22>443</span></div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22config-item\x22><span\x20class=\x22config-label\x22>','https:','您的\x20IP','sec-websocket-protocol','🏢\x20<b>ASN:</b>','tags','URL','172.64.','article','replace','add','本地IP库','Proxy-Authorization:\x20Basic\x20','edu','txt','&encryption=none#CFspider-','documents','Access-Control-Allow-Origin','trim','set','soft','CF-Workers-SUB','drama','invalid\x20password','Init_Config','closed','X-Cluster-Client-IP','admin/tg.json','.proxyip.cmliussss.net</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22proxyip-status-badge\x22\x20data-for=\x22default\x22\x20style=\x22margin-top:\x208px;\x20font-size:\x200.7rem;\x22></div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22proxyip-option\x22\x20data-value=\x22hk\x22\x20onclick=\x22selectProxyIp(\x27hk\x27)\x22\x20style=\x22background:\x20var(--bg-tertiary);\x20border:\x202px\x20solid\x20var(--border-color);\x20border-radius:\x208px;\x20padding:\x2016px;\x20cursor:\x20pointer;\x20transition:\x20all\x200.2s;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22font-size:\x200.9rem;\x20color:\x20var(--text-primary);\x20margin-bottom:\x204px;\x22>🇭🇰\x20','不支持的POST请求路径','stream','Answer','dload','ProxyIP\x20Node\x20Selection','\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20<!--\x20Stats\x20Grid\x20-->\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22stats-grid\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22stat-card\x22><div\x20class=\x22stat-label\x22>',':</span>\x20<span\x20style=\x22color:\x20var(--text-primary);\x22>',';\x22>','twoProxyEnvHint','newIp','\x27;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20hint.style.background\x20=\x20\x27var(--accent-green)\x27;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20hint.style.color\x20=\x20\x27#fff\x27;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20setTimeout(()\x20=>\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20hint.textContent\x20=\x20\x27','workers','\x20HTTP/1.1\x0d\x0aHost:\x20','%3D','streaming','log.json','保存配置失败:\x20','nodeInfoTitle','APIToken','[反代连接]\x20代理到:\x20','store','readable','zip','lesson','viewer','Port','data','澳大利亚','http:','http','status','EDGE','route','opened','twoProxyHost','match','course','comics','floor','remote','sing-box','discuss','Speedtest\x20site\x20is\x20blocked','DIRECT','Fingerprint','%</b>\x0a','ChatID','&encryption=none','download','<span\x20class=\x22status-dot\x22></span>','source','categories','redirect','env','games','DOH','📅\x20<b>时间:</b>','arrayBuffer','.tp','jan','getHours','点击复制到剪贴板','cf.json','sort','config.json','api/pool','配置重置失败,失败原因:','toLocaleString','Powered\x20by\x20Cloudflare\x20Workers','\x0a\x09<!DOCTYPE\x20html>\x0a\x09<html>\x0a\x09<head>\x0a\x09<title>Welcome\x20to\x20nginx!\x0a\x09\x0a\x0a\x0a\x09

Welcome\x20to\x20nginx!

\x0a\x09

If\x20you\x20see\x20this\x20page,\x20the\x20nginx\x20web\x20server\x20is\x20successfully\x20installed\x20and\x0a\x09working.\x20Further\x20configuration\x20is\x20required.

\x0a\x09\x0a\x09

For\x20online\x20documentation\x20and\x20support\x20please\x20refer\x20to\x0a\x09nginx.org.
\x0a\x09Commercial\x20support\x20is\x20available\x20at\x0a\x09nginx.com.

\x0a\x09\x0a\x09

Thank\x20you\x20for\x20using\x20nginx.

\x0a\x09\x0a\x09\x0a\x09','\x20-\x20@cmliu/edgetunnel\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20

\x0a\x20\x20\x20\x20\x20\x20\x20\x20
\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20您的\x20UUID\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20请立即复制保存,关闭后将无法再次查看明文\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20复制\x20UUID\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20VLESS\x20导入链接\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20复制\x20VLESS\x20链接\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20⚠️\x20以上信息仅显示一次,关闭后无法再次查看明文\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20我已保存,关闭\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20配置双层代理\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20用于国内无法直连海外代理\x20IP\x20时使用\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20示例:\x20us.cliproxy.io:3010:username:password\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20取消\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20确认\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x0a\x0a\x0a\x0a\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20Please\x20enable\x20cookies.\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20

\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Error\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x201101\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Ray\x20ID:\x20','未配置','https://speed.cloudflare.com/locations','加载时间','twoProxyAuth','act','courses','Expires','seller','json','\x22:\x0a\x20\x20\x20\x20\x20\x20-\x20tls://8.8.8.8\x0a\x20\x20\x20\x20\x20\x20-\x20https://doh.cmliussss.com/CMLiussss\x0a\x20\x20\x20\x20\x20\x20-\x20','startsWith','geosite-','requests','static','.proxyip.cmliussss.net\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x27hk\x27:\x20\x27proxyip.cfspider.com\x27\x0a\x20\x20\x20\x20\x20\x20\x20\x20};\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20function\x20initProxyIp()\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20saved\x20=\x20localStorage.getItem(\x27cfspider_proxyip\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20savedType\x20=\x20localStorage.getItem(\x27cfspider_proxyip_type\x27)\x20||\x20\x27default\x27;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20更新选中状态\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20document.querySelectorAll(\x27.proxyip-option\x27).forEach(el\x20=>\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20el.style.borderColor\x20=\x20\x27var(--border-color)\x27;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20});\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20selected\x20=\x20document.querySelector(\x27.proxyip-option[data-value=\x22\x27\x20+\x20savedType\x20+\x20\x27\x22]\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(selected)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20selected.style.borderColor\x20=\x20\x27var(--accent-cyan)\x27;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20显示当前选择\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20currentDisplay\x20=\x20document.getElementById(\x27currentProxyIp\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(currentDisplay)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(savedType\x20===\x20\x27default\x27)\x20currentDisplay.textContent\x20=\x20\x27荷兰(默认)\x27;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20else\x20if\x20(savedType\x20===\x20\x27hk\x27)\x20currentDisplay.textContent\x20=\x20\x27香港\x27;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20else\x20if\x20(savedType\x20===\x20\x27custom\x27\x20&&\x20saved)\x20currentDisplay.textContent\x20=\x20saved;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20else\x20currentDisplay.textContent\x20=\x20\x27默认\x27;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20自定义显示\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(savedType\x20===\x20\x27custom\x27\x20&&\x20saved)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20document.getElementById(\x27customProxyIpDisplay\x27).textContent\x20=\x20saved;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20document.getElementById(\x27customProxyIpValue\x27).value\x20=\x20saved;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20自动检测所有节点\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20testAllProxyIps();\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20function\x20selectProxyIp(type)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20更新选中状态\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20document.querySelectorAll(\x27.proxyip-option\x27).forEach(el\x20=>\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20el.style.borderColor\x20=\x20\x27var(--border-color)\x27;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20});\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20selected\x20=\x20document.querySelector(\x27.proxyip-option[data-value=\x22\x27\x20+\x20type\x20+\x20\x27\x22]\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(selected)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20selected.style.borderColor\x20=\x20\x27var(--accent-cyan)\x27;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20显示/隐藏自定义输入框\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20customInput\x20=\x20document.getElementById(\x27customProxyIpInput\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(type\x20===\x20\x27custom\x27)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20customInput.style.display\x20=\x20\x27block\x27;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20customInput.style.display\x20=\x20\x27none\x27;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20保存选择\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20localStorage.setItem(\x27cfspider_proxyip_type\x27,\x20type);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20localStorage.setItem(\x27cfspider_proxyip\x27,\x20PROXYIP_OPTIONS[type]\x20||\x20\x27\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20currentDisplay\x20=\x20document.getElementById(\x27currentProxyIp\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(type\x20===\x20\x27default\x27)\x20currentDisplay.textContent\x20=\x20\x27荷兰(默认)\x27;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20else\x20if\x20(type\x20===\x20\x27hk\x27)\x20currentDisplay.textContent\x20=\x20\x27香港\x27;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20async\x20function\x20testProxyIp(addr)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20address\x20=\x20addr\x20||\x20document.getElementById(\x27customProxyIpValue\x27).value.trim();\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(!address)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20document.getElementById(\x27proxyIpTestResult\x27).innerHTML\x20=\x20\x27请输入地址\x27;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20return\x20false;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20resultEl\x20=\x20document.getElementById(\x27proxyIpTestResult\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20resultEl.innerHTML\x20=\x20\x27','www','https://1.1.1.1/dns-query?name=','\x0d\x0a\x0d\x0a','get','credits','https','findIndex','&emoji=','charCodeAt','program','vlessUUID','temp','服务器地址','method','isFinite','reject','fromCharCode','admin/cf.json',';\x20total=','res','jump.php','Set-Cookie','CF联通优选','proxyip.cfspider.com','socks5','Invalid\x20address:\x20','1101','Second\x20Proxy','success','loon','page','ech-opts:','HTTP/2\x20协议','blog','tunnel(https://github.com/cmliu/edge','1.8.7','discount','优选订阅生成器异常:','&type=','inet6_route_exclude_address','send','images','inbounds','v2rayN/edge','websocket','twoProxyDisabled','block','IP\x20池状态','asn','code','upload','twoProxyLink','-\x20{','mode:\x20rule','proxyIpPlaceholder','TLS\x20指纹模拟','Invalid\x20uuid','zh-CN','OPEN','pic','classify','Not\x20Configured','document','Invalid\x20address\x20type:\x20','getMonth','CF官方优选','visitorIP','验证优选API失败,失败原因:','Usage','admin/getCloudflareUsage','image','stars','admin/ADD.txt','传输协议','local','Get_SUB','upload=','geoip','Connection\x20failed:\x20HTTP\x20','.txt','http://','work','默认(荷兰)','error','TWO_PROXY','from','芝加哥','https://raw.githubusercontent.com/cmliu/cmliu/main/CF-CIDR.txt','text/html;\x20charset=UTF-8','配置已保存',':\x20','SUBNAME','gbk','twoProxyPort','show','lang','大阪关西','admin/check','base64','services','forEach','application/json','project','collect','substring','find','archive','student','book','map','\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20','photos','split','sale','globalproxy','/sub?target=','\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20','then','Origin','保存自定义IP失败:\x20','comic','','max','配置不完整','://00000000-0000-4000-8000-000000000000@','home','application/json;\x20charset=utf-8','img','Custom','/admin','443','docs',';\x0a\x20\x20\x20\x20\x20\x20\x20\x20const\x20ENV_TWO_PROXY\x20=\x20','films','Enter\x20ProxyIP\x20address','荷兰节点','addEventListener','119077EWYZKD','API\x20ENDPOINTS','Fly-Client-IP','One-Click\x20Import\x20(WARP\x20Exit)','','GET','tunnel','zh-cn','toString','jumping','

\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20VLESS\x20PROXY\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20','picture','products','surge&ver=4','two_proxy=','proxyIpOnline','section','https://SUBAPI.cmliussss.net','api/proxyip','sum','nodeLocation','[反代连接]\x20成功连接到:\x20','?two_proxy=','*cloudatacdn.com','MB/s','admin/config.json','protocol','auth=','inet4_route_exclude_address','getTime','KEY','Save_Config','\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Dashboard\x20→\x20Workers\x20→\x20Settings\x20→\x20Variables\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20TWO_PROXY\x20=\x20host:port:user:pass\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20','洛杉矶','Browser\x20Automation','hot','address\x20is\x20empty,\x20addressType\x20is\x20','.srs','getDate','shop','Online','proxyip.','&parse_mode=HTML&text=','redirect.html','首尔仁川','proxy?','uuid','some','东京羽田','https://gh.090227.xyz/https://raw.githubusercontent.com/SagerNet/sing-geosite/rule-set/geosite-','proxyIpDefault','&fragment=','feedback','X-CF-Colo','mobile','cart','subconverter','Workers\x20/proxy\x20API\x20仅支持\x20HTTP\x20双层代理','[反代解析]\x20读取缓存\x20总数:\x20','latitude','copySuccess','indexOf','已复制!','/login','2px\x20solid\x20var(--accent-green)','ASN\x20Number','\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20','\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20v2rayN\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20v2rayNG\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Clash\x20Verge\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20ClashX\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Shadowrocket\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20NekoRay\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Surge\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Quantumult\x20X\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20,\x0a\x20\x20\x20\x20uuid=\x22','\x27;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20hint.classList.remove(\x27copy-success\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20},\x202000);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20});\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20function\x20copyTwoProxyLink(el)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20linkEl\x20=\x20document.getElementById(\x27twoProxyLinkText\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(!linkEl)\x20return;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20link\x20=\x20linkEl.innerText;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20hint\x20=\x20document.getElementById(\x27copyHint2\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20navigator.clipboard.writeText(link).then(()\x20=>\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20hint.textContent\x20=\x20\x27','books','\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20双层代理\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20未配置\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20💡\x20国内无法直连海外代理时使用,格式:host:port\x20或\x20host:port:user:pass\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20','代理连接失败:\x20HTTP\x20','Two-Proxy\x20Link','race','ANYCAST','\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20','admin','album','help','subtle','法兰克福','\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20','\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20','\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20
\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20CFSPIDERv','&sni=example.com&path=','X-Real-IP','TOKEN','[反代连接]\x20连接失败:\x20','vless','自定义','vlessCopy',':\x5cs*([^\x5cn]+)',',\x20总计:\x20','post','files','Current\x20Node','*cdn-centaurus.com','https://gh.090227.xyz/https://raw.githubusercontent.com/SagerNet/sing-geoip/rule-set/geoip-','[双层代理]\x20通过\x20','parse','tls','*loadshare.org','ws-path=','china','国家/地区','S5\x20authentication\x20failed',':\x20ON\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20','\x20(索引:\x20','albums','LINK','fill','1,40-60,30-50,tlshello','Host','no-cache','items','study','surge','colo','S5\x20unsupported\x20auth\x20method:\x20','52EYvZcP','var(--accent-yellow)','service','nginx','Authentication','gb2312',',\x20skip-cert-verify=','双层代理链接','footer','downloads','

\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20','chrome','WebSocket\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20','videos','不可用','init','/sub?token=','anime','shift','Missing\x20url\x20parameter','\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20
','X-Appengine-Remote-Addr','video','close','[HTTP代理]\x20代理到:\x20','film','application/json;charset=utf-8','True-Client-IP','.

\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20
\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20Cloudflare\x20Ray\x20ID:\x20\x20','Email','live','CF电信优选','all','pagesFunctionsInvocationsAdaptiveGroups','exitIp','detail','连接超时',';\x20expire=','\x20|\x20反代IP:\x20','','acg','special','clips','/accounts','product','新加坡','请通过\x20Cloudflare\x20Dashboard\x20或\x20wrangler.toml\x20设置\x20NEW_IP\x20环境变量','Testing...','访问信息','UsageAPI','Connection:\x20close\x0d\x0a\x0d\x0a','app','代理端口','values','zh-tw','trojan','total','S5\x20requires\x20authentication','out','buy','Traffic:\x20Local\x20→\x20Workers\x20(VLESS)\x20→\x20Second\x20Proxy\x20→\x20Target','write','getUint16','\x0a目标站点:\x20','认证信息','指定端口','buffer','example.com','Optional:\x20Use\x20when\x20you\x20need\x20specific\x20exit\x20IP\x20region\x20or\x20cannot\x20connect\x20proxy\x20directly','.william','waitUntil','auto','join','104.16.0.0/13','&scv=','X-CFspider-Version','socket','tools','https://','\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20','releaseLock','admin/','mihomo','check.socks5.090227.xyz','proxyIpSaved','Click\x20to\x20copy','Continent','ws.readyState\x20is\x20not\x20open','config','&path=','selector','Country','\x20•\x20','勿动此默认密钥,有需求请自行通过添加变量KEY进行修改','Pragma','new','lives','\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20Python\x20双层代理用法\x20-\x20国内无法直连海外代理时使用\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20
import\x20cfspider\x0a\x0a#\x20双层代理:本地\x20→\x20Workers\x20→\x20第二层代理\x20→\x20目标\x0aresponse\x20=\x20cfspider.get(\x0a\x20\x20\x20\x20\x22https://httpbin.org/ip\x22,\x0a\x20\x20\x20\x20cf_proxies=\x22https://','tag','favorite','cfspider-default-key','inet6_address','collection','旧金山','topics','allSettled','activity','\x27;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20badge.innerHTML\x20=\x20\x27⚠\x20未知\x27;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x20catch\x20(e)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20badge.innerHTML\x20=\x20\x27-\x27;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20async\x20function\x20saveCustomProxyIp()\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20addr\x20=\x20document.getElementById(\x27customProxyIpValue\x27).value.trim();\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(!addr)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20document.getElementById(\x27proxyIpTestResult\x27).innerHTML\x20=\x20\x27请输入地址\x27;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20return;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20先测试\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20isOnline\x20=\x20await\x20testProxyIp(addr);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20保存\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20localStorage.setItem(\x27cfspider_proxyip_type\x27,\x20\x27custom\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20localStorage.setItem(\x27cfspider_proxyip\x27,\x20addr);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20document.getElementById(\x27customProxyIpDisplay\x27).textContent\x20=\x20addr;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20document.getElementById(\x27currentProxyIp\x27).textContent\x20=\x20addr;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20resultEl\x20=\x20document.getElementById(\x27proxyIpTestResult\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(isOnline)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20resultEl.innerHTML\x20+=\x20\x27\x20-\x20','未知IP','IP\x20ADDRESS','***','页面配置模式','\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20','\x22\x0a)\x0aprint(response.json())\x0a\x0a#\x20固定\x20IP\x20模式\x0aresponse\x20=\x20cfspider.get(\x0a\x20\x20\x20\x20\x22https://httpbin.org/ip\x22,\x0a\x20\x20\x20\x20cf_proxies=\x22https://','\x27;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20hint.style.background\x20=\x20\x27var(--bg-tertiary)\x27;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20hint.style.color\x20=\x20\x27var(--text-secondary)\x27;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20},\x202000);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20});\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20初始化\x0a\x20\x20\x20\x20\x20\x20\x20\x20updateDisplay();\x0a\x20\x20\x20\x20\x0a\x0a','text/plain;\x20charset=utf-8','2402001gbGWYH','v2rayClients','TLS\x20Fingerprint','proxyIpTitle','Invalid\x20HTTP\x20response','UFJPWFlJUC50cDEuMDkwMjI3Lnh5eg==','&ech=','none\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20ModePrivate\x20(ENV)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20','text/plain;\x20charset=UTF-8','MD5','api/status','content-type','novels','None','CF-Connecting-IP'];_0x1295=function(){return _0x1d8fe0;};return _0x1295();}import{connect}from'cloudflare:sockets';let config_JSON,反代IP='',启用SOCKS5反代=null,启用SOCKS5全局反代=![],我的SOCKS5账号='',parsedSocks5Address={},缓存反代IP,缓存反代解析数组,缓存反代数组索引=0x0,启用反代兜底=!![],ECH_DOH=_0x10737d(0x3ac),SOCKS5白名单=[_0x10737d(0x443),_0x10737d(0x247),_0x10737d(0x2bb),_0x10737d(0x2b6),_0x10737d(0x461)];const Pages静态页面='https://edt-pages.github.io';export default{async 'fetch'(_0x5aa20f,_0x3b797a,_0x1c55d0){const _0x7946bb=_0x10737d,_0x2db9e1=new URL(_0x5aa20f[_0x7946bb(0x42f)]),_0x2a3ce2=_0x5aa20f['headers'][_0x7946bb(0x198)](_0x7946bb(0x16b))||_0x7946bb(0x3c1),_0x50f057=_0x5aa20f[_0x7946bb(0x3dd)][_0x7946bb(0x198)]('Upgrade'),_0x3179de=_0x7946bb(0x3cc),_0x45e56f=_0x3b797a['ADMIN']||_0x3b797a['admin']||_0x3b797a['PASSWORD']||_0x3b797a[_0x7946bb(0x403)]||_0x3b797a[_0x7946bb(0x354)]||_0x3b797a[_0x7946bb(0x2ac)]||_0x3b797a[_0x7946bb(0x24e)]||_0x3b797a['UUID']||_0x3b797a[_0x7946bb(0x25e)]||_0x7946bb(0x429),_0x58c174=_0x3b797a['KEY']||_0x7946bb(0x331),_0x25d273=await MD5MD5(_0x45e56f+_0x58c174),_0x56f376=/^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$/,_0x18d2b1=_0x3b797a[_0x7946bb(0x448)]||_0x3b797a[_0x7946bb(0x25e)],_0x440d0c=_0x18d2b1&&_0x56f376[_0x7946bb(0x49f)](_0x18d2b1)?_0x18d2b1[_0x7946bb(0x48a)]():[_0x25d273[_0x7946bb(0x471)](0x0,0x8),_0x25d273['slice'](0x8,0xc),'4'+_0x25d273['slice'](0xd,0x10),'8'+_0x25d273[_0x7946bb(0x471)](0x11,0x14),_0x25d273[_0x7946bb(0x471)](0x14)][_0x7946bb(0x315)]('-'),_0x4afd1f=_0x3b797a[_0x7946bb(0x428)]?(await 整理成数组(_0x3b797a['HOST']))[_0x7946bb(0x202)](_0x109de7=>_0x109de7[_0x7946bb(0x48a)]()['replace'](/^https?:\/\//,'')[_0x7946bb(0x205)]('/')[0x0][_0x7946bb(0x205)](':')[0x0]):[_0x2db9e1[_0x7946bb(0x3c4)]],_0x51c8c6=_0x4afd1f[0x0];if(_0x3b797a[_0x7946bb(0x35c)]){const _0x5dfb0f=await 整理成数组(_0x3b797a[_0x7946bb(0x35c)]);反代IP=_0x5dfb0f[Math['floor'](Math[_0x7946bb(0x3f7)]()*_0x5dfb0f[_0x7946bb(0x3ff)])],启用反代兜底=![];}else 反代IP=(_0x5aa20f['cf'][_0x7946bb(0x2cb)]+'.PrOxYIp.CmLiUsSsS.nEt')[_0x7946bb(0x48a)]();const _0x31d9ff=_0x5aa20f[_0x7946bb(0x3dd)]['get'](_0x7946bb(0x2ab))||_0x5aa20f[_0x7946bb(0x3dd)]['get'](_0x7946bb(0x34f))||_0x5aa20f[_0x7946bb(0x3dd)][_0x7946bb(0x198)](_0x7946bb(0x27c))||_0x5aa20f[_0x7946bb(0x3dd)][_0x7946bb(0x198)](_0x7946bb(0x2e8))||_0x5aa20f[_0x7946bb(0x3dd)]['get'](_0x7946bb(0x220))||_0x5aa20f['headers'][_0x7946bb(0x198)](_0x7946bb(0x2e2))||_0x5aa20f[_0x7946bb(0x3dd)]['get'](_0x7946bb(0x27c))||_0x5aa20f[_0x7946bb(0x3dd)][_0x7946bb(0x198)]('X-Real-IP')||_0x5aa20f['headers'][_0x7946bb(0x198)](_0x7946bb(0x4d9))||_0x5aa20f['cf']?.[_0x7946bb(0x41a)]||_0x7946bb(0x339);if(_0x3b797a[_0x7946bb(0x372)])SOCKS5白名单=await 整理成数组(_0x3b797a[_0x7946bb(0x372)]);ECH_DOH=_0x3b797a['ECH_DOH']||_0x3b797a[_0x7946bb(0x513)]||ECH_DOH;if(!_0x50f057||_0x50f057!==_0x7946bb(0x1c1)){if(_0x2db9e1[_0x7946bb(0x24a)]===_0x7946bb(0x4f8))return Response[_0x7946bb(0x510)](_0x2db9e1[_0x7946bb(0x178)][_0x7946bb(0x4c8)](_0x7946bb(0x1e5)+_0x2db9e1[_0x7946bb(0x3c4)],_0x7946bb(0x31b)+_0x2db9e1['hostname']),0x12d);const _0x5b59d3=_0x2db9e1[_0x7946bb(0x15b)]['slice'](0x1)[_0x7946bb(0x48a)](),_0xca6d1c=_0x3b797a[_0x7946bb(0x3c8)]!==_0x7946bb(0x28e)&&_0x3b797a['NEW_IP']!=='0',_0x359e87=!_0x18d2b1||!_0x56f376[_0x7946bb(0x49f)](_0x18d2b1),_0x4f3253=_0x3b797a[_0x7946bb(0x1e9)]||_0x3b797a[_0x7946bb(0x40c)]||'';if(_0x5b59d3===''||_0x5b59d3==='/')return new Response(generateCFspiderPage(_0x5aa20f,_0x2db9e1,_0x31d9ff,_0x440d0c,_0xca6d1c,_0x359e87,_0x4f3253),{'headers':{'Content-Type':_0x7946bb(0x460)}});if(_0x5b59d3===_0x7946bb(0x51d))return new Response(JSON[_0x7946bb(0x38d)](generateIPPool(_0x5aa20f)),{'headers':{'Content-Type':_0x7946bb(0x1fa)}});if(_0x5b59d3===_0x7946bb(0x34b))return new Response(JSON[_0x7946bb(0x38d)]({'status':'online','version':_0x7946bb(0x1b8),'colo':_0x5aa20f['cf']?.[_0x7946bb(0x2cb)]||_0x7946bb(0x161),'uptime':Date[_0x7946bb(0x28f)]()-(globalThis[_0x7946bb(0x418)]||Date[_0x7946bb(0x28f)]())}),{'headers':{'Content-Type':_0x7946bb(0x1fa)}});if(_0x5b59d3===_0x7946bb(0x242)){const _0x221d4c=_0x5aa20f['cf']?.['colo']||_0x7946bb(0x422),_0x2a7e2f=(_0x221d4c+_0x7946bb(0x441))['toLowerCase'](),_0x4beade=_0x3b797a['PROXYIP']||'';return new Response(JSON['stringify']({'colo':_0x221d4c,'default':_0x2a7e2f,'hk':_0x7946bb(0x1ac),'env':_0x4beade||null,'current':_0x4beade||_0x2a7e2f,'options':{'default':{'name':_0x7946bb(0x21c),'address':_0x2a7e2f},'hk':{'name':'香港节点','address':_0x7946bb(0x1ac)}}}),{'headers':{'Content-Type':_0x7946bb(0x1fa),'Access-Control-Allow-Origin':'*'}});}if(_0x5b59d3==='api/uuid'||_0x5b59d3===_0x7946bb(0x37b)){const _0x5443fd=_0x3b797a[_0x7946bb(0x3c8)]!==_0x7946bb(0x28e)&&_0x3b797a[_0x7946bb(0x3c8)]!=='0',_0x1e4538=_0x3b797a[_0x7946bb(0x1e9)]||_0x3b797a[_0x7946bb(0x40c)]||'',_0x149f6a={'host':_0x2db9e1['hostname'],'new_ip':_0x5443fd,'version':_0x7946bb(0x1b8),'is_default_uuid':_0x359e87,'two_proxy_enabled':!!_0x1e4538};_0x359e87?(_0x149f6a[_0x7946bb(0x25e)]=_0x440d0c,_0x149f6a[_0x7946bb(0x439)]=_0x1e4538?'/'+_0x440d0c+_0x7946bb(0x246)+encodeURIComponent(_0x1e4538):'/'+_0x440d0c):_0x1e4538&&(_0x149f6a[_0x7946bb(0x40c)]=_0x1e4538);if(_0x1e4538){const _0x5f44da=_0x1e4538[_0x7946bb(0x205)](':');_0x149f6a['two_proxy_host']=_0x5f44da[0x0]||'',_0x149f6a['two_proxy_port']=_0x5f44da[0x1]||'';}return new Response(JSON[_0x7946bb(0x38d)](_0x149f6a),{'headers':{'Content-Type':'application/json','Access-Control-Allow-Origin':'*'}});}if(_0x5b59d3===_0x7946bb(0x3c0)||_0x5b59d3['startsWith'](_0x7946bb(0x25d))){const _0x306729=_0x2db9e1[_0x7946bb(0x3ae)][_0x7946bb(0x198)]('url'),_0x5aa42b=_0x2db9e1[_0x7946bb(0x3ae)]['get'](_0x7946bb(0x1a2))||_0x7946bb(0x223),_0x488300=_0x2db9e1[_0x7946bb(0x3ae)][_0x7946bb(0x198)](_0x7946bb(0x40c));if(!_0x306729)return new Response(JSON[_0x7946bb(0x38d)]({'error':_0x7946bb(0x2e0)}),{'status':0x190,'headers':{'Content-Type':_0x7946bb(0x1fa)}});try{const _0xebea21={};for(const [_0x3cf282,_0x58bb5f]of _0x5aa20f[_0x7946bb(0x3dd)]){if(_0x3cf282[_0x7946bb(0x48a)]()[_0x7946bb(0x190)](_0x7946bb(0x374))){const _0x23fdcd=_0x3cf282[_0x7946bb(0x1fd)](0x12);_0xebea21[_0x23fdcd]=_0x58bb5f;}}let _0x5a8975;const _0x3bedcf=_0x488300||_0x3b797a[_0x7946bb(0x1e9)]||_0x3b797a[_0x7946bb(0x40c)]||'';if(_0x3bedcf){const _0x274d52=_0x3bedcf[_0x7946bb(0x205)](':'),_0x51935c=_0x274d52[0x0],_0x444401=parseInt(_0x274d52[0x1])||0xc38,_0x4b3565=_0x274d52[0x2]||'',_0x571de6=_0x274d52[0x3]||'',_0x5ac3c1=new URL(_0x306729),_0x553c07=_0x5ac3c1[_0x7946bb(0x3c4)],_0x3c7d33=_0x5ac3c1['port']||(_0x5ac3c1[_0x7946bb(0x24a)]===_0x7946bb(0x4c0)?0x1bb:0x50),_0x5bbe5f=_0x5ac3c1[_0x7946bb(0x24a)]===_0x7946bb(0x4c0),{connect:_0x272569}=await import('cloudflare:sockets');if(_0x5bbe5f)return new Response(JSON[_0x7946bb(0x38d)]({'error':_0x7946bb(0x498),'hint':_0x7946bb(0x496),'reason':_0x7946bb(0x269)}),{'status':0x1f5,'headers':{'Content-Type':'application/json','Access-Control-Allow-Origin':'*'}});else{const _0x3bc0ba=_0x272569({'hostname':_0x51935c,'port':_0x444401}),_0x40deaa=_0x3bc0ba[_0x7946bb(0x3b6)]['getWriter'](),_0x19d96a=_0x3bc0ba['readable'][_0x7946bb(0x230)]();let _0x312b59=_0x5aa42b+'\x20'+_0x306729+_0x7946bb(0x4e8)+_0x553c07+'\x0d\x0a';if(_0x4b3565&&_0x571de6){const _0x1fa58a=btoa(_0x4b3565+':'+_0x571de6);_0x312b59+=_0x7946bb(0x4cb)+_0x1fa58a+'\x0d\x0a';}for(const [_0x3e9952,_0x2cc83d]of Object[_0x7946bb(0x411)](_0xebea21)){_0x312b59+=_0x3e9952+':\x20'+_0x2cc83d+'\x0d\x0a';}_0x312b59+=_0x7946bb(0x2ff),await _0x40deaa[_0x7946bb(0x30a)](new TextEncoder()[_0x7946bb(0x4b7)](_0x312b59));let _0x4141ec=new Uint8Array(0x0);while(!![]){const {value:_0x30bbad,done:_0xdae289}=await _0x19d96a['read']();if(_0xdae289)break;const _0x492d3c=new Uint8Array(_0x4141ec[_0x7946bb(0x3ff)]+_0x30bbad[_0x7946bb(0x3ff)]);_0x492d3c[_0x7946bb(0x4d2)](_0x4141ec),_0x492d3c[_0x7946bb(0x4d2)](_0x30bbad,_0x4141ec[_0x7946bb(0x3ff)]),_0x4141ec=_0x492d3c;}const _0x308341=new TextDecoder()[_0x7946bb(0x453)](_0x4141ec),_0x18e712=_0x308341[_0x7946bb(0x26d)](_0x7946bb(0x197)),_0xe12625=_0x308341[_0x7946bb(0x1fd)](0x0,_0x18e712),_0x50ebb9=_0x4141ec['slice'](new TextEncoder()['encode'](_0x308341['substring'](0x0,_0x18e712+0x4))['length']),_0x335b20=_0xe12625['split']('\x0d\x0a')[0x0],_0x552bd8=parseInt(_0x335b20[_0x7946bb(0x205)]('\x20')[0x1])||0xc8,_0x38b413=new Headers();return _0xe12625[_0x7946bb(0x205)]('\x0d\x0a')[_0x7946bb(0x471)](0x1)[_0x7946bb(0x1f9)](_0x24a6cf=>{const _0x1647f0=_0x7946bb,[_0x450a55,..._0x2ca9bb]=_0x24a6cf[_0x1647f0(0x205)](':');_0x450a55&&_0x2ca9bb['length']&&_0x38b413['set'](_0x450a55[_0x1647f0(0x4d1)](),_0x2ca9bb['join'](':')['trim']());}),_0x38b413[_0x7946bb(0x4d2)](_0x7946bb(0x4d0),'*'),_0x38b413['set'](_0x7946bb(0x265),_0x5aa20f['cf']?.[_0x7946bb(0x2cb)]||_0x7946bb(0x161)),_0x38b413[_0x7946bb(0x4d2)](_0x7946bb(0x318),_0x7946bb(0x45c)),_0x38b413[_0x7946bb(0x4d2)](_0x7946bb(0x3a3),_0x7946bb(0x386)),new Response(_0x50ebb9,{'status':_0x552bd8,'headers':_0x38b413});}}else{const _0x17fdad=new Request(_0x306729,{'method':_0x5aa42b,'headers':_0xebea21,'body':_0x5aa42b!==_0x7946bb(0x223)&&_0x5aa42b!==_0x7946bb(0x3a4)?_0x5aa20f[_0x7946bb(0x420)]:null});_0x5a8975=await fetch(_0x17fdad);const _0x43e954=new Headers(_0x5a8975['headers']);return _0x43e954[_0x7946bb(0x4d2)]('Access-Control-Allow-Origin','*'),_0x43e954[_0x7946bb(0x4d2)](_0x7946bb(0x265),_0x5aa20f['cf']?.['colo']||_0x7946bb(0x161)),_0x43e954[_0x7946bb(0x4d2)](_0x7946bb(0x318),_0x7946bb(0x45c)),new Response(_0x5a8975[_0x7946bb(0x420)],{'status':_0x5a8975[_0x7946bb(0x4fa)],'headers':_0x43e954});}}catch(_0x17b87a){return new Response(JSON[_0x7946bb(0x38d)]({'error':_0x17b87a[_0x7946bb(0x3de)]}),{'status':0x1f4,'headers':{'Content-Type':_0x7946bb(0x1fa)}});}}if(_0x5b59d3==='api/config/new_ip'&&_0x5aa20f[_0x7946bb(0x1a2)]===_0x7946bb(0x433)){const _0x56c853=_0x3b797a[_0x7946bb(0x3c8)]!=='false'&&_0x3b797a[_0x7946bb(0x3c8)]!=='0';return new Response(JSON['stringify']({'new_ip':_0x56c853,'message':_0x7946bb(0x2fb)}),{'headers':{'Content-Type':_0x7946bb(0x1fa),'Access-Control-Allow-Origin':'*'}});}if(!_0x45e56f)return fetch(Pages静态页面+_0x7946bb(0x46f))[_0x7946bb(0x20a)](_0x14bcdf=>{const _0x1253ed=_0x7946bb,_0x47f1d7=new Headers(_0x14bcdf[_0x1253ed(0x3dd)]);return _0x47f1d7['set'](_0x1253ed(0x45d),'no-store,\x20no-cache,\x20must-revalidate,\x20proxy-revalidate'),_0x47f1d7[_0x1253ed(0x4d2)](_0x1253ed(0x32b),'no-cache'),_0x47f1d7[_0x1253ed(0x4d2)]('Expires','0'),new Response(_0x14bcdf[_0x1253ed(0x420)],{'status':0x194,'statusText':_0x14bcdf[_0x1253ed(0x377)],'headers':_0x47f1d7});});if(_0x3b797a['KV']&&typeof _0x3b797a['KV']['get']===_0x7946bb(0x426)){const _0x23b08f=_0x2db9e1['pathname']['slice'](0x1)[_0x7946bb(0x48a)](),_0x4d1bd3=_0x2db9e1[_0x7946bb(0x15b)]['slice'](0x1);if(_0x4d1bd3===_0x58c174&&_0x58c174!==_0x7946bb(0x32a)){const _0x33804f=new URLSearchParams(_0x2db9e1[_0x7946bb(0x236)]);return _0x33804f['set'](_0x7946bb(0x3e5),await MD5MD5(_0x51c8c6+_0x440d0c)),new Response(_0x7946bb(0x3c9),{'status':0x12e,'headers':{'Location':'/sub?'+_0x33804f[_0x7946bb(0x226)]()}});}else{if(_0x23b08f==='login'){const _0x69d987=_0x5aa20f['headers'][_0x7946bb(0x198)](_0x7946bb(0x28d))||'',_0x299014=_0x69d987[_0x7946bb(0x205)](';')[_0x7946bb(0x1fe)](_0x3bd312=>_0x3bd312[_0x7946bb(0x4d1)]()[_0x7946bb(0x190)](_0x7946bb(0x24b)))?.['split']('=')[0x1];if(_0x299014==await MD5MD5(_0x2a3ce2+_0x58c174+_0x45e56f))return new Response(_0x7946bb(0x3c9),{'status':0x12e,'headers':{'Location':_0x7946bb(0x216)}});if(_0x5aa20f[_0x7946bb(0x1a2)]===_0x7946bb(0x433)){const _0x4f65d9=await _0x5aa20f[_0x7946bb(0x43b)](),_0x318ec3=new URLSearchParams(_0x4f65d9),_0x89f283=_0x318ec3[_0x7946bb(0x198)](_0x7946bb(0x403));if(_0x89f283===_0x45e56f){const _0x44b249=new Response(JSON['stringify']({'success':!![]}),{'status':0xc8,'headers':{'Content-Type':_0x7946bb(0x2e7)}});return _0x44b249['headers'][_0x7946bb(0x4d2)](_0x7946bb(0x1aa),_0x7946bb(0x24b)+await MD5MD5(_0x2a3ce2+_0x58c174+_0x45e56f)+';\x20Path=/;\x20Max-Age=86400;\x20HttpOnly'),_0x44b249;}}return fetch(Pages静态页面+_0x7946bb(0x26f));}else{if(_0x23b08f===_0x7946bb(0x29a)||_0x23b08f[_0x7946bb(0x190)](_0x7946bb(0x31e))){const _0x2f2d01=_0x5aa20f[_0x7946bb(0x3dd)][_0x7946bb(0x198)](_0x7946bb(0x28d))||'',_0x1b3be1=_0x2f2d01[_0x7946bb(0x205)](';')['find'](_0x3172a0=>_0x3172a0[_0x7946bb(0x4d1)]()['startsWith'](_0x7946bb(0x24b)))?.[_0x7946bb(0x205)]('=')[0x1];if(!_0x1b3be1||_0x1b3be1!==await MD5MD5(_0x2a3ce2+_0x58c174+_0x45e56f))return new Response(_0x7946bb(0x3c9),{'status':0x12e,'headers':{'Location':_0x7946bb(0x26f)}});if(_0x23b08f==='admin/log.json'){const _0x4c512a=await _0x3b797a['KV']['get'](_0x7946bb(0x4eb))||'[]';return new Response(_0x4c512a,{'status':0xc8,'headers':{'Content-Type':_0x7946bb(0x2e7)}});}else{if(_0x4d1bd3===_0x7946bb(0x1da))try{const _0x5405c9=await getCloudflareUsage(_0x2db9e1[_0x7946bb(0x3ae)]['get']('Email'),_0x2db9e1[_0x7946bb(0x3ae)][_0x7946bb(0x198)](_0x7946bb(0x160)),_0x2db9e1[_0x7946bb(0x3ae)]['get'](_0x7946bb(0x35b)),_0x2db9e1[_0x7946bb(0x3ae)]['get']('APIToken'));return new Response(JSON[_0x7946bb(0x38d)](_0x5405c9,null,0x2),{'status':0xc8,'headers':{'Content-Type':_0x7946bb(0x1fa)}});}catch(_0x58b391){const _0x8dfad5={'msg':'查询请求量失败,失败原因:'+_0x58b391[_0x7946bb(0x3de)],'error':_0x58b391['message']};return new Response(JSON[_0x7946bb(0x38d)](_0x8dfad5,null,0x2),{'status':0x1f4,'headers':{'Content-Type':_0x7946bb(0x2e7)}});}else{if(_0x4d1bd3===_0x7946bb(0x487)){if(_0x2db9e1[_0x7946bb(0x3ae)][_0x7946bb(0x198)](_0x7946bb(0x42f))){const _0x87b28e=_0x2db9e1[_0x7946bb(0x3ae)][_0x7946bb(0x198)](_0x7946bb(0x42f));try{new URL(_0x87b28e);const _0x724a6c=await 请求优选API([_0x87b28e],_0x2db9e1[_0x7946bb(0x3ae)][_0x7946bb(0x198)](_0x7946bb(0x3fe))||_0x7946bb(0x217)),_0x3c191b=_0x724a6c[0x0][_0x7946bb(0x3ff)]>0x0?_0x724a6c[0x0]:_0x724a6c[0x1];return new Response(JSON[_0x7946bb(0x38d)]({'success':!![],'data':_0x3c191b},null,0x2),{'status':0xc8,'headers':{'Content-Type':'application/json;charset=utf-8'}});}catch(_0x444f4e){const _0x1fa126={'msg':_0x7946bb(0x1d8)+_0x444f4e[_0x7946bb(0x3de)],'error':_0x444f4e[_0x7946bb(0x3de)]};return new Response(JSON[_0x7946bb(0x38d)](_0x1fa126,null,0x2),{'status':0x1f4,'headers':{'Content-Type':'application/json;charset=utf-8'}});}}return new Response(JSON['stringify']({'success':![],'data':[]},null,0x2),{'status':0x193,'headers':{'Content-Type':'application/json;charset=utf-8'}});}else{if(_0x23b08f===_0x7946bb(0x1f6)){let _0x379691;if(_0x2db9e1[_0x7946bb(0x3ae)]['has'](_0x7946bb(0x1ad)))_0x379691=await SOCKS5可用性验证(_0x7946bb(0x1ad),_0x2db9e1[_0x7946bb(0x3ae)][_0x7946bb(0x198)](_0x7946bb(0x1ad)));else{if(_0x2db9e1[_0x7946bb(0x3ae)]['has'](_0x7946bb(0x4f9)))_0x379691=await SOCKS5可用性验证(_0x7946bb(0x4f9),_0x2db9e1[_0x7946bb(0x3ae)][_0x7946bb(0x198)](_0x7946bb(0x4f9)));else return new Response(JSON[_0x7946bb(0x38d)]({'error':_0x7946bb(0x352)}),{'status':0x190,'headers':{'Content-Type':_0x7946bb(0x2e7)}});}return new Response(JSON[_0x7946bb(0x38d)](_0x379691,null,0x2),{'status':0xc8,'headers':{'Content-Type':'application/json;charset=utf-8'}});}}}}config_JSON=await 读取config_JSON(_0x3b797a,_0x51c8c6,_0x440d0c,_0x3b797a['PATH']);if(_0x23b08f===_0x7946bb(0x238))try{return config_JSON=await 读取config_JSON(_0x3b797a,_0x51c8c6,_0x440d0c,_0x3b797a[_0x7946bb(0x3d8)],!![]),_0x1c55d0['waitUntil'](请求日志记录(_0x3b797a,_0x5aa20f,_0x31d9ff,_0x7946bb(0x4d7),config_JSON)),config_JSON['init']=_0x7946bb(0x151),new Response(JSON[_0x7946bb(0x38d)](config_JSON,null,0x2),{'status':0xc8,'headers':{'Content-Type':_0x7946bb(0x2e7)}});}catch(_0x1a4e4f){const _0x3972af={'msg':_0x7946bb(0x51e)+_0x1a4e4f['message'],'error':_0x1a4e4f[_0x7946bb(0x3de)]};return new Response(JSON[_0x7946bb(0x38d)](_0x3972af,null,0x2),{'status':0x1f4,'headers':{'Content-Type':_0x7946bb(0x2e7)}});}else{if(_0x5aa20f[_0x7946bb(0x1a2)]===_0x7946bb(0x433)){if(_0x23b08f===_0x7946bb(0x249))try{const _0x4e51a5=await _0x5aa20f['json']();if(!_0x4e51a5[_0x7946bb(0x448)]||!_0x4e51a5[_0x7946bb(0x428)])return new Response(JSON[_0x7946bb(0x38d)]({'error':_0x7946bb(0x210)}),{'status':0x190,'headers':{'Content-Type':_0x7946bb(0x2e7)}});return await _0x3b797a['KV'][_0x7946bb(0x4be)](_0x7946bb(0x51c),JSON[_0x7946bb(0x38d)](_0x4e51a5,null,0x2)),_0x1c55d0[_0x7946bb(0x313)](请求日志记录(_0x3b797a,_0x5aa20f,_0x31d9ff,_0x7946bb(0x24f),config_JSON)),new Response(JSON[_0x7946bb(0x38d)]({'success':!![],'message':_0x7946bb(0x1ee)}),{'status':0xc8,'headers':{'Content-Type':_0x7946bb(0x2e7)}});}catch(_0x1ee287){return console['error'](_0x7946bb(0x3df),_0x1ee287),new Response(JSON[_0x7946bb(0x38d)]({'error':_0x7946bb(0x4ec)+_0x1ee287[_0x7946bb(0x3de)]}),{'status':0x1f4,'headers':{'Content-Type':_0x7946bb(0x2e7)}});}else{if(_0x23b08f===_0x7946bb(0x1a6))try{const _0x331717=await _0x5aa20f[_0x7946bb(0x18e)](),_0x1e71a9={'Email':null,'GlobalAPIKey':null,'AccountID':null,'APIToken':null,'UsageAPI':null};if(!_0x331717[_0x7946bb(0x2dc)]||_0x331717[_0x7946bb(0x2dc)]!==!![]){if(_0x331717[_0x7946bb(0x2ea)]&&_0x331717[_0x7946bb(0x160)])_0x1e71a9['Email']=_0x331717[_0x7946bb(0x2ea)],_0x1e71a9[_0x7946bb(0x160)]=_0x331717['GlobalAPIKey'];else{if(_0x331717[_0x7946bb(0x35b)]&&_0x331717[_0x7946bb(0x4ee)])_0x1e71a9[_0x7946bb(0x35b)]=_0x331717[_0x7946bb(0x35b)],_0x1e71a9[_0x7946bb(0x4ee)]=_0x331717[_0x7946bb(0x4ee)];else{if(_0x331717[_0x7946bb(0x2fe)])_0x1e71a9['UsageAPI']=_0x331717[_0x7946bb(0x2fe)];else return new Response(JSON[_0x7946bb(0x38d)]({'error':_0x7946bb(0x210)}),{'status':0x190,'headers':{'Content-Type':'application/json;charset=utf-8'}});}}}return await _0x3b797a['KV']['put'](_0x7946bb(0x51a),JSON[_0x7946bb(0x38d)](_0x1e71a9,null,0x2)),_0x1c55d0[_0x7946bb(0x313)](请求日志记录(_0x3b797a,_0x5aa20f,_0x31d9ff,_0x7946bb(0x24f),config_JSON)),new Response(JSON[_0x7946bb(0x38d)]({'success':!![],'message':_0x7946bb(0x1ee)}),{'status':0xc8,'headers':{'Content-Type':'application/json;charset=utf-8'}});}catch(_0x5b9b48){return console[_0x7946bb(0x1e8)](_0x7946bb(0x3df),_0x5b9b48),new Response(JSON[_0x7946bb(0x38d)]({'error':_0x7946bb(0x4ec)+_0x5b9b48[_0x7946bb(0x3de)]}),{'status':0x1f4,'headers':{'Content-Type':'application/json;charset=utf-8'}});}else{if(_0x23b08f===_0x7946bb(0x4da))try{const _0x46d1cc=await _0x5aa20f[_0x7946bb(0x18e)]();if(_0x46d1cc[_0x7946bb(0x2dc)]&&_0x46d1cc[_0x7946bb(0x2dc)]===!![]){const _0x3d2ab5={'BotToken':null,'ChatID':null};await _0x3b797a['KV'][_0x7946bb(0x4be)](_0x7946bb(0x38e),JSON[_0x7946bb(0x38d)](_0x3d2ab5,null,0x2));}else{if(!_0x46d1cc['BotToken']||!_0x46d1cc[_0x7946bb(0x50a)])return new Response(JSON[_0x7946bb(0x38d)]({'error':_0x7946bb(0x210)}),{'status':0x190,'headers':{'Content-Type':_0x7946bb(0x2e7)}});await _0x3b797a['KV'][_0x7946bb(0x4be)](_0x7946bb(0x38e),JSON['stringify'](_0x46d1cc,null,0x2));}return _0x1c55d0[_0x7946bb(0x313)](请求日志记录(_0x3b797a,_0x5aa20f,_0x31d9ff,_0x7946bb(0x24f),config_JSON)),new Response(JSON[_0x7946bb(0x38d)]({'success':!![],'message':_0x7946bb(0x1ee)}),{'status':0xc8,'headers':{'Content-Type':_0x7946bb(0x2e7)}});}catch(_0x364e45){return console[_0x7946bb(0x1e8)](_0x7946bb(0x3df),_0x364e45),new Response(JSON[_0x7946bb(0x38d)]({'error':_0x7946bb(0x4ec)+_0x364e45['message']}),{'status':0x1f4,'headers':{'Content-Type':_0x7946bb(0x2e7)}});}else{if(_0x4d1bd3==='admin/ADD.txt')try{const _0x3bab91=await _0x5aa20f[_0x7946bb(0x43b)]();return await _0x3b797a['KV']['put']('ADD.txt',_0x3bab91),_0x1c55d0[_0x7946bb(0x313)](请求日志记录(_0x3b797a,_0x5aa20f,_0x31d9ff,'Save_Custom_IPs',config_JSON)),new Response(JSON[_0x7946bb(0x38d)]({'success':!![],'message':_0x7946bb(0x40b)}),{'status':0xc8,'headers':{'Content-Type':_0x7946bb(0x2e7)}});}catch(_0x2a5549){return console['error'](_0x7946bb(0x283),_0x2a5549),new Response(JSON[_0x7946bb(0x38d)]({'error':_0x7946bb(0x20c)+_0x2a5549[_0x7946bb(0x3de)]}),{'status':0x1f4,'headers':{'Content-Type':_0x7946bb(0x2e7)}});}else return new Response(JSON['stringify']({'error':_0x7946bb(0x4dc)}),{'status':0x194,'headers':{'Content-Type':_0x7946bb(0x2e7)}});}}}}else{if(_0x23b08f===_0x7946bb(0x249))return new Response(JSON[_0x7946bb(0x38d)](config_JSON,null,0x2),{'status':0xc8,'headers':{'Content-Type':'application/json'}});else{if(_0x4d1bd3===_0x7946bb(0x1dd)){let _0x3513a9=await _0x3b797a['KV'][_0x7946bb(0x198)](_0x7946bb(0x480))||_0x7946bb(0x3c1);if(_0x3513a9==_0x7946bb(0x3c1))_0x3513a9=(await 生成随机IP(_0x5aa20f,config_JSON[_0x7946bb(0x3d2)][_0x7946bb(0x4ca)][_0x7946bb(0x477)],config_JSON['优选订阅生成'][_0x7946bb(0x4ca)][_0x7946bb(0x30e)]))[0x1];return new Response(_0x3513a9,{'status':0xc8,'headers':{'Content-Type':'text/plain;charset=utf-8','asn':_0x5aa20f['cf'][_0x7946bb(0x1c5)]}});}else{if(_0x23b08f===_0x7946bb(0x1a6))return new Response(JSON[_0x7946bb(0x38d)](_0x5aa20f['cf'],null,0x2),{'status':0xc8,'headers':{'Content-Type':_0x7946bb(0x2e7)}});}}}}return _0x1c55d0[_0x7946bb(0x313)](请求日志记录(_0x3b797a,_0x5aa20f,_0x31d9ff,_0x7946bb(0x495),config_JSON)),fetch(Pages静态页面+'/admin');}else{if(_0x23b08f===_0x7946bb(0x154)||_0x56f376['test'](_0x23b08f)){const _0x4f085f=new Response('重定向中...',{'status':0x12e,'headers':{'Location':_0x7946bb(0x26f)}});return _0x4f085f[_0x7946bb(0x3dd)][_0x7946bb(0x4d2)](_0x7946bb(0x1aa),_0x7946bb(0x3f8)),_0x4f085f;}else{if(_0x23b08f===_0x7946bb(0x3e6)){const _0x4fb767=await MD5MD5(_0x51c8c6+_0x440d0c);if(_0x2db9e1[_0x7946bb(0x3ae)][_0x7946bb(0x198)](_0x7946bb(0x3e5))===_0x4fb767){config_JSON=await 读取config_JSON(_0x3b797a,_0x51c8c6,_0x440d0c,_0x3b797a[_0x7946bb(0x3d8)]),_0x1c55d0[_0x7946bb(0x313)](请求日志记录(_0x3b797a,_0x5aa20f,_0x31d9ff,'Get_SUB',config_JSON));const _0x3970d8=_0x2a3ce2[_0x7946bb(0x48a)](),_0x2b0035=0xf4849500,_0x4e42a2=Date[_0x7946bb(0x28f)](),_0x4e4f77=new Date(_0x4e42a2);_0x4e4f77[_0x7946bb(0x169)](0x0,0x0,0x0,0x0);const _0x51b794=Math[_0x7946bb(0x502)]((_0x4e42a2-_0x4e4f77['getTime']())/0x5265c00*0x18*0x10000000000/0x2);let _0x1c774c=_0x51b794,_0x429125=_0x51b794,_0x2eedc2=0x18*0x10000000000;config_JSON['CF']['Usage']['success']&&(_0x1c774c=config_JSON['CF'][_0x7946bb(0x1d9)][_0x7946bb(0x402)],_0x429125=config_JSON['CF']['Usage'][_0x7946bb(0x4e7)],_0x2eedc2=Number[_0x7946bb(0x1a3)](config_JSON['CF'][_0x7946bb(0x1d9)]['max'])?config_JSON['CF'][_0x7946bb(0x1d9)][_0x7946bb(0x20f)]/0x3e8*0x400:0x400*0x64);const _0x2dbc1e={'content-type':_0x7946bb(0x340),'Profile-Update-Interval':config_JSON[_0x7946bb(0x3d2)][_0x7946bb(0x41d)],'Profile-web-page-url':_0x2db9e1[_0x7946bb(0x24a)]+'//'+_0x2db9e1[_0x7946bb(0x40d)]+_0x7946bb(0x216),'Subscription-Userinfo':_0x7946bb(0x1e1)+_0x1c774c+';\x20download='+_0x429125+_0x7946bb(0x1a7)+_0x2eedc2+_0x7946bb(0x2f2)+_0x2b0035,'Cache-Control':_0x7946bb(0x350)},_0x4d34dd=_0x2db9e1[_0x7946bb(0x3ae)][_0x7946bb(0x3d5)](_0x7946bb(0x275))||_0x2db9e1[_0x7946bb(0x3ae)]['has'](_0x7946bb(0x1f7))||_0x5aa20f['headers']['get']('subconverter-request')||_0x5aa20f['headers'][_0x7946bb(0x198)](_0x7946bb(0x45e))||_0x3970d8[_0x7946bb(0x153)](_0x7946bb(0x268))||_0x3970d8[_0x7946bb(0x153)](_0x7946bb(0x4d4)['toLowerCase']()),_0x19f366=_0x4d34dd?_0x7946bb(0x3ba):_0x2db9e1['searchParams'][_0x7946bb(0x3d5)](_0x7946bb(0x3ef))?_0x2db9e1[_0x7946bb(0x3ae)]['get'](_0x7946bb(0x3ef)):_0x2db9e1['searchParams'][_0x7946bb(0x3d5)](_0x7946bb(0x176))||_0x3970d8['includes']('clash')||_0x3970d8['includes'](_0x7946bb(0x3f3))||_0x3970d8[_0x7946bb(0x153)](_0x7946bb(0x31f))?_0x7946bb(0x176):_0x2db9e1[_0x7946bb(0x3ae)][_0x7946bb(0x3d5)]('sb')||_0x2db9e1[_0x7946bb(0x3ae)][_0x7946bb(0x3d5)](_0x7946bb(0x3ee))||_0x3970d8[_0x7946bb(0x153)](_0x7946bb(0x3ee))||_0x3970d8['includes'](_0x7946bb(0x504))?'singbox':_0x2db9e1['searchParams']['has'](_0x7946bb(0x2ca))||_0x3970d8[_0x7946bb(0x153)](_0x7946bb(0x2ca))?_0x7946bb(0x23d):_0x2db9e1[_0x7946bb(0x3ae)][_0x7946bb(0x3d5)](_0x7946bb(0x3e2))||_0x3970d8[_0x7946bb(0x153)](_0x7946bb(0x157))?_0x7946bb(0x3e2):_0x2db9e1[_0x7946bb(0x3ae)][_0x7946bb(0x3d5)](_0x7946bb(0x1b2))||_0x3970d8[_0x7946bb(0x153)](_0x7946bb(0x1b2))?'loon':'mixed';if(!_0x3970d8[_0x7946bb(0x153)]('mozilla'))_0x2dbc1e['Content-Disposition']='attachment;\x20filename*=utf-8\x27\x27'+encodeURIComponent(config_JSON[_0x7946bb(0x3d2)][_0x7946bb(0x1f0)]);const _0x580607=_0x2db9e1['searchParams'][_0x7946bb(0x3d5)]('surge')||_0x3970d8[_0x7946bb(0x153)](_0x7946bb(0x2ca))?_0x7946bb(0x462)+_0x7946bb(0x517):config_JSON[_0x7946bb(0x3d1)];let _0x229a4a='';if(_0x19f366==='mixed'){const _0x35be47=config_JSON['启用0RTT']?config_JSON[_0x7946bb(0x3d8)]+_0x7946bb(0x175):config_JSON['PATH'],_0x5ce612=config_JSON[_0x7946bb(0x3d4)]==_0x7946bb(0x42e)?_0x7946bb(0x263)+encodeURIComponent(_0x7946bb(0x2c5)):config_JSON[_0x7946bb(0x3d4)]==_0x7946bb(0x3b4)?_0x7946bb(0x263)+encodeURIComponent(_0x7946bb(0x37d)):'';let _0x2d6d0b=[],_0x51f3b7='';if(!_0x2db9e1[_0x7946bb(0x3ae)][_0x7946bb(0x3d5)](_0x7946bb(0x3e6))&&config_JSON['优选订阅生成'][_0x7946bb(0x1df)]){const _0x17037b=config_JSON[_0x7946bb(0x3d2)][_0x7946bb(0x4ca)]['随机IP']?(await 生成随机IP(_0x5aa20f,config_JSON[_0x7946bb(0x3d2)][_0x7946bb(0x4ca)]['随机数量'],config_JSON[_0x7946bb(0x3d2)][_0x7946bb(0x4ca)]['指定端口']))[0x0]:await _0x3b797a['KV'][_0x7946bb(0x198)](_0x7946bb(0x480))?await 整理成数组(await _0x3b797a['KV'][_0x7946bb(0x198)]('ADD.txt')):(await 生成随机IP(_0x5aa20f,config_JSON[_0x7946bb(0x3d2)][_0x7946bb(0x4ca)][_0x7946bb(0x477)],config_JSON[_0x7946bb(0x3d2)]['本地IP库'][_0x7946bb(0x30e)]))[0x0],_0x3712d6=[],_0x156d68=[],_0x4cbe4a=[];for(const _0x2f84ed of _0x17037b){if(_0x2f84ed[_0x7946bb(0x48a)]()[_0x7946bb(0x190)](_0x7946bb(0x31b)))_0x3712d6[_0x7946bb(0x14c)](_0x2f84ed);else{if(_0x2f84ed[_0x7946bb(0x48a)]()[_0x7946bb(0x153)](_0x7946bb(0x3e7))){if(_0x2f84ed[_0x7946bb(0x153)]('#')){const _0x53d8b6=_0x2f84ed['split']('#');_0x4cbe4a[_0x7946bb(0x14c)](_0x53d8b6[0x0]+'#'+encodeURIComponent(decodeURIComponent(_0x53d8b6[0x1])));}else _0x4cbe4a['push'](_0x2f84ed);}else _0x156d68[_0x7946bb(0x14c)](_0x2f84ed);}}const _0x1f3edf=await 请求优选API(_0x3712d6),_0x476f46=[...new Set(_0x4cbe4a[_0x7946bb(0x287)](_0x1f3edf[0x1]))];_0x51f3b7=_0x476f46[_0x7946bb(0x3ff)]>0x0?_0x476f46[_0x7946bb(0x315)]('\x0a')+'\x0a':'';const _0x433356=_0x1f3edf[0x0];_0x2d6d0b=[...new Set(_0x156d68[_0x7946bb(0x287)](_0x433356))];}else{let _0x9fcc20=_0x2db9e1['searchParams'][_0x7946bb(0x198)]('sub')||config_JSON[_0x7946bb(0x3d2)][_0x7946bb(0x3da)];_0x9fcc20=_0x9fcc20&&!/^https?:\/\//i[_0x7946bb(0x49f)](_0x9fcc20)?_0x7946bb(0x31b)+_0x9fcc20:_0x9fcc20;const _0x4bc650=_0x9fcc20+_0x7946bb(0x46b);try{const _0x2b3cfe=await fetch(_0x4bc650,{'headers':{'User-Agent':_0x7946bb(0x1c0)+'tunnel\x20(https://github.com/cmliu/edge'+_0x7946bb(0x3e4)}});if(!_0x2b3cfe['ok'])return new Response(_0x7946bb(0x1ba)+_0x2b3cfe['statusText'],{'status':_0x2b3cfe[_0x7946bb(0x4fa)]});const _0x48eae6=atob(await _0x2b3cfe['text']()),_0xf89c86=_0x48eae6['includes']('\x0d\x0a')?_0x48eae6['split']('\x0d\x0a'):_0x48eae6[_0x7946bb(0x205)]('\x0a');for(const _0x78d213 of _0xf89c86){if(!_0x78d213['trim']())continue;if(_0x78d213[_0x7946bb(0x153)]('00000000-0000-4000-8000-000000000000')&&_0x78d213[_0x7946bb(0x153)](_0x7946bb(0x310))){const _0x28662b=_0x78d213[_0x7946bb(0x4ff)](/:\/\/[^@]+@([^?]+)/);if(_0x28662b){let _0x28a726=_0x28662b[0x1],_0x3357b7='';const _0x2695d1=_0x78d213[_0x7946bb(0x4ff)](/#(.+)$/);if(_0x2695d1)_0x3357b7='#'+decodeURIComponent(_0x2695d1[0x1]);_0x2d6d0b[_0x7946bb(0x14c)](_0x28a726+_0x3357b7);}}else _0x51f3b7+=_0x78d213+'\x0a';}}catch(_0x119170){return new Response(_0x7946bb(0x1ba)+_0x119170[_0x7946bb(0x3de)],{'status':0x193});}}const _0x52c687=config_JSON[_0x7946bb(0x35a)]?_0x7946bb(0x347)+encodeURIComponent(_0x7946bb(0x484)+ECH_DOH):'';_0x229a4a=_0x51f3b7+_0x2d6d0b['map'](_0xe03718=>{const _0x4fec3d=_0x7946bb,_0x5463c8=/^(\[[\da-fA-F:]+\]|[\d.]+|[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?)*)(?::(\d+))?(?:#(.+))?$/,_0x453498=_0xe03718['match'](_0x5463c8);let _0x57bb66,_0x3ea228=_0x4fec3d(0x217),_0x5e7033;if(_0x453498)_0x57bb66=_0x453498[0x1],_0x3ea228=_0x453498[0x2]||'443',_0x5e7033=_0x453498[0x3]||_0x57bb66;else return console['warn']('[订阅内容]\x20不规范的IP格式已忽略:\x20'+_0xe03718),null;return _0x580607+_0x4fec3d(0x211)+_0x57bb66+':'+_0x3ea228+_0x4fec3d(0x3b1)+(config_JSON[_0x4fec3d(0x1de)]+_0x52c687)+'&host=example.com&fp='+config_JSON[_0x4fec3d(0x508)]+_0x4fec3d(0x2aa)+(encodeURIComponent(config_JSON[_0x4fec3d(0x370)]?随机路径()+_0x35be47:_0x35be47)+_0x5ce612)+_0x4fec3d(0x50b)+(config_JSON[_0x4fec3d(0x3be)]?_0x4fec3d(0x359):'')+'#'+encodeURIComponent(_0x5e7033);})['filter'](_0x289864=>_0x289864!==null)['join']('\x0a');}else{const _0x55121f=config_JSON[_0x7946bb(0x48b)][_0x7946bb(0x405)]+_0x7946bb(0x208)+_0x19f366+_0x7946bb(0x4bc)+encodeURIComponent(_0x2db9e1[_0x7946bb(0x24a)]+'//'+_0x2db9e1[_0x7946bb(0x40d)]+'/sub?target=mixed&token='+_0x4fb767+(_0x2db9e1[_0x7946bb(0x3ae)][_0x7946bb(0x3d5)](_0x7946bb(0x3e6))&&_0x2db9e1[_0x7946bb(0x3ae)][_0x7946bb(0x198)](_0x7946bb(0x3e6))!=''?_0x7946bb(0x431)+_0x2db9e1[_0x7946bb(0x3ae)]['get'](_0x7946bb(0x3e6)):''))+'&config='+encodeURIComponent(config_JSON[_0x7946bb(0x48b)][_0x7946bb(0x457)])+_0x7946bb(0x19c)+config_JSON[_0x7946bb(0x48b)][_0x7946bb(0x39a)]+_0x7946bb(0x317)+config_JSON[_0x7946bb(0x3be)];try{const _0x36aec6=await fetch(_0x55121f,{'headers':{'User-Agent':'Subconverter\x20for\x20'+_0x19f366+_0x7946bb(0x458)+_0x7946bb(0x1b7)+_0x7946bb(0x3e4)}});if(_0x36aec6['ok']){_0x229a4a=await _0x36aec6[_0x7946bb(0x43b)]();if(_0x2db9e1[_0x7946bb(0x3ae)][_0x7946bb(0x3d5)](_0x7946bb(0x2ca))||_0x3970d8[_0x7946bb(0x153)](_0x7946bb(0x2ca)))_0x229a4a=Surge订阅配置文件热补丁(_0x229a4a,_0x2db9e1['protocol']+'//'+_0x2db9e1[_0x7946bb(0x40d)]+_0x7946bb(0x2dd)+_0x4fb767+_0x7946bb(0x391),config_JSON);}else return new Response(_0x7946bb(0x49c)+_0x36aec6['statusText'],{'status':_0x36aec6[_0x7946bb(0x4fa)]});}catch(_0x6b9858){return new Response('订阅转换后端异常:'+_0x6b9858[_0x7946bb(0x3de)],{'status':0x193});}}if(!_0x3970d8[_0x7946bb(0x153)](_0x7946bb(0x268)))_0x229a4a=await 批量替换域名(_0x229a4a['replace'](/00000000-0000-4000-8000-000000000000/g,config_JSON['UUID']),config_JSON[_0x7946bb(0x497)]);if(_0x19f366===_0x7946bb(0x3ba)&&(!_0x3970d8[_0x7946bb(0x153)](_0x7946bb(0x35e))||_0x2db9e1[_0x7946bb(0x3ae)][_0x7946bb(0x3d5)]('b64')||_0x2db9e1[_0x7946bb(0x3ae)][_0x7946bb(0x3d5)](_0x7946bb(0x1f7))))_0x229a4a=btoa(_0x229a4a);if(_0x19f366===_0x7946bb(0x3ee))_0x229a4a=Singbox订阅配置文件热补丁(_0x229a4a,config_JSON[_0x7946bb(0x448)],config_JSON[_0x7946bb(0x508)],config_JSON[_0x7946bb(0x35a)]?await getECH(_0x51c8c6):null),_0x2dbc1e['content-type']=_0x7946bb(0x213);else _0x19f366===_0x7946bb(0x176)&&(_0x229a4a=Clash订阅配置文件热补丁(_0x229a4a,config_JSON['UUID'],config_JSON[_0x7946bb(0x35a)],config_JSON[_0x7946bb(0x497)]),_0x2dbc1e[_0x7946bb(0x34c)]=_0x7946bb(0x4b6));return new Response(_0x229a4a,{'status':0xc8,'headers':_0x2dbc1e});}}else{if(_0x23b08f==='locations'){const _0x411c3c=_0x5aa20f[_0x7946bb(0x3dd)][_0x7946bb(0x198)](_0x7946bb(0x28d))||'',_0x8e5992=_0x411c3c['split'](';')[_0x7946bb(0x1fe)](_0x7d1461=>_0x7d1461['trim']()['startsWith'](_0x7946bb(0x24b)))?.[_0x7946bb(0x205)]('=')[0x1];if(_0x8e5992&&_0x8e5992==await MD5MD5(_0x2a3ce2+_0x58c174+_0x45e56f))return fetch(new Request(_0x7946bb(0x187),{'headers':{'Referer':'https://speed.cloudflare.com/'}}));}else{if(_0x23b08f===_0x7946bb(0x274))return new Response('User-agent:\x20*\x0aDisallow:\x20/',{'status':0xc8,'headers':{'Content-Type':_0x7946bb(0x349)}});}}}}}}}else{if(!_0x18d2b1)return fetch(Pages静态页面+_0x7946bb(0x3f4))['then'](_0x362758=>{const _0x376385=_0x7946bb,_0x5bf285=new Headers(_0x362758[_0x376385(0x3dd)]);return _0x5bf285[_0x376385(0x4d2)](_0x376385(0x45d),'no-store,\x20no-cache,\x20must-revalidate,\x20proxy-revalidate'),_0x5bf285[_0x376385(0x4d2)](_0x376385(0x32b),_0x376385(0x2c7)),_0x5bf285[_0x376385(0x4d2)](_0x376385(0x18c),'0'),new Response(_0x362758['body'],{'status':0x194,'statusText':_0x362758[_0x376385(0x377)],'headers':_0x5bf285});});}}else{if(_0x45e56f){await 反代参数获取(_0x5aa20f);const _0x3fc721=new URL(_0x5aa20f[_0x7946bb(0x42f)])[_0x7946bb(0x15b)];let _0x34d469='';if(_0x3fc721['includes'](_0x7946bb(0x23e))){const _0x419e10=_0x3fc721['match'](/two_proxy=([^&]+)/);_0x419e10&&(_0x34d469=decodeURIComponent(decodeURIComponent(_0x419e10[0x1])));}const _0x1ac1d9=_0x34d469||_0x3b797a[_0x7946bb(0x1e9)]||_0x3b797a[_0x7946bb(0x40c)]||'';return await 处理WS请求(_0x5aa20f,_0x440d0c,_0x1ac1d9);}}let _0x4c9359=_0x3b797a[_0x7946bb(0x4c5)]||'nginx';if(_0x4c9359&&_0x4c9359!==_0x7946bb(0x2d0)&&_0x4c9359!==_0x7946bb(0x1af)){_0x4c9359=_0x4c9359[_0x7946bb(0x4d1)]()['replace'](/\/$/,'');if(!_0x4c9359[_0x7946bb(0x4ff)](/^https?:\/\//i))_0x4c9359=_0x7946bb(0x31b)+_0x4c9359;if(_0x4c9359['toLowerCase']()[_0x7946bb(0x190)]('http://'))_0x4c9359=_0x7946bb(0x31b)+_0x4c9359[_0x7946bb(0x1fd)](0x7);try{const _0x177be5=new URL(_0x4c9359);_0x4c9359=_0x177be5[_0x7946bb(0x24a)]+'//'+_0x177be5[_0x7946bb(0x40d)];}catch(_0x3143a1){_0x4c9359='nginx';}}if(_0x4c9359===_0x7946bb(0x1af))return new Response(await html1101(_0x2db9e1[_0x7946bb(0x40d)],_0x31d9ff),{'status':0xc8,'headers':{'Content-Type':_0x7946bb(0x1ed)}});try{const _0x2a1149=new URL(_0x4c9359),_0x491fa5=new Headers(_0x5aa20f[_0x7946bb(0x3dd)]);_0x491fa5[_0x7946bb(0x4d2)](_0x7946bb(0x2c6),_0x2a1149[_0x7946bb(0x40d)]),_0x491fa5['set']('Referer',_0x2a1149[_0x7946bb(0x35f)]),_0x491fa5['set'](_0x7946bb(0x20b),_0x2a1149[_0x7946bb(0x35f)]);if(!_0x491fa5[_0x7946bb(0x3d5)](_0x7946bb(0x16b))&&_0x2a3ce2&&_0x2a3ce2!=='null')_0x491fa5[_0x7946bb(0x4d2)](_0x7946bb(0x16b),_0x2a3ce2);const _0x53bd04=await fetch(_0x2a1149[_0x7946bb(0x35f)]+_0x2db9e1['pathname']+_0x2db9e1['search'],{'method':_0x5aa20f['method'],'headers':_0x491fa5,'body':_0x5aa20f['body'],'cf':_0x5aa20f['cf']}),_0x4776ba=_0x53bd04[_0x7946bb(0x3dd)][_0x7946bb(0x198)]('content-type')||'';if(/text|javascript|json|xml/['test'](_0x4776ba)){const _0x5cee64=(await _0x53bd04[_0x7946bb(0x43b)]())[_0x7946bb(0x400)](_0x2a1149[_0x7946bb(0x40d)],_0x2db9e1[_0x7946bb(0x40d)]);return new Response(_0x5cee64,{'status':_0x53bd04[_0x7946bb(0x4fa)],'headers':{...Object['fromEntries'](_0x53bd04['headers']),'Cache-Control':_0x7946bb(0x350)}});}return _0x53bd04;}catch(_0x48cf7b){}return new Response(await nginx(),{'status':0xc8,'headers':{'Content-Type':'text/html;\x20charset=UTF-8'}});}};async function 处理WS请求(_0x2c66b5,_0x3e2b7e,_0xff8b7f=''){const _0x49d93b=_0x10737d,_0x33c10b=new WebSocketPair(),[_0x2ce546,_0x186d96]=Object[_0x49d93b(0x302)](_0x33c10b);_0x186d96['accept']();let _0x10f749={'socket':null},_0x1fde25=![];const _0x5045d4=_0x2c66b5['headers'][_0x49d93b(0x198)](_0x49d93b(0x4c2))||'',_0x7acab4=makeReadableStr(_0x186d96,_0x5045d4);let _0x24f556=null,_0xa0848c=null;if(_0xff8b7f){const _0x1c2e6f=_0xff8b7f[_0x49d93b(0x205)](':');_0x1c2e6f[_0x49d93b(0x3ff)]>=0x2&&(_0xa0848c={'hostname':_0x1c2e6f[0x0],'port':parseInt(_0x1c2e6f[0x1],0xa),'username':_0x1c2e6f[0x2]||'','password':_0x1c2e6f[0x3]||''},console['log']('[双层代理]\x20已启用:\x20'+_0xa0848c[_0x49d93b(0x3c4)]+':'+_0xa0848c[_0x49d93b(0x3fe)]));}return _0x7acab4[_0x49d93b(0x3ed)](new WritableStream({async 'write'(_0xf5c730){const _0x1c9698=_0x49d93b;if(_0x1fde25)return await forwardataudp(_0xf5c730,_0x186d96,null);if(_0x10f749[_0x1c9698(0x319)]){const _0x14201d=_0x10f749[_0x1c9698(0x319)][_0x1c9698(0x3b6)][_0x1c9698(0x48d)]();await _0x14201d[_0x1c9698(0x30a)](_0xf5c730),_0x14201d[_0x1c9698(0x31d)]();return;}if(_0x24f556===null){const _0x30ba48=new Uint8Array(_0xf5c730);_0x24f556=_0x30ba48[_0x1c9698(0x434)]>=0x3a&&_0x30ba48[0x38]===0xd&&_0x30ba48[0x39]===0xa;}if(_0x10f749[_0x1c9698(0x319)]){const _0x24ce4b=_0x10f749[_0x1c9698(0x319)]['writable']['getWriter']();await _0x24ce4b[_0x1c9698(0x30a)](_0xf5c730),_0x24ce4b[_0x1c9698(0x31d)]();return;}if(_0x24f556){const {port:_0x2982ca,hostname:_0x3fe942,rawClientData:_0x32c31f}=解析木马请求(_0xf5c730,_0x3e2b7e);if(isSpeedTestSite(_0x3fe942))throw new Error(_0x1c9698(0x506));await forwardataTCP(_0x3fe942,_0x2982ca,_0x32c31f,_0x186d96,null,_0x10f749,_0x3e2b7e,_0xa0848c);}else{const {port:_0x42ae20,hostname:_0x38a189,rawIndex:_0x1f3656,version:_0x45f9e4,isUDP:_0x801858}=解析魏烈思请求(_0xf5c730,_0x3e2b7e);if(isSpeedTestSite(_0x38a189))throw new Error(_0x1c9698(0x506));if(_0x801858){if(_0x42ae20===0x35)_0x1fde25=!![];else throw new Error(_0x1c9698(0x449));}const _0x51cfba=new Uint8Array([_0x45f9e4[0x0],0x0]),_0x16bcba=_0xf5c730[_0x1c9698(0x471)](_0x1f3656);if(_0x1fde25)return forwardataudp(_0x16bcba,_0x186d96,_0x51cfba);await forwardataTCP(_0x38a189,_0x42ae20,_0x16bcba,_0x186d96,_0x51cfba,_0x10f749,_0x3e2b7e,_0xa0848c);}}}))[_0x49d93b(0x42c)](_0x1d9faf=>{}),new Response(null,{'status':0x65,'webSocket':_0x2ce546});}function 解析木马请求(_0x18719a,_0x50cda8){const _0x582138=_0x10737d,_0x171deb=sha224(_0x50cda8);if(_0x18719a[_0x582138(0x434)]<0x38)return{'hasError':!![],'message':_0x582138(0x47b)};let _0x17d156=0x38;if(new Uint8Array(_0x18719a[_0x582138(0x471)](0x38,0x39))[0x0]!==0xd||new Uint8Array(_0x18719a[_0x582138(0x471)](0x39,0x3a))[0x0]!==0xa)return{'hasError':!![],'message':_0x582138(0x4a7)};const _0x3eb0aa=new TextDecoder()[_0x582138(0x453)](_0x18719a['slice'](0x0,_0x17d156));if(_0x3eb0aa!==_0x171deb)return{'hasError':!![],'message':_0x582138(0x4d6)};const _0x3c9f55=_0x18719a[_0x582138(0x471)](_0x17d156+0x2);if(_0x3c9f55[_0x582138(0x434)]<0x6)return{'hasError':!![],'message':_0x582138(0x16c)};const _0x41d8ed=new DataView(_0x3c9f55),_0x5e846b=_0x41d8ed[_0x582138(0x22c)](0x0);if(_0x5e846b!==0x1)return{'hasError':!![],'message':'unsupported\x20command,\x20only\x20TCP\x20is\x20allowed'};const _0x216e04=_0x41d8ed[_0x582138(0x22c)](0x1);let _0x548556=0x0,_0x431d9a=0x2,_0xd13922='';switch(_0x216e04){case 0x1:_0x548556=0x4,_0xd13922=new Uint8Array(_0x3c9f55[_0x582138(0x471)](_0x431d9a,_0x431d9a+_0x548556))[_0x582138(0x315)]('.');break;case 0x3:_0x548556=new Uint8Array(_0x3c9f55[_0x582138(0x471)](_0x431d9a,_0x431d9a+0x1))[0x0],_0x431d9a+=0x1,_0xd13922=new TextDecoder()[_0x582138(0x453)](_0x3c9f55[_0x582138(0x471)](_0x431d9a,_0x431d9a+_0x548556));break;case 0x4:_0x548556=0x10;const _0x2be240=new DataView(_0x3c9f55[_0x582138(0x471)](_0x431d9a,_0x431d9a+_0x548556)),_0xbcd5f1=[];for(let _0x3526ef=0x0;_0x3526ef<0x8;_0x3526ef++){_0xbcd5f1['push'](_0x2be240['getUint16'](_0x3526ef*0x2)[_0x582138(0x226)](0x10));}_0xd13922=_0xbcd5f1[_0x582138(0x315)](':');break;default:return{'hasError':!![],'message':_0x582138(0x149)+_0x216e04};}if(!_0xd13922)return{'hasError':!![],'message':_0x582138(0x254)+_0x216e04};const _0x5e9521=_0x431d9a+_0x548556,_0x122365=_0x3c9f55[_0x582138(0x471)](_0x5e9521,_0x5e9521+0x2),_0x418b13=new DataView(_0x122365)[_0x582138(0x30b)](0x0);return{'hasError':![],'addressType':_0x216e04,'port':_0x418b13,'hostname':_0xd13922,'rawClientData':_0x3c9f55[_0x582138(0x471)](_0x5e9521+0x4)};}function 解析魏烈思请求(_0x4861ff,_0xd2fc79){const _0x3a94ce=_0x10737d;if(_0x4861ff[_0x3a94ce(0x434)]<0x18)return{'hasError':!![],'message':'Invalid\x20data'};const _0x232f64=new Uint8Array(_0x4861ff[_0x3a94ce(0x471)](0x0,0x1));if(formatIdentifier(new Uint8Array(_0x4861ff['slice'](0x1,0x11)))!==_0xd2fc79)return{'hasError':!![],'message':_0x3a94ce(0x1cd)};const _0x452c03=new Uint8Array(_0x4861ff['slice'](0x11,0x12))[0x0],_0xa1b6fe=new Uint8Array(_0x4861ff[_0x3a94ce(0x471)](0x12+_0x452c03,0x13+_0x452c03))[0x0];let _0x7bbebc=![];if(_0xa1b6fe===0x1){}else{if(_0xa1b6fe===0x2)_0x7bbebc=!![];else return{'hasError':!![],'message':_0x3a94ce(0x28b)};}const _0x23d7de=0x13+_0x452c03,_0x145b0d=new DataView(_0x4861ff[_0x3a94ce(0x471)](_0x23d7de,_0x23d7de+0x2))[_0x3a94ce(0x30b)](0x0);let _0x19ae9d=_0x23d7de+0x2,_0x36437b=0x0,_0x14cd54=_0x19ae9d+0x1,_0x51ac03='';const _0x2f8b1e=new Uint8Array(_0x4861ff[_0x3a94ce(0x471)](_0x19ae9d,_0x14cd54))[0x0];switch(_0x2f8b1e){case 0x1:_0x36437b=0x4,_0x51ac03=new Uint8Array(_0x4861ff[_0x3a94ce(0x471)](_0x14cd54,_0x14cd54+_0x36437b))[_0x3a94ce(0x315)]('.');break;case 0x2:_0x36437b=new Uint8Array(_0x4861ff[_0x3a94ce(0x471)](_0x14cd54,_0x14cd54+0x1))[0x0],_0x14cd54+=0x1,_0x51ac03=new TextDecoder()[_0x3a94ce(0x453)](_0x4861ff[_0x3a94ce(0x471)](_0x14cd54,_0x14cd54+_0x36437b));break;case 0x3:_0x36437b=0x10;const _0x37cf0b=[],_0x4825f2=new DataView(_0x4861ff[_0x3a94ce(0x471)](_0x14cd54,_0x14cd54+_0x36437b));for(let _0x4f2a1c=0x0;_0x4f2a1c<0x8;_0x4f2a1c++)_0x37cf0b[_0x3a94ce(0x14c)](_0x4825f2[_0x3a94ce(0x30b)](_0x4f2a1c*0x2)[_0x3a94ce(0x226)](0x10));_0x51ac03=_0x37cf0b[_0x3a94ce(0x315)](':');break;default:return{'hasError':!![],'message':_0x3a94ce(0x1d4)+_0x2f8b1e};}if(!_0x51ac03)return{'hasError':!![],'message':_0x3a94ce(0x1ae)+_0x2f8b1e};return{'hasError':![],'addressType':_0x2f8b1e,'port':_0x145b0d,'hostname':_0x51ac03,'isUDP':_0x7bbebc,'rawIndex':_0x14cd54+_0x36437b,'version':_0x232f64};}async function forwardataTCP(_0x5d97f5,_0x3312c9,_0x4e9c72,_0x5dd6f5,_0x34b235,_0x158c73,_0x58512d,_0x21afef=null){const _0x44c154=_0x10737d;console['log']('[TCP转发]\x20目标:\x20'+_0x5d97f5+':'+_0x3312c9+_0x44c154(0x2f3)+反代IP+'\x20|\x20双层代理:\x20'+(_0x21afef?_0x21afef['hostname']+':'+_0x21afef[_0x44c154(0x3fe)]:'否')+_0x44c154(0x3aa)+(启用SOCKS5反代||_0x44c154(0x393)));async function _0x3d8bbe(_0x4a71e5,_0x544022,_0x1e3fd3,_0x5799af=null,_0x628f64=!![]){const _0x4b5cd2=_0x44c154;let _0x2da8ca;if(_0x5799af&&_0x5799af[_0x4b5cd2(0x3ff)]>0x0)for(let _0x27aec0=0x0;_0x27aec0<_0x5799af[_0x4b5cd2(0x3ff)];_0x27aec0++){const _0x1fd449=(缓存反代数组索引+_0x27aec0)%_0x5799af[_0x4b5cd2(0x3ff)],[_0x1c8224,_0x43564d]=_0x5799af[_0x1fd449];try{console[_0x4b5cd2(0x282)](_0x4b5cd2(0x235)+_0x1c8224+':'+_0x43564d+_0x4b5cd2(0x2c1)+_0x1fd449+')'),_0x2da8ca=connect({'hostname':_0x1c8224,'port':_0x43564d}),await Promise[_0x4b5cd2(0x297)]([_0x2da8ca[_0x4b5cd2(0x4fd)],new Promise((_0x471382,_0x3d0f1d)=>setTimeout(()=>_0x3d0f1d(new Error(_0x4b5cd2(0x2f1))),0x3e8))]);const _0x57dd60=_0x2da8ca[_0x4b5cd2(0x3b6)][_0x4b5cd2(0x48d)]();return await _0x57dd60[_0x4b5cd2(0x30a)](_0x1e3fd3),_0x57dd60[_0x4b5cd2(0x31d)](),console[_0x4b5cd2(0x282)](_0x4b5cd2(0x245)+_0x1c8224+':'+_0x43564d),缓存反代数组索引=_0x1fd449,_0x2da8ca;}catch(_0x19a14e){console['log'](_0x4b5cd2(0x2ad)+_0x1c8224+':'+_0x43564d+_0x4b5cd2(0x358)+_0x19a14e[_0x4b5cd2(0x3de)]);try{_0x2da8ca?.[_0x4b5cd2(0x2e4)]?.();}catch(_0x49ecfa){}continue;}}if(_0x628f64){_0x2da8ca=connect({'hostname':_0x4a71e5,'port':_0x544022});const _0x216e0c=_0x2da8ca[_0x4b5cd2(0x3b6)][_0x4b5cd2(0x48d)]();return await _0x216e0c['write'](_0x1e3fd3),_0x216e0c[_0x4b5cd2(0x31d)](),_0x2da8ca;}else{closeSocketQuietly(_0x5dd6f5);throw new Error('[反代连接]\x20所有反代连接失败,且未启用反代兜底,连接终止。');}}async function _0x1692de(){const _0x7b613a=_0x44c154;let _0x31c6f3;if(启用SOCKS5反代===_0x7b613a(0x1ad))console[_0x7b613a(0x282)](_0x7b613a(0x288)+_0x5d97f5+':'+_0x3312c9),_0x31c6f3=await socks5Connect(_0x5d97f5,_0x3312c9,_0x4e9c72);else{if(启用SOCKS5反代===_0x7b613a(0x4f9)||启用SOCKS5反代===_0x7b613a(0x19a))console[_0x7b613a(0x282)](_0x7b613a(0x2e5)+_0x5d97f5+':'+_0x3312c9),_0x31c6f3=await httpConnect(_0x5d97f5,_0x3312c9,_0x4e9c72);else{console[_0x7b613a(0x282)](_0x7b613a(0x4ef)+_0x5d97f5+':'+_0x3312c9);const _0x4b48fc=await 解析地址端口(反代IP,_0x5d97f5,_0x58512d);_0x31c6f3=await _0x3d8bbe(atob(_0x7b613a(0x346)),0x1,_0x4e9c72,_0x4b48fc,启用反代兜底);}}_0x158c73[_0x7b613a(0x319)]=_0x31c6f3,_0x31c6f3['closed'][_0x7b613a(0x42c)](()=>{})[_0x7b613a(0x46d)](()=>closeSocketQuietly(_0x5dd6f5)),connectStreams(_0x31c6f3,_0x5dd6f5,_0x34b235,null);}async function _0x243908(){const _0x3ddea7=_0x44c154;if(!_0x21afef)throw new Error('双层代理未配置');console[_0x3ddea7(0x282)](_0x3ddea7(0x2b8)+_0x21afef[_0x3ddea7(0x3c4)]+':'+_0x21afef[_0x3ddea7(0x3fe)]+'\x20连接到\x20'+_0x5d97f5+':'+_0x3312c9);const _0x585d7c=connect({'hostname':_0x21afef[_0x3ddea7(0x3c4)],'port':_0x21afef[_0x3ddea7(0x3fe)]}),_0x3bd1de=_0x585d7c[_0x3ddea7(0x3b6)][_0x3ddea7(0x48d)](),_0xec5b9c=_0x585d7c[_0x3ddea7(0x4f1)][_0x3ddea7(0x230)]();try{const _0x366bf5=_0x21afef[_0x3ddea7(0x286)]&&_0x21afef[_0x3ddea7(0x403)]?_0x3ddea7(0x4cb)+btoa(_0x21afef[_0x3ddea7(0x286)]+':'+_0x21afef['password'])+'\x0d\x0a':'',_0x1e598a=_0x3ddea7(0x42d)+_0x5d97f5+':'+_0x3312c9+_0x3ddea7(0x4e8)+_0x5d97f5+':'+_0x3312c9+'\x0d\x0a'+_0x366bf5+'User-Agent:\x20CFspider/1.8.3\x0d\x0aConnection:\x20keep-alive\x0d\x0a\x0d\x0a';await _0x3bd1de['write'](new TextEncoder()['encode'](_0x1e598a));let _0x4b81b8=new Uint8Array(0x0),_0x2a738e=-0x1,_0x4427c5=0x0;while(_0x2a738e===-0x1&&_0x4427c5<0x2000){const {done:_0x2f8b88,value:_0x1aa280}=await _0xec5b9c[_0x3ddea7(0x182)]();if(_0x2f8b88)throw new Error(_0x3ddea7(0x14e));_0x4b81b8=new Uint8Array([..._0x4b81b8,..._0x1aa280]),_0x4427c5=_0x4b81b8[_0x3ddea7(0x3ff)];for(let _0xce3e0e=0x0;_0xce3e0e<_0x4b81b8['length']-0x3;_0xce3e0e++){if(_0x4b81b8[_0xce3e0e]===0xd&&_0x4b81b8[_0xce3e0e+0x1]===0xa&&_0x4b81b8[_0xce3e0e+0x2]===0xd&&_0x4b81b8[_0xce3e0e+0x3]===0xa){_0x2a738e=_0xce3e0e+0x4;break;}}}if(_0x2a738e===-0x1)throw new Error(_0x3ddea7(0x3af));const _0x1cea68=new TextDecoder()['decode'](_0x4b81b8[_0x3ddea7(0x471)](0x0,_0x2a738e)),_0x483e1b=_0x1cea68['match'](/HTTP\/\d\.\d\s+(\d+)/),_0x4e1083=_0x483e1b?parseInt(_0x483e1b[0x1]):0x0;if(_0x4e1083<0xc8||_0x4e1083>=0x12c)throw new Error(_0x3ddea7(0x295)+_0x4e1083);return console['log'](_0x3ddea7(0x4a6)+_0x5d97f5+':'+_0x3312c9),await _0x3bd1de[_0x3ddea7(0x30a)](_0x4e9c72),_0x3bd1de[_0x3ddea7(0x31d)](),_0xec5b9c['releaseLock'](),_0x585d7c;}catch(_0x1e3650){try{_0x3bd1de['releaseLock']();}catch(_0x520e4c){}try{_0xec5b9c[_0x3ddea7(0x31d)]();}catch(_0x23168e){}try{_0x585d7c[_0x3ddea7(0x2e4)]();}catch(_0x1a830b){}throw _0x1e3650;}}const _0x52bf04=_0x15802c=>SOCKS5白名单[_0x44c154(0x25f)](_0x3beabd=>new RegExp('^'+_0x3beabd[_0x44c154(0x4c8)](/\*/g,'.*')+'$','i')['test'](_0x15802c));if(_0x21afef){console['log'](_0x44c154(0x152));try{const _0x26e1c1=await _0x243908();_0x158c73[_0x44c154(0x319)]=_0x26e1c1,_0x26e1c1[_0x44c154(0x4d8)][_0x44c154(0x42c)](()=>{})[_0x44c154(0x46d)](()=>closeSocketQuietly(_0x5dd6f5)),connectStreams(_0x26e1c1,_0x5dd6f5,_0x34b235,null);}catch(_0x55a82b){console[_0x44c154(0x282)](_0x44c154(0x2a3)+_0x55a82b[_0x44c154(0x3de)]+_0x44c154(0x234));try{await _0x1692de();}catch(_0x39ef16){throw _0x39ef16;}}}else{if(启用SOCKS5反代&&(启用SOCKS5全局反代||_0x52bf04(_0x5d97f5))){console[_0x44c154(0x282)]('[TCP转发]\x20启用\x20SOCKS5/HTTP\x20全局代理');try{await _0x1692de();}catch(_0xf6710f){throw _0xf6710f;}}else try{console[_0x44c154(0x282)]('[TCP转发]\x20尝试直连到:\x20'+_0x5d97f5+':'+_0x3312c9);const _0x1550e4=await _0x3d8bbe(_0x5d97f5,_0x3312c9,_0x4e9c72);_0x158c73[_0x44c154(0x319)]=_0x1550e4,connectStreams(_0x1550e4,_0x5dd6f5,_0x34b235,_0x1692de);}catch(_0x8f4b82){await _0x1692de();}}}async function forwardataudp(_0x12293f,_0xafe72c,_0x5916f3){const _0x1f8db9=_0x10737d;try{const _0x3c5538=connect({'hostname':'8.8.4.4','port':0x35});let _0x50919a=_0x5916f3;const _0x15ad2d=_0x3c5538[_0x1f8db9(0x3b6)][_0x1f8db9(0x48d)]();await _0x15ad2d['write'](_0x12293f),_0x15ad2d[_0x1f8db9(0x31d)](),await _0x3c5538['readable']['pipeTo'](new WritableStream({async 'write'(_0x5d222d){const _0x4de1f4=_0x1f8db9;if(_0xafe72c[_0x4de1f4(0x383)]===WebSocket[_0x4de1f4(0x1cf)]){if(_0x50919a){const _0x2c773e=new Uint8Array(_0x50919a['length']+_0x5d222d[_0x4de1f4(0x434)]);_0x2c773e[_0x4de1f4(0x4d2)](_0x50919a,0x0),_0x2c773e[_0x4de1f4(0x4d2)](_0x5d222d,_0x50919a['length']),_0xafe72c['send'](_0x2c773e['buffer']),_0x50919a=null;}else _0xafe72c['send'](_0x5d222d);}}}));}catch(_0x3c7543){}}function closeSocketQuietly(_0x44fd05){const _0x5cfbe5=_0x10737d;try{(_0x44fd05['readyState']===WebSocket['OPEN']||_0x44fd05[_0x5cfbe5(0x383)]===WebSocket[_0x5cfbe5(0x414)])&&_0x44fd05['close']();}catch(_0x5d9c4d){}}function formatIdentifier(_0xecb7fe,_0x946cae=0x0){const _0x295615=_0x10737d,_0x58790d=[..._0xecb7fe[_0x295615(0x471)](_0x946cae,_0x946cae+0x10)]['map'](_0x447848=>_0x447848[_0x295615(0x226)](0x10)['padStart'](0x2,'0'))[_0x295615(0x315)]('');return _0x58790d[_0x295615(0x1fd)](0x0,0x8)+'-'+_0x58790d[_0x295615(0x1fd)](0x8,0xc)+'-'+_0x58790d[_0x295615(0x1fd)](0xc,0x10)+'-'+_0x58790d['substring'](0x10,0x14)+'-'+_0x58790d[_0x295615(0x1fd)](0x14);}async function connectStreams(_0x6c3398,_0x49c5a9,_0x458e38,_0x4b3db5){const _0x590c51=_0x10737d;let _0x4d09b5=_0x458e38,_0x584454=![];await _0x6c3398['readable'][_0x590c51(0x3ed)](new WritableStream({async 'write'(_0x5ca907,_0x523c1d){const _0x10e9ae=_0x590c51;_0x584454=!![];if(_0x49c5a9[_0x10e9ae(0x383)]!==WebSocket[_0x10e9ae(0x1cf)])_0x523c1d[_0x10e9ae(0x1e8)](_0x10e9ae(0x324));if(_0x4d09b5){const _0x2e056a=new Uint8Array(_0x4d09b5[_0x10e9ae(0x3ff)]+_0x5ca907['byteLength']);_0x2e056a[_0x10e9ae(0x4d2)](_0x4d09b5,0x0),_0x2e056a[_0x10e9ae(0x4d2)](_0x5ca907,_0x4d09b5[_0x10e9ae(0x3ff)]),_0x49c5a9[_0x10e9ae(0x1bd)](_0x2e056a[_0x10e9ae(0x30f)]),_0x4d09b5=null;}else _0x49c5a9['send'](_0x5ca907);},'abort'(){}}))['catch'](_0x58dbb5=>{closeSocketQuietly(_0x49c5a9);}),!_0x584454&&_0x4b3db5&&await _0x4b3db5();}function makeReadableStr(_0x5d6340,_0x3bedbd){let _0x59f2bc=![];return new ReadableStream({'start'(_0x2de6d9){const _0x4e71e4=_0x1deb;_0x5d6340[_0x4e71e4(0x21d)](_0x4e71e4(0x3de),_0xc1a3ac=>{if(!_0x59f2bc)_0x2de6d9['enqueue'](_0xc1a3ac['data']);}),_0x5d6340[_0x4e71e4(0x21d)](_0x4e71e4(0x2e4),()=>{const _0x3caa6b=_0x4e71e4;!_0x59f2bc&&(closeSocketQuietly(_0x5d6340),_0x2de6d9[_0x3caa6b(0x2e4)]());}),_0x5d6340[_0x4e71e4(0x21d)](_0x4e71e4(0x1e8),_0x15f420=>_0x2de6d9[_0x4e71e4(0x1e8)](_0x15f420));const {earlyData:_0x163d63,error:_0x459375}=base64ToArray(_0x3bedbd);if(_0x459375)_0x2de6d9['error'](_0x459375);else{if(_0x163d63)_0x2de6d9[_0x4e71e4(0x444)](_0x163d63);}},'cancel'(){_0x59f2bc=!![],closeSocketQuietly(_0x5d6340);}});}function isSpeedTestSite(_0x542714){const _0x1f3ca1=_0x10737d,_0x220e40=[atob('c3BlZWQuY2xvdWRmbGFyZS5jb20=')];if(_0x220e40[_0x1f3ca1(0x153)](_0x542714))return!![];for(const _0x2419b6 of _0x220e40){if(_0x542714[_0x1f3ca1(0x15f)]('.'+_0x2419b6)||_0x542714===_0x2419b6)return!![];}return![];}function base64ToArray(_0x9d3b4c){const _0x2c6363=_0x10737d;if(!_0x9d3b4c)return{'error':null};try{const _0x21fd24=atob(_0x9d3b4c[_0x2c6363(0x4c8)](/-/g,'+')['replace'](/_/g,'/')),_0x52e697=new Uint8Array(_0x21fd24['length']);for(let _0x56d3bf=0x0;_0x56d3bf<_0x21fd24[_0x2c6363(0x3ff)];_0x56d3bf++){_0x52e697[_0x56d3bf]=_0x21fd24[_0x2c6363(0x19d)](_0x56d3bf);}return{'earlyData':_0x52e697[_0x2c6363(0x30f)],'error':null};}catch(_0x495870){return{'error':_0x495870};}}function _0x1deb(_0x248a62,_0x5ac201){const _0x1295a0=_0x1295();return _0x1deb=function(_0x1debf0,_0x34b1bd){_0x1debf0=_0x1debf0-0x146;let _0x91df3a=_0x1295a0[_0x1debf0];return _0x91df3a;},_0x1deb(_0x248a62,_0x5ac201);}async function socks5Connect(_0x5635e9,_0x2a8368,_0x113547){const _0x5a60be=_0x10737d,{username:_0x468f15,password:_0x4ec704,hostname:_0x45aa82,port:_0x5bb6e5}=parsedSocks5Address,_0x120964=connect({'hostname':_0x45aa82,'port':_0x5bb6e5}),_0x35db72=_0x120964['writable'][_0x5a60be(0x48d)](),_0x22fb33=_0x120964[_0x5a60be(0x4f1)][_0x5a60be(0x230)]();try{const _0x544d6e=_0x468f15&&_0x4ec704?new Uint8Array([0x5,0x2,0x0,0x2]):new Uint8Array([0x5,0x1,0x0]);await _0x35db72[_0x5a60be(0x30a)](_0x544d6e);let _0x2fe83b=await _0x22fb33['read']();if(_0x2fe83b[_0x5a60be(0x3f6)]||_0x2fe83b['value'][_0x5a60be(0x434)]<0x2)throw new Error(_0x5a60be(0x27a));const _0x5e4d93=new Uint8Array(_0x2fe83b[_0x5a60be(0x3dc)])[0x1];if(_0x5e4d93===0x2){if(!_0x468f15||!_0x4ec704)throw new Error(_0x5a60be(0x306));const _0x125d43=new TextEncoder()[_0x5a60be(0x4b7)](_0x468f15),_0x2ca305=new TextEncoder()[_0x5a60be(0x4b7)](_0x4ec704),_0x4c5117=new Uint8Array([0x1,_0x125d43['length'],..._0x125d43,_0x2ca305[_0x5a60be(0x3ff)],..._0x2ca305]);await _0x35db72[_0x5a60be(0x30a)](_0x4c5117),_0x2fe83b=await _0x22fb33[_0x5a60be(0x182)]();if(_0x2fe83b['done']||new Uint8Array(_0x2fe83b[_0x5a60be(0x3dc)])[0x1]!==0x0)throw new Error(_0x5a60be(0x2bf));}else{if(_0x5e4d93!==0x0)throw new Error(_0x5a60be(0x2cc)+_0x5e4d93);}const _0x2d7e39=new TextEncoder()['encode'](_0x5635e9),_0x371cbc=new Uint8Array([0x5,0x1,0x0,0x3,_0x2d7e39[_0x5a60be(0x3ff)],..._0x2d7e39,_0x2a8368>>0x8,_0x2a8368&0xff]);await _0x35db72[_0x5a60be(0x30a)](_0x371cbc),_0x2fe83b=await _0x22fb33[_0x5a60be(0x182)]();if(_0x2fe83b[_0x5a60be(0x3f6)]||new Uint8Array(_0x2fe83b['value'])[0x1]!==0x0)throw new Error(_0x5a60be(0x17f));return await _0x35db72[_0x5a60be(0x30a)](_0x113547),_0x35db72['releaseLock'](),_0x22fb33['releaseLock'](),_0x120964;}catch(_0x370326){try{_0x35db72[_0x5a60be(0x31d)]();}catch(_0x3bf3a3){}try{_0x22fb33[_0x5a60be(0x31d)]();}catch(_0x3391f5){}try{_0x120964[_0x5a60be(0x2e4)]();}catch(_0x18afc7){}throw _0x370326;}}async function httpConnect(_0x24e6eb,_0x2bf20e,_0x251708){const _0xfd4b47=_0x10737d,{username:_0x567f6e,password:_0x5a0665,hostname:_0xb842cf,port:_0x4be64f}=parsedSocks5Address,_0xdabb29=connect({'hostname':_0xb842cf,'port':_0x4be64f}),_0x4413f3=_0xdabb29[_0xfd4b47(0x3b6)][_0xfd4b47(0x48d)](),_0x13a685=_0xdabb29[_0xfd4b47(0x4f1)][_0xfd4b47(0x230)]();try{const _0x18fd1b=_0x567f6e&&_0x5a0665?_0xfd4b47(0x4cb)+btoa(_0x567f6e+':'+_0x5a0665)+'\x0d\x0a':'',_0x21b6b1=_0xfd4b47(0x42d)+_0x24e6eb+':'+_0x2bf20e+_0xfd4b47(0x4e8)+_0x24e6eb+':'+_0x2bf20e+'\x0d\x0a'+_0x18fd1b+'User-Agent:\x20Mozilla/5.0\x0d\x0aConnection:\x20keep-alive\x0d\x0a\x0d\x0a';await _0x4413f3[_0xfd4b47(0x30a)](new TextEncoder()[_0xfd4b47(0x4b7)](_0x21b6b1));let _0x4031c7=new Uint8Array(0x0),_0x194244=-0x1,_0x4d465e=0x0;while(_0x194244===-0x1&&_0x4d465e<0x2000){const {done:_0x20d33b,value:_0x56a4c3}=await _0x13a685[_0xfd4b47(0x182)]();if(_0x20d33b)throw new Error('Connection\x20closed\x20before\x20receiving\x20HTTP\x20response');_0x4031c7=new Uint8Array([..._0x4031c7,..._0x56a4c3]),_0x4d465e=_0x4031c7[_0xfd4b47(0x3ff)];const _0x207240=_0x4031c7[_0xfd4b47(0x19b)]((_0x276f85,_0x2aac84)=>_0x2aac84<_0x4031c7['length']-0x3&&_0x4031c7[_0x2aac84]===0xd&&_0x4031c7[_0x2aac84+0x1]===0xa&&_0x4031c7[_0x2aac84+0x2]===0xd&&_0x4031c7[_0x2aac84+0x3]===0xa);if(_0x207240!==-0x1)_0x194244=_0x207240+0x4;}if(_0x194244===-0x1)throw new Error(_0xfd4b47(0x345));const _0x53f1ea=parseInt(new TextDecoder()[_0xfd4b47(0x453)](_0x4031c7[_0xfd4b47(0x471)](0x0,_0x194244))[_0xfd4b47(0x205)]('\x0d\x0a')[0x0][_0xfd4b47(0x4ff)](/HTTP\/\d\.\d\s+(\d+)/)[0x1]);if(_0x53f1ea<0xc8||_0x53f1ea>=0x12c)throw new Error(_0xfd4b47(0x1e3)+_0x53f1ea);return await _0x4413f3[_0xfd4b47(0x30a)](_0x251708),_0x4413f3[_0xfd4b47(0x31d)](),_0x13a685[_0xfd4b47(0x31d)](),_0xdabb29;}catch(_0x27156e){try{_0x4413f3[_0xfd4b47(0x31d)]();}catch(_0x223659){}try{_0x13a685[_0xfd4b47(0x31d)]();}catch(_0x3ffdea){}try{_0xdabb29['close']();}catch(_0x57deec){}throw _0x27156e;}}function Clash订阅配置文件热补丁(_0x3d9f2c,_0x20fed1=null,_0x1ef260=![],_0x49d477=[]){const _0x169825=_0x10737d;let _0x2021ff=_0x3d9f2c[_0x169825(0x4c8)](/mode:\s*Rule\b/g,_0x169825(0x1ca));const _0x3a09a7='dns:\x0a\x20\x20enable:\x20true\x0a\x20\x20default-nameserver:\x0a\x20\x20\x20\x20-\x20223.5.5.5\x0a\x20\x20\x20\x20-\x20119.29.29.29\x0a\x20\x20\x20\x20-\x20114.114.114.114\x0a\x20\x20use-hosts:\x20true\x0a\x20\x20nameserver:\x0a\x20\x20\x20\x20-\x20https://sm2.doh.pub/dns-query\x0a\x20\x20\x20\x20-\x20https://dns.alidns.com/dns-query\x0a\x20\x20fallback:\x0a\x20\x20\x20\x20-\x208.8.4.4\x0a\x20\x20\x20\x20-\x20101.101.101.101\x0a\x20\x20\x20\x20-\x20208.67.220.220\x0a\x20\x20fallback-filter:\x0a\x20\x20\x20\x20geoip:\x20true\x0a\x20\x20\x20\x20domain:\x20[+.google.com,\x20+.facebook.com,\x20+.youtube.com]\x0a\x20\x20\x20\x20ipcidr:\x0a\x20\x20\x20\x20\x20\x20-\x20240.0.0.0/4\x0a\x20\x20\x20\x20\x20\x20-\x200.0.0.0/32\x0a\x20\x20\x20\x20geoip-code:\x20CN\x0a',_0x356e47=/^dns:\s*(?:\n|$)/m[_0x169825(0x49f)](_0x2021ff);!_0x356e47&&(_0x2021ff=_0x3a09a7+_0x2021ff);if(_0x1ef260&&_0x49d477[_0x169825(0x3ff)]>0x0){const _0x25f7ff=_0x49d477[_0x169825(0x202)](_0x445a53=>'\x20\x20\x20\x20\x22'+_0x445a53+_0x169825(0x18f)+ECH_DOH)[_0x169825(0x315)]('\x0a'),_0x41555e=/^\s{2}nameserver-policy:\s*(?:\n|$)/m[_0x169825(0x49f)](_0x2021ff);if(_0x41555e)_0x2021ff=_0x2021ff[_0x169825(0x4c8)](/^(\s{2}nameserver-policy:\s*\n)/m,'$1'+_0x25f7ff+'\x0a');else{const _0x1f57b3=_0x2021ff[_0x169825(0x205)]('\x0a');let _0x4cc362=-0x1,_0x5ea2e0=![];for(let _0x481898=0x0;_0x481898<_0x1f57b3['length'];_0x481898++){const _0x3406ac=_0x1f57b3[_0x481898];if(/^dns:\s*$/['test'](_0x3406ac)){_0x5ea2e0=!![];continue;}if(_0x5ea2e0){if(/^[a-zA-Z]/[_0x169825(0x49f)](_0x3406ac)){_0x4cc362=_0x481898;break;}}}const _0x34ab11='\x20\x20nameserver-policy:\x0a'+_0x25f7ff;_0x4cc362!==-0x1?_0x1f57b3[_0x169825(0x389)](_0x4cc362,0x0,_0x34ab11):_0x1f57b3['push'](_0x34ab11),_0x2021ff=_0x1f57b3['join']('\x0a');}}if(!_0x20fed1||!_0x1ef260)return _0x2021ff;const _0x2cc967=_0x2021ff[_0x169825(0x205)]('\x0a'),_0x26847c=[];let _0x2fbf6e=0x0;while(_0x2fbf6e<_0x2cc967[_0x169825(0x3ff)]){const _0x2ac6de=_0x2cc967[_0x2fbf6e],_0x4e2dc7=_0x2ac6de[_0x169825(0x4d1)]();if(_0x4e2dc7[_0x169825(0x190)](_0x169825(0x1c9))&&(_0x4e2dc7[_0x169825(0x153)](_0x169825(0x4b8))||_0x4e2dc7[_0x169825(0x153)](_0x169825(0x4ba)))){let _0x3f54f6=_0x2ac6de,_0x18d5fb=(_0x2ac6de[_0x169825(0x4ff)](/\{/g)||[])[_0x169825(0x3ff)]-(_0x2ac6de['match'](/\}/g)||[])[_0x169825(0x3ff)];while(_0x18d5fb>0x0&&_0x2fbf6e+0x1<_0x2cc967[_0x169825(0x3ff)]){_0x2fbf6e++,_0x3f54f6+='\x0a'+_0x2cc967[_0x2fbf6e],_0x18d5fb+=(_0x2cc967[_0x2fbf6e][_0x169825(0x4ff)](/\{/g)||[])[_0x169825(0x3ff)]-(_0x2cc967[_0x2fbf6e][_0x169825(0x4ff)](/\}/g)||[])[_0x169825(0x3ff)];}const _0x20a240=_0x3f54f6['match'](/type:\s*(\w+)/),_0x503d1b=_0x20a240?_0x20a240[0x1]:_0x169825(0x2ae);let _0x1a49d6=_0x169825(0x25e);_0x503d1b===_0x169825(0x304)&&(_0x1a49d6=_0x169825(0x403));const _0x4b6cc2=new RegExp(_0x1a49d6+_0x169825(0x174)),_0x174012=_0x3f54f6[_0x169825(0x4ff)](_0x4b6cc2);_0x174012&&_0x174012[0x1]['trim']()===_0x20fed1[_0x169825(0x4d1)]()&&(_0x3f54f6=_0x3f54f6[_0x169825(0x4c8)](/\}(\s*)$/,',\x20ech-opts:\x20{enable:\x20true}}$1')),_0x26847c[_0x169825(0x14c)](_0x3f54f6),_0x2fbf6e++;}else{if(_0x4e2dc7[_0x169825(0x190)]('-\x20name:')){let _0x3889e0=[_0x2ac6de],_0x2983aa=_0x2ac6de[_0x169825(0x236)](/\S/),_0x4e4ecb=_0x2983aa+0x2;_0x2fbf6e++;while(_0x2fbf6e<_0x2cc967[_0x169825(0x3ff)]){const _0x36f699=_0x2cc967[_0x2fbf6e],_0x5d5c99=_0x36f699[_0x169825(0x4d1)]();if(!_0x5d5c99){_0x3889e0['push'](_0x36f699),_0x2fbf6e++;break;}const _0x443238=_0x36f699[_0x169825(0x236)](/\S/);if(_0x443238<=_0x2983aa&&_0x5d5c99[_0x169825(0x190)]('-\x20'))break;if(_0x443238<_0x2983aa&&_0x5d5c99)break;_0x3889e0[_0x169825(0x14c)](_0x36f699),_0x2fbf6e++;}const _0x4fc71f=_0x3889e0[_0x169825(0x315)]('\x0a'),_0x4f8532=_0x4fc71f[_0x169825(0x4ff)](/type:\s*(\w+)/),_0x31cb08=_0x4f8532?_0x4f8532[0x1]:_0x169825(0x2ae);let _0x3d1173=_0x169825(0x25e);_0x31cb08==='trojan'&&(_0x3d1173=_0x169825(0x403));const _0x2f2579=new RegExp(_0x3d1173+_0x169825(0x2b1)),_0x2fdded=_0x4fc71f['match'](_0x2f2579);if(_0x2fdded&&_0x2fdded[0x1][_0x169825(0x4d1)]()===_0x20fed1[_0x169825(0x4d1)]()){let _0x52c232=-0x1;for(let _0x16fd69=_0x3889e0[_0x169825(0x3ff)]-0x1;_0x16fd69>=0x0;_0x16fd69--){if(_0x3889e0[_0x16fd69]['trim']()){_0x52c232=_0x16fd69;break;}}if(_0x52c232>=0x0){const _0x13fe3d='\x20'[_0x169825(0x36b)](_0x4e4ecb);_0x3889e0['splice'](_0x52c232+0x1,0x0,_0x13fe3d+_0x169825(0x1b4),_0x13fe3d+_0x169825(0x401));}}_0x26847c[_0x169825(0x14c)](..._0x3889e0);}else _0x26847c[_0x169825(0x14c)](_0x2ac6de),_0x2fbf6e++;}}return _0x26847c['join']('\x0a');}function Singbox订阅配置文件热补丁(_0x2e02e6,_0xc405b0=null,_0x327d27=_0x10737d(0x2d8),_0x3b165f=null){const _0x48d428=_0x10737d;try{let _0x1ba6d0=JSON['parse'](_0x2e02e6);Array[_0x48d428(0x4bb)](_0x1ba6d0[_0x48d428(0x1bf)])&&_0x1ba6d0[_0x48d428(0x1bf)][_0x48d428(0x1f9)](_0x46e8b3=>{const _0x508ca4=_0x48d428;if(_0x46e8b3[_0x508ca4(0x353)]===_0x508ca4(0x237)){const _0x542e65=[];if(_0x46e8b3[_0x508ca4(0x3a1)])_0x542e65[_0x508ca4(0x14c)](_0x46e8b3[_0x508ca4(0x3a1)]);if(_0x46e8b3['inet6_address'])_0x542e65[_0x508ca4(0x14c)](_0x46e8b3[_0x508ca4(0x332)]);_0x542e65[_0x508ca4(0x3ff)]>0x0&&(_0x46e8b3['address']=_0x542e65,delete _0x46e8b3[_0x508ca4(0x3a1)],delete _0x46e8b3[_0x508ca4(0x332)]);const _0x1c53d7=[];if(Array['isArray'](_0x46e8b3[_0x508ca4(0x413)]))_0x1c53d7[_0x508ca4(0x14c)](..._0x46e8b3[_0x508ca4(0x413)]);if(Array[_0x508ca4(0x4bb)](_0x46e8b3[_0x508ca4(0x44e)]))_0x1c53d7[_0x508ca4(0x14c)](..._0x46e8b3[_0x508ca4(0x44e)]);_0x1c53d7['length']>0x0&&(_0x46e8b3['route_address']=_0x1c53d7,delete _0x46e8b3[_0x508ca4(0x413)],delete _0x46e8b3[_0x508ca4(0x44e)]);const _0x261102=[];if(Array[_0x508ca4(0x4bb)](_0x46e8b3[_0x508ca4(0x24c)]))_0x261102[_0x508ca4(0x14c)](..._0x46e8b3[_0x508ca4(0x24c)]);if(Array['isArray'](_0x46e8b3[_0x508ca4(0x1bc)]))_0x261102['push'](..._0x46e8b3[_0x508ca4(0x1bc)]);_0x261102[_0x508ca4(0x3ff)]>0x0&&(_0x46e8b3['route_exclude_address']=_0x261102,delete _0x46e8b3[_0x508ca4(0x24c)],delete _0x46e8b3[_0x508ca4(0x1bc)]);}});const _0xcdbd6e=new Map(),_0x2c658c=(_0x3916ed,_0x2bc2a3=![])=>{const _0x273f27=_0x48d428;if(!Array[_0x273f27(0x4bb)](_0x3916ed))return;_0x3916ed[_0x273f27(0x1f9)](_0x575a80=>{const _0x299aec=_0x273f27;if(_0x575a80['geosite']){const _0x34c2de=Array[_0x299aec(0x4bb)](_0x575a80[_0x299aec(0x184)])?_0x575a80[_0x299aec(0x184)]:[_0x575a80['geosite']];_0x575a80['rule_set']=_0x34c2de[_0x299aec(0x202)](_0x2f6480=>{const _0x52a3c5=_0x299aec,_0x203f09=_0x52a3c5(0x191)+_0x2f6480;return!_0xcdbd6e[_0x52a3c5(0x3d5)](_0x203f09)&&_0xcdbd6e[_0x52a3c5(0x4d2)](_0x203f09,{'tag':_0x203f09,'type':_0x52a3c5(0x503),'format':_0x52a3c5(0x276),'url':_0x52a3c5(0x261)+_0x2f6480+_0x52a3c5(0x255),'download_detour':'DIRECT'}),_0x203f09;}),delete _0x575a80[_0x299aec(0x184)];}if(_0x575a80[_0x299aec(0x1e2)]){const _0x5f52dc=Array[_0x299aec(0x4bb)](_0x575a80[_0x299aec(0x1e2)])?_0x575a80[_0x299aec(0x1e2)]:[_0x575a80[_0x299aec(0x1e2)]];_0x575a80['rule_set']=_0x575a80[_0x299aec(0x427)]||[],_0x5f52dc[_0x299aec(0x1f9)](_0x512bdc=>{const _0x254e1f=_0x299aec,_0x541bce=_0x254e1f(0x38b)+_0x512bdc;!_0xcdbd6e[_0x254e1f(0x3d5)](_0x541bce)&&_0xcdbd6e[_0x254e1f(0x4d2)](_0x541bce,{'tag':_0x541bce,'type':_0x254e1f(0x503),'format':_0x254e1f(0x276),'url':_0x254e1f(0x2b7)+_0x512bdc+_0x254e1f(0x255),'download_detour':_0x254e1f(0x507)}),_0x575a80[_0x254e1f(0x427)]['push'](_0x541bce);}),delete _0x575a80[_0x299aec(0x1e2)];}const _0x33d6cc=_0x2bc2a3?_0x299aec(0x36f):_0x299aec(0x475),_0x5ac6fa=String(_0x575a80[_0x33d6cc])[_0x299aec(0x3cf)]();(_0x5ac6fa==='REJECT'||_0x5ac6fa===_0x299aec(0x46a))&&(_0x575a80[_0x299aec(0x381)]=_0x299aec(0x1a4),_0x575a80[_0x299aec(0x1a2)]='drop',delete _0x575a80[_0x33d6cc]);});};if(_0x1ba6d0[_0x48d428(0x4a4)]&&_0x1ba6d0[_0x48d428(0x4a4)]['rules'])_0x2c658c(_0x1ba6d0[_0x48d428(0x4a4)]['rules'],!![]);if(_0x1ba6d0[_0x48d428(0x4fc)]&&_0x1ba6d0[_0x48d428(0x4fc)][_0x48d428(0x28c)])_0x2c658c(_0x1ba6d0['route'][_0x48d428(0x28c)],![]);if(_0xcdbd6e['size']>0x0){if(!_0x1ba6d0[_0x48d428(0x4fc)])_0x1ba6d0[_0x48d428(0x4fc)]={};_0x1ba6d0['route'][_0x48d428(0x427)]=Array['from'](_0xcdbd6e[_0x48d428(0x302)]());}if(!_0x1ba6d0['outbounds'])_0x1ba6d0['outbounds']=[];_0x1ba6d0[_0x48d428(0x385)]=_0x1ba6d0[_0x48d428(0x385)]['filter'](_0x21ddd5=>{const _0x2a8a91=_0x48d428;if(_0x21ddd5[_0x2a8a91(0x32f)]===_0x2a8a91(0x4aa)||_0x21ddd5['tag']==='block')return![];return!![];});const _0x437af4=new Set(_0x1ba6d0[_0x48d428(0x385)][_0x48d428(0x202)](_0x1c3263=>_0x1c3263['tag']));!_0x437af4[_0x48d428(0x3d5)](_0x48d428(0x507))&&(_0x1ba6d0[_0x48d428(0x385)]['push']({'type':_0x48d428(0x285),'tag':_0x48d428(0x507)}),_0x437af4['add']('DIRECT'));if(_0x1ba6d0[_0x48d428(0x4a4)]&&_0x1ba6d0['dns'][_0x48d428(0x376)]){const _0x23cb0b=new Set(_0x1ba6d0[_0x48d428(0x4a4)]['servers'][_0x48d428(0x202)](_0x49c8b4=>_0x49c8b4[_0x48d428(0x32f)]));_0x1ba6d0['dns'][_0x48d428(0x28c)]&&_0x1ba6d0[_0x48d428(0x4a4)][_0x48d428(0x28c)][_0x48d428(0x1f9)](_0x2a48fb=>{const _0x286480=_0x48d428;if(_0x2a48fb[_0x286480(0x36f)]&&!_0x23cb0b[_0x286480(0x3d5)](_0x2a48fb[_0x286480(0x36f)])){if(_0x2a48fb['server']==='dns_block'&&_0x23cb0b[_0x286480(0x3d5)](_0x286480(0x1c3)))_0x2a48fb[_0x286480(0x36f)]=_0x286480(0x1c3);else _0x2a48fb['server']['toLowerCase']()['includes'](_0x286480(0x1c3))&&!_0x23cb0b[_0x286480(0x3d5)](_0x2a48fb['server'])&&(_0x1ba6d0['dns'][_0x286480(0x376)]['push']({'tag':_0x2a48fb[_0x286480(0x36f)],'address':_0x286480(0x17b)}),_0x23cb0b[_0x286480(0x4c9)](_0x2a48fb[_0x286480(0x36f)]));}});}return _0x1ba6d0[_0x48d428(0x385)][_0x48d428(0x1f9)](_0x25ea72=>{const _0x38353f=_0x48d428;if(_0x25ea72[_0x38353f(0x353)]===_0x38353f(0x327)||_0x25ea72[_0x38353f(0x353)]==='urltest'){if(Array['isArray'](_0x25ea72[_0x38353f(0x385)])){_0x25ea72[_0x38353f(0x385)]=_0x25ea72[_0x38353f(0x385)][_0x38353f(0x464)](_0x5b1726=>{const _0x1a8d0f=_0x38353f,_0x223f1b=_0x5b1726[_0x1a8d0f(0x3cf)]();return _0x437af4[_0x1a8d0f(0x3d5)](_0x5b1726)&&_0x223f1b!==_0x1a8d0f(0x4aa)&&_0x223f1b!==_0x1a8d0f(0x46a);});if(_0x25ea72[_0x38353f(0x385)]['length']===0x0)_0x25ea72[_0x38353f(0x385)]['push'](_0x38353f(0x507));}}}),_0xc405b0&&_0x1ba6d0[_0x48d428(0x385)][_0x48d428(0x1f9)](_0x5ec107=>{const _0xf6fa6b=_0x48d428;(_0x5ec107[_0xf6fa6b(0x25e)]&&_0x5ec107[_0xf6fa6b(0x25e)]===_0xc405b0||_0x5ec107['password']&&_0x5ec107['password']===_0xc405b0)&&(!_0x5ec107[_0xf6fa6b(0x2ba)]&&(_0x5ec107[_0xf6fa6b(0x2ba)]={'enabled':!![]}),_0x327d27&&(_0x5ec107[_0xf6fa6b(0x2ba)]['utls']={'enabled':!![],'fingerprint':_0x327d27}),_0x3b165f&&(_0x5ec107[_0xf6fa6b(0x2ba)]['ech']={'enabled':!![],'config':_0xf6fa6b(0x3b5)+_0x3b165f+'\x0a-----END\x20ECH\x20CONFIGS-----'}));}),JSON[_0x48d428(0x38d)](_0x1ba6d0,null,0x2);}catch(_0x3f75cb){return console[_0x48d428(0x1e8)](_0x48d428(0x36c),_0x3f75cb),JSON['stringify'](JSON[_0x48d428(0x2b9)](_0x2e02e6),null,0x2);}}function Surge订阅配置文件热补丁(_0x4c017d,_0xe69fa1,_0x543672){const _0x178e57=_0x10737d,_0x397293=_0x4c017d[_0x178e57(0x153)]('\x0d\x0a')?_0x4c017d[_0x178e57(0x205)]('\x0d\x0a'):_0x4c017d[_0x178e57(0x205)]('\x0a');let _0x58f3b3='';const _0x4e98ef=_0x543672[_0x178e57(0x408)]?_0x543672[_0x178e57(0x3d8)]+_0x178e57(0x175):_0x543672['PATH'];for(let _0x46121d of _0x397293){if(_0x46121d[_0x178e57(0x153)]('=\x20tro'+'jan,')&&!_0x46121d[_0x178e57(0x153)]('ws=true')&&!_0x46121d['includes'](_0x178e57(0x2bc))){const _0x142148=_0x46121d['split'](_0x178e57(0x384))[0x1][_0x178e57(0x205)](',')[0x0],_0x45a5bc=_0x178e57(0x384)+_0x142148+',\x20skip-cert-verify='+_0x543672[_0x178e57(0x3be)],_0x26939b=_0x178e57(0x384)+_0x142148+_0x178e57(0x2d3)+_0x543672[_0x178e57(0x3be)]+',\x20ws=true,\x20ws-path='+_0x4e98ef+',\x20ws-headers=Host:\x22'+_0x142148+'\x22';_0x58f3b3+=_0x46121d[_0x178e57(0x4c8)](new RegExp(_0x45a5bc,'g'),_0x26939b)['replace']('[','')[_0x178e57(0x4c8)](']','')+'\x0a';}else _0x58f3b3+=_0x46121d+'\x0a';}return _0x58f3b3=_0x178e57(0x3e3)+_0xe69fa1+'\x20interval='+_0x543672[_0x178e57(0x3d2)][_0x178e57(0x41d)]*0x3c*0x3c+'\x20strict=false'+_0x58f3b3['substring'](_0x58f3b3['indexOf']('\x0a')),_0x58f3b3;}async function 请求日志记录(_0x1cc103,_0x51aa6f,_0x2d60ef,_0x400efa=_0x10737d(0x1e0),_0x2f7e43){const _0x1c6fc9=_0x10737d,_0xd385e7=0x4;try{const _0x2af051=new Date(),_0x15e0aa={'TYPE':_0x400efa,'IP':_0x2d60ef,'ASN':'AS'+(_0x51aa6f['cf']['asn']||'0')+'\x20'+(_0x51aa6f['cf']['asOrganization']||'Unknown'),'CC':(_0x51aa6f['cf']['country']||_0x1c6fc9(0x46c))+'\x20'+(_0x51aa6f['cf'][_0x1c6fc9(0x3a2)]||_0x1c6fc9(0x46c)),'URL':_0x51aa6f[_0x1c6fc9(0x42f)],'UA':_0x51aa6f[_0x1c6fc9(0x3dd)][_0x1c6fc9(0x198)](_0x1c6fc9(0x16b))||_0x1c6fc9(0x41c),'TIME':_0x2af051[_0x1c6fc9(0x24d)]()};let _0x1cf085=[];const _0x16e0df=await _0x1cc103['KV'][_0x1c6fc9(0x198)](_0x1c6fc9(0x4eb));if(_0x16e0df)try{_0x1cf085=JSON[_0x1c6fc9(0x2b9)](_0x16e0df);if(!Array[_0x1c6fc9(0x4bb)](_0x1cf085))_0x1cf085=[_0x15e0aa];else{if(_0x400efa!=='Get_SUB'){const _0x283334=_0x2af051[_0x1c6fc9(0x24d)]()-0x1e*0x3c*0x3e8;if(_0x1cf085[_0x1c6fc9(0x25f)](_0x58724f=>_0x58724f[_0x1c6fc9(0x4a3)]!==_0x1c6fc9(0x1e0)&&_0x58724f['IP']===_0x2d60ef&&_0x58724f[_0x1c6fc9(0x4c5)]===_0x51aa6f['url']&&_0x58724f['UA']===(_0x51aa6f[_0x1c6fc9(0x3dd)][_0x1c6fc9(0x198)](_0x1c6fc9(0x16b))||_0x1c6fc9(0x41c))&&_0x58724f[_0x1c6fc9(0x47c)]>=_0x283334))return;_0x1cf085[_0x1c6fc9(0x14c)](_0x15e0aa);while(JSON[_0x1c6fc9(0x38d)](_0x1cf085,null,0x2)['length']>_0xd385e7*0x400*0x400&&_0x1cf085[_0x1c6fc9(0x3ff)]>0x0)_0x1cf085['shift']();}else{_0x1cf085[_0x1c6fc9(0x14c)](_0x15e0aa);while(JSON[_0x1c6fc9(0x38d)](_0x1cf085,null,0x2)[_0x1c6fc9(0x3ff)]>_0xd385e7*0x400*0x400&&_0x1cf085[_0x1c6fc9(0x3ff)]>0x0)_0x1cf085[_0x1c6fc9(0x2df)]();}}if(_0x2f7e43['TG']['启用'])try{const _0x43b689=await _0x1cc103['KV'][_0x1c6fc9(0x198)](_0x1c6fc9(0x38e)),_0x1d50f3=JSON[_0x1c6fc9(0x2b9)](_0x43b689);await sendMessage(_0x1d50f3[_0x1c6fc9(0x489)],_0x1d50f3[_0x1c6fc9(0x50a)],_0x15e0aa,_0x2f7e43);}catch(_0x4bdc6c){console['error'](_0x1c6fc9(0x41b)+_0x4bdc6c[_0x1c6fc9(0x3de)]);}}catch(_0x4f16a9){_0x1cf085=[_0x15e0aa];}else _0x1cf085=[_0x15e0aa];await _0x1cc103['KV']['put'](_0x1c6fc9(0x4eb),JSON[_0x1c6fc9(0x38d)](_0x1cf085,null,0x2));}catch(_0x465054){console['error'](_0x1c6fc9(0x421)+_0x465054['message']);}}async function sendMessage(_0x46413d,_0x4ae5a5,_0x512a90,_0x4deb92){const _0x5c9c11=_0x10737d;if(!_0x46413d||!_0x4ae5a5)return;try{const _0x2033cd=new Date(_0x512a90['TIME'])[_0x5c9c11(0x51f)](_0x5c9c11(0x1ce),{'timeZone':_0x5c9c11(0x394)}),_0x506403=new URL(_0x512a90[_0x5c9c11(0x4c5)]),_0x3a4725=_0x5c9c11(0x4a9)+_0x4deb92[_0x5c9c11(0x3d2)][_0x5c9c11(0x1f0)]+_0x5c9c11(0x440)+(_0x5c9c11(0x3ab)+_0x512a90['TYPE']+'\x0a')+(_0x5c9c11(0x162)+_0x512a90['IP']+_0x5c9c11(0x446))+(_0x5c9c11(0x158)+_0x512a90['CC']+'\x0a')+(_0x5c9c11(0x4c3)+_0x512a90['ASN']+'\x0a')+(_0x5c9c11(0x42b)+_0x506403['host']+_0x5c9c11(0x446))+(_0x5c9c11(0x419)+(_0x506403['pathname']+_0x506403['search'])+_0x5c9c11(0x446))+(_0x5c9c11(0x379)+_0x512a90['UA']+_0x5c9c11(0x446))+(_0x5c9c11(0x514)+_0x2033cd+'\x0a')+(''+(_0x4deb92['CF']['Usage'][_0x5c9c11(0x1b1)]?_0x5c9c11(0x177)+_0x4deb92['CF']['Usage'][_0x5c9c11(0x305)]+_0x5c9c11(0x373)+(_0x4deb92['CF']['Usage'][_0x5c9c11(0x305)]/0x186a0*0x64)[_0x5c9c11(0x445)](0x2)+_0x5c9c11(0x509):'')),_0x5a0fb7=_0x5c9c11(0x378)+_0x46413d+'/sendMessage?chat_id='+_0x4ae5a5+_0x5c9c11(0x25a)+encodeURIComponent(_0x3a4725);return fetch(_0x5a0fb7,{'method':_0x5c9c11(0x223),'headers':{'Accept':'text/html,application/xhtml+xml,application/xml;','Accept-Encoding':_0x5c9c11(0x37f),'User-Agent':_0x512a90['UA']||_0x5c9c11(0x41c)}});}catch(_0x74f82b){console['error'](_0x5c9c11(0x44c),_0x74f82b);}}function 掩码敏感信息(_0x1519ad,_0x2b37aa=0x3,_0xef84c9=0x2){const _0x385f62=_0x10737d;if(!_0x1519ad||typeof _0x1519ad!==_0x385f62(0x366))return _0x1519ad;if(_0x1519ad[_0x385f62(0x3ff)]<=_0x2b37aa+_0xef84c9)return _0x1519ad;const _0x3dee0f=_0x1519ad[_0x385f62(0x471)](0x0,_0x2b37aa),_0x51cc96=_0x1519ad[_0x385f62(0x471)](-_0xef84c9),_0x51444a=_0x1519ad[_0x385f62(0x3ff)]-_0x2b37aa-_0xef84c9;return''+_0x3dee0f+'*'[_0x385f62(0x36b)](_0x51444a)+_0x51cc96;}async function MD5MD5(_0x2a87a2){const _0x2988f6=_0x10737d,_0x220062=new TextEncoder(),_0x3efb59=await crypto[_0x2988f6(0x29d)][_0x2988f6(0x442)](_0x2988f6(0x34a),_0x220062[_0x2988f6(0x4b7)](_0x2a87a2)),_0x5d398c=Array['from'](new Uint8Array(_0x3efb59)),_0x342490=_0x5d398c['map'](_0x5e63cf=>_0x5e63cf[_0x2988f6(0x226)](0x10)[_0x2988f6(0x40f)](0x2,'0'))[_0x2988f6(0x315)](''),_0x4152bc=await crypto[_0x2988f6(0x29d)]['digest'](_0x2988f6(0x34a),_0x220062[_0x2988f6(0x4b7)](_0x342490[_0x2988f6(0x471)](0x7,0x1b))),_0x4a95f0=Array['from'](new Uint8Array(_0x4152bc)),_0x340874=_0x4a95f0[_0x2988f6(0x202)](_0x16e3cd=>_0x16e3cd['toString'](0x10)[_0x2988f6(0x40f)](0x2,'0'))[_0x2988f6(0x315)]('');return _0x340874[_0x2988f6(0x48a)]();}function 随机路径(){const _0x3bd90c=_0x10737d,_0x5ce6e6=['about',_0x3bd90c(0x49d),_0x3bd90c(0x2f5),_0x3bd90c(0x18a),_0x3bd90c(0x337),'ad',_0x3bd90c(0x39b),_0x3bd90c(0x167),_0x3bd90c(0x29b),_0x3bd90c(0x2c2),_0x3bd90c(0x2de),_0x3bd90c(0x173),_0x3bd90c(0x300),'apps',_0x3bd90c(0x1ff),_0x3bd90c(0x22a),_0x3bd90c(0x4c7),_0x3bd90c(0x3bf),_0x3bd90c(0x3a7),_0x3bd90c(0x163),'avatar',_0x3bd90c(0x17d),'bd',_0x3bd90c(0x1b6),_0x3bd90c(0x166),_0x3bd90c(0x201),_0x3bd90c(0x293),'bt',_0x3bd90c(0x308),_0x3bd90c(0x267),_0x3bd90c(0x239),_0x3bd90c(0x50f),'cb',_0x3bd90c(0x430),_0x3bd90c(0x49e),'chat',_0x3bd90c(0x2bd),'city',_0x3bd90c(0x4a5),_0x3bd90c(0x1d1),_0x3bd90c(0x229),_0x3bd90c(0x2f7),_0x3bd90c(0x35d),'cn',_0x3bd90c(0x1c6),_0x3bd90c(0x1fc),_0x3bd90c(0x333),_0x3bd90c(0x20d),_0x3bd90c(0x501),'community',_0x3bd90c(0x14b),_0x3bd90c(0x325),_0x3bd90c(0x4a2),'content',_0x3bd90c(0x500),_0x3bd90c(0x18b),'cp',_0x3bd90c(0x4f6),_0x3bd90c(0x2f0),_0x3bd90c(0x15a),'dh','directory',_0x3bd90c(0x1b9),_0x3bd90c(0x505),'dl',_0x3bd90c(0x4df),_0x3bd90c(0x2a1),_0x3bd90c(0x218),_0x3bd90c(0x1d3),_0x3bd90c(0x4cf),_0x3bd90c(0x3a8),_0x3bd90c(0x50c),_0x3bd90c(0x2d6),_0x3bd90c(0x4d5),_0x3bd90c(0x4cc),'en','ep',_0x3bd90c(0x486),'episodes',_0x3bd90c(0x284),_0x3bd90c(0x36e),'f','faq',_0x3bd90c(0x330),_0x3bd90c(0x470),'favs',_0x3bd90c(0x264),_0x3bd90c(0x382),_0x3bd90c(0x2b4),_0x3bd90c(0x2e6),_0x3bd90c(0x21a),_0x3bd90c(0x155),_0x3bd90c(0x3f2),_0x3bd90c(0x40e),_0x3bd90c(0x450),'game',_0x3bd90c(0x512),_0x3bd90c(0x452),'go',_0x3bd90c(0x3a9),'go.php',_0x3bd90c(0x3ea),_0x3bd90c(0x4b3),_0x3bd90c(0x29c),_0x3bd90c(0x212),_0x3bd90c(0x253),'htm',_0x3bd90c(0x231),_0x3bd90c(0x1db),_0x3bd90c(0x1be),_0x3bd90c(0x214),'index',_0x3bd90c(0x2a6),_0x3bd90c(0x396),_0x3bd90c(0x273),_0x3bd90c(0x2c8),'ja','jp',_0x3bd90c(0x16e),'jump.html',_0x3bd90c(0x1a9),_0x3bd90c(0x227),'knowledge',_0x3bd90c(0x1f4),_0x3bd90c(0x4f3),_0x3bd90c(0x47a),_0x3bd90c(0x455),_0x3bd90c(0x172),'link','links','list',_0x3bd90c(0x2eb),_0x3bd90c(0x32d),'m','mag',_0x3bd90c(0x360),_0x3bd90c(0x417),'manhua','map','member',_0x3bd90c(0x159),'message',_0x3bd90c(0x355),_0x3bd90c(0x266),_0x3bd90c(0x3ca),_0x3bd90c(0x27b),_0x3bd90c(0x371),'my',_0x3bd90c(0x32c),_0x3bd90c(0x4b4),_0x3bd90c(0x27d),_0x3bd90c(0x3e9),_0x3bd90c(0x34d),_0x3bd90c(0x168),_0x3bd90c(0x44d),_0x3bd90c(0x307),_0x3bd90c(0x466),'out.php',_0x3bd90c(0x475),'p',_0x3bd90c(0x1b3),_0x3bd90c(0x402),_0x3bd90c(0x3ad),'payment','pdf','photo',_0x3bd90c(0x204),_0x3bd90c(0x1d0),'pics',_0x3bd90c(0x23b),_0x3bd90c(0x3b2),_0x3bd90c(0x491),_0x3bd90c(0x3e0),_0x3bd90c(0x4b5),_0x3bd90c(0x2b3),_0x3bd90c(0x2a5),_0x3bd90c(0x2f9),_0x3bd90c(0x23c),_0x3bd90c(0x19e),_0x3bd90c(0x474),_0x3bd90c(0x1fb),'qa','question','rank',_0x3bd90c(0x351),'read',_0x3bd90c(0x3fb),_0x3bd90c(0x510),_0x3bd90c(0x25b),_0x3bd90c(0x397),_0x3bd90c(0x16d),_0x3bd90c(0x146),_0x3bd90c(0x1a8),'resource',_0x3bd90c(0x3db),_0x3bd90c(0x206),_0x3bd90c(0x236),_0x3bd90c(0x3fa),_0x3bd90c(0x22b),_0x3bd90c(0x240),_0x3bd90c(0x18d),_0x3bd90c(0x44f),_0x3bd90c(0x2cf),_0x3bd90c(0x1f8),'setting',_0x3bd90c(0x279),_0x3bd90c(0x488),_0x3bd90c(0x257),_0x3bd90c(0x1f3),_0x3bd90c(0x390),_0x3bd90c(0x424),_0x3bd90c(0x4d3),'sort',_0x3bd90c(0x50e),_0x3bd90c(0x2f6),_0x3bd90c(0x4b0),_0x3bd90c(0x1dc),_0x3bd90c(0x193),_0x3bd90c(0x3c7),_0x3bd90c(0x4f0),_0x3bd90c(0x4dd),_0x3bd90c(0x4ea),_0x3bd90c(0x407),_0x3bd90c(0x200),_0x3bd90c(0x2c9),_0x3bd90c(0x32f),_0x3bd90c(0x4c4),_0x3bd90c(0x469),_0x3bd90c(0x3ec),'team','tech',_0x3bd90c(0x1a0),_0x3bd90c(0x49f),_0x3bd90c(0x180),_0x3bd90c(0x4ab),_0x3bd90c(0x31a),'topic',_0x3bd90c(0x335),_0x3bd90c(0x290),_0x3bd90c(0x3f5),'travel','tv',_0x3bd90c(0x4cd),'type','u',_0x3bd90c(0x1c7),'uploads',_0x3bd90c(0x42f),'urls',_0x3bd90c(0x4bd),_0x3bd90c(0x410),'v',_0x3bd90c(0x415),_0x3bd90c(0x2e3),_0x3bd90c(0x2da),'view',_0x3bd90c(0x3a5),_0x3bd90c(0x387),_0x3bd90c(0x451),'web','wenku',_0x3bd90c(0x465),_0x3bd90c(0x1e6),_0x3bd90c(0x195),'zh',_0x3bd90c(0x225),_0x3bd90c(0x303),_0x3bd90c(0x4f2)],_0x597661=Math[_0x3bd90c(0x502)](Math[_0x3bd90c(0x3f7)]()*0x3+0x1),_0x362a08=_0x5ce6e6[_0x3bd90c(0x51b)](()=>0.5-Math[_0x3bd90c(0x3f7)]())[_0x3bd90c(0x471)](0x0,_0x597661)[_0x3bd90c(0x315)]('/');return'/'+_0x362a08;}function 随机替换通配符(_0xd45ff9){const _0x4cd626=_0x10737d;if(!_0xd45ff9?.[_0x4cd626(0x153)]('*'))return _0xd45ff9;const _0x4023a2='abcdefghijklmnopqrstuvwxyz0123456789';return _0xd45ff9[_0x4cd626(0x4c8)](/\*/g,()=>{const _0x20e484=_0x4cd626;let _0x217556='';for(let _0x43849d=0x0;_0x43849dMath['random']()-0.5);let _0x5d4bda=0x0,_0x4dcb73=null;return _0x433e12[_0x50c0fd(0x4c8)](/example\.com/g,()=>{const _0x394aa6=_0x50c0fd;if(_0x5d4bda%_0x48f896===0x0)_0x4dcb73=随机替换通配符(_0x38016a[Math[_0x394aa6(0x502)](_0x5d4bda/_0x48f896)%_0x38016a['length']]);return _0x5d4bda++,_0x4dcb73;});}async function getECH(_0x340217){const _0x31a81d=_0x10737d;try{const _0x5946dc=await fetch(_0x31a81d(0x196)+encodeURIComponent(_0x340217)+_0x31a81d(0x232),{'headers':{'accept':_0x31a81d(0x3cd)}}),_0x49659d=await _0x5946dc[_0x31a81d(0x18e)]();if(!_0x49659d[_0x31a81d(0x4de)]?.['length'])return'';for(let _0x4d0410 of _0x49659d[_0x31a81d(0x4de)]){if(_0x4d0410[_0x31a81d(0x353)]!==0x41||!_0x4d0410['data'])continue;const _0x2ab33a=_0x4d0410[_0x31a81d(0x4f6)][_0x31a81d(0x4ff)](/ech=([^\s]+)/);if(_0x2ab33a)return _0x2ab33a[0x1]['replace'](/"/g,'');if(_0x4d0410[_0x31a81d(0x4f6)]['startsWith']('\x5c#')){const _0x452a71=_0x4d0410[_0x31a81d(0x4f6)][_0x31a81d(0x205)]('\x20')[_0x31a81d(0x471)](0x2)['join'](''),_0x37c623=new Uint8Array(_0x452a71[_0x31a81d(0x4ff)](/.{1,2}/g)['map'](_0x16ae94=>parseInt(_0x16ae94,0x10)));let _0x5a2eeb=0x2;while(_0x5a2eeb<_0x37c623[_0x31a81d(0x3ff)]&&_0x37c623[_0x5a2eeb++]!==0x0)_0x5a2eeb+=_0x37c623[_0x5a2eeb-0x1];while(_0x5a2eeb+0x4<=_0x37c623['length']){const _0x2e5cb7=_0x37c623[_0x5a2eeb]<<0x8|_0x37c623[_0x5a2eeb+0x1],_0x2550dc=_0x37c623[_0x5a2eeb+0x2]<<0x8|_0x37c623[_0x5a2eeb+0x3];_0x5a2eeb+=0x4;if(_0x2e5cb7===0x5)return btoa(String[_0x31a81d(0x1a5)](..._0x37c623['slice'](_0x5a2eeb,_0x5a2eeb+_0x2550dc)));_0x5a2eeb+=_0x2550dc;}}}return'';}catch{return'';}}async function 读取config_JSON(_0x31482b,_0x3cb5dc,_0x206319,_0x5e1920,_0x31d07a=![]){const _0x51acf3=_0x10737d,_0x5becbd=_0x3cb5dc,_0xe29b01=performance['now'](),_0x105b27={'TIME':new Date()[_0x51acf3(0x15d)](),'HOST':_0x5becbd,'HOSTS':[_0x3cb5dc],'UUID':_0x206319,'协议类型':'v'+'le'+'ss','传输协议':'ws','跳过证书验证':!![],'启用0RTT':![],'TLS分片':null,'随机路径':![],'ECH':![],'Fingerprint':_0x51acf3(0x2d8),'优选订阅生成':{'local':!![],'本地IP库':{'随机IP':!![],'随机数量':0x10,'指定端口':-0x1},'SUB':null,'SUBNAME':_0x51acf3(0x437)+_0x51acf3(0x224),'SUBUpdateTime':0x3,'TOKEN':await MD5MD5(_0x3cb5dc+_0x206319)},'订阅转换配置':{'SUBAPI':_0x51acf3(0x241),'SUBCONFIG':_0x51acf3(0x3fd),'SUBEMOJI':![]},'反代':{'PROXYIP':_0x51acf3(0x314),'SOCKS5':{'启用':启用SOCKS5反代,'全局':启用SOCKS5全局反代,'账号':我的SOCKS5账号,'白名单':SOCKS5白名单}},'TG':{'启用':![],'BotToken':null,'ChatID':null},'CF':{'Email':null,'GlobalAPIKey':null,'AccountID':null,'APIToken':null,'UsageAPI':null,'Usage':{'success':![],'pages':0x0,'workers':0x0,'total':0x0,'max':0x186a0}}};try{let _0x1ba59e=await _0x31482b['KV'][_0x51acf3(0x198)](_0x51acf3(0x51c));!_0x1ba59e||_0x31d07a==!![]?(await _0x31482b['KV'][_0x51acf3(0x4be)](_0x51acf3(0x51c),JSON[_0x51acf3(0x38d)](_0x105b27,null,0x2)),config_JSON=_0x105b27):config_JSON=JSON[_0x51acf3(0x2b9)](_0x1ba59e);}catch(_0x497132){console[_0x51acf3(0x1e8)]('读取config_JSON出错:\x20'+_0x497132[_0x51acf3(0x3de)]),config_JSON=_0x105b27;}config_JSON[_0x51acf3(0x428)]=_0x5becbd;if(!config_JSON['HOSTS'])config_JSON['HOSTS']=[_0x3cb5dc];if(_0x31482b[_0x51acf3(0x428)])config_JSON[_0x51acf3(0x497)]=(await 整理成数组(_0x31482b[_0x51acf3(0x428)]))[_0x51acf3(0x202)](_0x5522ae=>_0x5522ae['toLowerCase']()['replace'](/^https?:\/\//,'')[_0x51acf3(0x205)]('/')[0x0][_0x51acf3(0x205)](':')[0x0]);config_JSON['UUID']=_0x206319,config_JSON[_0x51acf3(0x3d8)]=_0x5e1920?_0x5e1920['startsWith']('/')?_0x5e1920:'/'+_0x5e1920:config_JSON['反代'][_0x51acf3(0x233)]['启用']?'/'+config_JSON['反代']['SOCKS5']['启用']+(config_JSON['反代'][_0x51acf3(0x233)]['全局']?_0x51acf3(0x3e7):'=')+config_JSON['反代']['SOCKS5']['账号']:config_JSON['反代']['PROXYIP']===_0x51acf3(0x314)?'/':_0x51acf3(0x3b8)+config_JSON['反代']['PROXYIP'];const _0x2cdbfb=config_JSON[_0x51acf3(0x3d4)]==_0x51acf3(0x42e)?_0x51acf3(0x263)+encodeURIComponent(_0x51acf3(0x2c5)):config_JSON[_0x51acf3(0x3d4)]=='Happ'?_0x51acf3(0x263)+encodeURIComponent('3,1,tlshello'):'';if(!config_JSON[_0x51acf3(0x508)])config_JSON['Fingerprint']=_0x51acf3(0x2d8);if(!config_JSON['ECH'])config_JSON[_0x51acf3(0x35a)]=![];else config_JSON['优选订阅生成']['SUBUpdateTime']=0x1;const _0x404574=config_JSON[_0x51acf3(0x35a)]?_0x51acf3(0x347)+encodeURIComponent(_0x51acf3(0x484)+ECH_DOH):'';config_JSON[_0x51acf3(0x2c3)]=config_JSON[_0x51acf3(0x3d1)]+_0x51acf3(0x3e7)+_0x206319+'@'+_0x5becbd+_0x51acf3(0x3a6)+(config_JSON[_0x51acf3(0x1de)]+_0x404574)+'&host='+_0x5becbd+'&fp='+config_JSON[_0x51acf3(0x508)]+'&sni='+_0x5becbd+_0x51acf3(0x326)+(encodeURIComponent(config_JSON[_0x51acf3(0x408)]?config_JSON[_0x51acf3(0x3d8)]+_0x51acf3(0x175):config_JSON[_0x51acf3(0x3d8)])+_0x2cdbfb)+'&encryption=none'+(config_JSON[_0x51acf3(0x3be)]?'&insecure=1&allowInsecure=1':'')+'#'+encodeURIComponent(config_JSON[_0x51acf3(0x3d2)][_0x51acf3(0x1f0)]),config_JSON[_0x51acf3(0x3d2)][_0x51acf3(0x2ac)]=await MD5MD5(_0x3cb5dc+_0x206319);const _0x5c6e5c={'BotToken':null,'ChatID':null};config_JSON['TG']={'启用':config_JSON['TG']['启用']?config_JSON['TG']['启用']:![],..._0x5c6e5c};try{const _0x3755cb=await _0x31482b['KV'][_0x51acf3(0x198)](_0x51acf3(0x38e));if(!_0x3755cb)await _0x31482b['KV']['put'](_0x51acf3(0x38e),JSON[_0x51acf3(0x38d)](_0x5c6e5c,null,0x2));else{const _0x3638fa=JSON['parse'](_0x3755cb);config_JSON['TG'][_0x51acf3(0x50a)]=_0x3638fa['ChatID']?_0x3638fa['ChatID']:null,config_JSON['TG']['BotToken']=_0x3638fa[_0x51acf3(0x489)]?掩码敏感信息(_0x3638fa['BotToken']):null;}}catch(_0x5d90c1){console[_0x51acf3(0x1e8)]('读取tg.json出错:\x20'+_0x5d90c1[_0x51acf3(0x3de)]);}const _0x5515c3={'Email':null,'GlobalAPIKey':null,'AccountID':null,'APIToken':null,'UsageAPI':null};config_JSON['CF']={..._0x5515c3,'Usage':{'success':![],'pages':0x0,'workers':0x0,'total':0x0,'max':0x186a0}};try{const _0x238b3c=await _0x31482b['KV']['get']('cf.json');if(!_0x238b3c)await _0x31482b['KV'][_0x51acf3(0x4be)](_0x51acf3(0x51a),JSON[_0x51acf3(0x38d)](_0x5515c3,null,0x2));else{const _0x1eccd6=JSON['parse'](_0x238b3c);if(_0x1eccd6[_0x51acf3(0x2fe)])try{const _0x208a57=await fetch(_0x1eccd6['UsageAPI']),_0x5d6de8=await _0x208a57[_0x51acf3(0x18e)]();config_JSON['CF'][_0x51acf3(0x1d9)]=_0x5d6de8;}catch(_0x418af7){console[_0x51acf3(0x1e8)]('请求\x20CF_JSON.UsageAPI\x20失败:\x20'+_0x418af7['message']);}else{config_JSON['CF'][_0x51acf3(0x2ea)]=_0x1eccd6[_0x51acf3(0x2ea)]?_0x1eccd6[_0x51acf3(0x2ea)]:null,config_JSON['CF'][_0x51acf3(0x160)]=_0x1eccd6['GlobalAPIKey']?掩码敏感信息(_0x1eccd6[_0x51acf3(0x160)]):null,config_JSON['CF'][_0x51acf3(0x35b)]=_0x1eccd6[_0x51acf3(0x35b)]?掩码敏感信息(_0x1eccd6[_0x51acf3(0x35b)]):null,config_JSON['CF'][_0x51acf3(0x4ee)]=_0x1eccd6['APIToken']?掩码敏感信息(_0x1eccd6['APIToken']):null,config_JSON['CF']['UsageAPI']=null;const _0x25cf59=await getCloudflareUsage(_0x1eccd6[_0x51acf3(0x2ea)],_0x1eccd6[_0x51acf3(0x160)],_0x1eccd6[_0x51acf3(0x35b)],_0x1eccd6[_0x51acf3(0x4ee)]);config_JSON['CF'][_0x51acf3(0x1d9)]=_0x25cf59;}}}catch(_0xb28a6){console['error']('读取cf.json出错:\x20'+_0xb28a6['message']);}return config_JSON[_0x51acf3(0x188)]=(performance['now']()-_0xe29b01)[_0x51acf3(0x445)](0x2)+'ms',config_JSON;}async function 生成随机IP(_0x194c44,_0x210fdc=0x10,_0x244fd8=-0x1){const _0x3bc666=_0x10737d,_0x1dfe30={'9808':_0x3bc666(0x3d0),'4837':'cu','4134':'ct'},_0x4a86b9=_0x194c44['cf'][_0x3bc666(0x1c5)],_0x5b0f34=_0x1dfe30[_0x4a86b9]?'https://raw.githubusercontent.com/cmliu/cmliu/main/CF-CIDR/'+_0x1dfe30[_0x4a86b9]+_0x3bc666(0x1e4):_0x3bc666(0x1ec),_0x4b7bea={'9808':_0x3bc666(0x3d6),'4837':_0x3bc666(0x1ab),'4134':_0x3bc666(0x2ec)}[_0x4a86b9]||_0x3bc666(0x1d6),_0x24193e=[0x1bb,0x805,0x823,0x827,0x830,0x20fb];let _0xfb4b24=[];try{const _0x32df06=await fetch(_0x5b0f34);_0xfb4b24=_0x32df06['ok']?await 整理成数组(await _0x32df06[_0x3bc666(0x43b)]()):[_0x3bc666(0x316)];}catch{_0xfb4b24=['104.16.0.0/13'];}const _0x3f7c9e=_0x1ee803=>{const _0x47a6af=_0x3bc666,[_0x57f780,_0x1c1cc6]=_0x1ee803['split']('/'),_0x146731=parseInt(_0x1c1cc6),_0x334f53=0x20-_0x146731,_0x23030c=_0x57f780['split']('.')[_0x47a6af(0x380)]((_0x50dec5,_0x30c1ed,_0x3dd9e9)=>_0x50dec5|parseInt(_0x30c1ed)<<0x18-_0x3dd9e9*0x8,0x0),_0x578044=Math[_0x47a6af(0x502)](Math[_0x47a6af(0x3f7)]()*Math[_0x47a6af(0x28a)](0x2,_0x334f53)),_0x5803e9=0xffffffff<<_0x334f53>>>0x0,_0x40ab58=((_0x23030c&_0x5803e9)>>>0x0)+_0x578044>>>0x0;return[_0x40ab58>>>0x18&0xff,_0x40ab58>>>0x10&0xff,_0x40ab58>>>0x8&0xff,_0x40ab58&0xff][_0x47a6af(0x315)]('.');},_0x9f7a3a=Array[_0x3bc666(0x1ea)]({'length':_0x210fdc},()=>{const _0x3ef02f=_0x3bc666,_0x2ffa81=_0x3f7c9e(_0xfb4b24[Math['floor'](Math[_0x3ef02f(0x3f7)]()*_0xfb4b24['length'])]);return _0x2ffa81+':'+(_0x244fd8===-0x1?_0x24193e[Math[_0x3ef02f(0x502)](Math[_0x3ef02f(0x3f7)]()*_0x24193e['length'])]:_0x244fd8)+'#'+_0x4b7bea;});return[_0x9f7a3a,_0x9f7a3a[_0x3bc666(0x315)]('\x0a')];}async function 整理成数组(_0x4356a3){const _0x1a2f49=_0x10737d;var _0x4f6d3f=_0x4356a3[_0x1a2f49(0x4c8)](/[	"'\r\n]+/g,',')[_0x1a2f49(0x4c8)](/,+/g,',');if(_0x4f6d3f[_0x1a2f49(0x485)](0x0)==',')_0x4f6d3f=_0x4f6d3f[_0x1a2f49(0x471)](0x1);if(_0x4f6d3f[_0x1a2f49(0x485)](_0x4f6d3f['length']-0x1)==',')_0x4f6d3f=_0x4f6d3f[_0x1a2f49(0x471)](0x0,_0x4f6d3f[_0x1a2f49(0x3ff)]-0x1);const _0x558130=_0x4f6d3f['split'](',');return _0x558130;}function isValidBase64(_0x4d04a8){const _0x32e83e=_0x10737d;if(typeof _0x4d04a8!==_0x32e83e(0x366))return![];const _0xd085bd=_0x4d04a8[_0x32e83e(0x4c8)](/\s/g,'');if(_0xd085bd[_0x32e83e(0x3ff)]===0x0||_0xd085bd['length']%0x4!==0x0)return![];const _0x407170=/^[A-Za-z0-9+/]+={0,2}$/;if(!_0x407170[_0x32e83e(0x49f)](_0xd085bd))return![];try{return atob(_0xd085bd),!![];}catch{return![];}}function base64Decode(_0x157977){const _0x3e7859=_0x10737d,_0x438290=new Uint8Array(atob(_0x157977)[_0x3e7859(0x205)]('')[_0x3e7859(0x202)](_0x4d4843=>_0x4d4843[_0x3e7859(0x19d)](0x0))),_0x10758e=new TextDecoder(_0x3e7859(0x3cb));return _0x10758e[_0x3e7859(0x453)](_0x438290);}async function 请求优选API(_0x404de2,_0x2cfc54=_0x10737d(0x217),_0x29b453=0xbb8){const _0x593cca=_0x10737d;if(!_0x404de2?.[_0x593cca(0x3ff)])return[[],[],[]];const _0x3013dd=new Set();let _0x3c93e8='',_0x3329ae=[];await Promise[_0x593cca(0x336)](_0x404de2['map'](async _0x219696=>{const _0x115e11=_0x593cca;try{const _0xe560fd=new AbortController(),_0x216aba=setTimeout(()=>_0xe560fd[_0x115e11(0x14f)](),_0x29b453),_0xb4416f=await fetch(_0x219696,{'signal':_0xe560fd[_0x115e11(0x49a)]});clearTimeout(_0x216aba);let _0x405dd5='';try{const _0x4c9369=await _0xb4416f[_0x115e11(0x515)](),_0x4b61b5=(_0xb4416f['headers'][_0x115e11(0x198)](_0x115e11(0x34c))||'')['toLowerCase'](),_0x1cacb0=_0x4b61b5[_0x115e11(0x4ff)](/charset=([^\s;]+)/i)?.[0x1]?.['toLowerCase']()||'';let _0x39fe5e=['utf-8',_0x115e11(0x2d2)];(_0x1cacb0[_0x115e11(0x153)]('gb')||_0x1cacb0[_0x115e11(0x153)](_0x115e11(0x1f1))||_0x1cacb0[_0x115e11(0x153)](_0x115e11(0x2d2)))&&(_0x39fe5e=[_0x115e11(0x2d2),_0x115e11(0x3cb)]);let _0x3bbb59=![];for(const _0x3dbf2b of _0x39fe5e){try{const _0x57c865=new TextDecoder(_0x3dbf2b)[_0x115e11(0x453)](_0x4c9369);if(_0x57c865&&_0x57c865[_0x115e11(0x3ff)]>0x0&&!_0x57c865['includes']('�')){_0x405dd5=_0x57c865,_0x3bbb59=!![];break;}else{if(_0x57c865&&_0x57c865['length']>0x0)continue;}}catch(_0x1a322e){continue;}}!_0x3bbb59&&(_0x405dd5=await _0xb4416f[_0x115e11(0x43b)]());if(!_0x405dd5||_0x405dd5['trim']()['length']===0x0)return;}catch(_0x3f947b){console[_0x115e11(0x1e8)](_0x115e11(0x3b9),_0x3f947b);return;}const _0x116fa8=isValidBase64(_0x405dd5)?base64Decode(_0x405dd5):_0x405dd5;if(_0x116fa8['split']('#')[0x0]['includes'](_0x115e11(0x3e7))){_0x3c93e8+=_0x116fa8+'\x0a';return;}const _0x4ea6c1=_0x405dd5[_0x115e11(0x4d1)]()[_0x115e11(0x205)]('\x0a')[_0x115e11(0x202)](_0x444f1e=>_0x444f1e['trim']())[_0x115e11(0x464)](_0x8ea9d4=>_0x8ea9d4),_0x198b2b=_0x4ea6c1[_0x115e11(0x3ff)]>0x1&&_0x4ea6c1[0x0][_0x115e11(0x153)](','),_0x2a56be=/^[^\[\]]*:[^\[\]]*:[^\[\]]/;if(!_0x198b2b)_0x4ea6c1[_0x115e11(0x1f9)](_0x29fe40=>{const _0x3a5f24=_0x115e11,_0x4ae0fe=_0x29fe40[_0x3a5f24(0x26d)]('#'),[_0x472684,_0x5a7ddc]=_0x4ae0fe>-0x1?[_0x29fe40['substring'](0x0,_0x4ae0fe),_0x29fe40[_0x3a5f24(0x1fd)](_0x4ae0fe)]:[_0x29fe40,''];let _0x30fe13=![];if(_0x472684[_0x3a5f24(0x190)]('['))_0x30fe13=/\]:(\d+)$/[_0x3a5f24(0x49f)](_0x472684);else{const _0x5eb528=_0x472684[_0x3a5f24(0x2a2)](':');_0x30fe13=_0x5eb528>-0x1&&/^\d+$/[_0x3a5f24(0x49f)](_0x472684[_0x3a5f24(0x1fd)](_0x5eb528+0x1));}const _0x350ae9=new URL(_0x219696)[_0x3a5f24(0x3ae)][_0x3a5f24(0x198)](_0x3a5f24(0x3fe))||_0x2cfc54;_0x3013dd[_0x3a5f24(0x4c9)](_0x30fe13?_0x29fe40:_0x472684+':'+_0x350ae9+_0x5a7ddc);});else{const _0x25c366=_0x4ea6c1[0x0]['split'](',')[_0x115e11(0x202)](_0x596066=>_0x596066['trim']()),_0x49fe98=_0x4ea6c1[_0x115e11(0x471)](0x1);if(_0x25c366['includes'](_0x115e11(0x404))&&_0x25c366[_0x115e11(0x153)]('端口')&&_0x25c366[_0x115e11(0x153)](_0x115e11(0x22e))){const _0x1598f4=_0x25c366[_0x115e11(0x26d)](_0x115e11(0x404)),_0x2b613f=_0x25c366['indexOf']('端口'),_0x28d63e=_0x25c366[_0x115e11(0x26d)]('国家')>-0x1?_0x25c366[_0x115e11(0x26d)]('国家'):_0x25c366[_0x115e11(0x26d)]('城市')>-0x1?_0x25c366[_0x115e11(0x26d)]('城市'):_0x25c366[_0x115e11(0x26d)](_0x115e11(0x22e)),_0x41c197=_0x25c366[_0x115e11(0x26d)]('TLS');_0x49fe98[_0x115e11(0x1f9)](_0x35887f=>{const _0x371640=_0x115e11,_0x3f68db=_0x35887f[_0x371640(0x205)](',')[_0x371640(0x202)](_0x63a06c=>_0x63a06c[_0x371640(0x4d1)]());if(_0x41c197!==-0x1&&_0x3f68db[_0x41c197]?.['toLowerCase']()!=='true')return;const _0x419164=_0x2a56be[_0x371640(0x49f)](_0x3f68db[_0x1598f4])?'['+_0x3f68db[_0x1598f4]+']':_0x3f68db[_0x1598f4];_0x3013dd['add'](_0x419164+':'+_0x3f68db[_0x2b613f]+'#'+_0x3f68db[_0x28d63e]);});}else{if(_0x25c366['some'](_0xfb029e=>_0xfb029e[_0x115e11(0x153)]('IP'))&&_0x25c366[_0x115e11(0x25f)](_0x4d6620=>_0x4d6620[_0x115e11(0x153)]('延迟'))&&_0x25c366[_0x115e11(0x25f)](_0x2b924f=>_0x2b924f[_0x115e11(0x153)](_0x115e11(0x363)))){const _0xb774f4=_0x25c366[_0x115e11(0x19b)](_0x52eb26=>_0x52eb26[_0x115e11(0x153)]('IP')),_0x3bfa90=_0x25c366[_0x115e11(0x19b)](_0x24d212=>_0x24d212[_0x115e11(0x153)]('延迟')),_0x1e3d35=_0x25c366[_0x115e11(0x19b)](_0x3b37c8=>_0x3b37c8[_0x115e11(0x153)](_0x115e11(0x363))),_0x4b173f=new URL(_0x219696)['searchParams'][_0x115e11(0x198)]('port')||_0x2cfc54;_0x49fe98[_0x115e11(0x1f9)](_0x511af9=>{const _0x3a66bc=_0x115e11,_0x3ae0a6=_0x511af9[_0x3a66bc(0x205)](',')[_0x3a66bc(0x202)](_0x522144=>_0x522144['trim']()),_0x241fd2=_0x2a56be[_0x3a66bc(0x49f)](_0x3ae0a6[_0xb774f4])?'['+_0x3ae0a6[_0xb774f4]+']':_0x3ae0a6[_0xb774f4];_0x3013dd[_0x3a66bc(0x4c9)](_0x241fd2+':'+_0x4b173f+_0x3a66bc(0x494)+_0x3ae0a6[_0x3bfa90]+_0x3a66bc(0x3eb)+_0x3ae0a6[_0x1e3d35]+_0x3a66bc(0x248));});}}}}catch(_0xd024a3){}}));const _0x22ca0b=_0x3c93e8[_0x593cca(0x4d1)]()?[...new Set(_0x3c93e8[_0x593cca(0x205)](/\r?\n/)[_0x593cca(0x464)](_0x2750f3=>_0x2750f3[_0x593cca(0x4d1)]()!==''))]:[];return[Array['from'](_0x3013dd),_0x22ca0b,_0x3329ae];}async function 反代参数获取(_0xc34759){const _0x1bcd54=_0x10737d,_0x2c7e27=new URL(_0xc34759['url']),{pathname:_0xd81e1b,searchParams:_0x525908}=_0x2c7e27,_0x25d0df=_0xd81e1b[_0x1bcd54(0x48a)]();我的SOCKS5账号=_0x525908[_0x1bcd54(0x198)]('socks5')||_0x525908[_0x1bcd54(0x198)](_0x1bcd54(0x4f9))||null,启用SOCKS5全局反代=_0x525908[_0x1bcd54(0x3d5)](_0x1bcd54(0x207))||![];const _0x3e7684=_0x25d0df[_0x1bcd54(0x4ff)](/\/(proxyip[.=]|pyip=|ip=)(.+)/);if(_0x525908[_0x1bcd54(0x3d5)](_0x1bcd54(0x393))){const _0x2c7ff7=_0x525908['get'](_0x1bcd54(0x393));反代IP=_0x2c7ff7[_0x1bcd54(0x153)](',')?_0x2c7ff7[_0x1bcd54(0x205)](',')[Math[_0x1bcd54(0x502)](Math[_0x1bcd54(0x3f7)]()*_0x2c7ff7[_0x1bcd54(0x205)](',')['length'])]:_0x2c7ff7,启用反代兜底=![];return;}else{if(_0x3e7684){const _0x119fea=_0x3e7684[0x1]===_0x1bcd54(0x259)?_0x1bcd54(0x259)+_0x3e7684[0x2]:_0x3e7684[0x2];反代IP=_0x119fea[_0x1bcd54(0x153)](',')?_0x119fea[_0x1bcd54(0x205)](',')[Math['floor'](Math[_0x1bcd54(0x3f7)]()*_0x119fea[_0x1bcd54(0x205)](',')[_0x1bcd54(0x3ff)])]:_0x119fea,启用反代兜底=![];return;}}let _0x4ac401;if(_0x4ac401=_0xd81e1b[_0x1bcd54(0x4ff)](/\/(socks5?|http):\/?\/?(.+)/i)){启用SOCKS5反代=_0x4ac401[0x1]['toLowerCase']()===_0x1bcd54(0x4f9)?'http':_0x1bcd54(0x1ad),我的SOCKS5账号=_0x4ac401[0x2]['split']('#')[0x0],启用SOCKS5全局反代=!![];if(我的SOCKS5账号[_0x1bcd54(0x153)]('@')){const _0x14c0cb=我的SOCKS5账号[_0x1bcd54(0x2a2)]('@');let _0x1b8226=我的SOCKS5账号[_0x1bcd54(0x1fd)](0x0,_0x14c0cb)[_0x1bcd54(0x400)](_0x1bcd54(0x4e9),'=');/^(?:[A-Z0-9+/]{4})*(?:[A-Z0-9+/]{2}==|[A-Z0-9+/]{3}=)?$/i[_0x1bcd54(0x49f)](_0x1b8226)&&!_0x1b8226[_0x1bcd54(0x153)](':')&&(_0x1b8226=atob(_0x1b8226)),我的SOCKS5账号=_0x1b8226+'@'+我的SOCKS5账号[_0x1bcd54(0x1fd)](_0x14c0cb+0x1);}}else{if(_0x4ac401=_0xd81e1b['match'](/\/(g?s5|socks5|g?http)=(.+)/i)){const _0x180ccf=_0x4ac401[0x1][_0x1bcd54(0x48a)]();我的SOCKS5账号=_0x4ac401[0x2],启用SOCKS5反代=_0x180ccf[_0x1bcd54(0x153)](_0x1bcd54(0x4f9))?_0x1bcd54(0x4f9):'socks5',启用SOCKS5全局反代=_0x180ccf[_0x1bcd54(0x190)]('g')||启用SOCKS5全局反代;}}if(我的SOCKS5账号)try{parsedSocks5Address=await 获取SOCKS5账号(我的SOCKS5账号),启用SOCKS5反代=_0x525908[_0x1bcd54(0x198)]('http')?_0x1bcd54(0x4f9):启用SOCKS5反代;}catch(_0x55e405){console[_0x1bcd54(0x1e8)]('解析SOCKS5地址失败:',_0x55e405[_0x1bcd54(0x3de)]),启用SOCKS5反代=null;}else 启用SOCKS5反代=null;}async function 获取SOCKS5账号(_0x19c26d){const _0x221b44=_0x10737d;if(_0x19c26d[_0x221b44(0x153)]('@')){const _0x51f83a=_0x19c26d[_0x221b44(0x2a2)]('@');let _0x1967ab=_0x19c26d[_0x221b44(0x1fd)](0x0,_0x51f83a)[_0x221b44(0x400)](_0x221b44(0x4e9),'=');const _0x2a4196=/^(?:[A-Z0-9+/]{4})*(?:[A-Z0-9+/]{2}==|[A-Z0-9+/]{3}=)?$/i;if(_0x2a4196[_0x221b44(0x49f)](_0x1967ab)&&!_0x1967ab[_0x221b44(0x153)](':'))_0x1967ab=atob(_0x1967ab);_0x19c26d=_0x1967ab+'@'+_0x19c26d[_0x221b44(0x1fd)](_0x51f83a+0x1);}const _0x3d76ac=_0x19c26d[_0x221b44(0x2a2)]('@'),[_0x4103af,_0xf7deb7]=_0x3d76ac===-0x1?[_0x19c26d,undefined]:[_0x19c26d[_0x221b44(0x1fd)](_0x3d76ac+0x1),_0x19c26d[_0x221b44(0x1fd)](0x0,_0x3d76ac)];let _0xb52b22,_0xefaac2;if(_0xf7deb7){[_0xb52b22,_0xefaac2]=_0xf7deb7[_0x221b44(0x205)](':');if(!_0xefaac2)throw new Error('无效的\x20SOCKS\x20地址格式:认证部分必须是\x20\x22username:password\x22\x20的形式');}let _0x107708,_0x9484f3;if(_0x4103af[_0x221b44(0x153)](']:'))[_0x107708,_0x9484f3]=[_0x4103af[_0x221b44(0x205)](']:')[0x0]+']',Number(_0x4103af['split'](']:')[0x1]['replace'](/[^\d]/g,''))];else{if(_0x4103af[_0x221b44(0x190)]('['))[_0x107708,_0x9484f3]=[_0x4103af,0x50];else{const _0x2aab16=_0x4103af[_0x221b44(0x205)](':');[_0x107708,_0x9484f3]=_0x2aab16[_0x221b44(0x3ff)]===0x2?[_0x2aab16[0x0],Number(_0x2aab16[0x1][_0x221b44(0x4c8)](/[^\d]/g,''))]:[_0x4103af,0x50];}}if(isNaN(_0x9484f3))throw new Error('无效的\x20SOCKS\x20地址格式:端口号必须是数字');if(_0x107708[_0x221b44(0x153)](':')&&!/^\[.*\]$/[_0x221b44(0x49f)](_0x107708))throw new Error(_0x221b44(0x39f));return{'username':_0xb52b22,'password':_0xefaac2,'hostname':_0x107708,'port':_0x9484f3};}async function getCloudflareUsage(_0x3d561b,_0x385a24,_0x437cce,_0xfab2a0){const _0x26294a=_0x10737d,_0x451711='https://api.cloudflare.com/client/v4',_0x51ee6b=_0x53423b=>_0x53423b?.[_0x26294a(0x380)]((_0x1d0d91,_0x2e8312)=>_0x1d0d91+(_0x2e8312?.[_0x26294a(0x243)]?.[_0x26294a(0x192)]||0x0),0x0)||0x0,_0xdebc03={'Content-Type':_0x26294a(0x1fa)};try{if(!_0x437cce&&(!_0x3d561b||!_0x385a24))return{'success':![],'pages':0x0,'workers':0x0,'total':0x0,'max':0x186a0};if(!_0x437cce){const _0x288fc8=await fetch(_0x451711+_0x26294a(0x2f8),{'method':_0x26294a(0x223),'headers':{..._0xdebc03,'X-AUTH-EMAIL':_0x3d561b,'X-AUTH-KEY':_0x385a24}});if(!_0x288fc8['ok'])throw new Error('账户获取失败:\x20'+_0x288fc8[_0x26294a(0x4fa)]);const _0x4da87a=await _0x288fc8[_0x26294a(0x18e)]();if(!_0x4da87a?.[_0x26294a(0x4ae)]?.[_0x26294a(0x3ff)])throw new Error(_0x26294a(0x277));const _0x20b3a2=_0x4da87a[_0x26294a(0x4ae)][_0x26294a(0x19b)](_0x50f266=>_0x50f266['name']?.['toLowerCase']()['startsWith'](_0x3d561b['toLowerCase']()));_0x437cce=_0x4da87a[_0x26294a(0x4ae)][_0x20b3a2>=0x0?_0x20b3a2:0x0]?.['id'];}const _0x10bea6=new Date();_0x10bea6['setUTCHours'](0x0,0x0,0x0,0x0);const _0x5160b3=_0xfab2a0?{..._0xdebc03,'Authorization':'Bearer\x20'+_0xfab2a0}:{..._0xdebc03,'X-AUTH-EMAIL':_0x3d561b,'X-AUTH-KEY':_0x385a24},_0x52229e=await fetch(_0x451711+_0x26294a(0x395),{'method':_0x26294a(0x433),'headers':_0x5160b3,'body':JSON[_0x26294a(0x38d)]({'query':'query\x20getBillingMetrics($AccountID:\x20String!,\x20$filter:\x20AccountWorkersInvocationsAdaptiveFilter_InputObject)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20viewer\x20{\x20accounts(filter:\x20{accountTag:\x20$AccountID})\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20pagesFunctionsInvocationsAdaptiveGroups(limit:\x201000,\x20filter:\x20$filter)\x20{\x20sum\x20{\x20requests\x20}\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20workersInvocationsAdaptive(limit:\x2010000,\x20filter:\x20$filter)\x20{\x20sum\x20{\x20requests\x20}\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}','variables':{'AccountID':_0x437cce,'filter':{'datetime_geq':_0x10bea6[_0x26294a(0x15d)](),'datetime_leq':new Date()['toISOString']()}}})});if(!_0x52229e['ok'])throw new Error(_0x26294a(0x46e)+_0x52229e['status']);const _0x19f1bb=await _0x52229e[_0x26294a(0x18e)]();if(_0x19f1bb[_0x26294a(0x479)]?.['length'])throw new Error(_0x19f1bb[_0x26294a(0x479)][0x0][_0x26294a(0x3de)]);const _0x1b6d8d=_0x19f1bb?.[_0x26294a(0x4f6)]?.[_0x26294a(0x4f4)]?.[_0x26294a(0x42a)]?.[0x0];if(!_0x1b6d8d)throw new Error(_0x26294a(0x4ac));const _0xa06c1=_0x51ee6b(_0x1b6d8d[_0x26294a(0x2ee)]),_0x3cdd3b=_0x51ee6b(_0x1b6d8d['workersInvocationsAdaptive']),_0x4b68b6=_0xa06c1+_0x3cdd3b,_0x3c23bd=0x186a0;return console[_0x26294a(0x282)](_0x26294a(0x48e)+_0xa06c1+_0x26294a(0x459)+_0x3cdd3b+_0x26294a(0x2b2)+_0x4b68b6+',\x20上限:\x20100000'),{'success':!![],'pages':_0xa06c1,'workers':_0x3cdd3b,'total':_0x4b68b6,'max':_0x3c23bd};}catch(_0x4bfc71){return console[_0x26294a(0x1e8)](_0x26294a(0x37a),_0x4bfc71['message']),{'success':![],'pages':0x0,'workers':0x0,'total':0x0,'max':0x186a0};}}function sha224(_0x14b9af){const _0x21bfd4=_0x10737d,_0x456d5a=[0x428a2f98,0x71374491,0xb5c0fbcf,0xe9b5dba5,0x3956c25b,0x59f111f1,0x923f82a4,0xab1c5ed5,0xd807aa98,0x12835b01,0x243185be,0x550c7dc3,0x72be5d74,0x80deb1fe,0x9bdc06a7,0xc19bf174,0xe49b69c1,0xefbe4786,0xfc19dc6,0x240ca1cc,0x2de92c6f,0x4a7484aa,0x5cb0a9dc,0x76f988da,0x983e5152,0xa831c66d,0xb00327c8,0xbf597fc7,0xc6e00bf3,0xd5a79147,0x6ca6351,0x14292967,0x27b70a85,0x2e1b2138,0x4d2c6dfc,0x53380d13,0x650a7354,0x766a0abb,0x81c2c92e,0x92722c85,0xa2bfe8a1,0xa81a664b,0xc24b8b70,0xc76c51a3,0xd192e819,0xd6990624,0xf40e3585,0x106aa070,0x19a4c116,0x1e376c08,0x2748774c,0x34b0bcb5,0x391c0cb3,0x4ed8aa4a,0x5b9cca4f,0x682e6ff3,0x748f82ee,0x78a5636f,0x84c87814,0x8cc70208,0x90befffa,0xa4506ceb,0xbef9a3f7,0xc67178f2],_0x19911e=(_0xd46156,_0x1c55bc)=>(_0xd46156>>>_0x1c55bc|_0xd46156<<0x20-_0x1c55bc)>>>0x0;_0x14b9af=unescape(encodeURIComponent(_0x14b9af));const _0x475f05=_0x14b9af['length']*0x8;_0x14b9af+=String[_0x21bfd4(0x1a5)](0x80);while(_0x14b9af[_0x21bfd4(0x3ff)]*0x8%0x200!==0x1c0)_0x14b9af+=String['fromCharCode'](0x0);const _0x4575ce=[0xc1059ed8,0x367cd507,0x3070dd17,0xf70e5939,0xffc00b31,0x68581511,0x64f98fa7,0xbefa4fa4],_0x4b2333=Math[_0x21bfd4(0x502)](_0x475f05/0x100000000),_0x4f2b46=_0x475f05&0xffffffff;_0x14b9af+=String[_0x21bfd4(0x1a5)](_0x4b2333>>>0x18&0xff,_0x4b2333>>>0x10&0xff,_0x4b2333>>>0x8&0xff,_0x4b2333&0xff,_0x4f2b46>>>0x18&0xff,_0x4f2b46>>>0x10&0xff,_0x4f2b46>>>0x8&0xff,_0x4f2b46&0xff);const _0x251e86=[];for(let _0x57b6a9=0x0;_0x57b6a9<_0x14b9af['length'];_0x57b6a9+=0x4)_0x251e86[_0x21bfd4(0x14c)](_0x14b9af['charCodeAt'](_0x57b6a9)<<0x18|_0x14b9af[_0x21bfd4(0x19d)](_0x57b6a9+0x1)<<0x10|_0x14b9af[_0x21bfd4(0x19d)](_0x57b6a9+0x2)<<0x8|_0x14b9af['charCodeAt'](_0x57b6a9+0x3));for(let _0x1d9ab6=0x0;_0x1d9ab6<_0x251e86[_0x21bfd4(0x3ff)];_0x1d9ab6+=0x10){const _0x3afe74=new Array(0x40)[_0x21bfd4(0x2c4)](0x0);for(let _0x368131=0x0;_0x368131<0x10;_0x368131++)_0x3afe74[_0x368131]=_0x251e86[_0x1d9ab6+_0x368131];for(let _0x125aa8=0x10;_0x125aa8<0x40;_0x125aa8++){const _0x4d6c83=_0x19911e(_0x3afe74[_0x125aa8-0xf],0x7)^_0x19911e(_0x3afe74[_0x125aa8-0xf],0x12)^_0x3afe74[_0x125aa8-0xf]>>>0x3,_0x78e468=_0x19911e(_0x3afe74[_0x125aa8-0x2],0x11)^_0x19911e(_0x3afe74[_0x125aa8-0x2],0x13)^_0x3afe74[_0x125aa8-0x2]>>>0xa;_0x3afe74[_0x125aa8]=_0x3afe74[_0x125aa8-0x10]+_0x4d6c83+_0x3afe74[_0x125aa8-0x7]+_0x78e468>>>0x0;}let [_0x3fa15e,_0x1e0dbd,_0x4d3a95,_0x5ec1aa,_0xbebb8d,_0xc285f,_0x4951ea,_0x312e9c]=_0x4575ce;for(let _0x99f9e8=0x0;_0x99f9e8<0x40;_0x99f9e8++){const _0x4d6c9d=_0x19911e(_0xbebb8d,0x6)^_0x19911e(_0xbebb8d,0xb)^_0x19911e(_0xbebb8d,0x19),_0x286208=_0xbebb8d&_0xc285f^~_0xbebb8d&_0x4951ea,_0x42dc69=_0x312e9c+_0x4d6c9d+_0x286208+_0x456d5a[_0x99f9e8]+_0x3afe74[_0x99f9e8]>>>0x0,_0xe92986=_0x19911e(_0x3fa15e,0x2)^_0x19911e(_0x3fa15e,0xd)^_0x19911e(_0x3fa15e,0x16),_0xb5f0f3=_0x3fa15e&_0x1e0dbd^_0x3fa15e&_0x4d3a95^_0x1e0dbd&_0x4d3a95,_0x3ece62=_0xe92986+_0xb5f0f3>>>0x0;_0x312e9c=_0x4951ea,_0x4951ea=_0xc285f,_0xc285f=_0xbebb8d,_0xbebb8d=_0x5ec1aa+_0x42dc69>>>0x0,_0x5ec1aa=_0x4d3a95,_0x4d3a95=_0x1e0dbd,_0x1e0dbd=_0x3fa15e,_0x3fa15e=_0x42dc69+_0x3ece62>>>0x0;}for(let _0x252b22=0x0;_0x252b22<0x8;_0x252b22++)_0x4575ce[_0x252b22]=_0x4575ce[_0x252b22]+(_0x252b22===0x0?_0x3fa15e:_0x252b22===0x1?_0x1e0dbd:_0x252b22===0x2?_0x4d3a95:_0x252b22===0x3?_0x5ec1aa:_0x252b22===0x4?_0xbebb8d:_0x252b22===0x5?_0xc285f:_0x252b22===0x6?_0x4951ea:_0x312e9c)>>>0x0;}let _0x5e9dbc='';for(let _0x18c51b=0x0;_0x18c51b<0x7;_0x18c51b++){for(let _0x336739=0x18;_0x336739>=0x0;_0x336739-=0x8)_0x5e9dbc+=(_0x4575ce[_0x18c51b]>>>_0x336739&0xff)[_0x21bfd4(0x226)](0x10)[_0x21bfd4(0x40f)](0x2,'0');}return _0x5e9dbc;}async function 解析地址端口(_0x544fcc,_0x13e18c=_0x10737d(0x468),_0x4be31e=_0x10737d(0x4b9)){const _0x27f0ab=_0x10737d;if(!缓存反代IP||!缓存反代解析数组||缓存反代IP!==_0x544fcc){_0x544fcc=_0x544fcc[_0x27f0ab(0x48a)]();async function _0x5caa8f(_0x484054,_0x43892d){const _0x7c3722=_0x27f0ab;try{const _0x5d49e7=await fetch(_0x7c3722(0x196)+_0x484054+_0x7c3722(0x1bb)+_0x43892d,{'headers':{'Accept':_0x7c3722(0x3cd)}});if(!_0x5d49e7['ok'])return[];const _0x36a7df=await _0x5d49e7[_0x7c3722(0x18e)]();return _0x36a7df[_0x7c3722(0x4de)]||[];}catch(_0x54cf04){return console[_0x7c3722(0x1e8)]('DoH查询失败\x20('+_0x43892d+'):',_0x54cf04),[];}}function _0x4cb8cc(_0x260951){const _0x5013f0=_0x27f0ab;let _0x126dbe=_0x260951,_0x40ecb3=0x1bb;if(_0x260951[_0x5013f0(0x153)](']:')){const _0x3e6b5f=_0x260951[_0x5013f0(0x205)](']:');_0x126dbe=_0x3e6b5f[0x0]+']',_0x40ecb3=parseInt(_0x3e6b5f[0x1],0xa)||_0x40ecb3;}else{if(_0x260951['includes'](':')&&!_0x260951['startsWith']('[')){const _0x273c5e=_0x260951[_0x5013f0(0x2a2)](':');_0x126dbe=_0x260951[_0x5013f0(0x471)](0x0,_0x273c5e),_0x40ecb3=parseInt(_0x260951[_0x5013f0(0x471)](_0x273c5e+0x1),0xa)||_0x40ecb3;}}return[_0x126dbe,_0x40ecb3];}let _0x129b61=[];if(_0x544fcc[_0x27f0ab(0x153)](_0x27f0ab(0x312)))try{const _0x435ecf=await _0x5caa8f(_0x544fcc,_0x27f0ab(0x41f)),_0x3af62b=_0x435ecf[_0x27f0ab(0x464)](_0x2b9867=>_0x2b9867[_0x27f0ab(0x353)]===0x10)['map'](_0x20aedf=>_0x20aedf[_0x27f0ab(0x4f6)]);if(_0x3af62b[_0x27f0ab(0x3ff)]>0x0){let _0x26f7e=_0x3af62b[0x0];if(_0x26f7e[_0x27f0ab(0x190)]('\x22')&&_0x26f7e[_0x27f0ab(0x15f)]('\x22'))_0x26f7e=_0x26f7e[_0x27f0ab(0x471)](0x1,-0x1);const _0x10da8a=_0x26f7e[_0x27f0ab(0x4c8)](/\\010/g,',')[_0x27f0ab(0x4c8)](/\n/g,',')[_0x27f0ab(0x205)](',')[_0x27f0ab(0x202)](_0x23477c=>_0x23477c[_0x27f0ab(0x4d1)]())['filter'](Boolean);_0x129b61=_0x10da8a[_0x27f0ab(0x202)](_0x59cee8=>_0x4cb8cc(_0x59cee8));}}catch(_0x14b601){console[_0x27f0ab(0x1e8)]('解析William域名失败:',_0x14b601);}else{let [_0x113c0d,_0x3f64e6]=_0x4cb8cc(_0x544fcc);if(_0x544fcc[_0x27f0ab(0x153)](_0x27f0ab(0x516))){const _0x1de114=_0x544fcc[_0x27f0ab(0x4ff)](/\.tp(\d+)/);if(_0x1de114)_0x3f64e6=parseInt(_0x1de114[0x1],0xa);}const _0x3fe34c=/^(25[0-5]|2[0-4]\d|[01]?\d\d?)\.(25[0-5]|2[0-4]\d|[01]?\d\d?)\.(25[0-5]|2[0-4]\d|[01]?\d\d?)\.(25[0-5]|2[0-4]\d|[01]?\d\d?)$/,_0x3bb445=/^\[?([a-fA-F0-9:]+)\]?$/;if(!_0x3fe34c[_0x27f0ab(0x49f)](_0x113c0d)&&!_0x3bb445[_0x27f0ab(0x49f)](_0x113c0d)){const [_0x596535,_0x136d2d]=await Promise[_0x27f0ab(0x2ed)]([_0x5caa8f(_0x113c0d,'A'),_0x5caa8f(_0x113c0d,'AAAA')]),_0x96ee9f=_0x596535[_0x27f0ab(0x464)](_0xaeb67c=>_0xaeb67c[_0x27f0ab(0x353)]===0x1)[_0x27f0ab(0x202)](_0x3cbc27=>_0x3cbc27[_0x27f0ab(0x4f6)]),_0x5b86ec=_0x136d2d['filter'](_0x3ffa8f=>_0x3ffa8f[_0x27f0ab(0x353)]===0x1c)[_0x27f0ab(0x202)](_0x2537b0=>'['+_0x2537b0['data']+']'),_0x536bb9=[..._0x96ee9f,..._0x5b86ec];_0x129b61=_0x536bb9['length']>0x0?_0x536bb9['map'](_0x3aafa2=>[_0x3aafa2,_0x3f64e6]):[[_0x113c0d,_0x3f64e6]];}else _0x129b61=[[_0x113c0d,_0x3f64e6]];}const _0x1cdec7=_0x129b61[_0x27f0ab(0x51b)]((_0x4c40e5,_0x4417be)=>_0x4c40e5[0x0][_0x27f0ab(0x2a4)](_0x4417be[0x0])),_0x5efe89=_0x13e18c[_0x27f0ab(0x153)]('.')?_0x13e18c[_0x27f0ab(0x205)]('.')[_0x27f0ab(0x471)](-0x2)[_0x27f0ab(0x315)]('.'):_0x13e18c;let _0x3aed73=[..._0x5efe89+_0x4be31e][_0x27f0ab(0x380)]((_0x3c396d,_0xf2b509)=>_0x3c396d+_0xf2b509[_0x27f0ab(0x19d)](0x0),0x0);console[_0x27f0ab(0x282)](_0x27f0ab(0x388)+_0x3aed73+_0x27f0ab(0x30c)+_0x5efe89);const _0x43a9cb=[..._0x1cdec7][_0x27f0ab(0x51b)](()=>(_0x3aed73=_0x3aed73*0x41c64e6d+0x3039&0x7fffffff)/0x7fffffff-0.5);缓存反代解析数组=_0x43a9cb['slice'](0x0,0x8),console[_0x27f0ab(0x282)](_0x27f0ab(0x435)+缓存反代解析数组[_0x27f0ab(0x3ff)]+'个\x0a'+缓存反代解析数组[_0x27f0ab(0x202)](([_0x41446b,_0xba6802],_0x50d79c)=>_0x50d79c+0x1+'.\x20'+_0x41446b+':'+_0xba6802)[_0x27f0ab(0x315)]('\x0a')),缓存反代IP=_0x544fcc;}else console['log'](_0x27f0ab(0x26a)+缓存反代解析数组[_0x27f0ab(0x3ff)]+'个\x0a'+缓存反代解析数组[_0x27f0ab(0x202)](([_0x5b0ec0,_0xb5facd],_0x5e9bd8)=>_0x5e9bd8+0x1+'.\x20'+_0x5b0ec0+':'+_0xb5facd)[_0x27f0ab(0x315)]('\x0a'));return 缓存反代解析数组;}async function SOCKS5可用性验证(_0xb1ee42=_0x10737d(0x1ad),_0x56e300){const _0x37e0ed=_0x10737d,_0x49405b=Date[_0x37e0ed(0x28f)]();try{parsedSocks5Address=await 获取SOCKS5账号(_0x56e300);}catch(_0xb94ccc){return{'success':![],'error':_0xb94ccc[_0x37e0ed(0x3de)],'proxy':_0xb1ee42+_0x37e0ed(0x3e7)+_0x56e300,'responseTime':Date[_0x37e0ed(0x28f)]()-_0x49405b};}const {username:_0x58c68f,password:_0x4a961b,hostname:_0x45cc0f,port:_0x3908df}=parsedSocks5Address,_0x313ab2=_0x58c68f&&_0x4a961b?_0x58c68f+':'+_0x4a961b+'@'+_0x45cc0f+':'+_0x3908df:_0x45cc0f+':'+_0x3908df;try{const _0x4556ef=new Uint8Array(0x0),_0x4f7153=_0xb1ee42=='socks5'?await socks5Connect(_0x37e0ed(0x320),0x50,_0x4556ef):await httpConnect('check.socks5.090227.xyz',0x50,_0x4556ef);if(!_0x4f7153)return{'success':![],'error':_0x37e0ed(0x3a0),'proxy':_0xb1ee42+_0x37e0ed(0x3e7)+_0x313ab2,'responseTime':Date['now']()-_0x49405b};try{const _0x41aef4=_0x4f7153['writable'][_0x37e0ed(0x48d)](),_0x4eb906=new TextEncoder();await _0x41aef4[_0x37e0ed(0x30a)](_0x4eb906[_0x37e0ed(0x4b7)](_0x37e0ed(0x43e))),_0x41aef4['releaseLock']();const _0x21612f=_0x4f7153[_0x37e0ed(0x4f1)][_0x37e0ed(0x230)](),_0x3ff4f9=new TextDecoder();let _0x50f0b8='';try{while(!![]){const {done:_0xa049ae,value:_0x270d13}=await _0x21612f['read']();if(_0xa049ae)break;_0x50f0b8+=_0x3ff4f9[_0x37e0ed(0x453)](_0x270d13,{'stream':!![]});}}finally{_0x21612f['releaseLock']();}return await _0x4f7153[_0x37e0ed(0x2e4)](),{'success':!![],'proxy':_0xb1ee42+_0x37e0ed(0x3e7)+_0x313ab2,'ip':_0x50f0b8[_0x37e0ed(0x4ff)](/ip=(.*)/)[0x1],'loc':_0x50f0b8[_0x37e0ed(0x4ff)](/loc=(.*)/)[0x1],'responseTime':Date['now']()-_0x49405b};}catch(_0x4f2937){try{await _0x4f7153[_0x37e0ed(0x2e4)]();}catch(_0x338b5c){console[_0x37e0ed(0x282)](_0x37e0ed(0x476),_0x338b5c);}return{'success':![],'error':_0x4f2937[_0x37e0ed(0x3de)],'proxy':_0xb1ee42+_0x37e0ed(0x3e7)+_0x313ab2,'responseTime':Date[_0x37e0ed(0x28f)]()-_0x49405b};}}catch(_0x14932c){return{'success':![],'error':_0x14932c['message'],'proxy':_0xb1ee42+_0x37e0ed(0x3e7)+_0x313ab2,'responseTime':Date['now']()-_0x49405b};}}async function nginx(){const _0x14022f=_0x10737d;return _0x14022f(0x521);}async function html1101(_0x413f16,_0x57c409){const _0xf9dc9f=_0x10737d,_0x5997e3=new Date(),_0xe9caca=_0x5997e3[_0xf9dc9f(0x4b2)]()+'-'+String(_0x5997e3[_0xf9dc9f(0x1d5)]()+0x1)[_0xf9dc9f(0x40f)](0x2,'0')+'-'+String(_0x5997e3[_0xf9dc9f(0x256)]())[_0xf9dc9f(0x40f)](0x2,'0')+'\x20'+String(_0x5997e3[_0xf9dc9f(0x518)]())[_0xf9dc9f(0x40f)](0x2,'0')+':'+String(_0x5997e3['getMinutes']())[_0xf9dc9f(0x40f)](0x2,'0')+':'+String(_0x5997e3[_0xf9dc9f(0x416)]())['padStart'](0x2,'0'),_0x3fcacc=Array[_0xf9dc9f(0x1ea)](crypto[_0xf9dc9f(0x3c6)](new Uint8Array(0x8)))[_0xf9dc9f(0x202)](_0xc62805=>_0xc62805[_0xf9dc9f(0x226)](0x10)[_0xf9dc9f(0x40f)](0x2,'0'))[_0xf9dc9f(0x315)]('');return _0xf9dc9f(0x49b)+_0x413f16+_0xf9dc9f(0x185)+_0x3fcacc+_0xf9dc9f(0x329)+_0xe9caca+_0xf9dc9f(0x36d)+_0x413f16+_0xf9dc9f(0x43a)+_0x413f16+_0xf9dc9f(0x2e9)+_0x3fcacc+_0xf9dc9f(0x3f9)+_0x57c409+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20•\x0a\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20Performance\x20&\x20security\x20by\x20Cloudflare\x0a\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20

\x0a\x20\x20\x20\x20\x0a\x20\x20\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x0a\x0a\x20\x20\x20\x20\x20\x20\x0a\x0a';}globalThis[_0x10737d(0x418)]=globalThis[_0x10737d(0x418)]||Date[_0x10737d(0x28f)]();function generateIPPool(_0x64d237){const _0x57dec3=_0x10737d,_0x1d7946=_0x64d237['cf']?.[_0x57dec3(0x2cb)]||_0x57dec3(0x422),_0x151d51=_0x64d237['cf']?.[_0x57dec3(0x147)]||'XX',_0x2df2bd=[{'ip':_0x1d7946+'.edge.cloudflare.com','type':_0x57dec3(0x4fb),'status':_0x57dec3(0x481),'latency':Math[_0x57dec3(0x502)](Math['random']()*0x32)+0xa,'region':_0x151d51},{'ip':_0x57dec3(0x4c6)+Math[_0x57dec3(0x502)](Math[_0x57dec3(0x3f7)]()*0xff)+'.'+Math['floor'](Math[_0x57dec3(0x3f7)]()*0xff),'type':_0x57dec3(0x298),'status':_0x57dec3(0x481),'latency':Math[_0x57dec3(0x502)](Math[_0x57dec3(0x3f7)]()*0x32)+0x14,'region':_0x151d51},{'ip':'172.67.'+Math[_0x57dec3(0x502)](Math['random']()*0xff)+'.'+Math[_0x57dec3(0x502)](Math[_0x57dec3(0x3f7)]()*0xff),'type':_0x57dec3(0x298),'status':_0x57dec3(0x481),'latency':Math[_0x57dec3(0x502)](Math[_0x57dec3(0x3f7)]()*0x32)+0x1e,'region':_0x151d51},{'ip':'104.21.'+Math['floor'](Math[_0x57dec3(0x3f7)]()*0xff)+'.'+Math[_0x57dec3(0x502)](Math['random']()*0xff),'type':_0x57dec3(0x298),'status':_0x57dec3(0x481),'latency':Math['floor'](Math[_0x57dec3(0x3f7)]()*0x32)+0x19,'region':_0x151d51},{'ip':'162.159.'+Math[_0x57dec3(0x502)](Math[_0x57dec3(0x3f7)]()*0xff)+'.'+Math['floor'](Math[_0x57dec3(0x3f7)]()*0xff),'type':_0x57dec3(0x298),'status':'ONLINE','latency':Math[_0x57dec3(0x502)](Math[_0x57dec3(0x3f7)]()*0x32)+0x23,'region':_0x151d51},{'ip':_0x57dec3(0x45a)+Math['floor'](Math[_0x57dec3(0x3f7)]()*0xff)+'.'+Math[_0x57dec3(0x502)](Math[_0x57dec3(0x3f7)]()*0xff),'type':'ANYCAST','status':'ONLINE','latency':Math[_0x57dec3(0x502)](Math[_0x57dec3(0x3f7)]()*0x32)+0x1c,'region':_0x151d51}];return{'pool':_0x2df2bd,'total':_0x2df2bd[_0x57dec3(0x3ff)],'online':_0x2df2bd[_0x57dec3(0x3ff)]};}function generateCFspiderPage(_0x3fcfdf,_0x355ddb,_0x1e6c39,_0x17c6b9,_0x4a0759=!![],_0x42cdda=![],_0x37bbcc=''){const _0x159cb1=_0x10737d,_0x5d92d5=_0x3fcfdf['cf']?.[_0x159cb1(0x2cb)]||_0x159cb1(0x422),_0x65759d=_0x3fcfdf['cf']?.[_0x159cb1(0x147)]||'XX',_0x4e5c07=_0x3fcfdf['cf']?.['city']||_0x159cb1(0x4a1),_0x2e90b3=_0x3fcfdf['cf']?.[_0x159cb1(0x170)]||_0x159cb1(0x41c),_0x49389c=_0x3fcfdf['cf']?.[_0x159cb1(0x1c5)]||_0x159cb1(0x41c),_0x3f91b4=_0x3fcfdf['cf']?.['timezone']||_0x159cb1(0x165),_0x43c49c=_0x3fcfdf['cf']?.[_0x159cb1(0x26b)]||'0',_0x212b54=_0x3fcfdf['cf']?.['longitude']||'0',_0x146387=_0x3fcfdf['cf']?.['continent']||'XX',_0x25efcf=_0x355ddb[_0x159cb1(0x3ae)][_0x159cb1(0x198)](_0x159cb1(0x1f4))||'zh',_0x388bda='1.8.5',_0xd50b1a=!_0x42cdda;let _0x1a46d3='',_0x398ae1='',_0xae86e4='',_0x44da64='',_0x3f6879=![];if(_0x37bbcc){const _0x4ebda0=_0x37bbcc[_0x159cb1(0x205)](':');_0x4ebda0[_0x159cb1(0x3ff)]>=0x2&&(_0x1a46d3=_0x4ebda0[0x0],_0x398ae1=_0x4ebda0[0x1],_0xae86e4=_0x4ebda0[0x2]||'',_0x44da64=_0x4ebda0[0x3]||'',_0x3f6879=!![]);}const _0x4b07fc=_0x355ddb[_0x159cb1(0x3c4)],_0x59a49d=_0x159cb1(0x217),_0x176fb5='/'+_0x17c6b9,_0x2e91d4=_0x17c6b9?_0x159cb1(0x3bb)+_0x17c6b9+'@'+_0x4b07fc+':'+_0x59a49d+'?security=tls&type=ws&host='+_0x4b07fc+_0x159cb1(0x181)+_0x4b07fc+_0x159cb1(0x326)+encodeURIComponent(_0x176fb5)+_0x159cb1(0x4ce)+_0x5d92d5:'',_0x430a7c='/'+_0x17c6b9+_0x159cb1(0x246)+encodeURIComponent(_0x37bbcc),_0x4a2bd6=_0x3f6879&&_0x17c6b9?_0x159cb1(0x3bb)+_0x17c6b9+'@'+_0x4b07fc+':'+_0x59a49d+'?security=tls&type=ws&host='+_0x4b07fc+_0x159cb1(0x181)+_0x4b07fc+_0x159cb1(0x326)+encodeURIComponent(_0x430a7c)+_0x159cb1(0x3d3)+_0x1a46d3[_0x159cb1(0x205)]('.')[0x0]:'',_0x203f89={'JP':'日本','CN':'中国','US':'美国','HK':'香港','TW':'台湾','SG':'新加坡','KR':'韩国','DE':'德国','FR':'法国','GB':'英国','NL':'荷兰','AU':_0x159cb1(0x4f7),'CA':_0x159cb1(0x179),'IN':'印度','BR':'巴西'},_0x489ecb={'NRT':_0x159cb1(0x3c2),'HND':_0x159cb1(0x260),'KIX':_0x159cb1(0x1f5),'HKG':'香港','SIN':_0x159cb1(0x2fa),'ICN':_0x159cb1(0x25c),'TPE':'台北桃园','LAX':_0x159cb1(0x251),'SFO':_0x159cb1(0x334),'SEA':_0x159cb1(0x454),'ORD':_0x159cb1(0x1eb),'LHR':'伦敦','AMS':_0x159cb1(0x27e),'FRA':_0x159cb1(0x29e),'SYD':'悉尼','CDG':'巴黎'},_0x2287dc={'AS':'亚洲','EU':'欧洲','NA':'北美','SA':'南美','AF':'非洲','OC':'大洋洲'},_0x5d2dfe={'zh':{'subtitle':_0x159cb1(0x40a),'nodeLocation':_0x159cb1(0x398),'country':_0x159cb1(0x2be),'city':'城市','status':'状态','online':'在线','poolTitle':_0x159cb1(0x1c4),'ipAddress':_0x159cb1(0x365),'latency':'延迟','regionLabel':'地区','type':'类型','apiTitle':_0x159cb1(0x281),'codeTitle':_0x159cb1(0x16f),'loading':_0x159cb1(0x44a),'langSwitch':'EN','footer':'由\x20Cloudflare\x20Workers\x20强力驱动','nodeInfoTitle':_0x159cb1(0x364),'visitorInfoTitle':_0x159cb1(0x2fd),'visitorIP':_0x159cb1(0x4c1),'timezone':'时区','asn':'ASN\x20编号','coordinates':_0x159cb1(0x447),'continent':'大洲','feature1':'全球\x20300+\x20节点','feature2':_0x159cb1(0x1cc),'feature3':'隐身模式','feature4':_0x159cb1(0x1b5),'feature5':_0x159cb1(0x17c),'feature6':_0x159cb1(0x493),'vlessTitle':_0x159cb1(0x48c),'vlessUUID':_0x159cb1(0x448),'vlessHost':_0x159cb1(0x1a1),'vlessPort':'端口','vlessLink':_0x159cb1(0x171),'vlessCopy':_0x159cb1(0x519),'version':'版本','defaultUuidWarning':'当前使用公共\x20UUID,建议通过\x20Cloudflare\x20Dashboard\x20设置私有\x20UUID\x20环境变量以提高安全性','newIp':_0x159cb1(0x463),'transport':_0x159cb1(0x1de),'security':_0x159cb1(0x3d9),'encryption':'加密方式','credits':'VLESS\x20技术基于\x20edgetunnel\x20项目','v2rayClients':'支持的客户端','copySuccess':_0x159cb1(0x26e),'twoProxyTitle':'双层代理配置','twoProxyHost':_0x159cb1(0x278),'twoProxyPort':_0x159cb1(0x301),'twoProxyAuth':_0x159cb1(0x30d),'twoProxyEnabled':_0x159cb1(0x48f),'twoProxyDisabled':_0x159cb1(0x186),'twoProxyLink':_0x159cb1(0x2d4),'twoProxyDesc':'流量路径:\x20本地\x20→\x20Workers\x20(VLESS)\x20→\x20第二层代理\x20→\x20目标网站','twoProxyEnvHint':'可选功能:如需指定出口\x20IP\x20地区或国内无法直连代理时使用','twoProxyHowTo':_0x159cb1(0x438),'exitIp':_0x159cb1(0x36a),'proxyIpTitle':_0x159cb1(0x4ad),'proxyIpDesc':_0x159cb1(0x406),'proxyIpDefault':_0x159cb1(0x1e7),'proxyIpHK':_0x159cb1(0x473),'proxyIpCustom':_0x159cb1(0x2af),'proxyIpTesting':_0x159cb1(0x3c3),'proxyIpOnline':'可用','proxyIpOffline':_0x159cb1(0x2db),'proxyIpSaved':_0x159cb1(0x472),'proxyIpTest':'检测','proxyIpSave':'保存','proxyIpPlaceholder':_0x159cb1(0x369)},'en':{'subtitle':_0x159cb1(0x148),'nodeLocation':_0x159cb1(0x17a),'country':_0x159cb1(0x328),'city':_0x159cb1(0x492),'status':_0x159cb1(0x3fc),'online':'ONLINE','poolTitle':'IP\x20Pool\x20Status','ipAddress':_0x159cb1(0x33a),'latency':_0x159cb1(0x356),'regionLabel':_0x159cb1(0x3c5),'type':_0x159cb1(0x4a3),'apiTitle':_0x159cb1(0x21f),'codeTitle':_0x159cb1(0x367),'loading':_0x159cb1(0x14a),'langSwitch':'中文','footer':_0x159cb1(0x520),'nodeInfoTitle':_0x159cb1(0x2b5),'visitorInfoTitle':_0x159cb1(0x15c),'visitorIP':_0x159cb1(0x47d),'timezone':'Timezone','asn':_0x159cb1(0x271),'coordinates':_0x159cb1(0x3f1),'continent':_0x159cb1(0x323),'feature1':'300+\x20Global\x20Nodes','feature2':_0x159cb1(0x343),'feature3':'Stealth\x20Mode','feature4':'HTTP/2\x20Protocol','feature5':_0x159cb1(0x252),'feature6':'VLESS\x20Protocol','vlessTitle':_0x159cb1(0x361),'vlessUUID':'UUID','vlessHost':_0x159cb1(0x289),'vlessPort':_0x159cb1(0x4f5),'vlessLink':_0x159cb1(0x221),'vlessCopy':_0x159cb1(0x322),'version':'Version','defaultUuidWarning':_0x159cb1(0x39e),'newIp':'Dynamic\x20IP','transport':'Transport','security':'Security','encryption':'Encryption','credits':_0x159cb1(0x47e),'v2rayClients':_0x159cb1(0x2a7),'copySuccess':'Copied!','twoProxyTitle':'Two-Layer\x20Proxy','twoProxyHost':_0x159cb1(0x1b0),'twoProxyPort':_0x159cb1(0x3ce),'twoProxyAuth':_0x159cb1(0x2d1),'twoProxyEnabled':'Enabled','twoProxyDisabled':_0x159cb1(0x1d2),'twoProxyLink':_0x159cb1(0x296),'twoProxyDesc':_0x159cb1(0x309),'twoProxyEnvHint':_0x159cb1(0x311),'twoProxyHowTo':_0x159cb1(0x499),'exitIp':'Exit\x20IP','proxyIpTitle':_0x159cb1(0x4e0),'proxyIpDesc':_0x159cb1(0x399),'proxyIpDefault':_0x159cb1(0x490),'proxyIpHK':_0x159cb1(0x4a0),'proxyIpCustom':_0x159cb1(0x215),'proxyIpTesting':_0x159cb1(0x2fc),'proxyIpOnline':_0x159cb1(0x258),'proxyIpOffline':'Offline','proxyIpSaved':_0x159cb1(0x37e),'proxyIpTest':_0x159cb1(0x436),'proxyIpSave':'Save','proxyIpPlaceholder':_0x159cb1(0x21b)}},_0x2a3965=_0x5d2dfe[_0x25efcf]||_0x5d2dfe['zh'],_0x53b3ef=_0x203f89[_0x65759d]||_0x65759d,_0xcf291d=_0x489ecb[_0x5d92d5]||_0x5d92d5,_0x397bfc=_0x2287dc[_0x146387]||_0x146387,_0x28f968=_0x4e5c07,_0x28eea7=!_0xd50b1a;return _0x159cb1(0x272)+(_0x25efcf==='zh'?_0x159cb1(0x1ce):'en')+'\x22>\x0a\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20CFSPIDER\x20//\x20VLESS\x20PROXY\x20NETWORK\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x0a\x0a\x0a\x20\x20\x20\x20'+_0x2a3965['langSwitch']+_0x159cb1(0x2a9)+_0x388bda+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+_0x2a3965['subtitle']+_0x159cb1(0x228)+(_0xd50b1a?_0x159cb1(0x511):_0x159cb1(0x1b3))+'\x22>'+(_0xd50b1a?'环境变量模式':_0x159cb1(0x33c))+_0x159cb1(0x29f)+_0x2a3965[_0x159cb1(0x168)]+_0x159cb1(0x362)+_0x2a3965[_0x159cb1(0x4e5)]+_0x159cb1(0x2c0)+(_0xd50b1a?'\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Connection\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+_0x2a3965['vlessHost']+_0x159cb1(0x20e)+_0x4b07fc+_0x159cb1(0x23a)+_0x2a3965[_0x159cb1(0x37c)]+_0x159cb1(0x4bf)+_0x2a3965[_0x159cb1(0x3d7)]+_0x159cb1(0x2d9)+_0x2a3965[_0x159cb1(0x3b0)]+'TLS\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Authentication\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+_0x2a3965[_0x159cb1(0x19f)]+_0x159cb1(0x39c)+_0x17c6b9+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Path/'+_0x17c6b9[_0x159cb1(0x1fd)](0x0,0x8)+_0x159cb1(0x423)+_0x2a3965[_0x159cb1(0x22f)]+_0x159cb1(0x348)+_0x2a3965[_0x159cb1(0x2b0)]+_0x159cb1(0x14d)+_0x2a3965[_0x159cb1(0x467)]+_0x159cb1(0x412)+_0x2e91d4+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20':_0x159cb1(0x38c)+_0x2a3965[_0x159cb1(0x45b)]+_0x159cb1(0x20e)+_0x4b07fc+_0x159cb1(0x23a)+_0x2a3965[_0x159cb1(0x37c)]+_0x159cb1(0x4bf)+_0x2a3965[_0x159cb1(0x3d7)]+'WebSocket\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+_0x2a3965[_0x159cb1(0x3b0)]+'TLS\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Settings\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+_0x2a3965[_0x159cb1(0x22f)]+_0x159cb1(0x150)+_0x2a3965['online']+_0x159cb1(0x27f))+_0x159cb1(0x4a8)+_0x2a3965[_0x159cb1(0x342)]+_0x159cb1(0x280)+(_0x3f6879?_0x159cb1(0x357):'var(--bg-secondary)')+';\x20border:\x20'+(_0x3f6879?_0x159cb1(0x270):'1px\x20solid\x20var(--border-color)')+_0x159cb1(0x45f)+(_0x3f6879?'var(--accent-green)':_0x159cb1(0x483))+';\x20display:\x20flex;\x20align-items:\x20center;\x20gap:\x2010px;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+_0x2a3965[_0x159cb1(0x3bd)]+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20配置\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20删除\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20':_0x159cb1(0x2a0)+(_0x3f6879?_0x159cb1(0x44b):'')+'\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+(_0x3f6879?_0x159cb1(0x50d):'')+_0x159cb1(0x203)+(_0x3f6879?_0x2a3965[_0x159cb1(0x164)]:_0x2a3965[_0x159cb1(0x1c2)])+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20')+_0x159cb1(0x299)+(_0x3f6879?'\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+_0x2a3965[_0x159cb1(0x16a)]+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20
'+_0x2a3965[_0x159cb1(0x4fe)]+_0x159cb1(0x1ef)+_0x1a46d3+_0x159cb1(0x2e1)+_0x2a3965[_0x159cb1(0x1f2)]+_0x159cb1(0x4e2)+_0x398ae1+'
\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20
'+_0x2a3965[_0x159cb1(0x189)]+':\x20
\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+_0x4a2bd6+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20':'\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+(!_0xd50b1a?_0x159cb1(0x294):'\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20💡\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20
\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+_0x2a3965[_0x159cb1(0x4e4)]+'
\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+_0x2a3965['twoProxyHowTo']+_0x159cb1(0x250))+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20')+_0x159cb1(0x4e1)+_0x2a3965[_0x159cb1(0x244)]+_0x159cb1(0x2f4)+_0x5d92d5+_0x159cb1(0x31c)+_0x2a3965['country']+_0x159cb1(0x2f4)+_0x53b3ef+_0x159cb1(0x31c)+_0x2a3965['city']+_0x159cb1(0x2f4)+_0x28f968+_0x159cb1(0x31c)+_0x2a3965[_0x159cb1(0x425)]+_0x159cb1(0x2f4)+_0x397bfc+_0x159cb1(0x31c)+_0x2a3965[_0x159cb1(0x4fa)]+''+_0x2a3965[_0x159cb1(0x168)]+_0x159cb1(0x31c)+_0x2a3965[_0x159cb1(0x415)]+_0x159cb1(0x2f4)+_0x388bda+_0x159cb1(0x209)+_0x2a3965[_0x159cb1(0x344)]+_0x159cb1(0x183)+_0x2a3965[_0x159cb1(0x38a)]+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20🇳🇱\x20'+_0x2a3965[_0x159cb1(0x262)]+_0x159cb1(0x17e)+_0x5d92d5['toLowerCase']()+_0x159cb1(0x4db)+_0x2a3965['proxyIpHK']+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20proxyip.cfspider.com\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20⚙️\x20'+_0x2a3965[_0x159cb1(0x432)]+_0x159cb1(0x43d)+_0x2a3965[_0x159cb1(0x1cb)]+'\x22\x20style=\x22flex:\x201;\x20background:\x20var(--bg-secondary);\x20border:\x201px\x20solid\x20var(--border-color);\x20border-radius:\x206px;\x20padding:\x2010px\x2014px;\x20color:\x20var(--text-primary);\x20font-family:\x20inherit;\x20font-size:\x200.9rem;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+_0x2a3965[_0x159cb1(0x482)]+_0x159cb1(0x3e8)+_0x2a3965[_0x159cb1(0x43f)]+_0x159cb1(0x33d)+_0x2a3965[_0x159cb1(0x4ed)]+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+_0x2a3965[_0x159cb1(0x244)]+_0x159cb1(0x222)+_0xcf291d+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+_0x2a3965[_0x159cb1(0x147)]+_0x159cb1(0x222)+_0x53b3ef+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+_0x2a3965[_0x159cb1(0x3a2)]+_0x159cb1(0x222)+_0x28f968+_0x159cb1(0x478)+_0x2a3965[_0x159cb1(0x1c5)]+'AS'+_0x49389c+_0x159cb1(0x478)+_0x2a3965['timezone']+_0x159cb1(0x222)+_0x3f91b4+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+_0x2a3965[_0x159cb1(0x368)]+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+_0x2a3965[_0x159cb1(0x1d7)]+_0x159cb1(0x222)+_0x1e6c39+_0x159cb1(0x478)+_0x2a3965['country']+_0x159cb1(0x222)+_0x53b3ef+_0x159cb1(0x478)+_0x2a3965[_0x159cb1(0x1c5)]+'AS'+_0x49389c+_0x159cb1(0x478)+_0x2a3965['coordinates']+_0x159cb1(0x222)+_0x43c49c+',\x20'+_0x212b54+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20Python\x20基础用法\x20-\x20pip\x20install\x20cfspider\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20
import\x20cfspider\x0a\x0a#\x20基础使用\x0aresponse\x20=\x20cfspider.get(\x0a\x20\x20\x20\x20\x22https://httpbin.org/ip\x22,\x0a\x20\x20\x20\x20cf_proxies=\x22https://'+_0x4b07fc+_0x159cb1(0x291)+(_0xd50b1a?_0x17c6b9:_0x159cb1(0x156))+_0x159cb1(0x33e)+_0x4b07fc+'\x22,\x0a\x20\x20\x20\x20uuid=\x22'+(_0xd50b1a?_0x17c6b9:_0x159cb1(0x156))+_0x159cb1(0x409)+(_0x3f6879||!_0xd50b1a?_0x159cb1(0x32e)+_0x4b07fc+_0x159cb1(0x291)+(_0xd50b1a?_0x17c6b9:_0x159cb1(0x156))+'\x22,\x0a\x20\x20\x20\x20two_proxy=\x22'+(_0x3f6879?_0x37bbcc:'')+'\x22\x0a)\x0aprint(response.json())
\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20':'')+_0x159cb1(0x392)+_0x2a3965['apiTitle']+_0x159cb1(0x39d)+_0x388bda+_0x159cb1(0x329)+_0x2a3965[_0x159cb1(0x2d5)]+_0x159cb1(0x2d7)+_0x2a3965[_0x159cb1(0x199)]+_0x159cb1(0x522)+_0x4b07fc+_0x159cb1(0x41e)+(_0xd50b1a?'\x27'+_0x17c6b9+'\x27':_0x159cb1(0x3c1))+_0x159cb1(0x219)+(_0x3f6879?'\x27'+_0x37bbcc+'\x27':_0x159cb1(0x3c1))+';\x0a\x20\x20\x20\x20\x20\x20\x20\x20const\x20STORAGE_KEY\x20=\x20\x27cfspider_config_\x27\x20+\x20HOST;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20配置管理\x0a\x20\x20\x20\x20\x20\x20\x20\x20function\x20loadConfig()\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(ENV_UUID)\x20return\x20{\x20uuid:\x20ENV_UUID,\x20uuidViewed:\x20true,\x20twoProxy:\x20ENV_TWO_PROXY\x20||\x20\x27\x27\x20};\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20saved\x20=\x20localStorage.getItem(STORAGE_KEY);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(saved)\x20return\x20JSON.parse(saved);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20config\x20=\x20{\x20uuid:\x20crypto.randomUUID(),\x20uuidViewed:\x20false,\x20twoProxy:\x20\x27\x27\x20};\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20saveConfig(config);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20return\x20config;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20function\x20saveConfig(config)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(!ENV_UUID)\x20localStorage.setItem(STORAGE_KEY,\x20JSON.stringify(config));\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20let\x20config\x20=\x20loadConfig();\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20function\x20maskUuid(uuid)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20return\x20uuid.substring(0,\x204)\x20+\x20\x27****-****-****-****-\x27\x20+\x20uuid.slice(-4);\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20function\x20maskProxy(proxy)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(!proxy)\x20return\x20\x27未配置\x27;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20parts\x20=\x20proxy.split(\x27:\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(parts.length\x20>=\x202)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20return\x20parts[0].substring(0,\x204)\x20+\x20\x27****:\x27\x20+\x20parts[1]\x20+\x20(parts.length\x20>\x202\x20?\x20\x27:****\x27\x20:\x20\x27\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20return\x20\x27****\x27;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20function\x20updateDisplay()\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(ENV_UUID)\x20return;\x20//\x20环境变量模式不需要更新\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20uuidDisplay\x20=\x20document.getElementById(\x27uuidDisplay\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20vlessStatus\x20=\x20document.getElementById(\x27vlessStatus\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20proxyDisplay\x20=\x20document.getElementById(\x27proxyDisplay\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(uuidDisplay)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(config.uuidViewed)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20uuidDisplay.textContent\x20=\x20maskUuid(config.uuid);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20uuidDisplay.classList.add(\x27uuid-masked\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20uuidDisplay.textContent\x20=\x20\x27点击查看生成的\x20UUID\x27;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20uuidDisplay.classList.remove(\x27uuid-masked\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(vlessStatus)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20vlessStatus.textContent\x20=\x20config.uuidViewed\x20?\x20\x27已查看,请在弹窗中复制\x27\x20:\x20\x27请先查看\x20UUID\x27;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(proxyDisplay)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20proxyDisplay.textContent\x20=\x20maskProxy(config.twoProxy);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20updateCodeExamples();\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20function\x20updateCodeExamples()\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20更新代码示例中的\x20UUID\x20占位符\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20codeSection\x20=\x20document.querySelector(\x27.code-section\x20pre\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(!codeSection\x20||\x20ENV_UUID)\x20return;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20placeholder\x20=\x20config.uuidViewed\x20?\x20\x27<已查看,请粘贴您的UUID>\x27\x20:\x20\x27<请先查看UUID>\x27;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20代码示例在服务端渲染,这里可以添加动态更新逻辑\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20UUID\x20操作\x0a\x20\x20\x20\x20\x20\x20\x20\x20function\x20getVlessLink()\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20proxyIpType\x20=\x20localStorage.getItem(\x27cfspider_proxyip_type\x27)\x20||\x20\x27default\x27;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20proxyIpValue\x20=\x20localStorage.getItem(\x27cfspider_proxyip\x27)\x20||\x20PROXYIP_OPTIONS[\x27default\x27]\x20||\x20\x27\x27;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20let\x20path\x20=\x20\x27/\x27\x20+\x20config.uuid;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(proxyIpType\x20!==\x20\x27default\x27\x20&&\x20proxyIpValue)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20path\x20+=\x20\x27?proxyip=\x27\x20+\x20encodeURIComponent(proxyIpValue);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20return\x20\x27vless://\x27\x20+\x20config.uuid\x20+\x20\x27@\x27\x20+\x20HOST\x20+\x20\x27:443?security=tls&type=ws&host=\x27\x20+\x20HOST\x20+\x20\x27&sni=\x27\x20+\x20HOST\x20+\x20\x27&path=\x27\x20+\x20encodeURIComponent(path)\x20+\x20\x27&encryption=none#CFspider-\x27\x20+\x20(proxyIpType\x20===\x20\x27hk\x27\x20?\x20\x27HK\x27\x20:\x20\x27'+_0x5d92d5+_0x159cb1(0x38f)+_0x5d92d5[_0x159cb1(0x48a)]()+_0x159cb1(0x194)+_0x2a3965[_0x159cb1(0x43c)]+'\x27;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20try\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20尝试解析域名\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20testUrl\x20=\x20\x27https://1.1.1.1/dns-query?name=\x27\x20+\x20encodeURIComponent(address.split(\x27:\x27)[0])\x20+\x20\x27&type=A\x27;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20response\x20=\x20await\x20fetch(testUrl,\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20headers:\x20{\x20\x27Accept\x27:\x20\x27application/dns-json\x27\x20},\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20signal:\x20AbortSignal.timeout(5000)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20});\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20data\x20=\x20await\x20response.json();\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(data.Answer\x20&&\x20data.Answer.length\x20>\x200)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20resultEl.innerHTML\x20=\x20\x27✓\x20'+_0x2a3965[_0x159cb1(0x23f)]+_0x159cb1(0x375)+_0x2a3965['proxyIpOnline']+_0x159cb1(0x338)+_0x2a3965[_0x159cb1(0x321)]+_0x159cb1(0x47f)+_0x2a3965[_0x159cb1(0x321)]+_0x159cb1(0x456)+_0x2a3965['copySuccess']+_0x159cb1(0x3f0)+_0x2a3965[_0x159cb1(0x2b0)]+_0x159cb1(0x292)+_0x2a3965[_0x159cb1(0x26c)]+_0x159cb1(0x4e6)+_0x2a3965[_0x159cb1(0x2b0)]+_0x159cb1(0x33f);} \ No newline at end of file