PageSourceSearch

https://cdu-brandenburg.de/js/FriendlyCaptcha/widget.module.min.js

js cdu-brandenburg.de collected 2026-10-02 12:04:58 UTC 27,945 bytes, 1 lines download raw bytes

1const t='<circle cx="12" cy="12" r="8" stroke-width="3" stroke-dasharray="15 10" fill="none" stroke-linecap="round" transform="rotate(0 12 12)"><animateTransform attributeName="transform" type="rotate" repeatCount="indefinite" dur="0.9s" values="0 12 12;360 12 12"/></circle>',e='<path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-2h2v2zm0-4h-2V7h2v6z"/>';function r(t,e,r,A,i,o=!1,n,s){return`<div class="frc-container${s?" "+s:""}">\n<svg class="frc-icon" role="img" xmlns="http://www.w3.org/2000/svg" height="32" width="32" viewBox="0 0 24 24">${e}</svg>\n<div class="frc-content">\n    <span class="frc-text" ${n?`title="${n}"`:""}>${r}</span>\n    ${i?`<button type="button" class="frc-button">${i}</button>`:""}\n    ${o?'<progress class="frc-progress" value="0">0%</progress>':""}\n</div>\n</div><span class="frc-banner"><a href="https://friendlycaptcha.com/" rel="noopener" target="_blank"><b>Friendly</b>Captcha ⇗</a></span>\n<input name="${t}" class="frc-captcha-solution" type="hidden" value="${A}">`}function A(t,A,i,o=!0,n=!1){return r(t,e,`<b>${A.text_error}</b><br>${i}`,n?".HEADLESS_ERROR":".ERROR",o?A.button_retry:void 0)}const i="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",o="=".charCodeAt(0),n=new Uint8Array(256);for(let t=0;t<i.length;t++)n[i.charCodeAt(t)]=t;function s(t){const e=t.length;let r="";for(let A=0;A<e;A+=3){const e=t[A+0],o=t[A+1],n=t[A+2];r+=i.charAt(e>>>2),r+=i.charAt((3&e)<<4|o>>>4),r+=i.charAt((15&o)<<2|n>>>6),r+=i.charAt(63&n)}return e%3==2?r=r.substring(0,r.length-1)+"=":e%3==1&&(r=r.substring(0,r.length-2)+"=="),r}let a,c;async function g(t,e,r){let A=1e3;return fetch(t,e).catch((async i=>{if(0===r)throw i;return await new Promise((t=>setTimeout(t,A))),A*=4,g(t,e,r-1)}))}"undefined"!=typeof navigator&&(a=navigator,c=a.userAgent.toLowerCase());const l={en:{text_init:"Initializing..",text_ready:"Anti-Robot Verification",button_start:"Click to start verification",text_fetching:"Fetching Challenge",text_solving:"Verifying you are human..",text_completed:"I am human",text_expired:"Anti-Robot verification expired",button_restart:"Restart",text_error:"Verification failed",button_retry:"Retry",text_fetch_error:"Failed to connect to"},de:{text_init:"Initialisierung..",text_ready:"Anti-Roboter-Verifizierung",button_start:"Hier klicken",text_fetching:"Herausforderung laden..",text_solving:"Verifizierung, dass Sie ein Mensch sind..",text_completed:"Ich bin ein Mensch",text_expired:"Verifizierung abgelaufen",button_restart:"Erneut starten",text_error:"Verifizierung fehlgeschlagen",button_retry:"Erneut versuchen",text_fetch_error:"Verbindungsproblem mit"},nl:{text_init:"Initializeren..",text_ready:"Anti-robotverificatie",button_start:"Klik om te starten",text_fetching:"Aan het laden..",text_solving:"Anti-robotverificatie bezig..",text_completed:"Ik ben een mens",text_expired:"Verificatie verlopen",button_restart:"Opnieuw starten",text_error:"Verificatie mislukt",button_retry:"Opnieuw proberen",text_fetch_error:"Verbinding mislukt met"},fr:{text_init:"Chargement..",text_ready:"Verification Anti-Robot",button_start:"Cliquez ici pour vérifier",text_fetching:"Chargement du challenge",text_solving:"Vérification que vous êtes humain..",text_completed:"Je suis humain",text_expired:"Verification échue",button_restart:"Recommencer",text_error:"Echec de verification",button_retry:"Recommencer",text_fetch_error:"Problème de connexion avec"},it:{text_init:"Inizializzazione...",text_ready:"Verifica Anti-Robot",button_start:"Clicca per iniziare",text_fetching:"Caricamento...",text_solving:"Verificando che sei umano...",text_completed:"Non sono un robot",text_expired:"Verifica Anti-Robot scaduta",button_restart:"Ricomincia",text_error:"Verifica fallita",button_retry:"Riprova",text_fetch_error:"Problema di connessione con"},pt:{text_init:"Inicializando..",text_ready:"Verificação Anti-Robô",button_start:"Clique para iniciar verificação",text_fetching:"Carregando..",text_solving:"Verificando se você é humano..",text_completed:"Eu sou humano",text_expired:"Verificação Anti-Robô expirada",button_restart:"Reiniciar",text_error:"Verificação falhou",button_retry:"Tentar novamente",text_fetch_error:"Falha de conexão com"},es:{text_init:"Inicializando..",text_ready:"Verificación Anti-Robot",button_start:"Haga clic para iniciar la verificación",text_fetching:"Cargando desafío",text_solving:"Verificando que eres humano..",text_completed:"Soy humano",text_expired:"Verificación Anti-Robot expirada",button_restart:"Reiniciar",text_error:"Ha fallado la verificación",button_retry:"Intentar de nuevo",text_fetch_error:"Error al conectarse a"},ca:{text_init:"Inicialitzant...",text_ready:"Verificació Anti-Robot",button_start:"Fes clic per començar la verificació",text_fetching:"Carregant repte",text_solving:"Verificant que ets humà..",text_completed:"Soc humà",text_expired:"La verificació Anti-Robot ha expirat",button_restart:"Reiniciar",text_error:"Ha fallat la verificació",button_retry:"Tornar a provar",text_fetch_error:"Error connectant a"},ja:{text_init:"開始しています...",text_ready:"アンチロボット認証",button_start:"クリックして認証を開始",text_fetching:"ロードしています",text_solving:"認証中...",text_completed:"私はロボットではありません",text_expired:"認証の期限が切れています",button_restart:"再度認証を行う",text_error:"認証にエラーが発生しました",button_retry:"再度認証を行う",text_fetch_error:"接続ができませんでした"},da:{text_init:"Initialiserer..",text_ready:"Anti-robot verifikation",button_start:"Klik for at starte verifikationen",text_fetching:"Henter udfordring",text_solving:"Bekræfter, at du er menneske..",text_completed:"Jeg er menneske",text_expired:"Anti-Robot-verifikation er udløbet",button_restart:"Genstart",text_error:"Bekræftelse mislykkedes",button_retry:"Prøv igen",text_fetch_error:"Det lykkedes ikke at oprette forbindelse til"}};
1function h(t,e){const r=new Uint8Array(3),A=new DataView(r.buffer);return A.setUint8(0,t),A.setUint16(1,e),r}let I;"undefined"!=typeof window&&(I=window.URL||window.webkitURL);class C{constructor(){this.workers=[],this.numPuzzles=0,this.startTime=0,this.progress=0,this.totalHashes=0,this.puzzleSolverInputs=[],this.solutionBuffer=new Uint8Array(0),this.solverType=1,this.readyCount=0,this.startCount=0,this.doneCount=0,this.progressCallback=()=>0,this.readyCallback=()=>0,this.startedCallback=()=>0,this.doneCallback=()=>0,this.errorCallback=()=>0}init(){if(this.workers.length>0)for(let t=0;t<this.workers.length;t++)this.workers[t].terminate();this.progress=0,this.totalHashes=0,this.readyCount=0,this.startCount=0,this.doneCount=0,this.workers=new Array(4);const t=new Blob(['!function(){"use strict";const A="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",I="=".charCodeAt(0),g=new Uint8Array(256);for(let I=0;I<A.length;I++)g[A.charCodeAt(I)]=I;function C(A){const I={},g=A.exports,C=g.memory,t=g.__alloc,B=g.__retain,Q=g.__rtti_base||-1;return I.__allocArray=(A,I)=>{const g=function(A){return new Uint32Array(C.buffer)[(Q+4>>>2)+2*A]}(A),e=31-Math.clz32(g>>>6&31),r=I.length,i=t(r<<e,0),o=t(12,A),n=new Uint32Array(C.buffer);n[o+0>>>2]=B(i),n[o+4>>>2]=i,n[o+8>>>2]=r<<e;const E=C.buffer,s=new Uint8Array(E);if(16384&g)for(let A=0;A<r;++A)s[(i>>>e)+A]=B(I[A]);else s.set(I,i>>>e);return o},I.__getUint8Array=A=>{const I=new Uint32Array(C.buffer),g=I[A+4>>>2];return new Uint8Array(C.buffer,g,I[g-4>>>2]>>>0)},function(A,I={}){const g=A.__argumentsLength?I=>{A.__argumentsLength.value=I}:A.__setArgumentsLength||A.__setargc||(()=>({}));for(const C in A){if(!Object.prototype.hasOwnProperty.call(A,C))continue;const t=A[C],B=C.split(".")[0];"function"==typeof t&&t!==g?(I[B]=(...A)=>(g(A.length),t(...A))).original=t:I[B]=t}return I}(g,I)}class t{constructor(A){this.b=new Uint8Array(128),this.h=new Uint32Array(16),this.t=0,this.c=0,this.v=new Uint32Array(32),this.m=new Uint32Array(32),this.outlen=A}}function B(A,I){return A[I]^A[I+1]<<8^A[I+2]<<16^A[I+3]<<24}function Q(A,I,g,C,t,B,Q,e){const r=I[Q],i=I[Q+1],o=I[e],n=I[e+1];let E,s,w,a,c=A[g],D=A[g+1],f=A[C],h=A[C+1],l=A[t],y=A[t+1],U=A[B],M=A[B+1];E=c+f,s=(c&f|(c|f)&~E)>>>31,c=E,D=D+h+s,E=c+r,s=(c&r|(c|r)&~E)>>>31,c=E,D=D+i+s,w=U^c,a=M^D,U=a,M=w,E=l+U,s=(l&U|(l|U)&~E)>>>31,l=E,y=y+M+s,w=f^l,a=h^y,f=w>>>24^a<<8,h=a>>>24^w<<8,E=c+f,s=(c&f|(c|f)&~E)>>>31,c=E,D=D+h+s,E=c+o,s=(c&o|(c|o)&~E)>>>31,c=E,D=D+n+s,w=U^c,a=M^D,U=w>>>16^a<<16,M=a>>>16^w<<16,E=l+U,s=(l&U|(l|U)&~E)>>>31,l=E,y=y+M+s,w=f^l,a=h^y,f=a>>>31^w<<1,h=w>>>31^a<<1,A[g]=c,A[g+1]=D,A[C]=f,A[C+1]=h,A[t]=l,A[t+1]=y,A[B]=U,A[B+1]=M}const e=[4089235720,1779033703,2227873595,3144134277,4271175723,1013904242,1595750129,2773480762,2917565137,1359893119,725511199,2600822924,4215389547,528734635,327033209,1541459225],r=[0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,28,20,8,16,18,30,26,12,2,24,0,4,22,14,10,6,22,16,24,0,10,4,30,26,20,28,6,12,14,2,18,8,14,18,6,2,26,24,22,28,4,12,10,20,8,0,30,16,18,0,10,14,4,8,20,30,28,2,22,24,12,16,6,26,4,24,12,20,0,22,16,6,8,26,14,10,30,28,2,18,24,10,2,3
10,28,26,8,20,0,14,12,6,18,4,16,22,26,22,14,28,24,2,6,18,10,0,30,8,16,12,4,20,12,30,28,18,22,6,0,16,24,4,26,14,2,8,20,10,20,4,16,8,14,12,2,10,30,22,18,28,6,24,26,0,0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,28,20,8,16,18,30,26,12,2,24,0,4,22,14,10,6];function i(A,I){const g=A.v,C=A.m;for(let I=0;I<16;I++)g[I]=A.h[I],g[I+16]=e[I];g[24]=g[24]^A.t,g[25]=g[25]^A.t/4294967296,I&&(g[28]=~g[28],g[29]=~g[29]);for(let I=0;I<32;I++)C[I]=B(A.b,4*I);for(let A=0;A<12;A++)Q(g,C,0,8,16,24,r[16*A+0],r[16*A+1]),Q(g,C,2,10,18,26,r[16*A+2],r[16*A+3]),Q(g,C,4,12,20,28,r[16*A+4],r[16*A+5]),Q(g,C,6,14,22,30,r[16*A+6],r[16*A+7]),Q(g,C,0,10,20,30,r[16*A+8],r[16*A+9]),Q(g,C,2,12,22,24,r[16*A+10],r[16*A+11]),Q(g,C,4,14,16,26,r[16*A+12],r[16*A+13]),Q(g,C,6,8,18,28,r[16*A+14],r[16*A+15]);for(let I=0;I<16;I++)A.h[I]=A.h[I]^g[I]^g[I+16]}function o(A,I){for(let I=0;I<16;I++)A.h[I]=e[I];A.b.set(I),A.h[0]^=16842752^A.outlen}async function n(){return(A,I,g=4294967295)=>[A,function(A,I,g){if(128!=A.length)throw Error("Invalid input");const C=A.buffer,B=new DataView(C),Q=new t(32);Q.t=128;const e=B.getUint32(124,!0),r=e+g;for(let g=e;g<r;g++)if(B.setUint32(124,g,!0),o(Q,A),i(Q,!0),Q.h[0]<I)return 0==ASC_TARGET?new Uint8Array(Q.h.buffer):Uint8Array.wrap(Q.h.buffer);return new Uint8Array(0)}(A,I,g)]}let E,s;Uint8Array.prototype.slice||Object.defineProperty(Uint8Array.prototype,"slice",{value:function(A,I){return new Uint8Array(Array.prototype.slice.call(this,A,I))}}),self.ASC_TARGET=0;const w=new Promise((A=>s=A));let a=!1;self.onerror=A=>{self.postMessage({type:"error",message:JSON.stringify(A)})},self.onmessage=async A=>{const t=A.data;try{if("solver"===t.type){if(t.forceJS){E=1;const A=await n();s(A)}else try{E=2;const A=WebAssembly.compile(function(A){const C=A.length;let t=3*C>>>2;A.charCodeAt(C-1)===I&&t--,A.charCodeAt(C-2)===I&&t--;const B=new Uint8Array(t);for(let I=0,t=0;I<C;I+=4){const C=g[A.charCodeAt(I+0)],Q=g[A.charCodeAt(I+1)],e=g[A.charCodeAt(I+2)],r=g[A.charCodeAt(I+3)];B[t++]=C<<2|Q>>4,B[t++]=(15&Q)<<4|e>>2,B[t++]=(3&e)<<6|63&r}return B}("AGFzbQEAAAABKghgAABgAn9/AGADf39/AX9gAX8AYAR/f39/AGAAAX9gAX8Bf2ACf38BfwINAQNlbnYFYWJvcnQABAMMCwcGAwAAAQIFAQIABQMBAAEGFgR/AUEAC38BQQALfwBBAwt/AEHgDAsHbgkGbWVtb3J5AgAHX19hbGxvYwABCF9fcmV0YWluAAIJX19yZWxlYXNlAAMJX19jb2xsZWN0AAQHX19yZXNldAAFC19fcnR0aV9iYXNlAwMNVWludDhBcnJheV9JRAMCDHNvbHZlQmxha2UyYgAKCAELCvgSC5IBAQV/IABB8P///wNLBEAACyMBQRBqIgQgAEEPakFwcSICQRAgAkEQSxsiBmoiAj8AIgVBEHQiA0sEQCAFIAIgA2tB//8DakGAgHxxQRB2IgMgBSADShtAAEEASARAIANAAEEASARAAAsLCyACJAEgBEEQayICIAY2AgAgAkEBNgIEIAIgATYCCCACIAA2AgwgBAsEACAACwMAAQsDAAELBgAjACQBC7sCAQF/AkAgAUUNACAAQQA6AAAgACABakEEayICQQA6AAMgAUECTQ0AIABBADoAASAAQQA6AAIgAkEAOgACIAJBADoAASABQQZNDQAgAEEAOgADIAJBADoAACABQQhNDQAgAEEAIABrQQNxIgJqIgBBADYCACAAIAEgAmtBfHEiAmpBHGsiAUEANgIYIAJBCE0NACAAQQA2AgQgAEEANgIIIAFBADYCECABQQA2AhQgAkEYTQ0AIABBADYCDCAAQQA2AhAgAEEANgIUIABBADYCGCABQQA2AgAgAUEANgIEIAFBADYCCCABQQA2AgwgACAAQQRxQRhqIgFqIQAgAiABayEBA0AgAUEgTwRAIABCADcDACAAQgA3AwggAEIANwMQIABCADcDGCABQSBrIQEgAEEgaiEADAELCwsLcgACfyAARQRAQQxBAhABIQALIAALQQA2AgAgAEEANgIEIABBADYCCCABQfD///8DIAJ2SwRAQcAKQfAKQRJBORAAAAsgASACdCIBQQAQASICIAEQBiAAKAIAGiAAIAI2AgAgACACNgIEIAAgATYCCCAAC88BAQJ/QaABQQAQASIAQQxBAxABQYABQQAQBzYCACAAQQxBBBABQQhBAxAHNgIEIABCADcDCCAAQQA2AhAgAEIANwMYIABC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")),t=await async function(A){const I=await async function(A){const I={env:{abort(){throw Error("Wasm aborted")}}};return{exports:C(await WebAssembly.instantiate(A,I))}}(A),g=I.exports.__retain(I.exports.__allocArray(I.exports.Uint8Array_ID,new Uint8Array(128)));let t=I.exports.__getUint8Array(g);return(A,C,B=4294967295)=>{t.set(A);const Q=I.exports.solveBlake2b(g,C,B);t=I.exports.__getUint8Array(g);const e=I.exports.__getUint8Array(Q);return I.exports.__release(Q),[t,e]}}(await A);s(t)}catch(A){console.log("FriendlyCaptcha failed to initialize WebAssembly, falling back to Javascript solver: "+A.toString()),E=1;const I=await n();s(I)}self.postMessage({type:"ready",solver:E})}else if("start"===t.type){if(a)return;a=!0;const A=await w;self.postMessage({type:"started"});let I=0;const g=t.puzzleSolverInputs,C=new Uint8Array(8*t.n);for(let B=t.startIndex;B<g.length;B+=t.numWorkers){let Q;for(let C=0;C<256;C++){g[B][123]=C;const[e,r]=A(g[B],t.threshold);if(0!==r.length){Q=e;break}console.warn("FC: Internal error or no solution found"),I+=Math.pow(2,32)-1}const e=new DataView(Q.slice(-4).buffer).getUint32(0,!0);I+=e,C.set(Q.slice(-8),8*B),self.postMessage({type:"progress",h:e})}const B={type:"done",solution:C,totalH:I,startIndex:t.startIndex};self.postMessage(B)}}catch(A){setTimeout((()=>{throw A}))}}}();'],{type:"text/javascript"});for(let e=0;e<this.workers.length;e++)this.workers[e]=new Worker(I.createObjectURL(t)),this.workers[e].onerror=t=>this.errorCallback(t),this.workers[e].onmessage=t=>{const e=t.data;if(e)if("progress"===e.type)this.progress++,this.totalHashes+=e.h,this.progressCallback({n:this.numPuzzles,h:this.totalHashes,t:(Date.now()-this.startTime)/1e3,i:this.progress});else if("ready"===e.type)this.readyCount++,this.solverType=e.solver,this.readyCount==this.workers.length&&this.readyCallback();else if("started"===e.type)this.startCount++,1==this.startCount&&(this.startTime=Date.now(),this.startedCallback());else if("done"===e.type){this.doneCount++;for(let t=e.startIndex;t<this.puzzleSolverInputs.length;t+=this.workers.length)this.solutionBuffer.set(e.solution.subarray(8*t,8*t+8),8*t);if(this.doneCount==this.workers.length){const t=(Date.now()-this.startTime)/1e3;this.doneCallback({solution:this.solutionBuffer,h:this.totalHashes,t,diagnostics:h(this.solverType,t),solver:this.solverType})}}else"error"===e.type&&this.errorCallback(e)}}setupSolver(t=!1){const e={type:"solver",forceJS:t};for(let t=0;t<this.workers.length;t++)this.workers[t].postMessage(e)}start(t){this.puzzleSolverInputs=function(t,e){const r=[];for(let A=0;A<e;A++){const e=new Uint8Array(128);
1e.set(t),e[120]=A,r.push(e)}return r}(t.buffer,t.n),this.solutionBuffer=new Uint8Array(8*t.n),this.numPuzzles=t.n;for(let e=0;e<this.workers.length;e++)this.workers[e].postMessage({type:"start",puzzleSolverInputs:this.puzzleSolverInputs,threshold:t.threshold,n:t.n,numWorkers:this.workers.length,startIndex:e})}terminateWorkers(){if(0!=this.workers.length){for(let t=0;t<this.workers.length;t++)this.workers[t].terminate();this.workers=[]}}}class f{constructor(t,e={}){if(this.workerGroup=new C,this.valid=!1,this.needsReInit=!1,this.hasBeenStarted=!1,this.hasBeenDestroyed=!1,this.opts=Object.assign({forceJSFallback:!1,startMode:"focus",puzzleEndpoint:t.dataset.puzzleEndpoint||"https://api.friendlycaptcha.com/api/v1/puzzle",startedCallback:()=>0,readyCallback:()=>0,doneCallback:()=>0,errorCallback:()=>0,sitekey:t.dataset.sitekey||"",language:t.dataset.lang||"en",solutionFieldName:t.dataset.solutionFieldName||"frc-captcha-solution"},e),this.e=t,"string"==typeof this.opts.language){let t=l[this.opts.language.toLowerCase()];void 0===t&&(console.error('FriendlyCaptcha: language "'+this.opts.language+'" not found.'),t=l.en),this.lang=t}else this.lang=Object.assign(Object.assign({},l.en),this.opts.language);t.innerText=this.lang.text_init,function(){if(!document.querySelector("#frc-style")){const t=document.createElement("style");t.id="frc-style",t.innerHTML=".frc-captcha *{margin:0;padding:0;border:0;text-align:initial;border-radius:px;filter:none!important;transition:none!important;font-weight:400;font-size:14px;line-height:1.2;text-decoration:none;background-color:initial;color:#222}.frc-captcha{position:relative;width:312px;border:1px solid #f4f4f4;padding-bottom:12px;background-color:#fff}.frc-captcha b{font-weight:700}.frc-container{display:flex;align-items:center;min-height:52px}.frc-icon{fill:#222;stroke:#222;flex-shrink:0;margin:8px 8px 0}.frc-icon.frc-warning{fill:#c00}.frc-success .frc-icon{animation:1s ease-in both frc-fade-in}.frc-content{white-space:nowrap;display:flex;flex-direction:column;margin:4px 6px 0 0;overflow-x:auto;flex-grow:1}.frc-banner{position:absolute;bottom:0;right:6px;line-height:1}.frc-banner *{font-size:10px;opacity:.8;text-decoration:none}.frc-progress{-webkit-appearance:none;-moz-appearance:none;appearance:none;margin:3px 0;height:4px;border:none;background-color:#eee;color:#222;width:100%;transition:.5s linear}.frc-progress::-webkit-progress-bar{background:#eee}.frc-progress::-webkit-progress-value{background:#222}.frc-progress::-moz-progress-bar{background:#222}.frc-button{cursor:pointer;padding:2px 6px;background-color:#f1f1f1;border:1px solid transparent;text-align:center;font-weight:600;text-transform:none}.frc-button:focus{border:1px solid #333}.frc-button:hover{background-color:#ddd}.frc-captcha-solution{display:none}.frc-err-url{text-decoration:underline;font-size:.9em}.dark.frc-captcha{color:#fff;background-color:#222;border-color:#333}.dark.frc-captcha *{color:#fff}.dark.frc-captcha button{background-color:#444}.dark .frc-icon{fill:#fff;stroke:#fff}.dark .frc-progress{background-color:#444}.dark .frc-progress::-webkit-progress-bar{background:#444}.dark .frc-progress::-webkit-progress-value{background:#ddd}.dark .frc-progress::-moz-progress-bar{background:#ddd}@keyframes frc-fade-in{from{opacity:0}to{opacity:1}}",document.head.appendChild(t)}}(),this.init("auto"===this.opts.startMode||"auto"===this.e.dataset.start)}init(t){var e;if(this.hasBeenDestroyed)console.error("FriendlyCaptcha widget has been destroyed using destroy(), it can not be used anymore.");else if(this.initWorkerGroup(),t)this.start();else if("none"!==this.e.dataset.start&&("focus"===this.opts.startMode||"focus"===this.e.dataset.start)){const t=function(t){for(;"FORM"!==t.tagName;)if(!(t=t.parentElement))return null;return t}(this.e);t?(e=()=>{this.hasBeenStarted||this.start()},t.addEventListener("focusin",e,{once:!0,passive:!0})):console.log("FriendlyCaptcha div seems not to be contained in a form, autostart will not work")}}makeButtonStart(){const t=this.e.querySelector("button");t&&(t.addEventListener("click",(()=>this.start()),{once:!0,passive:!0}),t.addEventListener("touchstart",(()=>this.start()),{once:!0,passive:!0}))}onWorkerError(t){this.needsReInit=!0,this.e.innerHTML=A(this.opts.solutionFieldName,this.lang,"Backgroun
1d worker error "+t.message),this.makeButtonStart(),this.opts.forceJSFallback=!0}initWorkerGroup(){this.workerGroup.progressCallback=t=>{!function(t,e){const r=t.querySelector(".frc-progress"),A=(e.i+1)/e.n;r&&(r.value=A,r.innerText=A.toFixed(2)+"%",r.title=e.i+1+"/"+e.n+" ("+(e.h/e.t*.001).toFixed(0)+"K/s)")}(this.e,t)},this.workerGroup.readyCallback=()=>{var t;this.e.innerHTML=r(this.opts.solutionFieldName,'<path d="M17,11c0.34,0,0.67,0.04,1,0.09V6.27L10.5,3L3,6.27v4.91c0,4.54,3.2,8.79,7.5,9.82c0.55-0.13,1.08-0.32,1.6-0.55 C11.41,19.47,11,18.28,11,17C11,13.69,13.69,11,17,11z"/><path d="M17,13c-2.21,0-4,1.79-4,4c0,2.21,1.79,4,4,4s4-1.79,4-4C21,14.79,19.21,13,17,13z M17,14.38"/>',(t=this.lang).text_ready,".UNSTARTED",t.button_start,!1),this.makeButtonStart(),this.opts.readyCallback()},this.workerGroup.startedCallback=()=>{var e,A;this.e.innerHTML=(e=this.opts.solutionFieldName,A=this.lang,r(e,t,A.text_solving,".UNFINISHED",void 0,!0)),this.opts.startedCallback()},this.workerGroup.doneCallback=t=>{const e=this.handleDone(t);this.opts.doneCallback(e);const r=this.e.dataset.callback;r&&window[r](e)},this.workerGroup.errorCallback=t=>{this.onWorkerError(t)},this.workerGroup.init(),this.workerGroup.setupSolver(this.opts.forceJSFallback)}expire(){var t,A;this.e.innerHTML=(t=this.opts.solutionFieldName,A=this.lang,r(t,e,A.text_expired,".EXPIRED",A.button_restart)),this.makeButtonStart()}async start(){if(this.hasBeenDestroyed)return void console.error("Can not start FriendlyCaptcha widget which has been destroyed");this.hasBeenStarted=!0;const e=this.opts.sitekey||this.e.dataset.sitekey;if(!e)return console.error("FriendlyCaptcha: sitekey not set on frc-captcha element"),void(this.e.innerHTML=A(this.opts.solutionFieldName,this.lang,"Website problem: sitekey not set",!1));if(function(){let t=!0;try{t=PluginArray.prototype===a.plugins.__proto__,a.plugins.length>0&&(t=t&&Plugin.prototype===a.plugins[0].__proto__)}catch(t){}return-1!==c.indexOf("headless")||-1!==a.appVersion.indexOf("Headless")||-1!==c.indexOf("bot")||-1!==c.indexOf("crawl")||!0===a.webdriver||!a.language||void 0!==a.languages&&!a.languages.length||!t}())this.e.innerHTML=A(this.opts.solutionFieldName,this.lang,"Browser check failed, try a different browser",!1,!0);else{if(this.needsReInit)return this.needsReInit=!1,void this.init(!0);try{this.e.innerHTML=(i=this.opts.solutionFieldName,s=this.lang,r(i,t,s.text_fetching,".FETCHING",void 0,!0)),this.puzzle=function(t){const e=t.split("."),r=e[1],A=function(t){const e=t.length;let r=3*e>>>2;t.charCodeAt(e-1)===o&&r--,t.charCodeAt(e-2)===o&&r--;const A=new Uint8Array(r);for(let r=0,i=0;r<e;r+=4){const e=n[t.charCodeAt(r+0)],o=n[t.charCodeAt(r+1)],s=n[t.charCodeAt(r+2)],a=n[t.charCodeAt(r+3)];A[i++]=e<<2|o>>4,A[i++]=(15&o)<<4|s>>2,A[i++]=(3&s)<<6|63&a}return A}(r);return{signature:e[0],base64:r,buffer:A,n:A[14],threshold:(i=A[15],i>255?i=255:i<0&&(i=0),Math.pow(2,(255.999-i)/8)>>>0),expiry:3e5*A[13]};var i}(await async function(t,e,r){const A=t.split(",");for(let t=0;t<A.length;t++)try{const r=await g(A[t]+"?sitekey="+e,{headers:[["x-frc-client","js-0.9.0"]],mode:"cors"},2);if(r.ok)return(await r.json()).data.puzzle;{let e;try{e=await r.json()}catch(t){}if(e&&e.errors&&"endpoint_not_enabled"===e.errors[0])throw Error(`Endpoint not allowed (${r.status})`);if(t===A.length-1)throw Error(`Response status ${r.status} ${r.statusText}`)}}catch(e){throw console.error("[FriendlyCaptcha]:",e),Error(`${r.text_fetch_error} <a class="frc-err-url" href="${A[t]}">${A[t]}</a>`)}throw Error("Internal error")}(this.opts.puzzleEndpoint,e,this.lang)),setTimeout((()=>this.expire()),this.puzzle.expiry-3e4)}catch(t){this.e.innerHTML=A(this.opts.solutionFieldName,this.lang,t.message),this.makeButtonStart();const e="error_getting_puzzle";this.opts.errorCallback({code:e,description:t.toString(),error:t});const r=this.e.dataset["callback-error"];return void(r&&window[r](this))}var i,s;this.workerGroup.start(this.puzzle)}}handleDone(t){this.valid=!0;const e=`${this.puzzle.signature}.${this.puzzle.base64}.${s(t.solution)}.${s(t.diagnostics)}`;return this.e.innerHTML=function(t,e,A,i){const o=`Completed: ${i.t.toFixed(0)}s (${(i.h/i.t*.001).toFixed(0)}K/s)${1===i.solver?" JS Fallback":""}`;return r(t,`<title>${o}</title>
1<path d="M12 1L3 5v6c0 5.55 3.84 10.74 9 12 5.16-1.26 9-6.45 9-12V5l-9-4zm-2 16l-4-4 1.41-1.41L10 14.17l6.59-6.59L18 9l-8 8z"></path>`,e.text_completed,A,void 0,!1,o,"frc-success")}(this.opts.solutionFieldName,this.lang,e,t),this.needsReInit=!0,e}destroy(){this.workerGroup.terminateWorkers(),this.needsReInit=!1,this.hasBeenStarted=!1,this.e&&(this.e.remove(),delete this.e),this.hasBeenDestroyed=!0}reset(){this.hasBeenDestroyed?console.error("FriendlyCaptcha widget has been destroyed, it can not be used anymore"):(this.workerGroup.terminateWorkers(),this.needsReInit=!1,this.hasBeenStarted=!1,this.init("auto"===this.opts.startMode||"auto"===this.e.dataset.start))}}function d(){let t=window.friendlyChallenge.autoWidget;const e=function(){const t=document.querySelectorAll(".frc-captcha");return 0===t.length&&console.warn("FriendlyCaptcha: No div was found with .frc-captcha class"),t}();for(let r=0;r<e.length;r++){const A=e[r];A&&!A.dataset.attached&&(t=new f(A),A.dataset.attached="1")}window.friendlyChallenge.autoWidget=t}window.friendlyChallenge={WidgetInstance:f},"loading"!==document.readyState?d():document.addEventListener("DOMContentLoaded",d);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.