Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

streamtape.com: filter interferes with Tampermonkey #25411

Closed
10 of 11 tasks
j4k0xb opened this issue Sep 23, 2024 · 1 comment
Closed
10 of 11 tasks

streamtape.com: filter interferes with Tampermonkey #25411

j4k0xb opened this issue Sep 23, 2024 · 1 comment
Labels

Comments

@j4k0xb
Copy link

j4k0xb commented Sep 23, 2024

Prerequisites

  • This is NOT a YouTube, Facebook, Twitch or a shortener/hosting site report. These sites MUST be reported by clicking their respective links.
  • I read and understand the policy about what is a valid filter issue.
  • I verified that this issue is not a duplicate. (Search here to find out.)
  • I did not remove any of the default filter lists, or I have verified that the issue was not caused by removing any of the default lists.
  • I did not enable additional filter lists, or I have verified that the issue still occurs without enabling additional filter lists.
  • I do not have custom filters/rules, or I have verified that the issue still occurs without custom filters/rules.
  • I am not using uBlock Origin along with other content blockers.
  • I have verified that the web browser's built-in content blocker/tracking protection, network wide/DNS blocking, or my VPN is not causing the issue.
  • I have verified that other extensions are not causing the issue.
  • If this is about a breakage or detection, I have verified that it is caused by uBlock Origin and isn't a site issue.
  • I did not answer truthfully to ALL the above checkboxes.

URL(s) where the issue occurs.

https://streamtape.com

Description

Tampermonkey userscripts are blocked when Block filters – Ads is active.

Pretty sure it is caused by one/multiple of these filters, which have a too generic search pattern:

! ##+js(acs, JSON.parse, Promise)
adblockstreamtape.*,adblockstrtape.*,adblockstrtech.*,komikcast.*,mavanimes.*,stape.*,streamadblockplus.*,streamta.*,streamtape.*,streamtapeadblock.*,strtape.*,strtapeadblock.*,strtpe.*,vanime.*##+js(acs, JSON.parse, Promise)

! ##+js(acs, document.documentElement, break;case $.) including FingerprintJS variant
0123movie.*,10starhub.com,11xmovies.*,123chill.*,123mkv.*,123movies-free.*,123movies-org.*,123movies.*,123moviesfree.*,123movieshub.*,123movieweb.*,190.115.18.20,1cloudfile.com,1direct-cloud.*,1hd.to,1movieshd.*,1qwebplay.xyz,1stream.*,1todaypk.*,1vid1shar.space,2kmovie.*,3kmovies.*,4movierulz.*,4movierulz1.*,5movies.*,5moviess.com,6hiidude.art,720pflix.*,7moviesrulz.*,7starhd.*,7starmv.com,9anime.pe,9goals.live,9kmovies.*,9xflix.*,a8ix.*,acn.vin,adblocktape.*,adslink.pw,aflizmovies.com,ak4eg.*,algodaodocescan.com.br,aliezstream.pro,amsmotoresllc.com,andyday.tv,anihdplay.com,animecurse.cz,animeflv.*,animeonline.ninja,animesultra.net,animeunity.*,animixplay.*,aniwatch.*,aniwatchtv.to,antenasports.ru,antennasports.ru,arbsd.*,arc018.to,asianhdplay.*,atishmkv.*,b4ucast.com,backfirstwo.site,bdmusic28.*,blogesque.net,bolly2tolly.*,bollyflix.*,bowfile.com,buffsports.me,buffstreams.*,chrisellisonllc.xyz,cinemabaz.com,claplivehdplay.ru,clickndownload.*,comedyshow.to,cool-etv.net,couchtuner.*,crackstreamshd.click,crvsport.ru,cypherscans.xyz,d0000d.com,d000d.com,d0o0d.com,daddy-stream.xyz,daddylive1.*,daddylivehd.*,defienietlynotme.com,direct-cloud.*,divicast.com,divxfilmeonline.net,dlhd.*,do0od.com,dood.*,doods.pro,dooood.*,downloadhub.*,ds2play.com,ds2video.com,dwlinks.buzz,egybest.*,embed4u.xyz,embedme.*,embedpk.net,embedplayer.*,embedstream.me,embtaku.*,emovies.*,encurtandourl.com,engvideo.net,esportivos.*,exee.app,explorosity.net,extremosports.club,f123movies.com,faselhd-watch.*,faselhd.*,faselhdwatch.*,file-upload.com,filecrypt.*,filemooon.*,film4e.com,filmeserialeonline.org,filmy-hit.*,filmygod.*,filmyhitt.com.in,finfang.*,fiveyardlab.com,flashsports.org,flixhq.*,flostreams.xyz,flybid.net,fmembed.cc,fmoonembed.*,fmoonembed.pro,fmoviesfree.*,fmovieszfree.com,focus4ca.com,foot2live.cc,footballandress.club,footybite.to,footyhunter.lol,forex-golds.com,forex-trnd.com,fr.streamon-sport.ru,freemovies.*,freetvsports.com,french-streams.cc,fsl-stream.lu,fslinks.org,fstream365.com,futemax.zip,game-2u.com,gamovideo.com,gdflix.*,gdrivelatino.net,gdrivelatinohd.net,gdtot.*,gembedhd.com,globalstreams.xyz,gocast.pro,gocast2.com,godzcast.com,gogohd.*,gokutv.*,gomovies.*,goone.pro,gotaku1.com,hamburgerinsult.com,harimanga.com,hdfriday.*,hdfungamezz.xyz,hdhub4u.*,hdmoviehub.*,hdmovies23.*,hdtoday.tv,hellnaw.*,hexload.com,hianime.*,hihihaha1.xyz,hitsports.pro,hollymoviehd.*,huboflink.in,hurawatchz.to,iflixmovies.*,isaidub6.net,itopmusic.com,itopmusics.com,japscan.lol,jockantv.com,jpopsingles.eu,kaido.to,kerapoxy.*,kickassanime.*,klubsports.*,koora.vip,kunmanga.com,kuttymovies1.com,lewblivehdplay.ru,ligaset.com,likemanga.io,ling-online.*,linkedmoviehub.top,linkupload.xyz,livestreames.us,locatedinfain.com,lrepacks.net,lulustream.com,luluvdo.com,mangaraw.*,mangareader.to,maxstream.*,mcrypto.club,medeberiyas.com,mega4upload.com,megadb.net,megafilmeshd50.com,megaupto.com,mhdsports.*,mhdsportstv.*,mhdtvsports.*,mkvcinemas.*,mkvmoviespoint.autos,mlwbd.*,mmastreams.me,moonembed.*,movembed.cc,moviebaaz.*,moviekids.tv,movielinkhub.xyz,movieplay.*,movies2k.*,movies4u.*,movies4u3.*,moviesda4.*,movieshd.watch,moviesjoy.*,moviesrulz.*,moviestowatch.tv,moviesverse.*,movieuniverse.*,moviezwap.*,mp3fusion.net,mp4upload.com,mreader.co,multicanais.*,mydownloadtube.*,myflixer.*,myflixertv.to,myflixerz.*,mylivestream.pro,mywatchseries.*,naijachoice.com.ng,naijanowell.com,netfilmes.org,netizensbuzz.com,nflstreams.me,niadd.com,niaomea.me,nizarstream.com,noblocktape.*,nolive.me,nowmaxtv.com,nowsports.me,nowsportv.nl,odiasia.sbs,ogomovies.*,oii.io,olalivehdplay.ru,olympicstreams.me,onepiecepower.com,optimizepics.com,pahe.plus,pesktop.com,pkspeed.net,pladrac.net,playgo1.cc,poclivetv.com,poophq.com,poscitechs.*,project-free-tv.*,projectfreetv.*,putlocker.*,qqwebplay.xyz,radamel.icu,rahim-soft.com,reddit-soccerstreams.com,repack-games.com,rgeyyddl.*,ronaldo7.pro,roystream.com,s.to,s3taku.com,sbnmp.bar,send.cm,serienstream.*,series2watch.*,seriesonline.*,seriestv.org,shadowrangers.live,shahed4u.*,shaheed4u.*,share.filesh.site,sharedisk.*,shavetape.*,shinden.pl,shoot-yalla.live,shortenlinks.top,sinvida.me,smoner.com,soap2day-online.com,soaper.tv,soccer100.shop,soccerstream100.to,sportsbuff.stream,sportshub.*,ssoap2day.*,stakes100.xyz,stfly.*,strcloud.*,streamadblocker.*,streambtw.com,streamcloud.*,streamhd247.*,streamhub.*,streamnoads.com,streamonsport99.*,streamtape.*,streamvid.net,strtapewithadblock.*,sulleiman.com,swatchseries.*,swiftload.io,tamilprint25.com,tapeadsenjoyer.com,tapeadvertisement.com,tapeantiads.com,tapeblocker.com,tapelovesads.org,tapenoads.com,tapewithadblock.org,techgeek.digital,temp.modpro.co,tennisonline.me,theflixertv.to,thenextplanet1.*,tii.la,tnhitsda.net,todaypk.*,topcartoons.tv,torovalley.net,totalsportek.*,trendytalker.com,turcasmania.com,tvfutbol.info,tvpclive.com,up-4ever.net,upbaam.com,updown.cam,uploadhub.*,uproxy.*,uptomega.net,usgate.xyz,uupbom.com,vadbam.net,vavada5com.com,vdbtm.shop,veev.to,vegamovie.*,vid-guard.com,vidcloud9.*,video-seed.xyz,videoplayer.*,vido.*,vidspeed.cc,vidsrc.*,vidstreams.net,vidtube.one,viidshar.com,vikistream.com,vipbox.*,vipleague.*,vixcloud.co,volokit2.com,vpcxz19p.xyz,watchcartoononline.*,watchmovierulz.*,watchmovies.*,watchomovies.*,watchonlinemoviespk.*,watchop.live,watchseries.*,watchseries1.*,watchtvchh.xyz,wecast.to,worldstreams.click,xsportbox.com,yesmovies4u.*,yu2be.com,z12z0vla.*,zamundatv.com,zvision.link##+js(acs, document.documentElement, break;case $.)

! ##+js(acs, EventTarget.prototype.addEventListener, delete window)
9animetv.to,advertisertape.com,animeunity.to,animeyabu.org,anitube.*,ate60vs7zcjhsjo5qgv8.com,file4go.*,linkz.wiki,lulustream.com,movies4u.*,movieshubweb.com,player.smashy.stream,putlocker.*,sflix.*,soap2day.*,streamtape.*,swiftload.io,subtitlecat.com,vidsrc.*,viprow.*,vixcloud.co,ythd.org##+js(acs, EventTarget.prototype.addEventListener, delete window)

