1(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[3969],{23969:(e,t,r)=>{"use strict";r.d(t,{exportGlbToGifBlob:()=>o});var n=r(35450),i=r(84960),a=r(39543),l=r(8090);async function o(e){let{modelUrl:t,size:r=320,frameCount:o=16,frameDelayMs:f=312,colorCount:c=128,fitOffset:u=1.08}=e,s=new i.Z58;s.background=null;let w=new i.ubm(35,1,.01,100);w.position.set(0,0,3.6);let y=new a.JeP({antialias:!0,alpha:!0,preserveDrawingBuffer:!0,powerPreference:"high-performance"});y.setPixelRatio(1),y.setSize(r,r,!1),y.setClearColor(0,0),y.outputColorSpace=i.er$,y.toneMapping=i.FV,y.toneMappingExposure=1;let h=document.createElement("canvas");h.width=r,h.height=r;let g=h.getContext("2d",{willReadFrequently:!0});if(!g)throw y.dispose(),Error("Canvas is not available");let d=null;try{s.add(new i.dth(0xffffff,2236962,2.2));let e=new i.ZyN(0xffffff,2.5);e.position.set(3,4,5),s.add(e);let a=new i.ZyN(0xffffff,1.2);a.position.set(-4,2,-3),s.add(a);let h=await function(e,t){let r=null,n=new Promise((e,t)=>{r=setTimeout(()=>{t(Error("3D model load timed out"))},3e4)});return Promise.race([function(e){let t=new l.B;return t.setCrossOrigin("anonymous"),new Promise((r,n)=>{t.load(e,r,void 0,n)})}(e),n]).finally(()=>{r&&clearTimeout(r)})}(t,3e4);d=function(e){e.updateMatrixWorld(!0);let t=new i.NRn().setFromObject(e),r=new i.Pq0;t.getCenter(r),e.position.sub(r);let n=new i.YJl;return n.add(e),n}(h.scene),s.add(d),function(e,t,r){t.updateMatrixWorld(!0);let n=new i.NRn().setFromObject(t).getBoundingSphere(new i.iyt),a=Math.max(n.radius,.001)/Math.sin(i.cj9.degToRad(e.fov)/2)*r;e.position.set(n.center.x,n.center.y,n.center.z+a),e.near=Math.max(a/100,.01),e.far=100*a,e.lookAt(n.center),e.updateProjectionMatrix()}(w,d,u);let b=(0,n.GIFEncoder)({initialCapacity:r*r*Math.max(o,1)});for(let e=0;e<o;e+=1){let t=e/o;d.rotation.y=t*Math.PI*2,y.clear(!0,!0,!0),y.render(s,w),g.clearRect(0,0,r,r),g.drawImage(y.domElement,0,0,r,r);let i=g.getImageData(0,0,r,r),a=(0,n.quantize)(i.data,c,{format:"rgba4444",oneBitAlpha:24,clearAlpha:!0,clearAlphaThreshold:24,clearAlphaColor:0}),l=(0,n.applyPalette)(i.data,a,"rgba4444"),u=a.findIndex(e=>{var t;return(null!=(t=e[3])?t:255)<128});b.writeFrame(l,r,r,{palette:a,delay:f,repeat:0,transparent:u>=0,transparentIndex:u>=0?u:0,dispose:2*(u>=0)})}return b.finish(),new Blob([b.bytes()],{type:"image/gif"})}finally{d&&d.traverse(e=>{if(e instanceof i.eaF)for(let t of(e.geometry.dispose(),Array.isArray(e.material)?e.material:[e.material])){for(let e of Object.values(t))e instanceof i.gPd&&e.dispose();t.dispose()}}),y.dispose()}}},35450:(e,t)=>{var r=Object.defineProperty;r(t,"__esModule",{value:!0}),((e,t)=>{for(var n in t)r(e,n,{get:t[n],enumerable:!0})})(t,{GIFEncoder:()=>A,applyPalette:()=>b,default:()=>P,nearestColor:()=>v,nearestColorIndex:()=>p,nearestColorIndexWithDistance:()=>B,prequantize:()=>d,quantize:()=>y,snapColorsToPalette:()=>m});var n={trailer:59};function i(e=256){let t=0,r=new Uint8Array(e);return{get buffer(){return r.buffer},reset(){t=0},bytesView:()=>r.subarray(0,t),bytes:()=>r.slice(0,t),writeByte(e){n(t+1),r[t]=e,t++},writeBytes(e,i=0,a=e.length){n(t+a);for(let n=0;n<a;n++)r[t++]=e[n+i]},writeBytesView(e,i=0,a=e.byteLength){n(t+a),r.set(e.subarray(i,i+a),t),t+=a}};function n(e){var n=r.length;if(n>=e)return;e=Math.max(e,n*(n<1048576?2:1.125)>>>0),0!=n&&(e=Math.max(e,256));let i=r;r=new Uint8Array(e),t>0&&r.set(i.subarray(0,t),0)}}var a=[0,1,3,7,15,31,63,127,255,511,1023,2047,4095,8191,16383,32767,65535],l=function(e,t,r,n,l=i(512),o=new Uint8Array(256),f=new Int32Array(5003),c=new Int32Array(5003)){let u=f.length,s=Math.max(2,n);o.fill(0),c.fill(0),f.fill(-1);let w=0,y=0,h=s+1,g=!1,d=h,b=(1<<d)-1,m=1<<h-1,p=m+1,B=m+2,v=0,A=r[0],M=0;for(let e=u;e<65536;e*=2)++M;M=8-M,l.writeByte(s),C(m);let x=r.length;for(let e=1;e<x;e++)e:{let t=r[e],n=(t<<12)+A,i=t<<M^A;if(f[i]===n){A=c[i];break e}let a=0===i?1:u-i;for(;f[i]>=0;)if((i-=a)<0&&(i+=u),f[i]===n){A=c[i];break e}C(A),A=t,B<4096?(c[i]=B++,f[i]=n):(f.fill(-1),B=m+2,g=!0,C(m))}return C(A),C(p),l.writeByte(0),l.bytesView();function C(e){for(w&=a[y],y>0?w|=e<<y:w=e,y+=d;y>=8;)o[v++]=255&w,v>=254&&(l.writeByte(v),l.writeBytesView(o,0,v),v=0),w>>=8,y-=8;if((B>b||g)&&(g?(b=(1<<(d=h))-1,g=!1):b=12==++d?1<<d:(1<<d)-1),e==p){for(;y>0;)o[v++]=255&w,v>=254&&(l.writeByte(v),l.writeBytesView(o,0,v),v=0),w>>=8,y-=8;v>0&&(l.writeByte(v),l.writeBytesView(o,0,v),v=0)}}};function o(e,t,r){return e<<8&63488|t<<2&992|r>>3}function f(e,t,r,n){return e>>4|240&t|(240&r)<<4|(240&n)<<8}function c(e,t,r){return e>>4<<8|240&t|r>>4}function u(e,t,r){return e<t?t:e>r?r:e}function s(e,t,r){var n=0,i=1e100;let a=e[t],l=a.cnt,o=a.ac,f=a.rc,c=a.gc,u=a.bc;for(var s=a.fw;0!=s;
1s=e[s].fw){let t=e[s],a=t.cnt,b=l*a/(l+a);if(b>=i)continue;var w,y,h,g,d=0;if(r&&(d+=b*((w=t.ac-o)*w))>=i)continue;if(!((d+=b*((y=t.rc-f)*y))>=i))!((d+=b*((h=t.gc-c)*h))>=i)&&((d+=b*((g=t.bc-u)*g))>=i||(i=d,n=s))}a.err=i,a.nn=n}function w(){return{ac:0,rc:0,gc:0,bc:0,cnt:0,nn:0,fw:0,bk:0,tm:0,mtm:0,err:0}}function y(e,t,r={}){let{format:n="rgb565",clearAlpha:i=!0,clearAlphaColor:a=0,clearAlphaThreshold:l=0,oneBitAlpha:h=!1}=r;if(!e||!e.buffer||!(e instanceof Uint8Array)&&!(e instanceof Uint8ClampedArray))throw Error("quantize() expected RGBA Uint8Array data");let g=new Uint32Array(e.buffer),d=!1!==r.useSqrt,b="rgba4444"===n,m=function(e,t){let r=Array("rgb444"===t?4096:65536),n=e.length;if("rgba4444"===t)for(let t=0;t<n;++t){let n=e[t],i=n>>24&255,a=n>>16&255,l=n>>8&255,o=255&n,c=f(o,l,a,i),u=c in r?r[c]:r[c]=w();u.rc+=o,u.gc+=l,u.bc+=a,u.ac+=i,u.cnt++}else if("rgb444"===t)for(let t=0;t<n;++t){let n=e[t],i=n>>16&255,a=n>>8&255,l=255&n,o=c(l,a,i),f=o in r?r[o]:r[o]=w();f.rc+=l,f.gc+=a,f.bc+=i,f.cnt++}else for(let t=0;t<n;++t){let n=e[t],i=n>>16&255,a=n>>8&255,l=255&n,f=o(l,a,i),c=f in r?r[f]:r[f]=w();c.rc+=l,c.gc+=a,c.bc+=i,c.cnt++}return r}(g,n),p=m.length,B=p-1,v=new Uint32Array(p+1);for(var A=0,M=0;M<p;++M){let e=m[M];if(null!=e){var x=1/e.cnt;b&&(e.ac*=x),e.rc*=x,e.gc*=x,e.bc*=x,m[A++]=e}}t*t/A<.022&&(d=!1);for(var M=0;M<A-1;++M)m[M].fw=M+1,m[M+1].bk=M,d&&(m[M].cnt=Math.sqrt(m[M].cnt));for(d&&(m[M].cnt=Math.sqrt(m[M].cnt)),M=0;M<A;++M){s(m,M,!1);var C=m[M].err;for(E=++v[0];E>1&&!(m[P=v[U=E>>1]].err<=C);E=U)v[E]=P;v[E]=M}var k=A-t;for(M=0;M<k;){for(;;){var P,E,U,I,F=v[1];if((I=m[F]).tm>=I.mtm&&m[I.nn].mtm<=I.tm)break;I.mtm==B?F=v[1]=v[v[0]--]:(s(m,F,!1),I.tm=M);var C=m[F].err;for(E=1;(U=E+E)<=v[0]&&(U<v[0]&&m[v[U]].err>m[v[U+1]].err&&U++,!(C<=m[P=v[U]].err));E=U)v[E]=P;v[E]=F}var q=m[I.nn],V=I.cnt,R=q.cnt,x=1/(V+R);b&&(I.ac=x*(V*I.ac+R*q.ac)),I.rc=x*(V*I.rc+R*q.rc),I.gc=x*(V*I.gc+R*q.gc),I.bc=x*(V*I.bc+R*q.bc),I.cnt+=q.cnt,I.mtm=++M,m[q.bk].fw=q.fw,m[q.fw].bk=q.bk,q.mtm=B}let z=[];var G=0;for(M=0;;++G){let e=u(Math.round(m[M].rc),0,255),t=u(Math.round(m[M].gc),0,255),r=u(Math.round(m[M].bc),0,255),n=255;b&&(n=u(Math.round(m[M].ac),0,255),h&&(n=n<=("number"==typeof h?h:127)?0:255),i&&n<=l&&(e=t=r=a,n=0));let o=b?[e,t,r,n]:[e,t,r];if(!function(e,t){for(let r=0;r<e.length;r++){let n=e[r],i=n[0]===t[0]&&n[1]===t[1]&&n[2]===t[2],a=!(n.length>=4)||!(t.length>=4)||n[3]===t[3];if(i&&a)return!0}return!1}(z,o)&&z.push(o),0==(M=m[M].fw))break}return z}function h(e,t){var r,n=0;for(r=0;r<e.length;r++){let i=e[r]-t[r];n+=i*i}return n}function g(e,t){return t>1?Math.round(e/t)*t:e}function d(e,{roundRGB:t=5,roundAlpha:r=10,oneBitAlpha:n=null}={}){let i=new Uint32Array(e.buffer);for(let e=0;e<i.length;e++){let a=i[e],l=a>>24&255,o=a>>16&255,f=a>>8&255,c=255&a;l=g(l,r),n&&(l=l<=("number"==typeof n?n:127)?0:255),c=g(c,t),f=g(f,t),o=g(o,t),i[e]=l<<24|o<<16|f<<8|(0|c)}}function b(e,t,r="rgb565"){if(!e||!e.buffer||!(e instanceof Uint8Array)&&!(e instanceof Uint8ClampedArray))throw Error("quantize() expected RGBA Uint8Array data");if(t.length>256)throw Error("applyPalette() only works with 256 colors or less");let n=new Uint32Array(e.buffer),i=n.length,a=new Uint8Array(i),l=Array("rgb444"===r?4096:65536);if("rgba4444"===r)for(let e=0;e<i;e++){let r=n[e],i=r>>24&255,o=r>>16&255,c=r>>8&255,u=255&r,s=f(u,c,o,i),w=s in l?l[s]:l[s]=function(e,t,r,n,i){let a=0,l=1e100;for(let o=0;o<i.length;o++){let f=i[o],c=function(e){return e*e}(f[3]-n);!(c>l||(c+=function(e){return e*e}(f[0]-e))>l||(c+=function(e){return e*e}(f[1]-t))>l)&&((c+=function(e){return e*e}(f[2]-r))>l||(l=c,a=o))}return a}(u,c,o,i,t);a[e]=w}else{let e="rgb444"===r?c:o;for(let r=0;r<i;r++){let i=n[r],o=i>>16&255,f=i>>8&255,c=255&i,u=e(c,f,o),s=u in l?l[u]:l[u]=function(e,t,r,n){let i=0,a=1e100;for(let l=0;l<n.length;l++){let o=n[l],f=function(e){return e*e}(o[0]-e);!(f>a||(f+=function(e){return e*e}(o[1]-t))>a)&&((f+=function(e){return e*e}(o[2]-r))>a||(a=f,i=l))}return i}(c,f,o,t);a[r]=s}}return a}function m(e,t,r=5){if(!e.length||!t.length)return;let n=e.map(e=>e.slice(0,3)),i=r*r,a=e[0].length;for(let r=0;r<t.length;r++){let l=t[r],o=B(n,(l=l.length<a?[l[0],l[1],l[2],255]:l.length>a?l.slice(0,3):l.slice()).slice(0,3),h),f=o[0],c=o[1];c>0&&c<=i&&(e[f]=l)}}function p(e,t,r=h){let n=1/0,i=-1;for(let a=0;a<e.length;a++){let l=r(t,e[a]);l<n&&(n=l,i=a)}return i}function B(e,t,r=h){let n=1/0,i=-1;for(let a=0;a<e.length;a++){let l=r(t,e[a]);l<n&&(n=l,i=a)}return[i,n]}function v(e,t,r=h){return e[p(e,t,r)]}function A(e={}){let{initialCapacity:t=4096,auto:r=!0}=e,a=i(t),o=new Uint8Array(256),f=new Int32Array(5003),c=new Int32Array(5003),u=!1;return{reset(){a.reset(),u=!1},finish(){a.writeByte(n.trailer)},bytes:()=>a.bytes(),bytesView:()=>a.bytesView(),get buffer(){return a.buffer},get stream(){return a},writeHeader:s,writeFrame(e,t,n,i={}){var w,y,h,g,d,b,m,p,B;let{transparent:v=!1,transparentIndex:A=0,delay:P=0,palette:E=null,repeat:U=0,
1colorDepth:I=8,dispose:F=-1}=i,q=!1;if(r?u||(q=!0,s(),u=!0):q=!!i.first,t=Math.max(0,Math.floor(t)),n=Math.max(0,Math.floor(n)),q){if(!E)throw Error("First frame must include a { palette } option");(function(e,t,r,n,i=8){let a=k(n.length)-1;x(e,t),x(e,r),e.writeBytes([128|i-1<<4|a,0,0])})(a,t,n,E,I),M(a,E),U>=0&&(w=a,y=U,w.writeByte(33),w.writeByte(255),w.writeByte(11),C(w,"NETSCAPE2.0"),w.writeByte(3),w.writeByte(1),x(w,y),w.writeByte(0))}h=a,g=F,d=Math.round(P/10),b=v,m=A,h.writeByte(33),h.writeByte(249),h.writeByte(4),m<0&&(m=0,b=!1),b?(p=1,B=2):(p=0,B=0),g>=0&&(B=7&g),B<<=2,h.writeByte(0|B|p),x(h,d),h.writeByte(m||0),h.writeByte(0);let V=!!E&&!q;(function(e,t,r,n){if(e.writeByte(44),x(e,0),x(e,0),x(e,t),x(e,r),n){let t=k(n.length)-1;e.writeByte(128|t)}else e.writeByte(0)})(a,t,n,V?E:null),V&&M(a,E),function(e,t,r,n,i=8,a,o,f){l(r,n,t,i,e,a,o,f)}(a,e,t,n,I,o,f,c)}};function s(){C(a,"GIF89a")}}function M(e,t){let r=1<<k(t.length);for(let n=0;n<r;n++){let r=[0,0,0];n<t.length&&(r=t[n]),e.writeByte(r[0]),e.writeByte(r[1]),e.writeByte(r[2])}}function x(e,t){e.writeByte(255&t),e.writeByte(t>>8&255)}function C(e,t){for(var r=0;r<t.length;r++)e.writeByte(t.charCodeAt(r))}function k(e){return Math.max(Math.ceil(Math.log2(e)),1)}var P=A}}]);
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.