1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[55087],{55087:(e,t,r)=>{r.d(t,{x:()=>y});let n=[0,.28,.55,.78,1];function a(e,t=.6){return e?.9:t}let o=` 2precision highp float; 3uniform vec2 u_resolution; 4uniform float u_time; 5uniform vec3 u_c0; uniform vec3 u_c1; uniform vec3 u_c2; uniform vec3 u_c3; uniform vec3 u_c4; 6uniform vec3 u_base; 7uniform float u_veil; uniform float u_speed; uniform float u_soft; uniform float u_travel; 8uniform float u_warp; uniform float u_fade; uniform float u_grain; uniform float u_chroma; 9float hash(vec2 p){ return fract(sin(dot(p, vec2(127.1, 311.7))) * 43758.5453123); } 10float vnoise(vec2 p){ 11 vec2 i = floor(p), f = fract(p); 12 vec2 u = f * f * (3.0 - 2.0 * f); 13 return mix(mix(hash(i), hash(i + vec2(1.0, 0.0)), u.x), 14 mix(hash(i + vec2(0.0, 1.0)), hash(i + vec2(1.0, 1.0)), u.x), u.y); 15} 16void main(){ 17 vec2 uv = gl_FragCoord.xy / u_resolution; 18 float ar = u_resolution.x / max(u_resolution.y, 1.0); 19 float t = u_time * u_speed; 20 vec2 w = vec2(vnoise(uv * 1.5 + vec2(0.0, t * 0.6)), 21 vnoise(uv * 1.5 + vec2(7.3, -t * 0.5))) - 0.5; 22 vec2 p = vec2((uv.x + w.x * u_warp) * ar, uv.y + w.y * u_warp); 23 vec2 tv = u_travel * vec2(ar * 0.5, 1.0); 24 vec2 k0 = vec2(0.10 * ar, 0.30) + tv * vec2(sin(t * 0.83 + 0.0), cos(t * 0.61 + 1.1)); 25 vec2 k1 = vec2(0.32 * ar, 0.74) + tv * vec2(sin(t * 0.55 + 2.3), cos(t * 0.77 + 0.4)); 26 vec2 k2 = vec2(0.54 * ar, 0.22) + tv * vec2(sin(t * 0.71 + 4.1), cos(t * 0.49 + 2.7)); 27 vec2 k3 = vec2(0.76 * ar, 0.72) + tv * vec2(sin(t * 0.44 + 1.7), cos(t * 0.88 + 3.9)); 28 vec2 k4 = vec2(0.95 * ar, 0.34) + tv * vec2(sin(t * 0.66 + 5.2), cos(t * 0.53 + 0.9)); 29 float e = 0.0022; 30 float w0 = 1.0 / (pow(distance(p, k0), u_soft) + e); 31 float w1 = 1.0 / (pow(distance(p, k1), u_soft) + e); 32 float w2 = 1.0 / (pow(distance(p, k2), u_soft) + e); 33 float w3 = 1.0 / (pow(distance(p, k3), u_soft) + e); 34 float w4 = 1.0 / (pow(distance(p, k4), u_soft) + e); 35 float ws = w0 + w1 + w2 + w3 + w4; 36 vec3 col = (u_c0 * w0 + u_c1 * w1 + u_c2 * w2 + u_c3 * w3 + u_c4 * w4) / ws; 37 float Y = dot(col, vec3(0.2126, 0.7152, 0.0722)); 38 col = clamp(Y + (col - Y) * u_chroma, 0.0, 1.0); 39 col = mix(col, u_base, u_veil); 40 col += (hash(gl_FragCoord.xy + fract(u_time)) - 0.5) * u_grain; 41 vec2 d = (uv - 0.5) * vec2(ar, 1.0); 42 gl_FragColor = vec4(col, mix(1.0, smoothstep(0.72, 0.12, length(d)), u_fade)); 43}`,i=null,l="uninitialized",u=null,c=[],s=0,f=0;function v(e){return[parseInt(e.slice(1,3),16)/255,parseInt(e.slice(3,5),16)/255,parseInt(e.slice(5,7),16)/255]}function d(e,t,r){let n=e.createShader(t);return n?(e.shaderSource(n,r),e.compileShader(n),e.getShaderParameter(n,e.COMPILE_STATUS))?n:(console.error(e.getShaderInfoLog(n)),null):null}function h(e){let t=d(e,e.VERTEX_SHADER,"attribute vec2 a; void main(){ gl_Position = vec4(a, 0.0, 1.0); }"),r=d(e,e.FRAGMENT_SHADER,o);if(!t||!r)return null;let n=e.createProgram();if(!n)return null;e.attachShader(n,t),e.attachShader(n,r),e.linkProgram(n),e.useProgram(n);let a=e.createBuffer();e.bindBuffer(e.ARRAY_BUFFER,a),e.bufferData(e.ARRAY_BUFFER,new Float32Array([-1,-1,3,-1,-1,3]),e.STATIC_DRAW);let i=e.getAttribLocation(n,"a");e.enableVertexAttribArray(i),e.vertexAttribPointer(i,2,e.FLOAT,!1,0,0);let l=t=>e.getUniformLocation(n,t),u={resolution:l("u_resolution"),time:l("u_time"),base:l("u_base"),veil:l("u_veil"),speed:l("u_speed"),soft:l("u_soft"),travel:l("u_travel"),warp:l("u_warp"),fade:l("u_fade"),grain:l("u_grain"),chroma:l("u_chroma"),colors:[l("u_c0"),l("u_c1"),l("u_c2"),l("u_c3"),l("u_c4")]};return e.uniform1f(u.veil,.06),e.uniform1f(u.soft,3.2),e.uniform1f(u.fade,0),e.uniform1f(u.grain,.004),e.uniform1f(u.chroma,1.35),e.uniform1f(u.speed,1),u}function m(){null!==u&&(clearTimeout(u),u=null)}function p(){for(let e of(m(),w(),c))!function(e){let t=e.canvas.width||Math.max(1,Math.round(.5*e.canvas.clientWidth)),r=e.canvas.height||Math.max(1,Math.round(.5*e.canvas.clientHeight));e.canvas.width!==t&&(e.canvas.width=t),e.canvas.height!==r&&(e.canvas.height=r);let a=function(e,t,r){let n=105*Math.PI/180,a=Math.sin(n),o=-Math.cos(n),i=(Math.abs(t*a)+Math.abs(r*o))/2,l=t/2,u=r/2;return{x0:l-a*i,y0:u-o*i,x1:l+a*i,y1:u+o*i}}(0,t,r),o=e.context.createLinearGradient(a.x0,a.y0,a.x1,a.y1),[i,l,u,c,s]=e.palette.c,[f,v,d,h,m]=n;o.addColorStop(f,i),o.addColorStop(v,l),o.addColorStop(d,u),o.addColorStop(h,c),o.addColorStop(m,s),e.context.fillStyle=o,e.context.fillRect(0,0,t,r)}(e),e.observer?.disconnect(),e.observer=null,e.destroyed=!0;c.length=0,i=null,l="unavailable"}function _(){for(let e of c)if(e.visible)return!0;return!1}function w(){s&&cancelAnimationFrame(s),s=0,f=0}function g(){!s&&"ready"===l&&_()&&(f=0,s=requestAnimationFrame(x))}function b(e,t,r,n){var o,i;let{canvas:l,gl:u,uniforms:c}=t,s=Math.min(.1,(r-e.last)/1e3);e.last=r;let f=e.stirStartedAt?(o=r-e.stirStartedAt)<=0?1:Math.exp(-o/800):0;e.stirStartedAt&&f<.01&&(e.stirStartedAt=0);let d=a(e.playing,e.idleSpeed)*(1+4*f);i=e.speed,e.speed=i+(d-i)*Math.min(1,s*(f>.01?8:3)),n||(e.phase+=s*e.speed);let h=Math.max(1,Math.round(.5*e.canvas.clientWidth)),m=Math.max(1,Math.round(.5*e.canvas.clientHeight));(e.canvas.width!==h||e.canvas.height!==m)&&(e.canvas.width=h,e.canvas.height=m),(l.width!==h||l.height!==m)&&(l.width=h,l.height=m,u.viewport(0,0,h,m)),u.uniform2f(c.resolution,h,m),u.uniform3fv(c.colors[0],v(e.palette.c[0])),u.uniform3fv(c.colors[1],v(e.palette.c[1])),u.uniform3fv(c.colors[2],v(e.palette.c[2])),u.uniform3fv(c.colors[3],v(e.palette.c[3])),u.uniform3fv(c.colors[4],v(e.palette.c[4])),u.uniform3fv(c.base,v(e.palette.base)),u.uniform1f(c.travel,e.travel),u.uniform1f(c.warp,e.warp+.2*f),u.uniform1f(c.time,e.phase),u.drawArrays(u.TRIANGLES,0,3),e.context.clearRect(0,0,h,m),e.context.drawImage(l,0,0)}function x(e){let t="ready"===l?i:null;if(!t||!_()){s=0,f=0;return}if(s=requestAnimationFrame(x),!(e-f<33))for(let r of(f=e,c))r.visible&&!document.hidden&&b(r,t,e,!1)}function y(e,t,r={}){let n=function(){if("ready"===l)return i;if("unavailable"===l)return null;let e="lost"===l,t=function e(){if("undefined"==typeof document)return null;let t=document.createElement("canvas"),r=t.getContext("webgl",{antialias:!1,depth:!1,stencil:!1,powerPreference:"low-power",preserveDrawingBuffer:!0});if(!r)return null;let n=h(r);return n?(t.addEventListener("webglcontextlost",r=>{r.preventDefault(),i?.canvas===t&&(l="lost",c.length>0&&(m(),u=setTimeout(()=>{if(u=null,"lost"!==l||0===c.length)return;let t=e();t?(i=t,l="ready",g()):p()},3e3)))}),t.addEventListener("webglcontextrestored",()=>{let e=i;if(!e||e.canvas!==t||"lost"!==l)return;let n=h(r);n?(e.uniforms=n,l="ready",m(),g()):p()}),{canvas:t,gl:r,uniforms:n}):null}();return t?(i=t,l="ready",e&&(m(),g()),t):(p(),null)}();if(!n)return null;let o=e.getContext("2d");if(!o)return null;let s=r.reducedMotion??("function"==typeof window.matchMedia&&window.matchMedia("(prefers-reduced-motion: reduce)").matches),f=performance.now(),v=r.tuning?.idleSpeed??.6,d={canvas:e,context:o,palette:t,idleSpeed:v,travel:r.tuning?.travel??.24,warp:r.tuning?.warp??.24,phase:40*Math.random(),playing:!1,speed:a(!1,v),stirStartedAt:0,visible:!0,last:f,observer:null,destroyed:!1};return(b(d,n,f,!0),s)?{setPlaying(){},destroy(){}}:(c.push(d),"undefined"!=typeof IntersectionObserver&&(d.observer=new IntersectionObserver(e=>{for(let t of e)d.visible=t.isIntersecting;d.visible&&g()}),d.observer.observe(e)),g(),{setPlaying(e){!d.destroyed&&(d.playing=e,e&&(d.stirStartedAt=performance.now()))},destroy(){if(d.destroyed)return;d.destroyed=!0,d.observer?.disconnect();let e=c.indexOf(d);-1!==e&&c.splice(e,1),0===c.length&&w()}})}}}]);
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.