From 47451c2df78d8939cab971860e30dfc4470473ff Mon Sep 17 00:00:00 2001 From: Peng-YM <1048217874pengym@gmail.com> Date: Tue, 24 May 2022 11:31:54 +0800 Subject: [PATCH] Fixed collection ordering is not preserved --- backend/src/facade/artifacts.js | 10 ++++++---- backend/sub-store.min.js | 2 +- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/backend/src/facade/artifacts.js b/backend/src/facade/artifacts.js index 5fb8871..d4b1667 100644 --- a/backend/src/facade/artifacts.js +++ b/backend/src/facade/artifacts.js @@ -280,8 +280,7 @@ async function produceArtifact( const allSubs = $.read(SUBS_KEY); const collection = item; const subs = collection['subscriptions']; - let proxies = []; - + const results = {}; let processed = 0; await Promise.all( @@ -296,8 +295,7 @@ async function produceArtifact( // apply processors currentProxies = await ProxyUtils.process(currentProxies, sub.process || [], platform); } - // merge - proxies = proxies.concat(currentProxies); + results[name] = currentProxies; processed++; $.info(`✅ 子订阅:${sub.name}加载成功,进度--${100 * (processed / subs.length).toFixed(1)}% `); } catch (err) { @@ -309,6 +307,10 @@ async function produceArtifact( } }) ); + + // merge proxies with the original order + let proxies = Array.prototype.concat.apply([], subs.map(name => results[name])); + if (!noProcessor) { // apply own processors proxies = await ProxyUtils.process(proxies, collection.process || [], platform); diff --git a/backend/sub-store.min.js b/backend/sub-store.min.js index 40d5774..c31b26d 100644 --- a/backend/sub-store.min.js +++ b/backend/sub-store.min.js @@ -12,4 +12,4 @@ * @documentation: https://www.notion.so/Sub-Store-6259586994d34c11a4ced5c406264b46 */ -!function(){var createModuleFactory=function(e){var t;return function(r){return t||e(t={exports:{},parent:r},t.exports),t.exports}},_$settings_43=createModuleFactory((function(e,t){const{SETTINGS_KEY:r}=_$constants_41;function n(e,t){const n=_$$_36.read(r);t.json(n)}function o(e,t){const n=e.body,o=_$$_36.read(r);_$$_36.write({...o,...n},r),t.json({status:"success"})}e.exports={register:function(e){_$$_36.read(r)||_$$_36.write({},r),e.route("/api/settings").get(n).patch(o)}}})),_$collections_40=createModuleFactory((function(e,t){const{SUBS_KEY:r,COLLECTIONS_KEY:n}=_$constants_41,{getPlatformFromHeaders:o,getFlowHeaders:s}=_$subscriptions_44({}),{produceArtifact:i}=_$artifacts_39({});async function a(e,t){const{name:a}=e.params,{raw:u}=e.query||"false",c=e.query.target||o(e.headers)||"JSON",p=_$$_36.read(n)[a];_$$_36.info("\u6b63\u5728\u4e0b\u8f7d\u7ec4\u5408\u8ba2\u9605\uff1a"+a);const l=_$$_36.read(r),f=p.subscriptions;if(f.length>0){const e=l[f[0]],r=await s(e.url);r&&t.set("subscription-userinfo",r)}if(p)try{const e=await i({type:"collection",item:p,platform:c,noProcessor:u});"JSON"===c?t.set("Content-Type","application/json;charset=utf-8").send(e):t.send(e)}catch(d){_$$_36.notify("\ud83c\udf0d \u300e \ud835\udc7a\ud835\udc96\ud835\udc83-\ud835\udc7a\ud835\udc95\ud835\udc90\ud835\udc93\ud835\udc86 \u300f \u4e0b\u8f7d\u7ec4\u5408\u8ba2\u9605\u5931\u8d25",`\u274c \u4e0b\u8f7d\u7ec4\u5408\u8ba2\u9605\u9519\u8bef\uff1a${a}\uff01`,"\ud83e\udd14 \u539f\u56e0\uff1a"+d),t.status(500).json({status:"failed",message:d})}else _$$_36.notify("\ud83c\udf0d \u300e \ud835\udc7a\ud835\udc96\ud835\udc83-\ud835\udc7a\ud835\udc95\ud835\udc90\ud835\udc93\ud835\udc86 \u300f \u4e0b\u8f7d\u7ec4\u5408\u8ba2\u9605\u5931\u8d25",`\u274c \u672a\u627e\u5230\u7ec4\u5408\u8ba2\u9605\uff1a${a}\uff01`),t.status(404).json({status:"failed"})}function u(e,t){const r=e.body;_$$_36.info("\u6b63\u5728\u521b\u5efa\u7ec4\u5408\u8ba2\u9605\uff1a"+r.name);const o=_$$_36.read(n);o[r.name]&&t.status(500).json({status:"failed",message:`\u8ba2\u9605\u96c6${r.name}\u5df2\u5b58\u5728\uff01`}),/^[\w-_]*$/.test(r.name)?(o[r.name]=r,_$$_36.write(o,n),t.status(201).json({status:"success",data:r})):t.status(500).json({status:"failed",message:`\u8ba2\u9605\u96c6\u540d\u79f0 ${r.name} \u4e2d\u542b\u6709\u975e\u6cd5\u5b57\u7b26\uff01\u540d\u79f0\u4e2d\u53ea\u80fd\u5305\u542b\u82f1\u6587\u5b57\u6bcd\u3001\u6570\u5b57\u3001\u4e0b\u5212\u7ebf\u3001\u6a2a\u6760\u3002`})}function c(e,t){const{name:r}=e.params,o=_$$_36.read(n)[r];o?t.json({status:"success",data:o}):t.status(404).json({status:"failed",message:`\u672a\u627e\u5230\u8ba2\u9605\u96c6\uff1a${r}!`})}function p(e,t){const{name:r}=e.params;let o=e.body;const s=_$$_36.read(n);if(s[r]){const e={...s[r],...o};_$$_36.info(`\u6b63\u5728\u66f4\u65b0\u7ec4\u5408\u8ba2\u9605\uff1a${r}...`),delete s[r],s[o.name||r]=e,_$$_36.write(s,n),t.json({status:"success",data:e})}else t.status(500).json({status:"failed",message:`\u8ba2\u9605\u96c6${r}\u4e0d\u5b58\u5728\uff0c\u65e0\u6cd5\u66f4\u65b0\uff01`})}function l(e,t){const{name:r}=e.params;_$$_36.info("\u6b63\u5728\u5220\u9664\u7ec4\u5408\u8ba2\u9605\uff1a"+r);let o=_$$_36.read(n);delete o[r],_$$_36.write(o,n),t.json({status:"success"})}function f(e,t){const r=_$$_36.read(n);t.json({status:"success",data:r})}e.exports={register:function(e){_$$_36.read(n)||_$$_36.write({},n),e.get("/download/collection/:name",a),e.route("/api/collection/:name").get(c).patch(p).delete(l),e.route("/api/collections").get(f).post(u)}}})),_$subscriptions_44=createModuleFactory((function(e,t){const{produceArtifact:r}=_$artifacts_39({}),{SUBS_KEY:n,COLLECTIONS_KEY:o}=_$constants_41;async function s(e,t){const{name:o}=e.params,{raw:s}=e.query||"false",i=e.query.target||f(e.headers)||"JSON";_$$_36.info("\u6b63\u5728\u4e0b\u8f7d\u8ba2\u9605\uff1a"+o);const a=_$$_36.read(n)[o];if(a)try{const e=await r({type:"subscription",item:a,platform:i,noProcessor:s}),n=await l(a.url);n&&t.set("subscription-userinfo",n),"JSON"===i?t.set("Content-Type","application/json;charset=utf-8").send(e):t.send(e)}catch(u){_$$_36.notify("\ud83c\udf0d \u300e \ud835\udc7a\ud835\udc96\ud835\udc83-\ud835\udc7a\ud835\udc95\ud835\udc90\ud835\udc93\ud835\udc86 \u300f \u4e0b\u8f7d\u8ba2\u9605\u5931\u8d25",`\u274c \u65e0\u6cd5\u4e0b\u8f7d\u8ba2\u9605\uff1a${o}\uff01`,"\ud83e\udd14 \u539f\u56e0\uff1a"+JSON.stringify(u)),_$$_36.error(JSON.stringify(u)),t.status(500).json({status:"failed",message:u})}else _$$_36.notify("\ud83c\udf0d \u300e \ud835\udc7a\ud835\udc96\ud835\udc83-\ud835\udc7a\ud835\udc95\ud835\udc90\ud835\udc93\ud835\udc86 \u300f \u4e0b\u8f7d\u8ba2\u9605\u5931\u8d25",`\u274c \u672a\u627e\u5230\u8ba2\u9605\uff1a${o}\uff01`),t.status(404).json({status:"failed"})}function i(e,t){const r=e.body,o=_$$_36.read(n);_$$_36.info("\u6b63\u5728\u521b\u5efa\u8ba2\u9605\uff1a "+r.name),o[r.name]&&t.status(500).json({status:"failed",message:`\u8ba2\u9605${r.name}\u5df2\u5b58\u5728\uff01`}),/^[\w-_]*$/.test(r.name)?(o[r.name]=r,_$$_36.write(o,n),t.status(201).json({status:"success",data:r})):t.status(500).json({status:"failed",message:`\u8ba2\u9605\u540d\u79f0 ${r.name} \u4e2d\u542b\u6709\u975e\u6cd5\u5b57\u7b26\uff01\u540d\u79f0\u4e2d\u53ea\u80fd\u5305\u542b\u82f1\u6587\u5b57\u6bcd\u3001\u6570\u5b57\u3001\u4e0b\u5212\u7ebf\u3001\u6a2a\u6760\u3002`})}function a(e,t){const{name:r}=e.params,o=_$$_36.read(n)[r];o?t.json({status:"success",data:o}):t.status(404).json({status:"failed",message:`\u672a\u627e\u5230\u8ba2\u9605\uff1a${r}!`})}function u(e,t){const{name:r}=e.params;let s=e.body;const i=_$$_36.read(n);if(i[r]){const e={...i[r],...s};if(_$$_36.info("\u6b63\u5728\u66f4\u65b0\u8ba2\u9605\uff1a "+r),r!==s.name){const t=_$$_36.read(o);for(const e of Object.keys(t)){const n=t[e].subscriptions.indexOf(r);-1!==n&&(t[e].subscriptions[n]=s.name)}delete i[r],i[s.name]=e}else i[r]=e;_$$_36.write(i,n),t.json({status:"success",data:e})}else t.status(500).json({status:"failed",message:`\u8ba2\u9605${r}\u4e0d\u5b58\u5728\uff0c\u65e0\u6cd5\u66f4\u65b0\uff01`})}function c(e,t){const{name:r}=e.params;_$$_36.info(`\u5220\u9664\u8ba2\u9605\uff1a${r}...`);let s=_$$_36.read(n);delete s[r],_$$_36.write(s,n);let i=_$$_36.read(o);for(const n of Object.keys(i))i[n].subscriptions=i[n].subscriptions.filter(e=>e!==r);_$$_36.write(i,o),t.json({status:"success"})}function p(e,t){const r=_$$_36.read(n);t.json({status:"success",data:r})}async function l(e){const{headers:t}=await _$$_36.http.get({url:e,headers:{"User-Agent":"Quantumult/1.0.13 (iPhone10,3; iOS 14.0)"}});return t[Object.keys(t).filter(e=>/SUBSCRIPTION-USERINFO/i.test(e))[0]]}function f(e){const t=Object.keys(e);let r="";for(let n of t)if(/USER-AGENT/i.test(n)){r=e[n];break}return-1!==r.indexOf("Quantumult%20X")?"QX":-1!==r.indexOf("Surge")?"Surge":-1!==r.indexOf("Decar")||-1!==r.indexOf("Loon")?"Loon":-1!==r.indexOf("Stash")||-1!==r.indexOf("Shadowrocket")?"Clash":null}e.exports={register:function(e){_$$_36.read(n)||_$$_36.write({},n),e.get("/download/:name",s),e.route("/api/sub/:name").get(a).patch(u).delete(c),e.route("/api/subs").get(p).post(i)},getPlatformFromHeaders:f,getFlowHeaders:l}})),_$artifacts_39=createModuleFactory((function(e,t){const{ProxyUtils:r}=_$proxyUtils_37,{RuleUtils:n}=_$ruleUtils_38,{SUBS_KEY:o,ARTIFACTS_KEY:s,ARTIFACT_REPOSITORY_KEY:i,COLLECTIONS_KEY:a,RULES_KEY:u,SETTINGS_KEY:c}=_$constants_41;async function p(e,t){const r=e.params.name,n=e.query.action,i=_$$_36.read(s),c=i[r];if(c)if(n){let e;switch(c.type){case"subscription":e=_$$_36.read(o)[c.source];break;case"collection":e=_$$_36.read(a)[c.source];break;case"rule":e=_$$_36.read(u)[c.source]}const r=await g({type:c.type,item:e,platform:c.platform});if("preview"===n)t.send(r);else if("sync"===n){_$$_36.info(`\u6b63\u5728\u4e0a\u4f20\u914d\u7f6e\uff1a${c.name}\n>>>`),console.log(JSON.stringify(c,null,2));try{const e=await m({[c.name]:{content:r}});c.updated=(new Date).getTime();const n=JSON.parse(e.body);c.url=n.files[c.name].raw_url.replace(/\/raw\/[^\/]*\/(.*)/,"/raw/$1"),_$$_36.write(i,s),t.json({status:"success"})}catch(p){t.status(500).json({status:"failed",message:p})}}}else t.json({status:"success",data:c});else t.status(404).json({status:"failed",message:"\u672a\u627e\u5230\u5bf9\u5e94\u7684\u914d\u7f6e\uff01"})}function l(e,t){const r=e.body;_$$_36.info("\u6b63\u5728\u521b\u5efa\u8fdc\u7a0b\u914d\u7f6e\uff1a"+r.name);const n=_$$_36.read(s);n[r.name]?t.status(500).json({status:"failed",message:`\u8fdc\u7a0b\u914d\u7f6e${r.name}\u5df2\u5b58\u5728\uff01`}):/^[\w-_.]*$/.test(r.name)?(n[r.name]=r,_$$_36.write(n,s),t.status(201).json({status:"success",data:r})):t.status(500).json({status:"failed",message:`\u8fdc\u7a0b\u914d\u7f6e\u540d\u79f0 ${r.name} \u4e2d\u542b\u6709\u975e\u6cd5\u5b57\u7b26\uff01\u540d\u79f0\u4e2d\u53ea\u80fd\u5305\u542b\u82f1\u6587\u5b57\u6bcd\u3001\u6570\u5b57\u3001\u4e0b\u5212\u7ebf\u3001\u6a2a\u6760\u3002`})}function f(e,t){const r=_$$_36.read(s),n=e.params.name,o=r[n];if(o){_$$_36.info("\u6b63\u5728\u66f4\u65b0\u8fdc\u7a0b\u914d\u7f6e\uff1a"+o.name);const i=e.body;if(void 0===i.name||/^[\w-_.]*$/.test(i.name)){const e={...o,...i};r[e.name]=e,e.name!==n&&delete r[n],_$$_36.write(r,s),t.json({status:"success",data:e})}else t.status(500).json({status:"failed",message:`\u8fdc\u7a0b\u914d\u7f6e\u540d\u79f0 ${i.name} \u4e2d\u542b\u6709\u975e\u6cd5\u5b57\u7b26\uff01\u540d\u79f0\u4e2d\u53ea\u80fd\u5305\u542b\u82f1\u6587\u5b57\u6bcd\u3001\u6570\u5b57\u3001\u4e0b\u5212\u7ebf\u3001\u6a2a\u6760\u3002`})}else t.status(404).json({status:"failed",message:"\u672a\u627e\u5230\u5bf9\u5e94\u7684\u8fdc\u7a0b\u914d\u7f6e\uff01"})}async function d(e,t){_$$_36.info("\u5f00\u59cb\u540c\u6b65\u6240\u6709\u8fdc\u7a0b\u914d\u7f6e...");const r=_$$_36.read(s),n={};try{await Promise.all(Object.values(r).map(async e=>{if(e.sync){let t;switch(_$$_36.info(`\u6b63\u5728\u540c\u6b65\u4e91\u914d\u7f6e\uff1a${e.name}...`),e.type){case"subscription":t=_$$_36.read(o)[e.source];break;case"collection":t=_$$_36.read(a)[e.source];break;case"rule":t=_$$_36.read(u)[e.source]}const r=await g({type:e.type,item:t,platform:e.platform});n[e.name]={content:r}}}));const e=await m(n),i=JSON.parse(e.body);for(const t of Object.values(r))t.updated=(new Date).getTime(),t.url=i.files[t.name].raw_url.replace(/\/raw\/[^\/]*\/(.*)/,"/raw/$1");_$$_36.write(r,s),_$$_36.info("\u5168\u90e8\u8ba2\u9605\u540c\u6b65\u6210\u529f\uff01"),t.status(200).end()}catch(i){t.status(500).json({error:i}),_$$_36.info("\u540c\u6b65\u8ba2\u9605\u5931\u8d25\uff0c\u539f\u56e0\uff1a"+i)}}async function h(e,t){const r=e.params.name;_$$_36.info("\u6b63\u5728\u5220\u9664\u8fdc\u7a0b\u914d\u7f6e\uff1a"+r);const n=_$$_36.read(s);try{const e=n[r];if(!e)throw new Error(`\u8fdc\u7a0b\u914d\u7f6e\uff1a${r}\u4e0d\u5b58\u5728\uff01`);e.updated&&await m({filename:r,content:""}),delete n[r],_$$_36.write(n,s),t.json({status:"success"})}catch(o){delete n[r],_$$_36.write(n,s),t.status(500).json({status:"failed",message:`\u65e0\u6cd5\u5220\u9664\u8fdc\u7a0b\u914d\u7f6e\uff1a${r}, \u539f\u56e0\uff1a${o}`})}}function _(e,t){const r=_$$_36.read(s);t.json({status:"success",data:r})}async function m(e){const{gistToken:t}=_$$_36.read(c);return t?new _$gist_49({token:t,key:i}).upload(e):Promise.reject("\u672a\u8bbe\u7f6eGist Token\uff01")}async function g({type:e,item:t,platform:s,noProcessor:i}={platform:"JSON",noProcessor:!1}){if("subscription"===e){const e=t,n=await _$download_46(e.url,e.ua);let o=r.parse(n);i||(o=await r.process(o,e.process||[],s));const a={};for(const t of o){if(a[t.name]){_$$_36.notify("\ud83c\udf0d \u300e \ud835\udc7a\ud835\udc96\ud835\udc83-\ud835\udc7a\ud835\udc95\ud835\udc90\ud835\udc93\ud835\udc86 \u300f","\u26a0\ufe0f \u8ba2\u9605\u5305\u542b\u91cd\u590d\u8282\u70b9\uff01","\u8bf7\u4ed4\u7ec6\u68c0\u6d4b\u914d\u7f6e\uff01",{"media-url":"https://cdn3.iconfinder.com/data/icons/seo-outline-1/512/25_code_program_programming_develop_bug_search_developer-512.png"});break}a[t.name]=!0}return r.produce(o,s)}if("collection"===e){const e=_$$_36.read(o),n=t,a=n.subscriptions;let u=[],c=0;if(await Promise.all(a.map(async t=>{const n=e[t];try{_$$_36.info(`\u6b63\u5728\u5904\u7406\u5b50\u8ba2\u9605\uff1a${n.name}...`);const e=await _$download_46(n.url,n.ua);let t=r.parse(e);i||(t=await r.process(t,n.process||[],s)),u=u.concat(t),c++,_$$_36.info(`\u2705 \u5b50\u8ba2\u9605\uff1a${n.name}\u52a0\u8f7d\u6210\u529f\uff0c\u8fdb\u5ea6--${100*(c/a.length).toFixed(1)}% `)}catch(o){c++,_$$_36.error(`\u274c \u5904\u7406\u7ec4\u5408\u8ba2\u9605\u4e2d\u7684\u5b50\u8ba2\u9605: ${n.name}\u65f6\u51fa\u73b0\u9519\u8bef\uff1a${o}\uff0c\u8be5\u8ba2\u9605\u5df2\u88ab\u8df3\u8fc7\uff01\u8fdb\u5ea6--${100*(c/a.length).toFixed(1)}%`)}})),i||(u=await r.process(u,n.process||[],s)),0===u.length)throw new Error("\u7ec4\u5408\u8ba2\u9605\u4e2d\u4e0d\u542b\u6709\u6548\u8282\u70b9\uff01");const p={};for(const t of u){if(p[t.name]){_$$_36.notify("\ud83c\udf0d \u300e \ud835\udc7a\ud835\udc96\ud835\udc83-\ud835\udc7a\ud835\udc95\ud835\udc90\ud835\udc93\ud835\udc86 \u300f","\u26a0\ufe0f \u8ba2\u9605\u5305\u542b\u91cd\u590d\u8282\u70b9\uff01","\u8bf7\u4ed4\u7ec6\u68c0\u6d4b\u914d\u7f6e\uff01",{"media-url":"https://cdn3.iconfinder.com/data/icons/seo-outline-1/512/25_code_program_programming_develop_bug_search_developer-512.png"});break}p[t.name]=!0}return r.produce(u,s)}if("rule"===e){const e=t;let r=[];for(let t=0;t2147483647)throw new RangeError('The value "'+e+'" is invalid for option "size"');var t=new Uint8Array(e);return t.__proto__=r.prototype,t}function r(e,t,r){if("number"==typeof e){if("string"==typeof t)throw new TypeError('The "string" argument must be of type string. Received type number');return s(e)}return n(e,t,r)}function n(t,n,o){if("string"==typeof t)return function(t,n){if("string"==typeof n&&""!==n||(n="utf8"),!r.isEncoding(n))throw new TypeError("Unknown encoding: "+n);var o=0|u(t,n),s=e(o),i=s.write(t,n);return i!==o&&(s=s.slice(0,i)),s}(t,n);if(ArrayBuffer.isView(t))return i(t);if(null==t)throw TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof t);if(k(t,ArrayBuffer)||t&&k(t.buffer,ArrayBuffer))return function(e,t,n){if(t<0||e.byteLength=2147483647)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+2147483647..toString(16)+" bytes");return 0|e}function u(e,t){if(r.isBuffer(e))return e.length;if(ArrayBuffer.isView(e)||k(e,ArrayBuffer))return e.byteLength;if("string"!=typeof e)throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof e);var n=e.length,o=arguments.length>2&&!0===arguments[2];if(!o&&0===n)return 0;for(var s=!1;;)switch(t){case"ascii":case"latin1":case"binary":return n;case"utf8":case"utf-8":return I(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*n;case"hex":return n>>>1;case"base64":return L(e).length;default:if(s)return o?-1:I(e).length;t=(""+t).toLowerCase(),s=!0}}function c(e,t,r){var n=e[t];e[t]=e[r],e[r]=n}function p(e,t,n,o,s){if(0===e.length)return-1;if("string"==typeof n?(o=n,n=0):n>2147483647?n=2147483647:n<-2147483648&&(n=-2147483648),x(n=+n)&&(n=s?0:e.length-1),n<0&&(n=e.length+n),n>=e.length){if(s)return-1;n=e.length-1}else if(n<0){if(!s)return-1;n=0}if("string"==typeof t&&(t=r.from(t,o)),r.isBuffer(t))return 0===t.length?-1:l(e,t,n,o,s);if("number"==typeof t)return t&=255,"function"==typeof Uint8Array.prototype.indexOf?s?Uint8Array.prototype.indexOf.call(e,t,n):Uint8Array.prototype.lastIndexOf.call(e,t,n):l(e,[t],n,o,s);throw new TypeError("val must be string, number or Buffer")}function l(e,t,r,n,o){var s,i=1,a=e.length,u=t.length;if(void 0!==n&&("ucs2"===(n=String(n).toLowerCase())||"ucs-2"===n||"utf16le"===n||"utf-16le"===n)){if(e.length<2||t.length<2)return-1;i=2,a/=2,u/=2,r/=2}function c(e,t){return 1===i?e[t]:e.readUInt16BE(t*i)}if(o){var p=-1;for(s=r;sa&&(r=a-u),s=r;s>=0;s--){for(var l=!0,f=0;fo&&(n=o):n=o;var s=t.length;n>s/2&&(n=s/2);for(var i=0;i>8,o=r%256,s.push(o),s.push(n);return s}(t,e.length-r),e,r,n)}function y(e,t,r){return 0===t&&r===e.length?_$base64Js_1.fromByteArray(e):_$base64Js_1.fromByteArray(e.slice(t,r))}function $(e,t,r){r=Math.min(e.length,r);for(var n=[],o=t;o239?4:c>223?3:c>191?2:1;if(o+l<=r)switch(l){case 1:c<128&&(p=c);break;case 2:128==(192&(s=e[o+1]))&&(u=(31&c)<<6|63&s)>127&&(p=u);break;case 3:s=e[o+1],i=e[o+2],128==(192&s)&&128==(192&i)&&(u=(15&c)<<12|(63&s)<<6|63&i)>2047&&(u<55296||u>57343)&&(p=u);break;case 4:s=e[o+1],i=e[o+2],a=e[o+3],128==(192&s)&&128==(192&i)&&128==(192&a)&&(u=(15&c)<<18|(63&s)<<12|(63&i)<<6|63&a)>65535&&u<1114112&&(p=u)}null===p?(p=65533,l=1):p>65535&&(p-=65536,n.push(p>>>10&1023|55296),p=56320|1023&p),n.push(p),o+=l}return function(e){var t=e.length;if(t<=w)return String.fromCharCode.apply(String,e);for(var r="",n=0;nthis.length)return"";if((void 0===r||r>this.length)&&(r=this.length),r<=0)return"";if((r>>>=0)<=(t>>>=0))return"";for(e||(e="utf8");;)switch(e){case"hex":return A(this,t,r);case"utf8":case"utf-8":return $(this,t,r);case"ascii":return E(this,t,r);case"latin1":case"binary":return S(this,t,r);case"base64":return y(this,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return O(this,t,r);default:if(n)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),n=!0}}.apply(this,arguments)},r.prototype.toLocaleString=r.prototype.toString,r.prototype.equals=function(e){if(!r.isBuffer(e))throw new TypeError("Argument must be a Buffer");return this===e||0===r.compare(this,e)},r.prototype.inspect=function(){var e="",r=t.INSPECT_MAX_BYTES;return e=this.toString("hex",0,r).replace(/(.{2})/g,"$1 ").trim(),this.length>r&&(e+=" ... "),""},r.prototype.compare=function(e,t,n,o,s){if(k(e,Uint8Array)&&(e=r.from(e,e.offset,e.byteLength)),!r.isBuffer(e))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof e);if(void 0===t&&(t=0),void 0===n&&(n=e?e.length:0),void 0===o&&(o=0),void 0===s&&(s=this.length),t<0||n>e.length||o<0||s>this.length)throw new RangeError("out of range index");if(o>=s&&t>=n)return 0;if(o>=s)return-1;if(t>=n)return 1;if(this===e)return 0;for(var i=(s>>>=0)-(o>>>=0),a=(n>>>=0)-(t>>>=0),u=Math.min(i,a),c=this.slice(o,s),p=e.slice(t,n),l=0;l>>=0,isFinite(r)?(r>>>=0,void 0===n&&(n="utf8")):(n=r,r=void 0)}var o=this.length-t;if((void 0===r||r>o)&&(r=o),e.length>0&&(r<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");n||(n="utf8");for(var s=!1;;)switch(n){case"hex":return f(this,e,t,r);case"utf8":case"utf-8":return d(this,e,t,r);case"ascii":return h(this,e,t,r);case"latin1":case"binary":return _(this,e,t,r);case"base64":return m(this,e,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return g(this,e,t,r);default:if(s)throw new TypeError("Unknown encoding: "+n);n=(""+n).toLowerCase(),s=!0}},r.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var w=4096;function E(e,t,r){var n="";r=Math.min(e.length,r);for(var o=t;oo)&&(r=o);for(var s="",i=t;ir)throw new RangeError("Trying to access beyond buffer length")}function b(e,t,n,o,s,i){if(!r.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>s||te.length)throw new RangeError("Index out of range")}function T(e,t,r,n,o,s){if(r+n>e.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("Index out of range")}function R(e,t,r,n,o){return t=+t,r>>>=0,o||T(e,0,r,4),_$ieee754_3.write(e,t,r,n,23,4),r+4}function C(e,t,r,n,o){return t=+t,r>>>=0,o||T(e,0,r,8),_$ieee754_3.write(e,t,r,n,52,8),r+8}r.prototype.slice=function(e,t){var n=this.length;(e=~~e)<0?(e+=n)<0&&(e=0):e>n&&(e=n),(t=void 0===t?n:~~t)<0?(t+=n)<0&&(t=0):t>n&&(t=n),t>>=0,t>>>=0,r||v(e,t,this.length);for(var n=this[e],o=1,s=0;++s>>=0,t>>>=0,r||v(e,t,this.length);for(var n=this[e+--t],o=1;t>0&&(o*=256);)n+=this[e+--t]*o;return n},r.prototype.readUInt8=function(e,t){return e>>>=0,t||v(e,1,this.length),this[e]},r.prototype.readUInt16LE=function(e,t){return e>>>=0,t||v(e,2,this.length),this[e]|this[e+1]<<8},r.prototype.readUInt16BE=function(e,t){return e>>>=0,t||v(e,2,this.length),this[e]<<8|this[e+1]},r.prototype.readUInt32LE=function(e,t){return e>>>=0,t||v(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},r.prototype.readUInt32BE=function(e,t){return e>>>=0,t||v(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},r.prototype.readIntLE=function(e,t,r){e>>>=0,t>>>=0,r||v(e,t,this.length);for(var n=this[e],o=1,s=0;++s=(o*=128)&&(n-=Math.pow(2,8*t)),n},r.prototype.readIntBE=function(e,t,r){e>>>=0,t>>>=0,r||v(e,t,this.length);for(var n=t,o=1,s=this[e+--n];n>0&&(o*=256);)s+=this[e+--n]*o;return s>=(o*=128)&&(s-=Math.pow(2,8*t)),s},r.prototype.readInt8=function(e,t){return e>>>=0,t||v(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},r.prototype.readInt16LE=function(e,t){e>>>=0,t||v(e,2,this.length);var r=this[e]|this[e+1]<<8;return 32768&r?4294901760|r:r},r.prototype.readInt16BE=function(e,t){e>>>=0,t||v(e,2,this.length);var r=this[e+1]|this[e]<<8;return 32768&r?4294901760|r:r},r.prototype.readInt32LE=function(e,t){return e>>>=0,t||v(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},r.prototype.readInt32BE=function(e,t){return e>>>=0,t||v(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},r.prototype.readFloatLE=function(e,t){return e>>>=0,t||v(e,4,this.length),_$ieee754_3.read(this,e,!0,23,4)},r.prototype.readFloatBE=function(e,t){return e>>>=0,t||v(e,4,this.length),_$ieee754_3.read(this,e,!1,23,4)},r.prototype.readDoubleLE=function(e,t){return e>>>=0,t||v(e,8,this.length),_$ieee754_3.read(this,e,!0,52,8)},r.prototype.readDoubleBE=function(e,t){return e>>>=0,t||v(e,8,this.length),_$ieee754_3.read(this,e,!1,52,8)},r.prototype.writeUIntLE=function(e,t,r,n){e=+e,t>>>=0,r>>>=0,n||b(this,e,t,r,Math.pow(2,8*r)-1,0);var o=1,s=0;for(this[t]=255&e;++s>>=0,r>>>=0,n||b(this,e,t,r,Math.pow(2,8*r)-1,0);var o=r-1,s=1;for(this[t+o]=255&e;--o>=0&&(s*=256);)this[t+o]=e/s&255;return t+r},r.prototype.writeUInt8=function(e,t,r){return e=+e,t>>>=0,r||b(this,e,t,1,255,0),this[t]=255&e,t+1},r.prototype.writeUInt16LE=function(e,t,r){return e=+e,t>>>=0,r||b(this,e,t,2,65535,0),this[t]=255&e,this[t+1]=e>>>8,t+2},r.prototype.writeUInt16BE=function(e,t,r){return e=+e,t>>>=0,r||b(this,e,t,2,65535,0),this[t]=e>>>8,this[t+1]=255&e,t+2},r.prototype.writeUInt32LE=function(e,t,r){return e=+e,t>>>=0,r||b(this,e,t,4,4294967295,0),this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e,t+4},r.prototype.writeUInt32BE=function(e,t,r){return e=+e,t>>>=0,r||b(this,e,t,4,4294967295,0),this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e,t+4},r.prototype.writeIntLE=function(e,t,r,n){if(e=+e,t>>>=0,!n){var o=Math.pow(2,8*r-1);b(this,e,t,r,o-1,-o)}var s=0,i=1,a=0;for(this[t]=255&e;++s>0)-a&255;return t+r},r.prototype.writeIntBE=function(e,t,r,n){if(e=+e,t>>>=0,!n){var o=Math.pow(2,8*r-1);b(this,e,t,r,o-1,-o)}var s=r-1,i=1,a=0;for(this[t+s]=255&e;--s>=0&&(i*=256);)e<0&&0===a&&0!==this[t+s+1]&&(a=1),this[t+s]=(e/i>>0)-a&255;return t+r},r.prototype.writeInt8=function(e,t,r){return e=+e,t>>>=0,r||b(this,e,t,1,127,-128),e<0&&(e=255+e+1),this[t]=255&e,t+1},r.prototype.writeInt16LE=function(e,t,r){return e=+e,t>>>=0,r||b(this,e,t,2,32767,-32768),this[t]=255&e,this[t+1]=e>>>8,t+2},r.prototype.writeInt16BE=function(e,t,r){return e=+e,t>>>=0,r||b(this,e,t,2,32767,-32768),this[t]=e>>>8,this[t+1]=255&e,t+2},r.prototype.writeInt32LE=function(e,t,r){return e=+e,t>>>=0,r||b(this,e,t,4,2147483647,-2147483648),this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24,t+4},r.prototype.writeInt32BE=function(e,t,r){return e=+e,t>>>=0,r||b(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e,t+4},r.prototype.writeFloatLE=function(e,t,r){return R(this,e,t,!0,r)},r.prototype.writeFloatBE=function(e,t,r){return R(this,e,t,!1,r)},r.prototype.writeDoubleLE=function(e,t,r){return C(this,e,t,!0,r)},r.prototype.writeDoubleBE=function(e,t,r){return C(this,e,t,!1,r)},r.prototype.copy=function(e,t,n,o){if(!r.isBuffer(e))throw new TypeError("argument should be a Buffer");if(n||(n=0),o||0===o||(o=this.length),t>=e.length&&(t=e.length),t||(t=0),o>0&&o=this.length)throw new RangeError("Index out of range");if(o<0)throw new RangeError("sourceEnd out of bounds");o>this.length&&(o=this.length),e.length-t=0;--i)e[i+t]=this[i+n];else Uint8Array.prototype.set.call(e,this.subarray(n,o),t);return s},r.prototype.fill=function(e,t,n,o){if("string"==typeof e){if("string"==typeof t?(o=t,t=0,n=this.length):"string"==typeof n&&(o=n,n=this.length),void 0!==o&&"string"!=typeof o)throw new TypeError("encoding must be a string");if("string"==typeof o&&!r.isEncoding(o))throw new TypeError("Unknown encoding: "+o);if(1===e.length){var s=e.charCodeAt(0);("utf8"===o&&s<128||"latin1"===o)&&(e=s)}}else"number"==typeof e&&(e&=255);if(t<0||this.length>>=0,n=void 0===n?this.length:n>>>0,e||(e=0),"number"==typeof e)for(i=t;i55295&&r<57344){if(!o){if(r>56319){(t-=3)>-1&&s.push(239,191,189);continue}if(i+1===n){(t-=3)>-1&&s.push(239,191,189);continue}o=r;continue}if(r<56320){(t-=3)>-1&&s.push(239,191,189),o=r;continue}r=65536+(o-55296<<10|r-56320)}else o&&(t-=3)>-1&&s.push(239,191,189);if(o=null,r<128){if((t-=1)<0)break;s.push(r)}else if(r<2048){if((t-=2)<0)break;s.push(r>>6|192,63&r|128)}else if(r<65536){if((t-=3)<0)break;s.push(r>>12|224,r>>6&63|128,63&r|128)}else{if(!(r<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;s.push(r>>18|240,r>>12&63|128,r>>6&63|128,63&r|128)}}return s}function L(e){return _$base64Js_1.toByteArray(function(e){if((e=(e=e.split("=")[0]).trim().replace(N,"")).length<2)return"";for(;e.length%4!=0;)e+="=";return e}(e))}function P(e,t,r,n){for(var o=0;o=t.length||o>=e.length);++o)t[o+r]=e[o];return o}function k(e,t){return e instanceof t||null!=e&&null!=e.constructor&&null!=e.constructor.name&&e.constructor.name===t.name}function x(e){return e!=e}}).call(this)}).call(this,_$buffer_2({}).Buffer)})),_$express_47=createModuleFactory((function(module,exports){const{ENV:ENV}=_$openApi_51;function express({port:port}={port:3e3}){const{isNode:isNode}=ENV(),DEFAULT_HEADERS={"Content-Type":"text/plain;charset=UTF-8","Access-Control-Allow-Origin":"*","Access-Control-Allow-Methods":"POST,GET,OPTIONS,PATCH,PUT,DELETE","Access-Control-Allow-Headers":"Origin, X-Requested-With, Content-Type, Accept"};if(isNode){const express_=eval('require("express")'),bodyParser=eval('require("body-parser")'),app=express_();return app.use(bodyParser.json({verify:rawBodySaver})),app.use(bodyParser.urlencoded({verify:rawBodySaver,extended:!0})),app.use(bodyParser.raw({verify:rawBodySaver,type:"*/*"})),app.use((e,t,r)=>{t.set(DEFAULT_HEADERS),r()}),app.start=()=>{app.listen(port,()=>{_$$_36.log("Express started on port: "+port)})},app}const handlers=[],METHODS_NAMES=["GET","POST","PUT","DELETE","PATCH","OPTIONS","HEAD'","ALL"],dispatch=(e,t=0)=>{let{method:r,url:n,headers:o,body:s}=e;/json/i.test(o["Content-Type"])&&(s=JSON.parse(s)),r=r.toUpperCase();const{path:i,query:a}=extractURL(n);let u,c=null,p=0;for(u=t;up&&(c=handlers[u],p=e.split("/").length)}if(c){const e=()=>{dispatch(r,n,u)},t={method:r,url:n,path:i,query:a,params:extractPathParams(c.pattern,i),headers:o,body:s},p=Response(),f=c.callback,d=e=>{p.status(500).json({status:"failed",message:"Internal Server Error: "+e})};if("AsyncFunction"===f.constructor.name)f(t,p,e).catch(d);else try{f(t,p,e)}catch(l){d(l)}}else Response().status(404).json({status:"failed",message:"ERROR: 404 not found"})},app={};return METHODS_NAMES.forEach(e=>{app[e.toLowerCase()]=(t,r)=>{handlers.push({method:e,pattern:t,callback:r})}}),app.route=e=>{const t={};return METHODS_NAMES.forEach(r=>{t[r.toLowerCase()]=n=>(handlers.push({method:r,pattern:e,callback:n}),t)}),t},app.start=()=>{dispatch($request)},app;function rawBodySaver(e,t,r,n){r&&r.length&&(e.rawBody=r.toString(n||"utf8"))}function Response(){let e=200;const{isQX:t,isLoon:r,isSurge:n}=ENV(),o=DEFAULT_HEADERS,s={200:"HTTP/1.1 200 OK",201:"HTTP/1.1 201 Created",302:"HTTP/1.1 302 Found",307:"HTTP/1.1 307 Temporary Redirect",308:"HTTP/1.1 308 Permanent Redirect",404:"HTTP/1.1 404 Not Found",500:"HTTP/1.1 500 Internal Server Error"};return new class{status(t){return e=t,this}send(i=""){const a={status:t?s[e]:e,body:i,headers:o};t?$done(a):(r||n)&&$done({response:a})}end(){this.send()}html(e){this.set("Content-Type","text/html;charset=UTF-8"),this.send(e)}json(e){this.set("Content-Type","application/json;charset=UTF-8"),this.send(JSON.stringify(e))}set(e,t){return o[e]=t,this}}}function patternMatched(e,t){if(e instanceof RegExp&&e.test(t))return!0;if("/"===e)return!0;if(-1===e.indexOf(":")){const r=t.split("/"),n=e.split("/");for(let e=0;e{},onResponse:e=>e,onTimeout:()=>{},...options.events};let worker,timeoutid;events.onRequest(method,options),isQX?worker=$task.fetch({method:method,url:options.url,headers:options.headers,body:options.body}):(isLoon||isSurge||isNode)&&(worker=new Promise((resolve,reject)=>{const request=isNode?eval("require('request')"):$httpClient;request[method.toLowerCase()](options,(e,t,r)=>{e?reject(e):resolve({statusCode:t.status||t.statusCode,headers:t.headers,body:r})})}));const timer=timeout?new Promise((e,t)=>{timeoutid=setTimeout(()=>(events.onTimeout(),t(`${method} URL: ${options.url} exceeds the timeout ${timeout} ms`)),timeout)}):null;return(timer?Promise.race([timer,worker]).then(e=>(clearTimeout(timeoutid),e)):worker).then(e=>events.onResponse(e))}const http={};return methods.forEach(e=>http[e.toLowerCase()]=t=>send(e,t)),http}function API(name="untitled",debug=!1){const{isQX:isQX,isLoon:isLoon,isSurge:isSurge,isNode:isNode}=ENV();return new class{constructor(name,debug){this.name=name,this.debug=debug,this.http=HTTP(),this.env=ENV(),this.node=(()=>{if(isNode){const fs=eval("require('fs')");return{fs:fs}}return null})(),this.initCache();const delay=(e,t)=>new Promise((function(r){setTimeout(r.bind(null,t),e)}));Promise.prototype.delay=function(e){return this.then((function(t){return delay(e,t)}))}}initCache(){if(isQX&&(this.cache=JSON.parse($prefs.valueForKey(this.name)||"{}")),(isLoon||isSurge)&&(this.cache=JSON.parse($persistentStore.read(this.name)||"{}")),isNode){let e="root.json";this.node.fs.existsSync(e)||this.node.fs.writeFileSync(e,JSON.stringify({}),{flag:"wx"},e=>console.log(e)),this.root={},e=this.name+".json",this.node.fs.existsSync(e)?this.cache=JSON.parse(this.node.fs.readFileSync(this.name+".json")):(this.node.fs.writeFileSync(e,JSON.stringify({}),{flag:"wx"},e=>console.log(e)),this.cache={})}}persistCache(){const e=JSON.stringify(this.cache,null,2);isQX&&$prefs.setValueForKey(e,this.name),(isLoon||isSurge)&&$persistentStore.write(e,this.name),isNode&&(this.node.fs.writeFileSync(this.name+".json",e,{flag:"w"},e=>console.log(e)),this.node.fs.writeFileSync("root.json",JSON.stringify(this.root,null,2),{flag:"w"},e=>console.log(e)))}write(e,t){if(this.log("SET "+t),-1!==t.indexOf("#")){if(t=t.substr(1),isSurge||isLoon)return $persistentStore.write(e,t);if(isQX)return $prefs.setValueForKey(e,t);isNode&&(this.root[t]=e)}else this.cache[t]=e;this.persistCache()}read(e){return this.log("READ "+e),-1===e.indexOf("#")?this.cache[e]:(e=e.substr(1),isSurge||isLoon?$persistentStore.read(e):isQX?$prefs.valueForKey(e):isNode?this.root[e]:void 0)}delete(e){if(this.log("DELETE "+e),-1!==e.indexOf("#")){if(e=e.substr(1),isSurge||isLoon)return $persistentStore.write(null,e);if(isQX)return $prefs.removeValueForKey(e);isNode&&delete this.root[e]}else delete this.cache[e];this.persistCache()}notify(e,t="",r="",n={}){const o=n["open-url"],s=n["media-url"];if(isQX&&$notify(e,t,r,n),isSurge&&$notification.post(e,t,r+""+(s?"\n\u591a\u5a92\u4f53:"+s:""),{url:o}),isLoon){let n={};o&&(n.openUrl=o),s&&(n.mediaUrl=s),"{}"===JSON.stringify(n)?$notification.post(e,t,r):$notification.post(e,t,r,n)}if(isNode){const n=r+(o?"\n\u70b9\u51fb\u8df3\u8f6c: "+o:"")+(s?"\n\u591a\u5a92\u4f53: "+s:"");console.log(`${e}\n${t}\n${n}\n\n`)}}log(e){this.debug&&console.log(`[${this.name}] LOG: ${e}`)}info(e){console.log(`[${this.name}] INFO: ${e}`)}error(e){console.log(`[${this.name}] ERROR: ${e}`)}wait(e){return new Promise(t=>setTimeout(t,e))}done(e={}){isQX||isLoon||isSurge?$done(e):isNode&&"undefined"!=typeof $context&&($context.headers=e.headers,$context.statusCode=e.statusCode,$context.body=e.body)}}(name,debug)}var _$openApi_51={HTTP:HTTP,ENV:ENV,API:API};const{API:__API_36}=_$openApi_51,$=__API_36("sub-store");var _$$_36=$;const{HTTP:__HTTP_48}=_$openApi_51;var _$geo_48={getFlag:function(e){const t={"\ud83c\udde6\ud83c\uddff":["\u963f\u585e\u62dc\u7586"],"\ud83c\udde6\ud83c\uddf9":["\u5965\u5730\u5229","\u5967\u5730\u5229","Austria","\u7ef4\u4e5f\u7eb3"],"\ud83c\udde6\ud83c\uddfa":["AU","Australia","Sydney","\u6fb3\u5927\u5229\u4e9a","\u6fb3\u6d32","\u58a8\u5c14\u672c","\u6089\u5c3c","\u571f\u6fb3","\u4eac\u6fb3","\u5ee3\u6fb3","\u6eec\u6fb3","\u6caa\u6fb3","\u5e7f\u6fb3"],"\ud83c\udde7\ud83c\uddea":["BE","\u6bd4\u5229\u6642","\u6bd4\u5229\u65f6"],"\ud83c\udde7\ud83c\uddec":["\u4fdd\u52a0\u5229\u4e9a","\u4fdd\u52a0\u5229\u4e9e","Bulgaria"],"\ud83c\udde7\ud83c\udded":["BH","\u5df4\u6797"],"\ud83c\udde7\ud83c\udde9":["BD","\u5b5f\u52a0\u62c9"],"\ud83c\uddf5\ud83c\uddf0":["\u5df4\u57fa\u65af\u5766"],"\ud83c\uddf0\ud83c\udded":["\u67ec\u57d4\u5be8"],"\ud83c\uddfa\ud83c\udde6":["\u70cf\u514b\u862d","\u4e4c\u514b\u5170"],"\ud83c\udded\ud83c\uddf7":["\u514b\u7f57\u5730\u4e9a","HR","\u514b\u7f85\u5730\u4e9e"],"\ud83c\udde8\ud83c\udde6":["Canada","CANADA","CAN","Waterloo","\u52a0\u62ff\u5927","\u8499\u7279\u5229\u5c14","\u6e29\u54e5\u534e","\u6953\u8449","\u67ab\u53f6","\u6ed1\u94c1\u5362","\u591a\u4f26\u591a","CA"],"\ud83c\udde8\ud83c\udded":["\u745e\u58eb","\u82cf\u9ece\u4e16","Switzerland","Zurich"],"\ud83c\uddf3\ud83c\uddec":["\u5c3c\u65e5\u5229\u4e9a","NG","\u5c3c\u65e5\u5229\u4e9e"],"\ud83c\udde8\ud83c\uddff":["Czechia","\u6377\u514b"],"\ud83c\uddf8\ud83c\uddf0":["\u65af\u6d1b\u4f10\u514b","SK"],"\ud83c\uddf7\ud83c\uddf8":["RS","\u585e\u5c14\u7ef4\u4e9a"],"\ud83c\uddf2\ud83c\udde9":["\u6469\u723e\u591a\u74e6","MD","\u6469\u5c14\u591a\u74e6"],"\ud83c\udde9\ud83c\uddea":["DE","German","GERMAN","\u5fb7\u56fd","\u5fb7\u570b","\u6cd5\u5170\u514b\u798f","\u4eac\u5fb7","\u6eec\u5fb7","\u5ee3\u5fb7","\u6caa\u5fb7","\u5e7f\u5fb7","Frankfurt"],"\ud83c\udde9\ud83c\uddf0":["DK","DNK","\u4e39\u9ea6","\u4e39\u9ea5"],"\ud83c\uddea\ud83c\uddf8":["ES","\u897f\u73ed\u7259","Spain"],"\ud83c\uddea\ud83c\uddfa":["EU","\u6b27\u76df","\u6b27\u7f57\u5df4"],"\ud83c\uddeb\ud83c\uddee":["Finland","\u82ac\u5170","\u82ac\u862d","\u8d6b\u5c14\u8f9b\u57fa"],"\ud83c\uddeb\ud83c\uddf7":["FR","France","\u6cd5\u56fd","\u6cd5\u570b","\u5df4\u9ece"],"\ud83c\uddec\ud83c\udde7":["UK","GB","England","United Kingdom","\u82f1\u56fd","\u4f26\u6566","\u82f1","London"],"\ud83c\uddf2\ud83c\uddf4":["MO","Macao","\u6fb3\u95e8","\u6fb3\u9580","CTM"],"\ud83c\uddf0\ud83c\uddff":["\u54c8\u8428\u514b\u65af\u5766","\u54c8\u8428\u514b"],"\ud83c\udded\ud83c\uddfa":["\u5308\u7259\u5229","Hungary"],"\ud83c\udded\ud83c\uddf0":["HK","Hongkong","Hong Kong","HongKong","HONG KONG","\u9999\u6e2f","\u6df1\u6e2f","\u6caa\u6e2f","\u547c\u6e2f","HKT","HKBN","HGC","WTT","CMI","\u7a57\u6e2f","\u4eac\u6e2f","\u6e2f"],"\ud83c\uddee\ud83c\udde9":["Indonesia","\u5370\u5c3c","\u5370\u5ea6\u5c3c\u897f\u4e9a","\u96c5\u52a0\u8fbe"],"\ud83c\uddee\ud83c\uddea":["Ireland","IRELAND","\u7231\u5c14\u5170","\u611b\u723e\u862d","\u90fd\u67cf\u6797"],"\ud83c\uddee\ud83c\uddf1":["Israel","\u4ee5\u8272\u5217"],"\ud83c\uddee\ud83c\uddf3":["India","IND","INDIA","\u5370\u5ea6","\u5b5f\u4e70","MFumbai"],"\ud83c\uddee\ud83c\uddf8":["IS","ISL","\u51b0\u5c9b","\u51b0\u5cf6"],"\ud83c\uddf0\ud83c\uddf5":["KP","\u671d\u9c9c"],"\ud83c\uddf0\ud83c\uddf7":["KR","Korea","KOR","\u97e9\u56fd","\u9996\u5c14","\u97e9","\u97d3","\u6625\u5ddd","Chuncheon","Seoul"],"\ud83c\uddf1\ud83c\uddfa":["\u5362\u68ee\u5821"],"\ud83c\uddf1\ud83c\uddfb":["Latvia","Latvija","\u62c9\u8131\u7ef4\u4e9a"],"\ud83c\uddf2\ud83c\uddfd":["MEX","MX","\u58a8\u897f\u54e5"],"\ud83c\uddf2\ud83c\uddfe":["MY","Malaysia","MALAYSIA","\u9a6c\u6765\u897f\u4e9a","\u5927\u99ac","\u99ac\u4f86\u897f\u4e9e","\u5409\u9686\u5761"],"\ud83c\uddf3\ud83c\uddf1":["NL","Netherlands","\u8377\u5170","\u8377\u862d","\u5c3c\u5fb7\u862d","\u963f\u59c6\u65af\u7279\u4e39"],"\ud83c\uddf3\ud83c\uddf5":["\u5c3c\u6cca\u5c14"],"\ud83c\uddf5\ud83c\udded":["PH","Philippines","\u83f2\u5f8b\u5bbe","\u83f2\u5f8b\u8cd3"],"\ud83c\uddf5\ud83c\uddf7":["PR","\u6ce2\u591a\u9ece\u5404"],"\ud83c\uddf7\ud83c\uddf4":["RO","\u7f57\u9a6c\u5c3c\u4e9a"],"\ud83c\uddf7\ud83c\uddfa":["RU","Russia","\u4fc4\u7f57\u65af","\u4fc4\u56fd","\u4fc4\u7f85\u65af","\u4f2f\u529b","\u83ab\u65af\u79d1","\u5723\u5f7c\u5f97\u5821","\u897f\u4f2f\u5229\u4e9a","\u65b0\u897f\u4f2f\u5229\u4e9a","\u4eac\u4fc4","\u676d\u4fc4","\u5ee3\u4fc4","\u6eec\u4fc4","\u5e7f\u4fc4","\u6caa\u4fc4","Moscow"],"\ud83c\uddf8\ud83c\udde6":["\u6c99\u7279"],"\ud83c\uddf8\ud83c\uddea":["SE","Sweden","\u745e\u5178"],"\ud83c\uddf2\ud83c\uddf9":["\u9a6c\u8033\u4ed6"],"\ud83c\uddf2\ud83c\udde6":["MA","\u6469\u6d1b\u54e5"],"\ud83c\uddf8\ud83c\uddec":["SG","Singapore","SINGAPORE","\u65b0\u52a0\u5761","\u72ee\u57ce","\u6caa\u65b0","\u4eac\u65b0","\u6cc9\u65b0","\u7a57\u65b0","\u6df1\u65b0","\u676d\u65b0","\u5e7f\u65b0","\u5ee3\u65b0","\u6eec\u65b0"],"\ud83c\uddf9\ud83c\udded":["TH","Thailand","\u6cf0\u56fd","\u6cf0\u570b","\u66fc\u8c37"],"\ud83c\uddf9\ud83c\uddf7":["TR","Turkey","\u571f\u8033\u5176","\u4f0a\u65af\u5766\u5e03\u5c14"],"\ud83c\uddf9\ud83c\uddfc":["TW","Taiwan","TAIWAN","\u53f0\u6e7e","\u53f0\u5317","\u53f0\u4e2d","\u65b0\u5317","\u5f70\u5316","CHT","\u53f0","HINET","Taipei"],"\ud83c\uddfa\ud83c\uddf8":["US","USA","America","United States","\u7f8e\u56fd","\u7f8e","\u4eac\u7f8e","\u6ce2\u7279\u5170","\u8fbe\u62c9\u65af","\u4fc4\u52d2\u5188","\u51e4\u51f0\u57ce","\u8d39\u5229\u8499","\u7845\u8c37","\u77fd\u8c37","\u62c9\u65af\u7ef4\u52a0\u65af","\u6d1b\u6749\u77f6","\u5723\u4f55\u585e","\u5723\u514b\u62c9\u62c9","\u897f\u96c5\u56fe","\u829d\u52a0\u54e5","\u6caa\u7f8e","\u54e5\u4f26\u5e03","\u7ebd\u7ea6","Los Angeles","San Jose","Sillicon Valley","Michigan"],"\ud83c\uddfb\ud83c\uddf3":["VN","\u8d8a\u5357","\u80e1\u5fd7\u660e\u5e02"],"\ud83c\uddfb\ud83c\uddea":["VE","\u59d4\u5185\u745e\u62c9"],"\ud83c\uddee\ud83c\uddf9":["Italy","IT","Nachash","\u610f\u5927\u5229","\u7c73\u5170","\u7fa9\u5927\u5229"],"\ud83c\uddff\ud83c\udde6":["South Africa","\u5357\u975e"],"\ud83c\udde6\ud83c\uddea":["United Arab Emirates","\u963f\u8054\u914b","\u8fea\u62dc","AE"],"\ud83c\udde7\ud83c\uddf7":["BR","Brazil","\u5df4\u897f","\u5723\u4fdd\u7f57"],"\ud83c\uddef\ud83c\uddf5":["JP","Japan","JAPAN","\u65e5\u672c","\u4e1c\u4eac","\u5927\u962a","\u57fc\u7389","\u6caa\u65e5","\u7a57\u65e5","\u5ddd\u65e5","\u4e2d\u65e5","\u6cc9\u65e5","\u676d\u65e5","\u6df1\u65e5","\u8fbd\u65e5","\u5e7f\u65e5","\u5927\u5742","Osaka","Tokyo"],"\ud83c\udde6\ud83c\uddf7":["AR","\u963f\u6839\u5ef7"],"\ud83c\uddf3\ud83c\uddf4":["Norway","\u632a\u5a01","NO"],"\ud83c\udde8\ud83c\uddf3":["CN","China","\u56de\u56fd","\u4e2d\u56fd","\u4e2d\u570b","\u6c5f\u82cf","\u5317\u4eac","\u4e0a\u6d77","\u5e7f\u5dde","\u6df1\u5733","\u676d\u5dde","\u5f90\u5dde","\u9752\u5c9b","\u5b81\u6ce2","\u9547\u6c5f","back"],"\ud83c\uddf5\ud83c\uddf1":["PL","POL","\u6ce2\u5170","\u6ce2\u862d"],"\ud83c\udde8\ud83c\uddf1":["\u667a\u5229"],"\ud83c\uddf3\ud83c\uddff":["\u65b0\u897f\u862d","\u65b0\u897f\u5170"],"\ud83c\uddec\ud83c\uddf7":["\u5e0c\u814a","\u5e0c\u81d8"],"\ud83c\uddea\ud83c\uddec":["\u57c3\u53ca"],"\ud83c\udde8\ud83c\uddfe":["CY","\u585e\u6d66\u8def\u65af"],"\ud83c\udde8\ud83c\uddf7":["CR","\u54e5\u65af\u8fbe\u9ece\u52a0"],"\ud83c\uddf8\ud83c\uddee":["SI","\u65af\u6d1b\u6587\u5c3c\u4e9a"],"\ud83c\uddf1\ud83c\uddf9":["LT","\u7acb\u9676\u5b9b"],"\ud83c\uddf5\ud83c\udde6":["PA","\u5df4\u62ff\u9a6c"],"\ud83c\uddf9\ud83c\uddf3":["TN","\u7a81\u5c3c\u65af"],"\ud83c\uddee\ud83c\uddf2":["\u9a6c\u6069\u5c9b","\u99ac\u6069\u5cf6"],"\ud83c\udde7\ud83c\uddfe":["BY","\u767d\u4fc4","\u767d\u4fc4\u7f57\u65af"],"\ud83c\uddf5\ud83c\uddf9":["\u8461\u8404\u7259"],"\ud83c\uddf0\ud83c\uddea":["KE","\u80af\u5c3c\u4e9a"],"\ud83c\uddf0\ud83c\uddec":["KG","\u5409\u5c14\u5409\u65af\u5766"],"\ud83c\uddef\ud83c\uddf4":["JO","\u7ea6\u65e6"],"\ud83c\uddfa\ud83c\uddfe":["UY","\u4e4c\u62c9\u572d"],"\ud83c\uddf2\ud83c\uddf3":["\u8499\u53e4"],"\ud83c\uddee\ud83c\uddf7":["IR","\u4f0a\u6717"],"\ud83c\uddf5\ud83c\uddea":["\u79d8\u9c81","\u7955\u9b6f"],"\ud83c\udde8\ud83c\uddf4":["\u54e5\u4f26\u6bd4\u4e9a"],"\ud83c\uddea\ud83c\uddea":["\u7231\u6c99\u5c3c\u4e9a"],"\ud83c\uddea\ud83c\udde8":["EC","\u5384\u74dc\u591a\u5c14"],"\ud83c\uddf2\ud83c\uddf0":["\u9a6c\u5176\u987f","\u99ac\u5176\u9813"],"\ud83c\udde7\ud83c\udde6":["\u6ce2\u9ed1\u5171\u548c\u56fd","\u6ce2\u9ed1"],"\ud83c\uddec\ud83c\uddea":["\u683c\u9b6f\u5409\u4e9e","\u683c\u9c81\u5409\u4e9a"],"\ud83c\udde6\ud83c\uddf1":["\u963f\u723e\u5df4\u5c3c\u4e9e","\u963f\u5c14\u5df4\u5c3c\u4e9a"],"\ud83c\udff3\ufe0f\u200d\ud83c\udf08":["\u6d41\u91cf","\u65f6\u95f4","\u5e94\u6025","\u8fc7\u671f","Bandwidth","expire"]};for(let r of Object.keys(t))if(t[r].some(t=>-1!==e.indexOf(t)))return r;return(e.match(/[\uD83C][\uDDE6-\uDDFF][\uD83C][\uDDE6-\uDDFF]/)||[])[0]||"\ud83c\udff4\u200d\u2620\ufe0f"},IP_API:async function(e,t){const r=decodeURIComponent(e.params.server),n=__HTTP_48(),o=await n.get(`http://ip-api.com/json/${r}?lang=zh-CN`).then(e=>JSON.parse(e.body));t.json(o)}};const{HTTP:__HTTP_49}=_$openApi_51;var _$gist_49=function({token:e,key:t}){const r=__HTTP_49({baseURL:"https://api.github.com",headers:{Authorization:"token "+e,"User-Agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.141 Safari/537.36"},events:{onResponse:e=>/^[45]/.test(String(e.statusCode))?Promise.reject("ERROR: "+JSON.parse(e.body).message):e}});async function n(){return r.get("/gists").then(e=>{const r=JSON.parse(e.body);for(let n of r)if(n.description===t)return n.id;return-1})}this.upload=async function(e){const o=await n();return-1===o?r.post({url:"/gists",body:JSON.stringify({description:t,public:!1,files:e})}):r.patch({url:"/gists/"+o,body:JSON.stringify({files:e})})},this.download=async function(e){const t=await n();if(-1===t)return Promise.reject("\u672a\u627e\u5230Gist\u5907\u4efd\uff01");try{const{files:n}=await r.get("/gists/"+t).then(e=>JSON.parse(e.body)),o=n[e].raw_url;return await r.get(o).then(e=>e.body)}catch(o){return Promise.reject(o)}}},_$constants_41={SETTINGS_KEY:"settings",SUBS_KEY:"subs",COLLECTIONS_KEY:"collections",RULES_KEY:"rules",BUILT_IN_KEY:"builtin",ARTIFACTS_KEY:"artifacts",GIST_BACKUP_KEY:"Auto Generated Sub-Store Backup",GIST_BACKUP_FILE_NAME:"Sub-Store",ARTIFACT_REPOSITORY_KEY:"Sub-Store Artifacts Repository"};const{HTTP:__HTTP_46}=_$openApi_51,cache=new Map;var _$download_46=async function(e,t){const r=(t=t||"Quantumult%20X/1.0.29 (iPhone14,5; iOS 15.4.1)")+e;if(cache.has(r))return cache.get(r);const n=__HTTP_46({headers:{"User-Agent":t}}),o=new Promise((t,r)=>{n.get(e).then(e=>{const n=e.body;0===n.replace(/\s/g,"").length?r(new Error("\u8ba2\u9605\u5185\u5bb9\u4e3a\u7a7a\uff01")):t(n)})});return cache[r]=o,o},_$common_7={};function isNothing(e){return null==e}_$common_7.isNothing=isNothing,_$common_7.isObject=function(e){return"object"==typeof e&&null!==e},_$common_7.toArray=function(e){return Array.isArray(e)?e:isNothing(e)?[]:[e]},_$common_7.repeat=function(e,t){var r,n="";for(r=0;r0&&-1==="\0\r\n\x85\u2028\u2029".indexOf(this.buffer.charAt(n-1));)if(n-=1,this.position-n>t/2-1){r=" ... ",n+=5;break}for(o="",s=this.position;st/2-1){o=" ... ",s-=5;break}return i=this.buffer.slice(n,s),_$common_7.repeat(" ",e)+r+i+o+"\n"+_$common_7.repeat(" ",e+this.position-n+r.length)+"^"},Mark.prototype.toString=function(e){var t,r="";return this.name&&(r+='in "'+this.name+'" '),r+="at line "+(this.line+1)+", column "+(this.column+1),e||(t=this.getSnippet())&&(r+=":\n"+t),r},_$mark_11=Mark;var TYPE_CONSTRUCTOR_OPTIONS=["kind","resolve","construct","instanceOf","predicate","represent","defaultStyle","styleAliases"],YAML_NODE_KINDS=["scalar","sequence","mapping"],_$type_18=function(e,t){var r,n;if(t=t||{},Object.keys(t).forEach((function(t){if(-1===TYPE_CONSTRUCTOR_OPTIONS.indexOf(t))throw new _$exception_9('Unknown option "'+t+'" is met in definition of "'+e+'" YAML type.')})),this.tag=e,this.kind=t.kind||null,this.resolve=t.resolve||function(){return!0},this.construct=t.construct||function(e){return e},this.instanceOf=t.instanceOf||null,this.predicate=t.predicate||null,this.represent=t.represent||null,this.defaultStyle=t.defaultStyle||null,this.styleAliases=(r=t.styleAliases||null,n={},null!==r&&Object.keys(r).forEach((function(e){r[e].forEach((function(t){n[String(t)]=e}))})),n),-1===YAML_NODE_KINDS.indexOf(this.kind))throw new _$exception_9('Unknown kind "'+this.kind+'" is specified for "'+e+'" YAML type.')},_$schema_12={};function compileList(e,t,r){var n=[];return e.include.forEach((function(e){r=compileList(e,t,r)})),e[t].forEach((function(e){r.forEach((function(t,r){t.tag===e.tag&&t.kind===e.kind&&n.push(r)})),r.push(e)})),r.filter((function(e,t){return-1===n.indexOf(t)}))}function Schema(e){this.include=e.include||[],this.implicit=e.implicit||[],this.explicit=e.explicit||[],this.implicit.forEach((function(e){if(e.loadKind&&"scalar"!==e.loadKind)throw new _$exception_9("There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.")})),this.compiledImplicit=compileList(this,"implicit",[]),this.compiledExplicit=compileList(this,"explicit",[]),this.compiledTypeMap=function(){var e,t,r={scalar:{},sequence:{},mapping:{},fallback:{}};function n(e){r[e.kind][e.tag]=r.fallback[e.tag]=e}for(e=0,t=arguments.length;e=0?"0b"+e.toString(2):"-0b"+e.toString(2).slice(1)},octal:function(e){return e>=0?"0"+e.toString(8):"-0"+e.toString(8).slice(1)},decimal:function(e){return e.toString(10)},hexadecimal:function(e){return e>=0?"0x"+e.toString(16).toUpperCase():"-0x"+e.toString(16).toUpperCase().slice(1)}},defaultStyle:"decimal",styleAliases:{binary:[2,"bin"],octal:[8,"oct"],decimal:[10,"dec"],hexadecimal:[16,"hex"]}}),YAML_FLOAT_PATTERN=new RegExp("^(?:[-+]?(?:0|[1-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\\.[0-9_]*|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$"),SCIENTIFIC_WITHOUT_DOT=/^[-+]?[0-9]+e/,_$float_21=new _$type_18("tag:yaml.org,2002:float",{kind:"scalar",resolve:function(e){return null!==e&&!(!YAML_FLOAT_PATTERN.test(e)||"_"===e[e.length-1])},construct:function(e){var t,r,n,o;return r="-"===(t=e.replace(/_/g,"").toLowerCase())[0]?-1:1,o=[],"+-".indexOf(t[0])>=0&&(t=t.slice(1)),".inf"===t?1===r?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:".nan"===t?NaN:t.indexOf(":")>=0?(t.split(":").forEach((function(e){o.unshift(parseFloat(e,10))})),t=0,n=1,o.forEach((function(e){t+=e*n,n*=60})),r*t):r*parseFloat(t,10)},predicate:function(e){return"[object Number]"===Object.prototype.toString.call(e)&&(e%1!=0||_$common_7.isNegativeZero(e))},represent:function(e,t){var r;if(isNaN(e))switch(t){case"lowercase":return".nan";case"uppercase":return".NAN";case"camelcase":return".NaN"}else if(Number.POSITIVE_INFINITY===e)switch(t){case"lowercase":return".inf";case"uppercase":return".INF";case"camelcase":return".Inf"}else if(Number.NEGATIVE_INFINITY===e)switch(t){case"lowercase":return"-.inf";case"uppercase":return"-.INF";case"camelcase":return"-.Inf"}else if(_$common_7.isNegativeZero(e))return"-0.0";return r=e.toString(10),SCIENTIFIC_WITHOUT_DOT.test(r)?r.replace("e",".e"):r},defaultStyle:"lowercase"}),_$json_17=new _$schema_12({include:[_$failsafe_16],implicit:[_$null_28,_$bool_20,_$int_22,_$float_21]}),_$core_13=new _$schema_12({include:[_$json_17]}),YAML_DATE_REGEXP=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),YAML_TIMESTAMP_REGEXP=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$"),_$timestamp_34=new _$type_18("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:function(e){return null!==e&&(null!==YAML_DATE_REGEXP.exec(e)||null!==YAML_TIMESTAMP_REGEXP.exec(e))},construct:function(e){var t,r,n,o,s,i,a,u,c=0,p=null;if(null===(t=YAML_DATE_REGEXP.exec(e))&&(t=YAML_TIMESTAMP_REGEXP.exec(e)),null===t)throw new Error("Date resolve error");if(r=+t[1],n=+t[2]-1,o=+t[3],!t[4])return new Date(Date.UTC(r,n,o));if(s=+t[4],i=+t[5],a=+t[6],t[7]){for(c=t[7].slice(0,3);c.length<3;)c+="0";c=+c}return t[9]&&(p=6e4*(60*+t[10]+ +(t[11]||0)),"-"===t[9]&&(p=-p)),u=new Date(Date.UTC(r,n,o,s,i,a,c)),p&&u.setTime(u.getTime()-p),u},instanceOf:Date,represent:function(e){return e.toISOString()}}),_$merge_27=new _$type_18("tag:yaml.org,2002:merge",{kind:"scalar",resolve:function(e){return"<<"===e||null===e}}),NodeBuffer;try{var _require=require;NodeBuffer=_require("buffer").Buffer}catch(__){}var BASE64_MAP="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\n\r",_$binary_19=new _$type_18("tag:yaml.org,2002:binary",{kind:"scalar",resolve:function(e){if(null===e)return!1;var t,r,n=0,o=e.length,s=BASE64_MAP;for(r=0;r64)){if(t<0)return!1;n+=6}return n%8==0},construct:function(e){var t,r,n=e.replace(/[\r\n=]/g,""),o=n.length,s=BASE64_MAP,i=0,a=[];for(t=0;t>16&255),a.push(i>>8&255),a.push(255&i)),i=i<<6|s.indexOf(n.charAt(t));return 0==(r=o%4*6)?(a.push(i>>16&255),a.push(i>>8&255),a.push(255&i)):18===r?(a.push(i>>10&255),a.push(i>>2&255)):12===r&&a.push(i>>4&255),NodeBuffer?NodeBuffer.from?NodeBuffer.from(a):new NodeBuffer(a):a},predicate:function(e){return NodeBuffer&&NodeBuffer.isBuffer(e)},represent:function(e){var t,r,n="",o=0,s=e.length,i=BASE64_MAP;for(t=0;t>18&63],n+=i[o>>12&63],n+=i[o>>6&63],n+=i[63&o]),o=(o<<8)+e[t];return 0==(r=s%3)?(n+=i[o>>18&63],n+=i[o>>12&63],n+=i[o>>6&63],n+=i[63&o]):2===r?(n+=i[o>>10&63],n+=i[o>>4&63],n+=i[o<<2&63],n+=i[64]):1===r&&(n+=i[o>>2&63],n+=i[o<<4&63],n+=i[64],n+=i[64]),n}}),_hasOwnProperty=Object.prototype.hasOwnProperty,_toString=Object.prototype.toString,_$omap_29=new _$type_18("tag:yaml.org,2002:omap",{kind:"sequence",resolve:function(e){if(null===e)return!0;var t,r,n,o,s,i=[],a=e;for(t=0,r=a.length;t3)return!1;if("/"!==t[t.length-n.length-1])return!1}return!0},construct:function(e){var t=e,r=/\/([gim]*)$/.exec(e),n="";return"/"===t[0]&&(r&&(n=r[1]),t=t.slice(1,t.length-n.length-1)),new RegExp(t,n)},predicate:function(e){return"[object RegExp]"===Object.prototype.toString.call(e)},represent:function(e){var t="/"+e.source+"/";return e.global&&(t+="g"),e.multiline&&(t+="m"),e.ignoreCase&&(t+="i"),t}}),esprima;try{var ___require_23=require;esprima=___require_23("esprima")}catch(_){"undefined"!=typeof window&&(esprima=window.esprima)}var _$function_23=new _$type_18("tag:yaml.org,2002:js/function",{kind:"scalar",resolve:function(e){if(null===e)return!1;try{var t="("+e+")",r=esprima.parse(t,{range:!0});return"Program"===r.type&&1===r.body.length&&"ExpressionStatement"===r.body[0].type&&("ArrowFunctionExpression"===r.body[0].expression.type||"FunctionExpression"===r.body[0].expression.type)}catch(n){return!1}},construct:function(e){var t,r="("+e+")",n=esprima.parse(r,{range:!0}),o=[];if("Program"!==n.type||1!==n.body.length||"ExpressionStatement"!==n.body[0].type||"ArrowFunctionExpression"!==n.body[0].expression.type&&"FunctionExpression"!==n.body[0].expression.type)throw new Error("Failed to resolve function");return n.body[0].expression.params.forEach((function(e){o.push(e.name)})),t=n.body[0].expression.body.range,"BlockStatement"===n.body[0].expression.body.type?new Function(o,r.slice(t[0]+1,t[1]-1)):new Function(o,"return "+r.slice(t[0],t[1]))},predicate:function(e){return"[object Function]"===Object.prototype.toString.call(e)},represent:function(e){return e.toString()}}),_$default_full_14=_$schema_12.DEFAULT=new _$schema_12({include:[_$default_safe_15],explicit:[_$undefined_25,_$regexp_24,_$function_23]}),_$loader_10={},___hasOwnProperty_10=Object.prototype.hasOwnProperty,CONTEXT_FLOW_IN=1,CONTEXT_FLOW_OUT=2,CONTEXT_BLOCK_IN=3,CONTEXT_BLOCK_OUT=4,CHOMPING_CLIP=1,CHOMPING_STRIP=2,CHOMPING_KEEP=3,PATTERN_NON_PRINTABLE=/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,PATTERN_NON_ASCII_LINE_BREAKS=/[\x85\u2028\u2029]/,PATTERN_FLOW_INDICATORS=/[,\[\]\{\}]/,PATTERN_TAG_HANDLE=/^(?:!|!!|![a-z\-]+!)$/i,PATTERN_TAG_URI=/^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i;function _class(e){return Object.prototype.toString.call(e)}function is_EOL(e){return 10===e||13===e}function is_WHITE_SPACE(e){return 9===e||32===e}function is_WS_OR_EOL(e){return 9===e||32===e||10===e||13===e}function is_FLOW_INDICATOR(e){return 44===e||91===e||93===e||123===e||125===e}function fromHexCode(e){var t;return 48<=e&&e<=57?e-48:97<=(t=32|e)&&t<=102?t-97+10:-1}function simpleEscapeSequence(e){return 48===e?"\0":97===e?"\x07":98===e?"\b":116===e||9===e?"\t":110===e?"\n":118===e?"\v":102===e?"\f":114===e?"\r":101===e?"\x1b":32===e?" ":34===e?'"':47===e?"/":92===e?"\\":78===e?"\x85":95===e?"\xa0":76===e?"\u2028":80===e?"\u2029":""}function charFromCodepoint(e){return e<=65535?String.fromCharCode(e):String.fromCharCode(55296+(e-65536>>10),56320+(e-65536&1023))}for(var simpleEscapeCheck=new Array(256),simpleEscapeMap=new Array(256),i=0;i<256;i++)simpleEscapeCheck[i]=simpleEscapeSequence(i)?1:0,simpleEscapeMap[i]=simpleEscapeSequence(i);function State(e,t){this.input=e,this.filename=t.filename||null,this.schema=t.schema||_$default_full_14,this.onWarning=t.onWarning||null,this.legacy=t.legacy||!1,this.json=t.json||!1,this.listener=t.listener||null,this.implicitTypes=this.schema.compiledImplicit,this.typeMap=this.schema.compiledTypeMap,this.length=e.length,this.position=0,this.line=0,this.lineStart=0,this.lineIndent=0,this.documents=[]}function generateError(e,t){return new _$exception_9(t,new _$mark_11(e.filename,e.input,e.position,e.line,e.position-e.lineStart))}function throwError(e,t){throw generateError(e,t)}function throwWarning(e,t){e.onWarning&&e.onWarning.call(null,generateError(e,t))}var directiveHandlers={YAML:function(e,t,r){var n,o,s;null!==e.version&&throwError(e,"duplication of %YAML directive"),1!==r.length&&throwError(e,"YAML directive accepts exactly one argument"),null===(n=/^([0-9]+)\.([0-9]+)$/.exec(r[0]))&&throwError(e,"ill-formed argument of the YAML directive"),o=parseInt(n[1],10),s=parseInt(n[2],10),1!==o&&throwError(e,"unacceptable YAML version of the document"),e.version=r[0],e.checkLineBreaks=s<2,1!==s&&2!==s&&throwWarning(e,"unsupported YAML version of the document")},TAG:function(e,t,r){var n,o;2!==r.length&&throwError(e,"TAG directive accepts exactly two arguments"),n=r[0],o=r[1],PATTERN_TAG_HANDLE.test(n)||throwError(e,"ill-formed tag handle (first argument) of the TAG directive"),___hasOwnProperty_10.call(e.tagMap,n)&&throwError(e,'there is a previously declared suffix for "'+n+'" tag handle'),PATTERN_TAG_URI.test(o)||throwError(e,"ill-formed tag prefix (second argument) of the TAG directive"),e.tagMap[n]=o}};function captureSegment(e,t,r,n){var o,s,i,a;if(t1&&(e.result+=_$common_7.repeat("\n",t-1))}function readBlockSequence(e,t){var r,n,o=e.tag,s=e.anchor,i=[],a=!1;for(null!==e.anchor&&(e.anchorMap[e.anchor]=i),n=e.input.charCodeAt(e.position);0!==n&&45===n&&is_WS_OR_EOL(e.input.charCodeAt(e.position+1));)if(a=!0,e.position++,skipSeparationSpace(e,!0,-1)&&e.lineIndent<=t)i.push(null),n=e.input.charCodeAt(e.position);else if(r=e.line,composeNode(e,t,CONTEXT_BLOCK_IN,!1,!0),i.push(e.result),skipSeparationSpace(e,!0,-1),n=e.input.charCodeAt(e.position),(e.line===r||e.lineIndent>t)&&0!==n)throwError(e,"bad indentation of a sequence entry");else if(e.lineIndentt?d=1:e.lineIndent===t?d=0:e.lineIndentt?d=1:e.lineIndent===t?d=0:e.lineIndentt)&&(composeNode(e,t,CONTEXT_BLOCK_OUT,!0,o)&&(_?d=e.result:h=e.result),_||(storeMappingPair(e,p,l,f,d,h,s,i),f=d=h=null),skipSeparationSpace(e,!0,-1),a=e.input.charCodeAt(e.position)),e.lineIndent>t&&0!==a)throwError(e,"bad indentation of a mapping entry");else if(e.lineIndent=0))break;0===o?throwError(e,"bad explicit indentation width of a block scalar; it cannot be less than one"):c?throwError(e,"repeat of an indentation width identifier"):(p=t+o-1,c=!0)}if(is_WHITE_SPACE(s)){do{s=e.input.charCodeAt(++e.position)}while(is_WHITE_SPACE(s));if(35===s)do{s=e.input.charCodeAt(++e.position)}while(!is_EOL(s)&&0!==s)}for(;0!==s;){for(readLineBreak(e),e.lineIndent=0,s=e.input.charCodeAt(e.position);(!c||e.lineIndentp&&(p=e.lineIndent),is_EOL(s))l++;else{if(e.lineIndent0){for(o=i,s=0;o>0;o--)(i=fromHexCode(a=e.input.charCodeAt(++e.position)))>=0?s=(s<<4)+i:throwError(e,"expected hexadecimal character");e.result+=charFromCodepoint(s),e.position++}else throwError(e,"unknown escape sequence");r=n=e.position}else is_EOL(a)?(captureSegment(e,r,n,!0),writeFoldedLines(e,skipSeparationSpace(e,!1,t)),r=n=e.position):e.position===e.lineStart&&testDocumentSeparator(e)?throwError(e,"unexpected end of the document within a double quoted scalar"):(e.position++,n=e.position)}throwError(e,"unexpected end of the stream within a double quoted scalar")}(e,l)?_=!0:function(e){var t,r,n;if(42!==(n=e.input.charCodeAt(e.position)))return!1;for(n=e.input.charCodeAt(++e.position),t=e.position;0!==n&&!is_WS_OR_EOL(n)&&!is_FLOW_INDICATOR(n);)n=e.input.charCodeAt(++e.position);return e.position===t&&throwError(e,"name of an alias node must contain at least one character"),r=e.input.slice(t,e.position),___hasOwnProperty_10.call(e.anchorMap,r)||throwError(e,'unidentified alias "'+r+'"'),e.result=e.anchorMap[r],skipSeparationSpace(e,!0,-1),!0}(e)?(_=!0,null===e.tag&&null===e.anchor||throwError(e,"alias node should not have any properties")):function(e,t,r){var n,o,s,i,a,u,c,p,l=e.kind,f=e.result;if(is_WS_OR_EOL(p=e.input.charCodeAt(e.position))||is_FLOW_INDICATOR(p)||35===p||38===p||42===p||33===p||124===p||62===p||39===p||34===p||37===p||64===p||96===p)return!1;if((63===p||45===p)&&(is_WS_OR_EOL(n=e.input.charCodeAt(e.position+1))||r&&is_FLOW_INDICATOR(n)))return!1;for(e.kind="scalar",e.result="",o=s=e.position,i=!1;0!==p;){if(58===p){if(is_WS_OR_EOL(n=e.input.charCodeAt(e.position+1))||r&&is_FLOW_INDICATOR(n))break}else if(35===p){if(is_WS_OR_EOL(e.input.charCodeAt(e.position-1)))break}else{if(e.position===e.lineStart&&testDocumentSeparator(e)||r&&is_FLOW_INDICATOR(p))break;if(is_EOL(p)){if(a=e.line,u=e.lineStart,c=e.lineIndent,skipSeparationSpace(e,!1,-1),e.lineIndent>=t){i=!0,p=e.input.charCodeAt(e.position);continue}e.position=s,e.line=a,e.lineStart=u,e.lineIndent=c;break}}i&&(captureSegment(e,o,s,!1),writeFoldedLines(e,e.line-a),o=s=e.position,i=!1),is_WHITE_SPACE(p)||(s=e.position+1),p=e.input.charCodeAt(++e.position)}return captureSegment(e,o,s,!1),!!e.result||(e.kind=l,e.result=f,!1)}(e,l,CONTEXT_FLOW_IN===r)&&(_=!0,null===e.tag&&(e.tag="?")),null!==e.anchor&&(e.anchorMap[e.anchor]=e.result)):0===d&&(_=a&&readBlockSequence(e,f))),null!==e.tag&&"!"!==e.tag)if("?"===e.tag){for(null!==e.result&&"scalar"!==e.kind&&throwError(e,'unacceptable node kind for ! tag; it should be "scalar", not "'+e.kind+'"'),u=0,c=e.implicitTypes.length;u tag; it should be "'+p.kind+'", not "'+e.kind+'"'),p.resolve(e.result)?(e.result=p.construct(e.result),null!==e.anchor&&(e.anchorMap[e.anchor]=e.result)):throwError(e,"cannot resolve a node with !<"+e.tag+"> explicit tag")):throwError(e,"unknown tag !<"+e.tag+">");return null!==e.listener&&e.listener("close",e),null!==e.tag||null!==e.anchor||_}function readDocument(e){var t,r,n,o,s=e.position,i=!1;for(e.version=null,e.checkLineBreaks=e.legacy,e.tagMap={},e.anchorMap={};0!==(o=e.input.charCodeAt(e.position))&&(skipSeparationSpace(e,!0,-1),o=e.input.charCodeAt(e.position),!(e.lineIndent>0||37!==o));){for(i=!0,o=e.input.charCodeAt(++e.position),t=e.position;0!==o&&!is_WS_OR_EOL(o);)o=e.input.charCodeAt(++e.position);for(n=[],(r=e.input.slice(t,e.position)).length<1&&throwError(e,"directive name must not be less than one character in length");0!==o;){for(;is_WHITE_SPACE(o);)o=e.input.charCodeAt(++e.position);if(35===o){do{o=e.input.charCodeAt(++e.position)}while(0!==o&&!is_EOL(o));break}if(is_EOL(o))break;for(t=e.position;0!==o&&!is_WS_OR_EOL(o);)o=e.input.charCodeAt(++e.position);n.push(e.input.slice(t,e.position))}0!==o&&readLineBreak(e),___hasOwnProperty_10.call(directiveHandlers,r)?directiveHandlers[r](e,r,n):throwWarning(e,'unknown document directive "'+r+'"')}skipSeparationSpace(e,!0,-1),0===e.lineIndent&&45===e.input.charCodeAt(e.position)&&45===e.input.charCodeAt(e.position+1)&&45===e.input.charCodeAt(e.position+2)?(e.position+=3,skipSeparationSpace(e,!0,-1)):i&&throwError(e,"directives end mark is expected"),composeNode(e,e.lineIndent-1,CONTEXT_BLOCK_OUT,!1,!0),skipSeparationSpace(e,!0,-1),e.checkLineBreaks&&PATTERN_NON_ASCII_LINE_BREAKS.test(e.input.slice(s,e.position))&&throwWarning(e,"non-ASCII line breaks are interpreted as content"),e.documents.push(e.result),e.position===e.lineStart&&testDocumentSeparator(e)?46===e.input.charCodeAt(e.position)&&(e.position+=3,skipSeparationSpace(e,!0,-1)):e.position0?e.charCodeAt(s-1):null,d=d&&isPlainSafe(i,a)}else{for(s=0;sn&&" "!==e[f+1],f=s);else if(!isPrintable(i))return STYLE_DOUBLE;a=s>0?e.charCodeAt(s-1):null,d=d&&isPlainSafe(i,a)}p=p||l&&s-f-1>n&&" "!==e[f+1]}return c||p?r>9&&needIndentIndicator(e)?STYLE_DOUBLE:p?STYLE_FOLDED:STYLE_LITERAL:d&&!o(e)?STYLE_PLAIN:STYLE_SINGLE}function writeScalar(e,t,r,n){e.dump=function(){if(0===t.length)return"''";if(!e.noCompatMode&&-1!==DEPRECATED_BOOLEANS_SYNTAX.indexOf(t))return"'"+t+"'";var o=e.indent*Math.max(1,r),s=-1===e.lineWidth?-1:Math.max(Math.min(e.lineWidth,40),e.lineWidth-o),i=n||e.flowLevel>-1&&r>=e.flowLevel;switch(chooseScalarStyle(t,i,e.indent,s,(function(t){return function(e,t){var r,n;for(r=0,n=e.implicitTypes.length;r"+blockHeader(t,e.indent)+dropEndingNewline(indentString(function(e,t){for(var r,n,o,s=/(\n+)([^\n]*)/g,i=(o=-1!==(o=e.indexOf("\n"))?o:e.length,s.lastIndex=o,foldLine(e.slice(0,o),t)),a="\n"===e[0]||" "===e[0];n=s.exec(e);){var u=n[1],c=n[2];r=" "===c[0],i+=u+(a||r||""===c?"":"\n")+foldLine(c,t),a=r}return i}(t,s),o));case STYLE_DOUBLE:return'"'+function(e){for(var t,r,n,o="",s=0;s=55296&&t<=56319&&(r=e.charCodeAt(s+1))>=56320&&r<=57343?(o+=encodeHex(1024*(t-55296)+r-56320+65536),s++):o+=!(n=ESCAPE_SEQUENCES[t])&&isPrintable(t)?e[s]:n||encodeHex(t);return o}(t)+'"';default:throw new _$exception_9("impossible error: invalid scalar style")}}()}function blockHeader(e,t){var r=needIndentIndicator(e)?String(t):"",n="\n"===e[e.length-1];return r+(!n||"\n"!==e[e.length-2]&&"\n"!==e?n?"":"-":"+")+"\n"}function dropEndingNewline(e){return"\n"===e[e.length-1]?e.slice(0,-1):e}function foldLine(e,t){if(""===e||" "===e[0])return e;for(var r,n,o=/ [^ ]/g,s=0,i=0,a=0,u="";r=o.exec(e);)(a=r.index)-s>t&&(n=i>s?i:a,u+="\n"+e.slice(s,n),s=n+1),i=a;return u+="\n",e.length-s>t&&i>s?u+=e.slice(s,i)+"\n"+e.slice(i+1):u+=e.slice(s),u.slice(1)}function detectType(e,t,r){var n,o,s,i,a,u;for(s=0,i=(o=r?e.explicitTypes:e.implicitTypes).length;s tag resolver accepts not "'+u+'" style');n=a.represent[u](t,u)}e.dump=n}return!0}return!1}function writeNode(e,t,r,n,o,s){e.tag=null,e.dump=r,detectType(e,r,!1)||detectType(e,r,!0);var i=___toString_8.call(e.dump);n&&(n=e.flowLevel<0||e.flowLevel>t);var a,u,c="[object Object]"===i||"[object Array]"===i;if(c&&(u=-1!==(a=e.duplicates.indexOf(r))),(null!==e.tag&&"?"!==e.tag||u||2!==e.indent&&t>0)&&(o=!1),u&&e.usedDuplicates[a])e.dump="*ref_"+a;else{if(c&&u&&!e.usedDuplicates[a]&&(e.usedDuplicates[a]=!0),"[object Object]"===i)n&&0!==Object.keys(e.dump).length?(function(e,t,r,n){var o,s,i,a,u,c,p="",l=e.tag,f=Object.keys(r);if(!0===e.sortKeys)f.sort();else if("function"==typeof e.sortKeys)f.sort(e.sortKeys);else if(e.sortKeys)throw new _$exception_9("sortKeys must be a boolean or a function");for(o=0,s=f.length;o1024)&&(e.dump&&CHAR_LINE_FEED===e.dump.charCodeAt(0)?c+="?":c+="? "),c+=e.dump,u&&(c+=generateNextLine(e,t)),writeNode(e,t+1,a,!0,u)&&(e.dump&&CHAR_LINE_FEED===e.dump.charCodeAt(0)?c+=":":c+=": ",p+=c+=e.dump));e.tag=l,e.dump=p||"{}"}(e,t,e.dump,o),u&&(e.dump="&ref_"+a+e.dump)):(function(e,t,r){var n,o,s,i,a,u="",c=e.tag,p=Object.keys(r);for(n=0,o=p.length;n1024&&(a+="? "),a+=e.dump+(e.condenseFlow?'"':"")+":"+(e.condenseFlow?"":" "),writeNode(e,t,i,!1,!1)&&(u+=a+=e.dump));e.tag=c,e.dump="{"+u+"}"}(e,t,e.dump),u&&(e.dump="&ref_"+a+" "+e.dump));else if("[object Array]"===i){var p=e.noArrayIndent&&t>0?t-1:t;n&&0!==e.dump.length?(function(e,t,r,n){var o,s,i="",a=e.tag;for(o=0,s=r.length;o "+e.dump)}return!0}function getDuplicateReferences(e,t){var r,n,o=[],s=[];for(function e(t,r,n){var o,s,i;if(null!==t&&"object"==typeof t)if(-1!==(s=r.indexOf(t)))-1===n.indexOf(s)&&n.push(s);else if(r.push(t),Array.isArray(t))for(s=0,i=t.length;s0?o-4:o;for(r=0;r>16&255,i[a++]=t>>8&255,i[a++]=255&t;return 2===s&&(t=revLookup[e.charCodeAt(r)]<<2|revLookup[e.charCodeAt(r+1)]>>4,i[a++]=255&t),1===s&&(t=revLookup[e.charCodeAt(r)]<<10|revLookup[e.charCodeAt(r+1)]<<4|revLookup[e.charCodeAt(r+2)]>>2,i[a++]=t>>8&255,i[a++]=255&t),i},fromByteArray:function(e){for(var t,r=e.length,n=r%3,o=[],s=0,i=r-n;si?i:s+16383));return 1===n?(t=e[r-1],o.push(lookup[t>>2]+lookup[t<<4&63]+"==")):2===n&&(t=(e[r-2]<<8)+e[r-1],o.push(lookup[t>>10]+lookup[t>>4&63]+lookup[t<<2&63]+"=")),o.join("")}},lookup=[],revLookup=[],Arr="undefined"!=typeof Uint8Array?Uint8Array:Array,code="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",__i_1=0,len=code.length;__i_10)throw new Error("Invalid string. Length must be a multiple of 4");var r=e.indexOf("=");return-1===r&&(r=t),[r,r===t?0:4-r%4]}function encodeChunk(e,t,r){for(var n,o,s=[],i=t;i>18&63]+lookup[o>>12&63]+lookup[o>>6&63]+lookup[63&o]);return s.join("")}revLookup["-".charCodeAt(0)]=62,revLookup["_".charCodeAt(0)]=63;var _$ieee754_3={read:function(e,t,r,n,o){var s,i,a=8*o-n-1,u=(1<>1,p=-7,l=r?o-1:0,f=r?-1:1,d=e[t+l];for(l+=f,s=d&(1<<-p)-1,d>>=-p,p+=a;p>0;s=256*s+e[t+l],l+=f,p-=8);for(i=s&(1<<-p)-1,s>>=-p,p+=n;p>0;i=256*i+e[t+l],l+=f,p-=8);if(0===s)s=1-c;else{if(s===u)return i?NaN:1/0*(d?-1:1);i+=Math.pow(2,n),s-=c}return(d?-1:1)*i*Math.pow(2,s-n)},write:function(e,t,r,n,o,s){var i,a,u,c=8*s-o-1,p=(1<>1,f=23===o?Math.pow(2,-24)-Math.pow(2,-77):0,d=n?0:s-1,h=n?1:-1,_=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(a=isNaN(t)?1:0,i=p):(i=Math.floor(Math.log(t)/Math.LN2),t*(u=Math.pow(2,-i))<1&&(i--,u*=2),(t+=i+l>=1?f/u:f*Math.pow(2,1-l))*u>=2&&(i++,u/=2),i+l>=p?(a=0,i=p):i+l>=1?(a=(t*u-1)*Math.pow(2,o),i+=l):(a=t*Math.pow(2,l-1)*Math.pow(2,o),i=0));o>=8;e[r+d]=255&a,d+=h,a/=256,o-=8);for(i=i<0;e[r+d]=255&i,d+=h,i/=256,c-=8);e[r+d-h]|=128*_}},_$base64_4={exports:{}};(function(e,t){(function(){!function(e,t){var r,n;"object"==typeof _$base64_4.exports?_$base64_4.exports=t():"function"==typeof define&&define.amd?define(t):(r=e.Base64,(n=t()).noConflict=function(){return e.Base64=r,n},e.Meteor&&(Base64=n),e.Base64=n)}("undefined"!=typeof self?self:"undefined"!=typeof window?window:void 0!==e?e:this,(function(){"use strict";var e,r="function"==typeof atob,n="function"==typeof btoa,o="function"==typeof t,s="function"==typeof TextDecoder?new TextDecoder:void 0,i="function"==typeof TextEncoder?new TextEncoder:void 0,a=Array.prototype.slice.call("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="),u=(e={},a.forEach((function(t,r){return e[t]=r})),e),c=/^(?:[A-Za-z\d+\/]{4})*?(?:[A-Za-z\d+\/]{2}(?:==)?|[A-Za-z\d+\/]{3}=?)?$/,p=String.fromCharCode.bind(String),l="function"==typeof Uint8Array.from?Uint8Array.from.bind(Uint8Array):function(e,t){return void 0===t&&(t=function(e){return e}),new Uint8Array(Array.prototype.slice.call(e,0).map(t))},f=function(e){return e.replace(/=/g,"").replace(/[+\/]/g,(function(e){return"+"==e?"-":"_"}))},d=function(e){return e.replace(/[^A-Za-z0-9\+\/]/g,"")},h=function(e){for(var t,r,n,o,s="",i=e.length%3,u=0;u255||(n=e.charCodeAt(u++))>255||(o=e.charCodeAt(u++))>255)throw new TypeError("invalid character found");s+=a[(t=r<<16|n<<8|o)>>18&63]+a[t>>12&63]+a[t>>6&63]+a[63&t]}return i?s.slice(0,i-3)+"===".substring(i):s},_=n?function(e){return btoa(e)}:o?function(e){return t.from(e,"binary").toString("base64")}:h,m=o?function(e){return t.from(e).toString("base64")}:function(e){for(var t=[],r=0,n=e.length;r>>6)+p(128|63&t):p(224|t>>>12&15)+p(128|t>>>6&63)+p(128|63&t);var t=65536+1024*(e.charCodeAt(0)-55296)+(e.charCodeAt(1)-56320);return p(240|t>>>18&7)+p(128|t>>>12&63)+p(128|t>>>6&63)+p(128|63&t)},$=/[\uD800-\uDBFF][\uDC00-\uDFFFF]|[^\x00-\x7F]/g,w=function(e){return e.replace($,y)},E=o?function(e){return t.from(e,"utf8").toString("base64")}:i?function(e){return m(i.encode(e))}:function(e){return _(w(e))},S=function(e,t){return void 0===t&&(t=!1),t?f(E(e)):E(e)},A=function(e){return S(e,!0)},O=/[\xC0-\xDF][\x80-\xBF]|[\xE0-\xEF][\x80-\xBF]{2}|[\xF0-\xF7][\x80-\xBF]{3}/g,v=function(e){switch(e.length){case 4:var t=((7&e.charCodeAt(0))<<18|(63&e.charCodeAt(1))<<12|(63&e.charCodeAt(2))<<6|63&e.charCodeAt(3))-65536;return p(55296+(t>>>10))+p(56320+(1023&t));case 3:return p((15&e.charCodeAt(0))<<12|(63&e.charCodeAt(1))<<6|63&e.charCodeAt(2));default:return p((31&e.charCodeAt(0))<<6|63&e.charCodeAt(1))}},b=function(e){return e.replace(O,v)},T=function(e){if(e=e.replace(/\s+/g,""),!c.test(e))throw new TypeError("malformed base64.");e+="==".slice(2-(3&e.length));for(var t,r,n,o="",s=0;s>16&255):64===n?p(t>>16&255,t>>8&255):p(t>>16&255,t>>8&255,255&t);return o},R=r?function(e){return atob(d(e))}:o?function(e){return t.from(e,"base64").toString("binary")}:T,C=o?function(e){return l(t.from(e,"base64"))}:function(e){return l(R(e),(function(e){return e.charCodeAt(0)}))},N=function(e){return C(L(e))},I=o?function(e){return t.from(e,"base64").toString("utf8")}:s?function(e){return s.decode(C(e))}:function(e){return b(R(e))},L=function(e){return d(e.replace(/[-_]/g,(function(e){return"-"==e?"+":"/"})))},P=function(e){return I(L(e))},k=function(e){return{value:e,enumerable:!1,writable:!0,configurable:!0}},x=function(){var e=function(e,t){return Object.defineProperty(String.prototype,e,k(t))};e("fromBase64",(function(){return P(this)})),e("toBase64",(function(e){return S(this,e)})),e("toBase64URI",(function(){return S(this,!0)})),e("toBase64URL",(function(){return S(this,!0)})),e("toUint8Array",(function(){return N(this)}))},U=function(){var e=function(e,t){return Object.defineProperty(Uint8Array.prototype,e,k(t))};e("toBase64",(function(e){return g(this,e)})),e("toBase64URI",(function(){return g(this,!0)})),e("toBase64URL",(function(){return g(this,!0)}))},F={version:"3.7.2",VERSION:"3.7.2",atob:R,atobPolyfill:T,btoa:_,btoaPolyfill:h,fromBase64:P,toBase64:S,encode:S,encodeURI:A,encodeURL:A,utob:w,btou:b,decode:P,isValid:function(e){if("string"!=typeof e)return!1;var t=e.replace(/\s+/g,"").replace(/={0,2}$/,"");return!/[^\s0-9a-zA-Z\+/]/.test(t)||!/[^\s0-9a-zA-Z\-_]/.test(t)},fromUint8Array:g,toUint8Array:N,extendString:x,extendUint8Array:U,extendBuiltins:function(){x(),U()},Base64:{}};return Object.keys(F).forEach((function(e){return F.Base64[e]=F[e]})),F}))}).call(this)}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},_$buffer_2({}).Buffer),_$base64_4=_$base64_4.exports;var _$logical_50={AND:function(...e){return e.reduce((e,t)=>e.map((e,r)=>t[r]&&e))},OR:function(...e){return e.reduce((e,t)=>e.map((e,r)=>t[r]||e))},NOT:function(e){return e.map(e=>!e)},FULL:function(e,t){return[...Array(e).keys()].map(()=>t)}};const{Base64:__Base64_37}=_$base64_4,{AND:AND,FULL:FULL}=_$logical_50,{getFlag:getFlag}=_$geo_48,PROXY_PREPROCESSORS=[{name:"HTML",test:e=>/^/.test(e),parse:e=>""},function(){const e=["dm1lc3M","c3NyOi8v","dHJvamFu","c3M6Ly","c3NkOi8v","c2hhZG93","aHR0c"];return{name:"Base64 Pre-processor",test:function(t){return e.some(e=>-1!==t.indexOf(e))},parse:function(e){return __Base64_37.decode(e)}}}(),{name:"Clash Pre-processor",test:function(e){return/proxies/.test(e)},parse:function(e){return _$staticJsYaml_35.safeLoad(e).proxies.map(e=>JSON.stringify(e)).join("\n")}},{name:"SSD Pre-processor",test:function(e){return 0===e.indexOf("ssd://")},parse:function(e){const t=[];let r=JSON.parse(__Base64_37.decode(e.split("ssd://")[1]));r.traffic_used,r.traffic_total,r.expiry,r.airport;let n=r.port,o=r.encryption,s=r.password,i=r.servers;for(let a=0;a{let[t,o]=e.split("=");if(t=t.trim(),o=o.trim(),-1!==n.indexOf(t)){r.type=t;const e=o.split(":");r.server=e[0],r.port=e[1]}else r[t.trim()]=o.trim()}),r}function t(){return{name:"Loon HTTP Parser",test:e=>/^.*=\s*http/i.test(e.split(",")[0])&&5===e.split(",").length&&-1===e.indexOf("username")&&-1===e.indexOf("password"),parse:e=>{const t=e.split("=")[1].split(","),r={name:e.split("=")[0].trim(),type:"http",server:t[1],port:t[2],tls:"443"===t[2]};return t[3]&&(r.username=t[3]),t[4]&&(r.password=t[4]),r.tls&&(r.sni=t["tls-name"]||r.server,r["skip-cert-verify"]=JSON.parse(t["skip-cert-verify"]||"false")),r}}}function r(e){const t={};t.name=e.split("=")[0].trim();const r=e.split(",");t.server=r[1].trim(),t.port=r[2].trim();for(let n=3;n/^ss:\/\//.test(e),parse:e=>{const t={};let r=e.split("ss://")[1];const n={name:decodeURIComponent(e.split("#")[1]),type:"ss",supported:t},o=(r=r.split("#")[0]).match(/@([^\/]*)(\/|$)/)[1],s=o.lastIndexOf(":");n.server=o.substring(0,s),n.port=o.substring(s+1);const i=__Base64_37.decode(r.split("@")[0]).split(":");if(n.cipher=i[0],n.password=i[1],-1!==r.indexOf("?plugin=")){const e=("plugin="+decodeURIComponent(r.split("?plugin=")[1].split("&")[0])).split(";"),o={};for(const t of e){const[e,r]=t.split("=");e&&(o[e]=r||!0)}switch(o.plugin){case"obfs-local":case"simple-obfs":n.plugin="obfs",n["plugin-opts"]={mode:o.obfs,host:o["obfs-host"]};break;case"v2ray-plugin":n.supported={...t,Loon:!1,Surge:!1},n.obfs="v2ray-plugin",n["plugin-opts"]={mode:"websocket",host:o["obfs-host"],path:o.path||"",tls:o.tls||!1};break;default:throw new Error("Unsupported plugin option: "+o.plugin)}}return n}},function(){const e={Surge:!1};return{name:"URI SSR Parser",test:e=>/^ssr:\/\//.test(e),parse:t=>{let r=(t=__Base64_37.decode(t.split("ssr://")[1])).indexOf(":origin");-1===r&&(r=t.indexOf(":auth_"));const n=t.substring(0,r),o=n.substring(0,n.lastIndexOf(":")),s=n.substring(n.lastIndexOf(":")+1);let i=t.substring(r+1).split("/?")[0].split(":"),a={type:"ssr",server:o,port:s,protocol:i[0],cipher:i[1],obfs:i[2],password:__Base64_37.decode(i[3]),supported:e};const u={};if((t=t.split("/?")[1].split("&")).length>1)for(const e of t){const[t,r]=e.split("=");u[t]=r.trim()}return{...a,name:u.remarks?__Base64_37.decode(u.remarks):a.server,"protocol-param":__Base64_37.decode(u.protoparam||"").replace(/\s/g,""),"obfs-param":__Base64_37.decode(u.obfsparam||"").replace(/\s/g,"")}}}}(),{name:"URI VMess Parser",test:e=>/^vmess:\/\//.test(e),parse:e=>{const t={};e=e.split("vmess://")[1];const r=__Base64_37.decode(e);if(/=\s*vmess/.test(r)){const e=r.split(",").map(e=>e.trim()),t={};for(const r of e)if(-1!==r.indexOf("=")){const[e,n]=r.split("=");t[e.trim()]=n.trim()}const n={name:e[0].split("=")[0].trim(),type:"vmess",server:e[1],port:e[2],cipher:e[3],uuid:e[4].match(/^"(.*)"$/)[1],tls:"over-tls"===t.obfs||"wss"===t.obfs};if(void 0!==t["udp-relay"]&&(n.udp=JSON.parse(t["udp-relay"])),void 0!==t["fast-open"]&&(n.udp=JSON.parse(t["fast-open"])),"ws"===t.obfs||"wss"===t.obfs){n.network="ws",n["ws-opts"].path=(t["obfs-path"]||'"/"').match(/^"(.*)"$/)[1];let e=t["obfs-header"];e&&-1!==e.indexOf("Host")&&(e=e.match(/Host:\s*([a-zA-Z0-9-.]*)/)[1]),n["ws-opts"].headers={Host:e||n.server}}return n.tls&&"false"===t['"tls-verification"']&&(n["skip-cert-verify"]=!0),n.tls&&t["obfs-host"]&&(n.sni=t["obfs-host"]),n}{const e=JSON.parse(r),n={name:e.ps,type:"vmess",server:e.add,port:e.port,cipher:"auto",uuid:e.id,alterId:e.aid||0,tls:"tls"===e.tls||!0===e.tls,supported:t};return"ws"===e.net&&(n.network="ws",n["ws-opts"]={path:e.path,headers:{Host:e.host||e.add}},n.tls&&e.host&&(n.sni=e.host)),!1===e.verify_cert&&(n["skip-cert-verify"]=!0),n}}},{name:"URI Trojan Parser",test:e=>/^trojan:\/\//.test(e),parse:e=>{e=e.split("trojan://")[1];const[t,r]=e.split("@")[1].split("?")[0].split(":"),n=decodeURIComponent(e.split("#")[1].trim());let o=e.split("?"),s=null;return o.length>1&&(o=o[1].split("#")[0].split("&"),s=new Map(o.map(e=>e.split("="))).get("sni")),{name:n||"[Trojan] "+t,type:"trojan",server:t,port:r,password:e.split("@")[0],sni:s,supported:{}}}},{name:"Clash Parser",test:e=>{try{JSON.parse(e)}catch(t){return!1}return!0},parse:e=>JSON.parse(e)},{name:"Surge SS Parser",test:e=>/^.*=\s*ss/.test(e.split(",")[0]),parse:e=>{const t=r(e),n={name:t.name,type:"ss",server:t.server,port:t.port,cipher:t["encrypt-method"],password:t.password,tfo:JSON.parse(t.tfo||"false"),udp:JSON.parse(t["udp-relay"]||"false")};return t.obfs&&(n.plugin="obfs",n["plugin-opts"]={mode:t.obfs,host:t["obfs-host"]}),n}},{name:"Surge VMess Parser",test:e=>/^.*=\s*vmess/.test(e.split(",")[0])&&-1!==e.indexOf("username"),parse:e=>{const t=r(e),n={name:t.name,type:"vmess",server:t.server,port:t.port,uuid:t.username,alterId:0,cipher:"none",tls:JSON.parse(t.tls||"false"),tfo:JSON.parse(t.tfo||"false")};if(n.tls&&(void 0!==t["skip-cert-verify"]&&(n["skip-cert-verify"]=!0===t["skip-cert-verify"]||"1"===t["skip-cert-verify"]),n.sni=t.sni||t.server),JSON.parse(t.ws||"false")){n.network="ws",n["ws-opts"]={path:t["ws-path"]};const e=t["ws-headers"].match(/(,|^|\s)*HOST:\s*(.*?)(,|$)/),r=e?e[2]:n.server;n["ws-opts"].headers={Host:r||t.server}}return n}},{name:"Surge Trojan Parser",test:e=>/^.*=\s*trojan/.test(e.split(",")[0])&&-1!==e.indexOf("sni"),parse:e=>{const t=r(e),n={name:t.name,type:"trojan",server:t.server,port:t.port,password:t.password,sni:t.sni||t.server,tfo:JSON.parse(t.tfo||"false")};return void 0!==t["skip-cert-verify"]&&(n["skip-cert-verify"]=!0===t["skip-cert-verify"]||"1"===t["skip-cert-verify"]),n}},{name:"Surge HTTP Parser",test:e=>/^.*=\s*http/.test(e.split(",")[0])&&!t().test(e),parse:e=>{const t=r(e),n={name:t.name,type:"http",server:t.server,port:t.port,tls:JSON.parse(t.tls||"false"),tfo:JSON.parse(t.tfo||"false")};return n.tls&&(void 0!==t["skip-cert-verify"]&&(n["skip-cert-verify"]=!0===t["skip-cert-verify"]||"1"===t["skip-cert-verify"]),n.sni=t.sni||t.server),t.username&&"none"!==t.username&&(n.username=t.username),t.password&&"none"!==t.password&&(n.password=t.password),n}},{name:"Loon SS Parser",test:e=>"shadowsocks"===e.split(",")[0].split("=")[1].trim().toLowerCase(),parse:e=>{const t=e.split("=")[1].split(","),r={name:e.split("=")[0].trim(),type:"ss",server:t[1],port:t[2],cipher:t[3],password:t[4].replace(/"/g,"")};return t.length>5&&(r.plugin="obfs",r["plugin-opts"]={mode:t[5],host:t[6]}),r}},{name:"Loon SSR Parser",test:e=>"shadowsocksr"===e.split(",")[0].split("=")[1].trim().toLowerCase(),parse:e=>{const t=e.split("=")[1].split(",");return{name:e.split("=")[0].trim(),type:"ssr",server:t[1],port:t[2],cipher:t[3],password:t[4].replace(/"/g,""),protocol:t[5],"protocol-param":t[6].match(/{(.*)}/)[1],supported:{Surge:!1},obfs:t[7],"obfs-param":t[8].match(/{(.*)}/)[1]}}},{name:"Loon VMess Parser",test:e=>/^.*=\s*vmess/i.test(e.split(",")[0])&&-1===e.indexOf("username"),parse:e=>{let t=e.split("=")[1].split(",");const r={name:e.split("=")[0].trim(),type:"vmess",server:t[1],port:t[2],cipher:t[3]||"none",uuid:t[4].replace(/"/g,""),alterId:0};t=t.splice(5);for(const n of t){const[e,r]=n.split(":");t[e]=r}switch(r.tls=JSON.parse(t["over-tls"]||"false"),r.tls&&(r.sni=t["tls-name"]||r.server,r["skip-cert-verify"]=JSON.parse(t["skip-cert-verify"]||"false")),t.transport){case"tcp":break;case"ws":r.network=t.transport,r["ws-opts"]={path:t.path,headers:{Host:t.host}}}return r.tls&&(r["skip-cert-verify"]=JSON.parse(t["skip-cert-verify"]||"false")),r}},{name:"Loon Trojan Parser",test:e=>/^.*=\s*trojan/i.test(e.split(",")[0])&&-1===e.indexOf("password"),parse:e=>{const t=e.split("=")[1].split(","),r={name:e.split("=")[0].trim(),type:"trojan",server:t[1],port:t[2],password:t[3].replace(/"/g,""),sni:t[1],"skip-cert-verify":JSON.parse(t["skip-cert-verify"]||"false")};if(t.length>4){const[n,o]=t[4].split(":");if("tls-name"!==n)throw new Error(`Unknown option ${n} for line: \n${e}`);r.sni=o}return r}},t(),{name:"QX SS Parser",test:e=>/^shadowsocks\s*=/.test(e.split(",")[0].trim())&&-1===e.indexOf("ssr-protocol"),parse:t=>{const r=e(t),n={name:r.tag,type:"ss",server:r.server,port:r.port,cipher:r.method,password:r.password,udp:JSON.parse(r["udp-relay"]||"false"),tfo:JSON.parse(r["fast-open"]||"false"),supported:{}};if(r.obfs)switch(n["plugin-opts"]={host:r["obfs-host"]||n.server},r.obfs){case"http":case"tls":n.plugin="obfs",n["plugin-opts"].mode=r.obfs;break;case"ws":case"wss":n["plugin-opts"]={...n["plugin-opts"],mode:"websocket",path:r["obfs-uri"]||"/",tls:"wss"===r.obfs},n["plugin-opts"].tls&&void 0!==r["tls-verification"]&&(n["plugin-opts"]["skip-cert-verify"]=r["tls-verification"]),n.plugin="v2ray-plugin",n.supported.Surge=!1,n.supported.Loon=!1}return n}},{name:"QX SSR Parser",test:e=>/^shadowsocks\s*=/.test(e.split(",")[0].trim())&&-1!==e.indexOf("ssr-protocol"),parse:t=>{const r=e(t),n={name:r.tag,type:"ssr",server:r.server,port:r.port,cipher:r.method,password:r.password,protocol:r["ssr-protocol"],obfs:"plain","protocol-param":r["ssr-protocol-param"],udp:JSON.parse(r["udp-relay"]||"false"),tfo:JSON.parse(r["fast-open"]||"false"),supported:{Surge:!1}};return r.obfs&&(n.obfs=r.obfs,n["obfs-param"]=r["obfs-host"]),n}},{name:"QX VMess Parser",test:e=>/^vmess\s*=/.test(e.split(",")[0].trim()),parse:t=>{const r=e(t),n={type:"vmess",name:r.tag,server:r.server,port:r.port,cipher:r.method||"none",uuid:r.password,alterId:0,tls:"over-tls"===r.obfs||"wss"===r.obfs,udp:JSON.parse(r["udp-relay"]||"false"),tfo:JSON.parse(r["fast-open"]||"false")};return n.tls&&(n.sni=r["obfs-host"]||r.server,n["skip-cert-verify"]=!JSON.parse(r["tls-verification"]||"true")),"ws"!==r.obfs&&"wss"!==r.obfs||(n.network="ws",n["ws-opts"]={path:r["obfs-uri"],headers:{Host:r["obfs-host"]||r.server}}),n}},{name:"QX Trojan Parser",test:e=>/^trojan\s*=/.test(e.split(",")[0].trim()),parse:t=>{const r=e(t),n={type:"trojan",name:r.tag,server:r.server,port:r.port,password:r.password,sni:r["tls-host"]||r.server,udp:JSON.parse(r["udp-relay"]||"false"),tfo:JSON.parse(r["fast-open"]||"false")};return n["skip-cert-verify"]=!JSON.parse(r["tls-verification"]||"true"),n}},{name:"QX HTTP Parser",test:e=>/^http\s*=/.test(e.split(",")[0].trim()),parse:t=>{const r=e(t),n={type:"http",name:r.tag,server:r.server,port:r.port,tls:JSON.parse(r["over-tls"]||"false"),udp:JSON.parse(r["udp-relay"]||"false"),tfo:JSON.parse(r["fast-open"]||"false")};return r.username&&"none"!==r.username&&(n.username=r.username),r.password&&"none"!==r.password&&(n.password=r.password),n.tls&&(n.sni=r["tls-host"]||n.server,n["skip-cert-verify"]=!JSON.parse(r["tls-verification"]||"true")),n}}]}(),PROXY_PROCESSORS=function(){function SetPropertyOperator({key:e,value:t}){return{name:"Set Property Operator",func:r=>r.map(r=>(r[e]=t,r))}}function FlagOperator(e=!0){return{name:"Flag Operator",func:t=>t.map(t=>{if(e){const e=getFlag(t.name);t.name=removeFlag(t.name),t.name=e+" "+t.name,t.name=t.name.replace(/\ud83c\uddf9\ud83c\uddfc/g,"\ud83c\udde8\ud83c\uddf3")}else t.name=removeFlag(t.name);return t})}}function HandleDuplicateOperator(e){const{action:t,template:r,link:n,position:o}={action:"rename",template:"0 1 2 3 4 5 6 7 8 9",link:"-",position:"back",...e};return{name:"Handle Duplicate Operator",func:e=>{if("delete"===t){const t={};return e.filter(e=>!t[e.name]&&(t[e.name]=!0,!0))}if("rename"===t){const t=r.split(" "),s={};let i=0;e.forEach(e=>{void 0===s[e.name]?s[e.name]=1:s[e.name]++,i=Math.max(s[e.name].toString().length,i)});const a={};return e.map(e=>{if(s[e.name]>1){void 0===a[e.name]&&(a[e.name]=1);let r="",s=a[e.name]++,u=0;for(;s>0;)r=t[s%10]+r,s=parseInt(s/10),u++;for(;u++{switch(e){case"asc":case"desc":return t.sort((t,r)=>(t.name>r.name?1:-1)*("desc"===e?-1:1));case"random":return shuffle(t);default:throw new Error("Unknown sort option: "+e)}}}}function RegexSortOperator(e){return{name:"Regex Sort Operator",func:t=>(e=e.map(e=>buildRegex(e)),t.sort((t,r)=>{const n=getRegexOrder(e,t.name),o=getRegexOrder(e,r.name);return n&&!o?-1:o&&!n?1:n&&o?nt.map(t=>{for(const{expr:r,now:n}of e)t.name=t.name.replace(buildRegex(r,"g"),n).trim();return t})}}function RegexDeleteOperator(e){return{name:"Regex Delete Operator",func:RegexRenameOperator(e.map(e=>({expr:e,now:""}))).func}}function ScriptOperator(script,targetPlatform,$arguments){return{name:"Script Operator",func:proxies=>{let output=proxies;return function(){const $get=(e,t)=>(0,PROXY_PROCESSORS[e])(t),$process=__ApplyProcessor_37;eval(script),output=operator(proxies,targetPlatform)}(),output}}}function UselessFilter(){return{name:"Useless Filter",func:RegexFilter({regex:["\u7f51\u5740","\u6d41\u91cf","\u65f6\u95f4","\u5e94\u6025","\u8fc7\u671f","Bandwidth","expire"],keep:!1}).func}}function RegionFilter(e){const t={HK:"\ud83c\udded\ud83c\uddf0",TW:"\ud83c\uddf9\ud83c\uddfc",US:"\ud83c\uddfa\ud83c\uddf8",SG:"\ud83c\uddf8\ud83c\uddec",JP:"\ud83c\uddef\ud83c\uddf5",UK:"\ud83c\uddec\ud83c\udde7"};return{name:"Region Filter",func:r=>r.map(r=>{const n=getFlag(r.name);return e.some(e=>t[e]===n)})}}function RegexFilter({regex:e=[],keep:t=!0}){return{name:"Regex Filter",func:r=>r.map(r=>{const n=e.some(e=>buildRegex(e).test(r.name));return t?n:!n})}}function buildRegex(e,...t){return t=t.join(""),e.startsWith("(?i)")?(e=e.substr(4),new RegExp(e,"i"+t)):new RegExp(e,t)}function TypeFilter(e){return{name:"Type Filter",func:t=>t.map(t=>e.some(e=>t.type===e))}}function ScriptFilter(script,targetPlatform,$arguments){return{name:"Script Filter",func:proxies=>{let output=FULL(proxies.length,!0);return function(){eval(script),output=filter(proxies,targetPlatform)}(),output}}}return{"Useless Filter":UselessFilter,"Region Filter":RegionFilter,"Regex Filter":RegexFilter,"Type Filter":TypeFilter,"Script Filter":ScriptFilter,"Set Property Operator":SetPropertyOperator,"Flag Operator":FlagOperator,"Sort Operator":SortOperator,"Regex Sort Operator":RegexSortOperator,"Regex Rename Operator":RegexRenameOperator,"Regex Delete Operator":RegexDeleteOperator,"Script Operator":ScriptOperator,"Handle Duplicate Operator":HandleDuplicateOperator}}(),PROXY_PRODUCERS={QX:{produce:e=>{let t,r;switch(e.type){case"ss":if(t="","obfs"===e.plugin){const{host:r,mode:n}=e["plugin-opts"];t=`,obfs=${n}${r?",obfs-host="+r:""}`}if("v2ray-plugin"===e.plugin){const{tls:r,host:n,path:o}=e["plugin-opts"];t=`,obfs=${r?"wss":"ws"}${n?",obfs-host="+n:""}${o?",obfs-uri="+o:""}`}return`shadowsocks=${e.server}:${e.port},method=${e.cipher},password=${e.password}${t}${e.tfo?",fast-open=true":",fast-open=false"}${e.udp?",udp-relay=true":",udp-relay=false"},tag=${e.name}`;case"ssr":return`shadowsocks=${e.server}:${e.port},method=${e.cipher},password=${e.password},ssr-protocol=${e.protocol}${e["protocol-param"]?",ssr-protocol-param="+e["protocol-param"]:""}${e.obfs?",obfs="+e.obfs:""}${e["obfs-param"]?",obfs-host="+e["obfs-param"]:""},fast-open=${e.tfo||!1}${e.udp?",udp-relay=true":",udp-relay=false"},tag=${e.name}`;case"vmess":t="","ws"===e.network?t=e.tls?`,obfs=wss${e.sni?",obfs-host="+e.sni:""}${e["ws-opts"].path?",obfs-uri="+e["ws-opts"].path:""},tls-verification=${e["skip-cert-verify"]?"false":"true"}`:`,obfs=ws${e["ws-opts"].headers.Host?",obfs-host="+e["ws-opts"].headers.Host:""}${e["ws-opts"].path?",obfs-uri="+e["ws-opts"].path:""}`:e.tls&&(t=`,obfs=over-tls${e.sni?",obfs-host="+e.sni:""},tls-verification=${e["skip-cert-verify"]?"false":"true"}`);let n=`vmess=${e.server}:${e.port},method=${"auto"===e.cipher?"none":e.cipher},password=${e.uuid}${t},fast-open=${e.tfo||!1}${e.udp?",udp-relay=true":",udp-relay=false"}`;return 0===e.alterId&&(e["vmess-aead"]=!0),void 0!==e["vmess-aead"]&&(n+=",aead="+e["vmess-aead"]),n+=",tag="+e.name;case"trojan":return`trojan=${e.server}:${e.port},password=${e.password}${e.sni?",tls-host="+e.sni:""},over-tls=true,tls-verification=${e["skip-cert-verify"]?"false":"true"},fast-open=${e.tfo||!1}${e.udp?",udp-relay=true":",udp-relay=false"},tag=${e.name}`;case"http":return r="",e.tls&&(r=`,over-tls=true,tls-verification=${e["skip-cert-verify"]?"false":"true"}${e.sni?",tls-host="+e.sni:""}`),`http=${e.server}:${e.port},username=${e.username},password=${e.password}${r},fast-open=${e.tfo||!1},tag=${e.name}`}throw new Error("Platform QX does not support proxy type: "+e.type)}},Surge:{produce:e=>{let t,r,n="";switch(e.type){case"ss":if(t="",e.plugin){const{host:r,mode:n}=e["plugin-opts"];if("obfs"!==e.plugin)throw new Error("Platform Surge does not support obfs option: "+e.obfs);t=`,obfs=${n}${r?",obfs-host="+r:""}`}n=`${e.name}=ss,${e.server}, ${e.port},encrypt-method=${e.cipher},password=${e.password}${t},tfo=${e.tfo||"false"},udp-relay=${e.udp||"false"}`;break;case"vmess":if(r="",n=`${e.name}=vmess,${e.server},${e.port},username=${e.uuid},tls=${e.tls||"false"},tfo=${e.tfo||"false"}`,0===e.alterId&&(e["vmess-aead"]=!0),void 0!==e["vmess-aead"]&&(n+=",vmess-aead="+e["vmess-aead"]),"ws"===e.network){const t=e["ws-opts"].path||"/",r=Object.entries(e["ws-opts"].headers).map(([e,t])=>`${e}:"${t}"`).join("|");n+=`,ws=true${t?",ws-path="+t:""}${r?",ws-headers="+r:""}`}e.tls&&(n+=void 0!==e["skip-cert-verify"]?",skip-cert-verify="+e["skip-cert-verify"]:"",n+=e.sni?",sni="+e.sni:"");break;case"trojan":n=`${e.name}=trojan,${e.server},${e.port},password=${e.password}${void 0!==e["skip-cert-verify"]?",skip-cert-verify="+e["skip-cert-verify"]:""}${e.sni?",sni="+e.sni:""},tfo=${e.tfo||"false"},udp-relay=${e.udp||"false"}`;break;case"http":r=", tls=false",e.tls&&(r=`,tls=true,skip-cert-verify=${e["skip-cert-verify"]},sni=${e.sni}`),n=`${e.name}=http, ${e.server}, ${e.port}${e.username?",username="+e.username:""}${e.password?",password="+e.password:""}${r},tfo=${e.tfo||"false"}`;break;default:throw new Error("Platform Surge does not support proxy type: "+e.type)}return n+(void 0!==e["surge-hybrid"]?",hybrid="+e["surge-hybrid"]:"")}},Loon:{produce:e=>{let t="",r="",n="",o="";switch(void 0!==e.udp&&(n=e.udp?",udp=true":",udp=false"),o=",fast-open="+(e.tfo||!1),e.type){case"ss":if(t=",,",e.plugin){if("obfs"!==e.plugin)throw new Error("Platform Loon does not support obfs option: "+e.obfs);{const{mode:r,host:n}=e["plugin-opts"];t=`,${r},${n||""}`}}return`${e.name}=shadowsocks,${e.server},${e.port},${e.cipher},"${e.password}"${t}${n}${o}`;case"ssr":return`${e.name}=shadowsocksr,${e.server},${e.port},${e.cipher},"${e.password}",${e.protocol},{${e["protocol-param"]||""}},${e.obfs},{${e["obfs-param"]||""}}${n}${o}`;case"vmess":t="",t="ws"===e.network?`,transport:ws,host:${e["ws-opts"].headers.Host||e.server},path:${e["ws-opts"].path||"/"}`:",transport:tcp",e.tls&&(t+=`${e.sni?",tls-name:"+e.sni:""},skip-cert-verify:${e["skip-cert-verify"]||"false"}`);let s=`${e.name}=vmess,${e.server},${e.port},${"auto"===e.cipher?"none":e.cipher},"${e.uuid}",over-tls:${e.tls||"false"}${t}`;return 0===e.alterId&&(e["vmess-aead"]=!0),void 0!==e["vmess-aead"]&&(s+=",vmess-aead="+e["vmess-aead"]),s;case"trojan":return`${e.name}=trojan,${e.server},${e.port},"${e.password}"${e.sni?",tls-name:"+e.sni:""},skip-cert-verify:${e["skip-cert-verify"]||"false"}${n}`;case"http":r="";const i=`${e.name}=${e.tls?"http":"https"},${e.server},${e.port},${e.username||""},${e.password||""}`;return e.tls?i+(r=`${e.sni?",tls-name:"+e.sni:""},skip-cert-verify:${e["skip-cert-verify"]}`):i}throw new Error("Platform Loon does not support proxy type: "+e.type)}},Clash:{type:"ALL",produce:e=>"proxies:\n"+e.map(e=>(delete e.supported," - "+JSON.stringify(e)+"\n")).join("")},URI:{type:"SINGLE",produce:e=>{let t="";switch(e.type){case"ss":const r=`${e.cipher}:${e.password}`;if(t=`ss://${__Base64_37.encode(r)}@${e.server}:${e.port}/`,e.plugin){t+="?plugin=";const r=e["plugin-opts"];switch(e.plugin){case"obfs":t+=encodeURIComponent(`simple-obfs;obfs=${r.mode}${r.host?";obfs-host="+r.host:""}`);break;case"v2ray-plugin":t+=encodeURIComponent(`v2ray-plugin;obfs=${r.mode}${r.host?";obfs-host"+r.host:""}${r.tls?";tls":""}`);break;default:throw new Error("Unsupported plugin option: "+e.plugin)}}t+="#"+encodeURIComponent(e.name);break;case"ssr":t=`${e.server}:${e.port}:${e.protocol}:${e.cipher}:${e.obfs}:${__Base64_37.encode(e.password)}/`,t+=`?remarks=${__Base64_37.encode(e.name)}${e["obfs-param"]?"&obfsparam="+__Base64_37.encode(e["obfs-param"]):""}${e["protocol-param"]?"&protocolparam="+__Base64_37.encode(e["protocol-param"]):""}`,t="ssr://"+__Base64_37.encode(t);break;case"vmess":t={ps:e.name,add:e.server,port:e.port,id:e.uuid,type:"",aid:0,net:e.network||"tcp",tls:e.tls?"tls":""},"ws"===e.network&&(t.path=e["ws-opts"].path||"/",t.host=e["ws-opts"].headers.Host||e.server),t="vmess://"+__Base64_37.encode(JSON.stringify(t));break;case"trojan":t=`trojan://${e.password}@${e.server}:${e.port}#${encodeURIComponent(e.name)}`;break;default:throw new Error("Cannot handle proxy type: "+e.type)}return t}},JSON:{type:"ALL",produce:e=>JSON.stringify(e,null,2)}},ProxyUtils=function(){function e(e,t){let r;try{r=e.test(t)}catch(n){r=!1}return r}return{parse:function(t){const r=(t=function(e){for(const r of PROXY_PREPROCESSORS)try{if(r.test(e))return _$$_36.info(`Pre-processor [${r.name}] activated`),r.parse(e)}catch(t){_$$_36.error(`Parser [${r.name}] failed\n Reason: ${t}`)}return e}(t)).split("\n"),n=[];let o;for(let i of r){if(0===(i=i.trim()).length)continue;let t=o&&e(o,i);if(!t)for(const r of PROXY_PARSERS)if(e(r,i)){o=r,t=!0,_$$_36.info(`Proxy parser: ${r.name} is activated`);break}if(t)try{const e=o.parse(i);e||_$$_36.error(`Parser ${o.name} return nothing for \n${i}\n`),n.push(e)}catch(s){_$$_36.error(`Failed to parse line: \n ${i}\n Reason: ${s.stack}`)}else _$$_36.error(`Failed to find a rule to parse line: \n${i}\n`)}return n},process:async function(e,t=[],r){for(const o of t){let t;const s={};if(-1!==o.type.indexOf("Script")){const{mode:e,content:r}=o.args;if("link"===e){const e=r,i=e.split("#");if(i.length>1)for(const t of i[1].split("&")){const e=t.split("=")[0],r=t.split("=")[1]||!0;s[e]=r}try{t=await _$download_46(e.split("#")[0]),_$$_36.info("Script loaded: >>>\n "+t)}catch(n){_$$_36.error(`Error when downloading remote script: ${o.args.content}.\n Reason: ${n}`);continue}}else t=r}if(!PROXY_PROCESSORS[o.type]){_$$_36.error(`Unknown operator: "${o.type}"`);continue}let i;_$$_36.info(`Applying "${o.type}" with arguments:\n >>> ${JSON.stringify(o.args,null,2)||"None"}`),e=__ApplyProcessor_37(i=-1!==o.type.indexOf("Script")?PROXY_PROCESSORS[o.type](t,r,s):PROXY_PROCESSORS[o.type](o.args),e)}return e},produce:function(e,t){const r=PROXY_PRODUCERS[t];if(!r)throw new Error(`Target platform: ${t} is not supported!`);return e=e.filter(e=>!(e.supported&&!1===e.supported[t])),_$$_36.info("Producing proxies for target: "+t),void 0===r.type||"SINGLE"===r.type?e.map(e=>{try{return r.produce(e)}catch(t){return _$$_36.error(`Cannot produce proxy: ${JSON.stringify(e,null,2)}\nReason: ${t}`),""}}).filter(e=>e.length>0).join("\n"):"ALL"===r.type?r.produce(e):void 0}}}();function __ApplyProcessor_37(e,t){return-1!==e.name.indexOf("Filter")?function(e,t){let r=FULL(t.length,!0);try{r=AND(r,e.func(t))}catch(n){console.log(`Cannot apply filter ${e.name}\n Reason: ${n}`)}return t.filter((e,t)=>r[t])}(e,t):-1!==e.name.indexOf("Operator")?function(e,t){let r=clone(t);try{const t=e.func(r);t&&(r=t)}catch(n){console.log(`Cannot apply operator ${e.name}! Reason: ${n}`)}return r}(e,t):void 0}function shuffle(e){let t,r,n=e.length;for(;0!==n;)r=Math.floor(Math.random()*n),t=e[n-=1],e[n]=e[r],e[r]=t;return e}function clone(e){return JSON.parse(JSON.stringify(e))}function removeFlag(e){return e.replace(/[\uD83C][\uDDE6-\uDDFF][\uD83C][\uDDE6-\uDDFF]/g,"").trim()}var _$proxyUtils_37={ProxyUtils:ProxyUtils,ApplyProcessor:__ApplyProcessor_37};const RULE_TYPES_MAPPING=[[/^(DOMAIN|host|HOST)$/,"DOMAIN"],[/^(DOMAIN-KEYWORD|host-keyword|HOST-KEYWORD)$/,"DOMAIN-KEYWORD"],[/^(DOMAIN-SUFFIX|host-suffix|HOST-SUFFIX)$/,"DOMAIN-SUFFIX"],[/^USER-AGENT$/i,"USER-AGENT"],[/^PROCESS-NAME$/,"PROCESS-NAME"],[/^(DEST-PORT|DST-PORT)$/,"DST-PORT"],[/^SRC-IP(-CIDR)?$/,"SRC-IP"],[/^(IN|SRC)-PORT$/,"IN-PORT"],[/^PROTOCOL$/,"PROTOCOL"],[/^IP-CIDR$/i,"IP-CIDR"],[/^(IP-CIDR6|ip6-cidr|IP6-CIDR)$/]],RULE_PREPROCESSORS=[{name:"HTML",test:e=>/^/.test(e),parse:e=>""},{name:"Clash Provider",test:e=>0===e.indexOf("payload:"),parse:e=>e.replace("payload:","").replace(/^\s*-\s*/gm,"")}],RULE_PARSERS=[{name:"Universal Rule Parser",test:()=>!0,parse:e=>{const t=e.split("\n"),r=[];for(let o of t)if(0!==(o=o.trim()).length&&!/\s*#/.test(o))try{const e=o.split(",").map(e=>e.trim());let t=e[0],n=!1;for(const o of RULE_TYPES_MAPPING)if(o[0].test(t)){n=!0;const t={type:o[1],content:e[1]};"IP-CIDR"!==t.type&&"IP-CIDR6"!==t.type||(t.options=e.slice(2)),r.push(t)}if(!n)throw new Error("Invalid rule type: "+t)}catch(n){console.error(`Failed to parse line: ${o}\n Reason: ${n}`)}return r}}],RULE_PROCESSORS={"Regex Filter":function({regex:e=[],keep:t=!0}){return{name:"Regex Filter",func:r=>r.map(r=>{const n=e.some(e=>(e=new RegExp(e)).test(r));return t?n:!n})}},"Remove Duplicate Filter":function(){return{name:"Remove Duplicate Filter",func:e=>{const t=new Set,r=[];return e.forEach(e=>{const n=e.options||[];n.sort();const o=`${e.type},${e.content},${JSON.stringify(n)}`;t.has(o)||(r.push(e),t.add(o))}),r}}},"Type Filter":function(e){return{name:"Type Filter",func:t=>t.map(t=>e.some(e=>t.type===e))}},"Regex Replace Operator":function(e){return{name:"Regex Rename Operator",func:t=>t.map(t=>{for(const{expr:r,now:n}of e)t.content=t.content.replace(new RegExp(r,"g"),n).trim();return t})}}},RULE_PRODUCERS={QX:{type:"SINGLE",func:e=>-1!==["URL-REGEX","DEST-PORT","SRC-IP","IN-PORT","PROTOCOL"].indexOf(e.type)?null:`${{"DOMAIN-KEYWORD":"HOST-KEYWORD","DOMAIN-SUFFIX":"HOST-SUFFIX",DOMAIN:"HOST","IP-CIDR6":"IP6-CIDR"}[e.type]||e.type},${e.content},SUB-STORE`},Surge:{type:"SINGLE",func:e=>{let t=`${e.type},${e.content}`;return"IP-CIDR"!==e.type&&"IP-CIDR6"!==e.type||(t+=e.options?","+e.options[0]:""),t}},Loon:{type:"SINGLE",func:e=>-1!==["DEST-PORT","SRC-IP","IN-PORT","PROTOCOL"].indexOf(e.type)?null:(e=>{let t=`${e.type},${e.content}`;return"IP-CIDR"!==e.type&&"IP-CIDR6"!==e.type||(t+=e.options?","+e.options[0]:""),t})(e)},Clash:{type:"ALL",func:e=>{const t={"DEST-PORT":"DST-PORT","SRC-IP":"SRC-IP-CIDR","IN-PORT":"SRC-PORT"},r={payload:e.map(e=>{let r=`${t[e.type]||e.type},${e.content}`;return"IP-CIDR"!==e.type&&"IP-CIDR6"!==e.type||(r+=e.options?","+e.options[0]:""),r})};return YAML.stringify(r)}}},RuleUtils={parse:function(e){e=function(e){for(const r of RULE_PREPROCESSORS)try{if(r.test(e))return _$$_36.info(`Pre-processor [${r.name}] activated`),r.parse(e)}catch(t){_$$_36.error(`Parser [${r.name}] failed\n Reason: ${t}`)}return e}(e);for(const r of RULE_PARSERS){let n;try{n=r.test(e)}catch(t){n=!1}if(n)return _$$_36.info(`Rule parser [${r.name}] is activated!`),r.parse(e)}},process:async function(e,t){for(const r of t){if(!RULE_PROCESSORS[r.type]){console.error(`Unknown operator: ${r.type}!`);continue}const t=RULE_PROCESSORS[r.type](r.args);_$$_36.info(`Applying "${r.type}" with arguments: \n >>> ${JSON.stringify(r.args)||"None"}`),e=ApplyProcessor(t,e)}return e},produce:function(e,t){const r=RULE_PRODUCERS[t];if(!r)throw new Error(`Target platform: ${t} is not supported!`);return void 0===r.type||"SINGLE"===r.type?e.map(e=>{try{return r.func(e)}catch(t){return console.log(`ERROR: cannot produce rule: ${JSON.stringify(e)}\nReason: ${t}`),""}}).filter(e=>e.length>0).join("\n"):"ALL"===r.type?r.func(e):void 0}};var _$ruleUtils_38={RuleUtils:RuleUtils};const{ENV:__ENV_42}=_$openApi_51,{IP_API:IP_API}=_$geo_48,{SETTINGS_KEY:__SETTINGS_KEY_42,GIST_BACKUP_KEY:GIST_BACKUP_KEY,GIST_BACKUP_FILE_NAME:GIST_BACKUP_FILE_NAME}=_$constants_41;function getEnv(e,t){const{isNode:r,isQX:n,isLoon:o,isSurge:s}=__ENV_42();let i="Node";r&&(i="Node"),n&&(i="QX"),o&&(i="Loon"),s&&(i="Surge"),t.json({backend:i})}async function gistBackup(e,t){const{action:r}=e.query,{gistToken:n}=_$$_36.read(__SETTINGS_KEY_42);if(n){const e=new _$gist_49({token:n,key:GIST_BACKUP_KEY});try{let n;switch(r){case"upload":const t=_$$_36.read(__SETTINGS_KEY_42);t.syncTime=(new Date).getTime(),_$$_36.write(t,__SETTINGS_KEY_42),n=_$$_36.read("#sub-store"),_$$_36.env.isNode&&(n=JSON.stringify(_$$_36.cache,null," ")),_$$_36.info("\u4e0a\u4f20\u5907\u4efd\u4e2d..."),await e.upload({[GIST_BACKUP_FILE_NAME]:{content:n}});break;case"download":_$$_36.info("\u8fd8\u539f\u5907\u4efd\u4e2d..."),n=await e.download(GIST_BACKUP_FILE_NAME),_$$_36.write(n,"#sub-store"),_$$_36.env.isNode&&(n=JSON.parse(n),Object.keys(n).forEach(e=>{_$$_36.write(n[e],e)}))}t.json({status:"success"})}catch(o){const e=`${"upload"===r?"\u4e0a\u4f20":"\u4e0b\u8f7d"}\u5907\u4efd\u5931\u8d25\uff01${o}`;_$$_36.error(e),t.status(500).json({status:"failed",message:e})}}else t.status(500).json({status:"failed",message:"\u672a\u627e\u5230Gist\u5907\u4efdToken!"})}var _$facade_42=function(){const e=_$express_47({})();_$collections_40({}).register(e),_$subscriptions_44({}).register(e),_$settings_43({}).register(e),_$artifacts_39({}).register(e),e.get("/api/utils/IP_API/:server",IP_API),e.get("/api/utils/env",getEnv),e.get("/api/utils/backup",gistBackup),e.get("/",async(e,t)=>{t.set("location","https://sub-store.vercel.app/").status(302).end()}),__ENV_42().isQX&&e.options("/",async(e,t)=>{t.status(200).end()}),e.all("/",(e,t)=>{t.send("Hello from sub-store, made with \u2764\ufe0f by Peng-YM")}),e.start()},_$main_45={};console.log("\n\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\n \ud835\udc7a\ud835\udc96\ud835\udc83-\ud835\udc7a\ud835\udc95\ud835\udc90\ud835\udc93\ud835\udc86 \xa9 \ud835\udc77\ud835\udc86\ud835\udc8f\ud835\udc88-\ud835\udc80\ud835\udc74\n\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\n"),_$facade_42()}(); \ No newline at end of file +!function(){var createModuleFactory=function(e){var t;return function(r){return t||e(t={exports:{},parent:r},t.exports),t.exports}},_$settings_43=createModuleFactory((function(e,t){const{SETTINGS_KEY:r}=_$constants_41;function n(e,t){const n=_$$_36.read(r);t.json(n)}function o(e,t){const n=e.body,o=_$$_36.read(r);_$$_36.write({...o,...n},r),t.json({status:"success"})}e.exports={register:function(e){_$$_36.read(r)||_$$_36.write({},r),e.route("/api/settings").get(n).patch(o)}}})),_$collections_40=createModuleFactory((function(e,t){const{SUBS_KEY:r,COLLECTIONS_KEY:n}=_$constants_41,{getPlatformFromHeaders:o,getFlowHeaders:s}=_$subscriptions_44({}),{produceArtifact:i}=_$artifacts_39({});async function a(e,t){const{name:a}=e.params,{raw:u}=e.query||"false",c=e.query.target||o(e.headers)||"JSON",p=_$$_36.read(n)[a];_$$_36.info("\u6b63\u5728\u4e0b\u8f7d\u7ec4\u5408\u8ba2\u9605\uff1a"+a);const l=_$$_36.read(r),f=p.subscriptions;if(f.length>0){const e=l[f[0]],r=await s(e.url);r&&t.set("subscription-userinfo",r)}if(p)try{const e=await i({type:"collection",item:p,platform:c,noProcessor:u});"JSON"===c?t.set("Content-Type","application/json;charset=utf-8").send(e):t.send(e)}catch(d){_$$_36.notify("\ud83c\udf0d \u300e \ud835\udc7a\ud835\udc96\ud835\udc83-\ud835\udc7a\ud835\udc95\ud835\udc90\ud835\udc93\ud835\udc86 \u300f \u4e0b\u8f7d\u7ec4\u5408\u8ba2\u9605\u5931\u8d25",`\u274c \u4e0b\u8f7d\u7ec4\u5408\u8ba2\u9605\u9519\u8bef\uff1a${a}\uff01`,"\ud83e\udd14 \u539f\u56e0\uff1a"+d),t.status(500).json({status:"failed",message:d})}else _$$_36.notify("\ud83c\udf0d \u300e \ud835\udc7a\ud835\udc96\ud835\udc83-\ud835\udc7a\ud835\udc95\ud835\udc90\ud835\udc93\ud835\udc86 \u300f \u4e0b\u8f7d\u7ec4\u5408\u8ba2\u9605\u5931\u8d25",`\u274c \u672a\u627e\u5230\u7ec4\u5408\u8ba2\u9605\uff1a${a}\uff01`),t.status(404).json({status:"failed"})}function u(e,t){const r=e.body;_$$_36.info("\u6b63\u5728\u521b\u5efa\u7ec4\u5408\u8ba2\u9605\uff1a"+r.name);const o=_$$_36.read(n);o[r.name]&&t.status(500).json({status:"failed",message:`\u8ba2\u9605\u96c6${r.name}\u5df2\u5b58\u5728\uff01`}),/^[\w-_]*$/.test(r.name)?(o[r.name]=r,_$$_36.write(o,n),t.status(201).json({status:"success",data:r})):t.status(500).json({status:"failed",message:`\u8ba2\u9605\u96c6\u540d\u79f0 ${r.name} \u4e2d\u542b\u6709\u975e\u6cd5\u5b57\u7b26\uff01\u540d\u79f0\u4e2d\u53ea\u80fd\u5305\u542b\u82f1\u6587\u5b57\u6bcd\u3001\u6570\u5b57\u3001\u4e0b\u5212\u7ebf\u3001\u6a2a\u6760\u3002`})}function c(e,t){const{name:r}=e.params,o=_$$_36.read(n)[r];o?t.json({status:"success",data:o}):t.status(404).json({status:"failed",message:`\u672a\u627e\u5230\u8ba2\u9605\u96c6\uff1a${r}!`})}function p(e,t){const{name:r}=e.params;let o=e.body;const s=_$$_36.read(n);if(s[r]){const e={...s[r],...o};_$$_36.info(`\u6b63\u5728\u66f4\u65b0\u7ec4\u5408\u8ba2\u9605\uff1a${r}...`),delete s[r],s[o.name||r]=e,_$$_36.write(s,n),t.json({status:"success",data:e})}else t.status(500).json({status:"failed",message:`\u8ba2\u9605\u96c6${r}\u4e0d\u5b58\u5728\uff0c\u65e0\u6cd5\u66f4\u65b0\uff01`})}function l(e,t){const{name:r}=e.params;_$$_36.info("\u6b63\u5728\u5220\u9664\u7ec4\u5408\u8ba2\u9605\uff1a"+r);let o=_$$_36.read(n);delete o[r],_$$_36.write(o,n),t.json({status:"success"})}function f(e,t){const r=_$$_36.read(n);t.json({status:"success",data:r})}e.exports={register:function(e){_$$_36.read(n)||_$$_36.write({},n),e.get("/download/collection/:name",a),e.route("/api/collection/:name").get(c).patch(p).delete(l),e.route("/api/collections").get(f).post(u)}}})),_$subscriptions_44=createModuleFactory((function(e,t){const{produceArtifact:r}=_$artifacts_39({}),{SUBS_KEY:n,COLLECTIONS_KEY:o}=_$constants_41;async function s(e,t){const{name:o}=e.params,{raw:s}=e.query||"false",i=e.query.target||f(e.headers)||"JSON";_$$_36.info("\u6b63\u5728\u4e0b\u8f7d\u8ba2\u9605\uff1a"+o);const a=_$$_36.read(n)[o];if(a)try{const e=await r({type:"subscription",item:a,platform:i,noProcessor:s}),n=await l(a.url);n&&t.set("subscription-userinfo",n),"JSON"===i?t.set("Content-Type","application/json;charset=utf-8").send(e):t.send(e)}catch(u){_$$_36.notify("\ud83c\udf0d \u300e \ud835\udc7a\ud835\udc96\ud835\udc83-\ud835\udc7a\ud835\udc95\ud835\udc90\ud835\udc93\ud835\udc86 \u300f \u4e0b\u8f7d\u8ba2\u9605\u5931\u8d25",`\u274c \u65e0\u6cd5\u4e0b\u8f7d\u8ba2\u9605\uff1a${o}\uff01`,"\ud83e\udd14 \u539f\u56e0\uff1a"+JSON.stringify(u)),_$$_36.error(JSON.stringify(u)),t.status(500).json({status:"failed",message:u})}else _$$_36.notify("\ud83c\udf0d \u300e \ud835\udc7a\ud835\udc96\ud835\udc83-\ud835\udc7a\ud835\udc95\ud835\udc90\ud835\udc93\ud835\udc86 \u300f \u4e0b\u8f7d\u8ba2\u9605\u5931\u8d25",`\u274c \u672a\u627e\u5230\u8ba2\u9605\uff1a${o}\uff01`),t.status(404).json({status:"failed"})}function i(e,t){const r=e.body,o=_$$_36.read(n);_$$_36.info("\u6b63\u5728\u521b\u5efa\u8ba2\u9605\uff1a "+r.name),o[r.name]&&t.status(500).json({status:"failed",message:`\u8ba2\u9605${r.name}\u5df2\u5b58\u5728\uff01`}),/^[\w-_]*$/.test(r.name)?(o[r.name]=r,_$$_36.write(o,n),t.status(201).json({status:"success",data:r})):t.status(500).json({status:"failed",message:`\u8ba2\u9605\u540d\u79f0 ${r.name} \u4e2d\u542b\u6709\u975e\u6cd5\u5b57\u7b26\uff01\u540d\u79f0\u4e2d\u53ea\u80fd\u5305\u542b\u82f1\u6587\u5b57\u6bcd\u3001\u6570\u5b57\u3001\u4e0b\u5212\u7ebf\u3001\u6a2a\u6760\u3002`})}function a(e,t){const{name:r}=e.params,o=_$$_36.read(n)[r];o?t.json({status:"success",data:o}):t.status(404).json({status:"failed",message:`\u672a\u627e\u5230\u8ba2\u9605\uff1a${r}!`})}function u(e,t){const{name:r}=e.params;let s=e.body;const i=_$$_36.read(n);if(i[r]){const e={...i[r],...s};if(_$$_36.info("\u6b63\u5728\u66f4\u65b0\u8ba2\u9605\uff1a "+r),r!==s.name){const t=_$$_36.read(o);for(const e of Object.keys(t)){const n=t[e].subscriptions.indexOf(r);-1!==n&&(t[e].subscriptions[n]=s.name)}delete i[r],i[s.name]=e}else i[r]=e;_$$_36.write(i,n),t.json({status:"success",data:e})}else t.status(500).json({status:"failed",message:`\u8ba2\u9605${r}\u4e0d\u5b58\u5728\uff0c\u65e0\u6cd5\u66f4\u65b0\uff01`})}function c(e,t){const{name:r}=e.params;_$$_36.info(`\u5220\u9664\u8ba2\u9605\uff1a${r}...`);let s=_$$_36.read(n);delete s[r],_$$_36.write(s,n);let i=_$$_36.read(o);for(const n of Object.keys(i))i[n].subscriptions=i[n].subscriptions.filter(e=>e!==r);_$$_36.write(i,o),t.json({status:"success"})}function p(e,t){const r=_$$_36.read(n);t.json({status:"success",data:r})}async function l(e){const{headers:t}=await _$$_36.http.get({url:e,headers:{"User-Agent":"Quantumult/1.0.13 (iPhone10,3; iOS 14.0)"}});return t[Object.keys(t).filter(e=>/SUBSCRIPTION-USERINFO/i.test(e))[0]]}function f(e){const t=Object.keys(e);let r="";for(let n of t)if(/USER-AGENT/i.test(n)){r=e[n];break}return-1!==r.indexOf("Quantumult%20X")?"QX":-1!==r.indexOf("Surge")?"Surge":-1!==r.indexOf("Decar")||-1!==r.indexOf("Loon")?"Loon":-1!==r.indexOf("Stash")||-1!==r.indexOf("Shadowrocket")?"Clash":null}e.exports={register:function(e){_$$_36.read(n)||_$$_36.write({},n),e.get("/download/:name",s),e.route("/api/sub/:name").get(a).patch(u).delete(c),e.route("/api/subs").get(p).post(i)},getPlatformFromHeaders:f,getFlowHeaders:l}})),_$artifacts_39=createModuleFactory((function(e,t){const{ProxyUtils:r}=_$proxyUtils_37,{RuleUtils:n}=_$ruleUtils_38,{SUBS_KEY:o,ARTIFACTS_KEY:s,ARTIFACT_REPOSITORY_KEY:i,COLLECTIONS_KEY:a,RULES_KEY:u,SETTINGS_KEY:c}=_$constants_41;async function p(e,t){const r=e.params.name,n=e.query.action,i=_$$_36.read(s),c=i[r];if(c)if(n){let e;switch(c.type){case"subscription":e=_$$_36.read(o)[c.source];break;case"collection":e=_$$_36.read(a)[c.source];break;case"rule":e=_$$_36.read(u)[c.source]}const r=await g({type:c.type,item:e,platform:c.platform});if("preview"===n)t.send(r);else if("sync"===n){_$$_36.info(`\u6b63\u5728\u4e0a\u4f20\u914d\u7f6e\uff1a${c.name}\n>>>`),console.log(JSON.stringify(c,null,2));try{const e=await m({[c.name]:{content:r}});c.updated=(new Date).getTime();const n=JSON.parse(e.body);c.url=n.files[c.name].raw_url.replace(/\/raw\/[^\/]*\/(.*)/,"/raw/$1"),_$$_36.write(i,s),t.json({status:"success"})}catch(p){t.status(500).json({status:"failed",message:p})}}}else t.json({status:"success",data:c});else t.status(404).json({status:"failed",message:"\u672a\u627e\u5230\u5bf9\u5e94\u7684\u914d\u7f6e\uff01"})}function l(e,t){const r=e.body;_$$_36.info("\u6b63\u5728\u521b\u5efa\u8fdc\u7a0b\u914d\u7f6e\uff1a"+r.name);const n=_$$_36.read(s);n[r.name]?t.status(500).json({status:"failed",message:`\u8fdc\u7a0b\u914d\u7f6e${r.name}\u5df2\u5b58\u5728\uff01`}):/^[\w-_.]*$/.test(r.name)?(n[r.name]=r,_$$_36.write(n,s),t.status(201).json({status:"success",data:r})):t.status(500).json({status:"failed",message:`\u8fdc\u7a0b\u914d\u7f6e\u540d\u79f0 ${r.name} \u4e2d\u542b\u6709\u975e\u6cd5\u5b57\u7b26\uff01\u540d\u79f0\u4e2d\u53ea\u80fd\u5305\u542b\u82f1\u6587\u5b57\u6bcd\u3001\u6570\u5b57\u3001\u4e0b\u5212\u7ebf\u3001\u6a2a\u6760\u3002`})}function f(e,t){const r=_$$_36.read(s),n=e.params.name,o=r[n];if(o){_$$_36.info("\u6b63\u5728\u66f4\u65b0\u8fdc\u7a0b\u914d\u7f6e\uff1a"+o.name);const i=e.body;if(void 0===i.name||/^[\w-_.]*$/.test(i.name)){const e={...o,...i};r[e.name]=e,e.name!==n&&delete r[n],_$$_36.write(r,s),t.json({status:"success",data:e})}else t.status(500).json({status:"failed",message:`\u8fdc\u7a0b\u914d\u7f6e\u540d\u79f0 ${i.name} \u4e2d\u542b\u6709\u975e\u6cd5\u5b57\u7b26\uff01\u540d\u79f0\u4e2d\u53ea\u80fd\u5305\u542b\u82f1\u6587\u5b57\u6bcd\u3001\u6570\u5b57\u3001\u4e0b\u5212\u7ebf\u3001\u6a2a\u6760\u3002`})}else t.status(404).json({status:"failed",message:"\u672a\u627e\u5230\u5bf9\u5e94\u7684\u8fdc\u7a0b\u914d\u7f6e\uff01"})}async function d(e,t){_$$_36.info("\u5f00\u59cb\u540c\u6b65\u6240\u6709\u8fdc\u7a0b\u914d\u7f6e...");const r=_$$_36.read(s),n={};try{await Promise.all(Object.values(r).map(async e=>{if(e.sync){let t;switch(_$$_36.info(`\u6b63\u5728\u540c\u6b65\u4e91\u914d\u7f6e\uff1a${e.name}...`),e.type){case"subscription":t=_$$_36.read(o)[e.source];break;case"collection":t=_$$_36.read(a)[e.source];break;case"rule":t=_$$_36.read(u)[e.source]}const r=await g({type:e.type,item:t,platform:e.platform});n[e.name]={content:r}}}));const e=await m(n),i=JSON.parse(e.body);for(const t of Object.values(r))t.updated=(new Date).getTime(),t.url=i.files[t.name].raw_url.replace(/\/raw\/[^\/]*\/(.*)/,"/raw/$1");_$$_36.write(r,s),_$$_36.info("\u5168\u90e8\u8ba2\u9605\u540c\u6b65\u6210\u529f\uff01"),t.status(200).end()}catch(i){t.status(500).json({error:i}),_$$_36.info("\u540c\u6b65\u8ba2\u9605\u5931\u8d25\uff0c\u539f\u56e0\uff1a"+i)}}async function h(e,t){const r=e.params.name;_$$_36.info("\u6b63\u5728\u5220\u9664\u8fdc\u7a0b\u914d\u7f6e\uff1a"+r);const n=_$$_36.read(s);try{const e=n[r];if(!e)throw new Error(`\u8fdc\u7a0b\u914d\u7f6e\uff1a${r}\u4e0d\u5b58\u5728\uff01`);e.updated&&await m({filename:r,content:""}),delete n[r],_$$_36.write(n,s),t.json({status:"success"})}catch(o){delete n[r],_$$_36.write(n,s),t.status(500).json({status:"failed",message:`\u65e0\u6cd5\u5220\u9664\u8fdc\u7a0b\u914d\u7f6e\uff1a${r}, \u539f\u56e0\uff1a${o}`})}}function _(e,t){const r=_$$_36.read(s);t.json({status:"success",data:r})}async function m(e){const{gistToken:t}=_$$_36.read(c);return t?new _$gist_49({token:t,key:i}).upload(e):Promise.reject("\u672a\u8bbe\u7f6eGist Token\uff01")}async function g({type:e,item:t,platform:s,noProcessor:i}={platform:"JSON",noProcessor:!1}){if("subscription"===e){const e=t,n=await _$download_46(e.url,e.ua);let o=r.parse(n);i||(o=await r.process(o,e.process||[],s));const a={};for(const t of o){if(a[t.name]){_$$_36.notify("\ud83c\udf0d \u300e \ud835\udc7a\ud835\udc96\ud835\udc83-\ud835\udc7a\ud835\udc95\ud835\udc90\ud835\udc93\ud835\udc86 \u300f","\u26a0\ufe0f \u8ba2\u9605\u5305\u542b\u91cd\u590d\u8282\u70b9\uff01","\u8bf7\u4ed4\u7ec6\u68c0\u6d4b\u914d\u7f6e\uff01",{"media-url":"https://cdn3.iconfinder.com/data/icons/seo-outline-1/512/25_code_program_programming_develop_bug_search_developer-512.png"});break}a[t.name]=!0}return r.produce(o,s)}if("collection"===e){const e=_$$_36.read(o),n=t,a=n.subscriptions,u={};let c=0;await Promise.all(a.map(async t=>{const n=e[t];try{_$$_36.info(`\u6b63\u5728\u5904\u7406\u5b50\u8ba2\u9605\uff1a${n.name}...`);const e=await _$download_46(n.url,n.ua);let o=r.parse(e);i||(o=await r.process(o,n.process||[],s)),u[t]=o,c++,_$$_36.info(`\u2705 \u5b50\u8ba2\u9605\uff1a${n.name}\u52a0\u8f7d\u6210\u529f\uff0c\u8fdb\u5ea6--${100*(c/a.length).toFixed(1)}% `)}catch(o){c++,_$$_36.error(`\u274c \u5904\u7406\u7ec4\u5408\u8ba2\u9605\u4e2d\u7684\u5b50\u8ba2\u9605: ${n.name}\u65f6\u51fa\u73b0\u9519\u8bef\uff1a${o}\uff0c\u8be5\u8ba2\u9605\u5df2\u88ab\u8df3\u8fc7\uff01\u8fdb\u5ea6--${100*(c/a.length).toFixed(1)}%`)}}));let p=Array.prototype.concat.apply([],a.map(e=>u[e]));if(i||(p=await r.process(p,n.process||[],s)),0===p.length)throw new Error("\u7ec4\u5408\u8ba2\u9605\u4e2d\u4e0d\u542b\u6709\u6548\u8282\u70b9\uff01");const l={};for(const t of p){if(l[t.name]){_$$_36.notify("\ud83c\udf0d \u300e \ud835\udc7a\ud835\udc96\ud835\udc83-\ud835\udc7a\ud835\udc95\ud835\udc90\ud835\udc93\ud835\udc86 \u300f","\u26a0\ufe0f \u8ba2\u9605\u5305\u542b\u91cd\u590d\u8282\u70b9\uff01","\u8bf7\u4ed4\u7ec6\u68c0\u6d4b\u914d\u7f6e\uff01",{"media-url":"https://cdn3.iconfinder.com/data/icons/seo-outline-1/512/25_code_program_programming_develop_bug_search_developer-512.png"});break}l[t.name]=!0}return r.produce(p,s)}if("rule"===e){const e=t;let r=[];for(let t=0;t2147483647)throw new RangeError('The value "'+e+'" is invalid for option "size"');var t=new Uint8Array(e);return t.__proto__=r.prototype,t}function r(e,t,r){if("number"==typeof e){if("string"==typeof t)throw new TypeError('The "string" argument must be of type string. Received type number');return s(e)}return n(e,t,r)}function n(t,n,o){if("string"==typeof t)return function(t,n){if("string"==typeof n&&""!==n||(n="utf8"),!r.isEncoding(n))throw new TypeError("Unknown encoding: "+n);var o=0|u(t,n),s=e(o),i=s.write(t,n);return i!==o&&(s=s.slice(0,i)),s}(t,n);if(ArrayBuffer.isView(t))return i(t);if(null==t)throw TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof t);if(k(t,ArrayBuffer)||t&&k(t.buffer,ArrayBuffer))return function(e,t,n){if(t<0||e.byteLength=2147483647)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+2147483647..toString(16)+" bytes");return 0|e}function u(e,t){if(r.isBuffer(e))return e.length;if(ArrayBuffer.isView(e)||k(e,ArrayBuffer))return e.byteLength;if("string"!=typeof e)throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof e);var n=e.length,o=arguments.length>2&&!0===arguments[2];if(!o&&0===n)return 0;for(var s=!1;;)switch(t){case"ascii":case"latin1":case"binary":return n;case"utf8":case"utf-8":return I(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*n;case"hex":return n>>>1;case"base64":return L(e).length;default:if(s)return o?-1:I(e).length;t=(""+t).toLowerCase(),s=!0}}function c(e,t,r){var n=e[t];e[t]=e[r],e[r]=n}function p(e,t,n,o,s){if(0===e.length)return-1;if("string"==typeof n?(o=n,n=0):n>2147483647?n=2147483647:n<-2147483648&&(n=-2147483648),x(n=+n)&&(n=s?0:e.length-1),n<0&&(n=e.length+n),n>=e.length){if(s)return-1;n=e.length-1}else if(n<0){if(!s)return-1;n=0}if("string"==typeof t&&(t=r.from(t,o)),r.isBuffer(t))return 0===t.length?-1:l(e,t,n,o,s);if("number"==typeof t)return t&=255,"function"==typeof Uint8Array.prototype.indexOf?s?Uint8Array.prototype.indexOf.call(e,t,n):Uint8Array.prototype.lastIndexOf.call(e,t,n):l(e,[t],n,o,s);throw new TypeError("val must be string, number or Buffer")}function l(e,t,r,n,o){var s,i=1,a=e.length,u=t.length;if(void 0!==n&&("ucs2"===(n=String(n).toLowerCase())||"ucs-2"===n||"utf16le"===n||"utf-16le"===n)){if(e.length<2||t.length<2)return-1;i=2,a/=2,u/=2,r/=2}function c(e,t){return 1===i?e[t]:e.readUInt16BE(t*i)}if(o){var p=-1;for(s=r;sa&&(r=a-u),s=r;s>=0;s--){for(var l=!0,f=0;fo&&(n=o):n=o;var s=t.length;n>s/2&&(n=s/2);for(var i=0;i>8,o=r%256,s.push(o),s.push(n);return s}(t,e.length-r),e,r,n)}function y(e,t,r){return 0===t&&r===e.length?_$base64Js_1.fromByteArray(e):_$base64Js_1.fromByteArray(e.slice(t,r))}function $(e,t,r){r=Math.min(e.length,r);for(var n=[],o=t;o239?4:c>223?3:c>191?2:1;if(o+l<=r)switch(l){case 1:c<128&&(p=c);break;case 2:128==(192&(s=e[o+1]))&&(u=(31&c)<<6|63&s)>127&&(p=u);break;case 3:s=e[o+1],i=e[o+2],128==(192&s)&&128==(192&i)&&(u=(15&c)<<12|(63&s)<<6|63&i)>2047&&(u<55296||u>57343)&&(p=u);break;case 4:s=e[o+1],i=e[o+2],a=e[o+3],128==(192&s)&&128==(192&i)&&128==(192&a)&&(u=(15&c)<<18|(63&s)<<12|(63&i)<<6|63&a)>65535&&u<1114112&&(p=u)}null===p?(p=65533,l=1):p>65535&&(p-=65536,n.push(p>>>10&1023|55296),p=56320|1023&p),n.push(p),o+=l}return function(e){var t=e.length;if(t<=w)return String.fromCharCode.apply(String,e);for(var r="",n=0;nthis.length)return"";if((void 0===r||r>this.length)&&(r=this.length),r<=0)return"";if((r>>>=0)<=(t>>>=0))return"";for(e||(e="utf8");;)switch(e){case"hex":return A(this,t,r);case"utf8":case"utf-8":return $(this,t,r);case"ascii":return E(this,t,r);case"latin1":case"binary":return S(this,t,r);case"base64":return y(this,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return O(this,t,r);default:if(n)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),n=!0}}.apply(this,arguments)},r.prototype.toLocaleString=r.prototype.toString,r.prototype.equals=function(e){if(!r.isBuffer(e))throw new TypeError("Argument must be a Buffer");return this===e||0===r.compare(this,e)},r.prototype.inspect=function(){var e="",r=t.INSPECT_MAX_BYTES;return e=this.toString("hex",0,r).replace(/(.{2})/g,"$1 ").trim(),this.length>r&&(e+=" ... "),""},r.prototype.compare=function(e,t,n,o,s){if(k(e,Uint8Array)&&(e=r.from(e,e.offset,e.byteLength)),!r.isBuffer(e))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof e);if(void 0===t&&(t=0),void 0===n&&(n=e?e.length:0),void 0===o&&(o=0),void 0===s&&(s=this.length),t<0||n>e.length||o<0||s>this.length)throw new RangeError("out of range index");if(o>=s&&t>=n)return 0;if(o>=s)return-1;if(t>=n)return 1;if(this===e)return 0;for(var i=(s>>>=0)-(o>>>=0),a=(n>>>=0)-(t>>>=0),u=Math.min(i,a),c=this.slice(o,s),p=e.slice(t,n),l=0;l>>=0,isFinite(r)?(r>>>=0,void 0===n&&(n="utf8")):(n=r,r=void 0)}var o=this.length-t;if((void 0===r||r>o)&&(r=o),e.length>0&&(r<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");n||(n="utf8");for(var s=!1;;)switch(n){case"hex":return f(this,e,t,r);case"utf8":case"utf-8":return d(this,e,t,r);case"ascii":return h(this,e,t,r);case"latin1":case"binary":return _(this,e,t,r);case"base64":return m(this,e,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return g(this,e,t,r);default:if(s)throw new TypeError("Unknown encoding: "+n);n=(""+n).toLowerCase(),s=!0}},r.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var w=4096;function E(e,t,r){var n="";r=Math.min(e.length,r);for(var o=t;oo)&&(r=o);for(var s="",i=t;ir)throw new RangeError("Trying to access beyond buffer length")}function b(e,t,n,o,s,i){if(!r.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>s||te.length)throw new RangeError("Index out of range")}function T(e,t,r,n,o,s){if(r+n>e.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("Index out of range")}function R(e,t,r,n,o){return t=+t,r>>>=0,o||T(e,0,r,4),_$ieee754_3.write(e,t,r,n,23,4),r+4}function C(e,t,r,n,o){return t=+t,r>>>=0,o||T(e,0,r,8),_$ieee754_3.write(e,t,r,n,52,8),r+8}r.prototype.slice=function(e,t){var n=this.length;(e=~~e)<0?(e+=n)<0&&(e=0):e>n&&(e=n),(t=void 0===t?n:~~t)<0?(t+=n)<0&&(t=0):t>n&&(t=n),t>>=0,t>>>=0,r||v(e,t,this.length);for(var n=this[e],o=1,s=0;++s>>=0,t>>>=0,r||v(e,t,this.length);for(var n=this[e+--t],o=1;t>0&&(o*=256);)n+=this[e+--t]*o;return n},r.prototype.readUInt8=function(e,t){return e>>>=0,t||v(e,1,this.length),this[e]},r.prototype.readUInt16LE=function(e,t){return e>>>=0,t||v(e,2,this.length),this[e]|this[e+1]<<8},r.prototype.readUInt16BE=function(e,t){return e>>>=0,t||v(e,2,this.length),this[e]<<8|this[e+1]},r.prototype.readUInt32LE=function(e,t){return e>>>=0,t||v(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},r.prototype.readUInt32BE=function(e,t){return e>>>=0,t||v(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},r.prototype.readIntLE=function(e,t,r){e>>>=0,t>>>=0,r||v(e,t,this.length);for(var n=this[e],o=1,s=0;++s=(o*=128)&&(n-=Math.pow(2,8*t)),n},r.prototype.readIntBE=function(e,t,r){e>>>=0,t>>>=0,r||v(e,t,this.length);for(var n=t,o=1,s=this[e+--n];n>0&&(o*=256);)s+=this[e+--n]*o;return s>=(o*=128)&&(s-=Math.pow(2,8*t)),s},r.prototype.readInt8=function(e,t){return e>>>=0,t||v(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},r.prototype.readInt16LE=function(e,t){e>>>=0,t||v(e,2,this.length);var r=this[e]|this[e+1]<<8;return 32768&r?4294901760|r:r},r.prototype.readInt16BE=function(e,t){e>>>=0,t||v(e,2,this.length);var r=this[e+1]|this[e]<<8;return 32768&r?4294901760|r:r},r.prototype.readInt32LE=function(e,t){return e>>>=0,t||v(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},r.prototype.readInt32BE=function(e,t){return e>>>=0,t||v(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},r.prototype.readFloatLE=function(e,t){return e>>>=0,t||v(e,4,this.length),_$ieee754_3.read(this,e,!0,23,4)},r.prototype.readFloatBE=function(e,t){return e>>>=0,t||v(e,4,this.length),_$ieee754_3.read(this,e,!1,23,4)},r.prototype.readDoubleLE=function(e,t){return e>>>=0,t||v(e,8,this.length),_$ieee754_3.read(this,e,!0,52,8)},r.prototype.readDoubleBE=function(e,t){return e>>>=0,t||v(e,8,this.length),_$ieee754_3.read(this,e,!1,52,8)},r.prototype.writeUIntLE=function(e,t,r,n){e=+e,t>>>=0,r>>>=0,n||b(this,e,t,r,Math.pow(2,8*r)-1,0);var o=1,s=0;for(this[t]=255&e;++s>>=0,r>>>=0,n||b(this,e,t,r,Math.pow(2,8*r)-1,0);var o=r-1,s=1;for(this[t+o]=255&e;--o>=0&&(s*=256);)this[t+o]=e/s&255;return t+r},r.prototype.writeUInt8=function(e,t,r){return e=+e,t>>>=0,r||b(this,e,t,1,255,0),this[t]=255&e,t+1},r.prototype.writeUInt16LE=function(e,t,r){return e=+e,t>>>=0,r||b(this,e,t,2,65535,0),this[t]=255&e,this[t+1]=e>>>8,t+2},r.prototype.writeUInt16BE=function(e,t,r){return e=+e,t>>>=0,r||b(this,e,t,2,65535,0),this[t]=e>>>8,this[t+1]=255&e,t+2},r.prototype.writeUInt32LE=function(e,t,r){return e=+e,t>>>=0,r||b(this,e,t,4,4294967295,0),this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e,t+4},r.prototype.writeUInt32BE=function(e,t,r){return e=+e,t>>>=0,r||b(this,e,t,4,4294967295,0),this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e,t+4},r.prototype.writeIntLE=function(e,t,r,n){if(e=+e,t>>>=0,!n){var o=Math.pow(2,8*r-1);b(this,e,t,r,o-1,-o)}var s=0,i=1,a=0;for(this[t]=255&e;++s>0)-a&255;return t+r},r.prototype.writeIntBE=function(e,t,r,n){if(e=+e,t>>>=0,!n){var o=Math.pow(2,8*r-1);b(this,e,t,r,o-1,-o)}var s=r-1,i=1,a=0;for(this[t+s]=255&e;--s>=0&&(i*=256);)e<0&&0===a&&0!==this[t+s+1]&&(a=1),this[t+s]=(e/i>>0)-a&255;return t+r},r.prototype.writeInt8=function(e,t,r){return e=+e,t>>>=0,r||b(this,e,t,1,127,-128),e<0&&(e=255+e+1),this[t]=255&e,t+1},r.prototype.writeInt16LE=function(e,t,r){return e=+e,t>>>=0,r||b(this,e,t,2,32767,-32768),this[t]=255&e,this[t+1]=e>>>8,t+2},r.prototype.writeInt16BE=function(e,t,r){return e=+e,t>>>=0,r||b(this,e,t,2,32767,-32768),this[t]=e>>>8,this[t+1]=255&e,t+2},r.prototype.writeInt32LE=function(e,t,r){return e=+e,t>>>=0,r||b(this,e,t,4,2147483647,-2147483648),this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24,t+4},r.prototype.writeInt32BE=function(e,t,r){return e=+e,t>>>=0,r||b(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e,t+4},r.prototype.writeFloatLE=function(e,t,r){return R(this,e,t,!0,r)},r.prototype.writeFloatBE=function(e,t,r){return R(this,e,t,!1,r)},r.prototype.writeDoubleLE=function(e,t,r){return C(this,e,t,!0,r)},r.prototype.writeDoubleBE=function(e,t,r){return C(this,e,t,!1,r)},r.prototype.copy=function(e,t,n,o){if(!r.isBuffer(e))throw new TypeError("argument should be a Buffer");if(n||(n=0),o||0===o||(o=this.length),t>=e.length&&(t=e.length),t||(t=0),o>0&&o=this.length)throw new RangeError("Index out of range");if(o<0)throw new RangeError("sourceEnd out of bounds");o>this.length&&(o=this.length),e.length-t=0;--i)e[i+t]=this[i+n];else Uint8Array.prototype.set.call(e,this.subarray(n,o),t);return s},r.prototype.fill=function(e,t,n,o){if("string"==typeof e){if("string"==typeof t?(o=t,t=0,n=this.length):"string"==typeof n&&(o=n,n=this.length),void 0!==o&&"string"!=typeof o)throw new TypeError("encoding must be a string");if("string"==typeof o&&!r.isEncoding(o))throw new TypeError("Unknown encoding: "+o);if(1===e.length){var s=e.charCodeAt(0);("utf8"===o&&s<128||"latin1"===o)&&(e=s)}}else"number"==typeof e&&(e&=255);if(t<0||this.length>>=0,n=void 0===n?this.length:n>>>0,e||(e=0),"number"==typeof e)for(i=t;i55295&&r<57344){if(!o){if(r>56319){(t-=3)>-1&&s.push(239,191,189);continue}if(i+1===n){(t-=3)>-1&&s.push(239,191,189);continue}o=r;continue}if(r<56320){(t-=3)>-1&&s.push(239,191,189),o=r;continue}r=65536+(o-55296<<10|r-56320)}else o&&(t-=3)>-1&&s.push(239,191,189);if(o=null,r<128){if((t-=1)<0)break;s.push(r)}else if(r<2048){if((t-=2)<0)break;s.push(r>>6|192,63&r|128)}else if(r<65536){if((t-=3)<0)break;s.push(r>>12|224,r>>6&63|128,63&r|128)}else{if(!(r<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;s.push(r>>18|240,r>>12&63|128,r>>6&63|128,63&r|128)}}return s}function L(e){return _$base64Js_1.toByteArray(function(e){if((e=(e=e.split("=")[0]).trim().replace(N,"")).length<2)return"";for(;e.length%4!=0;)e+="=";return e}(e))}function P(e,t,r,n){for(var o=0;o=t.length||o>=e.length);++o)t[o+r]=e[o];return o}function k(e,t){return e instanceof t||null!=e&&null!=e.constructor&&null!=e.constructor.name&&e.constructor.name===t.name}function x(e){return e!=e}}).call(this)}).call(this,_$buffer_2({}).Buffer)})),_$express_47=createModuleFactory((function(module,exports){const{ENV:ENV}=_$openApi_51;function express({port:port}={port:3e3}){const{isNode:isNode}=ENV(),DEFAULT_HEADERS={"Content-Type":"text/plain;charset=UTF-8","Access-Control-Allow-Origin":"*","Access-Control-Allow-Methods":"POST,GET,OPTIONS,PATCH,PUT,DELETE","Access-Control-Allow-Headers":"Origin, X-Requested-With, Content-Type, Accept"};if(isNode){const express_=eval('require("express")'),bodyParser=eval('require("body-parser")'),app=express_();return app.use(bodyParser.json({verify:rawBodySaver})),app.use(bodyParser.urlencoded({verify:rawBodySaver,extended:!0})),app.use(bodyParser.raw({verify:rawBodySaver,type:"*/*"})),app.use((e,t,r)=>{t.set(DEFAULT_HEADERS),r()}),app.start=()=>{app.listen(port,()=>{_$$_36.log("Express started on port: "+port)})},app}const handlers=[],METHODS_NAMES=["GET","POST","PUT","DELETE","PATCH","OPTIONS","HEAD'","ALL"],dispatch=(e,t=0)=>{let{method:r,url:n,headers:o,body:s}=e;/json/i.test(o["Content-Type"])&&(s=JSON.parse(s)),r=r.toUpperCase();const{path:i,query:a}=extractURL(n);let u,c=null,p=0;for(u=t;up&&(c=handlers[u],p=e.split("/").length)}if(c){const e=()=>{dispatch(r,n,u)},t={method:r,url:n,path:i,query:a,params:extractPathParams(c.pattern,i),headers:o,body:s},p=Response(),f=c.callback,d=e=>{p.status(500).json({status:"failed",message:"Internal Server Error: "+e})};if("AsyncFunction"===f.constructor.name)f(t,p,e).catch(d);else try{f(t,p,e)}catch(l){d(l)}}else Response().status(404).json({status:"failed",message:"ERROR: 404 not found"})},app={};return METHODS_NAMES.forEach(e=>{app[e.toLowerCase()]=(t,r)=>{handlers.push({method:e,pattern:t,callback:r})}}),app.route=e=>{const t={};return METHODS_NAMES.forEach(r=>{t[r.toLowerCase()]=n=>(handlers.push({method:r,pattern:e,callback:n}),t)}),t},app.start=()=>{dispatch($request)},app;function rawBodySaver(e,t,r,n){r&&r.length&&(e.rawBody=r.toString(n||"utf8"))}function Response(){let e=200;const{isQX:t,isLoon:r,isSurge:n}=ENV(),o=DEFAULT_HEADERS,s={200:"HTTP/1.1 200 OK",201:"HTTP/1.1 201 Created",302:"HTTP/1.1 302 Found",307:"HTTP/1.1 307 Temporary Redirect",308:"HTTP/1.1 308 Permanent Redirect",404:"HTTP/1.1 404 Not Found",500:"HTTP/1.1 500 Internal Server Error"};return new class{status(t){return e=t,this}send(i=""){const a={status:t?s[e]:e,body:i,headers:o};t?$done(a):(r||n)&&$done({response:a})}end(){this.send()}html(e){this.set("Content-Type","text/html;charset=UTF-8"),this.send(e)}json(e){this.set("Content-Type","application/json;charset=UTF-8"),this.send(JSON.stringify(e))}set(e,t){return o[e]=t,this}}}function patternMatched(e,t){if(e instanceof RegExp&&e.test(t))return!0;if("/"===e)return!0;if(-1===e.indexOf(":")){const r=t.split("/"),n=e.split("/");for(let e=0;e{},onResponse:e=>e,onTimeout:()=>{},...options.events};let worker,timeoutid;events.onRequest(method,options),isQX?worker=$task.fetch({method:method,url:options.url,headers:options.headers,body:options.body}):(isLoon||isSurge||isNode)&&(worker=new Promise((resolve,reject)=>{const request=isNode?eval("require('request')"):$httpClient;request[method.toLowerCase()](options,(e,t,r)=>{e?reject(e):resolve({statusCode:t.status||t.statusCode,headers:t.headers,body:r})})}));const timer=timeout?new Promise((e,t)=>{timeoutid=setTimeout(()=>(events.onTimeout(),t(`${method} URL: ${options.url} exceeds the timeout ${timeout} ms`)),timeout)}):null;return(timer?Promise.race([timer,worker]).then(e=>(clearTimeout(timeoutid),e)):worker).then(e=>events.onResponse(e))}const http={};return methods.forEach(e=>http[e.toLowerCase()]=t=>send(e,t)),http}function API(name="untitled",debug=!1){const{isQX:isQX,isLoon:isLoon,isSurge:isSurge,isNode:isNode}=ENV();return new class{constructor(name,debug){this.name=name,this.debug=debug,this.http=HTTP(),this.env=ENV(),this.node=(()=>{if(isNode){const fs=eval("require('fs')");return{fs:fs}}return null})(),this.initCache();const delay=(e,t)=>new Promise((function(r){setTimeout(r.bind(null,t),e)}));Promise.prototype.delay=function(e){return this.then((function(t){return delay(e,t)}))}}initCache(){if(isQX&&(this.cache=JSON.parse($prefs.valueForKey(this.name)||"{}")),(isLoon||isSurge)&&(this.cache=JSON.parse($persistentStore.read(this.name)||"{}")),isNode){let e="root.json";this.node.fs.existsSync(e)||this.node.fs.writeFileSync(e,JSON.stringify({}),{flag:"wx"},e=>console.log(e)),this.root={},e=this.name+".json",this.node.fs.existsSync(e)?this.cache=JSON.parse(this.node.fs.readFileSync(this.name+".json")):(this.node.fs.writeFileSync(e,JSON.stringify({}),{flag:"wx"},e=>console.log(e)),this.cache={})}}persistCache(){const e=JSON.stringify(this.cache,null,2);isQX&&$prefs.setValueForKey(e,this.name),(isLoon||isSurge)&&$persistentStore.write(e,this.name),isNode&&(this.node.fs.writeFileSync(this.name+".json",e,{flag:"w"},e=>console.log(e)),this.node.fs.writeFileSync("root.json",JSON.stringify(this.root,null,2),{flag:"w"},e=>console.log(e)))}write(e,t){if(this.log("SET "+t),-1!==t.indexOf("#")){if(t=t.substr(1),isSurge||isLoon)return $persistentStore.write(e,t);if(isQX)return $prefs.setValueForKey(e,t);isNode&&(this.root[t]=e)}else this.cache[t]=e;this.persistCache()}read(e){return this.log("READ "+e),-1===e.indexOf("#")?this.cache[e]:(e=e.substr(1),isSurge||isLoon?$persistentStore.read(e):isQX?$prefs.valueForKey(e):isNode?this.root[e]:void 0)}delete(e){if(this.log("DELETE "+e),-1!==e.indexOf("#")){if(e=e.substr(1),isSurge||isLoon)return $persistentStore.write(null,e);if(isQX)return $prefs.removeValueForKey(e);isNode&&delete this.root[e]}else delete this.cache[e];this.persistCache()}notify(e,t="",r="",n={}){const o=n["open-url"],s=n["media-url"];if(isQX&&$notify(e,t,r,n),isSurge&&$notification.post(e,t,r+""+(s?"\n\u591a\u5a92\u4f53:"+s:""),{url:o}),isLoon){let n={};o&&(n.openUrl=o),s&&(n.mediaUrl=s),"{}"===JSON.stringify(n)?$notification.post(e,t,r):$notification.post(e,t,r,n)}if(isNode){const n=r+(o?"\n\u70b9\u51fb\u8df3\u8f6c: "+o:"")+(s?"\n\u591a\u5a92\u4f53: "+s:"");console.log(`${e}\n${t}\n${n}\n\n`)}}log(e){this.debug&&console.log(`[${this.name}] LOG: ${e}`)}info(e){console.log(`[${this.name}] INFO: ${e}`)}error(e){console.log(`[${this.name}] ERROR: ${e}`)}wait(e){return new Promise(t=>setTimeout(t,e))}done(e={}){isQX||isLoon||isSurge?$done(e):isNode&&"undefined"!=typeof $context&&($context.headers=e.headers,$context.statusCode=e.statusCode,$context.body=e.body)}}(name,debug)}var _$openApi_51={HTTP:HTTP,ENV:ENV,API:API};const{API:__API_36}=_$openApi_51,$=__API_36("sub-store");var _$$_36=$;const{HTTP:__HTTP_48}=_$openApi_51;var _$geo_48={getFlag:function(e){const t={"\ud83c\udde6\ud83c\uddff":["\u963f\u585e\u62dc\u7586"],"\ud83c\udde6\ud83c\uddf9":["\u5965\u5730\u5229","\u5967\u5730\u5229","Austria","\u7ef4\u4e5f\u7eb3"],"\ud83c\udde6\ud83c\uddfa":["AU","Australia","Sydney","\u6fb3\u5927\u5229\u4e9a","\u6fb3\u6d32","\u58a8\u5c14\u672c","\u6089\u5c3c","\u571f\u6fb3","\u4eac\u6fb3","\u5ee3\u6fb3","\u6eec\u6fb3","\u6caa\u6fb3","\u5e7f\u6fb3"],"\ud83c\udde7\ud83c\uddea":["BE","\u6bd4\u5229\u6642","\u6bd4\u5229\u65f6"],"\ud83c\udde7\ud83c\uddec":["\u4fdd\u52a0\u5229\u4e9a","\u4fdd\u52a0\u5229\u4e9e","Bulgaria"],"\ud83c\udde7\ud83c\udded":["BH","\u5df4\u6797"],"\ud83c\udde7\ud83c\udde9":["BD","\u5b5f\u52a0\u62c9"],"\ud83c\uddf5\ud83c\uddf0":["\u5df4\u57fa\u65af\u5766"],"\ud83c\uddf0\ud83c\udded":["\u67ec\u57d4\u5be8"],"\ud83c\uddfa\ud83c\udde6":["\u70cf\u514b\u862d","\u4e4c\u514b\u5170"],"\ud83c\udded\ud83c\uddf7":["\u514b\u7f57\u5730\u4e9a","HR","\u514b\u7f85\u5730\u4e9e"],"\ud83c\udde8\ud83c\udde6":["Canada","CANADA","CAN","Waterloo","\u52a0\u62ff\u5927","\u8499\u7279\u5229\u5c14","\u6e29\u54e5\u534e","\u6953\u8449","\u67ab\u53f6","\u6ed1\u94c1\u5362","\u591a\u4f26\u591a","CA"],"\ud83c\udde8\ud83c\udded":["\u745e\u58eb","\u82cf\u9ece\u4e16","Switzerland","Zurich"],"\ud83c\uddf3\ud83c\uddec":["\u5c3c\u65e5\u5229\u4e9a","NG","\u5c3c\u65e5\u5229\u4e9e"],"\ud83c\udde8\ud83c\uddff":["Czechia","\u6377\u514b"],"\ud83c\uddf8\ud83c\uddf0":["\u65af\u6d1b\u4f10\u514b","SK"],"\ud83c\uddf7\ud83c\uddf8":["RS","\u585e\u5c14\u7ef4\u4e9a"],"\ud83c\uddf2\ud83c\udde9":["\u6469\u723e\u591a\u74e6","MD","\u6469\u5c14\u591a\u74e6"],"\ud83c\udde9\ud83c\uddea":["DE","German","GERMAN","\u5fb7\u56fd","\u5fb7\u570b","\u6cd5\u5170\u514b\u798f","\u4eac\u5fb7","\u6eec\u5fb7","\u5ee3\u5fb7","\u6caa\u5fb7","\u5e7f\u5fb7","Frankfurt"],"\ud83c\udde9\ud83c\uddf0":["DK","DNK","\u4e39\u9ea6","\u4e39\u9ea5"],"\ud83c\uddea\ud83c\uddf8":["ES","\u897f\u73ed\u7259","Spain"],"\ud83c\uddea\ud83c\uddfa":["EU","\u6b27\u76df","\u6b27\u7f57\u5df4"],"\ud83c\uddeb\ud83c\uddee":["Finland","\u82ac\u5170","\u82ac\u862d","\u8d6b\u5c14\u8f9b\u57fa"],"\ud83c\uddeb\ud83c\uddf7":["FR","France","\u6cd5\u56fd","\u6cd5\u570b","\u5df4\u9ece"],"\ud83c\uddec\ud83c\udde7":["UK","GB","England","United Kingdom","\u82f1\u56fd","\u4f26\u6566","\u82f1","London"],"\ud83c\uddf2\ud83c\uddf4":["MO","Macao","\u6fb3\u95e8","\u6fb3\u9580","CTM"],"\ud83c\uddf0\ud83c\uddff":["\u54c8\u8428\u514b\u65af\u5766","\u54c8\u8428\u514b"],"\ud83c\udded\ud83c\uddfa":["\u5308\u7259\u5229","Hungary"],"\ud83c\udded\ud83c\uddf0":["HK","Hongkong","Hong Kong","HongKong","HONG KONG","\u9999\u6e2f","\u6df1\u6e2f","\u6caa\u6e2f","\u547c\u6e2f","HKT","HKBN","HGC","WTT","CMI","\u7a57\u6e2f","\u4eac\u6e2f","\u6e2f"],"\ud83c\uddee\ud83c\udde9":["Indonesia","\u5370\u5c3c","\u5370\u5ea6\u5c3c\u897f\u4e9a","\u96c5\u52a0\u8fbe"],"\ud83c\uddee\ud83c\uddea":["Ireland","IRELAND","\u7231\u5c14\u5170","\u611b\u723e\u862d","\u90fd\u67cf\u6797"],"\ud83c\uddee\ud83c\uddf1":["Israel","\u4ee5\u8272\u5217"],"\ud83c\uddee\ud83c\uddf3":["India","IND","INDIA","\u5370\u5ea6","\u5b5f\u4e70","MFumbai"],"\ud83c\uddee\ud83c\uddf8":["IS","ISL","\u51b0\u5c9b","\u51b0\u5cf6"],"\ud83c\uddf0\ud83c\uddf5":["KP","\u671d\u9c9c"],"\ud83c\uddf0\ud83c\uddf7":["KR","Korea","KOR","\u97e9\u56fd","\u9996\u5c14","\u97e9","\u97d3","\u6625\u5ddd","Chuncheon","Seoul"],"\ud83c\uddf1\ud83c\uddfa":["\u5362\u68ee\u5821"],"\ud83c\uddf1\ud83c\uddfb":["Latvia","Latvija","\u62c9\u8131\u7ef4\u4e9a"],"\ud83c\uddf2\ud83c\uddfd":["MEX","MX","\u58a8\u897f\u54e5"],"\ud83c\uddf2\ud83c\uddfe":["MY","Malaysia","MALAYSIA","\u9a6c\u6765\u897f\u4e9a","\u5927\u99ac","\u99ac\u4f86\u897f\u4e9e","\u5409\u9686\u5761"],"\ud83c\uddf3\ud83c\uddf1":["NL","Netherlands","\u8377\u5170","\u8377\u862d","\u5c3c\u5fb7\u862d","\u963f\u59c6\u65af\u7279\u4e39"],"\ud83c\uddf3\ud83c\uddf5":["\u5c3c\u6cca\u5c14"],"\ud83c\uddf5\ud83c\udded":["PH","Philippines","\u83f2\u5f8b\u5bbe","\u83f2\u5f8b\u8cd3"],"\ud83c\uddf5\ud83c\uddf7":["PR","\u6ce2\u591a\u9ece\u5404"],"\ud83c\uddf7\ud83c\uddf4":["RO","\u7f57\u9a6c\u5c3c\u4e9a"],"\ud83c\uddf7\ud83c\uddfa":["RU","Russia","\u4fc4\u7f57\u65af","\u4fc4\u56fd","\u4fc4\u7f85\u65af","\u4f2f\u529b","\u83ab\u65af\u79d1","\u5723\u5f7c\u5f97\u5821","\u897f\u4f2f\u5229\u4e9a","\u65b0\u897f\u4f2f\u5229\u4e9a","\u4eac\u4fc4","\u676d\u4fc4","\u5ee3\u4fc4","\u6eec\u4fc4","\u5e7f\u4fc4","\u6caa\u4fc4","Moscow"],"\ud83c\uddf8\ud83c\udde6":["\u6c99\u7279"],"\ud83c\uddf8\ud83c\uddea":["SE","Sweden","\u745e\u5178"],"\ud83c\uddf2\ud83c\uddf9":["\u9a6c\u8033\u4ed6"],"\ud83c\uddf2\ud83c\udde6":["MA","\u6469\u6d1b\u54e5"],"\ud83c\uddf8\ud83c\uddec":["SG","Singapore","SINGAPORE","\u65b0\u52a0\u5761","\u72ee\u57ce","\u6caa\u65b0","\u4eac\u65b0","\u6cc9\u65b0","\u7a57\u65b0","\u6df1\u65b0","\u676d\u65b0","\u5e7f\u65b0","\u5ee3\u65b0","\u6eec\u65b0"],"\ud83c\uddf9\ud83c\udded":["TH","Thailand","\u6cf0\u56fd","\u6cf0\u570b","\u66fc\u8c37"],"\ud83c\uddf9\ud83c\uddf7":["TR","Turkey","\u571f\u8033\u5176","\u4f0a\u65af\u5766\u5e03\u5c14"],"\ud83c\uddf9\ud83c\uddfc":["TW","Taiwan","TAIWAN","\u53f0\u6e7e","\u53f0\u5317","\u53f0\u4e2d","\u65b0\u5317","\u5f70\u5316","CHT","\u53f0","HINET","Taipei"],"\ud83c\uddfa\ud83c\uddf8":["US","USA","America","United States","\u7f8e\u56fd","\u7f8e","\u4eac\u7f8e","\u6ce2\u7279\u5170","\u8fbe\u62c9\u65af","\u4fc4\u52d2\u5188","\u51e4\u51f0\u57ce","\u8d39\u5229\u8499","\u7845\u8c37","\u77fd\u8c37","\u62c9\u65af\u7ef4\u52a0\u65af","\u6d1b\u6749\u77f6","\u5723\u4f55\u585e","\u5723\u514b\u62c9\u62c9","\u897f\u96c5\u56fe","\u829d\u52a0\u54e5","\u6caa\u7f8e","\u54e5\u4f26\u5e03","\u7ebd\u7ea6","Los Angeles","San Jose","Sillicon Valley","Michigan"],"\ud83c\uddfb\ud83c\uddf3":["VN","\u8d8a\u5357","\u80e1\u5fd7\u660e\u5e02"],"\ud83c\uddfb\ud83c\uddea":["VE","\u59d4\u5185\u745e\u62c9"],"\ud83c\uddee\ud83c\uddf9":["Italy","IT","Nachash","\u610f\u5927\u5229","\u7c73\u5170","\u7fa9\u5927\u5229"],"\ud83c\uddff\ud83c\udde6":["South Africa","\u5357\u975e"],"\ud83c\udde6\ud83c\uddea":["United Arab Emirates","\u963f\u8054\u914b","\u8fea\u62dc","AE"],"\ud83c\udde7\ud83c\uddf7":["BR","Brazil","\u5df4\u897f","\u5723\u4fdd\u7f57"],"\ud83c\uddef\ud83c\uddf5":["JP","Japan","JAPAN","\u65e5\u672c","\u4e1c\u4eac","\u5927\u962a","\u57fc\u7389","\u6caa\u65e5","\u7a57\u65e5","\u5ddd\u65e5","\u4e2d\u65e5","\u6cc9\u65e5","\u676d\u65e5","\u6df1\u65e5","\u8fbd\u65e5","\u5e7f\u65e5","\u5927\u5742","Osaka","Tokyo"],"\ud83c\udde6\ud83c\uddf7":["AR","\u963f\u6839\u5ef7"],"\ud83c\uddf3\ud83c\uddf4":["Norway","\u632a\u5a01","NO"],"\ud83c\udde8\ud83c\uddf3":["CN","China","\u56de\u56fd","\u4e2d\u56fd","\u4e2d\u570b","\u6c5f\u82cf","\u5317\u4eac","\u4e0a\u6d77","\u5e7f\u5dde","\u6df1\u5733","\u676d\u5dde","\u5f90\u5dde","\u9752\u5c9b","\u5b81\u6ce2","\u9547\u6c5f","back"],"\ud83c\uddf5\ud83c\uddf1":["PL","POL","\u6ce2\u5170","\u6ce2\u862d"],"\ud83c\udde8\ud83c\uddf1":["\u667a\u5229"],"\ud83c\uddf3\ud83c\uddff":["\u65b0\u897f\u862d","\u65b0\u897f\u5170"],"\ud83c\uddec\ud83c\uddf7":["\u5e0c\u814a","\u5e0c\u81d8"],"\ud83c\uddea\ud83c\uddec":["\u57c3\u53ca"],"\ud83c\udde8\ud83c\uddfe":["CY","\u585e\u6d66\u8def\u65af"],"\ud83c\udde8\ud83c\uddf7":["CR","\u54e5\u65af\u8fbe\u9ece\u52a0"],"\ud83c\uddf8\ud83c\uddee":["SI","\u65af\u6d1b\u6587\u5c3c\u4e9a"],"\ud83c\uddf1\ud83c\uddf9":["LT","\u7acb\u9676\u5b9b"],"\ud83c\uddf5\ud83c\udde6":["PA","\u5df4\u62ff\u9a6c"],"\ud83c\uddf9\ud83c\uddf3":["TN","\u7a81\u5c3c\u65af"],"\ud83c\uddee\ud83c\uddf2":["\u9a6c\u6069\u5c9b","\u99ac\u6069\u5cf6"],"\ud83c\udde7\ud83c\uddfe":["BY","\u767d\u4fc4","\u767d\u4fc4\u7f57\u65af"],"\ud83c\uddf5\ud83c\uddf9":["\u8461\u8404\u7259"],"\ud83c\uddf0\ud83c\uddea":["KE","\u80af\u5c3c\u4e9a"],"\ud83c\uddf0\ud83c\uddec":["KG","\u5409\u5c14\u5409\u65af\u5766"],"\ud83c\uddef\ud83c\uddf4":["JO","\u7ea6\u65e6"],"\ud83c\uddfa\ud83c\uddfe":["UY","\u4e4c\u62c9\u572d"],"\ud83c\uddf2\ud83c\uddf3":["\u8499\u53e4"],"\ud83c\uddee\ud83c\uddf7":["IR","\u4f0a\u6717"],"\ud83c\uddf5\ud83c\uddea":["\u79d8\u9c81","\u7955\u9b6f"],"\ud83c\udde8\ud83c\uddf4":["\u54e5\u4f26\u6bd4\u4e9a"],"\ud83c\uddea\ud83c\uddea":["\u7231\u6c99\u5c3c\u4e9a"],"\ud83c\uddea\ud83c\udde8":["EC","\u5384\u74dc\u591a\u5c14"],"\ud83c\uddf2\ud83c\uddf0":["\u9a6c\u5176\u987f","\u99ac\u5176\u9813"],"\ud83c\udde7\ud83c\udde6":["\u6ce2\u9ed1\u5171\u548c\u56fd","\u6ce2\u9ed1"],"\ud83c\uddec\ud83c\uddea":["\u683c\u9b6f\u5409\u4e9e","\u683c\u9c81\u5409\u4e9a"],"\ud83c\udde6\ud83c\uddf1":["\u963f\u723e\u5df4\u5c3c\u4e9e","\u963f\u5c14\u5df4\u5c3c\u4e9a"],"\ud83c\udff3\ufe0f\u200d\ud83c\udf08":["\u6d41\u91cf","\u65f6\u95f4","\u5e94\u6025","\u8fc7\u671f","Bandwidth","expire"]};for(let r of Object.keys(t))if(t[r].some(t=>-1!==e.indexOf(t)))return r;return(e.match(/[\uD83C][\uDDE6-\uDDFF][\uD83C][\uDDE6-\uDDFF]/)||[])[0]||"\ud83c\udff4\u200d\u2620\ufe0f"},IP_API:async function(e,t){const r=decodeURIComponent(e.params.server),n=__HTTP_48(),o=await n.get(`http://ip-api.com/json/${r}?lang=zh-CN`).then(e=>JSON.parse(e.body));t.json(o)}};const{HTTP:__HTTP_49}=_$openApi_51;var _$gist_49=function({token:e,key:t}){const r=__HTTP_49({baseURL:"https://api.github.com",headers:{Authorization:"token "+e,"User-Agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.141 Safari/537.36"},events:{onResponse:e=>/^[45]/.test(String(e.statusCode))?Promise.reject("ERROR: "+JSON.parse(e.body).message):e}});async function n(){return r.get("/gists").then(e=>{const r=JSON.parse(e.body);for(let n of r)if(n.description===t)return n.id;return-1})}this.upload=async function(e){const o=await n();return-1===o?r.post({url:"/gists",body:JSON.stringify({description:t,public:!1,files:e})}):r.patch({url:"/gists/"+o,body:JSON.stringify({files:e})})},this.download=async function(e){const t=await n();if(-1===t)return Promise.reject("\u672a\u627e\u5230Gist\u5907\u4efd\uff01");try{const{files:n}=await r.get("/gists/"+t).then(e=>JSON.parse(e.body)),o=n[e].raw_url;return await r.get(o).then(e=>e.body)}catch(o){return Promise.reject(o)}}},_$constants_41={SETTINGS_KEY:"settings",SUBS_KEY:"subs",COLLECTIONS_KEY:"collections",RULES_KEY:"rules",BUILT_IN_KEY:"builtin",ARTIFACTS_KEY:"artifacts",GIST_BACKUP_KEY:"Auto Generated Sub-Store Backup",GIST_BACKUP_FILE_NAME:"Sub-Store",ARTIFACT_REPOSITORY_KEY:"Sub-Store Artifacts Repository"};const{HTTP:__HTTP_46}=_$openApi_51,cache=new Map;var _$download_46=async function(e,t){const r=(t=t||"Quantumult%20X/1.0.29 (iPhone14,5; iOS 15.4.1)")+e;if(cache.has(r))return cache.get(r);const n=__HTTP_46({headers:{"User-Agent":t}}),o=new Promise((t,r)=>{n.get(e).then(e=>{const n=e.body;0===n.replace(/\s/g,"").length?r(new Error("\u8ba2\u9605\u5185\u5bb9\u4e3a\u7a7a\uff01")):t(n)})});return cache[r]=o,o},_$common_7={};function isNothing(e){return null==e}_$common_7.isNothing=isNothing,_$common_7.isObject=function(e){return"object"==typeof e&&null!==e},_$common_7.toArray=function(e){return Array.isArray(e)?e:isNothing(e)?[]:[e]},_$common_7.repeat=function(e,t){var r,n="";for(r=0;r0&&-1==="\0\r\n\x85\u2028\u2029".indexOf(this.buffer.charAt(n-1));)if(n-=1,this.position-n>t/2-1){r=" ... ",n+=5;break}for(o="",s=this.position;st/2-1){o=" ... ",s-=5;break}return i=this.buffer.slice(n,s),_$common_7.repeat(" ",e)+r+i+o+"\n"+_$common_7.repeat(" ",e+this.position-n+r.length)+"^"},Mark.prototype.toString=function(e){var t,r="";return this.name&&(r+='in "'+this.name+'" '),r+="at line "+(this.line+1)+", column "+(this.column+1),e||(t=this.getSnippet())&&(r+=":\n"+t),r},_$mark_11=Mark;var TYPE_CONSTRUCTOR_OPTIONS=["kind","resolve","construct","instanceOf","predicate","represent","defaultStyle","styleAliases"],YAML_NODE_KINDS=["scalar","sequence","mapping"],_$type_18=function(e,t){var r,n;if(t=t||{},Object.keys(t).forEach((function(t){if(-1===TYPE_CONSTRUCTOR_OPTIONS.indexOf(t))throw new _$exception_9('Unknown option "'+t+'" is met in definition of "'+e+'" YAML type.')})),this.tag=e,this.kind=t.kind||null,this.resolve=t.resolve||function(){return!0},this.construct=t.construct||function(e){return e},this.instanceOf=t.instanceOf||null,this.predicate=t.predicate||null,this.represent=t.represent||null,this.defaultStyle=t.defaultStyle||null,this.styleAliases=(r=t.styleAliases||null,n={},null!==r&&Object.keys(r).forEach((function(e){r[e].forEach((function(t){n[String(t)]=e}))})),n),-1===YAML_NODE_KINDS.indexOf(this.kind))throw new _$exception_9('Unknown kind "'+this.kind+'" is specified for "'+e+'" YAML type.')},_$schema_12={};function compileList(e,t,r){var n=[];return e.include.forEach((function(e){r=compileList(e,t,r)})),e[t].forEach((function(e){r.forEach((function(t,r){t.tag===e.tag&&t.kind===e.kind&&n.push(r)})),r.push(e)})),r.filter((function(e,t){return-1===n.indexOf(t)}))}function Schema(e){this.include=e.include||[],this.implicit=e.implicit||[],this.explicit=e.explicit||[],this.implicit.forEach((function(e){if(e.loadKind&&"scalar"!==e.loadKind)throw new _$exception_9("There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.")})),this.compiledImplicit=compileList(this,"implicit",[]),this.compiledExplicit=compileList(this,"explicit",[]),this.compiledTypeMap=function(){var e,t,r={scalar:{},sequence:{},mapping:{},fallback:{}};function n(e){r[e.kind][e.tag]=r.fallback[e.tag]=e}for(e=0,t=arguments.length;e=0?"0b"+e.toString(2):"-0b"+e.toString(2).slice(1)},octal:function(e){return e>=0?"0"+e.toString(8):"-0"+e.toString(8).slice(1)},decimal:function(e){return e.toString(10)},hexadecimal:function(e){return e>=0?"0x"+e.toString(16).toUpperCase():"-0x"+e.toString(16).toUpperCase().slice(1)}},defaultStyle:"decimal",styleAliases:{binary:[2,"bin"],octal:[8,"oct"],decimal:[10,"dec"],hexadecimal:[16,"hex"]}}),YAML_FLOAT_PATTERN=new RegExp("^(?:[-+]?(?:0|[1-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\\.[0-9_]*|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$"),SCIENTIFIC_WITHOUT_DOT=/^[-+]?[0-9]+e/,_$float_21=new _$type_18("tag:yaml.org,2002:float",{kind:"scalar",resolve:function(e){return null!==e&&!(!YAML_FLOAT_PATTERN.test(e)||"_"===e[e.length-1])},construct:function(e){var t,r,n,o;return r="-"===(t=e.replace(/_/g,"").toLowerCase())[0]?-1:1,o=[],"+-".indexOf(t[0])>=0&&(t=t.slice(1)),".inf"===t?1===r?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:".nan"===t?NaN:t.indexOf(":")>=0?(t.split(":").forEach((function(e){o.unshift(parseFloat(e,10))})),t=0,n=1,o.forEach((function(e){t+=e*n,n*=60})),r*t):r*parseFloat(t,10)},predicate:function(e){return"[object Number]"===Object.prototype.toString.call(e)&&(e%1!=0||_$common_7.isNegativeZero(e))},represent:function(e,t){var r;if(isNaN(e))switch(t){case"lowercase":return".nan";case"uppercase":return".NAN";case"camelcase":return".NaN"}else if(Number.POSITIVE_INFINITY===e)switch(t){case"lowercase":return".inf";case"uppercase":return".INF";case"camelcase":return".Inf"}else if(Number.NEGATIVE_INFINITY===e)switch(t){case"lowercase":return"-.inf";case"uppercase":return"-.INF";case"camelcase":return"-.Inf"}else if(_$common_7.isNegativeZero(e))return"-0.0";return r=e.toString(10),SCIENTIFIC_WITHOUT_DOT.test(r)?r.replace("e",".e"):r},defaultStyle:"lowercase"}),_$json_17=new _$schema_12({include:[_$failsafe_16],implicit:[_$null_28,_$bool_20,_$int_22,_$float_21]}),_$core_13=new _$schema_12({include:[_$json_17]}),YAML_DATE_REGEXP=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),YAML_TIMESTAMP_REGEXP=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$"),_$timestamp_34=new _$type_18("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:function(e){return null!==e&&(null!==YAML_DATE_REGEXP.exec(e)||null!==YAML_TIMESTAMP_REGEXP.exec(e))},construct:function(e){var t,r,n,o,s,i,a,u,c=0,p=null;if(null===(t=YAML_DATE_REGEXP.exec(e))&&(t=YAML_TIMESTAMP_REGEXP.exec(e)),null===t)throw new Error("Date resolve error");if(r=+t[1],n=+t[2]-1,o=+t[3],!t[4])return new Date(Date.UTC(r,n,o));if(s=+t[4],i=+t[5],a=+t[6],t[7]){for(c=t[7].slice(0,3);c.length<3;)c+="0";c=+c}return t[9]&&(p=6e4*(60*+t[10]+ +(t[11]||0)),"-"===t[9]&&(p=-p)),u=new Date(Date.UTC(r,n,o,s,i,a,c)),p&&u.setTime(u.getTime()-p),u},instanceOf:Date,represent:function(e){return e.toISOString()}}),_$merge_27=new _$type_18("tag:yaml.org,2002:merge",{kind:"scalar",resolve:function(e){return"<<"===e||null===e}}),NodeBuffer;try{var _require=require;NodeBuffer=_require("buffer").Buffer}catch(__){}var BASE64_MAP="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\n\r",_$binary_19=new _$type_18("tag:yaml.org,2002:binary",{kind:"scalar",resolve:function(e){if(null===e)return!1;var t,r,n=0,o=e.length,s=BASE64_MAP;for(r=0;r64)){if(t<0)return!1;n+=6}return n%8==0},construct:function(e){var t,r,n=e.replace(/[\r\n=]/g,""),o=n.length,s=BASE64_MAP,i=0,a=[];for(t=0;t>16&255),a.push(i>>8&255),a.push(255&i)),i=i<<6|s.indexOf(n.charAt(t));return 0==(r=o%4*6)?(a.push(i>>16&255),a.push(i>>8&255),a.push(255&i)):18===r?(a.push(i>>10&255),a.push(i>>2&255)):12===r&&a.push(i>>4&255),NodeBuffer?NodeBuffer.from?NodeBuffer.from(a):new NodeBuffer(a):a},predicate:function(e){return NodeBuffer&&NodeBuffer.isBuffer(e)},represent:function(e){var t,r,n="",o=0,s=e.length,i=BASE64_MAP;for(t=0;t>18&63],n+=i[o>>12&63],n+=i[o>>6&63],n+=i[63&o]),o=(o<<8)+e[t];return 0==(r=s%3)?(n+=i[o>>18&63],n+=i[o>>12&63],n+=i[o>>6&63],n+=i[63&o]):2===r?(n+=i[o>>10&63],n+=i[o>>4&63],n+=i[o<<2&63],n+=i[64]):1===r&&(n+=i[o>>2&63],n+=i[o<<4&63],n+=i[64],n+=i[64]),n}}),_hasOwnProperty=Object.prototype.hasOwnProperty,_toString=Object.prototype.toString,_$omap_29=new _$type_18("tag:yaml.org,2002:omap",{kind:"sequence",resolve:function(e){if(null===e)return!0;var t,r,n,o,s,i=[],a=e;for(t=0,r=a.length;t3)return!1;if("/"!==t[t.length-n.length-1])return!1}return!0},construct:function(e){var t=e,r=/\/([gim]*)$/.exec(e),n="";return"/"===t[0]&&(r&&(n=r[1]),t=t.slice(1,t.length-n.length-1)),new RegExp(t,n)},predicate:function(e){return"[object RegExp]"===Object.prototype.toString.call(e)},represent:function(e){var t="/"+e.source+"/";return e.global&&(t+="g"),e.multiline&&(t+="m"),e.ignoreCase&&(t+="i"),t}}),esprima;try{var ___require_23=require;esprima=___require_23("esprima")}catch(_){"undefined"!=typeof window&&(esprima=window.esprima)}var _$function_23=new _$type_18("tag:yaml.org,2002:js/function",{kind:"scalar",resolve:function(e){if(null===e)return!1;try{var t="("+e+")",r=esprima.parse(t,{range:!0});return"Program"===r.type&&1===r.body.length&&"ExpressionStatement"===r.body[0].type&&("ArrowFunctionExpression"===r.body[0].expression.type||"FunctionExpression"===r.body[0].expression.type)}catch(n){return!1}},construct:function(e){var t,r="("+e+")",n=esprima.parse(r,{range:!0}),o=[];if("Program"!==n.type||1!==n.body.length||"ExpressionStatement"!==n.body[0].type||"ArrowFunctionExpression"!==n.body[0].expression.type&&"FunctionExpression"!==n.body[0].expression.type)throw new Error("Failed to resolve function");return n.body[0].expression.params.forEach((function(e){o.push(e.name)})),t=n.body[0].expression.body.range,"BlockStatement"===n.body[0].expression.body.type?new Function(o,r.slice(t[0]+1,t[1]-1)):new Function(o,"return "+r.slice(t[0],t[1]))},predicate:function(e){return"[object Function]"===Object.prototype.toString.call(e)},represent:function(e){return e.toString()}}),_$default_full_14=_$schema_12.DEFAULT=new _$schema_12({include:[_$default_safe_15],explicit:[_$undefined_25,_$regexp_24,_$function_23]}),_$loader_10={},___hasOwnProperty_10=Object.prototype.hasOwnProperty,CONTEXT_FLOW_IN=1,CONTEXT_FLOW_OUT=2,CONTEXT_BLOCK_IN=3,CONTEXT_BLOCK_OUT=4,CHOMPING_CLIP=1,CHOMPING_STRIP=2,CHOMPING_KEEP=3,PATTERN_NON_PRINTABLE=/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,PATTERN_NON_ASCII_LINE_BREAKS=/[\x85\u2028\u2029]/,PATTERN_FLOW_INDICATORS=/[,\[\]\{\}]/,PATTERN_TAG_HANDLE=/^(?:!|!!|![a-z\-]+!)$/i,PATTERN_TAG_URI=/^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i;function _class(e){return Object.prototype.toString.call(e)}function is_EOL(e){return 10===e||13===e}function is_WHITE_SPACE(e){return 9===e||32===e}function is_WS_OR_EOL(e){return 9===e||32===e||10===e||13===e}function is_FLOW_INDICATOR(e){return 44===e||91===e||93===e||123===e||125===e}function fromHexCode(e){var t;return 48<=e&&e<=57?e-48:97<=(t=32|e)&&t<=102?t-97+10:-1}function simpleEscapeSequence(e){return 48===e?"\0":97===e?"\x07":98===e?"\b":116===e||9===e?"\t":110===e?"\n":118===e?"\v":102===e?"\f":114===e?"\r":101===e?"\x1b":32===e?" ":34===e?'"':47===e?"/":92===e?"\\":78===e?"\x85":95===e?"\xa0":76===e?"\u2028":80===e?"\u2029":""}function charFromCodepoint(e){return e<=65535?String.fromCharCode(e):String.fromCharCode(55296+(e-65536>>10),56320+(e-65536&1023))}for(var simpleEscapeCheck=new Array(256),simpleEscapeMap=new Array(256),i=0;i<256;i++)simpleEscapeCheck[i]=simpleEscapeSequence(i)?1:0,simpleEscapeMap[i]=simpleEscapeSequence(i);function State(e,t){this.input=e,this.filename=t.filename||null,this.schema=t.schema||_$default_full_14,this.onWarning=t.onWarning||null,this.legacy=t.legacy||!1,this.json=t.json||!1,this.listener=t.listener||null,this.implicitTypes=this.schema.compiledImplicit,this.typeMap=this.schema.compiledTypeMap,this.length=e.length,this.position=0,this.line=0,this.lineStart=0,this.lineIndent=0,this.documents=[]}function generateError(e,t){return new _$exception_9(t,new _$mark_11(e.filename,e.input,e.position,e.line,e.position-e.lineStart))}function throwError(e,t){throw generateError(e,t)}function throwWarning(e,t){e.onWarning&&e.onWarning.call(null,generateError(e,t))}var directiveHandlers={YAML:function(e,t,r){var n,o,s;null!==e.version&&throwError(e,"duplication of %YAML directive"),1!==r.length&&throwError(e,"YAML directive accepts exactly one argument"),null===(n=/^([0-9]+)\.([0-9]+)$/.exec(r[0]))&&throwError(e,"ill-formed argument of the YAML directive"),o=parseInt(n[1],10),s=parseInt(n[2],10),1!==o&&throwError(e,"unacceptable YAML version of the document"),e.version=r[0],e.checkLineBreaks=s<2,1!==s&&2!==s&&throwWarning(e,"unsupported YAML version of the document")},TAG:function(e,t,r){var n,o;2!==r.length&&throwError(e,"TAG directive accepts exactly two arguments"),n=r[0],o=r[1],PATTERN_TAG_HANDLE.test(n)||throwError(e,"ill-formed tag handle (first argument) of the TAG directive"),___hasOwnProperty_10.call(e.tagMap,n)&&throwError(e,'there is a previously declared suffix for "'+n+'" tag handle'),PATTERN_TAG_URI.test(o)||throwError(e,"ill-formed tag prefix (second argument) of the TAG directive"),e.tagMap[n]=o}};function captureSegment(e,t,r,n){var o,s,i,a;if(t1&&(e.result+=_$common_7.repeat("\n",t-1))}function readBlockSequence(e,t){var r,n,o=e.tag,s=e.anchor,i=[],a=!1;for(null!==e.anchor&&(e.anchorMap[e.anchor]=i),n=e.input.charCodeAt(e.position);0!==n&&45===n&&is_WS_OR_EOL(e.input.charCodeAt(e.position+1));)if(a=!0,e.position++,skipSeparationSpace(e,!0,-1)&&e.lineIndent<=t)i.push(null),n=e.input.charCodeAt(e.position);else if(r=e.line,composeNode(e,t,CONTEXT_BLOCK_IN,!1,!0),i.push(e.result),skipSeparationSpace(e,!0,-1),n=e.input.charCodeAt(e.position),(e.line===r||e.lineIndent>t)&&0!==n)throwError(e,"bad indentation of a sequence entry");else if(e.lineIndentt?d=1:e.lineIndent===t?d=0:e.lineIndentt?d=1:e.lineIndent===t?d=0:e.lineIndentt)&&(composeNode(e,t,CONTEXT_BLOCK_OUT,!0,o)&&(_?d=e.result:h=e.result),_||(storeMappingPair(e,p,l,f,d,h,s,i),f=d=h=null),skipSeparationSpace(e,!0,-1),a=e.input.charCodeAt(e.position)),e.lineIndent>t&&0!==a)throwError(e,"bad indentation of a mapping entry");else if(e.lineIndent=0))break;0===o?throwError(e,"bad explicit indentation width of a block scalar; it cannot be less than one"):c?throwError(e,"repeat of an indentation width identifier"):(p=t+o-1,c=!0)}if(is_WHITE_SPACE(s)){do{s=e.input.charCodeAt(++e.position)}while(is_WHITE_SPACE(s));if(35===s)do{s=e.input.charCodeAt(++e.position)}while(!is_EOL(s)&&0!==s)}for(;0!==s;){for(readLineBreak(e),e.lineIndent=0,s=e.input.charCodeAt(e.position);(!c||e.lineIndentp&&(p=e.lineIndent),is_EOL(s))l++;else{if(e.lineIndent0){for(o=i,s=0;o>0;o--)(i=fromHexCode(a=e.input.charCodeAt(++e.position)))>=0?s=(s<<4)+i:throwError(e,"expected hexadecimal character");e.result+=charFromCodepoint(s),e.position++}else throwError(e,"unknown escape sequence");r=n=e.position}else is_EOL(a)?(captureSegment(e,r,n,!0),writeFoldedLines(e,skipSeparationSpace(e,!1,t)),r=n=e.position):e.position===e.lineStart&&testDocumentSeparator(e)?throwError(e,"unexpected end of the document within a double quoted scalar"):(e.position++,n=e.position)}throwError(e,"unexpected end of the stream within a double quoted scalar")}(e,l)?_=!0:function(e){var t,r,n;if(42!==(n=e.input.charCodeAt(e.position)))return!1;for(n=e.input.charCodeAt(++e.position),t=e.position;0!==n&&!is_WS_OR_EOL(n)&&!is_FLOW_INDICATOR(n);)n=e.input.charCodeAt(++e.position);return e.position===t&&throwError(e,"name of an alias node must contain at least one character"),r=e.input.slice(t,e.position),___hasOwnProperty_10.call(e.anchorMap,r)||throwError(e,'unidentified alias "'+r+'"'),e.result=e.anchorMap[r],skipSeparationSpace(e,!0,-1),!0}(e)?(_=!0,null===e.tag&&null===e.anchor||throwError(e,"alias node should not have any properties")):function(e,t,r){var n,o,s,i,a,u,c,p,l=e.kind,f=e.result;if(is_WS_OR_EOL(p=e.input.charCodeAt(e.position))||is_FLOW_INDICATOR(p)||35===p||38===p||42===p||33===p||124===p||62===p||39===p||34===p||37===p||64===p||96===p)return!1;if((63===p||45===p)&&(is_WS_OR_EOL(n=e.input.charCodeAt(e.position+1))||r&&is_FLOW_INDICATOR(n)))return!1;for(e.kind="scalar",e.result="",o=s=e.position,i=!1;0!==p;){if(58===p){if(is_WS_OR_EOL(n=e.input.charCodeAt(e.position+1))||r&&is_FLOW_INDICATOR(n))break}else if(35===p){if(is_WS_OR_EOL(e.input.charCodeAt(e.position-1)))break}else{if(e.position===e.lineStart&&testDocumentSeparator(e)||r&&is_FLOW_INDICATOR(p))break;if(is_EOL(p)){if(a=e.line,u=e.lineStart,c=e.lineIndent,skipSeparationSpace(e,!1,-1),e.lineIndent>=t){i=!0,p=e.input.charCodeAt(e.position);continue}e.position=s,e.line=a,e.lineStart=u,e.lineIndent=c;break}}i&&(captureSegment(e,o,s,!1),writeFoldedLines(e,e.line-a),o=s=e.position,i=!1),is_WHITE_SPACE(p)||(s=e.position+1),p=e.input.charCodeAt(++e.position)}return captureSegment(e,o,s,!1),!!e.result||(e.kind=l,e.result=f,!1)}(e,l,CONTEXT_FLOW_IN===r)&&(_=!0,null===e.tag&&(e.tag="?")),null!==e.anchor&&(e.anchorMap[e.anchor]=e.result)):0===d&&(_=a&&readBlockSequence(e,f))),null!==e.tag&&"!"!==e.tag)if("?"===e.tag){for(null!==e.result&&"scalar"!==e.kind&&throwError(e,'unacceptable node kind for ! tag; it should be "scalar", not "'+e.kind+'"'),u=0,c=e.implicitTypes.length;u tag; it should be "'+p.kind+'", not "'+e.kind+'"'),p.resolve(e.result)?(e.result=p.construct(e.result),null!==e.anchor&&(e.anchorMap[e.anchor]=e.result)):throwError(e,"cannot resolve a node with !<"+e.tag+"> explicit tag")):throwError(e,"unknown tag !<"+e.tag+">");return null!==e.listener&&e.listener("close",e),null!==e.tag||null!==e.anchor||_}function readDocument(e){var t,r,n,o,s=e.position,i=!1;for(e.version=null,e.checkLineBreaks=e.legacy,e.tagMap={},e.anchorMap={};0!==(o=e.input.charCodeAt(e.position))&&(skipSeparationSpace(e,!0,-1),o=e.input.charCodeAt(e.position),!(e.lineIndent>0||37!==o));){for(i=!0,o=e.input.charCodeAt(++e.position),t=e.position;0!==o&&!is_WS_OR_EOL(o);)o=e.input.charCodeAt(++e.position);for(n=[],(r=e.input.slice(t,e.position)).length<1&&throwError(e,"directive name must not be less than one character in length");0!==o;){for(;is_WHITE_SPACE(o);)o=e.input.charCodeAt(++e.position);if(35===o){do{o=e.input.charCodeAt(++e.position)}while(0!==o&&!is_EOL(o));break}if(is_EOL(o))break;for(t=e.position;0!==o&&!is_WS_OR_EOL(o);)o=e.input.charCodeAt(++e.position);n.push(e.input.slice(t,e.position))}0!==o&&readLineBreak(e),___hasOwnProperty_10.call(directiveHandlers,r)?directiveHandlers[r](e,r,n):throwWarning(e,'unknown document directive "'+r+'"')}skipSeparationSpace(e,!0,-1),0===e.lineIndent&&45===e.input.charCodeAt(e.position)&&45===e.input.charCodeAt(e.position+1)&&45===e.input.charCodeAt(e.position+2)?(e.position+=3,skipSeparationSpace(e,!0,-1)):i&&throwError(e,"directives end mark is expected"),composeNode(e,e.lineIndent-1,CONTEXT_BLOCK_OUT,!1,!0),skipSeparationSpace(e,!0,-1),e.checkLineBreaks&&PATTERN_NON_ASCII_LINE_BREAKS.test(e.input.slice(s,e.position))&&throwWarning(e,"non-ASCII line breaks are interpreted as content"),e.documents.push(e.result),e.position===e.lineStart&&testDocumentSeparator(e)?46===e.input.charCodeAt(e.position)&&(e.position+=3,skipSeparationSpace(e,!0,-1)):e.position0?e.charCodeAt(s-1):null,d=d&&isPlainSafe(i,a)}else{for(s=0;sn&&" "!==e[f+1],f=s);else if(!isPrintable(i))return STYLE_DOUBLE;a=s>0?e.charCodeAt(s-1):null,d=d&&isPlainSafe(i,a)}p=p||l&&s-f-1>n&&" "!==e[f+1]}return c||p?r>9&&needIndentIndicator(e)?STYLE_DOUBLE:p?STYLE_FOLDED:STYLE_LITERAL:d&&!o(e)?STYLE_PLAIN:STYLE_SINGLE}function writeScalar(e,t,r,n){e.dump=function(){if(0===t.length)return"''";if(!e.noCompatMode&&-1!==DEPRECATED_BOOLEANS_SYNTAX.indexOf(t))return"'"+t+"'";var o=e.indent*Math.max(1,r),s=-1===e.lineWidth?-1:Math.max(Math.min(e.lineWidth,40),e.lineWidth-o),i=n||e.flowLevel>-1&&r>=e.flowLevel;switch(chooseScalarStyle(t,i,e.indent,s,(function(t){return function(e,t){var r,n;for(r=0,n=e.implicitTypes.length;r"+blockHeader(t,e.indent)+dropEndingNewline(indentString(function(e,t){for(var r,n,o,s=/(\n+)([^\n]*)/g,i=(o=-1!==(o=e.indexOf("\n"))?o:e.length,s.lastIndex=o,foldLine(e.slice(0,o),t)),a="\n"===e[0]||" "===e[0];n=s.exec(e);){var u=n[1],c=n[2];r=" "===c[0],i+=u+(a||r||""===c?"":"\n")+foldLine(c,t),a=r}return i}(t,s),o));case STYLE_DOUBLE:return'"'+function(e){for(var t,r,n,o="",s=0;s=55296&&t<=56319&&(r=e.charCodeAt(s+1))>=56320&&r<=57343?(o+=encodeHex(1024*(t-55296)+r-56320+65536),s++):o+=!(n=ESCAPE_SEQUENCES[t])&&isPrintable(t)?e[s]:n||encodeHex(t);return o}(t)+'"';default:throw new _$exception_9("impossible error: invalid scalar style")}}()}function blockHeader(e,t){var r=needIndentIndicator(e)?String(t):"",n="\n"===e[e.length-1];return r+(!n||"\n"!==e[e.length-2]&&"\n"!==e?n?"":"-":"+")+"\n"}function dropEndingNewline(e){return"\n"===e[e.length-1]?e.slice(0,-1):e}function foldLine(e,t){if(""===e||" "===e[0])return e;for(var r,n,o=/ [^ ]/g,s=0,i=0,a=0,u="";r=o.exec(e);)(a=r.index)-s>t&&(n=i>s?i:a,u+="\n"+e.slice(s,n),s=n+1),i=a;return u+="\n",e.length-s>t&&i>s?u+=e.slice(s,i)+"\n"+e.slice(i+1):u+=e.slice(s),u.slice(1)}function detectType(e,t,r){var n,o,s,i,a,u;for(s=0,i=(o=r?e.explicitTypes:e.implicitTypes).length;s tag resolver accepts not "'+u+'" style');n=a.represent[u](t,u)}e.dump=n}return!0}return!1}function writeNode(e,t,r,n,o,s){e.tag=null,e.dump=r,detectType(e,r,!1)||detectType(e,r,!0);var i=___toString_8.call(e.dump);n&&(n=e.flowLevel<0||e.flowLevel>t);var a,u,c="[object Object]"===i||"[object Array]"===i;if(c&&(u=-1!==(a=e.duplicates.indexOf(r))),(null!==e.tag&&"?"!==e.tag||u||2!==e.indent&&t>0)&&(o=!1),u&&e.usedDuplicates[a])e.dump="*ref_"+a;else{if(c&&u&&!e.usedDuplicates[a]&&(e.usedDuplicates[a]=!0),"[object Object]"===i)n&&0!==Object.keys(e.dump).length?(function(e,t,r,n){var o,s,i,a,u,c,p="",l=e.tag,f=Object.keys(r);if(!0===e.sortKeys)f.sort();else if("function"==typeof e.sortKeys)f.sort(e.sortKeys);else if(e.sortKeys)throw new _$exception_9("sortKeys must be a boolean or a function");for(o=0,s=f.length;o1024)&&(e.dump&&CHAR_LINE_FEED===e.dump.charCodeAt(0)?c+="?":c+="? "),c+=e.dump,u&&(c+=generateNextLine(e,t)),writeNode(e,t+1,a,!0,u)&&(e.dump&&CHAR_LINE_FEED===e.dump.charCodeAt(0)?c+=":":c+=": ",p+=c+=e.dump));e.tag=l,e.dump=p||"{}"}(e,t,e.dump,o),u&&(e.dump="&ref_"+a+e.dump)):(function(e,t,r){var n,o,s,i,a,u="",c=e.tag,p=Object.keys(r);for(n=0,o=p.length;n1024&&(a+="? "),a+=e.dump+(e.condenseFlow?'"':"")+":"+(e.condenseFlow?"":" "),writeNode(e,t,i,!1,!1)&&(u+=a+=e.dump));e.tag=c,e.dump="{"+u+"}"}(e,t,e.dump),u&&(e.dump="&ref_"+a+" "+e.dump));else if("[object Array]"===i){var p=e.noArrayIndent&&t>0?t-1:t;n&&0!==e.dump.length?(function(e,t,r,n){var o,s,i="",a=e.tag;for(o=0,s=r.length;o "+e.dump)}return!0}function getDuplicateReferences(e,t){var r,n,o=[],s=[];for(function e(t,r,n){var o,s,i;if(null!==t&&"object"==typeof t)if(-1!==(s=r.indexOf(t)))-1===n.indexOf(s)&&n.push(s);else if(r.push(t),Array.isArray(t))for(s=0,i=t.length;s0?o-4:o;for(r=0;r>16&255,i[a++]=t>>8&255,i[a++]=255&t;return 2===s&&(t=revLookup[e.charCodeAt(r)]<<2|revLookup[e.charCodeAt(r+1)]>>4,i[a++]=255&t),1===s&&(t=revLookup[e.charCodeAt(r)]<<10|revLookup[e.charCodeAt(r+1)]<<4|revLookup[e.charCodeAt(r+2)]>>2,i[a++]=t>>8&255,i[a++]=255&t),i},fromByteArray:function(e){for(var t,r=e.length,n=r%3,o=[],s=0,i=r-n;si?i:s+16383));return 1===n?(t=e[r-1],o.push(lookup[t>>2]+lookup[t<<4&63]+"==")):2===n&&(t=(e[r-2]<<8)+e[r-1],o.push(lookup[t>>10]+lookup[t>>4&63]+lookup[t<<2&63]+"=")),o.join("")}},lookup=[],revLookup=[],Arr="undefined"!=typeof Uint8Array?Uint8Array:Array,code="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",__i_1=0,len=code.length;__i_10)throw new Error("Invalid string. Length must be a multiple of 4");var r=e.indexOf("=");return-1===r&&(r=t),[r,r===t?0:4-r%4]}function encodeChunk(e,t,r){for(var n,o,s=[],i=t;i>18&63]+lookup[o>>12&63]+lookup[o>>6&63]+lookup[63&o]);return s.join("")}revLookup["-".charCodeAt(0)]=62,revLookup["_".charCodeAt(0)]=63;var _$ieee754_3={read:function(e,t,r,n,o){var s,i,a=8*o-n-1,u=(1<>1,p=-7,l=r?o-1:0,f=r?-1:1,d=e[t+l];for(l+=f,s=d&(1<<-p)-1,d>>=-p,p+=a;p>0;s=256*s+e[t+l],l+=f,p-=8);for(i=s&(1<<-p)-1,s>>=-p,p+=n;p>0;i=256*i+e[t+l],l+=f,p-=8);if(0===s)s=1-c;else{if(s===u)return i?NaN:1/0*(d?-1:1);i+=Math.pow(2,n),s-=c}return(d?-1:1)*i*Math.pow(2,s-n)},write:function(e,t,r,n,o,s){var i,a,u,c=8*s-o-1,p=(1<>1,f=23===o?Math.pow(2,-24)-Math.pow(2,-77):0,d=n?0:s-1,h=n?1:-1,_=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(a=isNaN(t)?1:0,i=p):(i=Math.floor(Math.log(t)/Math.LN2),t*(u=Math.pow(2,-i))<1&&(i--,u*=2),(t+=i+l>=1?f/u:f*Math.pow(2,1-l))*u>=2&&(i++,u/=2),i+l>=p?(a=0,i=p):i+l>=1?(a=(t*u-1)*Math.pow(2,o),i+=l):(a=t*Math.pow(2,l-1)*Math.pow(2,o),i=0));o>=8;e[r+d]=255&a,d+=h,a/=256,o-=8);for(i=i<0;e[r+d]=255&i,d+=h,i/=256,c-=8);e[r+d-h]|=128*_}},_$base64_4={exports:{}};(function(e,t){(function(){!function(e,t){var r,n;"object"==typeof _$base64_4.exports?_$base64_4.exports=t():"function"==typeof define&&define.amd?define(t):(r=e.Base64,(n=t()).noConflict=function(){return e.Base64=r,n},e.Meteor&&(Base64=n),e.Base64=n)}("undefined"!=typeof self?self:"undefined"!=typeof window?window:void 0!==e?e:this,(function(){"use strict";var e,r="function"==typeof atob,n="function"==typeof btoa,o="function"==typeof t,s="function"==typeof TextDecoder?new TextDecoder:void 0,i="function"==typeof TextEncoder?new TextEncoder:void 0,a=Array.prototype.slice.call("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="),u=(e={},a.forEach((function(t,r){return e[t]=r})),e),c=/^(?:[A-Za-z\d+\/]{4})*?(?:[A-Za-z\d+\/]{2}(?:==)?|[A-Za-z\d+\/]{3}=?)?$/,p=String.fromCharCode.bind(String),l="function"==typeof Uint8Array.from?Uint8Array.from.bind(Uint8Array):function(e,t){return void 0===t&&(t=function(e){return e}),new Uint8Array(Array.prototype.slice.call(e,0).map(t))},f=function(e){return e.replace(/=/g,"").replace(/[+\/]/g,(function(e){return"+"==e?"-":"_"}))},d=function(e){return e.replace(/[^A-Za-z0-9\+\/]/g,"")},h=function(e){for(var t,r,n,o,s="",i=e.length%3,u=0;u255||(n=e.charCodeAt(u++))>255||(o=e.charCodeAt(u++))>255)throw new TypeError("invalid character found");s+=a[(t=r<<16|n<<8|o)>>18&63]+a[t>>12&63]+a[t>>6&63]+a[63&t]}return i?s.slice(0,i-3)+"===".substring(i):s},_=n?function(e){return btoa(e)}:o?function(e){return t.from(e,"binary").toString("base64")}:h,m=o?function(e){return t.from(e).toString("base64")}:function(e){for(var t=[],r=0,n=e.length;r>>6)+p(128|63&t):p(224|t>>>12&15)+p(128|t>>>6&63)+p(128|63&t);var t=65536+1024*(e.charCodeAt(0)-55296)+(e.charCodeAt(1)-56320);return p(240|t>>>18&7)+p(128|t>>>12&63)+p(128|t>>>6&63)+p(128|63&t)},$=/[\uD800-\uDBFF][\uDC00-\uDFFFF]|[^\x00-\x7F]/g,w=function(e){return e.replace($,y)},E=o?function(e){return t.from(e,"utf8").toString("base64")}:i?function(e){return m(i.encode(e))}:function(e){return _(w(e))},S=function(e,t){return void 0===t&&(t=!1),t?f(E(e)):E(e)},A=function(e){return S(e,!0)},O=/[\xC0-\xDF][\x80-\xBF]|[\xE0-\xEF][\x80-\xBF]{2}|[\xF0-\xF7][\x80-\xBF]{3}/g,v=function(e){switch(e.length){case 4:var t=((7&e.charCodeAt(0))<<18|(63&e.charCodeAt(1))<<12|(63&e.charCodeAt(2))<<6|63&e.charCodeAt(3))-65536;return p(55296+(t>>>10))+p(56320+(1023&t));case 3:return p((15&e.charCodeAt(0))<<12|(63&e.charCodeAt(1))<<6|63&e.charCodeAt(2));default:return p((31&e.charCodeAt(0))<<6|63&e.charCodeAt(1))}},b=function(e){return e.replace(O,v)},T=function(e){if(e=e.replace(/\s+/g,""),!c.test(e))throw new TypeError("malformed base64.");e+="==".slice(2-(3&e.length));for(var t,r,n,o="",s=0;s>16&255):64===n?p(t>>16&255,t>>8&255):p(t>>16&255,t>>8&255,255&t);return o},R=r?function(e){return atob(d(e))}:o?function(e){return t.from(e,"base64").toString("binary")}:T,C=o?function(e){return l(t.from(e,"base64"))}:function(e){return l(R(e),(function(e){return e.charCodeAt(0)}))},N=function(e){return C(L(e))},I=o?function(e){return t.from(e,"base64").toString("utf8")}:s?function(e){return s.decode(C(e))}:function(e){return b(R(e))},L=function(e){return d(e.replace(/[-_]/g,(function(e){return"-"==e?"+":"/"})))},P=function(e){return I(L(e))},k=function(e){return{value:e,enumerable:!1,writable:!0,configurable:!0}},x=function(){var e=function(e,t){return Object.defineProperty(String.prototype,e,k(t))};e("fromBase64",(function(){return P(this)})),e("toBase64",(function(e){return S(this,e)})),e("toBase64URI",(function(){return S(this,!0)})),e("toBase64URL",(function(){return S(this,!0)})),e("toUint8Array",(function(){return N(this)}))},U=function(){var e=function(e,t){return Object.defineProperty(Uint8Array.prototype,e,k(t))};e("toBase64",(function(e){return g(this,e)})),e("toBase64URI",(function(){return g(this,!0)})),e("toBase64URL",(function(){return g(this,!0)}))},F={version:"3.7.2",VERSION:"3.7.2",atob:R,atobPolyfill:T,btoa:_,btoaPolyfill:h,fromBase64:P,toBase64:S,encode:S,encodeURI:A,encodeURL:A,utob:w,btou:b,decode:P,isValid:function(e){if("string"!=typeof e)return!1;var t=e.replace(/\s+/g,"").replace(/={0,2}$/,"");return!/[^\s0-9a-zA-Z\+/]/.test(t)||!/[^\s0-9a-zA-Z\-_]/.test(t)},fromUint8Array:g,toUint8Array:N,extendString:x,extendUint8Array:U,extendBuiltins:function(){x(),U()},Base64:{}};return Object.keys(F).forEach((function(e){return F.Base64[e]=F[e]})),F}))}).call(this)}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},_$buffer_2({}).Buffer),_$base64_4=_$base64_4.exports;var _$logical_50={AND:function(...e){return e.reduce((e,t)=>e.map((e,r)=>t[r]&&e))},OR:function(...e){return e.reduce((e,t)=>e.map((e,r)=>t[r]||e))},NOT:function(e){return e.map(e=>!e)},FULL:function(e,t){return[...Array(e).keys()].map(()=>t)}};const{Base64:__Base64_37}=_$base64_4,{AND:AND,FULL:FULL}=_$logical_50,{getFlag:getFlag}=_$geo_48,PROXY_PREPROCESSORS=[{name:"HTML",test:e=>/^/.test(e),parse:e=>""},function(){const e=["dm1lc3M","c3NyOi8v","dHJvamFu","c3M6Ly","c3NkOi8v","c2hhZG93","aHR0c"];return{name:"Base64 Pre-processor",test:function(t){return e.some(e=>-1!==t.indexOf(e))},parse:function(e){return __Base64_37.decode(e)}}}(),{name:"Clash Pre-processor",test:function(e){return/proxies/.test(e)},parse:function(e){return _$staticJsYaml_35.safeLoad(e).proxies.map(e=>JSON.stringify(e)).join("\n")}},{name:"SSD Pre-processor",test:function(e){return 0===e.indexOf("ssd://")},parse:function(e){const t=[];let r=JSON.parse(__Base64_37.decode(e.split("ssd://")[1]));r.traffic_used,r.traffic_total,r.expiry,r.airport;let n=r.port,o=r.encryption,s=r.password,i=r.servers;for(let a=0;a{let[t,o]=e.split("=");if(t=t.trim(),o=o.trim(),-1!==n.indexOf(t)){r.type=t;const e=o.split(":");r.server=e[0],r.port=e[1]}else r[t.trim()]=o.trim()}),r}function t(){return{name:"Loon HTTP Parser",test:e=>/^.*=\s*http/i.test(e.split(",")[0])&&5===e.split(",").length&&-1===e.indexOf("username")&&-1===e.indexOf("password"),parse:e=>{const t=e.split("=")[1].split(","),r={name:e.split("=")[0].trim(),type:"http",server:t[1],port:t[2],tls:"443"===t[2]};return t[3]&&(r.username=t[3]),t[4]&&(r.password=t[4]),r.tls&&(r.sni=t["tls-name"]||r.server,r["skip-cert-verify"]=JSON.parse(t["skip-cert-verify"]||"false")),r}}}function r(e){const t={};t.name=e.split("=")[0].trim();const r=e.split(",");t.server=r[1].trim(),t.port=r[2].trim();for(let n=3;n/^ss:\/\//.test(e),parse:e=>{const t={};let r=e.split("ss://")[1];const n={name:decodeURIComponent(e.split("#")[1]),type:"ss",supported:t},o=(r=r.split("#")[0]).match(/@([^\/]*)(\/|$)/)[1],s=o.lastIndexOf(":");n.server=o.substring(0,s),n.port=o.substring(s+1);const i=__Base64_37.decode(r.split("@")[0]).split(":");if(n.cipher=i[0],n.password=i[1],-1!==r.indexOf("?plugin=")){const e=("plugin="+decodeURIComponent(r.split("?plugin=")[1].split("&")[0])).split(";"),o={};for(const t of e){const[e,r]=t.split("=");e&&(o[e]=r||!0)}switch(o.plugin){case"obfs-local":case"simple-obfs":n.plugin="obfs",n["plugin-opts"]={mode:o.obfs,host:o["obfs-host"]};break;case"v2ray-plugin":n.supported={...t,Loon:!1,Surge:!1},n.obfs="v2ray-plugin",n["plugin-opts"]={mode:"websocket",host:o["obfs-host"],path:o.path||"",tls:o.tls||!1};break;default:throw new Error("Unsupported plugin option: "+o.plugin)}}return n}},function(){const e={Surge:!1};return{name:"URI SSR Parser",test:e=>/^ssr:\/\//.test(e),parse:t=>{let r=(t=__Base64_37.decode(t.split("ssr://")[1])).indexOf(":origin");-1===r&&(r=t.indexOf(":auth_"));const n=t.substring(0,r),o=n.substring(0,n.lastIndexOf(":")),s=n.substring(n.lastIndexOf(":")+1);let i=t.substring(r+1).split("/?")[0].split(":"),a={type:"ssr",server:o,port:s,protocol:i[0],cipher:i[1],obfs:i[2],password:__Base64_37.decode(i[3]),supported:e};const u={};if((t=t.split("/?")[1].split("&")).length>1)for(const e of t){const[t,r]=e.split("=");u[t]=r.trim()}return{...a,name:u.remarks?__Base64_37.decode(u.remarks):a.server,"protocol-param":__Base64_37.decode(u.protoparam||"").replace(/\s/g,""),"obfs-param":__Base64_37.decode(u.obfsparam||"").replace(/\s/g,"")}}}}(),{name:"URI VMess Parser",test:e=>/^vmess:\/\//.test(e),parse:e=>{const t={};e=e.split("vmess://")[1];const r=__Base64_37.decode(e);if(/=\s*vmess/.test(r)){const e=r.split(",").map(e=>e.trim()),t={};for(const r of e)if(-1!==r.indexOf("=")){const[e,n]=r.split("=");t[e.trim()]=n.trim()}const n={name:e[0].split("=")[0].trim(),type:"vmess",server:e[1],port:e[2],cipher:e[3],uuid:e[4].match(/^"(.*)"$/)[1],tls:"over-tls"===t.obfs||"wss"===t.obfs};if(void 0!==t["udp-relay"]&&(n.udp=JSON.parse(t["udp-relay"])),void 0!==t["fast-open"]&&(n.udp=JSON.parse(t["fast-open"])),"ws"===t.obfs||"wss"===t.obfs){n.network="ws",n["ws-opts"].path=(t["obfs-path"]||'"/"').match(/^"(.*)"$/)[1];let e=t["obfs-header"];e&&-1!==e.indexOf("Host")&&(e=e.match(/Host:\s*([a-zA-Z0-9-.]*)/)[1]),n["ws-opts"].headers={Host:e||n.server}}return n.tls&&"false"===t['"tls-verification"']&&(n["skip-cert-verify"]=!0),n.tls&&t["obfs-host"]&&(n.sni=t["obfs-host"]),n}{const e=JSON.parse(r),n={name:e.ps,type:"vmess",server:e.add,port:e.port,cipher:"auto",uuid:e.id,alterId:e.aid||0,tls:"tls"===e.tls||!0===e.tls,supported:t};return"ws"===e.net&&(n.network="ws",n["ws-opts"]={path:e.path,headers:{Host:e.host||e.add}},n.tls&&e.host&&(n.sni=e.host)),!1===e.verify_cert&&(n["skip-cert-verify"]=!0),n}}},{name:"URI Trojan Parser",test:e=>/^trojan:\/\//.test(e),parse:e=>{e=e.split("trojan://")[1];const[t,r]=e.split("@")[1].split("?")[0].split(":"),n=decodeURIComponent(e.split("#")[1].trim());let o=e.split("?"),s=null;return o.length>1&&(o=o[1].split("#")[0].split("&"),s=new Map(o.map(e=>e.split("="))).get("sni")),{name:n||"[Trojan] "+t,type:"trojan",server:t,port:r,password:e.split("@")[0],sni:s,supported:{}}}},{name:"Clash Parser",test:e=>{try{JSON.parse(e)}catch(t){return!1}return!0},parse:e=>JSON.parse(e)},{name:"Surge SS Parser",test:e=>/^.*=\s*ss/.test(e.split(",")[0]),parse:e=>{const t=r(e),n={name:t.name,type:"ss",server:t.server,port:t.port,cipher:t["encrypt-method"],password:t.password,tfo:JSON.parse(t.tfo||"false"),udp:JSON.parse(t["udp-relay"]||"false")};return t.obfs&&(n.plugin="obfs",n["plugin-opts"]={mode:t.obfs,host:t["obfs-host"]}),n}},{name:"Surge VMess Parser",test:e=>/^.*=\s*vmess/.test(e.split(",")[0])&&-1!==e.indexOf("username"),parse:e=>{const t=r(e),n={name:t.name,type:"vmess",server:t.server,port:t.port,uuid:t.username,alterId:0,cipher:"none",tls:JSON.parse(t.tls||"false"),tfo:JSON.parse(t.tfo||"false")};if(n.tls&&(void 0!==t["skip-cert-verify"]&&(n["skip-cert-verify"]=!0===t["skip-cert-verify"]||"1"===t["skip-cert-verify"]),n.sni=t.sni||t.server),JSON.parse(t.ws||"false")){n.network="ws",n["ws-opts"]={path:t["ws-path"]};const e=t["ws-headers"].match(/(,|^|\s)*HOST:\s*(.*?)(,|$)/),r=e?e[2]:n.server;n["ws-opts"].headers={Host:r||t.server}}return n}},{name:"Surge Trojan Parser",test:e=>/^.*=\s*trojan/.test(e.split(",")[0])&&-1!==e.indexOf("sni"),parse:e=>{const t=r(e),n={name:t.name,type:"trojan",server:t.server,port:t.port,password:t.password,sni:t.sni||t.server,tfo:JSON.parse(t.tfo||"false")};return void 0!==t["skip-cert-verify"]&&(n["skip-cert-verify"]=!0===t["skip-cert-verify"]||"1"===t["skip-cert-verify"]),n}},{name:"Surge HTTP Parser",test:e=>/^.*=\s*http/.test(e.split(",")[0])&&!t().test(e),parse:e=>{const t=r(e),n={name:t.name,type:"http",server:t.server,port:t.port,tls:JSON.parse(t.tls||"false"),tfo:JSON.parse(t.tfo||"false")};return n.tls&&(void 0!==t["skip-cert-verify"]&&(n["skip-cert-verify"]=!0===t["skip-cert-verify"]||"1"===t["skip-cert-verify"]),n.sni=t.sni||t.server),t.username&&"none"!==t.username&&(n.username=t.username),t.password&&"none"!==t.password&&(n.password=t.password),n}},{name:"Loon SS Parser",test:e=>"shadowsocks"===e.split(",")[0].split("=")[1].trim().toLowerCase(),parse:e=>{const t=e.split("=")[1].split(","),r={name:e.split("=")[0].trim(),type:"ss",server:t[1],port:t[2],cipher:t[3],password:t[4].replace(/"/g,"")};return t.length>5&&(r.plugin="obfs",r["plugin-opts"]={mode:t[5],host:t[6]}),r}},{name:"Loon SSR Parser",test:e=>"shadowsocksr"===e.split(",")[0].split("=")[1].trim().toLowerCase(),parse:e=>{const t=e.split("=")[1].split(",");return{name:e.split("=")[0].trim(),type:"ssr",server:t[1],port:t[2],cipher:t[3],password:t[4].replace(/"/g,""),protocol:t[5],"protocol-param":t[6].match(/{(.*)}/)[1],supported:{Surge:!1},obfs:t[7],"obfs-param":t[8].match(/{(.*)}/)[1]}}},{name:"Loon VMess Parser",test:e=>/^.*=\s*vmess/i.test(e.split(",")[0])&&-1===e.indexOf("username"),parse:e=>{let t=e.split("=")[1].split(",");const r={name:e.split("=")[0].trim(),type:"vmess",server:t[1],port:t[2],cipher:t[3]||"none",uuid:t[4].replace(/"/g,""),alterId:0};t=t.splice(5);for(const n of t){const[e,r]=n.split(":");t[e]=r}switch(r.tls=JSON.parse(t["over-tls"]||"false"),r.tls&&(r.sni=t["tls-name"]||r.server,r["skip-cert-verify"]=JSON.parse(t["skip-cert-verify"]||"false")),t.transport){case"tcp":break;case"ws":r.network=t.transport,r["ws-opts"]={path:t.path,headers:{Host:t.host}}}return r.tls&&(r["skip-cert-verify"]=JSON.parse(t["skip-cert-verify"]||"false")),r}},{name:"Loon Trojan Parser",test:e=>/^.*=\s*trojan/i.test(e.split(",")[0])&&-1===e.indexOf("password"),parse:e=>{const t=e.split("=")[1].split(","),r={name:e.split("=")[0].trim(),type:"trojan",server:t[1],port:t[2],password:t[3].replace(/"/g,""),sni:t[1],"skip-cert-verify":JSON.parse(t["skip-cert-verify"]||"false")};if(t.length>4){const[n,o]=t[4].split(":");if("tls-name"!==n)throw new Error(`Unknown option ${n} for line: \n${e}`);r.sni=o}return r}},t(),{name:"QX SS Parser",test:e=>/^shadowsocks\s*=/.test(e.split(",")[0].trim())&&-1===e.indexOf("ssr-protocol"),parse:t=>{const r=e(t),n={name:r.tag,type:"ss",server:r.server,port:r.port,cipher:r.method,password:r.password,udp:JSON.parse(r["udp-relay"]||"false"),tfo:JSON.parse(r["fast-open"]||"false"),supported:{}};if(r.obfs)switch(n["plugin-opts"]={host:r["obfs-host"]||n.server},r.obfs){case"http":case"tls":n.plugin="obfs",n["plugin-opts"].mode=r.obfs;break;case"ws":case"wss":n["plugin-opts"]={...n["plugin-opts"],mode:"websocket",path:r["obfs-uri"]||"/",tls:"wss"===r.obfs},n["plugin-opts"].tls&&void 0!==r["tls-verification"]&&(n["plugin-opts"]["skip-cert-verify"]=r["tls-verification"]),n.plugin="v2ray-plugin",n.supported.Surge=!1,n.supported.Loon=!1}return n}},{name:"QX SSR Parser",test:e=>/^shadowsocks\s*=/.test(e.split(",")[0].trim())&&-1!==e.indexOf("ssr-protocol"),parse:t=>{const r=e(t),n={name:r.tag,type:"ssr",server:r.server,port:r.port,cipher:r.method,password:r.password,protocol:r["ssr-protocol"],obfs:"plain","protocol-param":r["ssr-protocol-param"],udp:JSON.parse(r["udp-relay"]||"false"),tfo:JSON.parse(r["fast-open"]||"false"),supported:{Surge:!1}};return r.obfs&&(n.obfs=r.obfs,n["obfs-param"]=r["obfs-host"]),n}},{name:"QX VMess Parser",test:e=>/^vmess\s*=/.test(e.split(",")[0].trim()),parse:t=>{const r=e(t),n={type:"vmess",name:r.tag,server:r.server,port:r.port,cipher:r.method||"none",uuid:r.password,alterId:0,tls:"over-tls"===r.obfs||"wss"===r.obfs,udp:JSON.parse(r["udp-relay"]||"false"),tfo:JSON.parse(r["fast-open"]||"false")};return n.tls&&(n.sni=r["obfs-host"]||r.server,n["skip-cert-verify"]=!JSON.parse(r["tls-verification"]||"true")),"ws"!==r.obfs&&"wss"!==r.obfs||(n.network="ws",n["ws-opts"]={path:r["obfs-uri"],headers:{Host:r["obfs-host"]||r.server}}),n}},{name:"QX Trojan Parser",test:e=>/^trojan\s*=/.test(e.split(",")[0].trim()),parse:t=>{const r=e(t),n={type:"trojan",name:r.tag,server:r.server,port:r.port,password:r.password,sni:r["tls-host"]||r.server,udp:JSON.parse(r["udp-relay"]||"false"),tfo:JSON.parse(r["fast-open"]||"false")};return n["skip-cert-verify"]=!JSON.parse(r["tls-verification"]||"true"),n}},{name:"QX HTTP Parser",test:e=>/^http\s*=/.test(e.split(",")[0].trim()),parse:t=>{const r=e(t),n={type:"http",name:r.tag,server:r.server,port:r.port,tls:JSON.parse(r["over-tls"]||"false"),udp:JSON.parse(r["udp-relay"]||"false"),tfo:JSON.parse(r["fast-open"]||"false")};return r.username&&"none"!==r.username&&(n.username=r.username),r.password&&"none"!==r.password&&(n.password=r.password),n.tls&&(n.sni=r["tls-host"]||n.server,n["skip-cert-verify"]=!JSON.parse(r["tls-verification"]||"true")),n}}]}(),PROXY_PROCESSORS=function(){function SetPropertyOperator({key:e,value:t}){return{name:"Set Property Operator",func:r=>r.map(r=>(r[e]=t,r))}}function FlagOperator(e=!0){return{name:"Flag Operator",func:t=>t.map(t=>{if(e){const e=getFlag(t.name);t.name=removeFlag(t.name),t.name=e+" "+t.name,t.name=t.name.replace(/\ud83c\uddf9\ud83c\uddfc/g,"\ud83c\udde8\ud83c\uddf3")}else t.name=removeFlag(t.name);return t})}}function HandleDuplicateOperator(e){const{action:t,template:r,link:n,position:o}={action:"rename",template:"0 1 2 3 4 5 6 7 8 9",link:"-",position:"back",...e};return{name:"Handle Duplicate Operator",func:e=>{if("delete"===t){const t={};return e.filter(e=>!t[e.name]&&(t[e.name]=!0,!0))}if("rename"===t){const t=r.split(" "),s={};let i=0;e.forEach(e=>{void 0===s[e.name]?s[e.name]=1:s[e.name]++,i=Math.max(s[e.name].toString().length,i)});const a={};return e.map(e=>{if(s[e.name]>1){void 0===a[e.name]&&(a[e.name]=1);let r="",s=a[e.name]++,u=0;for(;s>0;)r=t[s%10]+r,s=parseInt(s/10),u++;for(;u++{switch(e){case"asc":case"desc":return t.sort((t,r)=>(t.name>r.name?1:-1)*("desc"===e?-1:1));case"random":return shuffle(t);default:throw new Error("Unknown sort option: "+e)}}}}function RegexSortOperator(e){return{name:"Regex Sort Operator",func:t=>(e=e.map(e=>buildRegex(e)),t.sort((t,r)=>{const n=getRegexOrder(e,t.name),o=getRegexOrder(e,r.name);return n&&!o?-1:o&&!n?1:n&&o?nt.map(t=>{for(const{expr:r,now:n}of e)t.name=t.name.replace(buildRegex(r,"g"),n).trim();return t})}}function RegexDeleteOperator(e){return{name:"Regex Delete Operator",func:RegexRenameOperator(e.map(e=>({expr:e,now:""}))).func}}function ScriptOperator(script,targetPlatform,$arguments){return{name:"Script Operator",func:proxies=>{let output=proxies;return function(){const $get=(e,t)=>(0,PROXY_PROCESSORS[e])(t),$process=__ApplyProcessor_37;eval(script),output=operator(proxies,targetPlatform)}(),output}}}function UselessFilter(){return{name:"Useless Filter",func:RegexFilter({regex:["\u7f51\u5740","\u6d41\u91cf","\u65f6\u95f4","\u5e94\u6025","\u8fc7\u671f","Bandwidth","expire"],keep:!1}).func}}function RegionFilter(e){const t={HK:"\ud83c\udded\ud83c\uddf0",TW:"\ud83c\uddf9\ud83c\uddfc",US:"\ud83c\uddfa\ud83c\uddf8",SG:"\ud83c\uddf8\ud83c\uddec",JP:"\ud83c\uddef\ud83c\uddf5",UK:"\ud83c\uddec\ud83c\udde7"};return{name:"Region Filter",func:r=>r.map(r=>{const n=getFlag(r.name);return e.some(e=>t[e]===n)})}}function RegexFilter({regex:e=[],keep:t=!0}){return{name:"Regex Filter",func:r=>r.map(r=>{const n=e.some(e=>buildRegex(e).test(r.name));return t?n:!n})}}function buildRegex(e,...t){return t=t.join(""),e.startsWith("(?i)")?(e=e.substr(4),new RegExp(e,"i"+t)):new RegExp(e,t)}function TypeFilter(e){return{name:"Type Filter",func:t=>t.map(t=>e.some(e=>t.type===e))}}function ScriptFilter(script,targetPlatform,$arguments){return{name:"Script Filter",func:proxies=>{let output=FULL(proxies.length,!0);return function(){eval(script),output=filter(proxies,targetPlatform)}(),output}}}return{"Useless Filter":UselessFilter,"Region Filter":RegionFilter,"Regex Filter":RegexFilter,"Type Filter":TypeFilter,"Script Filter":ScriptFilter,"Set Property Operator":SetPropertyOperator,"Flag Operator":FlagOperator,"Sort Operator":SortOperator,"Regex Sort Operator":RegexSortOperator,"Regex Rename Operator":RegexRenameOperator,"Regex Delete Operator":RegexDeleteOperator,"Script Operator":ScriptOperator,"Handle Duplicate Operator":HandleDuplicateOperator}}(),PROXY_PRODUCERS={QX:{produce:e=>{let t,r;switch(e.type){case"ss":if(t="","obfs"===e.plugin){const{host:r,mode:n}=e["plugin-opts"];t=`,obfs=${n}${r?",obfs-host="+r:""}`}if("v2ray-plugin"===e.plugin){const{tls:r,host:n,path:o}=e["plugin-opts"];t=`,obfs=${r?"wss":"ws"}${n?",obfs-host="+n:""}${o?",obfs-uri="+o:""}`}return`shadowsocks=${e.server}:${e.port},method=${e.cipher},password=${e.password}${t}${e.tfo?",fast-open=true":",fast-open=false"}${e.udp?",udp-relay=true":",udp-relay=false"},tag=${e.name}`;case"ssr":return`shadowsocks=${e.server}:${e.port},method=${e.cipher},password=${e.password},ssr-protocol=${e.protocol}${e["protocol-param"]?",ssr-protocol-param="+e["protocol-param"]:""}${e.obfs?",obfs="+e.obfs:""}${e["obfs-param"]?",obfs-host="+e["obfs-param"]:""},fast-open=${e.tfo||!1}${e.udp?",udp-relay=true":",udp-relay=false"},tag=${e.name}`;case"vmess":t="","ws"===e.network?t=e.tls?`,obfs=wss${e.sni?",obfs-host="+e.sni:""}${e["ws-opts"].path?",obfs-uri="+e["ws-opts"].path:""},tls-verification=${e["skip-cert-verify"]?"false":"true"}`:`,obfs=ws${e["ws-opts"].headers.Host?",obfs-host="+e["ws-opts"].headers.Host:""}${e["ws-opts"].path?",obfs-uri="+e["ws-opts"].path:""}`:e.tls&&(t=`,obfs=over-tls${e.sni?",obfs-host="+e.sni:""},tls-verification=${e["skip-cert-verify"]?"false":"true"}`);let n=`vmess=${e.server}:${e.port},method=${"auto"===e.cipher?"none":e.cipher},password=${e.uuid}${t},fast-open=${e.tfo||!1}${e.udp?",udp-relay=true":",udp-relay=false"}`;return 0===e.alterId&&(e["vmess-aead"]=!0),void 0!==e["vmess-aead"]&&(n+=",aead="+e["vmess-aead"]),n+=",tag="+e.name;case"trojan":return`trojan=${e.server}:${e.port},password=${e.password}${e.sni?",tls-host="+e.sni:""},over-tls=true,tls-verification=${e["skip-cert-verify"]?"false":"true"},fast-open=${e.tfo||!1}${e.udp?",udp-relay=true":",udp-relay=false"},tag=${e.name}`;case"http":return r="",e.tls&&(r=`,over-tls=true,tls-verification=${e["skip-cert-verify"]?"false":"true"}${e.sni?",tls-host="+e.sni:""}`),`http=${e.server}:${e.port},username=${e.username},password=${e.password}${r},fast-open=${e.tfo||!1},tag=${e.name}`}throw new Error("Platform QX does not support proxy type: "+e.type)}},Surge:{produce:e=>{let t,r,n="";switch(e.type){case"ss":if(t="",e.plugin){const{host:r,mode:n}=e["plugin-opts"];if("obfs"!==e.plugin)throw new Error("Platform Surge does not support obfs option: "+e.obfs);t=`,obfs=${n}${r?",obfs-host="+r:""}`}n=`${e.name}=ss,${e.server}, ${e.port},encrypt-method=${e.cipher},password=${e.password}${t},tfo=${e.tfo||"false"},udp-relay=${e.udp||"false"}`;break;case"vmess":if(r="",n=`${e.name}=vmess,${e.server},${e.port},username=${e.uuid},tls=${e.tls||"false"},tfo=${e.tfo||"false"}`,0===e.alterId&&(e["vmess-aead"]=!0),void 0!==e["vmess-aead"]&&(n+=",vmess-aead="+e["vmess-aead"]),"ws"===e.network){const t=e["ws-opts"].path||"/",r=Object.entries(e["ws-opts"].headers).map(([e,t])=>`${e}:"${t}"`).join("|");n+=`,ws=true${t?",ws-path="+t:""}${r?",ws-headers="+r:""}`}e.tls&&(n+=void 0!==e["skip-cert-verify"]?",skip-cert-verify="+e["skip-cert-verify"]:"",n+=e.sni?",sni="+e.sni:"");break;case"trojan":n=`${e.name}=trojan,${e.server},${e.port},password=${e.password}${void 0!==e["skip-cert-verify"]?",skip-cert-verify="+e["skip-cert-verify"]:""}${e.sni?",sni="+e.sni:""},tfo=${e.tfo||"false"},udp-relay=${e.udp||"false"}`;break;case"http":r=", tls=false",e.tls&&(r=`,tls=true,skip-cert-verify=${e["skip-cert-verify"]},sni=${e.sni}`),n=`${e.name}=http, ${e.server}, ${e.port}${e.username?",username="+e.username:""}${e.password?",password="+e.password:""}${r},tfo=${e.tfo||"false"}`;break;default:throw new Error("Platform Surge does not support proxy type: "+e.type)}return n+(void 0!==e["surge-hybrid"]?",hybrid="+e["surge-hybrid"]:"")}},Loon:{produce:e=>{let t="",r="",n="",o="";switch(void 0!==e.udp&&(n=e.udp?",udp=true":",udp=false"),o=",fast-open="+(e.tfo||!1),e.type){case"ss":if(t=",,",e.plugin){if("obfs"!==e.plugin)throw new Error("Platform Loon does not support obfs option: "+e.obfs);{const{mode:r,host:n}=e["plugin-opts"];t=`,${r},${n||""}`}}return`${e.name}=shadowsocks,${e.server},${e.port},${e.cipher},"${e.password}"${t}${n}${o}`;case"ssr":return`${e.name}=shadowsocksr,${e.server},${e.port},${e.cipher},"${e.password}",${e.protocol},{${e["protocol-param"]||""}},${e.obfs},{${e["obfs-param"]||""}}${n}${o}`;case"vmess":t="",t="ws"===e.network?`,transport:ws,host:${e["ws-opts"].headers.Host||e.server},path:${e["ws-opts"].path||"/"}`:",transport:tcp",e.tls&&(t+=`${e.sni?",tls-name:"+e.sni:""},skip-cert-verify:${e["skip-cert-verify"]||"false"}`);let s=`${e.name}=vmess,${e.server},${e.port},${"auto"===e.cipher?"none":e.cipher},"${e.uuid}",over-tls:${e.tls||"false"}${t}`;return 0===e.alterId&&(e["vmess-aead"]=!0),void 0!==e["vmess-aead"]&&(s+=",vmess-aead="+e["vmess-aead"]),s;case"trojan":return`${e.name}=trojan,${e.server},${e.port},"${e.password}"${e.sni?",tls-name:"+e.sni:""},skip-cert-verify:${e["skip-cert-verify"]||"false"}${n}`;case"http":r="";const i=`${e.name}=${e.tls?"http":"https"},${e.server},${e.port},${e.username||""},${e.password||""}`;return e.tls?i+(r=`${e.sni?",tls-name:"+e.sni:""},skip-cert-verify:${e["skip-cert-verify"]}`):i}throw new Error("Platform Loon does not support proxy type: "+e.type)}},Clash:{type:"ALL",produce:e=>"proxies:\n"+e.map(e=>(delete e.supported," - "+JSON.stringify(e)+"\n")).join("")},URI:{type:"SINGLE",produce:e=>{let t="";switch(e.type){case"ss":const r=`${e.cipher}:${e.password}`;if(t=`ss://${__Base64_37.encode(r)}@${e.server}:${e.port}/`,e.plugin){t+="?plugin=";const r=e["plugin-opts"];switch(e.plugin){case"obfs":t+=encodeURIComponent(`simple-obfs;obfs=${r.mode}${r.host?";obfs-host="+r.host:""}`);break;case"v2ray-plugin":t+=encodeURIComponent(`v2ray-plugin;obfs=${r.mode}${r.host?";obfs-host"+r.host:""}${r.tls?";tls":""}`);break;default:throw new Error("Unsupported plugin option: "+e.plugin)}}t+="#"+encodeURIComponent(e.name);break;case"ssr":t=`${e.server}:${e.port}:${e.protocol}:${e.cipher}:${e.obfs}:${__Base64_37.encode(e.password)}/`,t+=`?remarks=${__Base64_37.encode(e.name)}${e["obfs-param"]?"&obfsparam="+__Base64_37.encode(e["obfs-param"]):""}${e["protocol-param"]?"&protocolparam="+__Base64_37.encode(e["protocol-param"]):""}`,t="ssr://"+__Base64_37.encode(t);break;case"vmess":t={ps:e.name,add:e.server,port:e.port,id:e.uuid,type:"",aid:0,net:e.network||"tcp",tls:e.tls?"tls":""},"ws"===e.network&&(t.path=e["ws-opts"].path||"/",t.host=e["ws-opts"].headers.Host||e.server),t="vmess://"+__Base64_37.encode(JSON.stringify(t));break;case"trojan":t=`trojan://${e.password}@${e.server}:${e.port}#${encodeURIComponent(e.name)}`;break;default:throw new Error("Cannot handle proxy type: "+e.type)}return t}},JSON:{type:"ALL",produce:e=>JSON.stringify(e,null,2)}},ProxyUtils=function(){function e(e,t){let r;try{r=e.test(t)}catch(n){r=!1}return r}return{parse:function(t){const r=(t=function(e){for(const r of PROXY_PREPROCESSORS)try{if(r.test(e))return _$$_36.info(`Pre-processor [${r.name}] activated`),r.parse(e)}catch(t){_$$_36.error(`Parser [${r.name}] failed\n Reason: ${t}`)}return e}(t)).split("\n"),n=[];let o;for(let i of r){if(0===(i=i.trim()).length)continue;let t=o&&e(o,i);if(!t)for(const r of PROXY_PARSERS)if(e(r,i)){o=r,t=!0,_$$_36.info(`Proxy parser: ${r.name} is activated`);break}if(t)try{const e=o.parse(i);e||_$$_36.error(`Parser ${o.name} return nothing for \n${i}\n`),n.push(e)}catch(s){_$$_36.error(`Failed to parse line: \n ${i}\n Reason: ${s.stack}`)}else _$$_36.error(`Failed to find a rule to parse line: \n${i}\n`)}return n},process:async function(e,t=[],r){for(const o of t){let t;const s={};if(-1!==o.type.indexOf("Script")){const{mode:e,content:r}=o.args;if("link"===e){const e=r,i=e.split("#");if(i.length>1)for(const t of i[1].split("&")){const e=t.split("=")[0],r=t.split("=")[1]||!0;s[e]=r}try{t=await _$download_46(e.split("#")[0]),_$$_36.info("Script loaded: >>>\n "+t)}catch(n){_$$_36.error(`Error when downloading remote script: ${o.args.content}.\n Reason: ${n}`);continue}}else t=r}if(!PROXY_PROCESSORS[o.type]){_$$_36.error(`Unknown operator: "${o.type}"`);continue}let i;_$$_36.info(`Applying "${o.type}" with arguments:\n >>> ${JSON.stringify(o.args,null,2)||"None"}`),e=__ApplyProcessor_37(i=-1!==o.type.indexOf("Script")?PROXY_PROCESSORS[o.type](t,r,s):PROXY_PROCESSORS[o.type](o.args),e)}return e},produce:function(e,t){const r=PROXY_PRODUCERS[t];if(!r)throw new Error(`Target platform: ${t} is not supported!`);return e=e.filter(e=>!(e.supported&&!1===e.supported[t])),_$$_36.info("Producing proxies for target: "+t),void 0===r.type||"SINGLE"===r.type?e.map(e=>{try{return r.produce(e)}catch(t){return _$$_36.error(`Cannot produce proxy: ${JSON.stringify(e,null,2)}\nReason: ${t}`),""}}).filter(e=>e.length>0).join("\n"):"ALL"===r.type?r.produce(e):void 0}}}();function __ApplyProcessor_37(e,t){return-1!==e.name.indexOf("Filter")?function(e,t){let r=FULL(t.length,!0);try{r=AND(r,e.func(t))}catch(n){console.log(`Cannot apply filter ${e.name}\n Reason: ${n}`)}return t.filter((e,t)=>r[t])}(e,t):-1!==e.name.indexOf("Operator")?function(e,t){let r=clone(t);try{const t=e.func(r);t&&(r=t)}catch(n){console.log(`Cannot apply operator ${e.name}! Reason: ${n}`)}return r}(e,t):void 0}function shuffle(e){let t,r,n=e.length;for(;0!==n;)r=Math.floor(Math.random()*n),t=e[n-=1],e[n]=e[r],e[r]=t;return e}function clone(e){return JSON.parse(JSON.stringify(e))}function removeFlag(e){return e.replace(/[\uD83C][\uDDE6-\uDDFF][\uD83C][\uDDE6-\uDDFF]/g,"").trim()}var _$proxyUtils_37={ProxyUtils:ProxyUtils,ApplyProcessor:__ApplyProcessor_37};const RULE_TYPES_MAPPING=[[/^(DOMAIN|host|HOST)$/,"DOMAIN"],[/^(DOMAIN-KEYWORD|host-keyword|HOST-KEYWORD)$/,"DOMAIN-KEYWORD"],[/^(DOMAIN-SUFFIX|host-suffix|HOST-SUFFIX)$/,"DOMAIN-SUFFIX"],[/^USER-AGENT$/i,"USER-AGENT"],[/^PROCESS-NAME$/,"PROCESS-NAME"],[/^(DEST-PORT|DST-PORT)$/,"DST-PORT"],[/^SRC-IP(-CIDR)?$/,"SRC-IP"],[/^(IN|SRC)-PORT$/,"IN-PORT"],[/^PROTOCOL$/,"PROTOCOL"],[/^IP-CIDR$/i,"IP-CIDR"],[/^(IP-CIDR6|ip6-cidr|IP6-CIDR)$/]],RULE_PREPROCESSORS=[{name:"HTML",test:e=>/^/.test(e),parse:e=>""},{name:"Clash Provider",test:e=>0===e.indexOf("payload:"),parse:e=>e.replace("payload:","").replace(/^\s*-\s*/gm,"")}],RULE_PARSERS=[{name:"Universal Rule Parser",test:()=>!0,parse:e=>{const t=e.split("\n"),r=[];for(let o of t)if(0!==(o=o.trim()).length&&!/\s*#/.test(o))try{const e=o.split(",").map(e=>e.trim());let t=e[0],n=!1;for(const o of RULE_TYPES_MAPPING)if(o[0].test(t)){n=!0;const t={type:o[1],content:e[1]};"IP-CIDR"!==t.type&&"IP-CIDR6"!==t.type||(t.options=e.slice(2)),r.push(t)}if(!n)throw new Error("Invalid rule type: "+t)}catch(n){console.error(`Failed to parse line: ${o}\n Reason: ${n}`)}return r}}],RULE_PROCESSORS={"Regex Filter":function({regex:e=[],keep:t=!0}){return{name:"Regex Filter",func:r=>r.map(r=>{const n=e.some(e=>(e=new RegExp(e)).test(r));return t?n:!n})}},"Remove Duplicate Filter":function(){return{name:"Remove Duplicate Filter",func:e=>{const t=new Set,r=[];return e.forEach(e=>{const n=e.options||[];n.sort();const o=`${e.type},${e.content},${JSON.stringify(n)}`;t.has(o)||(r.push(e),t.add(o))}),r}}},"Type Filter":function(e){return{name:"Type Filter",func:t=>t.map(t=>e.some(e=>t.type===e))}},"Regex Replace Operator":function(e){return{name:"Regex Rename Operator",func:t=>t.map(t=>{for(const{expr:r,now:n}of e)t.content=t.content.replace(new RegExp(r,"g"),n).trim();return t})}}},RULE_PRODUCERS={QX:{type:"SINGLE",func:e=>-1!==["URL-REGEX","DEST-PORT","SRC-IP","IN-PORT","PROTOCOL"].indexOf(e.type)?null:`${{"DOMAIN-KEYWORD":"HOST-KEYWORD","DOMAIN-SUFFIX":"HOST-SUFFIX",DOMAIN:"HOST","IP-CIDR6":"IP6-CIDR"}[e.type]||e.type},${e.content},SUB-STORE`},Surge:{type:"SINGLE",func:e=>{let t=`${e.type},${e.content}`;return"IP-CIDR"!==e.type&&"IP-CIDR6"!==e.type||(t+=e.options?","+e.options[0]:""),t}},Loon:{type:"SINGLE",func:e=>-1!==["DEST-PORT","SRC-IP","IN-PORT","PROTOCOL"].indexOf(e.type)?null:(e=>{let t=`${e.type},${e.content}`;return"IP-CIDR"!==e.type&&"IP-CIDR6"!==e.type||(t+=e.options?","+e.options[0]:""),t})(e)},Clash:{type:"ALL",func:e=>{const t={"DEST-PORT":"DST-PORT","SRC-IP":"SRC-IP-CIDR","IN-PORT":"SRC-PORT"},r={payload:e.map(e=>{let r=`${t[e.type]||e.type},${e.content}`;return"IP-CIDR"!==e.type&&"IP-CIDR6"!==e.type||(r+=e.options?","+e.options[0]:""),r})};return YAML.stringify(r)}}},RuleUtils={parse:function(e){e=function(e){for(const r of RULE_PREPROCESSORS)try{if(r.test(e))return _$$_36.info(`Pre-processor [${r.name}] activated`),r.parse(e)}catch(t){_$$_36.error(`Parser [${r.name}] failed\n Reason: ${t}`)}return e}(e);for(const r of RULE_PARSERS){let n;try{n=r.test(e)}catch(t){n=!1}if(n)return _$$_36.info(`Rule parser [${r.name}] is activated!`),r.parse(e)}},process:async function(e,t){for(const r of t){if(!RULE_PROCESSORS[r.type]){console.error(`Unknown operator: ${r.type}!`);continue}const t=RULE_PROCESSORS[r.type](r.args);_$$_36.info(`Applying "${r.type}" with arguments: \n >>> ${JSON.stringify(r.args)||"None"}`),e=ApplyProcessor(t,e)}return e},produce:function(e,t){const r=RULE_PRODUCERS[t];if(!r)throw new Error(`Target platform: ${t} is not supported!`);return void 0===r.type||"SINGLE"===r.type?e.map(e=>{try{return r.func(e)}catch(t){return console.log(`ERROR: cannot produce rule: ${JSON.stringify(e)}\nReason: ${t}`),""}}).filter(e=>e.length>0).join("\n"):"ALL"===r.type?r.func(e):void 0}};var _$ruleUtils_38={RuleUtils:RuleUtils};const{ENV:__ENV_42}=_$openApi_51,{IP_API:IP_API}=_$geo_48,{SETTINGS_KEY:__SETTINGS_KEY_42,GIST_BACKUP_KEY:GIST_BACKUP_KEY,GIST_BACKUP_FILE_NAME:GIST_BACKUP_FILE_NAME}=_$constants_41;function getEnv(e,t){const{isNode:r,isQX:n,isLoon:o,isSurge:s}=__ENV_42();let i="Node";r&&(i="Node"),n&&(i="QX"),o&&(i="Loon"),s&&(i="Surge"),t.json({backend:i})}async function gistBackup(e,t){const{action:r}=e.query,{gistToken:n}=_$$_36.read(__SETTINGS_KEY_42);if(n){const e=new _$gist_49({token:n,key:GIST_BACKUP_KEY});try{let n;switch(r){case"upload":const t=_$$_36.read(__SETTINGS_KEY_42);t.syncTime=(new Date).getTime(),_$$_36.write(t,__SETTINGS_KEY_42),n=_$$_36.read("#sub-store"),_$$_36.env.isNode&&(n=JSON.stringify(_$$_36.cache,null," ")),_$$_36.info("\u4e0a\u4f20\u5907\u4efd\u4e2d..."),await e.upload({[GIST_BACKUP_FILE_NAME]:{content:n}});break;case"download":_$$_36.info("\u8fd8\u539f\u5907\u4efd\u4e2d..."),n=await e.download(GIST_BACKUP_FILE_NAME),_$$_36.write(n,"#sub-store"),_$$_36.env.isNode&&(n=JSON.parse(n),Object.keys(n).forEach(e=>{_$$_36.write(n[e],e)}))}t.json({status:"success"})}catch(o){const e=`${"upload"===r?"\u4e0a\u4f20":"\u4e0b\u8f7d"}\u5907\u4efd\u5931\u8d25\uff01${o}`;_$$_36.error(e),t.status(500).json({status:"failed",message:e})}}else t.status(500).json({status:"failed",message:"\u672a\u627e\u5230Gist\u5907\u4efdToken!"})}var _$facade_42=function(){const e=_$express_47({})();_$collections_40({}).register(e),_$subscriptions_44({}).register(e),_$settings_43({}).register(e),_$artifacts_39({}).register(e),e.get("/api/utils/IP_API/:server",IP_API),e.get("/api/utils/env",getEnv),e.get("/api/utils/backup",gistBackup),e.get("/",async(e,t)=>{t.set("location","https://sub-store.vercel.app/").status(302).end()}),__ENV_42().isQX&&e.options("/",async(e,t)=>{t.status(200).end()}),e.all("/",(e,t)=>{t.send("Hello from sub-store, made with \u2764\ufe0f by Peng-YM")}),e.start()},_$main_45={};console.log("\n\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\n \ud835\udc7a\ud835\udc96\ud835\udc83-\ud835\udc7a\ud835\udc95\ud835\udc90\ud835\udc93\ud835\udc86 \xa9 \ud835\udc77\ud835\udc86\ud835\udc8f\ud835\udc88-\ud835\udc80\ud835\udc74\n\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\n"),_$facade_42()}(); \ No newline at end of file