1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[2569],{32569:function(e,t,o){o.r(t),o.d(t,{default:function(){return f}});var r=o(52322),i=o(2784),n=o(82175),a=o(96995);let s=new n.SUY,l=function(e=6){let t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",o="";for(let r=0;r<e;r++){let e=Math.floor(Math.random()*t.length);o+=t.charAt(e)}return o}();class c{_ref;_speed=-1;_horizontalPressure=-1;_verticalPressure=-1;_waveFrequencyX=-1;_waveFrequencyY=-1;_waveAmplitude=-1;_shadows=-1;_highlights=-1;_saturation=-1;_brightness=-1;_grainScale=-1;_grainIntensity=-1;_grainSpeed=-1;_colorBlending=-1;_colors=[];_wireframe=!1;_backgroundColor="#FFFFFF";_backgroundAlpha=1;requestRef=-1;sizeObserver;sceneState;constructor(e){let{ref:t,speed:o=4,horizontalPressure:r=3,verticalPressure:i=3,waveFrequencyX:a=5,waveFrequencyY:l=5,waveAmplitude:c=3,colors:v,highlights:g=4,shadows:_=4,colorSaturation:m=0,colorBrightness:x=1,colorBlending:f=5,grainScale:d=2,grainIntensity:y=.55,grainSpeed:p=.1,wireframe:w=!1,backgroundColor:b="#FFFFFF",backgroundAlpha:z=1,resolution:P=1,seed:F}=e;this._ref=t,this.destroy=this.destroy.bind(this),this._initScene=this._initScene.bind(this),this._buildMaterial=this._buildMaterial.bind(this),this.speed=o,this.horizontalPressure=r,this.verticalPressure=i,this.waveFrequencyX=a,this.waveFrequencyY=l,this.waveAmplitude=c,this.colorBlending=f,this.grainScale=d,this.grainIntensity=y,this.grainSpeed=p,this.colors=v,this.shadows=_,this.highlights=g,this.colorSaturation=m,this.colorBrightness=x,this.wireframe=w,this.backgroundColor=b,this.backgroundAlpha=z,this.sceneState=this._initScene(P);let S=void 0!==F?F:function(){let e=new Date;return 60*e.getMinutes()+e.getSeconds()}(),q=()=>{let{renderer:e,camera:o,scene:r,meshes:i}=this.sceneState;Math.floor(10*S)%5==0&&h(t),e.setClearColor(this._backgroundColor,this._backgroundAlpha),i.forEach(e=>{let t=this._ref.width,o=this._ref.height,r=[...this._colors.map(e=>{let t=new n.Ilk;return t.setStyle(e.color,""),{is_active:e.enabled,color:t,influence:e.influence}}),...Array.from({length:5-this._colors.length}).map(()=>({is_active:!1,color:new n.Ilk(0)}))];S+=s.getDelta()*this._speed,e.material.uniforms.u_time.value=S,e.material.uniforms.u_resolution={value:new n.FM8(t,o)},e.material.uniforms.u_color_pressure={value:new n.FM8(this._horizontalPressure,this._verticalPressure)},e.material.uniforms.u_wave_frequency_x={value:this._waveFrequencyX},e.material.uniforms.u_wave_frequency_y={value:this._waveFrequencyY},e.material.uniforms.u_wave_amplitude={value:this._waveAmplitude},e.material.uniforms.u_plane_width={value:50},e.material.uniforms.u_plane_height={value:80},e.material.uniforms.u_color_blending={value:this._colorBlending},e.material.uniforms.u_colors={value:r},e.material.uniforms.u_colors_count={value:5},e.material.uniforms.u_shadows={value:this._shadows},e.material.uniforms.u_highlights={value:this._highlights},e.material.uniforms.u_saturation={value:this._saturation},e.material.uniforms.u_brightness={value:this._brightness},e.material.uniforms.u_grain_intensity={value:this._grainIntensity},e.material.uniforms.u_grain_speed={value:this._grainSpeed},e.material.uniforms.u_grain_scale={value:this._grainScale},e.material.wireframe=this._wireframe}),e.render(r,o),this.requestRef=requestAnimationFrame(q)},C=()=>{let{renderer:e}=this.sceneState,t=e.domElement,o=t.clientWidth,r=t.clientHeight;this.sceneState.renderer.setSize(o,r,!1),u(this.sceneState.camera,o,r)};this.sizeObserver=new ResizeObserver(e=>{C()}),this.sizeObserver.observe(t),q()}destroy(){this&&(cancelAnimationFrame(this.requestRef),this.sizeObserver.disconnect())}set speed(e){this._speed=e/20}set horizontalPressure(e){this._horizontalPressure=e/4}set verticalPressure(e){this._verticalPressure=e/4}set waveFrequencyX(e){this._waveFrequencyX=.04*e}set waveFrequencyY(e){this._waveFrequencyY=.04*e}set waveAmplitude(e){this._waveAmplitude=.75*e}set colors(e){this._colors=e}set highlights(e){this._highlights=e/100}set shadows(e){this._shadows=e/100}set colorSaturation(e){this._saturation=e/10}
1set colorBrightness(e){this._brightness=e}set colorBlending(e){this._colorBlending=e/10}set grainScale(e){this._grainScale=0==e?1:e}set grainIntensity(e){this._grainIntensity=e}set grainSpeed(e){this._grainSpeed=e}set wireframe(e){this._wireframe=e}set resolution(e){this.sceneState=this._initScene(e)}set backgroundColor(e){this._backgroundColor=e}set backgroundAlpha(e){this._backgroundAlpha=e}_initScene(e){let t=this._ref.width,o=this._ref.height,r=new a.CP7({alpha:!0,canvas:this._ref});r.setClearColor(16711680,.5),r.setSize(t,o,!1);let i=[],s=new n.xsS,l=this._buildMaterial(t,o),c=new n._12(50,80,240*e,240*e),v=new n.Kj0(c,l);v.rotation.x=-Math.PI/3.5,v.position.z=-1,i.push(v),s.add(v);let g=new n.iKG(0,0,0,0,0,0);return g.position.z=5,u(g,t,o),{renderer:r,camera:g,scene:s,meshes:i,resolution:e}}_buildMaterial(e,t){let o=[...this._colors.map(e=>({is_active:e.enabled,color:new n.Ilk(e.color),influence:e.influence})),...Array.from({length:5-this._colors.length}).map(()=>({is_active:!1,color:new n.Ilk(0)}))],r={u_time:{value:0},u_color_pressure:{value:new n.FM8(this._horizontalPressure,this._verticalPressure)},u_wave_frequency_x:{value:this._waveFrequencyX},u_wave_frequency_y:{value:this._waveFrequencyY},u_wave_amplitude:{value:this._waveAmplitude},u_resolution:{value:new n.FM8(e,t)},u_colors:{value:o},u_colors_count:{value:this._colors.length},u_plane_width:{value:50},u_plane_height:{value:80},u_shadows:{value:this._shadows},u_highlights:{value:this._highlights},u_grain_intensity:{value:this._grainIntensity},u_grain_scale:{value:this._grainScale},u_grain_speed:{value:this._grainSpeed}},i=new n.jyz({uniforms:r,vertexShader:v()+g()+_()+` 2 3void main() { 4 5 vUv = uv; 6 7 v_displacement_amount = cnoise( vec3( 8 u_wave_frequency_x * position.x + u_time, 9 u_wave_frequency_y * position.y + u_time, 10 u_time 11 )); 12 13 vec3 color; 14 15 // float t = mod(u_base_color, 100.0); 16 color = u_colors[0].color; 17 18 vec2 noise_cord = vUv * u_color_pressure; 19 20 const float minNoise = .0; 21 const float maxNoise = .9; 22 23 for (int i = 1; i < u_colors_count; i++) { 24 25 if(u_colors[i].is_active == 1.0){ 26 float noiseFlow = (1. + float(i)) / 30.; 27 float noiseSpeed = (1. + float(i)) * 0.11; 28 float noiseSeed = 13. + float(i) * 7.; 29 30 int reverseIndex = u_colors_count - i; 31 32 float noise = snoise( 33 vec3( 34 noise_cord.x * u_color_pressure.x + u_time * noiseFlow * 2., 35 noise_cord.y * u_color_pressure.y, 36 u_time * noiseSpeed 37 ) + noiseSeed 38 ) - (.1 * float(i)) + (.5 * u_color_blending); 39 40 noise = clamp(minNoise, maxNoise + float(i) * 0.02, noise); 41 vec3 nextColor = u_colors[i].color; 42 color = mix(color, nextColor, smoothstep(0.0, u_color_blending, noise)); 43 44 // vec3 colorOklab = oklab2rgb(color); 45 // vec3 nextColorOklab = oklab2rgb(nextColor); 46 // vec3 mixColor = mix(colorOklab, nextColorOklab, smoothstep(0.0, u_color_blending, noise)); 47 // color = rgb2oklab(mixColor); 48 49 } 50 51 } 52 53 v_color = color; 54 55 vec3 newPosition = position + normal * v_displacement_amount * u_wave_amplitude; 56 gl_Position = projectionMatrix * modelViewMatrix * vec4( newPosition, 1.0 ); 57 58 v_new_position = gl_Position; 59} 60`,fragmentShader:v()+_()+g()+` 61float random(vec2 p) { 62 return fract(sin(dot(p, vec2(12.9898,78.233))) * 43758.5453); 63} 64 65float fbm(vec3 x) { 66 float value = 0.0; 67 float amplitude = 0.5; 68 float frequency = 1.0; 69 70 for (int i = 0; i < 4; i++) { 71 value += amplitude * snoise(x * frequency); 72 frequency *= 2.0; 73 amplitude *= 0.5; 74 } 75 return value; 76} 77 78void main(){ 79 vec3 color = v_color; 80 81 color += pow(v_displacement_amount, 1.0) * u_highlights; 82 color -= pow(1.0 - v_displacement_amount, 2.0) * u_shadows; 83 color = saturation(color, 1.0 + u_saturation); 84 color = color * u_brightness; 85 86 // Generate grain using fbm 87 vec2 noiseCoords = gl_FragCoord.xy / u_grain_scale; 88 89 float grain = (u_grain_speed != 0.0) 90 ? fbm(vec3(noiseCoords, u_time * u_grain_speed))
91 : fbm(vec3(noiseCoords, 0.0)); 92 93 // Center the grain around zero 94 grain = grain * 0.5 + 0.5; 95 grain -= 0.5; 96 97 // Apply grain intensity 98 grain *= u_grain_intensity; 99 100 // Add grain to color 101 color += vec3(grain); 102 103 gl_FragColor = vec4(color,1.0); 104} 105`});return i.wireframe=!0,i}}function u(e,t,o){let r=t*o/1e6*4e3/1.5,i=Math.sqrt(t/o*r);e instanceof n.iKG?(e.left=-25,e.right=Math.min((-25+i)/1.5,25),e.top=20,e.bottom=Math.max((20-r/i)/2,-20),e.near=-100,e.far=1e3,e.updateProjectionMatrix()):e instanceof n.cPb&&(e.aspect=t/o,e.updateProjectionMatrix())}let v=()=>` 106precision highp float; 107 108struct Color { 109 float is_active; 110 vec3 color; 111 float value; 112}; 113 114uniform float u_grain_intensity; 115uniform float u_grain_scale; 116uniform float u_grain_speed; 117uniform float u_time; 118 119uniform float u_wave_amplitude; 120uniform float u_wave_frequency_x; 121uniform float u_wave_frequency_y; 122 123uniform vec2 u_color_pressure; 124 125uniform float u_plane_width; 126uniform float u_plane_height; 127 128uniform float u_shadows; 129uniform float u_highlights; 130uniform float u_saturation; 131uniform float u_brightness; 132 133uniform float u_color_blending; 134 135uniform int u_colors_count; 136uniform Color u_colors[5]; 137uniform vec2 u_resolution; 138 139varying vec2 vUv; 140varying vec4 v_new_position; 141varying vec3 v_color; 142varying float v_displacement_amount; 143 144 `,g=()=>` 145 146vec3 mod289(vec3 x) 147{ 148 return x - floor(x * (1.0 / 289.0)) * 289.0; 149} 150 151vec4 mod289(vec4 x) 152{ 153 return x - floor(x * (1.0 / 289.0)) * 289.0; 154} 155 156vec4 permute(vec4 x) 157{ 158 return mod289(((x*34.0)+1.0)*x); 159} 160 161vec4 taylorInvSqrt(vec4 r) 162{ 163 return 1.79284291400159 - 0.85373472095314 * r; 164} 165 166vec3 fade(vec3 t) { 167 return t*t*t*(t*(t*6.0-15.0)+10.0); 168} 169 170float snoise(vec3 v) 171{ 172 const vec2 C = vec2(1.0/6.0, 1.0/3.0) ; 173 const vec4 D = vec4(0.0, 0.5, 1.0, 2.0); 174 175// First corner 176 vec3 i = floor(v + dot(v, C.yyy) ); 177 vec3 x0 = v - i + dot(i, C.xxx) ; 178 179// Other corners 180 vec3 g = step(x0.yzx, x0.xyz); 181 vec3 l = 1.0 - g; 182 vec3 i1 = min( g.xyz, l.zxy ); 183 vec3 i2 = max( g.xyz, l.zxy ); 184 185 // x0 = x0 - 0.0 + 0.0 * C.xxx; 186 // x1 = x0 - i1 + 1.0 * C.xxx; 187 // x2 = x0 - i2 + 2.0 * C.xxx; 188 // x3 = x0 - 1.0 + 3.0 * C.xxx; 189 vec3 x1 = x0 - i1 + C.xxx; 190 vec3 x2 = x0 - i2 + C.yyy; // 2.0*C.x = 1/3 = C.y 191 vec3 x3 = x0 - D.yyy; // -1.0+3.0*C.x = -0.5 = -D.y 192 193// Permutations 194 i = mod289(i); 195 vec4 p = permute( permute( permute( 196 i.z + vec4(0.0, i1.z, i2.z, 1.0 )) 197 + i.y + vec4(0.0, i1.y, i2.y, 1.0 )) 198 + i.x + vec4(0.0, i1.x, i2.x, 1.0 )); 199 200// Gradients: 7x7 points over a square, mapped onto an octahedron. 201// The ring size 17*17 = 289 is close to a multiple of 49 (49*6 = 294) 202 float n_ = 0.142857142857; // 1.0/7.0 203 vec3 ns = n_ * D.wyz - D.xzx; 204 205 vec4 j = p - 49.0 * floor(p * ns.z * ns.z); // mod(p,7*7) 206 207 vec4 x_ = floor(j * ns.z); 208 vec4 y_ = floor(j - 7.0 * x_ ); // mod(j,N) 209 210 vec4 x = x_ *ns.x + ns.yyyy; 211 vec4 y = y_ *ns.x + ns.yyyy; 212 vec4 h = 1.0 - abs(x) - abs(y); 213 214 vec4 b0 = vec4( x.xy, y.xy ); 215 vec4 b1 = vec4( x.zw, y.zw ); 216 217 //vec4 s0 = vec4(lessThan(b0,0.0))*2.0 - 1.0; 218 //vec4 s1 = vec4(lessThan(b1,0.0))*2.0 - 1.0; 219 vec4 s0 = floor(b0)*2.0 + 1.0; 220 vec4 s1 = floor(b1)*2.0 + 1.0; 221 vec4 sh = -step(h, vec4(0.0)); 222 223 vec4 a0 = b0.xzyw + s0.xzyw*sh.xxyy ; 224 vec4 a1 = b1.xzyw + s1.xzyw*sh.zzww ; 225 226 vec3 p0 = vec3(a0.xy,h.x); 227 vec3 p1 = vec3(a0.zw,h.y); 228 vec3 p2 = vec3(a1.xy,h.z); 229 vec3 p3 = vec3(a1.zw,h.w); 230 231//Normalise gradients 232 vec4 norm = taylorInvSqrt(vec4(dot(p0,p0), dot(p1,p1), dot(p2, p2), dot(p3,p3))); 233 p0 *= norm.x; 234 p1 *= norm.y; 235 p2 *= norm.z; 236 p3 *= norm.w; 237 238// Mix final noise value 239 vec4 m = max(0.6 - vec4(dot(x0,x0), dot(x1,x1), dot(x2,x2), dot(x3,x3)), 0.0); 240 m = m * m; 241 return 42.0 * dot( m*m, vec4( dot(p0,x0), dot(p1,x1), 242 dot(p2,x2), dot(p3,x3) ) ); 243} 244 245// Classic Perlin noise 246float cnoise(vec3 P) 247{ 248 vec3 Pi0 = floor(P); // Integer part for indexing 249 vec3 Pi1 = Pi0 + vec3(1.0); // Integer part + 1 250 Pi0 = mod289(Pi0); 251 Pi1 = mod289(Pi1); 252 vec3 Pf0 = fract(P); // Fractional part for interpolation 253 vec3 Pf1 = Pf0 - vec3(1.0); // Fractional part - 1.0 254 vec4 ix = vec4(Pi0.x, Pi1.x, Pi0.x, Pi1.x); 255 vec4 iy = vec4(Pi0.yy, Pi1.yy); 256 vec4 iz0 = Pi0.zzzz; 257 vec4 iz1 = Pi1.zzzz; 258 259 vec4 ixy = permute(permute(ix) + iy); 260 vec4 ixy0 = permute(ixy + iz0); 261 vec4 ixy1 = permute(ixy + iz1); 262 263 vec4 gx0 = ixy0 * (1.0 / 7.0); 264 vec4 gy0 = fract(floor(gx0) * (1.0 / 7.0)) - 0.5; 265 gx0 = fract(gx0); 266 vec4 gz0 = vec4(0.5) - abs(gx0) - abs(gy0); 267 vec4 sz0 = step(gz0, vec4(0.0)); 268 gx0 -= sz0 * (step(0.0, gx0) - 0.5); 269 gy0 -= sz0 * (step(0.0, gy0) - 0.5); 270 271 vec4 gx1 = ixy1 * (1.0 / 7.0); 272 vec4 gy1 = fract(floor(gx1) * (1.0 / 7.0)) - 0.5; 273 gx1 = fract(gx1); 274 vec4 gz1 = vec4(0.5) - abs(gx1) - abs(gy1); 275 vec4 sz1 = step(gz1, vec4(0.0)); 276 gx1 -= sz1 * (step(0.0, gx1) - 0.5); 277 gy1 -= sz1 * (step(0.0, gy1) - 0.5); 278 279 vec3 g000 = vec3(gx0.x,gy0.x,gz0.x); 280 vec3 g100 = vec3(gx0.y,gy0.y,gz0.y); 281 vec3 g010 = vec3(gx0.z,gy0.z,gz0.z); 282 vec3 g110 = vec3(gx0.w,gy0.w,gz0.w); 283 vec3 g001 = vec3(gx1.x,gy1.x,gz1.x); 284 vec3 g101 = vec3(gx1.y,gy1.y,gz1.y); 285 vec3 g011 = vec3(gx1.z,gy1.z,gz1.z); 286 vec3 g111 = vec3(gx1.w,gy1.w,gz1.w); 287 288 vec4 norm0 = taylorInvSqrt(vec4(dot(g000, g000), dot(g010, g010), dot(g100, g100), dot(g110, g110))); 289 g000 *= norm0.x; 290 g010 *= norm0.y; 291 g100 *= norm0.z; 292 g110 *= norm0.w; 293 vec4 norm1 = taylorInvSqrt(vec4(dot(g001, g001), dot(g011, g011), dot(g101, g101), dot(g111, g111))); 294 g001 *= norm1.x; 295 g011 *= norm1.y; 296 g101 *= norm1.z; 297 g111 *= norm1.w; 298 299 float n000 = dot(g000, Pf0); 300 float n100 = dot(g100, vec3(Pf1.x, Pf0.yz)); 301 float n010 = dot(g010, vec3(Pf0.x, Pf1.y, Pf0.z)); 302 float n110 = dot(g110, vec3(Pf1.xy, Pf0.z)); 303 float n001 = dot(g001, vec3(Pf0.xy, Pf1.z)); 304 float n101 = dot(g101, vec3(Pf1.x, Pf0.y, Pf1.z)); 305 float n011 = dot(g011, vec3(Pf0.x, Pf1.yz)); 306 float n111 = dot(g111, Pf1); 307 308 vec3 fade_xyz = fade(Pf0); 309 vec4 n_z = mix(vec4(n000, n100, n010, n110), vec4(n001, n101, n011, n111), fade_xyz.z); 310 vec2 n_yz = mix(n_z.xy, n_z.zw, fade_xyz.y); 311 float n_xyz = mix(n_yz.x, n_yz.y, fade_xyz.x); 312 return 2.2 * n_xyz; 313} 314 315// YUV to RGB matrix 316mat3 yuv2rgb = mat3(1.0, 0.0, 1.13983, 317 1.0, -0.39465, -0.58060,
318 1.0, 2.03211, 0.0); 319 320// RGB to YUV matrix 321mat3 rgb2yuv = mat3(0.2126, 0.7152, 0.0722, 322 -0.09991, -0.33609, 0.43600, 323 0.615, -0.5586, -0.05639); 324 325vec3 oklab2rgb(vec3 linear) 326{ 327 const mat3 im1 = mat3(0.4121656120, 0.2118591070, 0.0883097947, 328 0.5362752080, 0.6807189584, 0.2818474174, 329 0.0514575653, 0.1074065790, 0.6302613616); 330 331 const mat3 im2 = mat3(+0.2104542553, +1.9779984951, +0.0259040371, 332 +0.7936177850, -2.4285922050, +0.7827717662, 333 -0.0040720468, +0.4505937099, -0.8086757660); 334 335 vec3 lms = im1 * linear; 336 337 return im2 * (sign(lms) * pow(abs(lms), vec3(1.0/3.0))); 338} 339 340vec3 rgb2oklab(vec3 oklab) 341{ 342 const mat3 m1 = mat3(+1.000000000, +1.000000000, +1.000000000, 343 +0.396337777, -0.105561346, -0.089484178, 344 +0.215803757, -0.063854173, -1.291485548); 345 346 const mat3 m2 = mat3(+4.076724529, -1.268143773, -0.004111989, 347 -3.307216883, +2.609332323, -0.703476310, 348 +0.230759054, -0.341134429, +1.706862569); 349 vec3 lms = m1 * oklab; 350 351 return m2 * (lms * lms * lms); 352} 353 354 `,_=()=>` 355 356vec3 saturation(vec3 rgb, float adjustment) { 357 const vec3 W = vec3(0.2125, 0.7154, 0.0721); 358 vec3 intensity = vec3(dot(rgb, W)); 359 return mix(intensity, rgb, adjustment); 360} 361 362float saturation(vec3 rgb) 363{ 364 vec4 K = vec4(0.0, -1.0 / 3.0, 2.0 / 3.0, -1.0); 365 vec4 p = mix(vec4(rgb.bg, K.wz), vec4(rgb.gb, K.xy), step(rgb.b, rgb.g)); 366 vec4 q = mix(vec4(p.xyw, rgb.r), vec4(rgb.r, p.yzx), step(p.x, rgb.r)); 367 368 float d = q.x - min(q.w, q.y); 369 float e = 1.0e-10; 370 return abs(6.0 * d + e); 371} 372 373// get saturation of a color in values between 0 and 1 374float getSaturation(vec3 color) { 375 float max = max(color.r, max(color.g, color.b)); 376 float min = min(color.r, min(color.g, color.b)); 377 return (max - min) / max; 378} 379 380vec3 rgb2hsv(vec3 c) 381{ 382 vec4 K = vec4(0.0, -1.0 / 3.0, 2.0 / 3.0, -1.0); 383 vec4 p = mix(vec4(c.bg, K.wz), vec4(c.gb, K.xy), step(c.b, c.g)); 384 vec4 q = mix(vec4(p.xyw, c.r), vec4(c.r, p.yzx), step(p.x, c.r)); 385 386 float d = q.x - min(q.w, q.y); 387 float e = 1.0e-10; 388 return vec3(abs(q.z + (q.w - q.y) / (6.0 * d + e)), d / (q.x + e), q.x); 389} 390 391vec3 hsv2rgb(vec3 c) 392{ 393 vec4 K = vec4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0); 394 vec3 p = abs(fract(c.xxx + K.xyz) * 6.0 - K.www); 395 return c.z * mix(K.xxx, clamp(p - K.xxx, 0.0, 1.0), c.y); 396} 397`,m=e=>{e.id=l,e.href="https://neat.firecms.co",e.target="_blank",e.style.position="absolute",e.style.display="block",e.style.bottom="0",e.style.right="0",e.style.padding="10px",e.style.color="#dcdcdc",e.style.opacity="0.8",e.style.fontFamily="sans-serif",e.style.fontSize="16px",e.style.fontWeight="bold",e.style.textDecoration="none",e.style.zIndex="10000",e.innerHTML="NEAT"},h=e=>{let t=e.parentElement?.getElementsByTagName("a");if(t){for(let e=0;e<t.length;e++)if(t[e].id===l){m(t[e]);return}}let o=document.createElement("a");m(o),e.parentElement?.appendChild(o)},x={colors:[{color:"#FF0069",enabled:!0},{color:"#00EAFF",enabled:!0},{color:"#FFB700",enabled:!0},{color:"#B26AE6",enabled:!0},{color:"#2E0EC7",enabled:!0}],speed:4,horizontalPressure:3,verticalPressure:4,waveFrequencyX:10,waveFrequencyY:0,waveAmplitude:10,shadows:5,highlights:10,colorBrightness:1,colorSaturation:2,wireframe:!1,colorBlending:9,backgroundColor:"#003FFF",backgroundAlpha:1,grainScale:2,grainSparsity:0,grainIntensity:.05,grainSpeed:1,resolution:.5};var f=e=>{let{jsConfig:t,sampleData:o,...n}=e,a=(0,i.useRef)(null);return(0,i.useEffect)(()=>{a.current&&t&&(new c({ref:a.current,...t,...o&&!t?x:{}}).speed=5)},[]),(0,r.jsx)("canvas",{ref:a,style:{width:"100%",height:"100%"},...n})}}}]);
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.