Here are the 3 separate scripts that Tampermonkey injects (got the content with a debugger):

((e,t)=>{const n=window,o=t(n),s=n.parent,{O_dPy:r,cSO:i}=o;r(s,e,i({value:o,enumerable:!1,writable:!1,configurable:!0}))})("m1fm32g9.v87", e=>{const t=Object.call,n=t.bind(t),o=Object.assign,s=Object.getOwnPropertyDescriptor,r=e=>o({__proto__:null},e);return r({sourceWindow:e,cSO:r,F_c:n,F_a:Object.apply,F_b:Object.bind,F_tS:Function.toString,A_fE:[].forEach,A_so:[].some,
A_sh:[].shift,A_j:[].join,A_iO:[].indexOf,A_iA:Array.isArray,O_a:o,O_k:Object.keys,O_v:Object.values,O_dP:Object.defineProperties,O_dPy:Object.defineProperty,O_hOP:Object.hasOwnProperty,O_gOPN:Object.getOwnPropertyNames,O_gOPD:s,O_gOPDs:Object.getOwnPropertyDescriptors,O_gPO:Object.getPrototypeOf,O_tS:{}.toString,J_p:JSON.parse,J_s:JSON.stringify,M_f:Math.floor,M_r:Math.random,M_m:Math.max,M_mi:Math.min,N_tS:(0).toString,N_MSI:Number.MAX_SAFE_INTEGER,P_t:Promise.prototype.then,
P_c:Promise.prototype.catch,R_rABS:FileReader.prototype.readAsBinaryString,R_rAT:FileReader.prototype.readAsText,R_r:s(FileReader.prototype,"result").get,R_enq:e.ReadableStreamDefaultController?e.ReadableStreamDefaultController.prototype.enqueue:null,R_cl:e.ReadableStreamDefaultController?e.ReadableStreamDefaultController.prototype.close:null,S_fCC:String.fromCharCode,S_sl:"".slice,S_su:"".substr,S_sp_nr:"".split,S_iO:"".indexOf,S_tr:"".trim,S_r_nr:"".replace,S_rA_nr:"".replaceAll,
S_cCA:"".charCodeAt,S_tLC:"".toLowerCase,S_tUC:"".toUpperCase,Y_tST:Symbol.toStringTag,Y_unsc:Symbol.unscopables,USP_tS:URLSearchParams.prototype.toString,D_pFS:DOMParser.prototype.parseFromString,U_cOU:URL.createObjectURL,U_rOU:URL.revokeObjectURL,X_o:XMLHttpRequest.prototype.open,X_pSD:XMLHttpRequest.prototype.DONE,X_pSH:XMLHttpRequest.prototype.HEADERS_RECEIVED,X_pSL:XMLHttpRequest.prototype.LOADING,X_pSO:XMLHttpRequest.prototype.OPENED,X_pSU:XMLHttpRequest.prototype.UNSENT,
X_s:XMLHttpRequest.prototype.send,D_n:Date.now,I_tS:e=>""+e,E_r:Element.prototype.remove,E_s:Element.prototype.setAttribute,E_rA:Element.prototype.removeAttribute,D_cS:s(Document.prototype,"currentScript").get,D_gRS:s(Document.prototype,"readyState").get,D_cE:Document.prototype.createElementNS,D_gEBT:Document.prototype.getElementsByTagName,M_rT:s(MouseEvent.prototype,"relatedTarget").get,C_d:s(CustomEvent.prototype,"detail").get,C_pA:CustomEvent.prototype.AT_TARGET,
M_d:MutationObserver.prototype.disconnect,W_aEL:addEventListener,W_rEL:removeEventListener,parseInt,parseFloat,CustomEvent,CompositionEvent,KeyboardEvent,MouseEvent,MutationObserver,console:Object.assign({},console),Error,Uint8Array,Blob,ReadableStream,Number,String,Proxy,Window,FileReader,DOMParser,XMLHttpRequest,Function,RegExp,Promise,encodeURIComponent,decodeURIComponent,encodeURI,decodeURI,escape,unescape,atob,btoa,setTimeout,clearTimeout,setInterval,clearInterval,postMessage,dispatchEvent,
alert,prompt,confirm,close,getElementById:e.Document.prototype.getElementById,createEvent:e.Document.prototype.createEvent,createElement:e.Document.prototype.createElement})})
(e=>{(()=>{"use strict";const t="vault"in e;if(t&&void 0===e.vault)throw"Invalid vault";const n=e.vault=e.vault||(e=>{const t=Object.call,n=t.bind(t),o=Object.assign,r=Object.getOwnPropertyDescriptor,s=e=>o({__proto__:null},e);return s({sourceWindow:e,cSO:s,F_c:n,F_a:Object.apply,F_b:Object.bind,F_tS:Function.toString,A_fE:[].forEach,A_so:[].some,A_sh:[].shift,A_j:[].join,A_iO:[].indexOf,A_iA:Array.isArray,O_a:o,O_k:Object.keys,O_v:Object.values,O_dP:Object.defineProperties,
O_dPy:Object.defineProperty,O_hOP:Object.hasOwnProperty,O_gOPN:Object.getOwnPropertyNames,O_gOPD:r,O_gOPDs:Object.getOwnPropertyDescriptors,O_gPO:Object.getPrototypeOf,O_tS:{}.toString,J_p:JSON.parse,J_s:JSON.stringify,M_f:Math.floor,M_r:Math.random,M_m:Math.max,M_mi:Math.min,N_tS:(0).toString,N_MSI:Number.MAX_SAFE_INTEGER,P_t:Promise.prototype.then,P_c:Promise.prototype.catch,R_rABS:FileReader.prototype.readAsBinaryString,R_rAT:FileReader.prototype.readAsText,
R_r:r(FileReader.prototype,"result").get,R_enq:e.ReadableStreamDefaultController?e.ReadableStreamDefaultController.prototype.enqueue:null,R_cl:e.ReadableStreamDefaultController?e.ReadableStreamDefaultController.prototype.close:null,S_fCC:String.fromCharCode,S_sl:"".slice,S_su:"".substr,S_sp_nr:"".split,S_iO:"".indexOf,S_tr:"".trim,S_r_nr:"".replace,S_rA_nr:"".replaceAll,S_cCA:"".charCodeAt,S_tLC:"".toLowerCase,S_tUC:"".toUpperCase,Y_tST:Symbol.toStringTag,Y_unsc:Symbol.unscopables,
USP_tS:URLSearchParams.prototype.toString,D_pFS:DOMParser.prototype.parseFromString,U_cOU:URL.createObjectURL,U_rOU:URL.revokeObjectURL,X_o:XMLHttpRequest.prototype.open,X_pSD:XMLHttpRequest.prototype.DONE,X_pSH:XMLHttpRequest.prototype.HEADERS_RECEIVED,X_pSL:XMLHttpRequest.prototype.LOADING,X_pSO:XMLHttpRequest.prototype.OPENED,X_pSU:XMLHttpRequest.prototype.UNSENT,X_s:XMLHttpRequest.prototype.send,D_n:Date.now,I_tS:e=>""+e,E_r:Element.prototype.remove,E_s:Element.prototype.setAttribute,
E_rA:Element.prototype.removeAttribute,D_cS:r(Document.prototype,"currentScript").get,D_gRS:r(Document.prototype,"readyState").get,D_cE:Document.prototype.createElementNS,D_gEBT:Document.prototype.getElementsByTagName,M_rT:r(MouseEvent.prototype,"relatedTarget").get,C_d:r(CustomEvent.prototype,"detail").get,C_pA:CustomEvent.prototype.AT_TARGET,M_d:MutationObserver.prototype.disconnect,W_aEL:addEventListener,W_rEL:removeEventListener,parseInt,parseFloat,CustomEvent,CompositionEvent,KeyboardEvent,
MouseEvent,MutationObserver,console:Object.assign({},console),Error,Uint8Array,Blob,ReadableStream,Number,String,Proxy,Window,FileReader,DOMParser,XMLHttpRequest,Function,RegExp,Promise,encodeURIComponent,decodeURIComponent,encodeURI,decodeURI,escape,unescape,atob,btoa,setTimeout,clearTimeout,setInterval,clearInterval,postMessage,dispatchEvent,alert,prompt,confirm,close,getElementById:e.Document.prototype.getElementById,createEvent:e.Document.prototype.createEvent,
createElement:e.Document.prototype.createElement})
})(e.unsafeWindow),{cSO:o,F_c:r,F_a:s,F_b:a,F_tS:i,A_fE:c,A_so:l,A_sh:d,A_j:u,A_iO:g,A_iA:p,O_a:m,O_k:f,O_v:v,O_dP:_,O_dPy:b,O_hOP:h,O_gOPN:M,O_gOPD:y,O_gOPDs:w,O_gPO:E,O_tS:S,J_p:R,J_s:G,M_f:L,M_r:I,M_m:O,M_mi:C,N_tS:x,N_MSI:P,P_t:k,P_c:T,R_rABS:D,R_rAT:A,R_r:U,R_enq:$,R_cl:j,S_fCC:F,S_sl:V,S_su:N,S_iO:q,S_sp_nr:X,S_tr:B,S_rA_nr:H,S_cCA:W,S_tLC:K,S_tUC:J,Y_tST:z,Y_unsc:Y,D_pFS:Q,D_cS:Z,D_gRS:ee,D_cE:te,D_gEBT:ne,E_r:oe,E_s:re,E_rA:se,C_pA:ae,M_d:ie,C_d:ce,M_rT:le,U_cOU:de,U_rOU:ue,USP_tS:ge,X_o:pe,X_s:me,X_pSD:fe,X_pSH:ve,X_pSL:_e,X_pSO:be,X_pSU:he,D_n:Me,I_tS:ye,W_aEL:we,W_rEL:Ee,parseInt:Se,parseFloat:Re,console:Ge,encodeURIComponent:Le,decodeURIComponent:Ie,encodeURI:Oe,decodeURI:Ce,escape:xe,unescape:Pe,atob:ke,btoa:Te,postMessage:De,dispatchEvent:Ae,alert:Ue,prompt:$e,confirm:je,close:Fe,getElementById:Ve,createEvent:Ne,createElement:qe,CustomEvent:Xe,CompositionEvent:Be,KeyboardEvent:He,MouseEvent:We,MutationObserver:Ke,Uint8Array:Je,FileReader:ze,DOMParser:Ye,XMLHttpRequest:Qe,Function:Ze,RegExp:et,Promise:tt,Blob:nt,ReadableStream:ot,Number:rt,String:st,Proxy:at,Window:it}=n,ct=r,lt=s,dt=f,ut=v,gt=m,pt=_,mt=b,ft=M,vt=y,_t=E,bt=w||(e=>{
const t=St({});for(const n in e)t[n]=vt(e,n);return t}),ht=p,Mt=L,yt=I,wt=O,Et=(e,t,n)=>ct(lt,e,t,n),St=o,Rt=(e,t,n)=>(mt(e,t,St({value:n,configurable:!0,enumerable:!0,writable:!0})),e),Gt=(e,t)=>Xt(e,t)?e[t]:void 0,Lt=(e,t)=>{const n=vt(e,t);return n?St(n).value:void 0},It=(e,t)=>{const n=(e,t,o)=>{const r=vt(e,t),s=r?St(r):void 0;let a;return s?s.enumerable?s.value:void 0:--o>=0&&(a=_t(e))?n(a,t,o):void 0};return n(e,t,5)},Ot=e=>{const t=(t,...n)=>Et(e,t,n);return Rt(t,"wrappedJSObject",e),t
},Ct=()=>e=>Ot(e),xt=Ot(a),Pt=e=>{const t=(e,n)=>{let o;if(null===e)o="null";else{const r=typeof e;if("object"===r){if(n){if(-1!=Nt(n,e))throw"Converting circular structure to JSON";Rt(n,n.length,e)}else n=[e];if(ht(e)){let r="";for(let o=0;o<e.length;o++){let s;s=Xt(e,o)?Gt(e,o):It(e,o);const a=t(s,n);r+=`${o?",":""}${void 0===a?"null":a}`}o=`[${r}]`}else{let r="";qt(dt(e),(o=>{const s=t(e[o],n);void 0!==s&&(r+=`${r?",":""}${G(o)}: ${s}`)})),o=`{${r}}`}n.length-=1}else{
if("bigint"===r)throw"Do not know how to serialize a BigInt";o=G(e)}}return o};return t(e)},kt=e=>{const t=R(e),n=e=>{const t=[];for(let n=0;n<e.length;n++)Rt(t,n,o(e[n]));return t},o=e=>{if(null===e);else if("object"==typeof e){if(ht(e))return n(e);{const t={};return qt(dt(e),(r=>{const s=e[r];let a;a="object"==typeof s?ht(s)?n(s):o(s):s,Rt(t,r,a)})),t}}return e};return o(t)},Tt=Ct()(l),Dt=(e,t,n,...o)=>{const r=o||[],s=$t(e,0,t),a=$t(e,t,n),i=$t(e,t+n);let c=Ft([],s);return c=Ft(c,r),
c=Ft(c,i),St({result:c,removed:a})},At=Ct()(d),Ut=(e,t)=>{const n=[];return qt(e,(e=>{t(e)&&Vt(n,e)})),n},$t=(e,t,n)=>{const o=e.length;let r=t||0;if(r>=o)return[];r<0&&(r=wt(0,o+r));let s=void 0===n?o:n;s<0&&(s=wt(0,o+s)),s>o&&(s=o);const a=St({});for(let t=r;t<s;t++)a[t]=Lt(e,t);return ut(a)},jt=Ct()(u),Ft=(e,...t)=>{let n=e.length;const o=St(e);for(let e=0;e<t.length;e++){const r=t[e],s=ht(r)?r:[r];for(let e=0;e<s.length;e++)o[n+e]=Lt(s,e);n+=s.length}return ut(o)},Vt=(e,t)=>{
let n=e.length||0;return Rt(e,n,t),n++,e.length=n},Nt=Ct()(g),qt=Ct()(c),Xt=Ct()(h),Bt=Ct()(X),Ht=Ct()(V),Wt=Ot(S),Kt=_t({}),Jt=e=>{const t=St(e),n=ft(t);for(let e=0;e<n.length;e++){const o=n[e],r=t[o];null!==r&&"object"==typeof r&&_t(r)===Kt&&(t[o]=Jt(r))}return t},zt=e=>{const t=Bt(Wt(e)," ");return Ht(jt($t(t,1)," "),0,-1)},Yt=(Ct()(i),
Ct()(x)),Qt=P,Zt=Ct()(k),en=Ct()(T),tn=Ct()(D),nn=Ct()(A),on=Ct()(U),rn=$?Ct()($):$,sn=j?Ct()(j):j,an=F,cn=Ct()(N),ln=Ct()(q),dn=Ct()(B),un=(Ct()(H||function(e,t){return jt(Bt(this,e),t)}),Ct()(W)),gn=Ct()(K),pn=Ct()(J),mn=z,fn=Y,vn=Ot(Q),_n=Ot(Z),bn=Ot(ee),hn=(Ot(te),Ot(ne),Ot(oe)),Mn=Ot(re),yn=Ot(se),wn=ae,En=Ot(le),Sn=Ot(ce),Rn=(ie&&Ct()(ie),Ot(ge)),Gn=(Ct()(pe),fe),Ln=ve,In=_e,On=be,Cn=he,xn=(Ct()(me),Me),Pn=at,kn=rt,Tn=Xe,Dn=He,An=We,Un=Je,$n=Ke,jn=nt,Fn=function(e,t){return Lt(e,t)
},Vn=St({addEventListener:!1,Array:!0,Blob:!0,close:!1,CustomEvent:!0,Date:!0,DOMParser:!0,Error:!0,Event:!0,FileReader:!0,KeyboardEvent:!0,location:!0,Math:!0,MouseEvent:!0,Number:!0,Object:!0,Promise:!0,ReadableStream:!0,removeEventListener:!1,Uint8Array:!0,XMLHttpRequest:!0}),Nn=(()=>{const e=St({getElementById:Ve,createEvent:Ne,createElement:qe,dispatchEvent:Ae,addEventListener,removeEventListener}),t=St({});return qt(dt(e),(n=>{try{const o=e[n];t[n]=function(...e){return Et(o,Bn.document,e)
}}catch(e){t[n]=((e,t)=>{if(Wn.error(`Tampermonkey sandbox preparation ${t?"("+t+") ":""}failed. This usually is caused by a third-party extension.`,e),t)return()=>{}})(e,`document.${n}`)}})),t})(),qn=St({top:!0,location:!0}),Xn=e,{unsafeWindow:Bn,unsafeThis:Hn}=Xn;e.bridges=e.bridges||St({});const Wn=e.console=e.console||St({}),Kn=St({addEventListener:xt(we,Bn),removeEventListener:xt(Ee,Bn)});qt(dt(qn),(async e=>{if(!Kn[e])try{const t=Bn[e];if(null==t)return;Kn[e]=t}catch(e){}})),
qt(dt(Vn),(async e=>{if(!Kn[e])try{let t=Lt(Bn,e);if(void 0===t&&(Hn===Bn||void 0===(t=Lt(Hn,e))))return;const n=Vn[e];Kn[e]=!1===n&&"function"==typeof t?xt(t,Hn):t}catch(e){}}));const Jn=e=>{let t,n=[],o=!1;e((e=>{if(!o){if(n.length){const t=n;n=[],qt(t,(t=>t(e)))}else t=e;o=!0}}));const r=St({then:e=>(o?e(t):Vt(n,e),r)});return r},zn=()=>Yt(xn()+19831206*yt()+1,36),Yn=async e=>{await null,e()},Qn=()=>{const e=_n(Bn.document);e&&(yn(e,"nonce"),hn(e))},Zn=(()=>{
const{console:t,bridges:n}=e,o=St({});let r;const s=(e,n,r,s)=>{let i,c=[],l=[],d=[],u=[];const g=()=>{l=[],d=[],u=[],v(),y=null,delete o[n]},p=t=>{e.send("port.message",St({response_id:n,value:t}))},m=e=>{s&&"messageId"in e&&Vt(c,e),p(e)},f=(e,t=!0)=>{i=e,t&&p(e)},v=()=>{i=void 0},_=St({addListener:e=>{Vt(l,e)}}),b=St({addListener:e=>{Vt(d,e)}}),h=St({addListener:e=>{Vt(u,e)}}),M=()=>{g(),e.send("port.message",St({response_id:n,disconnect:!0}))};let y=St(r?{postMessage:m,connectMessage:f,
stopReconnecting:v,onMessage:_,onDisconnect:b,onReconnect:h,disconnect:M}:{postMessage:m,onMessage:_,onDisconnect:b,disconnect:M});return o[n]=St({message:e=>{if(s&&(e=>"ack"in e)(e)){const{messageId:n}=e;(e=>{if(!e)return void t.warn("PortMessaging: no message id in ack message");if(i&&i.messageId===e)return;let n=-1;Tt(c,((t,o)=>t.messageId===e&&(n=o,!0))),-1!==n?(qt($t(c,0,n),(e=>t.warn(`PortMessaging: message ${e.messageId} was not ack'ed!`,e))),
c=$t(c,n+1)):t.warn(`PortMessaging: no one is waiting for ${e}`)})(n)}l&&qt(l,(t=>t(e)))},disconnect:()=>{if(i&&r)return a(r,n),f(i),s&&qt(c,(e=>p(e))),void(u&&qt(u,(e=>e())));d&&qt(d,(e=>e())),g()}}),y},a=(e,t)=>{n.first.send("port.message",St({response_id:t,connect:!0,destination:e}))};return St({message:(e,n)=>{let a;if(e.connect){if(!e.destination||!e.response_id)throw"invalid message";r&&r(e.destination,s(n,e.response_id))}else{if(!e.response_id)throw"invalid message"
;if(!(a=o[e.response_id]))return void t.warn("ports: unknown id",e.response_id,e);e.disconnect?a.disconnect():a.message(e.value)}},connect:function(e,t,o){const r=zn();return a(e,r),s(n.first,r,t?e:void 0,o)},onConnect:St({addListener:e=>{r=e}})})})(),{bridges:eo}=e,to=St({}),no=St({});let oo=!0,ro=[];Yn((()=>{oo=!1,qt(ro,(({m:e,i:t})=>eo.first.send("console",[e,t]))),ro=[]})),qt(["debug","log","info","warn","error"],(e=>{Rt(to,e,((...t)=>{const n=(e=>{const t=[];return qt(e,(e=>{
Vt(t,(e=>Pt(e))(e))})),t})(t);if(oo)return Vt(ro,St({m:e,i:n}));eo.first.send("console",[e,n])}))}));const so=St(bt(Bn.console)),ao=St({});qt(ft(Ge),(e=>{const t=St(so[e]);ao[e]=St({get:"value"in t?()=>t.value:t.get,enumerable:!0,configurable:!1})})),pt(no,ao)
;const io=["chrome"],co=["GM.backgroundControl"],lo=["GM_addElement","GM.addElement","GM_addStyle","GM.addStyle"],uo=["GM_cookie","GM.cookie"],go=["GM_listValues","GM.listValues","GM_getValue","GM.getValue","GM_addValueChangeListener","GM.addValueChangeListener","GM_removeValueChangeListener","GM.removeValueChangeListener","GM_setValue","GM.setValue","GM_deleteValue","GM.deleteValue"],po=["GM_download","GM.download"],mo=["GM_getResourceText","GM.getResourceText","GM_getResourceURL","GM.getResourceUrl"],fo=["GM_getTab","GM.getTab","GM_getTabs","GM.getTabs","GM_saveTab","GM.saveTab"],vo=["GM_log","GM.log"],_o=["GM_notification","GM.notification"],bo=["GM_openInTab","GM.openInTab"],ho=["GM_registerMenuCommand","GM.registerMenuCommand","GM_unregisterMenuCommand","GM.unregisterMenuCommand"],Mo=["GM_setClipboard","GM.setClipboard"],yo=["GM_xmlhttpRequest","GM.xmlHttpRequest"],wo=["window.close"],Eo=["window.focus"],So=["window.onurlchange"],Ro=["GM_webRequest","GM.webRequest"],Go=St({
encode:e=>Pe(Le(e)),decode:e=>Ie(xe(e))}),Lo=St({encode:e=>{let t="";for(let n=0;n<e.length;n++)t+=an(255&un(e,n));return Te(t)},decode:e=>ke(e)}),Io=e=>{const t=new Un(e.length);for(let n=0;n<e.length;n++)t[n]=un(e,n);return t.buffer},Oo=(e,t)=>Jn((n=>{const o=new Kn.FileReader;o.onload=()=>{n(on(o))},o.onerror=e=>{Wn.warn(`unable to decode data ${e}`),n("")},t?nn(o,e,t):tn(o,e)})),{bridges:Co}=e;let xo=0,Po=0;const ko=St({}),To=St({}),Do=function(e,t,n,o){const r=()=>{ko[n]&&(Et(e,this,o),
delete ko[n])};"function"==typeof e&&(ko[n]=e,0===t?Yn((()=>r())):Co.first.send("setTimeout",St({t:t||1}),(()=>r())))},Ao=function(e,t,n,o){if("function"==typeof e){const r=To[n]=Zn.connect("setInterval");r.onMessage.addListener((()=>{To[n]&&Et(e,this,o)})),r.onDisconnect.addListener((()=>Uo(n))),r.postMessage(St({method:"setInterval",t:t||1}))}},Uo=e=>{const t=To[e];t&&(t.disconnect(),delete To[e])},$o=(e,t,...n)=>{const o=zn();return Do(e,t,o,n),o},jo=e=>{(e=>{delete ko[e]})(e)
},Fo=e=>Uo(e),Vo=(e,t,...n)=>{const o=++Po;return t=wt(t,1),Do(e,t,o,n),o},No=(e,t,...n)=>{const o=++xo;return t=wt(t,1),Ao(e,t,o,n),o};let qo;const Xo=e=>{if(void 0===qo){qo=!0;const t="keepAlive",n=Zn.connect(t,!0),o=Kn.location.href;n.onMessage.addListener((()=>{})),n.connectMessage(St({messageId:zn(),method:t,id:e,url:o})),n.onDisconnect.addListener((()=>{r&&Fo(r),r=null}));let r=((e,t,...n)=>{const o=zn();return Ao(e,t,o,n),o})((()=>{qo?n.postMessage(St({messageId:zn(),method:"keepAlive",
url:o})):r&&(n.disconnect(),Fo(r),r=null)}),2e4)}},Bo=t=>{const{contextId:n,bridges:o}=e,r=St({}),s=(e,t)=>Tt(t,(t=>-1!=Nt(e,t))),a=e=>function(){const t=(async e=>e)(Et(e,this,arguments));return Rt(t,"then",(e=>Zt(t,e))),Rt(t,"catch",(e=>en(t,e))),t},i=(e,t)=>function(...n){const o=[];if(void 0!==t)for(let e=0;e<t;e++)Vt(o,Fn(n,e)||void 0);return new Kn.Promise((t=>{Et(e,this,Ft(o,[t]))}))},c=(e,t)=>{let n;const o=new Kn.Promise(((o,r)=>{const s=St({}),a=t.onload,i=t.ontimeout,c=t.onerror
;qt(dt(t),(e=>{s[e]=t[e]})),s.onerror=function(e){c?(o(e),Et(c,this,arguments)):r(e)},s.ontimeout=function(e){i?(o(e),Et(i,this,arguments)):r(e)},s.onload=function(e){o(e),a&&Et(a,this,arguments)};const l=e(s).abort;!0===n?l():n=l}));return Rt(o,"abort",(()=>{"function"==typeof n?n():n=!0})),o};return St({of:e=>{const l=e.script,d=(()=>{const e=s(l.grant,Mo),t=(e,t,r)=>{o.first.send("setClipboard",St({content:e,info:t,id:n,uuid:l.uuid}),r?()=>r():null)};return St({GM_setClipboard:e?St({value:t
}):void 0,"GM.setClipboard":e?St({get:()=>i(t,2)}):void 0})})(),u=(()=>{let t=[];const o=e.storage;let r=0,i=null;const c=s(l.grant,go),d=(e,t)=>{if("string"!=typeof e)return t;{const n=cn(e,0,1);switch(e=cn(e,1),n){case"b":return"true"===e;case"n":return kn(e);case"x":try{return Go.decode(Lo.decode(e))}catch(t){return e}case"o":try{return kt(e)}catch(e){Wn.log(`values: parseValueFromStorage: ${e}`)}return t;case"u":return;default:return e}}},u=(e,n,o,r)=>{n!=o&&qt(t,(t=>{
if(t&&t.key==e&&t.cb)try{t.cb(e,d(n),d(o),r)}catch(t){Wn.warn(`values: change listener of "${e}" failed with: ${t.message}`)}}))},g=(e,t)=>{i&&i.postMessage(St({messageId:zn(),method:"saveStorageKey",uuid:l.uuid,key:e,value:o.data[e],removed:t,id:n,ts:o.ts}))};c&&(Xo(n),i=Zn.connect("values",!0,!0),i.onDisconnect.addListener((()=>{Wn.warn("values: port disconnected"),i=null})),i.onMessage.addListener((e=>{if("ack"in e)return;const{storage:t,removed:n}=e;if(!t)return;const r=t,s=dt(r);n&&Vt(s,n),
qt(s,(e=>{const t=o.data[e],n=r[e];void 0===n?delete o.data[e]:o.data[e]=n,u(e,t,n,!0)}))})),i.connectMessage(St({messageId:zn(),method:"addStorageListener",uuid:l.uuid,id:n})));const p=(e,t)=>d(o.data[e],t),m=()=>dt(o.data),f=(e,n)=>{const o=++r,s=St({id:o,key:e,cb:n});return Vt(t,s),o},v=e=>{t=Ut(t,(t=>t.id!==e))},_=(e,t)=>{const n=o.data[e];o.ts=xn(),o.data[e]=(e=>{const t=typeof e;let n,o=cn(t,0,1);switch(t){case"object":try{n=o+Pt(e)}catch(e){return void Wn.log(e)}break;case"function":
case"symbol":case"bigint":o="u",n=o+void 0;break;case"string":case"number":case"undefined":case"boolean":n=o+e;break;default:n=t}return n})(t),g(e),u(e,n,o.data[e],!1)},b=e=>{const t=o.data[e];o.ts=xn(),delete o.data[e],g(e,!0),u(e,t,o.data[e],!1)};return St({GM_getValue:c?St({value:p}):void 0,"GM.getValue":c?St({get:()=>a(p)}):void 0,GM_listValues:c?St({value:m}):void 0,"GM.listValues":c?St({get:()=>a(m)}):void 0,GM_addValueChangeListener:c?St({value:f}):void 0,
"GM.addValueChangeListener":c?St({get:()=>a(f)}):void 0,GM_removeValueChangeListener:c?St({value:v}):void 0,"GM.removeValueChangeListener":c?St({get:()=>a(v)}):void 0,GM_setValue:c?St({value:_}):void 0,"GM.setValue":c?St({get:()=>a(_)}):void 0,GM_deleteValue:c?St({value:b}):void 0,"GM.deleteValue":c?St({get:()=>a(b)}):void 0})})(),g=(()=>{const e=s(l.grant,So),t=(()=>{let e=[],t=null;return St({register:(o,r)=>{Vt(e,o),t||(Xo(n),t=Zn.connect("onurlchange",!0),t.onMessage.addListener((t=>{
if("ack"in t)return;const{url:n}=t;if(!n)return;const o=St({url:n});qt(e,(e=>{Et(e,r,[o])}))})),t.connectMessage(St({messageId:zn(),method:"observeUrlChanges",uuid:l.uuid,id:n})))},unregister:n=>{let o;n&&(o=Nt(e,n))>-1&&(e=Dt(e,o,1).result),t&&0===e.length&&(t.disconnect(),t=null)}})})();return St({"window.onurlchange":e?St({value:t}):void 0})})(),p=(()=>{const e=s(l.grant,mo),t=e=>{for(let t=0;t<l.resources.length;t++){const n=l.resources[t];if(n.name==e){
if(n.error)Wn.warn("@resource: "+n.error);else try{if("string"==typeof n.content)return Go.decode(n.content)}catch(e){}return""}}return null},n=e=>{for(let t=0;t<l.resources.length;t++){const n=l.resources[t];if(n.name==e){if(n.error)Wn.warn("@resource: "+n.error);else if("string"==typeof n.content){try{return`data:${n.meta||"application/octet-stream"};base64,${Lo.encode(n.content)}`}catch(e){}return n.url}return""}}return null};return St({GM_getResourceText:e?St({value:t}):void 0,
"GM.getResourceText":e?St({get:()=>a(t)}):void 0,GM_getResourceURL:e?St({value:n}):void 0,"GM.getResourceUrl":e?St({get:()=>a(n)}):void 0})})(),m=(()=>{const e=s(l.grant,fo),t=(e,t)=>{o.first.send("tabs",St({action:"set",uuid:l.uuid,tab:e}),t?()=>t():null)},n=e=>{o.first.send("tabs",St({action:"get",uuid:l.uuid}),e?t=>{e(t||St({}))}:null)},r=e=>{o.first.send("tabs",St({action:"list",uuid:l.uuid}),e?t=>{e(t||St({}))}:null)};return St({GM_saveTab:e?St({value:t}):void 0,"GM.saveTab":e?St({
get:()=>i(t,1)}):void 0,GM_getTab:e?St({value:n}):void 0,"GM.getTab":e?St({get:()=>i(n)}):void 0,GM_getTabs:e?St({value:r}):void 0,"GM.getTabs":e?St({get:()=>i(r)}):void 0})})(),f=(()=>{const e=s(l.grant,yo),o=e=>{const o=Jt(e);let s=!1,a=()=>{s=!0};const i=(e,t)=>{t=t||St({}),e&&$o((()=>{gt(t,r),Et(e,t,[t])}),1)},c=o.url;"object"==typeof c&&c.href&&(o.url=c.href);const d=(e,t)=>{const n=zt(e);if("Blob"===n||"File"===n){const o=e;Oo(o).then((e=>{t(St({type:n,value:e,meta:o.type,name:o.name,
lastModified:o.lastModified}))}))}else if("FormData"===n){const n=e,o=n.keys();let r;const s=St({}),a=[];for(;!(r=o.next()).done;)Vt(a,r.value);const i=()=>{if(a.length){const e=At(a);let t=n.getAll(e);"[]"!==cn(e,-2)&&(t=Fn(t,0)),d(t,(t=>{s[e]=t,i()}))}else t(St({type:"FormData",value:s}))};i()}else if("URLSearchParams"===n)t(St({type:"URLSearchParams",value:Rn(e)}));else if("Array"===n||"Object"===n){const o=e;let r,s,a=0,i=0;if("Object"===n){const e=dt(o);s=t=>t<e.length?e[t]:null,r=St({})
}else s=e=>e<o.length?e:null,r=[];const c=()=>{const e=s(a);null===e?t(St({type:n,value:r})):d(o[e],(t=>{r[e]=t,a++,i++<1024?c():(i=0,$o(c,1))}))};c()}else t(St({value:e}))},u=(e,t,n,o,r)=>{let s;if(n)"stream"==o&&(s=n);else if("arraybuffer"==o)s=t||Io(e||"");else if("blob"==o)s=new Kn.Blob([t||Io(e||"")],St({type:r}));else if("json"==o)s=kt(e||"");else if("document"==o){const t=new Kn.DOMParser,n=["application/xhtml+xml","application/xml","image/svg+xml","text/html","text/xml"]
;let o=Fn(Bt(r||"text/xml",";"),0);-1==Nt(n,o)&&(o="text/xml");try{s=vn(t,e||"",o)}catch(e){s=null}}else s=e||(t?(e=>{let t="";const n=new Un(e);for(let e=0;e<n.length;e+=32687)t+=Et(an,null,n.subarray(e,e+32687));return t})(t):"");return s};return(e=>{if(o.url){const t=cn(o.url,0,5);if(-1!=Nt(["data:","blob:"],t))return e()}if(!o.data)return e();d(o.data,(t=>{o.binary&&(t.type="Blob"),o.data=t,o.data_type="typified",e()}))})((()=>{if(s)return s=!1,void i(o.onabort)
;let e,r,c,d=Zn.connect("xhr"),g=[],p=!1;const{method:m,url:f,redirect:v,headers:_,cookie:b,binary:h,nocache:M,revalidate:y,timeout:w,context:E,responseType:S,overrideMimeType:R,anonymous:G,cookiePartition:L,fetch:I,user:O,password:C,data:x,data_type:P}=o,k=St({method:m,url:f,redirect:v,headers:_,cookie:b,binary:h,nocache:M,revalidate:y,timeout:w,responseType:S,overrideMimeType:R,anonymous:G,cookiePartition:L,fetch:I,user:O,password:C,data:x,data_type:P});if(k.headers){const e=k.headers
;qt(dt(e),(t=>{"cookie"===gn(t)&&(k.cookie=`${e[t]}`,delete e[t])}))}let T,D,A,U;d.postMessage(St({messageId:zn(),method:"xhr",details:k,callbacks:St({onloadstart:!!o.onloadstart,onload:!!o.onload,ondone:!!o.onloadend,onreadystatechange:!!o.onreadystatechange,onerror:!0,onabort:!!o.onabort,ontimeout:!!o.ontimeout,onprogress:!!o.onprogress,onuploadprogress:!(!o.upload||!o.upload.onprogress),onpartial:!0}),id:n,location:Kn.location.href,uuid:l.uuid,no_blob:"js"==t.sandboxMode}));const $=S?gn(S):""
;let j,F=0,V=0;const N=async t=>{if(t&&(c||void 0!==e||void 0!==r)){if(R?U=R:t&&(U=(e=>{const t=St({});return e&&qt(Bt(e,"\n"),(e=>{const n=Bt(e,":");if(n.length<2)return;const o=Fn(n,0);if(!o)return;const r=jt($t(n,1),":");t[gn(dn(o))]=dn(r||"")})),t})(t.responseHeaders)["content-type"]),T=e,c)A=c.stream;else if(r){const e=r;if(D=e.buffer,-1==Nt(["blob","arraybuffer"],$)&&!T){let t;Tt([U,e.type],(e=>t=((e,t,n,o)=>{const r=ln(e,"charset=");if(-1==r)return;const s=cn(e,r+8),a=ln(s,";")
;return-1==a?o&&o.optionalEnd?s:void 0:cn(e,r+8,a)})(gn(e||""),0,0,St({optionalEnd:!0}))));const n=new jn([D]);j=Oo(n,t),T=await j}j=void 0}else j&&await j;e=r=void 0}if(T||A||D){t.responseType=S,qt(["response_data"],(e=>delete t[e]));const e=St({response:()=>u(T,D,A,$,U||"binary/octet-stream"),responseText:()=>u(T,D,A,"text",U),responseXML:()=>u(T,D,A,"document",U||"text/xml")});qt(dt(e),(n=>{mt(t,n,St({get(){try{return e[n]()}catch(e){Wn.warn(`${m}:`,e)}}}))}))}},q=[],X=async e=>{e&&Vt(q,e);{
const e=At(q);e&&e()}};"stream"===$&&X((async()=>{c=await Jn((e=>{const t=new Kn.ReadableStream(St({start:n=>{$o((()=>e(St({stream:t,ctrl:n}))),0)},cancel:()=>{c&&(c.canceled||a(),c.canceled=!0)}}))}))})),d.onMessage.addListener((t=>X((()=>(async t=>{if(!("ack"in t))if(t.onpartial){const n=t.data,o=n,s=o.partial,a=n.nada;if(c){if(c.canceled)return;const e=rn||((e,t)=>e.enqueue(t));if(void 0!==s)e(c.ctrl,s);else if(void 0!==a){const t=new Un(a.buffer);e(c.ctrl,t)
}else Wn.error(`${m}:`,"data message without data?!")}else{let t;s&&Vt(g,s),a&&(t=a),void 0!==o.index&&o.index!==o.length-1||(g.length&&(e=jt(g,""),g=[]),r=t)}}else{const e=t.data;if(F=e.readyState||F,V=e.status||V,E&&(e.context=E),t.onload)await N(e),i(o.onreadystatechange,e),i(o.onload,e);else if(t.onreadystatechange)await N(e),4!=e.readyState&&i(o.onreadystatechange,e);else if(t.onerror)t.exception&&Wn.error(t.exception),i(o.onerror,e);else if(t.onabort)i(o.onabort,e);else if(t.ondone)p=!0,
c&&!c.canceled&&(sn||(e=>e.close()))(c.ctrl),await N(e),i(o.onloadend,e);else if(t.onloadstart)c&&await N(e),i(o.onloadstart,e);else if(t.onuploadprogress)o.upload&&i(o.upload.onprogress,e);else{const n=Fn(Ut(["onprogress","ontimeout"],(e=>!!t[e])),0)||"onerror";i(o[n],e)}}})(t))))),d.onDisconnect.addListener((()=>{p||i(o.onerror,St({readyState:F,status:V,error:"background shutdown"})),d=null})),a=()=>{d&&d.postMessage(St({messageId:zn(),cancel:!0}))}})),St({abort:()=>{a()}})},r=(()=>{
const e=St({DONE:Gn,HEADERS_RECEIVED:Ln,LOADING:In,OPENED:On,UNSENT:Cn});return qt(["text","arraybuffer","blob","document","json","stream"],(t=>{e[`RESPONSE_TYPE_${pn(t)}`]=t})),e})();return qt(dt(r),(e=>Rt(o,e,r[e]))),St({GM_xmlhttpRequest:e?St({value:o}):void 0,"GM.xmlHttpRequest":e?St({get:()=>{const e=e=>c(o,e);return qt(dt(r),(t=>Rt(e,t,r[t]))),e}}):void 0})})(),v=(()=>{let n;const o=()=>{if(!n){
const{script:o}=e,{antifeatures:r,author:s,blockers:a,copyright:i,deleted:c,description_i18n:l,description:d,downloadURL:u,fileURL:g,grant:p,header:m,homepage:f,icon:v,icon64:_,lastModified:b,name_i18n:h,name:M,namespace:y,position:w,resources:E,supportURL:S,system:R,updateURL:G,version:L,webRequest:I,options:{override:{orig_connects:O,orig_excludes:C,orig_includes:x,orig_matches:P},run_at:k,unwrap:T}}=o,{downloadMode:D,inIncognitoContext:A,relaxedCsp:U,isFirstPartyIsolation:$,sandboxMode:j,userAgent:F,version:V}=t,N=G||g,q=St({
antifeatures:r,author:s,blockers:a,connects:O,copyright:i,deleted:c,description_i18n:l,description:d,downloadURL:u,excludes:C,fileURL:g,grant:p,header:m,homepage:f,icon:v,icon64:_,includes:x,lastModified:b,matches:P,name_i18n:h,name:M,namespace:y,options:o.options,position:w,resources:E,"run-at":k,supportURL:S,system:R,unwrap:T,updateURL:G,version:L,webRequest:I}),X=St({downloadMode:D,isFirstPartyIsolation:$,isIncognito:A,relaxedCsp:U,sandboxMode:j,script:q,scriptHandler:"Tampermonkey",
scriptMetaStr:o.header,scriptUpdateURL:N,scriptWillUpdate:!!N,userAgentData:F,version:V});n=X}return kt(Pt(n))};return St({GM_info:St({get:o}),"GM.info":St({get:o})})})(),_=(()=>{const e=s(l.grant,Ro);let t=null;const o=(e,o)=>{const r=()=>{t==s&&(t=null),s=null};t&&t.disconnect(),Xo(n);let s=t=Zn.connect("webRequest",!0);return o&&s.onMessage.addListener((e=>{"ack"in e||o(e.type,e.message||"ok",e.details)})),s.onDisconnect.addListener(r),s.connectMessage(St({messageId:zn(),rules:e,uuid:l.uuid
})),St({abort:()=>{s&&s.disconnect(),r()}})};return St({GM_webRequest:e?St({value:o}):void 0,"GM.webRequest":e?St({get:()=>a(o)}):void 0})})(),b=(()=>{const e=s(l.grant,ho);let t=0;const n=St({}),o=St({}),r=(e,r,s)=>{if("string"!=typeof e)throw"invalid name";const{accessKey:a,autoClose:c,title:d,id:u}="string"==typeof s?St({accessKey:s}):s||St({}),g=void 0!==u?u:++t,p=n[g],m=p||Zn.connect("registerMenuCommand",!0);return o[g]=r,p||(m.onMessage.addListener((e=>{if(!("ack"in e)&&"run"===e.method){
const t=o[g];if(!t)return;const n=e.event,r=n?n.keyCode?new Dn("keypress",n):new An("click",e.event):void 0;$o((()=>t(r)),1)}})),m.onDisconnect.addListener((()=>{i(g)})),n[g]=m),m.connectMessage(St({messageId:zn(),name:e,uuid:l.uuid,createdAt:xn(),accessKey:a,autoClose:c,title:d,id:`${g}`})),g},i=e=>{delete o[e];const t=n[e];t&&(t.disconnect(),delete n[e])};return St({GM_registerMenuCommand:e?St({value:r}):void 0,"GM.registerMenuCommand":e?St({get:()=>a(r)}):void 0,
GM_unregisterMenuCommand:e?St({value:i}):void 0,"GM.unregisterMenuCommand":e?St({get:()=>a(i)}):void 0})})(),h=(()=>{const e=s(l.grant,_o),t=(e,t,n,o)=>{let r,s,a=null;const i=e=>jt([e?`tag-${e}`:zn(),l.uuid],"#");if("object"==typeof e){const n=e,{timeout:c,text:d,image:u,title:g,highlight:p,silent:m,url:f,tag:v}=n;s=i(v),r=St({id:s,timeout:c,text:d,image:u||l.icon64||l.icon||void 0,title:g||l.name,highlight:p,silent:m,url:f,tag:v}),a=n.ondone,o=n.onclick,"function"==typeof t&&(a=t)}else s=i(),
r=St({id:s,text:e,title:"string"==typeof t?t:l.name,image:n||l.icon64||l.icon||void 0});r.onclick=o,r.ondone=a||void 0,((e,t)=>{const{text:n,title:o,tag:r,url:s,image:a,highlight:i,silent:c,timeout:d,onclick:u,ondone:g}=Jt(t);if(n||i){const t="notification",p=Zn.connect(t,!0);p.onMessage.addListener((e=>{if("ack"in e)return;const{clicked:t}=e;let l=!1;const m=St({text:n,title:o,tag:r,url:s,image:a,highlight:i,silent:c,timeout:d,preventDefault:()=>{l=!0}});t&&(u&&u(m),p.postMessage(St({
messageId:zn(),canceled:l}))),g&&g(!0===t,m),p.disconnect()})),p.connectMessage(St({messageId:zn(),method:"notification",id:e,uuid:l.uuid,text:n,title:o,tag:r,url:s,image:a,highlight:i,silent:c,timeout:d}))}else Wn.warn("GM_notification: neither a message text nor highlight options were given!")})(s,r)};return St({GM_notification:e?St({value:t}):void 0,"GM.notification":e?St({get:()=>(e,n,o,r)=>{let s;return s="object"==typeof e?e:St({text:e,title:n,image:o,onclick:r}),new Kn.Promise((e=>{
const n=St({});qt(dt(s),(e=>{n[e]=s[e]}));const o=n.ondone;n.ondone=function(t,n){o&&Et(o,this,[t,n]),Et(e,this,[t])},t(n)}))}}):void 0})})(),M=(()=>{const e=s(l.grant,uo),t=(e,t)=>St({action:e,uuid:l.uuid,location:Kn.location.href,details:t}),n=St({set:(e,n)=>{o.first.send("cookie",t("set",e),n?e=>{n(e.error)}:null)},delete:(e,n)=>{o.first.send("cookie",t("delete",e),n?e=>{n(e.error)}:null)},list:(e,n)=>{o.first.send("cookie",t("list",e),n?e=>{n(e.cookies,e.error)}:null)}});return St({
GM_cookie:e?St({get:()=>{const e=(e,t,o)=>(n[e]||(()=>{}))(t,o);return qt(dt(n),(t=>{Rt(e,t,n[t])})),e}}):void 0,"GM.cookie":e?St({get:()=>{const e=St({});return qt(dt(n),(t=>{e[t]=e=>((e,t)=>new Kn.Promise(((o,r)=>{if("list"==e){const s=t;n[e](s,((e,t)=>{t?r(t):o(e)}))}else if("set"==e){const s=t;n[e](s,(e=>{e?r(e):o(void 0)}))}else{const s=t;n[e](s,(e=>{e?r(e):o(void 0)}))}})))(t,e)})),e}}):void 0})})(),y=(()=>{const e=s(l.grant,po),t=(e,t)=>"object"==typeof e?e:St({url:e,name:t,
headers:void 0,saveAs:void 0,conflictAction:void 0,onprogress:void 0,onload:void 0,ondone:void 0,ontimeout:void 0,onerror:void 0}),o=(e,o)=>{const r=t(e,o),s=(e,t)=>{t=t||St({}),e&&$o((()=>{Et(e,t,[t])}),1)},{url:a,name:i,headers:c,saveAs:d,conflictAction:u}=r;let g;Xo(n);let p=Zn.connect("download",!0);const m=()=>{p&&p.stopReconnecting()};p.onMessage.addListener((e=>{if(!("ack"in e)){p&&void 0===g&&(g=e.id,p.connectMessage(St({messageId:zn(),method:"download",uuid:l.uuid,id:g}),!1));try{
e.load?(r.onload&&s(r.onload,e.data),m()):e.progress?r.onprogress&&s(r.onprogress,e.data):e.timeout?(r.ontimeout&&s(r.ontimeout,e.data),m()):(r.onerror&&s(r.onerror,e.data),m())}catch(e){Wn.log("env: Error: TM_download - ",e,r)}}})),p.onDisconnect.addListener((()=>p=null));const f=St({messageId:zn(),details:St({url:a,name:i,headers:c,conflictAction:u,saveAs:d}),uuid:l.uuid});return p.postMessage(f),St({abort:()=>{p&&p.postMessage(St({uuid:l.uuid,cancel:!0}))}})};return St({GM_download:e?St({
value:o}):void 0,"GM.download":e?St({get:()=>(e,n)=>c(o,t(e,n))}):void 0})})(),w=(()=>{const e=s(l.grant,bo),t=(e,t)=>{const o="openInTab";let r,s,a=!1,i=null;const c=(()=>{const e=[];return St({run:t=>{if(t&&Vt(e,t),r)for(;e.length;)At(e)()}})})();Xo(n);let d=Zn.connect(o,!0);const u=()=>{d&&d.postMessage(St({messageId:zn(),close:!0}))};d.onMessage.addListener((e=>{"ack"in e||(e.tabId?a?u():(d&&void 0===r&&d.connectMessage(St({messageId:zn(),method:o,uuid:l.uuid,tabId:e.tabId}),!1),r=e.tabId,
c.run()):e.name?s=e.name:e.closed&&(a=!0,i&&(i(),i=null),d&&d.stopReconnecting()))})),d.onDisconnect.addListener((()=>d=null)),d.postMessage(St({messageId:zn(),method:o,url:e,location:Kn.location.href,options:t,uuid:l.uuid}));const g=St({});return pt(g,St({close:St({value:()=>{a?Wn.warn("env: attempt to close already closed tab!"):u()}}),focus:St({value:()=>{d&&d.postMessage(St({messageId:zn(),focus:!0}))}}),closed:St({get:()=>a}),onclose:St({get:()=>i,set:e=>{i=e}}),name:St({get:()=>s,set:e=>{
c.run((()=>{d&&d.postMessage(St({messageId:zn(),name:e}))}))}})})),g};return St({GM_openInTab:e?St({value:t}):void 0,"GM.openInTab":e?St({get:()=>a(t)}):void 0})})(),E=(()=>{const e=s(l.grant,wo);return St({"window.close":e?St({value:e=>{o.first.send("closeTab",St({uuid:l.uuid}),e?()=>e():null)}}):void 0})})(),S=(()=>{const e=s(l.grant,Eo);return St({"window.focus":e?St({value:e=>{o.first.send("focusTab",St({uuid:l.uuid}),e?()=>e():null)}}):void 0})})(),R=(()=>{
const e=s(l.grant,vo),t=function(...e){Et(Wn.log,this,e)};return St({GM_log:e?St({value:t}):void 0,"GM.log":e?St({get:()=>a(t)}):void 0})})(),G=({root:e,tag:t,properties:n,cb:r})=>{const s=zn(),a=St({tag:t,properties:n,id:s,uuid:l.uuid});o.first.send("addElement",a,e,r?()=>r():null);const i=Nn.getElementById(s),c=n?n.id:void 0;return void 0!==c&&Mn(i,"id",c),i},L=(()=>{const e=s(l.grant,lo),t=(e,t)=>G(St({root:void 0,tag:"style",properties:St({textContent:e}),cb:t}));return St({
GM_addStyle:e?St({value:t}):void 0,"GM.addStyle":e?St({get:()=>a(t)}):void 0})})(),I=(()=>{const e=s(l.grant,lo),t=(e,t,n,o)=>{let r,s,a,i;return"string"==typeof e?(s=e,a=t,i=n):(r=e,s=t,a=n,i=o),a&&(a=St(a)),G(St({root:r,tag:s,properties:a,cb:i}))};return St({GM_addElement:e?St({value:t}):void 0,"GM.addElement":e?St({get:()=>a(t)}):void 0})})(),O=(()=>{const e=s(l.grant,co),t=(e,t)=>{const o="backgroundControl",r=Zn.connect(o);let s=!1;const a="restart"===e.action||void 0
;r.onMessage.addListener((e=>{if("ack"in e)return;s=!0;const n=e?e.error:void 0;n&&Wn.warn(n),t&&t(n),r.disconnect()})),r.postMessage(St({messageId:zn(),method:o,id:n,uuid:l.uuid,restart:a})),a&&(qo=!1),r.onDisconnect.addListener((()=>{!s&&t&&t(a?void 0:"port disconnected for unknown reason"),s=!0}))};return St({"GM.backgroundControl":e?St({get:()=>a(t)}):void 0})})(),C=St({...I,...L,...E,...M,...y,...S,...v,...R,...b,...h,...w,...p,...d,...m,...g,...u,..._,...f,...O})
;return r[e.script.uuid]=r[e.script.uuid]||C,r[e.script.uuid]}})},Ho=(e,t,n,o,r,s)=>{const a=(e,t,n,o,r)=>{const a=t[n],i=typeof a;return o&&"string"===i?t[n]=()=>s(a,r):r&&"function"===i&&(t[n]=function(){return Et(a,r,arguments)}),Et(e,Bn,t)};let i=!0;Yn((()=>i=!1));const c=St({}),l=e=>!!("object"==typeof e&&null!==e?e.capture:e),d=(e,o,r)=>{let d,g;null===o||("object"==typeof o?(d=async e=>{const t=o.handleEvent;"function"==typeof t&&Et(t,o,[e])},g=o):(d=o,g=void 0));const m=l(r);let f,v
;if(void 0!==d&&i&&((f="DOMContentLoaded"==e)||"load"==e)){const n=bn(Bn.document);if(f&&("complete"==n||"interactive"===n)&&"document-idle"!=t||!f&&"complete"==n)return void(async(e,t,n,o)=>{const r=St({attrName:"null",newValue:"null",prevValue:"null",eventPhase:wn,target:Bn.document,relatedNode:Bn.document,srcElement:Bn.document});await null,n||await null,"load"===e&&await null,((e,t,n,o)=>{const r=St({bubbles:!0,cancelBubble:!1,cancelable:!1,clipboardData:void 0,currentTarget:null,
defaultPrevented:!1,eventPhase:0,newValue:null,prevValue:null,relatedNode:null,returnValue:!0,srcElement:null,target:null,timeStamp:xn()}),a="string"==typeof n?()=>s(n,o):n,i=new Event(e);qt(dt(r),(e=>{Rt(i,e,r[e])})),qt(dt(t),(e=>{Rt(i,e,t[e])})),Et(a,o,[i])})(e,r,t,o)})(e,d,m,p)}const _="urlchange"==e?n["window.onurlchange"]:void 0;if(void 0===d);else if("string"!=typeof d){const t=`${e}-${m}`;c[t]=c[t]||[];const n=function(...t){return"object"==typeof r&&r.once&&u(e,o,r),
Et(d,this===Bn||this===Hn?p:this,t)},s=St({listener:d,filter:n,object:g});if(Vt(c[t],s),v=n,_)return void _.value.register(n)}else{if(_)return void Wn.warn("env: urlchange listener must be a function!");v=d}return a(Kn.addEventListener,[e,v,r],1,!0)},u=(e,t,o)=>{let r,s;null===t||("object"==typeof t?s=t:r=t);const i="urlchange"==e?n["window.onurlchange"]:void 0,d=l(o),u=`${e}-${d}`,g=c[u]&&Ut(c[u],(e=>e.object?e.object===s:e.listener===r));if(g&&g.length){let t;if(qt(g,(n=>{
if(i)i.value.unregister(n.filter);else try{a(Kn.removeEventListener,[e,n.filter,o],1,!0)}catch(n){t=n}const r=Nt(c[u],n);c[u]=Dt(c[u],r,1).result})),c[u].length||delete c[u],t)throw t}else if(void 0!==r)return a(Kn.removeEventListener,[e,r,o],1,!0)},g=St({CDATA:St({value:function(e){this.src=e,this.toString=function(){return this.src},this.toXMLString=this.toString}}),uneval:St({value:e=>{try{return`\\$1 = ${Pt(e)};`}catch(e){Wn.log(e)}}}),define:St({value:void 0}),module:St({value:void 0}),
exports:St({value:void 0}),setTimeout:St({value:(...e)=>a(Vo,e,0,!0,p)}),setInterval:St({value:(...e)=>a(No,e,0,!0,p)}),close:(()=>{const e=n["window.close"];return e?St({get:()=>Bn==Bn.top?t=>e.value(t):Kn.close}):void 0})(),focus:(()=>{const e=n["window.focus"];return e?St({get:()=>t=>e.value(t)}):void 0})(),onurlchange:n["window.onurlchange"]?(()=>{let e=null;return St({get:()=>e,set:t=>{e&&u("urlchange",e),e=t,d("urlchange",e)}})})():void 0,location:St({set:e=>{Kn.location.href=e}}),
name:St({get:()=>Bn.name,set:e=>{Bn.name=e}}),clearInterval:St({get:()=>Fo}),clearTimeout:St({get:()=>jo}),addEventListener:St({value:d}),removeEventListener:St({value:u}),console:St({get:()=>no})});if(!e){const e=St({window:St({get:()=>p}),globalThis:St({get:()=>p}),cloneInto:St({value:e=>e}),exportFunction:St({value:(e,t,n)=>{const o=n&&Gt(n,"defineAs");return o&&(t[o]=e),e}}),createObjectIn:St({value:(e,t)=>{const n=St({}),o=t&&Gt(t,"defineAs");return o&&(e[o]=n),n}}),undefined:St({get:()=>{}
})});gt(g,e)}o&&gt(g,o);const p=r(g);return p};let Wo;(async()=>{const n=e.contextId;let o;const{fSend:r,fOnMessage:s,cloneInto:a,pageWindow:i}=e;o=r&&s?(({sendPrefix:e,listenPrefix:t,send:n,onMessage:o})=>{if(void 0===n||void 0===o)throw"invalid args";let r,s,a=1;const i=St({}),c=St({}),l=e=>{e&&(r=e)},d=e=>{const t=++a;return c[a]=e,t};o(((o,a)=>o==`${t}_${r}`?(t=>{const{m:o,r:a,a:l,n:d}=t;if(i[o]&&(qt(i[o],(e=>e(l))),delete i[o]),"message.response"==o){if(null==a)throw"Invalid Message"
;((e,t)=>{let n;e&&(n=c[e])&&(n(t),delete c[e])})(a,l)}else if(s){const t=a?t=>{n(`${e}_${r}`,St({m:"message.response",a:t,r:a}))}:()=>{};s(St({method:o,args:l,node:d}),t)}})(a):null));const u=St({init:async e=>{r?l():l(e)},refresh:()=>null,switchId:e=>{r&&u.cleanup(),l(e)},send:(t,o,s,a)=>Jn((i=>{let c,l;"function"!=typeof s&&null!==s?(c=s,l=a):l=s,n(`${e}_${r}`,St({m:t,a:o,r:l?d(l):null,n:c})),i()})),sendToId:(t,o,r)=>{n(`${e}_${t}`,St({m:o,a:r,r:null}))},once:(e,t)=>{i[e]||(i[e]=[]),
Vt(i[e],t)},setMessageListener:e=>{s=e},cleanup:()=>null});return u})(St({sendPrefix:"2U",listenPrefix:"2S",send:r,onMessage:s})):(({sendPrefix:e,listenPrefix:n,cloneInto:o})=>{const r=e=>o?o(e,Bn.document):e,s=St({});let a,i,c=1;const l=St({});let d=!1,u=[];const g=()=>{b=Bn.document.documentElement,d=!1;const e=u;u=[],qt(e,(e=>{d||M()?Vt(u,e):e()}))};let p;const m=e=>{const t=++c;return l[c]=e,t},f=(e,t)=>{const{m:n,a:o,r:s,n:a}=t,{m:i,c}=((e,t,n)=>{let o,s;return n?(s=new An(e,St({
relatedTarget:n})),o=new Tn(e,St({detail:r(t)}))):o=new Tn(e,St({detail:r(t)})),St({m:s,c:o})})(e,St({m:n,a:o,r:s}),a);i&&Et(Ae,Bn,[i]),Et(Ae,Bn,[c])},v=t=>{const n=(e=>{if("MouseEvent"===zt(e)){const t=En(e);if(!t)throw"Invalid MouseEvent";return void(p=t)}const t=Jt(Sn(e));return p&&(t.n=p,p=void 0),t})(t);if(!n)return;const{m:o,r,a:c,n:d}=n;if(s[o]&&(qt(s[o],(e=>e(c))),delete s[o]),"unlock"==o)f(`${e}_${i}`,St({m:"unlocked",a:void 0,r:null})),
g();else if("unlocked"==o)g();else if("message.response"==o){if(null==r)throw"Invalid Message";((e,t)=>{let n;e&&(n=l[e])&&(n(t),delete l[e])})(r,c)}else if(a){const t=r?t=>{f(`${e}_${i}`,St({m:"message.response",a:t,r}))}:()=>{};a(St({method:o,args:c,node:d}),t)}},_=e=>{e&&(i=e),i&&Kn.addEventListener(`${n}_${i}`,v,!0)};let b,h;const M=()=>{if((()=>{const e=Bn.document.documentElement;return b||(b=e),b!==e})()){if(h){const e=h;h=void 0,e(Bn.document)}return!0}},y=St({init:async(n,o)=>{
i?_():_(n),(e=>(b=Bn.document.documentElement,Jn((async n=>{if(h=n,t&&!e&&(await null,M()))return;const o=new $n((()=>{M()&&o.disconnect()}));o.observe(Bn.document,St({childList:!0}))}))))(o).then((()=>{d=!0,y.refresh(),f(`${e}_${i}`,St({m:"unlock",a:void 0,r:null}))}))},refresh:()=>{const e=i;e&&(y.cleanup(),y.init(e,!0))},switchId:e=>{i&&y.cleanup(),_(e)},send:(t,n,o,r)=>Jn((s=>{let a,c;"function"!=typeof o&&null!==o?(a=o,c=r):c=o,M();const l=()=>{f(`${e}_${i}`,St({m:t,a:n,r:c?m(c):null,n:a
})),s()};d?Vt(u,l):l()})),sendToId:(t,n,o)=>{f(`${e}_${t}`,St({m:n,a:o,r:null}))},setMessageListener:e=>{a=e},once:(e,t)=>{s[e]||(s[e]=[]),Vt(s[e],t)},cleanup:()=>{i&&(Kn.removeEventListener(`${n}_${i}`,v,!0),i=void 0)}});return y})(St({sendPrefix:"2C",listenPrefix:"2P"})),e.bridges.first=o;const c=gt(e.console,to);o.init(n);const l=St({});o.setMessageListener((({method:t,args:n})=>{if("commid"==t)o.switchId(n.id),o.send("ack",St({id:n.id}));else if("injectable"==t)g(n.id,(()=>{o.send("ack",St({
id:n.id}))})),o.send("injectableack",St({id:n.id}));else if("setForeignAttr"==t)Bn[n.attr]=n.value;else if("script"==t){const{id:t,unwrap:r,bundle:s}=n,{script:a}=s,{name:i,uuid:c,options:{run_at:u}}=a;g(t,(t=>{const o=r?()=>t():()=>Et(t,((t,n,o,r)=>{const{pageWindow:s,cloneInto:a,exportFunction:i}=e,c=s||Bn,{script:l}=t,d=l.options.compat_powerful_this,u=-1!==Nt(l.grant,"none");Wo=Wo||Bo(n);const g=Wo.of(t),p=e=>St({p:v,r:Et,s:e}),m=St({seed:St({get:()=>p(b),once:!0})}),f=St({}),v=St({GM:f
}),_=c&&c;d&&(Rt(m,"GM",St({value:f})),Rt(m,"unsafeWindow",St({value:_}))),u||(v.unsafeWindow=_),qt(dt(g),(e=>{const t=cn(e,0,3),n=g[e];if(void 0!==n)if("GM_"===t)v[e]=void 0!==n.get?n.get():n.value,d&&Rt(m,e,n);else if("GM."===t){const t=Ht(e,3);mt(f,t,n)}}));const b=u?p(d?v:St({})):Ho(u,l.options.run_at,g,m,o,r);return b})(s,n.flags,d,p),[]);"document-start"==u||"context-menu"==u?o():l[c]=o})),o.send(`scriptack-${t}`,St({id:t}))
}else if("port.message"==t)Zn.message(n,o);else if("external.connect"==t)(t=>{const{bridges:n}=e,o=Bn,r=Gt(o,"external");if(!r)return;const s=t?e=>t(e,o,St({cloneFunctions:!0})):e=>e,a=(e,t)=>{n.first.send("external.message",e,t)};try{const e=()=>{const e=St({getVersion:e=>{a(St({method:"getVersion"}),(t=>e(s(t))))},openOptions:(e,t)=>{a(St({method:"openOptions",params:e}),t)},isInstalled:(e,t,n)=>{"function"==typeof t&&(n=t,t=null),a(St({method:"isInstalled",script:St({name:e,namespace:t})
}),(e=>n(s(e))))}});return s(e)};pt(r,St({Tampermonkey:St({value:e(),configurable:!0})}))}catch(e){}})(a);else if("run"==t){const{uuid:e}=n,t=Gt(l,e);t?"function"==typeof t&&(t(),delete l[e]):c.warn(`env: missing script "${e}"!`)}}));const{createProxy:d}=((e,t)=>{const n=(e=>{let t=St({});const n=(e,o,r)=>{const s=_t(e);s&&s===o||(null!=s&&--r>=0&&n(s,e,r),t=gt(t,bt(e)))};return n(e,null,5),t})(Bn);qt(io,(e=>delete n[e]));const o=n;return St({createProxy:n=>{let r=o;const s=e=>{let t,n
;const o=(t=vt(p,e))||(n=r[e]);return St({d:o?St(o):o,l:!!t,w:!!n})},a=e=>{if(!c(e))return!1;if("length"===e)return!0;const t=Mt(kn(e));return t>=0&&t<=Qt&&e===`${t}`},i=e=>"on"===cn(e,0,2),c=e=>"string"==typeof e,l=(e,n)=>{const o=cn(e,2),r=g[o];if(r&&(t.removeEventListener(o,r),delete g[o]),n&&(e=>"function"==typeof e)(n)){const e=(...e)=>Et(n,t,e);t.addEventListener(o,e),g[o]=e}},d=t=>void 0!==t&&(t===e||t===Bn||t===Hn),u=St({addEventListener:!0,alert:!0,atob:!0,blur:!0,btoa:!0,
cancelAnimationFrame:!0,cancelIdleCallback:!0,captureEvents:!0,clearInterval:!0,clearTimeout:!0,close:!0,confirm:!0,createImageBitmap:!0,dispatchEvent:!0,dump:!0,fetch:!0,find:!0,focus:!0,getComputedStyle:!0,getDefaultComputedStyle:!0,getSelection:!0,matchMedia:!0,moveBy:!0,moveTo:!0,open:!0,openDatabase:!0,postMessage:!0,print:!0,prompt:!0,queueMicrotask:!0,releaseEvents:!0,removeEventListener:!0,reportError:!0,requestAnimationFrame:!0,requestIdleCallback:!0,resizeBy:!0,resizeTo:!0,scroll:!0,
scrollBy:!0,scrollByLines:!0,scrollByPages:!0,scrollTo:!0,setInterval:!0,setResizable:!0,setTimeout:!0,showDirectoryPicker:!0,sizeToContent:!0,stop:!0,structuredClone:!0,updateCommands:!0,webkitCancelAnimationFrame:!0,webkitRequestAnimationFrame:!0,webkitRequestFileSystem:!0,webkitResolveLocalFileSystemURL:!0});qt(dt(u),(e=>{n[e]=n[e]||St({bind:!0})}));const g=St({}),p=St({});Rt(p,mn,"Window");const m=new Pn(p,St({defineProperty:(e,t,o)=>{const{d:r,l:d}=s(t),u=St(o)
;return r&&!r.configurable&&(!!r.configurable!=!!u.configurable||!!r.enumerable!=!!r.enumerable)||a(t)?(mt(d?p:Bn,t,u),!1):(mt(p,t,u),c(t)&&i(t)&&l(t),delete n[t],!0)},deleteProperty:(e,t)=>{let{d:a,l:d,w:u}=s(t);return!(!a||!a.configurable)&&(d&&(d=delete p[t],c(t)&&i(t)&&l(t)),(u||(a=r[t])&&a.configurable)&&(o===r&&(r=gt(St({}),o)),u=delete r[t]),delete n[t],d||u)},get:(e,t)=>{if("undefined"===t||t===fn)return;const o=n[t];if(o){if(o.once&&delete n[t],"value"in o)return o.value
;if(o.get)return o.get()}const{d:r,l:i}=a(t)?St({d:vt(Bn,t),l:!1}):s(t);if(r){let e;const n="value"in r?Gt(r,"value"):(e=Gt(r,"get"))&&"function"==typeof e?i?e():xt(e,Bn)():void 0;return n&&o&&o.bind?xt(n,Bn):i||"event"==t?n:d(n)||"globalThis"===t?m:n}},getOwnPropertyDescriptor:(e,t)=>{let{d:o,l:r}=s(t);if(!o){const e=n[t];if(e)return St({enumerable:!0,configurable:!0,writable:!0,value:e.value,set:e.set,get:e.get});if(!a(t))return;o=vt(Bn,t),r=!1}const i=gt(St({}),o);if(d(i.value)&&(i.value=m),
!r){const e=i.get;e&&(i.get=()=>{const t=xt(e,Bn)();return d(t)?m:t}),i&&!i.configurable&&mt(p,t,i)}return i},has:(e,t)=>t in p||t in n||t in r,ownKeys:()=>{const e=e=>!(e in r),t=dt(r),n=Ut(dt(bt(p)),e),o=St({});for(let e=0;"Window"===zt(Lt(Bn,e));e+=1)o[e]=!0;const s=Ut(dt(o),e);return Ft(t,n,s)},preventExtensions:()=>!0,set:(e,t,o)=>{const r=n[t];if(r&&r.set)return r.set(o),!0;const{d}=s(t);return!(d&&!d.writable&&!Gt(d,"set")||a(t)||(delete n[t],Rt(p,t,o),c(t)&&i(t)&&l(t,o),0))}}));return m}
})})(i,Kn),u=e=>{o.send("csp",St({src:e}))},g=async(e,t)=>{mt(Hn,e,St({set:n=>(delete Hn[e],Qn(),t(n)),configurable:!0,enumerable:!1})),Yn((()=>delete Hn[e]))},p=(e,t)=>t?((e,t)=>{const n=`__p__${zn()}`;(async(e,t)=>{g(e,(e=>Et(e,t,[])))})(n,t),u('window["'+n+'"] = function(){'+e+"};"),delete Hn[n]})(e,t):u(e)})(),Qn()})()})({ unsafeWindow: typeof globalThis === "undefined" ? window : globalThis, unsafeThis: window, vault: window["m1fm32g9.v87"], contextId: "m1fm32g9.v87", __proto__: null });delete window["m1fm32g9.v87"]
window["__f__m1fc2leq.qi"] = function(){with (this) {(async (u, { p, r, s }) => {try {r(u, s, [undefined,undefined,undefined,p.unsafeWindow,p.GM_info,p.GM]);} catch (e) {if (e.message && e.stack) {console.error("ERROR: Execution of script 'New script (TM)' failed! " + e.message);console.log(e.stack);} else {console.error(e);}}})(async function(define,module,exports,unsafeWindow,GM_info,GM) {
// ==UserScript==
// @name        New script (TM)
// @namespace   Violentmonkey Scripts
// @match       https://streamtape.com/*
// @grant       unsafeWindow
// @version     1.0
// @author      -
// @description test
// @run-at      document-start
// ==/UserScript==

console.log(unsafeWindow.atob("QQ=="))
}, seed)}
//# sourceURL=chrome-extension://dhdgffkkebhmkfjojejmpbldmpobfkfo/userscript.html?name=New-script-TM.user.js&id=140ed18c-62d7-49d5-862b-82594cfae7fb
}

