(function (UserAgentData) { (()=>{"use strict";let e,t,n,r,s,o,a,i,l;var c,d,u={44361(e){var t=Object.prototype.hasOwnProperty,n="~";function r(){}function s(e,t,n){this.fn=e,this.context=t,this.once=n||!1}function o(e,t,r,o,a){if("function"!=typeof r)throw TypeError("The listener must be a function");var i=new s(r,o||e,a),l=n?n+t:t;return e._events[l]?e._events[l].fn?e._events[l]=[e._events[l],i]:e._events[l].push(i):(e._events[l]=i,e._eventsCount++),e}function a(e,t){0==--e._eventsCount?e._events=new r:delete e._events[t]}function i(){this._events=new r,this._eventsCount=0}Object.create&&(r.prototype=Object.create(null),new r().__proto__||(n=!1)),i.prototype.eventNames=function(){var e,r,s=[];if(0===this._eventsCount)return s;for(r in e=this._events)t.call(e,r)&&s.push(n?r.slice(1):r);return Object.getOwnPropertySymbols?s.concat(Object.getOwnPropertySymbols(e)):s},i.prototype.listeners=function(e){var t=n?n+e:e,r=this._events[t];if(!r)return[];if(r.fn)return[r.fn];for(var s=0,o=r.length,a=Array(o);s{if("object"==typeof globalThis)return globalThis;try{return this||Function("return this")()}catch{if("object"==typeof window)return window}})(),g.rv=()=>"1.7.11",g.ruid="bundler=rspack@1.7.11";let h=/YYYY|MM|DD|HH|mm|ss/g,f={none:0,trace:10,debug:100,info:1e3,warn:1e4,error:1e5};class m{core;label;constructor(e,...t){this.core=e,this.label=t}log(e,t,...n){let r,s=function(...e){let t={};return e.forEach(e=>{e.forEach(e=>{Object.keys(e).forEach(n=>{t[n]=e[n]})})}),t}(this.label,n);f[e]>=f[this.core.level]&&this.core.writer.write(e,t,s);try{r=JSON.stringify(s)}catch(e){r=s,console.error("Logger label JSON stringify error:",e)}if("none"!==this.core.consoleLevel&&f[e]>=f[this.core.consoleLevel]){"object"==typeof t&&(t=JSON.stringify(t));let n=`${function(e=new Date,t="YYYY-MM-DD HH:mm:ss"){return t.replace(h,t=>{switch(t){case"YYYY":return e.getFullYear().toString();case"MM":{let t=e.getMonth()+1;return t<10?"0"+t:t.toString()}case"DD":{let t=e.getDate();return t<10?"0"+t:t.toString()}case"HH":{let t=e.getHours();return t<10?"0"+t:t.toString()}case"mm":{let t=e.getMinutes();return t<10?"0"+t:t.toString()}case"ss":{let t=e.getSeconds();return t<10?"0"+t:t.toString()}}return t})}(new Date,"YYYY-MM-DD HH:mm:ss")} [${e}] ${t}`;switch(e){case"error":console.error(n,r);break;case"warn":console.warn(n,r);break;default:console.info(n,r)}}}with(...e){return new m(this.core,...this.label,...e)}trace(e,...t){this.log("trace",e,...t)}debug(e,...t){this.log("debug",e,...t)}info(e,...t){this.log("info",e,...t)}warn(e,...t){this.log("warn",e,...t)}error(e,...t){this.log("error",e,...t)}static E(e){return"string"==typeof e?{error:e}:e instanceof Error?(console.error(e),{error:e.message}):"object"==typeof e?e:{}}}class y{static instance;static getInstance(){return y.instance}static logger(...e){return y.getInstance().logger(...e)}writer;level="info";consoleLevel="warn";labels;constructor(e){this.writer=e.writer,this.level=e.level||this.level,this.labels=e.labels||{},void 0!==e.consoleLevel&&(this.consoleLevel=e.consoleLevel),y.instance||(y.instance=this)}logger(...e){return new m(this,this.labels,...e)}}class v{msgSender;action;constructor(e,t="logger"){this.msgSender=e,this.action=t}write(e,t,n){this.msgSender.sendMessage({action:this.action,data:{id:0,level:e,message:t,label:n,createtime:Date.now()}})}}let b={randomUUID:"u">typeof crypto&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)},M=new Uint8Array(16),w=[];for(let e=0;e<256;++e)w.push((e+256).toString(16).slice(1));let A="function"==typeof crypto.randomUUID?crypto.randomUUID.bind(crypto):function(t,n,r){if(b.randomUUID&&!n&&!t)return b.randomUUID();let s=(t=t||{}).random??t.rng?.()??function(){if(!e){if("u"= 16");if(s[6]=15&s[6]|64,s[8]=63&s[8]|128,n){if((r=r||0)<0||r+16>n.length)throw RangeError(`UUID byte range ${r}:${r+15} is out of buffer bounds`);for(let e=0;e<16;++e)n[r+e]=s[e];return n}return function(e,t=0){return(w[e[t+0]]+w[e[t+1]]+w[e[t+2]]+w[e[t+3]]+"-"+w[e[t+4]]+w[e[t+5]]+"-"+w[e[t+6]]+w[e[t+7]]+"-"+w[e[t+8]]+w[e[t+9]]+"-"+w[e[t+10]]+w[e[t+11]]+w[e[t+12]]+w[e[t+13]]+w[e[t+14]]+w[e[t+15]]).toLowerCase()}(s)};var C=g(44361);let T=new C;class I{messageId;listenerId=`${A()}`;target;isSelfDisconnected=!1;constructor(e,t,n){this.messageId=e,this.target=n;let r=e=>{T.emit(`onMessage:${this.listenerId}`,e)},s=()=>{this.target&&(this.target=null,T.removeAllListeners(`cleanup:${this.listenerId}`),t.removeAllListeners("connectMessage:"+this.messageId),t.removeAllListeners("disconnect:"+this.messageId),T.emit(`onDisconnect:${this.listenerId}`,this.isSelfDisconnected),T.removeAllListeners(`onDisconnect:${this.listenerId}`),T.removeAllListeners(`onMessage:${this.listenerId}`))};t.addListener(`connectMessage:${this.messageId}`,r),t.addListener(`disconnect:${this.messageId}`,s),T.once(`cleanup:${this.listenerId}`,s)}sendMessage(e){if(!this.target)throw console.error("Attempted to sendMessage on a disconnected Target."),Error("Attempted to sendMessage on a disconnected Target.");let t={messageId:this.messageId,type:"connectMessage",data:e};this.target.postMessage(t)}onMessage(e){if(!this.target)throw console.error("onMessage Invalid Target"),Error("onMessage Invalid Target");T.addListener(`onMessage:${this.listenerId}`,e)}disconnect(e){if(!this.target){if(e)return;throw console.warn("Attempted to disconnect on a disconnected Target."),Error("Attempted to disconnect on a disconnected Target.")}this.isSelfDisconnected=!0;let t={messageId:this.messageId,type:"disconnect",data:null};this.target.postMessage(t),T.emit(`cleanup:${this.listenerId}`)}onDisconnect(e){if(!this.target)throw console.error("onDisconnect Invalid Target"),Error("onDisconnect Invalid Target");T.once(`onDisconnect:${this.listenerId}`,e)}}let _={inboundFlag:".ib",outboundFlag:".ob",scriptLoadComplete:".slc",envLoadComplete:".elc",domEvent:".dom"},E=MouseEvent,R=CustomEvent,G=performance,P=G.dispatchEvent.bind(G),k=G.addEventListener.bind(G),x=G.removeEventListener.bind(G),S="function"==typeof cloneInto?cloneInto:null,U=(e,t)=>(S&&t&&(t=S(t,G)),P(new R(e,{detail:t,cancelable:!0}))),O=(e,t)=>new E(e,t);class L{isReady=!1;resolve=null;promise=new Promise(e=>{this.resolve=e});onReady(e){this.isReady?e():this.promise.then(e)}setReady(){this.resolve?.(),this.isReady=!0,this.resolve=null,this.promise=null}}let D=new Map;D.set=Map.prototype.set,D.get=Map.prototype.get,D.delete=Map.prototype.delete;let $=0,j=Number.MAX_SAFE_INTEGER;class F{send;constructor(e){this.send=e}postMessage(e){this.send.nativeSend(e)}}class N{isInbound;envTag;EE=new C;receiveFlag;sendFlag;relatedTarget=new Map;readyWrap=new L;constructor(e,t,n=""){this.isInbound=t,this.envTag=n;let r=`${e}${n}`;this.receiveFlag=`${r}${t?_.inboundFlag:_.outboundFlag}${_.domEvent}`,this.sendFlag=`${r}${t?_.outboundFlag:_.inboundFlag}${_.domEvent}`,k(this.receiveFlag,e=>{e instanceof E&&0===e.movementX&&e.cancelable?(e.preventDefault(),this.readyWrap.setReady()):e instanceof E&&e.movementX&&e.relatedTarget?(e.cancelable&&e.preventDefault(),D.set(e.movementX,e.relatedTarget)):e instanceof R&&this.messageHandle(e.detail,new F(this))}),!1===P(O(this.sendFlag,{movementX:0,cancelable:!0}))&&this.readyWrap.setReady()}messageHandle(e,t){"sendMessage"===e.type?this.EE.emit("message",e.data,n=>{if(!e.messageId)return;let r={messageId:e.messageId,type:"respMessage",data:n};t.postMessage(r)}):"respMessage"===e.type?this.EE.emit(`response:${e.messageId}`,e):"connect"===e.type?this.EE.emit("connect",e.data,new I(e.messageId,this.EE,t)):"disconnect"===e.type?this.EE.emit(`disconnect:${e.messageId}`):"connectMessage"===e.type&&this.EE.emit(`connectMessage:${e.messageId}`,e.data)}onConnect(e){this.EE.addListener("connect",e)}onMessage(e){this.EE.addListener("message",e)}connect(e){return new Promise(t=>{this.readyWrap.onReady(()=>{let n={messageId:A(),type:"connect",data:e};this.nativeSend(n),t(new I(n.messageId,this.EE,new F(this)))})})}nativeSend(e){if(!this.readyWrap.isReady)throw Error("custom_event_message is not ready.");U(this.sendFlag,e)}sendMessage(e){return new Promise(t=>{this.readyWrap.onReady(()=>{let n=A(),r=`response:${n}`;this.EE.addListener(r,e=>{this.EE.removeAllListeners(r),t(e.data),t=null}),this.nativeSend({messageId:n,type:"sendMessage",data:e})})})}syncSendMessage(e){let t;if(!this.readyWrap.isReady)throw Error("custom_event_message is not ready.");let n=A(),r=`response:${n}`;if(this.EE.addListener(r,e=>{t=e.data}),this.nativeSend({messageId:n,type:"sendMessage",data:e}),this.EE.removeAllListeners(r),!t)throw Error("syncSendMessage response failed.");return t}sendRelatedTarget(e){if(!this.readyWrap.isReady)throw Error("custom_event_message is not ready.");let t=$=$===j?1:$+1;return P(O(this.sendFlag,{movementX:t,relatedTarget:e})),t}getAndDelRelatedTarget(e){let t=D.get(e);return D.delete(e),t}}let V=new C;class B{listenerId=`${A()}`;con;isSelfDisconnected=!1;constructor(e){this.con=e;let t=e=>{V.emit(`onMessage:${this.listenerId}`,e)},n=()=>{let e=this.con;null!==e&&(this.con=null,V.removeAllListeners(`cleanup:${this.listenerId}`),e.onMessage.removeListener(t),e.onDisconnect.removeListener(n),V.emit(`onDisconnect:${this.listenerId}`,this.isSelfDisconnected),V.removeAllListeners(`onDisconnect:${this.listenerId}`),V.removeAllListeners(`onMessage:${this.listenerId}`))};e.onMessage.addListener(t),e.onDisconnect.addListener(n),V.once(`cleanup:${this.listenerId}`,n)}sendMessage(e){if(!this.con)throw console.warn("Attempted to sendMessage on a disconnected port."),Error("Attempted to sendMessage on a disconnected port.");this.con.postMessage(e)}onMessage(e){if(!this.con)throw console.error("onMessage Invalid Port"),Error("onMessage Invalid Port");V.addListener(`onMessage:${this.listenerId}`,e)}disconnect(e){if(!this.con){if(e)return;throw console.warn("Attempted to disconnect on a disconnected port."),Error("Attempted to disconnect on a disconnected port.")}this.isSelfDisconnected=!0,this.con?.disconnect(),V.emit(`cleanup:${this.listenerId}`)}onDisconnect(e){if(!this.con)throw console.error("onDisconnect Invalid Port"),Error("onDisconnect Invalid Port");V.once(`onDisconnect:${this.listenerId}`,e)}getPort(){if(!this.con)throw console.error("Port is already disconnected."),Error("Port is already disconnected.");return this.con}}class H{sender;mType;constructor(e){this.sender=e,this.sender instanceof B?this.mType=3:this.mType=1}getType(){return this.mType}isType(e){return(this.mType&e)===e}getSender(){return this.sender instanceof B?this.sender.getPort().sender:void 0}getExtMessageSender(){if(!(this.sender instanceof B))return{windowId:-1,tabId:-1,frameId:void 0,documentId:void 0};{let e=this.sender.getPort();return{windowId:e.sender?.tab?.windowId||-1,tabId:e.sender?.tab?.id||-1,frameId:e.sender?.frameId,documentId:e.sender?.documentId}}}getConnect(){return this.sender}}class Y{sender;mType;constructor(e){this.sender=e,this.mType=4}getType(){return this.mType}isType(e){return(this.mType&e)===e}getSender(){return this.sender}getExtMessageSender(){let e=this.sender;return e?{windowId:e.tab?.windowId||-1,tabId:e.tab?.id||-1,frameId:e.frameId,documentId:e.documentId}:{windowId:-1,tabId:-1,frameId:void 0,documentId:void 0}}getConnect(){}}let W=e=>{if(!e)return`${e}`;if("string"==typeof e?.message)return e.message;if("object"==typeof e)try{return JSON.stringify(e)}catch{}return e.toString()};class J{enableConnect;apiFunctionMap=new Map;logger=y.getInstance().logger({service:"messageServer"});constructor(e,t,n=!0){this.enableConnect=n;let r=Array.isArray(t)?t:[t];this.enableConnect&&r.forEach(t=>{t.onConnect((t,n)=>{if("string"==typeof t.action)return this.logger.trace("server onConnect",{msg:t}),!!t.action?.startsWith(e)&&this.connectHandle(t.action.slice(e.length+1),t.data,n)})}),r.forEach(t=>(t.onMessage((t,n,r)=>{if("string"==typeof t.action&&(this.logger.trace("server onMessage",{msg:t}),t.action?.startsWith(e)))return this.messageHandle(t.action.slice(e.length+1),t.data,n,r)}),!1))}group(e,t){return new K(this,e,t)}on(e,t){this.apiFunctionMap.set(e,t)}connectHandle(e,t,n){let r=this.apiFunctionMap.get(e);if(r){let e=r(t,new H(n));return e&&(e instanceof Promise?e.then(e=>{e&&n.sendMessage({code:0,data:e})}).catch(e=>{n.sendMessage({code:-1,message:W(e)}),this.logger.error("connectHandle error",m.E(e))}):n.sendMessage({code:0,data:e})),!0}}messageHandle(e,t,n,r){let s=this.apiFunctionMap.get(e);if(s)try{let e=s(t,new Y(r));if(e instanceof Promise)return e.then(e=>{try{n({code:0,data:e})}catch(e){this.logger.error("sendResponse error",m.E(e))}}).catch(e=>{n({code:-1,message:W(e)}),this.logger.error("messageHandle error",m.E(e))}),!0;n({code:0,data:e})}catch(e){n({code:-1,message:W(e)}),this.logger.error("messageHandle error",m.E(e))}else n({code:-1,message:"no such api "+e}),this.logger.error("no such api",{action:e})}}class K{server;name;middlewares=[];constructor(e,t,n){this.server=e,this.name=t,!t.endsWith("/")&&t.length>0&&(this.name+="/"),n&&this.middlewares.push(n)}group(e,t){let n=new K(this.server,`${this.name}${e}`,t);return n.middlewares=[...this.middlewares,...n.middlewares],n}use(e){let t=new K(this.server,`${this.name}`,e);return t.middlewares=[...this.middlewares,...t.middlewares],t}on(e,t){let n=`${this.name}${e}`;0===this.middlewares.length?this.server.on(n,t):this.server.on(n,async(e,n)=>{let r=0,s=async()=>{if(!(r{Z[n]=e}}static API(e={}){return(t,n,r)=>{let{follow:s}=e,{alias:o}=e;s||(s=n),Q(s,n,r.value,e),o&&Q(o,o,r.value,e)}}}let et=e=>{let t=document;if(t.body){try{e()}catch{}return}let n=function(){(this.body||document!==this)&&null!==n&&(this.removeEventListener("load",n,!1),this.removeEventListener("DOMNodeInserted",n,!1),this.removeEventListener("DOMContentLoaded",n,!1),n=null,et(e))};t.addEventListener("load",n,!1),t.addEventListener("DOMNodeInserted",n,!1),t.addEventListener("DOMContentLoaded",n,!1),t=null};class en{counterId=0;listeners=new Map;add(e,t){let n=++this.counterId,r=this.listeners.get(e);return r||this.listeners.set(e,r=new Map),r.set(n,t),n}execute(e,...t){let n=this.listeners.get(e);if(n)for(let r of n.values())r?.(e,...t)}remove(e){let t=+e||0;if(t>0){for(let[e,n]of this.listeners)if(n.delete(t))return 0===n.size&&this.listeners.delete(e),!0}return!1}clear(){for(let[e,t]of this.listeners)t.clear();this.listeners.clear()}}function er(e,t,n,r){var s,o=arguments.length,a=o<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,n,r);else for(var i=e.length-1;i>=0;i--)(s=e[i])&&(a=(o<3?s(a):o>3?s(t,n,a):s(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a}let es={structuredClone:"function"==typeof structuredClone?structuredClone:()=>{throw"unsupportedAPI"},jsonStringify:JSON.stringify.bind(JSON),jsonParse:JSON.parse.bind(JSON),createElement:Document.prototype.createElement,ownFragment:new DocumentFragment,objectCreate:Object.create.bind(Object),objectGetOwnPropertyDescriptors:Object.getOwnPropertyDescriptors.bind(Object),objectGetOwnPropertyDescriptor:Object.getOwnPropertyDescriptor.bind(Object),objectGetPrototypeOf:Object.getPrototypeOf.bind(Object)},eo=e=>{if("object"!=typeof e)return e;try{return es.structuredClone(e)}catch{}try{return es.jsonParse(es.jsonStringify(e))}catch{}console.error("customClone failed")},ea="number"==typeof mozInnerScreenX&&"u">typeof wrappedJSObject&&Object.hasOwn(window,"wrappedJSObject")&&"object"==typeof browser&&"function"==typeof browser?.runtime?.sendMessage?e=>eo(e):e=>e;async function ei(e,t,n){let r=await e.sendMessage({action:t,data:n}),s=y.getInstance().logger().with({action:t,data:n,response:r});if(s.trace("sendMessage"),r?.code)throw console.error(r),r.message;try{return r.data}catch(e){s.trace("Invalid response data",m.E(e));return}}let el={inject:"it",content:"ct"},ec=[1],ed=[2],eu=e=>{switch(e[0]){case 1:return;case 2:return null;default:return e[1]}},ep=e=>{switch(e){case void 0:return ec;case null:return ed;default:return[0,e]}};function eg(e){if("function"==typeof Uint8Array.fromBase64)return Uint8Array.fromBase64(e);{if("u">typeof Buffer&&"function"==typeof Buffer.from)return Uint8Array.from(Buffer.from(e,"base64"));let t=atob(e),n=new Uint8Array(new ArrayBuffer(t.length));for(let e=0,r=t.length;etypeof Buffer&&"function"==typeof Buffer.from)return Buffer.from(e).toString("base64");let t="",n=0;for(;e.length-n>65535;)t+=String.fromCharCode(...e.slice(n,n+65535)),n+=65535;return btoa(t+=String.fromCharCode(...n?e.slice(n):e))}}function ef(e){let t=e.length;if(0===t)return new Uint8Array(0);if(1===t)return new Uint8Array(e[0]);let n=0;for(let r=0;re.name),ev="function"==typeof URL.createObjectURL?e=>URL.createObjectURL(e):async()=>{throw"Invalid Call of innerToBlobUrl"},eb=async e=>{if(e?.then&&(e=await e),e instanceof Document)throw Error("GM xhr data does not support Document");let t={type:void 0===e?"undefined":null===e?"null":"undefined",m:null};if(e instanceof ReadableStream&&(e=await new Response(e).blob()),e instanceof DataView)t={type:"DataView",m:eh(new Uint8Array(e.buffer,e.byteOffset,e.byteLength))};else if(e instanceof URLSearchParams)t={type:"URLSearchParams",m:`${e}`};else if(e instanceof FormData)t={type:"FormData",m:await Promise.all([...e.entries()].map(([e,t])=>t instanceof File?Promise.resolve(ev(t)).then(n=>({key:e,type:"file",val:n,mimeType:t.type,filename:t.name,lastModified:t.lastModified})):{key:e,type:"text",val:t}))};else if(ArrayBuffer.isView(e))if(e instanceof Uint8Array)t={type:"Uint8Array",m:eh(e)};else{let n=em.findIndex(t=>e instanceof t);if(n>=0){let r=e.buffer;t={type:ey[n],m:eh(new Uint8Array(r))}}else throw Error("Unsupported ArrayBuffer View")}else if(e instanceof Blob)t=e instanceof File?{type:"File",m:[await ev(e),e?.name,e?.lastModified]}:{type:"Blob",m:[await ev(e)]};else if(e instanceof ArrayBuffer)t={type:"ArrayBuffer",m:eh(new Uint8Array(e))};else if(e&&"object"==typeof e){let n;try{n=JSON.stringify(e)}catch{n=Array.isArray(e)?"[]":"{}"}t={type:"object",m:n}}else null!=e&&(t={type:typeof e,m:e});return t},eM={},ew=async e=>{let t;for(;t=e.head;){let{task:n,resolve:r,reject:s}=t;t.task=t.resolve=t.reject=null;try{let e=await n();r(e)}catch(e){s(e)}e.head=t.next,t.next=null}e.tail=null},eA={NONE:0,READABLE_STREAM:1,UINT8_ARRAY_BUFFER:2,STRING:3},eC={UNSENT:0,OPENED:1,HEADERS_RECEIVED:2,LOADING:3,DONE:4},eT=(e,t)=>"function"==typeof URL.createObjectURL?URL.createObjectURL(t):e.sendMessage("CAT_createBlobUrl",[t]),eI=async e=>{let t="";if("string"==typeof e)t=e;else if(e instanceof URL)t=e.href;else e instanceof Blob&&(t=await new Promise((t,n)=>{let r=new FileReader;r.onloadend=function(){t(this.result)},r.onerror=n,r.onabort=n,r.readAsDataURL(e)}));return t},e_=async(e,t,n)=>{let r=await e.sendMessage("CAT_fetchDocument",[`${t}`,n]);return e.message.getAndDelRelatedTarget(r)},eE=new Set(["application/xhtml+xml","application/xml","image/svg+xml","text/html","text/xml"]),eR=new WeakMap,eG={response:{get(){let e=eR.get(this);return e?.getResponse()},enumerable:!1,configurable:!1},responseXML:{get(){let e=eR.get(this);return e?.getResponseXML()},enumerable:!1,configurable:!1},responseText:{get(){let e=eR.get(this);return e?.getResponseText()},enumerable:!1,configurable:!1}};function eP(e,t,n,r=!1){let s,o,a,i=!1;if(e.isInvalidContext())return{retPromise:n?Promise.reject("GM_xmlhttpRequest: Invalid Context"):null,abort:()=>{}};let l=n?new Promise((e,t)=>{s=e,o=t}):null,c="object"==typeof t.url?eI(t.url):t.url,d=eb(t.data),u=t.headers;if(u)for(let e of Object.keys(u))"cookie"===e.toLowerCase()&&(t.cookie=u[e],delete u[e]);let p=t.context;t.method&&(t.method=`${t.method}`.toUpperCase());let g={method:t.method,timeout:t.timeout,url:"",headers:t.headers,cookie:t.cookie,responseType:t.responseType,overrideMimeType:t.overrideMimeType,anonymous:t.anonymous,user:t.user,password:t.password,redirect:t.redirect,fetch:t.fetch};g.headers||(g.headers={}),t.nocache&&(g.headers["Cache-Control"]="no-cache");let h=t.responseType?.toLocaleLowerCase()||"",f=null;return(async()=>{let n,l,u,[m,v]=await Promise.all([c,d]),b=new URL(m,window.location.href);g.url=b.href,g.data=v;let M="stream"===h;if(M)n=new ReadableStream({start(e){l=e}});else switch(h){case"arraybuffer":case"blob":g.responseType="arraybuffer";break;default:g.responseType="text"}if(r){let t="POST"===g.method?"POST":"GET",n={...g,method:t,downloadMode:"native",name:""};u=e.connect("GM_download",[n])}else u=e.connect("GM_xmlhttpRequest",[g]);g=null,a=await u;let w=[],A=[],C=null,T=null,I=!0,_=`${Date.now()}:${Math.random()}`,E="",R=!1,G=null,P=null,k="",x=null,S=eA.NONE;n&&(R=!0,P=n,k=void 0,x=void 0,n=void 0);let U=()=>{L=null,j=null,f=null,U=null,a?.disconnect(!0),a=null},O=()=>{i||M||(P=!1,k=!1,x=!1,T=null,C=null)},L=e=>{let t;(4===e.readyState||i)&&"progress"!==e.eventType&&(R=!0);let n=null;("string"==typeof e.error&&(0===e.status||e.status>=300||e.status<200)&&!e.statusText&&I||"aborted"===e.error)&&(n={error:e.error,readyState:e.readyState,response:null,responseHeaders:e.responseHeaders,responseText:"",status:e.status,statusText:""});let r={DONE:eC.DONE,HEADERS_RECEIVED:eC.HEADERS_RECEIVED,LOADING:eC.LOADING,OPENED:eC.OPENED,UNSENT:eC.UNSENT,RESPONSE_TYPE_TEXT:"text",RESPONSE_TYPE_ARRAYBUFFER:"arraybuffer",RESPONSE_TYPE_BLOB:"blob",RESPONSE_TYPE_DOCUMENT:"document",RESPONSE_TYPE_JSON:"json",RESPONSE_TYPE_STREAM:"stream",toString:()=>"[object Object]"},s=!1;if(n)t={...r,...n};else{let n={...r,finalUrl:e.finalUrl,readyState:e.readyState,status:e.status,statusText:e.statusText,responseHeaders:e.responseHeaders,responseType:h};R&&(s=!0),t=n,e.error&&(t.error=e.error)}return void 0!==p&&(t.context=p),((e,t,n)=>{let r={...es.objectGetOwnPropertyDescriptors(e)};if(!t)return es.objectCreate(null,r);r={...r,...eG};let s=es.objectCreate(null,r),o={getResponse(){if(!1===P){switch(h){case"json":{let e,t=this.getResponseText();if(t)try{e=es.jsonParse(t)}catch{}P=e;break}case"document":P=this.getResponseXML();break;case"arraybuffer":P=(C||=ef(A)).buffer;break;case"blob":P=new Blob([C||=ef(A)],{type:n||"application/octet-stream"});break;default:P=`${this.getResponseText()}`}i&&(w.length=0,A.length=0)}return"json"===h&&null===P&&(P=void 0),P},getResponseXML(){if(!1===x){let e,t,r=this.getResponseText(),s=((t=(e=n).indexOf(";"))>0&&(e=e.substring(0,t)),e=e.trim().toLowerCase()),o=eE.has(s)?s:"text/xml";if(void 0!==r)try{x=new DOMParser().parseFromString(r,o)}catch(e){x=null,console.error(e)}else x=void 0}return x},getResponseText(){if(!1===k){if(S===eA.UINT8_ARRAY_BUFFER){let e=(C||=ef(A)).buffer;k=new TextDecoder("utf-8").decode(e)}else null===T&&(T=`${w.join("")}`),k=T;i&&(w.length=0,A.length=0)}return k}};return eR.set(s,o),s})(t,s,e.contentType)},D=!1,$=e=>{if(!D){D=!0,i=!0,k=!1,C=null,T=null;let n=L?.(e)??{};t.onloadend?.(n),null===G?s?.(n):o?.(G),U?.()}};f=e=>{i||(G="AbortError",t.onabort?.(L?.(e)??{}),i=!0,Promise.resolve({...e,type:"loadend"}).then($)),f=null};let j=e=>{let n;n=async()=>{let n=e.data;if(-1===e.code){let n=e.message||"unknown",r=e.code;y.logger().error("GM_xmlhttpRequest error",{code:r,message:n}),i||(G=n,t.onerror?.({readyState:eC.DONE,error:n}),i=!0,Promise.resolve({error:"loadend",responseHeaders:"",readyState:0,status:0,statusText:""}).then($));return}switch(e.action){case"reset_chunk_arraybuffer":case"reset_chunk_blob":case"reset_chunk_buffer":if(i||M){console.error("Invalid call of reset_chunk [buf]");break}A.length=0,I=!0,O();break;case"reset_chunk_document":case"reset_chunk_json":case"reset_chunk_text":if(i||M){console.error("Invalid call of reset_chunk [str]");break}w.length=0,I=!0,O();break;case"append_chunk_stream":{let t=e.data.chunk,n=eg(t);A.push(n),I=!1,l?.enqueue(eg(t)),S=eA.READABLE_STREAM;break}case"append_chunk_arraybuffer":case"append_chunk_blob":case"append_chunk_buffer":{if(i||M){console.error("Invalid call of append_chunk [buf]");break}let t=eg(e.data.chunk);A.push(t),I=!1,S=eA.UINT8_ARRAY_BUFFER,O();break}case"append_chunk_document":case"append_chunk_json":case"append_chunk_text":{if(i||M){console.error("Invalid call of append_chunk [str]");break}let t=e.data.chunk;w.push(t),I=!1,S=eA.STRING,O();break}case"onload":t.onload?.(L?.(n)??{});break;case"onloadend":$(n);break;case"onloadstart":t.onloadstart?.(L?.(n)??{});break;case"onprogress":if(t.onprogress){let e={...L?.(n)??{},lengthComputable:n.lengthComputable,loaded:n.loaded,total:n.total,done:n.loaded,totalSize:n.total};t.onprogress?.(e)}break;case"onreadystatechange":{let e=`${n.readyState}:${n.status}`;if(e===E)return;E=e,M&&n.readyState===eC.DONE&&(l=void 0),t.onreadystatechange?.(L?.(n)??{});break}case"ontimeout":i||(G="TimeoutError",t.ontimeout?.(L?.(n)??{}),i=!0);break;case"onerror":i||(n.error||="Unknown Error",G=n.error,t.onerror?.(L?.(n)??{}),i=!0);break;case"onabort":f?.(n);break;default:y.logger().warn("GM_xmlhttpRequest resp is error",{data:e})}},new Promise((e,t)=>{let r=eM[_]||(eM[_]={head:null,tail:null}),s={task:n,resolve:e,reject:t,next:null};r.tail?(r.tail.next=s,r.tail=s):(r.head=s,r.tail=s,ew(r))})};a?.onMessage(e=>j?.(e))})(),{retPromise:l,abort:()=>{a&&(a.disconnect(!0),a=null),f&&t.onabort&&!i&&(f?.({error:"aborted",responseHeaders:"",readyState:0,status:0,statusText:""}),i=!0)}}}function ek(e){return"string"==typeof e?e:e.filter(e=>"text"===e.type).map(e=>e.text).join("")}class ex{conv;gmSendMessage;gmConnect;scriptUuid;maxIterations;toolHandlers=new Map;toolDefs=[];commandHandlers=new Map;ephemeral;cache;systemPrompt;messageHistory=[];background;constructor(e,t,n,r,s,o,a,i,l,c,d){if(this.conv=e,this.gmSendMessage=t,this.gmConnect=n,this.scriptUuid=r,this.maxIterations=s,this.ephemeral=i||!1,this.background=d||!1,this.cache=c,this.systemPrompt=l,o)for(let e of o)this.toolHandlers.set(e.name,e.handler),this.toolDefs.push({name:e.name,description:e.description,parameters:e.parameters});if(this.commandHandlers.set("/new",async()=>(await this.clear(),"对话已清空")),a)for(let[e,t]of Object.entries(a))this.commandHandlers.set(e,t)}get id(){return this.conv.id}get title(){return this.conv.title}get modelId(){return this.conv.modelId}async chat(e,t){let n=ek(e),r=await this.tryExecuteCommand(n);if(void 0!==r)return r;let{toolDefs:s,handlers:o}=this.mergeTools(t?.tools);this.ephemeral&&this.messageHistory.push({role:"user",content:e});let a={conversationId:this.conv.id,message:e,tools:s.length>0?s:void 0,maxIterations:this.maxIterations,scriptUuid:this.scriptUuid};void 0!==this.cache&&(a.cache=this.cache),this.background&&(a.background=!0),this.ephemeral&&(a.ephemeral=!0,a.messages=this.messageHistory,a.system=this.systemPrompt,a.modelId=this.conv.modelId);let i=await this.gmConnect("CAT_agentConversationChat",[a]),l=await this.processChat(i,o);if(this.ephemeral){if(l.toolCalls&&l.toolCalls.length>0)for(let e of(this.messageHistory.push({role:"assistant",content:l.content,toolCalls:l.toolCalls}),l.toolCalls))void 0!==e.result&&this.messageHistory.push({role:"tool",content:e.result,toolCallId:e.id});this.messageHistory.push({role:"assistant",content:l.content})}return l}async chatStream(e,t){let n=ek(e),r=await this.tryExecuteCommand(n);if(void 0!==r)return{[Symbol.asyncIterator](){let e=!1;return{next:async()=>e?{value:void 0,done:!0}:(e=!0,{value:{type:"done",content:ek(r.content),command:!0},done:!1})}}};let{toolDefs:s,handlers:o}=this.mergeTools(t?.tools);this.ephemeral&&this.messageHistory.push({role:"user",content:e});let a={conversationId:this.conv.id,message:e,tools:s.length>0?s:void 0,maxIterations:this.maxIterations,scriptUuid:this.scriptUuid};void 0!==this.cache&&(a.cache=this.cache),this.background&&(a.background=!0),this.ephemeral&&(a.ephemeral=!0,a.messages=this.messageHistory,a.system=this.systemPrompt,a.modelId=this.conv.modelId);let i=await this.gmConnect("CAT_agentConversationChat",[a]);return this.ephemeral?this.processStreamEphemeral(i,o):this.processStream(i,o)}parseCommand(e){let t=e.trim();if(!t.startsWith("/"))return null;let n=t.indexOf(" ");return -1===n?{name:t,args:""}:{name:t.slice(0,n),args:t.slice(n+1).trim()}}async tryExecuteCommand(e){let t=this.parseCommand(e);if(!t)return;let n=this.commandHandlers.get(t.name);if(n)return{content:await n(t.args,this)||"",command:!0}}mergeTools(e){let t=[...this.toolDefs],n=new Map(this.toolHandlers);if(e)for(let r of e)n.has(r.name)||t.push({name:r.name,description:r.description,parameters:r.parameters}),n.set(r.name,r.handler);return{toolDefs:t,handlers:n}}async getMessages(){return this.ephemeral?this.messageHistory.map((e,t)=>({id:`ephemeral-${t}`,conversationId:this.conv.id,role:e.role,content:e.content,toolCallId:e.toolCallId,toolCalls:e.toolCalls,createtime:Date.now()})):await this.gmSendMessage("CAT_agentConversation",[{action:"getMessages",conversationId:this.conv.id,scriptUuid:this.scriptUuid}])||[]}async clear(){if(this.ephemeral){this.messageHistory=[];return}await this.gmSendMessage("CAT_agentConversation",[{action:"clearMessages",conversationId:this.conv.id,scriptUuid:this.scriptUuid}])}async save(){await this.gmSendMessage("CAT_agentConversation",[{action:"save",conversationId:this.conv.id,scriptUuid:this.scriptUuid}])}async attach(){let e=await this.gmConnect("CAT_agentAttachToConversation",[{conversationId:this.conv.id,scriptUuid:this.scriptUuid}]);return this.processStream(e,new Map)}processChat(e,t){return new Promise((n,r)=>{let s,o="",a="",i=[],l=[],c=null;e.onMessage(async d=>{if("executeTools"===d.action){let n=d.data,r=await this.executeTools(n,t);e.sendMessage({action:"toolResults",data:r});return}if("event"!==d.action)return;let u=d.data;switch(u.type){case"content_delta":o+=u.delta;break;case"thinking_delta":a+=u.delta;break;case"content_block_complete":l.push(u.block);break;case"tool_call_start":c&&i.push(c),c={...u.toolCall,arguments:u.toolCall.arguments||""};break;case"tool_call_delta":c&&(c.arguments+=u.delta);break;case"done":{c&&(i.push(c),c=null),u.usage&&(s=u.usage);let e=o;if(l.length>0){let t=[];o&&t.push({type:"text",text:o}),t.push(...l),e=t}n({content:e,thinking:a||void 0,toolCalls:i.length>0?i:void 0,usage:s});break}case"error":r(Object.assign(Error(u.message),{errorCode:u.errorCode}))}}),e.onDisconnect(()=>{r(Error("Connection disconnected"))})})}processStream(e,t){let n=[],r=null,s=!1,o=null;return e.onMessage(async a=>{if("executeTools"===a.action){let n=a.data,r=await this.executeTools(n,t);e.sendMessage({action:"toolResults",data:r});return}if("event"!==a.action)return;let i=a.data,l=null;switch(i.type){case"content_delta":l={type:"content_delta",content:i.delta};break;case"thinking_delta":l={type:"thinking_delta",content:i.delta};break;case"content_block_complete":l={type:"content_block",block:i.block};break;case"tool_call_start":l={type:"tool_call",toolCall:{...i.toolCall,arguments:""}};break;case"done":l={type:"done",usage:i.usage},s=!0;break;case"error":l={type:"error",error:i.message,errorCode:i.errorCode},o=Object.assign(Error(i.message),{errorCode:i.errorCode}),s=!0}l&&(n.push(l),r?.())}),e.onDisconnect(()=>{s=!0,o=o||Error("Connection disconnected"),r?.()}),{[Symbol.asyncIterator]:()=>({async next(){for(;0===n.length&&!s;)await new Promise(e=>{r=e});if(n.length>0)return{value:n.shift(),done:!1};if(o&&!s)throw o;return{value:void 0,done:!0}}})}}processStreamEphemeral(e,t){let n=this.processStream(e,t),r=this.messageHistory,s="",o=[];return{[Symbol.asyncIterator](){let e=n[Symbol.asyncIterator]();return{async next(){let t=await e.next();if(t.done)return(s||o.length>0)&&r.push({role:"assistant",content:s,toolCalls:o.length>0?[...o]:void 0}),t;let n=t.value;switch(n.type){case"content_delta":s+=n.content||"";break;case"tool_call":n.toolCall&&o.push(n.toolCall)}return t}}}}}async executeTools(e,t){let n=[];for(let r of e){let e=t.get(r.name);if(!e){n.push({id:r.id,result:JSON.stringify({error:`Tool "${r.name}" not found`})});continue}try{let t={};r.arguments&&(t=JSON.parse(r.arguments));let s=await e(t);n.push({id:r.id,result:"string"==typeof s?s:JSON.stringify(s)})}catch(t){let e=t instanceof Error?t.message||t.toString():"string"==typeof t?t:String(t)||"Tool execution failed";n.push({id:r.id,result:JSON.stringify({error:e})})}}return n}}function eS(e,t,n){return new ex(t,e.sendMessage.bind(e),e.connect.bind(e),e.scriptRes?.uuid||"",n?.maxIterations||20,n?.tools,n?.commands,n?.ephemeral,n?.system,n?.cache,n?.background)}class eU{sendMessage;connect;scriptRes;"CAT.agent.conversation.create"(e={}){return(async()=>{if(e.ephemeral)return eS(this,{id:e.id||A(),title:"New Chat",modelId:e.model||"",system:e.system,createtime:Date.now(),updatetime:Date.now()},e);let{tools:t,ephemeral:n,...r}=e;return eS(this,await this.sendMessage("CAT_agentConversation",[{action:"create",options:r,scriptUuid:this.scriptRes?.uuid||""}]),e)})()}"CAT.agent.conversation.get"(e){return(async()=>{let t=await this.sendMessage("CAT_agentConversation",[{action:"get",id:e,scriptUuid:this.scriptRes?.uuid||""}]);return t?eS(this,t):null})()}}er([ee.protected()],eU.prototype,"sendMessage",void 0),er([ee.protected()],eU.prototype,"connect",void 0),er([ee.protected()],eU.prototype,"scriptRes",void 0),er([ee.API({follow:"CAT.agent.conversation"})],eU.prototype,"CAT.agent.conversation.create",null),er([ee.API({follow:"CAT.agent.conversation"})],eU.prototype,"CAT.agent.conversation.get",null);class eO{sendMessage;scriptRes;"CAT.agent.skills.list"(){return this.sendMessage("CAT_agentSkills",[{action:"list",scriptUuid:this.scriptRes?.uuid||""}])}"CAT.agent.skills.get"(e){return this.sendMessage("CAT_agentSkills",[{action:"get",name:e,scriptUuid:this.scriptRes?.uuid||""}])}"CAT.agent.skills.install"(e,t,n){return this.sendMessage("CAT_agentSkills",[{action:"install",skillMd:e,scripts:t,references:n,scriptUuid:this.scriptRes?.uuid||""}])}"CAT.agent.skills.remove"(e){return this.sendMessage("CAT_agentSkills",[{action:"remove",name:e,scriptUuid:this.scriptRes?.uuid||""}])}"CAT.agent.skills.call"(e,t,n){return this.sendMessage("CAT_agentSkills",[{action:"call",skillName:e,scriptName:t,params:n,scriptUuid:this.scriptRes?.uuid||""}])}}er([ee.protected()],eO.prototype,"sendMessage",void 0),er([ee.protected()],eO.prototype,"scriptRes",void 0),er([ee.API({follow:"CAT.agent.skills"})],eO.prototype,"CAT.agent.skills.list",null),er([ee.API({follow:"CAT.agent.skills"})],eO.prototype,"CAT.agent.skills.get",null),er([ee.API({follow:"CAT.agent.skills"})],eO.prototype,"CAT.agent.skills.install",null),er([ee.API({follow:"CAT.agent.skills"})],eO.prototype,"CAT.agent.skills.remove",null),er([ee.API({follow:"CAT.agent.skills"})],eO.prototype,"CAT.agent.skills.call",null);class eL{sendMessage;scriptRes;"CAT.agent.dom.listTabs"(){return this.sendMessage("CAT_agentDom",[{action:"listTabs",scriptUuid:this.scriptRes?.uuid||""}])}"CAT.agent.dom.navigate"(e,t){return this.sendMessage("CAT_agentDom",[{action:"navigate",url:e,options:t,scriptUuid:this.scriptRes?.uuid||""}])}"CAT.agent.dom.readPage"(e){return this.sendMessage("CAT_agentDom",[{action:"readPage",options:e,scriptUuid:this.scriptRes?.uuid||""}])}"CAT.agent.dom.screenshot"(e){return this.sendMessage("CAT_agentDom",[{action:"screenshot",options:e,scriptUuid:this.scriptRes?.uuid||""}])}"CAT.agent.dom.click"(e,t){return this.sendMessage("CAT_agentDom",[{action:"click",selector:e,options:t,scriptUuid:this.scriptRes?.uuid||""}])}"CAT.agent.dom.fill"(e,t,n){return this.sendMessage("CAT_agentDom",[{action:"fill",selector:e,value:t,options:n,scriptUuid:this.scriptRes?.uuid||""}])}"CAT.agent.dom.scroll"(e,t){return this.sendMessage("CAT_agentDom",[{action:"scroll",direction:e,options:t,scriptUuid:this.scriptRes?.uuid||""}])}"CAT.agent.dom.waitFor"(e,t){return this.sendMessage("CAT_agentDom",[{action:"waitFor",selector:e,options:t,scriptUuid:this.scriptRes?.uuid||""}])}"CAT.agent.dom.executeScript"(e,t){return this.sendMessage("CAT_agentDom",[{action:"executeScript",code:e,options:t,scriptUuid:this.scriptRes?.uuid||""}])}"CAT.agent.dom.startMonitor"(e){return this.sendMessage("CAT_agentDom",[{action:"startMonitor",tabId:e,scriptUuid:this.scriptRes?.uuid||""}])}"CAT.agent.dom.stopMonitor"(e){return this.sendMessage("CAT_agentDom",[{action:"stopMonitor",tabId:e,scriptUuid:this.scriptRes?.uuid||""}])}"CAT.agent.dom.peekMonitor"(e){return this.sendMessage("CAT_agentDom",[{action:"peekMonitor",tabId:e,scriptUuid:this.scriptRes?.uuid||""}])}}er([ee.protected()],eL.prototype,"sendMessage",void 0),er([ee.protected()],eL.prototype,"scriptRes",void 0),er([ee.API({follow:"CAT.agent.dom"})],eL.prototype,"CAT.agent.dom.listTabs",null),er([ee.API({follow:"CAT.agent.dom"})],eL.prototype,"CAT.agent.dom.navigate",null),er([ee.API({follow:"CAT.agent.dom"})],eL.prototype,"CAT.agent.dom.readPage",null),er([ee.API({follow:"CAT.agent.dom"})],eL.prototype,"CAT.agent.dom.screenshot",null),er([ee.API({follow:"CAT.agent.dom"})],eL.prototype,"CAT.agent.dom.click",null),er([ee.API({follow:"CAT.agent.dom"})],eL.prototype,"CAT.agent.dom.fill",null),er([ee.API({follow:"CAT.agent.dom"})],eL.prototype,"CAT.agent.dom.scroll",null),er([ee.API({follow:"CAT.agent.dom"})],eL.prototype,"CAT.agent.dom.waitFor",null),er([ee.API({follow:"CAT.agent.dom"})],eL.prototype,"CAT.agent.dom.executeScript",null),er([ee.API({follow:"CAT.agent.dom"})],eL.prototype,"CAT.agent.dom.startMonitor",null),er([ee.API({follow:"CAT.agent.dom"})],eL.prototype,"CAT.agent.dom.stopMonitor",null),er([ee.API({follow:"CAT.agent.dom"})],eL.prototype,"CAT.agent.dom.peekMonitor",null);let eD=0,e$=new Map;class ej{sendMessage;scriptRes;EE;"CAT.agent.task.create"(e){let t="event"===e.mode?{...e,sourceScriptUuid:this.scriptRes?.uuid||""}:{...e};return this.sendMessage("CAT_agentTask",[{action:"create",task:t}])}"CAT.agent.task.list"(){return this.sendMessage("CAT_agentTask",[{action:"list"}])}"CAT.agent.task.get"(e){return this.sendMessage("CAT_agentTask",[{action:"get",id:e}])}"CAT.agent.task.update"(e,t){return this.sendMessage("CAT_agentTask",[{action:"update",id:e,task:t}])}"CAT.agent.task.remove"(e){return this.sendMessage("CAT_agentTask",[{action:"delete",id:e}])}"CAT.agent.task.runNow"(e){return this.sendMessage("CAT_agentTask",[{action:"runNow",id:e}])}"CAT.agent.task.addListener"(e,t){if(!this.EE)return 0;let n=++eD,r=`agentTask:${e}`,s=e=>{t(e)};return this.EE.on(r,s),e$.set(n,{eventName:r,callback:s}),n}"CAT.agent.task.removeListener"(e){if(!this.EE)return;let t=e$.get(e);t&&(this.EE.off(t.eventName,t.callback),e$.delete(e))}}er([ee.protected()],ej.prototype,"sendMessage",void 0),er([ee.protected()],ej.prototype,"scriptRes",void 0),er([ee.protected()],ej.prototype,"EE",void 0),er([ee.API({follow:"CAT.agent.task"})],ej.prototype,"CAT.agent.task.create",null),er([ee.API({follow:"CAT.agent.task"})],ej.prototype,"CAT.agent.task.list",null),er([ee.API({follow:"CAT.agent.task"})],ej.prototype,"CAT.agent.task.get",null),er([ee.API({follow:"CAT.agent.task"})],ej.prototype,"CAT.agent.task.update",null),er([ee.API({follow:"CAT.agent.task"})],ej.prototype,"CAT.agent.task.remove",null),er([ee.API({follow:"CAT.agent.task"})],ej.prototype,"CAT.agent.task.runNow",null),er([ee.API({follow:"CAT.agent.task"})],ej.prototype,"CAT.agent.task.addListener",null),er([ee.API({follow:"CAT.agent.task"})],ej.prototype,"CAT.agent.task.removeListener",null);class eF{sendMessage;scriptRes;"CAT.agent.model.list"(){return this.sendMessage("CAT_agentModel",[{action:"list",scriptUuid:this.scriptRes?.uuid||""}])}"CAT.agent.model.get"(e){return this.sendMessage("CAT_agentModel",[{action:"get",id:e,scriptUuid:this.scriptRes?.uuid||""}])}"CAT.agent.model.getDefault"(){return this.sendMessage("CAT_agentModel",[{action:"getDefault",scriptUuid:this.scriptRes?.uuid||""}])}"CAT.agent.model.getSummary"(){return this.sendMessage("CAT_agentModel",[{action:"getSummary",scriptUuid:this.scriptRes?.uuid||""}])}}er([ee.protected()],eF.prototype,"sendMessage",void 0),er([ee.protected()],eF.prototype,"scriptRes",void 0),er([ee.API({follow:"CAT.agent.model"})],eF.prototype,"CAT.agent.model.list",null),er([ee.API({follow:"CAT.agent.model"})],eF.prototype,"CAT.agent.model.get",null),er([ee.API({follow:"CAT.agent.model"})],eF.prototype,"CAT.agent.model.getDefault",null),er([ee.API({follow:"CAT.agent.model"})],eF.prototype,"CAT.agent.model.getSummary",null);class eN{sendMessage;scriptRes;"CAT.agent.opfs.write"(e,t){return this.sendMessage("CAT_agentOPFS",[{action:"write",path:e,content:t,scriptUuid:this.scriptRes?.uuid||""}])}async "CAT.agent.opfs.read"(e,t){let n=await this.sendMessage("CAT_agentOPFS",[{action:"read",path:e,format:t,scriptUuid:this.scriptRes?.uuid||""}]);return"blob"!==t||n.data instanceof Blob||!n.blobUrl||(n.data=await this.sendMessage("CAT_fetchBlob",[n.blobUrl]),delete n.blobUrl),n}"CAT.agent.opfs.list"(e){return this.sendMessage("CAT_agentOPFS",[{action:"list",path:e,scriptUuid:this.scriptRes?.uuid||""}])}async "CAT.agent.opfs.readAttachment"(e){let t=await this.sendMessage("CAT_agentOPFS",[{action:"readAttachment",id:e,scriptUuid:this.scriptRes?.uuid||""}]);return t.data instanceof Blob||!t.blobUrl||(t.data=await this.sendMessage("CAT_fetchBlob",[t.blobUrl]),delete t.blobUrl),t}"CAT.agent.opfs.delete"(e){return this.sendMessage("CAT_agentOPFS",[{action:"delete",path:e,scriptUuid:this.scriptRes?.uuid||""}])}}er([ee.protected()],eN.prototype,"sendMessage",void 0),er([ee.protected()],eN.prototype,"scriptRes",void 0),er([ee.API({follow:"CAT.agent.opfs"})],eN.prototype,"CAT.agent.opfs.write",null),er([ee.API({follow:"CAT.agent.opfs"})],eN.prototype,"CAT.agent.opfs.read",null),er([ee.API({follow:"CAT.agent.opfs"})],eN.prototype,"CAT.agent.opfs.list",null),er([ee.API({follow:"CAT.agent.opfs"})],eN.prototype,"CAT.agent.opfs.readAttachment",null),er([ee.API({follow:"CAT.agent.opfs"})],eN.prototype,"CAT.agent.opfs.delete",null);let eV={},eB=0,eH=`${q(8e11,2e12).toString(36)}`,eY=new Map;class eW{runFlag;prefix;message;contentMsg;scriptRes;valueChangeListener;EE;context;grantSet;eventId;loadScriptResolve;loadScriptPromise;constructor(e=null,t=null){if(t!==eV)throw TypeError("Illegal invocation");Object.assign(this,e)}static createGMBase(e){return new eW(e,eV)}isInvalidContext;setInvalidContext;async sendMessage(e,t){let n;if(this.message&&this.scriptRes){this.loadScriptPromise&&await this.loadScriptPromise;try{n=await ei(this.message,`${this.prefix}/runtime/gmApi`,{uuid:this.scriptRes.uuid,api:e,params:t,runFlag:this.runFlag})}catch(e){if(`${e?.message||e}`.includes("Extension context invalidated."))this.setInvalidContext(),console.error(e);else throw e}return n}}connect(e,t){var n,r,s;return this.message&&this.scriptRes?(n=this.message,r=`${this.prefix}/runtime/gmApi`,s={uuid:this.scriptRes.uuid,api:e,params:t,runFlag:this.runFlag},n.connect({action:r,data:s})):new Promise(()=>{})}valueUpdate(e){if(!this.scriptRes||!this.valueChangeListener)return;let t=this.scriptRes,{id:n,uuid:r,entries:s,storageName:o,sender:a,valueUpdated:i}=e;if(r===t.uuid||o===X(t)){let e=t.value,r=a.runFlag!==this.runFlag;if(!r&&n){let e=eY.get(n);e&&(eY.delete(n),e())}if(i)for(let[t,n,o]of s){let s=eu(n),i=eu(o);void 0===s?void 0!==e[t]&&delete e[t]:e[t]=s,this.valueChangeListener.execute(t,i,s,r,a.tabId)}}}emitEvent(e,t,n){this.EE&&this.EE.emit(`${e}:${t}`,n)}}er([ee.protected()],eW.prototype,"runFlag",void 0),er([ee.protected()],eW.prototype,"prefix",void 0),er([ee.protected()],eW.prototype,"message",void 0),er([ee.protected()],eW.prototype,"contentMsg",void 0),er([ee.protected()],eW.prototype,"scriptRes",void 0),er([ee.protected()],eW.prototype,"valueChangeListener",void 0),er([ee.protected()],eW.prototype,"EE",void 0),er([ee.protected()],eW.prototype,"context",void 0),er([ee.protected()],eW.prototype,"grantSet",void 0),er([ee.protected()],eW.prototype,"eventId",void 0),er([ee.protected()],eW.prototype,"loadScriptResolve",void 0),er([ee.protected()],eW.prototype,"loadScriptPromise",void 0),er([ee.protected()],eW,"createGMBase",null),er([ee.protected()],eW.prototype,"isInvalidContext",void 0),er([ee.protected()],eW.prototype,"setInvalidContext",void 0),er([ee.protected()],eW.prototype,"sendMessage",null),er([ee.protected()],eW.prototype,"connect",null),er([ee.protected()],eW.prototype,"valueUpdate",null),er([ee.protected()],eW.prototype,"emitEvent",null);class eJ extends eW{prefix;message;contentMsg;scriptRes;notificationTagMap;constructor(e,t,n,r){let s=new en,o=new C,a=!1;super({prefix:e,message:t,scriptRes:r,valueChangeListener:s,EE:o,notificationTagMap:new Map,eventId:0,setInvalidContext(){a||(a=!0,this.valueChangeListener.clear(),this.EE.removeAllListeners(),this.message=null,this.scriptRes=null,this.valueChangeListener=null,this.EE=null)},isInvalidContext:()=>a},eV),this.prefix=e,this.message=t,this.contentMsg=n,this.scriptRes=r}static _GM_getValue(e,t,n){if(!e.scriptRes)return;let r=e.scriptRes.value[t];return void 0!==r?r&&"object"==typeof r?eo(r):r:n}GM_getValue(e,t){return eq(this,e,t)}"GM.getValue"(e,t){return new Promise(n=>{n(eq(this,e,t))})}static _GM_setValue(e,t,n,r){if(n=`${n}`,!e.scriptRes)return;eB>1e8&&(eB=0,eH=`${q(8e11,2e12).toString(36)}`);let s=`${eH}::${++eB}`;return t&&eY.set(s,t),void 0===r?(delete e.scriptRes.value[n],e.sendMessage("GM_setValue",[s,n])):(r&&"object"==typeof r&&(r=eo(r)),e.scriptRes.value[n]=r,void 0===r?e.sendMessage("GM_setValue",[s,n]):e.sendMessage("GM_setValue",[s,n,r])),s}static _GM_setValues(e,t,n){if(!e.scriptRes)return;eB>1e8&&(eB=0,eH=`${q(8e11,2e12).toString(36)}`);let r=`${eH}::${++eB}`;t&&eY.set(r,t);let s=e.scriptRes.value,o=[];for(let[e,t]of Object.entries(n)){let n=t;void 0===n?s[e]&&delete s[e]:(n&&"object"==typeof n&&(n=eo(n)),s[e]=n),o.push([e,ep(n)])}return e.sendMessage("GM_setValues",[r,o]),r}GM_setValue(e,t){ez(this,null,e,t)}"GM.setValue"(e,t){return new Promise(n=>{ez(this,n,e,t)})}GM_deleteValue(e){ez(this,null,e,void 0)}"GM.deleteValue"(e){return new Promise(t=>{ez(this,t,e,void 0)})}GM_listValues(){return this.scriptRes?Object.keys(this.scriptRes.value):[]}"GM.listValues"(){return new Promise(e=>{if(!this.scriptRes)return e([]);e(Object.keys(this.scriptRes.value))})}GM_setValues(e){if(!e||"object"!=typeof e)throw Error("GM_setValues: values must be an object");eQ(this,null,e)}GM_getValues(e){if(!this.scriptRes)return{};if(!e)return eo(this.scriptRes.value);let t={};if(Array.isArray(e))for(let n=0;n{t(this.GM_getValues(e))}:()=>{})}"GM.setValues"(e){return new Promise(this.scriptRes?t=>{if(!e||"object"!=typeof e)throw Error("GM.setValues: values must be an object");eQ(this,t,e)}:()=>{})}GM_deleteValues(e){if(!this.scriptRes)return;if(!Array.isArray(e))return void console.warn("GM_deleteValues: keys must be string[]");let t={};for(let n of e)t[n]=void 0;eQ(this,null,t)}"GM.deleteValues"(e){return new Promise(this.scriptRes?t=>{if(Array.isArray(e)){let n={};for(let t of e)n[t]=void 0;eQ(this,t,n)}else throw Error("GM.deleteValues: keys must be string[]")}:()=>{})}GM_addValueChangeListener(e,t){return this.valueChangeListener?this.valueChangeListener.add(e,t):0}"GM.addValueChangeListener"(e,t){return new Promise(n=>{n(this.GM_addValueChangeListener(e,t))})}GM_removeValueChangeListener(e){this.valueChangeListener&&this.valueChangeListener.remove(e)}"GM.removeValueChangeListener"(e){return new Promise(t=>{this.GM_removeValueChangeListener(e),t()})}GM_log(e,t="info",...n){this.isInvalidContext()||("string"!=typeof e&&(e=es.jsonStringify(e)),this.sendMessage("GM_log",[`${e}`,`${t}`,n]))}"GM.log"(e,t="info",...n){return new Promise(r=>{this.GM_log(e,t,...n),r()})}CAT_createBlobUrl(e){return Promise.resolve(eT(this,e))}CAT_fetchBlob(e){return this.sendMessage("CAT_fetchBlob",[`${e}`])}async CAT_fetchDocument(e){if(this.isInvalidContext())return;let t=this.message;return e_(this,e,!!t&&t.envTag===el.content)}static _GM_cookie(e,t,n,r){"object"!=typeof(n||!1)||"string"!=typeof(n.domain??"")||"number"!=typeof(n.expirationDate??0)||"boolean"!=typeof(n.httpOnly??!1)||"string"!=typeof(n.name??"")||"object"!=typeof(n.partitionKey??null)||"string"!=typeof(n.path??"")||"boolean"!=typeof(n.secure??!1)||"boolean"!=typeof(n.session??!1)||"string"!=typeof(n.url??"")||"string"!=typeof(n.value??"")?r(void 0,Error("Invalid Argument Type")):e.sendMessage("GM_cookie",[`${t}`,eo(n)]).then(e=>{r&&r(e,void 0)}).catch(e=>{r&&r(void 0,e)})}"GM.cookie"(e,t){return new Promise((n,r)=>{eX(this,e,t,(e,t)=>{t?r(t):n(e)})})}"GM.cookie.set"(e){return new Promise((t,n)=>{eX(this,"set",e,(e,r)=>{r?n(r):t(e)})})}"GM.cookie.list"(e){return new Promise((t,n)=>{eX(this,"list",e,(e,r)=>{r?n(r):t(e)})})}"GM.cookie.delete"(e){return new Promise((t,n)=>{eX(this,"delete",e,(e,r)=>{r?n(r):t(e)})})}"GM_cookie.set"(e,t){eX(this,"set",e,t)}"GM_cookie.list"(e,t){eX(this,"list",e,t)}"GM_cookie.delete"(e,t){eX(this,"delete",e,t)}GM_cookie(e,t,n){eX(this,e,t,n)}menuKeyRegistered;menuIdCounter;regMenuCounter;contentEnvKey;GM_registerMenuCommand(e,t,n){if(!this.EE)return -1;this.contentEnvKey||(this.contentEnvKey=`-${Date.now().toString(36)}.${q(8e11,2e12).toString(36)}`,this.menuKeyRegistered=new Set,this.menuIdCounter=0,this.regMenuCounter=0),this.regMenuCounter+=1,n||"object"!=typeof t||(n=t,t=void 0);let r="string"==typeof n?{accessKey:n}:n?{...n,id:void 0,individual:void 0}:{},s=!t&&!e,o="object"==typeof n?n.individual:void 0;void 0===o&&s&&(o=!0),r.mIndividualKey=o?this.regMenuCounter:0,void 0===r.autoClose&&(r.autoClose=!0),void 0===r.nested&&(r.nested=!0),s?(r.mSeparator=!0,e="",t=void 0):r.mSeparator=!1;let a="object"==typeof n?n.id:void 0;void 0===a&&(a=this.menuIdCounter+=1);let i=a;a=`t${a}`;let l=a=`${this.contentEnvKey}.${a}`;return l&&this.menuKeyRegistered.has(l)?this.EE.removeAllListeners("menuClick:"+l):this.menuKeyRegistered.add(l),t&&this.EE.addListener("menuClick:"+l,t),this.sendMessage("GM_registerMenuCommand",[l,`${e}`,r]),i}"GM.registerMenuCommand"(e,t,n){return new Promise(r=>{r(this.GM_registerMenuCommand(e,t,n))})}CAT_registerMenuInput(...e){return this.GM_registerMenuCommand(...e)}GM_addStyle(e){if(!this.message||!this.scriptRes)return;if("string"!=typeof e)throw Error("The parameter 'css' of GM_addStyle shall be a string.");let t=this.contentMsg.syncSendMessage({action:"content/runtime/addElement",data:{params:[null,"style",{textContent:e}]}});if(t.code)throw Error(t.message);return this.contentMsg.getAndDelRelatedTarget(t.data)}"GM.addStyle"(e){return new Promise(t=>{t(this.GM_addStyle(e))})}GM_addElement(e,t,n={}){let r;if(!this.message||!this.scriptRes)return;if("string"!=typeof e?r=this.contentMsg.sendRelatedTarget(e):(r=null,n=t||{},t=e),"string"!=typeof t)throw Error("The parameter 'tagName' of GM_addElement shall be a string.");if(null!==n&&"object"!=typeof n)throw Error("The parameter 'attrs' of GM_addElement shall be an object.");let s={},o={};for(let[e,t]of Object.entries(n))"string"==typeof t||"number"==typeof t?s[e]=t:o[e]=t;let a=this.contentMsg.syncSendMessage({action:"content/runtime/addElement",data:{params:[r,t,s]}});if(a.code)throw Error(a.message);let i=this.contentMsg.getAndDelRelatedTarget(a.data);for(let[e,t]of Object.entries(o))i[e]=t;return i}"GM.addElement"(e,t,n={}){return new Promise(r=>{r(this.GM_addElement(e,t,n))})}GM_unregisterMenuCommand(e){if(!this.EE||!this.contentEnvKey)return;let t=`t${e}`;t=`${this.contentEnvKey}.${t}`,this.menuKeyRegistered.delete(t),this.EE.removeAllListeners("menuClick:"+t),this.sendMessage("GM_unregisterMenuCommand",[t])}"GM.unregisterMenuCommand"(e){return new Promise(t=>{this.GM_unregisterMenuCommand(e),t()})}CAT_unregisterMenuInput(...e){this.GM_unregisterMenuCommand(...e)}CAT_userConfig(){return this.sendMessage("CAT_userConfig",[])}async CAT_fileStorage(e,t){if("config"===e)return void this.sendMessage("CAT_fileStorage",["config"]);let n={baseDir:t.baseDir||"",path:t.path||"",filename:t.filename,file:t.file};"upload"===e&&(n.data=await eT(this,t.data)),this.sendMessage("CAT_fileStorage",[`${e}`,n]).then(async n=>{switch(n.action){case"onload":if("download"===e){let e=await this.CAT_fetchBlob(n.data);t.onload&&t.onload(e)}else t.onload&&t.onload(n.data);break;case"error":if(void 0===n.data.code){t.onerror&&t.onerror({code:-1,message:n.data.message});return}t.onerror&&t.onerror(n.data)}})}GM_xmlhttpRequest(e){let{abort:t}=eP(this,e,!1);return{abort:t}}"GM.xmlHttpRequest"(e){let{retPromise:t,abort:n}=eP(this,e,!0);return t.abort=n,t}static _GM_download(e,t,n){let r,s,o;if(e.isInvalidContext())return{retPromise:n?Promise.reject("GM_download: Invalid Context"):null,abort:()=>{}};let a=n?new Promise((e,t)=>{r=e,s=t}):null,i="object"==typeof t.url?eI(t.url):t.url,l=!1,c=null,d=t.context,u=e=>{let t={...e};return e?.data&&(t.data=e.data),void 0!==d&&(t.context=d),t};return(async()=>{let n=await i,a=t.downloadMode||"native";if(t.url=n,"browser"===a||n.startsWith("blob:")){if("string"==typeof t.user&&t.user)try{let e=new URL(t.url),n=`${encodeURIComponent(t.user)}`,r=t.password?`:${encodeURIComponent(t.password)}`:"";t.url=`${e.protocol}//${n}${r}@${e.host}${e.pathname}${e.search}${e.hash}`}catch{}let a=await e.connect("GM_download",[{method:t.method,downloadMode:"browser",url:n,name:t.name,headers:t.headers,saveAs:t.saveAs,conflictAction:t.conflictAction,timeout:t.timeout,cookie:t.cookie,anonymous:t.anonymous}]);if(l)return;(o=a).onMessage(e=>{switch(e.action){case"onload":case"save_cancelled":t.onload?.(u({...e.data})),r?.(e.data);break;case"onprogress":t.onprogress?.(u({...e.data,mode:"browser"})),s?.(Error("Timeout ERROR"));break;case"ontimeout":t.ontimeout?.(u({})),s?.(Error("Timeout ERROR"));break;case"onerror":t.onerror?.(u({error:"unknown"})),s?.(Error("Unknown ERROR"));break;default:y.logger().warn("GM_download resp is error",{data:e}),s?.(Error("Unexpected Internal ERROR"))}})}else{let a={url:n,fetch:!0,responseType:"blob",onloadend:async n=>{let a;if(l)return;let i=n.response;if(!(i instanceof Blob))return;let c=URL.createObjectURL(i),d=!1,p=()=>{d||(d=!0,setTimeout(()=>{URL.revokeObjectURL(c)},1))};try{a=await e.connect("GM_download",[{method:t.method,downloadMode:"browser",url:c,name:t.name,headers:t.headers,saveAs:t.saveAs,conflictAction:t.conflictAction,timeout:t.timeout,cookie:t.cookie,anonymous:t.anonymous}])}catch(e){p(),l||(t.onerror?.(u({error:"unknown"})),s?.(e instanceof Error?e:Error("GM_download connect ERROR")));return}if(l){p();try{a.disconnect()}catch{}return}(o=a).onMessage(e=>{switch(e.action){case"onload":case"save_cancelled":t.onload?.(u({...e.data})),r?.(e.data),p();break;case"ontimeout":t.ontimeout?.(u({})),s?.(Error("Timeout ERROR")),p();break;case"onerror":t.onerror?.(u({error:"unknown"})),s?.(Error("Unknown ERROR")),p();break;default:y.logger().warn("GM_download resp is error",{data:e}),s?.(Error("Unexpected Internal ERROR")),p()}}),o.onDisconnect(()=>{p()})},onload:()=>{},onprogress:e=>{t.onprogress?.(u({...e,mode:"native"}))},ontimeout:()=>{t.ontimeout?.(u({}))},onerror:()=>{t.onerror?.(u({error:"unknown"}))}};"object"==typeof t.headers&&(a.headers=t.headers),"string"==typeof t.method&&(a.method=t.method||"GET"),"number"==typeof t.timeout&&(a.timeout=t.timeout),"string"==typeof t.cookie&&(a.cookie=t.cookie),"boolean"==typeof t.anonymous&&(a.anonymous=t.anonymous),"string"==typeof t.user&&t.user&&(a.user=t.user,a.password=t.password||"");let{retPromise:i,abort:d}=eP(e,a,!0,!0);i?.catch(()=>{l||s?.(Error("Native Download ERROR"))}),c=d}})().catch(console.error),{retPromise:a,abort:()=>{l=!0,o?.disconnect(!0),c?.()}}}GM_download(e,t){let{abort:n}=eZ(this,"string"==typeof e?{url:e,name:t}:{...e},!1);return{abort:n}}"GM.download"(e,t){let{retPromise:n,abort:r}=eZ(this,"string"==typeof e?{url:e,name:t}:{...e},!0);return n.abort=r,n}static _GM_notification(e,t,n,r,s){let o,a,i,l,c;if(e.isInvalidContext())return Promise.resolve();let d=e.notificationTagMap||(e.notificationTagMap=new Map);if(e.eventId+=1,"string"==typeof t)switch((o={}).text=t,arguments.length){case 4:o.onclick=s;case 3:o.image=r;case 2:o.title=n}else(o=Object.assign({},t)).ondone=o.ondone||n;return o.onclick&&(a=o.onclick,delete o.onclick),o.ondone&&(i=o.ondone,delete o.ondone),o.oncreate&&(l=o.oncreate,delete o.oncreate),"string"==typeof o.tag&&(c=d.get(o.tag)),e.sendMessage("GM_notification",[eo(o),c]).then(t=>{if(!e.EE)return;l&&l.apply({id:t},[t]),"string"==typeof o.tag&&d.set(o.tag,t);let n=!1;e.EE.addListener("GM_notification:"+t,r=>{if(e.EE)switch(r.event){case"click":case"buttonClick":{let e={event:r.event,id:t,isButtonClick:"buttonClick"===r.event,buttonClickIndex:r.params.index,byUser:r.params.byUser,preventDefault:function(){n=!0},highlight:o.highlight,image:o.image,silent:o.silent,tag:o.tag,text:o.tag,timeout:o.timeout,title:o.title,url:o.url};a&&a.apply({id:t},[e]),i&&i.apply({id:t},[]),n||"string"!=typeof o.url||(window.open(o.url,"_blank"),y.logger().info("GM_notification open url: "+o.url,{data:o}));break}case"close":i&&i.apply({id:t},[r.params.byUser]),"string"==typeof o.tag&&d.delete(o.tag),e.EE.removeAllListeners("GM_notification:"+e.eventId);break;default:y.logger().warn("GM_notification resp is error",{resp:r})}})}),Promise.resolve()}async "GM.notification"(e,t,n,r){return e0(this,e,t,n,r)}GM_notification(e,t,n,r){e0(this,e,t,n,r)}GM_closeNotification(e){this.sendMessage("GM_closeNotification",[`${e}`])}GM_updateNotification(e,t){this.sendMessage("GM_updateNotification",[`${e}`,eo(t)])}GM_openInTab(e,t){let n;if(this.isInvalidContext())return;let r={};"boolean"==typeof t?r.active=!t:t&&(r={...t}),"boolean"!=typeof r.active&&"boolean"==typeof r.loadInBackground?r.active=!r.loadInBackground:void 0===r.active&&(r.active=!0),void 0===r.insert&&(r.insert=!0),void 0===r.setParent&&(r.setParent=!0);let s={close:()=>{n&&this.GM_closeInTab(n)},closed:!1,onclose(){}};return this.sendMessage("GM_openInTab",[e,r]).then(e=>{this.EE&&(e?(n=e,this.EE.addListener("GM_openInTab:"+e,t=>{if(this.EE)switch(t.event){case"oncreate":n=t.tabId;break;case"onclose":s.onclose&&s.onclose(),s.closed=!0,this.EE.removeAllListeners("GM_openInTab:"+e);break;default:y.logger().warn("GM_openInTab resp is error",{resp:t})}})):(s.onclose&&s.onclose(),s.closed=!0))}),s}"GM.openInTab"(e,t){return new Promise(n=>{n(this.GM_openInTab(e,t))})}GM_closeInTab(e){if(!this.isInvalidContext())return this.sendMessage("GM_closeInTab",[e])}GM_getTab(e){this.isInvalidContext()||this.sendMessage("GM_getTab",[]).then(t=>{e(t??{})})}"GM.getTab"(){return new Promise(e=>{this.GM_getTab(t=>{e(t)})})}GM_saveTab(e){this.isInvalidContext()||("object"==typeof e&&(e=eo(e)),this.sendMessage("GM_saveTab",[e]))}"GM.saveTab"(e){return new Promise(t=>{this.GM_saveTab(e),t()})}GM_getTabs(e){this.isInvalidContext()||this.sendMessage("GM_getTabs",[]).then(t=>{e(t)})}"GM.getTabs"(){return new Promise(e=>{this.GM_getTabs(t=>{e(t)})})}GM_setClipboard(e,t,n){let r;this.isInvalidContext()||("object"==typeof t&&t?.mimetype?r=`${t.mimetype}`:"text"===(r=("string"==typeof t?t:t?.type)||"text/plain")?r="text/plain":"html"===r&&(r="text/html"),e=`${e}`,this.sendMessage("GM_setClipboard",[e,r]).then(()=>{"function"==typeof n&&n()}).catch(()=>{"function"==typeof n&&n()}))}"GM.setClipboard"(e,t){return new Promise(this.isInvalidContext()?()=>{}:n=>{this.GM_setClipboard(e,t,()=>{n()})})}GM_getResourceText(e){let t=this.scriptRes?.resource?.[e];if(t)return t.content}"GM.getResourceText"(e){return new Promise(t=>{t(this.GM_getResourceText(e))})}GM_getResourceURL(e,t){let n=this.scriptRes?.resource?.[e];if(n){let e=n.base64;return(e||(e=`data:${n.contentType};base64,${btoa(encodeURIComponent(n.content).replace(/%([0-9A-F]{2})/g,(e,t)=>String.fromCharCode(parseInt(`0x${t}`,16))))}`),t)?URL.createObjectURL(function(e){let t=e.split(",")[0].split(":")[1].split(";")[0],n=atob(e.split(",")[1]),r=new Uint8Array(new ArrayBuffer(n.length));for(let e=0;e{n(this.GM_getResourceURL(e,t))})}"window.close"(){return this.sendMessage("window.close",[])}"window.focus"(){return this.sendMessage("window.focus",[])}apiLoadPromise;CAT_scriptLoaded(){return this.loadScriptPromise}}er([ee.API()],eJ.prototype,"GM_getValue",null),er([ee.API()],eJ.prototype,"GM.getValue",null),er([ee.API()],eJ.prototype,"GM_setValue",null),er([ee.API()],eJ.prototype,"GM.setValue",null),er([ee.API()],eJ.prototype,"GM_deleteValue",null),er([ee.API()],eJ.prototype,"GM.deleteValue",null),er([ee.API()],eJ.prototype,"GM_listValues",null),er([ee.API()],eJ.prototype,"GM.listValues",null),er([ee.API()],eJ.prototype,"GM_setValues",null),er([ee.API()],eJ.prototype,"GM_getValues",null),er([ee.API({depend:["GM_getValues"]})],eJ.prototype,"GM.getValues",null),er([ee.API()],eJ.prototype,"GM.setValues",null),er([ee.API()],eJ.prototype,"GM_deleteValues",null),er([ee.API()],eJ.prototype,"GM.deleteValues",null),er([ee.API()],eJ.prototype,"GM_addValueChangeListener",null),er([ee.API({depend:["GM_addValueChangeListener"]})],eJ.prototype,"GM.addValueChangeListener",null),er([ee.API()],eJ.prototype,"GM_removeValueChangeListener",null),er([ee.API({depend:["GM_removeValueChangeListener"]})],eJ.prototype,"GM.removeValueChangeListener",null),er([ee.API()],eJ.prototype,"GM_log",null),er([ee.API({depend:["GM_log"]})],eJ.prototype,"GM.log",null),er([ee.API()],eJ.prototype,"CAT_createBlobUrl",null),er([ee.API()],eJ.prototype,"CAT_fetchBlob",null),er([ee.API()],eJ.prototype,"CAT_fetchDocument",null),er([ee.API()],eJ.prototype,"GM.cookie",null),er([ee.API({follow:"GM.cookie"})],eJ.prototype,"GM.cookie.set",null),er([ee.API({follow:"GM.cookie"})],eJ.prototype,"GM.cookie.list",null),er([ee.API({follow:"GM.cookie"})],eJ.prototype,"GM.cookie.delete",null),er([ee.API({follow:"GM_cookie"})],eJ.prototype,"GM_cookie.set",null),er([ee.API({follow:"GM_cookie"})],eJ.prototype,"GM_cookie.list",null),er([ee.API({follow:"GM_cookie"})],eJ.prototype,"GM_cookie.delete",null),er([ee.API()],eJ.prototype,"GM_cookie",null),er([ee.API()],eJ.prototype,"GM_registerMenuCommand",null),er([ee.API({depend:["GM_registerMenuCommand"]})],eJ.prototype,"GM.registerMenuCommand",null),er([ee.API({depend:["GM_registerMenuCommand"]})],eJ.prototype,"CAT_registerMenuInput",null),er([ee.API()],eJ.prototype,"GM_addStyle",null),er([ee.API({depend:["GM_addStyle"]})],eJ.prototype,"GM.addStyle",null),er([ee.API()],eJ.prototype,"GM_addElement",null),er([ee.API({depend:["GM_addElement"]})],eJ.prototype,"GM.addElement",null),er([ee.API()],eJ.prototype,"GM_unregisterMenuCommand",null),er([ee.API({depend:["GM_unregisterMenuCommand"]})],eJ.prototype,"GM.unregisterMenuCommand",null),er([ee.API({depend:["GM_unregisterMenuCommand"]})],eJ.prototype,"CAT_unregisterMenuInput",null),er([ee.API()],eJ.prototype,"CAT_userConfig",null),er([ee.API({depend:["CAT_fetchBlob"]})],eJ.prototype,"CAT_fileStorage",null),er([ee.API()],eJ.prototype,"GM_xmlhttpRequest",null),er([ee.API()],eJ.prototype,"GM.xmlHttpRequest",null),er([ee.API()],eJ.prototype,"GM_download",null),er([ee.API()],eJ.prototype,"GM.download",null),er([ee.API()],eJ.prototype,"GM.notification",null),er([ee.API()],eJ.prototype,"GM_notification",null),er([ee.API({alias:"GM.closeNotification"})],eJ.prototype,"GM_closeNotification",null),er([ee.API({alias:"GM.updateNotification"})],eJ.prototype,"GM_updateNotification",null),er([ee.API({depend:["GM_closeInTab"]})],eJ.prototype,"GM_openInTab",null),er([ee.API({depend:["GM_openInTab","GM_closeInTab"]})],eJ.prototype,"GM.openInTab",null),er([ee.API({alias:"GM.closeInTab"})],eJ.prototype,"GM_closeInTab",null),er([ee.API()],eJ.prototype,"GM_getTab",null),er([ee.API({depend:["GM_getTab"]})],eJ.prototype,"GM.getTab",null),er([ee.API()],eJ.prototype,"GM_saveTab",null),er([ee.API({depend:["GM_saveTab"]})],eJ.prototype,"GM.saveTab",null),er([ee.API()],eJ.prototype,"GM_getTabs",null),er([ee.API({depend:["GM_getTabs"]})],eJ.prototype,"GM.getTabs",null),er([ee.API()],eJ.prototype,"GM_setClipboard",null),er([ee.API({depend:["GM_setClipboard"]})],eJ.prototype,"GM.setClipboard",null),er([ee.API()],eJ.prototype,"GM_getResourceText",null),er([ee.API({depend:["GM_getResourceText"]})],eJ.prototype,"GM.getResourceText",null),er([ee.API()],eJ.prototype,"GM_getResourceURL",null),er([ee.API({depend:["GM_getResourceURL"]})],eJ.prototype,"GM.getResourceUrl",null),er([ee.API()],eJ.prototype,"window.close",null),er([ee.API()],eJ.prototype,"window.focus",null),er([ee.protected()],eJ.prototype,"apiLoadPromise",void 0),er([ee.API()],eJ.prototype,"CAT_scriptLoaded",null);let{createGMBase:eK}=eW,{_GM_getValue:eq,_GM_cookie:eX,_GM_setValue:ez,_GM_setValues:eQ,_GM_download:eZ,_GM_notification:e0}=eJ;class e1 extends Event{url;constructor(e,t){super(e),this.url=t}}let e6=!1,e2=(t="propertyIsEnumerable",r=(n=`${Object[t]}`).indexOf(t),s=n.indexOf("()"),o=n.lastIndexOf("("),r>0&&s>0&&o===s?[n.substring(0,r),n.substring(r+t.length)]:null),e4=new Set(["eval","window","self","globalThis","top","parent"]),e8=Object.getOwnPropertyDescriptors(g.g),e3=Object.create(null),e5=Object.create(null),e9=Object.create(null);for(var e7=g.g,te=([e,t])=>{if(!(!t||e4.has(e))&&"string"==typeof e)if(t.writable){let n=t.value;if((e=>{if("function"!=typeof e||"prototype"in e)return!1;let{name:t}=e;if(!t)return!1;let n=t.charCodeAt(0);if(n>=97&&n<=122&&!t.includes(" "))if(!e2?.[1])return!0;else{let n=`${e}`;if(n===`${e2[0]}${t}${e2[1]}`||n===`${e2[0]}${e2[1]}`)return!0}return!1})(n)){let r=n.bind(g.g);e3[e]={...t,value:r},e4.add(e)}else if(!(e in e8)&&!Object.hasOwn(g.g,e)&&!e9[e])if("function"==typeof n){let r=n.bind(g.g);e9[e]={...t,value:r}}else e9[e]={...t}}else t.configurable&&t.get&&t.set&&t.enumerable&&e.startsWith("on")?e5[e]=t:(t.get||t.set)&&(e3[e]={...t,get:t?.get?.bind(g.g),set:t?.set?.bind(g.g)},e4.add(e))};e7&&e7!==Object;)Object.entries(Object.getOwnPropertyDescriptors(e7)).forEach(te),e7=Object.getPrototypeOf(e7);e4.clear();let tt=(class{}).prototype;Object.defineProperty(tt,Symbol.toStringTag,{value:g.g[Symbol.toStringTag],writable:!1,enumerable:!1,configurable:!0}),Object.defineProperty(tt,"constructor",{value:g.g.constructor,writable:!1,enumerable:!1,configurable:!0}),Object.defineProperty(tt,"__proto__",{value:g.g.__proto__,writable:!1,enumerable:!1,configurable:!0});let tn=Object.create(null,{...e9,...Object.getOwnPropertyDescriptors(tt),...e8,...e3}),tr=Object.getOwnPropertyDescriptors(console),ts=Object.getPrototypeOf(console),to=["scriptcat.org","greasyfork.org","sleazyfork.org","tampermonkey.net.cn","openuserjs.org"];class ta{scriptRes;scriptFunc;logger;sandboxContext;named;constructor(e,t){var n;let r,{envPrefix:s,message:o,contentMsg:a,code:i,envInfo:l,globalInjection:c}=t;this.scriptRes=e,this.logger=y.getInstance().logger({component:"exec",uuid:e.uuid,name:e.name});let d=(r={description:e.metadata.description?.[0]||null,matches:e.metadata.match||[],includes:e.metadata.include||[],"run-at":e.metadata["run-at"]?.[0]||"document-idle","run-in":e.metadata["run-in"]||[],icon:e.metadata.icon?.[0]||null,icon64:e.metadata.icon64?.[0]||null,header:e.metadataStr,grant:e.metadata.grant||[],connects:e.metadata.connect||[]},{downloadMode:"native",isIncognito:l.isIncognito,sandboxMode:l.sandboxMode,scriptWillUpdate:!!e.checkUpdate,scriptHandler:"ScriptCat",userAgentData:l.userAgentData,scriptUpdateURL:e.downloadUrl||null,scriptMetaStr:e.metadataStr,userConfig:e.userConfig,userConfigStr:e.userConfigStr,version:"1.4.0",script:{name:e.name,namespace:e.namespace,version:e.metadata.version?.[0]||"0.0",author:e.author,lastModified:e.updatetime,downloadURL:e.downloadUrl||null,updateURL:e.checkUpdateUrl||null,...r}});"string"==typeof i?this.scriptFunc=Function(i):this.scriptFunc=i;let u=new Set(e.metadata.grant||[]);if(n=e.metadata,n["run-at"]?.[0]==="context-menu"&&(u.add("GM_registerMenuCommand"),u.delete("none")),u.has("none")){let e=Object.create(null);e.info=d,this.named={GM:e,GM_info:d}}else this.sandboxContext=((e,t,n,r,s,o)=>{var a,i;let l,c,d,u=new en,p=new C;i=a=e.metadata,(""===(d=i["early-start"]?.[0])||"true"===d)&&a["run-at"]?.[0]==="document-start"&&(l=new Promise(e=>{c=e}));let g=!1,h=Object.create(null);h.info=t;let f=eK({prefix:n,message:r,contentMsg:s,scriptRes:e,valueChangeListener:u,EE:p,runFlag:A(),eventId:1e4,GM:h,GM_info:t,window:Object.create(null),grantSet:new Set,loadScriptPromise:l,loadScriptResolve:c,setInvalidContext(){g||(g=!0,this.valueChangeListener.clear(),this.EE.removeAllListeners(),this.runFlag=`${A()}(invalid)`,this.message=null,this.scriptRes=null,this.valueChangeListener=null,this.EE=null)},isInvalidContext:()=>g}),m=Object.create(null),y=e=>{let t=f.grantSet,n=z.get(e);if(!n)return!1;if(t.has(e))return!0;for(let{fnKey:r,api:s,param:o}of(t.add(e),n)){m[r]=s.bind(f);let e=o?.depend;if(e)for(let t of e)y(t)}return!0};for(let e of o)y(e),e.startsWith("GM.")?y(e.replace("GM.","GM_")):e.startsWith("GM_")&&y(e.replace("GM_","GM."));for(let e of Object.keys(m)){let t=e.split("."),n=t.length,r=f,s="";for(let e=0;e{if(e6||!e.navigation)return;e6=!0;let t=((e,t)=>{for(let n=e;n;n=es.objectGetPrototypeOf(n)){let r=es.objectGetOwnPropertyDescriptor(n,t);if(r)return r.get?.bind(e)}})(e.location,"href"),n=e.dispatchEvent.bind(e),r=t?.(),s=0,o=async e=>{let o=s=s>512?1:s+1,a=t?.(),i=e.destination?.url;if(i!==a&&a===r){if(await new Promise(e=>{self.addEventListener("message",e,{once:!0}),self.postMessage({[`${Math.random()}`]:{}},"*")}),o!==s)return;a=t?.()}a===r||(r=a,n(new e1("urlchange",i||a)))};e.navigation?.addEventListener("navigate",o,!1)})(window)),f})(e,d,s,o,a,u),c&&Object.assign(this.sandboxContext,c)}emitEvent(e,t,n){this.logger.debug("emit event",{event:e,eventId:t,data:n}),this.sandboxContext?.emitEvent(e,t,n)}valueUpdate(e){this.sandboxContext?.valueUpdate(e)}execContext;exec=()=>{this.logger.debug("script start");let e=this.sandboxContext;return this.execContext=e?(e=>{let t,n=Object.getOwnPropertyDescriptors(tn),r=e=>function(){let n=e.call(g.g);return n===g.g?t:n},s=e=>{let n=e.slice(2),r={fn:null,handleEvent(s){let o=t[e];o&&o===this.fn?o.call(t,s):(g.g.removeEventListener(n,r),this.fn=null)}};return{get:()=>r.fn,set(e){let{fn:t}=r;if(e!==t){let s;(s=e)!==Object(s)&&(e=null),typeof t!=typeof e&&("function"==typeof t?g.g.removeEventListener(n,r):"function"==typeof e&&g.g.addEventListener(n,r)),r.fn=e}}}};for(let e of Object.keys(e5)){let t=s(e);n[e]={...n[e],...t}}for(let e of["window","self","globalThis","top","parent","frames"]){let s=n[e];s?.value===g.g?(s.get=function(){return t},s.set=void 0,delete s.writable,delete s.value):s?.get&&(s.get=r(s.get),s.set=void 0)}if(n.$={enumerable:!1,configurable:!0,get(){return delete this.$,t}},e?.onurlchange===null){let e=null;n.onurlchange={enumerable:!0,configurable:!0,get:()=>e,set:t=>("function"!=typeof t&&(t=null),e=t,!0)}}for(let e of(t=Object.create(Object.getPrototypeOf(tn),n),["define","module","exports"]))t[e]=void 0;for(let n of Object.keys(e))n in Z||"window"===n||(t[n]=e[n]);let o=e.window;return o?.close&&(t.close=o.close),o?.focus&&(t.focus=o.focus),e?.onurlchange===null&&window.addEventListener("urlchange",(function(e){this.onurlchange?.(e)}).bind(t),!1),t.console=Object.create(ts,tr),t})(e):g.g,this.scriptFunc.call(this.execContext,this.named,this.scriptRes.name)};updateEarlyScriptGMInfo(e){let t;this.sandboxContext?(this.sandboxContext.loadScriptResolve?.(),t=this.execContext.GM_info):t=this.named?.GM_info,t.isIncognito=e.isIncognito,t.sandboxMode=e.sandboxMode,t.userAgentData=e.userAgentData}stop(){return this.logger.debug("script stop"),!0}}var ti=((c={})[c.INCLUSION=1]="INCLUSION",c);let tl=new Map,tc=(e,t)=>{let n=`${t.ruleTag} ${t.patternString} ${e}`,r=tl.get(n);if("boolean"==typeof r)return r;switch(t.ruleType){case 1:r=td(e,t.ruleContent);break;case 2:r=!td(e,t.ruleContent);break;case 3:r=tu(e,t.ruleContent);break;case 4:r=!tu(e,t.ruleContent);break;case 5:r=tp(e,t.ruleContent);break;case 6:r=!tp(e,t.ruleContent);break;default:throw Error("invalid ruleType")}return tl.size>512&&tl.clear(),tl.set(n,r),r},td=(e,t)=>{let n;try{n=new URL(e)}catch{return!1}if("*"!==t[0]&&n.protocol!==`${t[0]}:`)return!1;if(t[1]){if("."===t[1].charAt(0)){if(!`.${n.hostname}`.endsWith(`${t[1]}`))return!1}else if(`${n.hostname}`!=`${t[1]}`)return!1}let r=`${n.pathname}${n.search||"?"}`,s=`/${t[2]}`.split("*"),o=0,a=0,i=s.length,l=Array(s.length-1);if(!r.startsWith(`${s[0]}`))return!1;for(o=`${s[0]}`.length,a=1;a{let n=e.indexOf("#");if(n>=0){if(e.indexOf("#",n+1)>0)try{let t=new URL(e);if(!e.endsWith(t.hash))return!1;n=e.length-t.hash.length}catch{return!1}e=e.substring(0,n)}if(!e.length)return!1;let r=e,s=0,o=0,a=t.length,i=Array((a-1)/2);if(!r.startsWith(`${t[0]}`))return!1;s=`${t[0]}`.length;let l=2;for(;lnew RegExp(t[0],t[1]||"i").test(e),tg={userAgentData:"object"==typeof UserAgentData?UserAgentData:{},sandboxMode:"raw",isIncognito:!1};class th{msg;contentMsg;earlyScriptFlag=new Set;execScriptMap=new Map;constructor(e,t){this.msg=e,this.contentMsg=t}emitEvent(e){let t=this.execScriptMap.get(e.uuid);t&&t.emitEvent(e.event,e.eventId,e.data)}valueUpdate(e){let{uuid:t,storageName:n}=e;for(let r of this.execScriptMap.values())(r.scriptRes.uuid===t||X(r.scriptRes)===n)&&r.valueUpdate(e)}startScripts(e,t){let n=(e,n)=>{this.execScriptEntry({scriptLoadInfo:e,scriptFlag:e.flag,scriptFunc:n,envInfo:t})};e.forEach(e=>{let r=e.flag;if(this.earlyScriptFlag.has(r)){for(let e of this.execScriptMap.values())if(e.scriptRes.flag===r)return void e.updateEarlyScriptGMInfo(t)}!function(e,t,n){if(void 0!==e[t]){n(e[t]),delete e[t];return}Object.defineProperty(e,t,{configurable:!0,set:r=>{delete e[t],n(r)}})}(window,r,t=>{n(e,t)})})}checkEarlyStartScript(e,t){let n=`evt0be4e6a5-a95a-4982-ae64-eaed28361dfc.${e}`,r=`${n}${_.scriptLoadComplete}`,s=`${n}${_.envLoadComplete}`;k(r,e=>{let n=e.detail,r=n?.scriptFlag;if("string"==typeof r){if(e.preventDefault(),n.scriptInfo.scriptUrlPatterns)try{if(function(e,t){let n=!1,r=!1;for(let s of t)if(s.ruleType&ti.INCLUSION)!n&&tc(e,s)&&(n=!0);else if(!tc(e,s)){r=!0;break}return!n||r}(window.location.href,n.scriptInfo.scriptUrlPatterns))return}catch(e){console.warn("Unexpected match error",e)}this.execEarlyScript(r,n.scriptInfo,t)}}),P(new CustomEvent(s))}execEarlyScript(e,t,n){let r=window[e];this.execScriptEntry({scriptLoadInfo:t,scriptFunc:r,scriptFlag:e,envInfo:n}),this.earlyScriptFlag.add(e)}execScriptEntry(e){let{scriptFunc:t}=e,n=ea(e.envInfo),r=ea(e.scriptLoadInfo),s=new ta(r,{envPrefix:"scripting",message:this.msg,contentMsg:this.contentMsg,code:t,envInfo:n});this.execScriptMap.set(r.uuid,s);let o=r.metadata||{},a=r.resource;if(o["require-css"]&&a)for(let e of o["require-css"]){let t=a[e];t&&function(e){let t=new CSSStyleSheet;t.replaceSync(e),document.adoptedStyleSheets=document.adoptedStyleSheets.concat(t)}(t.content)}if(o["run-at"]&&"document-body"===o["run-at"][0])et(s.exec);else try{s.exec()}catch{}}}let tf=(e,t,n)=>{try{return e[t]=n,!0}catch{return!1}};class tm{scripEnvTag;server;msg;scriptExecutor;extensionEnv;constructor(e,t,n,r,s){this.scripEnvTag=e,this.server=t,this.msg=n,this.scriptExecutor=r,this.extensionEnv=s}contentInit(){this.server.on("runtime/addElement",e=>{let t,[n,r,s]=e.params,o=this.msg;n&&(t=o.getAndDelRelatedTarget(n));let a=document.createElement(r),i=s?{...s}:{},l="";for(let e of(i.textContent&&(l=i.textContent,delete i.textContent),Object.keys(i)))a.setAttribute(e,i[e]);return l&&(a.textContent=l),(t||document.head||document.body||document.querySelector("*")).appendChild(a),o.sendRelatedTarget(a)})}init(){this.server.on("runtime/emitEvent",e=>{this.scriptExecutor.emitEvent(e)}),this.server.on("runtime/valueUpdate",e=>{this.scriptExecutor.valueUpdate(e)}),this.server.on("pageLoad",e=>{this.startScripts(e.scripts,e.envInfo)});let{inIncognitoContext:e}=this.extensionEnv||{},t={...tg};"boolean"==typeof e&&(t.isIncognito=e),this.scriptExecutor.checkEarlyStartScript(this.scripEnvTag,t)}startScripts(e,t){this.scriptExecutor.startScripts(e,t)}externalMessage(){(e=>{let t;if(t=window.location.hostname,!to.some(e=>t.endsWith(e)&&(t.length===e.length||t.endsWith(`.${e}`))))return;let n=window.external||(window.external={}),r={isInstalled(t,n,r){ei(e,"scripting/script/isInstalled",{name:t,namespace:n}).then(r)}};tf(n,"Scriptcat",r),((e,t)=>{let n=e.Tampermonkey,r=n?.isInstalled,s=t.isInstalled;if(r&&n?.getVersion&&n.openOptions){try{n.isInstalled=(e,t,n)=>{r(e,t,r=>{r?.installed?n(r):s(e,t,n)})}}catch{}return!0}return!1})(n,r)||tf(n,"Tampermonkey",r)})(this.msg)}}d="0be4e6a5-a95a-4982-ae64-eaed28361dfc",a="",l=e=>{e instanceof CustomEvent&&e.detail?.action=="broadcastEventFlag"&&(a=e.detail.eventFlag,i=e.detail.extensionEnv,x(d,l),U(d,{action:"receivedEventFlag"}),((e,t)=>{let n=el.content,r=new N(e,!1,n);new y({writer:new v(r,"scripting/logger"),consoleLevel:"none",labels:{env:"content",href:window.location.href}}).logger().debug("content start");let s=new J("content",r),o=new th(r,new N(e,!0,n)),a=new tm(n,s,r,o,t);a.contentInit(),a.init()})(a,i))},k(d,l),U(d,{action:"requestEventFlag"})})(); })({"brands":[{"brand":"Chromium","version":"154"},{"brand":"Microsoft Edge","version":"154"},{"brand":"Not A(Brand","version":"99"}],"mobile":false,"platform":"Windows","architecture":"x86-64","bitness":"64"}) //# sourceURL=chrome-extension://liilgpjgabokdklappibcjfablkpcekh/scriptcat-content.js