1(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[920],{3432:function(a,b,c){"use strict";c.d(b,{K4:function(){return F},EJ:function(){return G}});var d=c(87462),e=c(81245),f=c(17282),g=c(44532),h=c(43163),i=c(27006),j=c(67294),k=c(2534),l=c(35878),m=c(45697),n=c.n(m);function o(a,b,c){if(c=c||[],!b[0])return a(c);function d(d){return o(a,b.slice(1),c.concat([d]))}return"function"==typeof b[0]?b[0]({results:c,render:d}):(0,j.cloneElement)(b[0],{children:d})}(function(a){return o(a.children,a.components)}).propTypes={children:n().func.isRequired,components:n().arrayOf(n().oneOfType([n().element,n().func])).isRequired};var p=c(3921),q=c(12658);let r=new e.y,s=new e.y,t=[],u=new p.K;class v extends q.Z{constructor(){super(),this.color=new f.I("white"),this.instance={current:void 0},this.instanceKey={current:void 0}}get geometry(){var a;return null==(a=this.instance.current)?void 0:a.geometry}raycast(a,b){let c=this.instance.current;if(!c||!c.geometry||!c.material)return;u.geometry=c.geometry;let d=c.matrixWorld,e=c.userData.instances.indexOf(this.instanceKey);if(-1!==e&&!(e>c.count)){c.getMatrixAt(e,r),s.multiplyMatrices(d,r),u.matrixWorld=s,u.raycast(a,t);for(let f=0,g=t.length;f<g;f++){let h=t[f];h.instanceId=e,h.object=this,b.push(h)}t.length=0}}}let w,x,y=j.createContext(null),z=new e.y,A=new e.y,B=new e.y;new f.I;let C=new g.P,D=new h._,E=new g.P,F=j.forwardRef(({context:a,children:b,...c},e)=>{j.useMemo(()=>(0,k.e)({Position:v}),[]);let f=j.useRef(),{subscribe:g,getParent:h}=j.useContext(a||y);return j.useLayoutEffect(()=>g(f),[]),j.createElement("position",(0,d.Z)({instance:h(),instanceKey:f,ref:(0,l.Z)([e,f])},c),b)}),G=j.forwardRef(({children:a,range:b,limit:c=1e3,frames:e=1/0,...f},g)=>{let[{context:h,instance:m}]=j.useState(()=>{let a=j.createContext(null);return{context:a,instance:j.forwardRef((b,c)=>j.createElement(F,(0,d.Z)({context:a},b,{ref:c})))}}),n=j.useRef(null),[o,p]=j.useState([]),[[q,r]]=j.useState(()=>{let a=new Float32Array(16*c);for(w=0;w<c;w++)B.identity().toArray(a,16*w);return[a,new Float32Array([...Array(3*c)].map(()=>1))]});j.useEffect(()=>{n.current.instanceMatrix.needsUpdate=!0});let s=0,t=0;(0,k.x)(()=>{if(e===1/0||s<e){for(n.current.updateMatrix(),n.current.updateMatrixWorld(),z.copy(n.current.matrixWorld).invert(),t=Math.min(c,void 0!==b?b:c,o.length),n.current.count=t,n.current.instanceMatrix.updateRange.count=16*t,n.current.instanceColor.updateRange.count=3*t,w=0;w<o.length;w++)(x=o[w].current).matrixWorld.decompose(C,D,E),A.compose(C,D,E).premultiply(z),A.toArray(q,16*w),n.current.instanceMatrix.needsUpdate=!0,x.color.toArray(r,3*w),n.current.instanceColor.needsUpdate=!0;s++}});let u=j.useMemo(()=>({getParent:()=>n,subscribe:a=>(p(b=>[...b,a]),()=>p(b=>b.filter(b=>b.current!==a.current)))}),[]);return j.createElement("instancedMesh",(0,d.Z)({userData:{instances:o},matrixAutoUpdate:!1,ref:(0,l.Z)([g,n]),args:[null,null,0],raycast:()=>null},f),j.createElement("instancedBufferAttribute",{attach:"instanceMatrix",count:q.length/16,array:q,itemSize:16,usage:i.dj0}),j.createElement("instancedBufferAttribute",{attach:"instanceColor",count:r.length/3,array:r,itemSize:3,usage:i.dj0}),"function"==typeof a?j.createElement(h.Provider,{value:u},a(m)):j.createElement(y.Provider,{value:u},a))})},7433:function(a,b,c){"use strict";c.d(b,{c:function(){return h}});var d=c(87462),e=c(67294),f=c(2534),g=c(35878);let h=e.forwardRef(({makeDefault:a,...b},c)=>{let h=(0,f.w)(({set:a})=>a),i=(0,f.w)(({camera:a})=>a),j=(0,f.w)(({size:a})=>a),k=e.useRef();return e.useLayoutEffect(()=>{let{current:a}=k;a&&!b.manual&&(a.aspect=j.width/j.height,a.updateProjectionMatrix())},[j,b]),e.useLayoutEffect(()=>{if(a&&k.current){let b=i;return h(()=>({camera:k.current})),()=>h(()=>({camera:b}))}},[k,a,h]),e.createElement("perspectiveCamera",(0,d.Z)({ref:(0,g.Z)([k,c])},b))})},70587:function(a,b,c){"use strict";c.d(b,{q:function(){return h}});var d=c(47824),e=c(14492),f=c(67294),g=c(2534);function h({all:a,scene:b,camera:c}){let h=(0,g.w)(({gl:a})=>a),i=(0,g.w)(({camera:a})=>a),j=(0,g.w)(({scene:a})=>a);return f.useLayoutEffect(()=>{let f=[];a&&(b||j).traverse(a=>{!1===a.visible&&(f.push(a),a.visible=!0)}),h.compile(b||j,c||i);let g=new d.o(128),k=new e._(.01,1e5,g);k.update(h,b||j),g.dispose(),f.forEach(a=>a.visible=!1)},[]),null}},41033:function(a,b,c){"use strict";c.d(b,{j:function(){return i}});var d=c(67294),e=c(2534),f=c(73466),g=c.n(f);function h(a,b){"function"==typeof a?a(b):null!=a&&(a.current=b)}function i({showPanel:a=0,className:b,parent:c}){let f=function(a,b=[],c){let[e,f]=d.useState();return d.useLayoutEffect(()=>{let b=a();return f(b),h(c,b),()=>h(c,null)},b),e}(()=>new(g()),[]);return d.useEffect(()=>{if(f){let d=c&&c.current||document.body;f.showPanel(a),null==d||d.appendChild(f.dom),b&&f.dom.classList.add(...b.split(" ").filter(a=>a));let g=(0,e.m)(()=>f.begin()),h=(0,e.n)(()=>f.end());return()=>{null==d||d.removeChild(f.dom),g(),h()}}},[c,f,b,a]),null}},6493:function(a,b,c){"use strict";c.d(b,{JO:function(){return h},xu:function(){return g}});var d=c(87462),e=c(67294);function f(a){let b=a+"BufferGeometry";return e.forwardRef(({args:a,children:c,...f},g)=>e.createElement("mesh",(0,d.Z)({ref:g},f),e.createElement(b,{attach:"geometry",args:a}),c))}let g=f("box");f("circle"),f("cone"),f("cylinder"),f("sphere");let h=f("plane");f("tube"),f("torus"),f("torusKnot"),f("tetrahedron"),f("ring"),f("polyhedron"),f("icosahedron"),f("octahedron"),f("dodecahedron"),f("extrude"),f("lathe"),f("capsule")},63857:function(a,b,c){"use strict";c.d(b,{v:function(){return h}});var d=c(67294),e=c(11052),f=c(61506),g=c(2534);function h(a,b){let c=d.useRef(),[h]=d.useState(()=>b?b instanceof e.T?{current:b}
1:b:c),[i]=d.useState(()=>new f.X(void 0)),j=d.useRef({}),[k]=d.useState(()=>{let b={};return a.forEach(a=>Object.defineProperty(b,a.name,{enumerable:!0,get(){if(h.current)return j.current[a.name]||(j.current[a.name]=i.clipAction(a,h.current))}})),{ref:h,clips:a,actions:b,names:a.map(a=>a.name),mixer:i}});return(0,g.x)((a,b)=>i.update(b)),d.useEffect(()=>{let a=h.current;return()=>{j.current={},Object.values(k.actions).forEach(b=>{a&&i.uncacheAction(b,a)})}},[a]),k}},53973:function(a,b,c){"use strict";c.d(b,{L:function(){return q}});var d=c(92516),e=c(83705),f=c(95699),g=c(4430);let h=new WeakMap;class i extends d.a{constructor(a){super(a),this.decoderPath="",this.decoderConfig={},this.decoderBinary=null,this.decoderPending=null,this.workerLimit=4,this.workerPool=[],this.workerNextTaskID=1,this.workerSourceURL="",this.defaultAttributeIDs={position:"POSITION",normal:"NORMAL",color:"COLOR",uv:"TEX_COORD"},this.defaultAttributeTypes={position:"Float32Array",normal:"Float32Array",color:"Float32Array",uv:"Float32Array"}}setDecoderPath(a){return this.decoderPath=a,this}setDecoderConfig(a){return this.decoderConfig=a,this}setWorkerLimit(a){return this.workerLimit=a,this}load(a,b,c,d){let f=new e.h(this.manager);f.setPath(this.path),f.setResponseType("arraybuffer"),f.setRequestHeader(this.requestHeader),f.setWithCredentials(this.withCredentials),f.load(a,a=>{let c={attributeIDs:this.defaultAttributeIDs,attributeTypes:this.defaultAttributeTypes,useUniqueIDs:!1};this.decodeGeometry(a,c).then(b).catch(d)},c,d)}decodeDracoFile(a,b,c,d){let e={attributeIDs:c||this.defaultAttributeIDs,attributeTypes:d||this.defaultAttributeTypes,useUniqueIDs:!!c};this.decodeGeometry(a,e).then(b)}decodeGeometry(a,b){for(let c in b.attributeTypes){let d=b.attributeTypes[c];void 0!==d.BYTES_PER_ELEMENT&&(b.attributeTypes[c]=d.name)}let e=JSON.stringify(b);if(h.has(a)){let f=h.get(a);if(f.key===e)return f.promise;if(0===a.byteLength)throw Error("THREE.DRACOLoader: Unable to re-decode a buffer with different settings. Buffer has already been transferred.")}let g,i=this.workerNextTaskID++,j=a.byteLength,k=this._getWorker(i,j).then(c=>(g=c,new Promise((c,d)=>{g._callbacks[i]={resolve:c,reject:d},g.postMessage({type:"decode",id:i,taskConfig:b,buffer:a},[a])}))).then(a=>this._createGeometry(a.geometry));return k.catch(()=>!0).then(()=>{g&&i&&this._releaseTask(g,i)}),h.set(a,{key:e,promise:k}),k}_createGeometry(a){let b=new f.u;a.index&&b.setIndex(new g.Tl(a.index.array,1));for(let c=0;c<a.attributes.length;c++){let d=a.attributes[c],e=d.name,h=d.array,i=d.itemSize;b.setAttribute(e,new g.Tl(h,i))}return b}_loadLibrary(a,b){let c=new e.h(this.manager);return c.setPath(this.decoderPath),c.setResponseType(b),c.setWithCredentials(this.withCredentials),new Promise((b,d)=>{c.load(a,b,void 0,d)})}preload(){return this._initDecoder(),this}_initDecoder(){if(this.decoderPending)return this.decoderPending;let a="object"!=typeof WebAssembly||"js"===this.decoderConfig.type,b=[];return a?b.push(this._loadLibrary("draco_decoder.js","text")):(b.push(this._loadLibrary("draco_wasm_wrapper.js","text")),b.push(this._loadLibrary("draco_decoder.wasm","arraybuffer"))),this.decoderPending=Promise.all(b).then(b=>{let c=b[0];a||(this.decoderConfig.wasmBinary=b[1]);let d=j.toString(),e=["/* draco decoder */",c,"","/* worker */",d.substring(d.indexOf("{")+1,d.lastIndexOf("}"))].join("\n");this.workerSourceURL=URL.createObjectURL(new Blob([e]))}),this.decoderPending}_getWorker(a,b){return this._initDecoder().then(()=>{if(this.workerPool.length<this.workerLimit){let c=new Worker(this.workerSourceURL);c._callbacks={},c._taskCosts={},c._taskLoad=0,c.postMessage({type:"init",decoderConfig:this.decoderConfig}),c.onmessage=function(a){let b=a.data;switch(b.type){case"decode":c._callbacks[b.id].resolve(b);break;case"error":c._callbacks[b.id].reject(b);break;default:console.error('THREE.DRACOLoader: Unexpected message, "'+b.type+'"')}},this.workerPool.push(c)}else this.workerPool.sort(function(a,b){return a._taskLoad>b._taskLoad?-1:1});let d=this.workerPool[this.workerPool.length-1];return d._taskCosts[a]=b,d._taskLoad+=b,d})}_releaseTask(a,b){a._taskLoad-=a._taskCosts[b],delete a._callbacks[b],delete a._taskCosts[b]}debug(){console.log("Task load: ",this.workerPool.map(a=>a._taskLoad))}dispose(){for(let a=0;a<this.workerPool.length;++a)this.workerPool[a].terminate();return this.workerPool.length=0,this}}function j(){let a,b;function c(a,b,c){let d=c.num_faces(),e=3*d,f=4*e,g=a._malloc(f);b.GetTrianglesUInt32Array(c,f,g);let h=new Uint32Array(a.HEAPF32.buffer,g,e).slice();return a._free(g),{array:h,itemSize:1}}function d(a,b,c,d,f,g){let h=g.num_components(),i=c.num_points(),j=i*h,k=j*f.BYTES_PER_ELEMENT,l=e(a,f),m=a._malloc(k);b.GetAttributeDataArrayForAllPoints(c,g,l,k,m);let n=new f(a.HEAPF32.buffer,m,j).slice();return a._free(m),{name:d,array:n,itemSize:h}}function e(a,b){switch(b){case Float32Array:return a.DT_FLOAT32;case Int8Array:return a.DT_INT8;case Int16Array:return a.DT_INT16;case Int32Array:return a.DT_INT32;case Uint8Array:return a.DT_UINT8;case Uint16Array:return a.DT_UINT16;case Uint32Array:return a.DT_UINT32}}onmessage=function(e){let f=e.data;switch(f.type){case"init":a=f.decoderConfig,b=new Promise(function(b){a.onModuleLoaded=function(a){b({draco:a})},DracoDecoderModule(a)});break;case"decode":let g=f.buffer,h=f.taskConfig;b.then(a=>{let b=a.draco,e=new b.Decoder,i=new b.DecoderBuffer;i.Init(new Int8Array(g),g.byteLength);try{let j=function a(b,e,f,g){let h=g.attributeIDs,i=g.attributeTypes,j,k,l=e.GetEncodedGeometryType(f);if(l===b.TRIANGULAR_MESH)j=new b.Mesh,k=e.DecodeBufferToMesh(f,j);else if(l===b.POINT_CLOUD)j=new b.PointCloud,k=e.DecodeBufferToPointCloud(f,j);else throw Error("THREE.DRACOLoader: Unexpected geometry type.");if(!k.ok()||0===j.ptr)throw Error("THREE.DRACOLoader: Decoding failed: "+k.error_msg());let m={index:null,attributes:[]};for(let n in h){let o=self[i[n]],p,q;if(g.useUniqueIDs)q=h[n],p=e.GetAttributeByUniqueId(j,q);else{if(-1===(q=e.GetAttributeId(j,b[h[n]])))continue;p=e.GetAttribute(j,q)}m.attributes.push(d(b,e,j,n,o,p))}return l===b.TRIANGULAR_MESH&&(m.index=c(b,e,j)),b.destroy(j),m}(b,e,i,h),k=j.attributes.map(a=>a.array.buffer);j.index&&k.push(j.index.array.buffer),self.postMessage({type:"decode",id:f.id,geometry:j},k)}catch(l){console.error(l),self.postMessage({type:"error",id:f.id,error:l.message})}finally{b.destroy(i),b.destroy(e)}})}}}let k,l=()=>{if(k)return k;
1let a="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",b="B9h9z9tFB
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",c=new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,3,2,0,0,5,3,1,0,1,12,1,0,10,22,2,12,0,65,0,65,0,65,0,252,10,0,0,11,7,0,65,0,253,15,26,11]),d=new Uint8Array([32,0,65,253,3,1,2,34,4,106,6,5,11,8,7,20,13,33,12,16,128,9,116,64,19,113,127,15,10,21,22,14,255,66,24,54,136,107,18,23,192,26,114,118,132,17,77,101,130,144,27,87,131,44,45,74,156,154,70,167]);if("object"!=typeof WebAssembly)return{supported:!1};let e=a;WebAssembly.validate(c)&&(e=b);let f,g=WebAssembly.instantiate(function(a){let b=new Uint8Array(a.length);for(let c=0;c<a.length;
1++c){let e=a.charCodeAt(c);b[c]=e>96?e-71:e>64?e-65:e>47?e+4:e>46?63:62}let f=0;for(let g=0;g<a.length;++g)b[f++]=b[g]<60?d[b[g]]:(b[g]-60)*64+b[++g];return b.buffer.slice(0,f)}(e),{}).then(a=>{(f=a.instance).exports.__wasm_call_ctors()});function h(a,b,c,d,e,g){let h=f.exports.sbrk,i=c+3& -4,j=h(i*d),k=h(e.length),l=new Uint8Array(f.exports.memory.buffer);l.set(e,k);let m=a(j,c,d,k,e.length);if(0===m&&g&&g(j,i,d),b.set(l.subarray(j,j+c*d)),h(j-h(0)),0!==m)throw Error(`Malformed buffer data: ${m}`)}let i={0:"",1:"meshopt_decodeFilterOct",2:"meshopt_decodeFilterQuat",3:"meshopt_decodeFilterExp",NONE:"",OCTAHEDRAL:"meshopt_decodeFilterOct",QUATERNION:"meshopt_decodeFilterQuat",EXPONENTIAL:"meshopt_decodeFilterExp"},j={0:"meshopt_decodeVertexBuffer",1:"meshopt_decodeIndexBuffer",2:"meshopt_decodeIndexSequence",ATTRIBUTES:"meshopt_decodeVertexBuffer",TRIANGLES:"meshopt_decodeIndexBuffer",INDICES:"meshopt_decodeIndexSequence"};return k={ready:g,supported:!0,decodeVertexBuffer(a,b,c,d,e){h(f.exports.meshopt_decodeVertexBuffer,a,b,c,d,f.exports[i[e]])},decodeIndexBuffer(a,b,c,d){h(f.exports.meshopt_decodeIndexBuffer,a,b,c,d)},decodeIndexSequence(a,b,c,d){h(f.exports.meshopt_decodeIndexSequence,a,b,c,d)},decodeGltfBuffer(a,b,c,d,e,g){h(f.exports[j[e]],a,b,c,d,f.exports[i[g]])}}};var m=c(17607),n=c(2534);let o=null;function p(a,b,c){return d=>{c&&c(d),a&&(o||(o=new i),o.setDecoderPath("string"==typeof a?a:"https://www.gstatic.com/draco/versioned/decoders/1.4.3/"),d.setDRACOLoader(o)),b&&d.setMeshoptDecoder("function"==typeof l?l():l)}}function q(a,b=!0,c=!0,d){let e=(0,n.z)(m.E,a,p(b,c,d));return e}q.preload=(a,b=!0,c=!0,d)=>n.z.preload(m.E,a,p(b,c,d)),q.clear=a=>n.z.clear(m.E,a)},77854:function(a,b,c){"use strict";c.d(b,{V:function(){return u}});var d,e,f=c(87462),g=c(67294),h=c(20745),i=c(44532),j=c(44152),k=c(92096),l=c(2534);let m=new i.P,n=new i.P,o=new i.P;function p(a,b,c){let d=m.setFromMatrixPosition(a.matrixWorld);d.project(b);let e=c.width/2,f=c.height/2;return[d.x*e+e,-(d.y*f)+f]}let q=a=>1e-10>Math.abs(a)?0:a;function r(a,b,c=""){let d="matrix3d(";for(let e=0;16!==e;e++)d+=q(b[e]*a.elements[e])+(15!==e?",":")");return c+d}let s=(d=[1,-1,1,1,1,-1,1,1,1,-1,1,1,1,-1,1,1],a=>r(a,d)),t=(e=a=>[1/a,1/a,1/a,1,-1/a,-1/a,-1/a,-1,1/a,1/a,1/a,1,1,1,1,1],(a,b)=>r(a,e(b),"translate(-50%,-50%)")),u=g.forwardRef(({children:a,eps:b=.001,style:c,className:d,prepend:e,center:i,fullscreen:r,portal:u,distanceFactor:v,sprite:w=!1,transform:x=!1,occlude:y,onOcclude:z,zIndexRange:A=[16777271,0],calculatePosition:B=p,as:C="div",wrapperClass:D,pointerEvents:E="auto",...F},G)=>{var H;let I=(0,l.w)(({gl:a})=>a),J=(0,l.w)(({camera:a})=>a),K=(0,l.w)(({scene:a})=>a),L=(0,l.w)(({size:a})=>a),M=(0,l.w)(({raycaster:a})=>a),[N]=g.useState(()=>document.createElement(C)),O=g.useRef(),P=g.useRef(null),Q=g.useRef(0),R=g.useRef([0,0]),S=g.useRef(null),T=g.useRef(null),U=null!==(H=null==u?void 0:u.current)&& void 0!==H?H:I.domElement.parentNode;g.useLayoutEffect(()=>{if(P.current){let a=O.current=h.createRoot(N);if(K.updateMatrixWorld(),x)N.style.cssText="position:absolute;top:0;left:0;pointer-events:none;overflow:hidden;";else{let b=B(P.current,J,L);N.style.cssText=`position:absolute;top:0;left:0;transform:translate3d(${b[0]}px,${b[1]}px,0);transform-origin:0 0;`}return U&&(e?U.prepend(N):U.appendChild(N)),()=>{U&&U.removeChild(N),a.unmount()}}},[U,x]),g.useLayoutEffect(()=>{D&&(N.className=D)},[D]);let V=g.useMemo(()=>x?{position:"absolute",top:0,left:0,width:L.width,height:L.height,transformStyle:"preserve-3d",pointerEvents:"none"}:{position:"absolute",transform:i?"translate3d(-50%,-50%,0)":"none",...r&&{top:-L.height/2,left:-L.width/2,width:L.width,height:L.height},...c},[c,i,r,L,x]),W=g.useMemo(()=>({position:"absolute",pointerEvents:E}),[E]);g.useLayoutEffect(()=>{var b,e;x?null==(b=O.current)||b.render(g.createElement("div",{ref:S,style:V},g.createElement("div",{ref:T,style:W},g.createElement("div",{ref:G,className:d,style:c,children:a})))):null==(e=O.current)||e.render(g.createElement("div",{ref:G,style:V,className:d,children:a}))});let X=g.useRef(!0);return(0,l.x)(()=>
1{if(P.current){J.updateMatrixWorld(),P.current.updateWorldMatrix(!0,!1);let a=x?R.current:B(P.current,J,L);if(x||Math.abs(Q.current-J.zoom)>b||Math.abs(R.current[0]-a[0])>b||Math.abs(R.current[1]-a[1])>b){let c=function(a,b){let c=m.setFromMatrixPosition(a.matrixWorld),d=n.setFromMatrixPosition(b.matrixWorld),e=c.sub(d),f=b.getWorldDirection(o);return e.angleTo(f)>Math.PI/2}(P.current,J),d=!1;"boolean"==typeof y?!0===y&&(d=[K]):Array.isArray(y)&&(d=y.map(a=>a.current));let e=X.current;if(d){let f=function(a,b,c,d){let e=m.setFromMatrixPosition(a.matrixWorld),f=e.clone();f.project(b),c.setFromCamera(f,b);let g=c.intersectObjects(d,!0);if(g.length){let h=g[0].distance,i=e.distanceTo(c.ray.origin);return i<h}return!0}(P.current,J,M,d);X.current=f&&!c}else X.current=!c;if(e!==X.current&&(z?z(!X.current):N.style.display=X.current?"block":"none"),N.style.zIndex=`${function(a,b,c){if(b instanceof k.c||b instanceof j.i){let d=m.setFromMatrixPosition(a.matrixWorld),e=n.setFromMatrixPosition(b.matrixWorld),f=d.distanceTo(e),g=(c[1]-c[0])/(b.far-b.near),h=c[1]-g*b.far;return Math.round(g*f+h)}}(P.current,J,A)}`,x){let[g,h]=[L.width/2,L.height/2],i=J.projectionMatrix.elements[5]*h,{isOrthographicCamera:l,top:p,left:r,bottom:u,right:C}=J,D=s(J.matrixWorldInverse),E=l?`scale(${i})translate(${q(-(C+r)/2)}px,${q((p+u)/2)}px)`:`translateZ(${i}px)`,F=P.current.matrixWorld;w&&((F=J.matrixWorldInverse.clone().transpose().copyPosition(F).scale(P.current.scale)).elements[3]=F.elements[7]=F.elements[11]=0,F.elements[15]=1),N.style.width=L.width+"px",N.style.height=L.height+"px",N.style.perspective=l?"":`${i}px`,S.current&&T.current&&(S.current.style.transform=`${E}${D}translate(${g}px,${h}px)`,T.current.style.transform=t(F,1/((v||10)/400)))}else{let G=void 0===v?1:function(a,b){if(b instanceof j.i)return b.zoom;if(!(b instanceof k.c))return 1;{let c=m.setFromMatrixPosition(a.matrixWorld),d=n.setFromMatrixPosition(b.matrixWorld),e=b.fov*Math.PI/180,f=c.distanceTo(d),g=2*Math.tan(e/2)*f;return 1/g}}(P.current,J)*v;N.style.transform=`translate3d(${a[0]}px,${a[1]}px,0) scale(${G})`}R.current=a,Q.current=J.zoom}}}),g.createElement("group",(0,f.Z)({},F,{ref:P}))})},64063:function(a){"use strict";a.exports=function a(b,c){if(b===c)return!0;if(b&&c&&"object"==typeof b&&"object"==typeof c){if(b.constructor!==c.constructor)return!1;if(Array.isArray(b)){if((d=b.length)!=c.length)return!1;for(e=d;0!=e--;)if(!a(b[e],c[e]))return!1;return!0}if(b.constructor===RegExp)return b.source===c.source&&b.flags===c.flags;if(b.valueOf!==Object.prototype.valueOf)return b.valueOf()===c.valueOf();if(b.toString!==Object.prototype.toString)return b.toString()===c.toString();if((d=(f=Object.keys(b)).length)!==Object.keys(c).length)return!1;for(e=d;0!=e--;)if(!Object.prototype.hasOwnProperty.call(c,f[e]))return!1;for(e=d;0!=e--;){var d,e,f,g=f[e];if(!a(b[g],c[g]))return!1}return!0}return b!=b&&c!=c}},73466:function(a){!function(b,c){a.exports=c()}(this,function(){var a=function(){function b(a){return e.appendChild(a.dom),a}function c(a){for(var b=0;b<e.children.length;b++)e.children[b].style.display=b===a?"block":"none";d=a}var d=0,e=document.createElement("div");e.style.cssText="position:fixed;top:0;left:0;cursor:pointer;opacity:0.9;z-index:10000",e.addEventListener("click",function(a){a.preventDefault(),c(++d%e.children.length)},!1);var f=(performance||Date).now(),g=f,h=0,i=b(new a.Panel("FPS","#0ff","#002")),j=b(new a.Panel("MS","#0f0","#020"));if(self.performance&&self.performance.memory)var k=b(new a.Panel("MB","#f08","#201"));return c(0),{REVISION:16,dom:e,addPanel:b,showPanel:c,begin:function(){f=(performance||Date).now()},end:function(){h++;var a=(performance||Date).now();if(j.update(a-f,200),a>g+1e3&&(i.update(1e3*h/(a-g),100),g=a,h=0,k)){var b=performance.memory;k.update(b.usedJSHeapSize/1048576,b.jsHeapSizeLimit/1048576)}return a},update:function(){f=this.end()},domElement:e,setMode:c}};return a.Panel=function(a,b,c){var d=1/0,e=0,f=Math.round,g=f(window.devicePixelRatio||1),h=80*g,i=48*g,j=3*g,k=2*g,l=3*g,m=15*g,n=74*g,o=30*g,p=document.createElement("canvas");p.width=h,p.height=i,p.style.cssText="width:80px;height:48px";var q=p.getContext("2d");return q.font="bold "+9*g+"px Helvetica,Arial,sans-serif",q.textBaseline="top",q.fillStyle=c,q.fillRect(0,0,h,i),q.fillStyle=b,q.fillText(a,j,
1k),q.fillRect(l,m,n,o),q.fillStyle=c,q.globalAlpha=.9,q.fillRect(l,m,n,o),{dom:p,update:function(i,r){d=Math.min(d,i),e=Math.max(e,i),q.fillStyle=c,q.globalAlpha=1,q.fillRect(0,0,h,m),q.fillStyle=b,q.fillText(f(i)+" "+a+" ("+f(d)+"-"+f(e)+")",j,k),q.drawImage(p,l+g,m,n-g,o,l,m,n-g,o),q.fillRect(l+n-g,m,g,o),q.fillStyle=c,q.globalAlpha=.9,q.fillRect(l+n-g,m,g,f((1-i/r)*o))}}},a})},17607:function(a,b,c){"use strict";c.d(b,{E:function(){return X}});var d=c(92516),e=c(72066),f=c(83705),g=c(17282),h=c(96666),i=c(10018),j=c(42105),k=c(84033),l=c(47647),m=c(26120),n=c(27006),o=c(66997),p=c(6158),q=c(43163),r=c(70390),s=c(14144),t=c(94305),u=c(37849),v=c(4430),w=c(15593),x=c(78645),y=c(20406),z=c(66941),A=c(72290),B=c(95699),C=c(32082),D=c(3921),E=c(1492),F=c(59484),G=c(37037),H=c(20042),I=c(12658),J=c(92096),K=c(69542),L=c(44152),M=c(32912),N=c(20692),O=c(86757),P=c(40632),Q=c(11453),R=c(11052),S=c(81245),T=c(84855),U=c(17232),V=c(44532),W=c(99771);class X extends d.a{constructor(a){super(a),this.dracoLoader=null,this.ktx2Loader=null,this.meshoptDecoder=null,this.pluginCallbacks=[],this.register(function(a){return new _(a)}),this.register(function(a){return new af(a)}),this.register(function(a){return new ag(a)}),this.register(function(a){return new aa(a)}),this.register(function(a){return new ab(a)}),this.register(function(a){return new ac(a)}),this.register(function(a){return new ad(a)}),this.register(function(a){return new ae(a)}),this.register(function(a){return new Z(a)}),this.register(function(a){return new ah(a)})}load(a,b,c,d){let g=this,h;h=""!==this.resourcePath?this.resourcePath:""!==this.path?this.path:e.Z.extractUrlBase(a),this.manager.itemStart(a);let i=function(b){d?d(b):console.error(b),g.manager.itemError(a),g.manager.itemEnd(a)},j=new f.h(this.manager);j.setPath(this.path),j.setResponseType("arraybuffer"),j.setRequestHeader(this.requestHeader),j.setWithCredentials(this.withCredentials),j.load(a,function(c){try{g.parse(c,h,function(c){b(c),g.manager.itemEnd(a)},i)}catch(d){i(d)}},c,i)}setDRACOLoader(a){return this.dracoLoader=a,this}setDDSLoader(){throw Error('THREE.GLTFLoader: "MSFT_texture_dds" no longer supported. Please update to "KHR_texture_basisu".')}setKTX2Loader(a){return this.ktx2Loader=a,this}setMeshoptDecoder(a){return this.meshoptDecoder=a,this}register(a){return -1===this.pluginCallbacks.indexOf(a)&&this.pluginCallbacks.push(a),this}unregister(a){return -1!==this.pluginCallbacks.indexOf(a)&&this.pluginCallbacks.splice(this.pluginCallbacks.indexOf(a),1),this}parse(a,b,c,d){let f,g={},h={};if("string"==typeof a)f=a;else{let i=e.Z.decodeText(new Uint8Array(a,0,4));if(i===ai){try{g[Y.KHR_BINARY_GLTF]=new al(a)}catch(j){d&&d(j);return}f=g[Y.KHR_BINARY_GLTF].content}else f=e.Z.decodeText(new Uint8Array(a))}let k=JSON.parse(f);if(void 0===k.asset||k.asset.version[0]<2){d&&d(Error("THREE.GLTFLoader: Unsupported asset. glTF versions >=2.0 are supported."));return}let l=new aK(k,{path:b||this.resourcePath||"",crossOrigin:this.crossOrigin,requestHeader:this.requestHeader,manager:this.manager,ktx2Loader:this.ktx2Loader,meshoptDecoder:this.meshoptDecoder});l.fileLoader.setRequestHeader(this.requestHeader);for(let m=0;m<this.pluginCallbacks.length;m++){let n=this.pluginCallbacks[m](l);h[n.name]=n,g[n.name]=!0}if(k.extensionsUsed)for(let o=0;o<k.extensionsUsed.length;++o){let p=k.extensionsUsed[o],q=k.extensionsRequired||[];switch(p){case Y.KHR_MATERIALS_UNLIT:g[p]=new $;break;case Y.KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS:g[p]=new ap;break;case Y.KHR_DRACO_MESH_COMPRESSION:g[p]=new am(k,this.dracoLoader);break;case Y.KHR_TEXTURE_TRANSFORM:g[p]=new an;break;case Y.KHR_MESH_QUANTIZATION:g[p]=new aq;break;default:q.indexOf(p)>=0&& void 0===h[p]&&console.warn('THREE.GLTFLoader: Unknown extension "'+p+'".')}}l.setExtensions(g),l.setPlugins(h),l.parse(c,d)}parseAsync(a,b){let c=this;return new Promise(function(d,e){c.parse(a,b,d,e)})}}let Y={KHR_BINARY_GLTF:"KHR_binary_glTF",KHR_DRACO_MESH_COMPRESSION:"KHR_draco_mesh_compression",KHR_LIGHTS_PUNCTUAL:"KHR_lights_punctual",KHR_MATERIALS_CLEARCOAT:"KHR_materials_clearcoat",KHR_MATERIALS_IOR:"KHR_materials_ior",KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS:"KHR_materials_pbrSpecularGlossiness",KHR_MATERIALS_SHEEN:"KHR_materials_sheen",KHR_MATERIALS_SPECULAR:"KHR_materials_specular",KHR_MATERIALS_TRANSMISSION:"KHR_materials_transmission",KHR_MATERIALS_UNLIT:"KHR_materials_unlit",KHR_MATERIALS_VOLUME:"KHR_materials_volume",KHR_TEXTURE_BASISU:"KHR_texture_basisu",KHR_TEXTURE_TRANSFORM:"KHR_texture_transform",KHR_MESH_QUANTIZATION:"KHR_mesh_quantization",EXT_TEXTURE_WEBP:"EXT_texture_webp",EXT_MESHOPT_COMPRESSION:"EXT_meshopt_compression"};class Z{constructor(a){this.parser=a,this.name=Y.KHR_LIGHTS_PUNCTUAL,this.cache={refs:{},uses:{}}}_markDefs(){let a=this.parser,b=this.parser.json.nodes||[];for(let c=0,d=b.length;c<d;c++){let e=b[c];e.extensions&&e.extensions[this.name]&& void 0!==e.extensions[this.name].light&&a._addNodeRef(this.cache,e.extensions[this.name].light)}}_loadLight(a){let b=this.parser,c="light:"+a,d=b.cache.get(c);if(d)return d;let e=b.json,f=e.extensions&&e.extensions[this.name]||{},k=f.lights||[],l=k[a],m,n=new g.I(16777215);void 0!==l.color&&n.fromArray(l.color);let o=void 0!==l.range?l.range:0;switch(l.type){case"directional":(m=new h.O(n)).target.position.set(0,0,-1),m.add(m.target);break;case"point":(m=new i.c(n)).distance=o;break;case"spot":(m=new j.P(n)).distance=o,l.spot=l.spot||{},l.spot.innerConeAngle=void 0!==l.spot.innerConeAngle?l.spot.innerConeAngle:0,l.spot.outerConeAngle=void 0!==l.spot.outerConeAngle?l.spot.outerConeAngle:Math.PI/4,m.angle=l.spot.outerConeAngle,m.penumbra=1-l.spot.innerConeAngle/l.spot.outerConeAngle,m.target.position.set(0,0,-1),m.add(m.target);break;default:throw Error("THREE.GLTFLoader: Unexpected light type: "+l.type)}return m.position.set(0,0,0),m.decay=2,void 0!==l.intensity&&(m.intensity=l.intensity),m.name=b.createUniqueName(l.name||"light_"+a),d=Promise.resolve(m),b.cac
1he.add(c,d),d}createNodeAttachment(a){let b=this,c=this.parser,d=c.json,e=d.nodes[a],f=e.extensions&&e.extensions[this.name]||{},g=f.light;return void 0===g?null:this._loadLight(g).then(function(a){return c._getNodeRef(b.cache,g,a)})}}class ${constructor(){this.name=Y.KHR_MATERIALS_UNLIT}getMaterialType(){return k.v}extendParams(a,b,c){let d=[];a.color=new g.I(1,1,1),a.opacity=1;let e=b.pbrMetallicRoughness;if(e){if(Array.isArray(e.baseColorFactor)){let f=e.baseColorFactor;a.color.fromArray(f),a.opacity=f[3]}void 0!==e.baseColorTexture&&d.push(c.assignTexture(a,"map",e.baseColorTexture))}return Promise.all(d)}}class _{constructor(a){this.parser=a,this.name=Y.KHR_MATERIALS_CLEARCOAT}getMaterialType(a){let b=this.parser,c=b.json.materials[a];return c.extensions&&c.extensions[this.name]?l.E:null}extendMaterialParams(a,b){let c=this.parser,d=c.json.materials[a];if(!d.extensions||!d.extensions[this.name])return Promise.resolve();let e=[],f=d.extensions[this.name];if(void 0!==f.clearcoatFactor&&(b.clearcoat=f.clearcoatFactor),void 0!==f.clearcoatTexture&&e.push(c.assignTexture(b,"clearcoatMap",f.clearcoatTexture)),void 0!==f.clearcoatRoughnessFactor&&(b.clearcoatRoughness=f.clearcoatRoughnessFactor),void 0!==f.clearcoatRoughnessTexture&&e.push(c.assignTexture(b,"clearcoatRoughnessMap",f.clearcoatRoughnessTexture)),void 0!==f.clearcoatNormalTexture&&(e.push(c.assignTexture(b,"clearcoatNormalMap",f.clearcoatNormalTexture)),void 0!==f.clearcoatNormalTexture.scale)){let g=f.clearcoatNormalTexture.scale;b.clearcoatNormalScale=new m.F(g,g)}return Promise.all(e)}}class aa{constructor(a){this.parser=a,this.name=Y.KHR_MATERIALS_SHEEN}getMaterialType(a){let b=this.parser,c=b.json.materials[a];return c.extensions&&c.extensions[this.name]?l.E:null}extendMaterialParams(a,b){let c=this.parser,d=c.json.materials[a];if(!d.extensions||!d.extensions[this.name])return Promise.resolve();let e=[];b.sheenColor=new g.I(0,0,0),b.sheenRoughness=0,b.sheen=1;let f=d.extensions[this.name];return void 0!==f.sheenColorFactor&&b.sheenColor.fromArray(f.sheenColorFactor),void 0!==f.sheenRoughnessFactor&&(b.sheenRoughness=f.sheenRoughnessFactor),void 0!==f.sheenColorTexture&&e.push(c.assignTexture(b,"sheenColorMap",f.sheenColorTexture)),void 0!==f.sheenRoughnessTexture&&e.push(c.assignTexture(b,"sheenRoughnessMap",f.sheenRoughnessTexture)),Promise.all(e)}}class ab{constructor(a){this.parser=a,this.name=Y.KHR_MATERIALS_TRANSMISSION}getMaterialType(a){let b=this.parser,c=b.json.materials[a];return c.extensions&&c.extensions[this.name]?l.E:null}extendMaterialParams(a,b){let c=this.parser,d=c.json.materials[a];if(!d.extensions||!d.extensions[this.name])return Promise.resolve();let e=[],f=d.extensions[this.name];return void 0!==f.transmissionFactor&&(b.transmission=f.transmissionFactor),void 0!==f.transmissionTexture&&e.push(c.assignTexture(b,"transmissionMap",f.transmissionTexture)),Promise.all(e)}}class ac{constructor(a){this.parser=a,this.name=Y.KHR_MATERIALS_VOLUME}getMaterialType(a){let b=this.parser,c=b.json.materials[a];return c.extensions&&c.extensions[this.name]?l.E:null}extendMaterialParams(a,b){let c=this.parser,d=c.json.materials[a];if(!d.extensions||!d.extensions[this.name])return Promise.resolve();let e=[],f=d.extensions[this.name];b.thickness=void 0!==f.thicknessFactor?f.thicknessFactor:0,void 0!==f.thicknessTexture&&e.push(c.assignTexture(b,"thicknessMap",f.thicknessTexture)),b.attenuationDistance=f.attenuationDistance||0;let h=f.attenuationColor||[1,1,1];return b.attenuationColor=new g.I(h[0],h[1],h[2]),Promise.all(e)}}class ad{constructor(a){this.parser=a,this.name=Y.KHR_MATERIALS_IOR}getMaterialType(a){let b=this.parser,c=b.json.materials[a];return c.extensions&&c.extensions[this.name]?l.E:null}extendMaterialParams(a,b){let c=this.parser,d=c.json.materials[a];if(!d.extensions||!d.extensions[this.name])return Promise.resolve();let e=d.extensions[this.name];return b.ior=void 0!==e.ior?e.ior:1.5,Promise.resolve()}}class ae{constructor(a){this.parser=a,this.name=Y.KHR_MATERIALS_SPECULAR}getMaterialType(a){let b=this.parser,c=b.json.materials[a];return c.extensions&&c.extensions[this.name]?l.E:null}extendMaterialParams(a,b){let c=this.parser,d=c.json.materials[a];
1if(!d.extensions||!d.extensions[this.name])return Promise.resolve();let e=[],f=d.extensions[this.name];b.specularIntensity=void 0!==f.specularFactor?f.specularFactor:1,void 0!==f.specularTexture&&e.push(c.assignTexture(b,"specularIntensityMap",f.specularTexture));let h=f.specularColorFactor||[1,1,1];return b.specularColor=new g.I(h[0],h[1],h[2]),void 0!==f.specularColorTexture&&e.push(c.assignTexture(b,"specularColorMap",f.specularColorTexture).then(function(a){a.encoding=n.knz})),Promise.all(e)}}class af{constructor(a){this.parser=a,this.name=Y.KHR_TEXTURE_BASISU}loadTexture(a){let b=this.parser,c=b.json,d=c.textures[a];if(!d.extensions||!d.extensions[this.name])return null;let e=d.extensions[this.name],f=c.images[e.source],g=b.options.ktx2Loader;if(!g){if(!(c.extensionsRequired&&c.extensionsRequired.indexOf(this.name)>=0))return null;throw Error("THREE.GLTFLoader: setKTX2Loader must be called before loading KTX2 textures")}return b.loadTextureImage(a,f,g)}}class ag{constructor(a){this.parser=a,this.name=Y.EXT_TEXTURE_WEBP,this.isSupported=null}loadTexture(a){let b=this.name,c=this.parser,d=c.json,e=d.textures[a];if(!e.extensions||!e.extensions[b])return null;let f=e.extensions[b],g=d.images[f.source],h=c.textureLoader;if(g.uri){let i=c.options.manager.getHandler(g.uri);null!==i&&(h=i)}return this.detectSupport().then(function(e){if(e)return c.loadTextureImage(a,g,h);if(d.extensionsRequired&&d.extensionsRequired.indexOf(b)>=0)throw Error("THREE.GLTFLoader: WebP required by asset but unsupported.");return c.loadTexture(a)})}detectSupport(){return this.isSupported||(this.isSupported=new Promise(function(a){let b=new Image;b.src="data:image/webp;base64,UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoBAAEADsD+JaQAA3AAAAAA",b.onload=b.onerror=function(){a(1===b.height)}})),this.isSupported}}class ah{constructor(a){this.name=Y.EXT_MESHOPT_COMPRESSION,this.parser=a}loadBufferView(a){let b=this.parser.json,c=b.bufferViews[a];if(!c.extensions||!c.extensions[this.name])return null;{let d=c.extensions[this.name],e=this.parser.getDependency("buffer",d.buffer),f=this.parser.options.meshoptDecoder;if(!f||!f.supported){if(!(b.extensionsRequired&&b.extensionsRequired.indexOf(this.name)>=0))return null;throw Error("THREE.GLTFLoader: setMeshoptDecoder must be called before loading compressed files")}return Promise.all([e,f.ready]).then(function(a){let b=d.byteOffset||0,c=d.byteLength||0,e=d.count,g=d.byteStride,h=new ArrayBuffer(e*g),i=new Uint8Array(a[0],b,c);return f.decodeGltfBuffer(new Uint8Array(h),e,g,i,d.mode,d.filter),h})}}}let ai="glTF",aj=12,ak={JSON:1313821514,BIN:5130562};class al{constructor(a){this.name=Y.KHR_BINARY_GLTF,this.content=null,this.body=null;let b=new DataView(a,0,aj);if(this.header={magic:e.Z.decodeText(new Uint8Array(a.slice(0,4))),version:b.getUint32(4,!0),length:b.getUint32(8,!0)},this.header.magic!==ai)throw Error("THREE.GLTFLoader: Unsupported glTF-Binary header.");if(this.header.version<2)throw Error("THREE.GLTFLoader: Legacy binary file detected.");let c=this.header.length-aj,d=new DataView(a,aj),f=0;for(;f<c;){let g=d.getUint32(f,!0);f+=4;let h=d.getUint32(f,!0);if(f+=4,h===ak.JSON){let i=new Uint8Array(a,aj+f,g);this.content=e.Z.decodeText(i)}else if(h===ak.BIN){let j=aj+f;this.body=a.slice(j,j+g)}f+=g}if(null===this.content)throw Error("THREE.GLTFLoader: JSON content not found.")}}class am{constructor(a,b){if(!b)throw Error("THREE.GLTFLoader: No DRACOLoader instance provided.");this.name=Y.KHR_DRACO_MESH_COMPRESSION,this.json=a,this.dracoLoader=b,this.dracoLoader.preload()}decodePrimitive(a,b){let c=this.json,d=this.dracoLoader,e=a.extensions[this.name].bufferView,f=a.extensions[this.name].attributes,g={},h={},i={};for(let j in f){let k=az[j]||j.toLowerCase();g[k]=f[j]}for(let l in a.attributes){let m=az[l]||l.toLowerCase();if(void 0!==f[l]){let n=c.accessors[a.attributes[l]],o=av[n.componentType];i[m]=o,h[m]=!0===n.normalized}}return b.getDependency("bufferView",e).then(function(a){return new Promise(function(b){d.decodeDracoFile(a,function(a){for(let c in a.attributes){let d=a.attributes[c],e=h[c];void 0!==e&&(d.normalized=e)}b(a)}
1,g,i)})})}}class an{constructor(){this.name=Y.KHR_TEXTURE_TRANSFORM}extendTexture(a,b){return void 0!==b.texCoord&&console.warn('THREE.GLTFLoader: Custom UV sets in "'+this.name+'" extension not yet supported.'),void 0===b.offset&& void 0===b.rotation&& void 0===b.scale||(a=a.clone(),void 0!==b.offset&&a.offset.fromArray(b.offset),void 0!==b.rotation&&(a.rotation=b.rotation),void 0!==b.scale&&a.repeat.fromArray(b.scale),a.needsUpdate=!0),a}}class ao extends o.W{constructor(a){super(),this.isGLTFSpecularGlossinessMaterial=!0;let b={specular:{value:new g.I().setHex(16777215)},glossiness:{value:1},specularMap:{value:null},glossinessMap:{value:null}};this._extraUniforms=b,this.onBeforeCompile=function(a){for(let c in b)a.uniforms[c]=b[c];a.fragmentShader=a.fragmentShader.replace("uniform float roughness;","uniform vec3 specular;").replace("uniform float metalness;","uniform float glossiness;").replace("#include <roughnessmap_pars_fragment>","#ifdef USE_SPECULARMAP\n uniform sampler2D specularMap;\n#endif").replace("#include <metalnessmap_pars_fragment>","#ifdef USE_GLOSSINESSMAP\n uniform sampler2D glossinessMap;\n#endif").replace("#include <roughnessmap_fragment>","vec3 specularFactor = specular;\n#ifdef USE_SPECULARMAP\n vec4 texelSpecular = texture2D( specularMap, vUv );\n // reads channel RGB, compatible with a glTF Specular-Glossiness (RGBA) texture\n specularFactor *= texelSpecular.rgb;\n#endif").replace("#include <metalnessmap_fragment>","float glossinessFactor = glossiness;\n#ifdef USE_GLOSSINESSMAP\n vec4 texelGlossiness = texture2D( glossinessMap, vUv );\n // reads channel A, compatible with a glTF Specular-Glossiness (RGBA) texture\n glossinessFactor *= texelGlossiness.a;\n#endif").replace("#include <lights_physical_fragment>","PhysicalMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb * ( 1. - max( specularFactor.r, max( specularFactor.g, specularFactor.b ) ) );\nvec3 dxy = max( abs( dFdx( geometryNormal ) ), abs( dFdy( geometryNormal ) ) );\nfloat geometryRoughness = max( max( dxy.x, dxy.y ), dxy.z );\nmaterial.roughness = max( 1.0 - glossinessFactor, 0.0525 ); // 0.0525 corresponds to the base mip of a 256 cubemap.\nmaterial.roughness += geometryRoughness;\nmaterial.roughness = min( material.roughness, 1.0 );\nmaterial.specularColor = specularFactor;")},Object.defineProperties(this,{specular:{get:function(){return b.specular.value},set:function(a){b.specular.value=a}},specularMap:{get:function(){return b.specularMap.value},set:function(a){b.specularMap.value=a,a?this.defines.USE_SPECULARMAP="":delete this.defines.USE_SPECULARMAP}},glossiness:{get:function(){return b.glossiness.value},set:function(a){b.glossiness.value=a}},glossinessMap:{get:function(){return b.glossinessMap.value},set:function(a){b.glossinessMap.value=a,a?(this.defines.USE_GLOSSINESSMAP="",this.defines.USE_UV=""):(delete this.defines.USE_GLOSSINESSMAP,delete this.defines.USE_UV)}}}),delete this.metalness,delete this.roughness,delete this.metalnessMap,delete this.roughnessMap,this.setValues(a)}copy(a){return super.copy(a),this.specularMap=a.specularMap,this.specular.copy(a.specular),this.glossinessMap=a.glossinessMap,this.glossiness=a.glossiness,delete this.metalness,delete this.roughness,delete this.metalnessMap,delete this.roughnessMap,this}}class ap{constructor(){this.name=Y.KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS,this.specularGlossinessParams=["color","map","lightMap","lightMapIntensity","aoMap","aoMapIntensity","emissive","emissiveIntensity","emissiveMap","bumpMap","bumpScale","normalMap","normalMapType","displacementMap","displacementScale","displacementBias","specularMap","specular","glossinessMap","glossiness","alphaMap","envMap","envMapIntensity","refractionRatio"]}getMaterialType(){return ao}extendParams(a,b,c){let d=b.extensions[this.name];a.color=new g.I(1,1,1),a.opacity=1;let e=[];
1if(Array.isArray(d.diffuseFactor)){let f=d.diffuseFactor;a.color.fromArray(f),a.opacity=f[3]}if(void 0!==d.diffuseTexture&&e.push(c.assignTexture(a,"map",d.diffuseTexture)),a.emissive=new g.I(0,0,0),a.glossiness=void 0!==d.glossinessFactor?d.glossinessFactor:1,a.specular=new g.I(1,1,1),Array.isArray(d.specularFactor)&&a.specular.fromArray(d.specularFactor),void 0!==d.specularGlossinessTexture){let h=d.specularGlossinessTexture;e.push(c.assignTexture(a,"glossinessMap",h)),e.push(c.assignTexture(a,"specularMap",h))}return Promise.all(e)}createMaterial(a){let b=new ao(a);return b.fog=!0,b.color=a.color,b.map=void 0===a.map?null:a.map,b.lightMap=null,b.lightMapIntensity=1,b.aoMap=void 0===a.aoMap?null:a.aoMap,b.aoMapIntensity=1,b.emissive=a.emissive,b.emissiveIntensity=1,b.emissiveMap=void 0===a.emissiveMap?null:a.emissiveMap,b.bumpMap=void 0===a.bumpMap?null:a.bumpMap,b.bumpScale=1,b.normalMap=void 0===a.normalMap?null:a.normalMap,b.normalMapType=n.IOt,a.normalScale&&(b.normalScale=a.normalScale),b.displacementMap=null,b.displacementScale=1,b.displacementBias=0,b.specularMap=void 0===a.specularMap?null:a.specularMap,b.specular=a.specular,b.glossinessMap=void 0===a.glossinessMap?null:a.glossinessMap,b.glossiness=a.glossiness,b.alphaMap=null,b.envMap=void 0===a.envMap?null:a.envMap,b.envMapIntensity=1,b.refractionRatio=.98,b}}class aq{constructor(){this.name=Y.KHR_MESH_QUANTIZATION}}class ar extends p._{constructor(a,b,c,d){super(a,b,c,d)}copySampleValue_(a){let b=this.resultBuffer,c=this.sampleValues,d=this.valueSize,e=a*d*3+d;for(let f=0;f!==d;f++)b[f]=c[e+f];return b}}ar.prototype.beforeStart_=ar.prototype.copySampleValue_,ar.prototype.afterEnd_=ar.prototype.copySampleValue_,ar.prototype.interpolate_=function(a,b,c,d){let e=this.resultBuffer,f=this.sampleValues,g=this.valueSize,h=2*g,i=3*g,j=d-b,k=(c-b)/j,l=k*k,m=l*k,n=a*i,o=n-i,p=-2*m+3*l,q=m-l,r=1-p,s=q-l+k;for(let t=0;t!==g;t++){let u=f[o+t+g],v=f[o+t+h]*j,w=f[n+t+g],x=f[n+t]*j;e[t]=r*u+s*v+p*w+q*x}return e};let as=new q._;class at extends ar{interpolate_(a,b,c,d){let e=super.interpolate_(a,b,c,d);return as.fromArray(e).normalize().toArray(e),e}}let au={FLOAT:5126,FLOAT_MAT3:35675,FLOAT_MAT4:35676,FLOAT_VEC2:35664,FLOAT_VEC3:35665,FLOAT_VEC4:35666,LINEAR:9729,REPEAT:10497,SAMPLER_2D:35678,POINTS:0,LINES:1,LINE_LOOP:2,LINE_STRIP:3,TRIANGLES:4,TRIANGLE_STRIP:5,TRIANGLE_FAN:6,UNSIGNED_BYTE:5121,UNSIGNED_SHORT:5123},av={5120:Int8Array,5121:Uint8Array,5122:Int16Array,5123:Uint16Array,5125:Uint32Array,5126:Float32Array},aw={9728:n.TyD,9729:n.wem,9984:n.YLQ,9985:n.qyh,9986:n.aH4,9987:n.D1R},ax={33071:n.uWy,33648:n.OoA,10497:n.rpg},ay={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16},az={POSITION:"position",NORMAL:"normal",TANGENT:"tangent",TEXCOORD_0:"uv",TEXCOORD_1:"uv2",COLOR_0:"color",WEIGHTS_0:"skinWeight",JOINTS_0:"skinIndex"},aA={scale:"scale",translation:"position",rotation:"quaternion",weights:"morphTargetInfluences"},aB={CUBICSPLINE:void 0,LINEAR:n.NMF,STEP:n.Syv},aC={OPAQUE:"OPAQUE",MASK:"MASK",BLEND:"BLEND"};function aD(a){return void 0===a.DefaultMaterial&&(a.DefaultMaterial=new o.W({color:16777215,emissive:0,metalness:1,roughness:1,transparent:!1,depthTest:!0,side:n.Wl3})),a.DefaultMaterial}function aE(a,b,c){for(let d in c.extensions)void 0===a[d]&&(b.userData.gltfExtensions=b.userData.gltfExtensions||{},b.userData.gltfExtensions[d]=c.extensions[d])}function aF(a,b){void 0!==b.extras&&("object"==typeof b.extras?Object.assign(a.userData,b.extras):console.warn("THREE.GLTFLoader: Ignoring primitive type .extras, "+b.extras))}function aG(a,b){if(a.updateMorphTargets(),void 0!==b.weights)for(let c=0,d=b.weights.length;c<d;c++)a.morphTargetInfluences[c]=b.weights[c];if(b.extras&&Array.isArray(b.extras.targetNames)){let e=b.extras.targetNames;if(a.morphTargetInfluences.length===e.length){a.morphTargetDictionary={};for(let f=0,g=e.length;f<g;f++)a.morphTargetDictionary[e[f]]=f}else console.warn("THREE.GLTFLoader: Invalid extras.targetNames length. Ignoring names.")}}function aH(a){let b=a.extensions&&a.extensions[Y.KHR_DRACO_MESH_COMPRESSION],c;return b?"draco:"+b.bufferView+":"+b.indices+":"+aI(b.attributes):a.indices+":"+aI(a.attributes)+":"+a.mode}function aI(a){let b="",c=Object.keys(a).sort();for(let d=0,e=c.length;d<e;d++)b+=c[d]+":"+a[c[d]]+";";return b}function aJ(a){switch(a){case Int8Array:return 1/127;case Uint8Array:return 1/255;case Int16Array:return 1/32767;case Uint16Array:return 1/65535;default:throw Error("THREE.GLTFLoader: Unsupported normalized accessor component type.")}}class aK{constructor(a={},b={}){this.json=a,this.extensions={},this.plugins={},this.options=b,this.cache=new function(){let a={};return{get:function(b){return a[b]},add:function(b,c){a[b]=c},remove:function(b){delete a[b]},removeAll:function(){a={}}}},this.associations=new Map,this.primitiveCache={},this.meshCache={refs:{},uses:{}},this.cameraCache={refs:{},uses:{}},this.lightCache={refs:{},uses:{}},this.textureCache={},this.nodeNamesUsed={},"undefined"!=typeof createImageBitmap&& !1===/Firefox|^((?!chrome|android).)*safari/i.test(navigator.userAgent)?this.textureLoader=new r.Q(this.options.manager):this.textureLoader=new s.d(this.options.manager),this.textureLoader.setCrossOrigin(this.options.crossOrigin),this.textureLoader.setRequestHeader(this.options.requestHeader),this.fileLoader=new f.h(this.options.manager),this.fileLoader.setResponseType("arraybuffer"),"use-credentials"===this.options.crossOrigin&&this.fileLoader.setWithCredentials(!0)}setExtensions(a){this.extensions=a}setPlugins(a){this.plugins=a}parse(a,b){let c=this,d=this.json,e=this.extensions;this.cache.removeAll(),this._invokeAll(function(a){return a._markDefs&&a._markDefs()}),Promise.all(this._invokeAll(function(a){return a.beforeRoot&&a.beforeRoot()}
1)).then(function(){return Promise.all([c.getDependencies("scene"),c.getDependencies("animation"),c.getDependencies("camera")])}).then(function(b){let f={scene:b[0][d.scene||0],scenes:b[0],animations:b[1],cameras:b[2],asset:d.asset,parser:c,userData:{}};aE(e,f,d),aF(f,d),Promise.all(c._invokeAll(function(a){return a.afterRoot&&a.afterRoot(f)})).then(function(){a(f)})}).catch(b)}_markDefs(){let a=this.json.nodes||[],b=this.json.skins||[],c=this.json.meshes||[];for(let d=0,e=b.length;d<e;d++){let f=b[d].joints;for(let g=0,h=f.length;g<h;g++)a[f[g]].isBone=!0}for(let i=0,j=a.length;i<j;i++){let k=a[i];void 0!==k.mesh&&(this._addNodeRef(this.meshCache,k.mesh),void 0!==k.skin&&(c[k.mesh].isSkinnedMesh=!0)),void 0!==k.camera&&this._addNodeRef(this.cameraCache,k.camera)}}_addNodeRef(a,b){void 0!==b&&(void 0===a.refs[b]&&(a.refs[b]=a.uses[b]=0),a.refs[b]++)}_getNodeRef(a,b,c){if(a.refs[b]<=1)return c;let d=c.clone(),e=(a,b)=>{let c=this.associations.get(a);for(let[d,f]of(null!=c&&this.associations.set(b,c),a.children.entries()))e(f,b.children[d])};return e(c,d),d.name+="_instance_"+a.uses[b]++,d}_invokeOne(a){let b=Object.values(this.plugins);b.push(this);for(let c=0;c<b.length;c++){let d=a(b[c]);if(d)return d}return null}_invokeAll(a){let b=Object.values(this.plugins);b.unshift(this);let c=[];for(let d=0;d<b.length;d++){let e=a(b[d]);e&&c.push(e)}return c}getDependency(a,b){let c=a+":"+b,d=this.cache.get(c);if(!d){switch(a){case"scene":d=this.loadScene(b);break;case"node":d=this.loadNode(b);break;case"mesh":d=this._invokeOne(function(a){return a.loadMesh&&a.loadMesh(b)});break;case"accessor":d=this.loadAccessor(b);break;case"bufferView":d=this._invokeOne(function(a){return a.loadBufferView&&a.loadBufferView(b)});break;case"buffer":d=this.loadBuffer(b);break;case"material":d=this._invokeOne(function(a){return a.loadMaterial&&a.loadMaterial(b)});break;case"texture":d=this._invokeOne(function(a){return a.loadTexture&&a.loadTexture(b)});break;case"skin":d=this.loadSkin(b);break;case"animation":d=this.loadAnimation(b);break;case"camera":d=this.loadCamera(b);break;default:throw Error("Unknown type: "+a)}this.cache.add(c,d)}return d}getDependencies(a){let b=this.cache.get(a);if(!b){let c=this,d=this.json[a+("mesh"===a?"es":"s")]||[];b=Promise.all(d.map(function(b,d){return c.getDependency(a,d)})),this.cache.add(a,b)}return b}loadBuffer(a){let b=this.json.buffers[a],c=this.fileLoader;if(b.type&&"arraybuffer"!==b.type)throw Error("THREE.GLTFLoader: "+b.type+" buffer type is not supported.");if(void 0===b.uri&&0===a)return Promise.resolve(this.extensions[Y.KHR_BINARY_GLTF].body);let d=this.options;return new Promise(function(a,f){c.load(e.Z.resolveURL(b.uri,d.path),a,void 0,function(){f(Error('THREE.GLTFLoader: Failed to load buffer "'+b.uri+'".'))})})}loadBufferView(a){let b=this.json.bufferViews[a];return this.getDependency("buffer",b.buffer).then(function(a){let c=b.byteLength||0,d=b.byteOffset||0;return a.slice(d,d+c)})}loadAccessor(a){let b=this,c=this.json,d=this.json.accessors[a];if(void 0===d.bufferView&& void 0===d.sparse)return Promise.resolve(null);let e=[];return void 0!==d.bufferView?e.push(this.getDependency("bufferView",d.bufferView)):e.push(null),void 0!==d.sparse&&(e.push(this.getDependency("bufferView",d.sparse.indices.bufferView)),e.push(this.getDependency("bufferView",d.sparse.values.bufferView))),Promise.all(e).then(function(a){let e=a[0],f=ay[d.type],g=av[d.componentType],h=g.BYTES_PER_ELEMENT,i=d.byteOffset||0,j=void 0!==d.bufferView?c.bufferViews[d.bufferView].byteStride:void 0,k=!0===d.normalized,l,m;if(j&&j!==h*f){let n=Math.floor(i/j),o="InterleavedBuffer:"+d.bufferView+":"+d.componentType+":"+n+":"+d.count,p=b.cache.get(o);p||(l=new g(e,n*j,d.count*j/h),p=new t.v(l,j/h),b.cache.add(o,p)),m=new u.k(p,f,i%j/h,k)}else l=null===e?new g(d.count*f):new g(e,i,d.count*f),m=new v.Tl(l,f,k);if(void 0!==d.sparse){let q=ay.SCALAR,r=av[d.sparse.indices.componentType],s=d.sparse.indices.byteOffset||0,w=d.sparse.values.byteOffset||0,x=new r(a[1],s,d.sparse.count*q),y=new g(a[2],w,d.sparse.count*f);null!==e&&(m=new v.Tl(m.array.slice(),m.itemSize,m.normalized));for(let z=0,A=x.length;z<A;z++){let B=x[z];if(m.setX(B,y[z*f]),f>=2&&m.setY(B,y[z*f+1]),f>=3&&m.setZ(B,y[z*f+2]),f>=4&&m.setW(B,y[z*f+3]),f>=5)throw Error("THREE.GLTFLoader: Unsupported itemSize in sparse BufferAttribute.")}}return m})}loadTexture(a){let b=this.json,c=this.options,d=b.textures[a],e=b.images[d.source],f=this.textureLoader;if(e.uri){let g=c.manager.getHandler(e.uri);null!==g&&(f=g)}return this.loadTextureImage(a,e,f)}loadTextureImage(a,b,c){let d=this,f=this.json,g=this.options,h=f.textures[a],i=(b.uri||b.bufferView)+":"+h.sampler;if(this.textureCache[i])return this.textureCache[i];
1let j=self.URL||self.webkitURL,k=b.uri||"",l=!1;if(void 0!==b.bufferView)k=d.getDependency("bufferView",b.bufferView).then(function(a){l=!0;let c=new Blob([a],{type:b.mimeType});return k=j.createObjectURL(c)});else if(void 0===b.uri)throw Error("THREE.GLTFLoader: Image "+a+" is missing URI and bufferView");let m=Promise.resolve(k).then(function(a){return new Promise(function(b,d){let f=b;!0===c.isImageBitmapLoader&&(f=function(a){let c=new w.x(a);c.needsUpdate=!0,b(c)}),c.load(e.Z.resolveURL(a,g.path),f,void 0,d)})}).then(function(b){!0===l&&j.revokeObjectURL(k),b.flipY=!1,h.name&&(b.name=h.name);let c=f.samplers||{},e=c[h.sampler]||{};return b.magFilter=aw[e.magFilter]||n.wem,b.minFilter=aw[e.minFilter]||n.D1R,b.wrapS=ax[e.wrapS]||n.rpg,b.wrapT=ax[e.wrapT]||n.rpg,d.associations.set(b,{textures:a}),b}).catch(function(){return console.error("THREE.GLTFLoader: Couldn't load texture",k),null});return this.textureCache[i]=m,m}assignTexture(a,b,c){let d=this;return this.getDependency("texture",c.index).then(function(e){if(void 0===c.texCoord||0==c.texCoord||"aoMap"===b&&1==c.texCoord||console.warn("THREE.GLTFLoader: Custom UV set "+c.texCoord+" for texture "+b+" not yet supported."),d.extensions[Y.KHR_TEXTURE_TRANSFORM]){let f=void 0!==c.extensions?c.extensions[Y.KHR_TEXTURE_TRANSFORM]:void 0;if(f){let g=d.associations.get(e);e=d.extensions[Y.KHR_TEXTURE_TRANSFORM].extendTexture(e,f),d.associations.set(e,g)}}return a[b]=e,e})}assignFinalMaterial(a){let b=a.geometry,c=a.material,d=void 0===b.attributes.tangent,e=void 0!==b.attributes.color,f=void 0===b.attributes.normal;if(a.isPoints){let g="PointsMaterial:"+c.uuid,h=this.cache.get(g);h||(h=new x.U,y.F.prototype.copy.call(h,c),h.color.copy(c.color),h.map=c.map,h.sizeAttenuation=!1,this.cache.add(g,h)),c=h}else if(a.isLine){let i="LineBasicMaterial:"+c.uuid,j=this.cache.get(i);j||(j=new z.n,y.F.prototype.copy.call(j,c),j.color.copy(c.color),this.cache.add(i,j)),c=j}if(d||e||f){let k="ClonedMaterial:"+c.uuid+":";c.isGLTFSpecularGlossinessMaterial&&(k+="specular-glossiness:"),d&&(k+="derivative-tangents:"),e&&(k+="vertex-colors:"),f&&(k+="flat-shading:");let l=this.cache.get(k);l||(l=c.clone(),e&&(l.vertexColors=!0),f&&(l.flatShading=!0),d&&(l.normalScale&&(l.normalScale.y*=-1),l.clearcoatNormalScale&&(l.clearcoatNormalScale.y*=-1)),this.cache.add(k,l),this.associations.set(l,this.associations.get(c))),c=l}c.aoMap&& void 0===b.attributes.uv2&& void 0!==b.attributes.uv&&b.setAttribute("uv2",b.attributes.uv),a.material=c}getMaterialType(){return o.W}loadMaterial(a){let b=this,c=this.json,d=this.extensions,e=c.materials[a],f,h={},i=e.extensions||{},j=[];if(i[Y.KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS]){let l=d[Y.KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS];f=l.getMaterialType(),j.push(l.extendParams(h,e,b))}else if(i[Y.KHR_MATERIALS_UNLIT]){let o=d[Y.KHR_MATERIALS_UNLIT];f=o.getMaterialType(),j.push(o.extendParams(h,e,b))}else{let p=e.pbrMetallicRoughness||{};if(h.color=new g.I(1,1,1),h.opacity=1,Array.isArray(p.baseColorFactor)){let q=p.baseColorFactor;h.color.fromArray(q),h.opacity=q[3]}void 0!==p.baseColorTexture&&j.push(b.assignTexture(h,"map",p.baseColorTexture)),h.metalness=void 0!==p.metallicFactor?p.metallicFactor:1,h.roughness=void 0!==p.roughnessFactor?p.roughnessFactor:1,void 0!==p.metallicRoughnessTexture&&(j.push(b.assignTexture(h,"metalnessMap",p.metallicRoughnessTexture)),j.push(b.assignTexture(h,"roughnessMap",p.metallicRoughnessTexture))),f=this._invokeOne(function(b){return b.getMaterialType&&b.getMaterialType(a)}),j.push(Promise.all(this._invokeAll(function(b){return b.extendMaterialParams&&b.extendMaterialParams(a,h)})))}!0===e.doubleSided&&(h.side=n.ehD);let r=e.alphaMode||aC.OPAQUE;if(r===aC.BLEND?(h.transparent=!0,h.depthWrite=!1):(h.transparent=!1,r===aC.MASK&&(h.alphaTest=void 0!==e.alphaCutoff?e.alphaCutoff:.5)),void 0!==e.normalTexture&&f!==k.v&&(j.push(b.assignTexture(h,"normalMap",e.normalTexture)),h.normalScale=new m.F(1,1),void 0!==e.normalTexture.scale)){let s=e.normalTexture.scale;h.normalScale.set(s,s)}return void 0!==e.occlusionTexture&&f!==k.v&&(j.push(b.assignTexture(h,"aoMap",e.occlusionTexture)),void 0!==e.occlusionTexture.strength&&(h.aoMapIntensity=e.occlusionTexture.strength)),void 0!==e.emissiveFactor&&f!==k.v&&(h.emissive=new g.I().fromArray(e.emissiveFactor)),void 0!==e.emissiveTexture&&f!==k.v&&j.push(b.assignTexture(h,"emissiveMap",e.emissiveTexture)),Promise.all(j).then(function(){let c;return c=f===ao?d[Y.KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS].createMaterial(h):new f(h),e.name&&(c.name=e.name),c.map&&(c.map.encoding=n.knz),c.emissiveMap&&(c.emissiveMap.encoding=n.knz),aF(c,e),b.associations.set(c,{materials:a}),e.extensions&&aE(d,c,e),c})}createUniqueName(a){let b=A.i.sanitizeNodeName(a||""),c=b;for(let d=1;this.nodeNamesUsed[c];++d)c=b+"_"+d;return this.nodeNamesUsed[c]=!0,c}loadGeometries(a){let b=this,c=this.extensions,d=this.primitiveCache;function e(a){return c[Y.KHR_DRACO_MESH_COMPRESSION].decodePrimitive(a,b).then(function(c){return aM(c,a,b)})}let f=[];for(let g=0,h=a.length;g<h;g++){let i=a[g],j=aH(i),k=d[j];if(k)f.push(k.promise);else{let l;l=i.extensions&&i.extensions[Y.KHR_DRACO_MESH_COMPRESSION]?e(i):aM(new B.u,i,b),d[j]={primitive:i,promise:l},f.push(l)}}return Promise.all(f)}loadMesh(a){let b=this,c=this.json,d=this.extensions,e=c.meshes[a],f=e.primitives,g=[];for(let h=0,i=f.length;h<i;h++){let j=void 0===f[h].material?aD(this.cache):this.getDependency("material",f[h].material);g.push(j)}return g.push(b.loadGeometries(f)),Promise.all(g).then(function(c){let g=c.slice(0,c.length-1),h=c[c.length-1],i=[];for(let j=0,k=h.length;j<k;j++){let l=h[j],m=f[j],o,p=g[j];if(m.mode===au.TRIANGLES||m.mode===au.TRIANGLE_STRIP||m.mode===au.TRIANGLE_FAN|| void 0===m.mode)!0!==(o=!0===e.isSkinnedMesh?new C.T(l,p):new D.K(l,p)).isSkinnedMesh||o.geometry.attributes.skinWeight.normalized||o.normalizeSkinWeights(),m.mode===au.TRIANGLE_STRIP?o.geometry=aN(o.geometry,n.UlW):m.mode===au.TRIANGLE_FAN&&(o.geometry=aN(o.geometry,n.z$h));else if(m.mode===au.LINES)o=new E.e(l,p);else if(m.mode===au.LINE_STRIP)o=new F.x(l,p);else if(m.mode===au.LINE_LOOP)o=new G.b(l,p);else if(m.mode===au.POINTS)o=new H.w(l,p);else throw Error("THREE.GLTFLoader: Primitive mode unsupported: "+m.mode);Object.keys(o.geometry.morphAttributes).length>0&&aG(o,e),o.name=b.createUniqueName(e.name||"mesh_"+a),aF(o,e),m.extensions&&aE(d,o,m),b.assignFinalMaterial(o),i.push(o)}for(let q=0,r=i.length;q<r;q++)b.associations.set(i[q],{meshes:a,primitives:q});if(1===i.length)return i[0];let s=new I.Z;b.associations.set(s,{meshes:a});for(let t=0,u=i.length;t<u;t++)s.add(i[t]);return s})}loadCamera(a){let b,c=this.json.cameras[a],d=c[c.type];if(!d){console.warn("THREE.GLTFLoader: Missing camera parameters.");return}return"perspective"===c.type?b=new J.c(K.radToDeg(d.yfov),d.aspectRatio||1,d.znear||1,d.zfar||2e6):"orthographic"===c.type&&(b=new L.i(-d.xmag,d.xmag,d.ymag,-d.ymag,d.znear,d.zfar)),c.name&&(b.name=this.createUniqueName(c.name)),aF(b,c),Promise.resolve(b)}loadSkin(a){let b=this.json.skins[a],c={joints:b.joints};return void 0===b.inverseBindMatrices?Promise.resolve(c):this.getDependency("accessor",b.inverseBindMatrices).then(function(a){return c.inverseBindMatrices=a,c})}loadAnimation(a){let b=this.json,c=b.animations[a],d=[],e=[],f=[],g=[],h=[];for(let i=0,j=c.channels.length;i<j;i++){let k=c.channels[i],l=c.samplers[k.sampler],m=k.target,o=void 0!==m.node?m.node:m.id,p=void 0!==c.parameters?c.parameters[l.input]:l.input,q=void 0!==c.parameters?c.parameters[l.output]:l.output;d.push(this.getDependency("node",o)),e.push(this.getDependency("accessor",p)),f.push(this.getDependency("accessor",q)),g.push(l),h.push(m)}return Promise.all([Promise.all(d),Promise.all(e),Promise.all(f),Promise.all(g),Promise.all(h)]).then(function(b){let d=b[0],e=b[1],f=b[2],g=b[3],h=b[4],i=[];for(let j=0,k=d.length;j<k;j++){let l=d[j],m=e[j],o=f[j],p=g[j],q=h[j];if(void 0===l)continue;l.updateMatrix(),l.matrixAutoUpdate=!0;let r;switch(aA[q.path]){case aA.weights:r=M.d;break;case aA.rotation:r=N.i;break;case aA.position:case aA.scale:default:r=O.y}let s=l.name?l.name:l.uuid,t=void 0!==p.interpolation?aB[p.interpolation]:n.NMF,u=[];aA[q.path]===aA.weights?l.traverse(function(a){a.morphTargetInfluences&&u.push(a.name?a.name:a.uuid)}):u.push(s);let v=o.array;if(o.normalized){let w=aJ(v.constructor),x=new Float32Array(v.length);for(let y=0,z=v.length;y<z;y++)x[y]=v[y]*w;v=x}for(let A=0,B=u.length;A<B;A++){let C=new r(u[A]+"."+aA[q.path],m.array,v,t);
1"CUBICSPLINE"===p.interpolation&&(C.createInterpolant=function(a){let b=this instanceof N.i?at:ar;return new b(this.times,this.values,this.getValueSize()/3,a)},C.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline=!0),i.push(C)}}let D=c.name?c.name:"animation_"+a;return new P.m(D,void 0,i)})}createNodeMesh(a){let b=this.json,c=this,d=b.nodes[a];return void 0===d.mesh?null:c.getDependency("mesh",d.mesh).then(function(a){let b=c._getNodeRef(c.meshCache,d.mesh,a);return void 0!==d.weights&&b.traverse(function(a){if(a.isMesh)for(let b=0,c=d.weights.length;b<c;b++)a.morphTargetInfluences[b]=d.weights[b]}),b})}loadNode(a){let b=this.json,c=this.extensions,d=this,e=b.nodes[a],f=e.name?d.createUniqueName(e.name):"";return(function(){let b=[],c=d._invokeOne(function(b){return b.createNodeMesh&&b.createNodeMesh(a)});return c&&b.push(c),void 0!==e.camera&&b.push(d.getDependency("camera",e.camera).then(function(a){return d._getNodeRef(d.cameraCache,e.camera,a)})),d._invokeAll(function(b){return b.createNodeAttachment&&b.createNodeAttachment(a)}).forEach(function(a){b.push(a)}),Promise.all(b)})().then(function(b){let g;if((g=!0===e.isBone?new Q.N:b.length>1?new I.Z:1===b.length?b[0]:new R.T)!==b[0])for(let h=0,i=b.length;h<i;h++)g.add(b[h]);
1if(e.name&&(g.userData.name=e.name,g.name=f),aF(g,e),e.extensions&&aE(c,g,e),void 0!==e.matrix){let j=new S.y;j.fromArray(e.matrix),g.applyMatrix4(j)}else void 0!==e.translation&&g.position.fromArray(e.translation),void 0!==e.rotation&&g.quaternion.fromArray(e.rotation),void 0!==e.scale&&g.scale.fromArray(e.scale);return d.associations.has(g)||d.associations.set(g,{}),d.associations.get(g).nodes=a,g})}loadScene(a){let b=this.json,c=this.extensions,d=this.json.scenes[a],e=this,f=new I.Z;d.name&&(f.name=e.createUniqueName(d.name)),aF(f,d),d.extensions&&aE(c,f,d);let g=d.nodes||[],h=[];for(let i=0,j=g.length;i<j;i++)h.push(aL(g[i],f,b,e));return Promise.all(h).then(function(){return e.associations=(a=>{let b=new Map;for(let[c,d]of e.associations)(c instanceof y.F||c instanceof w.x)&&b.set(c,d);return a.traverse(a=>{let c=e.associations.get(a);null!=c&&b.set(a,c)}),b})(f),f})}}function aL(a,b,c,d){let e=c.nodes[a];return d.getDependency("node",a).then(function(a){if(void 0===e.skin)return a;let b;return d.getDependency("skin",e.skin).then(function(a){b=a;let c=[];for(let e=0,f=b.joints.length;e<f;e++)c.push(d.getDependency("node",b.joints[e]));return Promise.all(c)}).then(function(c){return a.traverse(function(a){if(!a.isMesh)return;let d=[],e=[];for(let f=0,g=c.length;f<g;f++){let h=c[f];if(h){d.push(h);let i=new S.y;void 0!==b.inverseBindMatrices&&i.fromArray(b.inverseBindMatrices.array,16*f),e.push(i)}else console.warn('THREE.GLTFLoader: Joint "%s" could not be found.',b.joints[f])}a.bind(new T.O(d,e),a.matrixWorld)}),a})}).then(function(a){b.add(a);let f=[];if(e.children){let g=e.children;for(let h=0,i=g.length;h<i;h++){let j=g[h];f.push(aL(j,a,c,d))}}return Promise.all(f)})}function aM(a,b,c){let d=b.attributes,e=[];function f(b,d){return c.getDependency("accessor",b).then(function(b){a.setAttribute(d,b)})}for(let g in d){let h=az[g]||g.toLowerCase();h in a.attributes||e.push(f(d[g],h))}if(void 0!==b.indices&&!a.index){let i=c.getDependency("accessor",b.indices).then(function(b){a.setIndex(b)});e.push(i)}return aF(a,b),!function(a,b,c){let d=b.attributes,e=new U.Z;if(void 0===d.POSITION)return;{let f=c.json.accessors[d.POSITION],g=f.min,h=f.max;if(void 0!==g&& void 0!==h){if(e.set(new V.P(g[0],g[1],g[2]),new V.P(h[0],h[1],h[2])),f.normalized){let i=aJ(av[f.componentType]);e.min.multiplyScalar(i),e.max.multiplyScalar(i)}}else{console.warn("THREE.GLTFLoader: Missing min/max properties for accessor POSITION.");return}}let j=b.targets;if(void 0!==j){let k=new V.P,l=new V.P;for(let m=0,n=j.length;m<n;m++){let o=j[m];if(void 0!==o.POSITION){let p=c.json.accessors[o.POSITION],q=p.min,r=p.max;if(void 0!==q&& void 0!==r){if(l.setX(Math.max(Math.abs(q[0]),Math.abs(r[0]))),l.setY(Math.max(Math.abs(q[1]),Math.abs(r[1]))),l.setZ(Math.max(Math.abs(q[2]),Math.abs(r[2]))),p.normalized){let s=aJ(av[p.componentType]);l.multiplyScalar(s)}k.max(l)}else console.warn("THREE.GLTFLoader: Missing min/max properties for accessor POSITION.")}}e.expandByVector(k)}a.boundingBox=e;let t=new W.a;e.getCenter(t.center),t.radius=e.min.distanceTo(e.max)/2,a.boundingSphere=t}(a,b,c),Promise.all(e).then(function(){return void 0!==b.targets?function(a,b,c){let d=!1,e=!1;for(let f=0,g=b.length;f<g;f++){let h=b[f];if(void 0!==h.POSITION&&(d=!0),void 0!==h.NORMAL&&(e=!0),d&&e)break}if(!d&&!e)return Promise.resolve(a);let i=[],j=[];for(let k=0,l=b.length;k<l;k++){let m=b[k];if(d){let n=void 0!==m.POSITION?c.getDependency("accessor",m.POSITION):a.attributes.position;i.push(n)}if(e){let o=void 0!==m.NORMAL?c.getDependency("accessor",m.NORMAL):a.attributes.normal;j.push(o)}}return Promise.all([Promise.all(i),Promise.all(j)]).then(function(b){let c=b[0],f=b[1];return d&&(a.morphAttributes.position=c),e&&(a.morphAttributes.normal=f),a.morphTargetsRelative=!0,a})}(a,b.targets,c):a})}function aN(a,b){let c=a.getIndex();if(null===c){let d=[],e=a.getAttribute("position");if(void 0===e)return console.error("THREE.GLTFLoader.toTrianglesDrawMode(): Undefined position attribute. Processing not possible."),a;for(let f=0;f<e.count;f++)d.push(f);a.setIndex(d),c=a.getIndex()}let g=c.count-2,h=[];if(b===n.z$h)for(let i=1;i<=g;i++)h.push(c.getX(0)),h.push(c.getX(i)),h.push(c.getX(i+1));else for(let j=0;j<g;j++)j%2==0?(h.push(c.getX(j)),h.push(c.getX(j+1)),h.push(c.getX(j+2))):(h.push(c.getX(j+2)),h.push(c.getX(j+1)),h.push(c.getX(j)));h.length/3!==g&&console.error("THREE.GLTFLoader.toTrianglesDrawMode(): Unable to generate correct amount of triangles.");let k=a.clone();return k.setIndex(h),k}},18998:function(a,b,c){"use strict";c.d(b,{G:function(){return h}});var d=c(64063),e=c.n(d);let f=[];function g(a,b,c,d=0,f=!1){for(let g of b)if(e()(c,g.args)){if(f)return;if(g.error)throw g.error;if(g.response)return g.response;throw g.promise}let h={args:c,promise:a(...c).then(a=>h.response=null==a||a).catch(a=>h.error=null!=a?a:"unknown error").then(()=>{d>0&&setTimeout(()=>{let a=b.indexOf(h);-1!==a&&b.splice(a,1)},d)})};if(b.push(h),!f)throw h.promise}function h(a,...b){return g(a,f,b,h.lifespan)}h.lifespan=0,h.clear=(...a)=>
1(function a(b,...c){if(void 0===c||0===c.length)b.splice(0,b.length);else{let d=b.find(a=>e()(c,a.args));if(d){let f=b.indexOf(d);-1!==f&&b.splice(f,1)}}})(f,...a),h.preload=(a,...b)=>void g(a,f,b,h.lifespan,!0),h.peek=(...a)=>{var b;return null==(b=f.find(b=>e()(a,b.args)))?void 0:b.response}},47568:function(a,b,c){"use strict";function d(a,b,c,d,e,f,g){try{var h=a[f](g),i=h.value}catch(j){c(j);return}h.done?b(i):Promise.resolve(i).then(d,e)}function e(a){return function(){var b=this,c=arguments;return new Promise(function(e,f){var g=a.apply(b,c);function h(a){d(g,e,f,h,i,"next",a)}function i(a){d(g,e,f,h,i,"throw",a)}h(void 0)})}}c.d(b,{Z:function(){return e}})},40872:function(a,b,c){"use strict";function d(){return(d=Object.assign||function(a){for(var b=1;b<arguments.length;b++){var c=arguments[b];for(var d in c)Object.prototype.hasOwnProperty.call(c,d)&&(a[d]=c[d])}return a}).apply(this,arguments)}function e(){return d.apply(this,arguments)}c.d(b,{Z:function(){return e}})},46513:function(a,b,c){"use strict";c.d(b,{"_":function(){return k}});var d=c(70655),e=c(24394),f=c(77107),g=c(5759);function h(){var a=!1,b=[],c=new Set,h={subscribe:function(a){return c.add(a),function(){c.delete(a)}},start:function(d,e){if(!a)return new Promise(function(a){b.push({animation:[d,e],resolve:a})});var g=[];return c.forEach(function(a){g.push((0,f.d5)(a,d,{transitionOverride:e}))}),Promise.all(g)},set:function(b){return(0,e.k)(a,"controls.set() should only be called after a component has mounted. Consider calling within a useEffect hook."),c.forEach(function(a){(0,g.gg)(a,b)})},stop:function(){c.forEach(function(a){(0,f.p_)(a)})},mount:function(){return a=!0,b.forEach(function(a){var b=a.animation,c=a.resolve;h.start.apply(h,(0,d.ev)([],(0,d.CR)(b),!1)).then(c)}),function(){a=!1,h.stop()}}};return h}var i=c(67294),j=c(96681);function k(){var a=(0,j.h)(h);return(0,i.useEffect)(a.mount,[]),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.