Related: Tampermonkey/tampermonkey#2171

Other extensions used

Tampermonkey v5.3.0

Screenshot(s)

Screenshot(s)

image

Configuration

Details
uBlock Origin: 1.59.0
Chromium: 129
filterset (summary):
 network: 150637
 cosmetic: 48451
 scriptlet: 22552
 html: 0
listset (total-discarded, last-updated):
 default:
  user-filters: 0-0, never
  ublock-filters: 40280-270, 2m
  ublock-badware: 11271-6, 2m
  ublock-privacy: 1247-22, 2m
  ublock-unbreak: 2471-0, 2m
  ublock-quick-fixes: 146-0, 2m
  easylist: 85383-576, 2m
  easyprivacy: 53082-647, 3m
  urlhaus-1: 25880-0, 3m
  plowe-0: 3550-0, 3m
filterset (user): [empty]
userSettings: [none]
hiddenSettings: [none]
supportStats:
 allReadyAfter: 1772 ms
 maxAssetCacheWait: 9 ms
 cacheBackend: indexedDB
@uBlock-user
Copy link
Contributor

uBlock-user commented Sep 23, 2024

Add those filters one by one and TM should start working.

adblockstreamtape.*,adblockstrtape.*,adblockstrtech.*,komikcast.*,mavanimes.*,stape.*,streamadblockplus.*,streamta.*,streamtape.*,streamtapeadblock.*,strtape.*,strtapeadblock.*,strtpe.*,vanime.*#@#+js(acs, JSON.parse, Promise) 

streamtape.*#@#+js(acs, EventTarget.prototype.addEventListener, delete window) 

streamtape.*#@#+js(acs, document.documentElement, break;case $.) 

@uBlock-user uBlock-user closed this as not planned Won't fix, can't repro, duplicate, stale Sep 23, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants