hytopia 0.6.20 → 0.6.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bun-server.mjs +3 -3
- package/node-server.mjs +2 -2
- package/package.json +1 -1
package/bun-server.mjs
CHANGED
@@ -403,7 +403,7 @@ For example, you can use the \`pathToFileURL()\` method of the \`url\` core modu
|
|
403
403
|
Instead, \`yield\` should either be called with a value, or not be called at all. For example:
|
404
404
|
if (condition) { yield value; }`)};import{Buffer as IW1}from"buffer";import{StringDecoder as vW1}from"string_decoder";var ZU=(Z,J,X)=>{if(X)return;if(Z)return{transform:SW1.bind(void 0,new TextEncoder)};let Y=new vW1(J);return{transform:_W1.bind(void 0,Y),final:AW1.bind(void 0,Y)}},SW1=function*(Z,J){if(IW1.isBuffer(J))yield e7(J);else if(typeof J==="string")yield Z.encode(J);else yield J},_W1=function*(Z,J){yield m8(J)?Z.write(J):J},AW1=function*(Z){let J=Z.end();if(J!=="")yield J};import{callbackify as mm}from"util";var jN=mm(async(Z,J,X,Y)=>{J.currentIterable=Z(...X);try{for await(let $ of J.currentIterable)Y.push($)}finally{delete J.currentIterable}}),JU=async function*(Z,J,X){if(X===J.length){yield Z;return}let{transform:Y=hW1}=J[X];for await(let $ of Y(Z))yield*JU($,J,X+1)},um=async function*(Z){for(let[J,{final:X}]of Object.entries(Z))yield*xW1(X,Number(J),Z)},xW1=async function*(Z,J,X){if(Z===void 0)return;for await(let Y of Z())yield*JU(Y,X,J+1)},dm=mm(async({currentIterable:Z},J)=>{if(Z!==void 0){await(J?Z.throw(J):Z.return());return}if(J)throw J}),hW1=function*(Z){yield Z};var ON=(Z,J,X,Y)=>{try{for(let $ of Z(...J))X.push($);Y()}catch($){Y($)}},cm=(Z,J)=>[...J.flatMap((X)=>[...pX(X,Z,0)]),..._3(Z)],pX=function*(Z,J,X){if(X===J.length){yield Z;return}let{transform:Y=bW1}=J[X];for(let $ of Y(Z))yield*pX($,J,X+1)},_3=function*(Z){for(let[J,{final:X}]of Object.entries(Z))yield*fW1(X,Number(J),Z)},fW1=function*(Z,J,X){if(Z===void 0)return;for(let Y of Z())yield*pX(Y,X,J+1)},bW1=function*(Z){yield Z};var MN=({value:Z,value:{transform:J,final:X,writableObjectMode:Y,readableObjectMode:$},optionName:Q},{encoding:K})=>{let W={},G=pm(Z,K,Q),z=lX(J),V=lX(X),H=z?jN.bind(void 0,JU,W):ON.bind(void 0,pX),q=z||V?jN.bind(void 0,um,W):ON.bind(void 0,_3),F=z||V?dm.bind(void 0,W):void 0;return{stream:new yW1({writableObjectMode:Y,writableHighWaterMark:lm(Y),readableObjectMode:$,readableHighWaterMark:lm($),transform(w,L,j){H([w,G,0],this,j)},flush(w){q([G],this,w)},destroy:F})}},XU=(Z,J,X,Y)=>{let $=J.filter(({type:K})=>K==="generator"),Q=Y?$.reverse():$;for(let{value:K,optionName:W}of Q){let G=pm(K,X,W);Z=cm(G,Z)}return Z},pm=({transform:Z,final:J,binary:X,writableObjectMode:Y,readableObjectMode:$,preserveNewlines:Q},K,W)=>{let G={};return[{transform:bm(Y,W)},ZU(X,K,Y),eF(X,Q,Y,G),{transform:Z,final:J},{transform:ym($,W)},fm({binary:X,preserveNewlines:Q,readableObjectMode:$,state:G})].filter(Boolean)};var im=(Z,J)=>{for(let X of gW1(Z))mW1(Z,X,J)},gW1=(Z)=>new Set(Object.entries(Z).filter(([,{direction:J}])=>J==="input").map(([J])=>Number(J))),mW1=(Z,J,X)=>{let{stdioItems:Y}=Z[J],$=Y.filter(({contents:W})=>W!==void 0);if($.length===0)return;if(J!==0){let[{type:W,optionName:G}]=$;throw new TypeError(`Only the \`stdin\` option, not \`${G}\`, can be ${$J[W]} with synchronous methods.`)}let K=$.map(({contents:W})=>W).map((W)=>uW1(W,Y));X.input=D3(K)},uW1=(Z,J)=>{let X=XU(Z,J,"utf8",!0);return dW1(X),D3(X)},dW1=(Z)=>{let J=Z.find((X)=>typeof X!=="string"&&!m8(X));if(J!==void 0)throw new TypeError(`The \`stdin\` option is invalid: when passing objects as input, a transform must be used to serialize them to strings or Uint8Arrays: ${J}.`)};import{writeFileSync as iW1,appendFileSync as nW1}from"fs";var YU=({stdioItems:Z,encoding:J,verboseInfo:X,fdNumber:Y})=>Y!=="all"&&WQ(X,Y)&&!u5.has(J)&&cW1(Y)&&(Z.some(({type:$,value:Q})=>$==="native"&&lW1.has(Q))||Z.every(({type:$})=>U9.has($))),cW1=(Z)=>Z===1||Z===2,lW1=new Set(["pipe","overlapped"]),nm=async(Z,J,X,Y)=>{for await(let $ of Z)if(!pW1(J))sm($,X,Y)},am=(Z,J,X)=>{for(let Y of Z)sm(Y,J,X)},pW1=(Z)=>Z._readableState.pipes.length>0,sm=(Z,J,X)=>{let Y=UF(Z);p4({type:"output",verboseMessage:Y,fdNumber:J,verboseInfo:X})};var om=({fileDescriptors:Z,syncResult:{output:J},options:X,isMaxBuffer:Y,verboseInfo:$})=>{if(J===null)return{output:Array.from({length:3})};let Q={},K=new Set([]);return{output:J.map((G,z)=>aW1({result:G,fileDescriptors:Z,fdNumber:z,state:Q,outputFiles:K,isMaxBuffer:Y,verboseInfo:$},X)),...Q}},aW1=({result:Z,fileDescriptors:J,fdNumber:X,state:Y,outputFiles:$,isMaxBuffer:Q,verboseInfo:K},{buffer:W,encoding:G,lines:z,stripFinalNewline:V,maxBuffer:H})=>{if(Z===null)return;let q=rg(Z,Q,H),F=e7(q),{stdioItems:U,objectMode:w}=J[X],L=sW1([F],U,G,Y),{serializedResult:j,finalResult:R=j}=oW1({chunks:L,objectMode:w,encoding:G,lines:z,stripFinalNewline:V,fdNumber:X});rW1({serializedResult:j,fdNumber:X,state:Y,verboseInfo:K,encoding:G,stdioItems:U,objectMode:w});let O=W[X]?R:void 0;try{if(Y.error===void 0)tW1(j,U,$);return O}catch(N){return Y.error=N,O}},sW1=(Z,J,X,Y)=>{try{return XU(Z,J,X,!1)}catch($){return Y.error=$,Z}},oW1=({chunks:Z,objectMode:J,encoding:X,lines:Y,stripFinalNewline:$,fdNumber:Q})=>{if(J)return{serializedResult:Z};if(X==="buffer")return{serializedResult:D3(Z)};let K=Hb(Z,X);if(Y[Q])return{serializedResult:K,finalResult:BN(K,!$[Q],J)};return{serializedResult:K}},rW1=({serializedResult:Z,fdNumber:J,state:X,verboseInfo:Y,encoding:$,stdioItems:Q,objectMode:K})=>{if(!YU({stdioItems:Q,encoding:$,verboseInfo:Y,fdNumber:J}))return;let W=BN(Z,!1,K);try{am(W,J,Y)}catch(G){X.error??=G}},tW1=(Z,J,X)=>{for(let{path:Y,append:$}of J.filter(({type:Q})=>rF.has(Q))){let Q=typeof Y==="string"?Y:Y.toString();if($||X.has(Q))nW1(Y,Z);else X.add(Q),iW1(Y,Z)}};var rm=([,Z,J],X)=>{if(!X.all)return;if(Z===void 0)return J;if(J===void 0)return Z;if(Array.isArray(Z))return Array.isArray(J)?[...Z,...J]:[...Z,YZ(J,X,"all")];if(Array.isArray(J))return[YZ(Z,X,"all"),...J];if(m8(Z)&&m8(J))return TR([Z,J]);return`${Z}${J}`};import{once as RN}from"events";var tm=async(Z,J)=>{let[X,Y]=await eW1(Z);return J.isForcefullyTerminated??=!1,[X,Y]},eW1=async(Z)=>{let[J,X]=await Promise.allSettled([RN(Z,"spawn"),RN(Z,"exit")]);if(J.status==="rejected")return[];return X.status==="rejected"?em(Z):X.value},em=async(Z)=>{try{return await RN(Z,"exit")}catch{return em(Z)}},Zu=async(Z)=>{let[J,X]=await Z;if(!Z31(J,X)&&NN(J,X))throw new i4;return[J,X]},Z31=(Z,J)=>Z===void 0&&J===void 0,NN=(Z,J)=>Z!==0||J!==null;var Ju=({error:Z,status:J,signal:X,output:Y},{maxBuffer:$})=>{let Q=J31(Z,J,X),K=Q?.code==="ETIMEDOUT",W=og(Q,Y,$);return{resultError:Q,exitCode:J,signal:X,timedOut:K,isMaxBuffer:W}},J31=(Z,J,X)=>{if(Z!==void 0)return Z;return NN(J,X)?new i4:void 0};var Xu=(Z,J,X)=>{let{file:Y,commandArguments:$,command:Q,escapedCommand:K,startTime:W,verboseInfo:G,options:z,fileDescriptors:V}=Y31(Z,J,X),H=K31({file:Y,commandArguments:$,options:z,command:Q,escapedCommand:K,verboseInfo:G,fileDescriptors:V,startTime:W});return wQ(H,G,z)},Y31=(Z,J,X)=>{let{command:Y,escapedCommand:$,startTime:Q,verboseInfo:K}=wF(Z,J,X),W=$31(X),{file:G,commandArguments:z,options:V}=gF(Z,J,W);Q31(V);let H=_m(V,K);return{file:G,commandArguments:z,command:Y,escapedCommand:$,startTime:Q,verboseInfo:K,options:V,fileDescriptors:H}},$31=(Z)=>Z.node&&!Z.ipc?{...Z,ipc:!1}:Z,Q31=({ipc:Z,ipcInput:J,detached:X,cancelSignal:Y})=>{if(J)$U("ipcInput");if(Z)$U("ipc: true");if(X)$U("detached: true");if(Y)$U("cancelSignal")},$U=(Z)=>{throw new TypeError(`The "${Z}" option cannot be used with synchronous methods.`)},K31=({file:Z,commandArguments:J,options:X,command:Y,escapedCommand:$,verboseInfo:Q,fileDescriptors:K,startTime:W})=>{let G=W31({file:Z,commandArguments:J,options:X,command:Y,escapedCommand:$,fileDescriptors:K,startTime:W});if(G.failed)return G;let{resultError:z,exitCode:V,signal:H,timedOut:q,isMaxBuffer:F}=Ju(G,X),{output:U,error:w=z}=om({fileDescriptors:K,syncResult:G,options:X,isMaxBuffer:F,verboseInfo:Q}),L=U.map((R,O)=>YZ(R,X,O)),j=YZ(rm(U,X),X,"all");return z31({error:w,exitCode:V,signal:H,timedOut:q,isMaxBuffer:F,stdio:L,all:j,options:X,command:Y,escapedCommand:$,startTime:W})},W31=({file:Z,commandArguments:J,options:X,command:Y,escapedCommand:$,fileDescriptors:Q,startTime:K})=>{try{im(Q,X);let W=G31(X);return X31(Z,J,W)}catch(W){return LQ({error:W,command:Y,escapedCommand:$,fileDescriptors:Q,options:X,startTime:K,isSync:!0})}},G31=({encoding:Z,maxBuffer:J,...X})=>({...X,encoding:"buffer",maxBuffer:nF(J)}),z31=({error:Z,exitCode:J,signal:X,timedOut:Y,isMaxBuffer:$,stdio:Q,all:K,options:W,command:G,escapedCommand:z,startTime:V})=>Z===void 0?aF({command:G,escapedCommand:z,stdio:Q,all:K,ipcOutput:[],options:W,startTime:V}):S3({error:Z,command:G,escapedCommand:z,timedOut:Y,isCanceled:!1,isGracefullyCanceled:!1,isMaxBuffer:$,isForcefullyTerminated:!1,exitCode:J,signal:X,stdio:Q,all:K,ipcOutput:[],options:W,startTime:V,isSync:!0});import{setMaxListeners as oG1}from"events";import{spawn as rG1}from"child_process";import Wu from"process";import{once as PN,on as V31}from"events";var Yu=({anyProcess:Z,channel:J,isSubprocess:X,ipc:Y},{reference:$=!0,filter:Q}={})=>{return VQ({methodName:"getOneMessage",isSubprocess:X,ipc:Y,isConnected:AF(Z)}),H31({anyProcess:Z,channel:J,isSubprocess:X,filter:Q,reference:$})},H31=async({anyProcess:Z,channel:J,isSubprocess:X,filter:Y,reference:$})=>{IF(J,$);let Q=YJ(Z,J,X),K=new AbortController;try{return await Promise.race([q31(Q,Y,K),F31(Q,X,K),U31(Q,X,K)])}catch(W){throw HQ(Z),W}finally{K.abort(),vF(J,$)}},q31=async(Z,J,{signal:X})=>{if(J===void 0){let[Y]=await PN(Z,"message",{signal:X});return Y}for await(let[Y]of V31(Z,"message",{signal:X}))if(J(Y))return Y},F31=async(Z,J,{signal:X})=>{await PN(Z,"disconnect",{signal:X}),dy(J)},U31=async(Z,J,{signal:X})=>{let[Y]=await PN(Z,"strict:error",{signal:X});throw TF(Y,J)};import{once as Qu,on as L31}from"events";var Ku=({anyProcess:Z,channel:J,isSubprocess:X,ipc:Y},{reference:$=!0}={})=>DN({anyProcess:Z,channel:J,isSubprocess:X,ipc:Y,shouldAwait:!X,reference:$}),DN=({anyProcess:Z,channel:J,isSubprocess:X,ipc:Y,shouldAwait:$,reference:Q})=>{VQ({methodName:"getEachMessage",isSubprocess:X,ipc:Y,isConnected:AF(Z)}),IF(J,Q);let K=YJ(Z,J,X),W=new AbortController,G={};return w31(Z,K,W),B31({ipcEmitter:K,isSubprocess:X,controller:W,state:G}),j31({anyProcess:Z,channel:J,ipcEmitter:K,isSubprocess:X,shouldAwait:$,controller:W,state:G,reference:Q})},w31=async(Z,J,X)=>{try{await Qu(J,"disconnect",{signal:X.signal}),X.abort()}catch{}},B31=async({ipcEmitter:Z,isSubprocess:J,controller:X,state:Y})=>{try{let[$]=await Qu(Z,"strict:error",{signal:X.signal});Y.error=TF($,J),X.abort()}catch{}},j31=async function*({anyProcess:Z,channel:J,ipcEmitter:X,isSubprocess:Y,shouldAwait:$,controller:Q,state:K,reference:W}){try{for await(let[G]of L31(X,"message",{signal:Q.signal}))$u(K),yield G}catch{$u(K)}finally{if(Q.abort(),vF(J,W),!Y)HQ(Z);if($)await Z}},$u=({error:Z})=>{if(Z)throw Z};var Gu=(Z,{ipc:J})=>{Object.assign(Z,Vu(Z,!1,J))},zu=()=>{let Z=Wu,J=!0,X=Wu.channel!==void 0;return{...Vu(Z,!0,X),getCancelSignal:Lg.bind(void 0,{anyProcess:Z,channel:Z.channel,isSubprocess:!0,ipc:X})}},Vu=(Z,J,X)=>({sendMessage:bF.bind(void 0,{anyProcess:Z,channel:Z.channel,isSubprocess:J,ipc:X}),getOneMessage:Yu.bind(void 0,{anyProcess:Z,channel:Z.channel,isSubprocess:J,ipc:X}),getEachMessage:Ku.bind(void 0,{anyProcess:Z,channel:Z.channel,isSubprocess:J,ipc:X})});import{ChildProcess as O31}from"child_process";import{PassThrough as M31,Readable as R31,Writable as N31,Duplex as P31}from"stream";var Hu=({error:Z,command:J,escapedCommand:X,fileDescriptors:Y,options:$,startTime:Q,verboseInfo:K})=>{UN(Y);let W=new O31;D31(W,Y),Object.assign(W,{readable:C31,writable:T31,duplex:k31});let G=LQ({error:Z,command:J,escapedCommand:X,fileDescriptors:Y,options:$,startTime:Q,isSync:!1}),z=E31(G,K,$);return{subprocess:W,promise:z}},D31=(Z,J)=>{let X=A3(),Y=A3(),$=A3(),Q=Array.from({length:J.length-3},A3),K=A3(),W=[X,Y,$,...Q];Object.assign(Z,{stdin:X,stdout:Y,stderr:$,all:K,stdio:W})},A3=()=>{let Z=new M31;return Z.end(),Z},C31=()=>new R31({read(){}}),T31=()=>new N31({write(){}}),k31=()=>new P31({read(){},write(){}}),E31=async(Z,J,X)=>wQ(Z,J,X);import{createReadStream as qu,createWriteStream as Fu}from"fs";import{Buffer as I31}from"buffer";import{Readable as x3,Writable as v31,Duplex as S31}from"stream";var Lu=(Z,J)=>tF(_31,Z,J,!1),h3=({type:Z,optionName:J})=>{throw new TypeError(`The \`${J}\` option cannot be ${$J[Z]}.`)},Uu={fileNumber:h3,generator:MN,asyncGenerator:MN,nodeStream:({value:Z})=>({stream:Z}),webTransform({value:{transform:Z,writableObjectMode:J,readableObjectMode:X}}){let Y=J||X;return{stream:S31.fromWeb(Z,{objectMode:Y})}},duplex:({value:{transform:Z}})=>({stream:Z}),native(){}},_31={input:{...Uu,fileUrl:({value:Z})=>({stream:qu(Z)}),filePath:({value:{file:Z}})=>({stream:qu(Z)}),webStream:({value:Z})=>({stream:x3.fromWeb(Z)}),iterable:({value:Z})=>({stream:x3.from(Z)}),asyncIterable:({value:Z})=>({stream:x3.from(Z)}),string:({value:Z})=>({stream:x3.from(Z)}),uint8Array:({value:Z})=>({stream:x3.from(I31.from(Z))})},output:{...Uu,fileUrl:({value:Z})=>({stream:Fu(Z)}),filePath:({value:{file:Z,append:J}})=>({stream:Fu(Z,J?{flags:"a"}:{})}),webStream:({value:Z})=>({stream:v31.fromWeb(Z)}),iterable:h3,asyncIterable:h3,string:h3,uint8Array:h3}};import{on as A31,once as wu}from"events";import{PassThrough as x31,getDefaultHighWaterMark as h31}from"stream";import{finished as Ou}from"stream/promises";function iX(Z){if(!Array.isArray(Z))throw new TypeError(`Expected an array, got \`${typeof Z}\`.`);for(let $ of Z)CN($);let J=Z.some(({readableObjectMode:$})=>$),X=f31(Z,J),Y=new Mu({objectMode:J,writableHighWaterMark:X,readableHighWaterMark:X});for(let $ of Z)Y.add($);return Y}var f31=(Z,J)=>{if(Z.length===0)return h31(J);let X=Z.filter(({readableObjectMode:Y})=>Y===J).map(({readableHighWaterMark:Y})=>Y);return Math.max(...X)};class Mu extends x31{#Z=new Set([]);#J=new Set([]);#Y=new Set([]);#X;#$=Symbol("unpipe");#V=new WeakMap;add(Z){if(CN(Z),this.#Z.has(Z))return;this.#Z.add(Z),this.#X??=b31(this,this.#Z,this.#$);let J=m31({passThroughStream:this,stream:Z,streams:this.#Z,ended:this.#J,aborted:this.#Y,onFinished:this.#X,unpipeEvent:this.#$});this.#V.set(Z,J),Z.pipe(this,{end:!1})}async remove(Z){if(CN(Z),!this.#Z.has(Z))return!1;let J=this.#V.get(Z);if(J===void 0)return!1;return this.#V.delete(Z),Z.unpipe(this),await J,!0}}var b31=async(Z,J,X)=>{QU(Z,Bu);let Y=new AbortController;try{await Promise.race([y31(Z,Y),g31(Z,J,X,Y)])}finally{Y.abort(),QU(Z,-Bu)}},y31=async(Z,{signal:J})=>{try{await Ou(Z,{signal:J,cleanup:!0})}catch(X){throw Ru(Z,X),X}},g31=async(Z,J,X,{signal:Y})=>{for await(let[$]of A31(Z,"unpipe",{signal:Y}))if(J.has($))$.emit(X)},CN=(Z)=>{if(typeof Z?.pipe!=="function")throw new TypeError(`Expected a readable stream, got: \`${typeof Z}\`.`)},m31=async({passThroughStream:Z,stream:J,streams:X,ended:Y,aborted:$,onFinished:Q,unpipeEvent:K})=>{QU(Z,ju);let W=new AbortController;try{await Promise.race([u31(Q,J,W),d31({passThroughStream:Z,stream:J,streams:X,ended:Y,aborted:$,controller:W}),c31({stream:J,streams:X,ended:Y,aborted:$,unpipeEvent:K,controller:W})])}finally{W.abort(),QU(Z,-ju)}if(X.size>0&&X.size===Y.size+$.size)if(Y.size===0&&$.size>0)TN(Z);else l31(Z)},u31=async(Z,J,{signal:X})=>{try{if(await Z,!X.aborted)TN(J)}catch(Y){if(!X.aborted)Ru(J,Y)}},d31=async({passThroughStream:Z,stream:J,streams:X,ended:Y,aborted:$,controller:{signal:Q}})=>{try{if(await Ou(J,{signal:Q,cleanup:!0,readable:!0,writable:!1}),X.has(J))Y.add(J)}catch(K){if(Q.aborted||!X.has(J))return;if(Nu(K))$.add(J);else Pu(Z,K)}},c31=async({stream:Z,streams:J,ended:X,aborted:Y,unpipeEvent:$,controller:{signal:Q}})=>{if(await wu(Z,$,{signal:Q}),!Z.readable)return wu(Q,"abort",{signal:Q});J.delete(Z),X.delete(Z),Y.delete(Z)},l31=(Z)=>{if(Z.writable)Z.end()},Ru=(Z,J)=>{if(Nu(J))TN(Z);else Pu(Z,J)},Nu=(Z)=>Z?.code==="ERR_STREAM_PREMATURE_CLOSE",TN=(Z)=>{if(Z.readable||Z.writable)Z.destroy()},Pu=(Z,J)=>{if(!Z.destroyed)Z.once("error",p31),Z.destroy(J)},p31=()=>{},QU=(Z,J)=>{let X=Z.getMaxListeners();if(X!==0&&X!==Number.POSITIVE_INFINITY)Z.setMaxListeners(X+J)},Bu=2,ju=1;import{finished as Du}from"stream/promises";var jQ=(Z,J)=>{Z.pipe(J),i31(Z,J),n31(Z,J)},i31=async(Z,J)=>{if(X4(Z)||X4(J))return;try{await Du(Z,{cleanup:!0,readable:!0,writable:!1})}catch{}kN(J)},kN=(Z)=>{if(Z.writable)Z.end()},n31=async(Z,J)=>{if(X4(Z)||X4(J))return;try{await Du(J,{cleanup:!0,readable:!1,writable:!0})}catch{}EN(Z)},EN=(Z)=>{if(Z.readable)Z.destroy()};var Cu=(Z,J,X)=>{let Y=new Map;for(let[$,{stdioItems:Q,direction:K}]of Object.entries(J)){for(let{stream:W}of Q.filter(({type:G})=>U9.has(G)))a31(Z,W,K,$);for(let{stream:W}of Q.filter(({type:G})=>!U9.has(G)))o31({subprocess:Z,stream:W,direction:K,fdNumber:$,pipeGroups:Y,controller:X})}for(let[$,Q]of Y.entries()){let K=Q.length===1?Q[0]:iX(Q);jQ(K,$)}},a31=(Z,J,X,Y)=>{if(X==="output")jQ(Z.stdio[Y],J);else jQ(J,Z.stdio[Y]);let $=s31[Y];if($!==void 0)Z[$]=J;Z.stdio[Y]=J},s31=["stdin","stdout","stderr"],o31=({subprocess:Z,stream:J,direction:X,fdNumber:Y,pipeGroups:$,controller:Q})=>{if(J===void 0)return;r31(J,Q);let[K,W]=X==="output"?[J,Z.stdio[Y]]:[Z.stdio[Y],J],G=$.get(K)??[];$.set(K,[...G,W])},r31=(Z,{signal:J})=>{if(X4(Z))dX(Z,t31,J)},t31=2;import{addAbortListener as JG1}from"events";var nX=[];nX.push("SIGHUP","SIGINT","SIGTERM");if(process.platform!=="win32")nX.push("SIGALRM","SIGABRT","SIGVTALRM","SIGXCPU","SIGXFSZ","SIGUSR2","SIGTRAP","SIGSYS","SIGQUIT","SIGIOT");if(process.platform==="linux")nX.push("SIGIO","SIGPOLL","SIGPWR","SIGSTKFLT");var KU=(Z)=>!!Z&&typeof Z==="object"&&typeof Z.removeListener==="function"&&typeof Z.emit==="function"&&typeof Z.reallyExit==="function"&&typeof Z.listeners==="function"&&typeof Z.kill==="function"&&typeof Z.pid==="number"&&typeof Z.on==="function",IN=Symbol.for("signal-exit emitter"),vN=globalThis,e31=Object.defineProperty.bind(Object);class Tu{emitted={afterExit:!1,exit:!1};listeners={afterExit:[],exit:[]};count=0;id=Math.random();constructor(){if(vN[IN])return vN[IN];e31(vN,IN,{value:this,writable:!1,enumerable:!1,configurable:!1})}on(Z,J){this.listeners[Z].push(J)}removeListener(Z,J){let X=this.listeners[Z],Y=X.indexOf(J);if(Y===-1)return;if(Y===0&&X.length===1)X.length=0;else X.splice(Y,1)}emit(Z,J,X){if(this.emitted[Z])return!1;this.emitted[Z]=!0;let Y=!1;for(let $ of this.listeners[Z])Y=$(J,X)===!0||Y;if(Z==="exit")Y=this.emit("afterExit",J,X)||Y;return Y}}class _N{}var ZG1=(Z)=>{return{onExit(J,X){return Z.onExit(J,X)},load(){return Z.load()},unload(){return Z.unload()}}};class ku extends _N{onExit(){return()=>{}}load(){}unload(){}}class Eu extends _N{#Z=SN.platform==="win32"?"SIGINT":"SIGHUP";#J=new Tu;#Y;#X;#$;#V={};#q=!1;constructor(Z){super();this.#Y=Z,this.#V={};for(let J of nX)this.#V[J]=()=>{let X=this.#Y.listeners(J),{count:Y}=this.#J,$=Z;if(typeof $.__signal_exit_emitter__==="object"&&typeof $.__signal_exit_emitter__.count==="number")Y+=$.__signal_exit_emitter__.count;if(X.length===Y){this.unload();let Q=this.#J.emit("exit",null,J),K=J==="SIGHUP"?this.#Z:J;if(!Q)Z.kill(Z.pid,K)}};this.#$=Z.reallyExit,this.#X=Z.emit}onExit(Z,J){if(!KU(this.#Y))return()=>{};if(this.#q===!1)this.load();let X=J?.alwaysLast?"afterExit":"exit";return this.#J.on(X,Z),()=>{if(this.#J.removeListener(X,Z),this.#J.listeners.exit.length===0&&this.#J.listeners.afterExit.length===0)this.unload()}}load(){if(this.#q)return;this.#q=!0,this.#J.count+=1;for(let Z of nX)try{let J=this.#V[Z];if(J)this.#Y.on(Z,J)}catch(J){}this.#Y.emit=(Z,...J)=>{return this.#G(Z,...J)},this.#Y.reallyExit=(Z)=>{return this.#W(Z)}}unload(){if(!this.#q)return;this.#q=!1,nX.forEach((Z)=>{let J=this.#V[Z];if(!J)throw new Error("Listener not defined for signal: "+Z);try{this.#Y.removeListener(Z,J)}catch(X){}}),this.#Y.emit=this.#X,this.#Y.reallyExit=this.#$,this.#J.count-=1}#W(Z){if(!KU(this.#Y))return 0;return this.#Y.exitCode=Z||0,this.#J.emit("exit",this.#Y.exitCode,null),this.#$.call(this.#Y,this.#Y.exitCode)}#G(Z,...J){let X=this.#X;if(Z==="exit"&&KU(this.#Y)){if(typeof J[0]==="number")this.#Y.exitCode=J[0];let Y=X.call(this.#Y,Z,...J);return this.#J.emit("exit",this.#Y.exitCode,null),Y}else return X.call(this.#Y,Z,...J)}}var SN=globalThis.process,{onExit:Iu,load:AQ6,unload:xQ6}=ZG1(KU(SN)?new Eu(SN):new ku);var vu=(Z,{cleanup:J,detached:X},{signal:Y})=>{if(!J||X)return;let $=Iu(()=>{Z.kill()});JG1(Y,()=>{$()})};var _u=({source:Z,sourcePromise:J,boundOptions:X,createNested:Y},...$)=>{let Q=LF(),{destination:K,destinationStream:W,destinationError:G,from:z,unpipeSignal:V}=XG1(X,Y,$),{sourceStream:H,sourceError:q}=$G1(Z,z),{options:F,fileDescriptors:U}=a4.get(Z);return{sourcePromise:J,sourceStream:H,sourceOptions:F,sourceError:q,destination:K,destinationStream:W,destinationError:G,unpipeSignal:V,fileDescriptors:U,startTime:Q}},XG1=(Z,J,X)=>{try{let{destination:Y,pipeOptions:{from:$,to:Q,unpipeSignal:K}={}}=YG1(Z,J,...X),W=EF(Y,Q);return{destination:Y,destinationStream:W,from:$,unpipeSignal:K}}catch(Y){return{destinationError:Y}}},YG1=(Z,J,X,...Y)=>{if(Array.isArray(X))return{destination:J(Su,Z)(X,...Y),pipeOptions:Z};if(typeof X==="string"||X instanceof URL||DR(X)){if(Object.keys(Z).length>0)throw new TypeError('Please use .pipe("file", ..., options) or .pipe(execa("file", ..., options)) instead of .pipe(options)("file", ...).');let[$,Q,K]=QF(X,...Y);return{destination:J(Su)($,Q,K),pipeOptions:K}}if(a4.has(X)){if(Object.keys(Z).length>0)throw new TypeError("Please use .pipe(options)`command` or .pipe($(options)`command`) instead of .pipe(options)($`command`).");return{destination:X,pipeOptions:Y[0]}}throw new TypeError(`The first argument must be a template string, an options object, or an Execa subprocess: ${X}`)},Su=({options:Z})=>({options:{...Z,stdin:"pipe",piped:!0}}),$G1=(Z,J)=>{try{return{sourceStream:qQ(Z,J)}}catch(X){return{sourceError:X}}};var xu=({sourceStream:Z,sourceError:J,destinationStream:X,destinationError:Y,fileDescriptors:$,sourceOptions:Q,startTime:K})=>{let W=QG1({sourceStream:Z,sourceError:J,destinationStream:X,destinationError:Y});if(W!==void 0)throw AN({error:W,fileDescriptors:$,sourceOptions:Q,startTime:K})},QG1=({sourceStream:Z,sourceError:J,destinationStream:X,destinationError:Y})=>{if(J!==void 0&&Y!==void 0)return Y;if(Y!==void 0)return EN(Z),Y;if(J!==void 0)return kN(X),J},AN=({error:Z,fileDescriptors:J,sourceOptions:X,startTime:Y})=>LQ({error:Z,command:Au,escapedCommand:Au,fileDescriptors:J,options:X,startTime:Y,isSync:!1}),Au="source.pipe(destination)";var hu=async(Z)=>{let[{status:J,reason:X,value:Y=X},{status:$,reason:Q,value:K=Q}]=await Z;if(!K.pipedFrom.includes(Y))K.pipedFrom.push(Y);if($==="rejected")throw K;if(J==="rejected")throw Y;return K};import{finished as KG1}from"stream/promises";var fu=(Z,J,X)=>{let Y=WU.has(J)?GG1(Z,J):WG1(Z,J);return dX(Z,VG1,X.signal),dX(J,HG1,X.signal),zG1(J),Y},WG1=(Z,J)=>{let X=iX([Z]);return jQ(X,J),WU.set(J,X),X},GG1=(Z,J)=>{let X=WU.get(J);return X.add(Z),X},zG1=async(Z)=>{try{await KG1(Z,{cleanup:!0,readable:!1,writable:!0})}catch{}WU.delete(Z)},WU=new WeakMap,VG1=2,HG1=1;import{aborted as qG1}from"util";var bu=(Z,J)=>Z===void 0?[]:[FG1(Z,J)],FG1=async(Z,{sourceStream:J,mergedStream:X,fileDescriptors:Y,sourceOptions:$,startTime:Q})=>{await qG1(Z,J),await X.remove(J);let K=new Error("Pipe canceled by `unpipeSignal` option.");throw AN({error:K,fileDescriptors:Y,sourceOptions:$,startTime:Q})};var GU=(Z,...J)=>{if(j8(J[0]))return GU.bind(void 0,{...Z,boundOptions:{...Z.boundOptions,...J[0]}});let{destination:X,...Y}=_u(Z,...J),$=UG1({...Y,destination:X});return $.pipe=GU.bind(void 0,{...Z,source:X,sourcePromise:$,boundOptions:{}}),$},UG1=async({sourcePromise:Z,sourceStream:J,sourceOptions:X,sourceError:Y,destination:$,destinationStream:Q,destinationError:K,unpipeSignal:W,fileDescriptors:G,startTime:z})=>{let V=LG1(Z,$);xu({sourceStream:J,sourceError:Y,destinationStream:Q,destinationError:K,fileDescriptors:G,sourceOptions:X,startTime:z});let H=new AbortController;try{let q=fu(J,Q,H);return await Promise.race([hu(V),...bu(W,{sourceStream:J,mergedStream:q,sourceOptions:X,fileDescriptors:G,startTime:z})])}finally{H.abort()}},LG1=(Z,J)=>Promise.allSettled([Z,J]);import{setImmediate as NG1}from"timers/promises";import{on as wG1}from"events";import{getDefaultHighWaterMark as BG1}from"stream";var zU=({subprocessStdout:Z,subprocess:J,binary:X,shouldEncode:Y,encoding:$,preserveNewlines:Q})=>{let K=new AbortController;return jG1(J,K),gu({stream:Z,controller:K,binary:X,shouldEncode:!Z.readableObjectMode&&Y,encoding:$,shouldSplit:!Z.readableObjectMode,preserveNewlines:Q})},jG1=async(Z,J)=>{try{await Z}catch{}finally{J.abort()}},xN=({stream:Z,onStreamEnd:J,lines:X,encoding:Y,stripFinalNewline:$,allMixed:Q})=>{let K=new AbortController;OG1(J,K,Z);let W=Z.readableObjectMode&&!Q;return gu({stream:Z,controller:K,binary:Y==="buffer",shouldEncode:!W,encoding:Y,shouldSplit:!W&&X,preserveNewlines:!$})},OG1=async(Z,J,X)=>{try{await Z}catch{X.destroy()}finally{J.abort()}},gu=({stream:Z,controller:J,binary:X,shouldEncode:Y,encoding:$,shouldSplit:Q,preserveNewlines:K})=>{let W=wG1(Z,"data",{signal:J.signal,highWaterMark:yu,highWatermark:yu});return MG1({onStdoutChunk:W,controller:J,binary:X,shouldEncode:Y,encoding:$,shouldSplit:Q,preserveNewlines:K})},hN=BG1(!0),yu=hN,MG1=async function*({onStdoutChunk:Z,controller:J,binary:X,shouldEncode:Y,encoding:$,shouldSplit:Q,preserveNewlines:K}){let W=RG1({binary:X,shouldEncode:Y,encoding:$,shouldSplit:Q,preserveNewlines:K});try{for await(let[G]of Z)yield*pX(G,W,0)}catch(G){if(!J.signal.aborted)throw G}finally{yield*_3(W)}},RG1=({binary:Z,shouldEncode:J,encoding:X,shouldSplit:Y,preserveNewlines:$})=>[ZU(Z,X,!J),eF(Z,$,!Y,{})].filter(Boolean);var mu=async({stream:Z,onStreamEnd:J,fdNumber:X,encoding:Y,buffer:$,maxBuffer:Q,lines:K,allMixed:W,stripFinalNewline:G,verboseInfo:z,streamInfo:V})=>{let H=PG1({stream:Z,onStreamEnd:J,fdNumber:X,encoding:Y,allMixed:W,verboseInfo:z,streamInfo:V});if(!$){await Promise.all([DG1(Z),H]);return}let q=LN(G,X),F=xN({stream:Z,onStreamEnd:J,lines:K,encoding:Y,stripFinalNewline:q,allMixed:W}),[U]=await Promise.all([CG1({stream:Z,iterable:F,fdNumber:X,encoding:Y,maxBuffer:Q,lines:K}),H]);return U},PG1=async({stream:Z,onStreamEnd:J,fdNumber:X,encoding:Y,allMixed:$,verboseInfo:Q,streamInfo:{fileDescriptors:K}})=>{if(!YU({stdioItems:K[X]?.stdioItems,encoding:Y,verboseInfo:Q,fdNumber:X}))return;let W=xN({stream:Z,onStreamEnd:J,lines:!0,encoding:Y,stripFinalNewline:!0,allMixed:$});await nm(W,Z,X,Q)},DG1=async(Z)=>{if(await NG1(),Z.readableFlowing===null)Z.resume()},CG1=async({stream:Z,stream:{readableObjectMode:J},iterable:X,fdNumber:Y,encoding:$,maxBuffer:Q,lines:K})=>{try{if(J||K)return await cF(X,{maxBuffer:Q});if($==="buffer")return new Uint8Array(await lF(X,{maxBuffer:Q}));return await iF(X,{maxBuffer:Q})}catch(W){return uu(ng({error:W,stream:Z,readableObjectMode:J,lines:K,encoding:$,fdNumber:Y}))}},fN=async(Z)=>{try{return await Z}catch(J){return uu(J)}},uu=({bufferedData:Z})=>zb(Z)?new Uint8Array(Z):Z;import{finished as TG1}from"stream/promises";var f3=async(Z,J,X,{isSameDirection:Y,stopOnExit:$=!1}={})=>{let Q=kG1(Z,X),K=new AbortController;try{await Promise.race([...$?[X.exitPromise]:[],TG1(Z,{cleanup:!0,signal:K.signal})])}catch(W){if(!Q.stdinCleanedUp)vG1(W,J,X,Y)}finally{K.abort()}},kG1=(Z,{originalStreams:[J],subprocess:X})=>{let Y={stdinCleanedUp:!1};if(Z===J)EG1(Z,X,Y);return Y},EG1=(Z,J,X)=>{let{_destroy:Y}=Z;Z._destroy=(...$)=>{IG1(J,X),Y.call(Z,...$)}},IG1=({exitCode:Z,signalCode:J},X)=>{if(Z!==null||J!==null)X.stdinCleanedUp=!0},vG1=(Z,J,X,Y)=>{if(!SG1(Z,J,X,Y))throw Z},SG1=(Z,J,X,Y=!0)=>{if(X.propagating)return du(Z)||VU(Z);return X.propagating=!0,bN(X,J)===Y?du(Z):VU(Z)},bN=({fileDescriptors:Z},J)=>J!=="all"&&Z[J].direction==="input",VU=(Z)=>Z?.code==="ERR_STREAM_PREMATURE_CLOSE",du=(Z)=>Z?.code==="EPIPE";var cu=({subprocess:Z,encoding:J,buffer:X,maxBuffer:Y,lines:$,stripFinalNewline:Q,verboseInfo:K,streamInfo:W})=>Z.stdio.map((G,z)=>yN({stream:G,fdNumber:z,encoding:J,buffer:X[z],maxBuffer:Y[z],lines:$[z],allMixed:!1,stripFinalNewline:Q,verboseInfo:K,streamInfo:W})),yN=async({stream:Z,fdNumber:J,encoding:X,buffer:Y,maxBuffer:$,lines:Q,allMixed:K,stripFinalNewline:W,verboseInfo:G,streamInfo:z})=>{if(!Z)return;let V=f3(Z,J,z);if(bN(z,J)){await V;return}let[H]=await Promise.all([mu({stream:Z,onStreamEnd:V,fdNumber:J,encoding:X,buffer:Y,maxBuffer:$,lines:Q,allMixed:K,stripFinalNewline:W,verboseInfo:G,streamInfo:z}),V]);return H};var lu=({stdout:Z,stderr:J},{all:X})=>X&&(Z||J)?iX([Z,J].filter(Boolean)):void 0,pu=({subprocess:Z,encoding:J,buffer:X,maxBuffer:Y,lines:$,stripFinalNewline:Q,verboseInfo:K,streamInfo:W})=>yN({..._G1(Z,X),fdNumber:"all",encoding:J,maxBuffer:Y[1]+Y[2],lines:$[1]||$[2],allMixed:AG1(Z),stripFinalNewline:Q,verboseInfo:K,streamInfo:W}),_G1=({stdout:Z,stderr:J,all:X},[,Y,$])=>{let Q=Y||$;if(!Q)return{stream:X,buffer:Q};if(!Y)return{stream:J,buffer:Q};if(!$)return{stream:Z,buffer:Q};return{stream:X,buffer:Q}},AG1=({all:Z,stdout:J,stderr:X})=>Z&&J&&X&&J.readableObjectMode!==X.readableObjectMode;import{once as xG1}from"events";var iu=(Z)=>WQ(Z,"ipc"),nu=(Z,J)=>{let X=UF(Z);p4({type:"ipc",verboseMessage:X,fdNumber:"ipc",verboseInfo:J})};var au=async({subprocess:Z,buffer:J,maxBuffer:X,ipc:Y,ipcOutput:$,verboseInfo:Q})=>{if(!Y)return $;let K=iu(Q),W=ZZ(J,"ipc"),G=ZZ(X,"ipc");for await(let z of DN({anyProcess:Z,channel:Z.channel,isSubprocess:!1,ipc:Y,shouldAwait:!1,reference:!0})){if(W)ag(Z,$,G),$.push(z);if(K)nu(z,Q)}return $},su=async(Z,J)=>{return await Promise.allSettled([Z]),J};var ou=async({subprocess:Z,options:{encoding:J,buffer:X,maxBuffer:Y,lines:$,timeoutDuration:Q,cancelSignal:K,gracefulCancel:W,forceKillAfterDelay:G,stripFinalNewline:z,ipc:V,ipcInput:H},context:q,verboseInfo:F,fileDescriptors:U,originalStreams:w,onInternalError:L,controller:j})=>{let R=tm(Z,q),O={originalStreams:w,fileDescriptors:U,subprocess:Z,exitPromise:R,propagating:!1},N=cu({subprocess:Z,encoding:J,buffer:X,maxBuffer:Y,lines:$,stripFinalNewline:z,verboseInfo:F,streamInfo:O}),D=pu({subprocess:Z,encoding:J,buffer:X,maxBuffer:Y,lines:$,stripFinalNewline:z,verboseInfo:F,streamInfo:O}),P=[],C=au({subprocess:Z,buffer:X,maxBuffer:Y,ipc:V,ipcOutput:P,verboseInfo:F}),T=hG1(w,Z,O),k=fG1(U,O);try{return await Promise.race([Promise.all([{},Zu(R),Promise.all(N),D,C,Cg(Z,H),...T,...k]),L,bG1(Z,j),...Mg(Z,Q,q,j),...uy({subprocess:Z,cancelSignal:K,gracefulCancel:W,context:q,controller:j}),...jg({subprocess:Z,cancelSignal:K,gracefulCancel:W,forceKillAfterDelay:G,context:q,controller:j})])}catch(A){return q.terminationReason??="other",Promise.all([{error:A},R,Promise.all(N.map((S)=>fN(S))),fN(D),su(C,P),Promise.allSettled(T),Promise.allSettled(k)])}},hG1=(Z,J,X)=>Z.map((Y,$)=>Y===J.stdio[$]?void 0:f3(Y,$,X)),fG1=(Z,J)=>Z.flatMap(({stdioItems:X},Y)=>X.filter(({value:$,stream:Q=$})=>$4(Q,{checkOpen:!1})&&!X4(Q)).map(({type:$,value:Q,stream:K=Q})=>f3(K,Y,J,{isSameDirection:U9.has($),stopOnExit:$==="native"}))),bG1=async(Z,{signal:J})=>{let[X]=await xG1(Z,"error",{signal:J});throw X};var ru=()=>({readableDestroy:new WeakMap,writableFinal:new WeakMap,writableDestroy:new WeakMap}),b3=(Z,J,X)=>{let Y=Z[X];if(!Y.has(J))Y.set(J,[]);let $=Y.get(J),Q=n4();return $.push(Q),{resolve:Q.resolve.bind(Q),promises:$}},OQ=async({resolve:Z,promises:J},X)=>{Z();let[Y]=await Promise.race([Promise.allSettled([!0,X]),Promise.all([!1,...J])]);return!Y};import{Readable as yG1}from"stream";import{callbackify as gG1}from"util";import{finished as tu}from"stream/promises";var gN=async(Z)=>{if(Z===void 0)return;try{await mN(Z)}catch{}},eu=async(Z)=>{if(Z===void 0)return;try{await uN(Z)}catch{}},mN=async(Z)=>{await tu(Z,{cleanup:!0,readable:!1,writable:!0})},uN=async(Z)=>{await tu(Z,{cleanup:!0,readable:!0,writable:!1})},HU=async(Z,J)=>{if(await Z,J)throw J},qU=(Z,J,X)=>{if(X&&!VU(X))Z.destroy(X);else if(J)Z.destroy()};var Zd=({subprocess:Z,concurrentStreams:J,encoding:X},{from:Y,binary:$=!0,preserveNewlines:Q=!0}={})=>{let K=$||u5.has(X),{subprocessStdout:W,waitReadableDestroy:G}=dN(Z,Y,J),{readableEncoding:z,readableObjectMode:V,readableHighWaterMark:H}=cN(W,K),{read:q,onStdoutDataDone:F}=lN({subprocessStdout:W,subprocess:Z,binary:K,encoding:X,preserveNewlines:Q}),U=new yG1({read:q,destroy:gG1(iN.bind(void 0,{subprocessStdout:W,subprocess:Z,waitReadableDestroy:G})),highWaterMark:H,objectMode:V,encoding:z});return pN({subprocessStdout:W,onStdoutDataDone:F,readable:U,subprocess:Z}),U},dN=(Z,J,X)=>{let Y=qQ(Z,J),$=b3(X,Y,"readableDestroy");return{subprocessStdout:Y,waitReadableDestroy:$}},cN=({readableEncoding:Z,readableObjectMode:J,readableHighWaterMark:X},Y)=>Y?{readableEncoding:Z,readableObjectMode:J,readableHighWaterMark:X}:{readableEncoding:Z,readableObjectMode:!0,readableHighWaterMark:hN},lN=({subprocessStdout:Z,subprocess:J,binary:X,encoding:Y,preserveNewlines:$})=>{let Q=n4(),K=zU({subprocessStdout:Z,subprocess:J,binary:X,shouldEncode:!X,encoding:Y,preserveNewlines:$});return{read(){mG1(this,K,Q)},onStdoutDataDone:Q}},mG1=async(Z,J,X)=>{try{let{value:Y,done:$}=await J.next();if($)X.resolve();else Z.push(Y)}catch{}},pN=async({subprocessStdout:Z,onStdoutDataDone:J,readable:X,subprocess:Y,subprocessStdin:$})=>{try{if(await uN(Z),await Y,await gN($),await J,X.readable)X.push(null)}catch(Q){await gN($),Jd(X,Q)}},iN=async({subprocessStdout:Z,subprocess:J,waitReadableDestroy:X},Y)=>{if(await OQ(X,J))Jd(Z,Y),await HU(J,Y)},Jd=(Z,J)=>{qU(Z,Z.readable,J)};import{Writable as uG1}from"stream";import{callbackify as Xd}from"util";var Yd=({subprocess:Z,concurrentStreams:J},{to:X}={})=>{let{subprocessStdin:Y,waitWritableFinal:$,waitWritableDestroy:Q}=nN(Z,X,J),K=new uG1({...aN(Y,Z,$),destroy:Xd(oN.bind(void 0,{subprocessStdin:Y,subprocess:Z,waitWritableFinal:$,waitWritableDestroy:Q})),highWaterMark:Y.writableHighWaterMark,objectMode:Y.writableObjectMode});return sN(Y,K),K},nN=(Z,J,X)=>{let Y=EF(Z,J),$=b3(X,Y,"writableFinal"),Q=b3(X,Y,"writableDestroy");return{subprocessStdin:Y,waitWritableFinal:$,waitWritableDestroy:Q}},aN=(Z,J,X)=>({write:dG1.bind(void 0,Z),final:Xd(cG1.bind(void 0,Z,J,X))}),dG1=(Z,J,X,Y)=>{if(Z.write(J,X))Y();else Z.once("drain",Y)},cG1=async(Z,J,X)=>{if(await OQ(X,J)){if(Z.writable)Z.end();await J}},sN=async(Z,J,X)=>{try{if(await mN(Z),J.writable)J.end()}catch(Y){await eu(X),$d(J,Y)}},oN=async({subprocessStdin:Z,subprocess:J,waitWritableFinal:X,waitWritableDestroy:Y},$)=>{if(await OQ(X,J),await OQ(Y,J))$d(Z,$),await HU(J,$)},$d=(Z,J)=>{qU(Z,Z.writable,J)};import{Duplex as lG1}from"stream";import{callbackify as pG1}from"util";var Qd=({subprocess:Z,concurrentStreams:J,encoding:X},{from:Y,to:$,binary:Q=!0,preserveNewlines:K=!0}={})=>{let W=Q||u5.has(X),{subprocessStdout:G,waitReadableDestroy:z}=dN(Z,Y,J),{subprocessStdin:V,waitWritableFinal:H,waitWritableDestroy:q}=nN(Z,$,J),{readableEncoding:F,readableObjectMode:U,readableHighWaterMark:w}=cN(G,W),{read:L,onStdoutDataDone:j}=lN({subprocessStdout:G,subprocess:Z,binary:W,encoding:X,preserveNewlines:K}),R=new lG1({read:L,...aN(V,Z,H),destroy:pG1(iG1.bind(void 0,{subprocessStdout:G,subprocessStdin:V,subprocess:Z,waitReadableDestroy:z,waitWritableFinal:H,waitWritableDestroy:q})),readableHighWaterMark:w,writableHighWaterMark:V.writableHighWaterMark,readableObjectMode:U,writableObjectMode:V.writableObjectMode,encoding:F});return pN({subprocessStdout:G,onStdoutDataDone:j,readable:R,subprocess:Z,subprocessStdin:V}),sN(V,R,G),R},iG1=async({subprocessStdout:Z,subprocessStdin:J,subprocess:X,waitReadableDestroy:Y,waitWritableFinal:$,waitWritableDestroy:Q},K)=>{await Promise.all([iN({subprocessStdout:Z,subprocess:X,waitReadableDestroy:Y},K),oN({subprocessStdin:J,subprocess:X,waitWritableFinal:$,waitWritableDestroy:Q},K)])};var rN=(Z,J,{from:X,binary:Y=!1,preserveNewlines:$=!1}={})=>{let Q=Y||u5.has(J),K=qQ(Z,X),W=zU({subprocessStdout:K,subprocess:Z,binary:Q,shouldEncode:!0,encoding:J,preserveNewlines:$});return nG1(W,K,Z)},nG1=async function*(Z,J,X){try{yield*Z}finally{if(J.readable)J.destroy();await X}};var Kd=(Z,{encoding:J})=>{let X=ru();Z.readable=Zd.bind(void 0,{subprocess:Z,concurrentStreams:X,encoding:J}),Z.writable=Yd.bind(void 0,{subprocess:Z,concurrentStreams:X}),Z.duplex=Qd.bind(void 0,{subprocess:Z,concurrentStreams:X,encoding:J}),Z.iterable=rN.bind(void 0,Z,J),Z[Symbol.asyncIterator]=rN.bind(void 0,Z,J,{})};var Wd=(Z,J)=>{for(let[X,Y]of sG1){let $=Y.value.bind(J);Reflect.defineProperty(Z,X,{...Y,value:$})}},aG1=(async()=>{})().constructor.prototype,sG1=["then","catch","finally"].map((Z)=>[Z,Reflect.getOwnPropertyDescriptor(aG1,Z)]);var Gd=(Z,J,X,Y)=>{let{file:$,commandArguments:Q,command:K,escapedCommand:W,startTime:G,verboseInfo:z,options:V,fileDescriptors:H}=tG1(Z,J,X),{subprocess:q,promise:F}=Zz1({file:$,commandArguments:Q,options:V,startTime:G,verboseInfo:z,command:K,escapedCommand:W,fileDescriptors:H});return q.pipe=GU.bind(void 0,{source:q,sourcePromise:F,boundOptions:{},createNested:Y}),Wd(q,F),a4.set(q,{options:V,fileDescriptors:H}),q},tG1=(Z,J,X)=>{let{command:Y,escapedCommand:$,startTime:Q,verboseInfo:K}=wF(Z,J,X),{file:W,commandArguments:G,options:z}=gF(Z,J,X),V=eG1(z),H=Lu(V,K);return{file:W,commandArguments:G,command:Y,escapedCommand:$,startTime:Q,verboseInfo:K,options:V,fileDescriptors:H}},eG1=({timeout:Z,signal:J,...X})=>{if(J!==void 0)throw new TypeError('The "signal" option has been renamed to "cancelSignal" instead.');return{...X,timeoutDuration:Z}},Zz1=({file:Z,commandArguments:J,options:X,startTime:Y,verboseInfo:$,command:Q,escapedCommand:K,fileDescriptors:W})=>{let G;try{G=rG1(Z,J,X)}catch(U){return Hu({error:U,command:Q,escapedCommand:K,fileDescriptors:W,options:X,startTime:Y,verboseInfo:$})}let z=new AbortController;oG1(Number.POSITIVE_INFINITY,z.signal);let V=[...G.stdio];Cu(G,W,z),vu(G,X,z);let H={},q=n4();G.kill=gy.bind(void 0,{kill:G.kill.bind(G),options:X,onInternalError:q,context:H,controller:z}),G.all=lu(G,X),Kd(G,X),Gu(G,X);let F=Jz1({subprocess:G,options:X,startTime:Y,verboseInfo:$,fileDescriptors:W,originalStreams:V,command:Q,escapedCommand:K,context:H,onInternalError:q,controller:z});return{subprocess:G,promise:F}},Jz1=async({subprocess:Z,options:J,startTime:X,verboseInfo:Y,fileDescriptors:$,originalStreams:Q,command:K,escapedCommand:W,context:G,onInternalError:z,controller:V})=>{let[H,[q,F],U,w,L]=await ou({subprocess:Z,options:J,context:G,verboseInfo:Y,fileDescriptors:$,originalStreams:Q,onInternalError:z,controller:V});V.abort(),z.resolve();let j=U.map((N,D)=>YZ(N,J,D)),R=YZ(w,J,"all"),O=Xz1({errorInfo:H,exitCode:q,signal:F,stdio:j,all:R,ipcOutput:L,context:G,options:J,command:K,escapedCommand:W,startTime:X});return wQ(O,Y,J)},Xz1=({errorInfo:Z,exitCode:J,signal:X,stdio:Y,all:$,ipcOutput:Q,context:K,options:W,command:G,escapedCommand:z,startTime:V})=>("error"in Z)?S3({error:Z.error,command:G,escapedCommand:z,timedOut:K.terminationReason==="timeout",isCanceled:K.terminationReason==="cancel"||K.terminationReason==="gracefulCancel",isGracefullyCanceled:K.terminationReason==="gracefulCancel",isMaxBuffer:Z.error instanceof JZ,isForcefullyTerminated:K.isForcefullyTerminated,exitCode:J,signal:X,stdio:Y,all:$,ipcOutput:Q,options:W,startTime:V,isSync:!1}):aF({command:G,escapedCommand:z,stdio:Y,all:$,ipcOutput:Q,options:W,startTime:V});var FU=(Z,J)=>{let X=Object.fromEntries(Object.entries(J).map(([Y,$])=>[Y,Yz1(Y,Z[Y],$)]));return{...Z,...X}},Yz1=(Z,J,X)=>{if($z1.has(Z)&&j8(J)&&j8(X))return{...J,...X};return X},$z1=new Set(["env",...vR]);var QJ=(Z,J,X,Y)=>{let $=(K,W,G)=>QJ(K,W,X,G),Q=(...K)=>Qz1({mapArguments:Z,deepOptions:X,boundOptions:J,setBoundExeca:Y,createNested:$},...K);if(Y!==void 0)Y(Q,$,J);return Q},Qz1=({mapArguments:Z,deepOptions:J={},boundOptions:X={},setBoundExeca:Y,createNested:$},Q,...K)=>{if(j8(Q))return $(Z,FU(X,Q),Y);let{file:W,commandArguments:G,options:z,isSync:V}=Kz1({mapArguments:Z,firstArgument:Q,nextArguments:K,deepOptions:J,boundOptions:X});return V?Xu(W,G,z):Gd(W,G,z,$)},Kz1=({mapArguments:Z,firstArgument:J,nextArguments:X,deepOptions:Y,boundOptions:$})=>{let Q=Lb(J)?wb(J,X):[J,...X],[K,W,G]=QF(...Q),z=FU(FU(Y,$),G),{file:V=K,commandArguments:H=W,options:q=z,isSync:F=!1}=Z({file:K,commandArguments:W,options:z});return{file:V,commandArguments:H,options:q,isSync:F}};var zd=({file:Z,commandArguments:J})=>Hd(Z,J),Vd=({file:Z,commandArguments:J})=>({...Hd(Z,J),isSync:!0}),Hd=(Z,J)=>{if(J.length>0)throw new TypeError(`The command and its arguments must be passed as a single string: ${Z} ${J}.`);let[X,...Y]=Wz1(Z);return{file:X,commandArguments:Y}},Wz1=(Z)=>{if(typeof Z!=="string")throw new TypeError(`The command must be a string: ${String(Z)}.`);let J=Z.trim();if(J==="")return[];let X=[];for(let Y of J.split(Gz1)){let $=X.at(-1);if($&&$.endsWith("\\"))X[X.length-1]=`${$.slice(0,-1)} ${Y}`;else X.push(Y)}return X},Gz1=/ +/g;var qd=(Z,J,X)=>{Z.sync=J(zz1,X),Z.s=Z.sync},Fd=({options:Z})=>Ud(Z),zz1=({options:Z})=>({...Ud(Z),isSync:!0}),Ud=(Z)=>({options:{...Vz1(Z),...Z}}),Vz1=({input:Z,inputFile:J,stdio:X})=>Z===void 0&&J===void 0&&X===void 0?{stdin:"inherit"}:{},Ld={preferLocal:!0};var wd=QJ(()=>({})),N36=QJ(()=>({isSync:!0})),P36=QJ(zd),D36=QJ(Vd),C36=QJ(Ng),T36=QJ(Fd,{},Ld,qd),{sendMessage:k36,getOneMessage:E36,getEachMessage:I36,getCancelSignal:v36}=zu();var fd=t(Ed(),1);var g3=(Z)=>{if(typeof Z!=="string")throw new TypeError("invalid pattern");if(Z.length>65536)throw new TypeError("pattern is too long")};var jz1={"[:alnum:]":["\\p{L}\\p{Nl}\\p{Nd}",!0],"[:alpha:]":["\\p{L}\\p{Nl}",!0],"[:ascii:]":["\\x00-\\x7f",!1],"[:blank:]":["\\p{Zs}\\t",!0],"[:cntrl:]":["\\p{Cc}",!0],"[:digit:]":["\\p{Nd}",!0],"[:graph:]":["\\p{Z}\\p{C}",!0,!0],"[:lower:]":["\\p{Ll}",!0],"[:print:]":["\\p{C}",!0],"[:punct:]":["\\p{P}",!0],"[:space:]":["\\p{Z}\\t\\r\\n\\v\\f",!0],"[:upper:]":["\\p{Lu}",!0],"[:word:]":["\\p{L}\\p{Nl}\\p{Nd}\\p{Pc}",!0],"[:xdigit:]":["A-Fa-f0-9",!1]},m3=(Z)=>Z.replace(/[[\]\\-]/g,"\\$&"),Oz1=(Z)=>Z.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),Id=(Z)=>Z.join(""),vd=(Z,J)=>{let X=J;if(Z.charAt(X)!=="[")throw new Error("not in a brace expression");let Y=[],$=[],Q=X+1,K=!1,W=!1,G=!1,z=!1,V=X,H="";Z:while(Q<Z.length){let w=Z.charAt(Q);if((w==="!"||w==="^")&&Q===X+1){z=!0,Q++;continue}if(w==="]"&&K&&!G){V=Q+1;break}if(K=!0,w==="\\"){if(!G){G=!0,Q++;continue}}if(w==="["&&!G){for(let[L,[j,R,O]]of Object.entries(jz1))if(Z.startsWith(L,Q)){if(H)return["$.",!1,Z.length-X,!0];if(Q+=L.length,O)$.push(j);else Y.push(j);W=W||R;continue Z}}if(G=!1,H){if(w>H)Y.push(m3(H)+"-"+m3(w));else if(w===H)Y.push(m3(w));H="",Q++;continue}if(Z.startsWith("-]",Q+1)){Y.push(m3(w+"-")),Q+=2;continue}if(Z.startsWith("-",Q+1)){H=w,Q+=2;continue}Y.push(m3(w)),Q++}if(V<Q)return["",!1,0,!1];if(!Y.length&&!$.length)return["$.",!1,Z.length-X,!0];if($.length===0&&Y.length===1&&/^\\?.$/.test(Y[0])&&!z){let w=Y[0].length===2?Y[0].slice(-1):Y[0];return[Oz1(w),!1,V-X,!1]}let q="["+(z?"^":"")+Id(Y)+"]",F="["+(z?"":"^")+Id($)+"]";return[Y.length&&$.length?"("+q+"|"+F+")":Y.length?q:F,W,V-X,!0]};var Q4=(Z,{windowsPathsNoEscape:J=!1}={})=>{return J?Z.replace(/\[([^\/\\])\]/g,"$1"):Z.replace(/((?!\\).|^)\[([^\/\\])\]/g,"$1$2").replace(/\\([^\/])/g,"$1")};var Mz1=new Set(["!","?","+","*","@"]),Sd=(Z)=>Mz1.has(Z),Rz1="(?!(?:^|/)\\.\\.?(?:$|/))",UU="(?!\\.)",Nz1=new Set(["[","."]),Pz1=new Set(["..","."]),Dz1=new Set("().*{}+?[]^$\\!"),Cz1=(Z)=>Z.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),JP="[^/]",_d=JP+"*?",Ad=JP+"+?";class F6{type;#Z;#J;#Y=!1;#X=[];#$;#V;#q;#W=!1;#G;#z;#H=!1;constructor(Z,J,X={}){if(this.type=Z,Z)this.#J=!0;if(this.#$=J,this.#Z=this.#$?this.#$.#Z:this,this.#G=this.#Z===this?X:this.#Z.#G,this.#q=this.#Z===this?[]:this.#Z.#q,Z==="!"&&!this.#Z.#W)this.#q.push(this);this.#V=this.#$?this.#$.#X.length:0}get hasMagic(){if(this.#J!==void 0)return this.#J;for(let Z of this.#X){if(typeof Z==="string")continue;if(Z.type||Z.hasMagic)return this.#J=!0}return this.#J}toString(){if(this.#z!==void 0)return this.#z;if(!this.type)return this.#z=this.#X.map((Z)=>String(Z)).join("");else return this.#z=this.type+"("+this.#X.map((Z)=>String(Z)).join("|")+")"}#Q(){if(this!==this.#Z)throw new Error("should only call on root");if(this.#W)return this;this.toString(),this.#W=!0;let Z;while(Z=this.#q.pop()){if(Z.type!=="!")continue;let J=Z,X=J.#$;while(X){for(let Y=J.#V+1;!X.type&&Y<X.#X.length;Y++)for(let $ of Z.#X){if(typeof $==="string")throw new Error("string part in extglob AST??");$.copyIn(X.#X[Y])}J=X,X=J.#$}}return this}push(...Z){for(let J of Z){if(J==="")continue;if(typeof J!=="string"&&!(J instanceof F6&&J.#$===this))throw new Error("invalid part: "+J);this.#X.push(J)}}toJSON(){let Z=this.type===null?this.#X.slice().map((J)=>typeof J==="string"?J:J.toJSON()):[this.type,...this.#X.map((J)=>J.toJSON())];if(this.isStart()&&!this.type)Z.unshift([]);if(this.isEnd()&&(this===this.#Z||this.#Z.#W&&this.#$?.type==="!"))Z.push({});return Z}isStart(){if(this.#Z===this)return!0;if(!this.#$?.isStart())return!1;if(this.#V===0)return!0;let Z=this.#$;for(let J=0;J<this.#V;J++){let X=Z.#X[J];if(!(X instanceof F6&&X.type==="!"))return!1}return!0}isEnd(){if(this.#Z===this)return!0;if(this.#$?.type==="!")return!0;if(!this.#$?.isEnd())return!1;if(!this.type)return this.#$?.isEnd();let Z=this.#$?this.#$.#X.length:0;return this.#V===Z-1}copyIn(Z){if(typeof Z==="string")this.push(Z);else this.push(Z.clone(this))}clone(Z){let J=new F6(this.type,Z);for(let X of this.#X)J.copyIn(X);return J}static#U(Z,J,X,Y){let $=!1,Q=!1,K=-1,W=!1;if(J.type===null){let q=X,F="";while(q<Z.length){let U=Z.charAt(q++);if($||U==="\\"){$=!$,F+=U;continue}if(Q){if(q===K+1){if(U==="^"||U==="!")W=!0}else if(U==="]"&&!(q===K+2&&W))Q=!1;F+=U;continue}else if(U==="["){Q=!0,K=q,W=!1,F+=U;continue}if(!Y.noext&&Sd(U)&&Z.charAt(q)==="("){J.push(F),F="";let w=new F6(U,J);q=F6.#U(Z,w,q,Y),J.push(w);continue}F+=U}return J.push(F),q}let G=X+1,z=new F6(null,J),V=[],H="";while(G<Z.length){let q=Z.charAt(G++);if($||q==="\\"){$=!$,H+=q;continue}if(Q){if(G===K+1){if(q==="^"||q==="!")W=!0}else if(q==="]"&&!(G===K+2&&W))Q=!1;H+=q;continue}else if(q==="["){Q=!0,K=G,W=!1,H+=q;continue}if(Sd(q)&&Z.charAt(G)==="("){z.push(H),H="";let F=new F6(q,z);z.push(F),G=F6.#U(Z,F,G,Y);continue}if(q==="|"){z.push(H),H="",V.push(z),z=new F6(null,J);continue}if(q===")"){if(H===""&&J.#X.length===0)J.#H=!0;return z.push(H),H="",J.push(...V,z),G}H+=q}return J.type=null,J.#J=void 0,J.#X=[Z.substring(X-1)],G}static fromGlob(Z,J={}){let X=new F6(null,void 0,J);return F6.#U(Z,X,0,J),X}toMMPattern(){if(this!==this.#Z)return this.#Z.toMMPattern();let Z=this.toString(),[J,X,Y,$]=this.toRegExpSource();if(!(Y||this.#J||this.#G.nocase&&!this.#G.nocaseMagicOnly&&Z.toUpperCase()!==Z.toLowerCase()))return X;let K=(this.#G.nocase?"i":"")+($?"u":"");return Object.assign(new RegExp(`^${J}$`,K),{_src:J,_glob:Z})}get options(){return this.#G}toRegExpSource(Z){let J=Z??!!this.#G.dot;if(this.#Z===this)this.#Q();if(!this.type){let W=this.isStart()&&this.isEnd(),G=this.#X.map((q)=>{let[F,U,w,L]=typeof q==="string"?F6.#L(q,this.#J,W):q.toRegExpSource(Z);return this.#J=this.#J||w,this.#Y=this.#Y||L,F}).join(""),z="";if(this.isStart()){if(typeof this.#X[0]==="string"){if(!(this.#X.length===1&&Pz1.has(this.#X[0]))){let F=Nz1,U=J&&F.has(G.charAt(0))||G.startsWith("\\.")&&F.has(G.charAt(2))||G.startsWith("\\.\\.")&&F.has(G.charAt(4)),w=!J&&!Z&&F.has(G.charAt(0));z=U?Rz1:w?UU:""}}}let V="";if(this.isEnd()&&this.#Z.#W&&this.#$?.type==="!")V="(?:$|\\/)";return[z+G+V,Q4(G),this.#J=!!this.#J,this.#Y]}let X=this.type==="*"||this.type==="+",Y=this.type==="!"?"(?:(?!(?:":"(?:",$=this.#w(J);if(this.isStart()&&this.isEnd()&&!$&&this.type!=="!"){let W=this.toString();return this.#X=[W],this.type=null,this.#J=void 0,[W,Q4(this.toString()),!1,!1]}let Q=!X||Z||J||!UU?"":this.#w(!0);if(Q===$)Q="";if(Q)$=`(?:${$})(?:${Q})*?`;let K="";if(this.type==="!"&&this.#H)K=(this.isStart()&&!J?UU:"")+Ad;else{let W=this.type==="!"?"))"+(this.isStart()&&!J&&!Z?UU:"")+_d+")":this.type==="@"?")":this.type==="?"?")?":this.type==="+"&&Q?")":this.type==="*"&&Q?")?":`)${this.type}`;K=Y+$+W}return[K,Q4($),this.#J=!!this.#J,this.#Y]}#w(Z){return this.#X.map((J)=>{if(typeof J==="string")throw new Error("string type in extglob ast??");let[X,Y,$,Q]=J.toRegExpSource(Z);return this.#Y=this.#Y||Q,X}).filter((J)=>!(this.isStart()&&this.isEnd())||!!J).join("|")}static#L(Z,J,X=!1){let Y=!1,$="",Q=!1;for(let K=0;K<Z.length;K++){let W=Z.charAt(K);if(Y){Y=!1,$+=(Dz1.has(W)?"\\":"")+W;continue}if(W==="\\"){if(K===Z.length-1)$+="\\\\";else Y=!0;continue}if(W==="["){let[G,z,V,H]=vd(Z,K);if(V){$+=G,Q=Q||z,K+=V-1,J=J||H;continue}}if(W==="*"){if(X&&Z==="*")$+=Ad;else $+=_d;J=!0;continue}if(W==="?"){$+=JP,J=!0;continue}$+=Cz1(W)}return[$,Q4(Z),!!J,Q]}}var MQ=(Z,{windowsPathsNoEscape:J=!1}={})=>{return J?Z.replace(/[?*()[\]]/g,"[$&]"):Z.replace(/[?*()[\]\\]/g,"\\$&")};var m6=(Z,J,X={})=>{if(g3(J),!X.nocomment&&J.charAt(0)==="#")return!1;return new w9(J,X).match(Z)},Tz1=/^\*+([^+@!?\*\[\(]*)$/,kz1=(Z)=>(J)=>!J.startsWith(".")&&J.endsWith(Z),Ez1=(Z)=>(J)=>J.endsWith(Z),Iz1=(Z)=>{return Z=Z.toLowerCase(),(J)=>!J.startsWith(".")&&J.toLowerCase().endsWith(Z)},vz1=(Z)=>{return Z=Z.toLowerCase(),(J)=>J.toLowerCase().endsWith(Z)},Sz1=/^\*+\.\*+$/,_z1=(Z)=>!Z.startsWith(".")&&Z.includes("."),Az1=(Z)=>Z!=="."&&Z!==".."&&Z.includes("."),xz1=/^\.\*+$/,hz1=(Z)=>Z!=="."&&Z!==".."&&Z.startsWith("."),fz1=/^\*+$/,bz1=(Z)=>Z.length!==0&&!Z.startsWith("."),yz1=(Z)=>Z.length!==0&&Z!=="."&&Z!=="..",gz1=/^\?+([^+@!?\*\[\(]*)?$/,mz1=([Z,J=""])=>{let X=bd([Z]);if(!J)return X;return J=J.toLowerCase(),(Y)=>X(Y)&&Y.toLowerCase().endsWith(J)},uz1=([Z,J=""])=>{let X=yd([Z]);if(!J)return X;return J=J.toLowerCase(),(Y)=>X(Y)&&Y.toLowerCase().endsWith(J)},dz1=([Z,J=""])=>{let X=yd([Z]);return!J?X:(Y)=>X(Y)&&Y.endsWith(J)},cz1=([Z,J=""])=>{let X=bd([Z]);return!J?X:(Y)=>X(Y)&&Y.endsWith(J)},bd=([Z])=>{let J=Z.length;return(X)=>X.length===J&&!X.startsWith(".")},yd=([Z])=>{let J=Z.length;return(X)=>X.length===J&&X!=="."&&X!==".."},gd=typeof process==="object"&&process?typeof process.env==="object"&&process.env&&process.env.__MINIMATCH_TESTING_PLATFORM__||process.platform:"posix",xd={win32:{sep:"\\"},posix:{sep:"/"}},lz1=gd==="win32"?xd.win32.sep:xd.posix.sep;m6.sep=lz1;var U6=Symbol("globstar **");m6.GLOBSTAR=U6;var pz1="[^/]",iz1=pz1+"*?",nz1="(?:(?!(?:\\/|^)(?:\\.{1,2})($|\\/)).)*?",az1="(?:(?!(?:\\/|^)\\.).)*?",sz1=(Z,J={})=>(X)=>m6(X,Z,J);m6.filter=sz1;var L9=(Z,J={})=>Object.assign({},Z,J),oz1=(Z)=>{if(!Z||typeof Z!=="object"||!Object.keys(Z).length)return m6;let J=m6;return Object.assign((Y,$,Q={})=>J(Y,$,L9(Z,Q)),{Minimatch:class Y extends J.Minimatch{constructor($,Q={}){super($,L9(Z,Q))}static defaults($){return J.defaults(L9(Z,$)).Minimatch}},AST:class Y extends J.AST{constructor($,Q,K={}){super($,Q,L9(Z,K))}static fromGlob($,Q={}){return J.AST.fromGlob($,L9(Z,Q))}},unescape:(Y,$={})=>J.unescape(Y,L9(Z,$)),escape:(Y,$={})=>J.escape(Y,L9(Z,$)),filter:(Y,$={})=>J.filter(Y,L9(Z,$)),defaults:(Y)=>J.defaults(L9(Z,Y)),makeRe:(Y,$={})=>J.makeRe(Y,L9(Z,$)),braceExpand:(Y,$={})=>J.braceExpand(Y,L9(Z,$)),match:(Y,$,Q={})=>J.match(Y,$,L9(Z,Q)),sep:J.sep,GLOBSTAR:U6})};m6.defaults=oz1;var md=(Z,J={})=>{if(g3(Z),J.nobrace||!/\{(?:(?!\{).)*\}/.test(Z))return[Z];return fd.default(Z)};m6.braceExpand=md;var rz1=(Z,J={})=>new w9(Z,J).makeRe();m6.makeRe=rz1;var tz1=(Z,J,X={})=>{let Y=new w9(J,X);if(Z=Z.filter(($)=>Y.match($)),Y.options.nonull&&!Z.length)Z.push(J);return Z};m6.match=tz1;var hd=/[?*]|[+@!]\(.*?\)|\[|\]/,ez1=(Z)=>Z.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&");class w9{options;set;pattern;windowsPathsNoEscape;nonegate;negate;comment;empty;preserveMultipleSlashes;partial;globSet;globParts;nocase;isWindows;platform;windowsNoMagicRoot;regexp;constructor(Z,J={}){if(g3(Z),J=J||{},this.options=J,this.pattern=Z,this.platform=J.platform||gd,this.isWindows=this.platform==="win32",this.windowsPathsNoEscape=!!J.windowsPathsNoEscape||J.allowWindowsEscape===!1,this.windowsPathsNoEscape)this.pattern=this.pattern.replace(/\\/g,"/");this.preserveMultipleSlashes=!!J.preserveMultipleSlashes,this.regexp=null,this.negate=!1,this.nonegate=!!J.nonegate,this.comment=!1,this.empty=!1,this.partial=!!J.partial,this.nocase=!!this.options.nocase,this.windowsNoMagicRoot=J.windowsNoMagicRoot!==void 0?J.windowsNoMagicRoot:!!(this.isWindows&&this.nocase),this.globSet=[],this.globParts=[],this.set=[],this.make()}hasMagic(){if(this.options.magicalBraces&&this.set.length>1)return!0;for(let Z of this.set)for(let J of Z)if(typeof J!=="string")return!0;return!1}debug(...Z){}make(){let Z=this.pattern,J=this.options;if(!J.nocomment&&Z.charAt(0)==="#"){this.comment=!0;return}if(!Z){this.empty=!0;return}if(this.parseNegate(),this.globSet=[...new Set(this.braceExpand())],J.debug)this.debug=(...$)=>console.error(...$);this.debug(this.pattern,this.globSet);let X=this.globSet.map(($)=>this.slashSplit($));this.globParts=this.preprocess(X),this.debug(this.pattern,this.globParts);let Y=this.globParts.map(($,Q,K)=>{if(this.isWindows&&this.windowsNoMagicRoot){let W=$[0]===""&&$[1]===""&&($[2]==="?"||!hd.test($[2]))&&!hd.test($[3]),G=/^[a-z]:/i.test($[0]);if(W)return[...$.slice(0,4),...$.slice(4).map((z)=>this.parse(z))];else if(G)return[$[0],...$.slice(1).map((z)=>this.parse(z))]}return $.map((W)=>this.parse(W))});if(this.debug(this.pattern,Y),this.set=Y.filter(($)=>$.indexOf(!1)===-1),this.isWindows)for(let $=0;$<this.set.length;$++){let Q=this.set[$];if(Q[0]===""&&Q[1]===""&&this.globParts[$][2]==="?"&&typeof Q[3]==="string"&&/^[a-z]:$/i.test(Q[3]))Q[2]="?"}this.debug(this.pattern,this.set)}preprocess(Z){if(this.options.noglobstar){for(let X=0;X<Z.length;X++)for(let Y=0;Y<Z[X].length;Y++)if(Z[X][Y]==="**")Z[X][Y]="*"}let{optimizationLevel:J=1}=this.options;if(J>=2)Z=this.firstPhasePreProcess(Z),Z=this.secondPhasePreProcess(Z);else if(J>=1)Z=this.levelOneOptimize(Z);else Z=this.adjascentGlobstarOptimize(Z);return Z}adjascentGlobstarOptimize(Z){return Z.map((J)=>{let X=-1;while((X=J.indexOf("**",X+1))!==-1){let Y=X;while(J[Y+1]==="**")Y++;if(Y!==X)J.splice(X,Y-X)}return J})}levelOneOptimize(Z){return Z.map((J)=>{return J=J.reduce((X,Y)=>{let $=X[X.length-1];if(Y==="**"&&$==="**")return X;if(Y===".."){if($&&$!==".."&&$!=="."&&$!=="**")return X.pop(),X}return X.push(Y),X},[]),J.length===0?[""]:J})}levelTwoFileOptimize(Z){if(!Array.isArray(Z))Z=this.slashSplit(Z);let J=!1;do{if(J=!1,!this.preserveMultipleSlashes){for(let Y=1;Y<Z.length-1;Y++){let $=Z[Y];if(Y===1&&$===""&&Z[0]==="")continue;if($==="."||$==="")J=!0,Z.splice(Y,1),Y--}if(Z[0]==="."&&Z.length===2&&(Z[1]==="."||Z[1]===""))J=!0,Z.pop()}let X=0;while((X=Z.indexOf("..",X+1))!==-1){let Y=Z[X-1];if(Y&&Y!=="."&&Y!==".."&&Y!=="**")J=!0,Z.splice(X-1,2),X-=2}}while(J);return Z.length===0?[""]:Z}firstPhasePreProcess(Z){let J=!1;do{J=!1;for(let X of Z){let Y=-1;while((Y=X.indexOf("**",Y+1))!==-1){let Q=Y;while(X[Q+1]==="**")Q++;if(Q>Y)X.splice(Y+1,Q-Y);let K=X[Y+1],W=X[Y+2],G=X[Y+3];if(K!=="..")continue;if(!W||W==="."||W===".."||!G||G==="."||G==="..")continue;J=!0,X.splice(Y,1);let z=X.slice(0);z[Y]="**",Z.push(z),Y--}if(!this.preserveMultipleSlashes){for(let Q=1;Q<X.length-1;Q++){let K=X[Q];if(Q===1&&K===""&&X[0]==="")continue;if(K==="."||K==="")J=!0,X.splice(Q,1),Q--}if(X[0]==="."&&X.length===2&&(X[1]==="."||X[1]===""))J=!0,X.pop()}let $=0;while(($=X.indexOf("..",$+1))!==-1){let Q=X[$-1];if(Q&&Q!=="."&&Q!==".."&&Q!=="**"){J=!0;let W=$===1&&X[$+1]==="**"?["."]:[];if(X.splice($-1,2,...W),X.length===0)X.push("");$-=2}}}}while(J);return Z}secondPhasePreProcess(Z){for(let J=0;J<Z.length-1;J++)for(let X=J+1;X<Z.length;X++){let Y=this.partsMatch(Z[J],Z[X],!this.preserveMultipleSlashes);if(Y){Z[J]=[],Z[X]=Y;break}}return Z.filter((J)=>J.length)}partsMatch(Z,J,X=!1){let Y=0,$=0,Q=[],K="";while(Y<Z.length&&$<J.length)if(Z[Y]===J[$])Q.push(K==="b"?J[$]:Z[Y]),Y++,$++;else if(X&&Z[Y]==="**"&&J[$]===Z[Y+1])Q.push(Z[Y]),Y++;else if(X&&J[$]==="**"&&Z[Y]===J[$+1])Q.push(J[$]),$++;else if(Z[Y]==="*"&&J[$]&&(this.options.dot||!J[$].startsWith("."))&&J[$]!=="**"){if(K==="b")return!1;K="a",Q.push(Z[Y]),Y++,$++}else if(J[$]==="*"&&Z[Y]&&(this.options.dot||!Z[Y].startsWith("."))&&Z[Y]!=="**"){if(K==="a")return!1;K="b",Q.push(J[$]),Y++,$++}else return!1;return Z.length===J.length&&Q}parseNegate(){if(this.nonegate)return;let Z=this.pattern,J=!1,X=0;for(let Y=0;Y<Z.length&&Z.charAt(Y)==="!";Y++)J=!J,X++;if(X)this.pattern=Z.slice(X);this.negate=J}matchOne(Z,J,X=!1){let Y=this.options;if(this.isWindows){let U=typeof Z[0]==="string"&&/^[a-z]:$/i.test(Z[0]),w=!U&&Z[0]===""&&Z[1]===""&&Z[2]==="?"&&/^[a-z]:$/i.test(Z[3]),L=typeof J[0]==="string"&&/^[a-z]:$/i.test(J[0]),j=!L&&J[0]===""&&J[1]===""&&J[2]==="?"&&typeof J[3]==="string"&&/^[a-z]:$/i.test(J[3]),R=w?3:U?0:void 0,O=j?3:L?0:void 0;if(typeof R==="number"&&typeof O==="number"){let[N,D]=[Z[R],J[O]];if(N.toLowerCase()===D.toLowerCase()){if(J[O]=N,O>R)J=J.slice(O);else if(R>O)Z=Z.slice(R)}}}let{optimizationLevel:$=1}=this.options;if($>=2)Z=this.levelTwoFileOptimize(Z);this.debug("matchOne",this,{file:Z,pattern:J}),this.debug("matchOne",Z.length,J.length);for(var Q=0,K=0,W=Z.length,G=J.length;Q<W&&K<G;Q++,K++){this.debug("matchOne loop");var z=J[K],V=Z[Q];if(this.debug(J,z,V),z===!1)return!1;if(z===U6){this.debug("GLOBSTAR",[J,z,V]);var H=Q,q=K+1;if(q===G){this.debug("** at the end");for(;Q<W;Q++)if(Z[Q]==="."||Z[Q]===".."||!Y.dot&&Z[Q].charAt(0)===".")return!1;return!0}while(H<W){var F=Z[H];if(this.debug(`
|
405
405
|
globstar while`,Z,H,J,q,F),this.matchOne(Z.slice(H),J.slice(q),X))return this.debug("globstar found match!",H,W,F),!0;else{if(F==="."||F===".."||!Y.dot&&F.charAt(0)==="."){this.debug("dot detected!",Z,H,J,q);break}this.debug("globstar swallow a segment, and continue"),H++}}if(X){if(this.debug(`
|
406
|
-
>>> no match, partial?`,Z,H,J,q),H===W)return!0}return!1}let U;if(typeof z==="string")U=V===z,this.debug("string match",z,V,U);else U=z.test(V),this.debug("pattern match",z,V,U);if(!U)return!1}if(Q===W&&K===G)return!0;else if(Q===W)return X;else if(K===G)return Q===W-1&&Z[Q]==="";else throw new Error("wtf?")}braceExpand(){return md(this.pattern,this.options)}parse(Z){g3(Z);let J=this.options;if(Z==="**")return U6;if(Z==="")return"";let X,Y=null;if(X=Z.match(fz1))Y=J.dot?yz1:bz1;else if(X=Z.match(Tz1))Y=(J.nocase?J.dot?vz1:Iz1:J.dot?Ez1:kz1)(X[1]);else if(X=Z.match(gz1))Y=(J.nocase?J.dot?uz1:mz1:J.dot?dz1:cz1)(X);else if(X=Z.match(Sz1))Y=J.dot?Az1:_z1;else if(X=Z.match(xz1))Y=hz1;let $=F6.fromGlob(Z,this.options).toMMPattern();if(Y&&typeof $==="object")Reflect.defineProperty($,"test",{value:Y});return $}makeRe(){if(this.regexp||this.regexp===!1)return this.regexp;let Z=this.set;if(!Z.length)return this.regexp=!1,this.regexp;let J=this.options,X=J.noglobstar?iz1:J.dot?nz1:az1,Y=new Set(J.nocase?["i"]:[]),$=Z.map((W)=>{let G=W.map((z)=>{if(z instanceof RegExp)for(let V of z.flags.split(""))Y.add(V);return typeof z==="string"?ez1(z):z===U6?U6:z._src});return G.forEach((z,V)=>{let H=G[V+1],q=G[V-1];if(z!==U6||q===U6)return;if(q===void 0)if(H!==void 0&&H!==U6)G[V+1]="(?:\\/|"+X+"\\/)?"+H;else G[V]=X;else if(H===void 0)G[V-1]=q+"(?:\\/|"+X+")?";else if(H!==U6)G[V-1]=q+"(?:\\/|\\/"+X+"\\/)"+H,G[V+1]=U6}),G.filter((z)=>z!==U6).join("/")}).join("|"),[Q,K]=Z.length>1?["(?:",")"]:["",""];if($="^"+Q+$+K+"$",this.negate)$="^(?!"+$+").+$";try{this.regexp=new RegExp($,[...Y].join(""))}catch(W){this.regexp=!1}return this.regexp}slashSplit(Z){if(this.preserveMultipleSlashes)return Z.split("/");else if(this.isWindows&&/^\/\/[^\/]+/.test(Z))return["",...Z.split(/\/+/)];else return Z.split(/\/+/)}match(Z,J=this.partial){if(this.debug("match",Z,this.pattern),this.comment)return!1;if(this.empty)return Z==="";if(Z==="/"&&J)return!0;let X=this.options;if(this.isWindows)Z=Z.split("\\").join("/");let Y=this.slashSplit(Z);this.debug(this.pattern,"split",Y);let $=this.set;this.debug(this.pattern,"set",$);let Q=Y[Y.length-1];if(!Q)for(let K=Y.length-2;!Q&&K>=0;K--)Q=Y[K];for(let K=0;K<$.length;K++){let W=$[K],G=Y;if(X.matchBase&&W.length===1)G=[Q];if(this.matchOne(G,W,J)){if(X.flipNegate)return!0;return!this.negate}}if(X.flipNegate)return!1;return this.negate}static defaults(Z){return m6.defaults(Z).Minimatch}}m6.AST=F6;m6.Minimatch=w9;m6.escape=MQ;m6.unescape=Q4;import{fileURLToPath as SV1}from"url";var RQ=typeof performance==="object"&&performance&&typeof performance.now==="function"?performance:Date,dd=new Set,XP=typeof process==="object"&&!!process?process:{},cd=(Z,J,X,Y)=>{typeof XP.emitWarning==="function"?XP.emitWarning(Z,J,X,Y):console.error(`[${X}] ${J}: ${Z}`)},LU=globalThis.AbortController,ud=globalThis.AbortSignal;if(typeof LU==="undefined"){ud=class X{onabort;_onabort=[];reason;aborted=!1;addEventListener(Y,$){this._onabort.push($)}},LU=class X{constructor(){J()}signal=new ud;abort(Y){if(this.signal.aborted)return;this.signal.reason=Y,this.signal.aborted=!0;for(let $ of this.signal._onabort)$(Y);this.signal.onabort?.(Y)}};let Z=XP.env?.LRU_CACHE_IGNORE_AC_WARNING!=="1",J=()=>{if(!Z)return;Z=!1,cd("AbortController is not defined. If using lru-cache in node 14, load an AbortController polyfill from the `node-abort-controller` package. A minimal polyfill is provided for use by LRUCache.fetch(), but it should not be relied upon in other contexts (eg, passing it to other APIs that use AbortController/AbortSignal might have undesirable effects). You may disable this with LRU_CACHE_IGNORE_AC_WARNING=1 in the env.","NO_ABORT_CONTROLLER","ENOTSUP",J)}}var ZV1=(Z)=>!dd.has(Z),s36=Symbol("type"),KJ=(Z)=>Z&&Z===Math.floor(Z)&&Z>0&&isFinite(Z),ld=(Z)=>!KJ(Z)?null:Z<=Math.pow(2,8)?Uint8Array:Z<=Math.pow(2,16)?Uint16Array:Z<=Math.pow(2,32)?Uint32Array:Z<=Number.MAX_SAFE_INTEGER?u3:null;class u3 extends Array{constructor(Z){super(Z);this.fill(0)}}class NQ{heap;length;static#Z=!1;static create(Z){let J=ld(Z);if(!J)return[];NQ.#Z=!0;let X=new NQ(Z,J);return NQ.#Z=!1,X}constructor(Z,J){if(!NQ.#Z)throw new TypeError("instantiate Stack using Stack.create(n)");this.heap=new J(Z),this.length=0}push(Z){this.heap[this.length++]=Z}pop(){return this.heap[--this.length]}}class d3{#Z;#J;#Y;#X;#$;#V;#q;ttl;ttlResolution;ttlAutopurge;updateAgeOnGet;updateAgeOnHas;allowStale;noDisposeOnSet;noUpdateTTL;maxEntrySize;sizeCalculation;noDeleteOnFetchRejection;noDeleteOnStaleGet;allowStaleOnFetchAbort;allowStaleOnFetchRejection;ignoreFetchAbort;#W;#G;#z;#H;#Q;#U;#w;#L;#j;#k;#O;#E;#N;#R;#M;#C;#B;#v;static unsafeExposeInternals(Z){return{starts:Z.#N,ttls:Z.#R,sizes:Z.#E,keyMap:Z.#z,keyList:Z.#H,valList:Z.#Q,next:Z.#U,prev:Z.#w,get head(){return Z.#L},get tail(){return Z.#j},free:Z.#k,isBackgroundFetch:(J)=>Z.#F(J),backgroundFetch:(J,X,Y,$)=>Z.#h(J,X,Y,$),moveToTail:(J)=>Z.#y(J),indexes:(J)=>Z.#T(J),rindexes:(J)=>Z.#I(J),isStale:(J)=>Z.#D(J)}}get max(){return this.#Z}get maxSize(){return this.#J}get calculatedSize(){return this.#G}get size(){return this.#W}get fetchMethod(){return this.#V}get memoMethod(){return this.#q}get dispose(){return this.#Y}get onInsert(){return this.#X}get disposeAfter(){return this.#$}constructor(Z){let{max:J=0,ttl:X,ttlResolution:Y=1,ttlAutopurge:$,updateAgeOnGet:Q,updateAgeOnHas:K,allowStale:W,dispose:G,onInsert:z,disposeAfter:V,noDisposeOnSet:H,noUpdateTTL:q,maxSize:F=0,maxEntrySize:U=0,sizeCalculation:w,fetchMethod:L,memoMethod:j,noDeleteOnFetchRejection:R,noDeleteOnStaleGet:O,allowStaleOnFetchRejection:N,allowStaleOnFetchAbort:D,ignoreFetchAbort:P}=Z;if(J!==0&&!KJ(J))throw new TypeError("max option must be a nonnegative integer");let C=J?ld(J):Array;if(!C)throw new Error("invalid max value: "+J);if(this.#Z=J,this.#J=F,this.maxEntrySize=U||this.#J,this.sizeCalculation=w,this.sizeCalculation){if(!this.#J&&!this.maxEntrySize)throw new TypeError("cannot set sizeCalculation without setting maxSize or maxEntrySize");if(typeof this.sizeCalculation!=="function")throw new TypeError("sizeCalculation set to non-function")}if(j!==void 0&&typeof j!=="function")throw new TypeError("memoMethod must be a function if defined");if(this.#q=j,L!==void 0&&typeof L!=="function")throw new TypeError("fetchMethod must be a function if specified");if(this.#V=L,this.#C=!!L,this.#z=new Map,this.#H=new Array(J).fill(void 0),this.#Q=new Array(J).fill(void 0),this.#U=new C(J),this.#w=new C(J),this.#L=0,this.#j=0,this.#k=NQ.create(J),this.#W=0,this.#G=0,typeof G==="function")this.#Y=G;if(typeof z==="function")this.#X=z;if(typeof V==="function")this.#$=V,this.#O=[];else this.#$=void 0,this.#O=void 0;if(this.#M=!!this.#Y,this.#v=!!this.#X,this.#B=!!this.#$,this.noDisposeOnSet=!!H,this.noUpdateTTL=!!q,this.noDeleteOnFetchRejection=!!R,this.allowStaleOnFetchRejection=!!N,this.allowStaleOnFetchAbort=!!D,this.ignoreFetchAbort=!!P,this.maxEntrySize!==0){if(this.#J!==0){if(!KJ(this.#J))throw new TypeError("maxSize must be a positive integer if specified")}if(!KJ(this.maxEntrySize))throw new TypeError("maxEntrySize must be a positive integer if specified");this.#m()}if(this.allowStale=!!W,this.noDeleteOnStaleGet=!!O,this.updateAgeOnGet=!!Q,this.updateAgeOnHas=!!K,this.ttlResolution=KJ(Y)||Y===0?Y:1,this.ttlAutopurge=!!$,this.ttl=X||0,this.ttl){if(!KJ(this.ttl))throw new TypeError("ttl must be a positive integer if specified");this.#K()}if(this.#Z===0&&this.ttl===0&&this.#J===0)throw new TypeError("At least one of max, maxSize, or ttl is required");if(!this.ttlAutopurge&&!this.#Z&&!this.#J){if(ZV1("LRU_CACHE_UNBOUNDED"))dd.add("LRU_CACHE_UNBOUNDED"),cd("TTL caching without ttlAutopurge, max, or maxSize can result in unbounded memory consumption.","UnboundedCacheWarning","LRU_CACHE_UNBOUNDED",d3)}}getRemainingTTL(Z){return this.#z.has(Z)?1/0:0}#K(){let Z=new u3(this.#Z),J=new u3(this.#Z);this.#R=Z,this.#N=J,this.#S=($,Q,K=RQ.now())=>{if(J[$]=Q!==0?K:0,Z[$]=Q,Q!==0&&this.ttlAutopurge){let W=setTimeout(()=>{if(this.#D($))this.#_(this.#H[$],"expire")},Q+1);if(W.unref)W.unref()}},this.#A=($)=>{J[$]=Z[$]!==0?RQ.now():0},this.#P=($,Q)=>{if(Z[Q]){let K=Z[Q],W=J[Q];if(!K||!W)return;$.ttl=K,$.start=W,$.now=X||Y();let G=$.now-W;$.remainingTTL=K-G}};let X=0,Y=()=>{let $=RQ.now();if(this.ttlResolution>0){X=$;let Q=setTimeout(()=>X=0,this.ttlResolution);if(Q.unref)Q.unref()}return $};this.getRemainingTTL=($)=>{let Q=this.#z.get($);if(Q===void 0)return 0;let K=Z[Q],W=J[Q];if(!K||!W)return 1/0;let G=(X||Y())-W;return K-G},this.#D=($)=>{let Q=J[$],K=Z[$];return!!K&&!!Q&&(X||Y())-Q>K}}#A=()=>{};#P=()=>{};#S=()=>{};#D=()=>!1;#m(){let Z=new u3(this.#Z);this.#G=0,this.#E=Z,this.#x=(J)=>{this.#G-=Z[J],Z[J]=0},this.#u=(J,X,Y,$)=>{if(this.#F(X))return 0;if(!KJ(Y))if($){if(typeof $!=="function")throw new TypeError("sizeCalculation must be a function");if(Y=$(X,J),!KJ(Y))throw new TypeError("sizeCalculation return invalid (expect positive integer)")}else throw new TypeError("invalid size value (must be positive integer). When maxSize or maxEntrySize is used, sizeCalculation or size must be set.");return Y},this.#f=(J,X,Y)=>{if(Z[J]=X,this.#J){let $=this.#J-Z[J];while(this.#G>$)this.#b(!0)}if(this.#G+=Z[J],Y)Y.entrySize=X,Y.totalCalculatedSize=this.#G}}#x=(Z)=>{};#f=(Z,J,X)=>{};#u=(Z,J,X,Y)=>{if(X||Y)throw new TypeError("cannot set size without setting maxSize or maxEntrySize on cache");return 0};*#T({allowStale:Z=this.allowStale}={}){if(this.#W)for(let J=this.#j;;){if(!this.#d(J))break;if(Z||!this.#D(J))yield J;if(J===this.#L)break;else J=this.#w[J]}}*#I({allowStale:Z=this.allowStale}={}){if(this.#W)for(let J=this.#L;;){if(!this.#d(J))break;if(Z||!this.#D(J))yield J;if(J===this.#j)break;else J=this.#U[J]}}#d(Z){return Z!==void 0&&this.#z.get(this.#H[Z])===Z}*entries(){for(let Z of this.#T())if(this.#Q[Z]!==void 0&&this.#H[Z]!==void 0&&!this.#F(this.#Q[Z]))yield[this.#H[Z],this.#Q[Z]]}*rentries(){for(let Z of this.#I())if(this.#Q[Z]!==void 0&&this.#H[Z]!==void 0&&!this.#F(this.#Q[Z]))yield[this.#H[Z],this.#Q[Z]]}*keys(){for(let Z of this.#T()){let J=this.#H[Z];if(J!==void 0&&!this.#F(this.#Q[Z]))yield J}}*rkeys(){for(let Z of this.#I()){let J=this.#H[Z];if(J!==void 0&&!this.#F(this.#Q[Z]))yield J}}*values(){for(let Z of this.#T())if(this.#Q[Z]!==void 0&&!this.#F(this.#Q[Z]))yield this.#Q[Z]}*rvalues(){for(let Z of this.#I())if(this.#Q[Z]!==void 0&&!this.#F(this.#Q[Z]))yield this.#Q[Z]}[Symbol.iterator](){return this.entries()}[Symbol.toStringTag]="LRUCache";find(Z,J={}){for(let X of this.#T()){let Y=this.#Q[X],$=this.#F(Y)?Y.__staleWhileFetching:Y;if($===void 0)continue;if(Z($,this.#H[X],this))return this.get(this.#H[X],J)}}forEach(Z,J=this){for(let X of this.#T()){let Y=this.#Q[X],$=this.#F(Y)?Y.__staleWhileFetching:Y;if($===void 0)continue;Z.call(J,$,this.#H[X],this)}}rforEach(Z,J=this){for(let X of this.#I()){let Y=this.#Q[X],$=this.#F(Y)?Y.__staleWhileFetching:Y;if($===void 0)continue;Z.call(J,$,this.#H[X],this)}}purgeStale(){let Z=!1;for(let J of this.#I({allowStale:!0}))if(this.#D(J))this.#_(this.#H[J],"expire"),Z=!0;return Z}info(Z){let J=this.#z.get(Z);if(J===void 0)return;let X=this.#Q[J],Y=this.#F(X)?X.__staleWhileFetching:X;if(Y===void 0)return;let $={value:Y};if(this.#R&&this.#N){let Q=this.#R[J],K=this.#N[J];if(Q&&K){let W=Q-(RQ.now()-K);$.ttl=W,$.start=Date.now()}}if(this.#E)$.size=this.#E[J];return $}dump(){let Z=[];for(let J of this.#T({allowStale:!0})){let X=this.#H[J],Y=this.#Q[J],$=this.#F(Y)?Y.__staleWhileFetching:Y;if($===void 0||X===void 0)continue;let Q={value:$};if(this.#R&&this.#N){Q.ttl=this.#R[J];let K=RQ.now()-this.#N[J];Q.start=Math.floor(Date.now()-K)}if(this.#E)Q.size=this.#E[J];Z.unshift([X,Q])}return Z}load(Z){this.clear();for(let[J,X]of Z){if(X.start){let Y=Date.now()-X.start;X.start=RQ.now()-Y}this.set(J,X.value,X)}}set(Z,J,X={}){if(J===void 0)return this.delete(Z),this;let{ttl:Y=this.ttl,start:$,noDisposeOnSet:Q=this.noDisposeOnSet,sizeCalculation:K=this.sizeCalculation,status:W}=X,{noUpdateTTL:G=this.noUpdateTTL}=X,z=this.#u(Z,J,X.size||0,K);if(this.maxEntrySize&&z>this.maxEntrySize){if(W)W.set="miss",W.maxEntrySizeExceeded=!0;return this.#_(Z,"set"),this}let V=this.#W===0?void 0:this.#z.get(Z);if(V===void 0){if(V=this.#W===0?this.#j:this.#k.length!==0?this.#k.pop():this.#W===this.#Z?this.#b(!1):this.#W,this.#H[V]=Z,this.#Q[V]=J,this.#z.set(Z,V),this.#U[this.#j]=V,this.#w[V]=this.#j,this.#j=V,this.#W++,this.#f(V,z,W),W)W.set="add";if(G=!1,this.#v)this.#X?.(J,Z,"add")}else{this.#y(V);let H=this.#Q[V];if(J!==H){if(this.#C&&this.#F(H)){H.__abortController.abort(new Error("replaced"));let{__staleWhileFetching:q}=H;if(q!==void 0&&!Q){if(this.#M)this.#Y?.(q,Z,"set");if(this.#B)this.#O?.push([q,Z,"set"])}}else if(!Q){if(this.#M)this.#Y?.(H,Z,"set");if(this.#B)this.#O?.push([H,Z,"set"])}if(this.#x(V),this.#f(V,z,W),this.#Q[V]=J,W){W.set="replace";let q=H&&this.#F(H)?H.__staleWhileFetching:H;if(q!==void 0)W.oldValue=q}}else if(W)W.set="update";if(this.#v)this.onInsert?.(J,Z,J===H?"update":"replace")}if(Y!==0&&!this.#R)this.#K();if(this.#R){if(!G)this.#S(V,Y,$);if(W)this.#P(W,V)}if(!Q&&this.#B&&this.#O){let H=this.#O,q;while(q=H?.shift())this.#$?.(...q)}return this}pop(){try{while(this.#W){let Z=this.#Q[this.#L];if(this.#b(!0),this.#F(Z)){if(Z.__staleWhileFetching)return Z.__staleWhileFetching}else if(Z!==void 0)return Z}}finally{if(this.#B&&this.#O){let Z=this.#O,J;while(J=Z?.shift())this.#$?.(...J)}}}#b(Z){let J=this.#L,X=this.#H[J],Y=this.#Q[J];if(this.#C&&this.#F(Y))Y.__abortController.abort(new Error("evicted"));else if(this.#M||this.#B){if(this.#M)this.#Y?.(Y,X,"evict");if(this.#B)this.#O?.push([Y,X,"evict"])}if(this.#x(J),Z)this.#H[J]=void 0,this.#Q[J]=void 0,this.#k.push(J);if(this.#W===1)this.#L=this.#j=0,this.#k.length=0;else this.#L=this.#U[J];return this.#z.delete(X),this.#W--,J}has(Z,J={}){let{updateAgeOnHas:X=this.updateAgeOnHas,status:Y}=J,$=this.#z.get(Z);if($!==void 0){let Q=this.#Q[$];if(this.#F(Q)&&Q.__staleWhileFetching===void 0)return!1;if(!this.#D($)){if(X)this.#A($);if(Y)Y.has="hit",this.#P(Y,$);return!0}else if(Y)Y.has="stale",this.#P(Y,$)}else if(Y)Y.has="miss";return!1}peek(Z,J={}){let{allowStale:X=this.allowStale}=J,Y=this.#z.get(Z);if(Y===void 0||!X&&this.#D(Y))return;let $=this.#Q[Y];return this.#F($)?$.__staleWhileFetching:$}#h(Z,J,X,Y){let $=J===void 0?void 0:this.#Q[J];if(this.#F($))return $;let Q=new LU,{signal:K}=X;K?.addEventListener("abort",()=>Q.abort(K.reason),{signal:Q.signal});let W={signal:Q.signal,options:X,context:Y},G=(U,w=!1)=>{let{aborted:L}=Q.signal,j=X.ignoreFetchAbort&&U!==void 0;if(X.status)if(L&&!w){if(X.status.fetchAborted=!0,X.status.fetchError=Q.signal.reason,j)X.status.fetchAbortIgnored=!0}else X.status.fetchResolved=!0;if(L&&!j&&!w)return V(Q.signal.reason);let R=q;if(this.#Q[J]===q)if(U===void 0)if(R.__staleWhileFetching)this.#Q[J]=R.__staleWhileFetching;else this.#_(Z,"fetch");else{if(X.status)X.status.fetchUpdated=!0;this.set(Z,U,W.options)}return U},z=(U)=>{if(X.status)X.status.fetchRejected=!0,X.status.fetchError=U;return V(U)},V=(U)=>{let{aborted:w}=Q.signal,L=w&&X.allowStaleOnFetchAbort,j=L||X.allowStaleOnFetchRejection,R=j||X.noDeleteOnFetchRejection,O=q;if(this.#Q[J]===q){if(!R||O.__staleWhileFetching===void 0)this.#_(Z,"fetch");else if(!L)this.#Q[J]=O.__staleWhileFetching}if(j){if(X.status&&O.__staleWhileFetching!==void 0)X.status.returnedStale=!0;return O.__staleWhileFetching}else if(O.__returned===O)throw U},H=(U,w)=>{let L=this.#V?.(Z,$,W);if(L&&L instanceof Promise)L.then((j)=>U(j===void 0?void 0:j),w);Q.signal.addEventListener("abort",()=>{if(!X.ignoreFetchAbort||X.allowStaleOnFetchAbort){if(U(void 0),X.allowStaleOnFetchAbort)U=(j)=>G(j,!0)}})};if(X.status)X.status.fetchDispatched=!0;let q=new Promise(H).then(G,z),F=Object.assign(q,{__abortController:Q,__staleWhileFetching:$,__returned:void 0});if(J===void 0)this.set(Z,F,{...W.options,status:void 0}),J=this.#z.get(Z);else this.#Q[J]=F;return F}#F(Z){if(!this.#C)return!1;let J=Z;return!!J&&J instanceof Promise&&J.hasOwnProperty("__staleWhileFetching")&&J.__abortController instanceof LU}async fetch(Z,J={}){let{allowStale:X=this.allowStale,updateAgeOnGet:Y=this.updateAgeOnGet,noDeleteOnStaleGet:$=this.noDeleteOnStaleGet,ttl:Q=this.ttl,noDisposeOnSet:K=this.noDisposeOnSet,size:W=0,sizeCalculation:G=this.sizeCalculation,noUpdateTTL:z=this.noUpdateTTL,noDeleteOnFetchRejection:V=this.noDeleteOnFetchRejection,allowStaleOnFetchRejection:H=this.allowStaleOnFetchRejection,ignoreFetchAbort:q=this.ignoreFetchAbort,allowStaleOnFetchAbort:F=this.allowStaleOnFetchAbort,context:U,forceRefresh:w=!1,status:L,signal:j}=J;if(!this.#C){if(L)L.fetch="get";return this.get(Z,{allowStale:X,updateAgeOnGet:Y,noDeleteOnStaleGet:$,status:L})}let R={allowStale:X,updateAgeOnGet:Y,noDeleteOnStaleGet:$,ttl:Q,noDisposeOnSet:K,size:W,sizeCalculation:G,noUpdateTTL:z,noDeleteOnFetchRejection:V,allowStaleOnFetchRejection:H,allowStaleOnFetchAbort:F,ignoreFetchAbort:q,status:L,signal:j},O=this.#z.get(Z);if(O===void 0){if(L)L.fetch="miss";let N=this.#h(Z,O,R,U);return N.__returned=N}else{let N=this.#Q[O];if(this.#F(N)){let k=X&&N.__staleWhileFetching!==void 0;if(L){if(L.fetch="inflight",k)L.returnedStale=!0}return k?N.__staleWhileFetching:N.__returned=N}let D=this.#D(O);if(!w&&!D){if(L)L.fetch="hit";if(this.#y(O),Y)this.#A(O);if(L)this.#P(L,O);return N}let P=this.#h(Z,O,R,U),T=P.__staleWhileFetching!==void 0&&X;if(L){if(L.fetch=D?"stale":"refresh",T&&D)L.returnedStale=!0}return T?P.__staleWhileFetching:P.__returned=P}}async forceFetch(Z,J={}){let X=await this.fetch(Z,J);if(X===void 0)throw new Error("fetch() returned undefined");return X}memo(Z,J={}){let X=this.#q;if(!X)throw new Error("no memoMethod provided to constructor");let{context:Y,forceRefresh:$,...Q}=J,K=this.get(Z,Q);if(!$&&K!==void 0)return K;let W=X(Z,K,{options:Q,context:Y});return this.set(Z,W,Q),W}get(Z,J={}){let{allowStale:X=this.allowStale,updateAgeOnGet:Y=this.updateAgeOnGet,noDeleteOnStaleGet:$=this.noDeleteOnStaleGet,status:Q}=J,K=this.#z.get(Z);if(K!==void 0){let W=this.#Q[K],G=this.#F(W);if(Q)this.#P(Q,K);if(this.#D(K)){if(Q)Q.get="stale";if(!G){if(!$)this.#_(Z,"expire");if(Q&&X)Q.returnedStale=!0;return X?W:void 0}else{if(Q&&X&&W.__staleWhileFetching!==void 0)Q.returnedStale=!0;return X?W.__staleWhileFetching:void 0}}else{if(Q)Q.get="hit";if(G)return W.__staleWhileFetching;if(this.#y(K),Y)this.#A(K);return W}}else if(Q)Q.get="miss"}#c(Z,J){this.#w[J]=Z,this.#U[Z]=J}#y(Z){if(Z!==this.#j){if(Z===this.#L)this.#L=this.#U[Z];else this.#c(this.#w[Z],this.#U[Z]);this.#c(this.#j,Z),this.#j=Z}}delete(Z){return this.#_(Z,"delete")}#_(Z,J){let X=!1;if(this.#W!==0){let Y=this.#z.get(Z);if(Y!==void 0)if(X=!0,this.#W===1)this.#g(J);else{this.#x(Y);let $=this.#Q[Y];if(this.#F($))$.__abortController.abort(new Error("deleted"));else if(this.#M||this.#B){if(this.#M)this.#Y?.($,Z,J);if(this.#B)this.#O?.push([$,Z,J])}if(this.#z.delete(Z),this.#H[Y]=void 0,this.#Q[Y]=void 0,Y===this.#j)this.#j=this.#w[Y];else if(Y===this.#L)this.#L=this.#U[Y];else{let Q=this.#w[Y];this.#U[Q]=this.#U[Y];let K=this.#U[Y];this.#w[K]=this.#w[Y]}this.#W--,this.#k.push(Y)}}if(this.#B&&this.#O?.length){let Y=this.#O,$;while($=Y?.shift())this.#$?.(...$)}return X}clear(){return this.#g("delete")}#g(Z){for(let J of this.#I({allowStale:!0})){let X=this.#Q[J];if(this.#F(X))X.__abortController.abort(new Error("deleted"));else{let Y=this.#H[J];if(this.#M)this.#Y?.(X,Y,Z);if(this.#B)this.#O?.push([X,Y,Z])}}if(this.#z.clear(),this.#Q.fill(void 0),this.#H.fill(void 0),this.#R&&this.#N)this.#R.fill(0),this.#N.fill(0);if(this.#E)this.#E.fill(0);if(this.#L=0,this.#j=0,this.#k.length=0,this.#G=0,this.#W=0,this.#B&&this.#O){let J=this.#O,X;while(X=J?.shift())this.#$?.(...X)}}}import{posix as HV1,win32 as qP}from"path";import{fileURLToPath as qV1}from"url";import{lstatSync as FV1,readdir as UV1,readdirSync as LV1,readlinkSync as wV1,realpathSync as BV1}from"fs";import*as jV1 from"fs";import{lstat as MV1,readdir as RV1,readlink as NV1,realpath as PV1}from"fs/promises";import{EventEmitter as GP}from"events";import sd from"stream";import{StringDecoder as JV1}from"string_decoder";var pd=typeof process==="object"&&process?process:{stdout:null,stderr:null},XV1=(Z)=>!!Z&&typeof Z==="object"&&(Z instanceof sX||Z instanceof sd||YV1(Z)||$V1(Z)),YV1=(Z)=>!!Z&&typeof Z==="object"&&Z instanceof GP&&typeof Z.pipe==="function"&&Z.pipe!==sd.Writable.prototype.pipe,$V1=(Z)=>!!Z&&typeof Z==="object"&&Z instanceof GP&&typeof Z.write==="function"&&typeof Z.end==="function",$Z=Symbol("EOF"),QZ=Symbol("maybeEmitEnd"),WJ=Symbol("emittedEnd"),wU=Symbol("emittingEnd"),c3=Symbol("emittedError"),BU=Symbol("closed"),id=Symbol("read"),jU=Symbol("flush"),nd=Symbol("flushChunk"),K4=Symbol("encoding"),PQ=Symbol("decoder"),r8=Symbol("flowing"),l3=Symbol("paused"),DQ=Symbol("resume"),t8=Symbol("buffer"),u6=Symbol("pipes"),e8=Symbol("bufferLength"),YP=Symbol("bufferPush"),OU=Symbol("bufferShift"),P6=Symbol("objectMode"),O8=Symbol("destroyed"),$P=Symbol("error"),QP=Symbol("emitData"),ad=Symbol("emitEnd"),KP=Symbol("emitEnd2"),o4=Symbol("async"),WP=Symbol("abort"),MU=Symbol("aborted"),p3=Symbol("signal"),aX=Symbol("dataListeners"),d5=Symbol("discarded"),i3=(Z)=>Promise.resolve().then(Z),QV1=(Z)=>Z(),KV1=(Z)=>Z==="end"||Z==="finish"||Z==="prefinish",WV1=(Z)=>Z instanceof ArrayBuffer||!!Z&&typeof Z==="object"&&Z.constructor&&Z.constructor.name==="ArrayBuffer"&&Z.byteLength>=0,GV1=(Z)=>!Buffer.isBuffer(Z)&&ArrayBuffer.isView(Z);class zP{src;dest;opts;ondrain;constructor(Z,J,X){this.src=Z,this.dest=J,this.opts=X,this.ondrain=()=>Z[DQ](),this.dest.on("drain",this.ondrain)}unpipe(){this.dest.removeListener("drain",this.ondrain)}proxyErrors(Z){}end(){if(this.unpipe(),this.opts.end)this.dest.end()}}class od extends zP{unpipe(){this.src.removeListener("error",this.proxyErrors),super.unpipe()}constructor(Z,J,X){super(Z,J,X);this.proxyErrors=(Y)=>J.emit("error",Y),Z.on("error",this.proxyErrors)}}var zV1=(Z)=>!!Z.objectMode,VV1=(Z)=>!Z.objectMode&&!!Z.encoding&&Z.encoding!=="buffer";class sX extends GP{[r8]=!1;[l3]=!1;[u6]=[];[t8]=[];[P6];[K4];[o4];[PQ];[$Z]=!1;[WJ]=!1;[wU]=!1;[BU]=!1;[c3]=null;[e8]=0;[O8]=!1;[p3];[MU]=!1;[aX]=0;[d5]=!1;writable=!0;readable=!0;constructor(...Z){let J=Z[0]||{};super();if(J.objectMode&&typeof J.encoding==="string")throw new TypeError("Encoding and objectMode may not be used together");if(zV1(J))this[P6]=!0,this[K4]=null;else if(VV1(J))this[K4]=J.encoding,this[P6]=!1;else this[P6]=!1,this[K4]=null;if(this[o4]=!!J.async,this[PQ]=this[K4]?new JV1(this[K4]):null,J&&J.debugExposeBuffer===!0)Object.defineProperty(this,"buffer",{get:()=>this[t8]});if(J&&J.debugExposePipes===!0)Object.defineProperty(this,"pipes",{get:()=>this[u6]});let{signal:X}=J;if(X)if(this[p3]=X,X.aborted)this[WP]();else X.addEventListener("abort",()=>this[WP]())}get bufferLength(){return this[e8]}get encoding(){return this[K4]}set encoding(Z){throw new Error("Encoding must be set at instantiation time")}setEncoding(Z){throw new Error("Encoding must be set at instantiation time")}get objectMode(){return this[P6]}set objectMode(Z){throw new Error("objectMode must be set at instantiation time")}get["async"](){return this[o4]}set["async"](Z){this[o4]=this[o4]||!!Z}[WP](){this[MU]=!0,this.emit("abort",this[p3]?.reason),this.destroy(this[p3]?.reason)}get aborted(){return this[MU]}set aborted(Z){}write(Z,J,X){if(this[MU])return!1;if(this[$Z])throw new Error("write after end");if(this[O8])return this.emit("error",Object.assign(new Error("Cannot call write after a stream was destroyed"),{code:"ERR_STREAM_DESTROYED"})),!0;if(typeof J==="function")X=J,J="utf8";if(!J)J="utf8";let Y=this[o4]?i3:QV1;if(!this[P6]&&!Buffer.isBuffer(Z)){if(GV1(Z))Z=Buffer.from(Z.buffer,Z.byteOffset,Z.byteLength);else if(WV1(Z))Z=Buffer.from(Z);else if(typeof Z!=="string")throw new Error("Non-contiguous data written to non-objectMode stream")}if(this[P6]){if(this[r8]&&this[e8]!==0)this[jU](!0);if(this[r8])this.emit("data",Z);else this[YP](Z);if(this[e8]!==0)this.emit("readable");if(X)Y(X);return this[r8]}if(!Z.length){if(this[e8]!==0)this.emit("readable");if(X)Y(X);return this[r8]}if(typeof Z==="string"&&!(J===this[K4]&&!this[PQ]?.lastNeed))Z=Buffer.from(Z,J);if(Buffer.isBuffer(Z)&&this[K4])Z=this[PQ].write(Z);if(this[r8]&&this[e8]!==0)this[jU](!0);if(this[r8])this.emit("data",Z);else this[YP](Z);if(this[e8]!==0)this.emit("readable");if(X)Y(X);return this[r8]}read(Z){if(this[O8])return null;if(this[d5]=!1,this[e8]===0||Z===0||Z&&Z>this[e8])return this[QZ](),null;if(this[P6])Z=null;if(this[t8].length>1&&!this[P6])this[t8]=[this[K4]?this[t8].join(""):Buffer.concat(this[t8],this[e8])];let J=this[id](Z||null,this[t8][0]);return this[QZ](),J}[id](Z,J){if(this[P6])this[OU]();else{let X=J;if(Z===X.length||Z===null)this[OU]();else if(typeof X==="string")this[t8][0]=X.slice(Z),J=X.slice(0,Z),this[e8]-=Z;else this[t8][0]=X.subarray(Z),J=X.subarray(0,Z),this[e8]-=Z}if(this.emit("data",J),!this[t8].length&&!this[$Z])this.emit("drain");return J}end(Z,J,X){if(typeof Z==="function")X=Z,Z=void 0;if(typeof J==="function")X=J,J="utf8";if(Z!==void 0)this.write(Z,J);if(X)this.once("end",X);if(this[$Z]=!0,this.writable=!1,this[r8]||!this[l3])this[QZ]();return this}[DQ](){if(this[O8])return;if(!this[aX]&&!this[u6].length)this[d5]=!0;if(this[l3]=!1,this[r8]=!0,this.emit("resume"),this[t8].length)this[jU]();else if(this[$Z])this[QZ]();else this.emit("drain")}resume(){return this[DQ]()}pause(){this[r8]=!1,this[l3]=!0,this[d5]=!1}get destroyed(){return this[O8]}get flowing(){return this[r8]}get paused(){return this[l3]}[YP](Z){if(this[P6])this[e8]+=1;else this[e8]+=Z.length;this[t8].push(Z)}[OU](){if(this[P6])this[e8]-=1;else this[e8]-=this[t8][0].length;return this[t8].shift()}[jU](Z=!1){do;while(this[nd](this[OU]())&&this[t8].length);if(!Z&&!this[t8].length&&!this[$Z])this.emit("drain")}[nd](Z){return this.emit("data",Z),this[r8]}pipe(Z,J){if(this[O8])return Z;this[d5]=!1;let X=this[WJ];if(J=J||{},Z===pd.stdout||Z===pd.stderr)J.end=!1;else J.end=J.end!==!1;if(J.proxyErrors=!!J.proxyErrors,X){if(J.end)Z.end()}else if(this[u6].push(!J.proxyErrors?new zP(this,Z,J):new od(this,Z,J)),this[o4])i3(()=>this[DQ]());else this[DQ]();return Z}unpipe(Z){let J=this[u6].find((X)=>X.dest===Z);if(J){if(this[u6].length===1){if(this[r8]&&this[aX]===0)this[r8]=!1;this[u6]=[]}else this[u6].splice(this[u6].indexOf(J),1);J.unpipe()}}addListener(Z,J){return this.on(Z,J)}on(Z,J){let X=super.on(Z,J);if(Z==="data"){if(this[d5]=!1,this[aX]++,!this[u6].length&&!this[r8])this[DQ]()}else if(Z==="readable"&&this[e8]!==0)super.emit("readable");else if(KV1(Z)&&this[WJ])super.emit(Z),this.removeAllListeners(Z);else if(Z==="error"&&this[c3]){let Y=J;if(this[o4])i3(()=>Y.call(this,this[c3]));else Y.call(this,this[c3])}return X}removeListener(Z,J){return this.off(Z,J)}off(Z,J){let X=super.off(Z,J);if(Z==="data"){if(this[aX]=this.listeners("data").length,this[aX]===0&&!this[d5]&&!this[u6].length)this[r8]=!1}return X}removeAllListeners(Z){let J=super.removeAllListeners(Z);if(Z==="data"||Z===void 0){if(this[aX]=0,!this[d5]&&!this[u6].length)this[r8]=!1}return J}get emittedEnd(){return this[WJ]}[QZ](){if(!this[wU]&&!this[WJ]&&!this[O8]&&this[t8].length===0&&this[$Z]){if(this[wU]=!0,this.emit("end"),this.emit("prefinish"),this.emit("finish"),this[BU])this.emit("close");this[wU]=!1}}emit(Z,...J){let X=J[0];if(Z!=="error"&&Z!=="close"&&Z!==O8&&this[O8])return!1;else if(Z==="data")return!this[P6]&&!X?!1:this[o4]?(i3(()=>this[QP](X)),!0):this[QP](X);else if(Z==="end")return this[ad]();else if(Z==="close"){if(this[BU]=!0,!this[WJ]&&!this[O8])return!1;let $=super.emit("close");return this.removeAllListeners("close"),$}else if(Z==="error"){this[c3]=X,super.emit($P,X);let $=!this[p3]||this.listeners("error").length?super.emit("error",X):!1;return this[QZ](),$}else if(Z==="resume"){let $=super.emit("resume");return this[QZ](),$}else if(Z==="finish"||Z==="prefinish"){let $=super.emit(Z);return this.removeAllListeners(Z),$}let Y=super.emit(Z,...J);return this[QZ](),Y}[QP](Z){for(let X of this[u6])if(X.dest.write(Z)===!1)this.pause();let J=this[d5]?!1:super.emit("data",Z);return this[QZ](),J}[ad](){if(this[WJ])return!1;return this[WJ]=!0,this.readable=!1,this[o4]?(i3(()=>this[KP]()),!0):this[KP]()}[KP](){if(this[PQ]){let J=this[PQ].end();if(J){for(let X of this[u6])X.dest.write(J);if(!this[d5])super.emit("data",J)}}for(let J of this[u6])J.end();let Z=super.emit("end");return this.removeAllListeners("end"),Z}async collect(){let Z=Object.assign([],{dataLength:0});if(!this[P6])Z.dataLength=0;let J=this.promise();return this.on("data",(X)=>{if(Z.push(X),!this[P6])Z.dataLength+=X.length}),await J,Z}async concat(){if(this[P6])throw new Error("cannot concat in objectMode");let Z=await this.collect();return this[K4]?Z.join(""):Buffer.concat(Z,Z.dataLength)}async promise(){return new Promise((Z,J)=>{this.on(O8,()=>J(new Error("stream destroyed"))),this.on("error",(X)=>J(X)),this.on("end",()=>Z())})}[Symbol.asyncIterator](){this[d5]=!1;let Z=!1,J=async()=>{return this.pause(),Z=!0,{value:void 0,done:!0}};return{next:()=>{if(Z)return J();let Y=this.read();if(Y!==null)return Promise.resolve({done:!1,value:Y});if(this[$Z])return J();let $,Q,K=(V)=>{this.off("data",W),this.off("end",G),this.off(O8,z),J(),Q(V)},W=(V)=>{this.off("error",K),this.off("end",G),this.off(O8,z),this.pause(),$({value:V,done:!!this[$Z]})},G=()=>{this.off("error",K),this.off("data",W),this.off(O8,z),J(),$({done:!0,value:void 0})},z=()=>K(new Error("stream destroyed"));return new Promise((V,H)=>{Q=H,$=V,this.once(O8,z),this.once("error",K),this.once("end",G),this.once("data",W)})},throw:J,return:J,[Symbol.asyncIterator](){return this}}}[Symbol.iterator](){this[d5]=!1;let Z=!1,J=()=>{return this.pause(),this.off($P,J),this.off(O8,J),this.off("end",J),Z=!0,{done:!0,value:void 0}},X=()=>{if(Z)return J();let Y=this.read();return Y===null?J():{done:!1,value:Y}};return this.once("end",J),this.once($P,J),this.once(O8,J),{next:X,throw:J,return:J,[Symbol.iterator](){return this}}}destroy(Z){if(this[O8]){if(Z)this.emit("error",Z);else this.emit(O8);return this}this[O8]=!0,this[d5]=!0,this[t8].length=0,this[e8]=0;let J=this;if(typeof J.close==="function"&&!this[BU])J.close();if(Z)this.emit("error",Z);else this.emit(O8);return this}static get isStream(){return XV1}}var OV1=BV1.native,a3={lstatSync:FV1,readdir:UV1,readdirSync:LV1,readlinkSync:wV1,realpathSync:OV1,promises:{lstat:MV1,readdir:RV1,readlink:NV1,realpath:PV1}},Jc=(Z)=>!Z||Z===a3||Z===jV1?a3:{...a3,...Z,promises:{...a3.promises,...Z.promises||{}}},Xc=/^\\\\\?\\([a-z]:)\\?$/i,DV1=(Z)=>Z.replace(/\//g,"\\").replace(Xc,"$1\\"),CV1=/[\\\/]/,j9=0,Yc=1,$c=2,r4=4,Qc=6,Kc=8,oX=10,Wc=12,B9=15,n3=~B9,VP=16,rd=32,s3=64,W4=128,RU=256,PU=512,td=s3|W4|PU,TV1=1023,HP=(Z)=>Z.isFile()?Kc:Z.isDirectory()?r4:Z.isSymbolicLink()?oX:Z.isCharacterDevice()?$c:Z.isBlockDevice()?Qc:Z.isSocket()?Wc:Z.isFIFO()?Yc:j9,ed=new Map,o3=(Z)=>{let J=ed.get(Z);if(J)return J;let X=Z.normalize("NFKD");return ed.set(Z,X),X},Zc=new Map,NU=(Z)=>{let J=Zc.get(Z);if(J)return J;let X=o3(Z.toLowerCase());return Zc.set(Z,X),X};class FP extends d3{constructor(){super({max:256})}}class Gc extends d3{constructor(Z=16384){super({maxSize:Z,sizeCalculation:(J)=>J.length+1})}}var zc=Symbol("PathScurry setAsCwd");class d6{name;root;roots;parent;nocase;isCWD=!1;#Z;#J;get dev(){return this.#J}#Y;get mode(){return this.#Y}#X;get nlink(){return this.#X}#$;get uid(){return this.#$}#V;get gid(){return this.#V}#q;get rdev(){return this.#q}#W;get blksize(){return this.#W}#G;get ino(){return this.#G}#z;get size(){return this.#z}#H;get blocks(){return this.#H}#Q;get atimeMs(){return this.#Q}#U;get mtimeMs(){return this.#U}#w;get ctimeMs(){return this.#w}#L;get birthtimeMs(){return this.#L}#j;get atime(){return this.#j}#k;get mtime(){return this.#k}#O;get ctime(){return this.#O}#E;get birthtime(){return this.#E}#N;#R;#M;#C;#B;#v;#K;#A;#P;#S;get parentPath(){return(this.parent||this).fullpath()}get path(){return this.parentPath}constructor(Z,J=j9,X,Y,$,Q,K){if(this.name=Z,this.#N=$?NU(Z):o3(Z),this.#K=J&TV1,this.nocase=$,this.roots=Y,this.root=X||this,this.#A=Q,this.#M=K.fullpath,this.#B=K.relative,this.#v=K.relativePosix,this.parent=K.parent,this.parent)this.#Z=this.parent.#Z;else this.#Z=Jc(K.fs)}depth(){if(this.#R!==void 0)return this.#R;if(!this.parent)return this.#R=0;return this.#R=this.parent.depth()+1}childrenCache(){return this.#A}resolve(Z){if(!Z)return this;let J=this.getRootString(Z),Y=Z.substring(J.length).split(this.splitSep);return J?this.getRoot(J).#D(Y):this.#D(Y)}#D(Z){let J=this;for(let X of Z)J=J.child(X);return J}children(){let Z=this.#A.get(this);if(Z)return Z;let J=Object.assign([],{provisional:0});return this.#A.set(this,J),this.#K&=~VP,J}child(Z,J){if(Z===""||Z===".")return this;if(Z==="..")return this.parent||this;let X=this.children(),Y=this.nocase?NU(Z):o3(Z);for(let W of X)if(W.#N===Y)return W;let $=this.parent?this.sep:"",Q=this.#M?this.#M+$+Z:void 0,K=this.newChild(Z,j9,{...J,parent:this,fullpath:Q});if(!this.canReaddir())K.#K|=W4;return X.push(K),K}relative(){if(this.isCWD)return"";if(this.#B!==void 0)return this.#B;let Z=this.name,J=this.parent;if(!J)return this.#B=this.name;let X=J.relative();return X+(!X||!J.parent?"":this.sep)+Z}relativePosix(){if(this.sep==="/")return this.relative();if(this.isCWD)return"";if(this.#v!==void 0)return this.#v;let Z=this.name,J=this.parent;if(!J)return this.#v=this.fullpathPosix();let X=J.relativePosix();return X+(!X||!J.parent?"":"/")+Z}fullpath(){if(this.#M!==void 0)return this.#M;let Z=this.name,J=this.parent;if(!J)return this.#M=this.name;let Y=J.fullpath()+(!J.parent?"":this.sep)+Z;return this.#M=Y}fullpathPosix(){if(this.#C!==void 0)return this.#C;if(this.sep==="/")return this.#C=this.fullpath();if(!this.parent){let Y=this.fullpath().replace(/\\/g,"/");if(/^[a-z]:\//i.test(Y))return this.#C=`//?/${Y}`;else return this.#C=Y}let Z=this.parent,J=Z.fullpathPosix(),X=J+(!J||!Z.parent?"":"/")+this.name;return this.#C=X}isUnknown(){return(this.#K&B9)===j9}isType(Z){return this[`is${Z}`]()}getType(){return this.isUnknown()?"Unknown":this.isDirectory()?"Directory":this.isFile()?"File":this.isSymbolicLink()?"SymbolicLink":this.isFIFO()?"FIFO":this.isCharacterDevice()?"CharacterDevice":this.isBlockDevice()?"BlockDevice":this.isSocket()?"Socket":"Unknown"}isFile(){return(this.#K&B9)===Kc}isDirectory(){return(this.#K&B9)===r4}isCharacterDevice(){return(this.#K&B9)===$c}isBlockDevice(){return(this.#K&B9)===Qc}isFIFO(){return(this.#K&B9)===Yc}isSocket(){return(this.#K&B9)===Wc}isSymbolicLink(){return(this.#K&oX)===oX}lstatCached(){return this.#K&rd?this:void 0}readlinkCached(){return this.#P}realpathCached(){return this.#S}readdirCached(){let Z=this.children();return Z.slice(0,Z.provisional)}canReadlink(){if(this.#P)return!0;if(!this.parent)return!1;let Z=this.#K&B9;return!(Z!==j9&&Z!==oX||this.#K&RU||this.#K&W4)}calledReaddir(){return!!(this.#K&VP)}isENOENT(){return!!(this.#K&W4)}isNamed(Z){return!this.nocase?this.#N===o3(Z):this.#N===NU(Z)}async readlink(){let Z=this.#P;if(Z)return Z;if(!this.canReadlink())return;if(!this.parent)return;try{let J=await this.#Z.promises.readlink(this.fullpath()),X=(await this.parent.realpath())?.resolve(J);if(X)return this.#P=X}catch(J){this.#b(J.code);return}}readlinkSync(){let Z=this.#P;if(Z)return Z;if(!this.canReadlink())return;if(!this.parent)return;try{let J=this.#Z.readlinkSync(this.fullpath()),X=this.parent.realpathSync()?.resolve(J);if(X)return this.#P=X}catch(J){this.#b(J.code);return}}#m(Z){this.#K|=VP;for(let J=Z.provisional;J<Z.length;J++){let X=Z[J];if(X)X.#x()}}#x(){if(this.#K&W4)return;this.#K=(this.#K|W4)&n3,this.#f()}#f(){let Z=this.children();Z.provisional=0;for(let J of Z)J.#x()}#u(){this.#K|=PU,this.#T()}#T(){if(this.#K&s3)return;let Z=this.#K;if((Z&B9)===r4)Z&=n3;this.#K=Z|s3,this.#f()}#I(Z=""){if(Z==="ENOTDIR"||Z==="EPERM")this.#T();else if(Z==="ENOENT")this.#x();else this.children().provisional=0}#d(Z=""){if(Z==="ENOTDIR")this.parent.#T();else if(Z==="ENOENT")this.#x()}#b(Z=""){let J=this.#K;if(J|=RU,Z==="ENOENT")J|=W4;if(Z==="EINVAL"||Z==="UNKNOWN")J&=n3;if(this.#K=J,Z==="ENOTDIR"&&this.parent)this.parent.#T()}#h(Z,J){return this.#c(Z,J)||this.#F(Z,J)}#F(Z,J){let X=HP(Z),Y=this.newChild(Z.name,X,{parent:this}),$=Y.#K&B9;if($!==r4&&$!==oX&&$!==j9)Y.#K|=s3;return J.unshift(Y),J.provisional++,Y}#c(Z,J){for(let X=J.provisional;X<J.length;X++){let Y=J[X];if((this.nocase?NU(Z.name):o3(Z.name))!==Y.#N)continue;return this.#y(Z,Y,X,J)}}#y(Z,J,X,Y){let $=J.name;if(J.#K=J.#K&n3|HP(Z),$!==Z.name)J.name=Z.name;if(X!==Y.provisional){if(X===Y.length-1)Y.pop();else Y.splice(X,1);Y.unshift(J)}return Y.provisional++,J}async lstat(){if((this.#K&W4)===0)try{return this.#_(await this.#Z.promises.lstat(this.fullpath())),this}catch(Z){this.#d(Z.code)}}lstatSync(){if((this.#K&W4)===0)try{return this.#_(this.#Z.lstatSync(this.fullpath())),this}catch(Z){this.#d(Z.code)}}#_(Z){let{atime:J,atimeMs:X,birthtime:Y,birthtimeMs:$,blksize:Q,blocks:K,ctime:W,ctimeMs:G,dev:z,gid:V,ino:H,mode:q,mtime:F,mtimeMs:U,nlink:w,rdev:L,size:j,uid:R}=Z;this.#j=J,this.#Q=X,this.#E=Y,this.#L=$,this.#W=Q,this.#H=K,this.#O=W,this.#w=G,this.#J=z,this.#V=V,this.#G=H,this.#Y=q,this.#k=F,this.#U=U,this.#X=w,this.#q=L,this.#z=j,this.#$=R;let O=HP(Z);if(this.#K=this.#K&n3|O|rd,O!==j9&&O!==r4&&O!==oX)this.#K|=s3}#g=[];#p=!1;#i(Z){this.#p=!1;let J=this.#g.slice();this.#g.length=0,J.forEach((X)=>X(null,Z))}readdirCB(Z,J=!1){if(!this.canReaddir()){if(J)Z(null,[]);else queueMicrotask(()=>Z(null,[]));return}let X=this.children();if(this.calledReaddir()){let $=X.slice(0,X.provisional);if(J)Z(null,$);else queueMicrotask(()=>Z(null,$));return}if(this.#g.push(Z),this.#p)return;this.#p=!0;let Y=this.fullpath();this.#Z.readdir(Y,{withFileTypes:!0},($,Q)=>{if($)this.#I($.code),X.provisional=0;else{for(let K of Q)this.#h(K,X);this.#m(X)}this.#i(X.slice(0,X.provisional));return})}#l;async readdir(){if(!this.canReaddir())return[];let Z=this.children();if(this.calledReaddir())return Z.slice(0,Z.provisional);let J=this.fullpath();if(this.#l)await this.#l;else{let X=()=>{};this.#l=new Promise((Y)=>X=Y);try{for(let Y of await this.#Z.promises.readdir(J,{withFileTypes:!0}))this.#h(Y,Z);this.#m(Z)}catch(Y){this.#I(Y.code),Z.provisional=0}this.#l=void 0,X()}return Z.slice(0,Z.provisional)}readdirSync(){if(!this.canReaddir())return[];let Z=this.children();if(this.calledReaddir())return Z.slice(0,Z.provisional);let J=this.fullpath();try{for(let X of this.#Z.readdirSync(J,{withFileTypes:!0}))this.#h(X,Z);this.#m(Z)}catch(X){this.#I(X.code),Z.provisional=0}return Z.slice(0,Z.provisional)}canReaddir(){if(this.#K&td)return!1;let Z=B9&this.#K;if(!(Z===j9||Z===r4||Z===oX))return!1;return!0}shouldWalk(Z,J){return(this.#K&r4)===r4&&!(this.#K&td)&&!Z.has(this)&&(!J||J(this))}async realpath(){if(this.#S)return this.#S;if((PU|RU|W4)&this.#K)return;try{let Z=await this.#Z.promises.realpath(this.fullpath());return this.#S=this.resolve(Z)}catch(Z){this.#u()}}realpathSync(){if(this.#S)return this.#S;if((PU|RU|W4)&this.#K)return;try{let Z=this.#Z.realpathSync(this.fullpath());return this.#S=this.resolve(Z)}catch(Z){this.#u()}}[zc](Z){if(Z===this)return;Z.isCWD=!1,this.isCWD=!0;let J=new Set([]),X=[],Y=this;while(Y&&Y.parent)J.add(Y),Y.#B=X.join(this.sep),Y.#v=X.join("/"),Y=Y.parent,X.push("..");Y=Z;while(Y&&Y.parent&&!J.has(Y))Y.#B=void 0,Y.#v=void 0,Y=Y.parent}}class DU extends d6{sep="\\";splitSep=CV1;constructor(Z,J=j9,X,Y,$,Q,K){super(Z,J,X,Y,$,Q,K)}newChild(Z,J=j9,X={}){return new DU(Z,J,this.root,this.roots,this.nocase,this.childrenCache(),X)}getRootString(Z){return qP.parse(Z).root}getRoot(Z){if(Z=DV1(Z.toUpperCase()),Z===this.root.name)return this.root;for(let[J,X]of Object.entries(this.roots))if(this.sameRoot(Z,J))return this.roots[Z]=X;return this.roots[Z]=new r3(Z,this).root}sameRoot(Z,J=this.root.name){return Z=Z.toUpperCase().replace(/\//g,"\\").replace(Xc,"$1\\"),Z===J}}class CU extends d6{splitSep="/";sep="/";constructor(Z,J=j9,X,Y,$,Q,K){super(Z,J,X,Y,$,Q,K)}getRootString(Z){return Z.startsWith("/")?"/":""}getRoot(Z){return this.root}newChild(Z,J=j9,X={}){return new CU(Z,J,this.root,this.roots,this.nocase,this.childrenCache(),X)}}class UP{root;rootPath;roots;cwd;#Z;#J;#Y;nocase;#X;constructor(Z=process.cwd(),J,X,{nocase:Y,childrenCacheSize:$=16384,fs:Q=a3}={}){if(this.#X=Jc(Q),Z instanceof URL||Z.startsWith("file://"))Z=qV1(Z);let K=J.resolve(Z);this.roots=Object.create(null),this.rootPath=this.parseRootPath(K),this.#Z=new FP,this.#J=new FP,this.#Y=new Gc($);let W=K.substring(this.rootPath.length).split(X);if(W.length===1&&!W[0])W.pop();if(Y===void 0)throw new TypeError("must provide nocase setting to PathScurryBase ctor");this.nocase=Y,this.root=this.newRoot(this.#X),this.roots[this.rootPath]=this.root;let G=this.root,z=W.length-1,V=J.sep,H=this.rootPath,q=!1;for(let F of W){let U=z--;G=G.child(F,{relative:new Array(U).fill("..").join(V),relativePosix:new Array(U).fill("..").join("/"),fullpath:H+=(q?"":V)+F}),q=!0}this.cwd=G}depth(Z=this.cwd){if(typeof Z==="string")Z=this.cwd.resolve(Z);return Z.depth()}childrenCache(){return this.#Y}resolve(...Z){let J="";for(let $=Z.length-1;$>=0;$--){let Q=Z[$];if(!Q||Q===".")continue;if(J=J?`${Q}/${J}`:Q,this.isAbsolute(Q))break}let X=this.#Z.get(J);if(X!==void 0)return X;let Y=this.cwd.resolve(J).fullpath();return this.#Z.set(J,Y),Y}resolvePosix(...Z){let J="";for(let $=Z.length-1;$>=0;$--){let Q=Z[$];if(!Q||Q===".")continue;if(J=J?`${Q}/${J}`:Q,this.isAbsolute(Q))break}let X=this.#J.get(J);if(X!==void 0)return X;let Y=this.cwd.resolve(J).fullpathPosix();return this.#J.set(J,Y),Y}relative(Z=this.cwd){if(typeof Z==="string")Z=this.cwd.resolve(Z);return Z.relative()}relativePosix(Z=this.cwd){if(typeof Z==="string")Z=this.cwd.resolve(Z);return Z.relativePosix()}basename(Z=this.cwd){if(typeof Z==="string")Z=this.cwd.resolve(Z);return Z.name}dirname(Z=this.cwd){if(typeof Z==="string")Z=this.cwd.resolve(Z);return(Z.parent||Z).fullpath()}async readdir(Z=this.cwd,J={withFileTypes:!0}){if(typeof Z==="string")Z=this.cwd.resolve(Z);else if(!(Z instanceof d6))J=Z,Z=this.cwd;let{withFileTypes:X}=J;if(!Z.canReaddir())return[];else{let Y=await Z.readdir();return X?Y:Y.map(($)=>$.name)}}readdirSync(Z=this.cwd,J={withFileTypes:!0}){if(typeof Z==="string")Z=this.cwd.resolve(Z);else if(!(Z instanceof d6))J=Z,Z=this.cwd;let{withFileTypes:X=!0}=J;if(!Z.canReaddir())return[];else if(X)return Z.readdirSync();else return Z.readdirSync().map((Y)=>Y.name)}async lstat(Z=this.cwd){if(typeof Z==="string")Z=this.cwd.resolve(Z);return Z.lstat()}lstatSync(Z=this.cwd){if(typeof Z==="string")Z=this.cwd.resolve(Z);return Z.lstatSync()}async readlink(Z=this.cwd,{withFileTypes:J}={withFileTypes:!1}){if(typeof Z==="string")Z=this.cwd.resolve(Z);else if(!(Z instanceof d6))J=Z.withFileTypes,Z=this.cwd;let X=await Z.readlink();return J?X:X?.fullpath()}readlinkSync(Z=this.cwd,{withFileTypes:J}={withFileTypes:!1}){if(typeof Z==="string")Z=this.cwd.resolve(Z);else if(!(Z instanceof d6))J=Z.withFileTypes,Z=this.cwd;let X=Z.readlinkSync();return J?X:X?.fullpath()}async realpath(Z=this.cwd,{withFileTypes:J}={withFileTypes:!1}){if(typeof Z==="string")Z=this.cwd.resolve(Z);else if(!(Z instanceof d6))J=Z.withFileTypes,Z=this.cwd;let X=await Z.realpath();return J?X:X?.fullpath()}realpathSync(Z=this.cwd,{withFileTypes:J}={withFileTypes:!1}){if(typeof Z==="string")Z=this.cwd.resolve(Z);else if(!(Z instanceof d6))J=Z.withFileTypes,Z=this.cwd;let X=Z.realpathSync();return J?X:X?.fullpath()}async walk(Z=this.cwd,J={}){if(typeof Z==="string")Z=this.cwd.resolve(Z);else if(!(Z instanceof d6))J=Z,Z=this.cwd;let{withFileTypes:X=!0,follow:Y=!1,filter:$,walkFilter:Q}=J,K=[];if(!$||$(Z))K.push(X?Z:Z.fullpath());let W=new Set,G=(V,H)=>{W.add(V),V.readdirCB((q,F)=>{if(q)return H(q);let U=F.length;if(!U)return H();let w=()=>{if(--U===0)H()};for(let L of F){if(!$||$(L))K.push(X?L:L.fullpath());if(Y&&L.isSymbolicLink())L.realpath().then((j)=>j?.isUnknown()?j.lstat():j).then((j)=>j?.shouldWalk(W,Q)?G(j,w):w());else if(L.shouldWalk(W,Q))G(L,w);else w()}},!0)},z=Z;return new Promise((V,H)=>{G(z,(q)=>{if(q)return H(q);V(K)})})}walkSync(Z=this.cwd,J={}){if(typeof Z==="string")Z=this.cwd.resolve(Z);else if(!(Z instanceof d6))J=Z,Z=this.cwd;let{withFileTypes:X=!0,follow:Y=!1,filter:$,walkFilter:Q}=J,K=[];if(!$||$(Z))K.push(X?Z:Z.fullpath());let W=new Set([Z]);for(let G of W){let z=G.readdirSync();for(let V of z){if(!$||$(V))K.push(X?V:V.fullpath());let H=V;if(V.isSymbolicLink()){if(!(Y&&(H=V.realpathSync())))continue;if(H.isUnknown())H.lstatSync()}if(H.shouldWalk(W,Q))W.add(H)}}return K}[Symbol.asyncIterator](){return this.iterate()}iterate(Z=this.cwd,J={}){if(typeof Z==="string")Z=this.cwd.resolve(Z);else if(!(Z instanceof d6))J=Z,Z=this.cwd;return this.stream(Z,J)[Symbol.asyncIterator]()}[Symbol.iterator](){return this.iterateSync()}*iterateSync(Z=this.cwd,J={}){if(typeof Z==="string")Z=this.cwd.resolve(Z);else if(!(Z instanceof d6))J=Z,Z=this.cwd;let{withFileTypes:X=!0,follow:Y=!1,filter:$,walkFilter:Q}=J;if(!$||$(Z))yield X?Z:Z.fullpath();let K=new Set([Z]);for(let W of K){let G=W.readdirSync();for(let z of G){if(!$||$(z))yield X?z:z.fullpath();let V=z;if(z.isSymbolicLink()){if(!(Y&&(V=z.realpathSync())))continue;if(V.isUnknown())V.lstatSync()}if(V.shouldWalk(K,Q))K.add(V)}}}stream(Z=this.cwd,J={}){if(typeof Z==="string")Z=this.cwd.resolve(Z);else if(!(Z instanceof d6))J=Z,Z=this.cwd;let{withFileTypes:X=!0,follow:Y=!1,filter:$,walkFilter:Q}=J,K=new sX({objectMode:!0});if(!$||$(Z))K.write(X?Z:Z.fullpath());let W=new Set,G=[Z],z=0,V=()=>{let H=!1;while(!H){let q=G.shift();if(!q){if(z===0)K.end();return}z++,W.add(q);let F=(w,L,j=!1)=>{if(w)return K.emit("error",w);if(Y&&!j){let R=[];for(let O of L)if(O.isSymbolicLink())R.push(O.realpath().then((N)=>N?.isUnknown()?N.lstat():N));if(R.length){Promise.all(R).then(()=>F(null,L,!0));return}}for(let R of L)if(R&&(!$||$(R))){if(!K.write(X?R:R.fullpath()))H=!0}z--;for(let R of L){let O=R.realpathCached()||R;if(O.shouldWalk(W,Q))G.push(O)}if(H&&!K.flowing)K.once("drain",V);else if(!U)V()},U=!0;q.readdirCB(F,!0),U=!1}};return V(),K}streamSync(Z=this.cwd,J={}){if(typeof Z==="string")Z=this.cwd.resolve(Z);else if(!(Z instanceof d6))J=Z,Z=this.cwd;let{withFileTypes:X=!0,follow:Y=!1,filter:$,walkFilter:Q}=J,K=new sX({objectMode:!0}),W=new Set;if(!$||$(Z))K.write(X?Z:Z.fullpath());let G=[Z],z=0,V=()=>{let H=!1;while(!H){let q=G.shift();if(!q){if(z===0)K.end();return}z++,W.add(q);let F=q.readdirSync();for(let U of F)if(!$||$(U)){if(!K.write(X?U:U.fullpath()))H=!0}z--;for(let U of F){let w=U;if(U.isSymbolicLink()){if(!(Y&&(w=U.realpathSync())))continue;if(w.isUnknown())w.lstatSync()}if(w.shouldWalk(W,Q))G.push(w)}}if(H&&!K.flowing)K.once("drain",V)};return V(),K}chdir(Z=this.cwd){let J=this.cwd;this.cwd=typeof Z==="string"?this.cwd.resolve(Z):Z,this.cwd[zc](J)}}class r3 extends UP{sep="\\";constructor(Z=process.cwd(),J={}){let{nocase:X=!0}=J;super(Z,qP,"\\",{...J,nocase:X});this.nocase=X;for(let Y=this.cwd;Y;Y=Y.parent)Y.nocase=this.nocase}parseRootPath(Z){return qP.parse(Z).root.toUpperCase()}newRoot(Z){return new DU(this.rootPath,r4,void 0,this.roots,this.nocase,this.childrenCache(),{fs:Z})}isAbsolute(Z){return Z.startsWith("/")||Z.startsWith("\\")||/^[a-z]:(\/|\\)/i.test(Z)}}class t3 extends UP{sep="/";constructor(Z=process.cwd(),J={}){let{nocase:X=!1}=J;super(Z,HV1,"/",{...J,nocase:X});this.nocase=X}parseRootPath(Z){return"/"}newRoot(Z){return new CU(this.rootPath,r4,void 0,this.roots,this.nocase,this.childrenCache(),{fs:Z})}isAbsolute(Z){return Z.startsWith("/")}}class TU extends t3{constructor(Z=process.cwd(),J={}){let{nocase:X=!0}=J;super(Z,{...J,nocase:X})}}var WG6=process.platform==="win32"?DU:CU,Vc=process.platform==="win32"?r3:process.platform==="darwin"?TU:t3;var kV1=(Z)=>Z.length>=1,EV1=(Z)=>Z.length>=1;class CQ{#Z;#J;#Y;length;#X;#$;#V;#q;#W;#G;#z=!0;constructor(Z,J,X,Y){if(!kV1(Z))throw new TypeError("empty pattern list");if(!EV1(J))throw new TypeError("empty glob list");if(J.length!==Z.length)throw new TypeError("mismatched pattern list and glob list lengths");if(this.length=Z.length,X<0||X>=this.length)throw new TypeError("index out of range");if(this.#Z=Z,this.#J=J,this.#Y=X,this.#X=Y,this.#Y===0){if(this.isUNC()){let[$,Q,K,W,...G]=this.#Z,[z,V,H,q,...F]=this.#J;if(G[0]==="")G.shift(),F.shift();let U=[$,Q,K,W,""].join("/"),w=[z,V,H,q,""].join("/");this.#Z=[U,...G],this.#J=[w,...F],this.length=this.#Z.length}else if(this.isDrive()||this.isAbsolute()){let[$,...Q]=this.#Z,[K,...W]=this.#J;if(Q[0]==="")Q.shift(),W.shift();let G=$+"/",z=K+"/";this.#Z=[G,...Q],this.#J=[z,...W],this.length=this.#Z.length}}}pattern(){return this.#Z[this.#Y]}isString(){return typeof this.#Z[this.#Y]==="string"}isGlobstar(){return this.#Z[this.#Y]===U6}isRegExp(){return this.#Z[this.#Y]instanceof RegExp}globString(){return this.#V=this.#V||(this.#Y===0?this.isAbsolute()?this.#J[0]+this.#J.slice(1).join("/"):this.#J.join("/"):this.#J.slice(this.#Y).join("/"))}hasMore(){return this.length>this.#Y+1}rest(){if(this.#$!==void 0)return this.#$;if(!this.hasMore())return this.#$=null;return this.#$=new CQ(this.#Z,this.#J,this.#Y+1,this.#X),this.#$.#G=this.#G,this.#$.#W=this.#W,this.#$.#q=this.#q,this.#$}isUNC(){let Z=this.#Z;return this.#W!==void 0?this.#W:this.#W=this.#X==="win32"&&this.#Y===0&&Z[0]===""&&Z[1]===""&&typeof Z[2]==="string"&&!!Z[2]&&typeof Z[3]==="string"&&!!Z[3]}isDrive(){let Z=this.#Z;return this.#q!==void 0?this.#q:this.#q=this.#X==="win32"&&this.#Y===0&&this.length>1&&typeof Z[0]==="string"&&/^[a-z]:$/i.test(Z[0])}isAbsolute(){let Z=this.#Z;return this.#G!==void 0?this.#G:this.#G=Z[0]===""&&Z.length>1||this.isDrive()||this.isUNC()}root(){let Z=this.#Z[0];return typeof Z==="string"&&this.isAbsolute()&&this.#Y===0?Z:""}checkFollowGlobstar(){return!(this.#Y===0||!this.isGlobstar()||!this.#z)}markFollowGlobstar(){if(this.#Y===0||!this.isGlobstar()||!this.#z)return!1;return this.#z=!1,!0}}var IV1=typeof process==="object"&&process&&typeof process.platform==="string"?process.platform:"linux";class e3{relative;relativeChildren;absolute;absoluteChildren;platform;mmopts;constructor(Z,{nobrace:J,nocase:X,noext:Y,noglobstar:$,platform:Q=IV1}){this.relative=[],this.absolute=[],this.relativeChildren=[],this.absoluteChildren=[],this.platform=Q,this.mmopts={dot:!0,nobrace:J,nocase:X,noext:Y,noglobstar:$,optimizationLevel:2,platform:Q,nocomment:!0,nonegate:!0};for(let K of Z)this.add(K)}add(Z){let J=new w9(Z,this.mmopts);for(let X=0;X<J.set.length;X++){let Y=J.set[X],$=J.globParts[X];if(!Y||!$)throw new Error("invalid pattern object");while(Y[0]==="."&&$[0]===".")Y.shift(),$.shift();let Q=new CQ(Y,$,0,this.platform),K=new w9(Q.globString(),this.mmopts),W=$[$.length-1]==="**",G=Q.isAbsolute();if(G)this.absolute.push(K);else this.relative.push(K);if(W)if(G)this.absoluteChildren.push(K);else this.relativeChildren.push(K)}}ignored(Z){let J=Z.fullpath(),X=`${J}/`,Y=Z.relative()||".",$=`${Y}/`;for(let Q of this.relative)if(Q.match(Y)||Q.match($))return!0;for(let Q of this.absolute)if(Q.match(J)||Q.match(X))return!0;return!1}childrenIgnored(Z){let J=Z.fullpath()+"/",X=(Z.relative()||".")+"/";for(let Y of this.relativeChildren)if(Y.match(X))return!0;for(let Y of this.absoluteChildren)if(Y.match(J))return!0;return!1}}class LP{store;constructor(Z=new Map){this.store=Z}copy(){return new LP(new Map(this.store))}hasWalked(Z,J){return this.store.get(Z.fullpath())?.has(J.globString())}storeWalked(Z,J){let X=Z.fullpath(),Y=this.store.get(X);if(Y)Y.add(J.globString());else this.store.set(X,new Set([J.globString()]))}}class Hc{store=new Map;add(Z,J,X){let Y=(J?2:0)|(X?1:0),$=this.store.get(Z);this.store.set(Z,$===void 0?Y:Y&$)}entries(){return[...this.store.entries()].map(([Z,J])=>[Z,!!(J&2),!!(J&1)])}}class qc{store=new Map;add(Z,J){if(!Z.canReaddir())return;let X=this.store.get(Z);if(X){if(!X.find((Y)=>Y.globString()===J.globString()))X.push(J)}else this.store.set(Z,[J])}get(Z){let J=this.store.get(Z);if(!J)throw new Error("attempting to walk unknown path");return J}entries(){return this.keys().map((Z)=>[Z,this.store.get(Z)])}keys(){return[...this.store.keys()].filter((Z)=>Z.canReaddir())}}class ZG{hasWalkedCache;matches=new Hc;subwalks=new qc;patterns;follow;dot;opts;constructor(Z,J){this.opts=Z,this.follow=!!Z.follow,this.dot=!!Z.dot,this.hasWalkedCache=J?J.copy():new LP}processPatterns(Z,J){this.patterns=J;let X=J.map((Y)=>[Z,Y]);for(let[Y,$]of X){this.hasWalkedCache.storeWalked(Y,$);let Q=$.root(),K=$.isAbsolute()&&this.opts.absolute!==!1;if(Q){Y=Y.resolve(Q==="/"&&this.opts.root!==void 0?this.opts.root:Q);let V=$.rest();if(!V){this.matches.add(Y,!0,!1);continue}else $=V}if(Y.isENOENT())continue;let W,G,z=!1;while(typeof(W=$.pattern())==="string"&&(G=$.rest()))Y=Y.resolve(W),$=G,z=!0;if(W=$.pattern(),G=$.rest(),z){if(this.hasWalkedCache.hasWalked(Y,$))continue;this.hasWalkedCache.storeWalked(Y,$)}if(typeof W==="string"){let V=W===".."||W===""||W===".";this.matches.add(Y.resolve(W),K,V);continue}else if(W===U6){if(!Y.isSymbolicLink()||this.follow||$.checkFollowGlobstar())this.subwalks.add(Y,$);let V=G?.pattern(),H=G?.rest();if(!G||(V===""||V===".")&&!H)this.matches.add(Y,K,V===""||V===".");else if(V===".."){let q=Y.parent||Y;if(!H)this.matches.add(q,K,!0);else if(!this.hasWalkedCache.hasWalked(q,H))this.subwalks.add(q,H)}}else if(W instanceof RegExp)this.subwalks.add(Y,$)}return this}subwalkTargets(){return this.subwalks.keys()}child(){return new ZG(this.opts,this.hasWalkedCache)}filterEntries(Z,J){let X=this.subwalks.get(Z),Y=this.child();for(let $ of J)for(let Q of X){let K=Q.isAbsolute(),W=Q.pattern(),G=Q.rest();if(W===U6)Y.testGlobstar($,Q,G,K);else if(W instanceof RegExp)Y.testRegExp($,W,G,K);else Y.testString($,W,G,K)}return Y}testGlobstar(Z,J,X,Y){if(this.dot||!Z.name.startsWith(".")){if(!J.hasMore())this.matches.add(Z,Y,!1);if(Z.canReaddir()){if(this.follow||!Z.isSymbolicLink())this.subwalks.add(Z,J);else if(Z.isSymbolicLink()){if(X&&J.checkFollowGlobstar())this.subwalks.add(Z,X);else if(J.markFollowGlobstar())this.subwalks.add(Z,J)}}}if(X){let $=X.pattern();if(typeof $==="string"&&$!==".."&&$!==""&&$!==".")this.testString(Z,$,X.rest(),Y);else if($===".."){let Q=Z.parent||Z;this.subwalks.add(Q,X)}else if($ instanceof RegExp)this.testRegExp(Z,$,X.rest(),Y)}}testRegExp(Z,J,X,Y){if(!J.test(Z.name))return;if(!X)this.matches.add(Z,Y,!1);else this.subwalks.add(Z,X)}testString(Z,J,X,Y){if(!Z.isNamed(J))return;if(!X)this.matches.add(Z,Y,!1);else this.subwalks.add(Z,X)}}var vV1=(Z,J)=>typeof Z==="string"?new e3([Z],J):Array.isArray(Z)?new e3(Z,J):Z;class wP{path;patterns;opts;seen=new Set;paused=!1;aborted=!1;#Z=[];#J;#Y;signal;maxDepth;includeChildMatches;constructor(Z,J,X){if(this.patterns=Z,this.path=J,this.opts=X,this.#Y=!X.posix&&X.platform==="win32"?"\\":"/",this.includeChildMatches=X.includeChildMatches!==!1,X.ignore||!this.includeChildMatches){if(this.#J=vV1(X.ignore??[],X),!this.includeChildMatches&&typeof this.#J.add!=="function")throw new Error("cannot ignore child matches, ignore lacks add() method.")}if(this.maxDepth=X.maxDepth||1/0,X.signal)this.signal=X.signal,this.signal.addEventListener("abort",()=>{this.#Z.length=0})}#X(Z){return this.seen.has(Z)||!!this.#J?.ignored?.(Z)}#$(Z){return!!this.#J?.childrenIgnored?.(Z)}pause(){this.paused=!0}resume(){if(this.signal?.aborted)return;this.paused=!1;let Z=void 0;while(!this.paused&&(Z=this.#Z.shift()))Z()}onResume(Z){if(this.signal?.aborted)return;if(!this.paused)Z();else this.#Z.push(Z)}async matchCheck(Z,J){if(J&&this.opts.nodir)return;let X;if(this.opts.realpath){if(X=Z.realpathCached()||await Z.realpath(),!X)return;Z=X}let $=Z.isUnknown()||this.opts.stat?await Z.lstat():Z;if(this.opts.follow&&this.opts.nodir&&$?.isSymbolicLink()){let Q=await $.realpath();if(Q&&(Q.isUnknown()||this.opts.stat))await Q.lstat()}return this.matchCheckTest($,J)}matchCheckTest(Z,J){return Z&&(this.maxDepth===1/0||Z.depth()<=this.maxDepth)&&(!J||Z.canReaddir())&&(!this.opts.nodir||!Z.isDirectory())&&(!this.opts.nodir||!this.opts.follow||!Z.isSymbolicLink()||!Z.realpathCached()?.isDirectory())&&!this.#X(Z)?Z:void 0}matchCheckSync(Z,J){if(J&&this.opts.nodir)return;let X;if(this.opts.realpath){if(X=Z.realpathCached()||Z.realpathSync(),!X)return;Z=X}let $=Z.isUnknown()||this.opts.stat?Z.lstatSync():Z;if(this.opts.follow&&this.opts.nodir&&$?.isSymbolicLink()){let Q=$.realpathSync();if(Q&&(Q?.isUnknown()||this.opts.stat))Q.lstatSync()}return this.matchCheckTest($,J)}matchFinish(Z,J){if(this.#X(Z))return;if(!this.includeChildMatches&&this.#J?.add){let $=`${Z.relativePosix()}/**`;this.#J.add($)}let X=this.opts.absolute===void 0?J:this.opts.absolute;this.seen.add(Z);let Y=this.opts.mark&&Z.isDirectory()?this.#Y:"";if(this.opts.withFileTypes)this.matchEmit(Z);else if(X){let $=this.opts.posix?Z.fullpathPosix():Z.fullpath();this.matchEmit($+Y)}else{let $=this.opts.posix?Z.relativePosix():Z.relative(),Q=this.opts.dotRelative&&!$.startsWith(".."+this.#Y)?"."+this.#Y:"";this.matchEmit(!$?"."+Y:Q+$+Y)}}async match(Z,J,X){let Y=await this.matchCheck(Z,X);if(Y)this.matchFinish(Y,J)}matchSync(Z,J,X){let Y=this.matchCheckSync(Z,X);if(Y)this.matchFinish(Y,J)}walkCB(Z,J,X){if(this.signal?.aborted)X();this.walkCB2(Z,J,new ZG(this.opts),X)}walkCB2(Z,J,X,Y){if(this.#$(Z))return Y();if(this.signal?.aborted)Y();if(this.paused){this.onResume(()=>this.walkCB2(Z,J,X,Y));return}X.processPatterns(Z,J);let $=1,Q=()=>{if(--$===0)Y()};for(let[K,W,G]of X.matches.entries()){if(this.#X(K))continue;$++,this.match(K,W,G).then(()=>Q())}for(let K of X.subwalkTargets()){if(this.maxDepth!==1/0&&K.depth()>=this.maxDepth)continue;$++;let W=K.readdirCached();if(K.calledReaddir())this.walkCB3(K,W,X,Q);else K.readdirCB((G,z)=>this.walkCB3(K,z,X,Q),!0)}Q()}walkCB3(Z,J,X,Y){X=X.filterEntries(Z,J);let $=1,Q=()=>{if(--$===0)Y()};for(let[K,W,G]of X.matches.entries()){if(this.#X(K))continue;$++,this.match(K,W,G).then(()=>Q())}for(let[K,W]of X.subwalks.entries())$++,this.walkCB2(K,W,X.child(),Q);Q()}walkCBSync(Z,J,X){if(this.signal?.aborted)X();this.walkCB2Sync(Z,J,new ZG(this.opts),X)}walkCB2Sync(Z,J,X,Y){if(this.#$(Z))return Y();if(this.signal?.aborted)Y();if(this.paused){this.onResume(()=>this.walkCB2Sync(Z,J,X,Y));return}X.processPatterns(Z,J);let $=1,Q=()=>{if(--$===0)Y()};for(let[K,W,G]of X.matches.entries()){if(this.#X(K))continue;this.matchSync(K,W,G)}for(let K of X.subwalkTargets()){if(this.maxDepth!==1/0&&K.depth()>=this.maxDepth)continue;$++;let W=K.readdirSync();this.walkCB3Sync(K,W,X,Q)}Q()}walkCB3Sync(Z,J,X,Y){X=X.filterEntries(Z,J);let $=1,Q=()=>{if(--$===0)Y()};for(let[K,W,G]of X.matches.entries()){if(this.#X(K))continue;this.matchSync(K,W,G)}for(let[K,W]of X.subwalks.entries())$++,this.walkCB2Sync(K,W,X.child(),Q);Q()}}class kU extends wP{matches=new Set;constructor(Z,J,X){super(Z,J,X)}matchEmit(Z){this.matches.add(Z)}async walk(){if(this.signal?.aborted)throw this.signal.reason;if(this.path.isUnknown())await this.path.lstat();return await new Promise((Z,J)=>{this.walkCB(this.path,this.patterns,()=>{if(this.signal?.aborted)J(this.signal.reason);else Z(this.matches)})}),this.matches}walkSync(){if(this.signal?.aborted)throw this.signal.reason;if(this.path.isUnknown())this.path.lstatSync();return this.walkCBSync(this.path,this.patterns,()=>{if(this.signal?.aborted)throw this.signal.reason}),this.matches}}class EU extends wP{results;constructor(Z,J,X){super(Z,J,X);this.results=new sX({signal:this.signal,objectMode:!0}),this.results.on("drain",()=>this.resume()),this.results.on("resume",()=>this.resume())}matchEmit(Z){if(this.results.write(Z),!this.results.flowing)this.pause()}stream(){let Z=this.path;if(Z.isUnknown())Z.lstat().then(()=>{this.walkCB(Z,this.patterns,()=>this.results.end())});else this.walkCB(Z,this.patterns,()=>this.results.end());return this.results}streamSync(){if(this.path.isUnknown())this.path.lstatSync();return this.walkCBSync(this.path,this.patterns,()=>this.results.end()),this.results}}var _V1=typeof process==="object"&&process&&typeof process.platform==="string"?process.platform:"linux";class t4{absolute;cwd;root;dot;dotRelative;follow;ignore;magicalBraces;mark;matchBase;maxDepth;nobrace;nocase;nodir;noext;noglobstar;pattern;platform;realpath;scurry;stat;signal;windowsPathsNoEscape;withFileTypes;includeChildMatches;opts;patterns;constructor(Z,J){if(!J)throw new TypeError("glob options required");if(this.withFileTypes=!!J.withFileTypes,this.signal=J.signal,this.follow=!!J.follow,this.dot=!!J.dot,this.dotRelative=!!J.dotRelative,this.nodir=!!J.nodir,this.mark=!!J.mark,!J.cwd)this.cwd="";else if(J.cwd instanceof URL||J.cwd.startsWith("file://"))J.cwd=SV1(J.cwd);if(this.cwd=J.cwd||"",this.root=J.root,this.magicalBraces=!!J.magicalBraces,this.nobrace=!!J.nobrace,this.noext=!!J.noext,this.realpath=!!J.realpath,this.absolute=J.absolute,this.includeChildMatches=J.includeChildMatches!==!1,this.noglobstar=!!J.noglobstar,this.matchBase=!!J.matchBase,this.maxDepth=typeof J.maxDepth==="number"?J.maxDepth:1/0,this.stat=!!J.stat,this.ignore=J.ignore,this.withFileTypes&&this.absolute!==void 0)throw new Error("cannot set absolute and withFileTypes:true");if(typeof Z==="string")Z=[Z];if(this.windowsPathsNoEscape=!!J.windowsPathsNoEscape||J.allowWindowsEscape===!1,this.windowsPathsNoEscape)Z=Z.map((W)=>W.replace(/\\/g,"/"));if(this.matchBase){if(J.noglobstar)throw new TypeError("base matching requires globstar");Z=Z.map((W)=>W.includes("/")?W:`./**/${W}`)}if(this.pattern=Z,this.platform=J.platform||_V1,this.opts={...J,platform:this.platform},J.scurry){if(this.scurry=J.scurry,J.nocase!==void 0&&J.nocase!==J.scurry.nocase)throw new Error("nocase option contradicts provided scurry option")}else{let W=J.platform==="win32"?r3:J.platform==="darwin"?TU:J.platform?t3:Vc;this.scurry=new W(this.cwd,{nocase:J.nocase,fs:J.fs})}this.nocase=this.scurry.nocase;let X=this.platform==="darwin"||this.platform==="win32",Y={...J,dot:this.dot,matchBase:this.matchBase,nobrace:this.nobrace,nocase:this.nocase,nocaseMagicOnly:X,nocomment:!0,noext:this.noext,nonegate:!0,optimizationLevel:2,platform:this.platform,windowsPathsNoEscape:this.windowsPathsNoEscape,debug:!!this.opts.debug},$=this.pattern.map((W)=>new w9(W,Y)),[Q,K]=$.reduce((W,G)=>{return W[0].push(...G.set),W[1].push(...G.globParts),W},[[],[]]);this.patterns=Q.map((W,G)=>{let z=K[G];if(!z)throw new Error("invalid pattern object");return new CQ(W,z,0,this.platform)})}async walk(){return[...await new kU(this.patterns,this.scurry.cwd,{...this.opts,maxDepth:this.maxDepth!==1/0?this.maxDepth+this.scurry.cwd.depth():1/0,platform:this.platform,nocase:this.nocase,includeChildMatches:this.includeChildMatches}).walk()]}walkSync(){return[...new kU(this.patterns,this.scurry.cwd,{...this.opts,maxDepth:this.maxDepth!==1/0?this.maxDepth+this.scurry.cwd.depth():1/0,platform:this.platform,nocase:this.nocase,includeChildMatches:this.includeChildMatches}).walkSync()]}stream(){return new EU(this.patterns,this.scurry.cwd,{...this.opts,maxDepth:this.maxDepth!==1/0?this.maxDepth+this.scurry.cwd.depth():1/0,platform:this.platform,nocase:this.nocase,includeChildMatches:this.includeChildMatches}).stream()}streamSync(){return new EU(this.patterns,this.scurry.cwd,{...this.opts,maxDepth:this.maxDepth!==1/0?this.maxDepth+this.scurry.cwd.depth():1/0,platform:this.platform,nocase:this.nocase,includeChildMatches:this.includeChildMatches}).streamSync()}iterateSync(){return this.streamSync()[Symbol.iterator]()}[Symbol.iterator](){return this.iterateSync()}iterate(){return this.stream()[Symbol.asyncIterator]()}[Symbol.asyncIterator](){return this.iterate()}}var BP=(Z,J={})=>{if(!Array.isArray(Z))Z=[Z];for(let X of Z)if(new w9(X,J).hasMagic())return!0;return!1};function vU(Z,J={}){return new t4(Z,J).streamSync()}function Uc(Z,J={}){return new t4(Z,J).stream()}function Lc(Z,J={}){return new t4(Z,J).walkSync()}async function Fc(Z,J={}){return new t4(Z,J).walk()}function SU(Z,J={}){return new t4(Z,J).iterateSync()}function wc(Z,J={}){return new t4(Z,J).iterate()}var AV1=vU,xV1=Object.assign(Uc,{sync:vU}),hV1=SU,fV1=Object.assign(wc,{sync:SU}),bV1=Object.assign(Lc,{stream:vU,iterate:SU}),IU=Object.assign(Fc,{glob:Fc,globSync:Lc,sync:bV1,globStream:Uc,stream:xV1,globStreamSync:vU,streamSync:AV1,globIterate:wc,iterate:fV1,globIterateSync:SU,iterateSync:hV1,Glob:t4,hasMagic:BP,escape:MQ,unescape:Q4});IU.glob=IU;class jP{constructor(){this._listeners={}}addEventListener(Z,J){let X=this._listeners;if(X[Z]===void 0)X[Z]=[];if(X[Z].indexOf(J)===-1)X[Z].push(J);return this}removeEventListener(Z,J){let Y=this._listeners[Z];if(Y!==void 0){let $=Y.indexOf(J);if($!==-1)Y.splice($,1)}return this}dispatchEvent(Z){let X=this._listeners[Z.type];if(X!==void 0){let Y=X.slice(0);for(let $=0,Q=Y.length;$<Q;$++)Y[$].call(this,Z)}return this}dispose(){for(let Z in this._listeners)delete this._listeners[Z]}}class w5{constructor(Z,J,X,Y={}){if(this._name=void 0,this._parent=void 0,this._child=void 0,this._attributes=void 0,this._disposed=!1,this._name=Z,this._parent=J,this._child=X,this._attributes=Y,!J.isOnGraph(X))throw new Error("Cannot connect disconnected graphs.")}getName(){return this._name}getParent(){return this._parent}getChild(){return this._child}setChild(Z){return this._child=Z,this}getAttributes(){return this._attributes}dispose(){if(this._disposed)return;this._parent._destroyRef(this),this._disposed=!0}isDisposed(){return this._disposed}}class TQ extends jP{constructor(...Z){super(...Z);this._emptySet=new Set,this._edges=new Set,this._parentEdges=new Map,this._childEdges=new Map}listEdges(){return Array.from(this._edges)}listParentEdges(Z){return Array.from(this._childEdges.get(Z)||this._emptySet)}listParents(Z){let J=new Set;for(let X of this.listParentEdges(Z))J.add(X.getParent());return Array.from(J)}listChildEdges(Z){return Array.from(this._parentEdges.get(Z)||this._emptySet)}listChildren(Z){let J=new Set;for(let X of this.listChildEdges(Z))J.add(X.getChild());return Array.from(J)}disconnectParents(Z,J){for(let X of this.listParentEdges(Z))if(!J||J(X.getParent()))X.dispose();return this}_createEdge(Z,J,X,Y){let $=new w5(Z,J,X,Y);this._edges.add($);let Q=$.getParent();if(!this._parentEdges.has(Q))this._parentEdges.set(Q,new Set);this._parentEdges.get(Q).add($);let K=$.getChild();if(!this._childEdges.has(K))this._childEdges.set(K,new Set);return this._childEdges.get(K).add($),$}_destroyEdge(Z){return this._edges.delete(Z),this._parentEdges.get(Z.getParent()).delete(Z),this._childEdges.get(Z.getChild()).delete(Z),this}}function JG(){return JG=Object.assign||function(Z){for(var J=1;J<arguments.length;J++){var X=arguments[J];for(var Y in X)if(Object.prototype.hasOwnProperty.call(X,Y))Z[Y]=X[Y]}return Z},JG.apply(this,arguments)}class D6{constructor(Z){if(this.list=[],Z)for(let J of Z)this.list.push(J)}add(Z){this.list.push(Z)}remove(Z){let J=this.list.indexOf(Z);if(J>=0)this.list.splice(J,1)}removeChild(Z){let J=[];for(let X of this.list)if(X.getChild()===Z)J.push(X);for(let X of J)this.remove(X);return J}listRefsByChild(Z){let J=[];for(let X of this.list)if(X.getChild()===Z)J.push(X);return J}values(){return this.list}}class P0{constructor(Z){if(this.set=new Set,this.map=new Map,Z)for(let J of Z)this.add(J)}add(Z){let J=Z.getChild();this.removeChild(J),this.set.add(Z),this.map.set(J,Z)}remove(Z){this.set.delete(Z),this.map.delete(Z.getChild())}removeChild(Z){let J=this.map.get(Z)||null;if(J)this.remove(J);return J}getRefByChild(Z){return this.map.get(Z)||null}values(){return Array.from(this.set)}}class r1{constructor(Z){if(this.map={},Z)Object.assign(this.map,Z)}set(Z,J){this.map[Z]=J}delete(Z){delete this.map[Z]}get(Z){return this.map[Z]||null}keys(){return Object.keys(this.map)}values(){return Object.values(this.map)}}var x0=Symbol("attributes"),G4=Symbol("immutableKeys");class kQ extends jP{constructor(Z){super();this._disposed=!1,this.graph=void 0,this[x0]=void 0,this[G4]=void 0,this.graph=Z,this[G4]=new Set,this[x0]=this._createAttributes()}getDefaults(){return{}}_createAttributes(){let Z=this.getDefaults(),J={};for(let X in Z){let Y=Z[X];if(Y instanceof kQ){let $=this.graph._createEdge(X,this,Y);this[G4].add(X),J[X]=$}else J[X]=Y}return J}isOnGraph(Z){return this.graph===Z.graph}isDisposed(){return this._disposed}dispose(){if(this._disposed)return;this.graph.listChildEdges(this).forEach((Z)=>Z.dispose()),this.graph.disconnectParents(this),this._disposed=!0,this.dispatchEvent({type:"dispose"})}detach(){return this.graph.disconnectParents(this),this}swap(Z,J){for(let X in this[x0]){let Y=this[x0][X];if(Y instanceof w5){let $=Y;if($.getChild()===Z)this.setRef(X,J,$.getAttributes())}else if(Y instanceof D6)for(let $ of Y.listRefsByChild(Z)){let Q=$.getAttributes();this.removeRef(X,Z),this.addRef(X,J,Q)}else if(Y instanceof P0){let $=Y.getRefByChild(Z);if($){let Q=$.getAttributes();this.removeRef(X,Z),this.addRef(X,J,Q)}}else if(Y instanceof r1)for(let $ of Y.keys()){let Q=Y.get($);if(Q.getChild()===Z)this.setRefMap(X,$,J,Q.getAttributes())}}return this}get(Z){return this[x0][Z]}set(Z,J){return this[x0][Z]=J,this.dispatchEvent({type:"change",attribute:Z})}getRef(Z){let J=this[x0][Z];return J?J.getChild():null}setRef(Z,J,X){if(this[G4].has(Z))throw new Error(`Cannot overwrite immutable attribute, "${Z}".`);let Y=this[x0][Z];if(Y)Y.dispose();if(!J)return this;let $=this.graph._createEdge(Z,this,J,X);return this[x0][Z]=$,this.dispatchEvent({type:"change",attribute:Z})}listRefs(Z){return this.assertRefList(Z).values().map((X)=>X.getChild())}addRef(Z,J,X){let Y=this.graph._createEdge(Z,this,J,X);return this.assertRefList(Z).add(Y),this.dispatchEvent({type:"change",attribute:Z})}removeRef(Z,J){let X=this.assertRefList(Z);if(X instanceof D6)for(let Y of X.listRefsByChild(J))Y.dispose();else{let Y=X.getRefByChild(J);if(Y)Y.dispose()}return this}assertRefList(Z){let J=this[x0][Z];if(J instanceof D6||J instanceof P0)return J;throw new Error(`Expected RefList or RefSet for attribute "${Z}"`)}listRefMapKeys(Z){return this.assertRefMap(Z).keys()}listRefMapValues(Z){return this.assertRefMap(Z).values().map((J)=>J.getChild())}getRefMap(Z,J){let Y=this.assertRefMap(Z).get(J);return Y?Y.getChild():null}setRefMap(Z,J,X,Y){let $=this.assertRefMap(Z),Q=$.get(J);if(Q)Q.dispose();if(!X)return this;Y=Object.assign(Y||{},{key:J});let K=this.graph._createEdge(Z,this,X,JG({},Y,{key:J}));return $.set(J,K),this.dispatchEvent({type:"change",attribute:Z,key:J})}assertRefMap(Z){let J=this[x0][Z];if(J instanceof r1)return J;throw new Error(`Expected RefMap for attribute "${Z}"`)}dispatchEvent(Z){return super.dispatchEvent(JG({},Z,{target:this})),this.graph.dispatchEvent(JG({},Z,{target:this,type:`node:${Z.type}`})),this}_destroyRef(Z){let J=Z.getName();if(this[x0][J]===Z){if(this[x0][J]=null,this[G4].has(J))Z.getChild().dispose()}else if(this[x0][J]instanceof D6)this[x0][J].remove(Z);else if(this[x0][J]instanceof P0)this[x0][J].remove(Z);else if(this[x0][J]instanceof r1){let X=this[x0][J];for(let Y of X.keys())if(X.get(Y)===Z)X.delete(Y)}else return;this.graph._destroyEdge(Z),this.dispatchEvent({type:"change",attribute:J})}}var Pc="v4.1.1",bU="@glb.bin",a;(function(Z){Z.ACCESSOR="Accessor",Z.ANIMATION="Animation",Z.ANIMATION_CHANNEL="AnimationChannel",Z.ANIMATION_SAMPLER="AnimationSampler",Z.BUFFER="Buffer",Z.CAMERA="Camera",Z.MATERIAL="Material",Z.MESH="Mesh",Z.PRIMITIVE="Primitive",Z.PRIMITIVE_TARGET="PrimitiveTarget",Z.NODE="Node",Z.ROOT="Root",Z.SCENE="Scene",Z.SKIN="Skin",Z.TEXTURE="Texture",Z.TEXTURE_INFO="TextureInfo"})(a||(a={}));var yU;(function(Z){Z.INTERLEAVED="interleaved",Z.SEPARATE="separate"})(yU||(yU={}));var c5;(function(Z){Z.ARRAY_BUFFER="ARRAY_BUFFER",Z.ELEMENT_ARRAY_BUFFER="ELEMENT_ARRAY_BUFFER",Z.INVERSE_BIND_MATRICES="INVERSE_BIND_MATRICES",Z.OTHER="OTHER",Z.SPARSE="SPARSE"})(c5||(c5={}));var gU;(function(Z){Z[Z.R=4096]="R",Z[Z.G=256]="G",Z[Z.B=16]="B",Z[Z.A=1]="A"})(gU||(gU={}));var KZ;(function(Z){Z.GLTF="GLTF",Z.GLB="GLB"})(KZ||(KZ={}));var VJ={"5120":Int8Array,"5121":Uint8Array,"5122":Int16Array,"5123":Uint16Array,"5125":Uint32Array,"5126":Float32Array},MP=typeof Float32Array!=="undefined"?Float32Array:Array;if(!Math.hypot)Math.hypot=function(){var Z=0,J=arguments.length;while(J--)Z+=arguments[J]*arguments[J];return Math.sqrt(Z)};function yV1(){var Z=new MP(3);if(MP!=Float32Array)Z[0]=0,Z[1]=0,Z[2]=0;return Z}function OP(Z){var J=Z[0],X=Z[1],Y=Z[2];return Math.hypot(J,X,Y)}function gV1(Z,J,X){var Y=J[0],$=J[1],Q=J[2],K=X[3]*Y+X[7]*$+X[11]*Q+X[15];return K=K||1,Z[0]=(X[0]*Y+X[4]*$+X[8]*Q+X[12])/K,Z[1]=(X[1]*Y+X[5]*$+X[9]*Q+X[13])/K,Z[2]=(X[2]*Y+X[6]*$+X[10]*Q+X[14])/K,Z}(function(){var Z=yV1();return function(J,X,Y,$,Q,K){var W,G;if(!X)X=3;if(!Y)Y=0;if($)G=Math.min($*X+Y,J.length);else G=J.length;for(W=Y;W<G;W+=X)Z[0]=J[W],Z[1]=J[W+1],Z[2]=J[W+2],Q(Z,Z,K),J[W]=Z[0],J[W+1]=Z[1],J[W+2]=Z[2];return J}})();function DP(Z){let J=Dc(),X=Z.propertyType===a.NODE?[Z]:Z.listChildren();for(let Y of X)Y.traverse(($)=>{let Q=$.getMesh();if(!Q)return;let K=mV1(Q,$.getWorldMatrix());if(K.min.every(isFinite)&&K.max.every(isFinite))RP(K.min,J),RP(K.max,J)});return J}function mV1(Z,J){let X=Dc();for(let Y of Z.listPrimitives()){let $=Y.getAttribute("POSITION"),Q=Y.getIndices();if(!$)continue;let K=[0,0,0],W=[0,0,0];for(let G=0,z=Q?Q.getCount():$.getCount();G<z;G++){let V=Q?Q.getScalar(G):G;K=$.getElement(V,K),W=gV1(W,K,J),RP(W,X)}}return X}function RP(Z,J){for(let X=0;X<3;X++)J.min[X]=Math.min(Z[X],J.min[X]),J.max[X]=Math.max(Z[X],J.max[X])}function Dc(){return{min:[1/0,1/0,1/0],max:[-1/0,-1/0,-1/0]}}class n0{static createBufferFromDataURI(Z){if(typeof Buffer==="undefined"){let J=atob(Z.split(",")[1]),X=new Uint8Array(J.length);for(let Y=0;Y<J.length;Y++)X[Y]=J.charCodeAt(Y);return X}else{let J=Z.split(",")[1],X=Z.indexOf("base64")>=0;return Buffer.from(J,X?"base64":"utf8")}}static encodeText(Z){return new TextEncoder().encode(Z)}static decodeText(Z){return new TextDecoder().decode(Z)}static concat(Z){let J=0;for(let $ of Z)J+=$.byteLength;let X=new Uint8Array(J),Y=0;for(let $ of Z)X.set($,Y),Y+=$.byteLength;return X}static pad(Z,J=0){let X=this.padNumber(Z.byteLength);if(X===Z.byteLength)return Z;let Y=new Uint8Array(X);if(Y.set(Z),J!==0)for(let $=Z.byteLength;$<X;$++)Y[$]=J;return Y}static padNumber(Z){return Math.ceil(Z/4)*4}static equals(Z,J){if(Z===J)return!0;if(Z.byteLength!==J.byteLength)return!1;let X=Z.byteLength;while(X--)if(Z[X]!==J[X])return!1;return!0}static toView(Z,J=0,X=1/0){return new Uint8Array(Z.buffer,Z.byteOffset+J,Math.min(Z.byteLength,X))}static assertView(Z){if(Z&&!ArrayBuffer.isView(Z))throw new Error(`Method requires Uint8Array parameter; received "${typeof Z}".`);return Z}}class CP{static hexToFactor(Z,J){Z=Math.floor(Z);let X=J;return X[0]=(Z>>16&255)/255,X[1]=(Z>>8&255)/255,X[2]=(Z&255)/255,this.convertSRGBToLinear(J,J)}static factorToHex(Z){let J=[...Z],[X,Y,$]=this.convertLinearToSRGB(Z,J);return X*255<<16^Y*255<<8^$*255<<0}static convertSRGBToLinear(Z,J){let X=Z,Y=J;for(let $=0;$<3;$++)Y[$]=X[$]<0.04045?X[$]*0.0773993808:Math.pow(X[$]*0.9478672986+0.0521327014,2.4);return J}static convertLinearToSRGB(Z,J){let X=Z,Y=J;for(let $=0;$<3;$++)Y[$]=X[$]<0.0031308?X[$]*12.92:1.055*Math.pow(X[$],0.41666)-0.055;return J}}class Cc{match(Z){return Z.length>=3&&Z[0]===255&&Z[1]===216&&Z[2]===255}getSize(Z){let J=new DataView(Z.buffer,Z.byteOffset+4),X,Y;while(J.byteLength){if(X=J.getUint16(0,!1),uV1(J,X),Y=J.getUint8(X+1),Y===192||Y===193||Y===194)return[J.getUint16(X+7,!1),J.getUint16(X+5,!1)];J=new DataView(Z.buffer,J.byteOffset+X+2)}throw new TypeError("Invalid JPG, no size found")}getChannels(Z){return 3}}class dU{match(Z){return Z.length>=8&&Z[0]===137&&Z[1]===80&&Z[2]===78&&Z[3]===71&&Z[4]===13&&Z[5]===10&&Z[6]===26&&Z[7]===10}getSize(Z){let J=new DataView(Z.buffer,Z.byteOffset);if(n0.decodeText(Z.slice(12,16))===dU.PNG_FRIED_CHUNK_NAME)return[J.getUint32(32,!1),J.getUint32(36,!1)];return[J.getUint32(16,!1),J.getUint32(20,!1)]}getChannels(Z){return 4}}dU.PNG_FRIED_CHUNK_NAME="CgBI";class WZ{static registerFormat(Z,J){this.impls[Z]=J}static getMimeType(Z){for(let J in this.impls)if(this.impls[J].match(Z))return J;return null}static getSize(Z,J){if(!this.impls[J])return null;return this.impls[J].getSize(Z)}static getChannels(Z,J){if(!this.impls[J])return null;return this.impls[J].getChannels(Z)}static getVRAMByteLength(Z,J){if(!this.impls[J])return null;if(this.impls[J].getVRAMByteLength)return this.impls[J].getVRAMByteLength(Z);let X=0,Y=4,$=this.getSize(Z,J);if(!$)return null;while($[0]>1||$[1]>1)X+=$[0]*$[1]*Y,$[0]=Math.max(Math.floor($[0]/2),1),$[1]=Math.max(Math.floor($[1]/2),1);return X+=1*Y,X}static mimeTypeToExtension(Z){if(Z==="image/jpeg")return"jpg";return Z.split("/").pop()}static extensionToMimeType(Z){if(Z==="jpg")return"image/jpeg";if(!Z)return"";return`image/${Z}`}}WZ.impls={"image/jpeg":new Cc,"image/png":new dU};function uV1(Z,J){if(J>Z.byteLength)throw new TypeError("Corrupt JPG, exceeded buffer limits");if(Z.getUint8(J)!==255)throw new TypeError("Invalid JPG, marker table corrupted");return Z}class GZ{static basename(Z){let J=Z.split(/[\\/]/).pop();return J.substring(0,J.lastIndexOf("."))}static extension(Z){if(Z.startsWith("data:image/")){let J=Z.match(/data:(image\/\w+)/)[1];return WZ.mimeTypeToExtension(J)}else if(Z.startsWith("data:model/gltf+json"))return"gltf";else if(Z.startsWith("data:model/gltf-binary"))return"glb";else if(Z.startsWith("data:application/"))return"bin";return Z.split(/[\\/]/).pop().split(/[.]/).pop()}}function Bc(Z){return Object.prototype.toString.call(Z)==="[object Object]"}function rX(Z){if(Bc(Z)===!1)return!1;let J=Z.constructor;if(J===void 0)return!0;let X=J.prototype;if(Bc(X)===!1)return!1;if(Object.prototype.hasOwnProperty.call(X,"isPrototypeOf")===!1)return!1;return!0}var NP,XG;(function(Z){Z[Z.SILENT=4]="SILENT",Z[Z.ERROR=3]="ERROR",Z[Z.WARN=2]="WARN",Z[Z.INFO=1]="INFO",Z[Z.DEBUG=0]="DEBUG"})(XG||(XG={}));class j5{constructor(Z){this.verbosity=void 0,this.verbosity=Z}debug(Z){if(this.verbosity<=j5.Verbosity.DEBUG)console.debug(Z)}info(Z){if(this.verbosity<=j5.Verbosity.INFO)console.info(Z)}warn(Z){if(this.verbosity<=j5.Verbosity.WARN)console.warn(Z)}error(Z){if(this.verbosity<=j5.Verbosity.ERROR)console.error(Z)}}NP=j5;j5.Verbosity=XG;j5.DEFAULT_INSTANCE=new NP(NP.Verbosity.INFO);function dV1(Z){var J=Z[0],X=Z[1],Y=Z[2],$=Z[3],Q=Z[4],K=Z[5],W=Z[6],G=Z[7],z=Z[8],V=Z[9],H=Z[10],q=Z[11],F=Z[12],U=Z[13],w=Z[14],L=Z[15],j=J*K-X*Q,R=J*W-Y*Q,O=J*G-$*Q,N=X*W-Y*K,D=X*G-$*K,P=Y*G-$*W,C=z*U-V*F,T=z*w-H*F,k=z*L-q*F,A=V*w-H*U,S=V*L-q*U,x=H*L-q*w;return j*x-R*S+O*A+N*k-D*T+P*C}function cV1(Z,J,X){var Y=J[0],$=J[1],Q=J[2],K=J[3],W=J[4],G=J[5],z=J[6],V=J[7],H=J[8],q=J[9],F=J[10],U=J[11],w=J[12],L=J[13],j=J[14],R=J[15],O=X[0],N=X[1],D=X[2],P=X[3];return Z[0]=O*Y+N*W+D*H+P*w,Z[1]=O*$+N*G+D*q+P*L,Z[2]=O*Q+N*z+D*F+P*j,Z[3]=O*K+N*V+D*U+P*R,O=X[4],N=X[5],D=X[6],P=X[7],Z[4]=O*Y+N*W+D*H+P*w,Z[5]=O*$+N*G+D*q+P*L,Z[6]=O*Q+N*z+D*F+P*j,Z[7]=O*K+N*V+D*U+P*R,O=X[8],N=X[9],D=X[10],P=X[11],Z[8]=O*Y+N*W+D*H+P*w,Z[9]=O*$+N*G+D*q+P*L,Z[10]=O*Q+N*z+D*F+P*j,Z[11]=O*K+N*V+D*U+P*R,O=X[12],N=X[13],D=X[14],P=X[15],Z[12]=O*Y+N*W+D*H+P*w,Z[13]=O*$+N*G+D*q+P*L,Z[14]=O*Q+N*z+D*F+P*j,Z[15]=O*K+N*V+D*U+P*R,Z}function lV1(Z,J){var X=J[0],Y=J[1],$=J[2],Q=J[4],K=J[5],W=J[6],G=J[8],z=J[9],V=J[10];return Z[0]=Math.hypot(X,Y,$),Z[1]=Math.hypot(Q,K,W),Z[2]=Math.hypot(G,z,V),Z}function pV1(Z,J){var X=new MP(3);lV1(X,J);var Y=1/X[0],$=1/X[1],Q=1/X[2],K=J[0]*Y,W=J[1]*$,G=J[2]*Q,z=J[4]*Y,V=J[5]*$,H=J[6]*Q,q=J[8]*Y,F=J[9]*$,U=J[10]*Q,w=K+V+U,L=0;if(w>0)L=Math.sqrt(w+1)*2,Z[3]=0.25*L,Z[0]=(H-F)/L,Z[1]=(q-G)/L,Z[2]=(W-z)/L;else if(K>V&&K>U)L=Math.sqrt(1+K-V-U)*2,Z[3]=(H-F)/L,Z[0]=0.25*L,Z[1]=(W+z)/L,Z[2]=(q+G)/L;else if(V>U)L=Math.sqrt(1+V-K-U)*2,Z[3]=(q-G)/L,Z[0]=(W+z)/L,Z[1]=0.25*L,Z[2]=(H+F)/L;else L=Math.sqrt(1+U-K-V)*2,Z[3]=(W-z)/L,Z[0]=(q+G)/L,Z[1]=(H+F)/L,Z[2]=0.25*L;return Z}class d0{static identity(Z){return Z}static eq(Z,J,X=0.00001){if(Z.length!==J.length)return!1;for(let Y=0;Y<Z.length;Y++)if(Math.abs(Z[Y]-J[Y])>X)return!1;return!0}static clamp(Z,J,X){if(Z<J)return J;if(Z>X)return X;return Z}static decodeNormalizedInt(Z,J){switch(J){case 5126:return Z;case 5123:return Z/65535;case 5121:return Z/255;case 5122:return Math.max(Z/32767,-1);case 5120:return Math.max(Z/127,-1);default:throw new Error("Invalid component type.")}}static encodeNormalizedInt(Z,J){switch(J){case 5126:return Z;case 5123:return Math.round(d0.clamp(Z,0,1)*65535);case 5121:return Math.round(d0.clamp(Z,0,1)*255);case 5122:return Math.round(d0.clamp(Z,-1,1)*32767);case 5120:return Math.round(d0.clamp(Z,-1,1)*127);default:throw new Error("Invalid component type.")}}static decompose(Z,J,X,Y){let $=OP([Z[0],Z[1],Z[2]]),Q=OP([Z[4],Z[5],Z[6]]),K=OP([Z[8],Z[9],Z[10]]);if(dV1(Z)<0)$=-$;J[0]=Z[12],J[1]=Z[13],J[2]=Z[14];let G=Z.slice(),z=1/$,V=1/Q,H=1/K;G[0]*=z,G[1]*=z,G[2]*=z,G[4]*=V,G[5]*=V,G[6]*=V,G[8]*=H,G[9]*=H,G[10]*=H,pV1(X,G),Y[0]=$,Y[1]=Q,Y[2]=K}static compose(Z,J,X,Y){let $=Y,Q=J[0],K=J[1],W=J[2],G=J[3],z=Q+Q,V=K+K,H=W+W,q=Q*z,F=Q*V,U=Q*H,w=K*V,L=K*H,j=W*H,R=G*z,O=G*V,N=G*H,D=X[0],P=X[1],C=X[2];return $[0]=(1-(w+j))*D,$[1]=(F+N)*D,$[2]=(U-O)*D,$[3]=0,$[4]=(F-N)*P,$[5]=(1-(q+j))*P,$[6]=(L+R)*P,$[7]=0,$[8]=(U+O)*C,$[9]=(L-R)*C,$[10]=(1-(q+w))*C,$[11]=0,$[12]=Z[0],$[13]=Z[1],$[14]=Z[2],$[15]=1,$}}function iV1(Z,J){if(!!Z!==!!J)return!1;let X=Z.getChild(),Y=J.getChild();return X===Y||X.equals(Y)}function nV1(Z,J){if(!!Z!==!!J)return!1;let X=Z.values(),Y=J.values();if(X.length!==Y.length)return!1;for(let $=0;$<X.length;$++){let Q=X[$],K=Y[$];if(Q.getChild()===K.getChild())continue;if(!Q.getChild().equals(K.getChild()))return!1}return!0}function aV1(Z,J){if(!!Z!==!!J)return!1;let X=Z.keys(),Y=J.keys();if(X.length!==Y.length)return!1;for(let $ of X){let Q=Z.get($),K=J.get($);if(!!Q!==!!K)return!1;let W=Q.getChild(),G=K.getChild();if(W===G)continue;if(!W.equals(G))return!1}return!0}function Tc(Z,J){if(Z===J)return!0;if(!!Z!==!!J||!Z||!J)return!1;if(Z.length!==J.length)return!1;for(let X=0;X<Z.length;X++)if(Z[X]!==J[X])return!1;return!0}function kc(Z,J){if(Z===J)return!0;if(!!Z!==!!J)return!1;if(!rX(Z)||!rX(J))return Z===J;let X=Z,Y=J,$=0,Q=0,K;for(K in X)$++;for(K in Y)Q++;if($!==Q)return!1;for(K in X){let W=X[K],G=Y[K];if(mU(W)&&mU(G)){if(!Tc(W,G))return!1}else if(rX(W)&&rX(G)){if(!kc(W,G))return!1}else if(W!==G)return!1}return!0}function mU(Z){return Array.isArray(Z)||ArrayBuffer.isView(Z)}var jc="23456789abdegjkmnpqrvwxyzABDEGJKMNPQRVWXYZ",sV1=999,oV1=6,Oc=new Set,rV1=function Z(){let J="";for(let X=0;X<oV1;X++)J+=jc.charAt(Math.floor(Math.random()*jc.length));return J},Ec=function Z(){for(let J=0;J<sV1;J++){let X=rV1();if(!Oc.has(X))return Oc.add(X),X}return""},Mc="https://null.example";class O9{static dirname(Z){let J=Z.lastIndexOf("/");if(J===-1)return"./";return Z.substring(0,J+1)}static basename(Z){return GZ.basename(new URL(Z,Mc).pathname)}static extension(Z){return GZ.extension(new URL(Z,Mc).pathname)}static resolve(Z,J){if(!this.isRelativePath(J))return J;let X=Z.split("/"),Y=J.split("/");X.pop();for(let $=0;$<Y.length;$++){if(Y[$]===".")continue;if(Y[$]==="..")X.pop();else X.push(Y[$])}return X.join("/")}static isAbsoluteURL(Z){return this.PROTOCOL_REGEXP.test(Z)}static isRelativePath(Z){return!/^(?:[a-zA-Z]+:)?\//.test(Z)}}O9.DEFAULT_INIT={};O9.PROTOCOL_REGEXP=/^[a-zA-Z]+:\/\//;var zJ=(Z)=>Z,tV1=new Set;class cU extends kQ{constructor(Z,J=""){super(Z);this[x0].name=J,this.init(),this.dispatchEvent({type:"create"})}getGraph(){return this.graph}getDefaults(){return Object.assign(super.getDefaults(),{name:"",extras:{}})}set(Z,J){if(Array.isArray(J))J=J.slice();return super.set(Z,J)}getName(){return this.get("name")}setName(Z){return this.set("name",Z)}getExtras(){return this.get("extras")}setExtras(Z){return this.set("extras",Z)}clone(){return new this.constructor(this.graph).copy(this,zJ)}copy(Z,J=zJ){for(let X in this[x0]){let Y=this[x0][X];if(Y instanceof w5){if(!this[G4].has(X))Y.dispose()}else if(Y instanceof D6||Y instanceof P0)for(let $ of Y.values())$.dispose();else if(Y instanceof r1)for(let $ of Y.values())$.dispose()}for(let X in Z[x0]){let Y=this[x0][X],$=Z[x0][X];if($ instanceof w5)if(this[G4].has(X))Y.getChild().copy(J($.getChild()),J);else this.setRef(X,J($.getChild()),$.getAttributes());else if($ instanceof P0||$ instanceof D6)for(let Q of $.values())this.addRef(X,J(Q.getChild()),Q.getAttributes());else if($ instanceof r1)for(let Q of $.keys()){let K=$.get(Q);this.setRefMap(X,Q,J(K.getChild()),K.getAttributes())}else if(rX($))this[x0][X]=JSON.parse(JSON.stringify($));else if(Array.isArray($)||$ instanceof ArrayBuffer||ArrayBuffer.isView($))this[x0][X]=$.slice();else this[x0][X]=$}return this}equals(Z,J=tV1){if(this===Z)return!0;if(this.propertyType!==Z.propertyType)return!1;for(let X in this[x0]){if(J.has(X))continue;let Y=this[x0][X],$=Z[x0][X];if(Y instanceof w5||$ instanceof w5){if(!iV1(Y,$))return!1}else if(Y instanceof P0||$ instanceof P0||Y instanceof D6||$ instanceof D6){if(!nV1(Y,$))return!1}else if(Y instanceof r1||$ instanceof r1){if(!aV1(Y,$))return!1}else if(rX(Y)||rX($)){if(!kc(Y,$))return!1}else if(mU(Y)||mU($)){if(!Tc(Y,$))return!1}else if(Y!==$)return!1}return!0}detach(){return this.graph.disconnectParents(this,(Z)=>Z.propertyType!=="Root"),this}listParents(){return this.graph.listParents(this)}}class T6 extends cU{getDefaults(){return Object.assign(super.getDefaults(),{extensions:new r1})}getExtension(Z){return this.getRefMap("extensions",Z)}setExtension(Z,J){if(J)J._validateParent(this);return this.setRefMap("extensions",Z,J)}listExtensions(){return this.listRefMapValues("extensions")}}class I0 extends T6{init(){this.propertyType=a.ACCESSOR}getDefaults(){return Object.assign(super.getDefaults(),{array:null,type:I0.Type.SCALAR,componentType:I0.ComponentType.FLOAT,normalized:!1,sparse:!1,buffer:null})}static getElementSize(Z){switch(Z){case I0.Type.SCALAR:return 1;case I0.Type.VEC2:return 2;case I0.Type.VEC3:return 3;case I0.Type.VEC4:return 4;case I0.Type.MAT2:return 4;case I0.Type.MAT3:return 9;case I0.Type.MAT4:return 16;default:throw new Error("Unexpected type: "+Z)}}static getComponentSize(Z){switch(Z){case I0.ComponentType.BYTE:return 1;case I0.ComponentType.UNSIGNED_BYTE:return 1;case I0.ComponentType.SHORT:return 2;case I0.ComponentType.UNSIGNED_SHORT:return 2;case I0.ComponentType.UNSIGNED_INT:return 4;case I0.ComponentType.FLOAT:return 4;default:throw new Error("Unexpected component type: "+Z)}}getMinNormalized(Z){let J=this.getNormalized(),X=this.getElementSize(),Y=this.getComponentType();if(this.getMin(Z),J)for(let $=0;$<X;$++)Z[$]=d0.decodeNormalizedInt(Z[$],Y);return Z}getMin(Z){let J=this.getArray(),X=this.getCount(),Y=this.getElementSize();for(let $=0;$<Y;$++)Z[$]=1/0;for(let $=0;$<X*Y;$+=Y)for(let Q=0;Q<Y;Q++){let K=J[$+Q];if(Number.isFinite(K))Z[Q]=Math.min(Z[Q],K)}return Z}getMaxNormalized(Z){let J=this.getNormalized(),X=this.getElementSize(),Y=this.getComponentType();if(this.getMax(Z),J)for(let $=0;$<X;$++)Z[$]=d0.decodeNormalizedInt(Z[$],Y);return Z}getMax(Z){let J=this.get("array"),X=this.getCount(),Y=this.getElementSize();for(let $=0;$<Y;$++)Z[$]=-1/0;for(let $=0;$<X*Y;$+=Y)for(let Q=0;Q<Y;Q++){let K=J[$+Q];if(Number.isFinite(K))Z[Q]=Math.max(Z[Q],K)}return Z}getCount(){let Z=this.get("array");return Z?Z.length/this.getElementSize():0}getType(){return this.get("type")}setType(Z){return this.set("type",Z)}getElementSize(){return I0.getElementSize(this.get("type"))}getComponentSize(){return this.get("array").BYTES_PER_ELEMENT}getComponentType(){return this.get("componentType")}getNormalized(){return this.get("normalized")}setNormalized(Z){return this.set("normalized",Z)}getScalar(Z){let J=this.getElementSize(),X=this.getComponentType(),Y=this.getArray();if(this.getNormalized())return d0.decodeNormalizedInt(Y[Z*J],X);return Y[Z*J]}setScalar(Z,J){let X=this.getElementSize(),Y=this.getComponentType(),$=this.getArray();if(this.getNormalized())$[Z*X]=d0.encodeNormalizedInt(J,Y);else $[Z*X]=J;return this}getElement(Z,J){let X=this.getNormalized(),Y=this.getElementSize(),$=this.getComponentType(),Q=this.getArray();for(let K=0;K<Y;K++)if(X)J[K]=d0.decodeNormalizedInt(Q[Z*Y+K],$);else J[K]=Q[Z*Y+K];return J}setElement(Z,J){let X=this.getNormalized(),Y=this.getElementSize(),$=this.getComponentType(),Q=this.getArray();for(let K=0;K<Y;K++)if(X)Q[Z*Y+K]=d0.encodeNormalizedInt(J[K],$);else Q[Z*Y+K]=J[K];return this}getSparse(){return this.get("sparse")}setSparse(Z){return this.set("sparse",Z)}getBuffer(){return this.getRef("buffer")}setBuffer(Z){return this.setRef("buffer",Z)}getArray(){return this.get("array")}setArray(Z){return this.set("componentType",Z?eV1(Z):I0.ComponentType.FLOAT),this.set("array",Z),this}getByteLength(){let Z=this.get("array");return Z?Z.byteLength:0}}I0.Type={SCALAR:"SCALAR",VEC2:"VEC2",VEC3:"VEC3",VEC4:"VEC4",MAT2:"MAT2",MAT3:"MAT3",MAT4:"MAT4"};I0.ComponentType={BYTE:5120,UNSIGNED_BYTE:5121,SHORT:5122,UNSIGNED_SHORT:5123,UNSIGNED_INT:5125,FLOAT:5126};function eV1(Z){switch(Z.constructor){case Float32Array:return I0.ComponentType.FLOAT;case Uint32Array:return I0.ComponentType.UNSIGNED_INT;case Uint16Array:return I0.ComponentType.UNSIGNED_SHORT;case Uint8Array:return I0.ComponentType.UNSIGNED_BYTE;case Int16Array:return I0.ComponentType.SHORT;case Int8Array:return I0.ComponentType.BYTE;default:throw new Error("Unknown accessor componentType.")}}class TP extends T6{init(){this.propertyType=a.ANIMATION}getDefaults(){return Object.assign(super.getDefaults(),{channels:new P0,samplers:new P0})}addChannel(Z){return this.addRef("channels",Z)}removeChannel(Z){return this.removeRef("channels",Z)}listChannels(){return this.listRefs("channels")}addSampler(Z){return this.addRef("samplers",Z)}removeSampler(Z){return this.removeRef("samplers",Z)}listSamplers(){return this.listRefs("samplers")}}class tX extends T6{init(){this.propertyType=a.ANIMATION_CHANNEL}getDefaults(){return Object.assign(super.getDefaults(),{targetPath:null,targetNode:null,sampler:null})}getTargetPath(){return this.get("targetPath")}setTargetPath(Z){return this.set("targetPath",Z)}getTargetNode(){return this.getRef("targetNode")}setTargetNode(Z){return this.setRef("targetNode",Z)}getSampler(){return this.getRef("sampler")}setSampler(Z){return this.setRef("sampler",Z)}}tX.TargetPath={TRANSLATION:"translation",ROTATION:"rotation",SCALE:"scale",WEIGHTS:"weights"};class EQ extends T6{init(){this.propertyType=a.ANIMATION_SAMPLER}getDefaultAttributes(){return Object.assign(super.getDefaults(),{interpolation:EQ.Interpolation.LINEAR,input:null,output:null})}getInterpolation(){return this.get("interpolation")}setInterpolation(Z){return this.set("interpolation",Z)}getInput(){return this.getRef("input")}setInput(Z){return this.setRef("input",Z,{usage:c5.OTHER})}getOutput(){return this.getRef("output")}setOutput(Z){return this.setRef("output",Z,{usage:c5.OTHER})}}EQ.Interpolation={LINEAR:"LINEAR",STEP:"STEP",CUBICSPLINE:"CUBICSPLINE"};class kP extends T6{init(){this.propertyType=a.BUFFER}getDefaults(){return Object.assign(super.getDefaults(),{uri:""})}getURI(){return this.get("uri")}setURI(Z){return this.set("uri",Z)}}class eX extends T6{init(){this.propertyType=a.CAMERA}getDefaults(){return Object.assign(super.getDefaults(),{type:eX.Type.PERSPECTIVE,znear:0.1,zfar:100,aspectRatio:null,yfov:Math.PI*2*50/360,xmag:1,ymag:1})}getType(){return this.get("type")}setType(Z){return this.set("type",Z)}getZNear(){return this.get("znear")}setZNear(Z){return this.set("znear",Z)}getZFar(){return this.get("zfar")}setZFar(Z){return this.set("zfar",Z)}getAspectRatio(){return this.get("aspectRatio")}setAspectRatio(Z){return this.set("aspectRatio",Z)}getYFov(){return this.get("yfov")}setYFov(Z){return this.set("yfov",Z)}getXMag(){return this.get("xmag")}setXMag(Z){return this.set("xmag",Z)}getYMag(){return this.get("ymag")}setYMag(Z){return this.set("ymag",Z)}}eX.Type={PERSPECTIVE:"perspective",ORTHOGRAPHIC:"orthographic"};class IQ extends cU{_validateParent(Z){if(!this.parentTypes.includes(Z.propertyType))throw new Error(`Parent "${Z.propertyType}" invalid for child "${this.propertyType}".`)}}IQ.EXTENSION_NAME=void 0;class B5 extends T6{init(){this.propertyType=a.TEXTURE_INFO}getDefaults(){return Object.assign(super.getDefaults(),{texCoord:0,magFilter:null,minFilter:null,wrapS:B5.WrapMode.REPEAT,wrapT:B5.WrapMode.REPEAT})}getTexCoord(){return this.get("texCoord")}setTexCoord(Z){return this.set("texCoord",Z)}getMagFilter(){return this.get("magFilter")}setMagFilter(Z){return this.set("magFilter",Z)}getMinFilter(){return this.get("minFilter")}setMinFilter(Z){return this.set("minFilter",Z)}getWrapS(){return this.get("wrapS")}setWrapS(Z){return this.set("wrapS",Z)}getWrapT(){return this.get("wrapT")}setWrapT(Z){return this.set("wrapT",Z)}}B5.WrapMode={CLAMP_TO_EDGE:33071,MIRRORED_REPEAT:33648,REPEAT:10497};B5.MagFilter={NEAREST:9728,LINEAR:9729};B5.MinFilter={NEAREST:9728,LINEAR:9729,NEAREST_MIPMAP_NEAREST:9984,LINEAR_MIPMAP_NEAREST:9985,NEAREST_MIPMAP_LINEAR:9986,LINEAR_MIPMAP_LINEAR:9987};var{R:_U,G:AU,B:xU,A:ZH1}=gU;class e4 extends T6{init(){this.propertyType=a.MATERIAL}getDefaults(){return Object.assign(super.getDefaults(),{alphaMode:e4.AlphaMode.OPAQUE,alphaCutoff:0.5,doubleSided:!1,baseColorFactor:[1,1,1,1],baseColorTexture:null,baseColorTextureInfo:new B5(this.graph,"baseColorTextureInfo"),emissiveFactor:[0,0,0],emissiveTexture:null,emissiveTextureInfo:new B5(this.graph,"emissiveTextureInfo"),normalScale:1,normalTexture:null,normalTextureInfo:new B5(this.graph,"normalTextureInfo"),occlusionStrength:1,occlusionTexture:null,occlusionTextureInfo:new B5(this.graph,"occlusionTextureInfo"),roughnessFactor:1,metallicFactor:1,metallicRoughnessTexture:null,metallicRoughnessTextureInfo:new B5(this.graph,"metallicRoughnessTextureInfo")})}getDoubleSided(){return this.get("doubleSided")}setDoubleSided(Z){return this.set("doubleSided",Z)}getAlpha(){return this.get("baseColorFactor")[3]}setAlpha(Z){let J=this.get("baseColorFactor").slice();return J[3]=Z,this.set("baseColorFactor",J)}getAlphaMode(){return this.get("alphaMode")}setAlphaMode(Z){return this.set("alphaMode",Z)}getAlphaCutoff(){return this.get("alphaCutoff")}setAlphaCutoff(Z){return this.set("alphaCutoff",Z)}getBaseColorFactor(){return this.get("baseColorFactor")}setBaseColorFactor(Z){return this.set("baseColorFactor",Z)}getBaseColorTexture(){return this.getRef("baseColorTexture")}getBaseColorTextureInfo(){return this.getRef("baseColorTexture")?this.getRef("baseColorTextureInfo"):null}setBaseColorTexture(Z){return this.setRef("baseColorTexture",Z,{channels:_U|AU|xU|ZH1,isColor:!0})}getEmissiveFactor(){return this.get("emissiveFactor")}setEmissiveFactor(Z){return this.set("emissiveFactor",Z)}getEmissiveTexture(){return this.getRef("emissiveTexture")}getEmissiveTextureInfo(){return this.getRef("emissiveTexture")?this.getRef("emissiveTextureInfo"):null}setEmissiveTexture(Z){return this.setRef("emissiveTexture",Z,{channels:_U|AU|xU,isColor:!0})}getNormalScale(){return this.get("normalScale")}setNormalScale(Z){return this.set("normalScale",Z)}getNormalTexture(){return this.getRef("normalTexture")}getNormalTextureInfo(){return this.getRef("normalTexture")?this.getRef("normalTextureInfo"):null}setNormalTexture(Z){return this.setRef("normalTexture",Z,{channels:_U|AU|xU})}getOcclusionStrength(){return this.get("occlusionStrength")}setOcclusionStrength(Z){return this.set("occlusionStrength",Z)}getOcclusionTexture(){return this.getRef("occlusionTexture")}getOcclusionTextureInfo(){return this.getRef("occlusionTexture")?this.getRef("occlusionTextureInfo"):null}setOcclusionTexture(Z){return this.setRef("occlusionTexture",Z,{channels:_U})}getRoughnessFactor(){return this.get("roughnessFactor")}setRoughnessFactor(Z){return this.set("roughnessFactor",Z)}getMetallicFactor(){return this.get("metallicFactor")}setMetallicFactor(Z){return this.set("metallicFactor",Z)}getMetallicRoughnessTexture(){return this.getRef("metallicRoughnessTexture")}getMetallicRoughnessTextureInfo(){return this.getRef("metallicRoughnessTexture")?this.getRef("metallicRoughnessTextureInfo"):null}setMetallicRoughnessTexture(Z){return this.setRef("metallicRoughnessTexture",Z,{channels:AU|xU})}}e4.AlphaMode={OPAQUE:"OPAQUE",MASK:"MASK",BLEND:"BLEND"};class $G extends T6{init(){this.propertyType=a.MESH}getDefaults(){return Object.assign(super.getDefaults(),{weights:[],primitives:new P0})}addPrimitive(Z){return this.addRef("primitives",Z)}removePrimitive(Z){return this.removeRef("primitives",Z)}listPrimitives(){return this.listRefs("primitives")}getWeights(){return this.get("weights")}setWeights(Z){return this.set("weights",Z)}}class lU extends T6{init(){this.propertyType=a.NODE}getDefaults(){return Object.assign(super.getDefaults(),{translation:[0,0,0],rotation:[0,0,0,1],scale:[1,1,1],weights:[],camera:null,mesh:null,skin:null,children:new P0})}copy(Z,J=zJ){if(J===zJ)throw new Error("Node cannot be copied.");return super.copy(Z,J)}getTranslation(){return this.get("translation")}getRotation(){return this.get("rotation")}getScale(){return this.get("scale")}setTranslation(Z){return this.set("translation",Z)}setRotation(Z){return this.set("rotation",Z)}setScale(Z){return this.set("scale",Z)}getMatrix(){return d0.compose(this.get("translation"),this.get("rotation"),this.get("scale"),[])}setMatrix(Z){let J=this.get("translation").slice(),X=this.get("rotation").slice(),Y=this.get("scale").slice();return d0.decompose(Z,J,X,Y),this.set("translation",J).set("rotation",X).set("scale",Y)}getWorldTranslation(){let Z=[0,0,0];return d0.decompose(this.getWorldMatrix(),Z,[0,0,0,1],[1,1,1]),Z}getWorldRotation(){let Z=[0,0,0,1];return d0.decompose(this.getWorldMatrix(),[0,0,0],Z,[1,1,1]),Z}getWorldScale(){let Z=[1,1,1];return d0.decompose(this.getWorldMatrix(),[0,0,0],[0,0,0,1],Z),Z}getWorldMatrix(){let Z=[];for(let Y=this;Y!=null;Y=Y.getParentNode())Z.push(Y);let J,X=Z.pop().getMatrix();while(J=Z.pop())cV1(X,X,J.getMatrix());return X}addChild(Z){let J=Z.getParentNode();if(J)J.removeChild(Z);for(let X of Z.listParents())if(X.propertyType===a.SCENE)X.removeChild(Z);return this.addRef("children",Z)}removeChild(Z){return this.removeRef("children",Z)}listChildren(){return this.listRefs("children")}getParentNode(){for(let Z of this.listParents())if(Z.propertyType===a.NODE)return Z;return null}getMesh(){return this.getRef("mesh")}setMesh(Z){return this.setRef("mesh",Z)}getCamera(){return this.getRef("camera")}setCamera(Z){return this.setRef("camera",Z)}getSkin(){return this.getRef("skin")}setSkin(Z){return this.setRef("skin",Z)}getWeights(){return this.get("weights")}setWeights(Z){return this.set("weights",Z)}traverse(Z){Z(this);for(let J of this.listChildren())J.traverse(Z);return this}}class M8 extends T6{init(){this.propertyType=a.PRIMITIVE}getDefaults(){return Object.assign(super.getDefaults(),{mode:M8.Mode.TRIANGLES,material:null,indices:null,attributes:new r1,targets:new P0})}getIndices(){return this.getRef("indices")}setIndices(Z){return this.setRef("indices",Z,{usage:c5.ELEMENT_ARRAY_BUFFER})}getAttribute(Z){return this.getRefMap("attributes",Z)}setAttribute(Z,J){return this.setRefMap("attributes",Z,J,{usage:c5.ARRAY_BUFFER})}listAttributes(){return this.listRefMapValues("attributes")}listSemantics(){return this.listRefMapKeys("attributes")}getMaterial(){return this.getRef("material")}setMaterial(Z){return this.setRef("material",Z)}getMode(){return this.get("mode")}setMode(Z){return this.set("mode",Z)}listTargets(){return this.listRefs("targets")}addTarget(Z){return this.addRef("targets",Z)}removeTarget(Z){return this.removeRef("targets",Z)}}M8.Mode={POINTS:0,LINES:1,LINE_LOOP:2,LINE_STRIP:3,TRIANGLES:4,TRIANGLE_STRIP:5,TRIANGLE_FAN:6};class EP extends cU{init(){this.propertyType=a.PRIMITIVE_TARGET}getDefaults(){return Object.assign(super.getDefaults(),{attributes:new r1})}getAttribute(Z){return this.getRefMap("attributes",Z)}setAttribute(Z,J){return this.setRefMap("attributes",Z,J,{usage:c5.ARRAY_BUFFER})}listAttributes(){return this.listRefMapValues("attributes")}listSemantics(){return this.listRefMapKeys("attributes")}}function c6(){return c6=Object.assign?Object.assign.bind():function(Z){for(var J=1;J<arguments.length;J++){var X=arguments[J];for(var Y in X)({}).hasOwnProperty.call(X,Y)&&(Z[Y]=X[Y])}return Z},c6.apply(null,arguments)}class vQ extends T6{init(){this.propertyType=a.SCENE}getDefaults(){return Object.assign(super.getDefaults(),{children:new P0})}copy(Z,J=zJ){if(J===zJ)throw new Error("Scene cannot be copied.");return super.copy(Z,J)}addChild(Z){let J=Z.getParentNode();if(J)J.removeChild(Z);return this.addRef("children",Z)}removeChild(Z){return this.removeRef("children",Z)}listChildren(){return this.listRefs("children")}traverse(Z){for(let J of this.listChildren())J.traverse(Z);return this}}class IP extends T6{init(){this.propertyType=a.SKIN}getDefaults(){return Object.assign(super.getDefaults(),{skeleton:null,inverseBindMatrices:null,joints:new P0})}getSkeleton(){return this.getRef("skeleton")}setSkeleton(Z){return this.setRef("skeleton",Z)}getInverseBindMatrices(){return this.getRef("inverseBindMatrices")}setInverseBindMatrices(Z){return this.setRef("inverseBindMatrices",Z,{usage:c5.INVERSE_BIND_MATRICES})}addJoint(Z){return this.addRef("joints",Z)}removeJoint(Z){return this.removeRef("joints",Z)}listJoints(){return this.listRefs("joints")}}class ZY extends T6{init(){this.propertyType=a.TEXTURE}getDefaults(){return Object.assign(super.getDefaults(),{image:null,mimeType:"",uri:""})}getMimeType(){return this.get("mimeType")||WZ.extensionToMimeType(GZ.extension(this.get("uri")))}setMimeType(Z){return this.set("mimeType",Z)}getURI(){return this.get("uri")}setURI(Z){this.set("uri",Z);let J=WZ.extensionToMimeType(GZ.extension(Z));if(J)this.set("mimeType",J);return this}getImage(){return this.get("image")}setImage(Z){return this.set("image",n0.assertView(Z))}getSize(){let Z=this.get("image");if(!Z)return null;return WZ.getSize(Z,this.getMimeType())}}class JY extends T6{init(){this.propertyType=a.ROOT}getDefaults(){return Object.assign(super.getDefaults(),{asset:{generator:`glTF-Transform ${Pc}`,version:"2.0"},defaultScene:null,accessors:new P0,animations:new P0,buffers:new P0,cameras:new P0,materials:new P0,meshes:new P0,nodes:new P0,scenes:new P0,skins:new P0,textures:new P0})}constructor(Z){super(Z);this._extensions=new Set,Z.addEventListener("node:create",(J)=>{this._addChildOfRoot(J.target)})}clone(){throw new Error("Root cannot be cloned.")}copy(Z,J=zJ){if(J===zJ)throw new Error("Root cannot be copied.");this.set("asset",c6({},Z.get("asset"))),this.setName(Z.getName()),this.setExtras(c6({},Z.getExtras())),this.setDefaultScene(Z.getDefaultScene()?J(Z.getDefaultScene()):null);for(let X of Z.listRefMapKeys("extensions")){let Y=Z.getExtension(X);this.setExtension(X,J(Y))}return this}_addChildOfRoot(Z){if(Z instanceof vQ)this.addRef("scenes",Z);else if(Z instanceof lU)this.addRef("nodes",Z);else if(Z instanceof eX)this.addRef("cameras",Z);else if(Z instanceof IP)this.addRef("skins",Z);else if(Z instanceof $G)this.addRef("meshes",Z);else if(Z instanceof e4)this.addRef("materials",Z);else if(Z instanceof ZY)this.addRef("textures",Z);else if(Z instanceof TP)this.addRef("animations",Z);else if(Z instanceof I0)this.addRef("accessors",Z);else if(Z instanceof kP)this.addRef("buffers",Z);return this}getAsset(){return this.get("asset")}listExtensionsUsed(){return Array.from(this._extensions)}listExtensionsRequired(){return this.listExtensionsUsed().filter((Z)=>Z.isRequired())}_enableExtension(Z){return this._extensions.add(Z),this}_disableExtension(Z){return this._extensions.delete(Z),this}listScenes(){return this.listRefs("scenes")}setDefaultScene(Z){return this.setRef("defaultScene",Z)}getDefaultScene(){return this.getRef("defaultScene")}listNodes(){return this.listRefs("nodes")}listCameras(){return this.listRefs("cameras")}listSkins(){return this.listRefs("skins")}listMeshes(){return this.listRefs("meshes")}listMaterials(){return this.listRefs("materials")}listTextures(){return this.listRefs("textures")}listAnimations(){return this.listRefs("animations")}listAccessors(){return this.listRefs("accessors")}listBuffers(){return this.listRefs("buffers")}}class C6{static fromGraph(Z){return C6._GRAPH_DOCUMENTS.get(Z)||null}constructor(){this._graph=new TQ,this._root=new JY(this._graph),this._logger=j5.DEFAULT_INSTANCE,C6._GRAPH_DOCUMENTS.set(this._graph,this)}getRoot(){return this._root}getGraph(){return this._graph}getLogger(){return this._logger}setLogger(Z){return this._logger=Z,this}clone(){throw new Error("Use 'cloneDocument(source)' from '@gltf-transform/functions'.")}merge(Z){throw new Error("Use 'mergeDocuments(target, source)' from '@gltf-transform/functions'.")}async transform(...Z){let J=Z.map((X)=>X.name);for(let X of Z)await X(this,{stack:J});return this}createExtension(Z){let J=Z.EXTENSION_NAME;return this.getRoot().listExtensionsUsed().find((Y)=>Y.extensionName===J)||new Z(this)}createScene(Z=""){return new vQ(this._graph,Z)}createNode(Z=""){return new lU(this._graph,Z)}createCamera(Z=""){return new eX(this._graph,Z)}createSkin(Z=""){return new IP(this._graph,Z)}createMesh(Z=""){return new $G(this._graph,Z)}createPrimitive(){return new M8(this._graph)}createPrimitiveTarget(Z=""){return new EP(this._graph,Z)}createMaterial(Z=""){return new e4(this._graph,Z)}createTexture(Z=""){return new ZY(this._graph,Z)}createAnimation(Z=""){return new TP(this._graph,Z)}createAnimationChannel(Z=""){return new tX(this._graph,Z)}createAnimationSampler(Z=""){return new EQ(this._graph,Z)}createAccessor(Z="",J=null){if(!J)J=this.getRoot().listBuffers()[0];return new I0(this._graph,Z).setBuffer(J)}createBuffer(Z=""){return new kP(this._graph,Z)}}C6._GRAPH_DOCUMENTS=new WeakMap;class Ic{constructor(Z){this.extensionName="",this.prereadTypes=[],this.prewriteTypes=[],this.readDependencies=[],this.writeDependencies=[],this.document=void 0,this.required=!1,this.properties=new Set,this._listener=void 0,this.document=Z,Z.getRoot()._enableExtension(this),this._listener=(X)=>{let Y=X,$=Y.target;if($ instanceof IQ&&$.extensionName===this.extensionName){if(Y.type==="node:create")this._addExtensionProperty($);if(Y.type==="node:dispose")this._removeExtensionProperty($)}};let J=Z.getGraph();J.addEventListener("node:create",this._listener),J.addEventListener("node:dispose",this._listener)}dispose(){this.document.getRoot()._disableExtension(this);let Z=this.document.getGraph();Z.removeEventListener("node:create",this._listener),Z.removeEventListener("node:dispose",this._listener);for(let J of this.properties)J.dispose()}static register(){}isRequired(){return this.required}setRequired(Z){return this.required=Z,this}listProperties(){return Array.from(this.properties)}_addExtensionProperty(Z){return this.properties.add(Z),this}_removeExtensionProperty(Z){return this.properties.delete(Z),this}install(Z,J){return this}preread(Z,J){return this}prewrite(Z,J){return this}}Ic.EXTENSION_NAME=void 0;class vc{constructor(Z){this.jsonDoc=void 0,this.buffers=[],this.bufferViews=[],this.bufferViewBuffers=[],this.accessors=[],this.textures=[],this.textureInfos=new Map,this.materials=[],this.meshes=[],this.cameras=[],this.nodes=[],this.skins=[],this.animations=[],this.scenes=[],this.jsonDoc=Z}setTextureInfo(Z,J){if(this.textureInfos.set(Z,J),J.texCoord!==void 0)Z.setTexCoord(J.texCoord);if(J.extras!==void 0)Z.setExtras(J.extras);let X=this.jsonDoc.json.textures[J.index];if(X.sampler===void 0)return;let Y=this.jsonDoc.json.samplers[X.sampler];if(Y.magFilter!==void 0)Z.setMagFilter(Y.magFilter);if(Y.minFilter!==void 0)Z.setMinFilter(Y.minFilter);if(Y.wrapS!==void 0)Z.setWrapS(Y.wrapS);if(Y.wrapT!==void 0)Z.setWrapT(Y.wrapT)}}var Rc={logger:j5.DEFAULT_INSTANCE,extensions:[],dependencies:{}},JH1=new Set([a.BUFFER,a.TEXTURE,a.MATERIAL,a.MESH,a.PRIMITIVE,a.NODE,a.SCENE]);class Sc{static read(Z,J=Rc){let X=c6({},Rc,J),{json:Y}=Z,$=new C6().setLogger(X.logger);this.validate(Z,X);let Q=new vc(Z),K=Y.asset,W=$.getRoot().getAsset();if(K.copyright)W.copyright=K.copyright;if(K.extras)W.extras=K.extras;if(Y.extras!==void 0)$.getRoot().setExtras(c6({},Y.extras));let G=Y.extensionsUsed||[],z=Y.extensionsRequired||[];X.extensions.sort((P,C)=>P.EXTENSION_NAME>C.EXTENSION_NAME?1:-1);for(let P of X.extensions)if(G.includes(P.EXTENSION_NAME)){let C=$.createExtension(P).setRequired(z.includes(P.EXTENSION_NAME)),T=C.prereadTypes.filter((k)=>!JH1.has(k));if(T.length)X.logger.warn(`Preread hooks for some types (${T.join()}), requested by extension ${C.extensionName}, are unsupported. Please file an issue or a PR.`);for(let k of C.readDependencies)C.install(k,X.dependencies[k])}let V=Y.buffers||[];$.getRoot().listExtensionsUsed().filter((P)=>P.prereadTypes.includes(a.BUFFER)).forEach((P)=>P.preread(Q,a.BUFFER)),Q.buffers=V.map((P)=>{let C=$.createBuffer(P.name);if(P.extras)C.setExtras(P.extras);if(P.uri&&P.uri.indexOf("__")!==0)C.setURI(P.uri);return C});let H=Y.bufferViews||[];Q.bufferViewBuffers=H.map((P,C)=>{if(!Q.bufferViews[C]){let T=Z.json.buffers[P.buffer],k=T.uri?Z.resources[T.uri]:Z.resources[bU],A=P.byteOffset||0;Q.bufferViews[C]=n0.toView(k,A,P.byteLength)}return Q.buffers[P.buffer]});let q=Y.accessors||[];Q.accessors=q.map((P)=>{let C=Q.bufferViewBuffers[P.bufferView],T=$.createAccessor(P.name,C).setType(P.type);if(P.extras)T.setExtras(P.extras);if(P.normalized!==void 0)T.setNormalized(P.normalized);if(P.bufferView===void 0)return T;return T.setArray(fU(P,Q)),T});let F=Y.images||[],U=Y.textures||[];$.getRoot().listExtensionsUsed().filter((P)=>P.prereadTypes.includes(a.TEXTURE)).forEach((P)=>P.preread(Q,a.TEXTURE)),Q.textures=F.map((P)=>{let C=$.createTexture(P.name);if(P.extras)C.setExtras(P.extras);if(P.bufferView!==void 0){let T=Y.bufferViews[P.bufferView],k=Z.json.buffers[T.buffer],A=k.uri?Z.resources[k.uri]:Z.resources[bU],S=T.byteOffset||0,x=T.byteLength,I=A.slice(S,S+x);C.setImage(I)}else if(P.uri!==void 0){if(C.setImage(Z.resources[P.uri]),P.uri.indexOf("__")!==0)C.setURI(P.uri)}if(P.mimeType!==void 0)C.setMimeType(P.mimeType);else if(P.uri){let T=GZ.extension(P.uri);C.setMimeType(WZ.extensionToMimeType(T))}return C}),$.getRoot().listExtensionsUsed().filter((P)=>P.prereadTypes.includes(a.MATERIAL)).forEach((P)=>P.preread(Q,a.MATERIAL));let w=Y.materials||[];Q.materials=w.map((P)=>{let C=$.createMaterial(P.name);if(P.extras)C.setExtras(P.extras);if(P.alphaMode!==void 0)C.setAlphaMode(P.alphaMode);if(P.alphaCutoff!==void 0)C.setAlphaCutoff(P.alphaCutoff);if(P.doubleSided!==void 0)C.setDoubleSided(P.doubleSided);let T=P.pbrMetallicRoughness||{};if(T.baseColorFactor!==void 0)C.setBaseColorFactor(T.baseColorFactor);if(P.emissiveFactor!==void 0)C.setEmissiveFactor(P.emissiveFactor);if(T.metallicFactor!==void 0)C.setMetallicFactor(T.metallicFactor);if(T.roughnessFactor!==void 0)C.setRoughnessFactor(T.roughnessFactor);if(T.baseColorTexture!==void 0){let k=T.baseColorTexture,A=Q.textures[U[k.index].source];C.setBaseColorTexture(A),Q.setTextureInfo(C.getBaseColorTextureInfo(),k)}if(P.emissiveTexture!==void 0){let k=P.emissiveTexture,A=Q.textures[U[k.index].source];C.setEmissiveTexture(A),Q.setTextureInfo(C.getEmissiveTextureInfo(),k)}if(P.normalTexture!==void 0){let k=P.normalTexture,A=Q.textures[U[k.index].source];if(C.setNormalTexture(A),Q.setTextureInfo(C.getNormalTextureInfo(),k),P.normalTexture.scale!==void 0)C.setNormalScale(P.normalTexture.scale)}if(P.occlusionTexture!==void 0){let k=P.occlusionTexture,A=Q.textures[U[k.index].source];if(C.setOcclusionTexture(A),Q.setTextureInfo(C.getOcclusionTextureInfo(),k),P.occlusionTexture.strength!==void 0)C.setOcclusionStrength(P.occlusionTexture.strength)}if(T.metallicRoughnessTexture!==void 0){let k=T.metallicRoughnessTexture,A=Q.textures[U[k.index].source];C.setMetallicRoughnessTexture(A),Q.setTextureInfo(C.getMetallicRoughnessTextureInfo(),k)}return C}),$.getRoot().listExtensionsUsed().filter((P)=>P.prereadTypes.includes(a.MESH)).forEach((P)=>P.preread(Q,a.MESH));let L=Y.meshes||[];$.getRoot().listExtensionsUsed().filter((P)=>P.prereadTypes.includes(a.PRIMITIVE)).forEach((P)=>P.preread(Q,a.PRIMITIVE)),Q.meshes=L.map((P)=>{let C=$.createMesh(P.name);if(P.extras)C.setExtras(P.extras);if(P.weights!==void 0)C.setWeights(P.weights);return(P.primitives||[]).forEach((k)=>{let A=$.createPrimitive();if(k.extras)A.setExtras(k.extras);if(k.material!==void 0)A.setMaterial(Q.materials[k.material]);if(k.mode!==void 0)A.setMode(k.mode);for(let[I,v]of Object.entries(k.attributes||{}))A.setAttribute(I,Q.accessors[v]);if(k.indices!==void 0)A.setIndices(Q.accessors[k.indices]);let S=P.extras&&P.extras.targetNames||[];(k.targets||[]).forEach((I,v)=>{let f=S[v]||v.toString(),p=$.createPrimitiveTarget(f);for(let[n,o]of Object.entries(I))p.setAttribute(n,Q.accessors[o]);A.addTarget(p)}),C.addPrimitive(A)}),C});let j=Y.cameras||[];Q.cameras=j.map((P)=>{let C=$.createCamera(P.name).setType(P.type);if(P.extras)C.setExtras(P.extras);if(P.type===eX.Type.PERSPECTIVE){let T=P.perspective;if(C.setYFov(T.yfov),C.setZNear(T.znear),T.zfar!==void 0)C.setZFar(T.zfar);if(T.aspectRatio!==void 0)C.setAspectRatio(T.aspectRatio)}else{let T=P.orthographic;C.setZNear(T.znear).setZFar(T.zfar).setXMag(T.xmag).setYMag(T.ymag)}return C});let R=Y.nodes||[];$.getRoot().listExtensionsUsed().filter((P)=>P.prereadTypes.includes(a.NODE)).forEach((P)=>P.preread(Q,a.NODE)),Q.nodes=R.map((P)=>{let C=$.createNode(P.name);if(P.extras)C.setExtras(P.extras);if(P.translation!==void 0)C.setTranslation(P.translation);if(P.rotation!==void 0)C.setRotation(P.rotation);if(P.scale!==void 0)C.setScale(P.scale);if(P.matrix!==void 0){let T=[0,0,0],k=[0,0,0,1],A=[1,1,1];d0.decompose(P.matrix,T,k,A),C.setTranslation(T),C.setRotation(k),C.setScale(A)}if(P.weights!==void 0)C.setWeights(P.weights);return C});let O=Y.skins||[];Q.skins=O.map((P)=>{let C=$.createSkin(P.name);if(P.extras)C.setExtras(P.extras);if(P.inverseBindMatrices!==void 0)C.setInverseBindMatrices(Q.accessors[P.inverseBindMatrices]);if(P.skeleton!==void 0)C.setSkeleton(Q.nodes[P.skeleton]);for(let T of P.joints)C.addJoint(Q.nodes[T]);return C}),R.map((P,C)=>{let T=Q.nodes[C];if((P.children||[]).forEach((A)=>T.addChild(Q.nodes[A])),P.mesh!==void 0)T.setMesh(Q.meshes[P.mesh]);if(P.camera!==void 0)T.setCamera(Q.cameras[P.camera]);if(P.skin!==void 0)T.setSkin(Q.skins[P.skin])});let N=Y.animations||[];Q.animations=N.map((P)=>{let C=$.createAnimation(P.name);if(P.extras)C.setExtras(P.extras);let k=(P.samplers||[]).map((S)=>{let x=$.createAnimationSampler().setInput(Q.accessors[S.input]).setOutput(Q.accessors[S.output]).setInterpolation(S.interpolation||EQ.Interpolation.LINEAR);if(S.extras)x.setExtras(S.extras);return C.addSampler(x),x});return(P.channels||[]).forEach((S)=>{let x=$.createAnimationChannel().setSampler(k[S.sampler]).setTargetPath(S.target.path);if(S.target.node!==void 0)x.setTargetNode(Q.nodes[S.target.node]);if(S.extras)x.setExtras(S.extras);C.addChannel(x)}),C});let D=Y.scenes||[];if($.getRoot().listExtensionsUsed().filter((P)=>P.prereadTypes.includes(a.SCENE)).forEach((P)=>P.preread(Q,a.SCENE)),Q.scenes=D.map((P)=>{let C=$.createScene(P.name);if(P.extras)C.setExtras(P.extras);return(P.nodes||[]).map((k)=>Q.nodes[k]).forEach((k)=>C.addChild(k)),C}),Y.scene!==void 0)$.getRoot().setDefaultScene(Q.scenes[Y.scene]);return $.getRoot().listExtensionsUsed().forEach((P)=>P.read(Q)),q.forEach((P,C)=>{let T=Q.accessors[C],k=!!P.sparse,A=!P.bufferView&&!T.getArray();if(k||A)T.setSparse(!0).setArray(YH1(P,Q))}),$}static validate(Z,J){let X=Z.json;if(X.asset.version!=="2.0")throw new Error(`Unsupported glTF version, "${X.asset.version}".`);if(X.extensionsRequired){for(let Y of X.extensionsRequired)if(!J.extensions.find(($)=>$.EXTENSION_NAME===Y))throw new Error(`Missing required extension, "${Y}".`)}if(X.extensionsUsed){for(let Y of X.extensionsUsed)if(!J.extensions.find(($)=>$.EXTENSION_NAME===Y))J.logger.warn(`Missing optional extension, "${Y}".`)}}}function XH1(Z,J){let X=J.jsonDoc,Y=J.bufferViews[Z.bufferView],$=X.json.bufferViews[Z.bufferView],Q=VJ[Z.componentType],K=I0.getElementSize(Z.type),W=Q.BYTES_PER_ELEMENT,G=Z.byteOffset||0,z=new Q(Z.count*K),V=new DataView(Y.buffer,Y.byteOffset,Y.byteLength),H=$.byteStride;for(let q=0;q<Z.count;q++)for(let F=0;F<K;F++){let U=G+q*H+F*W,w;switch(Z.componentType){case I0.ComponentType.FLOAT:w=V.getFloat32(U,!0);break;case I0.ComponentType.UNSIGNED_INT:w=V.getUint32(U,!0);break;case I0.ComponentType.UNSIGNED_SHORT:w=V.getUint16(U,!0);break;case I0.ComponentType.UNSIGNED_BYTE:w=V.getUint8(U);break;case I0.ComponentType.SHORT:w=V.getInt16(U,!0);break;case I0.ComponentType.BYTE:w=V.getInt8(U);break;default:throw new Error(`Unexpected componentType "${Z.componentType}".`)}z[q*K+F]=w}return z}function fU(Z,J){let X=J.jsonDoc,Y=J.bufferViews[Z.bufferView],$=X.json.bufferViews[Z.bufferView],Q=VJ[Z.componentType],K=I0.getElementSize(Z.type),W=Q.BYTES_PER_ELEMENT,G=K*W;if($.byteStride!==void 0&&$.byteStride!==G)return XH1(Z,J);let z=Y.byteOffset+(Z.byteOffset||0),V=Z.count*K*W;return new Q(Y.buffer.slice(z,z+V))}function YH1(Z,J){let X=VJ[Z.componentType],Y=I0.getElementSize(Z.type),$;if(Z.bufferView!==void 0)$=fU(Z,J);else $=new X(Z.count*Y);let Q=Z.sparse;if(!Q)return $;let K=Q.count,W=c6({},Z,Q.indices,{count:K,type:"SCALAR"}),G=c6({},Z,Q.values,{count:K}),z=fU(W,J),V=fU(G,J);for(let H=0;H<W.count;H++)for(let q=0;q<Y;q++)$[z[H]*Y+q]=V[H*Y+q];return $}var YG;(function(Z){Z[Z.ARRAY_BUFFER=34962]="ARRAY_BUFFER",Z[Z.ELEMENT_ARRAY_BUFFER=34963]="ELEMENT_ARRAY_BUFFER"})(YG||(YG={}));class GJ{constructor(Z,J,X){this._doc=void 0,this.jsonDoc=void 0,this.options=void 0,this.accessorIndexMap=new Map,this.animationIndexMap=new Map,this.bufferIndexMap=new Map,this.cameraIndexMap=new Map,this.skinIndexMap=new Map,this.materialIndexMap=new Map,this.meshIndexMap=new Map,this.nodeIndexMap=new Map,this.imageIndexMap=new Map,this.textureDefIndexMap=new Map,this.textureInfoDefMap=new Map,this.samplerDefIndexMap=new Map,this.sceneIndexMap=new Map,this.imageBufferViews=[],this.otherBufferViews=new Map,this.otherBufferViewsIndexMap=new Map,this.extensionData={},this.bufferURIGenerator=void 0,this.imageURIGenerator=void 0,this.logger=void 0,this._accessorUsageMap=new Map,this.accessorUsageGroupedByParent=new Set(["ARRAY_BUFFER"]),this.accessorParents=new Map,this._doc=Z,this.jsonDoc=J,this.options=X;let Y=Z.getRoot(),$=Y.listBuffers().length,Q=Y.listTextures().length;this.bufferURIGenerator=new PP($>1,()=>X.basename||"buffer"),this.imageURIGenerator=new PP(Q>1,(K)=>$H1(Z,K)||X.basename||"texture"),this.logger=Z.getLogger()}createTextureInfoDef(Z,J){let X={magFilter:J.getMagFilter()||void 0,minFilter:J.getMinFilter()||void 0,wrapS:J.getWrapS(),wrapT:J.getWrapT()},Y=JSON.stringify(X);if(!this.samplerDefIndexMap.has(Y))this.samplerDefIndexMap.set(Y,this.jsonDoc.json.samplers.length),this.jsonDoc.json.samplers.push(X);let $={source:this.imageIndexMap.get(Z),sampler:this.samplerDefIndexMap.get(Y)},Q=JSON.stringify($);if(!this.textureDefIndexMap.has(Q))this.textureDefIndexMap.set(Q,this.jsonDoc.json.textures.length),this.jsonDoc.json.textures.push($);let K={index:this.textureDefIndexMap.get(Q)};if(J.getTexCoord()!==0)K.texCoord=J.getTexCoord();if(Object.keys(J.getExtras()).length>0)K.extras=J.getExtras();return this.textureInfoDefMap.set(J,K),K}createPropertyDef(Z){let J={};if(Z.getName())J.name=Z.getName();if(Object.keys(Z.getExtras()).length>0)J.extras=Z.getExtras();return J}createAccessorDef(Z){let J=this.createPropertyDef(Z);if(J.type=Z.getType(),J.componentType=Z.getComponentType(),J.count=Z.getCount(),this._doc.getGraph().listParentEdges(Z).some((Y)=>Y.getName()==="attributes"&&Y.getAttributes().key==="POSITION"||Y.getName()==="input"))J.max=Z.getMax([]).map(Math.fround),J.min=Z.getMin([]).map(Math.fround);if(Z.getNormalized())J.normalized=Z.getNormalized();return J}createImageData(Z,J,X){if(this.options.format===KZ.GLB)this.imageBufferViews.push(J),Z.bufferView=this.jsonDoc.json.bufferViews.length,this.jsonDoc.json.bufferViews.push({buffer:0,byteOffset:-1,byteLength:J.byteLength});else{let Y=WZ.mimeTypeToExtension(X.getMimeType());Z.uri=this.imageURIGenerator.createURI(X,Y),this.assignResourceURI(Z.uri,J,!1)}}assignResourceURI(Z,J,X){let Y=this.jsonDoc.resources;if(!(Z in Y)){Y[Z]=J;return}if(J===Y[Z]){this.logger.warn(`Duplicate resource URI, "${Z}".`);return}let $=`Resource URI "${Z}" already assigned to different data.`;if(!X){this.logger.warn($);return}throw new Error($)}getAccessorUsage(Z){let J=this._accessorUsageMap.get(Z);if(J)return J;if(Z.getSparse())return c5.SPARSE;for(let X of this._doc.getGraph().listParentEdges(Z)){let{usage:Y}=X.getAttributes();if(Y)return Y;if(X.getParent().propertyType!==a.ROOT)this.logger.warn(`Missing attribute ".usage" on edge, "${X.getName()}".`)}return c5.OTHER}addAccessorToUsageGroup(Z,J){let X=this._accessorUsageMap.get(Z);if(X&&X!==J)throw new Error(`Accessor with usage "${X}" cannot be reused as "${J}".`);return this._accessorUsageMap.set(Z,J),this}}GJ.BufferViewTarget=YG;GJ.BufferViewUsage=c5;GJ.USAGE_TO_TARGET={[c5.ARRAY_BUFFER]:YG.ARRAY_BUFFER,[c5.ELEMENT_ARRAY_BUFFER]:YG.ELEMENT_ARRAY_BUFFER};class PP{constructor(Z,J){this.multiple=void 0,this.basename=void 0,this.counter={},this.multiple=Z,this.basename=J}createURI(Z,J){if(Z.getURI())return Z.getURI();else if(!this.multiple)return`${this.basename(Z)}.${J}`;else{let X=this.basename(Z);return this.counter[X]=this.counter[X]||1,`${X}_${this.counter[X]++}.${J}`}}}function $H1(Z,J){let X=Z.getGraph().listParentEdges(J).find((Y)=>Y.getParent()!==Z.getRoot());return X?X.getName().replace(/texture$/i,""):""}var{BufferViewUsage:hU}=GJ,{UNSIGNED_INT:QH1,UNSIGNED_SHORT:KH1,UNSIGNED_BYTE:WH1}=I0.ComponentType,GH1=new Set([a.ACCESSOR,a.BUFFER,a.MATERIAL,a.MESH]);class _c{static write(Z,J){let X=Z.getGraph(),Y=Z.getRoot(),$={asset:c6({generator:`glTF-Transform ${Pc}`},Y.getAsset()),extras:c6({},Y.getExtras())},Q={json:$,resources:{}},K=new GJ(Z,Q,J),W=J.logger||j5.DEFAULT_INSTANCE,G=new Set(J.extensions.map((L)=>L.EXTENSION_NAME)),z=Z.getRoot().listExtensionsUsed().filter((L)=>G.has(L.extensionName)).sort((L,j)=>L.extensionName>j.extensionName?1:-1),V=Z.getRoot().listExtensionsRequired().filter((L)=>G.has(L.extensionName)).sort((L,j)=>L.extensionName>j.extensionName?1:-1);if(z.length<Z.getRoot().listExtensionsUsed().length)W.warn("Some extensions were not registered for I/O, and will not be written.");for(let L of z){let j=L.prewriteTypes.filter((R)=>!GH1.has(R));if(j.length)W.warn(`Prewrite hooks for some types (${j.join()}), requested by extension ${L.extensionName}, are unsupported. Please file an issue or a PR.`);for(let R of L.writeDependencies)L.install(R,J.dependencies[R])}function H(L,j,R,O){let N=[],D=0;for(let T of L){let k=K.createAccessorDef(T);k.bufferView=$.bufferViews.length;let A=T.getArray(),S=n0.pad(n0.toView(A));k.byteOffset=D,D+=S.byteLength,N.push(S),K.accessorIndexMap.set(T,$.accessors.length),$.accessors.push(k)}let P=n0.concat(N),C={buffer:j,byteOffset:R,byteLength:P.byteLength};if(O)C.target=O;return $.bufferViews.push(C),{buffers:N,byteLength:D}}function q(L,j,R){let O=L[0].getCount(),N=0;for(let k of L){let A=K.createAccessorDef(k);A.bufferView=$.bufferViews.length,A.byteOffset=N;let S=k.getElementSize(),x=k.getComponentSize();N+=n0.padNumber(S*x),K.accessorIndexMap.set(k,$.accessors.length),$.accessors.push(A)}let D=O*N,P=new ArrayBuffer(D),C=new DataView(P);for(let k=0;k<O;k++){let A=0;for(let S of L){let x=S.getElementSize(),I=S.getComponentSize(),v=S.getComponentType(),f=S.getArray();for(let p=0;p<x;p++){let n=k*N+A+p*I,o=f[k*x+p];switch(v){case I0.ComponentType.FLOAT:C.setFloat32(n,o,!0);break;case I0.ComponentType.BYTE:C.setInt8(n,o);break;case I0.ComponentType.SHORT:C.setInt16(n,o,!0);break;case I0.ComponentType.UNSIGNED_BYTE:C.setUint8(n,o);break;case I0.ComponentType.UNSIGNED_SHORT:C.setUint16(n,o,!0);break;case I0.ComponentType.UNSIGNED_INT:C.setUint32(n,o,!0);break;default:throw new Error("Unexpected component type: "+v)}}A+=n0.padNumber(x*I)}}let T={buffer:j,byteOffset:R,byteLength:D,byteStride:N,target:GJ.BufferViewTarget.ARRAY_BUFFER};return $.bufferViews.push(T),{byteLength:D,buffers:[new Uint8Array(P)]}}function F(L,j,R){let O=[],N=0,D=new Map,P=-1/0,C=!1;for(let v of L){let f=K.createAccessorDef(v);$.accessors.push(f),K.accessorIndexMap.set(v,$.accessors.length-1);let p=[],n=[],o=[],J0=new Array(v.getElementSize()).fill(0);for(let a0=0,v8=v.getCount();a0<v8;a0++){if(v.getElement(a0,o),d0.eq(o,J0,0))continue;P=Math.max(a0,P),p.push(a0);for(let s1=0;s1<o.length;s1++)n.push(o[s1])}let Q0=p.length,T0={accessorDef:f,count:Q0};if(D.set(v,T0),Q0===0)continue;if(Q0>v.getCount()/2)C=!0;let k0=VJ[v.getComponentType()];T0.indices=p,T0.values=new k0(n)}if(!Number.isFinite(P))return{buffers:O,byteLength:N};if(C)W.warn("Some sparse accessors have >50% non-zero elements, which may increase file size.");let T=P<255?Uint8Array:P<65535?Uint16Array:Uint32Array,k=P<255?WH1:P<65535?KH1:QH1,A={buffer:j,byteOffset:R+N,byteLength:0};for(let v of L){let f=D.get(v);if(f.count===0)continue;f.indicesByteOffset=A.byteLength;let p=n0.pad(n0.toView(new T(f.indices)));O.push(p),N+=p.byteLength,A.byteLength+=p.byteLength}$.bufferViews.push(A);let S=$.bufferViews.length-1,x={buffer:j,byteOffset:R+N,byteLength:0};for(let v of L){let f=D.get(v);if(f.count===0)continue;f.valuesByteOffset=x.byteLength;let p=n0.pad(n0.toView(f.values));O.push(p),N+=p.byteLength,x.byteLength+=p.byteLength}$.bufferViews.push(x);let I=$.bufferViews.length-1;for(let v of L){let f=D.get(v);if(f.count===0)continue;f.accessorDef.sparse={count:f.count,indices:{bufferView:S,byteOffset:f.indicesByteOffset,componentType:k},values:{bufferView:I,byteOffset:f.valuesByteOffset}}}return{buffers:O,byteLength:N}}if($.accessors=[],$.bufferViews=[],$.samplers=[],$.textures=[],$.images=Y.listTextures().map((L,j)=>{let R=K.createPropertyDef(L);if(L.getMimeType())R.mimeType=L.getMimeType();let O=L.getImage();if(O)K.createImageData(R,O,L);return K.imageIndexMap.set(L,j),R}),z.filter((L)=>L.prewriteTypes.includes(a.ACCESSOR)).forEach((L)=>L.prewrite(K,a.ACCESSOR)),Y.listAccessors().forEach((L)=>{let{accessorUsageGroupedByParent:j,accessorParents:R}=K;if(K.accessorIndexMap.has(L))return;let O=K.getAccessorUsage(L);if(K.addAccessorToUsageGroup(L,O),j.has(O)){let N=X.listParents(L).find((D)=>D.propertyType!==a.ROOT);R.set(L,N)}}),z.filter((L)=>L.prewriteTypes.includes(a.BUFFER)).forEach((L)=>L.prewrite(K,a.BUFFER)),(Y.listAccessors().length>0||K.otherBufferViews.size>0||Y.listTextures().length>0&&J.format===KZ.GLB)&&Y.listBuffers().length===0)throw new Error("Buffer required for Document resources, but none was found.");if($.buffers=[],Y.listBuffers().forEach((L,j)=>{let R=K.createPropertyDef(L),O=K.accessorUsageGroupedByParent,N=L.listParents().filter((x)=>x instanceof I0),D=new Set(N.map((x)=>K.accessorParents.get(x))),P=new Map(Array.from(D).map((x,I)=>[x,I])),C={};for(let x of N){var T;if(K.accessorIndexMap.has(x))continue;let I=K.getAccessorUsage(x),v=I;if(O.has(I)){let f=K.accessorParents.get(x);v+=`:${P.get(f)}`}C[T=v]||(C[T]={usage:I,accessors:[]}),C[v].accessors.push(x)}let k=[],A=$.buffers.length,S=0;for(let{usage:x,accessors:I}of Object.values(C))if(x===hU.ARRAY_BUFFER&&J.vertexLayout===yU.INTERLEAVED){let v=q(I,A,S);S+=v.byteLength;for(let f of v.buffers)k.push(f)}else if(x===hU.ARRAY_BUFFER)for(let v of I){let f=q([v],A,S);S+=f.byteLength;for(let p of f.buffers)k.push(p)}else if(x===hU.SPARSE){let v=F(I,A,S);S+=v.byteLength;for(let f of v.buffers)k.push(f)}else if(x===hU.ELEMENT_ARRAY_BUFFER){let v=GJ.BufferViewTarget.ELEMENT_ARRAY_BUFFER,f=H(I,A,S,v);S+=f.byteLength;for(let p of f.buffers)k.push(p)}else{let v=H(I,A,S);S+=v.byteLength;for(let f of v.buffers)k.push(f)}if(K.imageBufferViews.length&&j===0){for(let x=0;x<K.imageBufferViews.length;x++)if($.bufferViews[$.images[x].bufferView].byteOffset=S,S+=K.imageBufferViews[x].byteLength,k.push(K.imageBufferViews[x]),S%8){let I=8-S%8;S+=I,k.push(new Uint8Array(I))}}if(K.otherBufferViews.has(L))for(let x of K.otherBufferViews.get(L))$.bufferViews.push({buffer:A,byteOffset:S,byteLength:x.byteLength}),K.otherBufferViewsIndexMap.set(x,$.bufferViews.length-1),S+=x.byteLength,k.push(x);if(S){let x;if(J.format===KZ.GLB)x=bU;else x=K.bufferURIGenerator.createURI(L,"bin"),R.uri=x;R.byteLength=S,K.assignResourceURI(x,n0.concat(k),!0)}$.buffers.push(R),K.bufferIndexMap.set(L,j)}),Y.listAccessors().find((L)=>!L.getBuffer()))W.warn("Skipped writing one or more Accessors: no Buffer assigned.");z.filter((L)=>L.prewriteTypes.includes(a.MATERIAL)).forEach((L)=>L.prewrite(K,a.MATERIAL)),$.materials=Y.listMaterials().map((L,j)=>{let R=K.createPropertyDef(L);if(L.getAlphaMode()!==e4.AlphaMode.OPAQUE)R.alphaMode=L.getAlphaMode();if(L.getAlphaMode()===e4.AlphaMode.MASK)R.alphaCutoff=L.getAlphaCutoff();if(L.getDoubleSided())R.doubleSided=!0;if(R.pbrMetallicRoughness={},!d0.eq(L.getBaseColorFactor(),[1,1,1,1]))R.pbrMetallicRoughness.baseColorFactor=L.getBaseColorFactor();if(!d0.eq(L.getEmissiveFactor(),[0,0,0]))R.emissiveFactor=L.getEmissiveFactor();if(L.getRoughnessFactor()!==1)R.pbrMetallicRoughness.roughnessFactor=L.getRoughnessFactor();if(L.getMetallicFactor()!==1)R.pbrMetallicRoughness.metallicFactor=L.getMetallicFactor();if(L.getBaseColorTexture()){let O=L.getBaseColorTexture(),N=L.getBaseColorTextureInfo();R.pbrMetallicRoughness.baseColorTexture=K.createTextureInfoDef(O,N)}if(L.getEmissiveTexture()){let O=L.getEmissiveTexture(),N=L.getEmissiveTextureInfo();R.emissiveTexture=K.createTextureInfoDef(O,N)}if(L.getNormalTexture()){let O=L.getNormalTexture(),N=L.getNormalTextureInfo(),D=K.createTextureInfoDef(O,N);if(L.getNormalScale()!==1)D.scale=L.getNormalScale();R.normalTexture=D}if(L.getOcclusionTexture()){let O=L.getOcclusionTexture(),N=L.getOcclusionTextureInfo(),D=K.createTextureInfoDef(O,N);if(L.getOcclusionStrength()!==1)D.strength=L.getOcclusionStrength();R.occlusionTexture=D}if(L.getMetallicRoughnessTexture()){let O=L.getMetallicRoughnessTexture(),N=L.getMetallicRoughnessTextureInfo();R.pbrMetallicRoughness.metallicRoughnessTexture=K.createTextureInfoDef(O,N)}return K.materialIndexMap.set(L,j),R}),z.filter((L)=>L.prewriteTypes.includes(a.MESH)).forEach((L)=>L.prewrite(K,a.MESH)),$.meshes=Y.listMeshes().map((L,j)=>{let R=K.createPropertyDef(L),O=null;if(R.primitives=L.listPrimitives().map((N)=>{let D={attributes:{}};D.mode=N.getMode();let P=N.getMaterial();if(P)D.material=K.materialIndexMap.get(P);if(Object.keys(N.getExtras()).length)D.extras=N.getExtras();let C=N.getIndices();if(C)D.indices=K.accessorIndexMap.get(C);for(let T of N.listSemantics())D.attributes[T]=K.accessorIndexMap.get(N.getAttribute(T));for(let T of N.listTargets()){let k={};for(let A of T.listSemantics())k[A]=K.accessorIndexMap.get(T.getAttribute(A));D.targets=D.targets||[],D.targets.push(k)}if(N.listTargets().length&&!O)O=N.listTargets().map((T)=>T.getName());return D}),L.getWeights().length)R.weights=L.getWeights();if(O)R.extras=R.extras||{},R.extras.targetNames=O;return K.meshIndexMap.set(L,j),R}),$.cameras=Y.listCameras().map((L,j)=>{let R=K.createPropertyDef(L);if(R.type=L.getType(),R.type===eX.Type.PERSPECTIVE){R.perspective={znear:L.getZNear(),zfar:L.getZFar(),yfov:L.getYFov()};let O=L.getAspectRatio();if(O!==null)R.perspective.aspectRatio=O}else R.orthographic={znear:L.getZNear(),zfar:L.getZFar(),xmag:L.getXMag(),ymag:L.getYMag()};return K.cameraIndexMap.set(L,j),R}),$.nodes=Y.listNodes().map((L,j)=>{let R=K.createPropertyDef(L);if(!d0.eq(L.getTranslation(),[0,0,0]))R.translation=L.getTranslation();if(!d0.eq(L.getRotation(),[0,0,0,1]))R.rotation=L.getRotation();if(!d0.eq(L.getScale(),[1,1,1]))R.scale=L.getScale();if(L.getWeights().length)R.weights=L.getWeights();return K.nodeIndexMap.set(L,j),R}),$.skins=Y.listSkins().map((L,j)=>{let R=K.createPropertyDef(L),O=L.getInverseBindMatrices();if(O)R.inverseBindMatrices=K.accessorIndexMap.get(O);let N=L.getSkeleton();if(N)R.skeleton=K.nodeIndexMap.get(N);return R.joints=L.listJoints().map((D)=>K.nodeIndexMap.get(D)),K.skinIndexMap.set(L,j),R}),Y.listNodes().forEach((L,j)=>{let R=$.nodes[j],O=L.getMesh();if(O)R.mesh=K.meshIndexMap.get(O);let N=L.getCamera();if(N)R.camera=K.cameraIndexMap.get(N);let D=L.getSkin();if(D)R.skin=K.skinIndexMap.get(D);if(L.listChildren().length>0)R.children=L.listChildren().map((P)=>K.nodeIndexMap.get(P))}),$.animations=Y.listAnimations().map((L,j)=>{let R=K.createPropertyDef(L),O=new Map;return R.samplers=L.listSamplers().map((N,D)=>{let P=K.createPropertyDef(N);return P.input=K.accessorIndexMap.get(N.getInput()),P.output=K.accessorIndexMap.get(N.getOutput()),P.interpolation=N.getInterpolation(),O.set(N,D),P}),R.channels=L.listChannels().map((N)=>{let D=K.createPropertyDef(N);return D.sampler=O.get(N.getSampler()),D.target={node:K.nodeIndexMap.get(N.getTargetNode()),path:N.getTargetPath()},D}),K.animationIndexMap.set(L,j),R}),$.scenes=Y.listScenes().map((L,j)=>{let R=K.createPropertyDef(L);return R.nodes=L.listChildren().map((O)=>K.nodeIndexMap.get(O)),K.sceneIndexMap.set(L,j),R});let w=Y.getDefaultScene();if(w)$.scene=Y.listScenes().indexOf(w);return $.extensionsUsed=z.map((L)=>L.extensionName),$.extensionsRequired=V.map((L)=>L.extensionName),z.forEach((L)=>L.write(K)),zH1($),Q}}function zH1(Z){let J=[];for(let X in Z){let Y=Z[X];if(Array.isArray(Y)&&Y.length===0)J.push(X);else if(Y===null||Y==="")J.push(X);else if(Y&&typeof Y==="object"&&Object.keys(Y).length===0)J.push(X)}for(let X of J)delete Z[X]}var uU;(function(Z){Z[Z.JSON=1313821514]="JSON",Z[Z.BIN=5130562]="BIN"})(uU||(uU={}));class Ac{constructor(){this._logger=j5.DEFAULT_INSTANCE,this._extensions=new Set,this._dependencies={},this._vertexLayout=yU.INTERLEAVED,this.lastReadBytes=0,this.lastWriteBytes=0}setLogger(Z){return this._logger=Z,this}registerExtensions(Z){for(let J of Z)this._extensions.add(J),J.register();return this}registerDependencies(Z){return Object.assign(this._dependencies,Z),this}setVertexLayout(Z){return this._vertexLayout=Z,this}async read(Z){return await this.readJSON(await this.readAsJSON(Z))}async readAsJSON(Z){let J=await this.readURI(Z,"view");this.lastReadBytes=J.byteLength;let X=Nc(J)?this._binaryToJSON(J):{json:JSON.parse(n0.decodeText(J)),resources:{}};return await this._readResourcesExternal(X,this.dirname(Z)),this._readResourcesInternal(X),X}async readJSON(Z){return Z=this._copyJSON(Z),this._readResourcesInternal(Z),Sc.read(Z,{extensions:Array.from(this._extensions),dependencies:this._dependencies,logger:this._logger})}async binaryToJSON(Z){let J=this._binaryToJSON(n0.assertView(Z));this._readResourcesInternal(J);let X=J.json;if(X.buffers&&X.buffers.some((Y)=>VH1(J,Y)))throw new Error("Cannot resolve external buffers with binaryToJSON().");else if(X.images&&X.images.some((Y)=>HH1(J,Y)))throw new Error("Cannot resolve external images with binaryToJSON().");return J}async readBinary(Z){return this.readJSON(await this.binaryToJSON(n0.assertView(Z)))}async writeJSON(Z,J={}){if(J.format===KZ.GLB&&Z.getRoot().listBuffers().length>1)throw new Error("GLB must have 0\u20131 buffers.");return _c.write(Z,{format:J.format||KZ.GLTF,basename:J.basename||"",logger:this._logger,vertexLayout:this._vertexLayout,dependencies:c6({},this._dependencies),extensions:Array.from(this._extensions)})}async writeBinary(Z){let{json:J,resources:X}=await this.writeJSON(Z,{format:KZ.GLB}),Y=new Uint32Array([1179937895,2,12]),$=JSON.stringify(J),Q=n0.pad(n0.encodeText($),32),K=n0.toView(new Uint32Array([Q.byteLength,1313821514])),W=n0.concat([K,Q]);Y[Y.length-1]+=W.byteLength;let G=Object.values(X)[0];if(!G||!G.byteLength)return n0.concat([n0.toView(Y),W]);let z=n0.pad(G,0),V=n0.toView(new Uint32Array([z.byteLength,5130562])),H=n0.concat([V,z]);return Y[Y.length-1]+=H.byteLength,n0.concat([n0.toView(Y),W,H])}async _readResourcesExternal(Z,J){var X=this;let Y=Z.json.images||[],$=Z.json.buffers||[],Q=[...Y,...$].map(async function(K){let W=K.uri;if(!W||W.match(/data:/))return Promise.resolve();Z.resources[W]=await X.readURI(X.resolve(J,W),"view"),X.lastReadBytes+=Z.resources[W].byteLength});await Promise.all(Q)}_readResourcesInternal(Z){function J($){if(!$.uri)return;if($.uri in Z.resources){n0.assertView(Z.resources[$.uri]);return}if($.uri.match(/data:/)){let Q=`__${Ec()}.${GZ.extension($.uri)}`;Z.resources[Q]=n0.createBufferFromDataURI($.uri),$.uri=Q}}(Z.json.images||[]).forEach(($)=>{if($.bufferView===void 0&&$.uri===void 0)throw new Error("Missing resource URI or buffer view.");J($)}),(Z.json.buffers||[]).forEach(J)}_copyJSON(Z){let{images:J,buffers:X}=Z.json;if(Z={json:c6({},Z.json),resources:c6({},Z.resources)},J)Z.json.images=J.map((Y)=>c6({},Y));if(X)Z.json.buffers=X.map((Y)=>c6({},Y));return Z}_binaryToJSON(Z){if(!Nc(Z))throw new Error("Invalid glTF 2.0 binary.");let J=new Uint32Array(Z.buffer,Z.byteOffset+12,2);if(J[1]!==uU.JSON)throw new Error("Missing required GLB JSON chunk.");let X=20,Y=J[0],$=n0.decodeText(n0.toView(Z,X,Y)),Q=JSON.parse($),K=X+Y;if(Z.byteLength<=K)return{json:Q,resources:{}};let W=new Uint32Array(Z.buffer,Z.byteOffset+K,2);if(W[1]!==uU.BIN)return{json:Q,resources:{}};let G=W[0],z=n0.toView(Z,K+8,G);return{json:Q,resources:{[bU]:z}}}}function VH1(Z,J){return J.uri!==void 0&&!(J.uri in Z.resources)}function HH1(Z,J){return J.uri!==void 0&&!(J.uri in Z.resources)&&J.bufferView===void 0}function Nc(Z){if(Z.byteLength<3*Uint32Array.BYTES_PER_ELEMENT)return!1;let J=new Uint32Array(Z.buffer,Z.byteOffset,3);return J[0]===1179937895&&J[1]===2}class vP extends Ac{constructor(Z=null,J=O9.DEFAULT_INIT){super();this._fetch=void 0,this._fetchConfig=void 0,this._init=void 0,this._fetchEnabled=!1,this._fetch=Z,this._fetchConfig=J,this._init=this.init()}async init(){if(this._init)return this._init;return Promise.all([import("fs"),import("path")]).then(([Z,J])=>{this._fs=Z.promises,this._path=J})}setAllowNetwork(Z){if(Z&&!this._fetch)throw new Error("NodeIO requires a Fetch API implementation for HTTP requests.");return this._fetchEnabled=Z,this}async readURI(Z,J){if(await this.init(),O9.isAbsoluteURL(Z)){if(!this._fetchEnabled||!this._fetch)throw new Error("Network request blocked. Allow HTTP requests explicitly, if needed.");let X=await this._fetch(Z,this._fetchConfig);switch(J){case"view":return new Uint8Array(await X.arrayBuffer());case"text":return X.text()}}else switch(J){case"view":return this._fs.readFile(Z);case"text":return this._fs.readFile(Z,"utf8")}}resolve(Z,J){if(O9.isAbsoluteURL(Z)||O9.isAbsoluteURL(J))return O9.resolve(Z,J);return this._path.resolve(Z,decodeURIComponent(J))}dirname(Z){if(O9.isAbsoluteURL(Z))return O9.dirname(Z);return this._path.dirname(Z)}async write(Z,J){await this.init(),await(!!Z.match(/\.glb$/)?this._writeGLB(Z,J):this._writeGLTF(Z,J))}async _writeGLTF(Z,J){var X=this;this.lastWriteBytes=0;let{json:Y,resources:$}=await this.writeJSON(J,{format:KZ.GLTF,basename:GZ.basename(Z)}),{_fs:Q,_path:K}=this,W=K.dirname(Z),G=JSON.stringify(Y,null,2);await Q.writeFile(Z,G),this.lastWriteBytes+=G.length;for(let z of qH1(Object.keys($),10))await Promise.all(z.map(async function(V){if(O9.isAbsoluteURL(V)){if(O9.extension(V)==="bin")throw new Error(`Cannot write buffer to path "${V}".`);return}let H=K.join(W,decodeURIComponent(V));await Q.mkdir(K.dirname(H),{recursive:!0}),await Q.writeFile(H,$[V]),X.lastWriteBytes+=$[V].byteLength}))}async _writeGLB(Z,J){let X=await this.writeBinary(J);await this._fs.writeFile(Z,X),this.lastWriteBytes=X.byteLength}}function qH1(Z,J){let X=[];for(let Y=0,$=Z.length;Y<$;Y+=J){let Q=[];for(let K=0;K<J&&Y+K<$;K++)Q.push(Z[Y+K]);X.push(Q)}return X}var Ii=t(SP(),1),vi=t(qi(),1),YL1=t(Ei(),1);async function $L1(Z,J){if(!(Z instanceof Uint8Array))throw new Error("[ndarray-pixels] Input must be Uint8Array or Buffer.");let{data:X,info:Y}=await vi.default(Z).ensureAlpha().raw().toBuffer({resolveWithObject:!0});return Ii.default(new Uint8Array(X),[Y.width,Y.height,4],[4,4*Y.width|0,1],0)}async function Si(Z,J){return $L1(Z)}var QL1="v4.1.3",zD="@glb.bin",s;(function(Z){Z.ACCESSOR="Accessor",Z.ANIMATION="Animation",Z.ANIMATION_CHANNEL="AnimationChannel",Z.ANIMATION_SAMPLER="AnimationSampler",Z.BUFFER="Buffer",Z.CAMERA="Camera",Z.MATERIAL="Material",Z.MESH="Mesh",Z.PRIMITIVE="Primitive",Z.PRIMITIVE_TARGET="PrimitiveTarget",Z.NODE="Node",Z.ROOT="Root",Z.SCENE="Scene",Z.SKIN="Skin",Z.TEXTURE="Texture",Z.TEXTURE_INFO="TextureInfo"})(s||(s={}));var _i;(function(Z){Z.INTERLEAVED="interleaved",Z.SEPARATE="separate"})(_i||(_i={}));var i5;(function(Z){Z.ARRAY_BUFFER="ARRAY_BUFFER",Z.ELEMENT_ARRAY_BUFFER="ELEMENT_ARRAY_BUFFER",Z.INVERSE_BIND_MATRICES="INVERSE_BIND_MATRICES",Z.OTHER="OTHER",Z.SPARSE="SPARSE"})(i5||(i5={}));var n5;(function(Z){Z[Z.R=4096]="R",Z[Z.G=256]="G",Z[Z.B=16]="B",Z[Z.A=1]="A"})(n5||(n5={}));var YD;(function(Z){Z.GLTF="GLTF",Z.GLB="GLB"})(YD||(YD={}));var $D=typeof Float32Array!=="undefined"?Float32Array:Array;if(!Math.hypot)Math.hypot=function(){var Z=0,J=arguments.length;while(J--)Z+=arguments[J]*arguments[J];return Math.sqrt(Z)};function KL1(){var Z=new $D(3);if($D!=Float32Array)Z[0]=0,Z[1]=0,Z[2]=0;return Z}function XD(Z){var J=Z[0],X=Z[1],Y=Z[2];return Math.hypot(J,X,Y)}function WL1(Z,J,X){var Y=J[0],$=J[1],Q=J[2],K=X[3]*Y+X[7]*$+X[11]*Q+X[15];return K=K||1,Z[0]=(X[0]*Y+X[4]*$+X[8]*Q+X[12])/K,Z[1]=(X[1]*Y+X[5]*$+X[9]*Q+X[13])/K,Z[2]=(X[2]*Y+X[6]*$+X[10]*Q+X[14])/K,Z}(function(){var Z=KL1();return function(J,X,Y,$,Q,K){var W,G;if(!X)X=3;if(!Y)Y=0;if($)G=Math.min($*X+Y,J.length);else G=J.length;for(W=Y;W<G;W+=X)Z[0]=J[W],Z[1]=J[W+1],Z[2]=J[W+2],Q(Z,Z,K),J[W]=Z[0],J[W+1]=Z[1],J[W+2]=Z[2];return J}})();function fi(Z){let J=bi(),X=Z.propertyType===s.NODE?[Z]:Z.listChildren();for(let Y of X)Y.traverse(($)=>{let Q=$.getMesh();if(!Q)return;let K=GL1(Q,$.getWorldMatrix());if(K.min.every(isFinite)&&K.max.every(isFinite))QD(K.min,J),QD(K.max,J)});return J}function GL1(Z,J){let X=bi();for(let Y of Z.listPrimitives()){let $=Y.getAttribute("POSITION"),Q=Y.getIndices();if(!$)continue;let K=[0,0,0],W=[0,0,0];for(let G=0,z=Q?Q.getCount():$.getCount();G<z;G++){let V=Q?Q.getScalar(G):G;K=$.getElement(V,K),W=WL1(W,K,J),QD(W,X)}}return X}function QD(Z,J){for(let X=0;X<3;X++)J.min[X]=Math.min(Z[X],J.min[X]),J.max[X]=Math.max(Z[X],J.max[X])}function bi(){return{min:[1/0,1/0,1/0],max:[-1/0,-1/0,-1/0]}}class k6{static createBufferFromDataURI(Z){if(typeof Buffer==="undefined"){let J=atob(Z.split(",")[1]),X=new Uint8Array(J.length);for(let Y=0;Y<J.length;Y++)X[Y]=J.charCodeAt(Y);return X}else{let J=Z.split(",")[1],X=Z.indexOf("base64")>=0;return Buffer.from(J,X?"base64":"utf8")}}static encodeText(Z){return new TextEncoder().encode(Z)}static decodeText(Z){return new TextDecoder().decode(Z)}static concat(Z){let J=0;for(let $ of Z)J+=$.byteLength;let X=new Uint8Array(J),Y=0;for(let $ of Z)X.set($,Y),Y+=$.byteLength;return X}static pad(Z,J=0){let X=this.padNumber(Z.byteLength);if(X===Z.byteLength)return Z;let Y=new Uint8Array(X);if(Y.set(Z),J!==0)for(let $=Z.byteLength;$<X;$++)Y[$]=J;return Y}static padNumber(Z){return Math.ceil(Z/4)*4}static equals(Z,J){if(Z===J)return!0;if(Z.byteLength!==J.byteLength)return!1;let X=Z.byteLength;while(X--)if(Z[X]!==J[X])return!1;return!0}static toView(Z,J=0,X=1/0){return new Uint8Array(Z.buffer,Z.byteOffset+J,Math.min(Z.byteLength,X))}static assertView(Z){if(Z&&!ArrayBuffer.isView(Z))throw new Error(`Method requires Uint8Array parameter; received "${typeof Z}".`);return Z}}class yi{match(Z){return Z.length>=3&&Z[0]===255&&Z[1]===216&&Z[2]===255}getSize(Z){let J=new DataView(Z.buffer,Z.byteOffset+4),X,Y;while(J.byteLength){if(X=J.getUint16(0,!1),zL1(J,X),Y=J.getUint8(X+1),Y===192||Y===193||Y===194)return[J.getUint16(X+7,!1),J.getUint16(X+5,!1)];J=new DataView(Z.buffer,J.byteOffset+X+2)}throw new TypeError("Invalid JPG, no size found")}getChannels(Z){return 3}}class O2{match(Z){return Z.length>=8&&Z[0]===137&&Z[1]===80&&Z[2]===78&&Z[3]===71&&Z[4]===13&&Z[5]===10&&Z[6]===26&&Z[7]===10}getSize(Z){let J=new DataView(Z.buffer,Z.byteOffset);if(k6.decodeText(Z.slice(12,16))===O2.PNG_FRIED_CHUNK_NAME)return[J.getUint32(32,!1),J.getUint32(36,!1)];return[J.getUint32(16,!1),J.getUint32(20,!1)]}getChannels(Z){return 4}}O2.PNG_FRIED_CHUNK_NAME="CgBI";class V4{static registerFormat(Z,J){this.impls[Z]=J}static getMimeType(Z){for(let J in this.impls)if(this.impls[J].match(Z))return J;return null}static getSize(Z,J){if(!this.impls[J])return null;return this.impls[J].getSize(Z)}static getChannels(Z,J){if(!this.impls[J])return null;return this.impls[J].getChannels(Z)}static getVRAMByteLength(Z,J){if(!this.impls[J])return null;if(this.impls[J].getVRAMByteLength)return this.impls[J].getVRAMByteLength(Z);let X=0,Y=4,$=this.getSize(Z,J);if(!$)return null;while($[0]>1||$[1]>1)X+=$[0]*$[1]*Y,$[0]=Math.max(Math.floor($[0]/2),1),$[1]=Math.max(Math.floor($[1]/2),1);return X+=1*Y,X}static mimeTypeToExtension(Z){if(Z==="image/jpeg")return"jpg";return Z.split("/").pop()}static extensionToMimeType(Z){if(Z==="jpg")return"image/jpeg";if(!Z)return"";return`image/${Z}`}}V4.impls={"image/jpeg":new yi,"image/png":new O2};function zL1(Z,J){if(J>Z.byteLength)throw new TypeError("Corrupt JPG, exceeded buffer limits");if(Z.getUint8(J)!==255)throw new TypeError("Invalid JPG, marker table corrupted");return Z}class UG{static basename(Z){let J=Z.split(/[\\/]/).pop();return J.substring(0,J.lastIndexOf("."))}static extension(Z){if(Z.startsWith("data:image/")){let J=Z.match(/data:(image\/\w+)/)[1];return V4.mimeTypeToExtension(J)}else if(Z.startsWith("data:model/gltf+json"))return"gltf";else if(Z.startsWith("data:model/gltf-binary"))return"glb";else if(Z.startsWith("data:application/"))return"bin";return Z.split(/[\\/]/).pop().split(/[.]/).pop()}}function Ai(Z){return Object.prototype.toString.call(Z)==="[object Object]"}function QY(Z){if(Ai(Z)===!1)return!1;let J=Z.constructor;if(J===void 0)return!0;let X=J.prototype;if(Ai(X)===!1)return!1;if(Object.prototype.hasOwnProperty.call(X,"isPrototypeOf")===!1)return!1;return!0}var KD,WD;(function(Z){Z[Z.SILENT=4]="SILENT",Z[Z.ERROR=3]="ERROR",Z[Z.WARN=2]="WARN",Z[Z.INFO=1]="INFO",Z[Z.DEBUG=0]="DEBUG"})(WD||(WD={}));class Q7{constructor(Z){this.verbosity=void 0,this.verbosity=Z}debug(Z){if(this.verbosity<=Q7.Verbosity.DEBUG)console.debug(Z)}info(Z){if(this.verbosity<=Q7.Verbosity.INFO)console.info(Z)}warn(Z){if(this.verbosity<=Q7.Verbosity.WARN)console.warn(Z)}error(Z){if(this.verbosity<=Q7.Verbosity.ERROR)console.error(Z)}}KD=Q7;Q7.Verbosity=WD;Q7.DEFAULT_INSTANCE=new KD(KD.Verbosity.INFO);function VL1(Z){var J=Z[0],X=Z[1],Y=Z[2],$=Z[3],Q=Z[4],K=Z[5],W=Z[6],G=Z[7],z=Z[8],V=Z[9],H=Z[10],q=Z[11],F=Z[12],U=Z[13],w=Z[14],L=Z[15],j=J*K-X*Q,R=J*W-Y*Q,O=J*G-$*Q,N=X*W-Y*K,D=X*G-$*K,P=Y*G-$*W,C=z*U-V*F,T=z*w-H*F,k=z*L-q*F,A=V*w-H*U,S=V*L-q*U,x=H*L-q*w;return j*x-R*S+O*A+N*k-D*T+P*C}function HL1(Z,J,X){var Y=J[0],$=J[1],Q=J[2],K=J[3],W=J[4],G=J[5],z=J[6],V=J[7],H=J[8],q=J[9],F=J[10],U=J[11],w=J[12],L=J[13],j=J[14],R=J[15],O=X[0],N=X[1],D=X[2],P=X[3];return Z[0]=O*Y+N*W+D*H+P*w,Z[1]=O*$+N*G+D*q+P*L,Z[2]=O*Q+N*z+D*F+P*j,Z[3]=O*K+N*V+D*U+P*R,O=X[4],N=X[5],D=X[6],P=X[7],Z[4]=O*Y+N*W+D*H+P*w,Z[5]=O*$+N*G+D*q+P*L,Z[6]=O*Q+N*z+D*F+P*j,Z[7]=O*K+N*V+D*U+P*R,O=X[8],N=X[9],D=X[10],P=X[11],Z[8]=O*Y+N*W+D*H+P*w,Z[9]=O*$+N*G+D*q+P*L,Z[10]=O*Q+N*z+D*F+P*j,Z[11]=O*K+N*V+D*U+P*R,O=X[12],N=X[13],D=X[14],P=X[15],Z[12]=O*Y+N*W+D*H+P*w,Z[13]=O*$+N*G+D*q+P*L,Z[14]=O*Q+N*z+D*F+P*j,Z[15]=O*K+N*V+D*U+P*R,Z}function qL1(Z,J){var X=J[0],Y=J[1],$=J[2],Q=J[4],K=J[5],W=J[6],G=J[8],z=J[9],V=J[10];return Z[0]=Math.hypot(X,Y,$),Z[1]=Math.hypot(Q,K,W),Z[2]=Math.hypot(G,z,V),Z}function FL1(Z,J){var X=new $D(3);qL1(X,J);var Y=1/X[0],$=1/X[1],Q=1/X[2],K=J[0]*Y,W=J[1]*$,G=J[2]*Q,z=J[4]*Y,V=J[5]*$,H=J[6]*Q,q=J[8]*Y,F=J[9]*$,U=J[10]*Q,w=K+V+U,L=0;if(w>0)L=Math.sqrt(w+1)*2,Z[3]=0.25*L,Z[0]=(H-F)/L,Z[1]=(q-G)/L,Z[2]=(W-z)/L;else if(K>V&&K>U)L=Math.sqrt(1+K-V-U)*2,Z[3]=(H-F)/L,Z[0]=0.25*L,Z[1]=(W+z)/L,Z[2]=(q+G)/L;else if(V>U)L=Math.sqrt(1+V-K-U)*2,Z[3]=(q-G)/L,Z[0]=(W+z)/L,Z[1]=0.25*L,Z[2]=(H+F)/L;else L=Math.sqrt(1+U-K-V)*2,Z[3]=(W-z)/L,Z[0]=(q+G)/L,Z[1]=(H+F)/L,Z[2]=0.25*L;return Z}class W8{static identity(Z){return Z}static eq(Z,J,X=0.00001){if(Z.length!==J.length)return!1;for(let Y=0;Y<Z.length;Y++)if(Math.abs(Z[Y]-J[Y])>X)return!1;return!0}static clamp(Z,J,X){if(Z<J)return J;if(Z>X)return X;return Z}static decodeNormalizedInt(Z,J){switch(J){case 5126:return Z;case 5123:return Z/65535;case 5121:return Z/255;case 5122:return Math.max(Z/32767,-1);case 5120:return Math.max(Z/127,-1);default:throw new Error("Invalid component type.")}}static encodeNormalizedInt(Z,J){switch(J){case 5126:return Z;case 5123:return Math.round(W8.clamp(Z,0,1)*65535);case 5121:return Math.round(W8.clamp(Z,0,1)*255);case 5122:return Math.round(W8.clamp(Z,-1,1)*32767);case 5120:return Math.round(W8.clamp(Z,-1,1)*127);default:throw new Error("Invalid component type.")}}static decompose(Z,J,X,Y){let $=XD([Z[0],Z[1],Z[2]]),Q=XD([Z[4],Z[5],Z[6]]),K=XD([Z[8],Z[9],Z[10]]);if(VL1(Z)<0)$=-$;J[0]=Z[12],J[1]=Z[13],J[2]=Z[14];let G=Z.slice(),z=1/$,V=1/Q,H=1/K;G[0]*=z,G[1]*=z,G[2]*=z,G[4]*=V,G[5]*=V,G[6]*=V,G[8]*=H,G[9]*=H,G[10]*=H,FL1(X,G),Y[0]=$,Y[1]=Q,Y[2]=K}static compose(Z,J,X,Y){let $=Y,Q=J[0],K=J[1],W=J[2],G=J[3],z=Q+Q,V=K+K,H=W+W,q=Q*z,F=Q*V,U=Q*H,w=K*V,L=K*H,j=W*H,R=G*z,O=G*V,N=G*H,D=X[0],P=X[1],C=X[2];return $[0]=(1-(w+j))*D,$[1]=(F+N)*D,$[2]=(U-O)*D,$[3]=0,$[4]=(F-N)*P,$[5]=(1-(q+j))*P,$[6]=(L+R)*P,$[7]=0,$[8]=(U+O)*C,$[9]=(L-R)*C,$[10]=(1-(q+w))*C,$[11]=0,$[12]=Z[0],$[13]=Z[1],$[14]=Z[2],$[15]=1,$}}function UL1(Z,J){if(!!Z!==!!J)return!1;let X=Z.getChild(),Y=J.getChild();return X===Y||X.equals(Y)}function LL1(Z,J){if(!!Z!==!!J)return!1;let X=Z.values(),Y=J.values();if(X.length!==Y.length)return!1;for(let $=0;$<X.length;$++){let Q=X[$],K=Y[$];if(Q.getChild()===K.getChild())continue;if(!Q.getChild().equals(K.getChild()))return!1}return!0}function wL1(Z,J){if(!!Z!==!!J)return!1;let X=Z.keys(),Y=J.keys();if(X.length!==Y.length)return!1;for(let $ of X){let Q=Z.get($),K=J.get($);if(!!Q!==!!K)return!1;let W=Q.getChild(),G=K.getChild();if(W===G)continue;if(!W.equals(G))return!1}return!0}function gi(Z,J){if(Z===J)return!0;if(!!Z!==!!J||!Z||!J)return!1;if(Z.length!==J.length)return!1;for(let X=0;X<Z.length;X++)if(Z[X]!==J[X])return!1;return!0}function mi(Z,J){if(Z===J)return!0;if(!!Z!==!!J)return!1;if(!QY(Z)||!QY(J))return Z===J;let X=Z,Y=J,$=0,Q=0,K;for(K in X)$++;for(K in Y)Q++;if($!==Q)return!1;for(K in X){let W=X[K],G=Y[K];if(w2(W)&&w2(G)){if(!gi(W,G))return!1}else if(QY(W)&&QY(G)){if(!mi(W,G))return!1}else if(W!==G)return!1}return!0}function w2(Z){return Array.isArray(Z)||ArrayBuffer.isView(Z)}var xi="https://null.example";class VD{static dirname(Z){let J=Z.lastIndexOf("/");if(J===-1)return"./";return Z.substring(0,J+1)}static basename(Z){return UG.basename(new URL(Z,xi).pathname)}static extension(Z){return UG.extension(new URL(Z,xi).pathname)}static resolve(Z,J){if(!this.isRelativePath(J))return J;let X=Z.split("/"),Y=J.split("/");X.pop();for(let $=0;$<Y.length;$++){if(Y[$]===".")continue;if(Y[$]==="..")X.pop();else X.push(Y[$])}return X.join("/")}static isAbsoluteURL(Z){return this.PROTOCOL_REGEXP.test(Z)}static isRelativePath(Z){return!/^(?:[a-zA-Z]+:)?\//.test(Z)}}VD.DEFAULT_INIT={};VD.PROTOCOL_REGEXP=/^[a-zA-Z]+:\/\//;var wJ=(Z)=>Z,BL1=new Set;class M2 extends kQ{constructor(Z,J=""){super(Z);this[x0].name=J,this.init(),this.dispatchEvent({type:"create"})}getGraph(){return this.graph}getDefaults(){return Object.assign(super.getDefaults(),{name:"",extras:{}})}set(Z,J){if(Array.isArray(J))J=J.slice();return super.set(Z,J)}getName(){return this.get("name")}setName(Z){return this.set("name",Z)}getExtras(){return this.get("extras")}setExtras(Z){return this.set("extras",Z)}clone(){return new this.constructor(this.graph).copy(this,wJ)}copy(Z,J=wJ){for(let X in this[x0]){let Y=this[x0][X];if(Y instanceof w5){if(!this[G4].has(X))Y.dispose()}else if(Y instanceof D6||Y instanceof P0)for(let $ of Y.values())$.dispose();else if(Y instanceof r1)for(let $ of Y.values())$.dispose()}for(let X in Z[x0]){let Y=this[x0][X],$=Z[x0][X];if($ instanceof w5)if(this[G4].has(X))Y.getChild().copy(J($.getChild()),J);else this.setRef(X,J($.getChild()),$.getAttributes());else if($ instanceof P0||$ instanceof D6)for(let Q of $.values())this.addRef(X,J(Q.getChild()),Q.getAttributes());else if($ instanceof r1)for(let Q of $.keys()){let K=$.get(Q);this.setRefMap(X,Q,J(K.getChild()),K.getAttributes())}else if(QY($))this[x0][X]=JSON.parse(JSON.stringify($));else if(Array.isArray($)||$ instanceof ArrayBuffer||ArrayBuffer.isView($))this[x0][X]=$.slice();else this[x0][X]=$}return this}equals(Z,J=BL1){if(this===Z)return!0;if(this.propertyType!==Z.propertyType)return!1;for(let X in this[x0]){if(J.has(X))continue;let Y=this[x0][X],$=Z[x0][X];if(Y instanceof w5||$ instanceof w5){if(!UL1(Y,$))return!1}else if(Y instanceof P0||$ instanceof P0||Y instanceof D6||$ instanceof D6){if(!LL1(Y,$))return!1}else if(Y instanceof r1||$ instanceof r1){if(!wL1(Y,$))return!1}else if(QY(Y)||QY($)){if(!mi(Y,$))return!1}else if(w2(Y)||w2($)){if(!gi(Y,$))return!1}else if(Y!==$)return!1}return!0}detach(){return this.graph.disconnectParents(this,(Z)=>Z.propertyType!=="Root"),this}listParents(){return this.graph.listParents(this)}}class E6 extends M2{getDefaults(){return Object.assign(super.getDefaults(),{extensions:new r1})}getExtension(Z){return this.getRefMap("extensions",Z)}setExtension(Z,J){if(J)J._validateParent(this);return this.setRefMap("extensions",Z,J)}listExtensions(){return this.listRefMapValues("extensions")}}class M0 extends E6{init(){this.propertyType=s.ACCESSOR}getDefaults(){return Object.assign(super.getDefaults(),{array:null,type:M0.Type.SCALAR,componentType:M0.ComponentType.FLOAT,normalized:!1,sparse:!1,buffer:null})}static getElementSize(Z){switch(Z){case M0.Type.SCALAR:return 1;case M0.Type.VEC2:return 2;case M0.Type.VEC3:return 3;case M0.Type.VEC4:return 4;case M0.Type.MAT2:return 4;case M0.Type.MAT3:return 9;case M0.Type.MAT4:return 16;default:throw new Error("Unexpected type: "+Z)}}static getComponentSize(Z){switch(Z){case M0.ComponentType.BYTE:return 1;case M0.ComponentType.UNSIGNED_BYTE:return 1;case M0.ComponentType.SHORT:return 2;case M0.ComponentType.UNSIGNED_SHORT:return 2;case M0.ComponentType.UNSIGNED_INT:return 4;case M0.ComponentType.FLOAT:return 4;default:throw new Error("Unexpected component type: "+Z)}}getMinNormalized(Z){let J=this.getNormalized(),X=this.getElementSize(),Y=this.getComponentType();if(this.getMin(Z),J)for(let $=0;$<X;$++)Z[$]=W8.decodeNormalizedInt(Z[$],Y);return Z}getMin(Z){let J=this.getArray(),X=this.getCount(),Y=this.getElementSize();for(let $=0;$<Y;$++)Z[$]=1/0;for(let $=0;$<X*Y;$+=Y)for(let Q=0;Q<Y;Q++){let K=J[$+Q];if(Number.isFinite(K))Z[Q]=Math.min(Z[Q],K)}return Z}getMaxNormalized(Z){let J=this.getNormalized(),X=this.getElementSize(),Y=this.getComponentType();if(this.getMax(Z),J)for(let $=0;$<X;$++)Z[$]=W8.decodeNormalizedInt(Z[$],Y);return Z}getMax(Z){let J=this.get("array"),X=this.getCount(),Y=this.getElementSize();for(let $=0;$<Y;$++)Z[$]=-1/0;for(let $=0;$<X*Y;$+=Y)for(let Q=0;Q<Y;Q++){let K=J[$+Q];if(Number.isFinite(K))Z[Q]=Math.max(Z[Q],K)}return Z}getCount(){let Z=this.get("array");return Z?Z.length/this.getElementSize():0}getType(){return this.get("type")}setType(Z){return this.set("type",Z)}getElementSize(){return M0.getElementSize(this.get("type"))}getComponentSize(){return this.get("array").BYTES_PER_ELEMENT}getComponentType(){return this.get("componentType")}getNormalized(){return this.get("normalized")}setNormalized(Z){return this.set("normalized",Z)}getScalar(Z){let J=this.getElementSize(),X=this.getComponentType(),Y=this.getArray();if(this.getNormalized())return W8.decodeNormalizedInt(Y[Z*J],X);return Y[Z*J]}setScalar(Z,J){let X=this.getElementSize(),Y=this.getComponentType(),$=this.getArray();if(this.getNormalized())$[Z*X]=W8.encodeNormalizedInt(J,Y);else $[Z*X]=J;return this}getElement(Z,J){let X=this.getNormalized(),Y=this.getElementSize(),$=this.getComponentType(),Q=this.getArray();for(let K=0;K<Y;K++)if(X)J[K]=W8.decodeNormalizedInt(Q[Z*Y+K],$);else J[K]=Q[Z*Y+K];return J}setElement(Z,J){let X=this.getNormalized(),Y=this.getElementSize(),$=this.getComponentType(),Q=this.getArray();for(let K=0;K<Y;K++)if(X)Q[Z*Y+K]=W8.encodeNormalizedInt(J[K],$);else Q[Z*Y+K]=J[K];return this}getSparse(){return this.get("sparse")}setSparse(Z){return this.set("sparse",Z)}getBuffer(){return this.getRef("buffer")}setBuffer(Z){return this.setRef("buffer",Z)}getArray(){return this.get("array")}setArray(Z){return this.set("componentType",Z?jL1(Z):M0.ComponentType.FLOAT),this.set("array",Z),this}getByteLength(){let Z=this.get("array");return Z?Z.byteLength:0}}M0.Type={SCALAR:"SCALAR",VEC2:"VEC2",VEC3:"VEC3",VEC4:"VEC4",MAT2:"MAT2",MAT3:"MAT3",MAT4:"MAT4"};M0.ComponentType={BYTE:5120,UNSIGNED_BYTE:5121,SHORT:5122,UNSIGNED_SHORT:5123,UNSIGNED_INT:5125,FLOAT:5126};function jL1(Z){switch(Z.constructor){case Float32Array:return M0.ComponentType.FLOAT;case Uint32Array:return M0.ComponentType.UNSIGNED_INT;case Uint16Array:return M0.ComponentType.UNSIGNED_SHORT;case Uint8Array:return M0.ComponentType.UNSIGNED_BYTE;case Int16Array:return M0.ComponentType.SHORT;case Int8Array:return M0.ComponentType.BYTE;default:throw new Error("Unknown accessor componentType.")}}class HD extends E6{init(){this.propertyType=s.ANIMATION}getDefaults(){return Object.assign(super.getDefaults(),{channels:new P0,samplers:new P0})}addChannel(Z){return this.addRef("channels",Z)}removeChannel(Z){return this.removeRef("channels",Z)}listChannels(){return this.listRefs("channels")}addSampler(Z){return this.addRef("samplers",Z)}removeSampler(Z){return this.removeRef("samplers",Z)}listSamplers(){return this.listRefs("samplers")}}class wG extends E6{init(){this.propertyType=s.ANIMATION_CHANNEL}getDefaults(){return Object.assign(super.getDefaults(),{targetPath:null,targetNode:null,sampler:null})}getTargetPath(){return this.get("targetPath")}setTargetPath(Z){return this.set("targetPath",Z)}getTargetNode(){return this.getRef("targetNode")}setTargetNode(Z){return this.setRef("targetNode",Z)}getSampler(){return this.getRef("sampler")}setSampler(Z){return this.setRef("sampler",Z)}}wG.TargetPath={TRANSLATION:"translation",ROTATION:"rotation",SCALE:"scale",WEIGHTS:"weights"};class mQ extends E6{init(){this.propertyType=s.ANIMATION_SAMPLER}getDefaultAttributes(){return Object.assign(super.getDefaults(),{interpolation:mQ.Interpolation.LINEAR,input:null,output:null})}getInterpolation(){return this.get("interpolation")}setInterpolation(Z){return this.set("interpolation",Z)}getInput(){return this.getRef("input")}setInput(Z){return this.setRef("input",Z,{usage:i5.OTHER})}getOutput(){return this.getRef("output")}setOutput(Z){return this.setRef("output",Z,{usage:i5.OTHER})}}mQ.Interpolation={LINEAR:"LINEAR",STEP:"STEP",CUBICSPLINE:"CUBICSPLINE"};class qD extends E6{init(){this.propertyType=s.BUFFER}getDefaults(){return Object.assign(super.getDefaults(),{uri:""})}getURI(){return this.get("uri")}setURI(Z){return this.set("uri",Z)}}class BG extends E6{init(){this.propertyType=s.CAMERA}getDefaults(){return Object.assign(super.getDefaults(),{type:BG.Type.PERSPECTIVE,znear:0.1,zfar:100,aspectRatio:null,yfov:Math.PI*2*50/360,xmag:1,ymag:1})}getType(){return this.get("type")}setType(Z){return this.set("type",Z)}getZNear(){return this.get("znear")}setZNear(Z){return this.set("znear",Z)}getZFar(){return this.get("zfar")}setZFar(Z){return this.set("zfar",Z)}getAspectRatio(){return this.get("aspectRatio")}setAspectRatio(Z){return this.set("aspectRatio",Z)}getYFov(){return this.get("yfov")}setYFov(Z){return this.set("yfov",Z)}getXMag(){return this.get("xmag")}setXMag(Z){return this.set("xmag",Z)}getYMag(){return this.get("ymag")}setYMag(Z){return this.set("ymag",Z)}}BG.Type={PERSPECTIVE:"perspective",ORTHOGRAPHIC:"orthographic"};class n1 extends M2{_validateParent(Z){if(!this.parentTypes.includes(Z.propertyType))throw new Error(`Parent "${Z.propertyType}" invalid for child "${this.propertyType}".`)}}n1.EXTENSION_NAME=void 0;class C1 extends E6{init(){this.propertyType=s.TEXTURE_INFO}getDefaults(){return Object.assign(super.getDefaults(),{texCoord:0,magFilter:null,minFilter:null,wrapS:C1.WrapMode.REPEAT,wrapT:C1.WrapMode.REPEAT})}getTexCoord(){return this.get("texCoord")}setTexCoord(Z){return this.set("texCoord",Z)}getMagFilter(){return this.get("magFilter")}setMagFilter(Z){return this.set("magFilter",Z)}getMinFilter(){return this.get("minFilter")}setMinFilter(Z){return this.set("minFilter",Z)}getWrapS(){return this.get("wrapS")}setWrapS(Z){return this.set("wrapS",Z)}getWrapT(){return this.get("wrapT")}setWrapT(Z){return this.set("wrapT",Z)}}C1.WrapMode={CLAMP_TO_EDGE:33071,MIRRORED_REPEAT:33648,REPEAT:10497};C1.MagFilter={NEAREST:9728,LINEAR:9729};C1.MinFilter={NEAREST:9728,LINEAR:9729,NEAREST_MIPMAP_NEAREST:9984,LINEAR_MIPMAP_NEAREST:9985,NEAREST_MIPMAP_LINEAR:9986,LINEAR_MIPMAP_LINEAR:9987};var{R:F2,G:U2,B:L2,A:OL1}=n5;class jG extends E6{init(){this.propertyType=s.MATERIAL}getDefaults(){return Object.assign(super.getDefaults(),{alphaMode:jG.AlphaMode.OPAQUE,alphaCutoff:0.5,doubleSided:!1,baseColorFactor:[1,1,1,1],baseColorTexture:null,baseColorTextureInfo:new C1(this.graph,"baseColorTextureInfo"),emissiveFactor:[0,0,0],emissiveTexture:null,emissiveTextureInfo:new C1(this.graph,"emissiveTextureInfo"),normalScale:1,normalTexture:null,normalTextureInfo:new C1(this.graph,"normalTextureInfo"),occlusionStrength:1,occlusionTexture:null,occlusionTextureInfo:new C1(this.graph,"occlusionTextureInfo"),roughnessFactor:1,metallicFactor:1,metallicRoughnessTexture:null,metallicRoughnessTextureInfo:new C1(this.graph,"metallicRoughnessTextureInfo")})}getDoubleSided(){return this.get("doubleSided")}setDoubleSided(Z){return this.set("doubleSided",Z)}getAlpha(){return this.get("baseColorFactor")[3]}setAlpha(Z){let J=this.get("baseColorFactor").slice();return J[3]=Z,this.set("baseColorFactor",J)}getAlphaMode(){return this.get("alphaMode")}setAlphaMode(Z){return this.set("alphaMode",Z)}getAlphaCutoff(){return this.get("alphaCutoff")}setAlphaCutoff(Z){return this.set("alphaCutoff",Z)}getBaseColorFactor(){return this.get("baseColorFactor")}setBaseColorFactor(Z){return this.set("baseColorFactor",Z)}getBaseColorTexture(){return this.getRef("baseColorTexture")}getBaseColorTextureInfo(){return this.getRef("baseColorTexture")?this.getRef("baseColorTextureInfo"):null}setBaseColorTexture(Z){return this.setRef("baseColorTexture",Z,{channels:F2|U2|L2|OL1,isColor:!0})}getEmissiveFactor(){return this.get("emissiveFactor")}setEmissiveFactor(Z){return this.set("emissiveFactor",Z)}getEmissiveTexture(){return this.getRef("emissiveTexture")}getEmissiveTextureInfo(){return this.getRef("emissiveTexture")?this.getRef("emissiveTextureInfo"):null}setEmissiveTexture(Z){return this.setRef("emissiveTexture",Z,{channels:F2|U2|L2,isColor:!0})}getNormalScale(){return this.get("normalScale")}setNormalScale(Z){return this.set("normalScale",Z)}getNormalTexture(){return this.getRef("normalTexture")}getNormalTextureInfo(){return this.getRef("normalTexture")?this.getRef("normalTextureInfo"):null}setNormalTexture(Z){return this.setRef("normalTexture",Z,{channels:F2|U2|L2})}getOcclusionStrength(){return this.get("occlusionStrength")}setOcclusionStrength(Z){return this.set("occlusionStrength",Z)}getOcclusionTexture(){return this.getRef("occlusionTexture")}getOcclusionTextureInfo(){return this.getRef("occlusionTexture")?this.getRef("occlusionTextureInfo"):null}setOcclusionTexture(Z){return this.setRef("occlusionTexture",Z,{channels:F2})}getRoughnessFactor(){return this.get("roughnessFactor")}setRoughnessFactor(Z){return this.set("roughnessFactor",Z)}getMetallicFactor(){return this.get("metallicFactor")}setMetallicFactor(Z){return this.set("metallicFactor",Z)}getMetallicRoughnessTexture(){return this.getRef("metallicRoughnessTexture")}getMetallicRoughnessTextureInfo(){return this.getRef("metallicRoughnessTexture")?this.getRef("metallicRoughnessTextureInfo"):null}setMetallicRoughnessTexture(Z){return this.setRef("metallicRoughnessTexture",Z,{channels:U2|L2})}}jG.AlphaMode={OPAQUE:"OPAQUE",MASK:"MASK",BLEND:"BLEND"};class FD extends E6{init(){this.propertyType=s.MESH}getDefaults(){return Object.assign(super.getDefaults(),{weights:[],primitives:new P0})}addPrimitive(Z){return this.addRef("primitives",Z)}removePrimitive(Z){return this.removeRef("primitives",Z)}listPrimitives(){return this.listRefs("primitives")}getWeights(){return this.get("weights")}setWeights(Z){return this.set("weights",Z)}}class UD extends E6{init(){this.propertyType=s.NODE}getDefaults(){return Object.assign(super.getDefaults(),{translation:[0,0,0],rotation:[0,0,0,1],scale:[1,1,1],weights:[],camera:null,mesh:null,skin:null,children:new P0})}copy(Z,J=wJ){if(J===wJ)throw new Error("Node cannot be copied.");return super.copy(Z,J)}getTranslation(){return this.get("translation")}getRotation(){return this.get("rotation")}getScale(){return this.get("scale")}setTranslation(Z){return this.set("translation",Z)}setRotation(Z){return this.set("rotation",Z)}setScale(Z){return this.set("scale",Z)}getMatrix(){return W8.compose(this.get("translation"),this.get("rotation"),this.get("scale"),[])}setMatrix(Z){let J=this.get("translation").slice(),X=this.get("rotation").slice(),Y=this.get("scale").slice();return W8.decompose(Z,J,X,Y),this.set("translation",J).set("rotation",X).set("scale",Y)}getWorldTranslation(){let Z=[0,0,0];return W8.decompose(this.getWorldMatrix(),Z,[0,0,0,1],[1,1,1]),Z}getWorldRotation(){let Z=[0,0,0,1];return W8.decompose(this.getWorldMatrix(),[0,0,0],Z,[1,1,1]),Z}getWorldScale(){let Z=[1,1,1];return W8.decompose(this.getWorldMatrix(),[0,0,0],[0,0,0,1],Z),Z}getWorldMatrix(){let Z=[];for(let Y=this;Y!=null;Y=Y.getParentNode())Z.push(Y);let J,X=Z.pop().getMatrix();while(J=Z.pop())HL1(X,X,J.getMatrix());return X}addChild(Z){let J=Z.getParentNode();if(J)J.removeChild(Z);for(let X of Z.listParents())if(X.propertyType===s.SCENE)X.removeChild(Z);return this.addRef("children",Z)}removeChild(Z){return this.removeRef("children",Z)}listChildren(){return this.listRefs("children")}getParentNode(){for(let Z of this.listParents())if(Z.propertyType===s.NODE)return Z;return null}getMesh(){return this.getRef("mesh")}setMesh(Z){return this.setRef("mesh",Z)}getCamera(){return this.getRef("camera")}setCamera(Z){return this.setRef("camera",Z)}getSkin(){return this.getRef("skin")}setSkin(Z){return this.setRef("skin",Z)}getWeights(){return this.get("weights")}setWeights(Z){return this.set("weights",Z)}traverse(Z){Z(this);for(let J of this.listChildren())J.traverse(Z);return this}}class BJ extends E6{init(){this.propertyType=s.PRIMITIVE}getDefaults(){return Object.assign(super.getDefaults(),{mode:BJ.Mode.TRIANGLES,material:null,indices:null,attributes:new r1,targets:new P0})}getIndices(){return this.getRef("indices")}setIndices(Z){return this.setRef("indices",Z,{usage:i5.ELEMENT_ARRAY_BUFFER})}getAttribute(Z){return this.getRefMap("attributes",Z)}setAttribute(Z,J){return this.setRefMap("attributes",Z,J,{usage:i5.ARRAY_BUFFER})}listAttributes(){return this.listRefMapValues("attributes")}listSemantics(){return this.listRefMapKeys("attributes")}getMaterial(){return this.getRef("material")}setMaterial(Z){return this.setRef("material",Z)}getMode(){return this.get("mode")}setMode(Z){return this.set("mode",Z)}listTargets(){return this.listRefs("targets")}addTarget(Z){return this.addRef("targets",Z)}removeTarget(Z){return this.removeRef("targets",Z)}}BJ.Mode={POINTS:0,LINES:1,LINE_LOOP:2,LINE_STRIP:3,TRIANGLES:4,TRIANGLE_STRIP:5,TRIANGLE_FAN:6};class ui extends M2{init(){this.propertyType=s.PRIMITIVE_TARGET}getDefaults(){return Object.assign(super.getDefaults(),{attributes:new r1})}getAttribute(Z){return this.getRefMap("attributes",Z)}setAttribute(Z,J){return this.setRefMap("attributes",Z,J,{usage:i5.ARRAY_BUFFER})}listAttributes(){return this.listRefMapValues("attributes")}listSemantics(){return this.listRefMapKeys("attributes")}}function B2(){return B2=Object.assign?Object.assign.bind():function(Z){for(var J=1;J<arguments.length;J++){var X=arguments[J];for(var Y in X)({}).hasOwnProperty.call(X,Y)&&(Z[Y]=X[Y])}return Z},B2.apply(null,arguments)}class LD extends E6{init(){this.propertyType=s.SCENE}getDefaults(){return Object.assign(super.getDefaults(),{children:new P0})}copy(Z,J=wJ){if(J===wJ)throw new Error("Scene cannot be copied.");return super.copy(Z,J)}addChild(Z){let J=Z.getParentNode();if(J)J.removeChild(Z);return this.addRef("children",Z)}removeChild(Z){return this.removeRef("children",Z)}listChildren(){return this.listRefs("children")}traverse(Z){for(let J of this.listChildren())J.traverse(Z);return this}}class wD extends E6{init(){this.propertyType=s.SKIN}getDefaults(){return Object.assign(super.getDefaults(),{skeleton:null,inverseBindMatrices:null,joints:new P0})}getSkeleton(){return this.getRef("skeleton")}setSkeleton(Z){return this.setRef("skeleton",Z)}getInverseBindMatrices(){return this.getRef("inverseBindMatrices")}setInverseBindMatrices(Z){return this.setRef("inverseBindMatrices",Z,{usage:i5.INVERSE_BIND_MATRICES})}addJoint(Z){return this.addRef("joints",Z)}removeJoint(Z){return this.removeRef("joints",Z)}listJoints(){return this.listRefs("joints")}}class BD extends E6{init(){this.propertyType=s.TEXTURE}getDefaults(){return Object.assign(super.getDefaults(),{image:null,mimeType:"",uri:""})}getMimeType(){return this.get("mimeType")||V4.extensionToMimeType(UG.extension(this.get("uri")))}setMimeType(Z){return this.set("mimeType",Z)}getURI(){return this.get("uri")}setURI(Z){this.set("uri",Z);let J=V4.extensionToMimeType(UG.extension(Z));if(J)this.set("mimeType",J);return this}getImage(){return this.get("image")}setImage(Z){return this.set("image",k6.assertView(Z))}getSize(){let Z=this.get("image");if(!Z)return null;return V4.getSize(Z,this.getMimeType())}}class R2 extends E6{init(){this.propertyType=s.ROOT}getDefaults(){return Object.assign(super.getDefaults(),{asset:{generator:`glTF-Transform ${QL1}`,version:"2.0"},defaultScene:null,accessors:new P0,animations:new P0,buffers:new P0,cameras:new P0,materials:new P0,meshes:new P0,nodes:new P0,scenes:new P0,skins:new P0,textures:new P0})}constructor(Z){super(Z);this._extensions=new Set,Z.addEventListener("node:create",(J)=>{this._addChildOfRoot(J.target)})}clone(){throw new Error("Root cannot be cloned.")}copy(Z,J=wJ){if(J===wJ)throw new Error("Root cannot be copied.");this.set("asset",B2({},Z.get("asset"))),this.setName(Z.getName()),this.setExtras(B2({},Z.getExtras())),this.setDefaultScene(Z.getDefaultScene()?J(Z.getDefaultScene()):null);for(let X of Z.listRefMapKeys("extensions")){let Y=Z.getExtension(X);this.setExtension(X,J(Y))}return this}_addChildOfRoot(Z){if(Z instanceof LD)this.addRef("scenes",Z);else if(Z instanceof UD)this.addRef("nodes",Z);else if(Z instanceof BG)this.addRef("cameras",Z);else if(Z instanceof wD)this.addRef("skins",Z);else if(Z instanceof FD)this.addRef("meshes",Z);else if(Z instanceof jG)this.addRef("materials",Z);else if(Z instanceof BD)this.addRef("textures",Z);else if(Z instanceof HD)this.addRef("animations",Z);else if(Z instanceof M0)this.addRef("accessors",Z);else if(Z instanceof qD)this.addRef("buffers",Z);return this}getAsset(){return this.get("asset")}listExtensionsUsed(){return Array.from(this._extensions)}listExtensionsRequired(){return this.listExtensionsUsed().filter((Z)=>Z.isRequired())}_enableExtension(Z){return this._extensions.add(Z),this}_disableExtension(Z){return this._extensions.delete(Z),this}listScenes(){return this.listRefs("scenes")}setDefaultScene(Z){return this.setRef("defaultScene",Z)}getDefaultScene(){return this.getRef("defaultScene")}listNodes(){return this.listRefs("nodes")}listCameras(){return this.listRefs("cameras")}listSkins(){return this.listRefs("skins")}listMeshes(){return this.listRefs("meshes")}listMaterials(){return this.listRefs("materials")}listTextures(){return this.listRefs("textures")}listAnimations(){return this.listRefs("animations")}listAccessors(){return this.listRefs("accessors")}listBuffers(){return this.listRefs("buffers")}}class j2{static fromGraph(Z){return j2._GRAPH_DOCUMENTS.get(Z)||null}constructor(){this._graph=new TQ,this._root=new R2(this._graph),this._logger=Q7.DEFAULT_INSTANCE,j2._GRAPH_DOCUMENTS.set(this._graph,this)}getRoot(){return this._root}getGraph(){return this._graph}getLogger(){return this._logger}setLogger(Z){return this._logger=Z,this}clone(){throw new Error("Use 'cloneDocument(source)' from '@gltf-transform/functions'.")}merge(Z){throw new Error("Use 'mergeDocuments(target, source)' from '@gltf-transform/functions'.")}async transform(...Z){let J=Z.map((X)=>X.name);for(let X of Z)await X(this,{stack:J});return this}createExtension(Z){let J=Z.EXTENSION_NAME;return this.getRoot().listExtensionsUsed().find((Y)=>Y.extensionName===J)||new Z(this)}createScene(Z=""){return new LD(this._graph,Z)}createNode(Z=""){return new UD(this._graph,Z)}createCamera(Z=""){return new BG(this._graph,Z)}createSkin(Z=""){return new wD(this._graph,Z)}createMesh(Z=""){return new FD(this._graph,Z)}createPrimitive(){return new BJ(this._graph)}createPrimitiveTarget(Z=""){return new ui(this._graph,Z)}createMaterial(Z=""){return new jG(this._graph,Z)}createTexture(Z=""){return new BD(this._graph,Z)}createAnimation(Z=""){return new HD(this._graph,Z)}createAnimationChannel(Z=""){return new wG(this._graph,Z)}createAnimationSampler(Z=""){return new mQ(this._graph,Z)}createAccessor(Z="",J=null){if(!J)J=this.getRoot().listBuffers()[0];return new M0(this._graph,Z).setBuffer(J)}createBuffer(Z=""){return new qD(this._graph,Z)}}j2._GRAPH_DOCUMENTS=new WeakMap;class E1{constructor(Z){this.extensionName="",this.prereadTypes=[],this.prewriteTypes=[],this.readDependencies=[],this.writeDependencies=[],this.document=void 0,this.required=!1,this.properties=new Set,this._listener=void 0,this.document=Z,Z.getRoot()._enableExtension(this),this._listener=(X)=>{let Y=X,$=Y.target;if($ instanceof n1&&$.extensionName===this.extensionName){if(Y.type==="node:create")this._addExtensionProperty($);if(Y.type==="node:dispose")this._removeExtensionProperty($)}};let J=Z.getGraph();J.addEventListener("node:create",this._listener),J.addEventListener("node:dispose",this._listener)}dispose(){this.document.getRoot()._disableExtension(this);let Z=this.document.getGraph();Z.removeEventListener("node:create",this._listener),Z.removeEventListener("node:dispose",this._listener);for(let J of this.properties)J.dispose()}static register(){}isRequired(){return this.required}setRequired(Z){return this.required=Z,this}listProperties(){return Array.from(this.properties)}_addExtensionProperty(Z){return this.properties.add(Z),this}_removeExtensionProperty(Z){return this.properties.delete(Z),this}install(Z,J){return this}preread(Z,J){return this}prewrite(Z,J){return this}}E1.EXTENSION_NAME=void 0;var dz6={logger:Q7.DEFAULT_INSTANCE,extensions:[],dependencies:{}},cz6=new Set([s.BUFFER,s.TEXTURE,s.MATERIAL,s.MESH,s.PRIMITIVE,s.NODE,s.SCENE]);var LG;(function(Z){Z[Z.ARRAY_BUFFER=34962]="ARRAY_BUFFER",Z[Z.ELEMENT_ARRAY_BUFFER=34963]="ELEMENT_ARRAY_BUFFER"})(LG||(LG={}));class jJ{constructor(Z,J,X){this._doc=void 0,this.jsonDoc=void 0,this.options=void 0,this.accessorIndexMap=new Map,this.animationIndexMap=new Map,this.bufferIndexMap=new Map,this.cameraIndexMap=new Map,this.skinIndexMap=new Map,this.materialIndexMap=new Map,this.meshIndexMap=new Map,this.nodeIndexMap=new Map,this.imageIndexMap=new Map,this.textureDefIndexMap=new Map,this.textureInfoDefMap=new Map,this.samplerDefIndexMap=new Map,this.sceneIndexMap=new Map,this.imageBufferViews=[],this.otherBufferViews=new Map,this.otherBufferViewsIndexMap=new Map,this.extensionData={},this.bufferURIGenerator=void 0,this.imageURIGenerator=void 0,this.logger=void 0,this._accessorUsageMap=new Map,this.accessorUsageGroupedByParent=new Set(["ARRAY_BUFFER"]),this.accessorParents=new Map,this._doc=Z,this.jsonDoc=J,this.options=X;let Y=Z.getRoot(),$=Y.listBuffers().length,Q=Y.listTextures().length;this.bufferURIGenerator=new GD($>1,()=>X.basename||"buffer"),this.imageURIGenerator=new GD(Q>1,(K)=>ML1(Z,K)||X.basename||"texture"),this.logger=Z.getLogger()}createTextureInfoDef(Z,J){let X={magFilter:J.getMagFilter()||void 0,minFilter:J.getMinFilter()||void 0,wrapS:J.getWrapS(),wrapT:J.getWrapT()},Y=JSON.stringify(X);if(!this.samplerDefIndexMap.has(Y))this.samplerDefIndexMap.set(Y,this.jsonDoc.json.samplers.length),this.jsonDoc.json.samplers.push(X);let $={source:this.imageIndexMap.get(Z),sampler:this.samplerDefIndexMap.get(Y)},Q=JSON.stringify($);if(!this.textureDefIndexMap.has(Q))this.textureDefIndexMap.set(Q,this.jsonDoc.json.textures.length),this.jsonDoc.json.textures.push($);let K={index:this.textureDefIndexMap.get(Q)};if(J.getTexCoord()!==0)K.texCoord=J.getTexCoord();if(Object.keys(J.getExtras()).length>0)K.extras=J.getExtras();return this.textureInfoDefMap.set(J,K),K}createPropertyDef(Z){let J={};if(Z.getName())J.name=Z.getName();if(Object.keys(Z.getExtras()).length>0)J.extras=Z.getExtras();return J}createAccessorDef(Z){let J=this.createPropertyDef(Z);if(J.type=Z.getType(),J.componentType=Z.getComponentType(),J.count=Z.getCount(),this._doc.getGraph().listParentEdges(Z).some((Y)=>Y.getName()==="attributes"&&Y.getAttributes().key==="POSITION"||Y.getName()==="input"))J.max=Z.getMax([]).map(Math.fround),J.min=Z.getMin([]).map(Math.fround);if(Z.getNormalized())J.normalized=Z.getNormalized();return J}createImageData(Z,J,X){if(this.options.format===YD.GLB)this.imageBufferViews.push(J),Z.bufferView=this.jsonDoc.json.bufferViews.length,this.jsonDoc.json.bufferViews.push({buffer:0,byteOffset:-1,byteLength:J.byteLength});else{let Y=V4.mimeTypeToExtension(X.getMimeType());Z.uri=this.imageURIGenerator.createURI(X,Y),this.assignResourceURI(Z.uri,J,!1)}}assignResourceURI(Z,J,X){let Y=this.jsonDoc.resources;if(!(Z in Y)){Y[Z]=J;return}if(J===Y[Z]){this.logger.warn(`Duplicate resource URI, "${Z}".`);return}let $=`Resource URI "${Z}" already assigned to different data.`;if(!X){this.logger.warn($);return}throw new Error($)}getAccessorUsage(Z){let J=this._accessorUsageMap.get(Z);if(J)return J;if(Z.getSparse())return i5.SPARSE;for(let X of this._doc.getGraph().listParentEdges(Z)){let{usage:Y}=X.getAttributes();if(Y)return Y;if(X.getParent().propertyType!==s.ROOT)this.logger.warn(`Missing attribute ".usage" on edge, "${X.getName()}".`)}return i5.OTHER}addAccessorToUsageGroup(Z,J){let X=this._accessorUsageMap.get(Z);if(X&&X!==J)throw new Error(`Accessor with usage "${X}" cannot be reused as "${J}".`);return this._accessorUsageMap.set(Z,J),this}}jJ.BufferViewTarget=LG;jJ.BufferViewUsage=i5;jJ.USAGE_TO_TARGET={[i5.ARRAY_BUFFER]:LG.ARRAY_BUFFER,[i5.ELEMENT_ARRAY_BUFFER]:LG.ELEMENT_ARRAY_BUFFER};class GD{constructor(Z,J){this.multiple=void 0,this.basename=void 0,this.counter={},this.multiple=Z,this.basename=J}createURI(Z,J){if(Z.getURI())return Z.getURI();else if(!this.multiple)return`${this.basename(Z)}.${J}`;else{let X=this.basename(Z);return this.counter[X]=this.counter[X]||1,`${X}_${this.counter[X]++}.${J}`}}}function ML1(Z,J){let X=Z.getGraph().listParentEdges(J).find((Y)=>Y.getParent()!==Z.getRoot());return X?X.getName().replace(/texture$/i,""):""}var{UNSIGNED_INT:lz6,UNSIGNED_SHORT:pz6,UNSIGNED_BYTE:iz6}=M0.ComponentType,nz6=new Set([s.ACCESSOR,s.BUFFER,s.MATERIAL,s.MESH]);var hi;(function(Z){Z[Z.JSON=1313821514]="JSON",Z[Z.BIN=5130562]="BIN"})(hi||(hi={}));var ci=163,li=166;function RL1(){return{vkFormat:0,typeSize:1,pixelWidth:0,pixelHeight:0,pixelDepth:0,layerCount:0,faceCount:1,supercompressionScheme:0,levels:[],dataFormatDescriptor:[{vendorId:0,descriptorType:0,versionNumber:2,colorModel:0,colorPrimaries:1,transferFunction:2,flags:0,texelBlockDimension:[0,0,0,0],bytesPlane:[0,0,0,0,0,0,0,0],samples:[]}],keyValue:{},globalData:null}}class uQ{constructor(Z,J,X,Y){this._dataView=void 0,this._littleEndian=void 0,this._offset=void 0,this._dataView=new DataView(Z.buffer,Z.byteOffset+J,X),this._littleEndian=Y,this._offset=0}_nextUint8(){let Z=this._dataView.getUint8(this._offset);return this._offset+=1,Z}_nextUint16(){let Z=this._dataView.getUint16(this._offset,this._littleEndian);return this._offset+=2,Z}_nextUint32(){let Z=this._dataView.getUint32(this._offset,this._littleEndian);return this._offset+=4,Z}_nextUint64(){let Z=this._dataView.getUint32(this._offset,this._littleEndian),J=this._dataView.getUint32(this._offset+4,this._littleEndian),X=Z+4294967296*J;return this._offset+=8,X}_nextInt32(){let Z=this._dataView.getInt32(this._offset,this._littleEndian);return this._offset+=4,Z}_nextUint8Array(Z){let J=new Uint8Array(this._dataView.buffer,this._dataView.byteOffset+this._offset,Z);return this._offset+=Z,J}_skip(Z){return this._offset+=Z,this}_scan(Z,J=0){let X=this._offset,Y=0;while(this._dataView.getUint8(this._offset)!==J&&Y<Z)Y++,this._offset++;if(Y<Z)this._offset++;return new Uint8Array(this._dataView.buffer,this._dataView.byteOffset+X,Y)}}var oz6=new Uint8Array([0]),n6=[171,75,84,88,32,50,48,187,13,10,26,10];function di(Z){return new TextDecoder().decode(Z)}function N2(Z){let J=new Uint8Array(Z.buffer,Z.byteOffset,n6.length);if(J[0]!==n6[0]||J[1]!==n6[1]||J[2]!==n6[2]||J[3]!==n6[3]||J[4]!==n6[4]||J[5]!==n6[5]||J[6]!==n6[6]||J[7]!==n6[7]||J[8]!==n6[8]||J[9]!==n6[9]||J[10]!==n6[10]||J[11]!==n6[11])throw new Error("Missing KTX 2.0 identifier.");let X=RL1(),Y=17*Uint32Array.BYTES_PER_ELEMENT,$=new uQ(Z,n6.length,Y,!0);X.vkFormat=$._nextUint32(),X.typeSize=$._nextUint32(),X.pixelWidth=$._nextUint32(),X.pixelHeight=$._nextUint32(),X.pixelDepth=$._nextUint32(),X.layerCount=$._nextUint32(),X.faceCount=$._nextUint32();let Q=$._nextUint32();X.supercompressionScheme=$._nextUint32();let K=$._nextUint32(),W=$._nextUint32(),G=$._nextUint32(),z=$._nextUint32(),V=$._nextUint64(),H=$._nextUint64(),q=Q*3*8,F=new uQ(Z,n6.length+Y,q,!0);for(let H6=0;H6<Q;H6++)X.levels.push({levelData:new Uint8Array(Z.buffer,Z.byteOffset+F._nextUint64(),F._nextUint64()),uncompressedByteLength:F._nextUint64()});let U=new uQ(Z,K,W,!0);U._skip(4);let w=U._nextUint16(),L=U._nextUint16(),j=U._nextUint16(),R=U._nextUint16(),O=U._nextUint8(),N=U._nextUint8(),D=U._nextUint8(),P=U._nextUint8(),C=[U._nextUint8(),U._nextUint8(),U._nextUint8(),U._nextUint8()],T=[U._nextUint8(),U._nextUint8(),U._nextUint8(),U._nextUint8(),U._nextUint8(),U._nextUint8(),U._nextUint8(),U._nextUint8()],A={vendorId:w,descriptorType:L,versionNumber:j,colorModel:O,colorPrimaries:N,transferFunction:D,flags:P,texelBlockDimension:C,bytesPlane:T,samples:[]},S=6,x=4,I=(R/4-S)/x;for(let H6=0;H6<I;H6++){let a7={bitOffset:U._nextUint16(),bitLength:U._nextUint8(),channelType:U._nextUint8(),samplePosition:[U._nextUint8(),U._nextUint8(),U._nextUint8(),U._nextUint8()],sampleLower:Number.NEGATIVE_INFINITY,sampleUpper:Number.POSITIVE_INFINITY};if(a7.channelType&64)a7.sampleLower=U._nextInt32(),a7.sampleUpper=U._nextInt32();else a7.sampleLower=U._nextUint32(),a7.sampleUpper=U._nextUint32();A.samples[H6]=a7}X.dataFormatDescriptor.length=0,X.dataFormatDescriptor.push(A);let v=new uQ(Z,G,z,!0);while(v._offset<z){let H6=v._nextUint32(),a7=v._scan(H6),Mq=di(a7);if(X.keyValue[Mq]=v._nextUint8Array(H6-a7.byteLength-1),Mq.match(/^ktx/i)){let Uf=di(X.keyValue[Mq]);X.keyValue[Mq]=Uf.substring(0,Uf.lastIndexOf("\x00"))}let CX1=H6%4?4-H6%4:0;v._skip(CX1)}if(H<=0)return X;let f=new uQ(Z,V,H,!0),p=f._nextUint16(),n=f._nextUint16(),o=f._nextUint32(),J0=f._nextUint32(),Q0=f._nextUint32(),T0=f._nextUint32(),k0=[];for(let H6=0;H6<Q;H6++)k0.push({imageFlags:f._nextUint32(),rgbSliceByteOffset:f._nextUint32(),rgbSliceByteLength:f._nextUint32(),alphaSliceByteOffset:f._nextUint32(),alphaSliceByteLength:f._nextUint32()});let a0=V+f._offset,v8=a0+o,s1=v8+J0,d4=s1+Q0,r9=new Uint8Array(Z.buffer,Z.byteOffset+a0,o),e$=new Uint8Array(Z.buffer,Z.byteOffset+v8,J0),ZQ=new Uint8Array(Z.buffer,Z.byteOffset+s1,Q0),hX=new Uint8Array(Z.buffer,Z.byteOffset+d4,T0);return X.globalData={endpointCount:p,selectorCount:n,imageDescs:k0,endpointsData:r9,selectorsData:e$,tablesData:ZQ,extendedData:hX},X}var ND="EXT_mesh_gpu_instancing",OD="EXT_meshopt_compression",NL1="EXT_texture_webp",PL1="EXT_texture_avif",$n="KHR_draco_mesh_compression",PD="KHR_lights_punctual",DD="KHR_materials_anisotropy",CD="KHR_materials_clearcoat",TD="KHR_materials_diffuse_transmission",kD="KHR_materials_dispersion",ED="KHR_materials_emissive_strength",ID="KHR_materials_ior",vD="KHR_materials_iridescence",SD="KHR_materials_pbrSpecularGlossiness",_D="KHR_materials_sheen",AD="KHR_materials_specular",xD="KHR_materials_transmission",hD="KHR_materials_unlit",fD="KHR_materials_volume",MY="KHR_materials_variants",DL1="KHR_mesh_quantization",CL1="KHR_texture_basisu",bD="KHR_texture_transform",P2="KHR_xmp_json_ld",MD="INSTANCE_ATTRIBUTE";class yD extends n1{init(){this.extensionName=ND,this.propertyType="InstancedMesh",this.parentTypes=[s.NODE]}getDefaults(){return Object.assign(super.getDefaults(),{attributes:new r1})}getAttribute(Z){return this.getRefMap("attributes",Z)}setAttribute(Z,J){return this.setRefMap("attributes",Z,J,{usage:MD})}listAttributes(){return this.listRefMapValues("attributes")}listSemantics(){return this.listRefMapKeys("attributes")}}yD.EXTENSION_NAME=ND;var KY=ND;class T2 extends E1{constructor(...Z){super(...Z);this.extensionName=KY,this.provideTypes=[s.NODE],this.prewriteTypes=[s.ACCESSOR]}createInstancedMesh(){return new yD(this.document.getGraph())}read(Z){return(Z.jsonDoc.json.nodes||[]).forEach((Y,$)=>{if(!Y.extensions||!Y.extensions[KY])return;let Q=Y.extensions[KY],K=this.createInstancedMesh();for(let W in Q.attributes)K.setAttribute(W,Z.accessors[Q.attributes[W]]);Z.nodes[$].setExtension(KY,K)}),this}prewrite(Z){Z.accessorUsageGroupedByParent.add(MD);for(let J of this.properties)for(let X of J.listAttributes())Z.addAccessorToUsageGroup(X,MD);return this}write(Z){let J=Z.jsonDoc;return this.document.getRoot().listNodes().forEach((X)=>{let Y=X.getExtension(KY);if(Y){let $=Z.nodeIndexMap.get(X),Q=J.json.nodes[$],K={attributes:{}};Y.listSemantics().forEach((W)=>{let G=Y.getAttribute(W);K.attributes[W]=Z.accessorIndexMap.get(G)}),Q.extensions=Q.extensions||{},Q.extensions[KY]=K}}),this}}T2.EXTENSION_NAME=KY;function qZ(){return qZ=Object.assign?Object.assign.bind():function(Z){for(var J=1;J<arguments.length;J++){var X=arguments[J];for(var Y in X)({}).hasOwnProperty.call(X,Y)&&(Z[Y]=X[Y])}return Z},qZ.apply(null,arguments)}var NG;(function(Z){Z.QUANTIZE="quantize",Z.FILTER="filter"})(NG||(NG={}));var cQ;(function(Z){Z.ATTRIBUTES="ATTRIBUTES",Z.TRIANGLES="TRIANGLES",Z.INDICES="INDICES"})(cQ||(cQ={}));var G8;(function(Z){Z.NONE="NONE",Z.OCTAHEDRAL="OCTAHEDRAL",Z.QUATERNION="QUATERNION",Z.EXPONENTIAL="EXPONENTIAL"})(G8||(G8={}));var{BYTE:TL1,SHORT:pi,FLOAT:kL1}=M0.ComponentType,{encodeNormalizedInt:ii,decodeNormalizedInt:RD}=W8;function EL1(Z,J,X,Y){let{filter:$,bits:Q}=Y,K={array:Z.getArray(),byteStride:Z.getElementSize()*Z.getComponentSize(),componentType:Z.getComponentType(),normalized:Z.getNormalized()};if(X!==cQ.ATTRIBUTES)return K;if($!==G8.NONE){let W=Z.getNormalized()?IL1(Z):new Float32Array(K.array);switch($){case G8.EXPONENTIAL:K.byteStride=Z.getElementSize()*4,K.componentType=kL1,K.normalized=!1,K.array=J.encodeFilterExp(W,Z.getCount(),K.byteStride,Q);break;case G8.OCTAHEDRAL:K.byteStride=Q>8?8:4,K.componentType=Q>8?pi:TL1,K.normalized=!0,W=Z.getElementSize()===3?SL1(W):W,K.array=J.encodeFilterOct(W,Z.getCount(),K.byteStride,Q);break;case G8.QUATERNION:K.byteStride=8,K.componentType=pi,K.normalized=!0,K.array=J.encodeFilterQuat(W,Z.getCount(),K.byteStride,Q);break;default:throw new Error("Invalid filter.")}if(K.min=Z.getMin([]),K.max=Z.getMax([]),Z.getNormalized())K.min=K.min.map((G)=>RD(G,Z.getComponentType())),K.max=K.max.map((G)=>RD(G,Z.getComponentType()));if(K.normalized)K.min=K.min.map((G)=>ii(G,K.componentType)),K.max=K.max.map((G)=>ii(G,K.componentType))}else if(K.byteStride%4)K.array=vL1(K.array,Z.getElementSize()),K.byteStride=K.array.byteLength/Z.getCount();return K}function IL1(Z){let J=Z.getComponentType(),X=Z.getArray(),Y=new Float32Array(X.length);for(let $=0;$<X.length;$++)Y[$]=RD(X[$],J);return Y}function vL1(Z,J){let Y=k6.padNumber(Z.BYTES_PER_ELEMENT*J)/Z.BYTES_PER_ELEMENT,$=Z.length/J,Q=new Z.constructor($*Y);for(let K=0;K*J<Z.length;K++)for(let W=0;W<J;W++)Q[K*Y+W]=Z[K*J+W];return Q}function SL1(Z){let J=new Float32Array(Z.length*4/3);for(let X=0,Y=Z.length/3;X<Y;X++)J[X*4]=Z[X*3],J[X*4+1]=Z[X*3+1],J[X*4+2]=Z[X*3+2];return J}function _L1(Z,J){if(J===jJ.BufferViewUsage.ELEMENT_ARRAY_BUFFER)return Z.listParents().some((Y)=>{return Y instanceof BJ&&Y.getMode()===BJ.Mode.TRIANGLES})?cQ.TRIANGLES:cQ.INDICES;return cQ.ATTRIBUTES}function AL1(Z,J){let X=J.getGraph().listParentEdges(Z).filter((Y)=>!(Y.getParent()instanceof R2));for(let Y of X){let $=Y.getName(),Q=Y.getAttributes().key||"",K=Y.getParent().propertyType===s.PRIMITIVE_TARGET;if($==="indices")return{filter:G8.NONE};if($==="attributes"){if(Q==="POSITION")return{filter:G8.NONE};if(Q==="TEXCOORD_0")return{filter:G8.NONE};if(Q.startsWith("JOINTS_"))return{filter:G8.NONE};if(Q.startsWith("WEIGHTS_"))return{filter:G8.NONE};if(Q==="NORMAL"||Q==="TANGENT")return K?{filter:G8.NONE}:{filter:G8.OCTAHEDRAL,bits:8}}if($==="output"){let W=Qn(Z);if(W==="rotation")return{filter:G8.QUATERNION,bits:16};if(W==="translation")return{filter:G8.EXPONENTIAL,bits:12};if(W==="scale")return{filter:G8.EXPONENTIAL,bits:12};return{filter:G8.NONE}}if($==="input")return{filter:G8.NONE};if($==="inverseBindMatrices")return{filter:G8.NONE}}return{filter:G8.NONE}}function Qn(Z){for(let J of Z.listParents()){if(!(J instanceof mQ))continue;for(let X of J.listParents()){if(!(X instanceof wG))continue;return X.getTargetPath()}}return null}function xL1(Z){if(!Z.extensions||!Z.extensions[OD])return!1;return!!Z.extensions[OD].fallback}var a6=OD,ni={method:NG.QUANTIZE};class DG extends E1{constructor(...Z){super(...Z);this.extensionName=a6,this.prereadTypes=[s.BUFFER,s.PRIMITIVE],this.prewriteTypes=[s.BUFFER,s.ACCESSOR],this.readDependencies=["meshopt.decoder"],this.writeDependencies=["meshopt.encoder"],this._decoder=null,this._decoderFallbackBufferMap=new Map,this._encoder=null,this._encoderOptions=ni,this._encoderFallbackBuffer=null,this._encoderBufferViews={},this._encoderBufferViewData={},this._encoderBufferViewAccessors={}}install(Z,J){if(Z==="meshopt.decoder")this._decoder=J;if(Z==="meshopt.encoder")this._encoder=J;return this}setEncoderOptions(Z){return this._encoderOptions=qZ({},ni,Z),this}preread(Z,J){if(!this._decoder){if(!this.isRequired())return this;throw new Error(`[${a6}] Please install extension dependency, "meshopt.decoder".`)}if(!this._decoder.supported){if(!this.isRequired())return this;throw new Error(`[${a6}]: Missing WASM support.`)}if(J===s.BUFFER)this._prereadBuffers(Z);else if(J===s.PRIMITIVE)this._prereadPrimitives(Z);return this}_prereadBuffers(Z){let J=Z.jsonDoc;(J.json.bufferViews||[]).forEach((Y,$)=>{if(!Y.extensions||!Y.extensions[a6])return;let Q=Y.extensions[a6],K=Q.byteOffset||0,W=Q.byteLength||0,G=Q.count,z=Q.byteStride,V=new Uint8Array(G*z),H=J.json.buffers[Q.buffer],q=H.uri?J.resources[H.uri]:J.resources[zD],F=k6.toView(q,K,W);this._decoder.decodeGltfBuffer(V,G,z,F,Q.mode,Q.filter),Z.bufferViews[$]=V})}_prereadPrimitives(Z){let J=Z.jsonDoc;(J.json.bufferViews||[]).forEach((Y)=>{if(!Y.extensions||!Y.extensions[a6])return;let $=Y.extensions[a6],Q=Z.buffers[$.buffer],K=Z.buffers[Y.buffer],W=J.json.buffers[Y.buffer];if(xL1(W))this._decoderFallbackBufferMap.set(K,Q)})}read(Z){if(!this.isRequired())return this;for(let[J,X]of this._decoderFallbackBufferMap){for(let Y of J.listParents())if(Y instanceof M0)Y.swap(J,X);J.dispose()}return this}prewrite(Z,J){if(J===s.ACCESSOR)this._prewriteAccessors(Z);else if(J===s.BUFFER)this._prewriteBuffers(Z);return this}_prewriteAccessors(Z){let J=Z.jsonDoc.json,X=this._encoder,Y=this._encoderOptions,$=this.document.getGraph(),Q=this.document.createBuffer(),K=this.document.getRoot().listBuffers().indexOf(Q),W=1,G=new Map,z=(V)=>{for(let H of $.listParents(V)){if(H.propertyType===s.ROOT)continue;let q=G.get(V);if(q===void 0)G.set(V,q=W++);return q}return-1};this._encoderFallbackBuffer=Q,this._encoderBufferViews={},this._encoderBufferViewData={},this._encoderBufferViewAccessors={};for(let V of this.document.getRoot().listAccessors()){if(Qn(V)==="weights")continue;if(V.getSparse())continue;let H=Z.getAccessorUsage(V),q=Z.accessorUsageGroupedByParent.has(H)?z(V):null,F=_L1(V,H),U=Y.method===NG.FILTER?AL1(V,this.document):{filter:G8.NONE},w=EL1(V,X,F,U),{array:L,byteStride:j}=w,R=V.getBuffer();if(!R)throw new Error(`${a6}: Missing buffer for accessor.`);let O=this.document.getRoot().listBuffers().indexOf(R),N=[H,q,F,U.filter,j,O].join(":"),D=this._encoderBufferViews[N],P=this._encoderBufferViewData[N],C=this._encoderBufferViewAccessors[N];if(!D||!P)C=this._encoderBufferViewAccessors[N]=[],P=this._encoderBufferViewData[N]=[],D=this._encoderBufferViews[N]={buffer:K,target:jJ.USAGE_TO_TARGET[H],byteOffset:0,byteLength:0,byteStride:H===jJ.BufferViewUsage.ARRAY_BUFFER?j:void 0,extensions:{[a6]:{buffer:O,byteOffset:0,byteLength:0,mode:F,filter:U.filter!==G8.NONE?U.filter:void 0,byteStride:j,count:0}}};let T=Z.createAccessorDef(V);if(T.componentType=w.componentType,T.normalized=w.normalized,T.byteOffset=D.byteLength,T.min&&w.min)T.min=w.min;if(T.max&&w.max)T.max=w.max;Z.accessorIndexMap.set(V,J.accessors.length),J.accessors.push(T),C.push(T),P.push(new Uint8Array(L.buffer,L.byteOffset,L.byteLength)),D.byteLength+=L.byteLength,D.extensions.EXT_meshopt_compression.count+=V.getCount()}}_prewriteBuffers(Z){let J=this._encoder;for(let X in this._encoderBufferViews){let Y=this._encoderBufferViews[X],$=this._encoderBufferViewData[X],Q=this.document.getRoot().listBuffers()[Y.extensions[a6].buffer],K=Z.otherBufferViews.get(Q)||[],{count:W,byteStride:G,mode:z}=Y.extensions[a6],V=k6.concat($),H=J.encodeGltfBuffer(V,W,G,z),q=k6.pad(H);Y.extensions[a6].byteLength=H.byteLength,$.length=0,$.push(q),K.push(q),Z.otherBufferViews.set(Q,K)}}write(Z){let J=0;for(let Q in this._encoderBufferViews){let K=this._encoderBufferViews[Q],W=this._encoderBufferViewData[Q][0],G=Z.otherBufferViewsIndexMap.get(W),z=this._encoderBufferViewAccessors[Q];for(let F of z)F.bufferView=G;let V=Z.jsonDoc.json.bufferViews[G],H=V.byteOffset||0;Object.assign(V,K),V.byteOffset=J;let q=V.extensions[a6];q.byteOffset=H,J+=k6.padNumber(K.byteLength)}let X=this._encoderFallbackBuffer,Y=Z.bufferIndexMap.get(X),$=Z.jsonDoc.json.buffers[Y];return $.byteLength=J,$.extensions={[a6]:{fallback:!0}},X.dispose(),this}}DG.EXTENSION_NAME=a6;DG.EncoderMethod=NG;var OG=PL1;class Kn{match(Z){return Z.length>=12&&k6.decodeText(Z.slice(4,12))==="ftypavif"}getSize(Z){if(!this.match(Z))return null;let J=new DataView(Z.buffer,Z.byteOffset,Z.byteLength),X=ai(J,0);if(!X)return null;let Y=X.end;while(X=ai(J,Y))if(X.type==="meta")Y=X.start+4;else if(X.type==="iprp"||X.type==="ipco")Y=X.start;else if(X.type==="ispe")return[J.getUint32(X.start+4),J.getUint32(X.start+8)];else if(X.type==="mdat")break;else Y=X.end;return null}getChannels(Z){return 4}}class k2 extends E1{constructor(...Z){super(...Z);this.extensionName=OG,this.prereadTypes=[s.TEXTURE]}static register(){V4.registerFormat("image/avif",new Kn)}preread(Z){return(Z.jsonDoc.json.textures||[]).forEach((X)=>{if(X.extensions&&X.extensions[OG])X.source=X.extensions[OG].source}),this}read(Z){return this}write(Z){let J=Z.jsonDoc;return this.document.getRoot().listTextures().forEach((X)=>{if(X.getMimeType()==="image/avif"){let Y=Z.imageIndexMap.get(X);(J.json.textures||[]).forEach((Q)=>{if(Q.source===Y)Q.extensions=Q.extensions||{},Q.extensions[OG]={source:Q.source},delete Q.source})}}),this}}k2.EXTENSION_NAME=OG;function ai(Z,J){if(Z.byteLength<4+J)return null;let X=Z.getUint32(J);if(Z.byteLength<X+J||X<8)return null;return{type:k6.decodeText(new Uint8Array(Z.buffer,Z.byteOffset+J+4,4)),start:J+8,end:J+X}}var MG=NL1;class Wn{match(Z){return Z.length>=12&&Z[8]===87&&Z[9]===69&&Z[10]===66&&Z[11]===80}getSize(Z){let J=k6.decodeText(Z.slice(0,4)),X=k6.decodeText(Z.slice(8,12));if(J!=="RIFF"||X!=="WEBP")return null;let Y=new DataView(Z.buffer,Z.byteOffset),$=12;while($<Y.byteLength){let Q=k6.decodeText(new Uint8Array([Y.getUint8($),Y.getUint8($+1),Y.getUint8($+2),Y.getUint8($+3)])),K=Y.getUint32($+4,!0);if(Q==="VP8 "){let W=Y.getInt16($+14,!0)&16383,G=Y.getInt16($+16,!0)&16383;return[W,G]}else if(Q==="VP8L"){let W=Y.getUint8($+9),G=Y.getUint8($+10),z=Y.getUint8($+11),V=Y.getUint8($+12),H=1+((G&63)<<8|W),q=1+((V&15)<<10|z<<2|(G&192)>>6);return[H,q]}$+=8+K+K%2}return null}getChannels(Z){return 4}}class E2 extends E1{constructor(...Z){super(...Z);this.extensionName=MG,this.prereadTypes=[s.TEXTURE]}static register(){V4.registerFormat("image/webp",new Wn)}preread(Z){return(Z.jsonDoc.json.textures||[]).forEach((X)=>{if(X.extensions&&X.extensions[MG])X.source=X.extensions[MG].source}),this}read(Z){return this}write(Z){let J=Z.jsonDoc;return this.document.getRoot().listTextures().forEach((X)=>{if(X.getMimeType()==="image/webp"){let Y=Z.imageIndexMap.get(X);(J.json.textures||[]).forEach((Q)=>{if(Q.source===Y)Q.extensions=Q.extensions||{},Q.extensions[MG]={source:Q.source},delete Q.source})}}),this}}E2.EXTENSION_NAME=MG;var si=$n,d8,Gn,zn;function hL1(Z,J){let X=new d8.DecoderBuffer;try{if(X.Init(J,J.length),Z.GetEncodedGeometryType(X)!==d8.TRIANGULAR_MESH)throw new Error(`[${si}] Unknown geometry type.`);let $=new d8.Mesh;if(!Z.DecodeBufferToMesh(X,$).ok()||$.ptr===0)throw new Error(`[${si}] Decoding failure.`);return $}finally{d8.destroy(X)}}function fL1(Z,J){let Y=J.num_faces()*3,$,Q;if(J.num_points()<=65534){let K=Y*Uint16Array.BYTES_PER_ELEMENT;$=d8._malloc(K),Z.GetTrianglesUInt16Array(J,K,$),Q=new Uint16Array(d8.HEAPU16.buffer,$,Y).slice()}else{let K=Y*Uint32Array.BYTES_PER_ELEMENT;$=d8._malloc(K),Z.GetTrianglesUInt32Array(J,K,$),Q=new Uint32Array(d8.HEAPU32.buffer,$,Y).slice()}return d8._free($),Q}function bL1(Z,J,X,Y){let $=zn[Y.componentType],Q=Gn[Y.componentType],K=X.num_components(),G=J.num_points()*K,z=G*Q.BYTES_PER_ELEMENT,V=d8._malloc(z);Z.GetAttributeDataArrayForAllPoints(J,X,$,z,V);let H=new Q(d8.HEAPF32.buffer,V,G).slice();return d8._free(V),H}function yL1(Z){d8=Z,Gn={[M0.ComponentType.FLOAT]:Float32Array,[M0.ComponentType.UNSIGNED_INT]:Uint32Array,[M0.ComponentType.UNSIGNED_SHORT]:Uint16Array,[M0.ComponentType.UNSIGNED_BYTE]:Uint8Array,[M0.ComponentType.SHORT]:Int16Array,[M0.ComponentType.BYTE]:Int8Array},zn={[M0.ComponentType.FLOAT]:d8.DT_FLOAT32,[M0.ComponentType.UNSIGNED_INT]:d8.DT_UINT32,[M0.ComponentType.UNSIGNED_SHORT]:d8.DT_UINT16,[M0.ComponentType.UNSIGNED_BYTE]:d8.DT_UINT8,[M0.ComponentType.SHORT]:d8.DT_INT16,[M0.ComponentType.BYTE]:d8.DT_INT8}}var R9,PG;(function(Z){Z[Z.EDGEBREAKER=1]="EDGEBREAKER",Z[Z.SEQUENTIAL=0]="SEQUENTIAL"})(PG||(PG={}));var N9;(function(Z){Z.POSITION="POSITION",Z.NORMAL="NORMAL",Z.COLOR="COLOR",Z.TEX_COORD="TEX_COORD",Z.GENERIC="GENERIC"})(N9||(N9={}));var Vn={[N9.POSITION]:14,[N9.NORMAL]:10,[N9.COLOR]:8,[N9.TEX_COORD]:12,[N9.GENERIC]:12},oi={decodeSpeed:5,encodeSpeed:5,method:PG.EDGEBREAKER,quantizationBits:Vn,quantizationVolume:"mesh"};function gL1(Z){R9=Z}function mL1(Z,J=oi){let X=qZ({},oi,J);X.quantizationBits=qZ({},Vn,J.quantizationBits);let Y=new R9.MeshBuilder,$=new R9.Mesh,Q=new R9.ExpertEncoder($),K={},W=new R9.DracoInt8Array,G=Z.listTargets().length>0,z=!1;for(let w of Z.listSemantics()){let L=Z.getAttribute(w);if(L.getSparse()){z=!0;continue}let j=uL1(w),R=dL1(Y,L.getComponentType(),$,R9[j],L.getCount(),L.getElementSize(),L.getArray());if(R===-1)throw new Error(`Error compressing "${w}" attribute.`);if(K[w]=R,X.quantizationVolume==="mesh"||w!=="POSITION")Q.SetAttributeQuantization(R,X.quantizationBits[j]);else if(typeof X.quantizationVolume==="object"){let{quantizationVolume:O}=X,N=Math.max(O.max[0]-O.min[0],O.max[1]-O.min[1],O.max[2]-O.min[2]);Q.SetAttributeExplicitQuantization(R,X.quantizationBits[j],L.getElementSize(),O.min,N)}else throw new Error("Invalid quantization volume state.")}let V=Z.getIndices();if(!V)throw new D2("Primitive must have indices.");if(Y.AddFacesToMesh($,V.getCount()/3,V.getArray()),Q.SetSpeedOptions(X.encodeSpeed,X.decodeSpeed),Q.SetTrackEncodedProperties(!0),X.method===PG.SEQUENTIAL||G||z)Q.SetEncodingMethod(R9.MESH_SEQUENTIAL_ENCODING);else Q.SetEncodingMethod(R9.MESH_EDGEBREAKER_ENCODING);let H=Q.EncodeToDracoBuffer(!(G||z),W);if(H<=0)throw new D2("Error applying Draco compression.");let q=new Uint8Array(H);for(let w=0;w<H;++w)q[w]=W.GetValue(w);let F=Q.GetNumberOfEncodedPoints(),U=Q.GetNumberOfEncodedFaces()*3;return R9.destroy(W),R9.destroy($),R9.destroy(Y),R9.destroy(Q),{numVertices:F,numIndices:U,data:q,attributeIDs:K}}function uL1(Z){if(Z==="POSITION")return N9.POSITION;else if(Z==="NORMAL")return N9.NORMAL;else if(Z.startsWith("COLOR_"))return N9.COLOR;else if(Z.startsWith("TEXCOORD_"))return N9.TEX_COORD;return N9.GENERIC}function dL1(Z,J,X,Y,$,Q,K){switch(J){case M0.ComponentType.UNSIGNED_BYTE:return Z.AddUInt8Attribute(X,Y,$,Q,K);case M0.ComponentType.BYTE:return Z.AddInt8Attribute(X,Y,$,Q,K);case M0.ComponentType.UNSIGNED_SHORT:return Z.AddUInt16Attribute(X,Y,$,Q,K);case M0.ComponentType.SHORT:return Z.AddInt16Attribute(X,Y,$,Q,K);case M0.ComponentType.UNSIGNED_INT:return Z.AddUInt32Attribute(X,Y,$,Q,K);case M0.ComponentType.FLOAT:return Z.AddFloatAttribute(X,Y,$,Q,K);default:throw new Error(`Unexpected component type, "${J}".`)}}class D2 extends Error{}var N8=$n;class CG extends E1{constructor(...Z){super(...Z);this.extensionName=N8,this.prereadTypes=[s.PRIMITIVE],this.prewriteTypes=[s.ACCESSOR],this.readDependencies=["draco3d.decoder"],this.writeDependencies=["draco3d.encoder"],this._decoderModule=null,this._encoderModule=null,this._encoderOptions={}}install(Z,J){if(Z==="draco3d.decoder")this._decoderModule=J,yL1(this._decoderModule);if(Z==="draco3d.encoder")this._encoderModule=J,gL1(this._encoderModule);return this}setEncoderOptions(Z){return this._encoderOptions=Z,this}preread(Z){if(!this._decoderModule)throw new Error(`[${N8}] Please install extension dependency, "draco3d.decoder".`);let J=this.document.getLogger(),X=Z.jsonDoc,Y=new Map;try{let $=X.json.meshes||[];for(let Q of $)for(let K of Q.primitives){if(!K.extensions||!K.extensions[N8])continue;let W=K.extensions[N8],[G,z]=Y.get(W.bufferView)||[];if(!z||!G){let V=X.json.bufferViews[W.bufferView],H=X.json.buffers[V.buffer],q=H.uri?X.resources[H.uri]:X.resources[zD],F=V.byteOffset||0,U=V.byteLength,w=k6.toView(q,F,U);G=new this._decoderModule.Decoder,z=hL1(G,w),Y.set(W.bufferView,[G,z]),J.debug(`[${N8}] Decompressed ${w.byteLength} bytes.`)}for(let V in W.attributes){let H=Z.jsonDoc.json.accessors[K.attributes[V]],q=G.GetAttributeByUniqueId(z,W.attributes[V]),F=bL1(G,z,q,H);Z.accessors[K.attributes[V]].setArray(F)}if(K.indices!==void 0)Z.accessors[K.indices].setArray(fL1(G,z))}}finally{for(let[$,Q]of Array.from(Y.values()))this._decoderModule.destroy($),this._decoderModule.destroy(Q)}return this}read(Z){return this}prewrite(Z,J){if(!this._encoderModule)throw new Error(`[${N8}] Please install extension dependency, "draco3d.encoder".`);let X=this.document.getLogger();X.debug(`[${N8}] Compression options: ${JSON.stringify(this._encoderOptions)}`);let Y=cL1(this.document),$=new Map,Q="mesh";if(this._encoderOptions.quantizationVolume==="scene")if(this.document.getRoot().listScenes().length!==1)X.warn(`[${N8}]: quantizationVolume=scene requires exactly 1 scene.`);else Q=fi(this.document.getRoot().listScenes().pop());for(let K of Array.from(Y.keys())){let W=Y.get(K);if(!W)throw new Error("Unexpected primitive.");if($.has(W)){$.set(W,$.get(W));continue}let G=K.getIndices(),z=Z.jsonDoc.json.accessors,V;try{V=mL1(K,qZ({},this._encoderOptions,{quantizationVolume:Q}))}catch(F){if(F instanceof D2){X.warn(`[${N8}]: ${F.message} Skipping primitive compression.`);continue}throw F}$.set(W,V);let H=Z.createAccessorDef(G);if(H.count=V.numIndices,Z.accessorIndexMap.set(G,z.length),z.push(H),V.numVertices>65534&&M0.getComponentSize(H.componentType)<=2)H.componentType=M0.ComponentType.UNSIGNED_INT;else if(V.numVertices>254&&M0.getComponentSize(H.componentType)<=1)H.componentType=M0.ComponentType.UNSIGNED_SHORT;for(let F of K.listSemantics()){let U=K.getAttribute(F);if(V.attributeIDs[F]===void 0)continue;let w=Z.createAccessorDef(U);w.count=V.numVertices,Z.accessorIndexMap.set(U,z.length),z.push(w)}let q=K.getAttribute("POSITION").getBuffer()||this.document.getRoot().listBuffers()[0];if(!Z.otherBufferViews.has(q))Z.otherBufferViews.set(q,[]);Z.otherBufferViews.get(q).push(V.data)}return X.debug(`[${N8}] Compressed ${Y.size} primitives.`),Z.extensionData[N8]={primitiveHashMap:Y,primitiveEncodingMap:$},this}write(Z){let J=Z.extensionData[N8];for(let X of this.document.getRoot().listMeshes()){let Y=Z.jsonDoc.json.meshes[Z.meshIndexMap.get(X)];for(let $=0;$<X.listPrimitives().length;$++){let Q=X.listPrimitives()[$],K=Y.primitives[$],W=J.primitiveHashMap.get(Q);if(!W)continue;let G=J.primitiveEncodingMap.get(W);if(!G)continue;K.extensions=K.extensions||{},K.extensions[N8]={bufferView:Z.otherBufferViewsIndexMap.get(G.data),attributes:G.attributeIDs}}}if(!J.primitiveHashMap.size){let X=Z.jsonDoc.json;X.extensionsUsed=(X.extensionsUsed||[]).filter((Y)=>Y!==N8),X.extensionsRequired=(X.extensionsRequired||[]).filter((Y)=>Y!==N8)}return this}}CG.EXTENSION_NAME=N8;CG.EncoderMethod=PG;function cL1(Z){let J=Z.getLogger(),X=new Set,Y=new Set,$=0,Q=0;for(let H of Z.getRoot().listMeshes())for(let q of H.listPrimitives())if(!q.getIndices())Y.add(q),$++;else if(q.getMode()!==BJ.Mode.TRIANGLES)Y.add(q),Q++;else X.add(q);if($>0)J.warn(`[${N8}] Skipping Draco compression of ${$} non-indexed primitives.`);if(Q>0)J.warn(`[${N8}] Skipping Draco compression of ${Q} non-TRIANGLES primitives.`);let K=Z.getRoot().listAccessors(),W=new Map;for(let H=0;H<K.length;H++)W.set(K[H],H);let G=new Map,z=new Set,V=new Map;for(let H of Array.from(X)){let q=ri(H,W);if(z.has(q)){V.set(H,q);continue}if(G.has(H.getIndices())){let F=H.getIndices(),U=F.clone();W.set(U,Z.getRoot().listAccessors().length-1),H.swap(F,U)}for(let F of H.listAttributes())if(G.has(F)){let U=F.clone();W.set(U,Z.getRoot().listAccessors().length-1),H.swap(F,U)}q=ri(H,W),z.add(q),V.set(H,q),G.set(H.getIndices(),q);for(let F of H.listAttributes())G.set(F,q)}for(let H of Array.from(G.keys())){let q=new Set(H.listParents().map((F)=>F.propertyType));if(q.size!==2||!q.has(s.PRIMITIVE)||!q.has(s.ROOT))throw new Error(`[${N8}] Compressed accessors must only be used as indices or vertex attributes.`)}for(let H of Array.from(X)){let q=V.get(H),F=H.getIndices();if(G.get(F)!==q||H.listAttributes().some((U)=>G.get(U)!==q))throw new Error(`[${N8}] Draco primitives must share all, or no, accessors.`)}for(let H of Array.from(Y)){let q=H.getIndices();if(G.has(q)||H.listAttributes().some((F)=>G.has(F)))throw new Error(`[${N8}] Accessor cannot be shared by compressed and uncompressed primitives.`)}return V}function ri(Z,J){let X=[],Y=Z.getIndices();X.push(J.get(Y));for(let $ of Z.listAttributes())X.push(J.get($));return X.sort().join("|")}class lQ extends n1{init(){this.extensionName=PD,this.propertyType="Light",this.parentTypes=[s.NODE]}getDefaults(){return Object.assign(super.getDefaults(),{color:[1,1,1],intensity:1,type:lQ.Type.POINT,range:null,innerConeAngle:0,outerConeAngle:Math.PI/4})}getColor(){return this.get("color")}setColor(Z){return this.set("color",Z)}getIntensity(){return this.get("intensity")}setIntensity(Z){return this.set("intensity",Z)}getType(){return this.get("type")}setType(Z){return this.set("type",Z)}getRange(){return this.get("range")}setRange(Z){return this.set("range",Z)}getInnerConeAngle(){return this.get("innerConeAngle")}setInnerConeAngle(Z){return this.set("innerConeAngle",Z)}getOuterConeAngle(){return this.get("outerConeAngle")}setOuterConeAngle(Z){return this.set("outerConeAngle",Z)}}lQ.EXTENSION_NAME=PD;lQ.Type={POINT:"point",SPOT:"spot",DIRECTIONAL:"directional"};var K7=PD;class gD extends E1{constructor(...Z){super(...Z);this.extensionName=K7}createLight(Z=""){return new lQ(this.document.getGraph(),Z)}read(Z){let J=Z.jsonDoc;if(!J.json.extensions||!J.json.extensions[K7])return this;let $=(J.json.extensions[K7].lights||[]).map((Q)=>{var K,W;let G=this.createLight().setName(Q.name||"").setType(Q.type);if(Q.color!==void 0)G.setColor(Q.color);if(Q.intensity!==void 0)G.setIntensity(Q.intensity);if(Q.range!==void 0)G.setRange(Q.range);if(((K=Q.spot)==null?void 0:K.innerConeAngle)!==void 0)G.setInnerConeAngle(Q.spot.innerConeAngle);if(((W=Q.spot)==null?void 0:W.outerConeAngle)!==void 0)G.setOuterConeAngle(Q.spot.outerConeAngle);return G});return J.json.nodes.forEach((Q,K)=>{if(!Q.extensions||!Q.extensions[K7])return;let W=Q.extensions[K7];Z.nodes[K].setExtension(K7,$[W.light])}),this}write(Z){let J=Z.jsonDoc;if(this.properties.size===0)return this;let X=[],Y=new Map;for(let $ of this.properties){let Q=$,K={type:Q.getType()};if(!W8.eq(Q.getColor(),[1,1,1]))K.color=Q.getColor();if(Q.getIntensity()!==1)K.intensity=Q.getIntensity();if(Q.getRange()!=null)K.range=Q.getRange();if(Q.getName())K.name=Q.getName();if(Q.getType()===lQ.Type.SPOT)K.spot={innerConeAngle:Q.getInnerConeAngle(),outerConeAngle:Q.getOuterConeAngle()};X.push(K),Y.set(Q,X.length-1)}return this.document.getRoot().listNodes().forEach(($)=>{let Q=$.getExtension(K7);if(Q){let K=Z.nodeIndexMap.get($),W=J.json.nodes[K];W.extensions=W.extensions||{},W.extensions[K7]={light:Y.get(Q)}}}),J.json.extensions=J.json.extensions||{},J.json.extensions[K7]={lights:X},this}}gD.EXTENSION_NAME=K7;var{R:lL1,G:pL1,B:iL1}=n5;class mD extends n1{init(){this.extensionName=DD,this.propertyType="Anisotropy",this.parentTypes=[s.MATERIAL]}getDefaults(){return Object.assign(super.getDefaults(),{anisotropyStrength:0,anisotropyRotation:0,anisotropyTexture:null,anisotropyTextureInfo:new C1(this.graph,"anisotropyTextureInfo")})}getAnisotropyStrength(){return this.get("anisotropyStrength")}setAnisotropyStrength(Z){return this.set("anisotropyStrength",Z)}getAnisotropyRotation(){return this.get("anisotropyRotation")}setAnisotropyRotation(Z){return this.set("anisotropyRotation",Z)}getAnisotropyTexture(){return this.getRef("anisotropyTexture")}getAnisotropyTextureInfo(){return this.getRef("anisotropyTexture")?this.getRef("anisotropyTextureInfo"):null}setAnisotropyTexture(Z){return this.setRef("anisotropyTexture",Z,{channels:lL1|pL1|iL1})}}mD.EXTENSION_NAME=DD;var WY=DD;class uD extends E1{constructor(...Z){super(...Z);this.extensionName=WY,this.prereadTypes=[s.MESH],this.prewriteTypes=[s.MESH]}createAnisotropy(){return new mD(this.document.getGraph())}read(Z){return this}write(Z){return this}preread(Z){let J=Z.jsonDoc,X=J.json.materials||[],Y=J.json.textures||[];return X.forEach(($,Q)=>{if($.extensions&&$.extensions[WY]){let K=this.createAnisotropy();Z.materials[Q].setExtension(WY,K);let W=$.extensions[WY];if(W.anisotropyStrength!==void 0)K.setAnisotropyStrength(W.anisotropyStrength);if(W.anisotropyRotation!==void 0)K.setAnisotropyRotation(W.anisotropyRotation);if(W.anisotropyTexture!==void 0){let G=W.anisotropyTexture,z=Z.textures[Y[G.index].source];K.setAnisotropyTexture(z),Z.setTextureInfo(K.getAnisotropyTextureInfo(),G)}}}),this}prewrite(Z){let J=Z.jsonDoc;return this.document.getRoot().listMaterials().forEach((X)=>{let Y=X.getExtension(WY);if(Y){let $=Z.materialIndexMap.get(X),Q=J.json.materials[$];Q.extensions=Q.extensions||{};let K=Q.extensions[WY]={};if(Y.getAnisotropyStrength()>0)K.anisotropyStrength=Y.getAnisotropyStrength();if(Y.getAnisotropyRotation()!==0)K.anisotropyRotation=Y.getAnisotropyRotation();if(Y.getAnisotropyTexture()){let W=Y.getAnisotropyTexture(),G=Y.getAnisotropyTextureInfo();K.anisotropyTexture=Z.createTextureInfoDef(W,G)}}}),this}}uD.EXTENSION_NAME=WY;var{R:ti,G:ei,B:nL1}=n5;class dD extends n1{init(){this.extensionName=CD,this.propertyType="Clearcoat",this.parentTypes=[s.MATERIAL]}getDefaults(){return Object.assign(super.getDefaults(),{clearcoatFactor:0,clearcoatTexture:null,clearcoatTextureInfo:new C1(this.graph,"clearcoatTextureInfo"),clearcoatRoughnessFactor:0,clearcoatRoughnessTexture:null,clearcoatRoughnessTextureInfo:new C1(this.graph,"clearcoatRoughnessTextureInfo"),clearcoatNormalScale:1,clearcoatNormalTexture:null,clearcoatNormalTextureInfo:new C1(this.graph,"clearcoatNormalTextureInfo")})}getClearcoatFactor(){return this.get("clearcoatFactor")}setClearcoatFactor(Z){return this.set("clearcoatFactor",Z)}getClearcoatTexture(){return this.getRef("clearcoatTexture")}getClearcoatTextureInfo(){return this.getRef("clearcoatTexture")?this.getRef("clearcoatTextureInfo"):null}setClearcoatTexture(Z){return this.setRef("clearcoatTexture",Z,{channels:ti})}getClearcoatRoughnessFactor(){return this.get("clearcoatRoughnessFactor")}setClearcoatRoughnessFactor(Z){return this.set("clearcoatRoughnessFactor",Z)}getClearcoatRoughnessTexture(){return this.getRef("clearcoatRoughnessTexture")}getClearcoatRoughnessTextureInfo(){return this.getRef("clearcoatRoughnessTexture")?this.getRef("clearcoatRoughnessTextureInfo"):null}setClearcoatRoughnessTexture(Z){return this.setRef("clearcoatRoughnessTexture",Z,{channels:ei})}getClearcoatNormalScale(){return this.get("clearcoatNormalScale")}setClearcoatNormalScale(Z){return this.set("clearcoatNormalScale",Z)}getClearcoatNormalTexture(){return this.getRef("clearcoatNormalTexture")}getClearcoatNormalTextureInfo(){return this.getRef("clearcoatNormalTexture")?this.getRef("clearcoatNormalTextureInfo"):null}setClearcoatNormalTexture(Z){return this.setRef("clearcoatNormalTexture",Z,{channels:ti|ei|nL1})}}dD.EXTENSION_NAME=CD;var GY=CD;class cD extends E1{constructor(...Z){super(...Z);this.extensionName=GY,this.prereadTypes=[s.MESH],this.prewriteTypes=[s.MESH]}createClearcoat(){return new dD(this.document.getGraph())}read(Z){return this}write(Z){return this}preread(Z){let J=Z.jsonDoc,X=J.json.materials||[],Y=J.json.textures||[];return X.forEach(($,Q)=>{if($.extensions&&$.extensions[GY]){let K=this.createClearcoat();Z.materials[Q].setExtension(GY,K);let W=$.extensions[GY];if(W.clearcoatFactor!==void 0)K.setClearcoatFactor(W.clearcoatFactor);if(W.clearcoatRoughnessFactor!==void 0)K.setClearcoatRoughnessFactor(W.clearcoatRoughnessFactor);if(W.clearcoatTexture!==void 0){let G=W.clearcoatTexture,z=Z.textures[Y[G.index].source];K.setClearcoatTexture(z),Z.setTextureInfo(K.getClearcoatTextureInfo(),G)}if(W.clearcoatRoughnessTexture!==void 0){let G=W.clearcoatRoughnessTexture,z=Z.textures[Y[G.index].source];K.setClearcoatRoughnessTexture(z),Z.setTextureInfo(K.getClearcoatRoughnessTextureInfo(),G)}if(W.clearcoatNormalTexture!==void 0){let G=W.clearcoatNormalTexture,z=Z.textures[Y[G.index].source];if(K.setClearcoatNormalTexture(z),Z.setTextureInfo(K.getClearcoatNormalTextureInfo(),G),G.scale!==void 0)K.setClearcoatNormalScale(G.scale)}}}),this}prewrite(Z){let J=Z.jsonDoc;return this.document.getRoot().listMaterials().forEach((X)=>{let Y=X.getExtension(GY);if(Y){let $=Z.materialIndexMap.get(X),Q=J.json.materials[$];Q.extensions=Q.extensions||{};let K=Q.extensions[GY]={clearcoatFactor:Y.getClearcoatFactor(),clearcoatRoughnessFactor:Y.getClearcoatRoughnessFactor()};if(Y.getClearcoatTexture()){let W=Y.getClearcoatTexture(),G=Y.getClearcoatTextureInfo();K.clearcoatTexture=Z.createTextureInfoDef(W,G)}if(Y.getClearcoatRoughnessTexture()){let W=Y.getClearcoatRoughnessTexture(),G=Y.getClearcoatRoughnessTextureInfo();K.clearcoatRoughnessTexture=Z.createTextureInfoDef(W,G)}if(Y.getClearcoatNormalTexture()){let W=Y.getClearcoatNormalTexture(),G=Y.getClearcoatNormalTextureInfo();if(K.clearcoatNormalTexture=Z.createTextureInfoDef(W,G),Y.getClearcoatNormalScale()!==1)K.clearcoatNormalTexture.scale=Y.getClearcoatNormalScale()}}}),this}}cD.EXTENSION_NAME=GY;var{R:aL1,G:sL1,B:oL1,A:rL1}=n5;class lD extends n1{init(){this.extensionName=TD,this.propertyType="DiffuseTransmission",this.parentTypes=[s.MATERIAL]}getDefaults(){return Object.assign(super.getDefaults(),{diffuseTransmissionFactor:0,diffuseTransmissionTexture:null,diffuseTransmissionTextureInfo:new C1(this.graph,"diffuseTransmissionTextureInfo"),diffuseTransmissionColorFactor:[1,1,1],diffuseTransmissionColorTexture:null,diffuseTransmissionColorTextureInfo:new C1(this.graph,"diffuseTransmissionColorTextureInfo")})}getDiffuseTransmissionFactor(){return this.get("diffuseTransmissionFactor")}setDiffuseTransmissionFactor(Z){return this.set("diffuseTransmissionFactor",Z)}getDiffuseTransmissionTexture(){return this.getRef("diffuseTransmissionTexture")}getDiffuseTransmissionTextureInfo(){return this.getRef("diffuseTransmissionTexture")?this.getRef("diffuseTransmissionTextureInfo"):null}setDiffuseTransmissionTexture(Z){return this.setRef("diffuseTransmissionTexture",Z,{channels:rL1})}getDiffuseTransmissionColorFactor(){return this.get("diffuseTransmissionColorFactor")}setDiffuseTransmissionColorFactor(Z){return this.set("diffuseTransmissionColorFactor",Z)}getDiffuseTransmissionColorTexture(){return this.getRef("diffuseTransmissionColorTexture")}getDiffuseTransmissionColorTextureInfo(){return this.getRef("diffuseTransmissionColorTexture")?this.getRef("diffuseTransmissionColorTextureInfo"):null}setDiffuseTransmissionColorTexture(Z){return this.setRef("diffuseTransmissionColorTexture",Z,{channels:aL1|sL1|oL1})}}lD.EXTENSION_NAME=TD;var zY=TD;class pD extends E1{constructor(...Z){super(...Z);this.extensionName=zY}createDiffuseTransmission(){return new lD(this.document.getGraph())}read(Z){let J=Z.jsonDoc,X=J.json.materials||[],Y=J.json.textures||[];return X.forEach(($,Q)=>{if($.extensions&&$.extensions[zY]){let K=this.createDiffuseTransmission();Z.materials[Q].setExtension(zY,K);let W=$.extensions[zY];if(W.diffuseTransmissionFactor!==void 0)K.setDiffuseTransmissionFactor(W.diffuseTransmissionFactor);if(W.diffuseTransmissionColorFactor!==void 0)K.setDiffuseTransmissionColorFactor(W.diffuseTransmissionColorFactor);if(W.diffuseTransmissionTexture!==void 0){let G=W.diffuseTransmissionTexture,z=Z.textures[Y[G.index].source];K.setDiffuseTransmissionTexture(z),Z.setTextureInfo(K.getDiffuseTransmissionTextureInfo(),G)}if(W.diffuseTransmissionColorTexture!==void 0){let G=W.diffuseTransmissionColorTexture,z=Z.textures[Y[G.index].source];K.setDiffuseTransmissionColorTexture(z),Z.setTextureInfo(K.getDiffuseTransmissionColorTextureInfo(),G)}}}),this}write(Z){let J=Z.jsonDoc;for(let X of this.document.getRoot().listMaterials()){let Y=X.getExtension(zY);if(!Y)continue;let $=Z.materialIndexMap.get(X),Q=J.json.materials[$];Q.extensions=Q.extensions||{};let K=Q.extensions[zY]={diffuseTransmissionFactor:Y.getDiffuseTransmissionFactor(),diffuseTransmissionColorFactor:Y.getDiffuseTransmissionColorFactor()};if(Y.getDiffuseTransmissionTexture()){let W=Y.getDiffuseTransmissionTexture(),G=Y.getDiffuseTransmissionTextureInfo();K.diffuseTransmissionTexture=Z.createTextureInfoDef(W,G)}if(Y.getDiffuseTransmissionColorTexture()){let W=Y.getDiffuseTransmissionColorTexture(),G=Y.getDiffuseTransmissionColorTextureInfo();K.diffuseTransmissionColorTexture=Z.createTextureInfoDef(W,G)}}return this}}pD.EXTENSION_NAME=zY;class iD extends n1{init(){this.extensionName=kD,this.propertyType="Dispersion",this.parentTypes=[s.MATERIAL]}getDefaults(){return Object.assign(super.getDefaults(),{dispersion:0})}getDispersion(){return this.get("dispersion")}setDispersion(Z){return this.set("dispersion",Z)}}iD.EXTENSION_NAME=kD;var VY=kD;class nD extends E1{constructor(...Z){super(...Z);this.extensionName=VY,this.prereadTypes=[s.MESH],this.prewriteTypes=[s.MESH]}createDispersion(){return new iD(this.document.getGraph())}read(Z){return this}write(Z){return this}preread(Z){return(Z.jsonDoc.json.materials||[]).forEach((Y,$)=>{if(Y.extensions&&Y.extensions[VY]){let Q=this.createDispersion();Z.materials[$].setExtension(VY,Q);let K=Y.extensions[VY];if(K.dispersion!==void 0)Q.setDispersion(K.dispersion)}}),this}prewrite(Z){let J=Z.jsonDoc;return this.document.getRoot().listMaterials().forEach((X)=>{let Y=X.getExtension(VY);if(Y){let $=Z.materialIndexMap.get(X),Q=J.json.materials[$];Q.extensions=Q.extensions||{},Q.extensions[VY]={dispersion:Y.getDispersion()}}}),this}}nD.EXTENSION_NAME=VY;class aD extends n1{init(){this.extensionName=ED,this.propertyType="EmissiveStrength",this.parentTypes=[s.MATERIAL]}getDefaults(){return Object.assign(super.getDefaults(),{emissiveStrength:1})}getEmissiveStrength(){return this.get("emissiveStrength")}setEmissiveStrength(Z){return this.set("emissiveStrength",Z)}}aD.EXTENSION_NAME=ED;var HY=ED;class sD extends E1{constructor(...Z){super(...Z);this.extensionName=HY,this.prereadTypes=[s.MESH],this.prewriteTypes=[s.MESH]}createEmissiveStrength(){return new aD(this.document.getGraph())}read(Z){return this}write(Z){return this}preread(Z){return(Z.jsonDoc.json.materials||[]).forEach((Y,$)=>{if(Y.extensions&&Y.extensions[HY]){let Q=this.createEmissiveStrength();Z.materials[$].setExtension(HY,Q);let K=Y.extensions[HY];if(K.emissiveStrength!==void 0)Q.setEmissiveStrength(K.emissiveStrength)}}),this}prewrite(Z){let J=Z.jsonDoc;return this.document.getRoot().listMaterials().forEach((X)=>{let Y=X.getExtension(HY);if(Y){let $=Z.materialIndexMap.get(X),Q=J.json.materials[$];Q.extensions=Q.extensions||{},Q.extensions[HY]={emissiveStrength:Y.getEmissiveStrength()}}}),this}}sD.EXTENSION_NAME=HY;class oD extends n1{init(){this.extensionName=ID,this.propertyType="IOR",this.parentTypes=[s.MATERIAL]}getDefaults(){return Object.assign(super.getDefaults(),{ior:1.5})}getIOR(){return this.get("ior")}setIOR(Z){return this.set("ior",Z)}}oD.EXTENSION_NAME=ID;var qY=ID;class I2 extends E1{constructor(...Z){super(...Z);this.extensionName=qY,this.prereadTypes=[s.MESH],this.prewriteTypes=[s.MESH]}createIOR(){return new oD(this.document.getGraph())}read(Z){return this}write(Z){return this}preread(Z){return(Z.jsonDoc.json.materials||[]).forEach((Y,$)=>{if(Y.extensions&&Y.extensions[qY]){let Q=this.createIOR();Z.materials[$].setExtension(qY,Q);let K=Y.extensions[qY];if(K.ior!==void 0)Q.setIOR(K.ior)}}),this}prewrite(Z){let J=Z.jsonDoc;return this.document.getRoot().listMaterials().forEach((X)=>{let Y=X.getExtension(qY);if(Y){let $=Z.materialIndexMap.get(X),Q=J.json.materials[$];Q.extensions=Q.extensions||{},Q.extensions[qY]={ior:Y.getIOR()}}}),this}}I2.EXTENSION_NAME=qY;var{R:tL1,G:eL1}=n5;class rD extends n1{init(){this.extensionName=vD,this.propertyType="Iridescence",this.parentTypes=[s.MATERIAL]}getDefaults(){return Object.assign(super.getDefaults(),{iridescenceFactor:0,iridescenceTexture:null,iridescenceTextureInfo:new C1(this.graph,"iridescenceTextureInfo"),iridescenceIOR:1.3,iridescenceThicknessMinimum:100,iridescenceThicknessMaximum:400,iridescenceThicknessTexture:null,iridescenceThicknessTextureInfo:new C1(this.graph,"iridescenceThicknessTextureInfo")})}getIridescenceFactor(){return this.get("iridescenceFactor")}setIridescenceFactor(Z){return this.set("iridescenceFactor",Z)}getIridescenceTexture(){return this.getRef("iridescenceTexture")}getIridescenceTextureInfo(){return this.getRef("iridescenceTexture")?this.getRef("iridescenceTextureInfo"):null}setIridescenceTexture(Z){return this.setRef("iridescenceTexture",Z,{channels:tL1})}getIridescenceIOR(){return this.get("iridescenceIOR")}setIridescenceIOR(Z){return this.set("iridescenceIOR",Z)}getIridescenceThicknessMinimum(){return this.get("iridescenceThicknessMinimum")}setIridescenceThicknessMinimum(Z){return this.set("iridescenceThicknessMinimum",Z)}getIridescenceThicknessMaximum(){return this.get("iridescenceThicknessMaximum")}setIridescenceThicknessMaximum(Z){return this.set("iridescenceThicknessMaximum",Z)}getIridescenceThicknessTexture(){return this.getRef("iridescenceThicknessTexture")}getIridescenceThicknessTextureInfo(){return this.getRef("iridescenceThicknessTexture")?this.getRef("iridescenceThicknessTextureInfo"):null}setIridescenceThicknessTexture(Z){return this.setRef("iridescenceThicknessTexture",Z,{channels:eL1})}}rD.EXTENSION_NAME=vD;var FY=vD;class tD extends E1{constructor(...Z){super(...Z);this.extensionName=FY,this.prereadTypes=[s.MESH],this.prewriteTypes=[s.MESH]}createIridescence(){return new rD(this.document.getGraph())}read(Z){return this}write(Z){return this}preread(Z){let J=Z.jsonDoc,X=J.json.materials||[],Y=J.json.textures||[];return X.forEach(($,Q)=>{if($.extensions&&$.extensions[FY]){let K=this.createIridescence();Z.materials[Q].setExtension(FY,K);let W=$.extensions[FY];if(W.iridescenceFactor!==void 0)K.setIridescenceFactor(W.iridescenceFactor);if(W.iridescenceIor!==void 0)K.setIridescenceIOR(W.iridescenceIor);if(W.iridescenceThicknessMinimum!==void 0)K.setIridescenceThicknessMinimum(W.iridescenceThicknessMinimum);if(W.iridescenceThicknessMaximum!==void 0)K.setIridescenceThicknessMaximum(W.iridescenceThicknessMaximum);if(W.iridescenceTexture!==void 0){let G=W.iridescenceTexture,z=Z.textures[Y[G.index].source];K.setIridescenceTexture(z),Z.setTextureInfo(K.getIridescenceTextureInfo(),G)}if(W.iridescenceThicknessTexture!==void 0){let G=W.iridescenceThicknessTexture,z=Z.textures[Y[G.index].source];K.setIridescenceThicknessTexture(z),Z.setTextureInfo(K.getIridescenceThicknessTextureInfo(),G)}}}),this}prewrite(Z){let J=Z.jsonDoc;return this.document.getRoot().listMaterials().forEach((X)=>{let Y=X.getExtension(FY);if(Y){let $=Z.materialIndexMap.get(X),Q=J.json.materials[$];Q.extensions=Q.extensions||{};let K=Q.extensions[FY]={};if(Y.getIridescenceFactor()>0)K.iridescenceFactor=Y.getIridescenceFactor();if(Y.getIridescenceIOR()!==1.3)K.iridescenceIor=Y.getIridescenceIOR();if(Y.getIridescenceThicknessMinimum()!==100)K.iridescenceThicknessMinimum=Y.getIridescenceThicknessMinimum();if(Y.getIridescenceThicknessMaximum()!==400)K.iridescenceThicknessMaximum=Y.getIridescenceThicknessMaximum();if(Y.getIridescenceTexture()){let W=Y.getIridescenceTexture(),G=Y.getIridescenceTextureInfo();K.iridescenceTexture=Z.createTextureInfoDef(W,G)}if(Y.getIridescenceThicknessTexture()){let W=Y.getIridescenceThicknessTexture(),G=Y.getIridescenceThicknessTextureInfo();K.iridescenceThicknessTexture=Z.createTextureInfoDef(W,G)}}}),this}}tD.EXTENSION_NAME=FY;var{R:Zn,G:Jn,B:Xn,A:Yn}=n5;class eD extends n1{init(){this.extensionName=SD,this.propertyType="PBRSpecularGlossiness",this.parentTypes=[s.MATERIAL]}getDefaults(){return Object.assign(super.getDefaults(),{diffuseFactor:[1,1,1,1],diffuseTexture:null,diffuseTextureInfo:new C1(this.graph,"diffuseTextureInfo"),specularFactor:[1,1,1],glossinessFactor:1,specularGlossinessTexture:null,specularGlossinessTextureInfo:new C1(this.graph,"specularGlossinessTextureInfo")})}getDiffuseFactor(){return this.get("diffuseFactor")}setDiffuseFactor(Z){return this.set("diffuseFactor",Z)}getDiffuseTexture(){return this.getRef("diffuseTexture")}getDiffuseTextureInfo(){return this.getRef("diffuseTexture")?this.getRef("diffuseTextureInfo"):null}setDiffuseTexture(Z){return this.setRef("diffuseTexture",Z,{channels:Zn|Jn|Xn|Yn,isColor:!0})}getSpecularFactor(){return this.get("specularFactor")}setSpecularFactor(Z){return this.set("specularFactor",Z)}getGlossinessFactor(){return this.get("glossinessFactor")}setGlossinessFactor(Z){return this.set("glossinessFactor",Z)}getSpecularGlossinessTexture(){return this.getRef("specularGlossinessTexture")}getSpecularGlossinessTextureInfo(){return this.getRef("specularGlossinessTexture")?this.getRef("specularGlossinessTextureInfo"):null}setSpecularGlossinessTexture(Z){return this.setRef("specularGlossinessTexture",Z,{channels:Zn|Jn|Xn|Yn})}}eD.EXTENSION_NAME=SD;var UY=SD;class v2 extends E1{constructor(...Z){super(...Z);this.extensionName=UY,this.prereadTypes=[s.MESH],this.prewriteTypes=[s.MESH]}createPBRSpecularGlossiness(){return new eD(this.document.getGraph())}read(Z){return this}write(Z){return this}preread(Z){let J=Z.jsonDoc,X=J.json.materials||[],Y=J.json.textures||[];return X.forEach(($,Q)=>{if($.extensions&&$.extensions[UY]){let K=this.createPBRSpecularGlossiness();Z.materials[Q].setExtension(UY,K);let W=$.extensions[UY];if(W.diffuseFactor!==void 0)K.setDiffuseFactor(W.diffuseFactor);if(W.specularFactor!==void 0)K.setSpecularFactor(W.specularFactor);if(W.glossinessFactor!==void 0)K.setGlossinessFactor(W.glossinessFactor);if(W.diffuseTexture!==void 0){let G=W.diffuseTexture,z=Z.textures[Y[G.index].source];K.setDiffuseTexture(z),Z.setTextureInfo(K.getDiffuseTextureInfo(),G)}if(W.specularGlossinessTexture!==void 0){let G=W.specularGlossinessTexture,z=Z.textures[Y[G.index].source];K.setSpecularGlossinessTexture(z),Z.setTextureInfo(K.getSpecularGlossinessTextureInfo(),G)}}}),this}prewrite(Z){let J=Z.jsonDoc;return this.document.getRoot().listMaterials().forEach((X)=>{let Y=X.getExtension(UY);if(Y){let $=Z.materialIndexMap.get(X),Q=J.json.materials[$];Q.extensions=Q.extensions||{};let K=Q.extensions[UY]={diffuseFactor:Y.getDiffuseFactor(),specularFactor:Y.getSpecularFactor(),glossinessFactor:Y.getGlossinessFactor()};if(Y.getDiffuseTexture()){let W=Y.getDiffuseTexture(),G=Y.getDiffuseTextureInfo();K.diffuseTexture=Z.createTextureInfoDef(W,G)}if(Y.getSpecularGlossinessTexture()){let W=Y.getSpecularGlossinessTexture(),G=Y.getSpecularGlossinessTextureInfo();K.specularGlossinessTexture=Z.createTextureInfoDef(W,G)}}}),this}}v2.EXTENSION_NAME=UY;var{R:Zw1,G:Jw1,B:Xw1,A:Yw1}=n5;class ZC extends n1{init(){this.extensionName=_D,this.propertyType="Sheen",this.parentTypes=[s.MATERIAL]}getDefaults(){return Object.assign(super.getDefaults(),{sheenColorFactor:[0,0,0],sheenColorTexture:null,sheenColorTextureInfo:new C1(this.graph,"sheenColorTextureInfo"),sheenRoughnessFactor:0,sheenRoughnessTexture:null,sheenRoughnessTextureInfo:new C1(this.graph,"sheenRoughnessTextureInfo")})}getSheenColorFactor(){return this.get("sheenColorFactor")}setSheenColorFactor(Z){return this.set("sheenColorFactor",Z)}getSheenColorTexture(){return this.getRef("sheenColorTexture")}getSheenColorTextureInfo(){return this.getRef("sheenColorTexture")?this.getRef("sheenColorTextureInfo"):null}setSheenColorTexture(Z){return this.setRef("sheenColorTexture",Z,{channels:Zw1|Jw1|Xw1,isColor:!0})}getSheenRoughnessFactor(){return this.get("sheenRoughnessFactor")}setSheenRoughnessFactor(Z){return this.set("sheenRoughnessFactor",Z)}getSheenRoughnessTexture(){return this.getRef("sheenRoughnessTexture")}getSheenRoughnessTextureInfo(){return this.getRef("sheenRoughnessTexture")?this.getRef("sheenRoughnessTextureInfo"):null}setSheenRoughnessTexture(Z){return this.setRef("sheenRoughnessTexture",Z,{channels:Yw1})}}ZC.EXTENSION_NAME=_D;var LY=_D;class JC extends E1{constructor(...Z){super(...Z);this.extensionName=LY,this.prereadTypes=[s.MESH],this.prewriteTypes=[s.MESH]}createSheen(){return new ZC(this.document.getGraph())}read(Z){return this}write(Z){return this}preread(Z){let J=Z.jsonDoc,X=J.json.materials||[],Y=J.json.textures||[];return X.forEach(($,Q)=>{if($.extensions&&$.extensions[LY]){let K=this.createSheen();Z.materials[Q].setExtension(LY,K);let W=$.extensions[LY];if(W.sheenColorFactor!==void 0)K.setSheenColorFactor(W.sheenColorFactor);if(W.sheenRoughnessFactor!==void 0)K.setSheenRoughnessFactor(W.sheenRoughnessFactor);if(W.sheenColorTexture!==void 0){let G=W.sheenColorTexture,z=Z.textures[Y[G.index].source];K.setSheenColorTexture(z),Z.setTextureInfo(K.getSheenColorTextureInfo(),G)}if(W.sheenRoughnessTexture!==void 0){let G=W.sheenRoughnessTexture,z=Z.textures[Y[G.index].source];K.setSheenRoughnessTexture(z),Z.setTextureInfo(K.getSheenRoughnessTextureInfo(),G)}}}),this}prewrite(Z){let J=Z.jsonDoc;return this.document.getRoot().listMaterials().forEach((X)=>{let Y=X.getExtension(LY);if(Y){let $=Z.materialIndexMap.get(X),Q=J.json.materials[$];Q.extensions=Q.extensions||{};let K=Q.extensions[LY]={sheenColorFactor:Y.getSheenColorFactor(),sheenRoughnessFactor:Y.getSheenRoughnessFactor()};if(Y.getSheenColorTexture()){let W=Y.getSheenColorTexture(),G=Y.getSheenColorTextureInfo();K.sheenColorTexture=Z.createTextureInfoDef(W,G)}if(Y.getSheenRoughnessTexture()){let W=Y.getSheenRoughnessTexture(),G=Y.getSheenRoughnessTextureInfo();K.sheenRoughnessTexture=Z.createTextureInfoDef(W,G)}}}),this}}JC.EXTENSION_NAME=LY;var{R:$w1,G:Qw1,B:Kw1,A:Ww1}=n5;class XC extends n1{init(){this.extensionName=AD,this.propertyType="Specular",this.parentTypes=[s.MATERIAL]}getDefaults(){return Object.assign(super.getDefaults(),{specularFactor:1,specularTexture:null,specularTextureInfo:new C1(this.graph,"specularTextureInfo"),specularColorFactor:[1,1,1],specularColorTexture:null,specularColorTextureInfo:new C1(this.graph,"specularColorTextureInfo")})}getSpecularFactor(){return this.get("specularFactor")}setSpecularFactor(Z){return this.set("specularFactor",Z)}getSpecularColorFactor(){return this.get("specularColorFactor")}setSpecularColorFactor(Z){return this.set("specularColorFactor",Z)}getSpecularTexture(){return this.getRef("specularTexture")}getSpecularTextureInfo(){return this.getRef("specularTexture")?this.getRef("specularTextureInfo"):null}setSpecularTexture(Z){return this.setRef("specularTexture",Z,{channels:Ww1})}getSpecularColorTexture(){return this.getRef("specularColorTexture")}getSpecularColorTextureInfo(){return this.getRef("specularColorTexture")?this.getRef("specularColorTextureInfo"):null}setSpecularColorTexture(Z){return this.setRef("specularColorTexture",Z,{channels:$w1|Qw1|Kw1,isColor:!0})}}XC.EXTENSION_NAME=AD;var wY=AD;class S2 extends E1{constructor(...Z){super(...Z);this.extensionName=wY,this.prereadTypes=[s.MESH],this.prewriteTypes=[s.MESH]}createSpecular(){return new XC(this.document.getGraph())}read(Z){return this}write(Z){return this}preread(Z){let J=Z.jsonDoc,X=J.json.materials||[],Y=J.json.textures||[];return X.forEach(($,Q)=>{if($.extensions&&$.extensions[wY]){let K=this.createSpecular();Z.materials[Q].setExtension(wY,K);let W=$.extensions[wY];if(W.specularFactor!==void 0)K.setSpecularFactor(W.specularFactor);if(W.specularColorFactor!==void 0)K.setSpecularColorFactor(W.specularColorFactor);if(W.specularTexture!==void 0){let G=W.specularTexture,z=Z.textures[Y[G.index].source];K.setSpecularTexture(z),Z.setTextureInfo(K.getSpecularTextureInfo(),G)}if(W.specularColorTexture!==void 0){let G=W.specularColorTexture,z=Z.textures[Y[G.index].source];K.setSpecularColorTexture(z),Z.setTextureInfo(K.getSpecularColorTextureInfo(),G)}}}),this}prewrite(Z){let J=Z.jsonDoc;return this.document.getRoot().listMaterials().forEach((X)=>{let Y=X.getExtension(wY);if(Y){let $=Z.materialIndexMap.get(X),Q=J.json.materials[$];Q.extensions=Q.extensions||{};let K=Q.extensions[wY]={};if(Y.getSpecularFactor()!==1)K.specularFactor=Y.getSpecularFactor();if(!W8.eq(Y.getSpecularColorFactor(),[1,1,1]))K.specularColorFactor=Y.getSpecularColorFactor();if(Y.getSpecularTexture()){let W=Y.getSpecularTexture(),G=Y.getSpecularTextureInfo();K.specularTexture=Z.createTextureInfoDef(W,G)}if(Y.getSpecularColorTexture()){let W=Y.getSpecularColorTexture(),G=Y.getSpecularColorTextureInfo();K.specularColorTexture=Z.createTextureInfoDef(W,G)}}}),this}}S2.EXTENSION_NAME=wY;var{R:Gw1}=n5;class YC extends n1{init(){this.extensionName=xD,this.propertyType="Transmission",this.parentTypes=[s.MATERIAL]}getDefaults(){return Object.assign(super.getDefaults(),{transmissionFactor:0,transmissionTexture:null,transmissionTextureInfo:new C1(this.graph,"transmissionTextureInfo")})}getTransmissionFactor(){return this.get("transmissionFactor")}setTransmissionFactor(Z){return this.set("transmissionFactor",Z)}getTransmissionTexture(){return this.getRef("transmissionTexture")}getTransmissionTextureInfo(){return this.getRef("transmissionTexture")?this.getRef("transmissionTextureInfo"):null}setTransmissionTexture(Z){return this.setRef("transmissionTexture",Z,{channels:Gw1})}}YC.EXTENSION_NAME=xD;var BY=xD;class $C extends E1{constructor(...Z){super(...Z);this.extensionName=BY,this.prereadTypes=[s.MESH],this.prewriteTypes=[s.MESH]}createTransmission(){return new YC(this.document.getGraph())}read(Z){return this}write(Z){return this}preread(Z){let J=Z.jsonDoc,X=J.json.materials||[],Y=J.json.textures||[];return X.forEach(($,Q)=>{if($.extensions&&$.extensions[BY]){let K=this.createTransmission();Z.materials[Q].setExtension(BY,K);let W=$.extensions[BY];if(W.transmissionFactor!==void 0)K.setTransmissionFactor(W.transmissionFactor);if(W.transmissionTexture!==void 0){let G=W.transmissionTexture,z=Z.textures[Y[G.index].source];K.setTransmissionTexture(z),Z.setTextureInfo(K.getTransmissionTextureInfo(),G)}}}),this}prewrite(Z){let J=Z.jsonDoc;return this.document.getRoot().listMaterials().forEach((X)=>{let Y=X.getExtension(BY);if(Y){let $=Z.materialIndexMap.get(X),Q=J.json.materials[$];Q.extensions=Q.extensions||{};let K=Q.extensions[BY]={transmissionFactor:Y.getTransmissionFactor()};if(Y.getTransmissionTexture()){let W=Y.getTransmissionTexture(),G=Y.getTransmissionTextureInfo();K.transmissionTexture=Z.createTextureInfoDef(W,G)}}}),this}}$C.EXTENSION_NAME=BY;class QC extends n1{init(){this.extensionName=hD,this.propertyType="Unlit",this.parentTypes=[s.MATERIAL]}}QC.EXTENSION_NAME=hD;var dQ=hD;class _2 extends E1{constructor(...Z){super(...Z);this.extensionName=dQ,this.prereadTypes=[s.MESH],this.prewriteTypes=[s.MESH]}createUnlit(){return new QC(this.document.getGraph())}read(Z){return this}write(Z){return this}preread(Z){return(Z.jsonDoc.json.materials||[]).forEach((X,Y)=>{if(X.extensions&&X.extensions[dQ])Z.materials[Y].setExtension(dQ,this.createUnlit())}),this}prewrite(Z){let J=Z.jsonDoc;return this.document.getRoot().listMaterials().forEach((X)=>{if(X.getExtension(dQ)){let Y=Z.materialIndexMap.get(X),$=J.json.materials[Y];$.extensions=$.extensions||{},$.extensions[dQ]={}}}),this}}_2.EXTENSION_NAME=dQ;class KC extends n1{init(){this.extensionName=MY,this.propertyType="Mapping",this.parentTypes=["MappingList"]}getDefaults(){return Object.assign(super.getDefaults(),{material:null,variants:new P0})}getMaterial(){return this.getRef("material")}setMaterial(Z){return this.setRef("material",Z)}addVariant(Z){return this.addRef("variants",Z)}removeVariant(Z){return this.removeRef("variants",Z)}listVariants(){return this.listRefs("variants")}}KC.EXTENSION_NAME=MY;class WC extends n1{init(){this.extensionName=MY,this.propertyType="MappingList",this.parentTypes=[s.PRIMITIVE]}getDefaults(){return Object.assign(super.getDefaults(),{mappings:new P0})}addMapping(Z){return this.addRef("mappings",Z)}removeMapping(Z){return this.removeRef("mappings",Z)}listMappings(){return this.listRefs("mappings")}}WC.EXTENSION_NAME=MY;class C2 extends n1{init(){this.extensionName=MY,this.propertyType="Variant",this.parentTypes=["MappingList"]}}C2.EXTENSION_NAME=MY;var W7=MY;class GC extends E1{constructor(...Z){super(...Z);this.extensionName=W7}createMappingList(){return new WC(this.document.getGraph())}createVariant(Z=""){return new C2(this.document.getGraph(),Z)}createMapping(){return new KC(this.document.getGraph())}listVariants(){return Array.from(this.properties).filter((Z)=>Z instanceof C2)}read(Z){let J=Z.jsonDoc;if(!J.json.extensions||!J.json.extensions[W7])return this;let $=(J.json.extensions[W7].variants||[]).map((K)=>this.createVariant().setName(K.name||""));return(J.json.meshes||[]).forEach((K,W)=>{let G=Z.meshes[W];(K.primitives||[]).forEach((V,H)=>{if(!V.extensions||!V.extensions[W7])return;let q=this.createMappingList(),F=V.extensions[W7];for(let U of F.mappings){let w=this.createMapping();if(U.material!==void 0)w.setMaterial(Z.materials[U.material]);for(let L of U.variants||[])w.addVariant($[L]);q.addMapping(w)}G.listPrimitives()[H].setExtension(W7,q)})}),this}write(Z){let J=Z.jsonDoc,X=this.listVariants();if(!X.length)return this;let Y=[],$=new Map;for(let Q of X)$.set(Q,Y.length),Y.push(Z.createPropertyDef(Q));for(let Q of this.document.getRoot().listMeshes()){let K=Z.meshIndexMap.get(Q);Q.listPrimitives().forEach((W,G)=>{let z=W.getExtension(W7);if(!z)return;let V=Z.jsonDoc.json.meshes[K].primitives[G],H=z.listMappings().map((q)=>{let F=Z.createPropertyDef(q),U=q.getMaterial();if(U)F.material=Z.materialIndexMap.get(U);return F.variants=q.listVariants().map((w)=>$.get(w)),F});V.extensions=V.extensions||{},V.extensions[W7]={mappings:H}})}return J.json.extensions=J.json.extensions||{},J.json.extensions[W7]={variants:Y},this}}GC.EXTENSION_NAME=W7;var{G:zw1}=n5;class zC extends n1{init(){this.extensionName=fD,this.propertyType="Volume",this.parentTypes=[s.MATERIAL]}getDefaults(){return Object.assign(super.getDefaults(),{thicknessFactor:0,thicknessTexture:null,thicknessTextureInfo:new C1(this.graph,"thicknessTexture"),attenuationDistance:1/0,attenuationColor:[1,1,1]})}getThicknessFactor(){return this.get("thicknessFactor")}setThicknessFactor(Z){return this.set("thicknessFactor",Z)}getThicknessTexture(){return this.getRef("thicknessTexture")}getThicknessTextureInfo(){return this.getRef("thicknessTexture")?this.getRef("thicknessTextureInfo"):null}setThicknessTexture(Z){return this.setRef("thicknessTexture",Z,{channels:zw1})}getAttenuationDistance(){return this.get("attenuationDistance")}setAttenuationDistance(Z){return this.set("attenuationDistance",Z)}getAttenuationColor(){return this.get("attenuationColor")}setAttenuationColor(Z){return this.set("attenuationColor",Z)}}zC.EXTENSION_NAME=fD;var jY=fD;class VC extends E1{constructor(...Z){super(...Z);this.extensionName=jY,this.prereadTypes=[s.MESH],this.prewriteTypes=[s.MESH]}createVolume(){return new zC(this.document.getGraph())}read(Z){return this}write(Z){return this}preread(Z){let J=Z.jsonDoc,X=J.json.materials||[],Y=J.json.textures||[];return X.forEach(($,Q)=>{if($.extensions&&$.extensions[jY]){let K=this.createVolume();Z.materials[Q].setExtension(jY,K);let W=$.extensions[jY];if(W.thicknessFactor!==void 0)K.setThicknessFactor(W.thicknessFactor);if(W.attenuationDistance!==void 0)K.setAttenuationDistance(W.attenuationDistance);if(W.attenuationColor!==void 0)K.setAttenuationColor(W.attenuationColor);if(W.thicknessTexture!==void 0){let G=W.thicknessTexture,z=Z.textures[Y[G.index].source];K.setThicknessTexture(z),Z.setTextureInfo(K.getThicknessTextureInfo(),G)}}}),this}prewrite(Z){let J=Z.jsonDoc;return this.document.getRoot().listMaterials().forEach((X)=>{let Y=X.getExtension(jY);if(Y){let $=Z.materialIndexMap.get(X),Q=J.json.materials[$];Q.extensions=Q.extensions||{};let K=Q.extensions[jY]={};if(Y.getThicknessFactor()>0)K.thicknessFactor=Y.getThicknessFactor();if(Number.isFinite(Y.getAttenuationDistance()))K.attenuationDistance=Y.getAttenuationDistance();if(!W8.eq(Y.getAttenuationColor(),[1,1,1]))K.attenuationColor=Y.getAttenuationColor();if(Y.getThicknessTexture()){let W=Y.getThicknessTexture(),G=Y.getThicknessTextureInfo();K.thicknessTexture=Z.createTextureInfoDef(W,G)}}}),this}}VC.EXTENSION_NAME=jY;var Hn=DL1;class TG extends E1{constructor(...Z){super(...Z);this.extensionName=Hn}read(Z){return this}write(Z){return this}}TG.EXTENSION_NAME=Hn;var RG=CL1;class qn{match(Z){return Z[0]===171&&Z[1]===75&&Z[2]===84&&Z[3]===88&&Z[4]===32&&Z[5]===50&&Z[6]===48&&Z[7]===187&&Z[8]===13&&Z[9]===10&&Z[10]===26&&Z[11]===10}getSize(Z){let J=N2(Z);return[J.pixelWidth,J.pixelHeight]}getChannels(Z){let X=N2(Z).dataFormatDescriptor[0];if(X.colorModel===ci)return X.samples.length===2&&(X.samples[1].channelType&15)===15?4:3;else if(X.colorModel===li)return(X.samples[0].channelType&15)===3?4:3;throw new Error(`Unexpected KTX2 colorModel, "${X.colorModel}".`)}getVRAMByteLength(Z){let J=N2(Z),X=this.getChannels(Z)>3,Y=0;for(let $=0;$<J.levels.length;$++){let Q=J.levels[$];if(Q.uncompressedByteLength)Y+=Q.uncompressedByteLength;else{let K=Math.max(1,Math.floor(J.pixelWidth/Math.pow(2,$))),W=Math.max(1,Math.floor(J.pixelHeight/Math.pow(2,$))),G=X?16:8;Y+=K/4*(W/4)*G}}return Y}}class HC extends E1{constructor(...Z){super(...Z);this.extensionName=RG,this.prereadTypes=[s.TEXTURE]}static register(){V4.registerFormat("image/ktx2",new qn)}preread(Z){return Z.jsonDoc.json.textures.forEach((J)=>{if(J.extensions&&J.extensions[RG]){let X=J.extensions[RG];J.source=X.source}}),this}read(Z){return this}write(Z){let J=Z.jsonDoc;return this.document.getRoot().listTextures().forEach((X)=>{if(X.getMimeType()==="image/ktx2"){let Y=Z.imageIndexMap.get(X);J.json.textures.forEach(($)=>{if($.source===Y)$.extensions=$.extensions||{},$.extensions[RG]={source:$.source},delete $.source})}}),this}}HC.EXTENSION_NAME=RG;class qC extends n1{init(){this.extensionName=bD,this.propertyType="Transform",this.parentTypes=[s.TEXTURE_INFO]}getDefaults(){return Object.assign(super.getDefaults(),{offset:[0,0],rotation:0,scale:[1,1],texCoord:null})}getOffset(){return this.get("offset")}setOffset(Z){return this.set("offset",Z)}getRotation(){return this.get("rotation")}setRotation(Z){return this.set("rotation",Z)}getScale(){return this.get("scale")}setScale(Z){return this.set("scale",Z)}getTexCoord(){return this.get("texCoord")}setTexCoord(Z){return this.set("texCoord",Z)}}qC.EXTENSION_NAME=bD;var OY=bD;class FC extends E1{constructor(...Z){super(...Z);this.extensionName=OY}createTransform(){return new qC(this.document.getGraph())}read(Z){for(let[J,X]of Array.from(Z.textureInfos.entries())){if(!X.extensions||!X.extensions[OY])continue;let Y=this.createTransform(),$=X.extensions[OY];if($.offset!==void 0)Y.setOffset($.offset);if($.rotation!==void 0)Y.setRotation($.rotation);if($.scale!==void 0)Y.setScale($.scale);if($.texCoord!==void 0)Y.setTexCoord($.texCoord);J.setExtension(OY,Y)}return this}write(Z){let J=Array.from(Z.textureInfoDefMap.entries());for(let[X,Y]of J){let $=X.getExtension(OY);if(!$)continue;Y.extensions=Y.extensions||{};let Q={},K=W8.eq;if(!K($.getOffset(),[0,0]))Q.offset=$.getOffset();if($.getRotation()!==0)Q.rotation=$.getRotation();if(!K($.getScale(),[1,1]))Q.scale=$.getScale();if($.getTexCoord()!=null)Q.texCoord=$.getTexCoord();Y.extensions[OY]=Q}return this}}FC.EXTENSION_NAME=OY;var Vw1=[s.ROOT,s.SCENE,s.NODE,s.MESH,s.MATERIAL,s.TEXTURE,s.ANIMATION];class UC extends n1{init(){this.extensionName=P2,this.propertyType="Packet",this.parentTypes=Vw1}getDefaults(){return Object.assign(super.getDefaults(),{context:{},properties:{}})}getContext(){return this.get("context")}setContext(Z){return this.set("context",qZ({},Z))}listProperties(){return Object.keys(this.get("properties"))}getProperty(Z){let J=this.get("properties");return Z in J?J[Z]:null}setProperty(Z,J){this._assertContext(Z);let X=qZ({},this.get("properties"));if(J)X[Z]=J;else delete X[Z];return this.set("properties",X)}toJSONLD(){let Z=jD(this.get("context")),J=jD(this.get("properties"));return qZ({"@context":Z},J)}fromJSONLD(Z){Z=jD(Z);let J=Z["@context"];if(J)this.set("context",J);return delete Z["@context"],this.set("properties",Z)}_assertContext(Z){if(!(Z.split(":")[0]in this.get("context")))throw new Error(`${P2}: Missing context for term, "${Z}".`)}}UC.EXTENSION_NAME=P2;function jD(Z){return JSON.parse(JSON.stringify(Z))}var HZ=P2;class LC extends E1{constructor(...Z){super(...Z);this.extensionName=HZ}createPacket(){return new UC(this.document.getGraph())}listPackets(){return Array.from(this.properties)}read(Z){var J;let X=(J=Z.jsonDoc.json.extensions)==null?void 0:J[HZ];if(!X||!X.packets)return this;let Y=Z.jsonDoc.json,$=this.document.getRoot(),Q=X.packets.map((G)=>this.createPacket().fromJSONLD(G)),K=[[Y.asset],Y.scenes,Y.nodes,Y.meshes,Y.materials,Y.images,Y.animations],W=[[$],$.listScenes(),$.listNodes(),$.listMeshes(),$.listMaterials(),$.listTextures(),$.listAnimations()];for(let G=0;G<K.length;G++){let z=K[G]||[];for(let V=0;V<z.length;V++){let H=z[V];if(H.extensions&&H.extensions[HZ]){let q=H.extensions[HZ];W[G][V].setExtension(HZ,Q[q.packet])}}}return this}write(Z){let{json:J}=Z.jsonDoc,X=[];for(let Y of this.properties){X.push(Y.toJSONLD());for(let $ of Y.listParents()){let Q;switch($.propertyType){case s.ROOT:Q=J.asset;break;case s.SCENE:Q=J.scenes[Z.sceneIndexMap.get($)];break;case s.NODE:Q=J.nodes[Z.nodeIndexMap.get($)];break;case s.MESH:Q=J.meshes[Z.meshIndexMap.get($)];break;case s.MATERIAL:Q=J.materials[Z.materialIndexMap.get($)];break;case s.TEXTURE:Q=J.images[Z.imageIndexMap.get($)];break;case s.ANIMATION:Q=J.animations[Z.animationIndexMap.get($)];break;default:Q=null,this.document.getLogger().warn(`[${HZ}]: Unsupported parent property, "${$.propertyType}"`);break}if(!Q)continue;Q.extensions=Q.extensions||{},Q.extensions[HZ]={packet:X.length-1}}}if(X.length>0)J.extensions=J.extensions||{},J.extensions[HZ]={packets:X};return this}}LC.EXTENSION_NAME=HZ;var Hw1=[CG,gD,uD,cD,pD,nD,sD,I2,tD,v2,S2,JC,$C,_2,GC,VC,TG,HC,FC,LC],ZV6=[T2,DG,k2,E2,...Hw1];var qw1=t(SP(),1);function nQ(){return nQ=Object.assign?Object.assign.bind():function(Z){for(var J=1;J<arguments.length;J++){var X=arguments[J];for(var Y in X)({}).hasOwnProperty.call(X,Y)&&(Z[Y]=X[Y])}return Z},nQ.apply(null,arguments)}var{POINTS:Fn,LINES:A2,LINE_STRIP:Fw1,LINE_LOOP:Uw1,TRIANGLES:x2,TRIANGLE_STRIP:Lw1,TRIANGLE_FAN:ww1}=M8.Mode;function NJ(Z,J){return Object.defineProperty(J,"name",{value:Z}),J}function G7(Z,J){let X=nQ({},Z);for(let Y in J)if(J[Y]!==void 0)X[Y]=J[Y];return X}function An(Z){let J=Z.getIndices(),X=Z.getAttribute("POSITION");switch(Z.getMode()){case M8.Mode.POINTS:return J?J.getCount():X.getCount();case M8.Mode.LINES:return J?J.getCount()/2:X.getCount()/2;case M8.Mode.LINE_LOOP:return J?J.getCount():X.getCount();case M8.Mode.LINE_STRIP:return J?J.getCount()-1:X.getCount()-1;case M8.Mode.TRIANGLES:return J?J.getCount()/3:X.getCount()/3;case M8.Mode.TRIANGLE_STRIP:case M8.Mode.TRIANGLE_FAN:return J?J.getCount()-2:X.getCount()-2;default:throw new Error("Unexpected mode: "+Z.getMode())}}var Bw1=new Intl.NumberFormat(void 0,{maximumFractionDigits:0});function OC(Z){return Bw1.format(Z)}function jw1(Z,J,X=2){let Y=Z>J?"\u2013":"+",$="%";return Y+(Math.abs(Z-J)/Z*100).toFixed(X)+"%"}function g2(Z,J){return`${OC(Z)} \u2192 ${OC(J)} (${jw1(Z,J)})`}function TC(Z){let J=[];for(let X of Z.listAttributes())J.push(X);for(let X of Z.listTargets())for(let Y of X.listAttributes())J.push(Y);return Array.from(new Set(J))}function Ow1(Z,J,X){Z.swap(J,X);for(let Y of Z.listTargets())Y.swap(J,X)}function Mw1(Z,J){if(Z==null&&J==null)return!0;if(Z==null||J==null)return!1;if(Z.length!==J.length)return!1;for(let X=0;X<Z.length;X++)if(Z[X]!==J[X])return!1;return!0}function FZ(Z,J){return Z.createAccessor(J.getName()).setArray(J.getArray()).setType(J.getType()).setBuffer(J.getBuffer()).setNormalized(J.getNormalized()).setSparse(J.getSparse())}function Rw1(Z,J=Z){let X=kC(Z,J);for(let Y=0;Y<X.length;Y++)X[Y]=Y;return X}function kC(Z,J=Z){return J<=65534?new Uint16Array(Z):new Uint32Array(Z)}function Nw1(Z){return Z.listParents().some((J)=>J.propertyType!==a.ROOT)}function xn(Z){for(let J in Z)return!1;return!0}function hn(Z){let J=C6.fromGraph(Z.getGraph()),X=Z.getMaterial(),Y=J.getRoot().listMaterials().indexOf(X),$=Dw1[Z.getMode()],Q=!!Z.getIndices(),K=Z.listSemantics().sort().map((G)=>{let z=Z.getAttribute(G),V=z.getElementSize(),H=z.getComponentType();return`${G}:${V}:${H}`}).join("+"),W=Z.listTargets().map((G)=>{return G.listSemantics().sort().map((z)=>{let V=Z.getAttribute(z),H=V.getElementSize(),q=V.getComponentType();return`${z}:${H}:${q}`}).join("+")}).join("~");return`${Y}|${$}|${Q}|${K}|${W}`}function Pw1(Z){return Math.pow(2,Math.ceil(Math.log(Z)/Math.LN2))}var Dw1={[Fn]:Fn,[A2]:A2,[Fw1]:A2,[Uw1]:A2,[x2]:x2,[Lw1]:x2,[ww1]:x2},pQ="center",Un={pivot:"center"};function fn(Z=Un){let J=G7(Un,Z);return NJ(pQ,(X)=>{let Y=X.getLogger(),$=X.getRoot(),Q=$.listAnimations().length>0||$.listSkins().length>0;X.getRoot().listScenes().forEach((K,W)=>{Y.debug(`${pQ}: Scene ${W+1} / ${$.listScenes().length}.`);let G;if(typeof J.pivot==="string"){let V=DP(K);if(G=[(V.max[0]-V.min[0])/2+V.min[0],(V.max[1]-V.min[1])/2+V.min[1],(V.max[2]-V.min[2])/2+V.min[2]],J.pivot==="above")G[1]=V.max[1];if(J.pivot==="below")G[1]=V.min[1]}else G=J.pivot;Y.debug(`${pQ}: Pivot "${G.join(", ")}".`);let z=[-1*G[0],-1*G[1],-1*G[2]];if(Q){Y.debug(`${pQ}: Model contains animation or skin. Adding a wrapper node.`);let V=X.createNode("Pivot").setTranslation(z);K.listChildren().forEach((H)=>V.addChild(H)),K.addChild(V)}else Y.debug(`${pQ}: Skipping wrapper, offsetting all root nodes.`),K.listChildren().forEach((V)=>{let H=V.getTranslation();V.setTranslation([H[0]+z[0],H[1]+z[1],H[2]+z[2]])})}),Y.debug(`${pQ}: Complete.`)})}function Cw1(Z){let J=new Set,X=Z,Y;while(Y=X.getParentNode()){if(J.has(Y))throw new Error("Circular dependency in scene graph.");J.add(Y),X=Y}return X.listParents().filter(($)=>$ instanceof vQ)}function Tw1(Z){let J=Cw1(Z),X=Z.getParentNode();if(!X)return Z;Z.setMatrix(Z.getWorldMatrix()),X.removeChild(Z);for(let Y of J)Y.addChild(Z);return Z}var aQ=typeof Float32Array!=="undefined"?Float32Array:Array;if(!Math.hypot)Math.hypot=function(){var Z=0,J=arguments.length;while(J--)Z+=arguments[J]*arguments[J];return Math.sqrt(Z)};function kw1(Z,J){var X=J[0],Y=J[1],$=J[2],Q=J[3],K=J[4],W=J[5],G=J[6],z=J[7],V=J[8],H=J[9],q=J[10],F=J[11],U=J[12],w=J[13],L=J[14],j=J[15],R=X*W-Y*K,O=X*G-$*K,N=X*z-Q*K,D=Y*G-$*W,P=Y*z-Q*W,C=$*z-Q*G,T=V*w-H*U,k=V*L-q*U,A=V*j-F*U,S=H*L-q*w,x=H*j-F*w,I=q*j-F*L,v=R*I-O*x+N*S+D*A-P*k+C*T;if(!v)return null;return v=1/v,Z[0]=(W*I-G*x+z*S)*v,Z[1]=($*x-Y*I-Q*S)*v,Z[2]=(w*C-L*P+j*D)*v,Z[3]=(q*P-H*C-F*D)*v,Z[4]=(G*A-K*I-z*k)*v,Z[5]=(X*I-$*A+Q*k)*v,Z[6]=(L*N-U*C-j*O)*v,Z[7]=(V*C-q*N+F*O)*v,Z[8]=(K*x-W*A+z*T)*v,Z[9]=(Y*A-X*x-Q*T)*v,Z[10]=(U*P-w*N+j*R)*v,Z[11]=(H*N-V*P-F*R)*v,Z[12]=(W*k-K*S-G*T)*v,Z[13]=(X*S-Y*k+$*T)*v,Z[14]=(w*O-U*D-L*R)*v,Z[15]=(V*D-H*O+q*R)*v,Z}function Ew1(Z){var J=Z[0],X=Z[1],Y=Z[2],$=Z[3],Q=Z[4],K=Z[5],W=Z[6],G=Z[7],z=Z[8],V=Z[9],H=Z[10],q=Z[11],F=Z[12],U=Z[13],w=Z[14],L=Z[15],j=J*K-X*Q,R=J*W-Y*Q,O=J*G-$*Q,N=X*W-Y*K,D=X*G-$*K,P=Y*G-$*W,C=z*U-V*F,T=z*w-H*F,k=z*L-q*F,A=V*w-H*U,S=V*L-q*U,x=H*L-q*w;return j*x-R*S+O*A+N*k-D*T+P*C}function bn(Z,J,X){var Y=J[0],$=J[1],Q=J[2],K=J[3],W=J[4],G=J[5],z=J[6],V=J[7],H=J[8],q=J[9],F=J[10],U=J[11],w=J[12],L=J[13],j=J[14],R=J[15],O=X[0],N=X[1],D=X[2],P=X[3];return Z[0]=O*Y+N*W+D*H+P*w,Z[1]=O*$+N*G+D*q+P*L,Z[2]=O*Q+N*z+D*F+P*j,Z[3]=O*K+N*V+D*U+P*R,O=X[4],N=X[5],D=X[6],P=X[7],Z[4]=O*Y+N*W+D*H+P*w,Z[5]=O*$+N*G+D*q+P*L,Z[6]=O*Q+N*z+D*F+P*j,Z[7]=O*K+N*V+D*U+P*R,O=X[8],N=X[9],D=X[10],P=X[11],Z[8]=O*Y+N*W+D*H+P*w,Z[9]=O*$+N*G+D*q+P*L,Z[10]=O*Q+N*z+D*F+P*j,Z[11]=O*K+N*V+D*U+P*R,O=X[12],N=X[13],D=X[14],P=X[15],Z[12]=O*Y+N*W+D*H+P*w,Z[13]=O*$+N*G+D*q+P*L,Z[14]=O*Q+N*z+D*F+P*j,Z[15]=O*K+N*V+D*U+P*R,Z}function Iw1(){var Z=new aQ(9);if(aQ!=Float32Array)Z[1]=0,Z[2]=0,Z[3]=0,Z[5]=0,Z[6]=0,Z[7]=0;return Z[0]=1,Z[4]=1,Z[8]=1,Z}function vw1(Z,J){return Z[0]=J[0],Z[1]=J[1],Z[2]=J[2],Z[3]=J[4],Z[4]=J[5],Z[5]=J[6],Z[6]=J[8],Z[7]=J[9],Z[8]=J[10],Z}function Sw1(Z,J){if(Z===J){var X=J[1],Y=J[2],$=J[5];Z[1]=J[3],Z[2]=J[6],Z[3]=X,Z[5]=J[7],Z[6]=Y,Z[7]=$}else Z[0]=J[0],Z[1]=J[3],Z[2]=J[6],Z[3]=J[1],Z[4]=J[4],Z[5]=J[7],Z[6]=J[2],Z[7]=J[5],Z[8]=J[8];return Z}function _w1(Z,J){var X=J[0],Y=J[1],$=J[2],Q=J[3],K=J[4],W=J[5],G=J[6],z=J[7],V=J[8],H=V*K-W*z,q=-V*Q+W*G,F=z*Q-K*G,U=X*H+Y*q+$*F;if(!U)return null;return U=1/U,Z[0]=H*U,Z[1]=(-V*Y+$*z)*U,Z[2]=(W*Y-$*K)*U,Z[3]=q*U,Z[4]=(V*X-$*G)*U,Z[5]=(-W*X+$*Q)*U,Z[6]=F*U,Z[7]=(-z*X+Y*G)*U,Z[8]=(K*X-Y*Q)*U,Z}function m2(){var Z=new aQ(3);if(aQ!=Float32Array)Z[0]=0,Z[1]=0,Z[2]=0;return Z}function Aw1(Z,J,X){return Z[0]=J[0]*X[0],Z[1]=J[1]*X[1],Z[2]=J[2]*X[2],Z}function yn(Z,J){var X=J[0],Y=J[1],$=J[2],Q=X*X+Y*Y+$*$;if(Q>0)Q=1/Math.sqrt(Q);return Z[0]=J[0]*Q,Z[1]=J[1]*Q,Z[2]=J[2]*Q,Z}function xw1(Z,J,X){var Y=J[0],$=J[1],Q=J[2],K=X[3]*Y+X[7]*$+X[11]*Q+X[15];return K=K||1,Z[0]=(X[0]*Y+X[4]*$+X[8]*Q+X[12])/K,Z[1]=(X[1]*Y+X[5]*$+X[9]*Q+X[13])/K,Z[2]=(X[2]*Y+X[6]*$+X[10]*Q+X[14])/K,Z}function hw1(Z,J,X){var Y=J[0],$=J[1],Q=J[2];return Z[0]=Y*X[0]+$*X[3]+Q*X[6],Z[1]=Y*X[1]+$*X[4]+Q*X[7],Z[2]=Y*X[2]+$*X[5]+Q*X[8],Z}var fw1=Aw1;(function(){var Z=m2();return function(J,X,Y,$,Q,K){var W,G;if(!X)X=3;if(!Y)Y=0;if($)G=Math.min($*X+Y,J.length);else G=J.length;for(W=Y;W<G;W+=X)Z[0]=J[W],Z[1]=J[W+1],Z[2]=J[W+2],Q(Z,Z,K),J[W]=Z[0],J[W+1]=Z[1],J[W+2]=Z[2];return J}})();var MJ="dedup",wC={keepUniqueNames:!1,propertyTypes:[a.ACCESSOR,a.MESH,a.TEXTURE,a.MATERIAL,a.SKIN]};function gn(Z=wC){let J=G7(wC,Z),X=new Set(J.propertyTypes);for(let Y of J.propertyTypes)if(!wC.propertyTypes.includes(Y))throw new Error(`${MJ}: Unsupported deduplication on type "${Y}".`);return NJ(MJ,(Y)=>{let $=Y.getLogger();if(X.has(a.ACCESSOR))bw1(Y);if(X.has(a.TEXTURE))gw1(Y,J);if(X.has(a.MATERIAL))mw1(Y,J);if(X.has(a.MESH))yw1(Y,J);if(X.has(a.SKIN))uw1(Y,J);$.debug(`${MJ}: Complete.`)})}function bw1(Z){let J=Z.getLogger(),X=new Map,Y=new Map,$=new Map,Q=new Map,K=Z.getRoot().listMeshes();K.forEach((H)=>{H.listPrimitives().forEach((q)=>{q.listAttributes().forEach((F)=>W(F,Y)),W(q.getIndices(),X)})});for(let H of Z.getRoot().listAnimations())for(let q of H.listSamplers())W(q.getInput(),$),W(q.getOutput(),Q);function W(H,q){if(!H)return;let F=[H.getCount(),H.getType(),H.getComponentType(),H.getNormalized(),H.getSparse()].join(":"),U=q.get(F);if(!U)q.set(F,U=new Set);U.add(H)}function G(H,q){for(let F=0;F<H.length;F++){let U=H[F],w=n0.toView(U.getArray());if(q.has(U))continue;for(let L=F+1;L<H.length;L++){let j=H[L];if(q.has(j))continue;if(n0.equals(w,n0.toView(j.getArray())))q.set(j,U)}}}let z=0,V=new Map;for(let H of[Y,X,$,Q])for(let q of H.values())z+=q.size,G(Array.from(q),V);J.debug(`${MJ}: Merged ${V.size} of ${z} accessors.`),K.forEach((H)=>{H.listPrimitives().forEach((q)=>{q.listAttributes().forEach((U)=>{if(V.has(U))q.swap(U,V.get(U))});let F=q.getIndices();if(F&&V.has(F))q.swap(F,V.get(F))})});for(let H of Z.getRoot().listAnimations())for(let q of H.listSamplers()){let F=q.getInput(),U=q.getOutput();if(F&&V.has(F))q.swap(F,V.get(F));if(U&&V.has(U))q.swap(U,V.get(U))}Array.from(V.keys()).forEach((H)=>H.dispose())}function yw1(Z,J){let X=Z.getLogger(),Y=Z.getRoot(),$=new Map;Y.listAccessors().forEach((W,G)=>$.set(W,G)),Y.listMaterials().forEach((W,G)=>$.set(W,G));let Q=Y.listMeshes().length,K=new Map;for(let W of Y.listMeshes()){let G=[];for(let V of W.listPrimitives())G.push(mn(V,$));let z="";if(J.keepUniqueNames)z+=W.getName()+";";if(z+=G.join(";"),K.has(z)){let V=K.get(z);W.listParents().forEach((H)=>{if(H.propertyType!==a.ROOT)H.swap(W,V)}),W.dispose()}else K.set(z,W)}X.debug(`${MJ}: Merged ${Q-K.size} of ${Q} meshes.`)}function gw1(Z,J){let X=Z.getLogger(),Y=Z.getRoot(),$=Y.listTextures(),Q=new Map;for(let K=0;K<$.length;K++){let W=$[K],G=W.getImage();if(Q.has(W))continue;for(let z=K+1;z<$.length;z++){let V=$[z],H=V.getImage();if(Q.has(V))continue;if(W.getMimeType()!==V.getMimeType())continue;if(J.keepUniqueNames&&W.getName()!==V.getName())continue;let q=W.getSize(),F=V.getSize();if(!q||!F)continue;if(q[0]!==F[0])continue;if(q[1]!==F[1])continue;if(!G||!H)continue;if(n0.equals(G,H))Q.set(V,W)}}X.debug(`${MJ}: Merged ${Q.size} of ${Y.listTextures().length} textures.`),Array.from(Q.entries()).forEach(([K,W])=>{K.listParents().forEach((G)=>{if(!(G instanceof JY))G.swap(K,W)}),K.dispose()})}function mw1(Z,J){let X=Z.getLogger(),$=Z.getRoot().listMaterials(),Q=new Map,K=new Map,W=new Set;if(!J.keepUniqueNames)W.add("name");for(let G=0;G<$.length;G++){let z=$[G];if(Q.has(z))continue;if(Ln(z,K))continue;for(let V=G+1;V<$.length;V++){let H=$[V];if(Q.has(H))continue;if(Ln(H,K))continue;if(z.equals(H,W))Q.set(H,z)}}X.debug(`${MJ}: Merged ${Q.size} of ${$.length} materials.`),Array.from(Q.entries()).forEach(([G,z])=>{G.listParents().forEach((V)=>{if(!(V instanceof JY))V.swap(G,z)}),G.dispose()})}function uw1(Z,J){let X=Z.getLogger(),$=Z.getRoot().listSkins(),Q=new Map,K=new Set(["joints"]);if(!J.keepUniqueNames)K.add("name");for(let W=0;W<$.length;W++){let G=$[W];if(Q.has(G))continue;for(let z=W+1;z<$.length;z++){let V=$[z];if(Q.has(V))continue;if(G.equals(V,K)&&Mw1(G.listJoints(),V.listJoints()))Q.set(V,G)}}X.debug(`${MJ}: Merged ${Q.size} of ${$.length} skins.`),Array.from(Q.entries()).forEach(([W,G])=>{W.listParents().forEach((z)=>{if(!(z instanceof JY))z.swap(W,G)}),W.dispose()})}function mn(Z,J){let X=[];for(let Y of Z.listSemantics()){let $=Z.getAttribute(Y);X.push(Y+":"+J.get($))}if(Z instanceof M8){let Y=Z.getIndices();if(Y)X.push("indices:"+J.get(Y));let $=Z.getMaterial();if($)X.push("material:"+J.get($));X.push("mode:"+Z.getMode());for(let Q of Z.listTargets())X.push("target:"+mn(Q,J))}return X.join(",")}function Ln(Z,J){if(J.has(Z))return J.get(Z);let X=Z.getGraph(),Y=new Set,$=X.listParentEdges(Z);while($.length>0){let Q=$.pop();if(Q.getAttributes().modifyChild===!0)return J.set(Z,!0),!0;let K=Q.getChild();if(Y.has(K))continue;for(let W of X.listChildEdges(K))$.push(W)}return J.set(Z,!1),!1}function un(){var Z=new aQ(4);if(aQ!=Float32Array)Z[0]=0,Z[1]=0,Z[2]=0,Z[3]=0;return Z}function dw1(Z,J,X){return Z[0]=J[0]+X[0],Z[1]=J[1]+X[1],Z[2]=J[2]+X[2],Z[3]=J[3]+X[3],Z}function cw1(Z,J,X){return Z[0]=J[0]-X[0],Z[1]=J[1]-X[1],Z[2]=J[2]-X[2],Z[3]=J[3]-X[3],Z}function lw1(Z,J,X){return Z[0]=J[0]*X[0],Z[1]=J[1]*X[1],Z[2]=J[2]*X[2],Z[3]=J[3]*X[3],Z}function pw1(Z,J,X){return Z[0]=J[0]*X,Z[1]=J[1]*X,Z[2]=J[2]*X,Z[3]=J[3]*X,Z}function iw1(Z){var J=Z[0],X=Z[1],Y=Z[2],$=Z[3];return Math.hypot(J,X,Y,$)}var dn=cw1,nw1=lw1,cn=iw1;(function(){var Z=un();return function(J,X,Y,$,Q,K){var W,G;if(!X)X=4;if(!Y)Y=0;if($)G=Math.min($*X+Y,J.length);else G=J.length;for(W=Y;W<G;W+=X)Z[0]=J[W],Z[1]=J[W+1],Z[2]=J[W+2],Z[3]=J[W+3],Q(Z,Z,K),J[W]=Z[0],J[W+1]=Z[1],J[W+2]=Z[2],J[W+3]=Z[3];return J}})();var aw1=/color|emissive|diffuse/i;function sw1(Z){return Z.getGraph().listParentEdges(Z).some(($)=>{return $.getAttributes().isColor||aw1.test($.getName())})?"srgb":null}function ow1(Z){let J=Z.getGraph(),X=new Set,Y=new Set;function $(Q){let K=new Set;for(let W of J.listChildEdges(Q))if(W.getChild()instanceof ZY)K.add(W.getName()+"Info");for(let W of J.listChildEdges(Q)){let G=W.getChild();if(X.has(G))continue;if(X.add(G),G instanceof B5&&K.has(W.getName()))Y.add(G);else if(G instanceof IQ)$(G)}}return $(Z),Array.from(Y)}function rw1(Z){let X=C6.fromGraph(Z.getGraph()).getRoot(),Y=Z.getGraph().listParentEdges(Z).filter(($)=>$.getParent()!==X).map(($)=>$.getName());return Array.from(new Set(Y))}var iQ="prune",MC=0.011764705882352941,wn={propertyTypes:[a.NODE,a.SKIN,a.MESH,a.CAMERA,a.PRIMITIVE,a.PRIMITIVE_TARGET,a.ANIMATION,a.MATERIAL,a.TEXTURE,a.ACCESSOR,a.BUFFER],keepLeaves:!1,keepAttributes:!1,keepIndices:!1,keepSolidTextures:!1,keepExtras:!1};function u2(Z=wn){let J=G7(wn,Z),X=new Set(J.propertyTypes),Y=J.keepExtras;return NJ(iQ,async($)=>{let Q=$.getLogger(),K=$.getRoot(),W=$.getGraph(),G=new ln,z=(V)=>G.dispose(V.target);if(W.addEventListener("node:dispose",z),X.has(a.MESH))for(let V of K.listMeshes()){if(V.listPrimitives().length>0)continue;V.dispose()}if(X.has(a.NODE)){if(!J.keepLeaves)for(let V of K.listScenes())pn(W,V,Y);for(let V of K.listNodes())P9(V,Y)}if(X.has(a.SKIN))for(let V of K.listSkins())P9(V,Y);if(X.has(a.MESH))for(let V of K.listMeshes())P9(V,Y);if(X.has(a.CAMERA))for(let V of K.listCameras())P9(V,Y);if(X.has(a.PRIMITIVE))Bn(W,a.PRIMITIVE,Y);if(X.has(a.PRIMITIVE_TARGET))Bn(W,a.PRIMITIVE_TARGET,Y);if(!J.keepAttributes&&X.has(a.ACCESSOR)){let V=new Map;for(let H of K.listMeshes())for(let q of H.listPrimitives()){let F=q.getMaterial();if(!F)continue;let U=nn($,q,F),w=ew1(q,U);jn(q,w),q.listTargets().forEach((L)=>jn(L,w)),V.has(F)?V.get(F).add(q):V.set(F,new Set([q]))}for(let[H,q]of V)ZB1(H,Array.from(q))}if(!J.keepIndices&&X.has(a.ACCESSOR))for(let V of K.listMeshes())for(let H of V.listPrimitives())tw1(H);if(X.has(a.ANIMATION))for(let V of K.listAnimations()){for(let H of V.listChannels())if(!H.getTargetNode())H.dispose();if(!V.listChannels().length){let H=V.listSamplers();P9(V,Y),H.forEach((q)=>P9(q,Y))}else V.listSamplers().forEach((H)=>P9(H,Y))}if(X.has(a.MATERIAL))K.listMaterials().forEach((V)=>P9(V,Y));if(X.has(a.TEXTURE)){if(K.listTextures().forEach((V)=>P9(V,Y)),!J.keepSolidTextures)await JB1($)}if(X.has(a.ACCESSOR))K.listAccessors().forEach((V)=>P9(V,Y));if(X.has(a.BUFFER))K.listBuffers().forEach((V)=>P9(V,Y));if(W.removeEventListener("node:dispose",z),!G.empty()){let V=G.entries().map(([H,q])=>`${H} (${q})`).join(", ");Q.info(`${iQ}: Removed types... ${V}`)}else Q.debug(`${iQ}: No unused properties found.`);Q.debug(`${iQ}: Complete.`)})}class ln{constructor(){this.disposed={}}empty(){for(let Z in this.disposed)return!1;return!0}entries(){return Object.entries(this.disposed)}dispose(Z){this.disposed[Z.propertyType]=this.disposed[Z.propertyType]||0,this.disposed[Z.propertyType]++}}function P9(Z,J){let X=Z.listParents().filter(($)=>!($ instanceof JY||$ instanceof tX)),Y=J&&!xn(Z.getExtras());if(!X.length&&!Y)Z.dispose()}function Bn(Z,J,X){for(let Y of Z.listEdges()){let $=Y.getParent();if($.propertyType===J)P9($,X)}}function pn(Z,J,X){if(J.listChildren().forEach((K)=>pn(Z,K,X)),J instanceof vQ)return;let Y=Z.listParentEdges(J).some((K)=>{let W=K.getParent().propertyType;return W!==a.ROOT&&W!==a.SCENE&&W!==a.NODE}),$=Z.listChildren(J).length===0,Q=X&&!xn(J.getExtras());if($&&!Y&&!Q)J.dispose()}function jn(Z,J){for(let X of J)Z.setAttribute(X,null)}function tw1(Z){let J=Z.getIndices(),X=J&&J.getArray(),Y=Z.listAttributes()[0];if(!X||!Y)return;if(J.getCount()!==Y.getCount())return;for(let $=0,Q=X.length;$<Q;$++)if($!==X[$])return;Z.setIndices(null)}function ew1(Z,J){let X=[];for(let Y of Z.listSemantics())if(Y==="NORMAL"&&!J.has(Y))X.push(Y);else if(Y==="TANGENT"&&!J.has(Y))X.push(Y);else if(Y.startsWith("TEXCOORD_")&&!J.has(Y))X.push(Y);else if(Y.startsWith("COLOR_")&&Y!=="COLOR_0")X.push(Y);return X}function nn(Z,J,X,Y=new Set){let Q=Z.getGraph().listChildEdges(X),K=new Set;for(let z of Q)if(z.getChild()instanceof ZY)K.add(z.getName());for(let z of Q){let V=z.getName(),H=z.getChild();if(H instanceof B5){if(K.has(V.replace(/Info$/,"")))Y.add(`TEXCOORD_${H.getTexCoord()}`)}if(H instanceof ZY&&V.match(/normalTexture/i))Y.add("TANGENT");if(H instanceof IQ)nn(Z,J,H,Y)}let W=X instanceof e4&&!X.getExtension("KHR_materials_unlit"),G=J.getMode()===M8.Mode.POINTS;if(W&&!G)Y.add("NORMAL");return Y}function ZB1(Z,J){let X=ow1(Z),Y=new Set(X.map((G)=>G.getTexCoord())),$=Array.from(Y).sort(),Q=new Map($.map((G,z)=>[G,z])),K=new Map($.map((G,z)=>[`TEXCOORD_${G}`,`TEXCOORD_${z}`]));for(let G of X){let z=G.getTexCoord();G.setTexCoord(Q.get(z))}for(let G of J){let z=G.listSemantics().filter((V)=>V.startsWith("TEXCOORD_")).sort();W(G,z),G.listTargets().forEach((V)=>W(V,z))}function W(G,z){for(let V of z){let H=G.getAttribute(V);if(!H)continue;let q=K.get(V);if(q===V)continue;G.setAttribute(q,H),G.setAttribute(V,null)}}}async function JB1(Z){let J=Z.getRoot(),X=Z.getGraph(),Y=Z.getLogger(),Q=J.listTextures().map(async(K)=>{var W;let G=await YB1(K);if(!G)return;if(sw1(K)==="srgb")CP.convertSRGBToLinear(G,G);let z=K.getName()||K.getURI(),V=(W=K.getSize())==null?void 0:W.join("x"),H=rw1(K);for(let q of X.listParentEdges(K)){let F=q.getParent();if(F!==J&&XB1(F,G,q.getName(),Y))q.dispose()}if(K.listParents().length===1)K.dispose(),Y.debug(`${iQ}: Removed solid-color texture "${z}" (${V}px ${H.join(", ")})`)});await Promise.all(Q)}function XB1(Z,J,X,Y){if(Z instanceof e4)switch(X){case"baseColorTexture":return Z.setBaseColorFactor(nw1(J,J,Z.getBaseColorFactor())),!0;case"emissiveTexture":return Z.setEmissiveFactor(fw1([0,0,0],J.slice(0,3),Z.getEmissiveFactor())),!0;case"occlusionTexture":return Math.abs(J[0]-1)<=MC;case"metallicRoughnessTexture":return Z.setRoughnessFactor(J[1]*Z.getRoughnessFactor()),Z.setMetallicFactor(J[2]*Z.getMetallicFactor()),!0;case"normalTexture":return cn(dn(un(),J,[0.5,0.5,1,1]))<=MC}return Y.warn(`${iQ}: Detected single-color ${X} texture. Pruning ${X} not yet supported.`),!1}async function YB1(Z){let J=await $B1(Z);if(!J)return null;let X=[1/0,1/0,1/0,1/0],Y=[-1/0,-1/0,-1/0,-1/0],$=[0,0,0,0],[Q,K]=J.shape;for(let W=0;W<Q;W++){for(let G=0;G<K;G++)for(let z=0;z<4;z++)X[z]=Math.min(X[z],J.get(W,G,z)),Y[z]=Math.max(Y[z],J.get(W,G,z));if(cn(dn($,Y,X))/255>MC)return null}return pw1($,dw1($,Y,X),0.00196078431372549)}async function $B1(Z){try{return await Si(Z.getImage(),Z.getMimeType())}catch(J){return null}}var OJ=4294967295;class an{constructor(Z){this.attributes=[],this.u8=void 0,this.u32=void 0;let J=0;for(let X of TC(Z))J+=this._initAttribute(X);this.u8=new Uint8Array(J),this.u32=new Uint32Array(this.u8.buffer)}_initAttribute(Z){let J=Z.getArray(),X=new Uint8Array(J.buffer,J.byteOffset,J.byteLength),Y=Z.getElementSize()*Z.getComponentSize(),$=n0.padNumber(Y);return this.attributes.push({u8:X,byteStride:Y,paddedByteStride:$}),$}hash(Z){let J=0;for(let{u8:X,byteStride:Y,paddedByteStride:$}of this.attributes){for(let Q=0;Q<$;Q++)if(Q<Y)this.u8[J+Q]=X[Z*Y+Q];else this.u8[J+Q]=0;J+=$}return QB1(0,this.u32)}equal(Z,J){for(let{u8:X,byteStride:Y}of this.attributes)for(let $=0;$<Y;$++)if(X[Z*Y+$]!==X[J*Y+$])return!1;return!0}}function QB1(Z,J){for(let $=0,Q=J.length;$<Q;$++){let K=J[$];K=Math.imul(K,1540483477)>>>0,K=(K^K>>24)>>>0,K=Math.imul(K,1540483477)>>>0,Z=Math.imul(Z,1540483477)>>>0,Z=(Z^K)>>>0}return Z}function KB1(Z,J,X,Y,$=OJ){let Q=J-1,W=X.hash(Y)&Q;for(let G=0;G<=Q;G++){let z=Z[W];if(z===$||X.equal(z,Y))return W;W=W+G+1&Q}throw new Error("Hash table full.")}var L6;(function(Z){Z.RENDER="render",Z.RENDER_CACHED="render-cached",Z.UPLOAD="upload",Z.UPLOAD_NAIVE="upload-naive",Z.DISTINCT="distinct",Z.DISTINCT_POSITION="distinct-position",Z.UNUSED="unused"})(L6||(L6={}));function RJ(Z,J){let X=Z.getAttribute("POSITION"),Y=Z.getIndices();switch(J){case L6.RENDER:return Y?Y.getCount():X.getCount();case L6.RENDER_CACHED:return Y?new Set(Y.getArray()).size:X.getCount();case L6.UPLOAD_NAIVE:case L6.UPLOAD:return X.getCount();case L6.DISTINCT:case L6.DISTINCT_POSITION:return WB1(J);case L6.UNUSED:return Y?X.getCount()-new Set(Y.getArray()).size:0;default:return GB1(J)}}function WB1(Z){throw new Error(`Not implemented: ${Z}`)}function GB1(Z){throw new Error(`Unexpected value: ${Z}`)}function EG(Z,J,X){let Y=C6.fromGraph(Z.getGraph());if(!J||!X)[J,X]=zB1(Z);let $=Z.getIndices(),Q=$?$.getArray():null,K=RJ(Z,L6.RENDER),W=Y.createAccessor(),G=K,z=kC(G,X);for(let H=0;H<G;H++)z[H]=J[Q?Q[H]:H];Z.setIndices(W.setArray(z));let V=TC(Z);for(let H of Z.listAttributes()){let q=FZ(Y,H);RC(H,$,J,q,X),Z.swap(H,q)}for(let H of Z.listTargets())for(let q of H.listAttributes()){let F=FZ(Y,q);RC(q,$,J,F,X),H.swap(q,F)}if($&&$.listParents().length===1)$.dispose();for(let H of V)if(H.listParents().length===1)H.dispose();return Z}function RC(Z,J,X,Y,$){let Q=Z.getElementSize(),K=Z.getArray(),W=J?J.getArray():null,G=J?J.getCount():Z.getCount(),z=new K.constructor($*Q),V=new Uint8Array($);for(let H=0;H<G;H++){let q=W?W[H]:H,F=X[q];if(V[F])continue;for(let U=0;U<Q;U++)z[F*Q+U]=K[q*Q+U];V[F]=1}return Y.setArray(z)}function zB1(Z){let J=RJ(Z,L6.UPLOAD),X=Z.getIndices(),Y=X?X.getArray():null;if(!X||!Y)return[Rw1(J,1e6),J];let $=new Uint32Array(J).fill(OJ),Q=0;for(let K=0;K<Y.length;K++){let W=Y[K];if($[W]===OJ)$[W]=Q++}return[$,Q]}var NC="weld",f2={overwrite:!0,cleanup:!0};function EC(Z=f2){let J=G7(f2,Z);return NJ(NC,async(X)=>{let Y=X.getLogger();for(let $ of X.getRoot().listMeshes()){for(let Q of $.listPrimitives())if(d2(Q,J),RJ(Q,L6.RENDER)===0)Q.dispose();if($.listPrimitives().length===0)$.dispose()}if(J.cleanup)await X.transform(u2({propertyTypes:[a.ACCESSOR,a.NODE],keepAttributes:!0,keepIndices:!0,keepLeaves:!1}),gn({propertyTypes:[a.ACCESSOR]}));Y.debug(`${NC}: Complete.`)})}function d2(Z,J=f2){let X=Z.getGraph(),$=C6.fromGraph(X).getLogger(),Q=nQ({},f2,J);if(Z.getIndices()&&!Q.overwrite)return;if(Z.getMode()===M8.Mode.POINTS)return;let K=Z.getAttribute("POSITION").getCount(),W=Z.getIndices(),G=W==null?void 0:W.getArray(),z=W?W.getCount():K,V=new an(Z),H=Pw1(K+K/4),q=new Uint32Array(H).fill(OJ),F=new Uint32Array(K).fill(OJ),U=0;for(let w=0;w<z;w++){let L=G?G[w]:w;if(F[L]!==OJ)continue;let j=KB1(q,H,V,L,OJ),R=q[j];if(R===OJ)q[j]=L,F[L]=U++;else F[L]=F[R]}$.debug(`${NC}: ${g2(K,U)} vertices.`),EG(Z,F,U)}var{FLOAT:VB1}=I0.ComponentType;function sn(Z,J){let X=Z.getAttribute("POSITION");if(X)On(J,X);let Y=Z.getAttribute("NORMAL");if(Y)Mn(J,Y);let $=Z.getAttribute("TANGENT");if($)Rn(J,$);for(let Q of Z.listTargets()){let K=Q.getAttribute("POSITION");if(K)On(J,K);let W=Q.getAttribute("NORMAL");if(W)Mn(J,W);let G=Q.getAttribute("TANGENT");if(G)Rn(J,G)}if(Ew1(J)<0)HB1(Z)}function On(Z,J){let X=J.getComponentType(),Y=J.getNormalized(),$=J.getArray(),Q=X===VB1?$:new Float32Array($.length),K=m2();for(let W=0,G=J.getCount();W<G;W++){if(Y)K[0]=d0.decodeNormalizedInt($[W*3],X),K[1]=d0.decodeNormalizedInt($[W*3+1],X),K[2]=d0.decodeNormalizedInt($[W*3+2],X);else K[0]=$[W*3],K[1]=$[W*3+1],K[2]=$[W*3+2];xw1(K,K,Z),Q[W*3]=K[0],Q[W*3+1]=K[1],Q[W*3+2]=K[2]}J.setArray(Q).setNormalized(!1)}function Mn(Z,J){let X=J.getArray(),Y=J.getNormalized(),$=J.getComponentType(),Q=Iw1();vw1(Q,Z),_w1(Q,Q),Sw1(Q,Q);let K=m2();for(let W=0,G=J.getCount();W<G;W++){if(Y)K[0]=d0.decodeNormalizedInt(X[W*3],$),K[1]=d0.decodeNormalizedInt(X[W*3+1],$),K[2]=d0.decodeNormalizedInt(X[W*3+2],$);else K[0]=X[W*3],K[1]=X[W*3+1],K[2]=X[W*3+2];if(hw1(K,K,Q),yn(K,K),Y)X[W*3]=d0.decodeNormalizedInt(K[0],$),X[W*3+1]=d0.decodeNormalizedInt(K[1],$),X[W*3+2]=d0.decodeNormalizedInt(K[2],$);else X[W*3]=K[0],X[W*3+1]=K[1],X[W*3+2]=K[2]}}function Rn(Z,J){let X=J.getArray(),Y=J.getNormalized(),$=J.getComponentType(),Q=m2();for(let K=0,W=J.getCount();K<W;K++){if(Y)Q[0]=d0.decodeNormalizedInt(X[K*4],$),Q[1]=d0.decodeNormalizedInt(X[K*4+1],$),Q[2]=d0.decodeNormalizedInt(X[K*4+2],$);else Q[0]=X[K*4],Q[1]=X[K*4+1],Q[2]=X[K*4+2];if(Q[0]=Z[0]*Q[0]+Z[4]*Q[1]+Z[8]*Q[2],Q[1]=Z[1]*Q[0]+Z[5]*Q[1]+Z[9]*Q[2],Q[2]=Z[2]*Q[0]+Z[6]*Q[1]+Z[10]*Q[2],yn(Q,Q),Y)X[K*4]=d0.decodeNormalizedInt(Q[0],$),X[K*4+1]=d0.decodeNormalizedInt(Q[1],$),X[K*4+2]=d0.decodeNormalizedInt(Q[2],$);else X[K*4]=Q[0],X[K*4+1]=Q[1],X[K*4+2]=Q[2]}}function HB1(Z){if(Z.getMode()!==M8.Mode.TRIANGLES)return;if(!Z.getIndices())d2(Z);let J=Z.getIndices();for(let X=0,Y=J.getCount();X<Y;X+=3){let $=J.getScalar(X),Q=J.getScalar(X+2);J.setScalar(X,Q),J.setScalar(X+2,$)}}function qB1(Z,J){for(let X of Z.listPrimitives()){let Y=FB1(X,Z);if(X!==Y)Z.removePrimitive(X).addPrimitive(Y)}for(let X of Z.listPrimitives())EG(X),sn(X,J)}function FB1(Z,J){if(Z.listParents().some((Y)=>Y instanceof $G&&Y!==J))Z=Z.clone();for(let Y of Z.listTargets())if(Y.listParents().some((Q)=>Q instanceof M8&&Q!==Z))Z.removeTarget(Y).addTarget(Y.clone());return Z}var Nn=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1];function on(Z){let J=Z.getMesh(),X=Z.getMatrix();if(J&&!d0.eq(X,Nn))qB1(J,X);for(let Y of Z.listChildren()){let $=Y.getMatrix();bn($,$,X),Y.setMatrix($)}return Z.setMatrix(Nn)}var{LINES:UB1,LINE_STRIP:LB1,LINE_LOOP:wB1,TRIANGLES:BB1,TRIANGLE_STRIP:jB1,TRIANGLE_FAN:OB1}=M8.Mode;function MB1(Z){let J=Z.getGraph(),X=C6.fromGraph(J);if(!Z.getIndices())d2(Z);let Y=Z.getIndices(),$=Y.getArray(),Q=An(Z),W=new VJ[Y.getComponentType()](Q*2),G=Z.getMode();if(G===LB1)for(let V=0;V<Q;V++)W[V*2]=$[V],W[V*2+1]=$[V+1];else if(G===wB1)for(let V=0;V<Q;V++)if(V<Q-1)W[V*2]=$[V],W[V*2+1]=$[V+1];else W[V*2]=$[V],W[V*2+1]=$[0];else throw new Error("Only LINE_STRIP and LINE_LOOP may be converted to LINES.");Z.setMode(UB1);let z=X.getRoot();if(Y.listParents().some((V)=>V!==z&&V!==Z))Z.setIndices(FZ(X,Y).setArray(W));else Y.setArray(W)}function rn(Z){let J=Z.getGraph(),X=C6.fromGraph(J);if(!Z.getIndices())d2(Z);let Y=Z.getIndices(),$=Y.getArray(),Q=An(Z),W=new VJ[Y.getComponentType()](Q*3),G=Z.getMode();if(G===jB1)for(let V=0,H=$.length;V<H-2;V++)if(V%2)W[V*3]=$[V+1],W[V*3+1]=$[V],W[V*3+2]=$[V+2];else W[V*3]=$[V],W[V*3+1]=$[V+1],W[V*3+2]=$[V+2];else if(G===OB1)for(let V=0;V<Q;V++)W[V*3]=$[0],W[V*3+1]=$[V+1],W[V*3+2]=$[V+2];else throw new Error("Only TRIANGLE_STRIP and TRIANGLE_FAN may be converted to TRIANGLES.");Z.setMode(BB1);let z=X.getRoot();if(Y.listParents().some((V)=>V!==z&&V!==Z))Z.setIndices(FZ(X,Y).setArray(W));else Y.setArray(W)}var Pn="dequantize",b2={pattern:/^((?!JOINTS_).)*$/};function tn(Z=b2){let J=G7(b2,Z);return NJ(Pn,(X)=>{let Y=X.getLogger();for(let $ of X.getRoot().listMeshes())for(let Q of $.listPrimitives())RB1(Q,J);X.createExtension(TG).dispose(),Y.debug(`${Pn}: Complete.`)})}function RB1(Z,J=b2){let X=G7(b2,J);for(let Y of Z.listSemantics())if(X.pattern.test(Y))PC(Z.getAttribute(Y));for(let Y of Z.listTargets())for(let $ of Y.listSemantics())if(X.pattern.test($))PC(Y.getAttribute($))}function PC(Z){let J=Z.getArray();if(!J)return;let X=y2(J,Z.getComponentType(),Z.getNormalized());Z.setArray(X).setNormalized(!1)}function y2(Z,J,X){let Y=new Float32Array(Z.length);for(let $=0,Q=Z.length;$<Q;$++)if(X)Y[$]=d0.decodeNormalizedInt(Z[$],J);else Y[$]=Z[$];return Y}var{TEXTURE_INFO:en,ROOT:KV6}=a;function Za(Z){let J=new C6().setLogger(Z.getLogger()),X=IC(J,Z);return NB1(J,Z,X),J.getRoot().copy(Z.getRoot(),X),J}function NB1(Z,J,X){X||(X=IC(Z,J));for(let Y of J.getRoot().listExtensionsUsed()){let $=Z.createExtension(Y.constructor);if(Y.isRequired())$.setRequired(!0)}return PB1(Z,J,DB1(J),X)}function PB1(Z,J,X,Y){Y||(Y=IC(Z,J));let $=new Map;for(let Q of X)if(!$.has(Q)&&Q.propertyType!==en)$.set(Q,Y(Q));for(let[Q,K]of $.entries())K.copy(Q,Y);return $}function IC(Z,J){let X=new Map([[J.getRoot(),Z.getRoot()]]);return(Y)=>{if(Y.propertyType===en)return Y;let $=X.get(Y);if(!$)$=new Y.constructor(Z.getGraph()),X.set(Y,$);return $}}function DB1(Z){let J=new Set;for(let X of Z.getGraph().listEdges())J.add(X.getChild());return Array.from(J)}var BC="flatten",Dn={cleanup:!0};function Ja(Z=Dn){let J=G7(Dn,Z);return NJ(BC,async(X)=>{let Y=X.getRoot(),$=X.getLogger(),Q=new Set;for(let z of Y.listSkins())for(let V of z.listJoints())Q.add(V);let K=new Set;for(let z of Y.listAnimations())for(let V of z.listChannels()){let H=V.getTargetNode();if(H&&V.getTargetPath()!=="weights")K.add(H)}let W=new Set,G=new Set;for(let z of Y.listScenes())z.traverse((V)=>{let H=V.getParentNode();if(!H)return;if(Q.has(H)||W.has(H))W.add(V);if(K.has(H)||G.has(H))G.add(V)});for(let z of Y.listScenes())z.traverse((V)=>{if(K.has(V))return;if(W.has(V))return;if(G.has(V))return;Tw1(V)});if(K.size)$.debug(`${BC}: Flattening node hierarchies with TRS animation not yet supported.`);if(J.cleanup)await X.transform(u2({propertyTypes:[a.NODE],keepLeaves:!1}));$.debug(`${BC}: Complete.`)})}function Xa(Z){return DP(Z)}var CB1={skipValidation:!1},Cn=4294967295,{LINE_STRIP:TB1,LINE_LOOP:kB1,TRIANGLE_STRIP:EB1,TRIANGLE_FAN:IB1}=M8.Mode;function vB1(Z,J={}){let X=G7(CB1,J),Y=Z[0],$=C6.fromGraph(Y.getGraph());if(!X.skipValidation&&new Set(Z.map(hn)).size>1)throw new Error("Requires >=2 Primitives, sharing the same Material and Mode, with compatible vertex attributes and indices.");for(let F of Z)switch(F.getMode()){case TB1:case kB1:MB1(F);break;case EB1:case IB1:rn(F);break}let Q=[],K=new Uint32Array(Z.length),W=0,G=0;for(let F=0;F<Z.length;F++){let U=Z[F],w=U.getIndices(),L=U.getAttribute("POSITION").getCount(),j=w?w.getArray():null,R=w?w.getCount():L,O=new Uint32Array(L).fill(Cn);for(let N=0;N<R;N++){let D=j?j[N]:N;if(O[D]===Cn)O[D]=W++,K[F]++}Q.push(O),G+=R}let z=$.createPrimitive().setMode(Y.getMode()).setMaterial(Y.getMaterial());for(let F of Y.listSemantics()){let U=Y.getAttribute(F),w=VJ[U.getComponentType()],L=FZ($,U).setArray(new w(W*U.getElementSize()));z.setAttribute(F,L)}let V=Y.getIndices(),H=V?FZ($,V).setArray(kC(G,W)):null;z.setIndices(H);let q=0;for(let F=0;F<Q.length;F++){let U=Z[F],w=U.getIndices(),L=w?w.getCount():-1,j=Q[F];if(w&&H)_B1(w,j,H,q),q+=L;for(let R of z.listSemantics()){let O=U.getAttribute(R),N=z.getAttribute(R);SB1(O,w,j,N)}}return z}function SB1(Z,J,X,Y){let $=Z.getElementSize(),Q=J?J.getArray():null,K=Z.getCount(),W=Z.getArray(),G=Y.getArray(),z=new Uint8Array(Z.getCount());for(let V=0,H=J?J.getCount():K;V<H;V++){let q=Q?Q[V]:V,F=X[q];if(z[F])continue;for(let U=0;U<$;U++)G[F*$+U]=W[q*$+U];z[F]=1}}function _B1(Z,J,X,Y){let $=Z.getCount(),Q=Z.getArray(),K=X.getArray();for(let W=0;W<$;W++){let G=Q[W],z=J[G];K[Y+W]=z}}var DC="join",{ROOT:AB1,NODE:xB1,MESH:hB1,PRIMITIVE:fB1,ACCESSOR:bB1}=a,jC=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],Tn={keepMeshes:!1,keepNamed:!1,cleanup:!0};function Ya(Z=Tn){let J=G7(Tn,Z);return NJ(DC,async(X)=>{let Y=X.getRoot(),$=X.getLogger();for(let Q of Y.listScenes())kn(X,Q,J),Q.traverse((K)=>kn(X,K,J));if(J.cleanup)await X.transform(u2({propertyTypes:[xB1,hB1,fB1,bB1],keepAttributes:!0,keepIndices:!0,keepLeaves:!1}));$.debug(`${DC}: Complete.`)})}function kn(Z,J,X){let Y=Z.getLogger(),$={},Q=J.listChildren();for(let G=0;G<Q.length;G++){let z=Q[G];if(z.listParents().some((q)=>q instanceof tX))continue;let H=z.getMesh();if(!H)continue;if(z.getExtension("EXT_mesh_gpu_instancing"))continue;if(z.getSkin())continue;for(let q of H.listPrimitives()){if(q.listTargets().length>0)continue;let F=q.getMaterial();if(F&&F.getExtension("KHR_materials_volume"))continue;EG(q),gB1(q);let U=hn(q),w=H.getName()||z.getName();if(X.keepMeshes||X.keepNamed&&w)U+=`|${G}`;if(!(U in $))$[U]={prims:[],primMeshes:[],primNodes:[],dstNode:z,dstMesh:void 0};let L=$[U];L.prims.push(q),L.primNodes.push(z)}}let K=Object.values($).filter(({prims:G})=>G.length>1),W=new Set(K.flatMap((G)=>G.primNodes));for(let G of W){let z=G.getMesh();if(z.listParents().some((H)=>{return H.propertyType!==AB1&&G!==H}))G.setMesh(z.clone())}for(let G of K){let{dstNode:z,primNodes:V}=G;G.dstMesh=z.getMesh(),G.primMeshes=V.map((H)=>H.getMesh())}for(let G of K){let{prims:z,primNodes:V,primMeshes:H,dstNode:q,dstMesh:F}=G,U=q.getMatrix();for(let j=0;j<z.length;j++){let R=V[j],O=H[j],N=z[j];if(O.removePrimitive(N),Nw1(N))N=z[j]=yB1(z[j]);if(R!==q)bn(jC,kw1(jC,U),R.getMatrix()),sn(N,jC)}let w=vB1(z),L=w.listAttributes()[0].getCount();F.addPrimitive(w),Y.debug(`${DC}: Joined Primitives (${z.length}) containing ${OC(L)} vertices under Node "${q.getName()}".`)}}function yB1(Z){let J=Z.clone();for(let Y of J.listSemantics())J.setAttribute(Y,J.getAttribute(Y).clone());let X=J.getIndices();if(X)J.setIndices(X.clone());return J}function gB1(Z){for(let J of["POSITION","NORMAL","TANGENT"]){let X=Z.getAttribute(J);if(X)PC(X)}}var{TRANSLATION:WV6,ROTATION:GV6,SCALE:zV6,WEIGHTS:VV6}=tX.TargetPath;var mB1={pattern:/.*/,quantizationVolume:"mesh",quantizePosition:14,quantizeNormal:10,quantizeTexcoord:12,quantizeColor:8,quantizeWeight:8,quantizeGeneric:12,normalizeWeights:!0,cleanup:!0};var HV6=nQ({level:"high"},mB1);var uB1="unweld";function dB1(Z,J=new Map){let X=Z.getIndices();if(!X)return;let Y=Z.getGraph(),$=C6.fromGraph(Y),Q=$.getLogger(),K=Z.getAttribute("POSITION").getCount();for(let G of Z.listAttributes())if(Z.swap(G,En($,G,X,J)),G.listParents().length===1)G.dispose();for(let G of Z.listTargets())for(let z of G.listAttributes())if(G.swap(z,En($,z,X,J)),z.listParents().length===1)z.dispose();let W=Z.getAttribute("POSITION").getCount();if(Q.debug(`${uB1}: ${g2(K,W)} vertices.`),Z.setIndices(null),X.listParents().length===1)X.dispose()}function En(Z,J,X,Y){if(Y.has(J)&&Y.get(J).has(X))return Y.get(J).get(X);let $=J.getArray(),K=new $.constructor(X.getCount()*J.getElementSize()),W=X.getArray(),G=J.getElementSize();for(let V=0,H=X.getCount();V<H;V++)for(let q=0;q<G;q++)K[V*G+q]=$[W[V]*G+q];if(!Y.has(J))Y.set(J,new Map);let z=FZ(Z,J).setArray(K);return Y.get(J).set(X,z),z}var In;(function(Z){Z[Z.STEP=0]="STEP",Z[Z.LERP=1]="LERP",Z[Z.SLERP=2]="SLERP"})(In||(In={}));var cB1=0.000001;function lB1(Z,J,X,Y=0.0001){let $=J.length/Z.length,Q=new Array($).fill(0),K=new Array($).fill(0),W=new Array($).fill(0),G=new Array($).fill(0),z=Z.length-1,V=1;for(let H=1;H<z;++H){let q=Z[V-1],F=Z[H],U=Z[H+1],w=(F-q)/(U-q),L=!1;if(F!==U&&(H!==1||F!==Z[0])){if(kG(J,V-1,G),kG(J,H,K),kG(J,H+1,W),X==="slerp"){let j=nB1(Q,G,W,w),R=Sn(G,K)+Sn(K,W);L=!h2(K,j,Y)||R+Number.EPSILON>=Math.PI}else if(X==="lerp"){let j=iB1(Q,G,W,w);L=!h2(K,j,Y)}else if(X==="step")L=!h2(K,G)||!h2(K,W)}if(L){if(H!==V)Z[V]=Z[H],vn(J,V,kG(J,H,Q));V++}}if(z>0)Z[V]=Z[z],vn(J,V,kG(J,z,Q)),V++;return V}function kG(Z,J,X){for(let Y=0,$=X.length;Y<$;Y++)X[Y]=Z[J*$+Y];return X}function vn(Z,J,X){for(let Y=0,$=X.length;Y<$;Y++)Z[J*$+Y]=X[Y]}function h2(Z,J,X=0){if(Z.length!==J.length)return!1;for(let Y=0;Y<Z.length;Y++)if(Math.abs(Z[Y]-J[Y])>X)return!1;return!0}function pB1(Z,J,X){return Z*(1-X)+J*X}function iB1(Z,J,X,Y){for(let $=0;$<J.length;$++)Z[$]=pB1(J[$],X[$],Y);return Z}function nB1(Z,J,X,Y){let $=J[0],Q=J[1],K=J[2],W=J[3],G=X[0],z=X[1],V=X[2],H=X[3],q,F,U,w,L;if(F=$*G+Q*z+K*V+W*H,F<0)F=-F,G=-G,z=-z,V=-V,H=-H;if(1-F>cB1)q=Math.acos(F),U=Math.sin(q),w=Math.sin((1-Y)*q)/U,L=Math.sin(Y*q)/U;else w=1-Y,L=Y;return Z[0]=w*$+L*G,Z[1]=w*Q+L*z,Z[2]=w*K+L*V,Z[3]=w*W+L*H,Z}function Sn(Z,J){let X=aB1(Z,J);return Math.acos(2*X*X-1)}function aB1(Z,J){return Z[0]*J[0]+Z[1]*J[1]+Z[2]*J[2]+Z[3]*J[3]}var qV6=new Float32Array(0),FV6={ready:Promise.resolve(),resample:lB1,tolerance:0.0001,cleanup:!0};var RY="simplify",{POINTS:$a,LINES:sB1,LINE_STRIP:oB1,LINE_LOOP:rB1,TRIANGLES:tB1,TRIANGLE_STRIP:Qa,TRIANGLE_FAN:Ka}=M8.Mode,Wa={ratio:0,error:0.0001,lockBorder:!1,cleanup:!0};function Ga(Z){let J=G7(Wa,Z),X=J.simplifier;if(!X)throw new Error(`${RY}: simplifier dependency required \u2014 install "meshoptimizer".`);return NJ(RY,async(Y)=>{let $=Y.getLogger();await X.ready,await Y.transform(EC({overwrite:!1,cleanup:J.cleanup}));let Q=0;for(let K of Y.getRoot().listMeshes()){for(let W of K.listPrimitives()){let G=W.getMode();if(G===tB1||G===Qa||G===Ka){if(_n(W,J),RJ(W,L6.RENDER)===0)W.dispose()}else if(W.getMode()===$a&&!!X.simplifyPoints){if(_n(W,J),RJ(W,L6.RENDER)===0)W.dispose()}else Q++}if(K.listPrimitives().length===0)K.dispose()}if(Q>0)$.warn(`${RY}: Skipping simplification of ${Q} primitives: Unsupported draw mode.`);if(J.cleanup)await Y.transform(u2({propertyTypes:[a.ACCESSOR,a.NODE],keepAttributes:!0,keepIndices:!0,keepLeaves:!1}),gn({propertyTypes:[a.ACCESSOR]}));$.debug(`${RY}: Complete.`)})}function _n(Z,J){let X=nQ({},Wa,J),Y=X.simplifier,$=Z.getGraph(),Q=C6.fromGraph($),K=Q.getLogger();switch(Z.getMode()){case $a:return eB1(Q,Z,X);case sB1:case oB1:case rB1:return K.warn(`${RY}: Skipping primitive simplification: Unsupported draw mode.`),Z;case Qa:case Ka:rn(Z);break}let W=RJ(Z,L6.UPLOAD),G=RJ(Z,L6.RENDER);if(G<W/2)EG(Z);let z=Z.getAttribute("POSITION"),V=Z.getIndices(),H=z.getArray(),q=V.getArray();if(!(H instanceof Float32Array))H=y2(H,z.getComponentType(),z.getNormalized());if(!(q instanceof Uint32Array))q=new Uint32Array(q);let F=Math.floor(X.ratio*G/3)*3,U=X.lockBorder?["LockBorder"]:[],[w,L]=Y.simplify(q,H,3,F,X.error,U);if(Z.setIndices(FZ(Q,V).setArray(w)),V.listParents().length===1)V.dispose();EG(Z);let j=RJ(Z,L6.UPLOAD);if(j<=65534)Z.getIndices().setArray(new Uint16Array(Z.getIndices().getArray()));return K.debug(`${RY}: ${g2(W,j)} vertices, error: ${L.toFixed(4)}.`),Z}function eB1(Z,J,X){let Y=X.simplifier,$=Z.getLogger();if(J.getIndices())dB1(J);let K=J.getAttribute("POSITION"),W=J.getAttribute("COLOR_0"),G=K.getCount(),z=K.getArray(),V=W?W.getArray():void 0,H=W?W.getComponentSize():void 0;if(!(z instanceof Float32Array))z=y2(z,K.getComponentType(),K.getNormalized());if(V&&!(V instanceof Float32Array))V=y2(V,K.getComponentType(),K.getNormalized());Y.useExperimentalFeatures=!0;let q=Math.floor(X.ratio*G),F=Y.simplifyPoints(z,3,q,V,H);Y.useExperimentalFeatures=!1;let[U,w]=Y.compactMesh(F);$.debug(`${RY}: ${g2(K.getCount(),w)} vertices.`);for(let L of TC(J)){let j=FZ(Z,L);if(RC(L,null,U,j,w),Ow1(J,L,j),L.listParents().length===1)L.dispose()}return J}var CC;(function(Z){Z.LANCZOS3="lanczos3",Z.LANCZOS2="lanczos2"})(CC||(CC={}));var UV6={resizeFilter:CC.LANCZOS3,pattern:void 0,formats:void 0,slots:void 0,quality:void 0,effort:void 0,lossless:!1,nearLossless:!1,limitInputPixels:!0};var wV6=function(){var Z="b9H79TebbbeJq9Geueu9Geub9Gbb9Gvuuuuueu9Gduueu9Gluuuueu9Gvuuuuub9Gouuuuuub9Gluuuub9GiuuueuiKLdilevlevlooroowwvwbDDbelve9Weiiviebeoweuec:G:Qdkr;RiOo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8A9TW79O9V9Wt9FW9U9J9V9KW9wWVtW949c919M9MWVbe8F9TW79O9V9Wt9FW9U9J9V9KW9wWVtW949c919M9MWV9c9V919U9KbdE9TW79O9V9Wt9FW9U9J9V9KW9wWVtW949wWV79P9V9UbiY9TW79O9V9Wt9FW9U9J9V9KW69U9KW949c919M9MWVbl8E9TW79O9V9Wt9FW9U9J9V9KW69U9KW949c919M9MWV9c9V919U9Kbv8A9TW79O9V9Wt9FW9U9J9V9KW69U9KW949wWV79P9V9UboE9TW79O9V9Wt9FW9U9J9V9KW69U9KW949tWG91W9U9JWbra9TW79O9V9Wt9FW9U9J9V9KW69U9KW949tWG91W9U9JW9c9V919U9KbwL9TW79O9V9Wt9FW9U9J9V9KWS9P2tWV9p9JtbDK9TW79O9V9Wt9FW9U9J9V9KWS9P2tWV9r919HtbqL9TW79O9V9Wt9FW9U9J9V9KWS9P2tWVT949WbkE9TW79O9V9Wt9F9V9Wt9P9T9P96W9wWVtW94J9H9J9OWbPa9TW79O9V9Wt9F9V9Wt9P9T9P96W9wWVtW94J9H9J9OW9ttV9P9Wbsa9TW79O9V9Wt9F9V9Wt9P9T9P96W9wWVtW94SWt9J9O9sW9T9H9WbzK9TW79O9V9Wt9F79W9Ht9P9H29t9VVt9sW9T9H9WbHl79IV9RbODwebcekdQXq;A9pLdbk;QqeKu8Jjjjjbcjo9Rgv8Kjjjjbcbhodnalcefae0mbabcbRbN:kjjbc:GeV86bbavcjdfcbcjdzNjjjb8AdnaiTmbavcjdfadalz:tjjjb8Akabaefhrabcefhwavalfcbcbcjdal9RalcFe0EzNjjjb8Aavavcjdfalz:tjjjbhDcj;abal9Uc;WFbGgecjdaecjd6Ehqcbhkindndnaiak9nmbaDcjlfcbcjdzNjjjb8Aaqaiak9Rakaqfai6Egxcsfgecl4cifcd4hmadakal2fhPdndndnaec9WGgsTmbcbhzaPhHawhOxekdnaxmbalheinaraw9Ram6miawcbamzNjjjbamfhwaecufgembxvkkcbhAaPhOinaDaAfRbbhCaDcjlfheaOhoaxhXinaeaoRbbgQaC9RgCcetaCcKtcK91cr4786bbaoalfhoaecefheaQhCaXcufgXmbkaraw9Ram6mdaOcefhOawcbamzNjjjbamfhwaAcefgAal9hmbxlkkindnaxTmbaDazfRbbhCaDcjlfheaHhoaxhXinaeaoRbbgQaC9RgCcetaCcKtcK91cr4786bbaoalfhoaecefheaQhCaXcufgXmbkkaraO9Ram6mearaOcbamzNjjjbgLamfgw9RcK6mecbhKaDcjlfhOinaDcjlfaKfhYcwhAczhQceheindndnaegXce9hmbcuhoaYRbbmecbhodninaogecsSmeaecefhoaOaefcefRbbTmbkkcucbaecs6EhoxekaXcethocuaXtc;:bGcFb7hCcbheinaoaCaOaefRbb9nfhoaecefgecz9hmbkkaoaQaoaQ6geEhQaXaAaeEhAaXcetheaXcl6mbkdndndndnaAcufPdiebkaLaKco4fgeaeRbbcdciaAclSEaKci4coGtV86bbaAcw9hmeawaY8Pbb83bbawcwfaYcwf8Pbb83bbawczfhwxdkaLaKco4fgeaeRbbceaKci4coGtV86bbkdncwaA9Tg8Ambinawcb86bbawcefhwxbkkcuaAtcu7hYcbhEaOh3ina3hea8AhCcbhoinaeRbbgQaYcFeGgXaQaX6EaoaAtVhoaecefheaCcufgCmbkawao86bba3a8Afh3awcefhwaEa8AfgEcz6mbkcbheindnaOaefRbbgoaX6mbawao86bbawcefhwkaecefgecz9hmbkkdnaKczfgKas9pmbaOczfhOaraw9RcL0mekkaKas6meawTmeaHcefhHawhOazcefgzalSmixbkkcbhoxikcbhoaraw9Ralcaalca0E6mddnalc8F0mbawcbcaal9RgezNjjjbaefhwkawaDcjdfalz:tjjjbalfab9RhoxdkaDaPaxcufal2falz:tjjjb8Aaxakfhkawmbkcbhokavcjof8Kjjjjbaok9heeuaecaaeca0Eabcj;abae9Uc;WFbGgdcjdadcjd6Egdfcufad9Uae2adcl4cifcd4adV2fcefkmbcbabBdN:kjjbk:zse5u8Jjjjjbc;ae9Rgl8Kjjjjbcbhvdnaici9UgocHfae0mbabcbyd:e:kjjbgrc;GeV86bbalc;abfcFecjezNjjjb8AalcUfgw9cu83ibalc8WfgD9cu83ibalcyfgq9cu83ibalcafgk9cu83ibalcKfgx9cu83ibalczfgm9cu83ibal9cu83iwal9cu83ibabaefc9WfhPabcefgsaofhednaiTmbcmcsarcb9kgzEhHcbhOcbhAcbhCcbhXcbhQindnaeaP9nmbcbhvxikaQcufhvadaCcdtfgLydbhKaLcwfydbhYaLclfydbh8AcbhEdndndninalc;abfavcsGcitfgoydlh3dndndnaoydbgoaK9hmba3a8ASmekdnaoa8A9hmba3aY9hmbaEcefhExekaoaY9hmea3aK9hmeaEcdfhEkaEc870mdaXcufhvaLaEciGcx2goc:y1jjbfydbcdtfydbh3aLaocN1jjbfydbcdtfydbh8AaLaoc:q1jjbfydbcdtfydbhKcbhodnindnalavcsGcdtfydba39hmbaohYxdkcuhYavcufhvaocefgocz9hmbkkaOa3aOSgvaYce9iaYaH9oVgoGfhOdndndncbcsavEaYaoEgvcs9hmbarce9imba3a3aAa3cefaASgvEgAcefSmecmcsavEhvkasavaEcdtc;WeGV86bbavcs9hmea3aA9Rgvcetavc8F917hvinaeavcFb0crtavcFbGV86bbaecefheavcje6hoavcr4hvaoTmbka3hAxvkcPhvasaEcdtcPV86bba3hAkavTmiavaH9omicdhocehEaQhYxlkavcufhvaEclfgEc;ab9hmbkkdnaLceaYaOSceta8AaOSEcx2gvc:q1jjbfydbcdtfydbgKTaLavcN1jjbfydbcdtfydbg8AceSGaLavc:y1jjbfydbcdtfydbg3cdSGaOcb9hGazGg5ce9hmbaw9cu83ibaD9cu83ibaq9cu83ibak9cu83ibax9cu83ibam9cu83ibal9cu83iwal9cu83ibcbhOkcbhEaXcufgvhodnindnalaocsGcdtfydba8A9hmbaEhYxdkcuhYaocufhoaEcefgEcz9hmbkkcbhodnindnalavcsGcdtfydba39hmbaohExdkcuhEavcufhvaocefgocz9hmbkkaOaKaOSg8EfhLdndnaYcm0mbaYcefhYxekcbcsa8AaLSgvEhYaLavfhLkdndnaEcm0mbaEcefhExekcbcsa3aLSgvEhEaLavfhLkc9:cua8EEh8FcbhvaEaYcltVgacFeGhodndndninavcj1jjbfRbbaoSmeavcefgvcz9hmbxdkka5aKaO9havcm0VVmbasavc;WeV86bbxekasa8F86bbaeaa86bbaecefhekdna8EmbaKaA9Rgvcetavc8F917hvinaeavcFb0gocrtavcFbGV86bbavcr4hvaecefheaombkaKhAkdnaYcs9hmba8AaA9Rgvcetavc8F917hvinaeavcFb0gocrtavcFbGV86bbavcr4hvaecefheaombka8AhAkdnaEcs9hmba3aA9Rgvcetavc8F917hvinaeavcFb0gocrtavcFbGV86bbavcr4hvaecefheaombka3hAkalaXcdtfaKBdbaXcefcsGhvdndnaYPzbeeeeeeeeeeeeeebekalavcdtfa8ABdbaXcdfcsGhvkdndnaEPzbeeeeeeeeeeeeeebekalavcdtfa3BdbavcefcsGhvkcihoalc;abfaQcitfgEaKBdlaEa8ABdbaQcefcsGhYcdhEavhXaLhOxekcdhoalaXcdtfa3BdbcehEaXcefcsGhXaQhYkalc;abfaYcitfgva8ABdlava3Bdbalc;abfaQaEfcsGcitfgva3BdlavaKBdbascefhsaQaofcsGhQaCcifgCai6mbkkcbhvaeaP0mbcbhvinaeavfavcj1jjbfRbb86bbavcefgvcz9hmbkaeab9Ravfhvkalc;aef8KjjjjbavkZeeucbhddninadcefgdc8F0meceadtae6mbkkadcrfcFeGcr9Uci2cdfabci9U2cHfkmbcbabBd:e:kjjbk:ydewu8Jjjjjbcz9Rhlcbhvdnaicvfae0mbcbhvabcbRb:e:kjjbc;qeV86bbal9cb83iwabcefhoabaefc98fhrdnaiTmbcbhwcbhDindnaoar6mbcbskadaDcdtfydbgqalcwfawaqav9Rgvavc8F91gv7av9Rc507gwcdtfgkydb9Rgvc8E91c9:Gavcdt7awVhvinaoavcFb0gecrtavcFbGV86bbavcr4hvaocefhoaembkakaqBdbaqhvaDcefgDai9hmbkkcbhvaoar0mbaocbBbbaoab9RclfhvkavkBeeucbhddninadcefgdc8F0meceadtae6mbkkadcwfcFeGcr9Uab2cvfk:bvli99dui99ludnaeTmbcuadcetcuftcu7:Yhvdndncuaicuftcu7:YgoJbbbZMgr:lJbbb9p9DTmbar:Ohwxekcjjjj94hwkcbhicbhDinalclfIdbgrJbbbbJbbjZalIdbgq:lar:lMalcwfIdbgk:lMgr:varJbbbb9BEgrNhxaqarNhrdndnakJbbbb9GTmbaxhqxekJbbjZar:l:tgqaq:maxJbbbb9GEhqJbbjZax:l:tgxax:marJbbbb9GEhrkdndnalcxfIdbgxJbbj:;axJbbj:;9GEgkJbbjZakJbbjZ9FEavNJbbbZJbbb:;axJbbbb9GEMgx:lJbbb9p9DTmbax:Ohmxekcjjjj94hmkdndnaqJbbj:;aqJbbj:;9GEgxJbbjZaxJbbjZ9FEaoNJbbbZJbbb:;aqJbbbb9GEMgq:lJbbb9p9DTmbaq:OhPxekcjjjj94hPkdndnarJbbj:;arJbbj:;9GEgqJbbjZaqJbbjZ9FEaoNJbbbZJbbb:;arJbbbb9GEMgr:lJbbb9p9DTmbar:Ohsxekcjjjj94hskdndnadcl9hmbabaifgzas86bbazcifam86bbazcdfaw86bbazcefaP86bbxekabaDfgzas87ebazcofam87ebazclfaw87ebazcdfaP87ebkalczfhlaiclfhiaDcwfhDaecufgembkkk;hlld99eud99eudnaeTmbdndncuaicuftcu7:YgvJbbbZMgo:lJbbb9p9DTmbao:Ohixekcjjjj94hikaic;8FiGhrinabcofcicdalclfIdb:lalIdb:l9EgialcwfIdb:lalaicdtfIdb:l9EEgialcxfIdb:lalaicdtfIdb:l9EEgiarV87ebdndnJbbj:;JbbjZalaicdtfIdbJbbbb9DEgoalaicd7cdtfIdbJ;Zl:1ZNNgwJbbj:;awJbbj:;9GEgDJbbjZaDJbbjZ9FEavNJbbbZJbbb:;awJbbbb9GEMgw:lJbbb9p9DTmbaw:Ohqxekcjjjj94hqkabcdfaq87ebdndnalaicefciGcdtfIdbJ;Zl:1ZNaoNgwJbbj:;awJbbj:;9GEgDJbbjZaDJbbjZ9FEavNJbbbZJbbb:;awJbbbb9GEMgw:lJbbb9p9DTmbaw:Ohqxekcjjjj94hqkabaq87ebdndnaoalaicufciGcdtfIdbJ;Zl:1ZNNgoJbbj:;aoJbbj:;9GEgwJbbjZawJbbjZ9FEavNJbbbZJbbb:;aoJbbbb9GEMgo:lJbbb9p9DTmbao:Ohixekcjjjj94hikabclfai87ebabcwfhbalczfhlaecufgembkkk;3viDue99eu8Jjjjjbcjd9Rgo8Kjjjjbadcd4hrdndndndnavcd9hmbadcl6meaohwarhDinawc:CuBdbawclfhwaDcufgDmbkaeTmiadcl6mdarcdthqalhkcbhxinaohwakhDarhminawawydbgPcbaDIdbgs:8cL4cFeGc:cufasJbbbb9BEgzaPaz9kEBdbaDclfhDawclfhwamcufgmmbkakaqfhkaxcefgxaeSmixbkkaeTmdxekaeTmekarcdthkavce9hhqadcl6hdcbhxindndndnaqmbadmdc:CuhDalhwarhminaDcbawIdbgs:8cL4cFeGc:cufasJbbbb9BEgPaDaP9kEhDawclfhwamcufgmmbxdkkc:CuhDdndnavPleddbdkadmdaohwalhmarhPinawcbamIdbgs:8cL4cFeGgzc;:bazc;:b9kEc:cufasJbbbb9BEBdbamclfhmawclfhwaPcufgPmbxdkkadmecbhwarhminaoawfcbalawfIdbgs:8cL4cFeGgPc8AaPc8A9kEc:cufasJbbbb9BEBdbawclfhwamcufgmmbkkadmbcbhwarhPinaDhmdnavceSmbaoawfydbhmkdndnalawfIdbgscjjj;8iamai9RcefgmcLt9R::NJbbbZJbbb:;asJbbbb9GEMgs:lJbbb9p9DTmbas:Ohzxekcjjjj94hzkabawfazcFFFrGamcKtVBdbawclfhwaPcufgPmbkkabakfhbalakfhlaxcefgxae9hmbkkaocjdf8Kjjjjbk;HqdCui998Jjjjjbc:qd9Rgv8Kjjjjbavc:Sefcbc;KbzNjjjb8AcbhodnadTmbcbhoaiTmbdnabae9hmbavcuadcdtgradcFFFFi0Ecbyd:m:kjjbHjjjjbbgeBd:SeavceBd:mdaeabarz:tjjjb8Akavc:GefcwfcbBdbav9cb83i:Geavc:Gefaeadaiavc:Sefz:njjjbavyd:Gehwadci9UgDcbyd:m:kjjbHjjjjbbhravc:Sefavyd:mdgqcdtfarBdbavaqcefgkBd:mdarcbaDzNjjjbhxavc:SefakcdtfcuaicdtaicFFFFi0Ecbyd:m:kjjbHjjjjbbgmBdbavaqcdfgPBd:mdawhramhkinakalIdbalarydbgscwascw6Ecdtfc;ebfIdbMUdbarclfhrakclfhkaicufgimbkavc:SefaPcdtfcuaDcdtadcFFFF970Ecbyd:m:kjjbHjjjjbbgPBdbdnadci6mbaehraPhkaDhiinakamarydbcdtfIdbamarclfydbcdtfIdbMamarcwfydbcdtfIdbMUdbarcxfhrakclfhkaicufgimbkkaqcifhoavc;qbfhzavhravyd:KehHavyd:OehOcbhscbhkcbhAcehCinarhXcihQaeakci2gLcdtfgrydbhdarclfydbhqabaAcx2fgicwfarcwfydbgKBdbaiclfaqBdbaiadBdbaxakfce86bbazaKBdwazaqBdlazadBdbaPakcdtfcbBdbdnasTmbcihQaXhiinazaQcdtfaiydbgrBdbaQaraK9harad9haraq9hGGfhQaiclfhiascufgsmbkkaAcefhAcbhsinaOaHaeasaLfcdtfydbcdtgifydbcdtfgKhrawaifgqydbgdhidnadTmbdninarydbakSmearclfhraicufgiTmdxbkkaraKadcdtfc98fydbBdbaqaqydbcufBdbkascefgsci9hmbkdndnaQTmbcuhkJbbbbhYcbhqavyd:KehKavyd:OehLindndnawazaqcdtfydbcdtgsfydbgrmbaqcefhqxekaqcs0hiamasfgdIdbh8AadalcbaqcefgqaiEcdtfIdbalarcwarcw6Ecdtfc;ebfIdbMgEUdbaEa8A:thEarcdthiaLaKasfydbcdtfhrinaParydbgscdtfgdaEadIdbMg8AUdba8AaYaYa8A9DgdEhYasakadEhkarclfhraic98fgimbkkaqaQ9hmbkakcu9hmekaCaD9pmdindnaxaCfRbbmbaChkxdkaDaCcefgC9hmbxikkaQczaQcz6EhsazhraXhzakcu9hmbkkaocdtavc:Seffc98fhrdninaoTmearydbcbyd1:kjjbH:bjjjbbarc98fhraocufhoxbkkavc:qdf8Kjjjjbk;IlevucuaicdtgvaicFFFFi0Egocbyd:m:kjjbHjjjjbbhralalyd9GgwcdtfarBdbalawcefBd9GabarBdbaocbyd:m:kjjbHjjjjbbhralalyd9GgocdtfarBdbalaocefBd9GabarBdlcuadcdtadcFFFFi0Ecbyd:m:kjjbHjjjjbbhralalyd9GgocdtfarBdbalaocefBd9GabarBdwabydbcbavzNjjjb8Aadci9UhDdnadTmbabydbhoaehladhrinaoalydbcdtfgvavydbcefBdbalclfhlarcufgrmbkkdnaiTmbabydbhlabydlhrcbhvaihoinaravBdbarclfhralydbavfhvalclfhlaocufgombkkdnadci6mbabydlhrabydwhvcbhlinaecwfydbhoaeclfydbhdaraeydbcdtfgwawydbgwcefBdbavawcdtfalBdbaradcdtfgdadydbgdcefBdbavadcdtfalBdbaraocdtfgoaoydbgocefBdbavaocdtfalBdbaecxfheaDalcefgl9hmbkkdnaiTmbabydlheabydbhlinaeaeydbalydb9RBdbalclfhlaeclfheaicufgimbkkkQbabaeadaic:01jjbz:mjjjbkQbabaeadaic:C:jjjbz:mjjjbk9DeeuabcFeaicdtzNjjjbhlcbhbdnadTmbindnalaeydbcdtfgiydbcu9hmbaiabBdbabcefhbkaeclfheadcufgdmbkkabk;Wkivuo99lu8Jjjjjbc;W;Gb9Rgl8Kjjjjbcbhvalcj;Gbfcbc;KbzNjjjb8AalcuadcdtadcFFFFi0Egocbyd:m:kjjbHjjjjbbgrBdj9GalceBd;G9GalcFFF;7rBdwal9cFFF;7;3FF:;Fb83dbalcFFF97Bd;S9Gal9cFFF;7FFF:;u83d;K9Gaicd4hwdndnadmbJFFuFhDJFFuuhqJFFuuhkJFFuFhxJFFuuhmJFFuFhPxekawcdthsaehzincbhiinalaifgHazaifIdbgDaHIdbgxaxaD9EEUdbalc;K;GbfaifgHaDaHIdbgxaxaD9DEUdbaiclfgicx9hmbkazasfhzavcefgvad9hmbkalIdwhqalId;S9GhDalIdlhkalId;O9GhxalIdbhmalId;K9GhPkdndnadTmbJbbbbJbbjZJbbbbaPam:tgPaPJbbbb9DEgPaxak:tgxaxaP9DEgxaDaq:tgDaDax9DEgD:vaDJbbbb9BEhDawcdthsarhHadhzindndnaDaeIdbam:tNJb;au9eNJbbbZMgx:lJbbb9p9DTmbax:Ohixekcjjjj94hikaicztaicwtcj;GiGVaicsGVc:p;G:dKGcH2c;d;H:WKGcv2c;j:KM;jbGhvdndnaDaeclfIdbak:tNJb;au9eNJbbbZMgx:lJbbb9p9DTmbax:Ohixekcjjjj94hikaicztaicwtcj;GiGVaicsGVc:p;G:dKGcH2c;d;H:WKGcq2cM;j:KMeGavVhvdndnaDaecwfIdbaq:tNJb;au9eNJbbbZMgx:lJbbb9p9DTmbax:Ohixekcjjjj94hikaHavaicztaicwtcj;GiGVaicsGVc:p;G:dKGcH2c;d;H:WKGcC2c:KM;j:KdGVBdbaeasfheaHclfhHazcufgzmbkalcbcj;GbzNjjjbhiarhHadheinaiaHydbgzcFrGcx2fgvavydbcefBdbaiazcq4cFrGcx2fgvavydlcefBdlaiazcC4cFrGcx2fgzazydwcefBdwaHclfhHaecufgembxdkkalcbcj;GbzNjjjb8AkcbhHcbhzcbhecbhvinalaHfgiydbhsaiazBdbaicwfgwydbhOawavBdbaiclfgiydbhwaiaeBdbasazfhzaOavfhvawaefheaHcxfgHcj;Gb9hmbkcbhHalaocbyd:m:kjjbHjjjjbbgiBd:e9GdnadTmbabhzinazaHBdbazclfhzadaHcefgH9hmbkabhHadhzinalaraHydbgecdtfydbcFrGcx2fgvavydbgvcefBdbaiavcdtfaeBdbaHclfhHazcufgzmbkaihHadhzinalaraHydbgecdtfydbcq4cFrGcx2fgvavydlgvcefBdlabavcdtfaeBdbaHclfhHazcufgzmbkabhHadhzinalaraHydbgecdtfydbcC4cFrGcx2fgvavydwgvcefBdwaiavcdtfaeBdbaHclfhHazcufgzmbkcbhHinabaiydbcdtfaHBdbaiclfhiadaHcefgH9hmbkkclhidninaic98Smealcj;Gbfaifydbcbyd1:kjjbH:bjjjbbaic98fhixbkkalc;W;Gbf8Kjjjjbk9teiucbcbyd:q:kjjbgeabcifc98GfgbBd:q:kjjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik;LeeeudndnaeabVciGTmbabhixekdndnadcz9pmbabhixekabhiinaiaeydbBdbaiclfaeclfydbBdbaicwfaecwfydbBdbaicxfaecxfydbBdbaeczfheaiczfhiadc9Wfgdcs0mbkkadcl6mbinaiaeydbBdbaeclfheaiclfhiadc98fgdci0mbkkdnadTmbinaiaeRbb86bbaicefhiaecefheadcufgdmbkkabk;aeedudndnabciGTmbabhixekaecFeGc:b:c:ew2hldndnadcz9pmbabhixekabhiinaialBdbaicxfalBdbaicwfalBdbaiclfalBdbaiczfhiadc9Wfgdcs0mbkkadcl6mbinaialBdbaiclfhiadc98fgdci0mbkkdnadTmbinaiae86bbaicefhiadcufgdmbkkabk9teiucbcbyd:q:kjjbgeabcrfc94GfgbBd:q:kjjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik9:eiuZbhedndncbyd:q:kjjbgdaecztgi9nmbcuheadai9RcFFifcz4nbcuSmekadhekcbabae9Rcifc98Gcbyd:q:kjjbfgdBd:q:kjjbdnadZbcztge9nmbadae9RcFFifcz4nb8Akkk:Iddbcjwk:edb4:h9w9N94:P:gW:j9O:ye9Pbbbbbbebbbdbbbebbbdbbbbbbbdbbbbbbbebbbbbbb:l29hZ;69:9kZ;N;76Z;rg97Z;z;o9xZ8J;B85Z;:;u9yZ;b;k9HZ:2;Z9DZ9e:l9mZ59A8KZ:r;T3Z:A:zYZ79OHZ;j4::8::Y:D9V8:bbbb9s:49:Z8R:hBZ9M9M;M8:L;z;o8:;8:PG89q;x:J878R:hQ8::M:B;e87bbbbbbjZbbjZbbjZ:E;V;N8::Y:DsZ9i;H;68:xd;R8:;h0838:;W:NoZbbbb:WV9O8:uf888:9i;H;68:9c9G;L89;n;m9m89;D8Ko8:bbbbf:8tZ9m836ZS:2AZL;zPZZ818EZ9e:lxZ;U98F8:819E;68:bc:eqkzebbbebbbdbbba:vbb",J=new Uint8Array([32,0,65,2,1,106,34,33,3,128,11,4,13,64,6,253,10,7,15,116,127,5,8,12,40,16,19,54,20,9,27,255,113,17,42,67,24,23,146,148,18,14,22,45,70,69,56,114,101,21,25,63,75,136,108,28,118,29,73,115]);if(typeof WebAssembly!=="object")return{supported:!1};var X,Y=WebAssembly.instantiate($(Z),{}).then(function(F){X=F.instance,X.exports.__wasm_call_ctors(),X.exports.meshopt_encodeVertexVersion(0),X.exports.meshopt_encodeIndexVersion(1)});function $(F){var U=new Uint8Array(F.length);for(var w=0;w<F.length;++w){var L=F.charCodeAt(w);U[w]=L>96?L-97:L>64?L-39:L+4}var j=0;for(var w=0;w<F.length;++w)U[j++]=U[w]<60?J[U[w]]:(U[w]-60)*64+U[++w];return U.buffer.slice(0,j)}function Q(F){if(!F)throw new Error("Assertion failed")}function K(F){return new Uint8Array(F.buffer,F.byteOffset,F.byteLength)}function W(F,U,w,L){var j=X.exports.sbrk,R=j(U.length*4),O=j(w*4),N=new Uint8Array(X.exports.memory.buffer),D=K(U);if(N.set(D,R),L)L(R,R,U.length,w);var P=F(O,R,U.length,w);N=new Uint8Array(X.exports.memory.buffer);var C=new Uint32Array(w);new Uint8Array(C.buffer).set(N.subarray(O,O+w*4)),D.set(N.subarray(R,R+U.length*4)),j(R-j(0));for(var T=0;T<U.length;++T)U[T]=C[U[T]];return[C,P]}function G(F,U,w,L){var j=X.exports.sbrk,R=j(w*4),O=j(w*L),N=new Uint8Array(X.exports.memory.buffer);N.set(K(U),O),F(R,O,w,L),N=new Uint8Array(X.exports.memory.buffer);var D=new Uint32Array(w);return new Uint8Array(D.buffer).set(N.subarray(R,R+w*4)),j(R-j(0)),D}function z(F,U,w,L,j){var R=X.exports.sbrk,O=R(U),N=R(L*j),D=new Uint8Array(X.exports.memory.buffer);D.set(K(w),N);var P=F(O,U,N,L,j),C=new Uint8Array(P);return C.set(D.subarray(O,O+P)),R(O-R(0)),C}function V(F){var U=0;for(var w=0;w<F.length;++w){var L=F[w];U=U<L?L:U}return U}function H(F,U){if(Q(U==2||U==4),U==4)return new Uint32Array(F.buffer,F.byteOffset,F.byteLength/4);else{var w=new Uint16Array(F.buffer,F.byteOffset,F.byteLength/2);return new Uint32Array(w)}}function q(F,U,w,L,j,R,O){var N=X.exports.sbrk,D=N(w*L),P=N(w*R),C=new Uint8Array(X.exports.memory.buffer);C.set(K(U),P),F(D,w,L,j,P,O);var T=new Uint8Array(w*L);return T.set(C.subarray(D,D+w*L)),N(D-N(0)),T}return{ready:Y,supported:!0,reorderMesh:function(F,U,w){var L=U?w?X.exports.meshopt_optimizeVertexCacheStrip:X.exports.meshopt_optimizeVertexCache:void 0;return W(X.exports.meshopt_optimizeVertexFetchRemap,F,V(F)+1,L)},reorderPoints:function(F,U){return Q(F instanceof Float32Array),Q(F.length%U==0),Q(U>=3),G(X.exports.meshopt_spatialSortRemap,F,F.length/U,U*4)},encodeVertexBuffer:function(F,U,w){Q(w>0&&w<=256),Q(w%4==0);var L=X.exports.meshopt_encodeVertexBufferBound(U,w);return z(X.exports.meshopt_encodeVertexBuffer,L,F,U,w)},encodeIndexBuffer:function(F,U,w){Q(w==2||w==4),Q(U%3==0);var L=H(F,w),j=X.exports.meshopt_encodeIndexBufferBound(U,V(L)+1);return z(X.exports.meshopt_encodeIndexBuffer,j,L,U,4)},encodeIndexSequence:function(F,U,w){Q(w==2||w==4);var L=H(F,w),j=X.exports.meshopt_encodeIndexSequenceBound(U,V(L)+1);return z(X.exports.meshopt_encodeIndexSequence,j,L,U,4)},encodeGltfBuffer:function(F,U,w,L){var j={ATTRIBUTES:this.encodeVertexBuffer,TRIANGLES:this.encodeIndexBuffer,INDICES:this.encodeIndexSequence};return Q(j[L]),j[L](F,U,w)},encodeFilterOct:function(F,U,w,L){return Q(w==4||w==8),Q(L>=1&&L<=16),q(X.exports.meshopt_encodeFilterOct,F,U,w,L,16)},encodeFilterQuat:function(F,U,w,L){return Q(w==8),Q(L>=4&&L<=16),q(X.exports.meshopt_encodeFilterQuat,F,U,w,L,16)},encodeFilterExp:function(F,U,w,L,j){Q(w>0&&w%4==0),Q(L>=1&&L<=24);var R={Separate:0,SharedVector:1,SharedComponent:2,Clamped:3};return q(X.exports.meshopt_encodeFilterExp,F,U,w,L,w,j?R[j]:1)}}}();var jV6=function(){var Z="b9H79Tebbbe8Fv9Gbb9Gvuuuuueu9Giuuub9Geueu9Giuuueuikqbeeedddillviebeoweuec:q:Odkr;leDo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8A9TW79O9V9Wt9F9KW9J9V9KW9wWVtW949c919M9MWVbeY9TW79O9V9Wt9F9KW9J9V9KW69U9KW949c919M9MWVbdE9TW79O9V9Wt9F9KW9J9V9KW69U9KW949tWG91W9U9JWbiL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9p9JtblK9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9r919HtbvL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWVT949Wbol79IV9Rbrq;w8Wqdbk;esezu8Jjjjjbcj;eb9Rgv8Kjjjjbc9:hodnadcefal0mbcuhoaiRbbc:Ge9hmbavaialfgrad9Radz1jjjbhwcj;abad9Uc;WFbGgocjdaocjd6EhDaicefhocbhqdnindndndnaeaq9nmbaDaeaq9RaqaDfae6Egkcsfglcl4cifcd4hxalc9WGgmTmecbhPawcjdfhsaohzinaraz9Rax6mvarazaxfgo9RcK6mvczhlcbhHinalgic9WfgOawcj;cbffhldndndndndnazaOco4fRbbaHcoG4ciGPlbedibkal9cb83ibalcwf9cb83ibxikalaoRblaoRbbgOco4gAaAciSgAE86bbawcj;cbfaifglcGfaoclfaAfgARbbaOcl4ciGgCaCciSgCE86bbalcVfaAaCfgARbbaOcd4ciGgCaCciSgCE86bbalc7faAaCfgARbbaOciGgOaOciSgOE86bbalctfaAaOfgARbbaoRbegOco4gCaCciSgCE86bbalc91faAaCfgARbbaOcl4ciGgCaCciSgCE86bbalc4faAaCfgARbbaOcd4ciGgCaCciSgCE86bbalc93faAaCfgARbbaOciGgOaOciSgOE86bbalc94faAaOfgARbbaoRbdgOco4gCaCciSgCE86bbalc95faAaCfgARbbaOcl4ciGgCaCciSgCE86bbalc96faAaCfgARbbaOcd4ciGgCaCciSgCE86bbalc97faAaCfgARbbaOciGgOaOciSgOE86bbalc98faAaOfgORbbaoRbigoco4gAaAciSgAE86bbalc99faOaAfgORbbaocl4ciGgAaAciSgAE86bbalc9:faOaAfgORbbaocd4ciGgAaAciSgAE86bbalcufaOaAfglRbbaociGgoaociSgoE86bbalaofhoxdkalaoRbwaoRbbgOcl4gAaAcsSgAE86bbawcj;cbfaifglcGfaocwfaAfgARbbaOcsGgOaOcsSgOE86bbalcVfaAaOfgORbbaoRbegAcl4gCaCcsSgCE86bbalc7faOaCfgORbbaAcsGgAaAcsSgAE86bbalctfaOaAfgORbbaoRbdgAcl4gCaCcsSgCE86bbalc91faOaCfgORbbaAcsGgAaAcsSgAE86bbalc4faOaAfgORbbaoRbigAcl4gCaCcsSgCE86bbalc93faOaCfgORbbaAcsGgAaAcsSgAE86bbalc94faOaAfgORbbaoRblgAcl4gCaCcsSgCE86bbalc95faOaCfgORbbaAcsGgAaAcsSgAE86bbalc96faOaAfgORbbaoRbvgAcl4gCaCcsSgCE86bbalc97faOaCfgORbbaAcsGgAaAcsSgAE86bbalc98faOaAfgORbbaoRbogAcl4gCaCcsSgCE86bbalc99faOaCfgORbbaAcsGgAaAcsSgAE86bbalc9:faOaAfgORbbaoRbrgocl4gAaAcsSgAE86bbalcufaOaAfglRbbaocsGgoaocsSgoE86bbalaofhoxekalao8Pbb83bbalcwfaocwf8Pbb83bbaoczfhokdnaiam9pmbaHcdfhHaiczfhlarao9RcL0mekkaiam6mvaoTmvdnakTmbawaPfRbbhHawcj;cbfhlashiakhOinaialRbbgzce4cbazceG9R7aHfgH86bbaiadfhialcefhlaOcufgOmbkkascefhsaohzaPcefgPad9hmbxikkcbc99arao9Radcaadca0ESEhoxlkaoaxad2fhCdnakmbadhlinaoTmlarao9Rax6mlaoaxfhoalcufglmbkaChoxekcbhmawcjdfhAinarao9Rax6miawamfRbbhHawcj;cbfhlaAhiakhOinaialRbbgzce4cbazceG9R7aHfgH86bbaiadfhialcefhlaOcufgOmbkaAcefhAaoaxfhoamcefgmad9hmbkaChokabaqad2fawcjdfakad2z1jjjb8Aawawcjdfakcufad2fadz1jjjb8Aakaqfhqaombkc9:hoxekc9:hokavcj;ebf8Kjjjjbaok;cseHu8Jjjjjbc;ae9Rgv8Kjjjjbc9:hodnaeci9UgrcHfal0mbcuhoaiRbbgwc;WeGc;Ge9hmbawcsGgwce0mbavc;abfcFecjez:jjjjb8AavcUf9cu83ibavc8Wf9cu83ibavcyf9cu83ibavcaf9cu83ibavcKf9cu83ibavczf9cu83ibav9cu83iwav9cu83ibaialfc9WfhDaicefgqarfhidnaeTmbcmcsawceSEhkcbhxcbhmcbhPcbhwcbhlindnaiaD9nmbc9:hoxikdndnaqRbbgoc;Ve0mbavc;abfalaocu7gscl4fcsGcitfgzydlhrazydbhzdnaocsGgHak9pmbavawasfcsGcdtfydbaxaHEhoaHThsdndnadcd9hmbabaPcetfgHaz87ebaHclfao87ebaHcdfar87ebxekabaPcdtfgHazBdbaHcwfaoBdbaHclfarBdbkaxasfhxcdhHavawcdtfaoBdbawasfhwcehsalhOxdkdndnaHcsSmbaHc987aHamffcefhoxekaicefhoai8SbbgHcFeGhsdndnaHcu9mmbaohixekaicvfhiascFbGhscrhHdninao8SbbgOcFbGaHtasVhsaOcu9kmeaocefhoaHcrfgHc8J9hmbxdkkaocefhikasce4cbasceG9R7amfhokdndnadcd9hmbabaPcetfgHaz87ebaHclfao87ebaHcdfar87ebxekabaPcdtfgHazBdbaHcwfaoBdbaHclfarBdbkcdhHavawcdtfaoBdbcehsawcefhwalhOaohmxekdnaocpe0mbaxcefgHavawaDaocsGfRbbgocl49RcsGcdtfydbaocz6gzEhravawao9RcsGcdtfydbaHazfgAaocsGgHEhoaHThCdndnadcd9hmbabaPcetfgHax87ebaHclfao87ebaHcdfar87ebxekabaPcdtfgHaxBdbaHcwfaoBdbaHclfarBdbkcdhsavawcdtfaxBdbavawcefgwcsGcdtfarBdbcihHavc;abfalcitfgOaxBdlaOarBdbavawazfgwcsGcdtfaoBdbalcefcsGhOawaCfhwaxhzaAaCfhxxekaxcbaiRbbgOEgzaoc;:eSgHfhraOcsGhCaOcl4hAdndnaOcs0mbarcefhoxekarhoavawaA9RcsGcdtfydbhrkdndnaCmbaocefhxxekaohxavawaO9RcsGcdtfydbhokdndnaHTmbaicefhHxekaicdfhHai8SbegscFeGhzdnascu9kmbaicofhXazcFbGhzcrhidninaH8SbbgscFbGaitazVhzascu9kmeaHcefhHaicrfgic8J9hmbkaXhHxekaHcefhHkazce4cbazceG9R7amfgmhzkdndnaAcsSmbaHhsxekaHcefhsaH8SbbgicFeGhrdnaicu9kmbaHcvfhXarcFbGhrcrhidninas8SbbgHcFbGaitarVhraHcu9kmeascefhsaicrfgic8J9hmbkaXhsxekascefhskarce4cbarceG9R7amfgmhrkdndnaCcsSmbashixekascefhias8SbbgocFeGhHdnaocu9kmbascvfhXaHcFbGhHcrhodninai8SbbgscFbGaotaHVhHascu9kmeaicefhiaocrfgoc8J9hmbkaXhixekaicefhikaHce4cbaHceG9R7amfgmhokdndnadcd9hmbabaPcetfgHaz87ebaHclfao87ebaHcdfar87ebxekabaPcdtfgHazBdbaHcwfaoBdbaHclfarBdbkcdhsavawcdtfazBdbavawcefgwcsGcdtfarBdbcihHavc;abfalcitfgXazBdlaXarBdbavawaOcz6aAcsSVfgwcsGcdtfaoBdbawaCTaCcsSVfhwalcefcsGhOkaqcefhqavc;abfaOcitfgOarBdlaOaoBdbavc;abfalasfcsGcitfgraoBdlarazBdbawcsGhwalaHfcsGhlaPcifgPae6mbkkcbc99aiaDSEhokavc;aef8Kjjjjbaok:flevu8Jjjjjbcz9Rhvc9:hodnaecvfal0mbcuhoaiRbbc;:eGc;qe9hmbav9cb83iwaicefhraialfc98fhwdnaeTmbdnadcdSmbcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcdtfaic8Etc8F91aicd47avcwfaiceGcdtVgoydbfglBdbaoalBdbaDcefgDae9hmbxdkkcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcetfaic8Etc8F91aicd47avcwfaiceGcdtVgoydbfgl87ebaoalBdbaDcefgDae9hmbkkcbc99arawSEhokaok:Lvoeue99dud99eud99dndnadcl9hmbaeTmeindndnabcdfgd8Sbb:Yab8Sbbgi:Ygl:l:tabcefgv8Sbbgo:Ygr:l:tgwJbb;:9cawawNJbbbbawawJbbbb9GgDEgq:mgkaqaicb9iEalMgwawNakaqaocb9iEarMgqaqNMM:r:vglNJbbbZJbbb:;aDEMgr:lJbbb9p9DTmbar:Ohixekcjjjj94hikadai86bbdndnaqalNJbbbZJbbb:;aqJbbbb9GEMgq:lJbbb9p9DTmbaq:Ohdxekcjjjj94hdkavad86bbdndnawalNJbbbZJbbb:;awJbbbb9GEMgw:lJbbb9p9DTmbaw:Ohdxekcjjjj94hdkabad86bbabclfhbaecufgembxdkkaeTmbindndnabclfgd8Ueb:Yab8Uebgi:Ygl:l:tabcdfgv8Uebgo:Ygr:l:tgwJb;:FSawawNJbbbbawawJbbbb9GgDEgq:mgkaqaicb9iEalMgwawNakaqaocb9iEarMgqaqNMM:r:vglNJbbbZJbbb:;aDEMgr:lJbbb9p9DTmbar:Ohixekcjjjj94hikadai87ebdndnaqalNJbbbZJbbb:;aqJbbbb9GEMgq:lJbbb9p9DTmbaq:Ohdxekcjjjj94hdkavad87ebdndnawalNJbbbZJbbb:;awJbbbb9GEMgw:lJbbb9p9DTmbaw:Ohdxekcjjjj94hdkabad87ebabcwfhbaecufgembkkk;oiliui99iue99dnaeTmbcbhiabhlindndnJ;Zl81Zalcof8UebgvciV:Y:vgoal8Ueb:YNgrJb;:FSNJbbbZJbbb:;arJbbbb9GEMgw:lJbbb9p9DTmbaw:OhDxekcjjjj94hDkalclf8Uebhqalcdf8UebhkabaiavcefciGfcetfaD87ebdndnaoak:YNgwJb;:FSNJbbbZJbbb:;awJbbbb9GEMgx:lJbbb9p9DTmbax:OhDxekcjjjj94hDkabaiavciGfgkcd7cetfaD87ebdndnaoaq:YNgoJb;:FSNJbbbZJbbb:;aoJbbbb9GEMgx:lJbbb9p9DTmbax:OhDxekcjjjj94hDkabaiavcufciGfcetfaD87ebdndnJbbjZararN:tawawN:taoaoN:tgrJbbbbarJbbbb9GE:rJb;:FSNJbbbZMgr:lJbbb9p9DTmbar:Ohvxekcjjjj94hvkabakcetfav87ebalcwfhlaiclfhiaecufgembkkk9mbdnadcd4ae2gdTmbinababydbgecwtcw91:Yaece91cjjj98Gcjjj;8if::NUdbabclfhbadcufgdmbkkk9teiucbcbydj1jjbgeabcifc98GfgbBdj1jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik;LeeeudndnaeabVciGTmbabhixekdndnadcz9pmbabhixekabhiinaiaeydbBdbaiclfaeclfydbBdbaicwfaecwfydbBdbaicxfaecxfydbBdbaeczfheaiczfhiadc9Wfgdcs0mbkkadcl6mbinaiaeydbBdbaeclfheaiclfhiadc98fgdci0mbkkdnadTmbinaiaeRbb86bbaicefhiaecefheadcufgdmbkkabk;aeedudndnabciGTmbabhixekaecFeGc:b:c:ew2hldndnadcz9pmbabhixekabhiinaialBdbaicxfalBdbaicwfalBdbaiclfalBdbaiczfhiadc9Wfgdcs0mbkkadcl6mbinaialBdbaiclfhiadc98fgdci0mbkkdnadTmbinaiae86bbaicefhiadcufgdmbkkabkkkebcjwklzNbb",J="b9H79TebbbeKl9Gbb9Gvuuuuueu9Giuuub9Geueuikqbbebeedddilve9Weeeviebeoweuec:q:6dkr;leDo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8A9TW79O9V9Wt9F9KW9J9V9KW9wWVtW949c919M9MWVbdY9TW79O9V9Wt9F9KW9J9V9KW69U9KW949c919M9MWVblE9TW79O9V9Wt9F9KW9J9V9KW69U9KW949tWG91W9U9JWbvL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9p9JtboK9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9r919HtbrL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWVT949Wbwl79IV9RbDq:p9sqlbzik9:evu8Jjjjjbcz9Rhbcbheincbhdcbhiinabcwfadfaicjuaead4ceGglE86bbaialfhiadcefgdcw9hmbkaec:q:yjjbfai86bbaecitc:q1jjbfab8Piw83ibaecefgecjd9hmbkk:N8JlHud97euo978Jjjjjbcj;kb9Rgv8Kjjjjbc9:hodnadcefal0mbcuhoaiRbbc:Ge9hmbavaialfgrad9Rad;8qbbcj;abad9UhlaicefhodnaeTmbadTmbalc;WFbGglcjdalcjd6EhwcbhDinawaeaD9RaDawfae6Egqcsfglc9WGgkci2hxakcethmalcl4cifcd4hPabaDad2fhsakc;ab6hzcbhHincbhOaohAdndninaraA9RaP6meavcj;cbfaOak2fhCaAaPfhocbhidnazmbarao9Rc;Gb6mbcbhlinaCalfhidndndndndnaAalco4fRbbgXciGPlbedibkaipxbbbbbbbbbbbbbbbbpklbxikaiaopbblaopbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklbaoclfaYpQbfaKc:q:yjjbfRbbfhoxdkaiaopbbwaopbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklbaocwfaYpQbfaKc:q:yjjbfRbbfhoxekaiaopbbbpklbaoczfhokdndndndndnaXcd4ciGPlbedibkaipxbbbbbbbbbbbbbbbbpklzxikaiaopbblaopbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklzaoclfaYpQbfaKc:q:yjjbfRbbfhoxdkaiaopbbwaopbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklzaocwfaYpQbfaKc:q:yjjbfRbbfhoxekaiaopbbbpklzaoczfhokdndndndndnaXcl4ciGPlbedibkaipxbbbbbbbbbbbbbbbbpklaxikaiaopbblaopbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklaaoclfaYpQbfaKc:q:yjjbfRbbfhoxdkaiaopbbwaopbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklaaocwfaYpQbfaKc:q:yjjbfRbbfhoxekaiaopbbbpklaaoczfhokdndndndndnaXco4Plbedibkaipxbbbbbbbbbbbbbbbbpkl8WxikaiaopbblaopbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibaXc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spkl8WaoclfaYpQbfaXc:q:yjjbfRbbfhoxdkaiaopbbwaopbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibaXc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spkl8WaocwfaYpQbfaXc:q:yjjbfRbbfhoxekaiaopbbbpkl8Waoczfhokalc;abfhialcjefak0meaihlarao9Rc;Fb0mbkkdnaiak9pmbaici4hlinarao9RcK6miaCaifhXdndndndndnaAaico4fRbbalcoG4ciGPlbedibkaXpxbbbbbbbbbbbbbbbbpkbbxikaXaopbblaopbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spkbbaoclfaYpQbfaKc:q:yjjbfRbbfhoxdkaXaopbbwaopbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spkbbaocwfaYpQbfaKc:q:yjjbfRbbfhoxekaXaopbbbpkbbaoczfhokalcdfhlaiczfgiak6mbkkaoTmeaohAaOcefgOclSmdxbkkc9:hoxlkdnakTmbavcjdfaHfhiavaHfpbdbhYcbhXinaiavcj;cbfaXfglpblbgLcep9TaLpxeeeeeeeeeeeeeeeegQp9op9Hp9rgLalakfpblbg8Acep9Ta8AaQp9op9Hp9rg8ApmbzeHdOiAlCvXoQrLgEalamfpblbg3cep9Ta3aQp9op9Hp9rg3alaxfpblbg5cep9Ta5aQp9op9Hp9rg5pmbzeHdOiAlCvXoQrLg8EpmbezHdiOAlvCXorQLgQaQpmbedibedibedibediaYp9UgYp9AdbbaiadfglaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaladfglaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaladfglaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaladfglaYaEa8EpmwDKYqk8AExm35Ps8E8FgQaQpmbedibedibedibedip9UgYp9AdbbaladfglaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaladfglaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaladfglaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaladfglaYaLa8ApmwKDYq8AkEx3m5P8Es8FgLa3a5pmwKDYq8AkEx3m5P8Es8Fg8ApmbezHdiOAlvCXorQLgQaQpmbedibedibedibedip9UgYp9AdbbaladfglaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaladfglaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaladfglaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaladfglaYaLa8ApmwDKYqk8AExm35Ps8E8FgQaQpmbedibedibedibedip9UgYp9AdbbaladfglaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaladfglaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaladfglaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaladfhiaXczfgXak6mbkkaHclfgHad6mbkasavcjdfaqad2;8qbbavavcjdfaqcufad2fad;8qbbaqaDfgDae6mbkkcbc99arao9Radcaadca0ESEhokavcj;kbf8Kjjjjbaokwbz:bjjjbk::seHu8Jjjjjbc;ae9Rgv8Kjjjjbc9:hodnaeci9UgrcHfal0mbcuhoaiRbbgwc;WeGc;Ge9hmbawcsGgwce0mbavc;abfcFecje;8kbavcUf9cu83ibavc8Wf9cu83ibavcyf9cu83ibavcaf9cu83ibavcKf9cu83ibavczf9cu83ibav9cu83iwav9cu83ibaialfc9WfhDaicefgqarfhidnaeTmbcmcsawceSEhkcbhxcbhmcbhPcbhwcbhlindnaiaD9nmbc9:hoxikdndnaqRbbgoc;Ve0mbavc;abfalaocu7gscl4fcsGcitfgzydlhrazydbhzdnaocsGgHak9pmbavawasfcsGcdtfydbaxaHEhoaHThsdndnadcd9hmbabaPcetfgHaz87ebaHclfao87ebaHcdfar87ebxekabaPcdtfgHazBdbaHcwfaoBdbaHclfarBdbkaxasfhxcdhHavawcdtfaoBdbawasfhwcehsalhOxdkdndnaHcsSmbaHc987aHamffcefhoxekaicefhoai8SbbgHcFeGhsdndnaHcu9mmbaohixekaicvfhiascFbGhscrhHdninao8SbbgOcFbGaHtasVhsaOcu9kmeaocefhoaHcrfgHc8J9hmbxdkkaocefhikasce4cbasceG9R7amfhokdndnadcd9hmbabaPcetfgHaz87ebaHclfao87ebaHcdfar87ebxekabaPcdtfgHazBdbaHcwfaoBdbaHclfarBdbkcdhHavawcdtfaoBdbcehsawcefhwalhOaohmxekdnaocpe0mbaxcefgHavawaDaocsGfRbbgocl49RcsGcdtfydbaocz6gzEhravawao9RcsGcdtfydbaHazfgAaocsGgHEhoaHThCdndnadcd9hmbabaPcetfgHax87ebaHclfao87ebaHcdfar87ebxekabaPcdtfgHaxBdbaHcwfaoBdbaHclfarBdbkcdhsavawcdtfaxBdbavawcefgwcsGcdtfarBdbcihHavc;abfalcitfgOaxBdlaOarBdbavawazfgwcsGcdtfaoBdbalcefcsGhOawaCfhwaxhzaAaCfhxxekaxcbaiRbbgOEgzaoc;:eSgHfhraOcsGhCaOcl4hAdndnaOcs0mbarcefhoxekarhoavawaA9RcsGcdtfydbhrkdndnaCmbaocefhxxekaohxavawaO9RcsGcdtfydbhokdndnaHTmbaicefhHxekaicdfhHai8SbegscFeGhzdnascu9kmbaicofhXazcFbGhzcrhidninaH8SbbgscFbGaitazVhzascu9kmeaHcefhHaicrfgic8J9hmbkaXhHxekaHcefhHkazce4cbazceG9R7amfgmhzkdndnaAcsSmbaHhsxekaHcefhsaH8SbbgicFeGhrdnaicu9kmbaHcvfhXarcFbGhrcrhidninas8SbbgHcFbGaitarVhraHcu9kmeascefhsaicrfgic8J9hmbkaXhsxekascefhskarce4cbarceG9R7amfgmhrkdndnaCcsSmbashixekascefhias8SbbgocFeGhHdnaocu9kmbascvfhXaHcFbGhHcrhodninai8SbbgscFbGaotaHVhHascu9kmeaicefhiaocrfgoc8J9hmbkaXhixekaicefhikaHce4cbaHceG9R7amfgmhokdndnadcd9hmbabaPcetfgHaz87ebaHclfao87ebaHcdfar87ebxekabaPcdtfgHazBdbaHcwfaoBdbaHclfarBdbkcdhsavawcdtfazBdbavawcefgwcsGcdtfarBdbcihHavc;abfalcitfgXazBdlaXarBdbavawaOcz6aAcsSVfgwcsGcdtfaoBdbawaCTaCcsSVfhwalcefcsGhOkaqcefhqavc;abfaOcitfgOarBdlaOaoBdbavc;abfalasfcsGcitfgraoBdlarazBdbawcsGhwalaHfcsGhlaPcifgPae6mbkkcbc99aiaDSEhokavc;aef8Kjjjjbaok:flevu8Jjjjjbcz9Rhvc9:hodnaecvfal0mbcuhoaiRbbc;:eGc;qe9hmbav9cb83iwaicefhraialfc98fhwdnaeTmbdnadcdSmbcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcdtfaic8Etc8F91aicd47avcwfaiceGcdtVgoydbfglBdbaoalBdbaDcefgDae9hmbxdkkcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcetfaic8Etc8F91aicd47avcwfaiceGcdtVgoydbfgl87ebaoalBdbaDcefgDae9hmbkkcbc99arawSEhokaok:wPliuo97eue978Jjjjjbca9Rhiaec98Ghldndnadcl9hmbdnalTmbcbhvabhdinadadpbbbgocKp:RecKp:Sep;6egraocwp:RecKp:Sep;6earp;Geaoczp:RecKp:Sep;6egwp;Gep;Kep;LegDpxbbbbbbbbbbbbbbbbp:2egqarpxbbbjbbbjbbbjbbbjgkp9op9rp;Kegrpxbb;:9cbb;:9cbb;:9cbb;:9cararp;MeaDaDp;Meawaqawakp9op9rp;Kegrarp;Mep;Kep;Kep;Jep;Negwp;Mepxbbn0bbn0bbn0bbn0gqp;KepxFbbbFbbbFbbbFbbbp9oaopxbbbFbbbFbbbFbbbFp9op9qarawp;Meaqp;Kecwp:RepxbFbbbFbbbFbbbFbbp9op9qaDawp;Meaqp;Keczp:RepxbbFbbbFbbbFbbbFbp9op9qpkbbadczfhdavclfgval6mbkkalaeSmeaipxbbbbbbbbbbbbbbbbgqpklbaiabalcdtfgdaeciGglcdtgv;8qbbdnalTmbaiaipblbgocKp:RecKp:Sep;6egraocwp:RecKp:Sep;6earp;Geaoczp:RecKp:Sep;6egwp;Gep;Kep;LegDaqp:2egqarpxbbbjbbbjbbbjbbbjgkp9op9rp;Kegrpxbb;:9cbb;:9cbb;:9cbb;:9cararp;MeaDaDp;Meawaqawakp9op9rp;Kegrarp;Mep;Kep;Kep;Jep;Negwp;Mepxbbn0bbn0bbn0bbn0gqp;KepxFbbbFbbbFbbbFbbbp9oaopxbbbFbbbFbbbFbbbFp9op9qarawp;Meaqp;Kecwp:RepxbFbbbFbbbFbbbFbbp9op9qaDawp;Meaqp;Keczp:RepxbbFbbbFbbbFbbbFbp9op9qpklbkadaiav;8qbbskdnalTmbcbhvabhdinadczfgxaxpbbbgopxbbbbbbFFbbbbbbFFgkp9oadpbbbgDaopmbediwDqkzHOAKY8AEgwczp:Reczp:Sep;6egraDaopmlvorxmPsCXQL358E8FpxFubbFubbFubbFubbp9op;6eawczp:Sep;6egwp;Gearp;Gep;Kep;Legopxbbbbbbbbbbbbbbbbp:2egqarpxbbbjbbbjbbbjbbbjgmp9op9rp;Kegrpxb;:FSb;:FSb;:FSb;:FSararp;Meaoaop;Meawaqawamp9op9rp;Kegrarp;Mep;Kep;Kep;Jep;Negwp;Mepxbbn0bbn0bbn0bbn0gqp;KepxFFbbFFbbFFbbFFbbp9oaoawp;Meaqp;Keczp:Rep9qgoarawp;Meaqp;KepxFFbbFFbbFFbbFFbbp9ogrpmwDKYqk8AExm35Ps8E8Fp9qpkbbadaDakp9oaoarpmbezHdiOAlvCXorQLp9qpkbbadcafhdavclfgval6mbkkalaeSmbaiaeciGgvcitgdfcbcaad9R;8kbaiabalcitfglad;8qbbdnavTmbaiaipblzgopxbbbbbbFFbbbbbbFFgkp9oaipblbgDaopmbediwDqkzHOAKY8AEgwczp:Reczp:Sep;6egraDaopmlvorxmPsCXQL358E8FpxFubbFubbFubbFubbp9op;6eawczp:Sep;6egwp;Gearp;Gep;Kep;Legopxbbbbbbbbbbbbbbbbp:2egqarpxbbbjbbbjbbbjbbbjgmp9op9rp;Kegrpxb;:FSb;:FSb;:FSb;:FSararp;Meaoaop;Meawaqawamp9op9rp;Kegrarp;Mep;Kep;Kep;Jep;Negwp;Mepxbbn0bbn0bbn0bbn0gqp;KepxFFbbFFbbFFbbFFbbp9oaoawp;Meaqp;Keczp:Rep9qgoarawp;Meaqp;KepxFFbbFFbbFFbbFFbbp9ogrpmwDKYqk8AExm35Ps8E8Fp9qpklzaiaDakp9oaoarpmbezHdiOAlvCXorQLp9qpklbkalaiad;8qbbkk;4wllue97euv978Jjjjjbc8W9Rhidnaec98GglTmbcbhvabhoinaiaopbbbgraoczfgwpbbbgDpmlvorxmPsCXQL358E8Fgqczp:Segkclp:RepklbaopxbbjZbbjZbbjZbbjZpx;Zl81Z;Zl81Z;Zl81Z;Zl81Zakpxibbbibbbibbbibbbp9qp;6ep;NegkaraDpmbediwDqkzHOAKY8AEgrczp:Reczp:Sep;6ep;MegDaDp;Meakarczp:Sep;6ep;Megxaxp;Meakaqczp:Reczp:Sep;6ep;Megqaqp;Mep;Kep;Kep;Lepxbbbbbbbbbbbbbbbbp:4ep;Jepxb;:FSb;:FSb;:FSb;:FSgkp;Mepxbbn0bbn0bbn0bbn0grp;KepxFFbbFFbbFFbbFFbbgmp9oaxakp;Mearp;Keczp:Rep9qgxaDakp;Mearp;Keamp9oaqakp;Mearp;Keczp:Rep9qgkpmbezHdiOAlvCXorQLgrp5baipblbpEb:T:j83ibaocwfarp5eaipblbpEe:T:j83ibawaxakpmwDKYqk8AExm35Ps8E8Fgkp5baipblbpEd:T:j83ibaocKfakp5eaipblbpEi:T:j83ibaocafhoavclfgval6mbkkdnalaeSmbaiaeciGgvcitgofcbcaao9R;8kbaiabalcitfgwao;8qbbdnavTmbaiaipblbgraipblzgDpmlvorxmPsCXQL358E8Fgqczp:Segkclp:RepklaaipxbbjZbbjZbbjZbbjZpx;Zl81Z;Zl81Z;Zl81Z;Zl81Zakpxibbbibbbibbbibbbp9qp;6ep;NegkaraDpmbediwDqkzHOAKY8AEgrczp:Reczp:Sep;6ep;MegDaDp;Meakarczp:Sep;6ep;Megxaxp;Meakaqczp:Reczp:Sep;6ep;Megqaqp;Mep;Kep;Kep;Lepxbbbbbbbbbbbbbbbbp:4ep;Jepxb;:FSb;:FSb;:FSb;:FSgkp;Mepxbbn0bbn0bbn0bbn0grp;KepxFFbbFFbbFFbbFFbbgmp9oaxakp;Mearp;Keczp:Rep9qgxaDakp;Mearp;Keamp9oaqakp;Mearp;Keczp:Rep9qgkpmbezHdiOAlvCXorQLgrp5baipblapEb:T:j83ibaiarp5eaipblapEe:T:j83iwaiaxakpmwDKYqk8AExm35Ps8E8Fgkp5baipblapEd:T:j83izaiakp5eaipblapEi:T:j83iKkawaiao;8qbbkk:Pddiue978Jjjjjbc;ab9Rhidnadcd4ae2glc98GgvTmbcbheabhdinadadpbbbgocwp:Recwp:Sep;6eaocep:SepxbbjFbbjFbbjFbbjFp9opxbbjZbbjZbbjZbbjZp:Uep;Mepkbbadczfhdaeclfgeav6mbkkdnavalSmbaialciGgecdtgdVcbc;abad9R;8kbaiabavcdtfgvad;8qbbdnaeTmbaiaipblbgocwp:Recwp:Sep;6eaocep:SepxbbjFbbjFbbjFbbjFp9opxbbjZbbjZbbjZbbjZp:Uep;Mepklbkavaiad;8qbbkk9teiucbcbydj1jjbgeabcifc98GfgbBdj1jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaikkkebcjwklz:Dbb",X=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]),Y=new Uint8Array([32,0,65,2,1,106,34,33,3,128,11,4,13,64,6,253,10,7,15,116,127,5,8,12,40,16,19,54,20,9,27,255,113,17,42,67,24,23,146,148,18,14,22,45,70,69,56,114,101,21,25,63,75,136,108,28,118,29,73,115]);if(typeof WebAssembly!=="object")return{supported:!1};var $=WebAssembly.validate(X)?W(J):W(Z),Q,K=WebAssembly.instantiate($,{}).then(function(j){Q=j.instance,Q.exports.__wasm_call_ctors()});function W(j){var R=new Uint8Array(j.length);for(var O=0;O<j.length;++O){var N=j.charCodeAt(O);R[O]=N>96?N-97:N>64?N-39:N+4}var D=0;for(var O=0;O<j.length;++O)R[D++]=R[O]<60?Y[R[O]]:(R[O]-60)*64+R[++O];return R.buffer.slice(0,D)}function G(j,R,O,N,D,P,C){var T=j.exports.sbrk,k=N+3&-4,A=T(k*D),S=T(P.length),x=new Uint8Array(j.exports.memory.buffer);x.set(P,S);var I=R(A,N,D,S,P.length);if(I==0&&C)C(A,k,D);if(O.set(x.subarray(A,A+N*D)),T(A-T(0)),I!=0)throw new Error("Malformed buffer data: "+I)}var z={NONE:"",OCTAHEDRAL:"meshopt_decodeFilterOct",QUATERNION:"meshopt_decodeFilterQuat",EXPONENTIAL:"meshopt_decodeFilterExp"},V={ATTRIBUTES:"meshopt_decodeVertexBuffer",TRIANGLES:"meshopt_decodeIndexBuffer",INDICES:"meshopt_decodeIndexSequence"},H=[],q=0;function F(j){var R={object:new Worker(j),pending:0,requests:{}};return R.object.onmessage=function(O){var N=O.data;R.pending-=N.count,R.requests[N.id][N.action](N.value),delete R.requests[N.id]},R}function U(j){var R="self.ready = WebAssembly.instantiate(new Uint8Array(["+new Uint8Array($)+"]), {}).then(function(result) { result.instance.exports.__wasm_call_ctors(); return result.instance; });self.onmessage = "+L.name+";"+G.toString()+L.toString(),O=new Blob([R],{type:"text/javascript"}),N=URL.createObjectURL(O);for(var D=H.length;D<j;++D)H[D]=F(N);for(var D=j;D<H.length;++D)H[D].object.postMessage({});H.length=j,URL.revokeObjectURL(N)}function w(j,R,O,N,D){var P=H[0];for(var C=1;C<H.length;++C)if(H[C].pending<P.pending)P=H[C];return new Promise(function(T,k){var A=new Uint8Array(O),S=++q;P.pending+=j,P.requests[S]={resolve:T,reject:k},P.object.postMessage({id:S,count:j,size:R,source:A,mode:N,filter:D},[A.buffer])})}function L(j){var R=j.data;if(!R.id)return self.close();self.ready.then(function(O){try{var N=new Uint8Array(R.count*R.size);G(O,O.exports[R.mode],N,R.count,R.size,R.source,O.exports[R.filter]),self.postMessage({id:R.id,count:R.count,action:"resolve",value:N},[N.buffer])}catch(D){self.postMessage({id:R.id,count:R.count,action:"reject",value:D})}})}return{ready:K,supported:!0,useWorkers:function(j){U(j)},decodeVertexBuffer:function(j,R,O,N,D){G(Q,Q.exports.meshopt_decodeVertexBuffer,j,R,O,N,Q.exports[z[D]])},decodeIndexBuffer:function(j,R,O,N){G(Q,Q.exports.meshopt_decodeIndexBuffer,j,R,O,N)},decodeIndexSequence:function(j,R,O,N){G(Q,Q.exports.meshopt_decodeIndexSequence,j,R,O,N)},decodeGltfBuffer:function(j,R,O,N,D,P){G(Q,Q.exports[V[D]],j,R,O,N,Q.exports[z[P]])},decodeGltfBufferAsync:function(j,R,O,N,D){if(H.length>0)return w(j,R,O,V[N],z[D]);return K.then(function(){var P=new Uint8Array(j*R);return G(Q,Q.exports[V[N]],P,j,R,O,Q.exports[z[D]]),P})}}}();var za=function(){var Z="b9H79Tebbbe9Hk9Geueu9Geub9Gbb9Gsuuuuuuuuuuuu99uueu9Gvuuuuub9Gvuuuuue999Gquuuuuuu99uueu9Gwuuuuuu99ueu9Giuuue999Gluuuueu9GiuuueuizsdilvoirwDbqqbeqlve9Weiiviebeoweuecj:Pdkr:Tewo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bbz9TW79O9V9Wt9F79P9T9W29P9M95bl8E9TW79O9V9Wt9F79P9T9W29P9M959x9Pt9OcttV9P9I91tW7bvQ9TW79O9V9Wt9F79P9T9W29P9M959q9V9P9Ut7boX9TW79O9V9Wt9F79P9T9W29P9M959t9J9H2Wbra9TW79O9V9Wt9F9V9Wt9P9T9P96W9wWVtW94SWt9J9O9sW9T9H9Wbwl79IV9RbDDwebcekdmxq;UMesdbk:kfvKue99euY99Qu8Jjjjjbc;W;qb9Rgs8Kjjjjbcbhzascxfcbc;Kbz:ljjjb8AdnabaeSmbabaeadcdtz:kjjjb8AkdnamcdGTmbalcrfci4gHcbyd;S1jjbHjjjjbbheascxfasyd2gOcdtfaeBdbasaOcefBd2aecbaHz:ljjjbhAcbhlcbhednadTmbcbhlabheadhHinaAaeydbgOci4fgCaCRbbgCceaOcrGgOtV86bbaCcu7aO4ceGalfhlaeclfheaHcufgHmbkcualcdtalcFFFFi0Ehekaecbyd;S1jjbHjjjjbbhzascxfasyd2gecdtfazBdbasaecefBd2alcd4alfhOcehHinaHgecethHaeaO6mbkcbhXcuaecdtgOaecFFFFi0Ecbyd;S1jjbHjjjjbbhHascxfasyd2gCcdtfaHBdbasaCcefBd2aHcFeaOz:ljjjbhQdnadTmbaecufhCcbhLinabaXcdtfgKydbgAc:v;t;h;Ev2hOcbhedndninaQaOaCGgOcdtfgYydbgHcuSmeazaHcdtfydbaASmdaecefgeaOfhOaeaC9nmbxdkkazaLcdtfaABdbaYaLBdbaLhHaLcefhLkaKaHBdbaXcefgXad9hmbkkaQcbyd;O1jjbH:bjjjbbasasyd2cufBd2kcualcefgecdtaecFFFFi0Ecbyd;S1jjbHjjjjbbh8Aascxfasyd2gecdtfa8ABdbasa8ABdlasaecefBd2cuadcitadcFFFFe0Ecbyd;S1jjbHjjjjbbhEascxfasyd2gecdtfaEBdbasaEBdwasaecefBd2asclfabadalcbz:cjjjbcualcdtg3alcFFFFi0Eg5cbyd;S1jjbHjjjjbbhQascxfasyd2gecdtfaQBdbasaecefBd2a5cbyd;S1jjbHjjjjbbh8Eascxfasyd2gecdtfa8EBdbasaecefBd2alcd4alfhOcehHinaHgecethHaeaO6mbkcbhLcuaecdtgOaecFFFFi0Ecbyd;S1jjbHjjjjbbhHascxfasyd2gCcdtfaHBdbasaCcefBd2aHcFeaOz:ljjjbhXdnalTmbavcd4hCaecufhHinaLhednazTmbazaLcdtfydbhekaiaeaC2cdtfgeydlgOcH4aO7c:F:b:DD2aeydbgOcH4aO7c;D;O:B8J27aeydwgecH4ae7c:3F;N8N27aHGheaLcdth8FdndndndndnazTmbaza8FfhKcbhOinaXaecdtfgYydbgAcuSmlaiazaAcdtfydbaC2cdtfaiaKydbaC2cdtfcxz:ojjjbTmiaOcefgOaefaHGheaOaH9nmbxdkkaiaLaC2cdtfhKcbhOinaXaecdtfgYydbgAcuSmiaiaAaC2cdtfaKcxz:ojjjbTmdaOcefgOaefaHGheaOaH9nmbkkcbhYkaYydbgecu9hmekaYaLBdbaLhekaQa8FfaeBdbaLcefgLal9hmbkcbhea8EhHinaHaeBdbaHclfhHalaecefge9hmbkcbheaQhHa8EhOindnaeaHydbgCSmbaOa8EaCcdtfgCydbBdbaCaeBdbkaHclfhHaOclfhOalaecefge9hmbkkcbhaaXcbyd;O1jjbH:bjjjbbasasyd2cufBd2alcbyd;S1jjbHjjjjbbhXascxfasyd2gecdtfaXBdbasaecefBd2a5cbyd;S1jjbHjjjjbbheascxfasyd2gHcdtfaeBdbasaHcefBd2a5cbyd;S1jjbHjjjjbbhHascxfasyd2gOcdtfaHBdbasaOcefBd2aecFea3z:ljjjbhhaHcFea3z:ljjjbhgdnalTmbaEcwfh8Jindna8AaagOcefgacdtfydbgCa8AaOcdtgefydbgHSmbaCaH9Rh8FaEaHcitfh3agaefh8KahaefhLcbhAindndna3aAcitfydbgYaO9hmbaLaOBdba8KaOBdbxekdna8AaYcdtg8LfgeclfydbgHaeydbgeSmbaEaecitgCfydbaOSmeaHae9Rh8Maecu7aHfhKa8JaCfhHcbheinaKaeSmeaecefheaHydbhCaHcwfhHaCaO9hmbkaea8M6mekaga8LfgeaOaYaeydbcuSEBdbaLaYaOaLydbcuSEBdbkaAcefgAa8F9hmbkkaaal9hmbkaQhHa8EhOaghCahhAcbheindndnaeaHydbgY9hmbdnaeaOydbgY9hmbaAydbhYdnaCydbgKcu9hmbaYcu9hmbaXaefcb86bbxikaXaefhLdnaeaKSmbaeaYSmbaLce86bbxikaLcl86bbxdkdnaea8EaYcdtgKfydb9hmbdnaCydbgLcuSmbaeaLSmbaAydbg8FcuSmbaea8FSmbagaKfydbg3cuSmba3aYSmbahaKfydbgKcuSmbaKaYSmbdnaQaLcdtfydbgYaQaKcdtfydb9hmbaYaQa8FcdtfydbgKSmbaKaQa3cdtfydb9hmbaXaefcd86bbxlkaXaefcl86bbxikaXaefcl86bbxdkaXaefcl86bbxekaXaefaXaYfRbb86bbkaHclfhHaOclfhOaCclfhCaAclfhAalaecefge9hmbkdnaqTmbdndnazTmbazheaQhHalhOindnaqaeydbfRbbTmbaXaHydbfcl86bbkaeclfheaHclfhHaOcufgOmbxdkkaQhealhHindnaqRbbTmbaXaeydbfcl86bbkaqcefhqaeclfheaHcufgHmbkkaQhealhOaXhHindnaXaeydbfRbbcl9hmbaHcl86bbkaeclfheaHcefhHaOcufgOmbkkamceGTmbaXhealhHindnaeRbbce9hmbaecl86bbkaecefheaHcufgHmbkkcualcx2alc;v:Q;v:Qe0Ecbyd;S1jjbHjjjjbbhaascxfasyd2gecdtfaaBdbasaecefBd2aaaialavazz:djjjbh8NdndnaDmbcbhycbh8Jxekcbh8JawhecbhHindnaeIdbJbbbb9ETmbasc;Wbfa8JcdtfaHBdba8Jcefh8JkaeclfheaDaHcefgH9hmbkcua8Jal2gecdtaecFFFFi0Ecbyd;S1jjbHjjjjbbhyascxfasyd2gecdtfayBdbasaecefBd2alTmba8JTmbarcd4hLdnazTmba8JcdthicbhYayhKinaoazaYcdtfydbaL2cdtfhAasc;WbfheaKhHa8JhOinaHaAaeydbcdtgCfIdbawaCfIdbNUdbaeclfheaHclfhHaOcufgOmbkaKaifhKaYcefgYal9hmbxdkka8JcdthicbhYayhKinaoaYaL2cdtfhAasc;WbfheaKhHa8JhOinaHaAaeydbcdtgCfIdbawaCfIdbNUdbaeclfheaHclfhHaOcufgOmbkaKaifhKaYcefgYal9hmbkkcualc8S2gHalc;D;O;f8U0EgCcbyd;S1jjbHjjjjbbheascxfasyd2gOcdtfaeBdbasaOcefBd2aecbaHz:ljjjbhqdndndndna8JTmbaCcbyd;S1jjbHjjjjbbhvascxfasyd2gecdtfavBdbcehOasaecefBd2avcbaHz:ljjjb8Acua8Jal2gecltgHaecFFFFb0Ecbyd;S1jjbHjjjjbbhrascxfasyd2gecdtfarBdbasaecefBd2arcbaHz:ljjjb8AadmexikcbhvadTmecbhrkcbhAabhHindnaaaHclfydbgYcx2fgeIdbaaaHydbgKcx2fgOIdbg8P:tgIaaaHcwfydbgLcx2fgCIdlaOIdlg8R:tg8SNaCIdba8P:tgRaeIdla8R:tg8UN:tg8Va8VNa8UaCIdwaOIdwg8W:tg8XNa8SaeIdwa8W:tg8UN:tg8Sa8SNa8UaRNa8XaIN:tgIaINMM:rgRJbbbb9ETmba8VaR:vh8VaIaR:vhIa8SaR:vh8SkaqaQaKcdtfydbc8S2fgea8SaR:rgRa8SNNg8UaeIdbMUdbaeaIaRaINg8YNg8XaeIdlMUdlaea8VaRa8VNg8ZNg80aeIdwMUdwaea8Ya8SNg8YaeIdxMUdxaea8Za8SNg81aeIdzMUdzaea8ZaINg8ZaeIdCMUdCaea8SaRa8Va8WNa8Sa8PNa8RaINMM:mg8RNg8PNg8SaeIdKMUdKaeaIa8PNgIaeId3MUd3aea8Va8PNg8VaeIdaMUdaaea8Pa8RNg8PaeId8KMUd8KaeaRaeIdyMUdyaqaQaYcdtfydbc8S2fgea8UaeIdbMUdbaea8XaeIdlMUdlaea80aeIdwMUdwaea8YaeIdxMUdxaea81aeIdzMUdzaea8ZaeIdCMUdCaea8SaeIdKMUdKaeaIaeId3MUd3aea8VaeIdaMUdaaea8PaeId8KMUd8KaeaRaeIdyMUdyaqaQaLcdtfydbc8S2fgea8UaeIdbMUdbaea8XaeIdlMUdlaea80aeIdwMUdwaea8YaeIdxMUdxaea81aeIdzMUdzaea8ZaeIdCMUdCaea8SaeIdKMUdKaeaIaeId3MUd3aea8VaeIdaMUdaaea8PaeId8KMUd8KaeaRaeIdyMUdyaHcxfhHaAcifgAad6mbkcbhiabhKinabaicdtfhYcbhHinaXaYaHc:G1jjbfydbcdtfydbgOfRbbhedndnaXaKaHfydbgCfRbbgAc99fcFeGcpe0mbaeceSmbaecd9hmekdnaAcufcFeGce0mbahaCcdtfydbaO9hmekdnaecufcFeGce0mbagaOcdtfydbaC9hmekdnaAcv2aefcj1jjbfRbbTmbaQaOcdtfydbaQaCcdtfydb0mekJbbacJbbacJbbjZaeceSEaAceSEh8ZdnaaaYaHc:K1jjbfydbcdtfydbcx2fgeIdwaaaCcx2fgAIdwg8R:tg8VaaaOcx2fgLIdwa8R:tg8Sa8SNaLIdbaAIdbg8W:tgIaINaLIdlaAIdlg8U:tgRaRNMMg8PNa8Va8SNaeIdba8W:tg80aINaRaeIdla8U:tg8YNMMg8Xa8SN:tg8Va8VNa80a8PNa8XaIN:tg8Sa8SNa8Ya8PNa8XaRN:tgIaINMM:rgRJbbbb9ETmba8VaR:vh8VaIaR:vhIa8SaR:vh8SkaqaQaCcdtfydbc8S2fgea8Sa8Za8P:rNgRa8SNNg8XaeIdbMUdbaeaIaRaINg8ZNg80aeIdlMUdlaea8VaRa8VNg8PNg8YaeIdwMUdwaea8Za8SNg8ZaeIdxMUdxaea8Pa8SNg81aeIdzMUdzaea8PaINgBaeIdCMUdCaea8SaRa8Va8RNa8Sa8WNa8UaINMM:mg8RNg8PNg8SaeIdKMUdKaeaIa8PNgIaeId3MUd3aea8Va8PNg8VaeIdaMUdaaea8Pa8RNg8PaeId8KMUd8KaeaRaeIdyMUdyaqaQaOcdtfydbc8S2fgea8XaeIdbMUdbaea80aeIdlMUdlaea8YaeIdwMUdwaea8ZaeIdxMUdxaea81aeIdzMUdzaeaBaeIdCMUdCaea8SaeIdKMUdKaeaIaeId3MUd3aea8VaeIdaMUdaaea8PaeId8KMUd8KaeaRaeIdyMUdykaHclfgHcx9hmbkaKcxfhKaicifgiad6mbkdna8JTmbcbhKinJbbbbh8WaaabaKcdtfgeclfydbgLcx2fgHIdwaaaeydbgicx2fgOIdwg8Y:tgIaINaHIdbaOIdbg81:tg8Va8VNaHIdlaOIdlgB:tgRaRNMMg8Zaaaecwfydbg8Fcx2fgeIdwa8Y:tg8PNaIaIa8PNa8VaeIdba81:tg8RNaRaeIdlaB:tg8UNMMg8SN:tJbbbbJbbjZa8Za8Pa8PNa8Ra8RNa8Ua8UNMMg80Na8Sa8SN:tg8X:va8XJbbbb9BEg8XNh83a80aINa8Pa8SN:ta8XNhUa8Za8UNaRa8SN:ta8XNh85a80aRNa8Ua8SN:ta8XNh86a8Za8RNa8Va8SN:ta8XNh87a80a8VNa8Ra8SN:ta8XNh88a8Va8UNa8RaRN:tg8Sa8SNaRa8PNa8UaIN:tg8Sa8SNaIa8RNa8Pa8VN:tg8Sa8SNMM:rJbbbZNh8Sayaia8J2g3cdtfhHaya8Fa8J2gwcdtfhOayaLa8J2g8LcdtfhCa8Y:mh89aB:mh8:a81:mhZcbhAa8JhYJbbbbh8UJbbbbh8XJbbbbh8ZJbbbbh80Jbbbbh8YJbbbbh81JbbbbhBJbbbbhnJbbbbhcinasc;WbfaAfgecwfa8SaUaCIdbaHIdbg8P:tgRNa83aOIdba8P:tg8RNMgINUdbaeclfa8Sa86aRNa85a8RNMg8VNUdbaea8Sa88aRNa87a8RNMgRNUdbaecxfa8Sa89aINa8:a8VNa8PaZaRNMMMg8PNUdba8SaIa8VNNa80Mh80a8SaIaRNNa8YMh8Ya8Sa8VaRNNa81Mh81a8Sa8Pa8PNNa8WMh8Wa8SaIa8PNNa8UMh8Ua8Sa8Va8PNNa8XMh8Xa8SaRa8PNNa8ZMh8Za8SaIaINNaBMhBa8Sa8Va8VNNanMhna8SaRaRNNacMhcaHclfhHaCclfhCaOclfhOaAczfhAaYcufgYmbkavaic8S2fgeacaeIdbMUdbaeanaeIdlMUdlaeaBaeIdwMUdwaea81aeIdxMUdxaea8YaeIdzMUdzaea80aeIdCMUdCaea8ZaeIdKMUdKaea8XaeId3MUd3aea8UaeIdaMUdaaea8WaeId8KMUd8Kaea8SaeIdyMUdyavaLc8S2fgeacaeIdbMUdbaeanaeIdlMUdlaeaBaeIdwMUdwaea81aeIdxMUdxaea8YaeIdzMUdzaea80aeIdCMUdCaea8ZaeIdKMUdKaea8XaeId3MUd3aea8UaeIdaMUdaaea8WaeId8KMUd8Kaea8SaeIdyMUdyava8Fc8S2fgeacaeIdbMUdbaeanaeIdlMUdlaeaBaeIdwMUdwaea81aeIdxMUdxaea8YaeIdzMUdzaea80aeIdCMUdCaea8ZaeIdKMUdKaea8XaeId3MUd3aea8UaeIdaMUdaaea8WaeId8KMUd8Kaea8SaeIdyMUdyara3cltfhYcbhHa8JhCinaYaHfgeasc;WbfaHfgOIdbaeIdbMUdbaeclfgAaOclfIdbaAIdbMUdbaecwfgAaOcwfIdbaAIdbMUdbaecxfgeaOcxfIdbaeIdbMUdbaHczfhHaCcufgCmbkara8LcltfhYcbhHa8JhCinaYaHfgeasc;WbfaHfgOIdbaeIdbMUdbaeclfgAaOclfIdbaAIdbMUdbaecwfgAaOcwfIdbaAIdbMUdbaecxfgeaOcxfIdbaeIdbMUdbaHczfhHaCcufgCmbkarawcltfhYcbhHa8JhCinaYaHfgeasc;WbfaHfgOIdbaeIdbMUdbaeclfgAaOclfIdbaAIdbMUdbaecwfgAaOcwfIdbaAIdbMUdbaecxfgeaOcxfIdbaeIdbMUdbaHczfhHaCcufgCmbkaKcifgKad6mbkkcbhOxekcehOcbhrkcbh8FdndnamcwGg9cmbJbbbbh8ZcbhJcbhocbhCxekcbhea5cbyd;S1jjbHjjjjbbhCascxfasyd2gHcdtfaCBdbasaHcefBd2dnalTmbaChHinaHaeBdbaHclfhHalaecefge9hmbkkdnaOmbcbhiinabaicdtfhLcbhKinaQaLaKcdtgec:G1jjbfydbcdtfydbcdtfydbhHdnaCaQaLaefydbcdtfydbgOcdtfgAydbgeaOSmbinaAaCaegOcdtfgYydbgeBdbaYhAaOae9hmbkkdnaCaHcdtfgAydbgeaHSmbinaAaCaegHcdtfgYydbgeBdbaYhAaHae9hmbkkdnaOaHSmbaCaOaHaOaH0EcdtfaOaHaOaH6EBdbkaKcefgKci9hmbkaicifgiad6mbkkcbhJdnalTmbcbhYindnaQaYcdtgefydbaY9hmbaYhHdnaCaefgKydbgeaYSmbaKhOinaOaCaegHcdtfgAydbgeBdbaAhOaHae9hmbkkaKaHBdbkaYcefgYal9hmbkcbheaQhOaChHcbhJindndnaeaOydbgA9hmbdnaeaHydbgA9hmbaHaJBdbaJcefhJxdkaHaCaAcdtfydbBdbxekaHaCaAcdtfydbBdbkaOclfhOaHclfhHalaecefge9hmbkkcuaJcltgeaJcjjjjiGEcbyd;S1jjbHjjjjbbhoascxfasyd2gHcdtfaoBdbasaHcefBd2aocbaez:ljjjbhAdnalTmbaChOaahealhYinaecwfIdbh8SaeclfIdbhIaAaOydbcltfgHaeIdbaHIdbMUdbaHclfgKaIaKIdbMUdbaHcwfgKa8SaKIdbMUdbaHcxfgHaHIdbJbbjZMUdbaOclfhOaecxfheaYcufgYmbkkdnaJTmbaAheaJhHinaecxfgOIdbh8SaOcbBdbaeaeIdbJbbbbJbbjZa8S:va8SJbbbb9BEg8SNUdbaeclfgOa8SaOIdbNUdbaecwfgOa8SaOIdbNUdbaeczfheaHcufgHmbkkdnalTmbaChOaahealhYinaAaOydbcltfgHcxfgKaecwfIdbaHcwfIdb:tg8Sa8SNaeIdbaHIdb:tg8Sa8SNaeclfIdbaHclfIdb:tg8Sa8SNMMg8SaKIdbgIaIa8S9DEUdbaOclfhOaecxfheaYcufgYmbkkdnaJmbcbhJJFFuuh8ZxekaAcxfheaAhHaJhOinaHaeIdbUdbaeczfheaHclfhHaOcufgOmbkJFFuuh8ZaAheaJhHinaeIdbg8Sa8Za8Za8S9EEh8ZaeclfheaHcufgHmbkkasydlh9ednalTmba9eclfhea9eydbhAaXhHalhYcbhOincbaeydbgKaA9RaHRbbcpeGEaOfhOaHcefhHaeclfheaKhAaYcufgYmbkaOce4h8Fkcuada8F9RcifgTcx2aTc;v:Q;v:Qe0Ecbyd;S1jjbHjjjjbbhDascxfasyd2gecdtfaDBdbasaecefBd2cuaTcdtaTcFFFFi0Ecbyd;S1jjbHjjjjbbhSascxfasyd2gecdtfaSBdbasaecefBd2a5cbyd;S1jjbHjjjjbbh8Mascxfasyd2gecdtfa8MBdbasaecefBd2alcbyd;S1jjbHjjjjbbh9hascxfasyd2gecdtfa9hBdbasaecefBd2axaxNa8NJbbjZamclGEg83a83N:vhcJbbbbhndnadak9nmbdnaTci6mba8Jclth9iaDcwfh6JbbbbhBJbbbbhninasclfabadalaQz:cjjjbabh8FcbhEcbh5inaba5cdtfh3cbheindnaQa8FaefydbgOcdtgifydbgYaQa3aec:W1jjbfydbcdtfydbgHcdtgwfydbgKSmbaXaHfRbbgLcv2aXaOfRbbgAfc;a1jjbfRbbg8AaAcv2aLfg8Lc;a1jjbfRbbg8KVcFeGTmbdnaKaY9nmba8Lcj1jjbfRbbcFeGmekaAcufhYdnaAaL9hmbaYcFeGce0mbahaifydbaH9hmekdndnaAclSmbaLcl9hmekdnaYcFeGce0mbahaifydbaH9hmdkaLcufcFeGce0mbagawfydbaO9hmekaDaEcx2fgAaHaOa8KcFeGgYEBdlaAaOaHaYEBdbaAaYa8AGcb9hBdwaEcefhEkaeclfgecx9hmbkdna5cifg5ad9pmba8Fcxfh8FaEcifaT9nmekkaETmdcbhiinJbbbbJbbjZaqaQaDaicx2fgAydlgKaAydbgYaAydwgHEgLcdtfydbc8S2fgeIdyg8S:va8SJbbbb9BEaeIdwaaaYaKaHEg8Fcx2fgHIdwgRNaeIdzaHIdbg8PNaeIdaMg8Sa8SMMaRNaeIdlaHIdlg8RNaeIdCaRNaeId3Mg8Sa8SMMa8RNaeIdba8PNaeIdxa8RNaeIdKMg8Sa8SMMa8PNaeId8KMMM:lNh80JbbbbJbbjZaqaQaYcdtfydbc8S2fgeIdyg8S:va8SJbbbb9BEaeIdwaaaKcx2fgHIdwg8VNaeIdzaHIdbg8WNaeIdaMg8Sa8SMMa8VNaeIdlaHIdlg8UNaeIdCa8VNaeId3Mg8Sa8SMMa8UNaeIdba8WNaeIdxa8UNaeIdKMg8Sa8SMMa8WNaeId8KMMM:lNh8YaAcwfh3aAclfhwdna8JTmbavaYc8S2fgOIdwa8VNaOIdza8WNaOIdaMg8Sa8SMMa8VNaOIdla8UNaOIdCa8VNaOId3Mg8Sa8SMMa8UNaOIdba8WNaOIdxa8UNaOIdKMg8Sa8SMMa8WNaOId8KMMMh8SayaKa8J2cdtfhHaraYa8J2cltfheaOIdyh8Xa8JhOinaHIdbgIaIa8XNaecxfIdba8VaecwfIdbNa8WaeIdbNa8UaeclfIdbNMMMgIaIM:tNa8SMh8SaHclfhHaeczfheaOcufgOmbkavaLc8S2fgOIdwaRNaOIdza8PNaOIdaMgIaIMMaRNaOIdla8RNaOIdCaRNaOId3MgIaIMMa8RNaOIdba8PNaOIdxa8RNaOIdKMgIaIMMa8PNaOId8KMMMhIaya8Fa8J2cdtfhHaraLa8J2cltfheaOIdyh8Wa8JhOinaHIdbg8Va8Va8WNaecxfIdbaRaecwfIdbNa8PaeIdbNa8RaeclfIdbNMMMg8Va8VM:tNaIMhIaHclfhHaeczfheaOcufgOmbka80aI:lMh80a8Ya8S:lMh8YkawaKa8Fa8Ya809FgeEBdbaAaYaLaeEBdba3a8Ya80aeEUdbaicefgiaE9hmbkasc;Wbfcbcj;qbz:ljjjb8Aa6heaEhHinasc;WbfaeydbcA4cF8FGgOcFAaOcFA6EcdtfgOaOydbcefBdbaecxfheaHcufgHmbkcbhecbhHinasc;WbfaefgOydbhAaOaHBdbaAaHfhHaeclfgecj;qb9hmbkcbhea6hHinasc;WbfaHydbcA4cF8FGgOcFAaOcFA6EcdtfgOaOydbgOcefBdbaSaOcdtfaeBdbaHcxfhHaEaecefge9hmbkadak9RgOci9Uh9kdnalTmbcbhea8MhHinaHaeBdbaHclfhHalaecefge9hmbkkcbh0a9hcbalz:ljjjbh9maOcO9Uh9na9kce4h9oasydwh9pcbh8KcbhwdninaDaSawcdtfydbcx2fg3Idwg8Sac9Emea8Ka9k9pmeJFFuuhIdna9oaE9pmbaDaSa9ocdtfydbcx2fIdwJbb;aZNhIkdna8SaI9ETmba8San9ETmba8Ka9n0mdkdna9maQa3ydlgicdtg9qfydbgAfg9rRbba9maQa3ydbgLcdtg9sfydbgHfg9tRbbVmbaXaLfRbbh9udna9eaHcdtfgeclfydbgOaeydbgeSmbaOae9RhKa9paecitfheaaaAcx2fg8Lcwfh5a8Lclfh9vaaaHcx2fg8Acwfh9wa8Aclfh9xcbhHceh8Fdnindna8MaeydbcdtfydbgOaASmba8MaeclfydbcdtfydbgYaASmbaOaYSmbaaaYcx2fgYIdbaaaOcx2fgOIdbg8V:tg8Sa9xIdbaOIdlgR:tg8WNa8AIdba8V:tg8UaYIdlaR:tgIN:tg8Pa8Sa9vIdbaR:tg8XNa8LIdba8V:tg80aIN:tgRNaIa9wIdbaOIdwg8R:tg8YNa8WaYIdwa8R:tg8VN:tg8WaIa5Idba8R:tg81Na8Xa8VN:tgINa8Va8UNa8Ya8SN:tg8Ra8Va80Na81a8SN:tg8SNMMa8Pa8PNa8Wa8WNa8Ra8RNMMaRaRNaIaINa8Sa8SNMMN:rJbbj8:N9FmdkaecwfheaHcefgHaK6h8FaKaH9hmbkka8FceGTmba9ocefh9oxeka3cwfhHdndndndna9uc9:fPdebdkaLheina8MaecdtgefaiBdba8EaefydbgeaL9hmbxikkdnagahaha9sfydbaiSEa8Ea9sfydbgLcdtfydbgecu9hmba8Ea9qfydbheka8Ma9sfaiBdbaehika8MaLcdtfaiBdbka9tce86bba9rce86bbaHIdbg8Sanana8S9DEhna0cefh0cecda9uceSEa8Kfh8KkawcefgwaE9hmbkka0TmddnalTmbcbhKcbhiindna8MaicdtgefydbgOaiSmbaQaOcdtfydbh8FdnaiaQaefydb9hg3mbaqa8Fc8S2fgeaqaic8S2fgHIdbaeIdbMUdbaeaHIdlaeIdlMUdlaeaHIdwaeIdwMUdwaeaHIdxaeIdxMUdxaeaHIdzaeIdzMUdzaeaHIdCaeIdCMUdCaeaHIdKaeIdKMUdKaeaHId3aeId3MUd3aeaHIdaaeIdaMUdaaeaHId8KaeId8KMUd8KaeaHIdyaeIdyMUdyka8JTmbavaOc8S2fgeavaic8S2gwfgHIdbaeIdbMUdbaeaHIdlaeIdlMUdlaeaHIdwaeIdwMUdwaeaHIdxaeIdxMUdxaeaHIdzaeIdzMUdzaeaHIdCaeIdCMUdCaeaHIdKaeIdKMUdKaeaHId3aeId3MUd3aeaHIdaaeIdaMUdaaeaHId8KaeId8KMUd8KaeaHIdyaeIdyMUdya9iaO2hLarhHa8JhAinaHaLfgeaHaKfgOIdbaeIdbMUdbaeclfgYaOclfIdbaYIdbMUdbaecwfgYaOcwfIdbaYIdbMUdbaecxfgeaOcxfIdbaeIdbMUdbaHczfhHaAcufgAmbka3mbJbbbbJbbjZaqawfgeIdyg8S:va8SJbbbb9BEaeIdwaaa8Fcx2fgHIdwg8SNaeIdzaHIdbgINaeIdaMg8Va8VMMa8SNaeIdlaHIdlg8VNaeIdCa8SNaeId3Mg8Sa8SMMa8VNaeIdbaINaeIdxa8VNaeIdKMg8Sa8SMMaINaeId8KMMM:lNg8SaBaBa8S9DEhBkaKa9ifhKaicefgial9hmbkcbhHahheindnaeydbgOcuSmbdnaHa8MaOcdtgAfydbgO9hmbcuhOahaAfydbgAcuSmba8MaAcdtfydbhOkaeaOBdbkaeclfhealaHcefgH9hmbkcbhHagheindnaeydbgOcuSmbdnaHa8MaOcdtgAfydbgO9hmbcuhOagaAfydbgAcuSmba8MaAcdtfydbhOkaeaOBdbkaeclfhealaHcefgH9hmbkkaBana8JEhBcbhYabhecbhKindna8MaeydbcdtfydbgHa8MaeclfydbcdtfydbgOSmbaHa8MaecwfydbcdtfydbgASmbaOaASmbabaYcdtfgLaHBdbaLcwfaABdbaLclfaOBdbaYcifhYkaecxfheaKcifgKad6mbkdndna9cTmbaYak9nmba8ZaB9FTmbcbhdabhecbhHindnaoaCaeydbgOcdtfydbcdtfIdbaB9ETmbabadcdtfgAaOBdbaAclfaeclfydbBdbaAcwfaecwfydbBdbadcifhdkaecxfheaHcifgHaY6mbkJFFuuh8ZaJTmeaoheaJhHJFFuuh8SinaeIdbgIa8Sa8SaI9EEg8Va8SaIaB9EgOEh8Sa8Va8ZaOEh8ZaeclfheaHcufgHmbxdkkaYhdkadak0mbxdkkasclfabadalaQz:cjjjbkdndnadak0mbadhOxekdna9cmbadhOxekdna8Zac9FmbadhOxekina8ZJbb;aZNg8Saca8Sac9DEh8VJbbbbh8SdnaJTmbaoheaJhHinaeIdbgIa8SaIa8V9FEa8SaIa8S9EEh8SaeclfheaHcufgHmbkkcbhOabhecbhHindnaoaCaeydbgAcdtfydbcdtfIdba8V9ETmbabaOcdtfgYaABdbaYclfaeclfydbBdbaYcwfaecwfydbBdbaOcifhOkaecxfheaHcifgHad6mbkJFFuuh8ZdnaJTmbaoheaJhHJFFuuhIinaeIdbgRaIaIaR9EEg8PaIaRa8V9EgAEhIa8Pa8ZaAEh8ZaeclfheaHcufgHmbkkdnaOad9hmbadhOxdka8Sanana8S9DEhnaOak9nmeaOhda8Zac9FmbkkdnamcjjjjlGTmbazmbaOTmbcbhQabheinaXaeydbgAfRbbc3thKaecwfgLydbhHdndnahaAcdtg8FfydbaeclfgiydbgCSmbcbhYagaCcdtfydbaA9hmekcjjjj94hYkaeaKaYVaAVBdbaXaCfRbbc3thKdndnahaCcdtfydbaHSmbcbhYagaHcdtfydbaC9hmekcjjjj94hYkaiaKaYVaCVBdbaXaHfRbbc3thYdndnahaHcdtfydbaASmbcbhCaga8FfydbaH9hmekcjjjj94hCkaLaYaCVaHVBdbaecxfheaQcifgQaO6mbkkdnazTmbaOTmbaOheinabazabydbcdtfydbBdbabclfhbaecufgembkkdnaPTmbaPa83an:rNUdbkasyd2gecdtascxffc98fhHdninaeTmeaHydbcbyd;O1jjbH:bjjjbbaHc98fhHaecufhexbkkasc;W;qbf8KjjjjbaOk;Yieouabydlhvabydbclfcbaicdtz:ljjjbhoadci9UhrdnadTmbdnalTmbaehwadhDinaoalawydbcdtfydbcdtfgqaqydbcefBdbawclfhwaDcufgDmbxdkkaehwadhDinaoawydbcdtfgqaqydbcefBdbawclfhwaDcufgDmbkkdnaiTmbcbhDaohwinawydbhqawaDBdbawclfhwaqaDfhDaicufgimbkkdnadci6mbinaecwfydbhwaeclfydbhDaeydbhidnalTmbalawcdtfydbhwalaDcdtfydbhDalaicdtfydbhikavaoaicdtfgqydbcitfaDBdbavaqydbcitfawBdlaqaqydbcefBdbavaoaDcdtfgqydbcitfawBdbavaqydbcitfaiBdlaqaqydbcefBdbavaoawcdtfgwydbcitfaiBdbavawydbcitfaDBdlawawydbcefBdbaecxfhearcufgrmbkkabydbcbBdbk;Podvuv998Jjjjjbca9RgvcFFF;7rBd3av9cFFF;7;3FF:;Fb83dCavcFFF97Bdzav9cFFF;7FFF:;u83dwdnadTmbaicd4hodnabmbdnalTmbcbhrinaealarcdtfydbao2cdtfhwcbhiinavcCfaifgDawaifIdbgqaDIdbgkakaq9EEUdbavcwfaifgDaqaDIdbgkakaq9DEUdbaiclfgicx9hmbkarcefgrad9hmbxikkaocdthrcbhwincbhiinavcCfaifgDaeaifIdbgqaDIdbgkakaq9EEUdbavcwfaifgDaqaDIdbgkakaq9DEUdbaiclfgicx9hmbkaearfheawcefgwad9hmbxdkkdnalTmbcbhrinabarcx2fgiaealarcdtfydbao2cdtfgwIdbUdbaiawIdlUdlaiawIdwUdwcbhiinavcCfaifgDawaifIdbgqaDIdbgkakaq9EEUdbavcwfaifgDaqaDIdbgkakaq9DEUdbaiclfgicx9hmbkarcefgrad9hmbxdkkaocdthlcbhraehwinabarcx2fgiaearao2cdtfgDIdbUdbaiaDIdlUdlaiaDIdwUdwcbhiinavcCfaifgDawaifIdbgqaDIdbgkakaq9EEUdbavcwfaifgDaqaDIdbgkakaq9DEUdbaiclfgicx9hmbkawalfhwarcefgrad9hmbkkJbbbbavIdwavIdCgk:tgqaqJbbbb9DEgqavIdxavIdKgx:tgmamaq9DEgqavIdzavId3gm:tgPaPaq9DEhPdnabTmbadTmbJbbbbJbbjZaP:vaPJbbbb9BEhqinabaqabIdbak:tNUdbabclfgvaqavIdbax:tNUdbabcwfgvaqavIdbam:tNUdbabcxfhbadcufgdmbkkaPk8MbabaeadaialavcbcbcbcbcbaoarawaDz:bjjjbk8MbabaeadaialavaoarawaDaqakaxamaPz:bjjjbk:nCoDud99rue99lul998Jjjjjbc;Wb9Rgw8KjjjjbdndnarmbcbhDxekawcxfcbc;Kbz:ljjjb8Aawcuadcx2adc;v:Q;v:Qe0Ecbyd;S1jjbHjjjjbbgqBdxawceBd2aqaeadaicbz:djjjb8AawcuadcdtadcFFFFi0Egkcbyd;S1jjbHjjjjbbgxBdzawcdBd2adcd4adfhmceheinaegicetheaiam6mbkcbhPawcuaicdtgsaicFFFFi0Ecbyd;S1jjbHjjjjbbgzBdCawciBd2dndnar:ZgH:rJbbbZMgO:lJbbb9p9DTmbaO:Ohexekcjjjj94hekaicufhAc:bwhmcbhCadhXcbhQinaChLaeamgKcufaeaK9iEaPgDcefaeaD9kEhYdndnadTmbaYcuf:YhOaqhiaxheadhmindndnaiIdbaONJbbbZMg8A:lJbbb9p9DTmba8A:OhCxekcjjjj94hCkaCcCthCdndnaiclfIdbaONJbbbZMg8A:lJbbb9p9DTmba8A:OhExekcjjjj94hEkaEcqtaCVhCdndnaicwfIdbaONJbbbZMg8A:lJbbb9p9DTmba8A:OhExekcjjjj94hEkaeaCaEVBdbaicxfhiaeclfheamcufgmmbkazcFeasz:ljjjbh3cbh5cbh8Eindna3axa8EcdtfydbgCcm4aC7c:v;t;h;Ev2gics4ai7aAGgmcdtfgEydbgecuSmbaeaCSmbcehiina3amaifaAGgmcdtfgEydbgecuSmeaicefhiaeaC9hmbkkaEaCBdba5aecuSfh5a8Ecefg8Ead9hmbxdkkazcFeasz:ljjjb8Acbh5kaDaYa5ar0giEhPaLa5aiEhCdna5arSmbaYaKaiEgmaP9Rcd9imbdndnaQcl0mbdnaX:ZgOaL:Zg8A:taY:Yg8FaD:Y:tgaa8FaK:Y:tgha5:ZggaH:tNNNaOaH:tahNa8Aag:tNa8AaH:taaNagaO:tNM:va8FMJbbbZMgO:lJbbb9p9DTmbaO:Ohexdkcjjjj94hexekaPamfcd9Theka5aXaiEhXaQcefgQcs9hmekkdndnaCmbcihicbhDxekcbhiawakcbyd;S1jjbHjjjjbbg8EBdKawclBd2aPcuf:Yh8AdndnadTmbaqhiaxheadhmindndnaiIdba8ANJbbbZMgO:lJbbb9p9DTmbaO:OhCxekcjjjj94hCkaCcCthCdndnaiclfIdba8ANJbbbZMgO:lJbbb9p9DTmbaO:OhExekcjjjj94hEkaEcqtaCVhCdndnaicwfIdba8ANJbbbZMgO:lJbbb9p9DTmbaO:OhExekcjjjj94hEkaeaCaEVBdbaicxfhiaeclfheamcufgmmbkazcFeasz:ljjjbh3cbhDcbh5inaxa5cdtgYfydbgCcm4aC7c:v;t;h;Ev2gics4ai7hecbhidndnina3aeaAGgmcdtfgEydbgecuSmednaxaecdtgEfydbaCSmbaicefgiamfheaiaA9nmekka8EaEfydbhixekaEa5BdbaDhiaDcefhDka8EaYfaiBdba5cefg5ad9hmbkcuaDc32giaDc;j:KM;jb0EhexekazcFeasz:ljjjb8AcbhDcbhekawaecbyd;S1jjbHjjjjbbgeBd3awcvBd2aecbaiz:ljjjbhEavcd4hxdnadTmbdnalTmbaxcdth3a8EhCalheaqhmadhAinaEaCydbc32fgiamIdbaiIdbMUdbaiamclfIdbaiIdlMUdlaiamcwfIdbaiIdwMUdwaiaeIdbaiIdxMUdxaiaeclfIdbaiIdzMUdzaiaecwfIdbaiIdCMUdCaiaiIdKJbbjZMUdKaCclfhCaea3fheamcxfhmaAcufgAmbxdkka8EhmaqheadhCinaEamydbc32fgiaeIdbaiIdbMUdbaiaeclfIdbaiIdlMUdlaiaecwfIdbaiIdwMUdwaiaiIdxJbbbbMUdxaiaiIdzJbbbbMUdzaiaiIdCJbbbbMUdCaiaiIdKJbbjZMUdKamclfhmaecxfheaCcufgCmbkkdnaDTmbaEhiaDheinaiaiIdbJbbbbJbbjZaicKfIdbgO:vaOJbbbb9BEgONUdbaiclfgmaOamIdbNUdbaicwfgmaOamIdbNUdbaicxfgmaOamIdbNUdbaiczfgmaOamIdbNUdbaicCfgmaOamIdbNUdbaic3fhiaecufgembkkcbhCawcuaDcdtgYaDcFFFFi0Egicbyd;S1jjbHjjjjbbgeBdaawcoBd2awaicbyd;S1jjbHjjjjbbg3Bd8KaecFeaYz:ljjjbh5dnadTmbJbbjZJbbjZa8A:vaPceSEaoNgOaONh8Aaxcdthxalheina8Aaec;C1jjbalEgmIdwaEa8EydbgAc32fgiIdC:tgOaONamIdbaiIdx:tgOaONamIdlaiIdz:tgOaONMMNaqcwfIdbaiIdw:tgOaONaqIdbaiIdb:tgOaONaqclfIdbaiIdl:tgOaONMMMhOdndna5aAcdtgifgmydbcuSmba3aifIdbaO9ETmekamaCBdba3aifaOUdbka8Eclfh8EaeaxfheaqcxfhqadaCcefgC9hmbkkaba5aYz:kjjjb8AcrhikaicdthiinaiTmeaic98fgiawcxffydbcbyd;O1jjbH:bjjjbbxbkkawc;Wbf8KjjjjbaDk:Odieui99iu8Jjjjjbca9RgicFFF;7rBd3ai9cFFF;7;3FF:;Fb83dCaicFFF97Bdzai9cFFF;7FFF:;u83dwdndnaembJbbjFhlJbbjFhvJbbjFhoxekadcd4cdthrcbhwincbhdinaicCfadfgDabadfIdbglaDIdbgvaval9EEUdbaicwfadfgDalaDIdbgvaval9DEUdbadclfgdcx9hmbkabarfhbawcefgwae9hmbkaiIdzaiId3:thoaiIdxaiIdK:thvaiIdwaiIdC:thlkJbbbbalalJbbbb9DEglavaval9DEglaoaoal9DEk9DeeuabcFeaicdtz:ljjjbhlcbhbdnadTmbindnalaeydbcdtfgiydbcu9hmbaiabBdbabcefhbkaeclfheadcufgdmbkkabk9teiucbcbyd;W1jjbgeabcifc98GfgbBd;W1jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik;LeeeudndnaeabVciGTmbabhixekdndnadcz9pmbabhixekabhiinaiaeydbBdbaiclfaeclfydbBdbaicwfaecwfydbBdbaicxfaecxfydbBdbaeczfheaiczfhiadc9Wfgdcs0mbkkadcl6mbinaiaeydbBdbaeclfheaiclfhiadc98fgdci0mbkkdnadTmbinaiaeRbb86bbaicefhiaecefheadcufgdmbkkabk;aeedudndnabciGTmbabhixekaecFeGc:b:c:ew2hldndnadcz9pmbabhixekabhiinaialBdbaicxfalBdbaicwfalBdbaiclfalBdbaiczfhiadc9Wfgdcs0mbkkadcl6mbinaialBdbaiclfhiadc98fgdci0mbkkdnadTmbinaiae86bbaicefhiadcufgdmbkkabk9teiucbcbyd;W1jjbgeabcrfc94GfgbBd;W1jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik9:eiuZbhedndncbyd;W1jjbgdaecztgi9nmbcuheadai9RcFFifcz4nbcuSmekadhekcbabae9Rcifc98Gcbyd;W1jjbfgdBd;W1jjbdnadZbcztge9nmbadae9RcFFifcz4nb8Akk6eiucbhidnadTmbdninabRbbglaeRbbgv9hmeaecefheabcefhbadcufgdmbxdkkalav9Rhikaikk:bedbcjwk9Oeeebeebebbeeebebbbbbebebbbbbbbbbebbbdbbbbbbbebbbebbbdbbbbbbbbbbbeeeeebebbebbebebbbeebbbbbbbbbbbbbbbbbbbbbc;OwkxebbbdbbbjNbb",J=new Uint8Array([32,0,65,2,1,106,34,33,3,128,11,4,13,64,6,253,10,7,15,116,127,5,8,12,40,16,19,54,20,9,27,255,113,17,42,67,24,23,146,148,18,14,22,45,70,69,56,114,101,21,25,63,75,136,108,28,118,29,73,115]);if(typeof WebAssembly!=="object")return{supported:!1};var X,Y=WebAssembly.instantiate($(Z),{}).then(function(U){X=U.instance,X.exports.__wasm_call_ctors()});function $(U){var w=new Uint8Array(U.length);for(var L=0;L<U.length;++L){var j=U.charCodeAt(L);w[L]=j>96?j-97:j>64?j-39:j+4}var R=0;for(var L=0;L<U.length;++L)w[R++]=w[L]<60?J[w[L]]:(w[L]-60)*64+w[++L];return w.buffer.slice(0,R)}function Q(U){if(!U)throw new Error("Assertion failed")}function K(U){return new Uint8Array(U.buffer,U.byteOffset,U.byteLength)}function W(U,w,L){var j=X.exports.sbrk,R=j(w.length*4),O=j(L*4),N=new Uint8Array(X.exports.memory.buffer),D=K(w);N.set(D,R);var P=U(O,R,w.length,L);N=new Uint8Array(X.exports.memory.buffer);var C=new Uint32Array(L);new Uint8Array(C.buffer).set(N.subarray(O,O+L*4)),D.set(N.subarray(R,R+w.length*4)),j(R-j(0));for(var T=0;T<w.length;++T)w[T]=C[w[T]];return[C,P]}function G(U){var w=0;for(var L=0;L<U.length;++L){var j=U[L];w=w<j?j:w}return w}function z(U,w,L,j,R,O,N,D,P){var C=X.exports.sbrk,T=C(4),k=C(L*4),A=C(R*O),S=C(L*4),x=new Uint8Array(X.exports.memory.buffer);x.set(K(j),A),x.set(K(w),S);var I=U(k,S,L,A,R,O,N,D,P,T);x=new Uint8Array(X.exports.memory.buffer);var v=new Uint32Array(I);K(v).set(x.subarray(k,k+I*4));var f=new Float32Array(1);return K(f).set(x.subarray(T,T+4)),C(T-C(0)),[v,f[0]]}function V(U,w,L,j,R,O,N,D,P,C,T,k,A){var S=X.exports.sbrk,x=S(4),I=S(L*4),v=S(R*O),f=S(R*D),p=S(P.length*4),n=S(L*4),o=C?S(R):0,J0=new Uint8Array(X.exports.memory.buffer);if(J0.set(K(j),v),J0.set(K(N),f),J0.set(K(P),p),J0.set(K(w),n),C)J0.set(K(C),o);var Q0=U(I,n,L,v,R,O,f,D,p,P.length,o,T,k,A,x);J0=new Uint8Array(X.exports.memory.buffer);var T0=new Uint32Array(Q0);K(T0).set(J0.subarray(I,I+Q0*4));var k0=new Float32Array(1);return K(k0).set(J0.subarray(x,x+4)),S(x-S(0)),[T0,k0[0]]}function H(U,w,L,j){var R=X.exports.sbrk,O=R(L*j),N=new Uint8Array(X.exports.memory.buffer);N.set(K(w),O);var D=U(O,L,j);return R(O-R(0)),D}function q(U,w,L,j,R,O,N,D){var P=X.exports.sbrk,C=P(D*4),T=P(L*j),k=P(L*O),A=new Uint8Array(X.exports.memory.buffer);if(A.set(K(w),T),R)A.set(K(R),k);var S=U(C,T,L,j,k,O,N,D);A=new Uint8Array(X.exports.memory.buffer);var x=new Uint32Array(S);return K(x).set(A.subarray(C,C+S*4)),P(C-P(0)),x}var F={LockBorder:1,Sparse:2,ErrorAbsolute:4,Prune:8,_InternalDebug:1073741824};return{ready:Y,supported:!0,useExperimentalFeatures:!1,compactMesh:function(U){Q(U instanceof Uint32Array||U instanceof Int32Array||U instanceof Uint16Array||U instanceof Int16Array),Q(U.length%3==0);var w=U.BYTES_PER_ELEMENT==4?U:new Uint32Array(U);return W(X.exports.meshopt_optimizeVertexFetchRemap,w,G(U)+1)},simplify:function(U,w,L,j,R,O){Q(U instanceof Uint32Array||U instanceof Int32Array||U instanceof Uint16Array||U instanceof Int16Array),Q(U.length%3==0),Q(w instanceof Float32Array),Q(w.length%L==0),Q(L>=3),Q(j>=0&&j<=U.length),Q(j%3==0),Q(R>=0);var N=0;for(var D=0;D<(O?O.length:0);++D)Q(O[D]in F),Q(this.useExperimentalFeatures||O[D]!="Prune"),N|=F[O[D]];var P=U.BYTES_PER_ELEMENT==4?U:new Uint32Array(U),C=z(X.exports.meshopt_simplify,P,U.length,w,w.length/L,L*4,j,R,N);return C[0]=U instanceof Uint32Array?C[0]:new U.constructor(C[0]),C},simplifyWithAttributes:function(U,w,L,j,R,O,N,D,P,C){Q(this.useExperimentalFeatures),Q(U instanceof Uint32Array||U instanceof Int32Array||U instanceof Uint16Array||U instanceof Int16Array),Q(U.length%3==0),Q(w instanceof Float32Array),Q(w.length%L==0),Q(L>=3),Q(j instanceof Float32Array),Q(j.length%R==0),Q(R>=0),Q(N==null||N instanceof Uint8Array),Q(N==null||N.length==w.length/L),Q(D>=0&&D<=U.length),Q(D%3==0),Q(P>=0),Q(Array.isArray(O)),Q(R>=O.length),Q(O.length<=32);for(var T=0;T<O.length;++T)Q(O[T]>=0);var k=0;for(var T=0;T<(C?C.length:0);++T)Q(C[T]in F),k|=F[C[T]];var A=U.BYTES_PER_ELEMENT==4?U:new Uint32Array(U),S=V(X.exports.meshopt_simplifyWithAttributes,A,U.length,w,w.length/L,L*4,j,R*4,new Float32Array(O),N?new Uint8Array(N):null,D,P,k);return S[0]=U instanceof Uint32Array?S[0]:new U.constructor(S[0]),S},getScale:function(U,w){return Q(U instanceof Float32Array),Q(U.length%w==0),Q(w>=3),H(X.exports.meshopt_simplifyScale,U,U.length/w,w*4)},simplifyPoints:function(U,w,L,j,R,O){if(Q(this.useExperimentalFeatures),Q(U instanceof Float32Array),Q(U.length%w==0),Q(w>=3),Q(L>=0&&L<=U.length/w),j)return Q(j instanceof Float32Array),Q(j.length%R==0),Q(R>=3),Q(U.length/w==j.length/R),q(X.exports.meshopt_simplifyPoints,U,U.length/w,w*4,j,R*4,O,L);else return q(X.exports.meshopt_simplifyPoints,U,U.length/w,w*4,void 0,0,0,L)}}}();var RV6=function(){var Z="b9H79Tebbbefx9Geueu9Geub9Gbb9Giuuueu9Gkuuuuuuuuuu99eu9Gvuuuuueu9Gkuuuuuuuuu9999eu9Gruuuuuuub9Gkuuuuuuuuuuueu9Gouuuuuub9Giuuub9GluuuubiOHdilvorwDqrkbiibeilve9Weiiviebeoweuec:q:Odkr:Yewo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8A9TW79O9V9Wt9F9I919P29K9nW79O2Wt79c9V919U9KbeX9TW79O9V9Wt9F9I919P29K9nW79O2Wt7bd39TW79O9V9Wt9F9J9V9T9W91tWJ2917tWV9c9V919U9K7br39TW79O9V9Wt9F9J9V9T9W91tW9nW79O2Wt9c9V919U9K7bDL9TW79O9V9Wt9F9V9Wt9P9T9P96W9nW79O2Wtbql79IV9RbkDwebcekdsPq;L9kHdbkIbabaec9:fgefcufae9Ugeabci9Uadfcufad9Ugbaeab0Ek:oAlPue99eux998Jjjjjbc:We9Rgk8Kjjjjbakc;mbfcbc;Kbz:njjjb8AakcuaocdtgxaocFFFFi0Egmcbyd:e1jjbHjjjjbbgPBd9makceBd:SeakaPBdnakamcbyd:e1jjbHjjjjbbgsBd9qakcdBd:SeakasBd9eakcualcdtalcFFFFi0Ecbyd:e1jjbHjjjjbbgzBd9uakazBd9iakciBd:SeaPcbaxz:njjjbhHalci9UhOdnalTmbaihPalhAinaHaPydbcdtfgCaCydbcefBdbaPclfhPaAcufgAmbkkdnaoTmbcbhPashAaHhCaohXinaAaPBdbaAclfhAaCydbaPfhPaCclfhCaXcufgXmbkkdnalci6mbcbhPaihAinaAcwfydbhCaAclfydbhXasaAydbcdtfgQaQydbgQcefBdbazaQcdtfaPBdbasaXcdtfgXaXydbgXcefBdbazaXcdtfaPBdbasaCcdtfgCaCydbgCcefBdbazaCcdtfaPBdbaAcxfhAaOaPcefgP9hmbkkdnaoTmbaHhAashPaohCinaPaPydbaAydb9RBdbaAclfhAaPclfhPaCcufgCmbkkakamcbyd:e1jjbHjjjjbbgPBd9yakclBd:SeaPaHaxz:mjjjbhmakaOcbyd:e1jjbHjjjjbbgPBd9CakcvBd:SeaPcbaOz:njjjbhLakcuaOcK2alcjjjjd0Ecbyd:e1jjbHjjjjbbgKBd9GakcoBd:SeJbbbbhYdnalci6g8Ambarcd4hxaihAaKhPaOhrJbbbbhEinavaAclfydbax2cdtfgCIdlh3avaAydbax2cdtfgXIdlhYavaAcwfydbax2cdtfgQIdlh5aCIdwh8EaXIdwh8FaQIdwhaaPaCIdbghaXIdbggMaQIdbg8JMJbbnn:vUdbaPclfaXIdlaCIdlMaQIdlMJbbnn:vUdbaQIdwh8KaCIdwh8LaXIdwh8MaPcxfa3aY:tg3aaa8F:tgaNa5aY:tg5a8Ea8F:tg8EN:tgYJbbbbJbbjZahag:tgha5Na8Jag:tgga3N:tg8Fa8FNaYaYNa8EagNaaahN:tgYaYNMM:rgg:vagJbbbb9BEg3NUdbaPczfaYa3NUdbaPcCfa8Fa3NUdbaPcwfa8Ka8Ma8LMMJbbnn:vUdbaEagMhEaAcxfhAaPcKfhParcufgrmbkaEaO:Z:vJbbbZNhYkakcuaOcdtalcFFFF970Ecbyd:e1jjbHjjjjbbgCBd9KakcrBd:SeaYaD:ZN:rhYdna8AmbcbhPaChAinaAaPBdbaAclfhAaOaPcefgP9hmbkkaYJbbbZNh8MakcuaOcltalcFFFFd0Ecbyd:e1jjbHjjjjbbg8ABd9OakcwBd:Secba8AaKaCaOz:djjjb8Aakaocbyd:e1jjbHjjjjbbgPBd2aPcFeaoz:njjjbhrakc8Wfcwf9cb83ibak9cb83i8WcbhPJbbbbhEJbbbbh5Jbbbbh8EJbbbbhYJbbbbh8FJbbbbhgcbhlinJbbbbh3dnaPTmbJbbjZaP:Z:vh3kaka8Ea3NgaUdaaka5a3NghUd3akaEa3Ng8JUdKJbbbbh3dnagagNaYaYNa8Fa8FNMMg8KJbbbb9BmbJbbjZa8K:r:vh3kakaga3NUd8Saka8Fa3NUdyakaYa3NUd8Kdndndnakyd8WgQakydUgAakcKfaeaiakc;abfaKamara8Maqz:ejjjbgCcuSmbdnaPaD9pmbaAaraiaCcx2fgXydbfRbbcFeSfaraXclfydbfRbbcFeSfaraXcwfydbfRbbcFeSfaw9nmdkaQaAcbaeaiakc;abfaKamara8MJbbbbz:ejjjbgCcu9hmekakaaUdCakahUdzaka8JUdxakcuBdwakcFFF;7rBdla8AcbaKaLakcxfakcwfakclfz:fjjjbakydwgCcuSmekdnakc8WfaiaCcx2fgOydbgPaOclfydbgAaOcwfydbgXarabaeadalawaDz:gjjjbTmbalcefhlJbbbbhEJbbbbh5Jbbbbh8EJbbbbhYJbbbbh8FJbbbbhgkamaPcdtfgPaPydbcufBdbamaAcdtfgPaPydbcufBdbamaXcdtfgPaPydbcufBdbcbhXinazasaOaXcdtfydbcdtgAfydbcdtfgxhPaHaAfgvydbgQhAdnaQTmbdninaPydbaCSmeaPclfhPaAcufgATmdxbkkaPaxaQcdtfc98fydbBdbavavydbcufBdbkaXcefgXci9hmbkaKaCcK2fgPIdbh3aPIdlhaaPIdwhhaPIdxh8JaPIdzh8KaPIdCh8LaLaCfce86bbaga8LMhga8Fa8KMh8FaYa8JMhYa8EahMh8Ea5aaMh5aEa3MhEakyd88hPxekkdnaPTmbdnakyd80gAaPci2fgCciGTmbadaCfcbaPaAcu7fciGcefz:njjjb8AkabalcltfgPak8Pi8W83dbaPcwfakc8Wfcwf8Pib83dbalcefhlkcahPdninaPc98Smeakc;mbfaPfydbcbydj1jjbH:bjjjbbaPc98fhPxbkkakc:Wef8Kjjjjbalk;3vivuv99lu8Jjjjjbca9Rgv8Kjjjjbdndnalcw0mbaiydbhoaeabcitfgralcdtcufBdlaraoBdbdnalcd6mbaiclfhoalcufhwarcxfhrinaoydbhDarcuBdbarc98faDBdbarcwfhraoclfhoawcufgwmbkkalabfhrxekcbhDavczfcwfcbBdbav9cb83izavcwfcbBdbav9cb83ibJbbjZhqJbbjZhkinadaiaDcdtfydbcK2fhwcbhrinavczfarfgoawarfIdbgxaoIdbgm:tgPakNamMgmUdbavarfgoaPaxam:tNaoIdbMUdbarclfgrcx9hmbkJbbjZaqJbbjZMgq:vhkaDcefgDal9hmbkcbhoadcbcecdavIdlgxavIdwgm9GEgravIdbgPam9GEaraPax9GEgscdtgrfhzavczfarfIdbhxaihralhwinaiaocdtfgDydbhHaDarydbgOBdbaraHBdbarclfhraoazaOcK2fIdbax9Dfhoawcufgwmbkaeabcitfhrdndnaocv6mbaoalc98f6mekaraiydbBdbaralcdtcufBdlaiclfhoalcufhwarcxfhrinaoydbhDarcuBdbarc98faDBdbarcwfhraoclfhoawcufgwmbkalabfhrxekaraxUdbaeabcitfgrarydlc98GasVBdlabcefaeadaiaoz:djjjbhwararydlciGawabcu7fcdtVBdlawaeadaiaocdtfalao9Rz:djjjbhrkavcaf8Kjjjjbark;Bloeue99vue99Due99dndnaembcuhkxekJbbjZaq:thxaiabcdtfhmavydbhPavydlhsavydwhzcbhHJFFuuhOcvhbcuhkindnaPamaHcdtfydbcdtgvfydbgATmbazasavfydbcdtfhiindndnawalaiydbgCcx2fgvclfydbgXfRbbcFeSawavydbgQfRbbcFeSfawavcwfydbgLfRbbcFeSfgKmbcbhvxekcehvaraQcdtfydbgYceSmbcehvaraXcdtfydbg8AceSmbcehvaraLcdtfydbgEceSmbdna8AcdSaYcdSfaEcdSfcd6mbaKcefhvxekaKcdfhvkdnavab9kmbdndnadTmbaoaCcK2fgQIdwadIdw:tg3a3NaQIdbadIdb:tg3a3NaQIdladIdl:tg3a3NMM:raD:vaxNJbbjZMJ9VO:d86JbbjZaQIdCadIdCNaQIdxadIdxNaQIdzadIdzNMMaqN:tg3a3J9VO:d869DENh3xekaraQcdtfydbaraXcdtfydbfaraLcdtfydbfc99f:Zh3kaCakavab6a3aO9DVgQEhkavabaQEhba3aOaQEhOkaiclfhiaAcufgAmbkkaHcefgHae9hmbkkakk;bddlue99dndndnabaecitfgrydlgwciGgDci9hmbarclfhqxekinabcbawcd4gwalaDcdtfIdbabaecitfIdb:tgkJbbbb9FEgDaecefgefadaialavaoz:fjjjbak:laoIdb9FTmdabaDaw7aefgecitfgrydlgwciGgDci9hmbkarclfhqkabaecitfhecuhbindnaiaeydbgDfRbbmbadaDcK2fgrIdwalIdw:tgkakNarIdbalIdb:tgkakNarIdlalIdl:tgkakNMM:rgkaoIdb9DTmbaoakUdbavaDBdbaqydbhwkaecwfheabcefgbawcd46mbkkk;yleoudnaladfgkRbbcFeSalaefgxRbbgmcFeSfabydwgPfalaifgsRbbcFeSfaD0abydxaq9pVgzce9hmbavawcltfgmab8Pdb83dbamcwfabcwfgm8Pdb83dbdndnamydbmbcbhqxekcbhDaohminalamabydbcdtfydbfcFe86bbamclfhmaDcefgDabydwgq6mbkkdnabydxglci2gDabydlgmfgPciGTmbaraPfcbalamcu7fciGcefz:njjjb8Aabydxci2hDabydlhmabydwhqkab9cb83dwababydbaqfBdbabaDcifc98GamfBdlaxRbbhmcbhPkdnamcFeGcFe9hmbaxaP86bbababydwgmcefBdwaoabydbcdtfamcdtfaeBdbkdnakRbbcFe9hmbakabydw86bbababydwgmcefBdwaoabydbcdtfamcdtfadBdbkdnasRbbcFe9hmbasabydw86bbababydwgmcefBdwaoabydbcdtfamcdtfaiBdbkarabydlfabydxci2faxRbb86bbarabydlfabydxci2fcefakRbb86bbarabydlfabydxci2fcdfasRbb86bbababydxcefBdxazk;Ckovud99euv99eul998Jjjjjbc:G;ae9Rgo8KjjjjbdndnadTmbavcd4hrcbhwcbhDindnaiaeclfydbar2cdtfgvIdbaiaeydbar2cdtfgqIdbgk:tgxaiaecwfydbar2cdtfgmIdlaqIdlgP:tgsNamIdbak:tgzavIdlaP:tgPN:tgkakNaPamIdwaqIdwgH:tgONasavIdwaH:tgHN:tgPaPNaHazNaOaxN:tgxaxNMM:rgsJbbbb9Bmbaoc:G:qefawcx2fgAakas:vUdwaAaxas:vUdlaAaPas:vUdbaocafawc8K2fgAaq8Pdb83dbaAav8Pdb83dxaAam8Pdb83dKaAcwfaqcwfydbBdbaAcCfavcwfydbBdbaAcafamcwfydbBdbawcefhwkaecxfheaDcifgDad6mbkab9cb83dbabcyf9cb83dbabcaf9cb83dbabcKf9cb83dbabczf9cb83dbabcwf9cb83dbawTmeao9cb83iKao9cb83izaoczfaocafawci2z1jjjbaoIdKhCaoIdChXaoIdzhQao9cb83iwao9cb83ibaoaoc:G:qefawz1jjjbJbbjZhkaoIdwgPJbbbbJbbjZaPaPNaoIdbgPaPNaoIdlgsasNMM:rgx:vaxJbbbb9BEgzNhxasazNhsaPazNhzaoc:G:qefheawhvinaecwfIdbaxNaeIdbazNasaeclfIdbNMMgPakaPak9DEhkaecxfheavcufgvmbkabaCUdwabaXUdlabaQUdbabaoId3UdxdndnakJ;n;m;m899FmbJbbbbhPaoc:G:qefheaocafhvinaCavcwfIdb:taecwfIdbgHNaQavIdb:taeIdbgONaXavclfIdb:taeclfIdbgLNMMaxaHNazaONasaLNMM:vgHaPaHaP9EEhPavc8KfhvaecxfheawcufgwmbkabazUd3abc8KfaxUdbabcafasUdbabcKfaCaxaPN:tUdbabcCfaXasaPN:tUdbabaQazaPN:tUdzabJbbjZakakN:t:rgkUdydndnaxJbbj:;axJbbj:;9GEgPJbbjZaPJbbjZ9FEJbb;:9cNJbbbZJbbb:;axJbbbb9GEMgP:lJbbb9p9DTmbaP:Ohexekcjjjj94hekabc8Ufae86bbdndnasJbbj:;asJbbj:;9GEgPJbbjZaPJbbjZ9FEJbb;:9cNJbbbZJbbb:;asJbbbb9GEMgP:lJbbb9p9DTmbaP:Ohvxekcjjjj94hvkabcRfav86bbdndnazJbbj:;azJbbj:;9GEgPJbbjZaPJbbjZ9FEJbb;:9cNJbbbZJbbb:;azJbbbb9GEMgP:lJbbb9p9DTmbaP:Ohqxekcjjjj94hqkabaq86b8SdndnaecKtcK91:YJbb;:9c:vax:t:lavcKtcK91:YJbb;:9c:vas:t:laqcKtcK91:YJbb;:9c:vaz:t:lakMMMJbb;:9cNJbbjZMgk:lJbbb9p9DTmbak:Ohexekcjjjj94hekaecFbaecFb9iEhexekabcjjj;8iBdycFbhekabae86b8Vxekab9cb83dbabcyf9cb83dbabcaf9cb83dbabcKf9cb83dbabczf9cb83dbabcwf9cb83dbkaoc:G;aef8Kjjjjbk:mvdouq99cbhi8Jjjjjbca9RglczfcwfcbBdbal9cb83izalcwfcbBdbal9cb83ibdnadTmbcbhvinaeaifhocbhrinalczfarfgwavawydbgwaoarfIdbgDaearawcx2ffIdb9DEBdbalarfgwavawydbgwaDaearawcx2ffIdb9EEBdbarclfgrcx9hmbkaicxfhiavcefgvad9hmbkkJbbbbhDcbhrcbhicbhvinaealarfydbcx2fgwIdwaealczfarfydbcx2fgoIdw:tgqaqNawIdbaoIdb:tgqaqNawIdlaoIdl:tgqaqNMMgqaDaqaD9EgwEhDavaiawEhiarclfhravcefgvci9hmbkaealczfaicdtgvfydbcx2fgrIdwaealavfydbcx2fglIdwMJbbbZNhqarIdlalIdlMJbbbZNhkarIdbalIdbMJbbbZNhxaD:rJbbbZNhDdnadTmbindnaecwfIdbgmaq:tgPaPNaeIdbgsax:tgPaPNaeclfIdbgzak:tgPaPNMMgPaDaDN9ETmbaqaDaP:rgH:vJbbbZNJbbbZMgPNamJbbjZaP:tgONMhqakaPNazaONMhkaxaPNasaONMhxaDaHMJbbbZNhDkaecxfheadcufgdmbkkabaDUdxabaqUdwabakUdlabaxUdbkjeeiu8Jjjjjbcj8W9Rgr8Kjjjjbaici2hwdnaiTmbawceawce0EhDarhiinaiaeadRbbcdtfydbBdbadcefhdaiclfhiaDcufgDmbkkabarawaladaoz:hjjjbarcj8Wf8Kjjjjbk:Ylequ8Jjjjjbcjx9Rgl8Kjjjjbcbhvalcjqfcbaiz:njjjb8AdndnadTmbcjehoaehrincuhwarhDcuhqavhkdninawakaoalcjqfaDcefRbbfRbb9RcFeGci6aoalcjqfaDRbbfRbb9RcFeGci6faoalcjqfaDcdfRbbfRbb9RcFeGci6fgxaq9mgmEhwdnammbaxce0mdkaxaqaxaq9kEhqaDcifhDadakcefgk9hmbkkaeawci2fgDcdfRbbhqaDcefRbbhxaDRbbhkaeavci2fgDcifaDawav9Rci2z:qjjjb8Aakalcjqffaocefgo86bbaxalcjqffao86bbaDcdfaq86bbaDcefax86bbaDak86bbaqalcjqffao86bbarcifhravcefgvad9hmbkalcFeaiz:njjjbhoadci2gDceaDce0EhqcbhxindnaoaeRbbgkfgwRbbgDcFe9hmbawax86bbaocjdfaxcdtfabakcdtfydbBdbaxhDaxcefhxkaeaD86bbaecefheaqcufgqmbkaxcdthDxekcbhDkabalcjdfaDz:mjjjb8Aalcjxf8Kjjjjbk9teiucbcbyd11jjbgeabcifc98GfgbBd11jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik;LeeeudndnaeabVciGTmbabhixekdndnadcz9pmbabhixekabhiinaiaeydbBdbaiclfaeclfydbBdbaicwfaecwfydbBdbaicxfaecxfydbBdbaeczfheaiczfhiadc9Wfgdcs0mbkkadcl6mbinaiaeydbBdbaeclfheaiclfhiadc98fgdci0mbkkdnadTmbinaiaeRbb86bbaicefhiaecefheadcufgdmbkkabk;aeedudndnabciGTmbabhixekaecFeGc:b:c:ew2hldndnadcz9pmbabhixekabhiinaialBdbaicxfalBdbaicwfalBdbaiclfalBdbaiczfhiadc9Wfgdcs0mbkkadcl6mbinaialBdbaiclfhiadc98fgdci0mbkkdnadTmbinaiae86bbaicefhiadcufgdmbkkabk9teiucbcbyd11jjbgeabcrfc94GfgbBd11jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik9:eiuZbhedndncbyd11jjbgdaecztgi9nmbcuheadai9RcFFifcz4nbcuSmekadhekcbabae9Rcifc98Gcbyd11jjbfgdBd11jjbdnadZbcztge9nmbadae9RcFFifcz4nb8Akk:;Deludndndnadch9pmbabaeSmdaeabadfgi9Rcbadcet9R0mekabaead;8qbbxekaeab7ciGhldndndnabae9pmbdnalTmbadhvabhixikdnabciGmbadhvabhixdkadTmiabaeRbb86bbadcufhvdnabcefgiciGmbaecefhexdkavTmiabaeRbe86beadc9:fhvdnabcdfgiciGmbaecdfhexdkavTmiabaeRbd86bdadc99fhvdnabcifgiciGmbaecifhexdkavTmiabaeRbi86biabclfhiaeclfheadc98fhvxekdnalmbdnaiciGTmbadTmlabadcufgifglaeaifRbb86bbdnalciGmbaihdxekaiTmlabadc9:fgifglaeaifRbb86bbdnalciGmbaihdxekaiTmlabadc99fgifglaeaifRbb86bbdnalciGmbaihdxekaiTmlabadc98fgdfaeadfRbb86bbkadcl6mbdnadc98fgocd4cefciGgiTmbaec98fhlabc98fhvinavadfaladfydbBdbadc98fhdaicufgimbkkaocx6mbaec9Wfhvabc9WfhoinaoadfgicxfavadfglcxfydbBdbaicwfalcwfydbBdbaiclfalclfydbBdbaialydbBdbadc9Wfgdci0mbkkadTmdadhidnadciGglTmbaecufhvabcufhoadhiinaoaifavaifRbb86bbaicufhialcufglmbkkadcl6mdaec98fhlabc98fhvinavaifgecifalaifgdcifRbb86bbaecdfadcdfRbb86bbaecefadcefRbb86bbaeadRbb86bbaic98fgimbxikkavcl6mbdnavc98fglcd4cefcrGgdTmbavadcdt9RhvinaiaeydbBdbaeclfheaiclfhiadcufgdmbkkalc36mbinaiaeydbBdbaiaeydlBdlaiaeydwBdwaiaeydxBdxaiaeydzBdzaiaeydCBdCaiaeydKBdKaiaeyd3Bd3aecafheaicafhiavc9Gfgvci0mbkkavTmbdndnavcrGgdmbavhlxekavc94GhlinaiaeRbb86bbaicefhiaecefheadcufgdmbkkavcw6mbinaiaeRbb86bbaiaeRbe86beaiaeRbd86bdaiaeRbi86biaiaeRbl86blaiaeRbv86bvaiaeRbo86boaiaeRbr86braicwfhiaecwfhealc94fglmbkkabkkAebcjwkxebbbdbbbzNbb",J=new Uint8Array([32,0,65,2,1,106,34,33,3,128,11,4,13,64,6,253,10,7,15,116,127,5,8,12,40,16,19,54,20,9,27,255,113,17,42,67,24,23,146,148,18,14,22,45,70,69,56,114,101,21,25,63,75,136,108,28,118,29,73,115]);if(typeof WebAssembly!=="object")return{supported:!1};var X,Y=WebAssembly.instantiate($(Z),{}).then(function(U){X=U.instance,X.exports.__wasm_call_ctors()});function $(U){var w=new Uint8Array(U.length);for(var L=0;L<U.length;++L){var j=U.charCodeAt(L);w[L]=j>96?j-97:j>64?j-39:j+4}var R=0;for(var L=0;L<U.length;++L)w[R++]=w[L]<60?J[w[L]]:(w[L]-60)*64+w[++L];return w.buffer.slice(0,R)}function Q(U){if(!U)throw new Error("Assertion failed")}function K(U){return new Uint8Array(U.buffer,U.byteOffset,U.byteLength)}var W=48,G=16;function z(U,w){var L=U.meshlets[w*4+0],j=U.meshlets[w*4+1],R=U.meshlets[w*4+2],O=U.meshlets[w*4+3];return{vertices:U.vertices.subarray(L,L+R),triangles:U.triangles.subarray(j,j+O*3)}}function V(U,w,L,j,R,O,N){var D=X.exports.sbrk,P=X.exports.meshopt_buildMeshletsBound(U.length,R,O),C=D(P*G),T=D(P*R*4),k=D(P*O*3),A=D(U.byteLength),S=D(w.byteLength),x=new Uint8Array(X.exports.memory.buffer);x.set(K(U),A),x.set(K(w),S);var I=X.exports.meshopt_buildMeshlets(C,T,k,A,U.length,S,L,j,R,O,N);x=new Uint8Array(X.exports.memory.buffer);var v=x.subarray(C,C+I*G),f=new Uint32Array(v.buffer,v.byteOffset,v.byteLength/4).slice();for(var p=0;p<I;++p){var n=f[p*4+0],o=f[p*4+1],L=f[p*4+2],J0=f[p*4+3];X.exports.meshopt_optimizeMeshlet(T+n*4,k+o,J0,L)}var Q0=f[(I-1)*4+0],T0=f[(I-1)*4+1],k0=f[(I-1)*4+2],a0=f[(I-1)*4+3],v8=Q0+k0,s1=T0+(a0*3+3&-4),d4={meshlets:f,vertices:new Uint32Array(x.buffer,T,v8).slice(),triangles:new Uint8Array(x.buffer,k,s1*3).slice(),meshletCount:I};return D(C-D(0)),d4}function H(U){var w=new Float32Array(X.exports.memory.buffer,U,W/4);return{centerX:w[0],centerY:w[1],centerZ:w[2],radius:w[3],coneApexX:w[4],coneApexY:w[5],coneApexZ:w[6],coneAxisX:w[7],coneAxisY:w[8],coneAxisZ:w[9],coneCutoff:w[10]}}function q(U,w,L,j){var R=X.exports.sbrk,O=[],N=R(w.byteLength),D=R(U.vertices.byteLength),P=R(U.triangles.byteLength),C=R(W),T=new Uint8Array(X.exports.memory.buffer);T.set(K(w),N),T.set(K(U.vertices),D),T.set(K(U.triangles),P);for(var k=0;k<U.meshletCount;++k){var A=U.meshlets[k*4+0],S=U.meshlets[k*4+0+1],x=U.meshlets[k*4+0+3];X.exports.meshopt_computeMeshletBounds(C,D+A*4,P+S,x,N,L,j),O.push(H(C))}return R(N-R(0)),O}function F(U,w,L,j){var R=X.exports.sbrk,O=R(W),N=R(U.byteLength),D=R(w.byteLength),P=new Uint8Array(X.exports.memory.buffer);P.set(K(U),N),P.set(K(w),D),X.exports.meshopt_computeClusterBounds(O,N,U.length,D,L,j);var C=H(O);return R(O-R(0)),C}return{ready:Y,supported:!0,buildMeshlets:function(U,w,L,j,R,O){Q(U.length%3==0),Q(w instanceof Float32Array),Q(w.length%L==0),Q(L>=3),Q(j<=255||j>0),Q(R<=512),Q(R%4==0),O=O||0;var N=U.BYTES_PER_ELEMENT==4?U:new Uint32Array(U);return V(N,w,w.length/L,L*4,j,R,O)},computeClusterBounds:function(U,w,L){Q(U.length%3==0),Q(U.length/3<=512),Q(w instanceof Float32Array),Q(w.length%L==0),Q(L>=3);var j=U.BYTES_PER_ELEMENT==4?U:new Uint32Array(U);return F(j,w,w.length/L,L*4)},computeMeshletBounds:function(U,w,L){return Q(U.meshletCount!=0),Q(w instanceof Float32Array),Q(w.length%L==0),Q(L>=3),q(U,w,w.length/L,L*4)},extractMeshlet:function(U,w){return Q(w>=0&&w<U.meshletCount),z(U,w)}}}();var sQ={OPTIMIZED_DIR:".optimized",CHECKSUM_EXT:".md5",DIRECTORIES:[(()=>{try{return a5.dirname(u.resolve("@hytopia.com/assets"))}catch{return null}})(),a5.resolve(process.cwd(),"assets")].filter(Boolean),OPTIMIZER_RUNS:[{suffix:"",options:["--compress","false","--instance","false","--simplify","false"]},{suffix:"-named-nodes",options:["--compress","false","--instance","false","--simplify","false","--join","true","--join-named","false"]}]};class R5{static instance=new R5;optimize=!0;optimizeEveryStart=!1;_modelUriDocuments=new Map;_modelUriBoundingBoxes=new Map;_modelUriNodeNames=new Map;_modelUriTrimeshes=new Map;constructor(){}async preloadModels(){let Z=await this._getAbsoluteModelPaths();console.log(`ModelRegistry.preloadModels(): Preloading ${Z.length} models...`);for(let J of Z){if(this.optimize)await this._resolveOptimizedModelPath(J);await this._loadModelData(J)}console.log(`ModelRegistry.preloadModels(): Preloaded ${Z.length} models!`)}getAnimationNames(Z){let J=this._modelUriDocuments.get(Z);if(!J)m.fatalError(`ModelRegistry.getAnimationNames(): Model ${Z} not found!`);return J.getRoot().listAnimations().map((Y)=>Y.getName())}getBoundingBox(Z){let J=this._modelUriBoundingBoxes.get(Z);if(!J)m.fatalError(`ModelRegistry.getBoundingBox(): Model ${Z} not found!`);return J}getDepth(Z){let J=this.getBoundingBox(Z);return J.max.z-J.min.z}getHeight(Z){let J=this.getBoundingBox(Z);return J.max.y-J.min.y}getNodeNames(Z){let J=this._modelUriNodeNames.get(Z);if(!J)m.fatalError(`ModelRegistry.getNodeNames(): Model ${Z} not found!`);return J}getTrimesh(Z,J=1){let X=this._modelUriTrimeshes.get(Z);if(!X){m.error(`ModelRegistry.getTrimesh(): Model ${Z} not found!`);return}let Y=X.vertices;if(J!==1){Y=new Float32Array(Y.length);for(let $=0;$<Y.length;$++)Y[$]=X.vertices[$]*J}return{vertices:Y,indices:X.indices}}getWidth(Z){let J=this.getBoundingBox(Z);return J.max.x-J.min.x}modelHasNode(Z,J){let X=this._modelUriNodeNames.get(Z);if(!X)m.fatalError(`ModelRegistry.modelHasNode(): Model ${Z} not found!`);return X.includes(J)}_absoluteModelPathToModelUri(Z){let J=a5.normalize(Z);for(let X of sQ.DIRECTORIES){let Y=a5.normalize(X);if(J.startsWith(Y))return a5.relative(Y,J).replace(/\\/g,"/")}return a5.basename(J)}async _getAbsoluteModelPaths(){let Z=[];for(let J of sQ.DIRECTORIES){let X=a5.resolve(process.cwd(),J);if(!PJ.existsSync(X))continue;let Y=await IU("**/*.{gltf,glb}",{cwd:X,follow:!0});for(let $ of Y)Z.push(a5.join(X,$))}return Z}async _loadModelData(Z){let J=await new vP().read(Z),X=Xa(J.getRoot().listScenes()[0]),Y=J.getRoot().listNodes().map((Q)=>Q.getName()),$=this._absoluteModelPathToModelUri(Z);this._modelUriDocuments.set($,J),this._modelUriBoundingBoxes.set($,{min:{x:X.min[0],y:X.min[1],z:X.min[2]},max:{x:X.max[0],y:X.max[1],z:X.max[2]}}),this._modelUriNodeNames.set($,Y),this._modelUriTrimeshes.set($,await this._buildTrimesh($))}async _resolveOptimizedModelPath(Z){let J=this._buildOptimizedModelPath(Z);if(!this.optimizeEveryStart&&this._isOptimizedVersionValid(Z))return J;return await this._optimizeModel(Z,J)}_isOptimizedVersionValid(Z){let J=`${this._buildOptimizedModelPath(Z)}${sQ.CHECKSUM_EXT}`;if(!PJ.existsSync(J))return!1;let X=this._calculateChecksum(Z),Y=PJ.readFileSync(J,"utf8");return X===Y}_calculateChecksum(Z){if(!PJ.existsSync(Z))return"";let J=PJ.readFileSync(Z);return Zj1.createHash("sha256").update(J.toString("base64")).digest("hex")}_buildOptimizedModelPath(Z){let J=a5.basename(Z),X=J.replace(/\.[^/.]+$/,""),Y=a5.dirname(Z),$=a5.join(Y,sQ.OPTIMIZED_DIR,X);return a5.join($,J)}async _buildTrimesh(Z,J=1,X=0.001){let Y=this._modelUriDocuments.get(Z);if(!Y)m.fatalError(`ModelRegistry._buildTrimesh(): Model ${Z} not found!`);let $=Za(Y);$.setLogger(new j5(XG.WARN)),await $.transform(fn({pivot:"center"}),Ja(),Ya(),EC(),Ga({simplifier:za,ratio:J,error:X}),tn());for(let z of $.getRoot().listScenes())for(let V of z.listChildren())on(V);let Q=$.getRoot().listMeshes()[0];if(!Q){m.error(`ModelRegistry._buildTrimesh(): Model ${Z} has no root mesh!`);return}let K=Q.listPrimitives()[0];if(!K){m.error(`ModelRegistry._buildTrimesh(): Model ${Z} has no root primitive!`);return}let W=K.getAttribute("POSITION"),G=K.getIndices();if(!W||!G){m.error(`ModelRegistry._buildTrimesh(): Model ${Z} missing required geometry data!`);return}return{vertices:W.getArray(),indices:G.getArray()}}async _optimizeModel(Z,J){let X=a5.dirname(J);PJ.rmSync(X,{recursive:!0,force:!0}),PJ.mkdirSync(X,{recursive:!0}),console.log(`ModelRegistry: Optimizing model ${this._absoluteModelPathToModelUri(Z)}...`);for(let Y of sQ.OPTIMIZER_RUNS){let $=J.replace(/(\.[^/.]+)$/,`${Y.suffix}$1`),{stderr:Q}=await wd("npx",["gltf-transform","optimize",Z,$,...Y.options]);if(Q)return m.warning(`ModelRegistry._optimizeModel(): Error optimizing model ${this._absoluteModelPathToModelUri(Z)}, defaulting to unoptimized model. Error: ${Q}`),Z}return PJ.writeFileSync(`${J}${sQ.CHECKSUM_EXT}`,this._calculateChecksum(Z)),J}}var IG;(($)=>{$.DYNAMIC="dynamic";$.FIXED="fixed";$.KINEMATIC_POSITION="kinematic_position";$.KINEMATIC_VELOCITY="kinematic_velocity"})(IG||={});var vC=0.001,Va="dynamic";class NY extends j0{_additionalMass=0;_colliders=new Set;_explicitSleep=!1;_enabledPositions={x:!0,y:!0,z:!0};_enabledRotations={x:!0,y:!0,z:!0};_rigidBody;_rigidBodyDesc;_rigidBodyType;_simulation;constructor(Z){super();Z.type??=Va,this._rigidBodyDesc=this._createRigidBodyDesc(Z),this._rigidBodyType=Z.type,this._applyRigidBodyOptions(Z),this._autoAddToSimulation(Z)}get additionalMass(){if(!this._requireNotRemoved("additionalMass"))return 0;return this._additionalMass}get additionalSolverIterations(){if(!this._requireNotRemoved("additionalSolverIterations"))return 0;return this._rigidBody?this._rigidBody.additionalSolverIterations():this._rigidBodyDesc.additionalSolverIterations}get angularDamping(){if(!this._requireNotRemoved("angularDamping"))return 0;return this._rigidBody?this._rigidBody.angularDamping():this._rigidBodyDesc.angularDamping}get angularVelocity(){if(!this._requireNotRemoved("angularVelocity"))return{x:0,y:0,z:0};return this._rigidBody?this._rigidBody.angvel():this._rigidBodyDesc.angvel}get colliders(){return this._colliders}get dominanceGroup(){if(!this._requireNotRemoved("dominanceGroup"))return 0;return this._rigidBody?this._rigidBody.dominanceGroup():this._rigidBodyDesc.dominanceGroup}get directionFromRotation(){let{x:Z,y:J,z:X,w:Y}=this.rotation;return{x:-2*(Z*X+Y*J),y:-2*(J*X-Y*Z),z:-(1-2*(Z*Z+J*J))}}get effectiveAngularInertia(){if(!this._requireNotRemoved("effectiveAngularInertia"))return;return this._rigidBody?this._rigidBody.effectiveAngularInertia():void 0}get effectiveInverseMass(){if(!this._requireNotRemoved("effectiveInverseMass"))return;return this._rigidBody?this._rigidBody.effectiveInvMass():void 0}get effectiveWorldInversePrincipalAngularInertiaSqrt(){if(!this._requireNotRemoved("effectiveWorldInversePrincipalAngularInertiaSqrt"))return;return this._rigidBody?this._rigidBody.effectiveWorldInvInertiaSqrt():void 0}get enabledRotations(){if(!this._requireNotRemoved("enabledRotations"))return{x:!0,y:!0,z:!0};return this._enabledRotations}get enabledPositions(){if(!this._requireNotRemoved("enabledPositions"))return{x:!0,y:!0,z:!0};return this._enabledPositions}get gravityScale(){if(!this._requireNotRemoved("gravityScale"))return 0;return this._rigidBody?this._rigidBody.gravityScale():this._rigidBodyDesc.gravityScale}get inverseMass(){if(!this._requireNotRemoved("inverseMass"))return;return this._rigidBody?this._rigidBody.invMass():void 0}get inversePrincipalAngularInertiaSqrt(){if(!this._requireNotRemoved("inversePrincipalAngularInertiaSqrt"))return;return this._rigidBody?this._rigidBody.invPrincipalInertiaSqrt():void 0}get isCcdEnabled(){if(!this._requireNotRemoved("isCcdEnabled"))return!1;return this._rigidBody?this._rigidBody.isCcdEnabled():this._rigidBodyDesc.ccdEnabled}get isDynamic(){if(!this._requireNotRemoved("isDynamic"))return!1;return this._rigidBodyType==="dynamic"}get isEnabled(){if(!this._requireNotRemoved("isEnabled"))return!1;return this._rigidBody?this._rigidBody.isEnabled():this._rigidBodyDesc.enabled}get isFixed(){if(!this._requireNotRemoved("isFixed"))return!1;return this._rigidBodyType==="fixed"}get isKinematic(){if(!this._requireNotRemoved("isKinematic"))return!1;return["kinematic_position","kinematic_velocity"].includes(this._rigidBodyType)}get isKinematicPositionBased(){if(!this._requireNotRemoved("isKinematicPositionBased"))return!1;return this._rigidBodyType==="kinematic_position"}get isKinematicVelocityBased(){if(!this._requireNotRemoved("isKinematicVelocityBased"))return!1;return this._rigidBodyType==="kinematic_velocity"}get isMoving(){if(!this._requireNotRemoved("isMoving"))return!1;return this._rigidBody?this._rigidBody.isMoving():!1}get isRemoved(){return!this._rigidBody&&!this._rigidBodyDesc}get isSimulated(){if(!this._requireNotRemoved("isSimulated"))return!1;return this._rigidBody?!0:!1}get isSleeping(){if(!this._requireNotRemoved("isSleeping"))return!1;return this._rigidBody?this._rigidBody.isSleeping():this._rigidBodyDesc.sleeping}get linearDamping(){if(!this._requireNotRemoved("linearDamping"))return 0;return this._rigidBody?this._rigidBody.linearDamping():this._rigidBodyDesc.linearDamping}get linearVelocity(){if(!this._requireNotRemoved("linearVelocity"))return{x:0,y:0,z:0};return this._rigidBody?this._rigidBody.linvel():this._rigidBodyDesc.linvel}get localCenterOfMass(){if(!this._requireNotRemoved("localCenterOfMass"))return{x:0,y:0,z:0};return this._rigidBody?this._rigidBody.localCom():this._rigidBodyDesc.centerOfMass}get mass(){if(!this._requireNotRemoved("mass"))return 0;return this._rigidBody?this._rigidBody.mass():this._rigidBodyDesc.mass}get nextKinematicRotation(){if(!this._requireNotRemoved("nextKinematicRotation"))return{x:0,y:0,z:0,w:1};return this._rigidBody?this._rigidBody.nextRotation():this._rigidBodyDesc.rotation}get nextKinematicPosition(){if(!this._requireNotRemoved("nextKinematicPosition"))return{x:0,y:0,z:0};return this._rigidBody?this._rigidBody.nextTranslation():this._rigidBodyDesc.translation}get numColliders(){return this._colliders.size}get principalAngularInertia(){if(!this._requireNotRemoved("principalAngularInertia"))return{x:0,y:0,z:0};return this._rigidBody?this._rigidBody.principalInertia():this._rigidBodyDesc.principalAngularInertia}get principalAngularInertiaLocalFrame(){if(!this._requireNotRemoved("principalAngularInertiaLocalFrame"))return;return this._rigidBody?this._rigidBody.principalInertiaLocalFrame():void 0}get position(){if(!this._requireNotRemoved("position"))return{x:0,y:0,z:0};return this._rigidBody?this._rigidBody.translation():this._rigidBodyDesc.translation}get rawRigidBody(){if(!this._requireNotRemoved("rawRigidBody"))return;return this._rigidBody}get rotation(){if(!this._requireNotRemoved("rotation"))return{x:0,y:0,z:0,w:1};return this._rigidBody?this._rigidBody.rotation():this._rigidBodyDesc.rotation}get softCcdPrediction(){if(!this._requireNotRemoved("softCcdPrediction"))return 0;return this._rigidBody?this._rigidBody.softCcdPrediction():this._rigidBodyDesc.softCcdPrediction}get type(){if(!this._requireNotRemoved("type"))return"dynamic";return this._rigidBodyType}get worldCenterOfMass(){if(!this._requireNotRemoved("worldCenterOfMass"))return;return this._rigidBody?this._rigidBody.worldCom():void 0}setAdditionalMass(Z){if(!this._requireDynamic("setAdditionalMass"))return;if(!this._requireNotRemoved("setAdditionalMass"))return;this._rigidBody?this._rigidBody.setAdditionalMass(Z,!this._explicitSleep):this._rigidBodyDesc.setAdditionalMass(Z)}setAdditionalMassProperties(Z){if(!this._requireDynamic("setAdditionalMassProperties"))return;if(!this._requireNotRemoved("setAdditionalMassProperties"))return;let{additionalMass:J,centerOfMass:X,principalAngularInertia:Y,principalAngularInertiaLocalFrame:$}=Z;this._rigidBody?this._rigidBody.setAdditionalMassProperties(J,X,Y,$,!this._explicitSleep):this._rigidBodyDesc.setAdditionalMassProperties(J,X,Y,$)}setAdditionalSolverIterations(Z){if(!this._requireDynamic("setAdditionalSolverIterations"))return;if(!this._requireNotRemoved("setAdditionalSolverIterations"))return;this._rigidBody?this._rigidBody.setAdditionalSolverIterations(Z):this._rigidBodyDesc.setAdditionalSolverIterations(Z)}setAngularDamping(Z){if(!this._requireDynamic("setAngularDamping"))return;if(!this._requireNotRemoved("setAngularDamping"))return;this._rigidBody?this._rigidBody.setAngularDamping(Z):this._rigidBodyDesc.setAngularDamping(Z)}setAngularVelocity(Z){if(!this._requireNotKinematicPositionBased("setAngularVelocity"))return;if(!this._requireNotRemoved("setAngularVelocity"))return;this._rigidBody?this._rigidBody.setAngvel(Z,!this._explicitSleep):this._rigidBodyDesc.setAngvel(Z)}setCcdEnabled(Z){if(!this._requireDynamic("setCcdEnabled"))return;if(!this._requireNotRemoved("setCcdEnabled"))return;this._rigidBody?this._rigidBody.enableCcd(Z):this._rigidBodyDesc.setCcdEnabled(Z)}setDominanceGroup(Z){if(!this._requireDynamic("setDominanceGroup"))return;if(!this._requireNotRemoved("setDominanceGroup"))return;this._rigidBody?this._rigidBody.setDominanceGroup(Z):this._rigidBodyDesc.setDominanceGroup(Z)}setEnabled(Z){if(!this._requireNotRemoved("setEnabled"))return;this._rigidBody?this._rigidBody.setEnabled(Z):this._rigidBodyDesc.setEnabled(Z)}setEnabledPositions(Z){if(!this._requireDynamic("setEnabledPositions"))return;if(!this._requireNotRemoved("setEnabledPositions"))return;this._rigidBody?this._rigidBody.setEnabledTranslations(Z.x,Z.y,Z.z,!this._explicitSleep):this._rigidBodyDesc.enabledTranslations(Z.x,Z.y,Z.z),this._enabledPositions=Z}setEnabledRotations(Z){if(!this._requireDynamic("setEnabledRotations"))return;if(!this._requireNotRemoved("setEnabledRotations"))return;this._rigidBody?this._rigidBody.setEnabledRotations(Z.x,Z.y,Z.z,!this._explicitSleep):this._rigidBodyDesc.enabledRotations(Z.x,Z.y,Z.z),this._enabledRotations=Z}setGravityScale(Z){if(!this._requireDynamic("setGravityScale"))return;if(!this._requireNotRemoved("setGravityScale"))return;this._rigidBody?this._rigidBody.setGravityScale(Z,!this._explicitSleep):this._rigidBodyDesc.setGravityScale(Z)}setLinearDamping(Z){if(!this._requireDynamic("setLinearDamping"))return;if(!this._requireNotRemoved("setLinearDamping"))return;this._rigidBody?this._rigidBody.setLinearDamping(Z):this._rigidBodyDesc.setLinearDamping(Z)}setLinearVelocity(Z){if(!this._requireNotKinematicPositionBased("setLinearVelocity"))return;if(!this._requireNotRemoved("setLinearVelocity"))return;this._rigidBody?this._rigidBody.setLinvel(Z,!this._explicitSleep):this._rigidBodyDesc.setLinvel(Z.x,Z.y,Z.z)}setNextKinematicRotation(Z){if(!this._requireKinematic("setNextKinematicRotation"))return;if(!this._requireNotRemoved("setNextKinematicRotation"))return;this._rigidBody?this._rigidBody.setNextKinematicRotation(Z):this._rigidBodyDesc.setRotation(Z)}setNextKinematicPosition(Z){if(!this._requireKinematic("setNextKinematicPosition"))return;if(!this._requireNotRemoved("setNextKinematicPosition"))return;this._rigidBody?this._rigidBody.setNextKinematicTranslation(Z):this._rigidBodyDesc.setTranslation(Z.x,Z.y,Z.z)}setPosition(Z){if(!this._requireNotRemoved("setPosition"))return;this._rigidBody?this._rigidBody.setTranslation(Z,!this._explicitSleep):this._rigidBodyDesc.setTranslation(Z.x,Z.y,Z.z)}setRotation(Z){if(!this._requireNotRemoved("setRotation"))return;this._rigidBody?this._rigidBody.setRotation(Z,!this._explicitSleep):this._rigidBodyDesc.setRotation(Z)}setSleeping(Z){if(!this._requireDynamic("setSleeping"))return;if(!this._requireNotRemoved("setSleeping"))return;this._rigidBody?Z?this._rigidBody.sleep():this._rigidBody.wakeUp():this._rigidBodyDesc.sleeping=Z,this._explicitSleep=Z}setSoftCcdPrediction(Z){if(!this._requireDynamic("setSoftCcdPrediction"))return;if(!this._requireNotRemoved("setSoftCcdPrediction"))return;this._rigidBody?this._rigidBody.setSoftCcdPrediction(Z):this._rigidBodyDesc.setSoftCcdPrediction(Z)}setCollisionGroupsForSolidColliders(Z){if(!this._requireNotRemoved("setCollisionGroupsForSolidColliders"))return;this._colliders.forEach((J)=>{if(J.isSensor)return;J.setCollisionGroups(Z)})}setCollisionGroupsForSensorColliders(Z){if(!this._requireNotRemoved("setCollisionGroupsForSensorColliders"))return;this._colliders.forEach((J)=>{if(!J.isSensor)return;J.setCollisionGroups(Z)})}setType(Z){if(!this._requireNotRemoved("setType"))return;let X={["dynamic"]:$1.RigidBodyType.Dynamic,["fixed"]:$1.RigidBodyType.Fixed,["kinematic_position"]:$1.RigidBodyType.KinematicPositionBased,["kinematic_velocity"]:$1.RigidBodyType.KinematicVelocityBased}[Z];if(X===void 0)return m.error(`Invalid RigidBodyType: ${Z}`);this._rigidBody?this._rigidBody.setBodyType(X,!this._explicitSleep):this._rigidBodyDesc.status=X,this._rigidBodyType=Z}addForce(Z){if(!this._requireNotRemoved("addForce"))return;if(!this._requireCreated("addForce"))return;if(!this._requireDynamic("addForce"))return;if(this._isNegligibleVector(Z))return;this._rigidBody.addForce(Z,!this._explicitSleep)}addTorque(Z){if(!this._requireNotRemoved("addTorque"))return;if(!this._requireCreated("addTorque"))return;if(!this._requireDynamic("addTorque"))return;if(this._isNegligibleVector(Z))return;this._rigidBody.addTorque(Z,!this._explicitSleep)}addChildColliderToSimulation(Z){if(!this._requireNotRemoved("addChildColliderToSimulation"))return;if(!this._requireCreated("addChildColliderToSimulation"))return;Z.addToSimulation(this._simulation,this)}addToSimulation(Z){if(!this._requireNotRemoved("addToSimulation"))return;if(this._rigidBody)return m.error("RigidBody.addToSimulation(): Rigid body already exists in the simulation!");this._simulation=Z,this._rigidBody=this._simulation.createRawRigidBody(this._rigidBodyDesc),this._colliders.forEach((J)=>{if(!J.isSimulated)J.addToSimulation(Z,this)})}applyImpulse(Z){if(!this._requireNotRemoved("applyImpulse"))return;if(!this._requireCreated("applyImpulse"))return;if(!this._requireDynamic("applyImpulse"))return;if(this._isNegligibleVector(Z))return;this._rigidBody.applyImpulse(Z,!this._explicitSleep)}applyImpulseAtPoint(Z,J){if(!this._requireNotRemoved("applyImpulseAtPoint"))return;if(!this._requireCreated("applyImpulseAtPoint"))return;if(!this._requireDynamic("applyImpulseAtPoint"))return;if(this._isNegligibleVector(Z))return;this._rigidBody.applyImpulseAtPoint(Z,J,!this._explicitSleep)}applyTorqueImpulse(Z){if(!this._requireNotRemoved("applyTorqueImpulse"))return;if(!this._requireCreated("applyTorqueImpulse"))return;if(!this._requireDynamic("applyTorqueImpulse"))return;this._rigidBody.applyTorqueImpulse(Z,!this._explicitSleep)}createAndAddChildCollider(Z){if(!this._requireNotRemoved("createAndAddChildCollider"))return null;return this._simulation?new s5({...Z,parentRigidBody:this,simulation:this._simulation}):this._createAndAddPendingChildCollider(Z)}createAndAddChildColliders(Z){let J=[];return Z.forEach((X)=>{let Y=this.createAndAddChildCollider(X);if(Y)J.push(Y)}),J}getCollidersByTag(Z){let J=[];for(let X of this._colliders)if(X.tag===Z)J.push(X);return J}linkCollider(Z){if(!this._requireNotRemoved("linkCollider"))return;if(Z.parentRigidBody!==this)return m.error("RigidBody.linkCollider(): Collider cannot be linked because it is not a child of this rigid body!");this._colliders.add(Z)}lockAllRotations(){if(!this._requireNotRemoved("lockAllRotations"))return;this.setEnabledRotations({x:!1,y:!1,z:!1})}lockAllPositions(){if(!this._requireNotRemoved("lockAllPositions"))return;this.setEnabledPositions({x:!1,y:!1,z:!1})}removeFromSimulation(){if(!this._requireNotRemoved("removeFromSimulation"))return;if(!this._rigidBody)return m.error("RigidBody.removeFromSimulation(): Rigid body does not exist in the simulation!");this._colliders.forEach((Z)=>{Z.removeFromSimulation()}),this._simulation.removeRawRigidBody(this._rigidBody),this._simulation=void 0,this._rigidBody=void 0}unlinkCollider(Z){if(!this._requireNotRemoved("unlinkCollider"))return;if(!Z.isRemoved)return m.error("RigidBody.unlinkCollider(): Collider is still simulated and therefore cannot be unlinked from this rigid body!");this._colliders.delete(Z)}resetAngularVelocity(){if(!this._requireNotRemoved("resetAngularVelocity"))return;if(!this._requireCreated("resetAngularVelocity"))return;this.setAngularVelocity({x:0,y:0,z:0})}resetForces(){if(!this._requireNotRemoved("resetForces"))return;if(!this._requireCreated("resetForces"))return;this._rigidBody.resetForces(!this._explicitSleep)}resetLinearVelocity(){if(!this._requireNotRemoved("resetLinearVelocity"))return;if(!this._requireCreated("resetLinearVelocity"))return;this.setLinearVelocity({x:0,y:0,z:0})}resetTorques(){if(!this._requireNotRemoved("resetTorques"))return;if(!this._requireCreated("resetTorques"))return;this._rigidBody.resetTorques(!this._explicitSleep)}sleep(){if(!this._requireNotRemoved("sleep"))return;this.setSleeping(!0)}wakeUp(){if(!this._requireNotRemoved("wakeUp"))return;this.setSleeping(!1)}_applyRigidBodyOptions(Z){[["additionalMass",this.setAdditionalMass.bind(this)],["additionalMassProperties",this.setAdditionalMassProperties.bind(this)],["additionalSolverIterations",this.setAdditionalSolverIterations.bind(this)],["angularDamping",this.setAngularDamping.bind(this)],["angularVelocity",this.setAngularVelocity.bind(this)],["dominanceGroup",this.setDominanceGroup.bind(this)],["ccdEnabled",this.setCcdEnabled.bind(this)],["enabled",this.setEnabled.bind(this)],["enabledPositions",this.setEnabledPositions.bind(this)],["enabledRotations",this.setEnabledRotations.bind(this)],["gravityScale",this.setGravityScale.bind(this)],["linearDamping",this.setLinearDamping.bind(this)],["linearVelocity",this.setLinearVelocity.bind(this)],["position",this.setPosition.bind(this)],["rotation",this.setRotation.bind(this)],["sleeping",this.setSleeping.bind(this)],["softCcdPrediction",this.setSoftCcdPrediction.bind(this)]].forEach(([X,Y])=>{if(X in Z)Y(Z[X])})}_autoAddToSimulation(Z){if(Z.colliders)this._createAndAddPendingChildColliders(Z.colliders);if(Z.simulation)this.addToSimulation(Z.simulation)}_createAndAddPendingChildCollider(Z){if(!this._requireNotRemoved("createAndAddPendingChildCollider"))return null;if(!this._requireNotSimulated("createAndAddPendingChildCollider"))return null;let J=new s5(Z);return this._colliders.add(J),J}_createAndAddPendingChildColliders(Z){let J=[];return Z.forEach((X)=>{let Y=this._createAndAddPendingChildCollider(X);if(Y)J.push(Y)}),J}_createRigidBodyDesc(Z){let J=Z.type??Va;return{["dynamic"]:()=>$1.RigidBodyDesc.dynamic(),["fixed"]:()=>$1.RigidBodyDesc.fixed(),["kinematic_position"]:()=>$1.RigidBodyDesc.kinematicPositionBased(),["kinematic_velocity"]:()=>$1.RigidBodyDesc.kinematicVelocityBased()}[J]()}_requireCreated(Z){if(!this._rigidBody||!this._simulation)m.error(`RigidBody._requireCreated(): Rigid body has not been created and therefore does not support the invoked method: ${Z}()`);return!!this._rigidBody&&!!this._simulation}_requireDynamic(Z){if(!this.isDynamic)m.error(`RigidBody._requireDynamic(): Rigid body is not dynamic and therefore does not support the invoked method: ${Z}()`);return this.isDynamic}_requireKinematic(Z){if(!this.isKinematic)m.error(`RigidBody._requireKinematic(): Rigid body is not kinematic and therefore does not support the invoked method: ${Z}()`);return this.isKinematic}_requireNotKinematicPositionBased(Z){if(this.isKinematicPositionBased)m.error(`RigidBody._requireNotKinematicPositionBased(): Rigid body is kinematic position based and therefore does not support the invoked method: ${Z}()`);return!this.isKinematicPositionBased}_requireNotRemoved(Z){if(!this._rigidBody&&!this._rigidBodyDesc)m.error(`RigidBody._requireNotRemoved(): Rigid body has been removed and therefore does not support the invoked method: ${Z}()`);return!!this._rigidBody||!!this._rigidBodyDesc}_requireNotSimulated(Z){if(this.isSimulated)m.error(`RigidBody._requireNotSimulated(): Rigid body is simulated and therefore does not support the invoked method: ${Z}()`);return!this.isSimulated}_isNegligibleVector(Z){return Math.abs(Z.x)<vC&&Math.abs(Z.y)<vC&&Math.abs(Z.z)<vC}}var SC;(($)=>{$[$.Average=0]="Average";$[$.Min=1]="Min";$[$.Multiply=2]="Multiply";$[$.Max=3]="Max"})(SC||={});var vG;((z)=>{z.NONE="none";z.BALL="ball";z.BLOCK="block";z.CAPSULE="capsule";z.CONE="cone";z.CYLINDER="cylinder";z.ROUND_CYLINDER="round-cylinder";z.TRIMESH="trimesh";z.WEDGE="wedge"})(vG||={});class s5 extends j0{_collider;_colliderDesc;_onCollision;_parentRigidBody;_shape;_simulation;_tag;constructor(Z){super();this._colliderDesc=this._createColliderDesc(Z),this._shape=Z.shape,this._applyColliderOptions(Z),this._autoAddToSimulation(Z)}static optionsFromBlockHalfExtents(Z){return{shape:"block",halfExtents:Z}}static optionsFromModelUri(Z,J=1,X){let Y=R5.instance.getBoundingBox(Z),$=Y.max.x-Y.min.x,Q=Y.max.y-Y.min.y,K=Y.max.z-Y.min.z,W=Math.max($,K),G=Math.min($,K),z=W/G,V=W/Q,H=W*J/2,q=(R)=>Math.max(0.01,R),F=()=>({shape:"block",halfExtents:{x:q($*J/2),y:q(Q*J/2),z:q(K*J/2)}}),U=()=>({shape:"round-cylinder",radius:q(H),halfHeight:q(Q*J/2),borderRadius:q(H*0.1)}),w=()=>{let R=R5.instance.getTrimesh(Z,J);if(!R)return;return{shape:"trimesh",vertices:R.vertices,indices:R.indices}},L=()=>({shape:"wedge",extents:{x:$*J,y:Q*J,z:K*J}}),j=()=>({shape:"capsule",radius:q(H),halfHeight:q(Q*J/2-H)});if(X)switch(X){case"block":return F();case"capsule":return j();case"round-cylinder":return U();case"trimesh":{let R=w();if(!R){m.error(`Collider.optionsFromModelUri(): Failed to create trimesh options for model ${Z}, falling back to generic shape!`);break}return R}case"wedge":return L();default:m.warning(`Collider.optionsFromModelUri(): Preferred shape ${X} is not yet supported with Collider.optionsFromModelUri(), defaulting to generic shape!`)}if(z>2)return F();if(V>1.5)return U();return j()}get bounciness(){if(!this._requireNotRemoved("bounciness"))return 0;return this._collider?this._collider.restitution():this._colliderDesc.restitution}get bouncinessCombineRule(){if(!this._requireNotRemoved("bouncinessCombineRule"))return 0;return this._collider?this._collider.restitutionCombineRule():this._colliderDesc.restitutionCombineRule}get collisionGroups(){if(!this._requireNotRemoved("collisionGroups"))return{belongsTo:[],collidesWith:[]};return this._collider?J4.decodeRawCollisionGroups(this._collider.collisionGroups()):J4.decodeRawCollisionGroups(this._colliderDesc.collisionGroups)}get friction(){if(!this._requireNotRemoved("friction"))return 0;return this._collider?this._collider.friction():this._colliderDesc.friction}get frictionCombineRule(){if(!this._requireNotRemoved("frictionCombineRule"))return 0;return this._collider?this._collider.frictionCombineRule():this._colliderDesc.frictionCombineRule}get isEnabled(){if(!this._requireNotRemoved("isEnabled"))return!1;return this._collider?this._collider.isEnabled():this._colliderDesc.enabled}get isRemoved(){return!this._collider&&!this._colliderDesc}get isSensor(){if(!this._requireNotRemoved("isSensor"))return!1;return this._collider?this._collider.isSensor():this._colliderDesc.isSensor}get isSimulated(){if(!this._requireNotRemoved("isSimulated"))return!1;return!!this._collider}get parentRigidBody(){if(!this._requireNotRemoved("parentRigidBody"))return;return this._parentRigidBody}get rawCollider(){if(!this._requireNotRemoved("rawCollider"))return;return this._collider}get rawShape(){if(!this._requireNotRemoved("rawShape"))return;return this._collider?this._collider.shape:this._colliderDesc.shape}get relativePosition(){if(!this._requireNotRemoved("relativePosition"))return{x:0,y:0,z:0};return this._collider?this._collider.translation():this._colliderDesc.translation}get relativeRotation(){if(!this._requireNotRemoved("relativeRotation"))return{x:0,y:0,z:0,w:1};return this._collider?this._collider.rotation():this._colliderDesc.rotation}get shape(){if(!this._requireNotRemoved("shape"))return"none";return this._shape}get tag(){if(!this._requireNotRemoved("tag"))return;return this._tag}setBounciness(Z){if(!this._requireNotRemoved("setBounciness"))return;this._collider?this._collider.setRestitution(Z):this._colliderDesc.setRestitution(Z)}setBouncinessCombineRule(Z){if(!this._requireNotRemoved("setBouncinessCombineRule"))return;this._collider?this._collider.setRestitutionCombineRule(Z):this._colliderDesc.setRestitutionCombineRule(Z)}setCollisionGroups(Z){if(!this._requireNotRemoved("setCollisionGroups"))return;let J=J4.buildRawCollisionGroups(Z);this._collider?this._collider.setCollisionGroups(J):this._colliderDesc.setCollisionGroups(J)}setEnabled(Z){if(!this._requireNotRemoved("setEnabled"))return;this._collider?this._collider.setEnabled(Z):this._colliderDesc.setEnabled(Z)}setFriction(Z){if(!this._requireNotRemoved("setFriction"))return;this._collider?this._collider.setFriction(Z):this._colliderDesc.setFriction(Z)}setFrictionCombineRule(Z){if(!this._requireNotRemoved("setFrictionCombineRule"))return;this._collider?this._collider.setFrictionCombineRule(Z):this._colliderDesc.setFrictionCombineRule(Z)}setMass(Z){if(!this._requireNotRemoved("setMass"))return;this._collider?this._collider.setMass(Z):this._colliderDesc.setMass(Z)}setOnCollision(Z){if(!this._requireNotRemoved("setOnCollision"))return;if(this._onCollision=Z,this.isSimulated)if(this.enableCollisionEvents(!!Z),Z)this._simulation.colliderMap.setColliderCollisionCallback(this,Z);else this._simulation.colliderMap.removeColliderCollisionCallback(this)}setRelativeRotation(Z){if(!this._requireNotRemoved("setRelativeRotation"))return;this._collider?this._collider.setRotation(Z):this._colliderDesc.setRotation(Z)}setRelativePosition(Z){if(!this._requireNotRemoved("setRelativePosition"))return;this._collider?this._collider.setTranslation(Z):this._colliderDesc.setTranslation(Z.x,Z.y,Z.z)}setSensor(Z){if(!this._requireNotRemoved("setSensor"))return;this._collider?this._collider.setSensor(Z):this._colliderDesc.setSensor(Z)}setTag(Z){if(!this._requireNotRemoved("setTag"))return;this._tag=Z}addToSimulation(Z,J){if(!this._requireNotRemoved("addToSimulation"))return;if(!this._requireUnsimulated("addToSimulation"))return;if(J){if(!J.isSimulated)return m.error("Collider.addToSimulation(): Rigid body must be simulated before adding a collider to it!");if(J.type==="dynamic"&&this.shape==="trimesh")m.warning("Collider.addToSimulation(): Trimesh colliders are strongly discouraged to be used with dynamic rigid bodies, they will not contribute any mass!")}if(this._simulation=Z,this._parentRigidBody=J,this._collider=this._simulation.createRawCollider(this._colliderDesc,J?.rawRigidBody),this._colliderDesc=void 0,J)J.linkCollider(this);if(this._onCollision)this.setOnCollision(this._onCollision)}enableCollisionEvents(Z){if(!this._requireNotRemoved("enableCollisionEvents"))return;let J=this._collider?this._collider.activeEvents():this._colliderDesc.activeEvents,X=Z?J|$1.ActiveEvents.COLLISION_EVENTS:J&~$1.ActiveEvents.COLLISION_EVENTS;(this._collider??this._colliderDesc).setActiveEvents(X),this._setActiveCollisionTypes()}enableContactForceEvents(Z){if(!this._requireNotRemoved("enableContactForceEvents"))return;let J=this._collider?this._collider.activeEvents():this._colliderDesc.activeEvents,X=Z?J|$1.ActiveEvents.CONTACT_FORCE_EVENTS:J&~$1.ActiveEvents.CONTACT_FORCE_EVENTS;(this._collider??this._colliderDesc).setActiveEvents(X),this._setActiveCollisionTypes()}removeFromSimulation(){if(!this._requireNotRemoved("removeFromSimulation"))return;if(!this._requireSimulated("removeFromSimulation"))return;if(this._simulation.removeRawCollider(this._collider),this._simulation=void 0,this._collider=void 0,this._parentRigidBody)this._parentRigidBody.unlinkCollider(this);this._parentRigidBody=void 0}_applyColliderOptions(Z){[["bounciness",this.setBounciness.bind(this)],["bouncinessCombineRule",this.setBouncinessCombineRule.bind(this)],["collisionGroups",this.setCollisionGroups.bind(this)],["enabled",this.setEnabled.bind(this)],["friction",this.setFriction.bind(this)],["frictionCombineRule",this.setFrictionCombineRule.bind(this)],["isSensor",this.setSensor.bind(this)],["mass",this.setMass.bind(this)],["onCollision",this.setOnCollision.bind(this)],["relativePosition",this.setRelativePosition.bind(this)],["relativeRotation",this.setRelativeRotation.bind(this)],["tag",this.setTag.bind(this)]].forEach(([X,Y])=>{if(Z[X]!==void 0)Y.call(this,Z[X])})}_autoAddToSimulation(Z){if(Z.simulation)this.addToSimulation(Z.simulation,Z.parentRigidBody)}_buildWedgeConvexHullVertices(Z){let{x:J,y:X,z:Y}=Z,$=J/2,Q=Y/2,K=X/2;return new Float32Array([-$,0-K,-Q,$,0-K,-Q,$,0-K,Q,-$,0-K,Q,-$,X-K,-Q,$,X-K,-Q])}_createColliderDesc(Z){let{shape:J,flags:X}=Z;switch(J){case"ball":{if(!Z.radius)m.fatalError("Ball collider must have a radius!");return $1.ColliderDesc.ball(Z.radius)}case"block":{if(!Z.halfExtents)m.fatalError("Block collider must have halfExtents!");return $1.ColliderDesc.cuboid(Z.halfExtents.x,Z.halfExtents.y,Z.halfExtents.z)}case"capsule":{if(!Z.halfHeight||!Z.radius)m.fatalError("Capsule collider must have halfHeight and radius!");return $1.ColliderDesc.capsule(Z.halfHeight,Z.radius)}case"cone":{if(!Z.radius||!Z.halfHeight)m.fatalError("Cone collider must have radius and halfHeight!");return $1.ColliderDesc.cone(Z.halfHeight,Z.radius)}case"cylinder":{if(!Z.radius||!Z.halfHeight)m.fatalError("Cylinder collider must have radius and halfHeight!");return $1.ColliderDesc.cylinder(Z.halfHeight,Z.radius)}case"round-cylinder":{if(!Z.radius||!Z.halfHeight||!Z.borderRadius)m.fatalError("Round cylinder collider must have radius, halfHeight, and borderRadius!");return $1.ColliderDesc.roundCylinder(Z.halfHeight,Z.radius,Z.borderRadius)}case"trimesh":{if(!Z.indices||!Z.vertices)m.fatalError("Trimesh collider must have vertices and indices!");return $1.ColliderDesc.trimesh(Z.vertices,Z.indices,X)}case"wedge":{if(!Z.extents)m.fatalError("Wedge collider must have extents!");let Y=this._buildWedgeConvexHullVertices(Z.extents),$=$1.ColliderDesc.convexHull(Y);if(!$)throw m.fatalError("Failed to create convex hull for wedge collider!"),new Error("Convex hull creation failed");return $}default:m.fatalError(`Collider._createColliderDesc(): ${J} is not a valid collider shape!`)}}_requireSimulated(Z){if(!this.isSimulated)m.error(`Collider._requireSimulated(): Collider is not simulated, invoked method: ${Z}()`);return this.isSimulated}_requireUnsimulated(Z){if(this.isSimulated)m.error(`Collider._requireUnsimulated(): Collider is already simulated, invoked method: ${Z}()`);return!this.isSimulated}_requireNotRemoved(Z){if(this.isRemoved)m.error(`Collider._requireNotRemoved(): Collider is removed, invoked method: ${Z}()`);return!this.isRemoved}_setActiveCollisionTypes(){(this._collider??this._colliderDesc).setActiveCollisionTypes($1.ActiveCollisionTypes.DYNAMIC_DYNAMIC|$1.ActiveCollisionTypes.DYNAMIC_KINEMATIC|$1.ActiveCollisionTypes.DYNAMIC_FIXED|$1.ActiveCollisionTypes.KINEMATIC_KINEMATIC|$1.ActiveCollisionTypes.KINEMATIC_FIXED)}}var Jj1={shape:"trimesh",flags:L3.FIX_INTERNAL_EDGES},Xj1=new Uint32Array([0,1,2,2,3,0,4,5,6,6,7,4,8,9,10,10,11,8,12,13,14,14,15,12,16,17,18,18,19,16,20,21,22,22,23,20]),Yj1=new Float32Array([-0.5,-0.5,0.5,0.5,-0.5,0.5,0.5,0.5,0.5,-0.5,0.5,0.5,-0.5,-0.5,-0.5,0.5,-0.5,-0.5,0.5,0.5,-0.5,-0.5,0.5,-0.5,-0.5,0.5,-0.5,0.5,0.5,-0.5,0.5,0.5,0.5,-0.5,0.5,0.5,-0.5,-0.5,-0.5,0.5,-0.5,-0.5,0.5,-0.5,0.5,-0.5,-0.5,0.5,0.5,-0.5,-0.5,0.5,0.5,-0.5,0.5,0.5,0.5,0.5,-0.5,0.5,-0.5,-0.5,-0.5,-0.5,0.5,-0.5,-0.5,0.5,0.5,-0.5,-0.5,0.5]),_C;((X)=>{X.ENTITY_COLLISION="BLOCK_TYPE.ENTITY_COLLISION";X.ENTITY_CONTACT_FORCE="BLOCK_TYPE.ENTITY_CONTACT_FORCE"})(_C||={});class o5 extends j0{_id;_customColliderOptions;_isLiquid;_name;_textureUri;constructor(Z={id:-1,textureUri:"textures/missing.png",name:"Unknown"}){if(Z.id<0)m.fatalError("BlockType.constructor(): BlockType id not set.");super();this._id=Z.id,this._customColliderOptions=Z.customColliderOptions,this._isLiquid=Z.isLiquid??!1,this._name=Z.name,this._textureUri=Z.textureUri}get id(){return this._id}get colliderOptions(){return{...this._customColliderOptions,...Jj1}}get isLiquid(){return this._isLiquid}get isMeshable(){return!this._customColliderOptions}get name(){return this._name}get textureUri(){return this._textureUri}createCollider(Z=Xj1,J=Yj1){let X=new s5({...this.colliderOptions,indices:Z,vertices:J});if(this.isLiquid)X.setSensor(!0);if(this.hasListeners("BLOCK_TYPE.ENTITY_COLLISION")||this.isLiquid)X.enableCollisionEvents(!0);if(this.hasListeners("BLOCK_TYPE.ENTITY_CONTACT_FORCE"))X.enableContactForceEvents(!0);if(J4.isDefaultCollisionGroups(X.collisionGroups))X.setCollisionGroups({belongsTo:[1],collidesWith:[65535&~1]});return X}serialize(){return p0.serializeBlockType(this)}}var AC;((J)=>J.REGISTER_BLOCK_TYPE="BLOCK_TYPE_REGISTRY.REGISTER_BLOCK_TYPE")(AC||={});class SG extends j0{_blockTypes=new Map;_world;constructor(Z){super();this._world=Z}get world(){return this._world}getAllBlockTypes(){return Array.from(this._blockTypes.values())}getBlockType(Z){let J=this._blockTypes.get(Z);if(!J)m.fatalError(`BlockTypeRegistry.getBlockType(): BlockType with id ${Z} not found.`);return J}registerGenericBlockType(Z){let X=new class extends o5{constructor(Y=Z){super(Y)}};return this.registerBlockType(X),X}registerBlockType(Z){this._blockTypes.set(Z.id,Z),this.emitWithWorld(this._world,"BLOCK_TYPE_REGISTRY.REGISTER_BLOCK_TYPE",{blockTypeRegistry:this,id:Z.id,blockType:Z})}serialize(){return p0.serializeBlockTypeRegistry(this)}}var Gk={};c4(Gk,{worldSchema:()=>Wk,worldPacketDefinition:()=>Ye,vectorSchema:()=>v1,vectorBooleanSchema:()=>JT1,uiSchema:()=>Qk,uiPacketDefinition:()=>Je,uiDatasSchema:()=>Kk,uiDatasPacketDefinition:()=>Xe,uiDataSendPacketDefinition:()=>ut,uiDataSchema:()=>Jz,syncResponseSchema:()=>$k,syncResponsePacketDefinition:()=>Ze,syncRequestSchema:()=>xT,syncRequestPacketDefinition:()=>mt,stateRequestSchema:()=>AT,stateRequestPacketDefinition:()=>gt,sceneUIsSchema:()=>Yk,sceneUIsPacketDefinition:()=>et,sceneUISchema:()=>Xk,rgbColorSchema:()=>H7,registeredPackets:()=>EL,quaternionSchema:()=>iT,playersSchema:()=>Jk,playersPacketDefinition:()=>tt,playerSchema:()=>Zk,physicsDebugRenderSchema:()=>eT,physicsDebugRenderPacketDefinition:()=>ot,physicsDebugRaycastsSchema:()=>tT,physicsDebugRaycastsPacketDefinition:()=>rt,physicsDebugRaycastSchema:()=>rT,outboundPackets:()=>kL,modelNodeOverrideSchema:()=>pT,lightsSchema:()=>oT,lightsPacketDefinition:()=>st,lightSchema:()=>sT,isValidPacket:()=>YT1,inputSchema:()=>_T,inputPacketDefinition:()=>yt,inboundPackets:()=>TL,hexColorSchema:()=>vT,heartbeatSchema:()=>IT,heartbeatPacketDefinition:()=>ht,entitySchema:()=>nT,entitiesSchema:()=>aT,entitiesPacketDefinition:()=>at,definePacket:()=>E0,debugConfigSchema:()=>ST,debugConfigPacketDefinition:()=>bt,createPacket:()=>pC1,connectionSchema:()=>ET,connectionPacketDefinition:()=>xt,chunksSchema:()=>lT,chunksPacketDefinition:()=>nt,chunkSchema:()=>cT,chatMessagesSchema:()=>dT,chatMessagesPacketDefinition:()=>it,chatMessageSendPacketDefinition:()=>ft,chatMessageSchema:()=>Zz,cameraSchema:()=>uT,cameraPacketDefinition:()=>pt,blocksSchema:()=>yT,blocksPacketDefinition:()=>ct,blockTypesSchema:()=>mT,blockTypesPacketDefinition:()=>lt,blockTypeSchema:()=>gT,blockSchema:()=>bT,bidirectionalPackets:()=>CL,audiosSchema:()=>fT,audiosPacketDefinition:()=>dt,audioSchema:()=>hT,PacketId:()=>x1});var CL={};c4(CL,{heartbeatPacketDefinition:()=>ht,connectionPacketDefinition:()=>xt});var TT=t(_t(),1);class kT extends TT.default{static instance=new TT.default}var x1;((T)=>{T[T.SYNC_REQUEST=0]="SYNC_REQUEST";T[T.INPUT=1]="INPUT";T[T.STATE_REQUEST=2]="STATE_REQUEST";T[T.CHAT_MESSAGE_SEND=3]="CHAT_MESSAGE_SEND";T[T.UI_DATA_SEND=4]="UI_DATA_SEND";T[T.SYNC_RESPONSE=32]="SYNC_RESPONSE";T[T.AUDIOS=33]="AUDIOS";T[T.BLOCKS=34]="BLOCKS";T[T.BLOCK_TYPES=35]="BLOCK_TYPES";T[T.CHAT_MESSAGES=36]="CHAT_MESSAGES";T[T.CHUNKS=37]="CHUNKS";T[T.ENTITIES=38]="ENTITIES";T[T.WORLD=39]="WORLD";T[T.CAMERA=40]="CAMERA";T[T.UI=41]="UI";T[T.UI_DATAS=42]="UI_DATAS";T[T.SCENE_UIS=43]="SCENE_UIS";T[T.LIGHTS=44]="LIGHTS";T[T.PLAYERS=45]="PLAYERS";T[T.CONNECTION=116]="CONNECTION";T[T.HEARTBEAT=117]="HEARTBEAT";T[T.DEBUG_CONFIG=128]="DEBUG_CONFIG";T[T.PHYSICS_DEBUG_RENDER=192]="PHYSICS_DEBUG_RENDER";T[T.PHYSICS_DEBUG_RAYCASTS=193]="PHYSICS_DEBUG_RAYCASTS"})(x1||={});function pC1(Z,J,X){if(!Z.validate(J))throw new Error(`Invalid payload for packet with id ${Z.id}. Error: ${kT.instance.errorsText(Z.validate.errors)}`);let Y=[Z.id,J];if(typeof X==="number")Y.push(X);return Y}function E0(Z,J){return{id:Z,schema:J,validate:kT.instance.compile(J)}}var iC1={type:"object",properties:{i:{type:"string"}},required:["i"],additionalProperties:!1},At={type:"object",properties:{role:{type:"string",enum:["auto","client","server"],nullable:!0},fingerprints:{type:"array",items:{type:"object",properties:{algorithm:{type:"string",enum:["sha-1","sha-224","sha-256","sha-384","sha-512"]},value:{type:"string"}},required:["algorithm","value"]}}},required:["fingerprints"],additionalProperties:!1},nC1={type:"object",properties:{foundation:{type:"string"},priority:{type:"number"},ip:{type:"string"},address:{type:"string"},protocol:{type:"string",enum:["udp","tcp"]},port:{type:"number"},type:{type:"string",enum:["host"]},tcpType:{type:"string",enum:["passive"],nullable:!0}},required:["foundation","priority","ip","address","protocol","port","type"],additionalProperties:!1},aC1={type:"object",properties:{usernameFragment:{type:"string"},password:{type:"string"},iceLite:{type:"boolean",nullable:!0}},required:["usernameFragment","password"],additionalProperties:!1},sC1={type:"object",properties:{i:{type:"string"},l:{type:"string"}},required:["i","l"],additionalProperties:!1},oC1={type:"object",properties:{port:{type:"number"},OS:{type:"number"},MIS:{type:"number"},maxMessageSize:{type:"number"}},required:["port","OS","MIS","maxMessageSize"],additionalProperties:!0},rC1={type:"object",properties:{streamId:{type:"number"},ordered:{type:"boolean",nullable:!0},maxPacketLifeTime:{type:"number",nullable:!0},maxRetransmits:{type:"number",nullable:!0}},required:["streamId"],additionalProperties:!1},tC1={type:"object",properties:{i:{type:"string"},f:{type:"string",enum:["cs","sc"]},ip:aC1,ic:{type:"array",items:nC1},d:At,s:oC1},required:["i","f","ip","ic","d","s"],additionalProperties:!1},eC1={type:"object",properties:{i:{type:"string"},d:At},required:["i","d"],additionalProperties:!1},ZT1={type:"object",properties:{i:{type:"string",nullable:!0},pi:{type:"string",nullable:!0},l:{type:"string"},s:rC1},required:["l","s"],additionalProperties:!1},ET={type:"object",properties:{i:{type:"string",nullable:!0},c:{...eC1,nullable:!0},ca:{...iC1,nullable:!0},d:{type:"array",items:{...ZT1},nullable:!0},pa:{...sC1,nullable:!0},t:{type:"array",items:{...tC1},nullable:!0}},additionalProperties:!1};var xt=E0(116,ET);var IT={type:"null",nullable:!0};var ht=E0(117,IT);var TL={};c4(TL,{uiDataSendPacketDefinition:()=>ut,syncRequestPacketDefinition:()=>mt,stateRequestPacketDefinition:()=>gt,inputPacketDefinition:()=>yt,debugConfigPacketDefinition:()=>bt,chatMessageSendPacketDefinition:()=>ft});var vT={type:"string",pattern:"^[0-9A-Fa-f]{6}$"};var Zz={type:"object",properties:{m:{type:"string"},c:{...vT,nullable:!0},p:{type:"string",nullable:!0}},required:["m"],additionalProperties:!1};var ft=E0(3,Zz);var ST={type:"object",properties:{pdr:{type:"boolean",nullable:!0}},additionalProperties:!1};var bt=E0(128,ST);var _T={type:"object",properties:{"1":{type:"boolean",nullable:!0},"2":{type:"boolean",nullable:!0},"3":{type:"boolean",nullable:!0},"4":{type:"boolean",nullable:!0},"5":{type:"boolean",nullable:!0},"6":{type:"boolean",nullable:!0},"7":{type:"boolean",nullable:!0},"8":{type:"boolean",nullable:!0},"9":{type:"boolean",nullable:!0},"0":{type:"boolean",nullable:!0},w:{type:"boolean",nullable:!0},a:{type:"boolean",nullable:!0},s:{type:"boolean",nullable:!0},d:{type:"boolean",nullable:!0},q:{type:"boolean",nullable:!0},e:{type:"boolean",nullable:!0},r:{type:"boolean",nullable:!0},f:{type:"boolean",nullable:!0},z:{type:"boolean",nullable:!0},x:{type:"boolean",nullable:!0},c:{type:"boolean",nullable:!0},v:{type:"boolean",nullable:!0},u:{type:"boolean",nullable:!0},i:{type:"boolean",nullable:!0},o:{type:"boolean",nullable:!0},j:{type:"boolean",nullable:!0},k:{type:"boolean",nullable:!0},l:{type:"boolean",nullable:!0},n:{type:"boolean",nullable:!0},m:{type:"boolean",nullable:!0},sp:{type:"boolean",nullable:!0},sh:{type:"boolean",nullable:!0},tb:{type:"boolean",nullable:!0},ml:{type:"boolean",nullable:!0},mr:{type:"boolean",nullable:!0},cp:{type:"number",nullable:!0},cy:{type:"number",nullable:!0},sq:{type:"number",nullable:!0}},additionalProperties:!1};var yt=E0(1,_T);var AT={type:"object",properties:{},additionalProperties:!1};var gt=E0(2,AT);var xT={type:"null",nullable:!0};var mt=E0(0,xT);var Jz={type:"object",properties:{},additionalProperties:!0};var ut=E0(4,Jz);var kL={};c4(kL,{worldPacketDefinition:()=>Ye,uiPacketDefinition:()=>Je,uiDatasPacketDefinition:()=>Xe,syncResponsePacketDefinition:()=>Ze,sceneUIsPacketDefinition:()=>et,playersPacketDefinition:()=>tt,physicsDebugRenderPacketDefinition:()=>ot,physicsDebugRaycastsPacketDefinition:()=>rt,lightsPacketDefinition:()=>st,entitiesPacketDefinition:()=>at,chunksPacketDefinition:()=>nt,chatMessagesPacketDefinition:()=>it,cameraPacketDefinition:()=>pt,blocksPacketDefinition:()=>ct,blockTypesPacketDefinition:()=>lt,audiosPacketDefinition:()=>dt});var v1={type:"array",items:[{type:"number"},{type:"number"},{type:"number"}],minItems:3,maxItems:3};var hT={type:"object",properties:{i:{type:"number"},a:{type:"string",nullable:!0},cd:{type:"number",nullable:!0},d:{type:"number",nullable:!0},de:{type:"number",nullable:!0},di:{type:"number",minimum:0,nullable:!0},e:{type:"number",nullable:!0},l:{type:"boolean",nullable:!0},o:{type:"number",nullable:!0},p:{...v1,nullable:!0},pa:{type:"boolean",nullable:!0},pl:{type:"boolean",nullable:!0},pr:{type:"number",minimum:0,nullable:!0},r:{type:"boolean",nullable:!0},rd:{type:"number",nullable:!0},s:{type:"number",nullable:!0},v:{type:"number",minimum:0,maximum:1,nullable:!0}},required:["i"],additionalProperties:!1};var fT={type:"array",items:{...hT}};var dt=E0(33,fT);var bT={type:"object",properties:{i:{type:"number"},c:v1},required:["i","c"],additionalProperties:!1};var yT={type:"array",items:{...bT}};var ct=E0(34,yT);var gT={type:"object",properties:{i:{type:"number"},l:{type:"boolean",nullable:!0},n:{type:"string",nullable:!0},t:{type:"string",nullable:!0}},required:["i"],additionalProperties:!1};var mT={type:"array",items:{...gT}};var lt=E0(35,mT);var uT={type:"object",properties:{m:{type:"number",nullable:!0},e:{type:"number",nullable:!0},et:{type:"number",nullable:!0},fo:{type:"number",nullable:!0},ffo:{type:"number",nullable:!0},fv:{type:"number",nullable:!0},h:{type:"array",items:{type:"string"},nullable:!0},o:{...v1,nullable:!0},p:{...v1,nullable:!0},pt:{...v1,nullable:!0},pl:{...v1,nullable:!0},s:{type:"array",items:{type:"string"},nullable:!0},sa:{type:"number",nullable:!0},z:{type:"number",nullable:!0}},additionalProperties:!1};var dT={type:"array",items:{...Zz}};var cT={type:"object",properties:{c:v1,b:{type:"array",items:{type:"number",minimum:0,maximum:255},minItems:4096,maxItems:4096,nullable:!0},rm:{type:"boolean",nullable:!0}},required:["c"],additionalProperties:!1};var lT={type:"array",items:{...cT}};var H7={type:"array",items:[{type:"number",minimum:0,maximum:255},{type:"number",minimum:0,maximum:255},{type:"number",minimum:0,maximum:255}],minItems:3,maxItems:3};var pT={type:"object",properties:{n:{type:"string"},h:{type:"boolean",nullable:!0},o:{type:"number",minimum:0,maximum:1,nullable:!0},r:{type:"boolean",nullable:!0},s:{type:"number",nullable:!0},t:{...H7,nullable:!0}},required:["n"],additionalProperties:!1};var iT={type:"array",items:[{type:"number"},{type:"number"},{type:"number"},{type:"number"}],minItems:4,maxItems:4};var nT={type:"object",properties:{i:{type:"number"},al:{type:"array",items:{type:"string"},nullable:!0},ao:{type:"array",items:{type:"string"},nullable:!0},ap:{type:"number",nullable:!0},as:{type:"array",items:{type:"string"},nullable:!0},bh:{...v1,nullable:!0},bt:{type:"string",nullable:!0},h:{type:"array",items:{type:"string"},nullable:!0},m:{type:"string",nullable:!0},mo:{type:"array",items:{...pT},nullable:!0},mt:{type:"string",nullable:!0},n:{type:"string",nullable:!0},o:{type:"number",nullable:!0},p:{...v1,nullable:!0},pe:{type:"number",nullable:!0},pn:{type:"string",nullable:!0},r:{...iT,nullable:!0},rm:{type:"boolean",nullable:!0},s:{type:"number",nullable:!0},sn:{type:"array",items:{type:"string"},nullable:!0},t:{...H7,nullable:!0}},required:["i"],additionalProperties:!1};var aT={type:"array",items:{...nT}};var sT={type:"object",properties:{i:{type:"number"},a:{type:"number",nullable:!0},e:{type:"number",nullable:!0},c:{...H7,nullable:!0},d:{type:"number",nullable:!0},n:{type:"number",nullable:!0},o:{...v1,nullable:!0},p:{...v1,nullable:!0},pe:{type:"number",minimum:0,maximum:1,nullable:!0},rm:{type:"boolean",nullable:!0},t:{type:"number",nullable:!0},te:{type:"number",nullable:!0},tp:{...v1,nullable:!0}},required:["i"],additionalProperties:!1};var oT={type:"array",items:{...sT}};var rT={type:"object",properties:{o:{...v1},d:{...v1},l:{type:"number"},h:{type:"boolean"}},required:["o","d","l","h"],additionalProperties:!1};var tT={type:"array",items:{...rT}};var eT={type:"object",properties:{v:{type:"array",items:{type:"number"}},c:{type:"array",items:{type:"number"}}},required:["v","c"],additionalProperties:!1};var Zk={type:"object",properties:{i:{type:"string"},p:{type:"string",nullable:!0},rm:{type:"boolean",nullable:!0},u:{type:"string",nullable:!0}},required:["i"],additionalProperties:!1};var Jk={type:"array",items:{...Zk}};var Xk={type:"object",properties:{i:{type:"number"},e:{type:"number",nullable:!0},o:{...v1,nullable:!0},p:{...v1,nullable:!0},rm:{type:"boolean",nullable:!0},s:{type:"object",nullable:!0},t:{type:"string",nullable:!0},v:{type:"number",nullable:!0}},required:["i"],additionalProperties:!1};var Yk={type:"array",items:{...Xk}};var $k={type:"object",properties:{r:{type:"number"},s:{type:"number"},p:{type:"number"},n:{type:"number"}},required:["r","s","p","n"],additionalProperties:!1};var Qk={type:"object",properties:{p:{type:"boolean",nullable:!0},u:{type:"string",nullable:!0}},additionalProperties:!1};var Kk={type:"array",items:{...Jz}};var JT1={type:"array",items:[{type:"boolean"},{type:"boolean"},{type:"boolean"}],minItems:3,maxItems:3};var Wk={type:"object",properties:{i:{type:"number"},ac:{...H7,nullable:!0},ai:{type:"number",nullable:!0},dc:{...H7,nullable:!0},di:{type:"number",nullable:!0},dp:{...v1,nullable:!0},n:{type:"string",nullable:!0},s:{type:"string",nullable:!0},si:{type:"number",nullable:!0},t:{type:"number",nullable:!0}},required:["i"],additionalProperties:!1};var pt=E0(40,uT);var it=E0(36,dT);var nt=E0(37,lT);var at=E0(38,aT);var st=E0(44,oT);var ot=E0(192,eT);var rt=E0(193,tT);var tt=E0(45,Jk);var et=E0(43,Yk);var Ze=E0(32,$k);var Je=E0(41,Qk);var Xe=E0(42,Kk);var Ye=E0(39,Wk);var EL=new Map,XT1={...CL,...TL,...kL};for(let Z of Object.values(XT1))if("id"in Z&&"schema"in Z){let J=Z;if(EL.has(J.id))throw new Error(`Packet with id ${J.id} is already registered.`);EL.set(J.id,J)}function YT1(Z){if(typeof Z!=="object"||Z===null||typeof Z[0]!=="number"||Z[0]<0||Z[1]===void 0||Z[2]!==void 0&&(typeof Z[2]!=="number"||Z[2]<0))return!1;let J=EL.get(Z[0]);return!!J&&J.validate(Z[1])}var X0=Gk;var Ee=t(Te(),1);import IY from"fs";import ke from"path";var Yz="./dev/persistence";class q7{static instance=new q7;gameId=process.env.HYTOPIA_GAME_ID;lobbyId=process.env.HYTOPIA_LOBBY_ID;_creativeGateway;constructor(){try{this._creativeGateway=new Ee.CreativeGateway}catch{console.warn(["\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501","\uD83D\uDEA8 HYTOPIA PLATFORM GATEWAY IS NOT INITIALIZED \uD83D\uDEA8","","\uD83D\uDD27 Local development is still possible, but these features will be disabled:"," \u2022 \uD83D\uDC64 Player Accounts"," \u2022 \uD83C\uDFAD Player Cosmetics"," \u2022 \uD83D\uDC1B Crash Analytics & Debug Logs","","\uD83D\uDCA1 These features will be enabled but modified:"," \u2022 \uD83D\uDCBE Player & Global Persisted Data - Data will be persisted"," locally in the ./dev/persistence directory of your project."," Player ids for data persistence will begin at 1 for the first "," player to join your local server, and increments for each"," additional player. This means that if you restart your"," server, the first player id will be 1 again. This is to ensure"," that data persistence across server restarts can be easily"," tested and debugged in local development.","","To enable the HYTOPIA Platform Gateway locally:"," 1. Set these environment variables:"," HYTOPIA_API_KEY, HYTOPIA_GAME_ID, HYTOPIA_LOBBY_ID"," 2. You can find these values at: https://create.hytopia.com","","Note: In production, these environment variables will be auto-populated ","& the HYTOPIA Platform Gateway will automatically be initialized \uD83D\uDE80","\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501",""].join(`
|
406
|
+
>>> no match, partial?`,Z,H,J,q),H===W)return!0}return!1}let U;if(typeof z==="string")U=V===z,this.debug("string match",z,V,U);else U=z.test(V),this.debug("pattern match",z,V,U);if(!U)return!1}if(Q===W&&K===G)return!0;else if(Q===W)return X;else if(K===G)return Q===W-1&&Z[Q]==="";else throw new Error("wtf?")}braceExpand(){return md(this.pattern,this.options)}parse(Z){g3(Z);let J=this.options;if(Z==="**")return U6;if(Z==="")return"";let X,Y=null;if(X=Z.match(fz1))Y=J.dot?yz1:bz1;else if(X=Z.match(Tz1))Y=(J.nocase?J.dot?vz1:Iz1:J.dot?Ez1:kz1)(X[1]);else if(X=Z.match(gz1))Y=(J.nocase?J.dot?uz1:mz1:J.dot?dz1:cz1)(X);else if(X=Z.match(Sz1))Y=J.dot?Az1:_z1;else if(X=Z.match(xz1))Y=hz1;let $=F6.fromGlob(Z,this.options).toMMPattern();if(Y&&typeof $==="object")Reflect.defineProperty($,"test",{value:Y});return $}makeRe(){if(this.regexp||this.regexp===!1)return this.regexp;let Z=this.set;if(!Z.length)return this.regexp=!1,this.regexp;let J=this.options,X=J.noglobstar?iz1:J.dot?nz1:az1,Y=new Set(J.nocase?["i"]:[]),$=Z.map((W)=>{let G=W.map((z)=>{if(z instanceof RegExp)for(let V of z.flags.split(""))Y.add(V);return typeof z==="string"?ez1(z):z===U6?U6:z._src});return G.forEach((z,V)=>{let H=G[V+1],q=G[V-1];if(z!==U6||q===U6)return;if(q===void 0)if(H!==void 0&&H!==U6)G[V+1]="(?:\\/|"+X+"\\/)?"+H;else G[V]=X;else if(H===void 0)G[V-1]=q+"(?:\\/|"+X+")?";else if(H!==U6)G[V-1]=q+"(?:\\/|\\/"+X+"\\/)"+H,G[V+1]=U6}),G.filter((z)=>z!==U6).join("/")}).join("|"),[Q,K]=Z.length>1?["(?:",")"]:["",""];if($="^"+Q+$+K+"$",this.negate)$="^(?!"+$+").+$";try{this.regexp=new RegExp($,[...Y].join(""))}catch(W){this.regexp=!1}return this.regexp}slashSplit(Z){if(this.preserveMultipleSlashes)return Z.split("/");else if(this.isWindows&&/^\/\/[^\/]+/.test(Z))return["",...Z.split(/\/+/)];else return Z.split(/\/+/)}match(Z,J=this.partial){if(this.debug("match",Z,this.pattern),this.comment)return!1;if(this.empty)return Z==="";if(Z==="/"&&J)return!0;let X=this.options;if(this.isWindows)Z=Z.split("\\").join("/");let Y=this.slashSplit(Z);this.debug(this.pattern,"split",Y);let $=this.set;this.debug(this.pattern,"set",$);let Q=Y[Y.length-1];if(!Q)for(let K=Y.length-2;!Q&&K>=0;K--)Q=Y[K];for(let K=0;K<$.length;K++){let W=$[K],G=Y;if(X.matchBase&&W.length===1)G=[Q];if(this.matchOne(G,W,J)){if(X.flipNegate)return!0;return!this.negate}}if(X.flipNegate)return!1;return this.negate}static defaults(Z){return m6.defaults(Z).Minimatch}}m6.AST=F6;m6.Minimatch=w9;m6.escape=MQ;m6.unescape=Q4;import{fileURLToPath as SV1}from"url";var RQ=typeof performance==="object"&&performance&&typeof performance.now==="function"?performance:Date,dd=new Set,XP=typeof process==="object"&&!!process?process:{},cd=(Z,J,X,Y)=>{typeof XP.emitWarning==="function"?XP.emitWarning(Z,J,X,Y):console.error(`[${X}] ${J}: ${Z}`)},LU=globalThis.AbortController,ud=globalThis.AbortSignal;if(typeof LU==="undefined"){ud=class X{onabort;_onabort=[];reason;aborted=!1;addEventListener(Y,$){this._onabort.push($)}},LU=class X{constructor(){J()}signal=new ud;abort(Y){if(this.signal.aborted)return;this.signal.reason=Y,this.signal.aborted=!0;for(let $ of this.signal._onabort)$(Y);this.signal.onabort?.(Y)}};let Z=XP.env?.LRU_CACHE_IGNORE_AC_WARNING!=="1",J=()=>{if(!Z)return;Z=!1,cd("AbortController is not defined. If using lru-cache in node 14, load an AbortController polyfill from the `node-abort-controller` package. A minimal polyfill is provided for use by LRUCache.fetch(), but it should not be relied upon in other contexts (eg, passing it to other APIs that use AbortController/AbortSignal might have undesirable effects). You may disable this with LRU_CACHE_IGNORE_AC_WARNING=1 in the env.","NO_ABORT_CONTROLLER","ENOTSUP",J)}}var ZV1=(Z)=>!dd.has(Z),s36=Symbol("type"),KJ=(Z)=>Z&&Z===Math.floor(Z)&&Z>0&&isFinite(Z),ld=(Z)=>!KJ(Z)?null:Z<=Math.pow(2,8)?Uint8Array:Z<=Math.pow(2,16)?Uint16Array:Z<=Math.pow(2,32)?Uint32Array:Z<=Number.MAX_SAFE_INTEGER?u3:null;class u3 extends Array{constructor(Z){super(Z);this.fill(0)}}class NQ{heap;length;static#Z=!1;static create(Z){let J=ld(Z);if(!J)return[];NQ.#Z=!0;let X=new NQ(Z,J);return NQ.#Z=!1,X}constructor(Z,J){if(!NQ.#Z)throw new TypeError("instantiate Stack using Stack.create(n)");this.heap=new J(Z),this.length=0}push(Z){this.heap[this.length++]=Z}pop(){return this.heap[--this.length]}}class d3{#Z;#J;#Y;#X;#$;#V;#q;ttl;ttlResolution;ttlAutopurge;updateAgeOnGet;updateAgeOnHas;allowStale;noDisposeOnSet;noUpdateTTL;maxEntrySize;sizeCalculation;noDeleteOnFetchRejection;noDeleteOnStaleGet;allowStaleOnFetchAbort;allowStaleOnFetchRejection;ignoreFetchAbort;#W;#G;#z;#H;#Q;#U;#w;#L;#j;#k;#O;#E;#N;#R;#M;#C;#B;#v;static unsafeExposeInternals(Z){return{starts:Z.#N,ttls:Z.#R,sizes:Z.#E,keyMap:Z.#z,keyList:Z.#H,valList:Z.#Q,next:Z.#U,prev:Z.#w,get head(){return Z.#L},get tail(){return Z.#j},free:Z.#k,isBackgroundFetch:(J)=>Z.#F(J),backgroundFetch:(J,X,Y,$)=>Z.#h(J,X,Y,$),moveToTail:(J)=>Z.#y(J),indexes:(J)=>Z.#T(J),rindexes:(J)=>Z.#I(J),isStale:(J)=>Z.#D(J)}}get max(){return this.#Z}get maxSize(){return this.#J}get calculatedSize(){return this.#G}get size(){return this.#W}get fetchMethod(){return this.#V}get memoMethod(){return this.#q}get dispose(){return this.#Y}get onInsert(){return this.#X}get disposeAfter(){return this.#$}constructor(Z){let{max:J=0,ttl:X,ttlResolution:Y=1,ttlAutopurge:$,updateAgeOnGet:Q,updateAgeOnHas:K,allowStale:W,dispose:G,onInsert:z,disposeAfter:V,noDisposeOnSet:H,noUpdateTTL:q,maxSize:F=0,maxEntrySize:U=0,sizeCalculation:w,fetchMethod:L,memoMethod:j,noDeleteOnFetchRejection:R,noDeleteOnStaleGet:O,allowStaleOnFetchRejection:N,allowStaleOnFetchAbort:D,ignoreFetchAbort:P}=Z;if(J!==0&&!KJ(J))throw new TypeError("max option must be a nonnegative integer");let C=J?ld(J):Array;if(!C)throw new Error("invalid max value: "+J);if(this.#Z=J,this.#J=F,this.maxEntrySize=U||this.#J,this.sizeCalculation=w,this.sizeCalculation){if(!this.#J&&!this.maxEntrySize)throw new TypeError("cannot set sizeCalculation without setting maxSize or maxEntrySize");if(typeof this.sizeCalculation!=="function")throw new TypeError("sizeCalculation set to non-function")}if(j!==void 0&&typeof j!=="function")throw new TypeError("memoMethod must be a function if defined");if(this.#q=j,L!==void 0&&typeof L!=="function")throw new TypeError("fetchMethod must be a function if specified");if(this.#V=L,this.#C=!!L,this.#z=new Map,this.#H=new Array(J).fill(void 0),this.#Q=new Array(J).fill(void 0),this.#U=new C(J),this.#w=new C(J),this.#L=0,this.#j=0,this.#k=NQ.create(J),this.#W=0,this.#G=0,typeof G==="function")this.#Y=G;if(typeof z==="function")this.#X=z;if(typeof V==="function")this.#$=V,this.#O=[];else this.#$=void 0,this.#O=void 0;if(this.#M=!!this.#Y,this.#v=!!this.#X,this.#B=!!this.#$,this.noDisposeOnSet=!!H,this.noUpdateTTL=!!q,this.noDeleteOnFetchRejection=!!R,this.allowStaleOnFetchRejection=!!N,this.allowStaleOnFetchAbort=!!D,this.ignoreFetchAbort=!!P,this.maxEntrySize!==0){if(this.#J!==0){if(!KJ(this.#J))throw new TypeError("maxSize must be a positive integer if specified")}if(!KJ(this.maxEntrySize))throw new TypeError("maxEntrySize must be a positive integer if specified");this.#m()}if(this.allowStale=!!W,this.noDeleteOnStaleGet=!!O,this.updateAgeOnGet=!!Q,this.updateAgeOnHas=!!K,this.ttlResolution=KJ(Y)||Y===0?Y:1,this.ttlAutopurge=!!$,this.ttl=X||0,this.ttl){if(!KJ(this.ttl))throw new TypeError("ttl must be a positive integer if specified");this.#K()}if(this.#Z===0&&this.ttl===0&&this.#J===0)throw new TypeError("At least one of max, maxSize, or ttl is required");if(!this.ttlAutopurge&&!this.#Z&&!this.#J){if(ZV1("LRU_CACHE_UNBOUNDED"))dd.add("LRU_CACHE_UNBOUNDED"),cd("TTL caching without ttlAutopurge, max, or maxSize can result in unbounded memory consumption.","UnboundedCacheWarning","LRU_CACHE_UNBOUNDED",d3)}}getRemainingTTL(Z){return this.#z.has(Z)?1/0:0}#K(){let Z=new u3(this.#Z),J=new u3(this.#Z);this.#R=Z,this.#N=J,this.#S=($,Q,K=RQ.now())=>{if(J[$]=Q!==0?K:0,Z[$]=Q,Q!==0&&this.ttlAutopurge){let W=setTimeout(()=>{if(this.#D($))this.#_(this.#H[$],"expire")},Q+1);if(W.unref)W.unref()}},this.#A=($)=>{J[$]=Z[$]!==0?RQ.now():0},this.#P=($,Q)=>{if(Z[Q]){let K=Z[Q],W=J[Q];if(!K||!W)return;$.ttl=K,$.start=W,$.now=X||Y();let G=$.now-W;$.remainingTTL=K-G}};let X=0,Y=()=>{let $=RQ.now();if(this.ttlResolution>0){X=$;let Q=setTimeout(()=>X=0,this.ttlResolution);if(Q.unref)Q.unref()}return $};this.getRemainingTTL=($)=>{let Q=this.#z.get($);if(Q===void 0)return 0;let K=Z[Q],W=J[Q];if(!K||!W)return 1/0;let G=(X||Y())-W;return K-G},this.#D=($)=>{let Q=J[$],K=Z[$];return!!K&&!!Q&&(X||Y())-Q>K}}#A=()=>{};#P=()=>{};#S=()=>{};#D=()=>!1;#m(){let Z=new u3(this.#Z);this.#G=0,this.#E=Z,this.#x=(J)=>{this.#G-=Z[J],Z[J]=0},this.#u=(J,X,Y,$)=>{if(this.#F(X))return 0;if(!KJ(Y))if($){if(typeof $!=="function")throw new TypeError("sizeCalculation must be a function");if(Y=$(X,J),!KJ(Y))throw new TypeError("sizeCalculation return invalid (expect positive integer)")}else throw new TypeError("invalid size value (must be positive integer). When maxSize or maxEntrySize is used, sizeCalculation or size must be set.");return Y},this.#f=(J,X,Y)=>{if(Z[J]=X,this.#J){let $=this.#J-Z[J];while(this.#G>$)this.#b(!0)}if(this.#G+=Z[J],Y)Y.entrySize=X,Y.totalCalculatedSize=this.#G}}#x=(Z)=>{};#f=(Z,J,X)=>{};#u=(Z,J,X,Y)=>{if(X||Y)throw new TypeError("cannot set size without setting maxSize or maxEntrySize on cache");return 0};*#T({allowStale:Z=this.allowStale}={}){if(this.#W)for(let J=this.#j;;){if(!this.#d(J))break;if(Z||!this.#D(J))yield J;if(J===this.#L)break;else J=this.#w[J]}}*#I({allowStale:Z=this.allowStale}={}){if(this.#W)for(let J=this.#L;;){if(!this.#d(J))break;if(Z||!this.#D(J))yield J;if(J===this.#j)break;else J=this.#U[J]}}#d(Z){return Z!==void 0&&this.#z.get(this.#H[Z])===Z}*entries(){for(let Z of this.#T())if(this.#Q[Z]!==void 0&&this.#H[Z]!==void 0&&!this.#F(this.#Q[Z]))yield[this.#H[Z],this.#Q[Z]]}*rentries(){for(let Z of this.#I())if(this.#Q[Z]!==void 0&&this.#H[Z]!==void 0&&!this.#F(this.#Q[Z]))yield[this.#H[Z],this.#Q[Z]]}*keys(){for(let Z of this.#T()){let J=this.#H[Z];if(J!==void 0&&!this.#F(this.#Q[Z]))yield J}}*rkeys(){for(let Z of this.#I()){let J=this.#H[Z];if(J!==void 0&&!this.#F(this.#Q[Z]))yield J}}*values(){for(let Z of this.#T())if(this.#Q[Z]!==void 0&&!this.#F(this.#Q[Z]))yield this.#Q[Z]}*rvalues(){for(let Z of this.#I())if(this.#Q[Z]!==void 0&&!this.#F(this.#Q[Z]))yield this.#Q[Z]}[Symbol.iterator](){return this.entries()}[Symbol.toStringTag]="LRUCache";find(Z,J={}){for(let X of this.#T()){let Y=this.#Q[X],$=this.#F(Y)?Y.__staleWhileFetching:Y;if($===void 0)continue;if(Z($,this.#H[X],this))return this.get(this.#H[X],J)}}forEach(Z,J=this){for(let X of this.#T()){let Y=this.#Q[X],$=this.#F(Y)?Y.__staleWhileFetching:Y;if($===void 0)continue;Z.call(J,$,this.#H[X],this)}}rforEach(Z,J=this){for(let X of this.#I()){let Y=this.#Q[X],$=this.#F(Y)?Y.__staleWhileFetching:Y;if($===void 0)continue;Z.call(J,$,this.#H[X],this)}}purgeStale(){let Z=!1;for(let J of this.#I({allowStale:!0}))if(this.#D(J))this.#_(this.#H[J],"expire"),Z=!0;return Z}info(Z){let J=this.#z.get(Z);if(J===void 0)return;let X=this.#Q[J],Y=this.#F(X)?X.__staleWhileFetching:X;if(Y===void 0)return;let $={value:Y};if(this.#R&&this.#N){let Q=this.#R[J],K=this.#N[J];if(Q&&K){let W=Q-(RQ.now()-K);$.ttl=W,$.start=Date.now()}}if(this.#E)$.size=this.#E[J];return $}dump(){let Z=[];for(let J of this.#T({allowStale:!0})){let X=this.#H[J],Y=this.#Q[J],$=this.#F(Y)?Y.__staleWhileFetching:Y;if($===void 0||X===void 0)continue;let Q={value:$};if(this.#R&&this.#N){Q.ttl=this.#R[J];let K=RQ.now()-this.#N[J];Q.start=Math.floor(Date.now()-K)}if(this.#E)Q.size=this.#E[J];Z.unshift([X,Q])}return Z}load(Z){this.clear();for(let[J,X]of Z){if(X.start){let Y=Date.now()-X.start;X.start=RQ.now()-Y}this.set(J,X.value,X)}}set(Z,J,X={}){if(J===void 0)return this.delete(Z),this;let{ttl:Y=this.ttl,start:$,noDisposeOnSet:Q=this.noDisposeOnSet,sizeCalculation:K=this.sizeCalculation,status:W}=X,{noUpdateTTL:G=this.noUpdateTTL}=X,z=this.#u(Z,J,X.size||0,K);if(this.maxEntrySize&&z>this.maxEntrySize){if(W)W.set="miss",W.maxEntrySizeExceeded=!0;return this.#_(Z,"set"),this}let V=this.#W===0?void 0:this.#z.get(Z);if(V===void 0){if(V=this.#W===0?this.#j:this.#k.length!==0?this.#k.pop():this.#W===this.#Z?this.#b(!1):this.#W,this.#H[V]=Z,this.#Q[V]=J,this.#z.set(Z,V),this.#U[this.#j]=V,this.#w[V]=this.#j,this.#j=V,this.#W++,this.#f(V,z,W),W)W.set="add";if(G=!1,this.#v)this.#X?.(J,Z,"add")}else{this.#y(V);let H=this.#Q[V];if(J!==H){if(this.#C&&this.#F(H)){H.__abortController.abort(new Error("replaced"));let{__staleWhileFetching:q}=H;if(q!==void 0&&!Q){if(this.#M)this.#Y?.(q,Z,"set");if(this.#B)this.#O?.push([q,Z,"set"])}}else if(!Q){if(this.#M)this.#Y?.(H,Z,"set");if(this.#B)this.#O?.push([H,Z,"set"])}if(this.#x(V),this.#f(V,z,W),this.#Q[V]=J,W){W.set="replace";let q=H&&this.#F(H)?H.__staleWhileFetching:H;if(q!==void 0)W.oldValue=q}}else if(W)W.set="update";if(this.#v)this.onInsert?.(J,Z,J===H?"update":"replace")}if(Y!==0&&!this.#R)this.#K();if(this.#R){if(!G)this.#S(V,Y,$);if(W)this.#P(W,V)}if(!Q&&this.#B&&this.#O){let H=this.#O,q;while(q=H?.shift())this.#$?.(...q)}return this}pop(){try{while(this.#W){let Z=this.#Q[this.#L];if(this.#b(!0),this.#F(Z)){if(Z.__staleWhileFetching)return Z.__staleWhileFetching}else if(Z!==void 0)return Z}}finally{if(this.#B&&this.#O){let Z=this.#O,J;while(J=Z?.shift())this.#$?.(...J)}}}#b(Z){let J=this.#L,X=this.#H[J],Y=this.#Q[J];if(this.#C&&this.#F(Y))Y.__abortController.abort(new Error("evicted"));else if(this.#M||this.#B){if(this.#M)this.#Y?.(Y,X,"evict");if(this.#B)this.#O?.push([Y,X,"evict"])}if(this.#x(J),Z)this.#H[J]=void 0,this.#Q[J]=void 0,this.#k.push(J);if(this.#W===1)this.#L=this.#j=0,this.#k.length=0;else this.#L=this.#U[J];return this.#z.delete(X),this.#W--,J}has(Z,J={}){let{updateAgeOnHas:X=this.updateAgeOnHas,status:Y}=J,$=this.#z.get(Z);if($!==void 0){let Q=this.#Q[$];if(this.#F(Q)&&Q.__staleWhileFetching===void 0)return!1;if(!this.#D($)){if(X)this.#A($);if(Y)Y.has="hit",this.#P(Y,$);return!0}else if(Y)Y.has="stale",this.#P(Y,$)}else if(Y)Y.has="miss";return!1}peek(Z,J={}){let{allowStale:X=this.allowStale}=J,Y=this.#z.get(Z);if(Y===void 0||!X&&this.#D(Y))return;let $=this.#Q[Y];return this.#F($)?$.__staleWhileFetching:$}#h(Z,J,X,Y){let $=J===void 0?void 0:this.#Q[J];if(this.#F($))return $;let Q=new LU,{signal:K}=X;K?.addEventListener("abort",()=>Q.abort(K.reason),{signal:Q.signal});let W={signal:Q.signal,options:X,context:Y},G=(U,w=!1)=>{let{aborted:L}=Q.signal,j=X.ignoreFetchAbort&&U!==void 0;if(X.status)if(L&&!w){if(X.status.fetchAborted=!0,X.status.fetchError=Q.signal.reason,j)X.status.fetchAbortIgnored=!0}else X.status.fetchResolved=!0;if(L&&!j&&!w)return V(Q.signal.reason);let R=q;if(this.#Q[J]===q)if(U===void 0)if(R.__staleWhileFetching)this.#Q[J]=R.__staleWhileFetching;else this.#_(Z,"fetch");else{if(X.status)X.status.fetchUpdated=!0;this.set(Z,U,W.options)}return U},z=(U)=>{if(X.status)X.status.fetchRejected=!0,X.status.fetchError=U;return V(U)},V=(U)=>{let{aborted:w}=Q.signal,L=w&&X.allowStaleOnFetchAbort,j=L||X.allowStaleOnFetchRejection,R=j||X.noDeleteOnFetchRejection,O=q;if(this.#Q[J]===q){if(!R||O.__staleWhileFetching===void 0)this.#_(Z,"fetch");else if(!L)this.#Q[J]=O.__staleWhileFetching}if(j){if(X.status&&O.__staleWhileFetching!==void 0)X.status.returnedStale=!0;return O.__staleWhileFetching}else if(O.__returned===O)throw U},H=(U,w)=>{let L=this.#V?.(Z,$,W);if(L&&L instanceof Promise)L.then((j)=>U(j===void 0?void 0:j),w);Q.signal.addEventListener("abort",()=>{if(!X.ignoreFetchAbort||X.allowStaleOnFetchAbort){if(U(void 0),X.allowStaleOnFetchAbort)U=(j)=>G(j,!0)}})};if(X.status)X.status.fetchDispatched=!0;let q=new Promise(H).then(G,z),F=Object.assign(q,{__abortController:Q,__staleWhileFetching:$,__returned:void 0});if(J===void 0)this.set(Z,F,{...W.options,status:void 0}),J=this.#z.get(Z);else this.#Q[J]=F;return F}#F(Z){if(!this.#C)return!1;let J=Z;return!!J&&J instanceof Promise&&J.hasOwnProperty("__staleWhileFetching")&&J.__abortController instanceof LU}async fetch(Z,J={}){let{allowStale:X=this.allowStale,updateAgeOnGet:Y=this.updateAgeOnGet,noDeleteOnStaleGet:$=this.noDeleteOnStaleGet,ttl:Q=this.ttl,noDisposeOnSet:K=this.noDisposeOnSet,size:W=0,sizeCalculation:G=this.sizeCalculation,noUpdateTTL:z=this.noUpdateTTL,noDeleteOnFetchRejection:V=this.noDeleteOnFetchRejection,allowStaleOnFetchRejection:H=this.allowStaleOnFetchRejection,ignoreFetchAbort:q=this.ignoreFetchAbort,allowStaleOnFetchAbort:F=this.allowStaleOnFetchAbort,context:U,forceRefresh:w=!1,status:L,signal:j}=J;if(!this.#C){if(L)L.fetch="get";return this.get(Z,{allowStale:X,updateAgeOnGet:Y,noDeleteOnStaleGet:$,status:L})}let R={allowStale:X,updateAgeOnGet:Y,noDeleteOnStaleGet:$,ttl:Q,noDisposeOnSet:K,size:W,sizeCalculation:G,noUpdateTTL:z,noDeleteOnFetchRejection:V,allowStaleOnFetchRejection:H,allowStaleOnFetchAbort:F,ignoreFetchAbort:q,status:L,signal:j},O=this.#z.get(Z);if(O===void 0){if(L)L.fetch="miss";let N=this.#h(Z,O,R,U);return N.__returned=N}else{let N=this.#Q[O];if(this.#F(N)){let k=X&&N.__staleWhileFetching!==void 0;if(L){if(L.fetch="inflight",k)L.returnedStale=!0}return k?N.__staleWhileFetching:N.__returned=N}let D=this.#D(O);if(!w&&!D){if(L)L.fetch="hit";if(this.#y(O),Y)this.#A(O);if(L)this.#P(L,O);return N}let P=this.#h(Z,O,R,U),T=P.__staleWhileFetching!==void 0&&X;if(L){if(L.fetch=D?"stale":"refresh",T&&D)L.returnedStale=!0}return T?P.__staleWhileFetching:P.__returned=P}}async forceFetch(Z,J={}){let X=await this.fetch(Z,J);if(X===void 0)throw new Error("fetch() returned undefined");return X}memo(Z,J={}){let X=this.#q;if(!X)throw new Error("no memoMethod provided to constructor");let{context:Y,forceRefresh:$,...Q}=J,K=this.get(Z,Q);if(!$&&K!==void 0)return K;let W=X(Z,K,{options:Q,context:Y});return this.set(Z,W,Q),W}get(Z,J={}){let{allowStale:X=this.allowStale,updateAgeOnGet:Y=this.updateAgeOnGet,noDeleteOnStaleGet:$=this.noDeleteOnStaleGet,status:Q}=J,K=this.#z.get(Z);if(K!==void 0){let W=this.#Q[K],G=this.#F(W);if(Q)this.#P(Q,K);if(this.#D(K)){if(Q)Q.get="stale";if(!G){if(!$)this.#_(Z,"expire");if(Q&&X)Q.returnedStale=!0;return X?W:void 0}else{if(Q&&X&&W.__staleWhileFetching!==void 0)Q.returnedStale=!0;return X?W.__staleWhileFetching:void 0}}else{if(Q)Q.get="hit";if(G)return W.__staleWhileFetching;if(this.#y(K),Y)this.#A(K);return W}}else if(Q)Q.get="miss"}#c(Z,J){this.#w[J]=Z,this.#U[Z]=J}#y(Z){if(Z!==this.#j){if(Z===this.#L)this.#L=this.#U[Z];else this.#c(this.#w[Z],this.#U[Z]);this.#c(this.#j,Z),this.#j=Z}}delete(Z){return this.#_(Z,"delete")}#_(Z,J){let X=!1;if(this.#W!==0){let Y=this.#z.get(Z);if(Y!==void 0)if(X=!0,this.#W===1)this.#g(J);else{this.#x(Y);let $=this.#Q[Y];if(this.#F($))$.__abortController.abort(new Error("deleted"));else if(this.#M||this.#B){if(this.#M)this.#Y?.($,Z,J);if(this.#B)this.#O?.push([$,Z,J])}if(this.#z.delete(Z),this.#H[Y]=void 0,this.#Q[Y]=void 0,Y===this.#j)this.#j=this.#w[Y];else if(Y===this.#L)this.#L=this.#U[Y];else{let Q=this.#w[Y];this.#U[Q]=this.#U[Y];let K=this.#U[Y];this.#w[K]=this.#w[Y]}this.#W--,this.#k.push(Y)}}if(this.#B&&this.#O?.length){let Y=this.#O,$;while($=Y?.shift())this.#$?.(...$)}return X}clear(){return this.#g("delete")}#g(Z){for(let J of this.#I({allowStale:!0})){let X=this.#Q[J];if(this.#F(X))X.__abortController.abort(new Error("deleted"));else{let Y=this.#H[J];if(this.#M)this.#Y?.(X,Y,Z);if(this.#B)this.#O?.push([X,Y,Z])}}if(this.#z.clear(),this.#Q.fill(void 0),this.#H.fill(void 0),this.#R&&this.#N)this.#R.fill(0),this.#N.fill(0);if(this.#E)this.#E.fill(0);if(this.#L=0,this.#j=0,this.#k.length=0,this.#G=0,this.#W=0,this.#B&&this.#O){let J=this.#O,X;while(X=J?.shift())this.#$?.(...X)}}}import{posix as HV1,win32 as qP}from"path";import{fileURLToPath as qV1}from"url";import{lstatSync as FV1,readdir as UV1,readdirSync as LV1,readlinkSync as wV1,realpathSync as BV1}from"fs";import*as jV1 from"fs";import{lstat as MV1,readdir as RV1,readlink as NV1,realpath as PV1}from"fs/promises";import{EventEmitter as GP}from"events";import sd from"stream";import{StringDecoder as JV1}from"string_decoder";var pd=typeof process==="object"&&process?process:{stdout:null,stderr:null},XV1=(Z)=>!!Z&&typeof Z==="object"&&(Z instanceof sX||Z instanceof sd||YV1(Z)||$V1(Z)),YV1=(Z)=>!!Z&&typeof Z==="object"&&Z instanceof GP&&typeof Z.pipe==="function"&&Z.pipe!==sd.Writable.prototype.pipe,$V1=(Z)=>!!Z&&typeof Z==="object"&&Z instanceof GP&&typeof Z.write==="function"&&typeof Z.end==="function",$Z=Symbol("EOF"),QZ=Symbol("maybeEmitEnd"),WJ=Symbol("emittedEnd"),wU=Symbol("emittingEnd"),c3=Symbol("emittedError"),BU=Symbol("closed"),id=Symbol("read"),jU=Symbol("flush"),nd=Symbol("flushChunk"),K4=Symbol("encoding"),PQ=Symbol("decoder"),r8=Symbol("flowing"),l3=Symbol("paused"),DQ=Symbol("resume"),t8=Symbol("buffer"),u6=Symbol("pipes"),e8=Symbol("bufferLength"),YP=Symbol("bufferPush"),OU=Symbol("bufferShift"),P6=Symbol("objectMode"),O8=Symbol("destroyed"),$P=Symbol("error"),QP=Symbol("emitData"),ad=Symbol("emitEnd"),KP=Symbol("emitEnd2"),o4=Symbol("async"),WP=Symbol("abort"),MU=Symbol("aborted"),p3=Symbol("signal"),aX=Symbol("dataListeners"),d5=Symbol("discarded"),i3=(Z)=>Promise.resolve().then(Z),QV1=(Z)=>Z(),KV1=(Z)=>Z==="end"||Z==="finish"||Z==="prefinish",WV1=(Z)=>Z instanceof ArrayBuffer||!!Z&&typeof Z==="object"&&Z.constructor&&Z.constructor.name==="ArrayBuffer"&&Z.byteLength>=0,GV1=(Z)=>!Buffer.isBuffer(Z)&&ArrayBuffer.isView(Z);class zP{src;dest;opts;ondrain;constructor(Z,J,X){this.src=Z,this.dest=J,this.opts=X,this.ondrain=()=>Z[DQ](),this.dest.on("drain",this.ondrain)}unpipe(){this.dest.removeListener("drain",this.ondrain)}proxyErrors(Z){}end(){if(this.unpipe(),this.opts.end)this.dest.end()}}class od extends zP{unpipe(){this.src.removeListener("error",this.proxyErrors),super.unpipe()}constructor(Z,J,X){super(Z,J,X);this.proxyErrors=(Y)=>J.emit("error",Y),Z.on("error",this.proxyErrors)}}var zV1=(Z)=>!!Z.objectMode,VV1=(Z)=>!Z.objectMode&&!!Z.encoding&&Z.encoding!=="buffer";class sX extends GP{[r8]=!1;[l3]=!1;[u6]=[];[t8]=[];[P6];[K4];[o4];[PQ];[$Z]=!1;[WJ]=!1;[wU]=!1;[BU]=!1;[c3]=null;[e8]=0;[O8]=!1;[p3];[MU]=!1;[aX]=0;[d5]=!1;writable=!0;readable=!0;constructor(...Z){let J=Z[0]||{};super();if(J.objectMode&&typeof J.encoding==="string")throw new TypeError("Encoding and objectMode may not be used together");if(zV1(J))this[P6]=!0,this[K4]=null;else if(VV1(J))this[K4]=J.encoding,this[P6]=!1;else this[P6]=!1,this[K4]=null;if(this[o4]=!!J.async,this[PQ]=this[K4]?new JV1(this[K4]):null,J&&J.debugExposeBuffer===!0)Object.defineProperty(this,"buffer",{get:()=>this[t8]});if(J&&J.debugExposePipes===!0)Object.defineProperty(this,"pipes",{get:()=>this[u6]});let{signal:X}=J;if(X)if(this[p3]=X,X.aborted)this[WP]();else X.addEventListener("abort",()=>this[WP]())}get bufferLength(){return this[e8]}get encoding(){return this[K4]}set encoding(Z){throw new Error("Encoding must be set at instantiation time")}setEncoding(Z){throw new Error("Encoding must be set at instantiation time")}get objectMode(){return this[P6]}set objectMode(Z){throw new Error("objectMode must be set at instantiation time")}get["async"](){return this[o4]}set["async"](Z){this[o4]=this[o4]||!!Z}[WP](){this[MU]=!0,this.emit("abort",this[p3]?.reason),this.destroy(this[p3]?.reason)}get aborted(){return this[MU]}set aborted(Z){}write(Z,J,X){if(this[MU])return!1;if(this[$Z])throw new Error("write after end");if(this[O8])return this.emit("error",Object.assign(new Error("Cannot call write after a stream was destroyed"),{code:"ERR_STREAM_DESTROYED"})),!0;if(typeof J==="function")X=J,J="utf8";if(!J)J="utf8";let Y=this[o4]?i3:QV1;if(!this[P6]&&!Buffer.isBuffer(Z)){if(GV1(Z))Z=Buffer.from(Z.buffer,Z.byteOffset,Z.byteLength);else if(WV1(Z))Z=Buffer.from(Z);else if(typeof Z!=="string")throw new Error("Non-contiguous data written to non-objectMode stream")}if(this[P6]){if(this[r8]&&this[e8]!==0)this[jU](!0);if(this[r8])this.emit("data",Z);else this[YP](Z);if(this[e8]!==0)this.emit("readable");if(X)Y(X);return this[r8]}if(!Z.length){if(this[e8]!==0)this.emit("readable");if(X)Y(X);return this[r8]}if(typeof Z==="string"&&!(J===this[K4]&&!this[PQ]?.lastNeed))Z=Buffer.from(Z,J);if(Buffer.isBuffer(Z)&&this[K4])Z=this[PQ].write(Z);if(this[r8]&&this[e8]!==0)this[jU](!0);if(this[r8])this.emit("data",Z);else this[YP](Z);if(this[e8]!==0)this.emit("readable");if(X)Y(X);return this[r8]}read(Z){if(this[O8])return null;if(this[d5]=!1,this[e8]===0||Z===0||Z&&Z>this[e8])return this[QZ](),null;if(this[P6])Z=null;if(this[t8].length>1&&!this[P6])this[t8]=[this[K4]?this[t8].join(""):Buffer.concat(this[t8],this[e8])];let J=this[id](Z||null,this[t8][0]);return this[QZ](),J}[id](Z,J){if(this[P6])this[OU]();else{let X=J;if(Z===X.length||Z===null)this[OU]();else if(typeof X==="string")this[t8][0]=X.slice(Z),J=X.slice(0,Z),this[e8]-=Z;else this[t8][0]=X.subarray(Z),J=X.subarray(0,Z),this[e8]-=Z}if(this.emit("data",J),!this[t8].length&&!this[$Z])this.emit("drain");return J}end(Z,J,X){if(typeof Z==="function")X=Z,Z=void 0;if(typeof J==="function")X=J,J="utf8";if(Z!==void 0)this.write(Z,J);if(X)this.once("end",X);if(this[$Z]=!0,this.writable=!1,this[r8]||!this[l3])this[QZ]();return this}[DQ](){if(this[O8])return;if(!this[aX]&&!this[u6].length)this[d5]=!0;if(this[l3]=!1,this[r8]=!0,this.emit("resume"),this[t8].length)this[jU]();else if(this[$Z])this[QZ]();else this.emit("drain")}resume(){return this[DQ]()}pause(){this[r8]=!1,this[l3]=!0,this[d5]=!1}get destroyed(){return this[O8]}get flowing(){return this[r8]}get paused(){return this[l3]}[YP](Z){if(this[P6])this[e8]+=1;else this[e8]+=Z.length;this[t8].push(Z)}[OU](){if(this[P6])this[e8]-=1;else this[e8]-=this[t8][0].length;return this[t8].shift()}[jU](Z=!1){do;while(this[nd](this[OU]())&&this[t8].length);if(!Z&&!this[t8].length&&!this[$Z])this.emit("drain")}[nd](Z){return this.emit("data",Z),this[r8]}pipe(Z,J){if(this[O8])return Z;this[d5]=!1;let X=this[WJ];if(J=J||{},Z===pd.stdout||Z===pd.stderr)J.end=!1;else J.end=J.end!==!1;if(J.proxyErrors=!!J.proxyErrors,X){if(J.end)Z.end()}else if(this[u6].push(!J.proxyErrors?new zP(this,Z,J):new od(this,Z,J)),this[o4])i3(()=>this[DQ]());else this[DQ]();return Z}unpipe(Z){let J=this[u6].find((X)=>X.dest===Z);if(J){if(this[u6].length===1){if(this[r8]&&this[aX]===0)this[r8]=!1;this[u6]=[]}else this[u6].splice(this[u6].indexOf(J),1);J.unpipe()}}addListener(Z,J){return this.on(Z,J)}on(Z,J){let X=super.on(Z,J);if(Z==="data"){if(this[d5]=!1,this[aX]++,!this[u6].length&&!this[r8])this[DQ]()}else if(Z==="readable"&&this[e8]!==0)super.emit("readable");else if(KV1(Z)&&this[WJ])super.emit(Z),this.removeAllListeners(Z);else if(Z==="error"&&this[c3]){let Y=J;if(this[o4])i3(()=>Y.call(this,this[c3]));else Y.call(this,this[c3])}return X}removeListener(Z,J){return this.off(Z,J)}off(Z,J){let X=super.off(Z,J);if(Z==="data"){if(this[aX]=this.listeners("data").length,this[aX]===0&&!this[d5]&&!this[u6].length)this[r8]=!1}return X}removeAllListeners(Z){let J=super.removeAllListeners(Z);if(Z==="data"||Z===void 0){if(this[aX]=0,!this[d5]&&!this[u6].length)this[r8]=!1}return J}get emittedEnd(){return this[WJ]}[QZ](){if(!this[wU]&&!this[WJ]&&!this[O8]&&this[t8].length===0&&this[$Z]){if(this[wU]=!0,this.emit("end"),this.emit("prefinish"),this.emit("finish"),this[BU])this.emit("close");this[wU]=!1}}emit(Z,...J){let X=J[0];if(Z!=="error"&&Z!=="close"&&Z!==O8&&this[O8])return!1;else if(Z==="data")return!this[P6]&&!X?!1:this[o4]?(i3(()=>this[QP](X)),!0):this[QP](X);else if(Z==="end")return this[ad]();else if(Z==="close"){if(this[BU]=!0,!this[WJ]&&!this[O8])return!1;let $=super.emit("close");return this.removeAllListeners("close"),$}else if(Z==="error"){this[c3]=X,super.emit($P,X);let $=!this[p3]||this.listeners("error").length?super.emit("error",X):!1;return this[QZ](),$}else if(Z==="resume"){let $=super.emit("resume");return this[QZ](),$}else if(Z==="finish"||Z==="prefinish"){let $=super.emit(Z);return this.removeAllListeners(Z),$}let Y=super.emit(Z,...J);return this[QZ](),Y}[QP](Z){for(let X of this[u6])if(X.dest.write(Z)===!1)this.pause();let J=this[d5]?!1:super.emit("data",Z);return this[QZ](),J}[ad](){if(this[WJ])return!1;return this[WJ]=!0,this.readable=!1,this[o4]?(i3(()=>this[KP]()),!0):this[KP]()}[KP](){if(this[PQ]){let J=this[PQ].end();if(J){for(let X of this[u6])X.dest.write(J);if(!this[d5])super.emit("data",J)}}for(let J of this[u6])J.end();let Z=super.emit("end");return this.removeAllListeners("end"),Z}async collect(){let Z=Object.assign([],{dataLength:0});if(!this[P6])Z.dataLength=0;let J=this.promise();return this.on("data",(X)=>{if(Z.push(X),!this[P6])Z.dataLength+=X.length}),await J,Z}async concat(){if(this[P6])throw new Error("cannot concat in objectMode");let Z=await this.collect();return this[K4]?Z.join(""):Buffer.concat(Z,Z.dataLength)}async promise(){return new Promise((Z,J)=>{this.on(O8,()=>J(new Error("stream destroyed"))),this.on("error",(X)=>J(X)),this.on("end",()=>Z())})}[Symbol.asyncIterator](){this[d5]=!1;let Z=!1,J=async()=>{return this.pause(),Z=!0,{value:void 0,done:!0}};return{next:()=>{if(Z)return J();let Y=this.read();if(Y!==null)return Promise.resolve({done:!1,value:Y});if(this[$Z])return J();let $,Q,K=(V)=>{this.off("data",W),this.off("end",G),this.off(O8,z),J(),Q(V)},W=(V)=>{this.off("error",K),this.off("end",G),this.off(O8,z),this.pause(),$({value:V,done:!!this[$Z]})},G=()=>{this.off("error",K),this.off("data",W),this.off(O8,z),J(),$({done:!0,value:void 0})},z=()=>K(new Error("stream destroyed"));return new Promise((V,H)=>{Q=H,$=V,this.once(O8,z),this.once("error",K),this.once("end",G),this.once("data",W)})},throw:J,return:J,[Symbol.asyncIterator](){return this}}}[Symbol.iterator](){this[d5]=!1;let Z=!1,J=()=>{return this.pause(),this.off($P,J),this.off(O8,J),this.off("end",J),Z=!0,{done:!0,value:void 0}},X=()=>{if(Z)return J();let Y=this.read();return Y===null?J():{done:!1,value:Y}};return this.once("end",J),this.once($P,J),this.once(O8,J),{next:X,throw:J,return:J,[Symbol.iterator](){return this}}}destroy(Z){if(this[O8]){if(Z)this.emit("error",Z);else this.emit(O8);return this}this[O8]=!0,this[d5]=!0,this[t8].length=0,this[e8]=0;let J=this;if(typeof J.close==="function"&&!this[BU])J.close();if(Z)this.emit("error",Z);else this.emit(O8);return this}static get isStream(){return XV1}}var OV1=BV1.native,a3={lstatSync:FV1,readdir:UV1,readdirSync:LV1,readlinkSync:wV1,realpathSync:OV1,promises:{lstat:MV1,readdir:RV1,readlink:NV1,realpath:PV1}},Jc=(Z)=>!Z||Z===a3||Z===jV1?a3:{...a3,...Z,promises:{...a3.promises,...Z.promises||{}}},Xc=/^\\\\\?\\([a-z]:)\\?$/i,DV1=(Z)=>Z.replace(/\//g,"\\").replace(Xc,"$1\\"),CV1=/[\\\/]/,j9=0,Yc=1,$c=2,r4=4,Qc=6,Kc=8,oX=10,Wc=12,B9=15,n3=~B9,VP=16,rd=32,s3=64,W4=128,RU=256,PU=512,td=s3|W4|PU,TV1=1023,HP=(Z)=>Z.isFile()?Kc:Z.isDirectory()?r4:Z.isSymbolicLink()?oX:Z.isCharacterDevice()?$c:Z.isBlockDevice()?Qc:Z.isSocket()?Wc:Z.isFIFO()?Yc:j9,ed=new Map,o3=(Z)=>{let J=ed.get(Z);if(J)return J;let X=Z.normalize("NFKD");return ed.set(Z,X),X},Zc=new Map,NU=(Z)=>{let J=Zc.get(Z);if(J)return J;let X=o3(Z.toLowerCase());return Zc.set(Z,X),X};class FP extends d3{constructor(){super({max:256})}}class Gc extends d3{constructor(Z=16384){super({maxSize:Z,sizeCalculation:(J)=>J.length+1})}}var zc=Symbol("PathScurry setAsCwd");class d6{name;root;roots;parent;nocase;isCWD=!1;#Z;#J;get dev(){return this.#J}#Y;get mode(){return this.#Y}#X;get nlink(){return this.#X}#$;get uid(){return this.#$}#V;get gid(){return this.#V}#q;get rdev(){return this.#q}#W;get blksize(){return this.#W}#G;get ino(){return this.#G}#z;get size(){return this.#z}#H;get blocks(){return this.#H}#Q;get atimeMs(){return this.#Q}#U;get mtimeMs(){return this.#U}#w;get ctimeMs(){return this.#w}#L;get birthtimeMs(){return this.#L}#j;get atime(){return this.#j}#k;get mtime(){return this.#k}#O;get ctime(){return this.#O}#E;get birthtime(){return this.#E}#N;#R;#M;#C;#B;#v;#K;#A;#P;#S;get parentPath(){return(this.parent||this).fullpath()}get path(){return this.parentPath}constructor(Z,J=j9,X,Y,$,Q,K){if(this.name=Z,this.#N=$?NU(Z):o3(Z),this.#K=J&TV1,this.nocase=$,this.roots=Y,this.root=X||this,this.#A=Q,this.#M=K.fullpath,this.#B=K.relative,this.#v=K.relativePosix,this.parent=K.parent,this.parent)this.#Z=this.parent.#Z;else this.#Z=Jc(K.fs)}depth(){if(this.#R!==void 0)return this.#R;if(!this.parent)return this.#R=0;return this.#R=this.parent.depth()+1}childrenCache(){return this.#A}resolve(Z){if(!Z)return this;let J=this.getRootString(Z),Y=Z.substring(J.length).split(this.splitSep);return J?this.getRoot(J).#D(Y):this.#D(Y)}#D(Z){let J=this;for(let X of Z)J=J.child(X);return J}children(){let Z=this.#A.get(this);if(Z)return Z;let J=Object.assign([],{provisional:0});return this.#A.set(this,J),this.#K&=~VP,J}child(Z,J){if(Z===""||Z===".")return this;if(Z==="..")return this.parent||this;let X=this.children(),Y=this.nocase?NU(Z):o3(Z);for(let W of X)if(W.#N===Y)return W;let $=this.parent?this.sep:"",Q=this.#M?this.#M+$+Z:void 0,K=this.newChild(Z,j9,{...J,parent:this,fullpath:Q});if(!this.canReaddir())K.#K|=W4;return X.push(K),K}relative(){if(this.isCWD)return"";if(this.#B!==void 0)return this.#B;let Z=this.name,J=this.parent;if(!J)return this.#B=this.name;let X=J.relative();return X+(!X||!J.parent?"":this.sep)+Z}relativePosix(){if(this.sep==="/")return this.relative();if(this.isCWD)return"";if(this.#v!==void 0)return this.#v;let Z=this.name,J=this.parent;if(!J)return this.#v=this.fullpathPosix();let X=J.relativePosix();return X+(!X||!J.parent?"":"/")+Z}fullpath(){if(this.#M!==void 0)return this.#M;let Z=this.name,J=this.parent;if(!J)return this.#M=this.name;let Y=J.fullpath()+(!J.parent?"":this.sep)+Z;return this.#M=Y}fullpathPosix(){if(this.#C!==void 0)return this.#C;if(this.sep==="/")return this.#C=this.fullpath();if(!this.parent){let Y=this.fullpath().replace(/\\/g,"/");if(/^[a-z]:\//i.test(Y))return this.#C=`//?/${Y}`;else return this.#C=Y}let Z=this.parent,J=Z.fullpathPosix(),X=J+(!J||!Z.parent?"":"/")+this.name;return this.#C=X}isUnknown(){return(this.#K&B9)===j9}isType(Z){return this[`is${Z}`]()}getType(){return this.isUnknown()?"Unknown":this.isDirectory()?"Directory":this.isFile()?"File":this.isSymbolicLink()?"SymbolicLink":this.isFIFO()?"FIFO":this.isCharacterDevice()?"CharacterDevice":this.isBlockDevice()?"BlockDevice":this.isSocket()?"Socket":"Unknown"}isFile(){return(this.#K&B9)===Kc}isDirectory(){return(this.#K&B9)===r4}isCharacterDevice(){return(this.#K&B9)===$c}isBlockDevice(){return(this.#K&B9)===Qc}isFIFO(){return(this.#K&B9)===Yc}isSocket(){return(this.#K&B9)===Wc}isSymbolicLink(){return(this.#K&oX)===oX}lstatCached(){return this.#K&rd?this:void 0}readlinkCached(){return this.#P}realpathCached(){return this.#S}readdirCached(){let Z=this.children();return Z.slice(0,Z.provisional)}canReadlink(){if(this.#P)return!0;if(!this.parent)return!1;let Z=this.#K&B9;return!(Z!==j9&&Z!==oX||this.#K&RU||this.#K&W4)}calledReaddir(){return!!(this.#K&VP)}isENOENT(){return!!(this.#K&W4)}isNamed(Z){return!this.nocase?this.#N===o3(Z):this.#N===NU(Z)}async readlink(){let Z=this.#P;if(Z)return Z;if(!this.canReadlink())return;if(!this.parent)return;try{let J=await this.#Z.promises.readlink(this.fullpath()),X=(await this.parent.realpath())?.resolve(J);if(X)return this.#P=X}catch(J){this.#b(J.code);return}}readlinkSync(){let Z=this.#P;if(Z)return Z;if(!this.canReadlink())return;if(!this.parent)return;try{let J=this.#Z.readlinkSync(this.fullpath()),X=this.parent.realpathSync()?.resolve(J);if(X)return this.#P=X}catch(J){this.#b(J.code);return}}#m(Z){this.#K|=VP;for(let J=Z.provisional;J<Z.length;J++){let X=Z[J];if(X)X.#x()}}#x(){if(this.#K&W4)return;this.#K=(this.#K|W4)&n3,this.#f()}#f(){let Z=this.children();Z.provisional=0;for(let J of Z)J.#x()}#u(){this.#K|=PU,this.#T()}#T(){if(this.#K&s3)return;let Z=this.#K;if((Z&B9)===r4)Z&=n3;this.#K=Z|s3,this.#f()}#I(Z=""){if(Z==="ENOTDIR"||Z==="EPERM")this.#T();else if(Z==="ENOENT")this.#x();else this.children().provisional=0}#d(Z=""){if(Z==="ENOTDIR")this.parent.#T();else if(Z==="ENOENT")this.#x()}#b(Z=""){let J=this.#K;if(J|=RU,Z==="ENOENT")J|=W4;if(Z==="EINVAL"||Z==="UNKNOWN")J&=n3;if(this.#K=J,Z==="ENOTDIR"&&this.parent)this.parent.#T()}#h(Z,J){return this.#c(Z,J)||this.#F(Z,J)}#F(Z,J){let X=HP(Z),Y=this.newChild(Z.name,X,{parent:this}),$=Y.#K&B9;if($!==r4&&$!==oX&&$!==j9)Y.#K|=s3;return J.unshift(Y),J.provisional++,Y}#c(Z,J){for(let X=J.provisional;X<J.length;X++){let Y=J[X];if((this.nocase?NU(Z.name):o3(Z.name))!==Y.#N)continue;return this.#y(Z,Y,X,J)}}#y(Z,J,X,Y){let $=J.name;if(J.#K=J.#K&n3|HP(Z),$!==Z.name)J.name=Z.name;if(X!==Y.provisional){if(X===Y.length-1)Y.pop();else Y.splice(X,1);Y.unshift(J)}return Y.provisional++,J}async lstat(){if((this.#K&W4)===0)try{return this.#_(await this.#Z.promises.lstat(this.fullpath())),this}catch(Z){this.#d(Z.code)}}lstatSync(){if((this.#K&W4)===0)try{return this.#_(this.#Z.lstatSync(this.fullpath())),this}catch(Z){this.#d(Z.code)}}#_(Z){let{atime:J,atimeMs:X,birthtime:Y,birthtimeMs:$,blksize:Q,blocks:K,ctime:W,ctimeMs:G,dev:z,gid:V,ino:H,mode:q,mtime:F,mtimeMs:U,nlink:w,rdev:L,size:j,uid:R}=Z;this.#j=J,this.#Q=X,this.#E=Y,this.#L=$,this.#W=Q,this.#H=K,this.#O=W,this.#w=G,this.#J=z,this.#V=V,this.#G=H,this.#Y=q,this.#k=F,this.#U=U,this.#X=w,this.#q=L,this.#z=j,this.#$=R;let O=HP(Z);if(this.#K=this.#K&n3|O|rd,O!==j9&&O!==r4&&O!==oX)this.#K|=s3}#g=[];#p=!1;#i(Z){this.#p=!1;let J=this.#g.slice();this.#g.length=0,J.forEach((X)=>X(null,Z))}readdirCB(Z,J=!1){if(!this.canReaddir()){if(J)Z(null,[]);else queueMicrotask(()=>Z(null,[]));return}let X=this.children();if(this.calledReaddir()){let $=X.slice(0,X.provisional);if(J)Z(null,$);else queueMicrotask(()=>Z(null,$));return}if(this.#g.push(Z),this.#p)return;this.#p=!0;let Y=this.fullpath();this.#Z.readdir(Y,{withFileTypes:!0},($,Q)=>{if($)this.#I($.code),X.provisional=0;else{for(let K of Q)this.#h(K,X);this.#m(X)}this.#i(X.slice(0,X.provisional));return})}#l;async readdir(){if(!this.canReaddir())return[];let Z=this.children();if(this.calledReaddir())return Z.slice(0,Z.provisional);let J=this.fullpath();if(this.#l)await this.#l;else{let X=()=>{};this.#l=new Promise((Y)=>X=Y);try{for(let Y of await this.#Z.promises.readdir(J,{withFileTypes:!0}))this.#h(Y,Z);this.#m(Z)}catch(Y){this.#I(Y.code),Z.provisional=0}this.#l=void 0,X()}return Z.slice(0,Z.provisional)}readdirSync(){if(!this.canReaddir())return[];let Z=this.children();if(this.calledReaddir())return Z.slice(0,Z.provisional);let J=this.fullpath();try{for(let X of this.#Z.readdirSync(J,{withFileTypes:!0}))this.#h(X,Z);this.#m(Z)}catch(X){this.#I(X.code),Z.provisional=0}return Z.slice(0,Z.provisional)}canReaddir(){if(this.#K&td)return!1;let Z=B9&this.#K;if(!(Z===j9||Z===r4||Z===oX))return!1;return!0}shouldWalk(Z,J){return(this.#K&r4)===r4&&!(this.#K&td)&&!Z.has(this)&&(!J||J(this))}async realpath(){if(this.#S)return this.#S;if((PU|RU|W4)&this.#K)return;try{let Z=await this.#Z.promises.realpath(this.fullpath());return this.#S=this.resolve(Z)}catch(Z){this.#u()}}realpathSync(){if(this.#S)return this.#S;if((PU|RU|W4)&this.#K)return;try{let Z=this.#Z.realpathSync(this.fullpath());return this.#S=this.resolve(Z)}catch(Z){this.#u()}}[zc](Z){if(Z===this)return;Z.isCWD=!1,this.isCWD=!0;let J=new Set([]),X=[],Y=this;while(Y&&Y.parent)J.add(Y),Y.#B=X.join(this.sep),Y.#v=X.join("/"),Y=Y.parent,X.push("..");Y=Z;while(Y&&Y.parent&&!J.has(Y))Y.#B=void 0,Y.#v=void 0,Y=Y.parent}}class DU extends d6{sep="\\";splitSep=CV1;constructor(Z,J=j9,X,Y,$,Q,K){super(Z,J,X,Y,$,Q,K)}newChild(Z,J=j9,X={}){return new DU(Z,J,this.root,this.roots,this.nocase,this.childrenCache(),X)}getRootString(Z){return qP.parse(Z).root}getRoot(Z){if(Z=DV1(Z.toUpperCase()),Z===this.root.name)return this.root;for(let[J,X]of Object.entries(this.roots))if(this.sameRoot(Z,J))return this.roots[Z]=X;return this.roots[Z]=new r3(Z,this).root}sameRoot(Z,J=this.root.name){return Z=Z.toUpperCase().replace(/\//g,"\\").replace(Xc,"$1\\"),Z===J}}class CU extends d6{splitSep="/";sep="/";constructor(Z,J=j9,X,Y,$,Q,K){super(Z,J,X,Y,$,Q,K)}getRootString(Z){return Z.startsWith("/")?"/":""}getRoot(Z){return this.root}newChild(Z,J=j9,X={}){return new CU(Z,J,this.root,this.roots,this.nocase,this.childrenCache(),X)}}class UP{root;rootPath;roots;cwd;#Z;#J;#Y;nocase;#X;constructor(Z=process.cwd(),J,X,{nocase:Y,childrenCacheSize:$=16384,fs:Q=a3}={}){if(this.#X=Jc(Q),Z instanceof URL||Z.startsWith("file://"))Z=qV1(Z);let K=J.resolve(Z);this.roots=Object.create(null),this.rootPath=this.parseRootPath(K),this.#Z=new FP,this.#J=new FP,this.#Y=new Gc($);let W=K.substring(this.rootPath.length).split(X);if(W.length===1&&!W[0])W.pop();if(Y===void 0)throw new TypeError("must provide nocase setting to PathScurryBase ctor");this.nocase=Y,this.root=this.newRoot(this.#X),this.roots[this.rootPath]=this.root;let G=this.root,z=W.length-1,V=J.sep,H=this.rootPath,q=!1;for(let F of W){let U=z--;G=G.child(F,{relative:new Array(U).fill("..").join(V),relativePosix:new Array(U).fill("..").join("/"),fullpath:H+=(q?"":V)+F}),q=!0}this.cwd=G}depth(Z=this.cwd){if(typeof Z==="string")Z=this.cwd.resolve(Z);return Z.depth()}childrenCache(){return this.#Y}resolve(...Z){let J="";for(let $=Z.length-1;$>=0;$--){let Q=Z[$];if(!Q||Q===".")continue;if(J=J?`${Q}/${J}`:Q,this.isAbsolute(Q))break}let X=this.#Z.get(J);if(X!==void 0)return X;let Y=this.cwd.resolve(J).fullpath();return this.#Z.set(J,Y),Y}resolvePosix(...Z){let J="";for(let $=Z.length-1;$>=0;$--){let Q=Z[$];if(!Q||Q===".")continue;if(J=J?`${Q}/${J}`:Q,this.isAbsolute(Q))break}let X=this.#J.get(J);if(X!==void 0)return X;let Y=this.cwd.resolve(J).fullpathPosix();return this.#J.set(J,Y),Y}relative(Z=this.cwd){if(typeof Z==="string")Z=this.cwd.resolve(Z);return Z.relative()}relativePosix(Z=this.cwd){if(typeof Z==="string")Z=this.cwd.resolve(Z);return Z.relativePosix()}basename(Z=this.cwd){if(typeof Z==="string")Z=this.cwd.resolve(Z);return Z.name}dirname(Z=this.cwd){if(typeof Z==="string")Z=this.cwd.resolve(Z);return(Z.parent||Z).fullpath()}async readdir(Z=this.cwd,J={withFileTypes:!0}){if(typeof Z==="string")Z=this.cwd.resolve(Z);else if(!(Z instanceof d6))J=Z,Z=this.cwd;let{withFileTypes:X}=J;if(!Z.canReaddir())return[];else{let Y=await Z.readdir();return X?Y:Y.map(($)=>$.name)}}readdirSync(Z=this.cwd,J={withFileTypes:!0}){if(typeof Z==="string")Z=this.cwd.resolve(Z);else if(!(Z instanceof d6))J=Z,Z=this.cwd;let{withFileTypes:X=!0}=J;if(!Z.canReaddir())return[];else if(X)return Z.readdirSync();else return Z.readdirSync().map((Y)=>Y.name)}async lstat(Z=this.cwd){if(typeof Z==="string")Z=this.cwd.resolve(Z);return Z.lstat()}lstatSync(Z=this.cwd){if(typeof Z==="string")Z=this.cwd.resolve(Z);return Z.lstatSync()}async readlink(Z=this.cwd,{withFileTypes:J}={withFileTypes:!1}){if(typeof Z==="string")Z=this.cwd.resolve(Z);else if(!(Z instanceof d6))J=Z.withFileTypes,Z=this.cwd;let X=await Z.readlink();return J?X:X?.fullpath()}readlinkSync(Z=this.cwd,{withFileTypes:J}={withFileTypes:!1}){if(typeof Z==="string")Z=this.cwd.resolve(Z);else if(!(Z instanceof d6))J=Z.withFileTypes,Z=this.cwd;let X=Z.readlinkSync();return J?X:X?.fullpath()}async realpath(Z=this.cwd,{withFileTypes:J}={withFileTypes:!1}){if(typeof Z==="string")Z=this.cwd.resolve(Z);else if(!(Z instanceof d6))J=Z.withFileTypes,Z=this.cwd;let X=await Z.realpath();return J?X:X?.fullpath()}realpathSync(Z=this.cwd,{withFileTypes:J}={withFileTypes:!1}){if(typeof Z==="string")Z=this.cwd.resolve(Z);else if(!(Z instanceof d6))J=Z.withFileTypes,Z=this.cwd;let X=Z.realpathSync();return J?X:X?.fullpath()}async walk(Z=this.cwd,J={}){if(typeof Z==="string")Z=this.cwd.resolve(Z);else if(!(Z instanceof d6))J=Z,Z=this.cwd;let{withFileTypes:X=!0,follow:Y=!1,filter:$,walkFilter:Q}=J,K=[];if(!$||$(Z))K.push(X?Z:Z.fullpath());let W=new Set,G=(V,H)=>{W.add(V),V.readdirCB((q,F)=>{if(q)return H(q);let U=F.length;if(!U)return H();let w=()=>{if(--U===0)H()};for(let L of F){if(!$||$(L))K.push(X?L:L.fullpath());if(Y&&L.isSymbolicLink())L.realpath().then((j)=>j?.isUnknown()?j.lstat():j).then((j)=>j?.shouldWalk(W,Q)?G(j,w):w());else if(L.shouldWalk(W,Q))G(L,w);else w()}},!0)},z=Z;return new Promise((V,H)=>{G(z,(q)=>{if(q)return H(q);V(K)})})}walkSync(Z=this.cwd,J={}){if(typeof Z==="string")Z=this.cwd.resolve(Z);else if(!(Z instanceof d6))J=Z,Z=this.cwd;let{withFileTypes:X=!0,follow:Y=!1,filter:$,walkFilter:Q}=J,K=[];if(!$||$(Z))K.push(X?Z:Z.fullpath());let W=new Set([Z]);for(let G of W){let z=G.readdirSync();for(let V of z){if(!$||$(V))K.push(X?V:V.fullpath());let H=V;if(V.isSymbolicLink()){if(!(Y&&(H=V.realpathSync())))continue;if(H.isUnknown())H.lstatSync()}if(H.shouldWalk(W,Q))W.add(H)}}return K}[Symbol.asyncIterator](){return this.iterate()}iterate(Z=this.cwd,J={}){if(typeof Z==="string")Z=this.cwd.resolve(Z);else if(!(Z instanceof d6))J=Z,Z=this.cwd;return this.stream(Z,J)[Symbol.asyncIterator]()}[Symbol.iterator](){return this.iterateSync()}*iterateSync(Z=this.cwd,J={}){if(typeof Z==="string")Z=this.cwd.resolve(Z);else if(!(Z instanceof d6))J=Z,Z=this.cwd;let{withFileTypes:X=!0,follow:Y=!1,filter:$,walkFilter:Q}=J;if(!$||$(Z))yield X?Z:Z.fullpath();let K=new Set([Z]);for(let W of K){let G=W.readdirSync();for(let z of G){if(!$||$(z))yield X?z:z.fullpath();let V=z;if(z.isSymbolicLink()){if(!(Y&&(V=z.realpathSync())))continue;if(V.isUnknown())V.lstatSync()}if(V.shouldWalk(K,Q))K.add(V)}}}stream(Z=this.cwd,J={}){if(typeof Z==="string")Z=this.cwd.resolve(Z);else if(!(Z instanceof d6))J=Z,Z=this.cwd;let{withFileTypes:X=!0,follow:Y=!1,filter:$,walkFilter:Q}=J,K=new sX({objectMode:!0});if(!$||$(Z))K.write(X?Z:Z.fullpath());let W=new Set,G=[Z],z=0,V=()=>{let H=!1;while(!H){let q=G.shift();if(!q){if(z===0)K.end();return}z++,W.add(q);let F=(w,L,j=!1)=>{if(w)return K.emit("error",w);if(Y&&!j){let R=[];for(let O of L)if(O.isSymbolicLink())R.push(O.realpath().then((N)=>N?.isUnknown()?N.lstat():N));if(R.length){Promise.all(R).then(()=>F(null,L,!0));return}}for(let R of L)if(R&&(!$||$(R))){if(!K.write(X?R:R.fullpath()))H=!0}z--;for(let R of L){let O=R.realpathCached()||R;if(O.shouldWalk(W,Q))G.push(O)}if(H&&!K.flowing)K.once("drain",V);else if(!U)V()},U=!0;q.readdirCB(F,!0),U=!1}};return V(),K}streamSync(Z=this.cwd,J={}){if(typeof Z==="string")Z=this.cwd.resolve(Z);else if(!(Z instanceof d6))J=Z,Z=this.cwd;let{withFileTypes:X=!0,follow:Y=!1,filter:$,walkFilter:Q}=J,K=new sX({objectMode:!0}),W=new Set;if(!$||$(Z))K.write(X?Z:Z.fullpath());let G=[Z],z=0,V=()=>{let H=!1;while(!H){let q=G.shift();if(!q){if(z===0)K.end();return}z++,W.add(q);let F=q.readdirSync();for(let U of F)if(!$||$(U)){if(!K.write(X?U:U.fullpath()))H=!0}z--;for(let U of F){let w=U;if(U.isSymbolicLink()){if(!(Y&&(w=U.realpathSync())))continue;if(w.isUnknown())w.lstatSync()}if(w.shouldWalk(W,Q))G.push(w)}}if(H&&!K.flowing)K.once("drain",V)};return V(),K}chdir(Z=this.cwd){let J=this.cwd;this.cwd=typeof Z==="string"?this.cwd.resolve(Z):Z,this.cwd[zc](J)}}class r3 extends UP{sep="\\";constructor(Z=process.cwd(),J={}){let{nocase:X=!0}=J;super(Z,qP,"\\",{...J,nocase:X});this.nocase=X;for(let Y=this.cwd;Y;Y=Y.parent)Y.nocase=this.nocase}parseRootPath(Z){return qP.parse(Z).root.toUpperCase()}newRoot(Z){return new DU(this.rootPath,r4,void 0,this.roots,this.nocase,this.childrenCache(),{fs:Z})}isAbsolute(Z){return Z.startsWith("/")||Z.startsWith("\\")||/^[a-z]:(\/|\\)/i.test(Z)}}class t3 extends UP{sep="/";constructor(Z=process.cwd(),J={}){let{nocase:X=!1}=J;super(Z,HV1,"/",{...J,nocase:X});this.nocase=X}parseRootPath(Z){return"/"}newRoot(Z){return new CU(this.rootPath,r4,void 0,this.roots,this.nocase,this.childrenCache(),{fs:Z})}isAbsolute(Z){return Z.startsWith("/")}}class TU extends t3{constructor(Z=process.cwd(),J={}){let{nocase:X=!0}=J;super(Z,{...J,nocase:X})}}var WG6=process.platform==="win32"?DU:CU,Vc=process.platform==="win32"?r3:process.platform==="darwin"?TU:t3;var kV1=(Z)=>Z.length>=1,EV1=(Z)=>Z.length>=1;class CQ{#Z;#J;#Y;length;#X;#$;#V;#q;#W;#G;#z=!0;constructor(Z,J,X,Y){if(!kV1(Z))throw new TypeError("empty pattern list");if(!EV1(J))throw new TypeError("empty glob list");if(J.length!==Z.length)throw new TypeError("mismatched pattern list and glob list lengths");if(this.length=Z.length,X<0||X>=this.length)throw new TypeError("index out of range");if(this.#Z=Z,this.#J=J,this.#Y=X,this.#X=Y,this.#Y===0){if(this.isUNC()){let[$,Q,K,W,...G]=this.#Z,[z,V,H,q,...F]=this.#J;if(G[0]==="")G.shift(),F.shift();let U=[$,Q,K,W,""].join("/"),w=[z,V,H,q,""].join("/");this.#Z=[U,...G],this.#J=[w,...F],this.length=this.#Z.length}else if(this.isDrive()||this.isAbsolute()){let[$,...Q]=this.#Z,[K,...W]=this.#J;if(Q[0]==="")Q.shift(),W.shift();let G=$+"/",z=K+"/";this.#Z=[G,...Q],this.#J=[z,...W],this.length=this.#Z.length}}}pattern(){return this.#Z[this.#Y]}isString(){return typeof this.#Z[this.#Y]==="string"}isGlobstar(){return this.#Z[this.#Y]===U6}isRegExp(){return this.#Z[this.#Y]instanceof RegExp}globString(){return this.#V=this.#V||(this.#Y===0?this.isAbsolute()?this.#J[0]+this.#J.slice(1).join("/"):this.#J.join("/"):this.#J.slice(this.#Y).join("/"))}hasMore(){return this.length>this.#Y+1}rest(){if(this.#$!==void 0)return this.#$;if(!this.hasMore())return this.#$=null;return this.#$=new CQ(this.#Z,this.#J,this.#Y+1,this.#X),this.#$.#G=this.#G,this.#$.#W=this.#W,this.#$.#q=this.#q,this.#$}isUNC(){let Z=this.#Z;return this.#W!==void 0?this.#W:this.#W=this.#X==="win32"&&this.#Y===0&&Z[0]===""&&Z[1]===""&&typeof Z[2]==="string"&&!!Z[2]&&typeof Z[3]==="string"&&!!Z[3]}isDrive(){let Z=this.#Z;return this.#q!==void 0?this.#q:this.#q=this.#X==="win32"&&this.#Y===0&&this.length>1&&typeof Z[0]==="string"&&/^[a-z]:$/i.test(Z[0])}isAbsolute(){let Z=this.#Z;return this.#G!==void 0?this.#G:this.#G=Z[0]===""&&Z.length>1||this.isDrive()||this.isUNC()}root(){let Z=this.#Z[0];return typeof Z==="string"&&this.isAbsolute()&&this.#Y===0?Z:""}checkFollowGlobstar(){return!(this.#Y===0||!this.isGlobstar()||!this.#z)}markFollowGlobstar(){if(this.#Y===0||!this.isGlobstar()||!this.#z)return!1;return this.#z=!1,!0}}var IV1=typeof process==="object"&&process&&typeof process.platform==="string"?process.platform:"linux";class e3{relative;relativeChildren;absolute;absoluteChildren;platform;mmopts;constructor(Z,{nobrace:J,nocase:X,noext:Y,noglobstar:$,platform:Q=IV1}){this.relative=[],this.absolute=[],this.relativeChildren=[],this.absoluteChildren=[],this.platform=Q,this.mmopts={dot:!0,nobrace:J,nocase:X,noext:Y,noglobstar:$,optimizationLevel:2,platform:Q,nocomment:!0,nonegate:!0};for(let K of Z)this.add(K)}add(Z){let J=new w9(Z,this.mmopts);for(let X=0;X<J.set.length;X++){let Y=J.set[X],$=J.globParts[X];if(!Y||!$)throw new Error("invalid pattern object");while(Y[0]==="."&&$[0]===".")Y.shift(),$.shift();let Q=new CQ(Y,$,0,this.platform),K=new w9(Q.globString(),this.mmopts),W=$[$.length-1]==="**",G=Q.isAbsolute();if(G)this.absolute.push(K);else this.relative.push(K);if(W)if(G)this.absoluteChildren.push(K);else this.relativeChildren.push(K)}}ignored(Z){let J=Z.fullpath(),X=`${J}/`,Y=Z.relative()||".",$=`${Y}/`;for(let Q of this.relative)if(Q.match(Y)||Q.match($))return!0;for(let Q of this.absolute)if(Q.match(J)||Q.match(X))return!0;return!1}childrenIgnored(Z){let J=Z.fullpath()+"/",X=(Z.relative()||".")+"/";for(let Y of this.relativeChildren)if(Y.match(X))return!0;for(let Y of this.absoluteChildren)if(Y.match(J))return!0;return!1}}class LP{store;constructor(Z=new Map){this.store=Z}copy(){return new LP(new Map(this.store))}hasWalked(Z,J){return this.store.get(Z.fullpath())?.has(J.globString())}storeWalked(Z,J){let X=Z.fullpath(),Y=this.store.get(X);if(Y)Y.add(J.globString());else this.store.set(X,new Set([J.globString()]))}}class Hc{store=new Map;add(Z,J,X){let Y=(J?2:0)|(X?1:0),$=this.store.get(Z);this.store.set(Z,$===void 0?Y:Y&$)}entries(){return[...this.store.entries()].map(([Z,J])=>[Z,!!(J&2),!!(J&1)])}}class qc{store=new Map;add(Z,J){if(!Z.canReaddir())return;let X=this.store.get(Z);if(X){if(!X.find((Y)=>Y.globString()===J.globString()))X.push(J)}else this.store.set(Z,[J])}get(Z){let J=this.store.get(Z);if(!J)throw new Error("attempting to walk unknown path");return J}entries(){return this.keys().map((Z)=>[Z,this.store.get(Z)])}keys(){return[...this.store.keys()].filter((Z)=>Z.canReaddir())}}class ZG{hasWalkedCache;matches=new Hc;subwalks=new qc;patterns;follow;dot;opts;constructor(Z,J){this.opts=Z,this.follow=!!Z.follow,this.dot=!!Z.dot,this.hasWalkedCache=J?J.copy():new LP}processPatterns(Z,J){this.patterns=J;let X=J.map((Y)=>[Z,Y]);for(let[Y,$]of X){this.hasWalkedCache.storeWalked(Y,$);let Q=$.root(),K=$.isAbsolute()&&this.opts.absolute!==!1;if(Q){Y=Y.resolve(Q==="/"&&this.opts.root!==void 0?this.opts.root:Q);let V=$.rest();if(!V){this.matches.add(Y,!0,!1);continue}else $=V}if(Y.isENOENT())continue;let W,G,z=!1;while(typeof(W=$.pattern())==="string"&&(G=$.rest()))Y=Y.resolve(W),$=G,z=!0;if(W=$.pattern(),G=$.rest(),z){if(this.hasWalkedCache.hasWalked(Y,$))continue;this.hasWalkedCache.storeWalked(Y,$)}if(typeof W==="string"){let V=W===".."||W===""||W===".";this.matches.add(Y.resolve(W),K,V);continue}else if(W===U6){if(!Y.isSymbolicLink()||this.follow||$.checkFollowGlobstar())this.subwalks.add(Y,$);let V=G?.pattern(),H=G?.rest();if(!G||(V===""||V===".")&&!H)this.matches.add(Y,K,V===""||V===".");else if(V===".."){let q=Y.parent||Y;if(!H)this.matches.add(q,K,!0);else if(!this.hasWalkedCache.hasWalked(q,H))this.subwalks.add(q,H)}}else if(W instanceof RegExp)this.subwalks.add(Y,$)}return this}subwalkTargets(){return this.subwalks.keys()}child(){return new ZG(this.opts,this.hasWalkedCache)}filterEntries(Z,J){let X=this.subwalks.get(Z),Y=this.child();for(let $ of J)for(let Q of X){let K=Q.isAbsolute(),W=Q.pattern(),G=Q.rest();if(W===U6)Y.testGlobstar($,Q,G,K);else if(W instanceof RegExp)Y.testRegExp($,W,G,K);else Y.testString($,W,G,K)}return Y}testGlobstar(Z,J,X,Y){if(this.dot||!Z.name.startsWith(".")){if(!J.hasMore())this.matches.add(Z,Y,!1);if(Z.canReaddir()){if(this.follow||!Z.isSymbolicLink())this.subwalks.add(Z,J);else if(Z.isSymbolicLink()){if(X&&J.checkFollowGlobstar())this.subwalks.add(Z,X);else if(J.markFollowGlobstar())this.subwalks.add(Z,J)}}}if(X){let $=X.pattern();if(typeof $==="string"&&$!==".."&&$!==""&&$!==".")this.testString(Z,$,X.rest(),Y);else if($===".."){let Q=Z.parent||Z;this.subwalks.add(Q,X)}else if($ instanceof RegExp)this.testRegExp(Z,$,X.rest(),Y)}}testRegExp(Z,J,X,Y){if(!J.test(Z.name))return;if(!X)this.matches.add(Z,Y,!1);else this.subwalks.add(Z,X)}testString(Z,J,X,Y){if(!Z.isNamed(J))return;if(!X)this.matches.add(Z,Y,!1);else this.subwalks.add(Z,X)}}var vV1=(Z,J)=>typeof Z==="string"?new e3([Z],J):Array.isArray(Z)?new e3(Z,J):Z;class wP{path;patterns;opts;seen=new Set;paused=!1;aborted=!1;#Z=[];#J;#Y;signal;maxDepth;includeChildMatches;constructor(Z,J,X){if(this.patterns=Z,this.path=J,this.opts=X,this.#Y=!X.posix&&X.platform==="win32"?"\\":"/",this.includeChildMatches=X.includeChildMatches!==!1,X.ignore||!this.includeChildMatches){if(this.#J=vV1(X.ignore??[],X),!this.includeChildMatches&&typeof this.#J.add!=="function")throw new Error("cannot ignore child matches, ignore lacks add() method.")}if(this.maxDepth=X.maxDepth||1/0,X.signal)this.signal=X.signal,this.signal.addEventListener("abort",()=>{this.#Z.length=0})}#X(Z){return this.seen.has(Z)||!!this.#J?.ignored?.(Z)}#$(Z){return!!this.#J?.childrenIgnored?.(Z)}pause(){this.paused=!0}resume(){if(this.signal?.aborted)return;this.paused=!1;let Z=void 0;while(!this.paused&&(Z=this.#Z.shift()))Z()}onResume(Z){if(this.signal?.aborted)return;if(!this.paused)Z();else this.#Z.push(Z)}async matchCheck(Z,J){if(J&&this.opts.nodir)return;let X;if(this.opts.realpath){if(X=Z.realpathCached()||await Z.realpath(),!X)return;Z=X}let $=Z.isUnknown()||this.opts.stat?await Z.lstat():Z;if(this.opts.follow&&this.opts.nodir&&$?.isSymbolicLink()){let Q=await $.realpath();if(Q&&(Q.isUnknown()||this.opts.stat))await Q.lstat()}return this.matchCheckTest($,J)}matchCheckTest(Z,J){return Z&&(this.maxDepth===1/0||Z.depth()<=this.maxDepth)&&(!J||Z.canReaddir())&&(!this.opts.nodir||!Z.isDirectory())&&(!this.opts.nodir||!this.opts.follow||!Z.isSymbolicLink()||!Z.realpathCached()?.isDirectory())&&!this.#X(Z)?Z:void 0}matchCheckSync(Z,J){if(J&&this.opts.nodir)return;let X;if(this.opts.realpath){if(X=Z.realpathCached()||Z.realpathSync(),!X)return;Z=X}let $=Z.isUnknown()||this.opts.stat?Z.lstatSync():Z;if(this.opts.follow&&this.opts.nodir&&$?.isSymbolicLink()){let Q=$.realpathSync();if(Q&&(Q?.isUnknown()||this.opts.stat))Q.lstatSync()}return this.matchCheckTest($,J)}matchFinish(Z,J){if(this.#X(Z))return;if(!this.includeChildMatches&&this.#J?.add){let $=`${Z.relativePosix()}/**`;this.#J.add($)}let X=this.opts.absolute===void 0?J:this.opts.absolute;this.seen.add(Z);let Y=this.opts.mark&&Z.isDirectory()?this.#Y:"";if(this.opts.withFileTypes)this.matchEmit(Z);else if(X){let $=this.opts.posix?Z.fullpathPosix():Z.fullpath();this.matchEmit($+Y)}else{let $=this.opts.posix?Z.relativePosix():Z.relative(),Q=this.opts.dotRelative&&!$.startsWith(".."+this.#Y)?"."+this.#Y:"";this.matchEmit(!$?"."+Y:Q+$+Y)}}async match(Z,J,X){let Y=await this.matchCheck(Z,X);if(Y)this.matchFinish(Y,J)}matchSync(Z,J,X){let Y=this.matchCheckSync(Z,X);if(Y)this.matchFinish(Y,J)}walkCB(Z,J,X){if(this.signal?.aborted)X();this.walkCB2(Z,J,new ZG(this.opts),X)}walkCB2(Z,J,X,Y){if(this.#$(Z))return Y();if(this.signal?.aborted)Y();if(this.paused){this.onResume(()=>this.walkCB2(Z,J,X,Y));return}X.processPatterns(Z,J);let $=1,Q=()=>{if(--$===0)Y()};for(let[K,W,G]of X.matches.entries()){if(this.#X(K))continue;$++,this.match(K,W,G).then(()=>Q())}for(let K of X.subwalkTargets()){if(this.maxDepth!==1/0&&K.depth()>=this.maxDepth)continue;$++;let W=K.readdirCached();if(K.calledReaddir())this.walkCB3(K,W,X,Q);else K.readdirCB((G,z)=>this.walkCB3(K,z,X,Q),!0)}Q()}walkCB3(Z,J,X,Y){X=X.filterEntries(Z,J);let $=1,Q=()=>{if(--$===0)Y()};for(let[K,W,G]of X.matches.entries()){if(this.#X(K))continue;$++,this.match(K,W,G).then(()=>Q())}for(let[K,W]of X.subwalks.entries())$++,this.walkCB2(K,W,X.child(),Q);Q()}walkCBSync(Z,J,X){if(this.signal?.aborted)X();this.walkCB2Sync(Z,J,new ZG(this.opts),X)}walkCB2Sync(Z,J,X,Y){if(this.#$(Z))return Y();if(this.signal?.aborted)Y();if(this.paused){this.onResume(()=>this.walkCB2Sync(Z,J,X,Y));return}X.processPatterns(Z,J);let $=1,Q=()=>{if(--$===0)Y()};for(let[K,W,G]of X.matches.entries()){if(this.#X(K))continue;this.matchSync(K,W,G)}for(let K of X.subwalkTargets()){if(this.maxDepth!==1/0&&K.depth()>=this.maxDepth)continue;$++;let W=K.readdirSync();this.walkCB3Sync(K,W,X,Q)}Q()}walkCB3Sync(Z,J,X,Y){X=X.filterEntries(Z,J);let $=1,Q=()=>{if(--$===0)Y()};for(let[K,W,G]of X.matches.entries()){if(this.#X(K))continue;this.matchSync(K,W,G)}for(let[K,W]of X.subwalks.entries())$++,this.walkCB2Sync(K,W,X.child(),Q);Q()}}class kU extends wP{matches=new Set;constructor(Z,J,X){super(Z,J,X)}matchEmit(Z){this.matches.add(Z)}async walk(){if(this.signal?.aborted)throw this.signal.reason;if(this.path.isUnknown())await this.path.lstat();return await new Promise((Z,J)=>{this.walkCB(this.path,this.patterns,()=>{if(this.signal?.aborted)J(this.signal.reason);else Z(this.matches)})}),this.matches}walkSync(){if(this.signal?.aborted)throw this.signal.reason;if(this.path.isUnknown())this.path.lstatSync();return this.walkCBSync(this.path,this.patterns,()=>{if(this.signal?.aborted)throw this.signal.reason}),this.matches}}class EU extends wP{results;constructor(Z,J,X){super(Z,J,X);this.results=new sX({signal:this.signal,objectMode:!0}),this.results.on("drain",()=>this.resume()),this.results.on("resume",()=>this.resume())}matchEmit(Z){if(this.results.write(Z),!this.results.flowing)this.pause()}stream(){let Z=this.path;if(Z.isUnknown())Z.lstat().then(()=>{this.walkCB(Z,this.patterns,()=>this.results.end())});else this.walkCB(Z,this.patterns,()=>this.results.end());return this.results}streamSync(){if(this.path.isUnknown())this.path.lstatSync();return this.walkCBSync(this.path,this.patterns,()=>this.results.end()),this.results}}var _V1=typeof process==="object"&&process&&typeof process.platform==="string"?process.platform:"linux";class t4{absolute;cwd;root;dot;dotRelative;follow;ignore;magicalBraces;mark;matchBase;maxDepth;nobrace;nocase;nodir;noext;noglobstar;pattern;platform;realpath;scurry;stat;signal;windowsPathsNoEscape;withFileTypes;includeChildMatches;opts;patterns;constructor(Z,J){if(!J)throw new TypeError("glob options required");if(this.withFileTypes=!!J.withFileTypes,this.signal=J.signal,this.follow=!!J.follow,this.dot=!!J.dot,this.dotRelative=!!J.dotRelative,this.nodir=!!J.nodir,this.mark=!!J.mark,!J.cwd)this.cwd="";else if(J.cwd instanceof URL||J.cwd.startsWith("file://"))J.cwd=SV1(J.cwd);if(this.cwd=J.cwd||"",this.root=J.root,this.magicalBraces=!!J.magicalBraces,this.nobrace=!!J.nobrace,this.noext=!!J.noext,this.realpath=!!J.realpath,this.absolute=J.absolute,this.includeChildMatches=J.includeChildMatches!==!1,this.noglobstar=!!J.noglobstar,this.matchBase=!!J.matchBase,this.maxDepth=typeof J.maxDepth==="number"?J.maxDepth:1/0,this.stat=!!J.stat,this.ignore=J.ignore,this.withFileTypes&&this.absolute!==void 0)throw new Error("cannot set absolute and withFileTypes:true");if(typeof Z==="string")Z=[Z];if(this.windowsPathsNoEscape=!!J.windowsPathsNoEscape||J.allowWindowsEscape===!1,this.windowsPathsNoEscape)Z=Z.map((W)=>W.replace(/\\/g,"/"));if(this.matchBase){if(J.noglobstar)throw new TypeError("base matching requires globstar");Z=Z.map((W)=>W.includes("/")?W:`./**/${W}`)}if(this.pattern=Z,this.platform=J.platform||_V1,this.opts={...J,platform:this.platform},J.scurry){if(this.scurry=J.scurry,J.nocase!==void 0&&J.nocase!==J.scurry.nocase)throw new Error("nocase option contradicts provided scurry option")}else{let W=J.platform==="win32"?r3:J.platform==="darwin"?TU:J.platform?t3:Vc;this.scurry=new W(this.cwd,{nocase:J.nocase,fs:J.fs})}this.nocase=this.scurry.nocase;let X=this.platform==="darwin"||this.platform==="win32",Y={...J,dot:this.dot,matchBase:this.matchBase,nobrace:this.nobrace,nocase:this.nocase,nocaseMagicOnly:X,nocomment:!0,noext:this.noext,nonegate:!0,optimizationLevel:2,platform:this.platform,windowsPathsNoEscape:this.windowsPathsNoEscape,debug:!!this.opts.debug},$=this.pattern.map((W)=>new w9(W,Y)),[Q,K]=$.reduce((W,G)=>{return W[0].push(...G.set),W[1].push(...G.globParts),W},[[],[]]);this.patterns=Q.map((W,G)=>{let z=K[G];if(!z)throw new Error("invalid pattern object");return new CQ(W,z,0,this.platform)})}async walk(){return[...await new kU(this.patterns,this.scurry.cwd,{...this.opts,maxDepth:this.maxDepth!==1/0?this.maxDepth+this.scurry.cwd.depth():1/0,platform:this.platform,nocase:this.nocase,includeChildMatches:this.includeChildMatches}).walk()]}walkSync(){return[...new kU(this.patterns,this.scurry.cwd,{...this.opts,maxDepth:this.maxDepth!==1/0?this.maxDepth+this.scurry.cwd.depth():1/0,platform:this.platform,nocase:this.nocase,includeChildMatches:this.includeChildMatches}).walkSync()]}stream(){return new EU(this.patterns,this.scurry.cwd,{...this.opts,maxDepth:this.maxDepth!==1/0?this.maxDepth+this.scurry.cwd.depth():1/0,platform:this.platform,nocase:this.nocase,includeChildMatches:this.includeChildMatches}).stream()}streamSync(){return new EU(this.patterns,this.scurry.cwd,{...this.opts,maxDepth:this.maxDepth!==1/0?this.maxDepth+this.scurry.cwd.depth():1/0,platform:this.platform,nocase:this.nocase,includeChildMatches:this.includeChildMatches}).streamSync()}iterateSync(){return this.streamSync()[Symbol.iterator]()}[Symbol.iterator](){return this.iterateSync()}iterate(){return this.stream()[Symbol.asyncIterator]()}[Symbol.asyncIterator](){return this.iterate()}}var BP=(Z,J={})=>{if(!Array.isArray(Z))Z=[Z];for(let X of Z)if(new w9(X,J).hasMagic())return!0;return!1};function vU(Z,J={}){return new t4(Z,J).streamSync()}function Uc(Z,J={}){return new t4(Z,J).stream()}function Lc(Z,J={}){return new t4(Z,J).walkSync()}async function Fc(Z,J={}){return new t4(Z,J).walk()}function SU(Z,J={}){return new t4(Z,J).iterateSync()}function wc(Z,J={}){return new t4(Z,J).iterate()}var AV1=vU,xV1=Object.assign(Uc,{sync:vU}),hV1=SU,fV1=Object.assign(wc,{sync:SU}),bV1=Object.assign(Lc,{stream:vU,iterate:SU}),IU=Object.assign(Fc,{glob:Fc,globSync:Lc,sync:bV1,globStream:Uc,stream:xV1,globStreamSync:vU,streamSync:AV1,globIterate:wc,iterate:fV1,globIterateSync:SU,iterateSync:hV1,Glob:t4,hasMagic:BP,escape:MQ,unescape:Q4});IU.glob=IU;class jP{constructor(){this._listeners={}}addEventListener(Z,J){let X=this._listeners;if(X[Z]===void 0)X[Z]=[];if(X[Z].indexOf(J)===-1)X[Z].push(J);return this}removeEventListener(Z,J){let Y=this._listeners[Z];if(Y!==void 0){let $=Y.indexOf(J);if($!==-1)Y.splice($,1)}return this}dispatchEvent(Z){let X=this._listeners[Z.type];if(X!==void 0){let Y=X.slice(0);for(let $=0,Q=Y.length;$<Q;$++)Y[$].call(this,Z)}return this}dispose(){for(let Z in this._listeners)delete this._listeners[Z]}}class w5{constructor(Z,J,X,Y={}){if(this._name=void 0,this._parent=void 0,this._child=void 0,this._attributes=void 0,this._disposed=!1,this._name=Z,this._parent=J,this._child=X,this._attributes=Y,!J.isOnGraph(X))throw new Error("Cannot connect disconnected graphs.")}getName(){return this._name}getParent(){return this._parent}getChild(){return this._child}setChild(Z){return this._child=Z,this}getAttributes(){return this._attributes}dispose(){if(this._disposed)return;this._parent._destroyRef(this),this._disposed=!0}isDisposed(){return this._disposed}}class TQ extends jP{constructor(...Z){super(...Z);this._emptySet=new Set,this._edges=new Set,this._parentEdges=new Map,this._childEdges=new Map}listEdges(){return Array.from(this._edges)}listParentEdges(Z){return Array.from(this._childEdges.get(Z)||this._emptySet)}listParents(Z){let J=new Set;for(let X of this.listParentEdges(Z))J.add(X.getParent());return Array.from(J)}listChildEdges(Z){return Array.from(this._parentEdges.get(Z)||this._emptySet)}listChildren(Z){let J=new Set;for(let X of this.listChildEdges(Z))J.add(X.getChild());return Array.from(J)}disconnectParents(Z,J){for(let X of this.listParentEdges(Z))if(!J||J(X.getParent()))X.dispose();return this}_createEdge(Z,J,X,Y){let $=new w5(Z,J,X,Y);this._edges.add($);let Q=$.getParent();if(!this._parentEdges.has(Q))this._parentEdges.set(Q,new Set);this._parentEdges.get(Q).add($);let K=$.getChild();if(!this._childEdges.has(K))this._childEdges.set(K,new Set);return this._childEdges.get(K).add($),$}_destroyEdge(Z){return this._edges.delete(Z),this._parentEdges.get(Z.getParent()).delete(Z),this._childEdges.get(Z.getChild()).delete(Z),this}}function JG(){return JG=Object.assign||function(Z){for(var J=1;J<arguments.length;J++){var X=arguments[J];for(var Y in X)if(Object.prototype.hasOwnProperty.call(X,Y))Z[Y]=X[Y]}return Z},JG.apply(this,arguments)}class D6{constructor(Z){if(this.list=[],Z)for(let J of Z)this.list.push(J)}add(Z){this.list.push(Z)}remove(Z){let J=this.list.indexOf(Z);if(J>=0)this.list.splice(J,1)}removeChild(Z){let J=[];for(let X of this.list)if(X.getChild()===Z)J.push(X);for(let X of J)this.remove(X);return J}listRefsByChild(Z){let J=[];for(let X of this.list)if(X.getChild()===Z)J.push(X);return J}values(){return this.list}}class P0{constructor(Z){if(this.set=new Set,this.map=new Map,Z)for(let J of Z)this.add(J)}add(Z){let J=Z.getChild();this.removeChild(J),this.set.add(Z),this.map.set(J,Z)}remove(Z){this.set.delete(Z),this.map.delete(Z.getChild())}removeChild(Z){let J=this.map.get(Z)||null;if(J)this.remove(J);return J}getRefByChild(Z){return this.map.get(Z)||null}values(){return Array.from(this.set)}}class r1{constructor(Z){if(this.map={},Z)Object.assign(this.map,Z)}set(Z,J){this.map[Z]=J}delete(Z){delete this.map[Z]}get(Z){return this.map[Z]||null}keys(){return Object.keys(this.map)}values(){return Object.values(this.map)}}var x0=Symbol("attributes"),G4=Symbol("immutableKeys");class kQ extends jP{constructor(Z){super();this._disposed=!1,this.graph=void 0,this[x0]=void 0,this[G4]=void 0,this.graph=Z,this[G4]=new Set,this[x0]=this._createAttributes()}getDefaults(){return{}}_createAttributes(){let Z=this.getDefaults(),J={};for(let X in Z){let Y=Z[X];if(Y instanceof kQ){let $=this.graph._createEdge(X,this,Y);this[G4].add(X),J[X]=$}else J[X]=Y}return J}isOnGraph(Z){return this.graph===Z.graph}isDisposed(){return this._disposed}dispose(){if(this._disposed)return;this.graph.listChildEdges(this).forEach((Z)=>Z.dispose()),this.graph.disconnectParents(this),this._disposed=!0,this.dispatchEvent({type:"dispose"})}detach(){return this.graph.disconnectParents(this),this}swap(Z,J){for(let X in this[x0]){let Y=this[x0][X];if(Y instanceof w5){let $=Y;if($.getChild()===Z)this.setRef(X,J,$.getAttributes())}else if(Y instanceof D6)for(let $ of Y.listRefsByChild(Z)){let Q=$.getAttributes();this.removeRef(X,Z),this.addRef(X,J,Q)}else if(Y instanceof P0){let $=Y.getRefByChild(Z);if($){let Q=$.getAttributes();this.removeRef(X,Z),this.addRef(X,J,Q)}}else if(Y instanceof r1)for(let $ of Y.keys()){let Q=Y.get($);if(Q.getChild()===Z)this.setRefMap(X,$,J,Q.getAttributes())}}return this}get(Z){return this[x0][Z]}set(Z,J){return this[x0][Z]=J,this.dispatchEvent({type:"change",attribute:Z})}getRef(Z){let J=this[x0][Z];return J?J.getChild():null}setRef(Z,J,X){if(this[G4].has(Z))throw new Error(`Cannot overwrite immutable attribute, "${Z}".`);let Y=this[x0][Z];if(Y)Y.dispose();if(!J)return this;let $=this.graph._createEdge(Z,this,J,X);return this[x0][Z]=$,this.dispatchEvent({type:"change",attribute:Z})}listRefs(Z){return this.assertRefList(Z).values().map((X)=>X.getChild())}addRef(Z,J,X){let Y=this.graph._createEdge(Z,this,J,X);return this.assertRefList(Z).add(Y),this.dispatchEvent({type:"change",attribute:Z})}removeRef(Z,J){let X=this.assertRefList(Z);if(X instanceof D6)for(let Y of X.listRefsByChild(J))Y.dispose();else{let Y=X.getRefByChild(J);if(Y)Y.dispose()}return this}assertRefList(Z){let J=this[x0][Z];if(J instanceof D6||J instanceof P0)return J;throw new Error(`Expected RefList or RefSet for attribute "${Z}"`)}listRefMapKeys(Z){return this.assertRefMap(Z).keys()}listRefMapValues(Z){return this.assertRefMap(Z).values().map((J)=>J.getChild())}getRefMap(Z,J){let Y=this.assertRefMap(Z).get(J);return Y?Y.getChild():null}setRefMap(Z,J,X,Y){let $=this.assertRefMap(Z),Q=$.get(J);if(Q)Q.dispose();if(!X)return this;Y=Object.assign(Y||{},{key:J});let K=this.graph._createEdge(Z,this,X,JG({},Y,{key:J}));return $.set(J,K),this.dispatchEvent({type:"change",attribute:Z,key:J})}assertRefMap(Z){let J=this[x0][Z];if(J instanceof r1)return J;throw new Error(`Expected RefMap for attribute "${Z}"`)}dispatchEvent(Z){return super.dispatchEvent(JG({},Z,{target:this})),this.graph.dispatchEvent(JG({},Z,{target:this,type:`node:${Z.type}`})),this}_destroyRef(Z){let J=Z.getName();if(this[x0][J]===Z){if(this[x0][J]=null,this[G4].has(J))Z.getChild().dispose()}else if(this[x0][J]instanceof D6)this[x0][J].remove(Z);else if(this[x0][J]instanceof P0)this[x0][J].remove(Z);else if(this[x0][J]instanceof r1){let X=this[x0][J];for(let Y of X.keys())if(X.get(Y)===Z)X.delete(Y)}else return;this.graph._destroyEdge(Z),this.dispatchEvent({type:"change",attribute:J})}}var Pc="v4.1.1",bU="@glb.bin",a;(function(Z){Z.ACCESSOR="Accessor",Z.ANIMATION="Animation",Z.ANIMATION_CHANNEL="AnimationChannel",Z.ANIMATION_SAMPLER="AnimationSampler",Z.BUFFER="Buffer",Z.CAMERA="Camera",Z.MATERIAL="Material",Z.MESH="Mesh",Z.PRIMITIVE="Primitive",Z.PRIMITIVE_TARGET="PrimitiveTarget",Z.NODE="Node",Z.ROOT="Root",Z.SCENE="Scene",Z.SKIN="Skin",Z.TEXTURE="Texture",Z.TEXTURE_INFO="TextureInfo"})(a||(a={}));var yU;(function(Z){Z.INTERLEAVED="interleaved",Z.SEPARATE="separate"})(yU||(yU={}));var c5;(function(Z){Z.ARRAY_BUFFER="ARRAY_BUFFER",Z.ELEMENT_ARRAY_BUFFER="ELEMENT_ARRAY_BUFFER",Z.INVERSE_BIND_MATRICES="INVERSE_BIND_MATRICES",Z.OTHER="OTHER",Z.SPARSE="SPARSE"})(c5||(c5={}));var gU;(function(Z){Z[Z.R=4096]="R",Z[Z.G=256]="G",Z[Z.B=16]="B",Z[Z.A=1]="A"})(gU||(gU={}));var KZ;(function(Z){Z.GLTF="GLTF",Z.GLB="GLB"})(KZ||(KZ={}));var VJ={"5120":Int8Array,"5121":Uint8Array,"5122":Int16Array,"5123":Uint16Array,"5125":Uint32Array,"5126":Float32Array},MP=typeof Float32Array!=="undefined"?Float32Array:Array;if(!Math.hypot)Math.hypot=function(){var Z=0,J=arguments.length;while(J--)Z+=arguments[J]*arguments[J];return Math.sqrt(Z)};function yV1(){var Z=new MP(3);if(MP!=Float32Array)Z[0]=0,Z[1]=0,Z[2]=0;return Z}function OP(Z){var J=Z[0],X=Z[1],Y=Z[2];return Math.hypot(J,X,Y)}function gV1(Z,J,X){var Y=J[0],$=J[1],Q=J[2],K=X[3]*Y+X[7]*$+X[11]*Q+X[15];return K=K||1,Z[0]=(X[0]*Y+X[4]*$+X[8]*Q+X[12])/K,Z[1]=(X[1]*Y+X[5]*$+X[9]*Q+X[13])/K,Z[2]=(X[2]*Y+X[6]*$+X[10]*Q+X[14])/K,Z}(function(){var Z=yV1();return function(J,X,Y,$,Q,K){var W,G;if(!X)X=3;if(!Y)Y=0;if($)G=Math.min($*X+Y,J.length);else G=J.length;for(W=Y;W<G;W+=X)Z[0]=J[W],Z[1]=J[W+1],Z[2]=J[W+2],Q(Z,Z,K),J[W]=Z[0],J[W+1]=Z[1],J[W+2]=Z[2];return J}})();function DP(Z){let J=Dc(),X=Z.propertyType===a.NODE?[Z]:Z.listChildren();for(let Y of X)Y.traverse(($)=>{let Q=$.getMesh();if(!Q)return;let K=mV1(Q,$.getWorldMatrix());if(K.min.every(isFinite)&&K.max.every(isFinite))RP(K.min,J),RP(K.max,J)});return J}function mV1(Z,J){let X=Dc();for(let Y of Z.listPrimitives()){let $=Y.getAttribute("POSITION"),Q=Y.getIndices();if(!$)continue;let K=[0,0,0],W=[0,0,0];for(let G=0,z=Q?Q.getCount():$.getCount();G<z;G++){let V=Q?Q.getScalar(G):G;K=$.getElement(V,K),W=gV1(W,K,J),RP(W,X)}}return X}function RP(Z,J){for(let X=0;X<3;X++)J.min[X]=Math.min(Z[X],J.min[X]),J.max[X]=Math.max(Z[X],J.max[X])}function Dc(){return{min:[1/0,1/0,1/0],max:[-1/0,-1/0,-1/0]}}class n0{static createBufferFromDataURI(Z){if(typeof Buffer==="undefined"){let J=atob(Z.split(",")[1]),X=new Uint8Array(J.length);for(let Y=0;Y<J.length;Y++)X[Y]=J.charCodeAt(Y);return X}else{let J=Z.split(",")[1],X=Z.indexOf("base64")>=0;return Buffer.from(J,X?"base64":"utf8")}}static encodeText(Z){return new TextEncoder().encode(Z)}static decodeText(Z){return new TextDecoder().decode(Z)}static concat(Z){let J=0;for(let $ of Z)J+=$.byteLength;let X=new Uint8Array(J),Y=0;for(let $ of Z)X.set($,Y),Y+=$.byteLength;return X}static pad(Z,J=0){let X=this.padNumber(Z.byteLength);if(X===Z.byteLength)return Z;let Y=new Uint8Array(X);if(Y.set(Z),J!==0)for(let $=Z.byteLength;$<X;$++)Y[$]=J;return Y}static padNumber(Z){return Math.ceil(Z/4)*4}static equals(Z,J){if(Z===J)return!0;if(Z.byteLength!==J.byteLength)return!1;let X=Z.byteLength;while(X--)if(Z[X]!==J[X])return!1;return!0}static toView(Z,J=0,X=1/0){return new Uint8Array(Z.buffer,Z.byteOffset+J,Math.min(Z.byteLength,X))}static assertView(Z){if(Z&&!ArrayBuffer.isView(Z))throw new Error(`Method requires Uint8Array parameter; received "${typeof Z}".`);return Z}}class CP{static hexToFactor(Z,J){Z=Math.floor(Z);let X=J;return X[0]=(Z>>16&255)/255,X[1]=(Z>>8&255)/255,X[2]=(Z&255)/255,this.convertSRGBToLinear(J,J)}static factorToHex(Z){let J=[...Z],[X,Y,$]=this.convertLinearToSRGB(Z,J);return X*255<<16^Y*255<<8^$*255<<0}static convertSRGBToLinear(Z,J){let X=Z,Y=J;for(let $=0;$<3;$++)Y[$]=X[$]<0.04045?X[$]*0.0773993808:Math.pow(X[$]*0.9478672986+0.0521327014,2.4);return J}static convertLinearToSRGB(Z,J){let X=Z,Y=J;for(let $=0;$<3;$++)Y[$]=X[$]<0.0031308?X[$]*12.92:1.055*Math.pow(X[$],0.41666)-0.055;return J}}class Cc{match(Z){return Z.length>=3&&Z[0]===255&&Z[1]===216&&Z[2]===255}getSize(Z){let J=new DataView(Z.buffer,Z.byteOffset+4),X,Y;while(J.byteLength){if(X=J.getUint16(0,!1),uV1(J,X),Y=J.getUint8(X+1),Y===192||Y===193||Y===194)return[J.getUint16(X+7,!1),J.getUint16(X+5,!1)];J=new DataView(Z.buffer,J.byteOffset+X+2)}throw new TypeError("Invalid JPG, no size found")}getChannels(Z){return 3}}class dU{match(Z){return Z.length>=8&&Z[0]===137&&Z[1]===80&&Z[2]===78&&Z[3]===71&&Z[4]===13&&Z[5]===10&&Z[6]===26&&Z[7]===10}getSize(Z){let J=new DataView(Z.buffer,Z.byteOffset);if(n0.decodeText(Z.slice(12,16))===dU.PNG_FRIED_CHUNK_NAME)return[J.getUint32(32,!1),J.getUint32(36,!1)];return[J.getUint32(16,!1),J.getUint32(20,!1)]}getChannels(Z){return 4}}dU.PNG_FRIED_CHUNK_NAME="CgBI";class WZ{static registerFormat(Z,J){this.impls[Z]=J}static getMimeType(Z){for(let J in this.impls)if(this.impls[J].match(Z))return J;return null}static getSize(Z,J){if(!this.impls[J])return null;return this.impls[J].getSize(Z)}static getChannels(Z,J){if(!this.impls[J])return null;return this.impls[J].getChannels(Z)}static getVRAMByteLength(Z,J){if(!this.impls[J])return null;if(this.impls[J].getVRAMByteLength)return this.impls[J].getVRAMByteLength(Z);let X=0,Y=4,$=this.getSize(Z,J);if(!$)return null;while($[0]>1||$[1]>1)X+=$[0]*$[1]*Y,$[0]=Math.max(Math.floor($[0]/2),1),$[1]=Math.max(Math.floor($[1]/2),1);return X+=1*Y,X}static mimeTypeToExtension(Z){if(Z==="image/jpeg")return"jpg";return Z.split("/").pop()}static extensionToMimeType(Z){if(Z==="jpg")return"image/jpeg";if(!Z)return"";return`image/${Z}`}}WZ.impls={"image/jpeg":new Cc,"image/png":new dU};function uV1(Z,J){if(J>Z.byteLength)throw new TypeError("Corrupt JPG, exceeded buffer limits");if(Z.getUint8(J)!==255)throw new TypeError("Invalid JPG, marker table corrupted");return Z}class GZ{static basename(Z){let J=Z.split(/[\\/]/).pop();return J.substring(0,J.lastIndexOf("."))}static extension(Z){if(Z.startsWith("data:image/")){let J=Z.match(/data:(image\/\w+)/)[1];return WZ.mimeTypeToExtension(J)}else if(Z.startsWith("data:model/gltf+json"))return"gltf";else if(Z.startsWith("data:model/gltf-binary"))return"glb";else if(Z.startsWith("data:application/"))return"bin";return Z.split(/[\\/]/).pop().split(/[.]/).pop()}}function Bc(Z){return Object.prototype.toString.call(Z)==="[object Object]"}function rX(Z){if(Bc(Z)===!1)return!1;let J=Z.constructor;if(J===void 0)return!0;let X=J.prototype;if(Bc(X)===!1)return!1;if(Object.prototype.hasOwnProperty.call(X,"isPrototypeOf")===!1)return!1;return!0}var NP,XG;(function(Z){Z[Z.SILENT=4]="SILENT",Z[Z.ERROR=3]="ERROR",Z[Z.WARN=2]="WARN",Z[Z.INFO=1]="INFO",Z[Z.DEBUG=0]="DEBUG"})(XG||(XG={}));class j5{constructor(Z){this.verbosity=void 0,this.verbosity=Z}debug(Z){if(this.verbosity<=j5.Verbosity.DEBUG)console.debug(Z)}info(Z){if(this.verbosity<=j5.Verbosity.INFO)console.info(Z)}warn(Z){if(this.verbosity<=j5.Verbosity.WARN)console.warn(Z)}error(Z){if(this.verbosity<=j5.Verbosity.ERROR)console.error(Z)}}NP=j5;j5.Verbosity=XG;j5.DEFAULT_INSTANCE=new NP(NP.Verbosity.INFO);function dV1(Z){var J=Z[0],X=Z[1],Y=Z[2],$=Z[3],Q=Z[4],K=Z[5],W=Z[6],G=Z[7],z=Z[8],V=Z[9],H=Z[10],q=Z[11],F=Z[12],U=Z[13],w=Z[14],L=Z[15],j=J*K-X*Q,R=J*W-Y*Q,O=J*G-$*Q,N=X*W-Y*K,D=X*G-$*K,P=Y*G-$*W,C=z*U-V*F,T=z*w-H*F,k=z*L-q*F,A=V*w-H*U,S=V*L-q*U,x=H*L-q*w;return j*x-R*S+O*A+N*k-D*T+P*C}function cV1(Z,J,X){var Y=J[0],$=J[1],Q=J[2],K=J[3],W=J[4],G=J[5],z=J[6],V=J[7],H=J[8],q=J[9],F=J[10],U=J[11],w=J[12],L=J[13],j=J[14],R=J[15],O=X[0],N=X[1],D=X[2],P=X[3];return Z[0]=O*Y+N*W+D*H+P*w,Z[1]=O*$+N*G+D*q+P*L,Z[2]=O*Q+N*z+D*F+P*j,Z[3]=O*K+N*V+D*U+P*R,O=X[4],N=X[5],D=X[6],P=X[7],Z[4]=O*Y+N*W+D*H+P*w,Z[5]=O*$+N*G+D*q+P*L,Z[6]=O*Q+N*z+D*F+P*j,Z[7]=O*K+N*V+D*U+P*R,O=X[8],N=X[9],D=X[10],P=X[11],Z[8]=O*Y+N*W+D*H+P*w,Z[9]=O*$+N*G+D*q+P*L,Z[10]=O*Q+N*z+D*F+P*j,Z[11]=O*K+N*V+D*U+P*R,O=X[12],N=X[13],D=X[14],P=X[15],Z[12]=O*Y+N*W+D*H+P*w,Z[13]=O*$+N*G+D*q+P*L,Z[14]=O*Q+N*z+D*F+P*j,Z[15]=O*K+N*V+D*U+P*R,Z}function lV1(Z,J){var X=J[0],Y=J[1],$=J[2],Q=J[4],K=J[5],W=J[6],G=J[8],z=J[9],V=J[10];return Z[0]=Math.hypot(X,Y,$),Z[1]=Math.hypot(Q,K,W),Z[2]=Math.hypot(G,z,V),Z}function pV1(Z,J){var X=new MP(3);lV1(X,J);var Y=1/X[0],$=1/X[1],Q=1/X[2],K=J[0]*Y,W=J[1]*$,G=J[2]*Q,z=J[4]*Y,V=J[5]*$,H=J[6]*Q,q=J[8]*Y,F=J[9]*$,U=J[10]*Q,w=K+V+U,L=0;if(w>0)L=Math.sqrt(w+1)*2,Z[3]=0.25*L,Z[0]=(H-F)/L,Z[1]=(q-G)/L,Z[2]=(W-z)/L;else if(K>V&&K>U)L=Math.sqrt(1+K-V-U)*2,Z[3]=(H-F)/L,Z[0]=0.25*L,Z[1]=(W+z)/L,Z[2]=(q+G)/L;else if(V>U)L=Math.sqrt(1+V-K-U)*2,Z[3]=(q-G)/L,Z[0]=(W+z)/L,Z[1]=0.25*L,Z[2]=(H+F)/L;else L=Math.sqrt(1+U-K-V)*2,Z[3]=(W-z)/L,Z[0]=(q+G)/L,Z[1]=(H+F)/L,Z[2]=0.25*L;return Z}class d0{static identity(Z){return Z}static eq(Z,J,X=0.00001){if(Z.length!==J.length)return!1;for(let Y=0;Y<Z.length;Y++)if(Math.abs(Z[Y]-J[Y])>X)return!1;return!0}static clamp(Z,J,X){if(Z<J)return J;if(Z>X)return X;return Z}static decodeNormalizedInt(Z,J){switch(J){case 5126:return Z;case 5123:return Z/65535;case 5121:return Z/255;case 5122:return Math.max(Z/32767,-1);case 5120:return Math.max(Z/127,-1);default:throw new Error("Invalid component type.")}}static encodeNormalizedInt(Z,J){switch(J){case 5126:return Z;case 5123:return Math.round(d0.clamp(Z,0,1)*65535);case 5121:return Math.round(d0.clamp(Z,0,1)*255);case 5122:return Math.round(d0.clamp(Z,-1,1)*32767);case 5120:return Math.round(d0.clamp(Z,-1,1)*127);default:throw new Error("Invalid component type.")}}static decompose(Z,J,X,Y){let $=OP([Z[0],Z[1],Z[2]]),Q=OP([Z[4],Z[5],Z[6]]),K=OP([Z[8],Z[9],Z[10]]);if(dV1(Z)<0)$=-$;J[0]=Z[12],J[1]=Z[13],J[2]=Z[14];let G=Z.slice(),z=1/$,V=1/Q,H=1/K;G[0]*=z,G[1]*=z,G[2]*=z,G[4]*=V,G[5]*=V,G[6]*=V,G[8]*=H,G[9]*=H,G[10]*=H,pV1(X,G),Y[0]=$,Y[1]=Q,Y[2]=K}static compose(Z,J,X,Y){let $=Y,Q=J[0],K=J[1],W=J[2],G=J[3],z=Q+Q,V=K+K,H=W+W,q=Q*z,F=Q*V,U=Q*H,w=K*V,L=K*H,j=W*H,R=G*z,O=G*V,N=G*H,D=X[0],P=X[1],C=X[2];return $[0]=(1-(w+j))*D,$[1]=(F+N)*D,$[2]=(U-O)*D,$[3]=0,$[4]=(F-N)*P,$[5]=(1-(q+j))*P,$[6]=(L+R)*P,$[7]=0,$[8]=(U+O)*C,$[9]=(L-R)*C,$[10]=(1-(q+w))*C,$[11]=0,$[12]=Z[0],$[13]=Z[1],$[14]=Z[2],$[15]=1,$}}function iV1(Z,J){if(!!Z!==!!J)return!1;let X=Z.getChild(),Y=J.getChild();return X===Y||X.equals(Y)}function nV1(Z,J){if(!!Z!==!!J)return!1;let X=Z.values(),Y=J.values();if(X.length!==Y.length)return!1;for(let $=0;$<X.length;$++){let Q=X[$],K=Y[$];if(Q.getChild()===K.getChild())continue;if(!Q.getChild().equals(K.getChild()))return!1}return!0}function aV1(Z,J){if(!!Z!==!!J)return!1;let X=Z.keys(),Y=J.keys();if(X.length!==Y.length)return!1;for(let $ of X){let Q=Z.get($),K=J.get($);if(!!Q!==!!K)return!1;let W=Q.getChild(),G=K.getChild();if(W===G)continue;if(!W.equals(G))return!1}return!0}function Tc(Z,J){if(Z===J)return!0;if(!!Z!==!!J||!Z||!J)return!1;if(Z.length!==J.length)return!1;for(let X=0;X<Z.length;X++)if(Z[X]!==J[X])return!1;return!0}function kc(Z,J){if(Z===J)return!0;if(!!Z!==!!J)return!1;if(!rX(Z)||!rX(J))return Z===J;let X=Z,Y=J,$=0,Q=0,K;for(K in X)$++;for(K in Y)Q++;if($!==Q)return!1;for(K in X){let W=X[K],G=Y[K];if(mU(W)&&mU(G)){if(!Tc(W,G))return!1}else if(rX(W)&&rX(G)){if(!kc(W,G))return!1}else if(W!==G)return!1}return!0}function mU(Z){return Array.isArray(Z)||ArrayBuffer.isView(Z)}var jc="23456789abdegjkmnpqrvwxyzABDEGJKMNPQRVWXYZ",sV1=999,oV1=6,Oc=new Set,rV1=function Z(){let J="";for(let X=0;X<oV1;X++)J+=jc.charAt(Math.floor(Math.random()*jc.length));return J},Ec=function Z(){for(let J=0;J<sV1;J++){let X=rV1();if(!Oc.has(X))return Oc.add(X),X}return""},Mc="https://null.example";class O9{static dirname(Z){let J=Z.lastIndexOf("/");if(J===-1)return"./";return Z.substring(0,J+1)}static basename(Z){return GZ.basename(new URL(Z,Mc).pathname)}static extension(Z){return GZ.extension(new URL(Z,Mc).pathname)}static resolve(Z,J){if(!this.isRelativePath(J))return J;let X=Z.split("/"),Y=J.split("/");X.pop();for(let $=0;$<Y.length;$++){if(Y[$]===".")continue;if(Y[$]==="..")X.pop();else X.push(Y[$])}return X.join("/")}static isAbsoluteURL(Z){return this.PROTOCOL_REGEXP.test(Z)}static isRelativePath(Z){return!/^(?:[a-zA-Z]+:)?\//.test(Z)}}O9.DEFAULT_INIT={};O9.PROTOCOL_REGEXP=/^[a-zA-Z]+:\/\//;var zJ=(Z)=>Z,tV1=new Set;class cU extends kQ{constructor(Z,J=""){super(Z);this[x0].name=J,this.init(),this.dispatchEvent({type:"create"})}getGraph(){return this.graph}getDefaults(){return Object.assign(super.getDefaults(),{name:"",extras:{}})}set(Z,J){if(Array.isArray(J))J=J.slice();return super.set(Z,J)}getName(){return this.get("name")}setName(Z){return this.set("name",Z)}getExtras(){return this.get("extras")}setExtras(Z){return this.set("extras",Z)}clone(){return new this.constructor(this.graph).copy(this,zJ)}copy(Z,J=zJ){for(let X in this[x0]){let Y=this[x0][X];if(Y instanceof w5){if(!this[G4].has(X))Y.dispose()}else if(Y instanceof D6||Y instanceof P0)for(let $ of Y.values())$.dispose();else if(Y instanceof r1)for(let $ of Y.values())$.dispose()}for(let X in Z[x0]){let Y=this[x0][X],$=Z[x0][X];if($ instanceof w5)if(this[G4].has(X))Y.getChild().copy(J($.getChild()),J);else this.setRef(X,J($.getChild()),$.getAttributes());else if($ instanceof P0||$ instanceof D6)for(let Q of $.values())this.addRef(X,J(Q.getChild()),Q.getAttributes());else if($ instanceof r1)for(let Q of $.keys()){let K=$.get(Q);this.setRefMap(X,Q,J(K.getChild()),K.getAttributes())}else if(rX($))this[x0][X]=JSON.parse(JSON.stringify($));else if(Array.isArray($)||$ instanceof ArrayBuffer||ArrayBuffer.isView($))this[x0][X]=$.slice();else this[x0][X]=$}return this}equals(Z,J=tV1){if(this===Z)return!0;if(this.propertyType!==Z.propertyType)return!1;for(let X in this[x0]){if(J.has(X))continue;let Y=this[x0][X],$=Z[x0][X];if(Y instanceof w5||$ instanceof w5){if(!iV1(Y,$))return!1}else if(Y instanceof P0||$ instanceof P0||Y instanceof D6||$ instanceof D6){if(!nV1(Y,$))return!1}else if(Y instanceof r1||$ instanceof r1){if(!aV1(Y,$))return!1}else if(rX(Y)||rX($)){if(!kc(Y,$))return!1}else if(mU(Y)||mU($)){if(!Tc(Y,$))return!1}else if(Y!==$)return!1}return!0}detach(){return this.graph.disconnectParents(this,(Z)=>Z.propertyType!=="Root"),this}listParents(){return this.graph.listParents(this)}}class T6 extends cU{getDefaults(){return Object.assign(super.getDefaults(),{extensions:new r1})}getExtension(Z){return this.getRefMap("extensions",Z)}setExtension(Z,J){if(J)J._validateParent(this);return this.setRefMap("extensions",Z,J)}listExtensions(){return this.listRefMapValues("extensions")}}class I0 extends T6{init(){this.propertyType=a.ACCESSOR}getDefaults(){return Object.assign(super.getDefaults(),{array:null,type:I0.Type.SCALAR,componentType:I0.ComponentType.FLOAT,normalized:!1,sparse:!1,buffer:null})}static getElementSize(Z){switch(Z){case I0.Type.SCALAR:return 1;case I0.Type.VEC2:return 2;case I0.Type.VEC3:return 3;case I0.Type.VEC4:return 4;case I0.Type.MAT2:return 4;case I0.Type.MAT3:return 9;case I0.Type.MAT4:return 16;default:throw new Error("Unexpected type: "+Z)}}static getComponentSize(Z){switch(Z){case I0.ComponentType.BYTE:return 1;case I0.ComponentType.UNSIGNED_BYTE:return 1;case I0.ComponentType.SHORT:return 2;case I0.ComponentType.UNSIGNED_SHORT:return 2;case I0.ComponentType.UNSIGNED_INT:return 4;case I0.ComponentType.FLOAT:return 4;default:throw new Error("Unexpected component type: "+Z)}}getMinNormalized(Z){let J=this.getNormalized(),X=this.getElementSize(),Y=this.getComponentType();if(this.getMin(Z),J)for(let $=0;$<X;$++)Z[$]=d0.decodeNormalizedInt(Z[$],Y);return Z}getMin(Z){let J=this.getArray(),X=this.getCount(),Y=this.getElementSize();for(let $=0;$<Y;$++)Z[$]=1/0;for(let $=0;$<X*Y;$+=Y)for(let Q=0;Q<Y;Q++){let K=J[$+Q];if(Number.isFinite(K))Z[Q]=Math.min(Z[Q],K)}return Z}getMaxNormalized(Z){let J=this.getNormalized(),X=this.getElementSize(),Y=this.getComponentType();if(this.getMax(Z),J)for(let $=0;$<X;$++)Z[$]=d0.decodeNormalizedInt(Z[$],Y);return Z}getMax(Z){let J=this.get("array"),X=this.getCount(),Y=this.getElementSize();for(let $=0;$<Y;$++)Z[$]=-1/0;for(let $=0;$<X*Y;$+=Y)for(let Q=0;Q<Y;Q++){let K=J[$+Q];if(Number.isFinite(K))Z[Q]=Math.max(Z[Q],K)}return Z}getCount(){let Z=this.get("array");return Z?Z.length/this.getElementSize():0}getType(){return this.get("type")}setType(Z){return this.set("type",Z)}getElementSize(){return I0.getElementSize(this.get("type"))}getComponentSize(){return this.get("array").BYTES_PER_ELEMENT}getComponentType(){return this.get("componentType")}getNormalized(){return this.get("normalized")}setNormalized(Z){return this.set("normalized",Z)}getScalar(Z){let J=this.getElementSize(),X=this.getComponentType(),Y=this.getArray();if(this.getNormalized())return d0.decodeNormalizedInt(Y[Z*J],X);return Y[Z*J]}setScalar(Z,J){let X=this.getElementSize(),Y=this.getComponentType(),$=this.getArray();if(this.getNormalized())$[Z*X]=d0.encodeNormalizedInt(J,Y);else $[Z*X]=J;return this}getElement(Z,J){let X=this.getNormalized(),Y=this.getElementSize(),$=this.getComponentType(),Q=this.getArray();for(let K=0;K<Y;K++)if(X)J[K]=d0.decodeNormalizedInt(Q[Z*Y+K],$);else J[K]=Q[Z*Y+K];return J}setElement(Z,J){let X=this.getNormalized(),Y=this.getElementSize(),$=this.getComponentType(),Q=this.getArray();for(let K=0;K<Y;K++)if(X)Q[Z*Y+K]=d0.encodeNormalizedInt(J[K],$);else Q[Z*Y+K]=J[K];return this}getSparse(){return this.get("sparse")}setSparse(Z){return this.set("sparse",Z)}getBuffer(){return this.getRef("buffer")}setBuffer(Z){return this.setRef("buffer",Z)}getArray(){return this.get("array")}setArray(Z){return this.set("componentType",Z?eV1(Z):I0.ComponentType.FLOAT),this.set("array",Z),this}getByteLength(){let Z=this.get("array");return Z?Z.byteLength:0}}I0.Type={SCALAR:"SCALAR",VEC2:"VEC2",VEC3:"VEC3",VEC4:"VEC4",MAT2:"MAT2",MAT3:"MAT3",MAT4:"MAT4"};I0.ComponentType={BYTE:5120,UNSIGNED_BYTE:5121,SHORT:5122,UNSIGNED_SHORT:5123,UNSIGNED_INT:5125,FLOAT:5126};function eV1(Z){switch(Z.constructor){case Float32Array:return I0.ComponentType.FLOAT;case Uint32Array:return I0.ComponentType.UNSIGNED_INT;case Uint16Array:return I0.ComponentType.UNSIGNED_SHORT;case Uint8Array:return I0.ComponentType.UNSIGNED_BYTE;case Int16Array:return I0.ComponentType.SHORT;case Int8Array:return I0.ComponentType.BYTE;default:throw new Error("Unknown accessor componentType.")}}class TP extends T6{init(){this.propertyType=a.ANIMATION}getDefaults(){return Object.assign(super.getDefaults(),{channels:new P0,samplers:new P0})}addChannel(Z){return this.addRef("channels",Z)}removeChannel(Z){return this.removeRef("channels",Z)}listChannels(){return this.listRefs("channels")}addSampler(Z){return this.addRef("samplers",Z)}removeSampler(Z){return this.removeRef("samplers",Z)}listSamplers(){return this.listRefs("samplers")}}class tX extends T6{init(){this.propertyType=a.ANIMATION_CHANNEL}getDefaults(){return Object.assign(super.getDefaults(),{targetPath:null,targetNode:null,sampler:null})}getTargetPath(){return this.get("targetPath")}setTargetPath(Z){return this.set("targetPath",Z)}getTargetNode(){return this.getRef("targetNode")}setTargetNode(Z){return this.setRef("targetNode",Z)}getSampler(){return this.getRef("sampler")}setSampler(Z){return this.setRef("sampler",Z)}}tX.TargetPath={TRANSLATION:"translation",ROTATION:"rotation",SCALE:"scale",WEIGHTS:"weights"};class EQ extends T6{init(){this.propertyType=a.ANIMATION_SAMPLER}getDefaultAttributes(){return Object.assign(super.getDefaults(),{interpolation:EQ.Interpolation.LINEAR,input:null,output:null})}getInterpolation(){return this.get("interpolation")}setInterpolation(Z){return this.set("interpolation",Z)}getInput(){return this.getRef("input")}setInput(Z){return this.setRef("input",Z,{usage:c5.OTHER})}getOutput(){return this.getRef("output")}setOutput(Z){return this.setRef("output",Z,{usage:c5.OTHER})}}EQ.Interpolation={LINEAR:"LINEAR",STEP:"STEP",CUBICSPLINE:"CUBICSPLINE"};class kP extends T6{init(){this.propertyType=a.BUFFER}getDefaults(){return Object.assign(super.getDefaults(),{uri:""})}getURI(){return this.get("uri")}setURI(Z){return this.set("uri",Z)}}class eX extends T6{init(){this.propertyType=a.CAMERA}getDefaults(){return Object.assign(super.getDefaults(),{type:eX.Type.PERSPECTIVE,znear:0.1,zfar:100,aspectRatio:null,yfov:Math.PI*2*50/360,xmag:1,ymag:1})}getType(){return this.get("type")}setType(Z){return this.set("type",Z)}getZNear(){return this.get("znear")}setZNear(Z){return this.set("znear",Z)}getZFar(){return this.get("zfar")}setZFar(Z){return this.set("zfar",Z)}getAspectRatio(){return this.get("aspectRatio")}setAspectRatio(Z){return this.set("aspectRatio",Z)}getYFov(){return this.get("yfov")}setYFov(Z){return this.set("yfov",Z)}getXMag(){return this.get("xmag")}setXMag(Z){return this.set("xmag",Z)}getYMag(){return this.get("ymag")}setYMag(Z){return this.set("ymag",Z)}}eX.Type={PERSPECTIVE:"perspective",ORTHOGRAPHIC:"orthographic"};class IQ extends cU{_validateParent(Z){if(!this.parentTypes.includes(Z.propertyType))throw new Error(`Parent "${Z.propertyType}" invalid for child "${this.propertyType}".`)}}IQ.EXTENSION_NAME=void 0;class B5 extends T6{init(){this.propertyType=a.TEXTURE_INFO}getDefaults(){return Object.assign(super.getDefaults(),{texCoord:0,magFilter:null,minFilter:null,wrapS:B5.WrapMode.REPEAT,wrapT:B5.WrapMode.REPEAT})}getTexCoord(){return this.get("texCoord")}setTexCoord(Z){return this.set("texCoord",Z)}getMagFilter(){return this.get("magFilter")}setMagFilter(Z){return this.set("magFilter",Z)}getMinFilter(){return this.get("minFilter")}setMinFilter(Z){return this.set("minFilter",Z)}getWrapS(){return this.get("wrapS")}setWrapS(Z){return this.set("wrapS",Z)}getWrapT(){return this.get("wrapT")}setWrapT(Z){return this.set("wrapT",Z)}}B5.WrapMode={CLAMP_TO_EDGE:33071,MIRRORED_REPEAT:33648,REPEAT:10497};B5.MagFilter={NEAREST:9728,LINEAR:9729};B5.MinFilter={NEAREST:9728,LINEAR:9729,NEAREST_MIPMAP_NEAREST:9984,LINEAR_MIPMAP_NEAREST:9985,NEAREST_MIPMAP_LINEAR:9986,LINEAR_MIPMAP_LINEAR:9987};var{R:_U,G:AU,B:xU,A:ZH1}=gU;class e4 extends T6{init(){this.propertyType=a.MATERIAL}getDefaults(){return Object.assign(super.getDefaults(),{alphaMode:e4.AlphaMode.OPAQUE,alphaCutoff:0.5,doubleSided:!1,baseColorFactor:[1,1,1,1],baseColorTexture:null,baseColorTextureInfo:new B5(this.graph,"baseColorTextureInfo"),emissiveFactor:[0,0,0],emissiveTexture:null,emissiveTextureInfo:new B5(this.graph,"emissiveTextureInfo"),normalScale:1,normalTexture:null,normalTextureInfo:new B5(this.graph,"normalTextureInfo"),occlusionStrength:1,occlusionTexture:null,occlusionTextureInfo:new B5(this.graph,"occlusionTextureInfo"),roughnessFactor:1,metallicFactor:1,metallicRoughnessTexture:null,metallicRoughnessTextureInfo:new B5(this.graph,"metallicRoughnessTextureInfo")})}getDoubleSided(){return this.get("doubleSided")}setDoubleSided(Z){return this.set("doubleSided",Z)}getAlpha(){return this.get("baseColorFactor")[3]}setAlpha(Z){let J=this.get("baseColorFactor").slice();return J[3]=Z,this.set("baseColorFactor",J)}getAlphaMode(){return this.get("alphaMode")}setAlphaMode(Z){return this.set("alphaMode",Z)}getAlphaCutoff(){return this.get("alphaCutoff")}setAlphaCutoff(Z){return this.set("alphaCutoff",Z)}getBaseColorFactor(){return this.get("baseColorFactor")}setBaseColorFactor(Z){return this.set("baseColorFactor",Z)}getBaseColorTexture(){return this.getRef("baseColorTexture")}getBaseColorTextureInfo(){return this.getRef("baseColorTexture")?this.getRef("baseColorTextureInfo"):null}setBaseColorTexture(Z){return this.setRef("baseColorTexture",Z,{channels:_U|AU|xU|ZH1,isColor:!0})}getEmissiveFactor(){return this.get("emissiveFactor")}setEmissiveFactor(Z){return this.set("emissiveFactor",Z)}getEmissiveTexture(){return this.getRef("emissiveTexture")}getEmissiveTextureInfo(){return this.getRef("emissiveTexture")?this.getRef("emissiveTextureInfo"):null}setEmissiveTexture(Z){return this.setRef("emissiveTexture",Z,{channels:_U|AU|xU,isColor:!0})}getNormalScale(){return this.get("normalScale")}setNormalScale(Z){return this.set("normalScale",Z)}getNormalTexture(){return this.getRef("normalTexture")}getNormalTextureInfo(){return this.getRef("normalTexture")?this.getRef("normalTextureInfo"):null}setNormalTexture(Z){return this.setRef("normalTexture",Z,{channels:_U|AU|xU})}getOcclusionStrength(){return this.get("occlusionStrength")}setOcclusionStrength(Z){return this.set("occlusionStrength",Z)}getOcclusionTexture(){return this.getRef("occlusionTexture")}getOcclusionTextureInfo(){return this.getRef("occlusionTexture")?this.getRef("occlusionTextureInfo"):null}setOcclusionTexture(Z){return this.setRef("occlusionTexture",Z,{channels:_U})}getRoughnessFactor(){return this.get("roughnessFactor")}setRoughnessFactor(Z){return this.set("roughnessFactor",Z)}getMetallicFactor(){return this.get("metallicFactor")}setMetallicFactor(Z){return this.set("metallicFactor",Z)}getMetallicRoughnessTexture(){return this.getRef("metallicRoughnessTexture")}getMetallicRoughnessTextureInfo(){return this.getRef("metallicRoughnessTexture")?this.getRef("metallicRoughnessTextureInfo"):null}setMetallicRoughnessTexture(Z){return this.setRef("metallicRoughnessTexture",Z,{channels:AU|xU})}}e4.AlphaMode={OPAQUE:"OPAQUE",MASK:"MASK",BLEND:"BLEND"};class $G extends T6{init(){this.propertyType=a.MESH}getDefaults(){return Object.assign(super.getDefaults(),{weights:[],primitives:new P0})}addPrimitive(Z){return this.addRef("primitives",Z)}removePrimitive(Z){return this.removeRef("primitives",Z)}listPrimitives(){return this.listRefs("primitives")}getWeights(){return this.get("weights")}setWeights(Z){return this.set("weights",Z)}}class lU extends T6{init(){this.propertyType=a.NODE}getDefaults(){return Object.assign(super.getDefaults(),{translation:[0,0,0],rotation:[0,0,0,1],scale:[1,1,1],weights:[],camera:null,mesh:null,skin:null,children:new P0})}copy(Z,J=zJ){if(J===zJ)throw new Error("Node cannot be copied.");return super.copy(Z,J)}getTranslation(){return this.get("translation")}getRotation(){return this.get("rotation")}getScale(){return this.get("scale")}setTranslation(Z){return this.set("translation",Z)}setRotation(Z){return this.set("rotation",Z)}setScale(Z){return this.set("scale",Z)}getMatrix(){return d0.compose(this.get("translation"),this.get("rotation"),this.get("scale"),[])}setMatrix(Z){let J=this.get("translation").slice(),X=this.get("rotation").slice(),Y=this.get("scale").slice();return d0.decompose(Z,J,X,Y),this.set("translation",J).set("rotation",X).set("scale",Y)}getWorldTranslation(){let Z=[0,0,0];return d0.decompose(this.getWorldMatrix(),Z,[0,0,0,1],[1,1,1]),Z}getWorldRotation(){let Z=[0,0,0,1];return d0.decompose(this.getWorldMatrix(),[0,0,0],Z,[1,1,1]),Z}getWorldScale(){let Z=[1,1,1];return d0.decompose(this.getWorldMatrix(),[0,0,0],[0,0,0,1],Z),Z}getWorldMatrix(){let Z=[];for(let Y=this;Y!=null;Y=Y.getParentNode())Z.push(Y);let J,X=Z.pop().getMatrix();while(J=Z.pop())cV1(X,X,J.getMatrix());return X}addChild(Z){let J=Z.getParentNode();if(J)J.removeChild(Z);for(let X of Z.listParents())if(X.propertyType===a.SCENE)X.removeChild(Z);return this.addRef("children",Z)}removeChild(Z){return this.removeRef("children",Z)}listChildren(){return this.listRefs("children")}getParentNode(){for(let Z of this.listParents())if(Z.propertyType===a.NODE)return Z;return null}getMesh(){return this.getRef("mesh")}setMesh(Z){return this.setRef("mesh",Z)}getCamera(){return this.getRef("camera")}setCamera(Z){return this.setRef("camera",Z)}getSkin(){return this.getRef("skin")}setSkin(Z){return this.setRef("skin",Z)}getWeights(){return this.get("weights")}setWeights(Z){return this.set("weights",Z)}traverse(Z){Z(this);for(let J of this.listChildren())J.traverse(Z);return this}}class M8 extends T6{init(){this.propertyType=a.PRIMITIVE}getDefaults(){return Object.assign(super.getDefaults(),{mode:M8.Mode.TRIANGLES,material:null,indices:null,attributes:new r1,targets:new P0})}getIndices(){return this.getRef("indices")}setIndices(Z){return this.setRef("indices",Z,{usage:c5.ELEMENT_ARRAY_BUFFER})}getAttribute(Z){return this.getRefMap("attributes",Z)}setAttribute(Z,J){return this.setRefMap("attributes",Z,J,{usage:c5.ARRAY_BUFFER})}listAttributes(){return this.listRefMapValues("attributes")}listSemantics(){return this.listRefMapKeys("attributes")}getMaterial(){return this.getRef("material")}setMaterial(Z){return this.setRef("material",Z)}getMode(){return this.get("mode")}setMode(Z){return this.set("mode",Z)}listTargets(){return this.listRefs("targets")}addTarget(Z){return this.addRef("targets",Z)}removeTarget(Z){return this.removeRef("targets",Z)}}M8.Mode={POINTS:0,LINES:1,LINE_LOOP:2,LINE_STRIP:3,TRIANGLES:4,TRIANGLE_STRIP:5,TRIANGLE_FAN:6};class EP extends cU{init(){this.propertyType=a.PRIMITIVE_TARGET}getDefaults(){return Object.assign(super.getDefaults(),{attributes:new r1})}getAttribute(Z){return this.getRefMap("attributes",Z)}setAttribute(Z,J){return this.setRefMap("attributes",Z,J,{usage:c5.ARRAY_BUFFER})}listAttributes(){return this.listRefMapValues("attributes")}listSemantics(){return this.listRefMapKeys("attributes")}}function c6(){return c6=Object.assign?Object.assign.bind():function(Z){for(var J=1;J<arguments.length;J++){var X=arguments[J];for(var Y in X)({}).hasOwnProperty.call(X,Y)&&(Z[Y]=X[Y])}return Z},c6.apply(null,arguments)}class vQ extends T6{init(){this.propertyType=a.SCENE}getDefaults(){return Object.assign(super.getDefaults(),{children:new P0})}copy(Z,J=zJ){if(J===zJ)throw new Error("Scene cannot be copied.");return super.copy(Z,J)}addChild(Z){let J=Z.getParentNode();if(J)J.removeChild(Z);return this.addRef("children",Z)}removeChild(Z){return this.removeRef("children",Z)}listChildren(){return this.listRefs("children")}traverse(Z){for(let J of this.listChildren())J.traverse(Z);return this}}class IP extends T6{init(){this.propertyType=a.SKIN}getDefaults(){return Object.assign(super.getDefaults(),{skeleton:null,inverseBindMatrices:null,joints:new P0})}getSkeleton(){return this.getRef("skeleton")}setSkeleton(Z){return this.setRef("skeleton",Z)}getInverseBindMatrices(){return this.getRef("inverseBindMatrices")}setInverseBindMatrices(Z){return this.setRef("inverseBindMatrices",Z,{usage:c5.INVERSE_BIND_MATRICES})}addJoint(Z){return this.addRef("joints",Z)}removeJoint(Z){return this.removeRef("joints",Z)}listJoints(){return this.listRefs("joints")}}class ZY extends T6{init(){this.propertyType=a.TEXTURE}getDefaults(){return Object.assign(super.getDefaults(),{image:null,mimeType:"",uri:""})}getMimeType(){return this.get("mimeType")||WZ.extensionToMimeType(GZ.extension(this.get("uri")))}setMimeType(Z){return this.set("mimeType",Z)}getURI(){return this.get("uri")}setURI(Z){this.set("uri",Z);let J=WZ.extensionToMimeType(GZ.extension(Z));if(J)this.set("mimeType",J);return this}getImage(){return this.get("image")}setImage(Z){return this.set("image",n0.assertView(Z))}getSize(){let Z=this.get("image");if(!Z)return null;return WZ.getSize(Z,this.getMimeType())}}class JY extends T6{init(){this.propertyType=a.ROOT}getDefaults(){return Object.assign(super.getDefaults(),{asset:{generator:`glTF-Transform ${Pc}`,version:"2.0"},defaultScene:null,accessors:new P0,animations:new P0,buffers:new P0,cameras:new P0,materials:new P0,meshes:new P0,nodes:new P0,scenes:new P0,skins:new P0,textures:new P0})}constructor(Z){super(Z);this._extensions=new Set,Z.addEventListener("node:create",(J)=>{this._addChildOfRoot(J.target)})}clone(){throw new Error("Root cannot be cloned.")}copy(Z,J=zJ){if(J===zJ)throw new Error("Root cannot be copied.");this.set("asset",c6({},Z.get("asset"))),this.setName(Z.getName()),this.setExtras(c6({},Z.getExtras())),this.setDefaultScene(Z.getDefaultScene()?J(Z.getDefaultScene()):null);for(let X of Z.listRefMapKeys("extensions")){let Y=Z.getExtension(X);this.setExtension(X,J(Y))}return this}_addChildOfRoot(Z){if(Z instanceof vQ)this.addRef("scenes",Z);else if(Z instanceof lU)this.addRef("nodes",Z);else if(Z instanceof eX)this.addRef("cameras",Z);else if(Z instanceof IP)this.addRef("skins",Z);else if(Z instanceof $G)this.addRef("meshes",Z);else if(Z instanceof e4)this.addRef("materials",Z);else if(Z instanceof ZY)this.addRef("textures",Z);else if(Z instanceof TP)this.addRef("animations",Z);else if(Z instanceof I0)this.addRef("accessors",Z);else if(Z instanceof kP)this.addRef("buffers",Z);return this}getAsset(){return this.get("asset")}listExtensionsUsed(){return Array.from(this._extensions)}listExtensionsRequired(){return this.listExtensionsUsed().filter((Z)=>Z.isRequired())}_enableExtension(Z){return this._extensions.add(Z),this}_disableExtension(Z){return this._extensions.delete(Z),this}listScenes(){return this.listRefs("scenes")}setDefaultScene(Z){return this.setRef("defaultScene",Z)}getDefaultScene(){return this.getRef("defaultScene")}listNodes(){return this.listRefs("nodes")}listCameras(){return this.listRefs("cameras")}listSkins(){return this.listRefs("skins")}listMeshes(){return this.listRefs("meshes")}listMaterials(){return this.listRefs("materials")}listTextures(){return this.listRefs("textures")}listAnimations(){return this.listRefs("animations")}listAccessors(){return this.listRefs("accessors")}listBuffers(){return this.listRefs("buffers")}}class C6{static fromGraph(Z){return C6._GRAPH_DOCUMENTS.get(Z)||null}constructor(){this._graph=new TQ,this._root=new JY(this._graph),this._logger=j5.DEFAULT_INSTANCE,C6._GRAPH_DOCUMENTS.set(this._graph,this)}getRoot(){return this._root}getGraph(){return this._graph}getLogger(){return this._logger}setLogger(Z){return this._logger=Z,this}clone(){throw new Error("Use 'cloneDocument(source)' from '@gltf-transform/functions'.")}merge(Z){throw new Error("Use 'mergeDocuments(target, source)' from '@gltf-transform/functions'.")}async transform(...Z){let J=Z.map((X)=>X.name);for(let X of Z)await X(this,{stack:J});return this}createExtension(Z){let J=Z.EXTENSION_NAME;return this.getRoot().listExtensionsUsed().find((Y)=>Y.extensionName===J)||new Z(this)}createScene(Z=""){return new vQ(this._graph,Z)}createNode(Z=""){return new lU(this._graph,Z)}createCamera(Z=""){return new eX(this._graph,Z)}createSkin(Z=""){return new IP(this._graph,Z)}createMesh(Z=""){return new $G(this._graph,Z)}createPrimitive(){return new M8(this._graph)}createPrimitiveTarget(Z=""){return new EP(this._graph,Z)}createMaterial(Z=""){return new e4(this._graph,Z)}createTexture(Z=""){return new ZY(this._graph,Z)}createAnimation(Z=""){return new TP(this._graph,Z)}createAnimationChannel(Z=""){return new tX(this._graph,Z)}createAnimationSampler(Z=""){return new EQ(this._graph,Z)}createAccessor(Z="",J=null){if(!J)J=this.getRoot().listBuffers()[0];return new I0(this._graph,Z).setBuffer(J)}createBuffer(Z=""){return new kP(this._graph,Z)}}C6._GRAPH_DOCUMENTS=new WeakMap;class Ic{constructor(Z){this.extensionName="",this.prereadTypes=[],this.prewriteTypes=[],this.readDependencies=[],this.writeDependencies=[],this.document=void 0,this.required=!1,this.properties=new Set,this._listener=void 0,this.document=Z,Z.getRoot()._enableExtension(this),this._listener=(X)=>{let Y=X,$=Y.target;if($ instanceof IQ&&$.extensionName===this.extensionName){if(Y.type==="node:create")this._addExtensionProperty($);if(Y.type==="node:dispose")this._removeExtensionProperty($)}};let J=Z.getGraph();J.addEventListener("node:create",this._listener),J.addEventListener("node:dispose",this._listener)}dispose(){this.document.getRoot()._disableExtension(this);let Z=this.document.getGraph();Z.removeEventListener("node:create",this._listener),Z.removeEventListener("node:dispose",this._listener);for(let J of this.properties)J.dispose()}static register(){}isRequired(){return this.required}setRequired(Z){return this.required=Z,this}listProperties(){return Array.from(this.properties)}_addExtensionProperty(Z){return this.properties.add(Z),this}_removeExtensionProperty(Z){return this.properties.delete(Z),this}install(Z,J){return this}preread(Z,J){return this}prewrite(Z,J){return this}}Ic.EXTENSION_NAME=void 0;class vc{constructor(Z){this.jsonDoc=void 0,this.buffers=[],this.bufferViews=[],this.bufferViewBuffers=[],this.accessors=[],this.textures=[],this.textureInfos=new Map,this.materials=[],this.meshes=[],this.cameras=[],this.nodes=[],this.skins=[],this.animations=[],this.scenes=[],this.jsonDoc=Z}setTextureInfo(Z,J){if(this.textureInfos.set(Z,J),J.texCoord!==void 0)Z.setTexCoord(J.texCoord);if(J.extras!==void 0)Z.setExtras(J.extras);let X=this.jsonDoc.json.textures[J.index];if(X.sampler===void 0)return;let Y=this.jsonDoc.json.samplers[X.sampler];if(Y.magFilter!==void 0)Z.setMagFilter(Y.magFilter);if(Y.minFilter!==void 0)Z.setMinFilter(Y.minFilter);if(Y.wrapS!==void 0)Z.setWrapS(Y.wrapS);if(Y.wrapT!==void 0)Z.setWrapT(Y.wrapT)}}var Rc={logger:j5.DEFAULT_INSTANCE,extensions:[],dependencies:{}},JH1=new Set([a.BUFFER,a.TEXTURE,a.MATERIAL,a.MESH,a.PRIMITIVE,a.NODE,a.SCENE]);class Sc{static read(Z,J=Rc){let X=c6({},Rc,J),{json:Y}=Z,$=new C6().setLogger(X.logger);this.validate(Z,X);let Q=new vc(Z),K=Y.asset,W=$.getRoot().getAsset();if(K.copyright)W.copyright=K.copyright;if(K.extras)W.extras=K.extras;if(Y.extras!==void 0)$.getRoot().setExtras(c6({},Y.extras));let G=Y.extensionsUsed||[],z=Y.extensionsRequired||[];X.extensions.sort((P,C)=>P.EXTENSION_NAME>C.EXTENSION_NAME?1:-1);for(let P of X.extensions)if(G.includes(P.EXTENSION_NAME)){let C=$.createExtension(P).setRequired(z.includes(P.EXTENSION_NAME)),T=C.prereadTypes.filter((k)=>!JH1.has(k));if(T.length)X.logger.warn(`Preread hooks for some types (${T.join()}), requested by extension ${C.extensionName}, are unsupported. Please file an issue or a PR.`);for(let k of C.readDependencies)C.install(k,X.dependencies[k])}let V=Y.buffers||[];$.getRoot().listExtensionsUsed().filter((P)=>P.prereadTypes.includes(a.BUFFER)).forEach((P)=>P.preread(Q,a.BUFFER)),Q.buffers=V.map((P)=>{let C=$.createBuffer(P.name);if(P.extras)C.setExtras(P.extras);if(P.uri&&P.uri.indexOf("__")!==0)C.setURI(P.uri);return C});let H=Y.bufferViews||[];Q.bufferViewBuffers=H.map((P,C)=>{if(!Q.bufferViews[C]){let T=Z.json.buffers[P.buffer],k=T.uri?Z.resources[T.uri]:Z.resources[bU],A=P.byteOffset||0;Q.bufferViews[C]=n0.toView(k,A,P.byteLength)}return Q.buffers[P.buffer]});let q=Y.accessors||[];Q.accessors=q.map((P)=>{let C=Q.bufferViewBuffers[P.bufferView],T=$.createAccessor(P.name,C).setType(P.type);if(P.extras)T.setExtras(P.extras);if(P.normalized!==void 0)T.setNormalized(P.normalized);if(P.bufferView===void 0)return T;return T.setArray(fU(P,Q)),T});let F=Y.images||[],U=Y.textures||[];$.getRoot().listExtensionsUsed().filter((P)=>P.prereadTypes.includes(a.TEXTURE)).forEach((P)=>P.preread(Q,a.TEXTURE)),Q.textures=F.map((P)=>{let C=$.createTexture(P.name);if(P.extras)C.setExtras(P.extras);if(P.bufferView!==void 0){let T=Y.bufferViews[P.bufferView],k=Z.json.buffers[T.buffer],A=k.uri?Z.resources[k.uri]:Z.resources[bU],S=T.byteOffset||0,x=T.byteLength,I=A.slice(S,S+x);C.setImage(I)}else if(P.uri!==void 0){if(C.setImage(Z.resources[P.uri]),P.uri.indexOf("__")!==0)C.setURI(P.uri)}if(P.mimeType!==void 0)C.setMimeType(P.mimeType);else if(P.uri){let T=GZ.extension(P.uri);C.setMimeType(WZ.extensionToMimeType(T))}return C}),$.getRoot().listExtensionsUsed().filter((P)=>P.prereadTypes.includes(a.MATERIAL)).forEach((P)=>P.preread(Q,a.MATERIAL));let w=Y.materials||[];Q.materials=w.map((P)=>{let C=$.createMaterial(P.name);if(P.extras)C.setExtras(P.extras);if(P.alphaMode!==void 0)C.setAlphaMode(P.alphaMode);if(P.alphaCutoff!==void 0)C.setAlphaCutoff(P.alphaCutoff);if(P.doubleSided!==void 0)C.setDoubleSided(P.doubleSided);let T=P.pbrMetallicRoughness||{};if(T.baseColorFactor!==void 0)C.setBaseColorFactor(T.baseColorFactor);if(P.emissiveFactor!==void 0)C.setEmissiveFactor(P.emissiveFactor);if(T.metallicFactor!==void 0)C.setMetallicFactor(T.metallicFactor);if(T.roughnessFactor!==void 0)C.setRoughnessFactor(T.roughnessFactor);if(T.baseColorTexture!==void 0){let k=T.baseColorTexture,A=Q.textures[U[k.index].source];C.setBaseColorTexture(A),Q.setTextureInfo(C.getBaseColorTextureInfo(),k)}if(P.emissiveTexture!==void 0){let k=P.emissiveTexture,A=Q.textures[U[k.index].source];C.setEmissiveTexture(A),Q.setTextureInfo(C.getEmissiveTextureInfo(),k)}if(P.normalTexture!==void 0){let k=P.normalTexture,A=Q.textures[U[k.index].source];if(C.setNormalTexture(A),Q.setTextureInfo(C.getNormalTextureInfo(),k),P.normalTexture.scale!==void 0)C.setNormalScale(P.normalTexture.scale)}if(P.occlusionTexture!==void 0){let k=P.occlusionTexture,A=Q.textures[U[k.index].source];if(C.setOcclusionTexture(A),Q.setTextureInfo(C.getOcclusionTextureInfo(),k),P.occlusionTexture.strength!==void 0)C.setOcclusionStrength(P.occlusionTexture.strength)}if(T.metallicRoughnessTexture!==void 0){let k=T.metallicRoughnessTexture,A=Q.textures[U[k.index].source];C.setMetallicRoughnessTexture(A),Q.setTextureInfo(C.getMetallicRoughnessTextureInfo(),k)}return C}),$.getRoot().listExtensionsUsed().filter((P)=>P.prereadTypes.includes(a.MESH)).forEach((P)=>P.preread(Q,a.MESH));let L=Y.meshes||[];$.getRoot().listExtensionsUsed().filter((P)=>P.prereadTypes.includes(a.PRIMITIVE)).forEach((P)=>P.preread(Q,a.PRIMITIVE)),Q.meshes=L.map((P)=>{let C=$.createMesh(P.name);if(P.extras)C.setExtras(P.extras);if(P.weights!==void 0)C.setWeights(P.weights);return(P.primitives||[]).forEach((k)=>{let A=$.createPrimitive();if(k.extras)A.setExtras(k.extras);if(k.material!==void 0)A.setMaterial(Q.materials[k.material]);if(k.mode!==void 0)A.setMode(k.mode);for(let[I,v]of Object.entries(k.attributes||{}))A.setAttribute(I,Q.accessors[v]);if(k.indices!==void 0)A.setIndices(Q.accessors[k.indices]);let S=P.extras&&P.extras.targetNames||[];(k.targets||[]).forEach((I,v)=>{let f=S[v]||v.toString(),p=$.createPrimitiveTarget(f);for(let[n,o]of Object.entries(I))p.setAttribute(n,Q.accessors[o]);A.addTarget(p)}),C.addPrimitive(A)}),C});let j=Y.cameras||[];Q.cameras=j.map((P)=>{let C=$.createCamera(P.name).setType(P.type);if(P.extras)C.setExtras(P.extras);if(P.type===eX.Type.PERSPECTIVE){let T=P.perspective;if(C.setYFov(T.yfov),C.setZNear(T.znear),T.zfar!==void 0)C.setZFar(T.zfar);if(T.aspectRatio!==void 0)C.setAspectRatio(T.aspectRatio)}else{let T=P.orthographic;C.setZNear(T.znear).setZFar(T.zfar).setXMag(T.xmag).setYMag(T.ymag)}return C});let R=Y.nodes||[];$.getRoot().listExtensionsUsed().filter((P)=>P.prereadTypes.includes(a.NODE)).forEach((P)=>P.preread(Q,a.NODE)),Q.nodes=R.map((P)=>{let C=$.createNode(P.name);if(P.extras)C.setExtras(P.extras);if(P.translation!==void 0)C.setTranslation(P.translation);if(P.rotation!==void 0)C.setRotation(P.rotation);if(P.scale!==void 0)C.setScale(P.scale);if(P.matrix!==void 0){let T=[0,0,0],k=[0,0,0,1],A=[1,1,1];d0.decompose(P.matrix,T,k,A),C.setTranslation(T),C.setRotation(k),C.setScale(A)}if(P.weights!==void 0)C.setWeights(P.weights);return C});let O=Y.skins||[];Q.skins=O.map((P)=>{let C=$.createSkin(P.name);if(P.extras)C.setExtras(P.extras);if(P.inverseBindMatrices!==void 0)C.setInverseBindMatrices(Q.accessors[P.inverseBindMatrices]);if(P.skeleton!==void 0)C.setSkeleton(Q.nodes[P.skeleton]);for(let T of P.joints)C.addJoint(Q.nodes[T]);return C}),R.map((P,C)=>{let T=Q.nodes[C];if((P.children||[]).forEach((A)=>T.addChild(Q.nodes[A])),P.mesh!==void 0)T.setMesh(Q.meshes[P.mesh]);if(P.camera!==void 0)T.setCamera(Q.cameras[P.camera]);if(P.skin!==void 0)T.setSkin(Q.skins[P.skin])});let N=Y.animations||[];Q.animations=N.map((P)=>{let C=$.createAnimation(P.name);if(P.extras)C.setExtras(P.extras);let k=(P.samplers||[]).map((S)=>{let x=$.createAnimationSampler().setInput(Q.accessors[S.input]).setOutput(Q.accessors[S.output]).setInterpolation(S.interpolation||EQ.Interpolation.LINEAR);if(S.extras)x.setExtras(S.extras);return C.addSampler(x),x});return(P.channels||[]).forEach((S)=>{let x=$.createAnimationChannel().setSampler(k[S.sampler]).setTargetPath(S.target.path);if(S.target.node!==void 0)x.setTargetNode(Q.nodes[S.target.node]);if(S.extras)x.setExtras(S.extras);C.addChannel(x)}),C});let D=Y.scenes||[];if($.getRoot().listExtensionsUsed().filter((P)=>P.prereadTypes.includes(a.SCENE)).forEach((P)=>P.preread(Q,a.SCENE)),Q.scenes=D.map((P)=>{let C=$.createScene(P.name);if(P.extras)C.setExtras(P.extras);return(P.nodes||[]).map((k)=>Q.nodes[k]).forEach((k)=>C.addChild(k)),C}),Y.scene!==void 0)$.getRoot().setDefaultScene(Q.scenes[Y.scene]);return $.getRoot().listExtensionsUsed().forEach((P)=>P.read(Q)),q.forEach((P,C)=>{let T=Q.accessors[C],k=!!P.sparse,A=!P.bufferView&&!T.getArray();if(k||A)T.setSparse(!0).setArray(YH1(P,Q))}),$}static validate(Z,J){let X=Z.json;if(X.asset.version!=="2.0")throw new Error(`Unsupported glTF version, "${X.asset.version}".`);if(X.extensionsRequired){for(let Y of X.extensionsRequired)if(!J.extensions.find(($)=>$.EXTENSION_NAME===Y))throw new Error(`Missing required extension, "${Y}".`)}if(X.extensionsUsed){for(let Y of X.extensionsUsed)if(!J.extensions.find(($)=>$.EXTENSION_NAME===Y))J.logger.warn(`Missing optional extension, "${Y}".`)}}}function XH1(Z,J){let X=J.jsonDoc,Y=J.bufferViews[Z.bufferView],$=X.json.bufferViews[Z.bufferView],Q=VJ[Z.componentType],K=I0.getElementSize(Z.type),W=Q.BYTES_PER_ELEMENT,G=Z.byteOffset||0,z=new Q(Z.count*K),V=new DataView(Y.buffer,Y.byteOffset,Y.byteLength),H=$.byteStride;for(let q=0;q<Z.count;q++)for(let F=0;F<K;F++){let U=G+q*H+F*W,w;switch(Z.componentType){case I0.ComponentType.FLOAT:w=V.getFloat32(U,!0);break;case I0.ComponentType.UNSIGNED_INT:w=V.getUint32(U,!0);break;case I0.ComponentType.UNSIGNED_SHORT:w=V.getUint16(U,!0);break;case I0.ComponentType.UNSIGNED_BYTE:w=V.getUint8(U);break;case I0.ComponentType.SHORT:w=V.getInt16(U,!0);break;case I0.ComponentType.BYTE:w=V.getInt8(U);break;default:throw new Error(`Unexpected componentType "${Z.componentType}".`)}z[q*K+F]=w}return z}function fU(Z,J){let X=J.jsonDoc,Y=J.bufferViews[Z.bufferView],$=X.json.bufferViews[Z.bufferView],Q=VJ[Z.componentType],K=I0.getElementSize(Z.type),W=Q.BYTES_PER_ELEMENT,G=K*W;if($.byteStride!==void 0&&$.byteStride!==G)return XH1(Z,J);let z=Y.byteOffset+(Z.byteOffset||0),V=Z.count*K*W;return new Q(Y.buffer.slice(z,z+V))}function YH1(Z,J){let X=VJ[Z.componentType],Y=I0.getElementSize(Z.type),$;if(Z.bufferView!==void 0)$=fU(Z,J);else $=new X(Z.count*Y);let Q=Z.sparse;if(!Q)return $;let K=Q.count,W=c6({},Z,Q.indices,{count:K,type:"SCALAR"}),G=c6({},Z,Q.values,{count:K}),z=fU(W,J),V=fU(G,J);for(let H=0;H<W.count;H++)for(let q=0;q<Y;q++)$[z[H]*Y+q]=V[H*Y+q];return $}var YG;(function(Z){Z[Z.ARRAY_BUFFER=34962]="ARRAY_BUFFER",Z[Z.ELEMENT_ARRAY_BUFFER=34963]="ELEMENT_ARRAY_BUFFER"})(YG||(YG={}));class GJ{constructor(Z,J,X){this._doc=void 0,this.jsonDoc=void 0,this.options=void 0,this.accessorIndexMap=new Map,this.animationIndexMap=new Map,this.bufferIndexMap=new Map,this.cameraIndexMap=new Map,this.skinIndexMap=new Map,this.materialIndexMap=new Map,this.meshIndexMap=new Map,this.nodeIndexMap=new Map,this.imageIndexMap=new Map,this.textureDefIndexMap=new Map,this.textureInfoDefMap=new Map,this.samplerDefIndexMap=new Map,this.sceneIndexMap=new Map,this.imageBufferViews=[],this.otherBufferViews=new Map,this.otherBufferViewsIndexMap=new Map,this.extensionData={},this.bufferURIGenerator=void 0,this.imageURIGenerator=void 0,this.logger=void 0,this._accessorUsageMap=new Map,this.accessorUsageGroupedByParent=new Set(["ARRAY_BUFFER"]),this.accessorParents=new Map,this._doc=Z,this.jsonDoc=J,this.options=X;let Y=Z.getRoot(),$=Y.listBuffers().length,Q=Y.listTextures().length;this.bufferURIGenerator=new PP($>1,()=>X.basename||"buffer"),this.imageURIGenerator=new PP(Q>1,(K)=>$H1(Z,K)||X.basename||"texture"),this.logger=Z.getLogger()}createTextureInfoDef(Z,J){let X={magFilter:J.getMagFilter()||void 0,minFilter:J.getMinFilter()||void 0,wrapS:J.getWrapS(),wrapT:J.getWrapT()},Y=JSON.stringify(X);if(!this.samplerDefIndexMap.has(Y))this.samplerDefIndexMap.set(Y,this.jsonDoc.json.samplers.length),this.jsonDoc.json.samplers.push(X);let $={source:this.imageIndexMap.get(Z),sampler:this.samplerDefIndexMap.get(Y)},Q=JSON.stringify($);if(!this.textureDefIndexMap.has(Q))this.textureDefIndexMap.set(Q,this.jsonDoc.json.textures.length),this.jsonDoc.json.textures.push($);let K={index:this.textureDefIndexMap.get(Q)};if(J.getTexCoord()!==0)K.texCoord=J.getTexCoord();if(Object.keys(J.getExtras()).length>0)K.extras=J.getExtras();return this.textureInfoDefMap.set(J,K),K}createPropertyDef(Z){let J={};if(Z.getName())J.name=Z.getName();if(Object.keys(Z.getExtras()).length>0)J.extras=Z.getExtras();return J}createAccessorDef(Z){let J=this.createPropertyDef(Z);if(J.type=Z.getType(),J.componentType=Z.getComponentType(),J.count=Z.getCount(),this._doc.getGraph().listParentEdges(Z).some((Y)=>Y.getName()==="attributes"&&Y.getAttributes().key==="POSITION"||Y.getName()==="input"))J.max=Z.getMax([]).map(Math.fround),J.min=Z.getMin([]).map(Math.fround);if(Z.getNormalized())J.normalized=Z.getNormalized();return J}createImageData(Z,J,X){if(this.options.format===KZ.GLB)this.imageBufferViews.push(J),Z.bufferView=this.jsonDoc.json.bufferViews.length,this.jsonDoc.json.bufferViews.push({buffer:0,byteOffset:-1,byteLength:J.byteLength});else{let Y=WZ.mimeTypeToExtension(X.getMimeType());Z.uri=this.imageURIGenerator.createURI(X,Y),this.assignResourceURI(Z.uri,J,!1)}}assignResourceURI(Z,J,X){let Y=this.jsonDoc.resources;if(!(Z in Y)){Y[Z]=J;return}if(J===Y[Z]){this.logger.warn(`Duplicate resource URI, "${Z}".`);return}let $=`Resource URI "${Z}" already assigned to different data.`;if(!X){this.logger.warn($);return}throw new Error($)}getAccessorUsage(Z){let J=this._accessorUsageMap.get(Z);if(J)return J;if(Z.getSparse())return c5.SPARSE;for(let X of this._doc.getGraph().listParentEdges(Z)){let{usage:Y}=X.getAttributes();if(Y)return Y;if(X.getParent().propertyType!==a.ROOT)this.logger.warn(`Missing attribute ".usage" on edge, "${X.getName()}".`)}return c5.OTHER}addAccessorToUsageGroup(Z,J){let X=this._accessorUsageMap.get(Z);if(X&&X!==J)throw new Error(`Accessor with usage "${X}" cannot be reused as "${J}".`);return this._accessorUsageMap.set(Z,J),this}}GJ.BufferViewTarget=YG;GJ.BufferViewUsage=c5;GJ.USAGE_TO_TARGET={[c5.ARRAY_BUFFER]:YG.ARRAY_BUFFER,[c5.ELEMENT_ARRAY_BUFFER]:YG.ELEMENT_ARRAY_BUFFER};class PP{constructor(Z,J){this.multiple=void 0,this.basename=void 0,this.counter={},this.multiple=Z,this.basename=J}createURI(Z,J){if(Z.getURI())return Z.getURI();else if(!this.multiple)return`${this.basename(Z)}.${J}`;else{let X=this.basename(Z);return this.counter[X]=this.counter[X]||1,`${X}_${this.counter[X]++}.${J}`}}}function $H1(Z,J){let X=Z.getGraph().listParentEdges(J).find((Y)=>Y.getParent()!==Z.getRoot());return X?X.getName().replace(/texture$/i,""):""}var{BufferViewUsage:hU}=GJ,{UNSIGNED_INT:QH1,UNSIGNED_SHORT:KH1,UNSIGNED_BYTE:WH1}=I0.ComponentType,GH1=new Set([a.ACCESSOR,a.BUFFER,a.MATERIAL,a.MESH]);class _c{static write(Z,J){let X=Z.getGraph(),Y=Z.getRoot(),$={asset:c6({generator:`glTF-Transform ${Pc}`},Y.getAsset()),extras:c6({},Y.getExtras())},Q={json:$,resources:{}},K=new GJ(Z,Q,J),W=J.logger||j5.DEFAULT_INSTANCE,G=new Set(J.extensions.map((L)=>L.EXTENSION_NAME)),z=Z.getRoot().listExtensionsUsed().filter((L)=>G.has(L.extensionName)).sort((L,j)=>L.extensionName>j.extensionName?1:-1),V=Z.getRoot().listExtensionsRequired().filter((L)=>G.has(L.extensionName)).sort((L,j)=>L.extensionName>j.extensionName?1:-1);if(z.length<Z.getRoot().listExtensionsUsed().length)W.warn("Some extensions were not registered for I/O, and will not be written.");for(let L of z){let j=L.prewriteTypes.filter((R)=>!GH1.has(R));if(j.length)W.warn(`Prewrite hooks for some types (${j.join()}), requested by extension ${L.extensionName}, are unsupported. Please file an issue or a PR.`);for(let R of L.writeDependencies)L.install(R,J.dependencies[R])}function H(L,j,R,O){let N=[],D=0;for(let T of L){let k=K.createAccessorDef(T);k.bufferView=$.bufferViews.length;let A=T.getArray(),S=n0.pad(n0.toView(A));k.byteOffset=D,D+=S.byteLength,N.push(S),K.accessorIndexMap.set(T,$.accessors.length),$.accessors.push(k)}let P=n0.concat(N),C={buffer:j,byteOffset:R,byteLength:P.byteLength};if(O)C.target=O;return $.bufferViews.push(C),{buffers:N,byteLength:D}}function q(L,j,R){let O=L[0].getCount(),N=0;for(let k of L){let A=K.createAccessorDef(k);A.bufferView=$.bufferViews.length,A.byteOffset=N;let S=k.getElementSize(),x=k.getComponentSize();N+=n0.padNumber(S*x),K.accessorIndexMap.set(k,$.accessors.length),$.accessors.push(A)}let D=O*N,P=new ArrayBuffer(D),C=new DataView(P);for(let k=0;k<O;k++){let A=0;for(let S of L){let x=S.getElementSize(),I=S.getComponentSize(),v=S.getComponentType(),f=S.getArray();for(let p=0;p<x;p++){let n=k*N+A+p*I,o=f[k*x+p];switch(v){case I0.ComponentType.FLOAT:C.setFloat32(n,o,!0);break;case I0.ComponentType.BYTE:C.setInt8(n,o);break;case I0.ComponentType.SHORT:C.setInt16(n,o,!0);break;case I0.ComponentType.UNSIGNED_BYTE:C.setUint8(n,o);break;case I0.ComponentType.UNSIGNED_SHORT:C.setUint16(n,o,!0);break;case I0.ComponentType.UNSIGNED_INT:C.setUint32(n,o,!0);break;default:throw new Error("Unexpected component type: "+v)}}A+=n0.padNumber(x*I)}}let T={buffer:j,byteOffset:R,byteLength:D,byteStride:N,target:GJ.BufferViewTarget.ARRAY_BUFFER};return $.bufferViews.push(T),{byteLength:D,buffers:[new Uint8Array(P)]}}function F(L,j,R){let O=[],N=0,D=new Map,P=-1/0,C=!1;for(let v of L){let f=K.createAccessorDef(v);$.accessors.push(f),K.accessorIndexMap.set(v,$.accessors.length-1);let p=[],n=[],o=[],J0=new Array(v.getElementSize()).fill(0);for(let a0=0,v8=v.getCount();a0<v8;a0++){if(v.getElement(a0,o),d0.eq(o,J0,0))continue;P=Math.max(a0,P),p.push(a0);for(let s1=0;s1<o.length;s1++)n.push(o[s1])}let Q0=p.length,T0={accessorDef:f,count:Q0};if(D.set(v,T0),Q0===0)continue;if(Q0>v.getCount()/2)C=!0;let k0=VJ[v.getComponentType()];T0.indices=p,T0.values=new k0(n)}if(!Number.isFinite(P))return{buffers:O,byteLength:N};if(C)W.warn("Some sparse accessors have >50% non-zero elements, which may increase file size.");let T=P<255?Uint8Array:P<65535?Uint16Array:Uint32Array,k=P<255?WH1:P<65535?KH1:QH1,A={buffer:j,byteOffset:R+N,byteLength:0};for(let v of L){let f=D.get(v);if(f.count===0)continue;f.indicesByteOffset=A.byteLength;let p=n0.pad(n0.toView(new T(f.indices)));O.push(p),N+=p.byteLength,A.byteLength+=p.byteLength}$.bufferViews.push(A);let S=$.bufferViews.length-1,x={buffer:j,byteOffset:R+N,byteLength:0};for(let v of L){let f=D.get(v);if(f.count===0)continue;f.valuesByteOffset=x.byteLength;let p=n0.pad(n0.toView(f.values));O.push(p),N+=p.byteLength,x.byteLength+=p.byteLength}$.bufferViews.push(x);let I=$.bufferViews.length-1;for(let v of L){let f=D.get(v);if(f.count===0)continue;f.accessorDef.sparse={count:f.count,indices:{bufferView:S,byteOffset:f.indicesByteOffset,componentType:k},values:{bufferView:I,byteOffset:f.valuesByteOffset}}}return{buffers:O,byteLength:N}}if($.accessors=[],$.bufferViews=[],$.samplers=[],$.textures=[],$.images=Y.listTextures().map((L,j)=>{let R=K.createPropertyDef(L);if(L.getMimeType())R.mimeType=L.getMimeType();let O=L.getImage();if(O)K.createImageData(R,O,L);return K.imageIndexMap.set(L,j),R}),z.filter((L)=>L.prewriteTypes.includes(a.ACCESSOR)).forEach((L)=>L.prewrite(K,a.ACCESSOR)),Y.listAccessors().forEach((L)=>{let{accessorUsageGroupedByParent:j,accessorParents:R}=K;if(K.accessorIndexMap.has(L))return;let O=K.getAccessorUsage(L);if(K.addAccessorToUsageGroup(L,O),j.has(O)){let N=X.listParents(L).find((D)=>D.propertyType!==a.ROOT);R.set(L,N)}}),z.filter((L)=>L.prewriteTypes.includes(a.BUFFER)).forEach((L)=>L.prewrite(K,a.BUFFER)),(Y.listAccessors().length>0||K.otherBufferViews.size>0||Y.listTextures().length>0&&J.format===KZ.GLB)&&Y.listBuffers().length===0)throw new Error("Buffer required for Document resources, but none was found.");if($.buffers=[],Y.listBuffers().forEach((L,j)=>{let R=K.createPropertyDef(L),O=K.accessorUsageGroupedByParent,N=L.listParents().filter((x)=>x instanceof I0),D=new Set(N.map((x)=>K.accessorParents.get(x))),P=new Map(Array.from(D).map((x,I)=>[x,I])),C={};for(let x of N){var T;if(K.accessorIndexMap.has(x))continue;let I=K.getAccessorUsage(x),v=I;if(O.has(I)){let f=K.accessorParents.get(x);v+=`:${P.get(f)}`}C[T=v]||(C[T]={usage:I,accessors:[]}),C[v].accessors.push(x)}let k=[],A=$.buffers.length,S=0;for(let{usage:x,accessors:I}of Object.values(C))if(x===hU.ARRAY_BUFFER&&J.vertexLayout===yU.INTERLEAVED){let v=q(I,A,S);S+=v.byteLength;for(let f of v.buffers)k.push(f)}else if(x===hU.ARRAY_BUFFER)for(let v of I){let f=q([v],A,S);S+=f.byteLength;for(let p of f.buffers)k.push(p)}else if(x===hU.SPARSE){let v=F(I,A,S);S+=v.byteLength;for(let f of v.buffers)k.push(f)}else if(x===hU.ELEMENT_ARRAY_BUFFER){let v=GJ.BufferViewTarget.ELEMENT_ARRAY_BUFFER,f=H(I,A,S,v);S+=f.byteLength;for(let p of f.buffers)k.push(p)}else{let v=H(I,A,S);S+=v.byteLength;for(let f of v.buffers)k.push(f)}if(K.imageBufferViews.length&&j===0){for(let x=0;x<K.imageBufferViews.length;x++)if($.bufferViews[$.images[x].bufferView].byteOffset=S,S+=K.imageBufferViews[x].byteLength,k.push(K.imageBufferViews[x]),S%8){let I=8-S%8;S+=I,k.push(new Uint8Array(I))}}if(K.otherBufferViews.has(L))for(let x of K.otherBufferViews.get(L))$.bufferViews.push({buffer:A,byteOffset:S,byteLength:x.byteLength}),K.otherBufferViewsIndexMap.set(x,$.bufferViews.length-1),S+=x.byteLength,k.push(x);if(S){let x;if(J.format===KZ.GLB)x=bU;else x=K.bufferURIGenerator.createURI(L,"bin"),R.uri=x;R.byteLength=S,K.assignResourceURI(x,n0.concat(k),!0)}$.buffers.push(R),K.bufferIndexMap.set(L,j)}),Y.listAccessors().find((L)=>!L.getBuffer()))W.warn("Skipped writing one or more Accessors: no Buffer assigned.");z.filter((L)=>L.prewriteTypes.includes(a.MATERIAL)).forEach((L)=>L.prewrite(K,a.MATERIAL)),$.materials=Y.listMaterials().map((L,j)=>{let R=K.createPropertyDef(L);if(L.getAlphaMode()!==e4.AlphaMode.OPAQUE)R.alphaMode=L.getAlphaMode();if(L.getAlphaMode()===e4.AlphaMode.MASK)R.alphaCutoff=L.getAlphaCutoff();if(L.getDoubleSided())R.doubleSided=!0;if(R.pbrMetallicRoughness={},!d0.eq(L.getBaseColorFactor(),[1,1,1,1]))R.pbrMetallicRoughness.baseColorFactor=L.getBaseColorFactor();if(!d0.eq(L.getEmissiveFactor(),[0,0,0]))R.emissiveFactor=L.getEmissiveFactor();if(L.getRoughnessFactor()!==1)R.pbrMetallicRoughness.roughnessFactor=L.getRoughnessFactor();if(L.getMetallicFactor()!==1)R.pbrMetallicRoughness.metallicFactor=L.getMetallicFactor();if(L.getBaseColorTexture()){let O=L.getBaseColorTexture(),N=L.getBaseColorTextureInfo();R.pbrMetallicRoughness.baseColorTexture=K.createTextureInfoDef(O,N)}if(L.getEmissiveTexture()){let O=L.getEmissiveTexture(),N=L.getEmissiveTextureInfo();R.emissiveTexture=K.createTextureInfoDef(O,N)}if(L.getNormalTexture()){let O=L.getNormalTexture(),N=L.getNormalTextureInfo(),D=K.createTextureInfoDef(O,N);if(L.getNormalScale()!==1)D.scale=L.getNormalScale();R.normalTexture=D}if(L.getOcclusionTexture()){let O=L.getOcclusionTexture(),N=L.getOcclusionTextureInfo(),D=K.createTextureInfoDef(O,N);if(L.getOcclusionStrength()!==1)D.strength=L.getOcclusionStrength();R.occlusionTexture=D}if(L.getMetallicRoughnessTexture()){let O=L.getMetallicRoughnessTexture(),N=L.getMetallicRoughnessTextureInfo();R.pbrMetallicRoughness.metallicRoughnessTexture=K.createTextureInfoDef(O,N)}return K.materialIndexMap.set(L,j),R}),z.filter((L)=>L.prewriteTypes.includes(a.MESH)).forEach((L)=>L.prewrite(K,a.MESH)),$.meshes=Y.listMeshes().map((L,j)=>{let R=K.createPropertyDef(L),O=null;if(R.primitives=L.listPrimitives().map((N)=>{let D={attributes:{}};D.mode=N.getMode();let P=N.getMaterial();if(P)D.material=K.materialIndexMap.get(P);if(Object.keys(N.getExtras()).length)D.extras=N.getExtras();let C=N.getIndices();if(C)D.indices=K.accessorIndexMap.get(C);for(let T of N.listSemantics())D.attributes[T]=K.accessorIndexMap.get(N.getAttribute(T));for(let T of N.listTargets()){let k={};for(let A of T.listSemantics())k[A]=K.accessorIndexMap.get(T.getAttribute(A));D.targets=D.targets||[],D.targets.push(k)}if(N.listTargets().length&&!O)O=N.listTargets().map((T)=>T.getName());return D}),L.getWeights().length)R.weights=L.getWeights();if(O)R.extras=R.extras||{},R.extras.targetNames=O;return K.meshIndexMap.set(L,j),R}),$.cameras=Y.listCameras().map((L,j)=>{let R=K.createPropertyDef(L);if(R.type=L.getType(),R.type===eX.Type.PERSPECTIVE){R.perspective={znear:L.getZNear(),zfar:L.getZFar(),yfov:L.getYFov()};let O=L.getAspectRatio();if(O!==null)R.perspective.aspectRatio=O}else R.orthographic={znear:L.getZNear(),zfar:L.getZFar(),xmag:L.getXMag(),ymag:L.getYMag()};return K.cameraIndexMap.set(L,j),R}),$.nodes=Y.listNodes().map((L,j)=>{let R=K.createPropertyDef(L);if(!d0.eq(L.getTranslation(),[0,0,0]))R.translation=L.getTranslation();if(!d0.eq(L.getRotation(),[0,0,0,1]))R.rotation=L.getRotation();if(!d0.eq(L.getScale(),[1,1,1]))R.scale=L.getScale();if(L.getWeights().length)R.weights=L.getWeights();return K.nodeIndexMap.set(L,j),R}),$.skins=Y.listSkins().map((L,j)=>{let R=K.createPropertyDef(L),O=L.getInverseBindMatrices();if(O)R.inverseBindMatrices=K.accessorIndexMap.get(O);let N=L.getSkeleton();if(N)R.skeleton=K.nodeIndexMap.get(N);return R.joints=L.listJoints().map((D)=>K.nodeIndexMap.get(D)),K.skinIndexMap.set(L,j),R}),Y.listNodes().forEach((L,j)=>{let R=$.nodes[j],O=L.getMesh();if(O)R.mesh=K.meshIndexMap.get(O);let N=L.getCamera();if(N)R.camera=K.cameraIndexMap.get(N);let D=L.getSkin();if(D)R.skin=K.skinIndexMap.get(D);if(L.listChildren().length>0)R.children=L.listChildren().map((P)=>K.nodeIndexMap.get(P))}),$.animations=Y.listAnimations().map((L,j)=>{let R=K.createPropertyDef(L),O=new Map;return R.samplers=L.listSamplers().map((N,D)=>{let P=K.createPropertyDef(N);return P.input=K.accessorIndexMap.get(N.getInput()),P.output=K.accessorIndexMap.get(N.getOutput()),P.interpolation=N.getInterpolation(),O.set(N,D),P}),R.channels=L.listChannels().map((N)=>{let D=K.createPropertyDef(N);return D.sampler=O.get(N.getSampler()),D.target={node:K.nodeIndexMap.get(N.getTargetNode()),path:N.getTargetPath()},D}),K.animationIndexMap.set(L,j),R}),$.scenes=Y.listScenes().map((L,j)=>{let R=K.createPropertyDef(L);return R.nodes=L.listChildren().map((O)=>K.nodeIndexMap.get(O)),K.sceneIndexMap.set(L,j),R});let w=Y.getDefaultScene();if(w)$.scene=Y.listScenes().indexOf(w);return $.extensionsUsed=z.map((L)=>L.extensionName),$.extensionsRequired=V.map((L)=>L.extensionName),z.forEach((L)=>L.write(K)),zH1($),Q}}function zH1(Z){let J=[];for(let X in Z){let Y=Z[X];if(Array.isArray(Y)&&Y.length===0)J.push(X);else if(Y===null||Y==="")J.push(X);else if(Y&&typeof Y==="object"&&Object.keys(Y).length===0)J.push(X)}for(let X of J)delete Z[X]}var uU;(function(Z){Z[Z.JSON=1313821514]="JSON",Z[Z.BIN=5130562]="BIN"})(uU||(uU={}));class Ac{constructor(){this._logger=j5.DEFAULT_INSTANCE,this._extensions=new Set,this._dependencies={},this._vertexLayout=yU.INTERLEAVED,this.lastReadBytes=0,this.lastWriteBytes=0}setLogger(Z){return this._logger=Z,this}registerExtensions(Z){for(let J of Z)this._extensions.add(J),J.register();return this}registerDependencies(Z){return Object.assign(this._dependencies,Z),this}setVertexLayout(Z){return this._vertexLayout=Z,this}async read(Z){return await this.readJSON(await this.readAsJSON(Z))}async readAsJSON(Z){let J=await this.readURI(Z,"view");this.lastReadBytes=J.byteLength;let X=Nc(J)?this._binaryToJSON(J):{json:JSON.parse(n0.decodeText(J)),resources:{}};return await this._readResourcesExternal(X,this.dirname(Z)),this._readResourcesInternal(X),X}async readJSON(Z){return Z=this._copyJSON(Z),this._readResourcesInternal(Z),Sc.read(Z,{extensions:Array.from(this._extensions),dependencies:this._dependencies,logger:this._logger})}async binaryToJSON(Z){let J=this._binaryToJSON(n0.assertView(Z));this._readResourcesInternal(J);let X=J.json;if(X.buffers&&X.buffers.some((Y)=>VH1(J,Y)))throw new Error("Cannot resolve external buffers with binaryToJSON().");else if(X.images&&X.images.some((Y)=>HH1(J,Y)))throw new Error("Cannot resolve external images with binaryToJSON().");return J}async readBinary(Z){return this.readJSON(await this.binaryToJSON(n0.assertView(Z)))}async writeJSON(Z,J={}){if(J.format===KZ.GLB&&Z.getRoot().listBuffers().length>1)throw new Error("GLB must have 0\u20131 buffers.");return _c.write(Z,{format:J.format||KZ.GLTF,basename:J.basename||"",logger:this._logger,vertexLayout:this._vertexLayout,dependencies:c6({},this._dependencies),extensions:Array.from(this._extensions)})}async writeBinary(Z){let{json:J,resources:X}=await this.writeJSON(Z,{format:KZ.GLB}),Y=new Uint32Array([1179937895,2,12]),$=JSON.stringify(J),Q=n0.pad(n0.encodeText($),32),K=n0.toView(new Uint32Array([Q.byteLength,1313821514])),W=n0.concat([K,Q]);Y[Y.length-1]+=W.byteLength;let G=Object.values(X)[0];if(!G||!G.byteLength)return n0.concat([n0.toView(Y),W]);let z=n0.pad(G,0),V=n0.toView(new Uint32Array([z.byteLength,5130562])),H=n0.concat([V,z]);return Y[Y.length-1]+=H.byteLength,n0.concat([n0.toView(Y),W,H])}async _readResourcesExternal(Z,J){var X=this;let Y=Z.json.images||[],$=Z.json.buffers||[],Q=[...Y,...$].map(async function(K){let W=K.uri;if(!W||W.match(/data:/))return Promise.resolve();Z.resources[W]=await X.readURI(X.resolve(J,W),"view"),X.lastReadBytes+=Z.resources[W].byteLength});await Promise.all(Q)}_readResourcesInternal(Z){function J($){if(!$.uri)return;if($.uri in Z.resources){n0.assertView(Z.resources[$.uri]);return}if($.uri.match(/data:/)){let Q=`__${Ec()}.${GZ.extension($.uri)}`;Z.resources[Q]=n0.createBufferFromDataURI($.uri),$.uri=Q}}(Z.json.images||[]).forEach(($)=>{if($.bufferView===void 0&&$.uri===void 0)throw new Error("Missing resource URI or buffer view.");J($)}),(Z.json.buffers||[]).forEach(J)}_copyJSON(Z){let{images:J,buffers:X}=Z.json;if(Z={json:c6({},Z.json),resources:c6({},Z.resources)},J)Z.json.images=J.map((Y)=>c6({},Y));if(X)Z.json.buffers=X.map((Y)=>c6({},Y));return Z}_binaryToJSON(Z){if(!Nc(Z))throw new Error("Invalid glTF 2.0 binary.");let J=new Uint32Array(Z.buffer,Z.byteOffset+12,2);if(J[1]!==uU.JSON)throw new Error("Missing required GLB JSON chunk.");let X=20,Y=J[0],$=n0.decodeText(n0.toView(Z,X,Y)),Q=JSON.parse($),K=X+Y;if(Z.byteLength<=K)return{json:Q,resources:{}};let W=new Uint32Array(Z.buffer,Z.byteOffset+K,2);if(W[1]!==uU.BIN)return{json:Q,resources:{}};let G=W[0],z=n0.toView(Z,K+8,G);return{json:Q,resources:{[bU]:z}}}}function VH1(Z,J){return J.uri!==void 0&&!(J.uri in Z.resources)}function HH1(Z,J){return J.uri!==void 0&&!(J.uri in Z.resources)&&J.bufferView===void 0}function Nc(Z){if(Z.byteLength<3*Uint32Array.BYTES_PER_ELEMENT)return!1;let J=new Uint32Array(Z.buffer,Z.byteOffset,3);return J[0]===1179937895&&J[1]===2}class vP extends Ac{constructor(Z=null,J=O9.DEFAULT_INIT){super();this._fetch=void 0,this._fetchConfig=void 0,this._init=void 0,this._fetchEnabled=!1,this._fetch=Z,this._fetchConfig=J,this._init=this.init()}async init(){if(this._init)return this._init;return Promise.all([import("fs"),import("path")]).then(([Z,J])=>{this._fs=Z.promises,this._path=J})}setAllowNetwork(Z){if(Z&&!this._fetch)throw new Error("NodeIO requires a Fetch API implementation for HTTP requests.");return this._fetchEnabled=Z,this}async readURI(Z,J){if(await this.init(),O9.isAbsoluteURL(Z)){if(!this._fetchEnabled||!this._fetch)throw new Error("Network request blocked. Allow HTTP requests explicitly, if needed.");let X=await this._fetch(Z,this._fetchConfig);switch(J){case"view":return new Uint8Array(await X.arrayBuffer());case"text":return X.text()}}else switch(J){case"view":return this._fs.readFile(Z);case"text":return this._fs.readFile(Z,"utf8")}}resolve(Z,J){if(O9.isAbsoluteURL(Z)||O9.isAbsoluteURL(J))return O9.resolve(Z,J);return this._path.resolve(Z,decodeURIComponent(J))}dirname(Z){if(O9.isAbsoluteURL(Z))return O9.dirname(Z);return this._path.dirname(Z)}async write(Z,J){await this.init(),await(!!Z.match(/\.glb$/)?this._writeGLB(Z,J):this._writeGLTF(Z,J))}async _writeGLTF(Z,J){var X=this;this.lastWriteBytes=0;let{json:Y,resources:$}=await this.writeJSON(J,{format:KZ.GLTF,basename:GZ.basename(Z)}),{_fs:Q,_path:K}=this,W=K.dirname(Z),G=JSON.stringify(Y,null,2);await Q.writeFile(Z,G),this.lastWriteBytes+=G.length;for(let z of qH1(Object.keys($),10))await Promise.all(z.map(async function(V){if(O9.isAbsoluteURL(V)){if(O9.extension(V)==="bin")throw new Error(`Cannot write buffer to path "${V}".`);return}let H=K.join(W,decodeURIComponent(V));await Q.mkdir(K.dirname(H),{recursive:!0}),await Q.writeFile(H,$[V]),X.lastWriteBytes+=$[V].byteLength}))}async _writeGLB(Z,J){let X=await this.writeBinary(J);await this._fs.writeFile(Z,X),this.lastWriteBytes=X.byteLength}}function qH1(Z,J){let X=[];for(let Y=0,$=Z.length;Y<$;Y+=J){let Q=[];for(let K=0;K<J&&Y+K<$;K++)Q.push(Z[Y+K]);X.push(Q)}return X}var Ii=t(SP(),1),vi=t(qi(),1),YL1=t(Ei(),1);async function $L1(Z,J){if(!(Z instanceof Uint8Array))throw new Error("[ndarray-pixels] Input must be Uint8Array or Buffer.");let{data:X,info:Y}=await vi.default(Z).ensureAlpha().raw().toBuffer({resolveWithObject:!0});return Ii.default(new Uint8Array(X),[Y.width,Y.height,4],[4,4*Y.width|0,1],0)}async function Si(Z,J){return $L1(Z)}var QL1="v4.1.3",zD="@glb.bin",s;(function(Z){Z.ACCESSOR="Accessor",Z.ANIMATION="Animation",Z.ANIMATION_CHANNEL="AnimationChannel",Z.ANIMATION_SAMPLER="AnimationSampler",Z.BUFFER="Buffer",Z.CAMERA="Camera",Z.MATERIAL="Material",Z.MESH="Mesh",Z.PRIMITIVE="Primitive",Z.PRIMITIVE_TARGET="PrimitiveTarget",Z.NODE="Node",Z.ROOT="Root",Z.SCENE="Scene",Z.SKIN="Skin",Z.TEXTURE="Texture",Z.TEXTURE_INFO="TextureInfo"})(s||(s={}));var _i;(function(Z){Z.INTERLEAVED="interleaved",Z.SEPARATE="separate"})(_i||(_i={}));var i5;(function(Z){Z.ARRAY_BUFFER="ARRAY_BUFFER",Z.ELEMENT_ARRAY_BUFFER="ELEMENT_ARRAY_BUFFER",Z.INVERSE_BIND_MATRICES="INVERSE_BIND_MATRICES",Z.OTHER="OTHER",Z.SPARSE="SPARSE"})(i5||(i5={}));var n5;(function(Z){Z[Z.R=4096]="R",Z[Z.G=256]="G",Z[Z.B=16]="B",Z[Z.A=1]="A"})(n5||(n5={}));var YD;(function(Z){Z.GLTF="GLTF",Z.GLB="GLB"})(YD||(YD={}));var $D=typeof Float32Array!=="undefined"?Float32Array:Array;if(!Math.hypot)Math.hypot=function(){var Z=0,J=arguments.length;while(J--)Z+=arguments[J]*arguments[J];return Math.sqrt(Z)};function KL1(){var Z=new $D(3);if($D!=Float32Array)Z[0]=0,Z[1]=0,Z[2]=0;return Z}function XD(Z){var J=Z[0],X=Z[1],Y=Z[2];return Math.hypot(J,X,Y)}function WL1(Z,J,X){var Y=J[0],$=J[1],Q=J[2],K=X[3]*Y+X[7]*$+X[11]*Q+X[15];return K=K||1,Z[0]=(X[0]*Y+X[4]*$+X[8]*Q+X[12])/K,Z[1]=(X[1]*Y+X[5]*$+X[9]*Q+X[13])/K,Z[2]=(X[2]*Y+X[6]*$+X[10]*Q+X[14])/K,Z}(function(){var Z=KL1();return function(J,X,Y,$,Q,K){var W,G;if(!X)X=3;if(!Y)Y=0;if($)G=Math.min($*X+Y,J.length);else G=J.length;for(W=Y;W<G;W+=X)Z[0]=J[W],Z[1]=J[W+1],Z[2]=J[W+2],Q(Z,Z,K),J[W]=Z[0],J[W+1]=Z[1],J[W+2]=Z[2];return J}})();function fi(Z){let J=bi(),X=Z.propertyType===s.NODE?[Z]:Z.listChildren();for(let Y of X)Y.traverse(($)=>{let Q=$.getMesh();if(!Q)return;let K=GL1(Q,$.getWorldMatrix());if(K.min.every(isFinite)&&K.max.every(isFinite))QD(K.min,J),QD(K.max,J)});return J}function GL1(Z,J){let X=bi();for(let Y of Z.listPrimitives()){let $=Y.getAttribute("POSITION"),Q=Y.getIndices();if(!$)continue;let K=[0,0,0],W=[0,0,0];for(let G=0,z=Q?Q.getCount():$.getCount();G<z;G++){let V=Q?Q.getScalar(G):G;K=$.getElement(V,K),W=WL1(W,K,J),QD(W,X)}}return X}function QD(Z,J){for(let X=0;X<3;X++)J.min[X]=Math.min(Z[X],J.min[X]),J.max[X]=Math.max(Z[X],J.max[X])}function bi(){return{min:[1/0,1/0,1/0],max:[-1/0,-1/0,-1/0]}}class k6{static createBufferFromDataURI(Z){if(typeof Buffer==="undefined"){let J=atob(Z.split(",")[1]),X=new Uint8Array(J.length);for(let Y=0;Y<J.length;Y++)X[Y]=J.charCodeAt(Y);return X}else{let J=Z.split(",")[1],X=Z.indexOf("base64")>=0;return Buffer.from(J,X?"base64":"utf8")}}static encodeText(Z){return new TextEncoder().encode(Z)}static decodeText(Z){return new TextDecoder().decode(Z)}static concat(Z){let J=0;for(let $ of Z)J+=$.byteLength;let X=new Uint8Array(J),Y=0;for(let $ of Z)X.set($,Y),Y+=$.byteLength;return X}static pad(Z,J=0){let X=this.padNumber(Z.byteLength);if(X===Z.byteLength)return Z;let Y=new Uint8Array(X);if(Y.set(Z),J!==0)for(let $=Z.byteLength;$<X;$++)Y[$]=J;return Y}static padNumber(Z){return Math.ceil(Z/4)*4}static equals(Z,J){if(Z===J)return!0;if(Z.byteLength!==J.byteLength)return!1;let X=Z.byteLength;while(X--)if(Z[X]!==J[X])return!1;return!0}static toView(Z,J=0,X=1/0){return new Uint8Array(Z.buffer,Z.byteOffset+J,Math.min(Z.byteLength,X))}static assertView(Z){if(Z&&!ArrayBuffer.isView(Z))throw new Error(`Method requires Uint8Array parameter; received "${typeof Z}".`);return Z}}class yi{match(Z){return Z.length>=3&&Z[0]===255&&Z[1]===216&&Z[2]===255}getSize(Z){let J=new DataView(Z.buffer,Z.byteOffset+4),X,Y;while(J.byteLength){if(X=J.getUint16(0,!1),zL1(J,X),Y=J.getUint8(X+1),Y===192||Y===193||Y===194)return[J.getUint16(X+7,!1),J.getUint16(X+5,!1)];J=new DataView(Z.buffer,J.byteOffset+X+2)}throw new TypeError("Invalid JPG, no size found")}getChannels(Z){return 3}}class O2{match(Z){return Z.length>=8&&Z[0]===137&&Z[1]===80&&Z[2]===78&&Z[3]===71&&Z[4]===13&&Z[5]===10&&Z[6]===26&&Z[7]===10}getSize(Z){let J=new DataView(Z.buffer,Z.byteOffset);if(k6.decodeText(Z.slice(12,16))===O2.PNG_FRIED_CHUNK_NAME)return[J.getUint32(32,!1),J.getUint32(36,!1)];return[J.getUint32(16,!1),J.getUint32(20,!1)]}getChannels(Z){return 4}}O2.PNG_FRIED_CHUNK_NAME="CgBI";class V4{static registerFormat(Z,J){this.impls[Z]=J}static getMimeType(Z){for(let J in this.impls)if(this.impls[J].match(Z))return J;return null}static getSize(Z,J){if(!this.impls[J])return null;return this.impls[J].getSize(Z)}static getChannels(Z,J){if(!this.impls[J])return null;return this.impls[J].getChannels(Z)}static getVRAMByteLength(Z,J){if(!this.impls[J])return null;if(this.impls[J].getVRAMByteLength)return this.impls[J].getVRAMByteLength(Z);let X=0,Y=4,$=this.getSize(Z,J);if(!$)return null;while($[0]>1||$[1]>1)X+=$[0]*$[1]*Y,$[0]=Math.max(Math.floor($[0]/2),1),$[1]=Math.max(Math.floor($[1]/2),1);return X+=1*Y,X}static mimeTypeToExtension(Z){if(Z==="image/jpeg")return"jpg";return Z.split("/").pop()}static extensionToMimeType(Z){if(Z==="jpg")return"image/jpeg";if(!Z)return"";return`image/${Z}`}}V4.impls={"image/jpeg":new yi,"image/png":new O2};function zL1(Z,J){if(J>Z.byteLength)throw new TypeError("Corrupt JPG, exceeded buffer limits");if(Z.getUint8(J)!==255)throw new TypeError("Invalid JPG, marker table corrupted");return Z}class UG{static basename(Z){let J=Z.split(/[\\/]/).pop();return J.substring(0,J.lastIndexOf("."))}static extension(Z){if(Z.startsWith("data:image/")){let J=Z.match(/data:(image\/\w+)/)[1];return V4.mimeTypeToExtension(J)}else if(Z.startsWith("data:model/gltf+json"))return"gltf";else if(Z.startsWith("data:model/gltf-binary"))return"glb";else if(Z.startsWith("data:application/"))return"bin";return Z.split(/[\\/]/).pop().split(/[.]/).pop()}}function Ai(Z){return Object.prototype.toString.call(Z)==="[object Object]"}function QY(Z){if(Ai(Z)===!1)return!1;let J=Z.constructor;if(J===void 0)return!0;let X=J.prototype;if(Ai(X)===!1)return!1;if(Object.prototype.hasOwnProperty.call(X,"isPrototypeOf")===!1)return!1;return!0}var KD,WD;(function(Z){Z[Z.SILENT=4]="SILENT",Z[Z.ERROR=3]="ERROR",Z[Z.WARN=2]="WARN",Z[Z.INFO=1]="INFO",Z[Z.DEBUG=0]="DEBUG"})(WD||(WD={}));class Q7{constructor(Z){this.verbosity=void 0,this.verbosity=Z}debug(Z){if(this.verbosity<=Q7.Verbosity.DEBUG)console.debug(Z)}info(Z){if(this.verbosity<=Q7.Verbosity.INFO)console.info(Z)}warn(Z){if(this.verbosity<=Q7.Verbosity.WARN)console.warn(Z)}error(Z){if(this.verbosity<=Q7.Verbosity.ERROR)console.error(Z)}}KD=Q7;Q7.Verbosity=WD;Q7.DEFAULT_INSTANCE=new KD(KD.Verbosity.INFO);function VL1(Z){var J=Z[0],X=Z[1],Y=Z[2],$=Z[3],Q=Z[4],K=Z[5],W=Z[6],G=Z[7],z=Z[8],V=Z[9],H=Z[10],q=Z[11],F=Z[12],U=Z[13],w=Z[14],L=Z[15],j=J*K-X*Q,R=J*W-Y*Q,O=J*G-$*Q,N=X*W-Y*K,D=X*G-$*K,P=Y*G-$*W,C=z*U-V*F,T=z*w-H*F,k=z*L-q*F,A=V*w-H*U,S=V*L-q*U,x=H*L-q*w;return j*x-R*S+O*A+N*k-D*T+P*C}function HL1(Z,J,X){var Y=J[0],$=J[1],Q=J[2],K=J[3],W=J[4],G=J[5],z=J[6],V=J[7],H=J[8],q=J[9],F=J[10],U=J[11],w=J[12],L=J[13],j=J[14],R=J[15],O=X[0],N=X[1],D=X[2],P=X[3];return Z[0]=O*Y+N*W+D*H+P*w,Z[1]=O*$+N*G+D*q+P*L,Z[2]=O*Q+N*z+D*F+P*j,Z[3]=O*K+N*V+D*U+P*R,O=X[4],N=X[5],D=X[6],P=X[7],Z[4]=O*Y+N*W+D*H+P*w,Z[5]=O*$+N*G+D*q+P*L,Z[6]=O*Q+N*z+D*F+P*j,Z[7]=O*K+N*V+D*U+P*R,O=X[8],N=X[9],D=X[10],P=X[11],Z[8]=O*Y+N*W+D*H+P*w,Z[9]=O*$+N*G+D*q+P*L,Z[10]=O*Q+N*z+D*F+P*j,Z[11]=O*K+N*V+D*U+P*R,O=X[12],N=X[13],D=X[14],P=X[15],Z[12]=O*Y+N*W+D*H+P*w,Z[13]=O*$+N*G+D*q+P*L,Z[14]=O*Q+N*z+D*F+P*j,Z[15]=O*K+N*V+D*U+P*R,Z}function qL1(Z,J){var X=J[0],Y=J[1],$=J[2],Q=J[4],K=J[5],W=J[6],G=J[8],z=J[9],V=J[10];return Z[0]=Math.hypot(X,Y,$),Z[1]=Math.hypot(Q,K,W),Z[2]=Math.hypot(G,z,V),Z}function FL1(Z,J){var X=new $D(3);qL1(X,J);var Y=1/X[0],$=1/X[1],Q=1/X[2],K=J[0]*Y,W=J[1]*$,G=J[2]*Q,z=J[4]*Y,V=J[5]*$,H=J[6]*Q,q=J[8]*Y,F=J[9]*$,U=J[10]*Q,w=K+V+U,L=0;if(w>0)L=Math.sqrt(w+1)*2,Z[3]=0.25*L,Z[0]=(H-F)/L,Z[1]=(q-G)/L,Z[2]=(W-z)/L;else if(K>V&&K>U)L=Math.sqrt(1+K-V-U)*2,Z[3]=(H-F)/L,Z[0]=0.25*L,Z[1]=(W+z)/L,Z[2]=(q+G)/L;else if(V>U)L=Math.sqrt(1+V-K-U)*2,Z[3]=(q-G)/L,Z[0]=(W+z)/L,Z[1]=0.25*L,Z[2]=(H+F)/L;else L=Math.sqrt(1+U-K-V)*2,Z[3]=(W-z)/L,Z[0]=(q+G)/L,Z[1]=(H+F)/L,Z[2]=0.25*L;return Z}class W8{static identity(Z){return Z}static eq(Z,J,X=0.00001){if(Z.length!==J.length)return!1;for(let Y=0;Y<Z.length;Y++)if(Math.abs(Z[Y]-J[Y])>X)return!1;return!0}static clamp(Z,J,X){if(Z<J)return J;if(Z>X)return X;return Z}static decodeNormalizedInt(Z,J){switch(J){case 5126:return Z;case 5123:return Z/65535;case 5121:return Z/255;case 5122:return Math.max(Z/32767,-1);case 5120:return Math.max(Z/127,-1);default:throw new Error("Invalid component type.")}}static encodeNormalizedInt(Z,J){switch(J){case 5126:return Z;case 5123:return Math.round(W8.clamp(Z,0,1)*65535);case 5121:return Math.round(W8.clamp(Z,0,1)*255);case 5122:return Math.round(W8.clamp(Z,-1,1)*32767);case 5120:return Math.round(W8.clamp(Z,-1,1)*127);default:throw new Error("Invalid component type.")}}static decompose(Z,J,X,Y){let $=XD([Z[0],Z[1],Z[2]]),Q=XD([Z[4],Z[5],Z[6]]),K=XD([Z[8],Z[9],Z[10]]);if(VL1(Z)<0)$=-$;J[0]=Z[12],J[1]=Z[13],J[2]=Z[14];let G=Z.slice(),z=1/$,V=1/Q,H=1/K;G[0]*=z,G[1]*=z,G[2]*=z,G[4]*=V,G[5]*=V,G[6]*=V,G[8]*=H,G[9]*=H,G[10]*=H,FL1(X,G),Y[0]=$,Y[1]=Q,Y[2]=K}static compose(Z,J,X,Y){let $=Y,Q=J[0],K=J[1],W=J[2],G=J[3],z=Q+Q,V=K+K,H=W+W,q=Q*z,F=Q*V,U=Q*H,w=K*V,L=K*H,j=W*H,R=G*z,O=G*V,N=G*H,D=X[0],P=X[1],C=X[2];return $[0]=(1-(w+j))*D,$[1]=(F+N)*D,$[2]=(U-O)*D,$[3]=0,$[4]=(F-N)*P,$[5]=(1-(q+j))*P,$[6]=(L+R)*P,$[7]=0,$[8]=(U+O)*C,$[9]=(L-R)*C,$[10]=(1-(q+w))*C,$[11]=0,$[12]=Z[0],$[13]=Z[1],$[14]=Z[2],$[15]=1,$}}function UL1(Z,J){if(!!Z!==!!J)return!1;let X=Z.getChild(),Y=J.getChild();return X===Y||X.equals(Y)}function LL1(Z,J){if(!!Z!==!!J)return!1;let X=Z.values(),Y=J.values();if(X.length!==Y.length)return!1;for(let $=0;$<X.length;$++){let Q=X[$],K=Y[$];if(Q.getChild()===K.getChild())continue;if(!Q.getChild().equals(K.getChild()))return!1}return!0}function wL1(Z,J){if(!!Z!==!!J)return!1;let X=Z.keys(),Y=J.keys();if(X.length!==Y.length)return!1;for(let $ of X){let Q=Z.get($),K=J.get($);if(!!Q!==!!K)return!1;let W=Q.getChild(),G=K.getChild();if(W===G)continue;if(!W.equals(G))return!1}return!0}function gi(Z,J){if(Z===J)return!0;if(!!Z!==!!J||!Z||!J)return!1;if(Z.length!==J.length)return!1;for(let X=0;X<Z.length;X++)if(Z[X]!==J[X])return!1;return!0}function mi(Z,J){if(Z===J)return!0;if(!!Z!==!!J)return!1;if(!QY(Z)||!QY(J))return Z===J;let X=Z,Y=J,$=0,Q=0,K;for(K in X)$++;for(K in Y)Q++;if($!==Q)return!1;for(K in X){let W=X[K],G=Y[K];if(w2(W)&&w2(G)){if(!gi(W,G))return!1}else if(QY(W)&&QY(G)){if(!mi(W,G))return!1}else if(W!==G)return!1}return!0}function w2(Z){return Array.isArray(Z)||ArrayBuffer.isView(Z)}var xi="https://null.example";class VD{static dirname(Z){let J=Z.lastIndexOf("/");if(J===-1)return"./";return Z.substring(0,J+1)}static basename(Z){return UG.basename(new URL(Z,xi).pathname)}static extension(Z){return UG.extension(new URL(Z,xi).pathname)}static resolve(Z,J){if(!this.isRelativePath(J))return J;let X=Z.split("/"),Y=J.split("/");X.pop();for(let $=0;$<Y.length;$++){if(Y[$]===".")continue;if(Y[$]==="..")X.pop();else X.push(Y[$])}return X.join("/")}static isAbsoluteURL(Z){return this.PROTOCOL_REGEXP.test(Z)}static isRelativePath(Z){return!/^(?:[a-zA-Z]+:)?\//.test(Z)}}VD.DEFAULT_INIT={};VD.PROTOCOL_REGEXP=/^[a-zA-Z]+:\/\//;var wJ=(Z)=>Z,BL1=new Set;class M2 extends kQ{constructor(Z,J=""){super(Z);this[x0].name=J,this.init(),this.dispatchEvent({type:"create"})}getGraph(){return this.graph}getDefaults(){return Object.assign(super.getDefaults(),{name:"",extras:{}})}set(Z,J){if(Array.isArray(J))J=J.slice();return super.set(Z,J)}getName(){return this.get("name")}setName(Z){return this.set("name",Z)}getExtras(){return this.get("extras")}setExtras(Z){return this.set("extras",Z)}clone(){return new this.constructor(this.graph).copy(this,wJ)}copy(Z,J=wJ){for(let X in this[x0]){let Y=this[x0][X];if(Y instanceof w5){if(!this[G4].has(X))Y.dispose()}else if(Y instanceof D6||Y instanceof P0)for(let $ of Y.values())$.dispose();else if(Y instanceof r1)for(let $ of Y.values())$.dispose()}for(let X in Z[x0]){let Y=this[x0][X],$=Z[x0][X];if($ instanceof w5)if(this[G4].has(X))Y.getChild().copy(J($.getChild()),J);else this.setRef(X,J($.getChild()),$.getAttributes());else if($ instanceof P0||$ instanceof D6)for(let Q of $.values())this.addRef(X,J(Q.getChild()),Q.getAttributes());else if($ instanceof r1)for(let Q of $.keys()){let K=$.get(Q);this.setRefMap(X,Q,J(K.getChild()),K.getAttributes())}else if(QY($))this[x0][X]=JSON.parse(JSON.stringify($));else if(Array.isArray($)||$ instanceof ArrayBuffer||ArrayBuffer.isView($))this[x0][X]=$.slice();else this[x0][X]=$}return this}equals(Z,J=BL1){if(this===Z)return!0;if(this.propertyType!==Z.propertyType)return!1;for(let X in this[x0]){if(J.has(X))continue;let Y=this[x0][X],$=Z[x0][X];if(Y instanceof w5||$ instanceof w5){if(!UL1(Y,$))return!1}else if(Y instanceof P0||$ instanceof P0||Y instanceof D6||$ instanceof D6){if(!LL1(Y,$))return!1}else if(Y instanceof r1||$ instanceof r1){if(!wL1(Y,$))return!1}else if(QY(Y)||QY($)){if(!mi(Y,$))return!1}else if(w2(Y)||w2($)){if(!gi(Y,$))return!1}else if(Y!==$)return!1}return!0}detach(){return this.graph.disconnectParents(this,(Z)=>Z.propertyType!=="Root"),this}listParents(){return this.graph.listParents(this)}}class E6 extends M2{getDefaults(){return Object.assign(super.getDefaults(),{extensions:new r1})}getExtension(Z){return this.getRefMap("extensions",Z)}setExtension(Z,J){if(J)J._validateParent(this);return this.setRefMap("extensions",Z,J)}listExtensions(){return this.listRefMapValues("extensions")}}class M0 extends E6{init(){this.propertyType=s.ACCESSOR}getDefaults(){return Object.assign(super.getDefaults(),{array:null,type:M0.Type.SCALAR,componentType:M0.ComponentType.FLOAT,normalized:!1,sparse:!1,buffer:null})}static getElementSize(Z){switch(Z){case M0.Type.SCALAR:return 1;case M0.Type.VEC2:return 2;case M0.Type.VEC3:return 3;case M0.Type.VEC4:return 4;case M0.Type.MAT2:return 4;case M0.Type.MAT3:return 9;case M0.Type.MAT4:return 16;default:throw new Error("Unexpected type: "+Z)}}static getComponentSize(Z){switch(Z){case M0.ComponentType.BYTE:return 1;case M0.ComponentType.UNSIGNED_BYTE:return 1;case M0.ComponentType.SHORT:return 2;case M0.ComponentType.UNSIGNED_SHORT:return 2;case M0.ComponentType.UNSIGNED_INT:return 4;case M0.ComponentType.FLOAT:return 4;default:throw new Error("Unexpected component type: "+Z)}}getMinNormalized(Z){let J=this.getNormalized(),X=this.getElementSize(),Y=this.getComponentType();if(this.getMin(Z),J)for(let $=0;$<X;$++)Z[$]=W8.decodeNormalizedInt(Z[$],Y);return Z}getMin(Z){let J=this.getArray(),X=this.getCount(),Y=this.getElementSize();for(let $=0;$<Y;$++)Z[$]=1/0;for(let $=0;$<X*Y;$+=Y)for(let Q=0;Q<Y;Q++){let K=J[$+Q];if(Number.isFinite(K))Z[Q]=Math.min(Z[Q],K)}return Z}getMaxNormalized(Z){let J=this.getNormalized(),X=this.getElementSize(),Y=this.getComponentType();if(this.getMax(Z),J)for(let $=0;$<X;$++)Z[$]=W8.decodeNormalizedInt(Z[$],Y);return Z}getMax(Z){let J=this.get("array"),X=this.getCount(),Y=this.getElementSize();for(let $=0;$<Y;$++)Z[$]=-1/0;for(let $=0;$<X*Y;$+=Y)for(let Q=0;Q<Y;Q++){let K=J[$+Q];if(Number.isFinite(K))Z[Q]=Math.max(Z[Q],K)}return Z}getCount(){let Z=this.get("array");return Z?Z.length/this.getElementSize():0}getType(){return this.get("type")}setType(Z){return this.set("type",Z)}getElementSize(){return M0.getElementSize(this.get("type"))}getComponentSize(){return this.get("array").BYTES_PER_ELEMENT}getComponentType(){return this.get("componentType")}getNormalized(){return this.get("normalized")}setNormalized(Z){return this.set("normalized",Z)}getScalar(Z){let J=this.getElementSize(),X=this.getComponentType(),Y=this.getArray();if(this.getNormalized())return W8.decodeNormalizedInt(Y[Z*J],X);return Y[Z*J]}setScalar(Z,J){let X=this.getElementSize(),Y=this.getComponentType(),$=this.getArray();if(this.getNormalized())$[Z*X]=W8.encodeNormalizedInt(J,Y);else $[Z*X]=J;return this}getElement(Z,J){let X=this.getNormalized(),Y=this.getElementSize(),$=this.getComponentType(),Q=this.getArray();for(let K=0;K<Y;K++)if(X)J[K]=W8.decodeNormalizedInt(Q[Z*Y+K],$);else J[K]=Q[Z*Y+K];return J}setElement(Z,J){let X=this.getNormalized(),Y=this.getElementSize(),$=this.getComponentType(),Q=this.getArray();for(let K=0;K<Y;K++)if(X)Q[Z*Y+K]=W8.encodeNormalizedInt(J[K],$);else Q[Z*Y+K]=J[K];return this}getSparse(){return this.get("sparse")}setSparse(Z){return this.set("sparse",Z)}getBuffer(){return this.getRef("buffer")}setBuffer(Z){return this.setRef("buffer",Z)}getArray(){return this.get("array")}setArray(Z){return this.set("componentType",Z?jL1(Z):M0.ComponentType.FLOAT),this.set("array",Z),this}getByteLength(){let Z=this.get("array");return Z?Z.byteLength:0}}M0.Type={SCALAR:"SCALAR",VEC2:"VEC2",VEC3:"VEC3",VEC4:"VEC4",MAT2:"MAT2",MAT3:"MAT3",MAT4:"MAT4"};M0.ComponentType={BYTE:5120,UNSIGNED_BYTE:5121,SHORT:5122,UNSIGNED_SHORT:5123,UNSIGNED_INT:5125,FLOAT:5126};function jL1(Z){switch(Z.constructor){case Float32Array:return M0.ComponentType.FLOAT;case Uint32Array:return M0.ComponentType.UNSIGNED_INT;case Uint16Array:return M0.ComponentType.UNSIGNED_SHORT;case Uint8Array:return M0.ComponentType.UNSIGNED_BYTE;case Int16Array:return M0.ComponentType.SHORT;case Int8Array:return M0.ComponentType.BYTE;default:throw new Error("Unknown accessor componentType.")}}class HD extends E6{init(){this.propertyType=s.ANIMATION}getDefaults(){return Object.assign(super.getDefaults(),{channels:new P0,samplers:new P0})}addChannel(Z){return this.addRef("channels",Z)}removeChannel(Z){return this.removeRef("channels",Z)}listChannels(){return this.listRefs("channels")}addSampler(Z){return this.addRef("samplers",Z)}removeSampler(Z){return this.removeRef("samplers",Z)}listSamplers(){return this.listRefs("samplers")}}class wG extends E6{init(){this.propertyType=s.ANIMATION_CHANNEL}getDefaults(){return Object.assign(super.getDefaults(),{targetPath:null,targetNode:null,sampler:null})}getTargetPath(){return this.get("targetPath")}setTargetPath(Z){return this.set("targetPath",Z)}getTargetNode(){return this.getRef("targetNode")}setTargetNode(Z){return this.setRef("targetNode",Z)}getSampler(){return this.getRef("sampler")}setSampler(Z){return this.setRef("sampler",Z)}}wG.TargetPath={TRANSLATION:"translation",ROTATION:"rotation",SCALE:"scale",WEIGHTS:"weights"};class mQ extends E6{init(){this.propertyType=s.ANIMATION_SAMPLER}getDefaultAttributes(){return Object.assign(super.getDefaults(),{interpolation:mQ.Interpolation.LINEAR,input:null,output:null})}getInterpolation(){return this.get("interpolation")}setInterpolation(Z){return this.set("interpolation",Z)}getInput(){return this.getRef("input")}setInput(Z){return this.setRef("input",Z,{usage:i5.OTHER})}getOutput(){return this.getRef("output")}setOutput(Z){return this.setRef("output",Z,{usage:i5.OTHER})}}mQ.Interpolation={LINEAR:"LINEAR",STEP:"STEP",CUBICSPLINE:"CUBICSPLINE"};class qD extends E6{init(){this.propertyType=s.BUFFER}getDefaults(){return Object.assign(super.getDefaults(),{uri:""})}getURI(){return this.get("uri")}setURI(Z){return this.set("uri",Z)}}class BG extends E6{init(){this.propertyType=s.CAMERA}getDefaults(){return Object.assign(super.getDefaults(),{type:BG.Type.PERSPECTIVE,znear:0.1,zfar:100,aspectRatio:null,yfov:Math.PI*2*50/360,xmag:1,ymag:1})}getType(){return this.get("type")}setType(Z){return this.set("type",Z)}getZNear(){return this.get("znear")}setZNear(Z){return this.set("znear",Z)}getZFar(){return this.get("zfar")}setZFar(Z){return this.set("zfar",Z)}getAspectRatio(){return this.get("aspectRatio")}setAspectRatio(Z){return this.set("aspectRatio",Z)}getYFov(){return this.get("yfov")}setYFov(Z){return this.set("yfov",Z)}getXMag(){return this.get("xmag")}setXMag(Z){return this.set("xmag",Z)}getYMag(){return this.get("ymag")}setYMag(Z){return this.set("ymag",Z)}}BG.Type={PERSPECTIVE:"perspective",ORTHOGRAPHIC:"orthographic"};class n1 extends M2{_validateParent(Z){if(!this.parentTypes.includes(Z.propertyType))throw new Error(`Parent "${Z.propertyType}" invalid for child "${this.propertyType}".`)}}n1.EXTENSION_NAME=void 0;class C1 extends E6{init(){this.propertyType=s.TEXTURE_INFO}getDefaults(){return Object.assign(super.getDefaults(),{texCoord:0,magFilter:null,minFilter:null,wrapS:C1.WrapMode.REPEAT,wrapT:C1.WrapMode.REPEAT})}getTexCoord(){return this.get("texCoord")}setTexCoord(Z){return this.set("texCoord",Z)}getMagFilter(){return this.get("magFilter")}setMagFilter(Z){return this.set("magFilter",Z)}getMinFilter(){return this.get("minFilter")}setMinFilter(Z){return this.set("minFilter",Z)}getWrapS(){return this.get("wrapS")}setWrapS(Z){return this.set("wrapS",Z)}getWrapT(){return this.get("wrapT")}setWrapT(Z){return this.set("wrapT",Z)}}C1.WrapMode={CLAMP_TO_EDGE:33071,MIRRORED_REPEAT:33648,REPEAT:10497};C1.MagFilter={NEAREST:9728,LINEAR:9729};C1.MinFilter={NEAREST:9728,LINEAR:9729,NEAREST_MIPMAP_NEAREST:9984,LINEAR_MIPMAP_NEAREST:9985,NEAREST_MIPMAP_LINEAR:9986,LINEAR_MIPMAP_LINEAR:9987};var{R:F2,G:U2,B:L2,A:OL1}=n5;class jG extends E6{init(){this.propertyType=s.MATERIAL}getDefaults(){return Object.assign(super.getDefaults(),{alphaMode:jG.AlphaMode.OPAQUE,alphaCutoff:0.5,doubleSided:!1,baseColorFactor:[1,1,1,1],baseColorTexture:null,baseColorTextureInfo:new C1(this.graph,"baseColorTextureInfo"),emissiveFactor:[0,0,0],emissiveTexture:null,emissiveTextureInfo:new C1(this.graph,"emissiveTextureInfo"),normalScale:1,normalTexture:null,normalTextureInfo:new C1(this.graph,"normalTextureInfo"),occlusionStrength:1,occlusionTexture:null,occlusionTextureInfo:new C1(this.graph,"occlusionTextureInfo"),roughnessFactor:1,metallicFactor:1,metallicRoughnessTexture:null,metallicRoughnessTextureInfo:new C1(this.graph,"metallicRoughnessTextureInfo")})}getDoubleSided(){return this.get("doubleSided")}setDoubleSided(Z){return this.set("doubleSided",Z)}getAlpha(){return this.get("baseColorFactor")[3]}setAlpha(Z){let J=this.get("baseColorFactor").slice();return J[3]=Z,this.set("baseColorFactor",J)}getAlphaMode(){return this.get("alphaMode")}setAlphaMode(Z){return this.set("alphaMode",Z)}getAlphaCutoff(){return this.get("alphaCutoff")}setAlphaCutoff(Z){return this.set("alphaCutoff",Z)}getBaseColorFactor(){return this.get("baseColorFactor")}setBaseColorFactor(Z){return this.set("baseColorFactor",Z)}getBaseColorTexture(){return this.getRef("baseColorTexture")}getBaseColorTextureInfo(){return this.getRef("baseColorTexture")?this.getRef("baseColorTextureInfo"):null}setBaseColorTexture(Z){return this.setRef("baseColorTexture",Z,{channels:F2|U2|L2|OL1,isColor:!0})}getEmissiveFactor(){return this.get("emissiveFactor")}setEmissiveFactor(Z){return this.set("emissiveFactor",Z)}getEmissiveTexture(){return this.getRef("emissiveTexture")}getEmissiveTextureInfo(){return this.getRef("emissiveTexture")?this.getRef("emissiveTextureInfo"):null}setEmissiveTexture(Z){return this.setRef("emissiveTexture",Z,{channels:F2|U2|L2,isColor:!0})}getNormalScale(){return this.get("normalScale")}setNormalScale(Z){return this.set("normalScale",Z)}getNormalTexture(){return this.getRef("normalTexture")}getNormalTextureInfo(){return this.getRef("normalTexture")?this.getRef("normalTextureInfo"):null}setNormalTexture(Z){return this.setRef("normalTexture",Z,{channels:F2|U2|L2})}getOcclusionStrength(){return this.get("occlusionStrength")}setOcclusionStrength(Z){return this.set("occlusionStrength",Z)}getOcclusionTexture(){return this.getRef("occlusionTexture")}getOcclusionTextureInfo(){return this.getRef("occlusionTexture")?this.getRef("occlusionTextureInfo"):null}setOcclusionTexture(Z){return this.setRef("occlusionTexture",Z,{channels:F2})}getRoughnessFactor(){return this.get("roughnessFactor")}setRoughnessFactor(Z){return this.set("roughnessFactor",Z)}getMetallicFactor(){return this.get("metallicFactor")}setMetallicFactor(Z){return this.set("metallicFactor",Z)}getMetallicRoughnessTexture(){return this.getRef("metallicRoughnessTexture")}getMetallicRoughnessTextureInfo(){return this.getRef("metallicRoughnessTexture")?this.getRef("metallicRoughnessTextureInfo"):null}setMetallicRoughnessTexture(Z){return this.setRef("metallicRoughnessTexture",Z,{channels:U2|L2})}}jG.AlphaMode={OPAQUE:"OPAQUE",MASK:"MASK",BLEND:"BLEND"};class FD extends E6{init(){this.propertyType=s.MESH}getDefaults(){return Object.assign(super.getDefaults(),{weights:[],primitives:new P0})}addPrimitive(Z){return this.addRef("primitives",Z)}removePrimitive(Z){return this.removeRef("primitives",Z)}listPrimitives(){return this.listRefs("primitives")}getWeights(){return this.get("weights")}setWeights(Z){return this.set("weights",Z)}}class UD extends E6{init(){this.propertyType=s.NODE}getDefaults(){return Object.assign(super.getDefaults(),{translation:[0,0,0],rotation:[0,0,0,1],scale:[1,1,1],weights:[],camera:null,mesh:null,skin:null,children:new P0})}copy(Z,J=wJ){if(J===wJ)throw new Error("Node cannot be copied.");return super.copy(Z,J)}getTranslation(){return this.get("translation")}getRotation(){return this.get("rotation")}getScale(){return this.get("scale")}setTranslation(Z){return this.set("translation",Z)}setRotation(Z){return this.set("rotation",Z)}setScale(Z){return this.set("scale",Z)}getMatrix(){return W8.compose(this.get("translation"),this.get("rotation"),this.get("scale"),[])}setMatrix(Z){let J=this.get("translation").slice(),X=this.get("rotation").slice(),Y=this.get("scale").slice();return W8.decompose(Z,J,X,Y),this.set("translation",J).set("rotation",X).set("scale",Y)}getWorldTranslation(){let Z=[0,0,0];return W8.decompose(this.getWorldMatrix(),Z,[0,0,0,1],[1,1,1]),Z}getWorldRotation(){let Z=[0,0,0,1];return W8.decompose(this.getWorldMatrix(),[0,0,0],Z,[1,1,1]),Z}getWorldScale(){let Z=[1,1,1];return W8.decompose(this.getWorldMatrix(),[0,0,0],[0,0,0,1],Z),Z}getWorldMatrix(){let Z=[];for(let Y=this;Y!=null;Y=Y.getParentNode())Z.push(Y);let J,X=Z.pop().getMatrix();while(J=Z.pop())HL1(X,X,J.getMatrix());return X}addChild(Z){let J=Z.getParentNode();if(J)J.removeChild(Z);for(let X of Z.listParents())if(X.propertyType===s.SCENE)X.removeChild(Z);return this.addRef("children",Z)}removeChild(Z){return this.removeRef("children",Z)}listChildren(){return this.listRefs("children")}getParentNode(){for(let Z of this.listParents())if(Z.propertyType===s.NODE)return Z;return null}getMesh(){return this.getRef("mesh")}setMesh(Z){return this.setRef("mesh",Z)}getCamera(){return this.getRef("camera")}setCamera(Z){return this.setRef("camera",Z)}getSkin(){return this.getRef("skin")}setSkin(Z){return this.setRef("skin",Z)}getWeights(){return this.get("weights")}setWeights(Z){return this.set("weights",Z)}traverse(Z){Z(this);for(let J of this.listChildren())J.traverse(Z);return this}}class BJ extends E6{init(){this.propertyType=s.PRIMITIVE}getDefaults(){return Object.assign(super.getDefaults(),{mode:BJ.Mode.TRIANGLES,material:null,indices:null,attributes:new r1,targets:new P0})}getIndices(){return this.getRef("indices")}setIndices(Z){return this.setRef("indices",Z,{usage:i5.ELEMENT_ARRAY_BUFFER})}getAttribute(Z){return this.getRefMap("attributes",Z)}setAttribute(Z,J){return this.setRefMap("attributes",Z,J,{usage:i5.ARRAY_BUFFER})}listAttributes(){return this.listRefMapValues("attributes")}listSemantics(){return this.listRefMapKeys("attributes")}getMaterial(){return this.getRef("material")}setMaterial(Z){return this.setRef("material",Z)}getMode(){return this.get("mode")}setMode(Z){return this.set("mode",Z)}listTargets(){return this.listRefs("targets")}addTarget(Z){return this.addRef("targets",Z)}removeTarget(Z){return this.removeRef("targets",Z)}}BJ.Mode={POINTS:0,LINES:1,LINE_LOOP:2,LINE_STRIP:3,TRIANGLES:4,TRIANGLE_STRIP:5,TRIANGLE_FAN:6};class ui extends M2{init(){this.propertyType=s.PRIMITIVE_TARGET}getDefaults(){return Object.assign(super.getDefaults(),{attributes:new r1})}getAttribute(Z){return this.getRefMap("attributes",Z)}setAttribute(Z,J){return this.setRefMap("attributes",Z,J,{usage:i5.ARRAY_BUFFER})}listAttributes(){return this.listRefMapValues("attributes")}listSemantics(){return this.listRefMapKeys("attributes")}}function B2(){return B2=Object.assign?Object.assign.bind():function(Z){for(var J=1;J<arguments.length;J++){var X=arguments[J];for(var Y in X)({}).hasOwnProperty.call(X,Y)&&(Z[Y]=X[Y])}return Z},B2.apply(null,arguments)}class LD extends E6{init(){this.propertyType=s.SCENE}getDefaults(){return Object.assign(super.getDefaults(),{children:new P0})}copy(Z,J=wJ){if(J===wJ)throw new Error("Scene cannot be copied.");return super.copy(Z,J)}addChild(Z){let J=Z.getParentNode();if(J)J.removeChild(Z);return this.addRef("children",Z)}removeChild(Z){return this.removeRef("children",Z)}listChildren(){return this.listRefs("children")}traverse(Z){for(let J of this.listChildren())J.traverse(Z);return this}}class wD extends E6{init(){this.propertyType=s.SKIN}getDefaults(){return Object.assign(super.getDefaults(),{skeleton:null,inverseBindMatrices:null,joints:new P0})}getSkeleton(){return this.getRef("skeleton")}setSkeleton(Z){return this.setRef("skeleton",Z)}getInverseBindMatrices(){return this.getRef("inverseBindMatrices")}setInverseBindMatrices(Z){return this.setRef("inverseBindMatrices",Z,{usage:i5.INVERSE_BIND_MATRICES})}addJoint(Z){return this.addRef("joints",Z)}removeJoint(Z){return this.removeRef("joints",Z)}listJoints(){return this.listRefs("joints")}}class BD extends E6{init(){this.propertyType=s.TEXTURE}getDefaults(){return Object.assign(super.getDefaults(),{image:null,mimeType:"",uri:""})}getMimeType(){return this.get("mimeType")||V4.extensionToMimeType(UG.extension(this.get("uri")))}setMimeType(Z){return this.set("mimeType",Z)}getURI(){return this.get("uri")}setURI(Z){this.set("uri",Z);let J=V4.extensionToMimeType(UG.extension(Z));if(J)this.set("mimeType",J);return this}getImage(){return this.get("image")}setImage(Z){return this.set("image",k6.assertView(Z))}getSize(){let Z=this.get("image");if(!Z)return null;return V4.getSize(Z,this.getMimeType())}}class R2 extends E6{init(){this.propertyType=s.ROOT}getDefaults(){return Object.assign(super.getDefaults(),{asset:{generator:`glTF-Transform ${QL1}`,version:"2.0"},defaultScene:null,accessors:new P0,animations:new P0,buffers:new P0,cameras:new P0,materials:new P0,meshes:new P0,nodes:new P0,scenes:new P0,skins:new P0,textures:new P0})}constructor(Z){super(Z);this._extensions=new Set,Z.addEventListener("node:create",(J)=>{this._addChildOfRoot(J.target)})}clone(){throw new Error("Root cannot be cloned.")}copy(Z,J=wJ){if(J===wJ)throw new Error("Root cannot be copied.");this.set("asset",B2({},Z.get("asset"))),this.setName(Z.getName()),this.setExtras(B2({},Z.getExtras())),this.setDefaultScene(Z.getDefaultScene()?J(Z.getDefaultScene()):null);for(let X of Z.listRefMapKeys("extensions")){let Y=Z.getExtension(X);this.setExtension(X,J(Y))}return this}_addChildOfRoot(Z){if(Z instanceof LD)this.addRef("scenes",Z);else if(Z instanceof UD)this.addRef("nodes",Z);else if(Z instanceof BG)this.addRef("cameras",Z);else if(Z instanceof wD)this.addRef("skins",Z);else if(Z instanceof FD)this.addRef("meshes",Z);else if(Z instanceof jG)this.addRef("materials",Z);else if(Z instanceof BD)this.addRef("textures",Z);else if(Z instanceof HD)this.addRef("animations",Z);else if(Z instanceof M0)this.addRef("accessors",Z);else if(Z instanceof qD)this.addRef("buffers",Z);return this}getAsset(){return this.get("asset")}listExtensionsUsed(){return Array.from(this._extensions)}listExtensionsRequired(){return this.listExtensionsUsed().filter((Z)=>Z.isRequired())}_enableExtension(Z){return this._extensions.add(Z),this}_disableExtension(Z){return this._extensions.delete(Z),this}listScenes(){return this.listRefs("scenes")}setDefaultScene(Z){return this.setRef("defaultScene",Z)}getDefaultScene(){return this.getRef("defaultScene")}listNodes(){return this.listRefs("nodes")}listCameras(){return this.listRefs("cameras")}listSkins(){return this.listRefs("skins")}listMeshes(){return this.listRefs("meshes")}listMaterials(){return this.listRefs("materials")}listTextures(){return this.listRefs("textures")}listAnimations(){return this.listRefs("animations")}listAccessors(){return this.listRefs("accessors")}listBuffers(){return this.listRefs("buffers")}}class j2{static fromGraph(Z){return j2._GRAPH_DOCUMENTS.get(Z)||null}constructor(){this._graph=new TQ,this._root=new R2(this._graph),this._logger=Q7.DEFAULT_INSTANCE,j2._GRAPH_DOCUMENTS.set(this._graph,this)}getRoot(){return this._root}getGraph(){return this._graph}getLogger(){return this._logger}setLogger(Z){return this._logger=Z,this}clone(){throw new Error("Use 'cloneDocument(source)' from '@gltf-transform/functions'.")}merge(Z){throw new Error("Use 'mergeDocuments(target, source)' from '@gltf-transform/functions'.")}async transform(...Z){let J=Z.map((X)=>X.name);for(let X of Z)await X(this,{stack:J});return this}createExtension(Z){let J=Z.EXTENSION_NAME;return this.getRoot().listExtensionsUsed().find((Y)=>Y.extensionName===J)||new Z(this)}createScene(Z=""){return new LD(this._graph,Z)}createNode(Z=""){return new UD(this._graph,Z)}createCamera(Z=""){return new BG(this._graph,Z)}createSkin(Z=""){return new wD(this._graph,Z)}createMesh(Z=""){return new FD(this._graph,Z)}createPrimitive(){return new BJ(this._graph)}createPrimitiveTarget(Z=""){return new ui(this._graph,Z)}createMaterial(Z=""){return new jG(this._graph,Z)}createTexture(Z=""){return new BD(this._graph,Z)}createAnimation(Z=""){return new HD(this._graph,Z)}createAnimationChannel(Z=""){return new wG(this._graph,Z)}createAnimationSampler(Z=""){return new mQ(this._graph,Z)}createAccessor(Z="",J=null){if(!J)J=this.getRoot().listBuffers()[0];return new M0(this._graph,Z).setBuffer(J)}createBuffer(Z=""){return new qD(this._graph,Z)}}j2._GRAPH_DOCUMENTS=new WeakMap;class E1{constructor(Z){this.extensionName="",this.prereadTypes=[],this.prewriteTypes=[],this.readDependencies=[],this.writeDependencies=[],this.document=void 0,this.required=!1,this.properties=new Set,this._listener=void 0,this.document=Z,Z.getRoot()._enableExtension(this),this._listener=(X)=>{let Y=X,$=Y.target;if($ instanceof n1&&$.extensionName===this.extensionName){if(Y.type==="node:create")this._addExtensionProperty($);if(Y.type==="node:dispose")this._removeExtensionProperty($)}};let J=Z.getGraph();J.addEventListener("node:create",this._listener),J.addEventListener("node:dispose",this._listener)}dispose(){this.document.getRoot()._disableExtension(this);let Z=this.document.getGraph();Z.removeEventListener("node:create",this._listener),Z.removeEventListener("node:dispose",this._listener);for(let J of this.properties)J.dispose()}static register(){}isRequired(){return this.required}setRequired(Z){return this.required=Z,this}listProperties(){return Array.from(this.properties)}_addExtensionProperty(Z){return this.properties.add(Z),this}_removeExtensionProperty(Z){return this.properties.delete(Z),this}install(Z,J){return this}preread(Z,J){return this}prewrite(Z,J){return this}}E1.EXTENSION_NAME=void 0;var dz6={logger:Q7.DEFAULT_INSTANCE,extensions:[],dependencies:{}},cz6=new Set([s.BUFFER,s.TEXTURE,s.MATERIAL,s.MESH,s.PRIMITIVE,s.NODE,s.SCENE]);var LG;(function(Z){Z[Z.ARRAY_BUFFER=34962]="ARRAY_BUFFER",Z[Z.ELEMENT_ARRAY_BUFFER=34963]="ELEMENT_ARRAY_BUFFER"})(LG||(LG={}));class jJ{constructor(Z,J,X){this._doc=void 0,this.jsonDoc=void 0,this.options=void 0,this.accessorIndexMap=new Map,this.animationIndexMap=new Map,this.bufferIndexMap=new Map,this.cameraIndexMap=new Map,this.skinIndexMap=new Map,this.materialIndexMap=new Map,this.meshIndexMap=new Map,this.nodeIndexMap=new Map,this.imageIndexMap=new Map,this.textureDefIndexMap=new Map,this.textureInfoDefMap=new Map,this.samplerDefIndexMap=new Map,this.sceneIndexMap=new Map,this.imageBufferViews=[],this.otherBufferViews=new Map,this.otherBufferViewsIndexMap=new Map,this.extensionData={},this.bufferURIGenerator=void 0,this.imageURIGenerator=void 0,this.logger=void 0,this._accessorUsageMap=new Map,this.accessorUsageGroupedByParent=new Set(["ARRAY_BUFFER"]),this.accessorParents=new Map,this._doc=Z,this.jsonDoc=J,this.options=X;let Y=Z.getRoot(),$=Y.listBuffers().length,Q=Y.listTextures().length;this.bufferURIGenerator=new GD($>1,()=>X.basename||"buffer"),this.imageURIGenerator=new GD(Q>1,(K)=>ML1(Z,K)||X.basename||"texture"),this.logger=Z.getLogger()}createTextureInfoDef(Z,J){let X={magFilter:J.getMagFilter()||void 0,minFilter:J.getMinFilter()||void 0,wrapS:J.getWrapS(),wrapT:J.getWrapT()},Y=JSON.stringify(X);if(!this.samplerDefIndexMap.has(Y))this.samplerDefIndexMap.set(Y,this.jsonDoc.json.samplers.length),this.jsonDoc.json.samplers.push(X);let $={source:this.imageIndexMap.get(Z),sampler:this.samplerDefIndexMap.get(Y)},Q=JSON.stringify($);if(!this.textureDefIndexMap.has(Q))this.textureDefIndexMap.set(Q,this.jsonDoc.json.textures.length),this.jsonDoc.json.textures.push($);let K={index:this.textureDefIndexMap.get(Q)};if(J.getTexCoord()!==0)K.texCoord=J.getTexCoord();if(Object.keys(J.getExtras()).length>0)K.extras=J.getExtras();return this.textureInfoDefMap.set(J,K),K}createPropertyDef(Z){let J={};if(Z.getName())J.name=Z.getName();if(Object.keys(Z.getExtras()).length>0)J.extras=Z.getExtras();return J}createAccessorDef(Z){let J=this.createPropertyDef(Z);if(J.type=Z.getType(),J.componentType=Z.getComponentType(),J.count=Z.getCount(),this._doc.getGraph().listParentEdges(Z).some((Y)=>Y.getName()==="attributes"&&Y.getAttributes().key==="POSITION"||Y.getName()==="input"))J.max=Z.getMax([]).map(Math.fround),J.min=Z.getMin([]).map(Math.fround);if(Z.getNormalized())J.normalized=Z.getNormalized();return J}createImageData(Z,J,X){if(this.options.format===YD.GLB)this.imageBufferViews.push(J),Z.bufferView=this.jsonDoc.json.bufferViews.length,this.jsonDoc.json.bufferViews.push({buffer:0,byteOffset:-1,byteLength:J.byteLength});else{let Y=V4.mimeTypeToExtension(X.getMimeType());Z.uri=this.imageURIGenerator.createURI(X,Y),this.assignResourceURI(Z.uri,J,!1)}}assignResourceURI(Z,J,X){let Y=this.jsonDoc.resources;if(!(Z in Y)){Y[Z]=J;return}if(J===Y[Z]){this.logger.warn(`Duplicate resource URI, "${Z}".`);return}let $=`Resource URI "${Z}" already assigned to different data.`;if(!X){this.logger.warn($);return}throw new Error($)}getAccessorUsage(Z){let J=this._accessorUsageMap.get(Z);if(J)return J;if(Z.getSparse())return i5.SPARSE;for(let X of this._doc.getGraph().listParentEdges(Z)){let{usage:Y}=X.getAttributes();if(Y)return Y;if(X.getParent().propertyType!==s.ROOT)this.logger.warn(`Missing attribute ".usage" on edge, "${X.getName()}".`)}return i5.OTHER}addAccessorToUsageGroup(Z,J){let X=this._accessorUsageMap.get(Z);if(X&&X!==J)throw new Error(`Accessor with usage "${X}" cannot be reused as "${J}".`);return this._accessorUsageMap.set(Z,J),this}}jJ.BufferViewTarget=LG;jJ.BufferViewUsage=i5;jJ.USAGE_TO_TARGET={[i5.ARRAY_BUFFER]:LG.ARRAY_BUFFER,[i5.ELEMENT_ARRAY_BUFFER]:LG.ELEMENT_ARRAY_BUFFER};class GD{constructor(Z,J){this.multiple=void 0,this.basename=void 0,this.counter={},this.multiple=Z,this.basename=J}createURI(Z,J){if(Z.getURI())return Z.getURI();else if(!this.multiple)return`${this.basename(Z)}.${J}`;else{let X=this.basename(Z);return this.counter[X]=this.counter[X]||1,`${X}_${this.counter[X]++}.${J}`}}}function ML1(Z,J){let X=Z.getGraph().listParentEdges(J).find((Y)=>Y.getParent()!==Z.getRoot());return X?X.getName().replace(/texture$/i,""):""}var{UNSIGNED_INT:lz6,UNSIGNED_SHORT:pz6,UNSIGNED_BYTE:iz6}=M0.ComponentType,nz6=new Set([s.ACCESSOR,s.BUFFER,s.MATERIAL,s.MESH]);var hi;(function(Z){Z[Z.JSON=1313821514]="JSON",Z[Z.BIN=5130562]="BIN"})(hi||(hi={}));var ci=163,li=166;function RL1(){return{vkFormat:0,typeSize:1,pixelWidth:0,pixelHeight:0,pixelDepth:0,layerCount:0,faceCount:1,supercompressionScheme:0,levels:[],dataFormatDescriptor:[{vendorId:0,descriptorType:0,versionNumber:2,colorModel:0,colorPrimaries:1,transferFunction:2,flags:0,texelBlockDimension:[0,0,0,0],bytesPlane:[0,0,0,0,0,0,0,0],samples:[]}],keyValue:{},globalData:null}}class uQ{constructor(Z,J,X,Y){this._dataView=void 0,this._littleEndian=void 0,this._offset=void 0,this._dataView=new DataView(Z.buffer,Z.byteOffset+J,X),this._littleEndian=Y,this._offset=0}_nextUint8(){let Z=this._dataView.getUint8(this._offset);return this._offset+=1,Z}_nextUint16(){let Z=this._dataView.getUint16(this._offset,this._littleEndian);return this._offset+=2,Z}_nextUint32(){let Z=this._dataView.getUint32(this._offset,this._littleEndian);return this._offset+=4,Z}_nextUint64(){let Z=this._dataView.getUint32(this._offset,this._littleEndian),J=this._dataView.getUint32(this._offset+4,this._littleEndian),X=Z+4294967296*J;return this._offset+=8,X}_nextInt32(){let Z=this._dataView.getInt32(this._offset,this._littleEndian);return this._offset+=4,Z}_nextUint8Array(Z){let J=new Uint8Array(this._dataView.buffer,this._dataView.byteOffset+this._offset,Z);return this._offset+=Z,J}_skip(Z){return this._offset+=Z,this}_scan(Z,J=0){let X=this._offset,Y=0;while(this._dataView.getUint8(this._offset)!==J&&Y<Z)Y++,this._offset++;if(Y<Z)this._offset++;return new Uint8Array(this._dataView.buffer,this._dataView.byteOffset+X,Y)}}var oz6=new Uint8Array([0]),n6=[171,75,84,88,32,50,48,187,13,10,26,10];function di(Z){return new TextDecoder().decode(Z)}function N2(Z){let J=new Uint8Array(Z.buffer,Z.byteOffset,n6.length);if(J[0]!==n6[0]||J[1]!==n6[1]||J[2]!==n6[2]||J[3]!==n6[3]||J[4]!==n6[4]||J[5]!==n6[5]||J[6]!==n6[6]||J[7]!==n6[7]||J[8]!==n6[8]||J[9]!==n6[9]||J[10]!==n6[10]||J[11]!==n6[11])throw new Error("Missing KTX 2.0 identifier.");let X=RL1(),Y=17*Uint32Array.BYTES_PER_ELEMENT,$=new uQ(Z,n6.length,Y,!0);X.vkFormat=$._nextUint32(),X.typeSize=$._nextUint32(),X.pixelWidth=$._nextUint32(),X.pixelHeight=$._nextUint32(),X.pixelDepth=$._nextUint32(),X.layerCount=$._nextUint32(),X.faceCount=$._nextUint32();let Q=$._nextUint32();X.supercompressionScheme=$._nextUint32();let K=$._nextUint32(),W=$._nextUint32(),G=$._nextUint32(),z=$._nextUint32(),V=$._nextUint64(),H=$._nextUint64(),q=Q*3*8,F=new uQ(Z,n6.length+Y,q,!0);for(let H6=0;H6<Q;H6++)X.levels.push({levelData:new Uint8Array(Z.buffer,Z.byteOffset+F._nextUint64(),F._nextUint64()),uncompressedByteLength:F._nextUint64()});let U=new uQ(Z,K,W,!0);U._skip(4);let w=U._nextUint16(),L=U._nextUint16(),j=U._nextUint16(),R=U._nextUint16(),O=U._nextUint8(),N=U._nextUint8(),D=U._nextUint8(),P=U._nextUint8(),C=[U._nextUint8(),U._nextUint8(),U._nextUint8(),U._nextUint8()],T=[U._nextUint8(),U._nextUint8(),U._nextUint8(),U._nextUint8(),U._nextUint8(),U._nextUint8(),U._nextUint8(),U._nextUint8()],A={vendorId:w,descriptorType:L,versionNumber:j,colorModel:O,colorPrimaries:N,transferFunction:D,flags:P,texelBlockDimension:C,bytesPlane:T,samples:[]},S=6,x=4,I=(R/4-S)/x;for(let H6=0;H6<I;H6++){let a7={bitOffset:U._nextUint16(),bitLength:U._nextUint8(),channelType:U._nextUint8(),samplePosition:[U._nextUint8(),U._nextUint8(),U._nextUint8(),U._nextUint8()],sampleLower:Number.NEGATIVE_INFINITY,sampleUpper:Number.POSITIVE_INFINITY};if(a7.channelType&64)a7.sampleLower=U._nextInt32(),a7.sampleUpper=U._nextInt32();else a7.sampleLower=U._nextUint32(),a7.sampleUpper=U._nextUint32();A.samples[H6]=a7}X.dataFormatDescriptor.length=0,X.dataFormatDescriptor.push(A);let v=new uQ(Z,G,z,!0);while(v._offset<z){let H6=v._nextUint32(),a7=v._scan(H6),Mq=di(a7);if(X.keyValue[Mq]=v._nextUint8Array(H6-a7.byteLength-1),Mq.match(/^ktx/i)){let Uf=di(X.keyValue[Mq]);X.keyValue[Mq]=Uf.substring(0,Uf.lastIndexOf("\x00"))}let CX1=H6%4?4-H6%4:0;v._skip(CX1)}if(H<=0)return X;let f=new uQ(Z,V,H,!0),p=f._nextUint16(),n=f._nextUint16(),o=f._nextUint32(),J0=f._nextUint32(),Q0=f._nextUint32(),T0=f._nextUint32(),k0=[];for(let H6=0;H6<Q;H6++)k0.push({imageFlags:f._nextUint32(),rgbSliceByteOffset:f._nextUint32(),rgbSliceByteLength:f._nextUint32(),alphaSliceByteOffset:f._nextUint32(),alphaSliceByteLength:f._nextUint32()});let a0=V+f._offset,v8=a0+o,s1=v8+J0,d4=s1+Q0,r9=new Uint8Array(Z.buffer,Z.byteOffset+a0,o),e$=new Uint8Array(Z.buffer,Z.byteOffset+v8,J0),ZQ=new Uint8Array(Z.buffer,Z.byteOffset+s1,Q0),hX=new Uint8Array(Z.buffer,Z.byteOffset+d4,T0);return X.globalData={endpointCount:p,selectorCount:n,imageDescs:k0,endpointsData:r9,selectorsData:e$,tablesData:ZQ,extendedData:hX},X}var ND="EXT_mesh_gpu_instancing",OD="EXT_meshopt_compression",NL1="EXT_texture_webp",PL1="EXT_texture_avif",$n="KHR_draco_mesh_compression",PD="KHR_lights_punctual",DD="KHR_materials_anisotropy",CD="KHR_materials_clearcoat",TD="KHR_materials_diffuse_transmission",kD="KHR_materials_dispersion",ED="KHR_materials_emissive_strength",ID="KHR_materials_ior",vD="KHR_materials_iridescence",SD="KHR_materials_pbrSpecularGlossiness",_D="KHR_materials_sheen",AD="KHR_materials_specular",xD="KHR_materials_transmission",hD="KHR_materials_unlit",fD="KHR_materials_volume",MY="KHR_materials_variants",DL1="KHR_mesh_quantization",CL1="KHR_texture_basisu",bD="KHR_texture_transform",P2="KHR_xmp_json_ld",MD="INSTANCE_ATTRIBUTE";class yD extends n1{init(){this.extensionName=ND,this.propertyType="InstancedMesh",this.parentTypes=[s.NODE]}getDefaults(){return Object.assign(super.getDefaults(),{attributes:new r1})}getAttribute(Z){return this.getRefMap("attributes",Z)}setAttribute(Z,J){return this.setRefMap("attributes",Z,J,{usage:MD})}listAttributes(){return this.listRefMapValues("attributes")}listSemantics(){return this.listRefMapKeys("attributes")}}yD.EXTENSION_NAME=ND;var KY=ND;class T2 extends E1{constructor(...Z){super(...Z);this.extensionName=KY,this.provideTypes=[s.NODE],this.prewriteTypes=[s.ACCESSOR]}createInstancedMesh(){return new yD(this.document.getGraph())}read(Z){return(Z.jsonDoc.json.nodes||[]).forEach((Y,$)=>{if(!Y.extensions||!Y.extensions[KY])return;let Q=Y.extensions[KY],K=this.createInstancedMesh();for(let W in Q.attributes)K.setAttribute(W,Z.accessors[Q.attributes[W]]);Z.nodes[$].setExtension(KY,K)}),this}prewrite(Z){Z.accessorUsageGroupedByParent.add(MD);for(let J of this.properties)for(let X of J.listAttributes())Z.addAccessorToUsageGroup(X,MD);return this}write(Z){let J=Z.jsonDoc;return this.document.getRoot().listNodes().forEach((X)=>{let Y=X.getExtension(KY);if(Y){let $=Z.nodeIndexMap.get(X),Q=J.json.nodes[$],K={attributes:{}};Y.listSemantics().forEach((W)=>{let G=Y.getAttribute(W);K.attributes[W]=Z.accessorIndexMap.get(G)}),Q.extensions=Q.extensions||{},Q.extensions[KY]=K}}),this}}T2.EXTENSION_NAME=KY;function qZ(){return qZ=Object.assign?Object.assign.bind():function(Z){for(var J=1;J<arguments.length;J++){var X=arguments[J];for(var Y in X)({}).hasOwnProperty.call(X,Y)&&(Z[Y]=X[Y])}return Z},qZ.apply(null,arguments)}var NG;(function(Z){Z.QUANTIZE="quantize",Z.FILTER="filter"})(NG||(NG={}));var cQ;(function(Z){Z.ATTRIBUTES="ATTRIBUTES",Z.TRIANGLES="TRIANGLES",Z.INDICES="INDICES"})(cQ||(cQ={}));var G8;(function(Z){Z.NONE="NONE",Z.OCTAHEDRAL="OCTAHEDRAL",Z.QUATERNION="QUATERNION",Z.EXPONENTIAL="EXPONENTIAL"})(G8||(G8={}));var{BYTE:TL1,SHORT:pi,FLOAT:kL1}=M0.ComponentType,{encodeNormalizedInt:ii,decodeNormalizedInt:RD}=W8;function EL1(Z,J,X,Y){let{filter:$,bits:Q}=Y,K={array:Z.getArray(),byteStride:Z.getElementSize()*Z.getComponentSize(),componentType:Z.getComponentType(),normalized:Z.getNormalized()};if(X!==cQ.ATTRIBUTES)return K;if($!==G8.NONE){let W=Z.getNormalized()?IL1(Z):new Float32Array(K.array);switch($){case G8.EXPONENTIAL:K.byteStride=Z.getElementSize()*4,K.componentType=kL1,K.normalized=!1,K.array=J.encodeFilterExp(W,Z.getCount(),K.byteStride,Q);break;case G8.OCTAHEDRAL:K.byteStride=Q>8?8:4,K.componentType=Q>8?pi:TL1,K.normalized=!0,W=Z.getElementSize()===3?SL1(W):W,K.array=J.encodeFilterOct(W,Z.getCount(),K.byteStride,Q);break;case G8.QUATERNION:K.byteStride=8,K.componentType=pi,K.normalized=!0,K.array=J.encodeFilterQuat(W,Z.getCount(),K.byteStride,Q);break;default:throw new Error("Invalid filter.")}if(K.min=Z.getMin([]),K.max=Z.getMax([]),Z.getNormalized())K.min=K.min.map((G)=>RD(G,Z.getComponentType())),K.max=K.max.map((G)=>RD(G,Z.getComponentType()));if(K.normalized)K.min=K.min.map((G)=>ii(G,K.componentType)),K.max=K.max.map((G)=>ii(G,K.componentType))}else if(K.byteStride%4)K.array=vL1(K.array,Z.getElementSize()),K.byteStride=K.array.byteLength/Z.getCount();return K}function IL1(Z){let J=Z.getComponentType(),X=Z.getArray(),Y=new Float32Array(X.length);for(let $=0;$<X.length;$++)Y[$]=RD(X[$],J);return Y}function vL1(Z,J){let Y=k6.padNumber(Z.BYTES_PER_ELEMENT*J)/Z.BYTES_PER_ELEMENT,$=Z.length/J,Q=new Z.constructor($*Y);for(let K=0;K*J<Z.length;K++)for(let W=0;W<J;W++)Q[K*Y+W]=Z[K*J+W];return Q}function SL1(Z){let J=new Float32Array(Z.length*4/3);for(let X=0,Y=Z.length/3;X<Y;X++)J[X*4]=Z[X*3],J[X*4+1]=Z[X*3+1],J[X*4+2]=Z[X*3+2];return J}function _L1(Z,J){if(J===jJ.BufferViewUsage.ELEMENT_ARRAY_BUFFER)return Z.listParents().some((Y)=>{return Y instanceof BJ&&Y.getMode()===BJ.Mode.TRIANGLES})?cQ.TRIANGLES:cQ.INDICES;return cQ.ATTRIBUTES}function AL1(Z,J){let X=J.getGraph().listParentEdges(Z).filter((Y)=>!(Y.getParent()instanceof R2));for(let Y of X){let $=Y.getName(),Q=Y.getAttributes().key||"",K=Y.getParent().propertyType===s.PRIMITIVE_TARGET;if($==="indices")return{filter:G8.NONE};if($==="attributes"){if(Q==="POSITION")return{filter:G8.NONE};if(Q==="TEXCOORD_0")return{filter:G8.NONE};if(Q.startsWith("JOINTS_"))return{filter:G8.NONE};if(Q.startsWith("WEIGHTS_"))return{filter:G8.NONE};if(Q==="NORMAL"||Q==="TANGENT")return K?{filter:G8.NONE}:{filter:G8.OCTAHEDRAL,bits:8}}if($==="output"){let W=Qn(Z);if(W==="rotation")return{filter:G8.QUATERNION,bits:16};if(W==="translation")return{filter:G8.EXPONENTIAL,bits:12};if(W==="scale")return{filter:G8.EXPONENTIAL,bits:12};return{filter:G8.NONE}}if($==="input")return{filter:G8.NONE};if($==="inverseBindMatrices")return{filter:G8.NONE}}return{filter:G8.NONE}}function Qn(Z){for(let J of Z.listParents()){if(!(J instanceof mQ))continue;for(let X of J.listParents()){if(!(X instanceof wG))continue;return X.getTargetPath()}}return null}function xL1(Z){if(!Z.extensions||!Z.extensions[OD])return!1;return!!Z.extensions[OD].fallback}var a6=OD,ni={method:NG.QUANTIZE};class DG extends E1{constructor(...Z){super(...Z);this.extensionName=a6,this.prereadTypes=[s.BUFFER,s.PRIMITIVE],this.prewriteTypes=[s.BUFFER,s.ACCESSOR],this.readDependencies=["meshopt.decoder"],this.writeDependencies=["meshopt.encoder"],this._decoder=null,this._decoderFallbackBufferMap=new Map,this._encoder=null,this._encoderOptions=ni,this._encoderFallbackBuffer=null,this._encoderBufferViews={},this._encoderBufferViewData={},this._encoderBufferViewAccessors={}}install(Z,J){if(Z==="meshopt.decoder")this._decoder=J;if(Z==="meshopt.encoder")this._encoder=J;return this}setEncoderOptions(Z){return this._encoderOptions=qZ({},ni,Z),this}preread(Z,J){if(!this._decoder){if(!this.isRequired())return this;throw new Error(`[${a6}] Please install extension dependency, "meshopt.decoder".`)}if(!this._decoder.supported){if(!this.isRequired())return this;throw new Error(`[${a6}]: Missing WASM support.`)}if(J===s.BUFFER)this._prereadBuffers(Z);else if(J===s.PRIMITIVE)this._prereadPrimitives(Z);return this}_prereadBuffers(Z){let J=Z.jsonDoc;(J.json.bufferViews||[]).forEach((Y,$)=>{if(!Y.extensions||!Y.extensions[a6])return;let Q=Y.extensions[a6],K=Q.byteOffset||0,W=Q.byteLength||0,G=Q.count,z=Q.byteStride,V=new Uint8Array(G*z),H=J.json.buffers[Q.buffer],q=H.uri?J.resources[H.uri]:J.resources[zD],F=k6.toView(q,K,W);this._decoder.decodeGltfBuffer(V,G,z,F,Q.mode,Q.filter),Z.bufferViews[$]=V})}_prereadPrimitives(Z){let J=Z.jsonDoc;(J.json.bufferViews||[]).forEach((Y)=>{if(!Y.extensions||!Y.extensions[a6])return;let $=Y.extensions[a6],Q=Z.buffers[$.buffer],K=Z.buffers[Y.buffer],W=J.json.buffers[Y.buffer];if(xL1(W))this._decoderFallbackBufferMap.set(K,Q)})}read(Z){if(!this.isRequired())return this;for(let[J,X]of this._decoderFallbackBufferMap){for(let Y of J.listParents())if(Y instanceof M0)Y.swap(J,X);J.dispose()}return this}prewrite(Z,J){if(J===s.ACCESSOR)this._prewriteAccessors(Z);else if(J===s.BUFFER)this._prewriteBuffers(Z);return this}_prewriteAccessors(Z){let J=Z.jsonDoc.json,X=this._encoder,Y=this._encoderOptions,$=this.document.getGraph(),Q=this.document.createBuffer(),K=this.document.getRoot().listBuffers().indexOf(Q),W=1,G=new Map,z=(V)=>{for(let H of $.listParents(V)){if(H.propertyType===s.ROOT)continue;let q=G.get(V);if(q===void 0)G.set(V,q=W++);return q}return-1};this._encoderFallbackBuffer=Q,this._encoderBufferViews={},this._encoderBufferViewData={},this._encoderBufferViewAccessors={};for(let V of this.document.getRoot().listAccessors()){if(Qn(V)==="weights")continue;if(V.getSparse())continue;let H=Z.getAccessorUsage(V),q=Z.accessorUsageGroupedByParent.has(H)?z(V):null,F=_L1(V,H),U=Y.method===NG.FILTER?AL1(V,this.document):{filter:G8.NONE},w=EL1(V,X,F,U),{array:L,byteStride:j}=w,R=V.getBuffer();if(!R)throw new Error(`${a6}: Missing buffer for accessor.`);let O=this.document.getRoot().listBuffers().indexOf(R),N=[H,q,F,U.filter,j,O].join(":"),D=this._encoderBufferViews[N],P=this._encoderBufferViewData[N],C=this._encoderBufferViewAccessors[N];if(!D||!P)C=this._encoderBufferViewAccessors[N]=[],P=this._encoderBufferViewData[N]=[],D=this._encoderBufferViews[N]={buffer:K,target:jJ.USAGE_TO_TARGET[H],byteOffset:0,byteLength:0,byteStride:H===jJ.BufferViewUsage.ARRAY_BUFFER?j:void 0,extensions:{[a6]:{buffer:O,byteOffset:0,byteLength:0,mode:F,filter:U.filter!==G8.NONE?U.filter:void 0,byteStride:j,count:0}}};let T=Z.createAccessorDef(V);if(T.componentType=w.componentType,T.normalized=w.normalized,T.byteOffset=D.byteLength,T.min&&w.min)T.min=w.min;if(T.max&&w.max)T.max=w.max;Z.accessorIndexMap.set(V,J.accessors.length),J.accessors.push(T),C.push(T),P.push(new Uint8Array(L.buffer,L.byteOffset,L.byteLength)),D.byteLength+=L.byteLength,D.extensions.EXT_meshopt_compression.count+=V.getCount()}}_prewriteBuffers(Z){let J=this._encoder;for(let X in this._encoderBufferViews){let Y=this._encoderBufferViews[X],$=this._encoderBufferViewData[X],Q=this.document.getRoot().listBuffers()[Y.extensions[a6].buffer],K=Z.otherBufferViews.get(Q)||[],{count:W,byteStride:G,mode:z}=Y.extensions[a6],V=k6.concat($),H=J.encodeGltfBuffer(V,W,G,z),q=k6.pad(H);Y.extensions[a6].byteLength=H.byteLength,$.length=0,$.push(q),K.push(q),Z.otherBufferViews.set(Q,K)}}write(Z){let J=0;for(let Q in this._encoderBufferViews){let K=this._encoderBufferViews[Q],W=this._encoderBufferViewData[Q][0],G=Z.otherBufferViewsIndexMap.get(W),z=this._encoderBufferViewAccessors[Q];for(let F of z)F.bufferView=G;let V=Z.jsonDoc.json.bufferViews[G],H=V.byteOffset||0;Object.assign(V,K),V.byteOffset=J;let q=V.extensions[a6];q.byteOffset=H,J+=k6.padNumber(K.byteLength)}let X=this._encoderFallbackBuffer,Y=Z.bufferIndexMap.get(X),$=Z.jsonDoc.json.buffers[Y];return $.byteLength=J,$.extensions={[a6]:{fallback:!0}},X.dispose(),this}}DG.EXTENSION_NAME=a6;DG.EncoderMethod=NG;var OG=PL1;class Kn{match(Z){return Z.length>=12&&k6.decodeText(Z.slice(4,12))==="ftypavif"}getSize(Z){if(!this.match(Z))return null;let J=new DataView(Z.buffer,Z.byteOffset,Z.byteLength),X=ai(J,0);if(!X)return null;let Y=X.end;while(X=ai(J,Y))if(X.type==="meta")Y=X.start+4;else if(X.type==="iprp"||X.type==="ipco")Y=X.start;else if(X.type==="ispe")return[J.getUint32(X.start+4),J.getUint32(X.start+8)];else if(X.type==="mdat")break;else Y=X.end;return null}getChannels(Z){return 4}}class k2 extends E1{constructor(...Z){super(...Z);this.extensionName=OG,this.prereadTypes=[s.TEXTURE]}static register(){V4.registerFormat("image/avif",new Kn)}preread(Z){return(Z.jsonDoc.json.textures||[]).forEach((X)=>{if(X.extensions&&X.extensions[OG])X.source=X.extensions[OG].source}),this}read(Z){return this}write(Z){let J=Z.jsonDoc;return this.document.getRoot().listTextures().forEach((X)=>{if(X.getMimeType()==="image/avif"){let Y=Z.imageIndexMap.get(X);(J.json.textures||[]).forEach((Q)=>{if(Q.source===Y)Q.extensions=Q.extensions||{},Q.extensions[OG]={source:Q.source},delete Q.source})}}),this}}k2.EXTENSION_NAME=OG;function ai(Z,J){if(Z.byteLength<4+J)return null;let X=Z.getUint32(J);if(Z.byteLength<X+J||X<8)return null;return{type:k6.decodeText(new Uint8Array(Z.buffer,Z.byteOffset+J+4,4)),start:J+8,end:J+X}}var MG=NL1;class Wn{match(Z){return Z.length>=12&&Z[8]===87&&Z[9]===69&&Z[10]===66&&Z[11]===80}getSize(Z){let J=k6.decodeText(Z.slice(0,4)),X=k6.decodeText(Z.slice(8,12));if(J!=="RIFF"||X!=="WEBP")return null;let Y=new DataView(Z.buffer,Z.byteOffset),$=12;while($<Y.byteLength){let Q=k6.decodeText(new Uint8Array([Y.getUint8($),Y.getUint8($+1),Y.getUint8($+2),Y.getUint8($+3)])),K=Y.getUint32($+4,!0);if(Q==="VP8 "){let W=Y.getInt16($+14,!0)&16383,G=Y.getInt16($+16,!0)&16383;return[W,G]}else if(Q==="VP8L"){let W=Y.getUint8($+9),G=Y.getUint8($+10),z=Y.getUint8($+11),V=Y.getUint8($+12),H=1+((G&63)<<8|W),q=1+((V&15)<<10|z<<2|(G&192)>>6);return[H,q]}$+=8+K+K%2}return null}getChannels(Z){return 4}}class E2 extends E1{constructor(...Z){super(...Z);this.extensionName=MG,this.prereadTypes=[s.TEXTURE]}static register(){V4.registerFormat("image/webp",new Wn)}preread(Z){return(Z.jsonDoc.json.textures||[]).forEach((X)=>{if(X.extensions&&X.extensions[MG])X.source=X.extensions[MG].source}),this}read(Z){return this}write(Z){let J=Z.jsonDoc;return this.document.getRoot().listTextures().forEach((X)=>{if(X.getMimeType()==="image/webp"){let Y=Z.imageIndexMap.get(X);(J.json.textures||[]).forEach((Q)=>{if(Q.source===Y)Q.extensions=Q.extensions||{},Q.extensions[MG]={source:Q.source},delete Q.source})}}),this}}E2.EXTENSION_NAME=MG;var si=$n,d8,Gn,zn;function hL1(Z,J){let X=new d8.DecoderBuffer;try{if(X.Init(J,J.length),Z.GetEncodedGeometryType(X)!==d8.TRIANGULAR_MESH)throw new Error(`[${si}] Unknown geometry type.`);let $=new d8.Mesh;if(!Z.DecodeBufferToMesh(X,$).ok()||$.ptr===0)throw new Error(`[${si}] Decoding failure.`);return $}finally{d8.destroy(X)}}function fL1(Z,J){let Y=J.num_faces()*3,$,Q;if(J.num_points()<=65534){let K=Y*Uint16Array.BYTES_PER_ELEMENT;$=d8._malloc(K),Z.GetTrianglesUInt16Array(J,K,$),Q=new Uint16Array(d8.HEAPU16.buffer,$,Y).slice()}else{let K=Y*Uint32Array.BYTES_PER_ELEMENT;$=d8._malloc(K),Z.GetTrianglesUInt32Array(J,K,$),Q=new Uint32Array(d8.HEAPU32.buffer,$,Y).slice()}return d8._free($),Q}function bL1(Z,J,X,Y){let $=zn[Y.componentType],Q=Gn[Y.componentType],K=X.num_components(),G=J.num_points()*K,z=G*Q.BYTES_PER_ELEMENT,V=d8._malloc(z);Z.GetAttributeDataArrayForAllPoints(J,X,$,z,V);let H=new Q(d8.HEAPF32.buffer,V,G).slice();return d8._free(V),H}function yL1(Z){d8=Z,Gn={[M0.ComponentType.FLOAT]:Float32Array,[M0.ComponentType.UNSIGNED_INT]:Uint32Array,[M0.ComponentType.UNSIGNED_SHORT]:Uint16Array,[M0.ComponentType.UNSIGNED_BYTE]:Uint8Array,[M0.ComponentType.SHORT]:Int16Array,[M0.ComponentType.BYTE]:Int8Array},zn={[M0.ComponentType.FLOAT]:d8.DT_FLOAT32,[M0.ComponentType.UNSIGNED_INT]:d8.DT_UINT32,[M0.ComponentType.UNSIGNED_SHORT]:d8.DT_UINT16,[M0.ComponentType.UNSIGNED_BYTE]:d8.DT_UINT8,[M0.ComponentType.SHORT]:d8.DT_INT16,[M0.ComponentType.BYTE]:d8.DT_INT8}}var R9,PG;(function(Z){Z[Z.EDGEBREAKER=1]="EDGEBREAKER",Z[Z.SEQUENTIAL=0]="SEQUENTIAL"})(PG||(PG={}));var N9;(function(Z){Z.POSITION="POSITION",Z.NORMAL="NORMAL",Z.COLOR="COLOR",Z.TEX_COORD="TEX_COORD",Z.GENERIC="GENERIC"})(N9||(N9={}));var Vn={[N9.POSITION]:14,[N9.NORMAL]:10,[N9.COLOR]:8,[N9.TEX_COORD]:12,[N9.GENERIC]:12},oi={decodeSpeed:5,encodeSpeed:5,method:PG.EDGEBREAKER,quantizationBits:Vn,quantizationVolume:"mesh"};function gL1(Z){R9=Z}function mL1(Z,J=oi){let X=qZ({},oi,J);X.quantizationBits=qZ({},Vn,J.quantizationBits);let Y=new R9.MeshBuilder,$=new R9.Mesh,Q=new R9.ExpertEncoder($),K={},W=new R9.DracoInt8Array,G=Z.listTargets().length>0,z=!1;for(let w of Z.listSemantics()){let L=Z.getAttribute(w);if(L.getSparse()){z=!0;continue}let j=uL1(w),R=dL1(Y,L.getComponentType(),$,R9[j],L.getCount(),L.getElementSize(),L.getArray());if(R===-1)throw new Error(`Error compressing "${w}" attribute.`);if(K[w]=R,X.quantizationVolume==="mesh"||w!=="POSITION")Q.SetAttributeQuantization(R,X.quantizationBits[j]);else if(typeof X.quantizationVolume==="object"){let{quantizationVolume:O}=X,N=Math.max(O.max[0]-O.min[0],O.max[1]-O.min[1],O.max[2]-O.min[2]);Q.SetAttributeExplicitQuantization(R,X.quantizationBits[j],L.getElementSize(),O.min,N)}else throw new Error("Invalid quantization volume state.")}let V=Z.getIndices();if(!V)throw new D2("Primitive must have indices.");if(Y.AddFacesToMesh($,V.getCount()/3,V.getArray()),Q.SetSpeedOptions(X.encodeSpeed,X.decodeSpeed),Q.SetTrackEncodedProperties(!0),X.method===PG.SEQUENTIAL||G||z)Q.SetEncodingMethod(R9.MESH_SEQUENTIAL_ENCODING);else Q.SetEncodingMethod(R9.MESH_EDGEBREAKER_ENCODING);let H=Q.EncodeToDracoBuffer(!(G||z),W);if(H<=0)throw new D2("Error applying Draco compression.");let q=new Uint8Array(H);for(let w=0;w<H;++w)q[w]=W.GetValue(w);let F=Q.GetNumberOfEncodedPoints(),U=Q.GetNumberOfEncodedFaces()*3;return R9.destroy(W),R9.destroy($),R9.destroy(Y),R9.destroy(Q),{numVertices:F,numIndices:U,data:q,attributeIDs:K}}function uL1(Z){if(Z==="POSITION")return N9.POSITION;else if(Z==="NORMAL")return N9.NORMAL;else if(Z.startsWith("COLOR_"))return N9.COLOR;else if(Z.startsWith("TEXCOORD_"))return N9.TEX_COORD;return N9.GENERIC}function dL1(Z,J,X,Y,$,Q,K){switch(J){case M0.ComponentType.UNSIGNED_BYTE:return Z.AddUInt8Attribute(X,Y,$,Q,K);case M0.ComponentType.BYTE:return Z.AddInt8Attribute(X,Y,$,Q,K);case M0.ComponentType.UNSIGNED_SHORT:return Z.AddUInt16Attribute(X,Y,$,Q,K);case M0.ComponentType.SHORT:return Z.AddInt16Attribute(X,Y,$,Q,K);case M0.ComponentType.UNSIGNED_INT:return Z.AddUInt32Attribute(X,Y,$,Q,K);case M0.ComponentType.FLOAT:return Z.AddFloatAttribute(X,Y,$,Q,K);default:throw new Error(`Unexpected component type, "${J}".`)}}class D2 extends Error{}var N8=$n;class CG extends E1{constructor(...Z){super(...Z);this.extensionName=N8,this.prereadTypes=[s.PRIMITIVE],this.prewriteTypes=[s.ACCESSOR],this.readDependencies=["draco3d.decoder"],this.writeDependencies=["draco3d.encoder"],this._decoderModule=null,this._encoderModule=null,this._encoderOptions={}}install(Z,J){if(Z==="draco3d.decoder")this._decoderModule=J,yL1(this._decoderModule);if(Z==="draco3d.encoder")this._encoderModule=J,gL1(this._encoderModule);return this}setEncoderOptions(Z){return this._encoderOptions=Z,this}preread(Z){if(!this._decoderModule)throw new Error(`[${N8}] Please install extension dependency, "draco3d.decoder".`);let J=this.document.getLogger(),X=Z.jsonDoc,Y=new Map;try{let $=X.json.meshes||[];for(let Q of $)for(let K of Q.primitives){if(!K.extensions||!K.extensions[N8])continue;let W=K.extensions[N8],[G,z]=Y.get(W.bufferView)||[];if(!z||!G){let V=X.json.bufferViews[W.bufferView],H=X.json.buffers[V.buffer],q=H.uri?X.resources[H.uri]:X.resources[zD],F=V.byteOffset||0,U=V.byteLength,w=k6.toView(q,F,U);G=new this._decoderModule.Decoder,z=hL1(G,w),Y.set(W.bufferView,[G,z]),J.debug(`[${N8}] Decompressed ${w.byteLength} bytes.`)}for(let V in W.attributes){let H=Z.jsonDoc.json.accessors[K.attributes[V]],q=G.GetAttributeByUniqueId(z,W.attributes[V]),F=bL1(G,z,q,H);Z.accessors[K.attributes[V]].setArray(F)}if(K.indices!==void 0)Z.accessors[K.indices].setArray(fL1(G,z))}}finally{for(let[$,Q]of Array.from(Y.values()))this._decoderModule.destroy($),this._decoderModule.destroy(Q)}return this}read(Z){return this}prewrite(Z,J){if(!this._encoderModule)throw new Error(`[${N8}] Please install extension dependency, "draco3d.encoder".`);let X=this.document.getLogger();X.debug(`[${N8}] Compression options: ${JSON.stringify(this._encoderOptions)}`);let Y=cL1(this.document),$=new Map,Q="mesh";if(this._encoderOptions.quantizationVolume==="scene")if(this.document.getRoot().listScenes().length!==1)X.warn(`[${N8}]: quantizationVolume=scene requires exactly 1 scene.`);else Q=fi(this.document.getRoot().listScenes().pop());for(let K of Array.from(Y.keys())){let W=Y.get(K);if(!W)throw new Error("Unexpected primitive.");if($.has(W)){$.set(W,$.get(W));continue}let G=K.getIndices(),z=Z.jsonDoc.json.accessors,V;try{V=mL1(K,qZ({},this._encoderOptions,{quantizationVolume:Q}))}catch(F){if(F instanceof D2){X.warn(`[${N8}]: ${F.message} Skipping primitive compression.`);continue}throw F}$.set(W,V);let H=Z.createAccessorDef(G);if(H.count=V.numIndices,Z.accessorIndexMap.set(G,z.length),z.push(H),V.numVertices>65534&&M0.getComponentSize(H.componentType)<=2)H.componentType=M0.ComponentType.UNSIGNED_INT;else if(V.numVertices>254&&M0.getComponentSize(H.componentType)<=1)H.componentType=M0.ComponentType.UNSIGNED_SHORT;for(let F of K.listSemantics()){let U=K.getAttribute(F);if(V.attributeIDs[F]===void 0)continue;let w=Z.createAccessorDef(U);w.count=V.numVertices,Z.accessorIndexMap.set(U,z.length),z.push(w)}let q=K.getAttribute("POSITION").getBuffer()||this.document.getRoot().listBuffers()[0];if(!Z.otherBufferViews.has(q))Z.otherBufferViews.set(q,[]);Z.otherBufferViews.get(q).push(V.data)}return X.debug(`[${N8}] Compressed ${Y.size} primitives.`),Z.extensionData[N8]={primitiveHashMap:Y,primitiveEncodingMap:$},this}write(Z){let J=Z.extensionData[N8];for(let X of this.document.getRoot().listMeshes()){let Y=Z.jsonDoc.json.meshes[Z.meshIndexMap.get(X)];for(let $=0;$<X.listPrimitives().length;$++){let Q=X.listPrimitives()[$],K=Y.primitives[$],W=J.primitiveHashMap.get(Q);if(!W)continue;let G=J.primitiveEncodingMap.get(W);if(!G)continue;K.extensions=K.extensions||{},K.extensions[N8]={bufferView:Z.otherBufferViewsIndexMap.get(G.data),attributes:G.attributeIDs}}}if(!J.primitiveHashMap.size){let X=Z.jsonDoc.json;X.extensionsUsed=(X.extensionsUsed||[]).filter((Y)=>Y!==N8),X.extensionsRequired=(X.extensionsRequired||[]).filter((Y)=>Y!==N8)}return this}}CG.EXTENSION_NAME=N8;CG.EncoderMethod=PG;function cL1(Z){let J=Z.getLogger(),X=new Set,Y=new Set,$=0,Q=0;for(let H of Z.getRoot().listMeshes())for(let q of H.listPrimitives())if(!q.getIndices())Y.add(q),$++;else if(q.getMode()!==BJ.Mode.TRIANGLES)Y.add(q),Q++;else X.add(q);if($>0)J.warn(`[${N8}] Skipping Draco compression of ${$} non-indexed primitives.`);if(Q>0)J.warn(`[${N8}] Skipping Draco compression of ${Q} non-TRIANGLES primitives.`);let K=Z.getRoot().listAccessors(),W=new Map;for(let H=0;H<K.length;H++)W.set(K[H],H);let G=new Map,z=new Set,V=new Map;for(let H of Array.from(X)){let q=ri(H,W);if(z.has(q)){V.set(H,q);continue}if(G.has(H.getIndices())){let F=H.getIndices(),U=F.clone();W.set(U,Z.getRoot().listAccessors().length-1),H.swap(F,U)}for(let F of H.listAttributes())if(G.has(F)){let U=F.clone();W.set(U,Z.getRoot().listAccessors().length-1),H.swap(F,U)}q=ri(H,W),z.add(q),V.set(H,q),G.set(H.getIndices(),q);for(let F of H.listAttributes())G.set(F,q)}for(let H of Array.from(G.keys())){let q=new Set(H.listParents().map((F)=>F.propertyType));if(q.size!==2||!q.has(s.PRIMITIVE)||!q.has(s.ROOT))throw new Error(`[${N8}] Compressed accessors must only be used as indices or vertex attributes.`)}for(let H of Array.from(X)){let q=V.get(H),F=H.getIndices();if(G.get(F)!==q||H.listAttributes().some((U)=>G.get(U)!==q))throw new Error(`[${N8}] Draco primitives must share all, or no, accessors.`)}for(let H of Array.from(Y)){let q=H.getIndices();if(G.has(q)||H.listAttributes().some((F)=>G.has(F)))throw new Error(`[${N8}] Accessor cannot be shared by compressed and uncompressed primitives.`)}return V}function ri(Z,J){let X=[],Y=Z.getIndices();X.push(J.get(Y));for(let $ of Z.listAttributes())X.push(J.get($));return X.sort().join("|")}class lQ extends n1{init(){this.extensionName=PD,this.propertyType="Light",this.parentTypes=[s.NODE]}getDefaults(){return Object.assign(super.getDefaults(),{color:[1,1,1],intensity:1,type:lQ.Type.POINT,range:null,innerConeAngle:0,outerConeAngle:Math.PI/4})}getColor(){return this.get("color")}setColor(Z){return this.set("color",Z)}getIntensity(){return this.get("intensity")}setIntensity(Z){return this.set("intensity",Z)}getType(){return this.get("type")}setType(Z){return this.set("type",Z)}getRange(){return this.get("range")}setRange(Z){return this.set("range",Z)}getInnerConeAngle(){return this.get("innerConeAngle")}setInnerConeAngle(Z){return this.set("innerConeAngle",Z)}getOuterConeAngle(){return this.get("outerConeAngle")}setOuterConeAngle(Z){return this.set("outerConeAngle",Z)}}lQ.EXTENSION_NAME=PD;lQ.Type={POINT:"point",SPOT:"spot",DIRECTIONAL:"directional"};var K7=PD;class gD extends E1{constructor(...Z){super(...Z);this.extensionName=K7}createLight(Z=""){return new lQ(this.document.getGraph(),Z)}read(Z){let J=Z.jsonDoc;if(!J.json.extensions||!J.json.extensions[K7])return this;let $=(J.json.extensions[K7].lights||[]).map((Q)=>{var K,W;let G=this.createLight().setName(Q.name||"").setType(Q.type);if(Q.color!==void 0)G.setColor(Q.color);if(Q.intensity!==void 0)G.setIntensity(Q.intensity);if(Q.range!==void 0)G.setRange(Q.range);if(((K=Q.spot)==null?void 0:K.innerConeAngle)!==void 0)G.setInnerConeAngle(Q.spot.innerConeAngle);if(((W=Q.spot)==null?void 0:W.outerConeAngle)!==void 0)G.setOuterConeAngle(Q.spot.outerConeAngle);return G});return J.json.nodes.forEach((Q,K)=>{if(!Q.extensions||!Q.extensions[K7])return;let W=Q.extensions[K7];Z.nodes[K].setExtension(K7,$[W.light])}),this}write(Z){let J=Z.jsonDoc;if(this.properties.size===0)return this;let X=[],Y=new Map;for(let $ of this.properties){let Q=$,K={type:Q.getType()};if(!W8.eq(Q.getColor(),[1,1,1]))K.color=Q.getColor();if(Q.getIntensity()!==1)K.intensity=Q.getIntensity();if(Q.getRange()!=null)K.range=Q.getRange();if(Q.getName())K.name=Q.getName();if(Q.getType()===lQ.Type.SPOT)K.spot={innerConeAngle:Q.getInnerConeAngle(),outerConeAngle:Q.getOuterConeAngle()};X.push(K),Y.set(Q,X.length-1)}return this.document.getRoot().listNodes().forEach(($)=>{let Q=$.getExtension(K7);if(Q){let K=Z.nodeIndexMap.get($),W=J.json.nodes[K];W.extensions=W.extensions||{},W.extensions[K7]={light:Y.get(Q)}}}),J.json.extensions=J.json.extensions||{},J.json.extensions[K7]={lights:X},this}}gD.EXTENSION_NAME=K7;var{R:lL1,G:pL1,B:iL1}=n5;class mD extends n1{init(){this.extensionName=DD,this.propertyType="Anisotropy",this.parentTypes=[s.MATERIAL]}getDefaults(){return Object.assign(super.getDefaults(),{anisotropyStrength:0,anisotropyRotation:0,anisotropyTexture:null,anisotropyTextureInfo:new C1(this.graph,"anisotropyTextureInfo")})}getAnisotropyStrength(){return this.get("anisotropyStrength")}setAnisotropyStrength(Z){return this.set("anisotropyStrength",Z)}getAnisotropyRotation(){return this.get("anisotropyRotation")}setAnisotropyRotation(Z){return this.set("anisotropyRotation",Z)}getAnisotropyTexture(){return this.getRef("anisotropyTexture")}getAnisotropyTextureInfo(){return this.getRef("anisotropyTexture")?this.getRef("anisotropyTextureInfo"):null}setAnisotropyTexture(Z){return this.setRef("anisotropyTexture",Z,{channels:lL1|pL1|iL1})}}mD.EXTENSION_NAME=DD;var WY=DD;class uD extends E1{constructor(...Z){super(...Z);this.extensionName=WY,this.prereadTypes=[s.MESH],this.prewriteTypes=[s.MESH]}createAnisotropy(){return new mD(this.document.getGraph())}read(Z){return this}write(Z){return this}preread(Z){let J=Z.jsonDoc,X=J.json.materials||[],Y=J.json.textures||[];return X.forEach(($,Q)=>{if($.extensions&&$.extensions[WY]){let K=this.createAnisotropy();Z.materials[Q].setExtension(WY,K);let W=$.extensions[WY];if(W.anisotropyStrength!==void 0)K.setAnisotropyStrength(W.anisotropyStrength);if(W.anisotropyRotation!==void 0)K.setAnisotropyRotation(W.anisotropyRotation);if(W.anisotropyTexture!==void 0){let G=W.anisotropyTexture,z=Z.textures[Y[G.index].source];K.setAnisotropyTexture(z),Z.setTextureInfo(K.getAnisotropyTextureInfo(),G)}}}),this}prewrite(Z){let J=Z.jsonDoc;return this.document.getRoot().listMaterials().forEach((X)=>{let Y=X.getExtension(WY);if(Y){let $=Z.materialIndexMap.get(X),Q=J.json.materials[$];Q.extensions=Q.extensions||{};let K=Q.extensions[WY]={};if(Y.getAnisotropyStrength()>0)K.anisotropyStrength=Y.getAnisotropyStrength();if(Y.getAnisotropyRotation()!==0)K.anisotropyRotation=Y.getAnisotropyRotation();if(Y.getAnisotropyTexture()){let W=Y.getAnisotropyTexture(),G=Y.getAnisotropyTextureInfo();K.anisotropyTexture=Z.createTextureInfoDef(W,G)}}}),this}}uD.EXTENSION_NAME=WY;var{R:ti,G:ei,B:nL1}=n5;class dD extends n1{init(){this.extensionName=CD,this.propertyType="Clearcoat",this.parentTypes=[s.MATERIAL]}getDefaults(){return Object.assign(super.getDefaults(),{clearcoatFactor:0,clearcoatTexture:null,clearcoatTextureInfo:new C1(this.graph,"clearcoatTextureInfo"),clearcoatRoughnessFactor:0,clearcoatRoughnessTexture:null,clearcoatRoughnessTextureInfo:new C1(this.graph,"clearcoatRoughnessTextureInfo"),clearcoatNormalScale:1,clearcoatNormalTexture:null,clearcoatNormalTextureInfo:new C1(this.graph,"clearcoatNormalTextureInfo")})}getClearcoatFactor(){return this.get("clearcoatFactor")}setClearcoatFactor(Z){return this.set("clearcoatFactor",Z)}getClearcoatTexture(){return this.getRef("clearcoatTexture")}getClearcoatTextureInfo(){return this.getRef("clearcoatTexture")?this.getRef("clearcoatTextureInfo"):null}setClearcoatTexture(Z){return this.setRef("clearcoatTexture",Z,{channels:ti})}getClearcoatRoughnessFactor(){return this.get("clearcoatRoughnessFactor")}setClearcoatRoughnessFactor(Z){return this.set("clearcoatRoughnessFactor",Z)}getClearcoatRoughnessTexture(){return this.getRef("clearcoatRoughnessTexture")}getClearcoatRoughnessTextureInfo(){return this.getRef("clearcoatRoughnessTexture")?this.getRef("clearcoatRoughnessTextureInfo"):null}setClearcoatRoughnessTexture(Z){return this.setRef("clearcoatRoughnessTexture",Z,{channels:ei})}getClearcoatNormalScale(){return this.get("clearcoatNormalScale")}setClearcoatNormalScale(Z){return this.set("clearcoatNormalScale",Z)}getClearcoatNormalTexture(){return this.getRef("clearcoatNormalTexture")}getClearcoatNormalTextureInfo(){return this.getRef("clearcoatNormalTexture")?this.getRef("clearcoatNormalTextureInfo"):null}setClearcoatNormalTexture(Z){return this.setRef("clearcoatNormalTexture",Z,{channels:ti|ei|nL1})}}dD.EXTENSION_NAME=CD;var GY=CD;class cD extends E1{constructor(...Z){super(...Z);this.extensionName=GY,this.prereadTypes=[s.MESH],this.prewriteTypes=[s.MESH]}createClearcoat(){return new dD(this.document.getGraph())}read(Z){return this}write(Z){return this}preread(Z){let J=Z.jsonDoc,X=J.json.materials||[],Y=J.json.textures||[];return X.forEach(($,Q)=>{if($.extensions&&$.extensions[GY]){let K=this.createClearcoat();Z.materials[Q].setExtension(GY,K);let W=$.extensions[GY];if(W.clearcoatFactor!==void 0)K.setClearcoatFactor(W.clearcoatFactor);if(W.clearcoatRoughnessFactor!==void 0)K.setClearcoatRoughnessFactor(W.clearcoatRoughnessFactor);if(W.clearcoatTexture!==void 0){let G=W.clearcoatTexture,z=Z.textures[Y[G.index].source];K.setClearcoatTexture(z),Z.setTextureInfo(K.getClearcoatTextureInfo(),G)}if(W.clearcoatRoughnessTexture!==void 0){let G=W.clearcoatRoughnessTexture,z=Z.textures[Y[G.index].source];K.setClearcoatRoughnessTexture(z),Z.setTextureInfo(K.getClearcoatRoughnessTextureInfo(),G)}if(W.clearcoatNormalTexture!==void 0){let G=W.clearcoatNormalTexture,z=Z.textures[Y[G.index].source];if(K.setClearcoatNormalTexture(z),Z.setTextureInfo(K.getClearcoatNormalTextureInfo(),G),G.scale!==void 0)K.setClearcoatNormalScale(G.scale)}}}),this}prewrite(Z){let J=Z.jsonDoc;return this.document.getRoot().listMaterials().forEach((X)=>{let Y=X.getExtension(GY);if(Y){let $=Z.materialIndexMap.get(X),Q=J.json.materials[$];Q.extensions=Q.extensions||{};let K=Q.extensions[GY]={clearcoatFactor:Y.getClearcoatFactor(),clearcoatRoughnessFactor:Y.getClearcoatRoughnessFactor()};if(Y.getClearcoatTexture()){let W=Y.getClearcoatTexture(),G=Y.getClearcoatTextureInfo();K.clearcoatTexture=Z.createTextureInfoDef(W,G)}if(Y.getClearcoatRoughnessTexture()){let W=Y.getClearcoatRoughnessTexture(),G=Y.getClearcoatRoughnessTextureInfo();K.clearcoatRoughnessTexture=Z.createTextureInfoDef(W,G)}if(Y.getClearcoatNormalTexture()){let W=Y.getClearcoatNormalTexture(),G=Y.getClearcoatNormalTextureInfo();if(K.clearcoatNormalTexture=Z.createTextureInfoDef(W,G),Y.getClearcoatNormalScale()!==1)K.clearcoatNormalTexture.scale=Y.getClearcoatNormalScale()}}}),this}}cD.EXTENSION_NAME=GY;var{R:aL1,G:sL1,B:oL1,A:rL1}=n5;class lD extends n1{init(){this.extensionName=TD,this.propertyType="DiffuseTransmission",this.parentTypes=[s.MATERIAL]}getDefaults(){return Object.assign(super.getDefaults(),{diffuseTransmissionFactor:0,diffuseTransmissionTexture:null,diffuseTransmissionTextureInfo:new C1(this.graph,"diffuseTransmissionTextureInfo"),diffuseTransmissionColorFactor:[1,1,1],diffuseTransmissionColorTexture:null,diffuseTransmissionColorTextureInfo:new C1(this.graph,"diffuseTransmissionColorTextureInfo")})}getDiffuseTransmissionFactor(){return this.get("diffuseTransmissionFactor")}setDiffuseTransmissionFactor(Z){return this.set("diffuseTransmissionFactor",Z)}getDiffuseTransmissionTexture(){return this.getRef("diffuseTransmissionTexture")}getDiffuseTransmissionTextureInfo(){return this.getRef("diffuseTransmissionTexture")?this.getRef("diffuseTransmissionTextureInfo"):null}setDiffuseTransmissionTexture(Z){return this.setRef("diffuseTransmissionTexture",Z,{channels:rL1})}getDiffuseTransmissionColorFactor(){return this.get("diffuseTransmissionColorFactor")}setDiffuseTransmissionColorFactor(Z){return this.set("diffuseTransmissionColorFactor",Z)}getDiffuseTransmissionColorTexture(){return this.getRef("diffuseTransmissionColorTexture")}getDiffuseTransmissionColorTextureInfo(){return this.getRef("diffuseTransmissionColorTexture")?this.getRef("diffuseTransmissionColorTextureInfo"):null}setDiffuseTransmissionColorTexture(Z){return this.setRef("diffuseTransmissionColorTexture",Z,{channels:aL1|sL1|oL1})}}lD.EXTENSION_NAME=TD;var zY=TD;class pD extends E1{constructor(...Z){super(...Z);this.extensionName=zY}createDiffuseTransmission(){return new lD(this.document.getGraph())}read(Z){let J=Z.jsonDoc,X=J.json.materials||[],Y=J.json.textures||[];return X.forEach(($,Q)=>{if($.extensions&&$.extensions[zY]){let K=this.createDiffuseTransmission();Z.materials[Q].setExtension(zY,K);let W=$.extensions[zY];if(W.diffuseTransmissionFactor!==void 0)K.setDiffuseTransmissionFactor(W.diffuseTransmissionFactor);if(W.diffuseTransmissionColorFactor!==void 0)K.setDiffuseTransmissionColorFactor(W.diffuseTransmissionColorFactor);if(W.diffuseTransmissionTexture!==void 0){let G=W.diffuseTransmissionTexture,z=Z.textures[Y[G.index].source];K.setDiffuseTransmissionTexture(z),Z.setTextureInfo(K.getDiffuseTransmissionTextureInfo(),G)}if(W.diffuseTransmissionColorTexture!==void 0){let G=W.diffuseTransmissionColorTexture,z=Z.textures[Y[G.index].source];K.setDiffuseTransmissionColorTexture(z),Z.setTextureInfo(K.getDiffuseTransmissionColorTextureInfo(),G)}}}),this}write(Z){let J=Z.jsonDoc;for(let X of this.document.getRoot().listMaterials()){let Y=X.getExtension(zY);if(!Y)continue;let $=Z.materialIndexMap.get(X),Q=J.json.materials[$];Q.extensions=Q.extensions||{};let K=Q.extensions[zY]={diffuseTransmissionFactor:Y.getDiffuseTransmissionFactor(),diffuseTransmissionColorFactor:Y.getDiffuseTransmissionColorFactor()};if(Y.getDiffuseTransmissionTexture()){let W=Y.getDiffuseTransmissionTexture(),G=Y.getDiffuseTransmissionTextureInfo();K.diffuseTransmissionTexture=Z.createTextureInfoDef(W,G)}if(Y.getDiffuseTransmissionColorTexture()){let W=Y.getDiffuseTransmissionColorTexture(),G=Y.getDiffuseTransmissionColorTextureInfo();K.diffuseTransmissionColorTexture=Z.createTextureInfoDef(W,G)}}return this}}pD.EXTENSION_NAME=zY;class iD extends n1{init(){this.extensionName=kD,this.propertyType="Dispersion",this.parentTypes=[s.MATERIAL]}getDefaults(){return Object.assign(super.getDefaults(),{dispersion:0})}getDispersion(){return this.get("dispersion")}setDispersion(Z){return this.set("dispersion",Z)}}iD.EXTENSION_NAME=kD;var VY=kD;class nD extends E1{constructor(...Z){super(...Z);this.extensionName=VY,this.prereadTypes=[s.MESH],this.prewriteTypes=[s.MESH]}createDispersion(){return new iD(this.document.getGraph())}read(Z){return this}write(Z){return this}preread(Z){return(Z.jsonDoc.json.materials||[]).forEach((Y,$)=>{if(Y.extensions&&Y.extensions[VY]){let Q=this.createDispersion();Z.materials[$].setExtension(VY,Q);let K=Y.extensions[VY];if(K.dispersion!==void 0)Q.setDispersion(K.dispersion)}}),this}prewrite(Z){let J=Z.jsonDoc;return this.document.getRoot().listMaterials().forEach((X)=>{let Y=X.getExtension(VY);if(Y){let $=Z.materialIndexMap.get(X),Q=J.json.materials[$];Q.extensions=Q.extensions||{},Q.extensions[VY]={dispersion:Y.getDispersion()}}}),this}}nD.EXTENSION_NAME=VY;class aD extends n1{init(){this.extensionName=ED,this.propertyType="EmissiveStrength",this.parentTypes=[s.MATERIAL]}getDefaults(){return Object.assign(super.getDefaults(),{emissiveStrength:1})}getEmissiveStrength(){return this.get("emissiveStrength")}setEmissiveStrength(Z){return this.set("emissiveStrength",Z)}}aD.EXTENSION_NAME=ED;var HY=ED;class sD extends E1{constructor(...Z){super(...Z);this.extensionName=HY,this.prereadTypes=[s.MESH],this.prewriteTypes=[s.MESH]}createEmissiveStrength(){return new aD(this.document.getGraph())}read(Z){return this}write(Z){return this}preread(Z){return(Z.jsonDoc.json.materials||[]).forEach((Y,$)=>{if(Y.extensions&&Y.extensions[HY]){let Q=this.createEmissiveStrength();Z.materials[$].setExtension(HY,Q);let K=Y.extensions[HY];if(K.emissiveStrength!==void 0)Q.setEmissiveStrength(K.emissiveStrength)}}),this}prewrite(Z){let J=Z.jsonDoc;return this.document.getRoot().listMaterials().forEach((X)=>{let Y=X.getExtension(HY);if(Y){let $=Z.materialIndexMap.get(X),Q=J.json.materials[$];Q.extensions=Q.extensions||{},Q.extensions[HY]={emissiveStrength:Y.getEmissiveStrength()}}}),this}}sD.EXTENSION_NAME=HY;class oD extends n1{init(){this.extensionName=ID,this.propertyType="IOR",this.parentTypes=[s.MATERIAL]}getDefaults(){return Object.assign(super.getDefaults(),{ior:1.5})}getIOR(){return this.get("ior")}setIOR(Z){return this.set("ior",Z)}}oD.EXTENSION_NAME=ID;var qY=ID;class I2 extends E1{constructor(...Z){super(...Z);this.extensionName=qY,this.prereadTypes=[s.MESH],this.prewriteTypes=[s.MESH]}createIOR(){return new oD(this.document.getGraph())}read(Z){return this}write(Z){return this}preread(Z){return(Z.jsonDoc.json.materials||[]).forEach((Y,$)=>{if(Y.extensions&&Y.extensions[qY]){let Q=this.createIOR();Z.materials[$].setExtension(qY,Q);let K=Y.extensions[qY];if(K.ior!==void 0)Q.setIOR(K.ior)}}),this}prewrite(Z){let J=Z.jsonDoc;return this.document.getRoot().listMaterials().forEach((X)=>{let Y=X.getExtension(qY);if(Y){let $=Z.materialIndexMap.get(X),Q=J.json.materials[$];Q.extensions=Q.extensions||{},Q.extensions[qY]={ior:Y.getIOR()}}}),this}}I2.EXTENSION_NAME=qY;var{R:tL1,G:eL1}=n5;class rD extends n1{init(){this.extensionName=vD,this.propertyType="Iridescence",this.parentTypes=[s.MATERIAL]}getDefaults(){return Object.assign(super.getDefaults(),{iridescenceFactor:0,iridescenceTexture:null,iridescenceTextureInfo:new C1(this.graph,"iridescenceTextureInfo"),iridescenceIOR:1.3,iridescenceThicknessMinimum:100,iridescenceThicknessMaximum:400,iridescenceThicknessTexture:null,iridescenceThicknessTextureInfo:new C1(this.graph,"iridescenceThicknessTextureInfo")})}getIridescenceFactor(){return this.get("iridescenceFactor")}setIridescenceFactor(Z){return this.set("iridescenceFactor",Z)}getIridescenceTexture(){return this.getRef("iridescenceTexture")}getIridescenceTextureInfo(){return this.getRef("iridescenceTexture")?this.getRef("iridescenceTextureInfo"):null}setIridescenceTexture(Z){return this.setRef("iridescenceTexture",Z,{channels:tL1})}getIridescenceIOR(){return this.get("iridescenceIOR")}setIridescenceIOR(Z){return this.set("iridescenceIOR",Z)}getIridescenceThicknessMinimum(){return this.get("iridescenceThicknessMinimum")}setIridescenceThicknessMinimum(Z){return this.set("iridescenceThicknessMinimum",Z)}getIridescenceThicknessMaximum(){return this.get("iridescenceThicknessMaximum")}setIridescenceThicknessMaximum(Z){return this.set("iridescenceThicknessMaximum",Z)}getIridescenceThicknessTexture(){return this.getRef("iridescenceThicknessTexture")}getIridescenceThicknessTextureInfo(){return this.getRef("iridescenceThicknessTexture")?this.getRef("iridescenceThicknessTextureInfo"):null}setIridescenceThicknessTexture(Z){return this.setRef("iridescenceThicknessTexture",Z,{channels:eL1})}}rD.EXTENSION_NAME=vD;var FY=vD;class tD extends E1{constructor(...Z){super(...Z);this.extensionName=FY,this.prereadTypes=[s.MESH],this.prewriteTypes=[s.MESH]}createIridescence(){return new rD(this.document.getGraph())}read(Z){return this}write(Z){return this}preread(Z){let J=Z.jsonDoc,X=J.json.materials||[],Y=J.json.textures||[];return X.forEach(($,Q)=>{if($.extensions&&$.extensions[FY]){let K=this.createIridescence();Z.materials[Q].setExtension(FY,K);let W=$.extensions[FY];if(W.iridescenceFactor!==void 0)K.setIridescenceFactor(W.iridescenceFactor);if(W.iridescenceIor!==void 0)K.setIridescenceIOR(W.iridescenceIor);if(W.iridescenceThicknessMinimum!==void 0)K.setIridescenceThicknessMinimum(W.iridescenceThicknessMinimum);if(W.iridescenceThicknessMaximum!==void 0)K.setIridescenceThicknessMaximum(W.iridescenceThicknessMaximum);if(W.iridescenceTexture!==void 0){let G=W.iridescenceTexture,z=Z.textures[Y[G.index].source];K.setIridescenceTexture(z),Z.setTextureInfo(K.getIridescenceTextureInfo(),G)}if(W.iridescenceThicknessTexture!==void 0){let G=W.iridescenceThicknessTexture,z=Z.textures[Y[G.index].source];K.setIridescenceThicknessTexture(z),Z.setTextureInfo(K.getIridescenceThicknessTextureInfo(),G)}}}),this}prewrite(Z){let J=Z.jsonDoc;return this.document.getRoot().listMaterials().forEach((X)=>{let Y=X.getExtension(FY);if(Y){let $=Z.materialIndexMap.get(X),Q=J.json.materials[$];Q.extensions=Q.extensions||{};let K=Q.extensions[FY]={};if(Y.getIridescenceFactor()>0)K.iridescenceFactor=Y.getIridescenceFactor();if(Y.getIridescenceIOR()!==1.3)K.iridescenceIor=Y.getIridescenceIOR();if(Y.getIridescenceThicknessMinimum()!==100)K.iridescenceThicknessMinimum=Y.getIridescenceThicknessMinimum();if(Y.getIridescenceThicknessMaximum()!==400)K.iridescenceThicknessMaximum=Y.getIridescenceThicknessMaximum();if(Y.getIridescenceTexture()){let W=Y.getIridescenceTexture(),G=Y.getIridescenceTextureInfo();K.iridescenceTexture=Z.createTextureInfoDef(W,G)}if(Y.getIridescenceThicknessTexture()){let W=Y.getIridescenceThicknessTexture(),G=Y.getIridescenceThicknessTextureInfo();K.iridescenceThicknessTexture=Z.createTextureInfoDef(W,G)}}}),this}}tD.EXTENSION_NAME=FY;var{R:Zn,G:Jn,B:Xn,A:Yn}=n5;class eD extends n1{init(){this.extensionName=SD,this.propertyType="PBRSpecularGlossiness",this.parentTypes=[s.MATERIAL]}getDefaults(){return Object.assign(super.getDefaults(),{diffuseFactor:[1,1,1,1],diffuseTexture:null,diffuseTextureInfo:new C1(this.graph,"diffuseTextureInfo"),specularFactor:[1,1,1],glossinessFactor:1,specularGlossinessTexture:null,specularGlossinessTextureInfo:new C1(this.graph,"specularGlossinessTextureInfo")})}getDiffuseFactor(){return this.get("diffuseFactor")}setDiffuseFactor(Z){return this.set("diffuseFactor",Z)}getDiffuseTexture(){return this.getRef("diffuseTexture")}getDiffuseTextureInfo(){return this.getRef("diffuseTexture")?this.getRef("diffuseTextureInfo"):null}setDiffuseTexture(Z){return this.setRef("diffuseTexture",Z,{channels:Zn|Jn|Xn|Yn,isColor:!0})}getSpecularFactor(){return this.get("specularFactor")}setSpecularFactor(Z){return this.set("specularFactor",Z)}getGlossinessFactor(){return this.get("glossinessFactor")}setGlossinessFactor(Z){return this.set("glossinessFactor",Z)}getSpecularGlossinessTexture(){return this.getRef("specularGlossinessTexture")}getSpecularGlossinessTextureInfo(){return this.getRef("specularGlossinessTexture")?this.getRef("specularGlossinessTextureInfo"):null}setSpecularGlossinessTexture(Z){return this.setRef("specularGlossinessTexture",Z,{channels:Zn|Jn|Xn|Yn})}}eD.EXTENSION_NAME=SD;var UY=SD;class v2 extends E1{constructor(...Z){super(...Z);this.extensionName=UY,this.prereadTypes=[s.MESH],this.prewriteTypes=[s.MESH]}createPBRSpecularGlossiness(){return new eD(this.document.getGraph())}read(Z){return this}write(Z){return this}preread(Z){let J=Z.jsonDoc,X=J.json.materials||[],Y=J.json.textures||[];return X.forEach(($,Q)=>{if($.extensions&&$.extensions[UY]){let K=this.createPBRSpecularGlossiness();Z.materials[Q].setExtension(UY,K);let W=$.extensions[UY];if(W.diffuseFactor!==void 0)K.setDiffuseFactor(W.diffuseFactor);if(W.specularFactor!==void 0)K.setSpecularFactor(W.specularFactor);if(W.glossinessFactor!==void 0)K.setGlossinessFactor(W.glossinessFactor);if(W.diffuseTexture!==void 0){let G=W.diffuseTexture,z=Z.textures[Y[G.index].source];K.setDiffuseTexture(z),Z.setTextureInfo(K.getDiffuseTextureInfo(),G)}if(W.specularGlossinessTexture!==void 0){let G=W.specularGlossinessTexture,z=Z.textures[Y[G.index].source];K.setSpecularGlossinessTexture(z),Z.setTextureInfo(K.getSpecularGlossinessTextureInfo(),G)}}}),this}prewrite(Z){let J=Z.jsonDoc;return this.document.getRoot().listMaterials().forEach((X)=>{let Y=X.getExtension(UY);if(Y){let $=Z.materialIndexMap.get(X),Q=J.json.materials[$];Q.extensions=Q.extensions||{};let K=Q.extensions[UY]={diffuseFactor:Y.getDiffuseFactor(),specularFactor:Y.getSpecularFactor(),glossinessFactor:Y.getGlossinessFactor()};if(Y.getDiffuseTexture()){let W=Y.getDiffuseTexture(),G=Y.getDiffuseTextureInfo();K.diffuseTexture=Z.createTextureInfoDef(W,G)}if(Y.getSpecularGlossinessTexture()){let W=Y.getSpecularGlossinessTexture(),G=Y.getSpecularGlossinessTextureInfo();K.specularGlossinessTexture=Z.createTextureInfoDef(W,G)}}}),this}}v2.EXTENSION_NAME=UY;var{R:Zw1,G:Jw1,B:Xw1,A:Yw1}=n5;class ZC extends n1{init(){this.extensionName=_D,this.propertyType="Sheen",this.parentTypes=[s.MATERIAL]}getDefaults(){return Object.assign(super.getDefaults(),{sheenColorFactor:[0,0,0],sheenColorTexture:null,sheenColorTextureInfo:new C1(this.graph,"sheenColorTextureInfo"),sheenRoughnessFactor:0,sheenRoughnessTexture:null,sheenRoughnessTextureInfo:new C1(this.graph,"sheenRoughnessTextureInfo")})}getSheenColorFactor(){return this.get("sheenColorFactor")}setSheenColorFactor(Z){return this.set("sheenColorFactor",Z)}getSheenColorTexture(){return this.getRef("sheenColorTexture")}getSheenColorTextureInfo(){return this.getRef("sheenColorTexture")?this.getRef("sheenColorTextureInfo"):null}setSheenColorTexture(Z){return this.setRef("sheenColorTexture",Z,{channels:Zw1|Jw1|Xw1,isColor:!0})}getSheenRoughnessFactor(){return this.get("sheenRoughnessFactor")}setSheenRoughnessFactor(Z){return this.set("sheenRoughnessFactor",Z)}getSheenRoughnessTexture(){return this.getRef("sheenRoughnessTexture")}getSheenRoughnessTextureInfo(){return this.getRef("sheenRoughnessTexture")?this.getRef("sheenRoughnessTextureInfo"):null}setSheenRoughnessTexture(Z){return this.setRef("sheenRoughnessTexture",Z,{channels:Yw1})}}ZC.EXTENSION_NAME=_D;var LY=_D;class JC extends E1{constructor(...Z){super(...Z);this.extensionName=LY,this.prereadTypes=[s.MESH],this.prewriteTypes=[s.MESH]}createSheen(){return new ZC(this.document.getGraph())}read(Z){return this}write(Z){return this}preread(Z){let J=Z.jsonDoc,X=J.json.materials||[],Y=J.json.textures||[];return X.forEach(($,Q)=>{if($.extensions&&$.extensions[LY]){let K=this.createSheen();Z.materials[Q].setExtension(LY,K);let W=$.extensions[LY];if(W.sheenColorFactor!==void 0)K.setSheenColorFactor(W.sheenColorFactor);if(W.sheenRoughnessFactor!==void 0)K.setSheenRoughnessFactor(W.sheenRoughnessFactor);if(W.sheenColorTexture!==void 0){let G=W.sheenColorTexture,z=Z.textures[Y[G.index].source];K.setSheenColorTexture(z),Z.setTextureInfo(K.getSheenColorTextureInfo(),G)}if(W.sheenRoughnessTexture!==void 0){let G=W.sheenRoughnessTexture,z=Z.textures[Y[G.index].source];K.setSheenRoughnessTexture(z),Z.setTextureInfo(K.getSheenRoughnessTextureInfo(),G)}}}),this}prewrite(Z){let J=Z.jsonDoc;return this.document.getRoot().listMaterials().forEach((X)=>{let Y=X.getExtension(LY);if(Y){let $=Z.materialIndexMap.get(X),Q=J.json.materials[$];Q.extensions=Q.extensions||{};let K=Q.extensions[LY]={sheenColorFactor:Y.getSheenColorFactor(),sheenRoughnessFactor:Y.getSheenRoughnessFactor()};if(Y.getSheenColorTexture()){let W=Y.getSheenColorTexture(),G=Y.getSheenColorTextureInfo();K.sheenColorTexture=Z.createTextureInfoDef(W,G)}if(Y.getSheenRoughnessTexture()){let W=Y.getSheenRoughnessTexture(),G=Y.getSheenRoughnessTextureInfo();K.sheenRoughnessTexture=Z.createTextureInfoDef(W,G)}}}),this}}JC.EXTENSION_NAME=LY;var{R:$w1,G:Qw1,B:Kw1,A:Ww1}=n5;class XC extends n1{init(){this.extensionName=AD,this.propertyType="Specular",this.parentTypes=[s.MATERIAL]}getDefaults(){return Object.assign(super.getDefaults(),{specularFactor:1,specularTexture:null,specularTextureInfo:new C1(this.graph,"specularTextureInfo"),specularColorFactor:[1,1,1],specularColorTexture:null,specularColorTextureInfo:new C1(this.graph,"specularColorTextureInfo")})}getSpecularFactor(){return this.get("specularFactor")}setSpecularFactor(Z){return this.set("specularFactor",Z)}getSpecularColorFactor(){return this.get("specularColorFactor")}setSpecularColorFactor(Z){return this.set("specularColorFactor",Z)}getSpecularTexture(){return this.getRef("specularTexture")}getSpecularTextureInfo(){return this.getRef("specularTexture")?this.getRef("specularTextureInfo"):null}setSpecularTexture(Z){return this.setRef("specularTexture",Z,{channels:Ww1})}getSpecularColorTexture(){return this.getRef("specularColorTexture")}getSpecularColorTextureInfo(){return this.getRef("specularColorTexture")?this.getRef("specularColorTextureInfo"):null}setSpecularColorTexture(Z){return this.setRef("specularColorTexture",Z,{channels:$w1|Qw1|Kw1,isColor:!0})}}XC.EXTENSION_NAME=AD;var wY=AD;class S2 extends E1{constructor(...Z){super(...Z);this.extensionName=wY,this.prereadTypes=[s.MESH],this.prewriteTypes=[s.MESH]}createSpecular(){return new XC(this.document.getGraph())}read(Z){return this}write(Z){return this}preread(Z){let J=Z.jsonDoc,X=J.json.materials||[],Y=J.json.textures||[];return X.forEach(($,Q)=>{if($.extensions&&$.extensions[wY]){let K=this.createSpecular();Z.materials[Q].setExtension(wY,K);let W=$.extensions[wY];if(W.specularFactor!==void 0)K.setSpecularFactor(W.specularFactor);if(W.specularColorFactor!==void 0)K.setSpecularColorFactor(W.specularColorFactor);if(W.specularTexture!==void 0){let G=W.specularTexture,z=Z.textures[Y[G.index].source];K.setSpecularTexture(z),Z.setTextureInfo(K.getSpecularTextureInfo(),G)}if(W.specularColorTexture!==void 0){let G=W.specularColorTexture,z=Z.textures[Y[G.index].source];K.setSpecularColorTexture(z),Z.setTextureInfo(K.getSpecularColorTextureInfo(),G)}}}),this}prewrite(Z){let J=Z.jsonDoc;return this.document.getRoot().listMaterials().forEach((X)=>{let Y=X.getExtension(wY);if(Y){let $=Z.materialIndexMap.get(X),Q=J.json.materials[$];Q.extensions=Q.extensions||{};let K=Q.extensions[wY]={};if(Y.getSpecularFactor()!==1)K.specularFactor=Y.getSpecularFactor();if(!W8.eq(Y.getSpecularColorFactor(),[1,1,1]))K.specularColorFactor=Y.getSpecularColorFactor();if(Y.getSpecularTexture()){let W=Y.getSpecularTexture(),G=Y.getSpecularTextureInfo();K.specularTexture=Z.createTextureInfoDef(W,G)}if(Y.getSpecularColorTexture()){let W=Y.getSpecularColorTexture(),G=Y.getSpecularColorTextureInfo();K.specularColorTexture=Z.createTextureInfoDef(W,G)}}}),this}}S2.EXTENSION_NAME=wY;var{R:Gw1}=n5;class YC extends n1{init(){this.extensionName=xD,this.propertyType="Transmission",this.parentTypes=[s.MATERIAL]}getDefaults(){return Object.assign(super.getDefaults(),{transmissionFactor:0,transmissionTexture:null,transmissionTextureInfo:new C1(this.graph,"transmissionTextureInfo")})}getTransmissionFactor(){return this.get("transmissionFactor")}setTransmissionFactor(Z){return this.set("transmissionFactor",Z)}getTransmissionTexture(){return this.getRef("transmissionTexture")}getTransmissionTextureInfo(){return this.getRef("transmissionTexture")?this.getRef("transmissionTextureInfo"):null}setTransmissionTexture(Z){return this.setRef("transmissionTexture",Z,{channels:Gw1})}}YC.EXTENSION_NAME=xD;var BY=xD;class $C extends E1{constructor(...Z){super(...Z);this.extensionName=BY,this.prereadTypes=[s.MESH],this.prewriteTypes=[s.MESH]}createTransmission(){return new YC(this.document.getGraph())}read(Z){return this}write(Z){return this}preread(Z){let J=Z.jsonDoc,X=J.json.materials||[],Y=J.json.textures||[];return X.forEach(($,Q)=>{if($.extensions&&$.extensions[BY]){let K=this.createTransmission();Z.materials[Q].setExtension(BY,K);let W=$.extensions[BY];if(W.transmissionFactor!==void 0)K.setTransmissionFactor(W.transmissionFactor);if(W.transmissionTexture!==void 0){let G=W.transmissionTexture,z=Z.textures[Y[G.index].source];K.setTransmissionTexture(z),Z.setTextureInfo(K.getTransmissionTextureInfo(),G)}}}),this}prewrite(Z){let J=Z.jsonDoc;return this.document.getRoot().listMaterials().forEach((X)=>{let Y=X.getExtension(BY);if(Y){let $=Z.materialIndexMap.get(X),Q=J.json.materials[$];Q.extensions=Q.extensions||{};let K=Q.extensions[BY]={transmissionFactor:Y.getTransmissionFactor()};if(Y.getTransmissionTexture()){let W=Y.getTransmissionTexture(),G=Y.getTransmissionTextureInfo();K.transmissionTexture=Z.createTextureInfoDef(W,G)}}}),this}}$C.EXTENSION_NAME=BY;class QC extends n1{init(){this.extensionName=hD,this.propertyType="Unlit",this.parentTypes=[s.MATERIAL]}}QC.EXTENSION_NAME=hD;var dQ=hD;class _2 extends E1{constructor(...Z){super(...Z);this.extensionName=dQ,this.prereadTypes=[s.MESH],this.prewriteTypes=[s.MESH]}createUnlit(){return new QC(this.document.getGraph())}read(Z){return this}write(Z){return this}preread(Z){return(Z.jsonDoc.json.materials||[]).forEach((X,Y)=>{if(X.extensions&&X.extensions[dQ])Z.materials[Y].setExtension(dQ,this.createUnlit())}),this}prewrite(Z){let J=Z.jsonDoc;return this.document.getRoot().listMaterials().forEach((X)=>{if(X.getExtension(dQ)){let Y=Z.materialIndexMap.get(X),$=J.json.materials[Y];$.extensions=$.extensions||{},$.extensions[dQ]={}}}),this}}_2.EXTENSION_NAME=dQ;class KC extends n1{init(){this.extensionName=MY,this.propertyType="Mapping",this.parentTypes=["MappingList"]}getDefaults(){return Object.assign(super.getDefaults(),{material:null,variants:new P0})}getMaterial(){return this.getRef("material")}setMaterial(Z){return this.setRef("material",Z)}addVariant(Z){return this.addRef("variants",Z)}removeVariant(Z){return this.removeRef("variants",Z)}listVariants(){return this.listRefs("variants")}}KC.EXTENSION_NAME=MY;class WC extends n1{init(){this.extensionName=MY,this.propertyType="MappingList",this.parentTypes=[s.PRIMITIVE]}getDefaults(){return Object.assign(super.getDefaults(),{mappings:new P0})}addMapping(Z){return this.addRef("mappings",Z)}removeMapping(Z){return this.removeRef("mappings",Z)}listMappings(){return this.listRefs("mappings")}}WC.EXTENSION_NAME=MY;class C2 extends n1{init(){this.extensionName=MY,this.propertyType="Variant",this.parentTypes=["MappingList"]}}C2.EXTENSION_NAME=MY;var W7=MY;class GC extends E1{constructor(...Z){super(...Z);this.extensionName=W7}createMappingList(){return new WC(this.document.getGraph())}createVariant(Z=""){return new C2(this.document.getGraph(),Z)}createMapping(){return new KC(this.document.getGraph())}listVariants(){return Array.from(this.properties).filter((Z)=>Z instanceof C2)}read(Z){let J=Z.jsonDoc;if(!J.json.extensions||!J.json.extensions[W7])return this;let $=(J.json.extensions[W7].variants||[]).map((K)=>this.createVariant().setName(K.name||""));return(J.json.meshes||[]).forEach((K,W)=>{let G=Z.meshes[W];(K.primitives||[]).forEach((V,H)=>{if(!V.extensions||!V.extensions[W7])return;let q=this.createMappingList(),F=V.extensions[W7];for(let U of F.mappings){let w=this.createMapping();if(U.material!==void 0)w.setMaterial(Z.materials[U.material]);for(let L of U.variants||[])w.addVariant($[L]);q.addMapping(w)}G.listPrimitives()[H].setExtension(W7,q)})}),this}write(Z){let J=Z.jsonDoc,X=this.listVariants();if(!X.length)return this;let Y=[],$=new Map;for(let Q of X)$.set(Q,Y.length),Y.push(Z.createPropertyDef(Q));for(let Q of this.document.getRoot().listMeshes()){let K=Z.meshIndexMap.get(Q);Q.listPrimitives().forEach((W,G)=>{let z=W.getExtension(W7);if(!z)return;let V=Z.jsonDoc.json.meshes[K].primitives[G],H=z.listMappings().map((q)=>{let F=Z.createPropertyDef(q),U=q.getMaterial();if(U)F.material=Z.materialIndexMap.get(U);return F.variants=q.listVariants().map((w)=>$.get(w)),F});V.extensions=V.extensions||{},V.extensions[W7]={mappings:H}})}return J.json.extensions=J.json.extensions||{},J.json.extensions[W7]={variants:Y},this}}GC.EXTENSION_NAME=W7;var{G:zw1}=n5;class zC extends n1{init(){this.extensionName=fD,this.propertyType="Volume",this.parentTypes=[s.MATERIAL]}getDefaults(){return Object.assign(super.getDefaults(),{thicknessFactor:0,thicknessTexture:null,thicknessTextureInfo:new C1(this.graph,"thicknessTexture"),attenuationDistance:1/0,attenuationColor:[1,1,1]})}getThicknessFactor(){return this.get("thicknessFactor")}setThicknessFactor(Z){return this.set("thicknessFactor",Z)}getThicknessTexture(){return this.getRef("thicknessTexture")}getThicknessTextureInfo(){return this.getRef("thicknessTexture")?this.getRef("thicknessTextureInfo"):null}setThicknessTexture(Z){return this.setRef("thicknessTexture",Z,{channels:zw1})}getAttenuationDistance(){return this.get("attenuationDistance")}setAttenuationDistance(Z){return this.set("attenuationDistance",Z)}getAttenuationColor(){return this.get("attenuationColor")}setAttenuationColor(Z){return this.set("attenuationColor",Z)}}zC.EXTENSION_NAME=fD;var jY=fD;class VC extends E1{constructor(...Z){super(...Z);this.extensionName=jY,this.prereadTypes=[s.MESH],this.prewriteTypes=[s.MESH]}createVolume(){return new zC(this.document.getGraph())}read(Z){return this}write(Z){return this}preread(Z){let J=Z.jsonDoc,X=J.json.materials||[],Y=J.json.textures||[];return X.forEach(($,Q)=>{if($.extensions&&$.extensions[jY]){let K=this.createVolume();Z.materials[Q].setExtension(jY,K);let W=$.extensions[jY];if(W.thicknessFactor!==void 0)K.setThicknessFactor(W.thicknessFactor);if(W.attenuationDistance!==void 0)K.setAttenuationDistance(W.attenuationDistance);if(W.attenuationColor!==void 0)K.setAttenuationColor(W.attenuationColor);if(W.thicknessTexture!==void 0){let G=W.thicknessTexture,z=Z.textures[Y[G.index].source];K.setThicknessTexture(z),Z.setTextureInfo(K.getThicknessTextureInfo(),G)}}}),this}prewrite(Z){let J=Z.jsonDoc;return this.document.getRoot().listMaterials().forEach((X)=>{let Y=X.getExtension(jY);if(Y){let $=Z.materialIndexMap.get(X),Q=J.json.materials[$];Q.extensions=Q.extensions||{};let K=Q.extensions[jY]={};if(Y.getThicknessFactor()>0)K.thicknessFactor=Y.getThicknessFactor();if(Number.isFinite(Y.getAttenuationDistance()))K.attenuationDistance=Y.getAttenuationDistance();if(!W8.eq(Y.getAttenuationColor(),[1,1,1]))K.attenuationColor=Y.getAttenuationColor();if(Y.getThicknessTexture()){let W=Y.getThicknessTexture(),G=Y.getThicknessTextureInfo();K.thicknessTexture=Z.createTextureInfoDef(W,G)}}}),this}}VC.EXTENSION_NAME=jY;var Hn=DL1;class TG extends E1{constructor(...Z){super(...Z);this.extensionName=Hn}read(Z){return this}write(Z){return this}}TG.EXTENSION_NAME=Hn;var RG=CL1;class qn{match(Z){return Z[0]===171&&Z[1]===75&&Z[2]===84&&Z[3]===88&&Z[4]===32&&Z[5]===50&&Z[6]===48&&Z[7]===187&&Z[8]===13&&Z[9]===10&&Z[10]===26&&Z[11]===10}getSize(Z){let J=N2(Z);return[J.pixelWidth,J.pixelHeight]}getChannels(Z){let X=N2(Z).dataFormatDescriptor[0];if(X.colorModel===ci)return X.samples.length===2&&(X.samples[1].channelType&15)===15?4:3;else if(X.colorModel===li)return(X.samples[0].channelType&15)===3?4:3;throw new Error(`Unexpected KTX2 colorModel, "${X.colorModel}".`)}getVRAMByteLength(Z){let J=N2(Z),X=this.getChannels(Z)>3,Y=0;for(let $=0;$<J.levels.length;$++){let Q=J.levels[$];if(Q.uncompressedByteLength)Y+=Q.uncompressedByteLength;else{let K=Math.max(1,Math.floor(J.pixelWidth/Math.pow(2,$))),W=Math.max(1,Math.floor(J.pixelHeight/Math.pow(2,$))),G=X?16:8;Y+=K/4*(W/4)*G}}return Y}}class HC extends E1{constructor(...Z){super(...Z);this.extensionName=RG,this.prereadTypes=[s.TEXTURE]}static register(){V4.registerFormat("image/ktx2",new qn)}preread(Z){return Z.jsonDoc.json.textures.forEach((J)=>{if(J.extensions&&J.extensions[RG]){let X=J.extensions[RG];J.source=X.source}}),this}read(Z){return this}write(Z){let J=Z.jsonDoc;return this.document.getRoot().listTextures().forEach((X)=>{if(X.getMimeType()==="image/ktx2"){let Y=Z.imageIndexMap.get(X);J.json.textures.forEach(($)=>{if($.source===Y)$.extensions=$.extensions||{},$.extensions[RG]={source:$.source},delete $.source})}}),this}}HC.EXTENSION_NAME=RG;class qC extends n1{init(){this.extensionName=bD,this.propertyType="Transform",this.parentTypes=[s.TEXTURE_INFO]}getDefaults(){return Object.assign(super.getDefaults(),{offset:[0,0],rotation:0,scale:[1,1],texCoord:null})}getOffset(){return this.get("offset")}setOffset(Z){return this.set("offset",Z)}getRotation(){return this.get("rotation")}setRotation(Z){return this.set("rotation",Z)}getScale(){return this.get("scale")}setScale(Z){return this.set("scale",Z)}getTexCoord(){return this.get("texCoord")}setTexCoord(Z){return this.set("texCoord",Z)}}qC.EXTENSION_NAME=bD;var OY=bD;class FC extends E1{constructor(...Z){super(...Z);this.extensionName=OY}createTransform(){return new qC(this.document.getGraph())}read(Z){for(let[J,X]of Array.from(Z.textureInfos.entries())){if(!X.extensions||!X.extensions[OY])continue;let Y=this.createTransform(),$=X.extensions[OY];if($.offset!==void 0)Y.setOffset($.offset);if($.rotation!==void 0)Y.setRotation($.rotation);if($.scale!==void 0)Y.setScale($.scale);if($.texCoord!==void 0)Y.setTexCoord($.texCoord);J.setExtension(OY,Y)}return this}write(Z){let J=Array.from(Z.textureInfoDefMap.entries());for(let[X,Y]of J){let $=X.getExtension(OY);if(!$)continue;Y.extensions=Y.extensions||{};let Q={},K=W8.eq;if(!K($.getOffset(),[0,0]))Q.offset=$.getOffset();if($.getRotation()!==0)Q.rotation=$.getRotation();if(!K($.getScale(),[1,1]))Q.scale=$.getScale();if($.getTexCoord()!=null)Q.texCoord=$.getTexCoord();Y.extensions[OY]=Q}return this}}FC.EXTENSION_NAME=OY;var Vw1=[s.ROOT,s.SCENE,s.NODE,s.MESH,s.MATERIAL,s.TEXTURE,s.ANIMATION];class UC extends n1{init(){this.extensionName=P2,this.propertyType="Packet",this.parentTypes=Vw1}getDefaults(){return Object.assign(super.getDefaults(),{context:{},properties:{}})}getContext(){return this.get("context")}setContext(Z){return this.set("context",qZ({},Z))}listProperties(){return Object.keys(this.get("properties"))}getProperty(Z){let J=this.get("properties");return Z in J?J[Z]:null}setProperty(Z,J){this._assertContext(Z);let X=qZ({},this.get("properties"));if(J)X[Z]=J;else delete X[Z];return this.set("properties",X)}toJSONLD(){let Z=jD(this.get("context")),J=jD(this.get("properties"));return qZ({"@context":Z},J)}fromJSONLD(Z){Z=jD(Z);let J=Z["@context"];if(J)this.set("context",J);return delete Z["@context"],this.set("properties",Z)}_assertContext(Z){if(!(Z.split(":")[0]in this.get("context")))throw new Error(`${P2}: Missing context for term, "${Z}".`)}}UC.EXTENSION_NAME=P2;function jD(Z){return JSON.parse(JSON.stringify(Z))}var HZ=P2;class LC extends E1{constructor(...Z){super(...Z);this.extensionName=HZ}createPacket(){return new UC(this.document.getGraph())}listPackets(){return Array.from(this.properties)}read(Z){var J;let X=(J=Z.jsonDoc.json.extensions)==null?void 0:J[HZ];if(!X||!X.packets)return this;let Y=Z.jsonDoc.json,$=this.document.getRoot(),Q=X.packets.map((G)=>this.createPacket().fromJSONLD(G)),K=[[Y.asset],Y.scenes,Y.nodes,Y.meshes,Y.materials,Y.images,Y.animations],W=[[$],$.listScenes(),$.listNodes(),$.listMeshes(),$.listMaterials(),$.listTextures(),$.listAnimations()];for(let G=0;G<K.length;G++){let z=K[G]||[];for(let V=0;V<z.length;V++){let H=z[V];if(H.extensions&&H.extensions[HZ]){let q=H.extensions[HZ];W[G][V].setExtension(HZ,Q[q.packet])}}}return this}write(Z){let{json:J}=Z.jsonDoc,X=[];for(let Y of this.properties){X.push(Y.toJSONLD());for(let $ of Y.listParents()){let Q;switch($.propertyType){case s.ROOT:Q=J.asset;break;case s.SCENE:Q=J.scenes[Z.sceneIndexMap.get($)];break;case s.NODE:Q=J.nodes[Z.nodeIndexMap.get($)];break;case s.MESH:Q=J.meshes[Z.meshIndexMap.get($)];break;case s.MATERIAL:Q=J.materials[Z.materialIndexMap.get($)];break;case s.TEXTURE:Q=J.images[Z.imageIndexMap.get($)];break;case s.ANIMATION:Q=J.animations[Z.animationIndexMap.get($)];break;default:Q=null,this.document.getLogger().warn(`[${HZ}]: Unsupported parent property, "${$.propertyType}"`);break}if(!Q)continue;Q.extensions=Q.extensions||{},Q.extensions[HZ]={packet:X.length-1}}}if(X.length>0)J.extensions=J.extensions||{},J.extensions[HZ]={packets:X};return this}}LC.EXTENSION_NAME=HZ;var Hw1=[CG,gD,uD,cD,pD,nD,sD,I2,tD,v2,S2,JC,$C,_2,GC,VC,TG,HC,FC,LC],ZV6=[T2,DG,k2,E2,...Hw1];var qw1=t(SP(),1);function nQ(){return nQ=Object.assign?Object.assign.bind():function(Z){for(var J=1;J<arguments.length;J++){var X=arguments[J];for(var Y in X)({}).hasOwnProperty.call(X,Y)&&(Z[Y]=X[Y])}return Z},nQ.apply(null,arguments)}var{POINTS:Fn,LINES:A2,LINE_STRIP:Fw1,LINE_LOOP:Uw1,TRIANGLES:x2,TRIANGLE_STRIP:Lw1,TRIANGLE_FAN:ww1}=M8.Mode;function NJ(Z,J){return Object.defineProperty(J,"name",{value:Z}),J}function G7(Z,J){let X=nQ({},Z);for(let Y in J)if(J[Y]!==void 0)X[Y]=J[Y];return X}function An(Z){let J=Z.getIndices(),X=Z.getAttribute("POSITION");switch(Z.getMode()){case M8.Mode.POINTS:return J?J.getCount():X.getCount();case M8.Mode.LINES:return J?J.getCount()/2:X.getCount()/2;case M8.Mode.LINE_LOOP:return J?J.getCount():X.getCount();case M8.Mode.LINE_STRIP:return J?J.getCount()-1:X.getCount()-1;case M8.Mode.TRIANGLES:return J?J.getCount()/3:X.getCount()/3;case M8.Mode.TRIANGLE_STRIP:case M8.Mode.TRIANGLE_FAN:return J?J.getCount()-2:X.getCount()-2;default:throw new Error("Unexpected mode: "+Z.getMode())}}var Bw1=new Intl.NumberFormat(void 0,{maximumFractionDigits:0});function OC(Z){return Bw1.format(Z)}function jw1(Z,J,X=2){let Y=Z>J?"\u2013":"+",$="%";return Y+(Math.abs(Z-J)/Z*100).toFixed(X)+"%"}function g2(Z,J){return`${OC(Z)} \u2192 ${OC(J)} (${jw1(Z,J)})`}function TC(Z){let J=[];for(let X of Z.listAttributes())J.push(X);for(let X of Z.listTargets())for(let Y of X.listAttributes())J.push(Y);return Array.from(new Set(J))}function Ow1(Z,J,X){Z.swap(J,X);for(let Y of Z.listTargets())Y.swap(J,X)}function Mw1(Z,J){if(Z==null&&J==null)return!0;if(Z==null||J==null)return!1;if(Z.length!==J.length)return!1;for(let X=0;X<Z.length;X++)if(Z[X]!==J[X])return!1;return!0}function FZ(Z,J){return Z.createAccessor(J.getName()).setArray(J.getArray()).setType(J.getType()).setBuffer(J.getBuffer()).setNormalized(J.getNormalized()).setSparse(J.getSparse())}function Rw1(Z,J=Z){let X=kC(Z,J);for(let Y=0;Y<X.length;Y++)X[Y]=Y;return X}function kC(Z,J=Z){return J<=65534?new Uint16Array(Z):new Uint32Array(Z)}function Nw1(Z){return Z.listParents().some((J)=>J.propertyType!==a.ROOT)}function xn(Z){for(let J in Z)return!1;return!0}function hn(Z){let J=C6.fromGraph(Z.getGraph()),X=Z.getMaterial(),Y=J.getRoot().listMaterials().indexOf(X),$=Dw1[Z.getMode()],Q=!!Z.getIndices(),K=Z.listSemantics().sort().map((G)=>{let z=Z.getAttribute(G),V=z.getElementSize(),H=z.getComponentType();return`${G}:${V}:${H}`}).join("+"),W=Z.listTargets().map((G)=>{return G.listSemantics().sort().map((z)=>{let V=Z.getAttribute(z),H=V.getElementSize(),q=V.getComponentType();return`${z}:${H}:${q}`}).join("+")}).join("~");return`${Y}|${$}|${Q}|${K}|${W}`}function Pw1(Z){return Math.pow(2,Math.ceil(Math.log(Z)/Math.LN2))}var Dw1={[Fn]:Fn,[A2]:A2,[Fw1]:A2,[Uw1]:A2,[x2]:x2,[Lw1]:x2,[ww1]:x2},pQ="center",Un={pivot:"center"};function fn(Z=Un){let J=G7(Un,Z);return NJ(pQ,(X)=>{let Y=X.getLogger(),$=X.getRoot(),Q=$.listAnimations().length>0||$.listSkins().length>0;X.getRoot().listScenes().forEach((K,W)=>{Y.debug(`${pQ}: Scene ${W+1} / ${$.listScenes().length}.`);let G;if(typeof J.pivot==="string"){let V=DP(K);if(G=[(V.max[0]-V.min[0])/2+V.min[0],(V.max[1]-V.min[1])/2+V.min[1],(V.max[2]-V.min[2])/2+V.min[2]],J.pivot==="above")G[1]=V.max[1];if(J.pivot==="below")G[1]=V.min[1]}else G=J.pivot;Y.debug(`${pQ}: Pivot "${G.join(", ")}".`);let z=[-1*G[0],-1*G[1],-1*G[2]];if(Q){Y.debug(`${pQ}: Model contains animation or skin. Adding a wrapper node.`);let V=X.createNode("Pivot").setTranslation(z);K.listChildren().forEach((H)=>V.addChild(H)),K.addChild(V)}else Y.debug(`${pQ}: Skipping wrapper, offsetting all root nodes.`),K.listChildren().forEach((V)=>{let H=V.getTranslation();V.setTranslation([H[0]+z[0],H[1]+z[1],H[2]+z[2]])})}),Y.debug(`${pQ}: Complete.`)})}function Cw1(Z){let J=new Set,X=Z,Y;while(Y=X.getParentNode()){if(J.has(Y))throw new Error("Circular dependency in scene graph.");J.add(Y),X=Y}return X.listParents().filter(($)=>$ instanceof vQ)}function Tw1(Z){let J=Cw1(Z),X=Z.getParentNode();if(!X)return Z;Z.setMatrix(Z.getWorldMatrix()),X.removeChild(Z);for(let Y of J)Y.addChild(Z);return Z}var aQ=typeof Float32Array!=="undefined"?Float32Array:Array;if(!Math.hypot)Math.hypot=function(){var Z=0,J=arguments.length;while(J--)Z+=arguments[J]*arguments[J];return Math.sqrt(Z)};function kw1(Z,J){var X=J[0],Y=J[1],$=J[2],Q=J[3],K=J[4],W=J[5],G=J[6],z=J[7],V=J[8],H=J[9],q=J[10],F=J[11],U=J[12],w=J[13],L=J[14],j=J[15],R=X*W-Y*K,O=X*G-$*K,N=X*z-Q*K,D=Y*G-$*W,P=Y*z-Q*W,C=$*z-Q*G,T=V*w-H*U,k=V*L-q*U,A=V*j-F*U,S=H*L-q*w,x=H*j-F*w,I=q*j-F*L,v=R*I-O*x+N*S+D*A-P*k+C*T;if(!v)return null;return v=1/v,Z[0]=(W*I-G*x+z*S)*v,Z[1]=($*x-Y*I-Q*S)*v,Z[2]=(w*C-L*P+j*D)*v,Z[3]=(q*P-H*C-F*D)*v,Z[4]=(G*A-K*I-z*k)*v,Z[5]=(X*I-$*A+Q*k)*v,Z[6]=(L*N-U*C-j*O)*v,Z[7]=(V*C-q*N+F*O)*v,Z[8]=(K*x-W*A+z*T)*v,Z[9]=(Y*A-X*x-Q*T)*v,Z[10]=(U*P-w*N+j*R)*v,Z[11]=(H*N-V*P-F*R)*v,Z[12]=(W*k-K*S-G*T)*v,Z[13]=(X*S-Y*k+$*T)*v,Z[14]=(w*O-U*D-L*R)*v,Z[15]=(V*D-H*O+q*R)*v,Z}function Ew1(Z){var J=Z[0],X=Z[1],Y=Z[2],$=Z[3],Q=Z[4],K=Z[5],W=Z[6],G=Z[7],z=Z[8],V=Z[9],H=Z[10],q=Z[11],F=Z[12],U=Z[13],w=Z[14],L=Z[15],j=J*K-X*Q,R=J*W-Y*Q,O=J*G-$*Q,N=X*W-Y*K,D=X*G-$*K,P=Y*G-$*W,C=z*U-V*F,T=z*w-H*F,k=z*L-q*F,A=V*w-H*U,S=V*L-q*U,x=H*L-q*w;return j*x-R*S+O*A+N*k-D*T+P*C}function bn(Z,J,X){var Y=J[0],$=J[1],Q=J[2],K=J[3],W=J[4],G=J[5],z=J[6],V=J[7],H=J[8],q=J[9],F=J[10],U=J[11],w=J[12],L=J[13],j=J[14],R=J[15],O=X[0],N=X[1],D=X[2],P=X[3];return Z[0]=O*Y+N*W+D*H+P*w,Z[1]=O*$+N*G+D*q+P*L,Z[2]=O*Q+N*z+D*F+P*j,Z[3]=O*K+N*V+D*U+P*R,O=X[4],N=X[5],D=X[6],P=X[7],Z[4]=O*Y+N*W+D*H+P*w,Z[5]=O*$+N*G+D*q+P*L,Z[6]=O*Q+N*z+D*F+P*j,Z[7]=O*K+N*V+D*U+P*R,O=X[8],N=X[9],D=X[10],P=X[11],Z[8]=O*Y+N*W+D*H+P*w,Z[9]=O*$+N*G+D*q+P*L,Z[10]=O*Q+N*z+D*F+P*j,Z[11]=O*K+N*V+D*U+P*R,O=X[12],N=X[13],D=X[14],P=X[15],Z[12]=O*Y+N*W+D*H+P*w,Z[13]=O*$+N*G+D*q+P*L,Z[14]=O*Q+N*z+D*F+P*j,Z[15]=O*K+N*V+D*U+P*R,Z}function Iw1(){var Z=new aQ(9);if(aQ!=Float32Array)Z[1]=0,Z[2]=0,Z[3]=0,Z[5]=0,Z[6]=0,Z[7]=0;return Z[0]=1,Z[4]=1,Z[8]=1,Z}function vw1(Z,J){return Z[0]=J[0],Z[1]=J[1],Z[2]=J[2],Z[3]=J[4],Z[4]=J[5],Z[5]=J[6],Z[6]=J[8],Z[7]=J[9],Z[8]=J[10],Z}function Sw1(Z,J){if(Z===J){var X=J[1],Y=J[2],$=J[5];Z[1]=J[3],Z[2]=J[6],Z[3]=X,Z[5]=J[7],Z[6]=Y,Z[7]=$}else Z[0]=J[0],Z[1]=J[3],Z[2]=J[6],Z[3]=J[1],Z[4]=J[4],Z[5]=J[7],Z[6]=J[2],Z[7]=J[5],Z[8]=J[8];return Z}function _w1(Z,J){var X=J[0],Y=J[1],$=J[2],Q=J[3],K=J[4],W=J[5],G=J[6],z=J[7],V=J[8],H=V*K-W*z,q=-V*Q+W*G,F=z*Q-K*G,U=X*H+Y*q+$*F;if(!U)return null;return U=1/U,Z[0]=H*U,Z[1]=(-V*Y+$*z)*U,Z[2]=(W*Y-$*K)*U,Z[3]=q*U,Z[4]=(V*X-$*G)*U,Z[5]=(-W*X+$*Q)*U,Z[6]=F*U,Z[7]=(-z*X+Y*G)*U,Z[8]=(K*X-Y*Q)*U,Z}function m2(){var Z=new aQ(3);if(aQ!=Float32Array)Z[0]=0,Z[1]=0,Z[2]=0;return Z}function Aw1(Z,J,X){return Z[0]=J[0]*X[0],Z[1]=J[1]*X[1],Z[2]=J[2]*X[2],Z}function yn(Z,J){var X=J[0],Y=J[1],$=J[2],Q=X*X+Y*Y+$*$;if(Q>0)Q=1/Math.sqrt(Q);return Z[0]=J[0]*Q,Z[1]=J[1]*Q,Z[2]=J[2]*Q,Z}function xw1(Z,J,X){var Y=J[0],$=J[1],Q=J[2],K=X[3]*Y+X[7]*$+X[11]*Q+X[15];return K=K||1,Z[0]=(X[0]*Y+X[4]*$+X[8]*Q+X[12])/K,Z[1]=(X[1]*Y+X[5]*$+X[9]*Q+X[13])/K,Z[2]=(X[2]*Y+X[6]*$+X[10]*Q+X[14])/K,Z}function hw1(Z,J,X){var Y=J[0],$=J[1],Q=J[2];return Z[0]=Y*X[0]+$*X[3]+Q*X[6],Z[1]=Y*X[1]+$*X[4]+Q*X[7],Z[2]=Y*X[2]+$*X[5]+Q*X[8],Z}var fw1=Aw1;(function(){var Z=m2();return function(J,X,Y,$,Q,K){var W,G;if(!X)X=3;if(!Y)Y=0;if($)G=Math.min($*X+Y,J.length);else G=J.length;for(W=Y;W<G;W+=X)Z[0]=J[W],Z[1]=J[W+1],Z[2]=J[W+2],Q(Z,Z,K),J[W]=Z[0],J[W+1]=Z[1],J[W+2]=Z[2];return J}})();var MJ="dedup",wC={keepUniqueNames:!1,propertyTypes:[a.ACCESSOR,a.MESH,a.TEXTURE,a.MATERIAL,a.SKIN]};function gn(Z=wC){let J=G7(wC,Z),X=new Set(J.propertyTypes);for(let Y of J.propertyTypes)if(!wC.propertyTypes.includes(Y))throw new Error(`${MJ}: Unsupported deduplication on type "${Y}".`);return NJ(MJ,(Y)=>{let $=Y.getLogger();if(X.has(a.ACCESSOR))bw1(Y);if(X.has(a.TEXTURE))gw1(Y,J);if(X.has(a.MATERIAL))mw1(Y,J);if(X.has(a.MESH))yw1(Y,J);if(X.has(a.SKIN))uw1(Y,J);$.debug(`${MJ}: Complete.`)})}function bw1(Z){let J=Z.getLogger(),X=new Map,Y=new Map,$=new Map,Q=new Map,K=Z.getRoot().listMeshes();K.forEach((H)=>{H.listPrimitives().forEach((q)=>{q.listAttributes().forEach((F)=>W(F,Y)),W(q.getIndices(),X)})});for(let H of Z.getRoot().listAnimations())for(let q of H.listSamplers())W(q.getInput(),$),W(q.getOutput(),Q);function W(H,q){if(!H)return;let F=[H.getCount(),H.getType(),H.getComponentType(),H.getNormalized(),H.getSparse()].join(":"),U=q.get(F);if(!U)q.set(F,U=new Set);U.add(H)}function G(H,q){for(let F=0;F<H.length;F++){let U=H[F],w=n0.toView(U.getArray());if(q.has(U))continue;for(let L=F+1;L<H.length;L++){let j=H[L];if(q.has(j))continue;if(n0.equals(w,n0.toView(j.getArray())))q.set(j,U)}}}let z=0,V=new Map;for(let H of[Y,X,$,Q])for(let q of H.values())z+=q.size,G(Array.from(q),V);J.debug(`${MJ}: Merged ${V.size} of ${z} accessors.`),K.forEach((H)=>{H.listPrimitives().forEach((q)=>{q.listAttributes().forEach((U)=>{if(V.has(U))q.swap(U,V.get(U))});let F=q.getIndices();if(F&&V.has(F))q.swap(F,V.get(F))})});for(let H of Z.getRoot().listAnimations())for(let q of H.listSamplers()){let F=q.getInput(),U=q.getOutput();if(F&&V.has(F))q.swap(F,V.get(F));if(U&&V.has(U))q.swap(U,V.get(U))}Array.from(V.keys()).forEach((H)=>H.dispose())}function yw1(Z,J){let X=Z.getLogger(),Y=Z.getRoot(),$=new Map;Y.listAccessors().forEach((W,G)=>$.set(W,G)),Y.listMaterials().forEach((W,G)=>$.set(W,G));let Q=Y.listMeshes().length,K=new Map;for(let W of Y.listMeshes()){let G=[];for(let V of W.listPrimitives())G.push(mn(V,$));let z="";if(J.keepUniqueNames)z+=W.getName()+";";if(z+=G.join(";"),K.has(z)){let V=K.get(z);W.listParents().forEach((H)=>{if(H.propertyType!==a.ROOT)H.swap(W,V)}),W.dispose()}else K.set(z,W)}X.debug(`${MJ}: Merged ${Q-K.size} of ${Q} meshes.`)}function gw1(Z,J){let X=Z.getLogger(),Y=Z.getRoot(),$=Y.listTextures(),Q=new Map;for(let K=0;K<$.length;K++){let W=$[K],G=W.getImage();if(Q.has(W))continue;for(let z=K+1;z<$.length;z++){let V=$[z],H=V.getImage();if(Q.has(V))continue;if(W.getMimeType()!==V.getMimeType())continue;if(J.keepUniqueNames&&W.getName()!==V.getName())continue;let q=W.getSize(),F=V.getSize();if(!q||!F)continue;if(q[0]!==F[0])continue;if(q[1]!==F[1])continue;if(!G||!H)continue;if(n0.equals(G,H))Q.set(V,W)}}X.debug(`${MJ}: Merged ${Q.size} of ${Y.listTextures().length} textures.`),Array.from(Q.entries()).forEach(([K,W])=>{K.listParents().forEach((G)=>{if(!(G instanceof JY))G.swap(K,W)}),K.dispose()})}function mw1(Z,J){let X=Z.getLogger(),$=Z.getRoot().listMaterials(),Q=new Map,K=new Map,W=new Set;if(!J.keepUniqueNames)W.add("name");for(let G=0;G<$.length;G++){let z=$[G];if(Q.has(z))continue;if(Ln(z,K))continue;for(let V=G+1;V<$.length;V++){let H=$[V];if(Q.has(H))continue;if(Ln(H,K))continue;if(z.equals(H,W))Q.set(H,z)}}X.debug(`${MJ}: Merged ${Q.size} of ${$.length} materials.`),Array.from(Q.entries()).forEach(([G,z])=>{G.listParents().forEach((V)=>{if(!(V instanceof JY))V.swap(G,z)}),G.dispose()})}function uw1(Z,J){let X=Z.getLogger(),$=Z.getRoot().listSkins(),Q=new Map,K=new Set(["joints"]);if(!J.keepUniqueNames)K.add("name");for(let W=0;W<$.length;W++){let G=$[W];if(Q.has(G))continue;for(let z=W+1;z<$.length;z++){let V=$[z];if(Q.has(V))continue;if(G.equals(V,K)&&Mw1(G.listJoints(),V.listJoints()))Q.set(V,G)}}X.debug(`${MJ}: Merged ${Q.size} of ${$.length} skins.`),Array.from(Q.entries()).forEach(([W,G])=>{W.listParents().forEach((z)=>{if(!(z instanceof JY))z.swap(W,G)}),W.dispose()})}function mn(Z,J){let X=[];for(let Y of Z.listSemantics()){let $=Z.getAttribute(Y);X.push(Y+":"+J.get($))}if(Z instanceof M8){let Y=Z.getIndices();if(Y)X.push("indices:"+J.get(Y));let $=Z.getMaterial();if($)X.push("material:"+J.get($));X.push("mode:"+Z.getMode());for(let Q of Z.listTargets())X.push("target:"+mn(Q,J))}return X.join(",")}function Ln(Z,J){if(J.has(Z))return J.get(Z);let X=Z.getGraph(),Y=new Set,$=X.listParentEdges(Z);while($.length>0){let Q=$.pop();if(Q.getAttributes().modifyChild===!0)return J.set(Z,!0),!0;let K=Q.getChild();if(Y.has(K))continue;for(let W of X.listChildEdges(K))$.push(W)}return J.set(Z,!1),!1}function un(){var Z=new aQ(4);if(aQ!=Float32Array)Z[0]=0,Z[1]=0,Z[2]=0,Z[3]=0;return Z}function dw1(Z,J,X){return Z[0]=J[0]+X[0],Z[1]=J[1]+X[1],Z[2]=J[2]+X[2],Z[3]=J[3]+X[3],Z}function cw1(Z,J,X){return Z[0]=J[0]-X[0],Z[1]=J[1]-X[1],Z[2]=J[2]-X[2],Z[3]=J[3]-X[3],Z}function lw1(Z,J,X){return Z[0]=J[0]*X[0],Z[1]=J[1]*X[1],Z[2]=J[2]*X[2],Z[3]=J[3]*X[3],Z}function pw1(Z,J,X){return Z[0]=J[0]*X,Z[1]=J[1]*X,Z[2]=J[2]*X,Z[3]=J[3]*X,Z}function iw1(Z){var J=Z[0],X=Z[1],Y=Z[2],$=Z[3];return Math.hypot(J,X,Y,$)}var dn=cw1,nw1=lw1,cn=iw1;(function(){var Z=un();return function(J,X,Y,$,Q,K){var W,G;if(!X)X=4;if(!Y)Y=0;if($)G=Math.min($*X+Y,J.length);else G=J.length;for(W=Y;W<G;W+=X)Z[0]=J[W],Z[1]=J[W+1],Z[2]=J[W+2],Z[3]=J[W+3],Q(Z,Z,K),J[W]=Z[0],J[W+1]=Z[1],J[W+2]=Z[2],J[W+3]=Z[3];return J}})();var aw1=/color|emissive|diffuse/i;function sw1(Z){return Z.getGraph().listParentEdges(Z).some(($)=>{return $.getAttributes().isColor||aw1.test($.getName())})?"srgb":null}function ow1(Z){let J=Z.getGraph(),X=new Set,Y=new Set;function $(Q){let K=new Set;for(let W of J.listChildEdges(Q))if(W.getChild()instanceof ZY)K.add(W.getName()+"Info");for(let W of J.listChildEdges(Q)){let G=W.getChild();if(X.has(G))continue;if(X.add(G),G instanceof B5&&K.has(W.getName()))Y.add(G);else if(G instanceof IQ)$(G)}}return $(Z),Array.from(Y)}function rw1(Z){let X=C6.fromGraph(Z.getGraph()).getRoot(),Y=Z.getGraph().listParentEdges(Z).filter(($)=>$.getParent()!==X).map(($)=>$.getName());return Array.from(new Set(Y))}var iQ="prune",MC=0.011764705882352941,wn={propertyTypes:[a.NODE,a.SKIN,a.MESH,a.CAMERA,a.PRIMITIVE,a.PRIMITIVE_TARGET,a.ANIMATION,a.MATERIAL,a.TEXTURE,a.ACCESSOR,a.BUFFER],keepLeaves:!1,keepAttributes:!1,keepIndices:!1,keepSolidTextures:!1,keepExtras:!1};function u2(Z=wn){let J=G7(wn,Z),X=new Set(J.propertyTypes),Y=J.keepExtras;return NJ(iQ,async($)=>{let Q=$.getLogger(),K=$.getRoot(),W=$.getGraph(),G=new ln,z=(V)=>G.dispose(V.target);if(W.addEventListener("node:dispose",z),X.has(a.MESH))for(let V of K.listMeshes()){if(V.listPrimitives().length>0)continue;V.dispose()}if(X.has(a.NODE)){if(!J.keepLeaves)for(let V of K.listScenes())pn(W,V,Y);for(let V of K.listNodes())P9(V,Y)}if(X.has(a.SKIN))for(let V of K.listSkins())P9(V,Y);if(X.has(a.MESH))for(let V of K.listMeshes())P9(V,Y);if(X.has(a.CAMERA))for(let V of K.listCameras())P9(V,Y);if(X.has(a.PRIMITIVE))Bn(W,a.PRIMITIVE,Y);if(X.has(a.PRIMITIVE_TARGET))Bn(W,a.PRIMITIVE_TARGET,Y);if(!J.keepAttributes&&X.has(a.ACCESSOR)){let V=new Map;for(let H of K.listMeshes())for(let q of H.listPrimitives()){let F=q.getMaterial();if(!F)continue;let U=nn($,q,F),w=ew1(q,U);jn(q,w),q.listTargets().forEach((L)=>jn(L,w)),V.has(F)?V.get(F).add(q):V.set(F,new Set([q]))}for(let[H,q]of V)ZB1(H,Array.from(q))}if(!J.keepIndices&&X.has(a.ACCESSOR))for(let V of K.listMeshes())for(let H of V.listPrimitives())tw1(H);if(X.has(a.ANIMATION))for(let V of K.listAnimations()){for(let H of V.listChannels())if(!H.getTargetNode())H.dispose();if(!V.listChannels().length){let H=V.listSamplers();P9(V,Y),H.forEach((q)=>P9(q,Y))}else V.listSamplers().forEach((H)=>P9(H,Y))}if(X.has(a.MATERIAL))K.listMaterials().forEach((V)=>P9(V,Y));if(X.has(a.TEXTURE)){if(K.listTextures().forEach((V)=>P9(V,Y)),!J.keepSolidTextures)await JB1($)}if(X.has(a.ACCESSOR))K.listAccessors().forEach((V)=>P9(V,Y));if(X.has(a.BUFFER))K.listBuffers().forEach((V)=>P9(V,Y));if(W.removeEventListener("node:dispose",z),!G.empty()){let V=G.entries().map(([H,q])=>`${H} (${q})`).join(", ");Q.info(`${iQ}: Removed types... ${V}`)}else Q.debug(`${iQ}: No unused properties found.`);Q.debug(`${iQ}: Complete.`)})}class ln{constructor(){this.disposed={}}empty(){for(let Z in this.disposed)return!1;return!0}entries(){return Object.entries(this.disposed)}dispose(Z){this.disposed[Z.propertyType]=this.disposed[Z.propertyType]||0,this.disposed[Z.propertyType]++}}function P9(Z,J){let X=Z.listParents().filter(($)=>!($ instanceof JY||$ instanceof tX)),Y=J&&!xn(Z.getExtras());if(!X.length&&!Y)Z.dispose()}function Bn(Z,J,X){for(let Y of Z.listEdges()){let $=Y.getParent();if($.propertyType===J)P9($,X)}}function pn(Z,J,X){if(J.listChildren().forEach((K)=>pn(Z,K,X)),J instanceof vQ)return;let Y=Z.listParentEdges(J).some((K)=>{let W=K.getParent().propertyType;return W!==a.ROOT&&W!==a.SCENE&&W!==a.NODE}),$=Z.listChildren(J).length===0,Q=X&&!xn(J.getExtras());if($&&!Y&&!Q)J.dispose()}function jn(Z,J){for(let X of J)Z.setAttribute(X,null)}function tw1(Z){let J=Z.getIndices(),X=J&&J.getArray(),Y=Z.listAttributes()[0];if(!X||!Y)return;if(J.getCount()!==Y.getCount())return;for(let $=0,Q=X.length;$<Q;$++)if($!==X[$])return;Z.setIndices(null)}function ew1(Z,J){let X=[];for(let Y of Z.listSemantics())if(Y==="NORMAL"&&!J.has(Y))X.push(Y);else if(Y==="TANGENT"&&!J.has(Y))X.push(Y);else if(Y.startsWith("TEXCOORD_")&&!J.has(Y))X.push(Y);else if(Y.startsWith("COLOR_")&&Y!=="COLOR_0")X.push(Y);return X}function nn(Z,J,X,Y=new Set){let Q=Z.getGraph().listChildEdges(X),K=new Set;for(let z of Q)if(z.getChild()instanceof ZY)K.add(z.getName());for(let z of Q){let V=z.getName(),H=z.getChild();if(H instanceof B5){if(K.has(V.replace(/Info$/,"")))Y.add(`TEXCOORD_${H.getTexCoord()}`)}if(H instanceof ZY&&V.match(/normalTexture/i))Y.add("TANGENT");if(H instanceof IQ)nn(Z,J,H,Y)}let W=X instanceof e4&&!X.getExtension("KHR_materials_unlit"),G=J.getMode()===M8.Mode.POINTS;if(W&&!G)Y.add("NORMAL");return Y}function ZB1(Z,J){let X=ow1(Z),Y=new Set(X.map((G)=>G.getTexCoord())),$=Array.from(Y).sort(),Q=new Map($.map((G,z)=>[G,z])),K=new Map($.map((G,z)=>[`TEXCOORD_${G}`,`TEXCOORD_${z}`]));for(let G of X){let z=G.getTexCoord();G.setTexCoord(Q.get(z))}for(let G of J){let z=G.listSemantics().filter((V)=>V.startsWith("TEXCOORD_")).sort();W(G,z),G.listTargets().forEach((V)=>W(V,z))}function W(G,z){for(let V of z){let H=G.getAttribute(V);if(!H)continue;let q=K.get(V);if(q===V)continue;G.setAttribute(q,H),G.setAttribute(V,null)}}}async function JB1(Z){let J=Z.getRoot(),X=Z.getGraph(),Y=Z.getLogger(),Q=J.listTextures().map(async(K)=>{var W;let G=await YB1(K);if(!G)return;if(sw1(K)==="srgb")CP.convertSRGBToLinear(G,G);let z=K.getName()||K.getURI(),V=(W=K.getSize())==null?void 0:W.join("x"),H=rw1(K);for(let q of X.listParentEdges(K)){let F=q.getParent();if(F!==J&&XB1(F,G,q.getName(),Y))q.dispose()}if(K.listParents().length===1)K.dispose(),Y.debug(`${iQ}: Removed solid-color texture "${z}" (${V}px ${H.join(", ")})`)});await Promise.all(Q)}function XB1(Z,J,X,Y){if(Z instanceof e4)switch(X){case"baseColorTexture":return Z.setBaseColorFactor(nw1(J,J,Z.getBaseColorFactor())),!0;case"emissiveTexture":return Z.setEmissiveFactor(fw1([0,0,0],J.slice(0,3),Z.getEmissiveFactor())),!0;case"occlusionTexture":return Math.abs(J[0]-1)<=MC;case"metallicRoughnessTexture":return Z.setRoughnessFactor(J[1]*Z.getRoughnessFactor()),Z.setMetallicFactor(J[2]*Z.getMetallicFactor()),!0;case"normalTexture":return cn(dn(un(),J,[0.5,0.5,1,1]))<=MC}return Y.warn(`${iQ}: Detected single-color ${X} texture. Pruning ${X} not yet supported.`),!1}async function YB1(Z){let J=await $B1(Z);if(!J)return null;let X=[1/0,1/0,1/0,1/0],Y=[-1/0,-1/0,-1/0,-1/0],$=[0,0,0,0],[Q,K]=J.shape;for(let W=0;W<Q;W++){for(let G=0;G<K;G++)for(let z=0;z<4;z++)X[z]=Math.min(X[z],J.get(W,G,z)),Y[z]=Math.max(Y[z],J.get(W,G,z));if(cn(dn($,Y,X))/255>MC)return null}return pw1($,dw1($,Y,X),0.00196078431372549)}async function $B1(Z){try{return await Si(Z.getImage(),Z.getMimeType())}catch(J){return null}}var OJ=4294967295;class an{constructor(Z){this.attributes=[],this.u8=void 0,this.u32=void 0;let J=0;for(let X of TC(Z))J+=this._initAttribute(X);this.u8=new Uint8Array(J),this.u32=new Uint32Array(this.u8.buffer)}_initAttribute(Z){let J=Z.getArray(),X=new Uint8Array(J.buffer,J.byteOffset,J.byteLength),Y=Z.getElementSize()*Z.getComponentSize(),$=n0.padNumber(Y);return this.attributes.push({u8:X,byteStride:Y,paddedByteStride:$}),$}hash(Z){let J=0;for(let{u8:X,byteStride:Y,paddedByteStride:$}of this.attributes){for(let Q=0;Q<$;Q++)if(Q<Y)this.u8[J+Q]=X[Z*Y+Q];else this.u8[J+Q]=0;J+=$}return QB1(0,this.u32)}equal(Z,J){for(let{u8:X,byteStride:Y}of this.attributes)for(let $=0;$<Y;$++)if(X[Z*Y+$]!==X[J*Y+$])return!1;return!0}}function QB1(Z,J){for(let $=0,Q=J.length;$<Q;$++){let K=J[$];K=Math.imul(K,1540483477)>>>0,K=(K^K>>24)>>>0,K=Math.imul(K,1540483477)>>>0,Z=Math.imul(Z,1540483477)>>>0,Z=(Z^K)>>>0}return Z}function KB1(Z,J,X,Y,$=OJ){let Q=J-1,W=X.hash(Y)&Q;for(let G=0;G<=Q;G++){let z=Z[W];if(z===$||X.equal(z,Y))return W;W=W+G+1&Q}throw new Error("Hash table full.")}var L6;(function(Z){Z.RENDER="render",Z.RENDER_CACHED="render-cached",Z.UPLOAD="upload",Z.UPLOAD_NAIVE="upload-naive",Z.DISTINCT="distinct",Z.DISTINCT_POSITION="distinct-position",Z.UNUSED="unused"})(L6||(L6={}));function RJ(Z,J){let X=Z.getAttribute("POSITION"),Y=Z.getIndices();switch(J){case L6.RENDER:return Y?Y.getCount():X.getCount();case L6.RENDER_CACHED:return Y?new Set(Y.getArray()).size:X.getCount();case L6.UPLOAD_NAIVE:case L6.UPLOAD:return X.getCount();case L6.DISTINCT:case L6.DISTINCT_POSITION:return WB1(J);case L6.UNUSED:return Y?X.getCount()-new Set(Y.getArray()).size:0;default:return GB1(J)}}function WB1(Z){throw new Error(`Not implemented: ${Z}`)}function GB1(Z){throw new Error(`Unexpected value: ${Z}`)}function EG(Z,J,X){let Y=C6.fromGraph(Z.getGraph());if(!J||!X)[J,X]=zB1(Z);let $=Z.getIndices(),Q=$?$.getArray():null,K=RJ(Z,L6.RENDER),W=Y.createAccessor(),G=K,z=kC(G,X);for(let H=0;H<G;H++)z[H]=J[Q?Q[H]:H];Z.setIndices(W.setArray(z));let V=TC(Z);for(let H of Z.listAttributes()){let q=FZ(Y,H);RC(H,$,J,q,X),Z.swap(H,q)}for(let H of Z.listTargets())for(let q of H.listAttributes()){let F=FZ(Y,q);RC(q,$,J,F,X),H.swap(q,F)}if($&&$.listParents().length===1)$.dispose();for(let H of V)if(H.listParents().length===1)H.dispose();return Z}function RC(Z,J,X,Y,$){let Q=Z.getElementSize(),K=Z.getArray(),W=J?J.getArray():null,G=J?J.getCount():Z.getCount(),z=new K.constructor($*Q),V=new Uint8Array($);for(let H=0;H<G;H++){let q=W?W[H]:H,F=X[q];if(V[F])continue;for(let U=0;U<Q;U++)z[F*Q+U]=K[q*Q+U];V[F]=1}return Y.setArray(z)}function zB1(Z){let J=RJ(Z,L6.UPLOAD),X=Z.getIndices(),Y=X?X.getArray():null;if(!X||!Y)return[Rw1(J,1e6),J];let $=new Uint32Array(J).fill(OJ),Q=0;for(let K=0;K<Y.length;K++){let W=Y[K];if($[W]===OJ)$[W]=Q++}return[$,Q]}var NC="weld",f2={overwrite:!0,cleanup:!0};function EC(Z=f2){let J=G7(f2,Z);return NJ(NC,async(X)=>{let Y=X.getLogger();for(let $ of X.getRoot().listMeshes()){for(let Q of $.listPrimitives())if(d2(Q,J),RJ(Q,L6.RENDER)===0)Q.dispose();if($.listPrimitives().length===0)$.dispose()}if(J.cleanup)await X.transform(u2({propertyTypes:[a.ACCESSOR,a.NODE],keepAttributes:!0,keepIndices:!0,keepLeaves:!1}),gn({propertyTypes:[a.ACCESSOR]}));Y.debug(`${NC}: Complete.`)})}function d2(Z,J=f2){let X=Z.getGraph(),$=C6.fromGraph(X).getLogger(),Q=nQ({},f2,J);if(Z.getIndices()&&!Q.overwrite)return;if(Z.getMode()===M8.Mode.POINTS)return;let K=Z.getAttribute("POSITION").getCount(),W=Z.getIndices(),G=W==null?void 0:W.getArray(),z=W?W.getCount():K,V=new an(Z),H=Pw1(K+K/4),q=new Uint32Array(H).fill(OJ),F=new Uint32Array(K).fill(OJ),U=0;for(let w=0;w<z;w++){let L=G?G[w]:w;if(F[L]!==OJ)continue;let j=KB1(q,H,V,L,OJ),R=q[j];if(R===OJ)q[j]=L,F[L]=U++;else F[L]=F[R]}$.debug(`${NC}: ${g2(K,U)} vertices.`),EG(Z,F,U)}var{FLOAT:VB1}=I0.ComponentType;function sn(Z,J){let X=Z.getAttribute("POSITION");if(X)On(J,X);let Y=Z.getAttribute("NORMAL");if(Y)Mn(J,Y);let $=Z.getAttribute("TANGENT");if($)Rn(J,$);for(let Q of Z.listTargets()){let K=Q.getAttribute("POSITION");if(K)On(J,K);let W=Q.getAttribute("NORMAL");if(W)Mn(J,W);let G=Q.getAttribute("TANGENT");if(G)Rn(J,G)}if(Ew1(J)<0)HB1(Z)}function On(Z,J){let X=J.getComponentType(),Y=J.getNormalized(),$=J.getArray(),Q=X===VB1?$:new Float32Array($.length),K=m2();for(let W=0,G=J.getCount();W<G;W++){if(Y)K[0]=d0.decodeNormalizedInt($[W*3],X),K[1]=d0.decodeNormalizedInt($[W*3+1],X),K[2]=d0.decodeNormalizedInt($[W*3+2],X);else K[0]=$[W*3],K[1]=$[W*3+1],K[2]=$[W*3+2];xw1(K,K,Z),Q[W*3]=K[0],Q[W*3+1]=K[1],Q[W*3+2]=K[2]}J.setArray(Q).setNormalized(!1)}function Mn(Z,J){let X=J.getArray(),Y=J.getNormalized(),$=J.getComponentType(),Q=Iw1();vw1(Q,Z),_w1(Q,Q),Sw1(Q,Q);let K=m2();for(let W=0,G=J.getCount();W<G;W++){if(Y)K[0]=d0.decodeNormalizedInt(X[W*3],$),K[1]=d0.decodeNormalizedInt(X[W*3+1],$),K[2]=d0.decodeNormalizedInt(X[W*3+2],$);else K[0]=X[W*3],K[1]=X[W*3+1],K[2]=X[W*3+2];if(hw1(K,K,Q),yn(K,K),Y)X[W*3]=d0.decodeNormalizedInt(K[0],$),X[W*3+1]=d0.decodeNormalizedInt(K[1],$),X[W*3+2]=d0.decodeNormalizedInt(K[2],$);else X[W*3]=K[0],X[W*3+1]=K[1],X[W*3+2]=K[2]}}function Rn(Z,J){let X=J.getArray(),Y=J.getNormalized(),$=J.getComponentType(),Q=m2();for(let K=0,W=J.getCount();K<W;K++){if(Y)Q[0]=d0.decodeNormalizedInt(X[K*4],$),Q[1]=d0.decodeNormalizedInt(X[K*4+1],$),Q[2]=d0.decodeNormalizedInt(X[K*4+2],$);else Q[0]=X[K*4],Q[1]=X[K*4+1],Q[2]=X[K*4+2];if(Q[0]=Z[0]*Q[0]+Z[4]*Q[1]+Z[8]*Q[2],Q[1]=Z[1]*Q[0]+Z[5]*Q[1]+Z[9]*Q[2],Q[2]=Z[2]*Q[0]+Z[6]*Q[1]+Z[10]*Q[2],yn(Q,Q),Y)X[K*4]=d0.decodeNormalizedInt(Q[0],$),X[K*4+1]=d0.decodeNormalizedInt(Q[1],$),X[K*4+2]=d0.decodeNormalizedInt(Q[2],$);else X[K*4]=Q[0],X[K*4+1]=Q[1],X[K*4+2]=Q[2]}}function HB1(Z){if(Z.getMode()!==M8.Mode.TRIANGLES)return;if(!Z.getIndices())d2(Z);let J=Z.getIndices();for(let X=0,Y=J.getCount();X<Y;X+=3){let $=J.getScalar(X),Q=J.getScalar(X+2);J.setScalar(X,Q),J.setScalar(X+2,$)}}function qB1(Z,J){for(let X of Z.listPrimitives()){let Y=FB1(X,Z);if(X!==Y)Z.removePrimitive(X).addPrimitive(Y)}for(let X of Z.listPrimitives())EG(X),sn(X,J)}function FB1(Z,J){if(Z.listParents().some((Y)=>Y instanceof $G&&Y!==J))Z=Z.clone();for(let Y of Z.listTargets())if(Y.listParents().some((Q)=>Q instanceof M8&&Q!==Z))Z.removeTarget(Y).addTarget(Y.clone());return Z}var Nn=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1];function on(Z){let J=Z.getMesh(),X=Z.getMatrix();if(J&&!d0.eq(X,Nn))qB1(J,X);for(let Y of Z.listChildren()){let $=Y.getMatrix();bn($,$,X),Y.setMatrix($)}return Z.setMatrix(Nn)}var{LINES:UB1,LINE_STRIP:LB1,LINE_LOOP:wB1,TRIANGLES:BB1,TRIANGLE_STRIP:jB1,TRIANGLE_FAN:OB1}=M8.Mode;function MB1(Z){let J=Z.getGraph(),X=C6.fromGraph(J);if(!Z.getIndices())d2(Z);let Y=Z.getIndices(),$=Y.getArray(),Q=An(Z),W=new VJ[Y.getComponentType()](Q*2),G=Z.getMode();if(G===LB1)for(let V=0;V<Q;V++)W[V*2]=$[V],W[V*2+1]=$[V+1];else if(G===wB1)for(let V=0;V<Q;V++)if(V<Q-1)W[V*2]=$[V],W[V*2+1]=$[V+1];else W[V*2]=$[V],W[V*2+1]=$[0];else throw new Error("Only LINE_STRIP and LINE_LOOP may be converted to LINES.");Z.setMode(UB1);let z=X.getRoot();if(Y.listParents().some((V)=>V!==z&&V!==Z))Z.setIndices(FZ(X,Y).setArray(W));else Y.setArray(W)}function rn(Z){let J=Z.getGraph(),X=C6.fromGraph(J);if(!Z.getIndices())d2(Z);let Y=Z.getIndices(),$=Y.getArray(),Q=An(Z),W=new VJ[Y.getComponentType()](Q*3),G=Z.getMode();if(G===jB1)for(let V=0,H=$.length;V<H-2;V++)if(V%2)W[V*3]=$[V+1],W[V*3+1]=$[V],W[V*3+2]=$[V+2];else W[V*3]=$[V],W[V*3+1]=$[V+1],W[V*3+2]=$[V+2];else if(G===OB1)for(let V=0;V<Q;V++)W[V*3]=$[0],W[V*3+1]=$[V+1],W[V*3+2]=$[V+2];else throw new Error("Only TRIANGLE_STRIP and TRIANGLE_FAN may be converted to TRIANGLES.");Z.setMode(BB1);let z=X.getRoot();if(Y.listParents().some((V)=>V!==z&&V!==Z))Z.setIndices(FZ(X,Y).setArray(W));else Y.setArray(W)}var Pn="dequantize",b2={pattern:/^((?!JOINTS_).)*$/};function tn(Z=b2){let J=G7(b2,Z);return NJ(Pn,(X)=>{let Y=X.getLogger();for(let $ of X.getRoot().listMeshes())for(let Q of $.listPrimitives())RB1(Q,J);X.createExtension(TG).dispose(),Y.debug(`${Pn}: Complete.`)})}function RB1(Z,J=b2){let X=G7(b2,J);for(let Y of Z.listSemantics())if(X.pattern.test(Y))PC(Z.getAttribute(Y));for(let Y of Z.listTargets())for(let $ of Y.listSemantics())if(X.pattern.test($))PC(Y.getAttribute($))}function PC(Z){let J=Z.getArray();if(!J)return;let X=y2(J,Z.getComponentType(),Z.getNormalized());Z.setArray(X).setNormalized(!1)}function y2(Z,J,X){let Y=new Float32Array(Z.length);for(let $=0,Q=Z.length;$<Q;$++)if(X)Y[$]=d0.decodeNormalizedInt(Z[$],J);else Y[$]=Z[$];return Y}var{TEXTURE_INFO:en,ROOT:KV6}=a;function Za(Z){let J=new C6().setLogger(Z.getLogger()),X=IC(J,Z);return NB1(J,Z,X),J.getRoot().copy(Z.getRoot(),X),J}function NB1(Z,J,X){X||(X=IC(Z,J));for(let Y of J.getRoot().listExtensionsUsed()){let $=Z.createExtension(Y.constructor);if(Y.isRequired())$.setRequired(!0)}return PB1(Z,J,DB1(J),X)}function PB1(Z,J,X,Y){Y||(Y=IC(Z,J));let $=new Map;for(let Q of X)if(!$.has(Q)&&Q.propertyType!==en)$.set(Q,Y(Q));for(let[Q,K]of $.entries())K.copy(Q,Y);return $}function IC(Z,J){let X=new Map([[J.getRoot(),Z.getRoot()]]);return(Y)=>{if(Y.propertyType===en)return Y;let $=X.get(Y);if(!$)$=new Y.constructor(Z.getGraph()),X.set(Y,$);return $}}function DB1(Z){let J=new Set;for(let X of Z.getGraph().listEdges())J.add(X.getChild());return Array.from(J)}var BC="flatten",Dn={cleanup:!0};function Ja(Z=Dn){let J=G7(Dn,Z);return NJ(BC,async(X)=>{let Y=X.getRoot(),$=X.getLogger(),Q=new Set;for(let z of Y.listSkins())for(let V of z.listJoints())Q.add(V);let K=new Set;for(let z of Y.listAnimations())for(let V of z.listChannels()){let H=V.getTargetNode();if(H&&V.getTargetPath()!=="weights")K.add(H)}let W=new Set,G=new Set;for(let z of Y.listScenes())z.traverse((V)=>{let H=V.getParentNode();if(!H)return;if(Q.has(H)||W.has(H))W.add(V);if(K.has(H)||G.has(H))G.add(V)});for(let z of Y.listScenes())z.traverse((V)=>{if(K.has(V))return;if(W.has(V))return;if(G.has(V))return;Tw1(V)});if(K.size)$.debug(`${BC}: Flattening node hierarchies with TRS animation not yet supported.`);if(J.cleanup)await X.transform(u2({propertyTypes:[a.NODE],keepLeaves:!1}));$.debug(`${BC}: Complete.`)})}function Xa(Z){return DP(Z)}var CB1={skipValidation:!1},Cn=4294967295,{LINE_STRIP:TB1,LINE_LOOP:kB1,TRIANGLE_STRIP:EB1,TRIANGLE_FAN:IB1}=M8.Mode;function vB1(Z,J={}){let X=G7(CB1,J),Y=Z[0],$=C6.fromGraph(Y.getGraph());if(!X.skipValidation&&new Set(Z.map(hn)).size>1)throw new Error("Requires >=2 Primitives, sharing the same Material and Mode, with compatible vertex attributes and indices.");for(let F of Z)switch(F.getMode()){case TB1:case kB1:MB1(F);break;case EB1:case IB1:rn(F);break}let Q=[],K=new Uint32Array(Z.length),W=0,G=0;for(let F=0;F<Z.length;F++){let U=Z[F],w=U.getIndices(),L=U.getAttribute("POSITION").getCount(),j=w?w.getArray():null,R=w?w.getCount():L,O=new Uint32Array(L).fill(Cn);for(let N=0;N<R;N++){let D=j?j[N]:N;if(O[D]===Cn)O[D]=W++,K[F]++}Q.push(O),G+=R}let z=$.createPrimitive().setMode(Y.getMode()).setMaterial(Y.getMaterial());for(let F of Y.listSemantics()){let U=Y.getAttribute(F),w=VJ[U.getComponentType()],L=FZ($,U).setArray(new w(W*U.getElementSize()));z.setAttribute(F,L)}let V=Y.getIndices(),H=V?FZ($,V).setArray(kC(G,W)):null;z.setIndices(H);let q=0;for(let F=0;F<Q.length;F++){let U=Z[F],w=U.getIndices(),L=w?w.getCount():-1,j=Q[F];if(w&&H)_B1(w,j,H,q),q+=L;for(let R of z.listSemantics()){let O=U.getAttribute(R),N=z.getAttribute(R);SB1(O,w,j,N)}}return z}function SB1(Z,J,X,Y){let $=Z.getElementSize(),Q=J?J.getArray():null,K=Z.getCount(),W=Z.getArray(),G=Y.getArray(),z=new Uint8Array(Z.getCount());for(let V=0,H=J?J.getCount():K;V<H;V++){let q=Q?Q[V]:V,F=X[q];if(z[F])continue;for(let U=0;U<$;U++)G[F*$+U]=W[q*$+U];z[F]=1}}function _B1(Z,J,X,Y){let $=Z.getCount(),Q=Z.getArray(),K=X.getArray();for(let W=0;W<$;W++){let G=Q[W],z=J[G];K[Y+W]=z}}var DC="join",{ROOT:AB1,NODE:xB1,MESH:hB1,PRIMITIVE:fB1,ACCESSOR:bB1}=a,jC=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],Tn={keepMeshes:!1,keepNamed:!1,cleanup:!0};function Ya(Z=Tn){let J=G7(Tn,Z);return NJ(DC,async(X)=>{let Y=X.getRoot(),$=X.getLogger();for(let Q of Y.listScenes())kn(X,Q,J),Q.traverse((K)=>kn(X,K,J));if(J.cleanup)await X.transform(u2({propertyTypes:[xB1,hB1,fB1,bB1],keepAttributes:!0,keepIndices:!0,keepLeaves:!1}));$.debug(`${DC}: Complete.`)})}function kn(Z,J,X){let Y=Z.getLogger(),$={},Q=J.listChildren();for(let G=0;G<Q.length;G++){let z=Q[G];if(z.listParents().some((q)=>q instanceof tX))continue;let H=z.getMesh();if(!H)continue;if(z.getExtension("EXT_mesh_gpu_instancing"))continue;if(z.getSkin())continue;for(let q of H.listPrimitives()){if(q.listTargets().length>0)continue;let F=q.getMaterial();if(F&&F.getExtension("KHR_materials_volume"))continue;EG(q),gB1(q);let U=hn(q),w=H.getName()||z.getName();if(X.keepMeshes||X.keepNamed&&w)U+=`|${G}`;if(!(U in $))$[U]={prims:[],primMeshes:[],primNodes:[],dstNode:z,dstMesh:void 0};let L=$[U];L.prims.push(q),L.primNodes.push(z)}}let K=Object.values($).filter(({prims:G})=>G.length>1),W=new Set(K.flatMap((G)=>G.primNodes));for(let G of W){let z=G.getMesh();if(z.listParents().some((H)=>{return H.propertyType!==AB1&&G!==H}))G.setMesh(z.clone())}for(let G of K){let{dstNode:z,primNodes:V}=G;G.dstMesh=z.getMesh(),G.primMeshes=V.map((H)=>H.getMesh())}for(let G of K){let{prims:z,primNodes:V,primMeshes:H,dstNode:q,dstMesh:F}=G,U=q.getMatrix();for(let j=0;j<z.length;j++){let R=V[j],O=H[j],N=z[j];if(O.removePrimitive(N),Nw1(N))N=z[j]=yB1(z[j]);if(R!==q)bn(jC,kw1(jC,U),R.getMatrix()),sn(N,jC)}let w=vB1(z),L=w.listAttributes()[0].getCount();F.addPrimitive(w),Y.debug(`${DC}: Joined Primitives (${z.length}) containing ${OC(L)} vertices under Node "${q.getName()}".`)}}function yB1(Z){let J=Z.clone();for(let Y of J.listSemantics())J.setAttribute(Y,J.getAttribute(Y).clone());let X=J.getIndices();if(X)J.setIndices(X.clone());return J}function gB1(Z){for(let J of["POSITION","NORMAL","TANGENT"]){let X=Z.getAttribute(J);if(X)PC(X)}}var{TRANSLATION:WV6,ROTATION:GV6,SCALE:zV6,WEIGHTS:VV6}=tX.TargetPath;var mB1={pattern:/.*/,quantizationVolume:"mesh",quantizePosition:14,quantizeNormal:10,quantizeTexcoord:12,quantizeColor:8,quantizeWeight:8,quantizeGeneric:12,normalizeWeights:!0,cleanup:!0};var HV6=nQ({level:"high"},mB1);var uB1="unweld";function dB1(Z,J=new Map){let X=Z.getIndices();if(!X)return;let Y=Z.getGraph(),$=C6.fromGraph(Y),Q=$.getLogger(),K=Z.getAttribute("POSITION").getCount();for(let G of Z.listAttributes())if(Z.swap(G,En($,G,X,J)),G.listParents().length===1)G.dispose();for(let G of Z.listTargets())for(let z of G.listAttributes())if(G.swap(z,En($,z,X,J)),z.listParents().length===1)z.dispose();let W=Z.getAttribute("POSITION").getCount();if(Q.debug(`${uB1}: ${g2(K,W)} vertices.`),Z.setIndices(null),X.listParents().length===1)X.dispose()}function En(Z,J,X,Y){if(Y.has(J)&&Y.get(J).has(X))return Y.get(J).get(X);let $=J.getArray(),K=new $.constructor(X.getCount()*J.getElementSize()),W=X.getArray(),G=J.getElementSize();for(let V=0,H=X.getCount();V<H;V++)for(let q=0;q<G;q++)K[V*G+q]=$[W[V]*G+q];if(!Y.has(J))Y.set(J,new Map);let z=FZ(Z,J).setArray(K);return Y.get(J).set(X,z),z}var In;(function(Z){Z[Z.STEP=0]="STEP",Z[Z.LERP=1]="LERP",Z[Z.SLERP=2]="SLERP"})(In||(In={}));var cB1=0.000001;function lB1(Z,J,X,Y=0.0001){let $=J.length/Z.length,Q=new Array($).fill(0),K=new Array($).fill(0),W=new Array($).fill(0),G=new Array($).fill(0),z=Z.length-1,V=1;for(let H=1;H<z;++H){let q=Z[V-1],F=Z[H],U=Z[H+1],w=(F-q)/(U-q),L=!1;if(F!==U&&(H!==1||F!==Z[0])){if(kG(J,V-1,G),kG(J,H,K),kG(J,H+1,W),X==="slerp"){let j=nB1(Q,G,W,w),R=Sn(G,K)+Sn(K,W);L=!h2(K,j,Y)||R+Number.EPSILON>=Math.PI}else if(X==="lerp"){let j=iB1(Q,G,W,w);L=!h2(K,j,Y)}else if(X==="step")L=!h2(K,G)||!h2(K,W)}if(L){if(H!==V)Z[V]=Z[H],vn(J,V,kG(J,H,Q));V++}}if(z>0)Z[V]=Z[z],vn(J,V,kG(J,z,Q)),V++;return V}function kG(Z,J,X){for(let Y=0,$=X.length;Y<$;Y++)X[Y]=Z[J*$+Y];return X}function vn(Z,J,X){for(let Y=0,$=X.length;Y<$;Y++)Z[J*$+Y]=X[Y]}function h2(Z,J,X=0){if(Z.length!==J.length)return!1;for(let Y=0;Y<Z.length;Y++)if(Math.abs(Z[Y]-J[Y])>X)return!1;return!0}function pB1(Z,J,X){return Z*(1-X)+J*X}function iB1(Z,J,X,Y){for(let $=0;$<J.length;$++)Z[$]=pB1(J[$],X[$],Y);return Z}function nB1(Z,J,X,Y){let $=J[0],Q=J[1],K=J[2],W=J[3],G=X[0],z=X[1],V=X[2],H=X[3],q,F,U,w,L;if(F=$*G+Q*z+K*V+W*H,F<0)F=-F,G=-G,z=-z,V=-V,H=-H;if(1-F>cB1)q=Math.acos(F),U=Math.sin(q),w=Math.sin((1-Y)*q)/U,L=Math.sin(Y*q)/U;else w=1-Y,L=Y;return Z[0]=w*$+L*G,Z[1]=w*Q+L*z,Z[2]=w*K+L*V,Z[3]=w*W+L*H,Z}function Sn(Z,J){let X=aB1(Z,J);return Math.acos(2*X*X-1)}function aB1(Z,J){return Z[0]*J[0]+Z[1]*J[1]+Z[2]*J[2]+Z[3]*J[3]}var qV6=new Float32Array(0),FV6={ready:Promise.resolve(),resample:lB1,tolerance:0.0001,cleanup:!0};var RY="simplify",{POINTS:$a,LINES:sB1,LINE_STRIP:oB1,LINE_LOOP:rB1,TRIANGLES:tB1,TRIANGLE_STRIP:Qa,TRIANGLE_FAN:Ka}=M8.Mode,Wa={ratio:0,error:0.0001,lockBorder:!1,cleanup:!0};function Ga(Z){let J=G7(Wa,Z),X=J.simplifier;if(!X)throw new Error(`${RY}: simplifier dependency required \u2014 install "meshoptimizer".`);return NJ(RY,async(Y)=>{let $=Y.getLogger();await X.ready,await Y.transform(EC({overwrite:!1,cleanup:J.cleanup}));let Q=0;for(let K of Y.getRoot().listMeshes()){for(let W of K.listPrimitives()){let G=W.getMode();if(G===tB1||G===Qa||G===Ka){if(_n(W,J),RJ(W,L6.RENDER)===0)W.dispose()}else if(W.getMode()===$a&&!!X.simplifyPoints){if(_n(W,J),RJ(W,L6.RENDER)===0)W.dispose()}else Q++}if(K.listPrimitives().length===0)K.dispose()}if(Q>0)$.warn(`${RY}: Skipping simplification of ${Q} primitives: Unsupported draw mode.`);if(J.cleanup)await Y.transform(u2({propertyTypes:[a.ACCESSOR,a.NODE],keepAttributes:!0,keepIndices:!0,keepLeaves:!1}),gn({propertyTypes:[a.ACCESSOR]}));$.debug(`${RY}: Complete.`)})}function _n(Z,J){let X=nQ({},Wa,J),Y=X.simplifier,$=Z.getGraph(),Q=C6.fromGraph($),K=Q.getLogger();switch(Z.getMode()){case $a:return eB1(Q,Z,X);case sB1:case oB1:case rB1:return K.warn(`${RY}: Skipping primitive simplification: Unsupported draw mode.`),Z;case Qa:case Ka:rn(Z);break}let W=RJ(Z,L6.UPLOAD),G=RJ(Z,L6.RENDER);if(G<W/2)EG(Z);let z=Z.getAttribute("POSITION"),V=Z.getIndices(),H=z.getArray(),q=V.getArray();if(!(H instanceof Float32Array))H=y2(H,z.getComponentType(),z.getNormalized());if(!(q instanceof Uint32Array))q=new Uint32Array(q);let F=Math.floor(X.ratio*G/3)*3,U=X.lockBorder?["LockBorder"]:[],[w,L]=Y.simplify(q,H,3,F,X.error,U);if(Z.setIndices(FZ(Q,V).setArray(w)),V.listParents().length===1)V.dispose();EG(Z);let j=RJ(Z,L6.UPLOAD);if(j<=65534)Z.getIndices().setArray(new Uint16Array(Z.getIndices().getArray()));return K.debug(`${RY}: ${g2(W,j)} vertices, error: ${L.toFixed(4)}.`),Z}function eB1(Z,J,X){let Y=X.simplifier,$=Z.getLogger();if(J.getIndices())dB1(J);let K=J.getAttribute("POSITION"),W=J.getAttribute("COLOR_0"),G=K.getCount(),z=K.getArray(),V=W?W.getArray():void 0,H=W?W.getComponentSize():void 0;if(!(z instanceof Float32Array))z=y2(z,K.getComponentType(),K.getNormalized());if(V&&!(V instanceof Float32Array))V=y2(V,K.getComponentType(),K.getNormalized());Y.useExperimentalFeatures=!0;let q=Math.floor(X.ratio*G),F=Y.simplifyPoints(z,3,q,V,H);Y.useExperimentalFeatures=!1;let[U,w]=Y.compactMesh(F);$.debug(`${RY}: ${g2(K.getCount(),w)} vertices.`);for(let L of TC(J)){let j=FZ(Z,L);if(RC(L,null,U,j,w),Ow1(J,L,j),L.listParents().length===1)L.dispose()}return J}var CC;(function(Z){Z.LANCZOS3="lanczos3",Z.LANCZOS2="lanczos2"})(CC||(CC={}));var UV6={resizeFilter:CC.LANCZOS3,pattern:void 0,formats:void 0,slots:void 0,quality:void 0,effort:void 0,lossless:!1,nearLossless:!1,limitInputPixels:!0};var wV6=function(){var Z="b9H79TebbbeJq9Geueu9Geub9Gbb9Gvuuuuueu9Gduueu9Gluuuueu9Gvuuuuub9Gouuuuuub9Gluuuub9GiuuueuiKLdilevlevlooroowwvwbDDbelve9Weiiviebeoweuec:G:Qdkr;RiOo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8A9TW79O9V9Wt9FW9U9J9V9KW9wWVtW949c919M9MWVbe8F9TW79O9V9Wt9FW9U9J9V9KW9wWVtW949c919M9MWV9c9V919U9KbdE9TW79O9V9Wt9FW9U9J9V9KW9wWVtW949wWV79P9V9UbiY9TW79O9V9Wt9FW9U9J9V9KW69U9KW949c919M9MWVbl8E9TW79O9V9Wt9FW9U9J9V9KW69U9KW949c919M9MWV9c9V919U9Kbv8A9TW79O9V9Wt9FW9U9J9V9KW69U9KW949wWV79P9V9UboE9TW79O9V9Wt9FW9U9J9V9KW69U9KW949tWG91W9U9JWbra9TW79O9V9Wt9FW9U9J9V9KW69U9KW949tWG91W9U9JW9c9V919U9KbwL9TW79O9V9Wt9FW9U9J9V9KWS9P2tWV9p9JtbDK9TW79O9V9Wt9FW9U9J9V9KWS9P2tWV9r919HtbqL9TW79O9V9Wt9FW9U9J9V9KWS9P2tWVT949WbkE9TW79O9V9Wt9F9V9Wt9P9T9P96W9wWVtW94J9H9J9OWbPa9TW79O9V9Wt9F9V9Wt9P9T9P96W9wWVtW94J9H9J9OW9ttV9P9Wbsa9TW79O9V9Wt9F9V9Wt9P9T9P96W9wWVtW94SWt9J9O9sW9T9H9WbzK9TW79O9V9Wt9F79W9Ht9P9H29t9VVt9sW9T9H9WbHl79IV9RbODwebcekdQXq;A9pLdbk;QqeKu8Jjjjjbcjo9Rgv8Kjjjjbcbhodnalcefae0mbabcbRbN:kjjbc:GeV86bbavcjdfcbcjdzNjjjb8AdnaiTmbavcjdfadalz:tjjjb8Akabaefhrabcefhwavalfcbcbcjdal9RalcFe0EzNjjjb8Aavavcjdfalz:tjjjbhDcj;abal9Uc;WFbGgecjdaecjd6Ehqcbhkindndnaiak9nmbaDcjlfcbcjdzNjjjb8Aaqaiak9Rakaqfai6Egxcsfgecl4cifcd4hmadakal2fhPdndndnaec9WGgsTmbcbhzaPhHawhOxekdnaxmbalheinaraw9Ram6miawcbamzNjjjbamfhwaecufgembxvkkcbhAaPhOinaDaAfRbbhCaDcjlfheaOhoaxhXinaeaoRbbgQaC9RgCcetaCcKtcK91cr4786bbaoalfhoaecefheaQhCaXcufgXmbkaraw9Ram6mdaOcefhOawcbamzNjjjbamfhwaAcefgAal9hmbxlkkindnaxTmbaDazfRbbhCaDcjlfheaHhoaxhXinaeaoRbbgQaC9RgCcetaCcKtcK91cr4786bbaoalfhoaecefheaQhCaXcufgXmbkkaraO9Ram6mearaOcbamzNjjjbgLamfgw9RcK6mecbhKaDcjlfhOinaDcjlfaKfhYcwhAczhQceheindndnaegXce9hmbcuhoaYRbbmecbhodninaogecsSmeaecefhoaOaefcefRbbTmbkkcucbaecs6EhoxekaXcethocuaXtc;:bGcFb7hCcbheinaoaCaOaefRbb9nfhoaecefgecz9hmbkkaoaQaoaQ6geEhQaXaAaeEhAaXcetheaXcl6mbkdndndndnaAcufPdiebkaLaKco4fgeaeRbbcdciaAclSEaKci4coGtV86bbaAcw9hmeawaY8Pbb83bbawcwfaYcwf8Pbb83bbawczfhwxdkaLaKco4fgeaeRbbceaKci4coGtV86bbkdncwaA9Tg8Ambinawcb86bbawcefhwxbkkcuaAtcu7hYcbhEaOh3ina3hea8AhCcbhoinaeRbbgQaYcFeGgXaQaX6EaoaAtVhoaecefheaCcufgCmbkawao86bba3a8Afh3awcefhwaEa8AfgEcz6mbkcbheindnaOaefRbbgoaX6mbawao86bbawcefhwkaecefgecz9hmbkkdnaKczfgKas9pmbaOczfhOaraw9RcL0mekkaKas6meawTmeaHcefhHawhOazcefgzalSmixbkkcbhoxikcbhoaraw9Ralcaalca0E6mddnalc8F0mbawcbcaal9RgezNjjjbaefhwkawaDcjdfalz:tjjjbalfab9RhoxdkaDaPaxcufal2falz:tjjjb8Aaxakfhkawmbkcbhokavcjof8Kjjjjbaok9heeuaecaaeca0Eabcj;abae9Uc;WFbGgdcjdadcjd6Egdfcufad9Uae2adcl4cifcd4adV2fcefkmbcbabBdN:kjjbk:zse5u8Jjjjjbc;ae9Rgl8Kjjjjbcbhvdnaici9UgocHfae0mbabcbyd:e:kjjbgrc;GeV86bbalc;abfcFecjezNjjjb8AalcUfgw9cu83ibalc8WfgD9cu83ibalcyfgq9cu83ibalcafgk9cu83ibalcKfgx9cu83ibalczfgm9cu83ibal9cu83iwal9cu83ibabaefc9WfhPabcefgsaofhednaiTmbcmcsarcb9kgzEhHcbhOcbhAcbhCcbhXcbhQindnaeaP9nmbcbhvxikaQcufhvadaCcdtfgLydbhKaLcwfydbhYaLclfydbh8AcbhEdndndninalc;abfavcsGcitfgoydlh3dndndnaoydbgoaK9hmba3a8ASmekdnaoa8A9hmba3aY9hmbaEcefhExekaoaY9hmea3aK9hmeaEcdfhEkaEc870mdaXcufhvaLaEciGcx2goc:y1jjbfydbcdtfydbh3aLaocN1jjbfydbcdtfydbh8AaLaoc:q1jjbfydbcdtfydbhKcbhodnindnalavcsGcdtfydba39hmbaohYxdkcuhYavcufhvaocefgocz9hmbkkaOa3aOSgvaYce9iaYaH9oVgoGfhOdndndncbcsavEaYaoEgvcs9hmbarce9imba3a3aAa3cefaASgvEgAcefSmecmcsavEhvkasavaEcdtc;WeGV86bbavcs9hmea3aA9Rgvcetavc8F917hvinaeavcFb0crtavcFbGV86bbaecefheavcje6hoavcr4hvaoTmbka3hAxvkcPhvasaEcdtcPV86bba3hAkavTmiavaH9omicdhocehEaQhYxlkavcufhvaEclfgEc;ab9hmbkkdnaLceaYaOSceta8AaOSEcx2gvc:q1jjbfydbcdtfydbgKTaLavcN1jjbfydbcdtfydbg8AceSGaLavc:y1jjbfydbcdtfydbg3cdSGaOcb9hGazGg5ce9hmbaw9cu83ibaD9cu83ibaq9cu83ibak9cu83ibax9cu83ibam9cu83ibal9cu83iwal9cu83ibcbhOkcbhEaXcufgvhodnindnalaocsGcdtfydba8A9hmbaEhYxdkcuhYaocufhoaEcefgEcz9hmbkkcbhodnindnalavcsGcdtfydba39hmbaohExdkcuhEavcufhvaocefgocz9hmbkkaOaKaOSg8EfhLdndnaYcm0mbaYcefhYxekcbcsa8AaLSgvEhYaLavfhLkdndnaEcm0mbaEcefhExekcbcsa3aLSgvEhEaLavfhLkc9:cua8EEh8FcbhvaEaYcltVgacFeGhodndndninavcj1jjbfRbbaoSmeavcefgvcz9hmbxdkka5aKaO9havcm0VVmbasavc;WeV86bbxekasa8F86bbaeaa86bbaecefhekdna8EmbaKaA9Rgvcetavc8F917hvinaeavcFb0gocrtavcFbGV86bbavcr4hvaecefheaombkaKhAkdnaYcs9hmba8AaA9Rgvcetavc8F917hvinaeavcFb0gocrtavcFbGV86bbavcr4hvaecefheaombka8AhAkdnaEcs9hmba3aA9Rgvcetavc8F917hvinaeavcFb0gocrtavcFbGV86bbavcr4hvaecefheaombka3hAkalaXcdtfaKBdbaXcefcsGhvdndnaYPzbeeeeeeeeeeeeeebekalavcdtfa8ABdbaXcdfcsGhvkdndnaEPzbeeeeeeeeeeeeeebekalavcdtfa3BdbavcefcsGhvkcihoalc;abfaQcitfgEaKBdlaEa8ABdbaQcefcsGhYcdhEavhXaLhOxekcdhoalaXcdtfa3BdbcehEaXcefcsGhXaQhYkalc;abfaYcitfgva8ABdlava3Bdbalc;abfaQaEfcsGcitfgva3BdlavaKBdbascefhsaQaofcsGhQaCcifgCai6mbkkcbhvaeaP0mbcbhvinaeavfavcj1jjbfRbb86bbavcefgvcz9hmbkaeab9Ravfhvkalc;aef8KjjjjbavkZeeucbhddninadcefgdc8F0meceadtae6mbkkadcrfcFeGcr9Uci2cdfabci9U2cHfkmbcbabBd:e:kjjbk:ydewu8Jjjjjbcz9Rhlcbhvdnaicvfae0mbcbhvabcbRb:e:kjjbc;qeV86bbal9cb83iwabcefhoabaefc98fhrdnaiTmbcbhwcbhDindnaoar6mbcbskadaDcdtfydbgqalcwfawaqav9Rgvavc8F91gv7av9Rc507gwcdtfgkydb9Rgvc8E91c9:Gavcdt7awVhvinaoavcFb0gecrtavcFbGV86bbavcr4hvaocefhoaembkakaqBdbaqhvaDcefgDai9hmbkkcbhvaoar0mbaocbBbbaoab9RclfhvkavkBeeucbhddninadcefgdc8F0meceadtae6mbkkadcwfcFeGcr9Uab2cvfk:bvli99dui99ludnaeTmbcuadcetcuftcu7:Yhvdndncuaicuftcu7:YgoJbbbZMgr:lJbbb9p9DTmbar:Ohwxekcjjjj94hwkcbhicbhDinalclfIdbgrJbbbbJbbjZalIdbgq:lar:lMalcwfIdbgk:lMgr:varJbbbb9BEgrNhxaqarNhrdndnakJbbbb9GTmbaxhqxekJbbjZar:l:tgqaq:maxJbbbb9GEhqJbbjZax:l:tgxax:marJbbbb9GEhrkdndnalcxfIdbgxJbbj:;axJbbj:;9GEgkJbbjZakJbbjZ9FEavNJbbbZJbbb:;axJbbbb9GEMgx:lJbbb9p9DTmbax:Ohmxekcjjjj94hmkdndnaqJbbj:;aqJbbj:;9GEgxJbbjZaxJbbjZ9FEaoNJbbbZJbbb:;aqJbbbb9GEMgq:lJbbb9p9DTmbaq:OhPxekcjjjj94hPkdndnarJbbj:;arJbbj:;9GEgqJbbjZaqJbbjZ9FEaoNJbbbZJbbb:;arJbbbb9GEMgr:lJbbb9p9DTmbar:Ohsxekcjjjj94hskdndnadcl9hmbabaifgzas86bbazcifam86bbazcdfaw86bbazcefaP86bbxekabaDfgzas87ebazcofam87ebazclfaw87ebazcdfaP87ebkalczfhlaiclfhiaDcwfhDaecufgembkkk;hlld99eud99eudnaeTmbdndncuaicuftcu7:YgvJbbbZMgo:lJbbb9p9DTmbao:Ohixekcjjjj94hikaic;8FiGhrinabcofcicdalclfIdb:lalIdb:l9EgialcwfIdb:lalaicdtfIdb:l9EEgialcxfIdb:lalaicdtfIdb:l9EEgiarV87ebdndnJbbj:;JbbjZalaicdtfIdbJbbbb9DEgoalaicd7cdtfIdbJ;Zl:1ZNNgwJbbj:;awJbbj:;9GEgDJbbjZaDJbbjZ9FEavNJbbbZJbbb:;awJbbbb9GEMgw:lJbbb9p9DTmbaw:Ohqxekcjjjj94hqkabcdfaq87ebdndnalaicefciGcdtfIdbJ;Zl:1ZNaoNgwJbbj:;awJbbj:;9GEgDJbbjZaDJbbjZ9FEavNJbbbZJbbb:;awJbbbb9GEMgw:lJbbb9p9DTmbaw:Ohqxekcjjjj94hqkabaq87ebdndnaoalaicufciGcdtfIdbJ;Zl:1ZNNgoJbbj:;aoJbbj:;9GEgwJbbjZawJbbjZ9FEavNJbbbZJbbb:;aoJbbbb9GEMgo:lJbbb9p9DTmbao:Ohixekcjjjj94hikabclfai87ebabcwfhbalczfhlaecufgembkkk;3viDue99eu8Jjjjjbcjd9Rgo8Kjjjjbadcd4hrdndndndnavcd9hmbadcl6meaohwarhDinawc:CuBdbawclfhwaDcufgDmbkaeTmiadcl6mdarcdthqalhkcbhxinaohwakhDarhminawawydbgPcbaDIdbgs:8cL4cFeGc:cufasJbbbb9BEgzaPaz9kEBdbaDclfhDawclfhwamcufgmmbkakaqfhkaxcefgxaeSmixbkkaeTmdxekaeTmekarcdthkavce9hhqadcl6hdcbhxindndndnaqmbadmdc:CuhDalhwarhminaDcbawIdbgs:8cL4cFeGc:cufasJbbbb9BEgPaDaP9kEhDawclfhwamcufgmmbxdkkc:CuhDdndnavPleddbdkadmdaohwalhmarhPinawcbamIdbgs:8cL4cFeGgzc;:bazc;:b9kEc:cufasJbbbb9BEBdbamclfhmawclfhwaPcufgPmbxdkkadmecbhwarhminaoawfcbalawfIdbgs:8cL4cFeGgPc8AaPc8A9kEc:cufasJbbbb9BEBdbawclfhwamcufgmmbkkadmbcbhwarhPinaDhmdnavceSmbaoawfydbhmkdndnalawfIdbgscjjj;8iamai9RcefgmcLt9R::NJbbbZJbbb:;asJbbbb9GEMgs:lJbbb9p9DTmbas:Ohzxekcjjjj94hzkabawfazcFFFrGamcKtVBdbawclfhwaPcufgPmbkkabakfhbalakfhlaxcefgxae9hmbkkaocjdf8Kjjjjbk;HqdCui998Jjjjjbc:qd9Rgv8Kjjjjbavc:Sefcbc;KbzNjjjb8AcbhodnadTmbcbhoaiTmbdnabae9hmbavcuadcdtgradcFFFFi0Ecbyd:m:kjjbHjjjjbbgeBd:SeavceBd:mdaeabarz:tjjjb8Akavc:GefcwfcbBdbav9cb83i:Geavc:Gefaeadaiavc:Sefz:njjjbavyd:Gehwadci9UgDcbyd:m:kjjbHjjjjbbhravc:Sefavyd:mdgqcdtfarBdbavaqcefgkBd:mdarcbaDzNjjjbhxavc:SefakcdtfcuaicdtaicFFFFi0Ecbyd:m:kjjbHjjjjbbgmBdbavaqcdfgPBd:mdawhramhkinakalIdbalarydbgscwascw6Ecdtfc;ebfIdbMUdbarclfhrakclfhkaicufgimbkavc:SefaPcdtfcuaDcdtadcFFFF970Ecbyd:m:kjjbHjjjjbbgPBdbdnadci6mbaehraPhkaDhiinakamarydbcdtfIdbamarclfydbcdtfIdbMamarcwfydbcdtfIdbMUdbarcxfhrakclfhkaicufgimbkkaqcifhoavc;qbfhzavhravyd:KehHavyd:OehOcbhscbhkcbhAcehCinarhXcihQaeakci2gLcdtfgrydbhdarclfydbhqabaAcx2fgicwfarcwfydbgKBdbaiclfaqBdbaiadBdbaxakfce86bbazaKBdwazaqBdlazadBdbaPakcdtfcbBdbdnasTmbcihQaXhiinazaQcdtfaiydbgrBdbaQaraK9harad9haraq9hGGfhQaiclfhiascufgsmbkkaAcefhAcbhsinaOaHaeasaLfcdtfydbcdtgifydbcdtfgKhrawaifgqydbgdhidnadTmbdninarydbakSmearclfhraicufgiTmdxbkkaraKadcdtfc98fydbBdbaqaqydbcufBdbkascefgsci9hmbkdndnaQTmbcuhkJbbbbhYcbhqavyd:KehKavyd:OehLindndnawazaqcdtfydbcdtgsfydbgrmbaqcefhqxekaqcs0hiamasfgdIdbh8AadalcbaqcefgqaiEcdtfIdbalarcwarcw6Ecdtfc;ebfIdbMgEUdbaEa8A:thEarcdthiaLaKasfydbcdtfhrinaParydbgscdtfgdaEadIdbMg8AUdba8AaYaYa8A9DgdEhYasakadEhkarclfhraic98fgimbkkaqaQ9hmbkakcu9hmekaCaD9pmdindnaxaCfRbbmbaChkxdkaDaCcefgC9hmbxikkaQczaQcz6EhsazhraXhzakcu9hmbkkaocdtavc:Seffc98fhrdninaoTmearydbcbyd1:kjjbH:bjjjbbarc98fhraocufhoxbkkavc:qdf8Kjjjjbk;IlevucuaicdtgvaicFFFFi0Egocbyd:m:kjjbHjjjjbbhralalyd9GgwcdtfarBdbalawcefBd9GabarBdbaocbyd:m:kjjbHjjjjbbhralalyd9GgocdtfarBdbalaocefBd9GabarBdlcuadcdtadcFFFFi0Ecbyd:m:kjjbHjjjjbbhralalyd9GgocdtfarBdbalaocefBd9GabarBdwabydbcbavzNjjjb8Aadci9UhDdnadTmbabydbhoaehladhrinaoalydbcdtfgvavydbcefBdbalclfhlarcufgrmbkkdnaiTmbabydbhlabydlhrcbhvaihoinaravBdbarclfhralydbavfhvalclfhlaocufgombkkdnadci6mbabydlhrabydwhvcbhlinaecwfydbhoaeclfydbhdaraeydbcdtfgwawydbgwcefBdbavawcdtfalBdbaradcdtfgdadydbgdcefBdbavadcdtfalBdbaraocdtfgoaoydbgocefBdbavaocdtfalBdbaecxfheaDalcefgl9hmbkkdnaiTmbabydlheabydbhlinaeaeydbalydb9RBdbalclfhlaeclfheaicufgimbkkkQbabaeadaic:01jjbz:mjjjbkQbabaeadaic:C:jjjbz:mjjjbk9DeeuabcFeaicdtzNjjjbhlcbhbdnadTmbindnalaeydbcdtfgiydbcu9hmbaiabBdbabcefhbkaeclfheadcufgdmbkkabk;Wkivuo99lu8Jjjjjbc;W;Gb9Rgl8Kjjjjbcbhvalcj;Gbfcbc;KbzNjjjb8AalcuadcdtadcFFFFi0Egocbyd:m:kjjbHjjjjbbgrBdj9GalceBd;G9GalcFFF;7rBdwal9cFFF;7;3FF:;Fb83dbalcFFF97Bd;S9Gal9cFFF;7FFF:;u83d;K9Gaicd4hwdndnadmbJFFuFhDJFFuuhqJFFuuhkJFFuFhxJFFuuhmJFFuFhPxekawcdthsaehzincbhiinalaifgHazaifIdbgDaHIdbgxaxaD9EEUdbalc;K;GbfaifgHaDaHIdbgxaxaD9DEUdbaiclfgicx9hmbkazasfhzavcefgvad9hmbkalIdwhqalId;S9GhDalIdlhkalId;O9GhxalIdbhmalId;K9GhPkdndnadTmbJbbbbJbbjZJbbbbaPam:tgPaPJbbbb9DEgPaxak:tgxaxaP9DEgxaDaq:tgDaDax9DEgD:vaDJbbbb9BEhDawcdthsarhHadhzindndnaDaeIdbam:tNJb;au9eNJbbbZMgx:lJbbb9p9DTmbax:Ohixekcjjjj94hikaicztaicwtcj;GiGVaicsGVc:p;G:dKGcH2c;d;H:WKGcv2c;j:KM;jbGhvdndnaDaeclfIdbak:tNJb;au9eNJbbbZMgx:lJbbb9p9DTmbax:Ohixekcjjjj94hikaicztaicwtcj;GiGVaicsGVc:p;G:dKGcH2c;d;H:WKGcq2cM;j:KMeGavVhvdndnaDaecwfIdbaq:tNJb;au9eNJbbbZMgx:lJbbb9p9DTmbax:Ohixekcjjjj94hikaHavaicztaicwtcj;GiGVaicsGVc:p;G:dKGcH2c;d;H:WKGcC2c:KM;j:KdGVBdbaeasfheaHclfhHazcufgzmbkalcbcj;GbzNjjjbhiarhHadheinaiaHydbgzcFrGcx2fgvavydbcefBdbaiazcq4cFrGcx2fgvavydlcefBdlaiazcC4cFrGcx2fgzazydwcefBdwaHclfhHaecufgembxdkkalcbcj;GbzNjjjb8AkcbhHcbhzcbhecbhvinalaHfgiydbhsaiazBdbaicwfgwydbhOawavBdbaiclfgiydbhwaiaeBdbasazfhzaOavfhvawaefheaHcxfgHcj;Gb9hmbkcbhHalaocbyd:m:kjjbHjjjjbbgiBd:e9GdnadTmbabhzinazaHBdbazclfhzadaHcefgH9hmbkabhHadhzinalaraHydbgecdtfydbcFrGcx2fgvavydbgvcefBdbaiavcdtfaeBdbaHclfhHazcufgzmbkaihHadhzinalaraHydbgecdtfydbcq4cFrGcx2fgvavydlgvcefBdlabavcdtfaeBdbaHclfhHazcufgzmbkabhHadhzinalaraHydbgecdtfydbcC4cFrGcx2fgvavydwgvcefBdwaiavcdtfaeBdbaHclfhHazcufgzmbkcbhHinabaiydbcdtfaHBdbaiclfhiadaHcefgH9hmbkkclhidninaic98Smealcj;Gbfaifydbcbyd1:kjjbH:bjjjbbaic98fhixbkkalc;W;Gbf8Kjjjjbk9teiucbcbyd:q:kjjbgeabcifc98GfgbBd:q:kjjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik;LeeeudndnaeabVciGTmbabhixekdndnadcz9pmbabhixekabhiinaiaeydbBdbaiclfaeclfydbBdbaicwfaecwfydbBdbaicxfaecxfydbBdbaeczfheaiczfhiadc9Wfgdcs0mbkkadcl6mbinaiaeydbBdbaeclfheaiclfhiadc98fgdci0mbkkdnadTmbinaiaeRbb86bbaicefhiaecefheadcufgdmbkkabk;aeedudndnabciGTmbabhixekaecFeGc:b:c:ew2hldndnadcz9pmbabhixekabhiinaialBdbaicxfalBdbaicwfalBdbaiclfalBdbaiczfhiadc9Wfgdcs0mbkkadcl6mbinaialBdbaiclfhiadc98fgdci0mbkkdnadTmbinaiae86bbaicefhiadcufgdmbkkabk9teiucbcbyd:q:kjjbgeabcrfc94GfgbBd:q:kjjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik9:eiuZbhedndncbyd:q:kjjbgdaecztgi9nmbcuheadai9RcFFifcz4nbcuSmekadhekcbabae9Rcifc98Gcbyd:q:kjjbfgdBd:q:kjjbdnadZbcztge9nmbadae9RcFFifcz4nb8Akkk:Iddbcjwk:edb4:h9w9N94:P:gW:j9O:ye9Pbbbbbbebbbdbbbebbbdbbbbbbbdbbbbbbbebbbbbbb:l29hZ;69:9kZ;N;76Z;rg97Z;z;o9xZ8J;B85Z;:;u9yZ;b;k9HZ:2;Z9DZ9e:l9mZ59A8KZ:r;T3Z:A:zYZ79OHZ;j4::8::Y:D9V8:bbbb9s:49:Z8R:hBZ9M9M;M8:L;z;o8:;8:PG89q;x:J878R:hQ8::M:B;e87bbbbbbjZbbjZbbjZ:E;V;N8::Y:DsZ9i;H;68:xd;R8:;h0838:;W:NoZbbbb:WV9O8:uf888:9i;H;68:9c9G;L89;n;m9m89;D8Ko8:bbbbf:8tZ9m836ZS:2AZL;zPZZ818EZ9e:lxZ;U98F8:819E;68:bc:eqkzebbbebbbdbbba:vbb",J=new Uint8Array([32,0,65,2,1,106,34,33,3,128,11,4,13,64,6,253,10,7,15,116,127,5,8,12,40,16,19,54,20,9,27,255,113,17,42,67,24,23,146,148,18,14,22,45,70,69,56,114,101,21,25,63,75,136,108,28,118,29,73,115]);if(typeof WebAssembly!=="object")return{supported:!1};var X,Y=WebAssembly.instantiate($(Z),{}).then(function(F){X=F.instance,X.exports.__wasm_call_ctors(),X.exports.meshopt_encodeVertexVersion(0),X.exports.meshopt_encodeIndexVersion(1)});function $(F){var U=new Uint8Array(F.length);for(var w=0;w<F.length;++w){var L=F.charCodeAt(w);U[w]=L>96?L-97:L>64?L-39:L+4}var j=0;for(var w=0;w<F.length;++w)U[j++]=U[w]<60?J[U[w]]:(U[w]-60)*64+U[++w];return U.buffer.slice(0,j)}function Q(F){if(!F)throw new Error("Assertion failed")}function K(F){return new Uint8Array(F.buffer,F.byteOffset,F.byteLength)}function W(F,U,w,L){var j=X.exports.sbrk,R=j(U.length*4),O=j(w*4),N=new Uint8Array(X.exports.memory.buffer),D=K(U);if(N.set(D,R),L)L(R,R,U.length,w);var P=F(O,R,U.length,w);N=new Uint8Array(X.exports.memory.buffer);var C=new Uint32Array(w);new Uint8Array(C.buffer).set(N.subarray(O,O+w*4)),D.set(N.subarray(R,R+U.length*4)),j(R-j(0));for(var T=0;T<U.length;++T)U[T]=C[U[T]];return[C,P]}function G(F,U,w,L){var j=X.exports.sbrk,R=j(w*4),O=j(w*L),N=new Uint8Array(X.exports.memory.buffer);N.set(K(U),O),F(R,O,w,L),N=new Uint8Array(X.exports.memory.buffer);var D=new Uint32Array(w);return new Uint8Array(D.buffer).set(N.subarray(R,R+w*4)),j(R-j(0)),D}function z(F,U,w,L,j){var R=X.exports.sbrk,O=R(U),N=R(L*j),D=new Uint8Array(X.exports.memory.buffer);D.set(K(w),N);var P=F(O,U,N,L,j),C=new Uint8Array(P);return C.set(D.subarray(O,O+P)),R(O-R(0)),C}function V(F){var U=0;for(var w=0;w<F.length;++w){var L=F[w];U=U<L?L:U}return U}function H(F,U){if(Q(U==2||U==4),U==4)return new Uint32Array(F.buffer,F.byteOffset,F.byteLength/4);else{var w=new Uint16Array(F.buffer,F.byteOffset,F.byteLength/2);return new Uint32Array(w)}}function q(F,U,w,L,j,R,O){var N=X.exports.sbrk,D=N(w*L),P=N(w*R),C=new Uint8Array(X.exports.memory.buffer);C.set(K(U),P),F(D,w,L,j,P,O);var T=new Uint8Array(w*L);return T.set(C.subarray(D,D+w*L)),N(D-N(0)),T}return{ready:Y,supported:!0,reorderMesh:function(F,U,w){var L=U?w?X.exports.meshopt_optimizeVertexCacheStrip:X.exports.meshopt_optimizeVertexCache:void 0;return W(X.exports.meshopt_optimizeVertexFetchRemap,F,V(F)+1,L)},reorderPoints:function(F,U){return Q(F instanceof Float32Array),Q(F.length%U==0),Q(U>=3),G(X.exports.meshopt_spatialSortRemap,F,F.length/U,U*4)},encodeVertexBuffer:function(F,U,w){Q(w>0&&w<=256),Q(w%4==0);var L=X.exports.meshopt_encodeVertexBufferBound(U,w);return z(X.exports.meshopt_encodeVertexBuffer,L,F,U,w)},encodeIndexBuffer:function(F,U,w){Q(w==2||w==4),Q(U%3==0);var L=H(F,w),j=X.exports.meshopt_encodeIndexBufferBound(U,V(L)+1);return z(X.exports.meshopt_encodeIndexBuffer,j,L,U,4)},encodeIndexSequence:function(F,U,w){Q(w==2||w==4);var L=H(F,w),j=X.exports.meshopt_encodeIndexSequenceBound(U,V(L)+1);return z(X.exports.meshopt_encodeIndexSequence,j,L,U,4)},encodeGltfBuffer:function(F,U,w,L){var j={ATTRIBUTES:this.encodeVertexBuffer,TRIANGLES:this.encodeIndexBuffer,INDICES:this.encodeIndexSequence};return Q(j[L]),j[L](F,U,w)},encodeFilterOct:function(F,U,w,L){return Q(w==4||w==8),Q(L>=1&&L<=16),q(X.exports.meshopt_encodeFilterOct,F,U,w,L,16)},encodeFilterQuat:function(F,U,w,L){return Q(w==8),Q(L>=4&&L<=16),q(X.exports.meshopt_encodeFilterQuat,F,U,w,L,16)},encodeFilterExp:function(F,U,w,L,j){Q(w>0&&w%4==0),Q(L>=1&&L<=24);var R={Separate:0,SharedVector:1,SharedComponent:2,Clamped:3};return q(X.exports.meshopt_encodeFilterExp,F,U,w,L,w,j?R[j]:1)}}}();var jV6=function(){var Z="b9H79Tebbbe8Fv9Gbb9Gvuuuuueu9Giuuub9Geueu9Giuuueuikqbeeedddillviebeoweuec:q:Odkr;leDo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8A9TW79O9V9Wt9F9KW9J9V9KW9wWVtW949c919M9MWVbeY9TW79O9V9Wt9F9KW9J9V9KW69U9KW949c919M9MWVbdE9TW79O9V9Wt9F9KW9J9V9KW69U9KW949tWG91W9U9JWbiL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9p9JtblK9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9r919HtbvL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWVT949Wbol79IV9Rbrq;w8Wqdbk;esezu8Jjjjjbcj;eb9Rgv8Kjjjjbc9:hodnadcefal0mbcuhoaiRbbc:Ge9hmbavaialfgrad9Radz1jjjbhwcj;abad9Uc;WFbGgocjdaocjd6EhDaicefhocbhqdnindndndnaeaq9nmbaDaeaq9RaqaDfae6Egkcsfglcl4cifcd4hxalc9WGgmTmecbhPawcjdfhsaohzinaraz9Rax6mvarazaxfgo9RcK6mvczhlcbhHinalgic9WfgOawcj;cbffhldndndndndnazaOco4fRbbaHcoG4ciGPlbedibkal9cb83ibalcwf9cb83ibxikalaoRblaoRbbgOco4gAaAciSgAE86bbawcj;cbfaifglcGfaoclfaAfgARbbaOcl4ciGgCaCciSgCE86bbalcVfaAaCfgARbbaOcd4ciGgCaCciSgCE86bbalc7faAaCfgARbbaOciGgOaOciSgOE86bbalctfaAaOfgARbbaoRbegOco4gCaCciSgCE86bbalc91faAaCfgARbbaOcl4ciGgCaCciSgCE86bbalc4faAaCfgARbbaOcd4ciGgCaCciSgCE86bbalc93faAaCfgARbbaOciGgOaOciSgOE86bbalc94faAaOfgARbbaoRbdgOco4gCaCciSgCE86bbalc95faAaCfgARbbaOcl4ciGgCaCciSgCE86bbalc96faAaCfgARbbaOcd4ciGgCaCciSgCE86bbalc97faAaCfgARbbaOciGgOaOciSgOE86bbalc98faAaOfgORbbaoRbigoco4gAaAciSgAE86bbalc99faOaAfgORbbaocl4ciGgAaAciSgAE86bbalc9:faOaAfgORbbaocd4ciGgAaAciSgAE86bbalcufaOaAfglRbbaociGgoaociSgoE86bbalaofhoxdkalaoRbwaoRbbgOcl4gAaAcsSgAE86bbawcj;cbfaifglcGfaocwfaAfgARbbaOcsGgOaOcsSgOE86bbalcVfaAaOfgORbbaoRbegAcl4gCaCcsSgCE86bbalc7faOaCfgORbbaAcsGgAaAcsSgAE86bbalctfaOaAfgORbbaoRbdgAcl4gCaCcsSgCE86bbalc91faOaCfgORbbaAcsGgAaAcsSgAE86bbalc4faOaAfgORbbaoRbigAcl4gCaCcsSgCE86bbalc93faOaCfgORbbaAcsGgAaAcsSgAE86bbalc94faOaAfgORbbaoRblgAcl4gCaCcsSgCE86bbalc95faOaCfgORbbaAcsGgAaAcsSgAE86bbalc96faOaAfgORbbaoRbvgAcl4gCaCcsSgCE86bbalc97faOaCfgORbbaAcsGgAaAcsSgAE86bbalc98faOaAfgORbbaoRbogAcl4gCaCcsSgCE86bbalc99faOaCfgORbbaAcsGgAaAcsSgAE86bbalc9:faOaAfgORbbaoRbrgocl4gAaAcsSgAE86bbalcufaOaAfglRbbaocsGgoaocsSgoE86bbalaofhoxekalao8Pbb83bbalcwfaocwf8Pbb83bbaoczfhokdnaiam9pmbaHcdfhHaiczfhlarao9RcL0mekkaiam6mvaoTmvdnakTmbawaPfRbbhHawcj;cbfhlashiakhOinaialRbbgzce4cbazceG9R7aHfgH86bbaiadfhialcefhlaOcufgOmbkkascefhsaohzaPcefgPad9hmbxikkcbc99arao9Radcaadca0ESEhoxlkaoaxad2fhCdnakmbadhlinaoTmlarao9Rax6mlaoaxfhoalcufglmbkaChoxekcbhmawcjdfhAinarao9Rax6miawamfRbbhHawcj;cbfhlaAhiakhOinaialRbbgzce4cbazceG9R7aHfgH86bbaiadfhialcefhlaOcufgOmbkaAcefhAaoaxfhoamcefgmad9hmbkaChokabaqad2fawcjdfakad2z1jjjb8Aawawcjdfakcufad2fadz1jjjb8Aakaqfhqaombkc9:hoxekc9:hokavcj;ebf8Kjjjjbaok;cseHu8Jjjjjbc;ae9Rgv8Kjjjjbc9:hodnaeci9UgrcHfal0mbcuhoaiRbbgwc;WeGc;Ge9hmbawcsGgwce0mbavc;abfcFecjez:jjjjb8AavcUf9cu83ibavc8Wf9cu83ibavcyf9cu83ibavcaf9cu83ibavcKf9cu83ibavczf9cu83ibav9cu83iwav9cu83ibaialfc9WfhDaicefgqarfhidnaeTmbcmcsawceSEhkcbhxcbhmcbhPcbhwcbhlindnaiaD9nmbc9:hoxikdndnaqRbbgoc;Ve0mbavc;abfalaocu7gscl4fcsGcitfgzydlhrazydbhzdnaocsGgHak9pmbavawasfcsGcdtfydbaxaHEhoaHThsdndnadcd9hmbabaPcetfgHaz87ebaHclfao87ebaHcdfar87ebxekabaPcdtfgHazBdbaHcwfaoBdbaHclfarBdbkaxasfhxcdhHavawcdtfaoBdbawasfhwcehsalhOxdkdndnaHcsSmbaHc987aHamffcefhoxekaicefhoai8SbbgHcFeGhsdndnaHcu9mmbaohixekaicvfhiascFbGhscrhHdninao8SbbgOcFbGaHtasVhsaOcu9kmeaocefhoaHcrfgHc8J9hmbxdkkaocefhikasce4cbasceG9R7amfhokdndnadcd9hmbabaPcetfgHaz87ebaHclfao87ebaHcdfar87ebxekabaPcdtfgHazBdbaHcwfaoBdbaHclfarBdbkcdhHavawcdtfaoBdbcehsawcefhwalhOaohmxekdnaocpe0mbaxcefgHavawaDaocsGfRbbgocl49RcsGcdtfydbaocz6gzEhravawao9RcsGcdtfydbaHazfgAaocsGgHEhoaHThCdndnadcd9hmbabaPcetfgHax87ebaHclfao87ebaHcdfar87ebxekabaPcdtfgHaxBdbaHcwfaoBdbaHclfarBdbkcdhsavawcdtfaxBdbavawcefgwcsGcdtfarBdbcihHavc;abfalcitfgOaxBdlaOarBdbavawazfgwcsGcdtfaoBdbalcefcsGhOawaCfhwaxhzaAaCfhxxekaxcbaiRbbgOEgzaoc;:eSgHfhraOcsGhCaOcl4hAdndnaOcs0mbarcefhoxekarhoavawaA9RcsGcdtfydbhrkdndnaCmbaocefhxxekaohxavawaO9RcsGcdtfydbhokdndnaHTmbaicefhHxekaicdfhHai8SbegscFeGhzdnascu9kmbaicofhXazcFbGhzcrhidninaH8SbbgscFbGaitazVhzascu9kmeaHcefhHaicrfgic8J9hmbkaXhHxekaHcefhHkazce4cbazceG9R7amfgmhzkdndnaAcsSmbaHhsxekaHcefhsaH8SbbgicFeGhrdnaicu9kmbaHcvfhXarcFbGhrcrhidninas8SbbgHcFbGaitarVhraHcu9kmeascefhsaicrfgic8J9hmbkaXhsxekascefhskarce4cbarceG9R7amfgmhrkdndnaCcsSmbashixekascefhias8SbbgocFeGhHdnaocu9kmbascvfhXaHcFbGhHcrhodninai8SbbgscFbGaotaHVhHascu9kmeaicefhiaocrfgoc8J9hmbkaXhixekaicefhikaHce4cbaHceG9R7amfgmhokdndnadcd9hmbabaPcetfgHaz87ebaHclfao87ebaHcdfar87ebxekabaPcdtfgHazBdbaHcwfaoBdbaHclfarBdbkcdhsavawcdtfazBdbavawcefgwcsGcdtfarBdbcihHavc;abfalcitfgXazBdlaXarBdbavawaOcz6aAcsSVfgwcsGcdtfaoBdbawaCTaCcsSVfhwalcefcsGhOkaqcefhqavc;abfaOcitfgOarBdlaOaoBdbavc;abfalasfcsGcitfgraoBdlarazBdbawcsGhwalaHfcsGhlaPcifgPae6mbkkcbc99aiaDSEhokavc;aef8Kjjjjbaok:flevu8Jjjjjbcz9Rhvc9:hodnaecvfal0mbcuhoaiRbbc;:eGc;qe9hmbav9cb83iwaicefhraialfc98fhwdnaeTmbdnadcdSmbcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcdtfaic8Etc8F91aicd47avcwfaiceGcdtVgoydbfglBdbaoalBdbaDcefgDae9hmbxdkkcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcetfaic8Etc8F91aicd47avcwfaiceGcdtVgoydbfgl87ebaoalBdbaDcefgDae9hmbkkcbc99arawSEhokaok:Lvoeue99dud99eud99dndnadcl9hmbaeTmeindndnabcdfgd8Sbb:Yab8Sbbgi:Ygl:l:tabcefgv8Sbbgo:Ygr:l:tgwJbb;:9cawawNJbbbbawawJbbbb9GgDEgq:mgkaqaicb9iEalMgwawNakaqaocb9iEarMgqaqNMM:r:vglNJbbbZJbbb:;aDEMgr:lJbbb9p9DTmbar:Ohixekcjjjj94hikadai86bbdndnaqalNJbbbZJbbb:;aqJbbbb9GEMgq:lJbbb9p9DTmbaq:Ohdxekcjjjj94hdkavad86bbdndnawalNJbbbZJbbb:;awJbbbb9GEMgw:lJbbb9p9DTmbaw:Ohdxekcjjjj94hdkabad86bbabclfhbaecufgembxdkkaeTmbindndnabclfgd8Ueb:Yab8Uebgi:Ygl:l:tabcdfgv8Uebgo:Ygr:l:tgwJb;:FSawawNJbbbbawawJbbbb9GgDEgq:mgkaqaicb9iEalMgwawNakaqaocb9iEarMgqaqNMM:r:vglNJbbbZJbbb:;aDEMgr:lJbbb9p9DTmbar:Ohixekcjjjj94hikadai87ebdndnaqalNJbbbZJbbb:;aqJbbbb9GEMgq:lJbbb9p9DTmbaq:Ohdxekcjjjj94hdkavad87ebdndnawalNJbbbZJbbb:;awJbbbb9GEMgw:lJbbb9p9DTmbaw:Ohdxekcjjjj94hdkabad87ebabcwfhbaecufgembkkk;oiliui99iue99dnaeTmbcbhiabhlindndnJ;Zl81Zalcof8UebgvciV:Y:vgoal8Ueb:YNgrJb;:FSNJbbbZJbbb:;arJbbbb9GEMgw:lJbbb9p9DTmbaw:OhDxekcjjjj94hDkalclf8Uebhqalcdf8UebhkabaiavcefciGfcetfaD87ebdndnaoak:YNgwJb;:FSNJbbbZJbbb:;awJbbbb9GEMgx:lJbbb9p9DTmbax:OhDxekcjjjj94hDkabaiavciGfgkcd7cetfaD87ebdndnaoaq:YNgoJb;:FSNJbbbZJbbb:;aoJbbbb9GEMgx:lJbbb9p9DTmbax:OhDxekcjjjj94hDkabaiavcufciGfcetfaD87ebdndnJbbjZararN:tawawN:taoaoN:tgrJbbbbarJbbbb9GE:rJb;:FSNJbbbZMgr:lJbbb9p9DTmbar:Ohvxekcjjjj94hvkabakcetfav87ebalcwfhlaiclfhiaecufgembkkk9mbdnadcd4ae2gdTmbinababydbgecwtcw91:Yaece91cjjj98Gcjjj;8if::NUdbabclfhbadcufgdmbkkk9teiucbcbydj1jjbgeabcifc98GfgbBdj1jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik;LeeeudndnaeabVciGTmbabhixekdndnadcz9pmbabhixekabhiinaiaeydbBdbaiclfaeclfydbBdbaicwfaecwfydbBdbaicxfaecxfydbBdbaeczfheaiczfhiadc9Wfgdcs0mbkkadcl6mbinaiaeydbBdbaeclfheaiclfhiadc98fgdci0mbkkdnadTmbinaiaeRbb86bbaicefhiaecefheadcufgdmbkkabk;aeedudndnabciGTmbabhixekaecFeGc:b:c:ew2hldndnadcz9pmbabhixekabhiinaialBdbaicxfalBdbaicwfalBdbaiclfalBdbaiczfhiadc9Wfgdcs0mbkkadcl6mbinaialBdbaiclfhiadc98fgdci0mbkkdnadTmbinaiae86bbaicefhiadcufgdmbkkabkkkebcjwklzNbb",J="b9H79TebbbeKl9Gbb9Gvuuuuueu9Giuuub9Geueuikqbbebeedddilve9Weeeviebeoweuec:q:6dkr;leDo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8A9TW79O9V9Wt9F9KW9J9V9KW9wWVtW949c919M9MWVbdY9TW79O9V9Wt9F9KW9J9V9KW69U9KW949c919M9MWVblE9TW79O9V9Wt9F9KW9J9V9KW69U9KW949tWG91W9U9JWbvL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9p9JtboK9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9r919HtbrL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWVT949Wbwl79IV9RbDq:p9sqlbzik9:evu8Jjjjjbcz9Rhbcbheincbhdcbhiinabcwfadfaicjuaead4ceGglE86bbaialfhiadcefgdcw9hmbkaec:q:yjjbfai86bbaecitc:q1jjbfab8Piw83ibaecefgecjd9hmbkk:N8JlHud97euo978Jjjjjbcj;kb9Rgv8Kjjjjbc9:hodnadcefal0mbcuhoaiRbbc:Ge9hmbavaialfgrad9Rad;8qbbcj;abad9UhlaicefhodnaeTmbadTmbalc;WFbGglcjdalcjd6EhwcbhDinawaeaD9RaDawfae6Egqcsfglc9WGgkci2hxakcethmalcl4cifcd4hPabaDad2fhsakc;ab6hzcbhHincbhOaohAdndninaraA9RaP6meavcj;cbfaOak2fhCaAaPfhocbhidnazmbarao9Rc;Gb6mbcbhlinaCalfhidndndndndnaAalco4fRbbgXciGPlbedibkaipxbbbbbbbbbbbbbbbbpklbxikaiaopbblaopbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklbaoclfaYpQbfaKc:q:yjjbfRbbfhoxdkaiaopbbwaopbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklbaocwfaYpQbfaKc:q:yjjbfRbbfhoxekaiaopbbbpklbaoczfhokdndndndndnaXcd4ciGPlbedibkaipxbbbbbbbbbbbbbbbbpklzxikaiaopbblaopbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklzaoclfaYpQbfaKc:q:yjjbfRbbfhoxdkaiaopbbwaopbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklzaocwfaYpQbfaKc:q:yjjbfRbbfhoxekaiaopbbbpklzaoczfhokdndndndndnaXcl4ciGPlbedibkaipxbbbbbbbbbbbbbbbbpklaxikaiaopbblaopbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklaaoclfaYpQbfaKc:q:yjjbfRbbfhoxdkaiaopbbwaopbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklaaocwfaYpQbfaKc:q:yjjbfRbbfhoxekaiaopbbbpklaaoczfhokdndndndndnaXco4Plbedibkaipxbbbbbbbbbbbbbbbbpkl8WxikaiaopbblaopbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibaXc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spkl8WaoclfaYpQbfaXc:q:yjjbfRbbfhoxdkaiaopbbwaopbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibaXc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spkl8WaocwfaYpQbfaXc:q:yjjbfRbbfhoxekaiaopbbbpkl8Waoczfhokalc;abfhialcjefak0meaihlarao9Rc;Fb0mbkkdnaiak9pmbaici4hlinarao9RcK6miaCaifhXdndndndndnaAaico4fRbbalcoG4ciGPlbedibkaXpxbbbbbbbbbbbbbbbbpkbbxikaXaopbblaopbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spkbbaoclfaYpQbfaKc:q:yjjbfRbbfhoxdkaXaopbbwaopbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spkbbaocwfaYpQbfaKc:q:yjjbfRbbfhoxekaXaopbbbpkbbaoczfhokalcdfhlaiczfgiak6mbkkaoTmeaohAaOcefgOclSmdxbkkc9:hoxlkdnakTmbavcjdfaHfhiavaHfpbdbhYcbhXinaiavcj;cbfaXfglpblbgLcep9TaLpxeeeeeeeeeeeeeeeegQp9op9Hp9rgLalakfpblbg8Acep9Ta8AaQp9op9Hp9rg8ApmbzeHdOiAlCvXoQrLgEalamfpblbg3cep9Ta3aQp9op9Hp9rg3alaxfpblbg5cep9Ta5aQp9op9Hp9rg5pmbzeHdOiAlCvXoQrLg8EpmbezHdiOAlvCXorQLgQaQpmbedibedibedibediaYp9UgYp9AdbbaiadfglaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaladfglaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaladfglaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaladfglaYaEa8EpmwDKYqk8AExm35Ps8E8FgQaQpmbedibedibedibedip9UgYp9AdbbaladfglaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaladfglaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaladfglaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaladfglaYaLa8ApmwKDYq8AkEx3m5P8Es8FgLa3a5pmwKDYq8AkEx3m5P8Es8Fg8ApmbezHdiOAlvCXorQLgQaQpmbedibedibedibedip9UgYp9AdbbaladfglaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaladfglaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaladfglaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaladfglaYaLa8ApmwDKYqk8AExm35Ps8E8FgQaQpmbedibedibedibedip9UgYp9AdbbaladfglaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaladfglaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaladfglaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaladfhiaXczfgXak6mbkkaHclfgHad6mbkasavcjdfaqad2;8qbbavavcjdfaqcufad2fad;8qbbaqaDfgDae6mbkkcbc99arao9Radcaadca0ESEhokavcj;kbf8Kjjjjbaokwbz:bjjjbk::seHu8Jjjjjbc;ae9Rgv8Kjjjjbc9:hodnaeci9UgrcHfal0mbcuhoaiRbbgwc;WeGc;Ge9hmbawcsGgwce0mbavc;abfcFecje;8kbavcUf9cu83ibavc8Wf9cu83ibavcyf9cu83ibavcaf9cu83ibavcKf9cu83ibavczf9cu83ibav9cu83iwav9cu83ibaialfc9WfhDaicefgqarfhidnaeTmbcmcsawceSEhkcbhxcbhmcbhPcbhwcbhlindnaiaD9nmbc9:hoxikdndnaqRbbgoc;Ve0mbavc;abfalaocu7gscl4fcsGcitfgzydlhrazydbhzdnaocsGgHak9pmbavawasfcsGcdtfydbaxaHEhoaHThsdndnadcd9hmbabaPcetfgHaz87ebaHclfao87ebaHcdfar87ebxekabaPcdtfgHazBdbaHcwfaoBdbaHclfarBdbkaxasfhxcdhHavawcdtfaoBdbawasfhwcehsalhOxdkdndnaHcsSmbaHc987aHamffcefhoxekaicefhoai8SbbgHcFeGhsdndnaHcu9mmbaohixekaicvfhiascFbGhscrhHdninao8SbbgOcFbGaHtasVhsaOcu9kmeaocefhoaHcrfgHc8J9hmbxdkkaocefhikasce4cbasceG9R7amfhokdndnadcd9hmbabaPcetfgHaz87ebaHclfao87ebaHcdfar87ebxekabaPcdtfgHazBdbaHcwfaoBdbaHclfarBdbkcdhHavawcdtfaoBdbcehsawcefhwalhOaohmxekdnaocpe0mbaxcefgHavawaDaocsGfRbbgocl49RcsGcdtfydbaocz6gzEhravawao9RcsGcdtfydbaHazfgAaocsGgHEhoaHThCdndnadcd9hmbabaPcetfgHax87ebaHclfao87ebaHcdfar87ebxekabaPcdtfgHaxBdbaHcwfaoBdbaHclfarBdbkcdhsavawcdtfaxBdbavawcefgwcsGcdtfarBdbcihHavc;abfalcitfgOaxBdlaOarBdbavawazfgwcsGcdtfaoBdbalcefcsGhOawaCfhwaxhzaAaCfhxxekaxcbaiRbbgOEgzaoc;:eSgHfhraOcsGhCaOcl4hAdndnaOcs0mbarcefhoxekarhoavawaA9RcsGcdtfydbhrkdndnaCmbaocefhxxekaohxavawaO9RcsGcdtfydbhokdndnaHTmbaicefhHxekaicdfhHai8SbegscFeGhzdnascu9kmbaicofhXazcFbGhzcrhidninaH8SbbgscFbGaitazVhzascu9kmeaHcefhHaicrfgic8J9hmbkaXhHxekaHcefhHkazce4cbazceG9R7amfgmhzkdndnaAcsSmbaHhsxekaHcefhsaH8SbbgicFeGhrdnaicu9kmbaHcvfhXarcFbGhrcrhidninas8SbbgHcFbGaitarVhraHcu9kmeascefhsaicrfgic8J9hmbkaXhsxekascefhskarce4cbarceG9R7amfgmhrkdndnaCcsSmbashixekascefhias8SbbgocFeGhHdnaocu9kmbascvfhXaHcFbGhHcrhodninai8SbbgscFbGaotaHVhHascu9kmeaicefhiaocrfgoc8J9hmbkaXhixekaicefhikaHce4cbaHceG9R7amfgmhokdndnadcd9hmbabaPcetfgHaz87ebaHclfao87ebaHcdfar87ebxekabaPcdtfgHazBdbaHcwfaoBdbaHclfarBdbkcdhsavawcdtfazBdbavawcefgwcsGcdtfarBdbcihHavc;abfalcitfgXazBdlaXarBdbavawaOcz6aAcsSVfgwcsGcdtfaoBdbawaCTaCcsSVfhwalcefcsGhOkaqcefhqavc;abfaOcitfgOarBdlaOaoBdbavc;abfalasfcsGcitfgraoBdlarazBdbawcsGhwalaHfcsGhlaPcifgPae6mbkkcbc99aiaDSEhokavc;aef8Kjjjjbaok:flevu8Jjjjjbcz9Rhvc9:hodnaecvfal0mbcuhoaiRbbc;:eGc;qe9hmbav9cb83iwaicefhraialfc98fhwdnaeTmbdnadcdSmbcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcdtfaic8Etc8F91aicd47avcwfaiceGcdtVgoydbfglBdbaoalBdbaDcefgDae9hmbxdkkcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcetfaic8Etc8F91aicd47avcwfaiceGcdtVgoydbfgl87ebaoalBdbaDcefgDae9hmbkkcbc99arawSEhokaok:wPliuo97eue978Jjjjjbca9Rhiaec98Ghldndnadcl9hmbdnalTmbcbhvabhdinadadpbbbgocKp:RecKp:Sep;6egraocwp:RecKp:Sep;6earp;Geaoczp:RecKp:Sep;6egwp;Gep;Kep;LegDpxbbbbbbbbbbbbbbbbp:2egqarpxbbbjbbbjbbbjbbbjgkp9op9rp;Kegrpxbb;:9cbb;:9cbb;:9cbb;:9cararp;MeaDaDp;Meawaqawakp9op9rp;Kegrarp;Mep;Kep;Kep;Jep;Negwp;Mepxbbn0bbn0bbn0bbn0gqp;KepxFbbbFbbbFbbbFbbbp9oaopxbbbFbbbFbbbFbbbFp9op9qarawp;Meaqp;Kecwp:RepxbFbbbFbbbFbbbFbbp9op9qaDawp;Meaqp;Keczp:RepxbbFbbbFbbbFbbbFbp9op9qpkbbadczfhdavclfgval6mbkkalaeSmeaipxbbbbbbbbbbbbbbbbgqpklbaiabalcdtfgdaeciGglcdtgv;8qbbdnalTmbaiaipblbgocKp:RecKp:Sep;6egraocwp:RecKp:Sep;6earp;Geaoczp:RecKp:Sep;6egwp;Gep;Kep;LegDaqp:2egqarpxbbbjbbbjbbbjbbbjgkp9op9rp;Kegrpxbb;:9cbb;:9cbb;:9cbb;:9cararp;MeaDaDp;Meawaqawakp9op9rp;Kegrarp;Mep;Kep;Kep;Jep;Negwp;Mepxbbn0bbn0bbn0bbn0gqp;KepxFbbbFbbbFbbbFbbbp9oaopxbbbFbbbFbbbFbbbFp9op9qarawp;Meaqp;Kecwp:RepxbFbbbFbbbFbbbFbbp9op9qaDawp;Meaqp;Keczp:RepxbbFbbbFbbbFbbbFbp9op9qpklbkadaiav;8qbbskdnalTmbcbhvabhdinadczfgxaxpbbbgopxbbbbbbFFbbbbbbFFgkp9oadpbbbgDaopmbediwDqkzHOAKY8AEgwczp:Reczp:Sep;6egraDaopmlvorxmPsCXQL358E8FpxFubbFubbFubbFubbp9op;6eawczp:Sep;6egwp;Gearp;Gep;Kep;Legopxbbbbbbbbbbbbbbbbp:2egqarpxbbbjbbbjbbbjbbbjgmp9op9rp;Kegrpxb;:FSb;:FSb;:FSb;:FSararp;Meaoaop;Meawaqawamp9op9rp;Kegrarp;Mep;Kep;Kep;Jep;Negwp;Mepxbbn0bbn0bbn0bbn0gqp;KepxFFbbFFbbFFbbFFbbp9oaoawp;Meaqp;Keczp:Rep9qgoarawp;Meaqp;KepxFFbbFFbbFFbbFFbbp9ogrpmwDKYqk8AExm35Ps8E8Fp9qpkbbadaDakp9oaoarpmbezHdiOAlvCXorQLp9qpkbbadcafhdavclfgval6mbkkalaeSmbaiaeciGgvcitgdfcbcaad9R;8kbaiabalcitfglad;8qbbdnavTmbaiaipblzgopxbbbbbbFFbbbbbbFFgkp9oaipblbgDaopmbediwDqkzHOAKY8AEgwczp:Reczp:Sep;6egraDaopmlvorxmPsCXQL358E8FpxFubbFubbFubbFubbp9op;6eawczp:Sep;6egwp;Gearp;Gep;Kep;Legopxbbbbbbbbbbbbbbbbp:2egqarpxbbbjbbbjbbbjbbbjgmp9op9rp;Kegrpxb;:FSb;:FSb;:FSb;:FSararp;Meaoaop;Meawaqawamp9op9rp;Kegrarp;Mep;Kep;Kep;Jep;Negwp;Mepxbbn0bbn0bbn0bbn0gqp;KepxFFbbFFbbFFbbFFbbp9oaoawp;Meaqp;Keczp:Rep9qgoarawp;Meaqp;KepxFFbbFFbbFFbbFFbbp9ogrpmwDKYqk8AExm35Ps8E8Fp9qpklzaiaDakp9oaoarpmbezHdiOAlvCXorQLp9qpklbkalaiad;8qbbkk;4wllue97euv978Jjjjjbc8W9Rhidnaec98GglTmbcbhvabhoinaiaopbbbgraoczfgwpbbbgDpmlvorxmPsCXQL358E8Fgqczp:Segkclp:RepklbaopxbbjZbbjZbbjZbbjZpx;Zl81Z;Zl81Z;Zl81Z;Zl81Zakpxibbbibbbibbbibbbp9qp;6ep;NegkaraDpmbediwDqkzHOAKY8AEgrczp:Reczp:Sep;6ep;MegDaDp;Meakarczp:Sep;6ep;Megxaxp;Meakaqczp:Reczp:Sep;6ep;Megqaqp;Mep;Kep;Kep;Lepxbbbbbbbbbbbbbbbbp:4ep;Jepxb;:FSb;:FSb;:FSb;:FSgkp;Mepxbbn0bbn0bbn0bbn0grp;KepxFFbbFFbbFFbbFFbbgmp9oaxakp;Mearp;Keczp:Rep9qgxaDakp;Mearp;Keamp9oaqakp;Mearp;Keczp:Rep9qgkpmbezHdiOAlvCXorQLgrp5baipblbpEb:T:j83ibaocwfarp5eaipblbpEe:T:j83ibawaxakpmwDKYqk8AExm35Ps8E8Fgkp5baipblbpEd:T:j83ibaocKfakp5eaipblbpEi:T:j83ibaocafhoavclfgval6mbkkdnalaeSmbaiaeciGgvcitgofcbcaao9R;8kbaiabalcitfgwao;8qbbdnavTmbaiaipblbgraipblzgDpmlvorxmPsCXQL358E8Fgqczp:Segkclp:RepklaaipxbbjZbbjZbbjZbbjZpx;Zl81Z;Zl81Z;Zl81Z;Zl81Zakpxibbbibbbibbbibbbp9qp;6ep;NegkaraDpmbediwDqkzHOAKY8AEgrczp:Reczp:Sep;6ep;MegDaDp;Meakarczp:Sep;6ep;Megxaxp;Meakaqczp:Reczp:Sep;6ep;Megqaqp;Mep;Kep;Kep;Lepxbbbbbbbbbbbbbbbbp:4ep;Jepxb;:FSb;:FSb;:FSb;:FSgkp;Mepxbbn0bbn0bbn0bbn0grp;KepxFFbbFFbbFFbbFFbbgmp9oaxakp;Mearp;Keczp:Rep9qgxaDakp;Mearp;Keamp9oaqakp;Mearp;Keczp:Rep9qgkpmbezHdiOAlvCXorQLgrp5baipblapEb:T:j83ibaiarp5eaipblapEe:T:j83iwaiaxakpmwDKYqk8AExm35Ps8E8Fgkp5baipblapEd:T:j83izaiakp5eaipblapEi:T:j83iKkawaiao;8qbbkk:Pddiue978Jjjjjbc;ab9Rhidnadcd4ae2glc98GgvTmbcbheabhdinadadpbbbgocwp:Recwp:Sep;6eaocep:SepxbbjFbbjFbbjFbbjFp9opxbbjZbbjZbbjZbbjZp:Uep;Mepkbbadczfhdaeclfgeav6mbkkdnavalSmbaialciGgecdtgdVcbc;abad9R;8kbaiabavcdtfgvad;8qbbdnaeTmbaiaipblbgocwp:Recwp:Sep;6eaocep:SepxbbjFbbjFbbjFbbjFp9opxbbjZbbjZbbjZbbjZp:Uep;Mepklbkavaiad;8qbbkk9teiucbcbydj1jjbgeabcifc98GfgbBdj1jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaikkkebcjwklz:Dbb",X=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]),Y=new Uint8Array([32,0,65,2,1,106,34,33,3,128,11,4,13,64,6,253,10,7,15,116,127,5,8,12,40,16,19,54,20,9,27,255,113,17,42,67,24,23,146,148,18,14,22,45,70,69,56,114,101,21,25,63,75,136,108,28,118,29,73,115]);if(typeof WebAssembly!=="object")return{supported:!1};var $=WebAssembly.validate(X)?W(J):W(Z),Q,K=WebAssembly.instantiate($,{}).then(function(j){Q=j.instance,Q.exports.__wasm_call_ctors()});function W(j){var R=new Uint8Array(j.length);for(var O=0;O<j.length;++O){var N=j.charCodeAt(O);R[O]=N>96?N-97:N>64?N-39:N+4}var D=0;for(var O=0;O<j.length;++O)R[D++]=R[O]<60?Y[R[O]]:(R[O]-60)*64+R[++O];return R.buffer.slice(0,D)}function G(j,R,O,N,D,P,C){var T=j.exports.sbrk,k=N+3&-4,A=T(k*D),S=T(P.length),x=new Uint8Array(j.exports.memory.buffer);x.set(P,S);var I=R(A,N,D,S,P.length);if(I==0&&C)C(A,k,D);if(O.set(x.subarray(A,A+N*D)),T(A-T(0)),I!=0)throw new Error("Malformed buffer data: "+I)}var z={NONE:"",OCTAHEDRAL:"meshopt_decodeFilterOct",QUATERNION:"meshopt_decodeFilterQuat",EXPONENTIAL:"meshopt_decodeFilterExp"},V={ATTRIBUTES:"meshopt_decodeVertexBuffer",TRIANGLES:"meshopt_decodeIndexBuffer",INDICES:"meshopt_decodeIndexSequence"},H=[],q=0;function F(j){var R={object:new Worker(j),pending:0,requests:{}};return R.object.onmessage=function(O){var N=O.data;R.pending-=N.count,R.requests[N.id][N.action](N.value),delete R.requests[N.id]},R}function U(j){var R="self.ready = WebAssembly.instantiate(new Uint8Array(["+new Uint8Array($)+"]), {}).then(function(result) { result.instance.exports.__wasm_call_ctors(); return result.instance; });self.onmessage = "+L.name+";"+G.toString()+L.toString(),O=new Blob([R],{type:"text/javascript"}),N=URL.createObjectURL(O);for(var D=H.length;D<j;++D)H[D]=F(N);for(var D=j;D<H.length;++D)H[D].object.postMessage({});H.length=j,URL.revokeObjectURL(N)}function w(j,R,O,N,D){var P=H[0];for(var C=1;C<H.length;++C)if(H[C].pending<P.pending)P=H[C];return new Promise(function(T,k){var A=new Uint8Array(O),S=++q;P.pending+=j,P.requests[S]={resolve:T,reject:k},P.object.postMessage({id:S,count:j,size:R,source:A,mode:N,filter:D},[A.buffer])})}function L(j){var R=j.data;if(!R.id)return self.close();self.ready.then(function(O){try{var N=new Uint8Array(R.count*R.size);G(O,O.exports[R.mode],N,R.count,R.size,R.source,O.exports[R.filter]),self.postMessage({id:R.id,count:R.count,action:"resolve",value:N},[N.buffer])}catch(D){self.postMessage({id:R.id,count:R.count,action:"reject",value:D})}})}return{ready:K,supported:!0,useWorkers:function(j){U(j)},decodeVertexBuffer:function(j,R,O,N,D){G(Q,Q.exports.meshopt_decodeVertexBuffer,j,R,O,N,Q.exports[z[D]])},decodeIndexBuffer:function(j,R,O,N){G(Q,Q.exports.meshopt_decodeIndexBuffer,j,R,O,N)},decodeIndexSequence:function(j,R,O,N){G(Q,Q.exports.meshopt_decodeIndexSequence,j,R,O,N)},decodeGltfBuffer:function(j,R,O,N,D,P){G(Q,Q.exports[V[D]],j,R,O,N,Q.exports[z[P]])},decodeGltfBufferAsync:function(j,R,O,N,D){if(H.length>0)return w(j,R,O,V[N],z[D]);return K.then(function(){var P=new Uint8Array(j*R);return G(Q,Q.exports[V[N]],P,j,R,O,Q.exports[z[D]]),P})}}}();var za=function(){var Z="b9H79Tebbbe9Hk9Geueu9Geub9Gbb9Gsuuuuuuuuuuuu99uueu9Gvuuuuub9Gvuuuuue999Gquuuuuuu99uueu9Gwuuuuuu99ueu9Giuuue999Gluuuueu9GiuuueuizsdilvoirwDbqqbeqlve9Weiiviebeoweuecj:Pdkr:Tewo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bbz9TW79O9V9Wt9F79P9T9W29P9M95bl8E9TW79O9V9Wt9F79P9T9W29P9M959x9Pt9OcttV9P9I91tW7bvQ9TW79O9V9Wt9F79P9T9W29P9M959q9V9P9Ut7boX9TW79O9V9Wt9F79P9T9W29P9M959t9J9H2Wbra9TW79O9V9Wt9F9V9Wt9P9T9P96W9wWVtW94SWt9J9O9sW9T9H9Wbwl79IV9RbDDwebcekdmxq;UMesdbk:kfvKue99euY99Qu8Jjjjjbc;W;qb9Rgs8Kjjjjbcbhzascxfcbc;Kbz:ljjjb8AdnabaeSmbabaeadcdtz:kjjjb8AkdnamcdGTmbalcrfci4gHcbyd;S1jjbHjjjjbbheascxfasyd2gOcdtfaeBdbasaOcefBd2aecbaHz:ljjjbhAcbhlcbhednadTmbcbhlabheadhHinaAaeydbgOci4fgCaCRbbgCceaOcrGgOtV86bbaCcu7aO4ceGalfhlaeclfheaHcufgHmbkcualcdtalcFFFFi0Ehekaecbyd;S1jjbHjjjjbbhzascxfasyd2gecdtfazBdbasaecefBd2alcd4alfhOcehHinaHgecethHaeaO6mbkcbhXcuaecdtgOaecFFFFi0Ecbyd;S1jjbHjjjjbbhHascxfasyd2gCcdtfaHBdbasaCcefBd2aHcFeaOz:ljjjbhQdnadTmbaecufhCcbhLinabaXcdtfgKydbgAc:v;t;h;Ev2hOcbhedndninaQaOaCGgOcdtfgYydbgHcuSmeazaHcdtfydbaASmdaecefgeaOfhOaeaC9nmbxdkkazaLcdtfaABdbaYaLBdbaLhHaLcefhLkaKaHBdbaXcefgXad9hmbkkaQcbyd;O1jjbH:bjjjbbasasyd2cufBd2kcualcefgecdtaecFFFFi0Ecbyd;S1jjbHjjjjbbh8Aascxfasyd2gecdtfa8ABdbasa8ABdlasaecefBd2cuadcitadcFFFFe0Ecbyd;S1jjbHjjjjbbhEascxfasyd2gecdtfaEBdbasaEBdwasaecefBd2asclfabadalcbz:cjjjbcualcdtg3alcFFFFi0Eg5cbyd;S1jjbHjjjjbbhQascxfasyd2gecdtfaQBdbasaecefBd2a5cbyd;S1jjbHjjjjbbh8Eascxfasyd2gecdtfa8EBdbasaecefBd2alcd4alfhOcehHinaHgecethHaeaO6mbkcbhLcuaecdtgOaecFFFFi0Ecbyd;S1jjbHjjjjbbhHascxfasyd2gCcdtfaHBdbasaCcefBd2aHcFeaOz:ljjjbhXdnalTmbavcd4hCaecufhHinaLhednazTmbazaLcdtfydbhekaiaeaC2cdtfgeydlgOcH4aO7c:F:b:DD2aeydbgOcH4aO7c;D;O:B8J27aeydwgecH4ae7c:3F;N8N27aHGheaLcdth8FdndndndndnazTmbaza8FfhKcbhOinaXaecdtfgYydbgAcuSmlaiazaAcdtfydbaC2cdtfaiaKydbaC2cdtfcxz:ojjjbTmiaOcefgOaefaHGheaOaH9nmbxdkkaiaLaC2cdtfhKcbhOinaXaecdtfgYydbgAcuSmiaiaAaC2cdtfaKcxz:ojjjbTmdaOcefgOaefaHGheaOaH9nmbkkcbhYkaYydbgecu9hmekaYaLBdbaLhekaQa8FfaeBdbaLcefgLal9hmbkcbhea8EhHinaHaeBdbaHclfhHalaecefge9hmbkcbheaQhHa8EhOindnaeaHydbgCSmbaOa8EaCcdtfgCydbBdbaCaeBdbkaHclfhHaOclfhOalaecefge9hmbkkcbhaaXcbyd;O1jjbH:bjjjbbasasyd2cufBd2alcbyd;S1jjbHjjjjbbhXascxfasyd2gecdtfaXBdbasaecefBd2a5cbyd;S1jjbHjjjjbbheascxfasyd2gHcdtfaeBdbasaHcefBd2a5cbyd;S1jjbHjjjjbbhHascxfasyd2gOcdtfaHBdbasaOcefBd2aecFea3z:ljjjbhhaHcFea3z:ljjjbhgdnalTmbaEcwfh8Jindna8AaagOcefgacdtfydbgCa8AaOcdtgefydbgHSmbaCaH9Rh8FaEaHcitfh3agaefh8KahaefhLcbhAindndna3aAcitfydbgYaO9hmbaLaOBdba8KaOBdbxekdna8AaYcdtg8LfgeclfydbgHaeydbgeSmbaEaecitgCfydbaOSmeaHae9Rh8Maecu7aHfhKa8JaCfhHcbheinaKaeSmeaecefheaHydbhCaHcwfhHaCaO9hmbkaea8M6mekaga8LfgeaOaYaeydbcuSEBdbaLaYaOaLydbcuSEBdbkaAcefgAa8F9hmbkkaaal9hmbkaQhHa8EhOaghCahhAcbheindndnaeaHydbgY9hmbdnaeaOydbgY9hmbaAydbhYdnaCydbgKcu9hmbaYcu9hmbaXaefcb86bbxikaXaefhLdnaeaKSmbaeaYSmbaLce86bbxikaLcl86bbxdkdnaea8EaYcdtgKfydb9hmbdnaCydbgLcuSmbaeaLSmbaAydbg8FcuSmbaea8FSmbagaKfydbg3cuSmba3aYSmbahaKfydbgKcuSmbaKaYSmbdnaQaLcdtfydbgYaQaKcdtfydb9hmbaYaQa8FcdtfydbgKSmbaKaQa3cdtfydb9hmbaXaefcd86bbxlkaXaefcl86bbxikaXaefcl86bbxdkaXaefcl86bbxekaXaefaXaYfRbb86bbkaHclfhHaOclfhOaCclfhCaAclfhAalaecefge9hmbkdnaqTmbdndnazTmbazheaQhHalhOindnaqaeydbfRbbTmbaXaHydbfcl86bbkaeclfheaHclfhHaOcufgOmbxdkkaQhealhHindnaqRbbTmbaXaeydbfcl86bbkaqcefhqaeclfheaHcufgHmbkkaQhealhOaXhHindnaXaeydbfRbbcl9hmbaHcl86bbkaeclfheaHcefhHaOcufgOmbkkamceGTmbaXhealhHindnaeRbbce9hmbaecl86bbkaecefheaHcufgHmbkkcualcx2alc;v:Q;v:Qe0Ecbyd;S1jjbHjjjjbbhaascxfasyd2gecdtfaaBdbasaecefBd2aaaialavazz:djjjbh8NdndnaDmbcbhycbh8Jxekcbh8JawhecbhHindnaeIdbJbbbb9ETmbasc;Wbfa8JcdtfaHBdba8Jcefh8JkaeclfheaDaHcefgH9hmbkcua8Jal2gecdtaecFFFFi0Ecbyd;S1jjbHjjjjbbhyascxfasyd2gecdtfayBdbasaecefBd2alTmba8JTmbarcd4hLdnazTmba8JcdthicbhYayhKinaoazaYcdtfydbaL2cdtfhAasc;WbfheaKhHa8JhOinaHaAaeydbcdtgCfIdbawaCfIdbNUdbaeclfheaHclfhHaOcufgOmbkaKaifhKaYcefgYal9hmbxdkka8JcdthicbhYayhKinaoaYaL2cdtfhAasc;WbfheaKhHa8JhOinaHaAaeydbcdtgCfIdbawaCfIdbNUdbaeclfheaHclfhHaOcufgOmbkaKaifhKaYcefgYal9hmbkkcualc8S2gHalc;D;O;f8U0EgCcbyd;S1jjbHjjjjbbheascxfasyd2gOcdtfaeBdbasaOcefBd2aecbaHz:ljjjbhqdndndndna8JTmbaCcbyd;S1jjbHjjjjbbhvascxfasyd2gecdtfavBdbcehOasaecefBd2avcbaHz:ljjjb8Acua8Jal2gecltgHaecFFFFb0Ecbyd;S1jjbHjjjjbbhrascxfasyd2gecdtfarBdbasaecefBd2arcbaHz:ljjjb8AadmexikcbhvadTmecbhrkcbhAabhHindnaaaHclfydbgYcx2fgeIdbaaaHydbgKcx2fgOIdbg8P:tgIaaaHcwfydbgLcx2fgCIdlaOIdlg8R:tg8SNaCIdba8P:tgRaeIdla8R:tg8UN:tg8Va8VNa8UaCIdwaOIdwg8W:tg8XNa8SaeIdwa8W:tg8UN:tg8Sa8SNa8UaRNa8XaIN:tgIaINMM:rgRJbbbb9ETmba8VaR:vh8VaIaR:vhIa8SaR:vh8SkaqaQaKcdtfydbc8S2fgea8SaR:rgRa8SNNg8UaeIdbMUdbaeaIaRaINg8YNg8XaeIdlMUdlaea8VaRa8VNg8ZNg80aeIdwMUdwaea8Ya8SNg8YaeIdxMUdxaea8Za8SNg81aeIdzMUdzaea8ZaINg8ZaeIdCMUdCaea8SaRa8Va8WNa8Sa8PNa8RaINMM:mg8RNg8PNg8SaeIdKMUdKaeaIa8PNgIaeId3MUd3aea8Va8PNg8VaeIdaMUdaaea8Pa8RNg8PaeId8KMUd8KaeaRaeIdyMUdyaqaQaYcdtfydbc8S2fgea8UaeIdbMUdbaea8XaeIdlMUdlaea80aeIdwMUdwaea8YaeIdxMUdxaea81aeIdzMUdzaea8ZaeIdCMUdCaea8SaeIdKMUdKaeaIaeId3MUd3aea8VaeIdaMUdaaea8PaeId8KMUd8KaeaRaeIdyMUdyaqaQaLcdtfydbc8S2fgea8UaeIdbMUdbaea8XaeIdlMUdlaea80aeIdwMUdwaea8YaeIdxMUdxaea81aeIdzMUdzaea8ZaeIdCMUdCaea8SaeIdKMUdKaeaIaeId3MUd3aea8VaeIdaMUdaaea8PaeId8KMUd8KaeaRaeIdyMUdyaHcxfhHaAcifgAad6mbkcbhiabhKinabaicdtfhYcbhHinaXaYaHc:G1jjbfydbcdtfydbgOfRbbhedndnaXaKaHfydbgCfRbbgAc99fcFeGcpe0mbaeceSmbaecd9hmekdnaAcufcFeGce0mbahaCcdtfydbaO9hmekdnaecufcFeGce0mbagaOcdtfydbaC9hmekdnaAcv2aefcj1jjbfRbbTmbaQaOcdtfydbaQaCcdtfydb0mekJbbacJbbacJbbjZaeceSEaAceSEh8ZdnaaaYaHc:K1jjbfydbcdtfydbcx2fgeIdwaaaCcx2fgAIdwg8R:tg8VaaaOcx2fgLIdwa8R:tg8Sa8SNaLIdbaAIdbg8W:tgIaINaLIdlaAIdlg8U:tgRaRNMMg8PNa8Va8SNaeIdba8W:tg80aINaRaeIdla8U:tg8YNMMg8Xa8SN:tg8Va8VNa80a8PNa8XaIN:tg8Sa8SNa8Ya8PNa8XaRN:tgIaINMM:rgRJbbbb9ETmba8VaR:vh8VaIaR:vhIa8SaR:vh8SkaqaQaCcdtfydbc8S2fgea8Sa8Za8P:rNgRa8SNNg8XaeIdbMUdbaeaIaRaINg8ZNg80aeIdlMUdlaea8VaRa8VNg8PNg8YaeIdwMUdwaea8Za8SNg8ZaeIdxMUdxaea8Pa8SNg81aeIdzMUdzaea8PaINgBaeIdCMUdCaea8SaRa8Va8RNa8Sa8WNa8UaINMM:mg8RNg8PNg8SaeIdKMUdKaeaIa8PNgIaeId3MUd3aea8Va8PNg8VaeIdaMUdaaea8Pa8RNg8PaeId8KMUd8KaeaRaeIdyMUdyaqaQaOcdtfydbc8S2fgea8XaeIdbMUdbaea80aeIdlMUdlaea8YaeIdwMUdwaea8ZaeIdxMUdxaea81aeIdzMUdzaeaBaeIdCMUdCaea8SaeIdKMUdKaeaIaeId3MUd3aea8VaeIdaMUdaaea8PaeId8KMUd8KaeaRaeIdyMUdykaHclfgHcx9hmbkaKcxfhKaicifgiad6mbkdna8JTmbcbhKinJbbbbh8WaaabaKcdtfgeclfydbgLcx2fgHIdwaaaeydbgicx2fgOIdwg8Y:tgIaINaHIdbaOIdbg81:tg8Va8VNaHIdlaOIdlgB:tgRaRNMMg8Zaaaecwfydbg8Fcx2fgeIdwa8Y:tg8PNaIaIa8PNa8VaeIdba81:tg8RNaRaeIdlaB:tg8UNMMg8SN:tJbbbbJbbjZa8Za8Pa8PNa8Ra8RNa8Ua8UNMMg80Na8Sa8SN:tg8X:va8XJbbbb9BEg8XNh83a80aINa8Pa8SN:ta8XNhUa8Za8UNaRa8SN:ta8XNh85a80aRNa8Ua8SN:ta8XNh86a8Za8RNa8Va8SN:ta8XNh87a80a8VNa8Ra8SN:ta8XNh88a8Va8UNa8RaRN:tg8Sa8SNaRa8PNa8UaIN:tg8Sa8SNaIa8RNa8Pa8VN:tg8Sa8SNMM:rJbbbZNh8Sayaia8J2g3cdtfhHaya8Fa8J2gwcdtfhOayaLa8J2g8LcdtfhCa8Y:mh89aB:mh8:a81:mhZcbhAa8JhYJbbbbh8UJbbbbh8XJbbbbh8ZJbbbbh80Jbbbbh8YJbbbbh81JbbbbhBJbbbbhnJbbbbhcinasc;WbfaAfgecwfa8SaUaCIdbaHIdbg8P:tgRNa83aOIdba8P:tg8RNMgINUdbaeclfa8Sa86aRNa85a8RNMg8VNUdbaea8Sa88aRNa87a8RNMgRNUdbaecxfa8Sa89aINa8:a8VNa8PaZaRNMMMg8PNUdba8SaIa8VNNa80Mh80a8SaIaRNNa8YMh8Ya8Sa8VaRNNa81Mh81a8Sa8Pa8PNNa8WMh8Wa8SaIa8PNNa8UMh8Ua8Sa8Va8PNNa8XMh8Xa8SaRa8PNNa8ZMh8Za8SaIaINNaBMhBa8Sa8Va8VNNanMhna8SaRaRNNacMhcaHclfhHaCclfhCaOclfhOaAczfhAaYcufgYmbkavaic8S2fgeacaeIdbMUdbaeanaeIdlMUdlaeaBaeIdwMUdwaea81aeIdxMUdxaea8YaeIdzMUdzaea80aeIdCMUdCaea8ZaeIdKMUdKaea8XaeId3MUd3aea8UaeIdaMUdaaea8WaeId8KMUd8Kaea8SaeIdyMUdyavaLc8S2fgeacaeIdbMUdbaeanaeIdlMUdlaeaBaeIdwMUdwaea81aeIdxMUdxaea8YaeIdzMUdzaea80aeIdCMUdCaea8ZaeIdKMUdKaea8XaeId3MUd3aea8UaeIdaMUdaaea8WaeId8KMUd8Kaea8SaeIdyMUdyava8Fc8S2fgeacaeIdbMUdbaeanaeIdlMUdlaeaBaeIdwMUdwaea81aeIdxMUdxaea8YaeIdzMUdzaea80aeIdCMUdCaea8ZaeIdKMUdKaea8XaeId3MUd3aea8UaeIdaMUdaaea8WaeId8KMUd8Kaea8SaeIdyMUdyara3cltfhYcbhHa8JhCinaYaHfgeasc;WbfaHfgOIdbaeIdbMUdbaeclfgAaOclfIdbaAIdbMUdbaecwfgAaOcwfIdbaAIdbMUdbaecxfgeaOcxfIdbaeIdbMUdbaHczfhHaCcufgCmbkara8LcltfhYcbhHa8JhCinaYaHfgeasc;WbfaHfgOIdbaeIdbMUdbaeclfgAaOclfIdbaAIdbMUdbaecwfgAaOcwfIdbaAIdbMUdbaecxfgeaOcxfIdbaeIdbMUdbaHczfhHaCcufgCmbkarawcltfhYcbhHa8JhCinaYaHfgeasc;WbfaHfgOIdbaeIdbMUdbaeclfgAaOclfIdbaAIdbMUdbaecwfgAaOcwfIdbaAIdbMUdbaecxfgeaOcxfIdbaeIdbMUdbaHczfhHaCcufgCmbkaKcifgKad6mbkkcbhOxekcehOcbhrkcbh8FdndnamcwGg9cmbJbbbbh8ZcbhJcbhocbhCxekcbhea5cbyd;S1jjbHjjjjbbhCascxfasyd2gHcdtfaCBdbasaHcefBd2dnalTmbaChHinaHaeBdbaHclfhHalaecefge9hmbkkdnaOmbcbhiinabaicdtfhLcbhKinaQaLaKcdtgec:G1jjbfydbcdtfydbcdtfydbhHdnaCaQaLaefydbcdtfydbgOcdtfgAydbgeaOSmbinaAaCaegOcdtfgYydbgeBdbaYhAaOae9hmbkkdnaCaHcdtfgAydbgeaHSmbinaAaCaegHcdtfgYydbgeBdbaYhAaHae9hmbkkdnaOaHSmbaCaOaHaOaH0EcdtfaOaHaOaH6EBdbkaKcefgKci9hmbkaicifgiad6mbkkcbhJdnalTmbcbhYindnaQaYcdtgefydbaY9hmbaYhHdnaCaefgKydbgeaYSmbaKhOinaOaCaegHcdtfgAydbgeBdbaAhOaHae9hmbkkaKaHBdbkaYcefgYal9hmbkcbheaQhOaChHcbhJindndnaeaOydbgA9hmbdnaeaHydbgA9hmbaHaJBdbaJcefhJxdkaHaCaAcdtfydbBdbxekaHaCaAcdtfydbBdbkaOclfhOaHclfhHalaecefge9hmbkkcuaJcltgeaJcjjjjiGEcbyd;S1jjbHjjjjbbhoascxfasyd2gHcdtfaoBdbasaHcefBd2aocbaez:ljjjbhAdnalTmbaChOaahealhYinaecwfIdbh8SaeclfIdbhIaAaOydbcltfgHaeIdbaHIdbMUdbaHclfgKaIaKIdbMUdbaHcwfgKa8SaKIdbMUdbaHcxfgHaHIdbJbbjZMUdbaOclfhOaecxfheaYcufgYmbkkdnaJTmbaAheaJhHinaecxfgOIdbh8SaOcbBdbaeaeIdbJbbbbJbbjZa8S:va8SJbbbb9BEg8SNUdbaeclfgOa8SaOIdbNUdbaecwfgOa8SaOIdbNUdbaeczfheaHcufgHmbkkdnalTmbaChOaahealhYinaAaOydbcltfgHcxfgKaecwfIdbaHcwfIdb:tg8Sa8SNaeIdbaHIdb:tg8Sa8SNaeclfIdbaHclfIdb:tg8Sa8SNMMg8SaKIdbgIaIa8S9DEUdbaOclfhOaecxfheaYcufgYmbkkdnaJmbcbhJJFFuuh8ZxekaAcxfheaAhHaJhOinaHaeIdbUdbaeczfheaHclfhHaOcufgOmbkJFFuuh8ZaAheaJhHinaeIdbg8Sa8Za8Za8S9EEh8ZaeclfheaHcufgHmbkkasydlh9ednalTmba9eclfhea9eydbhAaXhHalhYcbhOincbaeydbgKaA9RaHRbbcpeGEaOfhOaHcefhHaeclfheaKhAaYcufgYmbkaOce4h8Fkcuada8F9RcifgTcx2aTc;v:Q;v:Qe0Ecbyd;S1jjbHjjjjbbhDascxfasyd2gecdtfaDBdbasaecefBd2cuaTcdtaTcFFFFi0Ecbyd;S1jjbHjjjjbbhSascxfasyd2gecdtfaSBdbasaecefBd2a5cbyd;S1jjbHjjjjbbh8Mascxfasyd2gecdtfa8MBdbasaecefBd2alcbyd;S1jjbHjjjjbbh9hascxfasyd2gecdtfa9hBdbasaecefBd2axaxNa8NJbbjZamclGEg83a83N:vhcJbbbbhndnadak9nmbdnaTci6mba8Jclth9iaDcwfh6JbbbbhBJbbbbhninasclfabadalaQz:cjjjbabh8FcbhEcbh5inaba5cdtfh3cbheindnaQa8FaefydbgOcdtgifydbgYaQa3aec:W1jjbfydbcdtfydbgHcdtgwfydbgKSmbaXaHfRbbgLcv2aXaOfRbbgAfc;a1jjbfRbbg8AaAcv2aLfg8Lc;a1jjbfRbbg8KVcFeGTmbdnaKaY9nmba8Lcj1jjbfRbbcFeGmekaAcufhYdnaAaL9hmbaYcFeGce0mbahaifydbaH9hmekdndnaAclSmbaLcl9hmekdnaYcFeGce0mbahaifydbaH9hmdkaLcufcFeGce0mbagawfydbaO9hmekaDaEcx2fgAaHaOa8KcFeGgYEBdlaAaOaHaYEBdbaAaYa8AGcb9hBdwaEcefhEkaeclfgecx9hmbkdna5cifg5ad9pmba8Fcxfh8FaEcifaT9nmekkaETmdcbhiinJbbbbJbbjZaqaQaDaicx2fgAydlgKaAydbgYaAydwgHEgLcdtfydbc8S2fgeIdyg8S:va8SJbbbb9BEaeIdwaaaYaKaHEg8Fcx2fgHIdwgRNaeIdzaHIdbg8PNaeIdaMg8Sa8SMMaRNaeIdlaHIdlg8RNaeIdCaRNaeId3Mg8Sa8SMMa8RNaeIdba8PNaeIdxa8RNaeIdKMg8Sa8SMMa8PNaeId8KMMM:lNh80JbbbbJbbjZaqaQaYcdtfydbc8S2fgeIdyg8S:va8SJbbbb9BEaeIdwaaaKcx2fgHIdwg8VNaeIdzaHIdbg8WNaeIdaMg8Sa8SMMa8VNaeIdlaHIdlg8UNaeIdCa8VNaeId3Mg8Sa8SMMa8UNaeIdba8WNaeIdxa8UNaeIdKMg8Sa8SMMa8WNaeId8KMMM:lNh8YaAcwfh3aAclfhwdna8JTmbavaYc8S2fgOIdwa8VNaOIdza8WNaOIdaMg8Sa8SMMa8VNaOIdla8UNaOIdCa8VNaOId3Mg8Sa8SMMa8UNaOIdba8WNaOIdxa8UNaOIdKMg8Sa8SMMa8WNaOId8KMMMh8SayaKa8J2cdtfhHaraYa8J2cltfheaOIdyh8Xa8JhOinaHIdbgIaIa8XNaecxfIdba8VaecwfIdbNa8WaeIdbNa8UaeclfIdbNMMMgIaIM:tNa8SMh8SaHclfhHaeczfheaOcufgOmbkavaLc8S2fgOIdwaRNaOIdza8PNaOIdaMgIaIMMaRNaOIdla8RNaOIdCaRNaOId3MgIaIMMa8RNaOIdba8PNaOIdxa8RNaOIdKMgIaIMMa8PNaOId8KMMMhIaya8Fa8J2cdtfhHaraLa8J2cltfheaOIdyh8Wa8JhOinaHIdbg8Va8Va8WNaecxfIdbaRaecwfIdbNa8PaeIdbNa8RaeclfIdbNMMMg8Va8VM:tNaIMhIaHclfhHaeczfheaOcufgOmbka80aI:lMh80a8Ya8S:lMh8YkawaKa8Fa8Ya809FgeEBdbaAaYaLaeEBdba3a8Ya80aeEUdbaicefgiaE9hmbkasc;Wbfcbcj;qbz:ljjjb8Aa6heaEhHinasc;WbfaeydbcA4cF8FGgOcFAaOcFA6EcdtfgOaOydbcefBdbaecxfheaHcufgHmbkcbhecbhHinasc;WbfaefgOydbhAaOaHBdbaAaHfhHaeclfgecj;qb9hmbkcbhea6hHinasc;WbfaHydbcA4cF8FGgOcFAaOcFA6EcdtfgOaOydbgOcefBdbaSaOcdtfaeBdbaHcxfhHaEaecefge9hmbkadak9RgOci9Uh9kdnalTmbcbhea8MhHinaHaeBdbaHclfhHalaecefge9hmbkkcbh0a9hcbalz:ljjjbh9maOcO9Uh9na9kce4h9oasydwh9pcbh8KcbhwdninaDaSawcdtfydbcx2fg3Idwg8Sac9Emea8Ka9k9pmeJFFuuhIdna9oaE9pmbaDaSa9ocdtfydbcx2fIdwJbb;aZNhIkdna8SaI9ETmba8San9ETmba8Ka9n0mdkdna9maQa3ydlgicdtg9qfydbgAfg9rRbba9maQa3ydbgLcdtg9sfydbgHfg9tRbbVmbaXaLfRbbh9udna9eaHcdtfgeclfydbgOaeydbgeSmbaOae9RhKa9paecitfheaaaAcx2fg8Lcwfh5a8Lclfh9vaaaHcx2fg8Acwfh9wa8Aclfh9xcbhHceh8Fdnindna8MaeydbcdtfydbgOaASmba8MaeclfydbcdtfydbgYaASmbaOaYSmbaaaYcx2fgYIdbaaaOcx2fgOIdbg8V:tg8Sa9xIdbaOIdlgR:tg8WNa8AIdba8V:tg8UaYIdlaR:tgIN:tg8Pa8Sa9vIdbaR:tg8XNa8LIdba8V:tg80aIN:tgRNaIa9wIdbaOIdwg8R:tg8YNa8WaYIdwa8R:tg8VN:tg8WaIa5Idba8R:tg81Na8Xa8VN:tgINa8Va8UNa8Ya8SN:tg8Ra8Va80Na81a8SN:tg8SNMMa8Pa8PNa8Wa8WNa8Ra8RNMMaRaRNaIaINa8Sa8SNMMN:rJbbj8:N9FmdkaecwfheaHcefgHaK6h8FaKaH9hmbkka8FceGTmba9ocefh9oxeka3cwfhHdndndndna9uc9:fPdebdkaLheina8MaecdtgefaiBdba8EaefydbgeaL9hmbxikkdnagahaha9sfydbaiSEa8Ea9sfydbgLcdtfydbgecu9hmba8Ea9qfydbheka8Ma9sfaiBdbaehika8MaLcdtfaiBdbka9tce86bba9rce86bbaHIdbg8Sanana8S9DEhna0cefh0cecda9uceSEa8Kfh8KkawcefgwaE9hmbkka0TmddnalTmbcbhKcbhiindna8MaicdtgefydbgOaiSmbaQaOcdtfydbh8FdnaiaQaefydb9hg3mbaqa8Fc8S2fgeaqaic8S2fgHIdbaeIdbMUdbaeaHIdlaeIdlMUdlaeaHIdwaeIdwMUdwaeaHIdxaeIdxMUdxaeaHIdzaeIdzMUdzaeaHIdCaeIdCMUdCaeaHIdKaeIdKMUdKaeaHId3aeId3MUd3aeaHIdaaeIdaMUdaaeaHId8KaeId8KMUd8KaeaHIdyaeIdyMUdyka8JTmbavaOc8S2fgeavaic8S2gwfgHIdbaeIdbMUdbaeaHIdlaeIdlMUdlaeaHIdwaeIdwMUdwaeaHIdxaeIdxMUdxaeaHIdzaeIdzMUdzaeaHIdCaeIdCMUdCaeaHIdKaeIdKMUdKaeaHId3aeId3MUd3aeaHIdaaeIdaMUdaaeaHId8KaeId8KMUd8KaeaHIdyaeIdyMUdya9iaO2hLarhHa8JhAinaHaLfgeaHaKfgOIdbaeIdbMUdbaeclfgYaOclfIdbaYIdbMUdbaecwfgYaOcwfIdbaYIdbMUdbaecxfgeaOcxfIdbaeIdbMUdbaHczfhHaAcufgAmbka3mbJbbbbJbbjZaqawfgeIdyg8S:va8SJbbbb9BEaeIdwaaa8Fcx2fgHIdwg8SNaeIdzaHIdbgINaeIdaMg8Va8VMMa8SNaeIdlaHIdlg8VNaeIdCa8SNaeId3Mg8Sa8SMMa8VNaeIdbaINaeIdxa8VNaeIdKMg8Sa8SMMaINaeId8KMMM:lNg8SaBaBa8S9DEhBkaKa9ifhKaicefgial9hmbkcbhHahheindnaeydbgOcuSmbdnaHa8MaOcdtgAfydbgO9hmbcuhOahaAfydbgAcuSmba8MaAcdtfydbhOkaeaOBdbkaeclfhealaHcefgH9hmbkcbhHagheindnaeydbgOcuSmbdnaHa8MaOcdtgAfydbgO9hmbcuhOagaAfydbgAcuSmba8MaAcdtfydbhOkaeaOBdbkaeclfhealaHcefgH9hmbkkaBana8JEhBcbhYabhecbhKindna8MaeydbcdtfydbgHa8MaeclfydbcdtfydbgOSmbaHa8MaecwfydbcdtfydbgASmbaOaASmbabaYcdtfgLaHBdbaLcwfaABdbaLclfaOBdbaYcifhYkaecxfheaKcifgKad6mbkdndna9cTmbaYak9nmba8ZaB9FTmbcbhdabhecbhHindnaoaCaeydbgOcdtfydbcdtfIdbaB9ETmbabadcdtfgAaOBdbaAclfaeclfydbBdbaAcwfaecwfydbBdbadcifhdkaecxfheaHcifgHaY6mbkJFFuuh8ZaJTmeaoheaJhHJFFuuh8SinaeIdbgIa8Sa8SaI9EEg8Va8SaIaB9EgOEh8Sa8Va8ZaOEh8ZaeclfheaHcufgHmbxdkkaYhdkadak0mbxdkkasclfabadalaQz:cjjjbkdndnadak0mbadhOxekdna9cmbadhOxekdna8Zac9FmbadhOxekina8ZJbb;aZNg8Saca8Sac9DEh8VJbbbbh8SdnaJTmbaoheaJhHinaeIdbgIa8SaIa8V9FEa8SaIa8S9EEh8SaeclfheaHcufgHmbkkcbhOabhecbhHindnaoaCaeydbgAcdtfydbcdtfIdba8V9ETmbabaOcdtfgYaABdbaYclfaeclfydbBdbaYcwfaecwfydbBdbaOcifhOkaecxfheaHcifgHad6mbkJFFuuh8ZdnaJTmbaoheaJhHJFFuuhIinaeIdbgRaIaIaR9EEg8PaIaRa8V9EgAEhIa8Pa8ZaAEh8ZaeclfheaHcufgHmbkkdnaOad9hmbadhOxdka8Sanana8S9DEhnaOak9nmeaOhda8Zac9FmbkkdnamcjjjjlGTmbazmbaOTmbcbhQabheinaXaeydbgAfRbbc3thKaecwfgLydbhHdndnahaAcdtg8FfydbaeclfgiydbgCSmbcbhYagaCcdtfydbaA9hmekcjjjj94hYkaeaKaYVaAVBdbaXaCfRbbc3thKdndnahaCcdtfydbaHSmbcbhYagaHcdtfydbaC9hmekcjjjj94hYkaiaKaYVaCVBdbaXaHfRbbc3thYdndnahaHcdtfydbaASmbcbhCaga8FfydbaH9hmekcjjjj94hCkaLaYaCVaHVBdbaecxfheaQcifgQaO6mbkkdnazTmbaOTmbaOheinabazabydbcdtfydbBdbabclfhbaecufgembkkdnaPTmbaPa83an:rNUdbkasyd2gecdtascxffc98fhHdninaeTmeaHydbcbyd;O1jjbH:bjjjbbaHc98fhHaecufhexbkkasc;W;qbf8KjjjjbaOk;Yieouabydlhvabydbclfcbaicdtz:ljjjbhoadci9UhrdnadTmbdnalTmbaehwadhDinaoalawydbcdtfydbcdtfgqaqydbcefBdbawclfhwaDcufgDmbxdkkaehwadhDinaoawydbcdtfgqaqydbcefBdbawclfhwaDcufgDmbkkdnaiTmbcbhDaohwinawydbhqawaDBdbawclfhwaqaDfhDaicufgimbkkdnadci6mbinaecwfydbhwaeclfydbhDaeydbhidnalTmbalawcdtfydbhwalaDcdtfydbhDalaicdtfydbhikavaoaicdtfgqydbcitfaDBdbavaqydbcitfawBdlaqaqydbcefBdbavaoaDcdtfgqydbcitfawBdbavaqydbcitfaiBdlaqaqydbcefBdbavaoawcdtfgwydbcitfaiBdbavawydbcitfaDBdlawawydbcefBdbaecxfhearcufgrmbkkabydbcbBdbk;Podvuv998Jjjjjbca9RgvcFFF;7rBd3av9cFFF;7;3FF:;Fb83dCavcFFF97Bdzav9cFFF;7FFF:;u83dwdnadTmbaicd4hodnabmbdnalTmbcbhrinaealarcdtfydbao2cdtfhwcbhiinavcCfaifgDawaifIdbgqaDIdbgkakaq9EEUdbavcwfaifgDaqaDIdbgkakaq9DEUdbaiclfgicx9hmbkarcefgrad9hmbxikkaocdthrcbhwincbhiinavcCfaifgDaeaifIdbgqaDIdbgkakaq9EEUdbavcwfaifgDaqaDIdbgkakaq9DEUdbaiclfgicx9hmbkaearfheawcefgwad9hmbxdkkdnalTmbcbhrinabarcx2fgiaealarcdtfydbao2cdtfgwIdbUdbaiawIdlUdlaiawIdwUdwcbhiinavcCfaifgDawaifIdbgqaDIdbgkakaq9EEUdbavcwfaifgDaqaDIdbgkakaq9DEUdbaiclfgicx9hmbkarcefgrad9hmbxdkkaocdthlcbhraehwinabarcx2fgiaearao2cdtfgDIdbUdbaiaDIdlUdlaiaDIdwUdwcbhiinavcCfaifgDawaifIdbgqaDIdbgkakaq9EEUdbavcwfaifgDaqaDIdbgkakaq9DEUdbaiclfgicx9hmbkawalfhwarcefgrad9hmbkkJbbbbavIdwavIdCgk:tgqaqJbbbb9DEgqavIdxavIdKgx:tgmamaq9DEgqavIdzavId3gm:tgPaPaq9DEhPdnabTmbadTmbJbbbbJbbjZaP:vaPJbbbb9BEhqinabaqabIdbak:tNUdbabclfgvaqavIdbax:tNUdbabcwfgvaqavIdbam:tNUdbabcxfhbadcufgdmbkkaPk8MbabaeadaialavcbcbcbcbcbaoarawaDz:bjjjbk8MbabaeadaialavaoarawaDaqakaxamaPz:bjjjbk:nCoDud99rue99lul998Jjjjjbc;Wb9Rgw8KjjjjbdndnarmbcbhDxekawcxfcbc;Kbz:ljjjb8Aawcuadcx2adc;v:Q;v:Qe0Ecbyd;S1jjbHjjjjbbgqBdxawceBd2aqaeadaicbz:djjjb8AawcuadcdtadcFFFFi0Egkcbyd;S1jjbHjjjjbbgxBdzawcdBd2adcd4adfhmceheinaegicetheaiam6mbkcbhPawcuaicdtgsaicFFFFi0Ecbyd;S1jjbHjjjjbbgzBdCawciBd2dndnar:ZgH:rJbbbZMgO:lJbbb9p9DTmbaO:Ohexekcjjjj94hekaicufhAc:bwhmcbhCadhXcbhQinaChLaeamgKcufaeaK9iEaPgDcefaeaD9kEhYdndnadTmbaYcuf:YhOaqhiaxheadhmindndnaiIdbaONJbbbZMg8A:lJbbb9p9DTmba8A:OhCxekcjjjj94hCkaCcCthCdndnaiclfIdbaONJbbbZMg8A:lJbbb9p9DTmba8A:OhExekcjjjj94hEkaEcqtaCVhCdndnaicwfIdbaONJbbbZMg8A:lJbbb9p9DTmba8A:OhExekcjjjj94hEkaeaCaEVBdbaicxfhiaeclfheamcufgmmbkazcFeasz:ljjjbh3cbh5cbh8Eindna3axa8EcdtfydbgCcm4aC7c:v;t;h;Ev2gics4ai7aAGgmcdtfgEydbgecuSmbaeaCSmbcehiina3amaifaAGgmcdtfgEydbgecuSmeaicefhiaeaC9hmbkkaEaCBdba5aecuSfh5a8Ecefg8Ead9hmbxdkkazcFeasz:ljjjb8Acbh5kaDaYa5ar0giEhPaLa5aiEhCdna5arSmbaYaKaiEgmaP9Rcd9imbdndnaQcl0mbdnaX:ZgOaL:Zg8A:taY:Yg8FaD:Y:tgaa8FaK:Y:tgha5:ZggaH:tNNNaOaH:tahNa8Aag:tNa8AaH:taaNagaO:tNM:va8FMJbbbZMgO:lJbbb9p9DTmbaO:Ohexdkcjjjj94hexekaPamfcd9Theka5aXaiEhXaQcefgQcs9hmekkdndnaCmbcihicbhDxekcbhiawakcbyd;S1jjbHjjjjbbg8EBdKawclBd2aPcuf:Yh8AdndnadTmbaqhiaxheadhmindndnaiIdba8ANJbbbZMgO:lJbbb9p9DTmbaO:OhCxekcjjjj94hCkaCcCthCdndnaiclfIdba8ANJbbbZMgO:lJbbb9p9DTmbaO:OhExekcjjjj94hEkaEcqtaCVhCdndnaicwfIdba8ANJbbbZMgO:lJbbb9p9DTmbaO:OhExekcjjjj94hEkaeaCaEVBdbaicxfhiaeclfheamcufgmmbkazcFeasz:ljjjbh3cbhDcbh5inaxa5cdtgYfydbgCcm4aC7c:v;t;h;Ev2gics4ai7hecbhidndnina3aeaAGgmcdtfgEydbgecuSmednaxaecdtgEfydbaCSmbaicefgiamfheaiaA9nmekka8EaEfydbhixekaEa5BdbaDhiaDcefhDka8EaYfaiBdba5cefg5ad9hmbkcuaDc32giaDc;j:KM;jb0EhexekazcFeasz:ljjjb8AcbhDcbhekawaecbyd;S1jjbHjjjjbbgeBd3awcvBd2aecbaiz:ljjjbhEavcd4hxdnadTmbdnalTmbaxcdth3a8EhCalheaqhmadhAinaEaCydbc32fgiamIdbaiIdbMUdbaiamclfIdbaiIdlMUdlaiamcwfIdbaiIdwMUdwaiaeIdbaiIdxMUdxaiaeclfIdbaiIdzMUdzaiaecwfIdbaiIdCMUdCaiaiIdKJbbjZMUdKaCclfhCaea3fheamcxfhmaAcufgAmbxdkka8EhmaqheadhCinaEamydbc32fgiaeIdbaiIdbMUdbaiaeclfIdbaiIdlMUdlaiaecwfIdbaiIdwMUdwaiaiIdxJbbbbMUdxaiaiIdzJbbbbMUdzaiaiIdCJbbbbMUdCaiaiIdKJbbjZMUdKamclfhmaecxfheaCcufgCmbkkdnaDTmbaEhiaDheinaiaiIdbJbbbbJbbjZaicKfIdbgO:vaOJbbbb9BEgONUdbaiclfgmaOamIdbNUdbaicwfgmaOamIdbNUdbaicxfgmaOamIdbNUdbaiczfgmaOamIdbNUdbaicCfgmaOamIdbNUdbaic3fhiaecufgembkkcbhCawcuaDcdtgYaDcFFFFi0Egicbyd;S1jjbHjjjjbbgeBdaawcoBd2awaicbyd;S1jjbHjjjjbbg3Bd8KaecFeaYz:ljjjbh5dnadTmbJbbjZJbbjZa8A:vaPceSEaoNgOaONh8Aaxcdthxalheina8Aaec;C1jjbalEgmIdwaEa8EydbgAc32fgiIdC:tgOaONamIdbaiIdx:tgOaONamIdlaiIdz:tgOaONMMNaqcwfIdbaiIdw:tgOaONaqIdbaiIdb:tgOaONaqclfIdbaiIdl:tgOaONMMMhOdndna5aAcdtgifgmydbcuSmba3aifIdbaO9ETmekamaCBdba3aifaOUdbka8Eclfh8EaeaxfheaqcxfhqadaCcefgC9hmbkkaba5aYz:kjjjb8AcrhikaicdthiinaiTmeaic98fgiawcxffydbcbyd;O1jjbH:bjjjbbxbkkawc;Wbf8KjjjjbaDk:Odieui99iu8Jjjjjbca9RgicFFF;7rBd3ai9cFFF;7;3FF:;Fb83dCaicFFF97Bdzai9cFFF;7FFF:;u83dwdndnaembJbbjFhlJbbjFhvJbbjFhoxekadcd4cdthrcbhwincbhdinaicCfadfgDabadfIdbglaDIdbgvaval9EEUdbaicwfadfgDalaDIdbgvaval9DEUdbadclfgdcx9hmbkabarfhbawcefgwae9hmbkaiIdzaiId3:thoaiIdxaiIdK:thvaiIdwaiIdC:thlkJbbbbalalJbbbb9DEglavaval9DEglaoaoal9DEk9DeeuabcFeaicdtz:ljjjbhlcbhbdnadTmbindnalaeydbcdtfgiydbcu9hmbaiabBdbabcefhbkaeclfheadcufgdmbkkabk9teiucbcbyd;W1jjbgeabcifc98GfgbBd;W1jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik;LeeeudndnaeabVciGTmbabhixekdndnadcz9pmbabhixekabhiinaiaeydbBdbaiclfaeclfydbBdbaicwfaecwfydbBdbaicxfaecxfydbBdbaeczfheaiczfhiadc9Wfgdcs0mbkkadcl6mbinaiaeydbBdbaeclfheaiclfhiadc98fgdci0mbkkdnadTmbinaiaeRbb86bbaicefhiaecefheadcufgdmbkkabk;aeedudndnabciGTmbabhixekaecFeGc:b:c:ew2hldndnadcz9pmbabhixekabhiinaialBdbaicxfalBdbaicwfalBdbaiclfalBdbaiczfhiadc9Wfgdcs0mbkkadcl6mbinaialBdbaiclfhiadc98fgdci0mbkkdnadTmbinaiae86bbaicefhiadcufgdmbkkabk9teiucbcbyd;W1jjbgeabcrfc94GfgbBd;W1jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik9:eiuZbhedndncbyd;W1jjbgdaecztgi9nmbcuheadai9RcFFifcz4nbcuSmekadhekcbabae9Rcifc98Gcbyd;W1jjbfgdBd;W1jjbdnadZbcztge9nmbadae9RcFFifcz4nb8Akk6eiucbhidnadTmbdninabRbbglaeRbbgv9hmeaecefheabcefhbadcufgdmbxdkkalav9Rhikaikk:bedbcjwk9Oeeebeebebbeeebebbbbbebebbbbbbbbbebbbdbbbbbbbebbbebbbdbbbbbbbbbbbeeeeebebbebbebebbbeebbbbbbbbbbbbbbbbbbbbbc;OwkxebbbdbbbjNbb",J=new Uint8Array([32,0,65,2,1,106,34,33,3,128,11,4,13,64,6,253,10,7,15,116,127,5,8,12,40,16,19,54,20,9,27,255,113,17,42,67,24,23,146,148,18,14,22,45,70,69,56,114,101,21,25,63,75,136,108,28,118,29,73,115]);if(typeof WebAssembly!=="object")return{supported:!1};var X,Y=WebAssembly.instantiate($(Z),{}).then(function(U){X=U.instance,X.exports.__wasm_call_ctors()});function $(U){var w=new Uint8Array(U.length);for(var L=0;L<U.length;++L){var j=U.charCodeAt(L);w[L]=j>96?j-97:j>64?j-39:j+4}var R=0;for(var L=0;L<U.length;++L)w[R++]=w[L]<60?J[w[L]]:(w[L]-60)*64+w[++L];return w.buffer.slice(0,R)}function Q(U){if(!U)throw new Error("Assertion failed")}function K(U){return new Uint8Array(U.buffer,U.byteOffset,U.byteLength)}function W(U,w,L){var j=X.exports.sbrk,R=j(w.length*4),O=j(L*4),N=new Uint8Array(X.exports.memory.buffer),D=K(w);N.set(D,R);var P=U(O,R,w.length,L);N=new Uint8Array(X.exports.memory.buffer);var C=new Uint32Array(L);new Uint8Array(C.buffer).set(N.subarray(O,O+L*4)),D.set(N.subarray(R,R+w.length*4)),j(R-j(0));for(var T=0;T<w.length;++T)w[T]=C[w[T]];return[C,P]}function G(U){var w=0;for(var L=0;L<U.length;++L){var j=U[L];w=w<j?j:w}return w}function z(U,w,L,j,R,O,N,D,P){var C=X.exports.sbrk,T=C(4),k=C(L*4),A=C(R*O),S=C(L*4),x=new Uint8Array(X.exports.memory.buffer);x.set(K(j),A),x.set(K(w),S);var I=U(k,S,L,A,R,O,N,D,P,T);x=new Uint8Array(X.exports.memory.buffer);var v=new Uint32Array(I);K(v).set(x.subarray(k,k+I*4));var f=new Float32Array(1);return K(f).set(x.subarray(T,T+4)),C(T-C(0)),[v,f[0]]}function V(U,w,L,j,R,O,N,D,P,C,T,k,A){var S=X.exports.sbrk,x=S(4),I=S(L*4),v=S(R*O),f=S(R*D),p=S(P.length*4),n=S(L*4),o=C?S(R):0,J0=new Uint8Array(X.exports.memory.buffer);if(J0.set(K(j),v),J0.set(K(N),f),J0.set(K(P),p),J0.set(K(w),n),C)J0.set(K(C),o);var Q0=U(I,n,L,v,R,O,f,D,p,P.length,o,T,k,A,x);J0=new Uint8Array(X.exports.memory.buffer);var T0=new Uint32Array(Q0);K(T0).set(J0.subarray(I,I+Q0*4));var k0=new Float32Array(1);return K(k0).set(J0.subarray(x,x+4)),S(x-S(0)),[T0,k0[0]]}function H(U,w,L,j){var R=X.exports.sbrk,O=R(L*j),N=new Uint8Array(X.exports.memory.buffer);N.set(K(w),O);var D=U(O,L,j);return R(O-R(0)),D}function q(U,w,L,j,R,O,N,D){var P=X.exports.sbrk,C=P(D*4),T=P(L*j),k=P(L*O),A=new Uint8Array(X.exports.memory.buffer);if(A.set(K(w),T),R)A.set(K(R),k);var S=U(C,T,L,j,k,O,N,D);A=new Uint8Array(X.exports.memory.buffer);var x=new Uint32Array(S);return K(x).set(A.subarray(C,C+S*4)),P(C-P(0)),x}var F={LockBorder:1,Sparse:2,ErrorAbsolute:4,Prune:8,_InternalDebug:1073741824};return{ready:Y,supported:!0,useExperimentalFeatures:!1,compactMesh:function(U){Q(U instanceof Uint32Array||U instanceof Int32Array||U instanceof Uint16Array||U instanceof Int16Array),Q(U.length%3==0);var w=U.BYTES_PER_ELEMENT==4?U:new Uint32Array(U);return W(X.exports.meshopt_optimizeVertexFetchRemap,w,G(U)+1)},simplify:function(U,w,L,j,R,O){Q(U instanceof Uint32Array||U instanceof Int32Array||U instanceof Uint16Array||U instanceof Int16Array),Q(U.length%3==0),Q(w instanceof Float32Array),Q(w.length%L==0),Q(L>=3),Q(j>=0&&j<=U.length),Q(j%3==0),Q(R>=0);var N=0;for(var D=0;D<(O?O.length:0);++D)Q(O[D]in F),Q(this.useExperimentalFeatures||O[D]!="Prune"),N|=F[O[D]];var P=U.BYTES_PER_ELEMENT==4?U:new Uint32Array(U),C=z(X.exports.meshopt_simplify,P,U.length,w,w.length/L,L*4,j,R,N);return C[0]=U instanceof Uint32Array?C[0]:new U.constructor(C[0]),C},simplifyWithAttributes:function(U,w,L,j,R,O,N,D,P,C){Q(this.useExperimentalFeatures),Q(U instanceof Uint32Array||U instanceof Int32Array||U instanceof Uint16Array||U instanceof Int16Array),Q(U.length%3==0),Q(w instanceof Float32Array),Q(w.length%L==0),Q(L>=3),Q(j instanceof Float32Array),Q(j.length%R==0),Q(R>=0),Q(N==null||N instanceof Uint8Array),Q(N==null||N.length==w.length/L),Q(D>=0&&D<=U.length),Q(D%3==0),Q(P>=0),Q(Array.isArray(O)),Q(R>=O.length),Q(O.length<=32);for(var T=0;T<O.length;++T)Q(O[T]>=0);var k=0;for(var T=0;T<(C?C.length:0);++T)Q(C[T]in F),k|=F[C[T]];var A=U.BYTES_PER_ELEMENT==4?U:new Uint32Array(U),S=V(X.exports.meshopt_simplifyWithAttributes,A,U.length,w,w.length/L,L*4,j,R*4,new Float32Array(O),N?new Uint8Array(N):null,D,P,k);return S[0]=U instanceof Uint32Array?S[0]:new U.constructor(S[0]),S},getScale:function(U,w){return Q(U instanceof Float32Array),Q(U.length%w==0),Q(w>=3),H(X.exports.meshopt_simplifyScale,U,U.length/w,w*4)},simplifyPoints:function(U,w,L,j,R,O){if(Q(this.useExperimentalFeatures),Q(U instanceof Float32Array),Q(U.length%w==0),Q(w>=3),Q(L>=0&&L<=U.length/w),j)return Q(j instanceof Float32Array),Q(j.length%R==0),Q(R>=3),Q(U.length/w==j.length/R),q(X.exports.meshopt_simplifyPoints,U,U.length/w,w*4,j,R*4,O,L);else return q(X.exports.meshopt_simplifyPoints,U,U.length/w,w*4,void 0,0,0,L)}}}();var RV6=function(){var Z="b9H79Tebbbefx9Geueu9Geub9Gbb9Giuuueu9Gkuuuuuuuuuu99eu9Gvuuuuueu9Gkuuuuuuuuu9999eu9Gruuuuuuub9Gkuuuuuuuuuuueu9Gouuuuuub9Giuuub9GluuuubiOHdilvorwDqrkbiibeilve9Weiiviebeoweuec:q:Odkr:Yewo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8A9TW79O9V9Wt9F9I919P29K9nW79O2Wt79c9V919U9KbeX9TW79O9V9Wt9F9I919P29K9nW79O2Wt7bd39TW79O9V9Wt9F9J9V9T9W91tWJ2917tWV9c9V919U9K7br39TW79O9V9Wt9F9J9V9T9W91tW9nW79O2Wt9c9V919U9K7bDL9TW79O9V9Wt9F9V9Wt9P9T9P96W9nW79O2Wtbql79IV9RbkDwebcekdsPq;L9kHdbkIbabaec9:fgefcufae9Ugeabci9Uadfcufad9Ugbaeab0Ek:oAlPue99eux998Jjjjjbc:We9Rgk8Kjjjjbakc;mbfcbc;Kbz:njjjb8AakcuaocdtgxaocFFFFi0Egmcbyd:e1jjbHjjjjbbgPBd9makceBd:SeakaPBdnakamcbyd:e1jjbHjjjjbbgsBd9qakcdBd:SeakasBd9eakcualcdtalcFFFFi0Ecbyd:e1jjbHjjjjbbgzBd9uakazBd9iakciBd:SeaPcbaxz:njjjbhHalci9UhOdnalTmbaihPalhAinaHaPydbcdtfgCaCydbcefBdbaPclfhPaAcufgAmbkkdnaoTmbcbhPashAaHhCaohXinaAaPBdbaAclfhAaCydbaPfhPaCclfhCaXcufgXmbkkdnalci6mbcbhPaihAinaAcwfydbhCaAclfydbhXasaAydbcdtfgQaQydbgQcefBdbazaQcdtfaPBdbasaXcdtfgXaXydbgXcefBdbazaXcdtfaPBdbasaCcdtfgCaCydbgCcefBdbazaCcdtfaPBdbaAcxfhAaOaPcefgP9hmbkkdnaoTmbaHhAashPaohCinaPaPydbaAydb9RBdbaAclfhAaPclfhPaCcufgCmbkkakamcbyd:e1jjbHjjjjbbgPBd9yakclBd:SeaPaHaxz:mjjjbhmakaOcbyd:e1jjbHjjjjbbgPBd9CakcvBd:SeaPcbaOz:njjjbhLakcuaOcK2alcjjjjd0Ecbyd:e1jjbHjjjjbbgKBd9GakcoBd:SeJbbbbhYdnalci6g8Ambarcd4hxaihAaKhPaOhrJbbbbhEinavaAclfydbax2cdtfgCIdlh3avaAydbax2cdtfgXIdlhYavaAcwfydbax2cdtfgQIdlh5aCIdwh8EaXIdwh8FaQIdwhaaPaCIdbghaXIdbggMaQIdbg8JMJbbnn:vUdbaPclfaXIdlaCIdlMaQIdlMJbbnn:vUdbaQIdwh8KaCIdwh8LaXIdwh8MaPcxfa3aY:tg3aaa8F:tgaNa5aY:tg5a8Ea8F:tg8EN:tgYJbbbbJbbjZahag:tgha5Na8Jag:tgga3N:tg8Fa8FNaYaYNa8EagNaaahN:tgYaYNMM:rgg:vagJbbbb9BEg3NUdbaPczfaYa3NUdbaPcCfa8Fa3NUdbaPcwfa8Ka8Ma8LMMJbbnn:vUdbaEagMhEaAcxfhAaPcKfhParcufgrmbkaEaO:Z:vJbbbZNhYkakcuaOcdtalcFFFF970Ecbyd:e1jjbHjjjjbbgCBd9KakcrBd:SeaYaD:ZN:rhYdna8AmbcbhPaChAinaAaPBdbaAclfhAaOaPcefgP9hmbkkaYJbbbZNh8MakcuaOcltalcFFFFd0Ecbyd:e1jjbHjjjjbbg8ABd9OakcwBd:Secba8AaKaCaOz:djjjb8Aakaocbyd:e1jjbHjjjjbbgPBd2aPcFeaoz:njjjbhrakc8Wfcwf9cb83ibak9cb83i8WcbhPJbbbbhEJbbbbh5Jbbbbh8EJbbbbhYJbbbbh8FJbbbbhgcbhlinJbbbbh3dnaPTmbJbbjZaP:Z:vh3kaka8Ea3NgaUdaaka5a3NghUd3akaEa3Ng8JUdKJbbbbh3dnagagNaYaYNa8Fa8FNMMg8KJbbbb9BmbJbbjZa8K:r:vh3kakaga3NUd8Saka8Fa3NUdyakaYa3NUd8Kdndndnakyd8WgQakydUgAakcKfaeaiakc;abfaKamara8Maqz:ejjjbgCcuSmbdnaPaD9pmbaAaraiaCcx2fgXydbfRbbcFeSfaraXclfydbfRbbcFeSfaraXcwfydbfRbbcFeSfaw9nmdkaQaAcbaeaiakc;abfaKamara8MJbbbbz:ejjjbgCcu9hmekakaaUdCakahUdzaka8JUdxakcuBdwakcFFF;7rBdla8AcbaKaLakcxfakcwfakclfz:fjjjbakydwgCcuSmekdnakc8WfaiaCcx2fgOydbgPaOclfydbgAaOcwfydbgXarabaeadalawaDz:gjjjbTmbalcefhlJbbbbhEJbbbbh5Jbbbbh8EJbbbbhYJbbbbh8FJbbbbhgkamaPcdtfgPaPydbcufBdbamaAcdtfgPaPydbcufBdbamaXcdtfgPaPydbcufBdbcbhXinazasaOaXcdtfydbcdtgAfydbcdtfgxhPaHaAfgvydbgQhAdnaQTmbdninaPydbaCSmeaPclfhPaAcufgATmdxbkkaPaxaQcdtfc98fydbBdbavavydbcufBdbkaXcefgXci9hmbkaKaCcK2fgPIdbh3aPIdlhaaPIdwhhaPIdxh8JaPIdzh8KaPIdCh8LaLaCfce86bbaga8LMhga8Fa8KMh8FaYa8JMhYa8EahMh8Ea5aaMh5aEa3MhEakyd88hPxekkdnaPTmbdnakyd80gAaPci2fgCciGTmbadaCfcbaPaAcu7fciGcefz:njjjb8AkabalcltfgPak8Pi8W83dbaPcwfakc8Wfcwf8Pib83dbalcefhlkcahPdninaPc98Smeakc;mbfaPfydbcbydj1jjbH:bjjjbbaPc98fhPxbkkakc:Wef8Kjjjjbalk;3vivuv99lu8Jjjjjbca9Rgv8Kjjjjbdndnalcw0mbaiydbhoaeabcitfgralcdtcufBdlaraoBdbdnalcd6mbaiclfhoalcufhwarcxfhrinaoydbhDarcuBdbarc98faDBdbarcwfhraoclfhoawcufgwmbkkalabfhrxekcbhDavczfcwfcbBdbav9cb83izavcwfcbBdbav9cb83ibJbbjZhqJbbjZhkinadaiaDcdtfydbcK2fhwcbhrinavczfarfgoawarfIdbgxaoIdbgm:tgPakNamMgmUdbavarfgoaPaxam:tNaoIdbMUdbarclfgrcx9hmbkJbbjZaqJbbjZMgq:vhkaDcefgDal9hmbkcbhoadcbcecdavIdlgxavIdwgm9GEgravIdbgPam9GEaraPax9GEgscdtgrfhzavczfarfIdbhxaihralhwinaiaocdtfgDydbhHaDarydbgOBdbaraHBdbarclfhraoazaOcK2fIdbax9Dfhoawcufgwmbkaeabcitfhrdndnaocv6mbaoalc98f6mekaraiydbBdbaralcdtcufBdlaiclfhoalcufhwarcxfhrinaoydbhDarcuBdbarc98faDBdbarcwfhraoclfhoawcufgwmbkalabfhrxekaraxUdbaeabcitfgrarydlc98GasVBdlabcefaeadaiaoz:djjjbhwararydlciGawabcu7fcdtVBdlawaeadaiaocdtfalao9Rz:djjjbhrkavcaf8Kjjjjbark;Bloeue99vue99Due99dndnaembcuhkxekJbbjZaq:thxaiabcdtfhmavydbhPavydlhsavydwhzcbhHJFFuuhOcvhbcuhkindnaPamaHcdtfydbcdtgvfydbgATmbazasavfydbcdtfhiindndnawalaiydbgCcx2fgvclfydbgXfRbbcFeSawavydbgQfRbbcFeSfawavcwfydbgLfRbbcFeSfgKmbcbhvxekcehvaraQcdtfydbgYceSmbcehvaraXcdtfydbg8AceSmbcehvaraLcdtfydbgEceSmbdna8AcdSaYcdSfaEcdSfcd6mbaKcefhvxekaKcdfhvkdnavab9kmbdndnadTmbaoaCcK2fgQIdwadIdw:tg3a3NaQIdbadIdb:tg3a3NaQIdladIdl:tg3a3NMM:raD:vaxNJbbjZMJ9VO:d86JbbjZaQIdCadIdCNaQIdxadIdxNaQIdzadIdzNMMaqN:tg3a3J9VO:d869DENh3xekaraQcdtfydbaraXcdtfydbfaraLcdtfydbfc99f:Zh3kaCakavab6a3aO9DVgQEhkavabaQEhba3aOaQEhOkaiclfhiaAcufgAmbkkaHcefgHae9hmbkkakk;bddlue99dndndnabaecitfgrydlgwciGgDci9hmbarclfhqxekinabcbawcd4gwalaDcdtfIdbabaecitfIdb:tgkJbbbb9FEgDaecefgefadaialavaoz:fjjjbak:laoIdb9FTmdabaDaw7aefgecitfgrydlgwciGgDci9hmbkarclfhqkabaecitfhecuhbindnaiaeydbgDfRbbmbadaDcK2fgrIdwalIdw:tgkakNarIdbalIdb:tgkakNarIdlalIdl:tgkakNMM:rgkaoIdb9DTmbaoakUdbavaDBdbaqydbhwkaecwfheabcefgbawcd46mbkkk;yleoudnaladfgkRbbcFeSalaefgxRbbgmcFeSfabydwgPfalaifgsRbbcFeSfaD0abydxaq9pVgzce9hmbavawcltfgmab8Pdb83dbamcwfabcwfgm8Pdb83dbdndnamydbmbcbhqxekcbhDaohminalamabydbcdtfydbfcFe86bbamclfhmaDcefgDabydwgq6mbkkdnabydxglci2gDabydlgmfgPciGTmbaraPfcbalamcu7fciGcefz:njjjb8Aabydxci2hDabydlhmabydwhqkab9cb83dwababydbaqfBdbabaDcifc98GamfBdlaxRbbhmcbhPkdnamcFeGcFe9hmbaxaP86bbababydwgmcefBdwaoabydbcdtfamcdtfaeBdbkdnakRbbcFe9hmbakabydw86bbababydwgmcefBdwaoabydbcdtfamcdtfadBdbkdnasRbbcFe9hmbasabydw86bbababydwgmcefBdwaoabydbcdtfamcdtfaiBdbkarabydlfabydxci2faxRbb86bbarabydlfabydxci2fcefakRbb86bbarabydlfabydxci2fcdfasRbb86bbababydxcefBdxazk;Ckovud99euv99eul998Jjjjjbc:G;ae9Rgo8KjjjjbdndnadTmbavcd4hrcbhwcbhDindnaiaeclfydbar2cdtfgvIdbaiaeydbar2cdtfgqIdbgk:tgxaiaecwfydbar2cdtfgmIdlaqIdlgP:tgsNamIdbak:tgzavIdlaP:tgPN:tgkakNaPamIdwaqIdwgH:tgONasavIdwaH:tgHN:tgPaPNaHazNaOaxN:tgxaxNMM:rgsJbbbb9Bmbaoc:G:qefawcx2fgAakas:vUdwaAaxas:vUdlaAaPas:vUdbaocafawc8K2fgAaq8Pdb83dbaAav8Pdb83dxaAam8Pdb83dKaAcwfaqcwfydbBdbaAcCfavcwfydbBdbaAcafamcwfydbBdbawcefhwkaecxfheaDcifgDad6mbkab9cb83dbabcyf9cb83dbabcaf9cb83dbabcKf9cb83dbabczf9cb83dbabcwf9cb83dbawTmeao9cb83iKao9cb83izaoczfaocafawci2z1jjjbaoIdKhCaoIdChXaoIdzhQao9cb83iwao9cb83ibaoaoc:G:qefawz1jjjbJbbjZhkaoIdwgPJbbbbJbbjZaPaPNaoIdbgPaPNaoIdlgsasNMM:rgx:vaxJbbbb9BEgzNhxasazNhsaPazNhzaoc:G:qefheawhvinaecwfIdbaxNaeIdbazNasaeclfIdbNMMgPakaPak9DEhkaecxfheavcufgvmbkabaCUdwabaXUdlabaQUdbabaoId3UdxdndnakJ;n;m;m899FmbJbbbbhPaoc:G:qefheaocafhvinaCavcwfIdb:taecwfIdbgHNaQavIdb:taeIdbgONaXavclfIdb:taeclfIdbgLNMMaxaHNazaONasaLNMM:vgHaPaHaP9EEhPavc8KfhvaecxfheawcufgwmbkabazUd3abc8KfaxUdbabcafasUdbabcKfaCaxaPN:tUdbabcCfaXasaPN:tUdbabaQazaPN:tUdzabJbbjZakakN:t:rgkUdydndnaxJbbj:;axJbbj:;9GEgPJbbjZaPJbbjZ9FEJbb;:9cNJbbbZJbbb:;axJbbbb9GEMgP:lJbbb9p9DTmbaP:Ohexekcjjjj94hekabc8Ufae86bbdndnasJbbj:;asJbbj:;9GEgPJbbjZaPJbbjZ9FEJbb;:9cNJbbbZJbbb:;asJbbbb9GEMgP:lJbbb9p9DTmbaP:Ohvxekcjjjj94hvkabcRfav86bbdndnazJbbj:;azJbbj:;9GEgPJbbjZaPJbbjZ9FEJbb;:9cNJbbbZJbbb:;azJbbbb9GEMgP:lJbbb9p9DTmbaP:Ohqxekcjjjj94hqkabaq86b8SdndnaecKtcK91:YJbb;:9c:vax:t:lavcKtcK91:YJbb;:9c:vas:t:laqcKtcK91:YJbb;:9c:vaz:t:lakMMMJbb;:9cNJbbjZMgk:lJbbb9p9DTmbak:Ohexekcjjjj94hekaecFbaecFb9iEhexekabcjjj;8iBdycFbhekabae86b8Vxekab9cb83dbabcyf9cb83dbabcaf9cb83dbabcKf9cb83dbabczf9cb83dbabcwf9cb83dbkaoc:G;aef8Kjjjjbk:mvdouq99cbhi8Jjjjjbca9RglczfcwfcbBdbal9cb83izalcwfcbBdbal9cb83ibdnadTmbcbhvinaeaifhocbhrinalczfarfgwavawydbgwaoarfIdbgDaearawcx2ffIdb9DEBdbalarfgwavawydbgwaDaearawcx2ffIdb9EEBdbarclfgrcx9hmbkaicxfhiavcefgvad9hmbkkJbbbbhDcbhrcbhicbhvinaealarfydbcx2fgwIdwaealczfarfydbcx2fgoIdw:tgqaqNawIdbaoIdb:tgqaqNawIdlaoIdl:tgqaqNMMgqaDaqaD9EgwEhDavaiawEhiarclfhravcefgvci9hmbkaealczfaicdtgvfydbcx2fgrIdwaealavfydbcx2fglIdwMJbbbZNhqarIdlalIdlMJbbbZNhkarIdbalIdbMJbbbZNhxaD:rJbbbZNhDdnadTmbindnaecwfIdbgmaq:tgPaPNaeIdbgsax:tgPaPNaeclfIdbgzak:tgPaPNMMgPaDaDN9ETmbaqaDaP:rgH:vJbbbZNJbbbZMgPNamJbbjZaP:tgONMhqakaPNazaONMhkaxaPNasaONMhxaDaHMJbbbZNhDkaecxfheadcufgdmbkkabaDUdxabaqUdwabakUdlabaxUdbkjeeiu8Jjjjjbcj8W9Rgr8Kjjjjbaici2hwdnaiTmbawceawce0EhDarhiinaiaeadRbbcdtfydbBdbadcefhdaiclfhiaDcufgDmbkkabarawaladaoz:hjjjbarcj8Wf8Kjjjjbk:Ylequ8Jjjjjbcjx9Rgl8Kjjjjbcbhvalcjqfcbaiz:njjjb8AdndnadTmbcjehoaehrincuhwarhDcuhqavhkdninawakaoalcjqfaDcefRbbfRbb9RcFeGci6aoalcjqfaDRbbfRbb9RcFeGci6faoalcjqfaDcdfRbbfRbb9RcFeGci6fgxaq9mgmEhwdnammbaxce0mdkaxaqaxaq9kEhqaDcifhDadakcefgk9hmbkkaeawci2fgDcdfRbbhqaDcefRbbhxaDRbbhkaeavci2fgDcifaDawav9Rci2z:qjjjb8Aakalcjqffaocefgo86bbaxalcjqffao86bbaDcdfaq86bbaDcefax86bbaDak86bbaqalcjqffao86bbarcifhravcefgvad9hmbkalcFeaiz:njjjbhoadci2gDceaDce0EhqcbhxindnaoaeRbbgkfgwRbbgDcFe9hmbawax86bbaocjdfaxcdtfabakcdtfydbBdbaxhDaxcefhxkaeaD86bbaecefheaqcufgqmbkaxcdthDxekcbhDkabalcjdfaDz:mjjjb8Aalcjxf8Kjjjjbk9teiucbcbyd11jjbgeabcifc98GfgbBd11jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik;LeeeudndnaeabVciGTmbabhixekdndnadcz9pmbabhixekabhiinaiaeydbBdbaiclfaeclfydbBdbaicwfaecwfydbBdbaicxfaecxfydbBdbaeczfheaiczfhiadc9Wfgdcs0mbkkadcl6mbinaiaeydbBdbaeclfheaiclfhiadc98fgdci0mbkkdnadTmbinaiaeRbb86bbaicefhiaecefheadcufgdmbkkabk;aeedudndnabciGTmbabhixekaecFeGc:b:c:ew2hldndnadcz9pmbabhixekabhiinaialBdbaicxfalBdbaicwfalBdbaiclfalBdbaiczfhiadc9Wfgdcs0mbkkadcl6mbinaialBdbaiclfhiadc98fgdci0mbkkdnadTmbinaiae86bbaicefhiadcufgdmbkkabk9teiucbcbyd11jjbgeabcrfc94GfgbBd11jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik9:eiuZbhedndncbyd11jjbgdaecztgi9nmbcuheadai9RcFFifcz4nbcuSmekadhekcbabae9Rcifc98Gcbyd11jjbfgdBd11jjbdnadZbcztge9nmbadae9RcFFifcz4nb8Akk:;Deludndndnadch9pmbabaeSmdaeabadfgi9Rcbadcet9R0mekabaead;8qbbxekaeab7ciGhldndndnabae9pmbdnalTmbadhvabhixikdnabciGmbadhvabhixdkadTmiabaeRbb86bbadcufhvdnabcefgiciGmbaecefhexdkavTmiabaeRbe86beadc9:fhvdnabcdfgiciGmbaecdfhexdkavTmiabaeRbd86bdadc99fhvdnabcifgiciGmbaecifhexdkavTmiabaeRbi86biabclfhiaeclfheadc98fhvxekdnalmbdnaiciGTmbadTmlabadcufgifglaeaifRbb86bbdnalciGmbaihdxekaiTmlabadc9:fgifglaeaifRbb86bbdnalciGmbaihdxekaiTmlabadc99fgifglaeaifRbb86bbdnalciGmbaihdxekaiTmlabadc98fgdfaeadfRbb86bbkadcl6mbdnadc98fgocd4cefciGgiTmbaec98fhlabc98fhvinavadfaladfydbBdbadc98fhdaicufgimbkkaocx6mbaec9Wfhvabc9WfhoinaoadfgicxfavadfglcxfydbBdbaicwfalcwfydbBdbaiclfalclfydbBdbaialydbBdbadc9Wfgdci0mbkkadTmdadhidnadciGglTmbaecufhvabcufhoadhiinaoaifavaifRbb86bbaicufhialcufglmbkkadcl6mdaec98fhlabc98fhvinavaifgecifalaifgdcifRbb86bbaecdfadcdfRbb86bbaecefadcefRbb86bbaeadRbb86bbaic98fgimbxikkavcl6mbdnavc98fglcd4cefcrGgdTmbavadcdt9RhvinaiaeydbBdbaeclfheaiclfhiadcufgdmbkkalc36mbinaiaeydbBdbaiaeydlBdlaiaeydwBdwaiaeydxBdxaiaeydzBdzaiaeydCBdCaiaeydKBdKaiaeyd3Bd3aecafheaicafhiavc9Gfgvci0mbkkavTmbdndnavcrGgdmbavhlxekavc94GhlinaiaeRbb86bbaicefhiaecefheadcufgdmbkkavcw6mbinaiaeRbb86bbaiaeRbe86beaiaeRbd86bdaiaeRbi86biaiaeRbl86blaiaeRbv86bvaiaeRbo86boaiaeRbr86braicwfhiaecwfhealc94fglmbkkabkkAebcjwkxebbbdbbbzNbb",J=new Uint8Array([32,0,65,2,1,106,34,33,3,128,11,4,13,64,6,253,10,7,15,116,127,5,8,12,40,16,19,54,20,9,27,255,113,17,42,67,24,23,146,148,18,14,22,45,70,69,56,114,101,21,25,63,75,136,108,28,118,29,73,115]);if(typeof WebAssembly!=="object")return{supported:!1};var X,Y=WebAssembly.instantiate($(Z),{}).then(function(U){X=U.instance,X.exports.__wasm_call_ctors()});function $(U){var w=new Uint8Array(U.length);for(var L=0;L<U.length;++L){var j=U.charCodeAt(L);w[L]=j>96?j-97:j>64?j-39:j+4}var R=0;for(var L=0;L<U.length;++L)w[R++]=w[L]<60?J[w[L]]:(w[L]-60)*64+w[++L];return w.buffer.slice(0,R)}function Q(U){if(!U)throw new Error("Assertion failed")}function K(U){return new Uint8Array(U.buffer,U.byteOffset,U.byteLength)}var W=48,G=16;function z(U,w){var L=U.meshlets[w*4+0],j=U.meshlets[w*4+1],R=U.meshlets[w*4+2],O=U.meshlets[w*4+3];return{vertices:U.vertices.subarray(L,L+R),triangles:U.triangles.subarray(j,j+O*3)}}function V(U,w,L,j,R,O,N){var D=X.exports.sbrk,P=X.exports.meshopt_buildMeshletsBound(U.length,R,O),C=D(P*G),T=D(P*R*4),k=D(P*O*3),A=D(U.byteLength),S=D(w.byteLength),x=new Uint8Array(X.exports.memory.buffer);x.set(K(U),A),x.set(K(w),S);var I=X.exports.meshopt_buildMeshlets(C,T,k,A,U.length,S,L,j,R,O,N);x=new Uint8Array(X.exports.memory.buffer);var v=x.subarray(C,C+I*G),f=new Uint32Array(v.buffer,v.byteOffset,v.byteLength/4).slice();for(var p=0;p<I;++p){var n=f[p*4+0],o=f[p*4+1],L=f[p*4+2],J0=f[p*4+3];X.exports.meshopt_optimizeMeshlet(T+n*4,k+o,J0,L)}var Q0=f[(I-1)*4+0],T0=f[(I-1)*4+1],k0=f[(I-1)*4+2],a0=f[(I-1)*4+3],v8=Q0+k0,s1=T0+(a0*3+3&-4),d4={meshlets:f,vertices:new Uint32Array(x.buffer,T,v8).slice(),triangles:new Uint8Array(x.buffer,k,s1*3).slice(),meshletCount:I};return D(C-D(0)),d4}function H(U){var w=new Float32Array(X.exports.memory.buffer,U,W/4);return{centerX:w[0],centerY:w[1],centerZ:w[2],radius:w[3],coneApexX:w[4],coneApexY:w[5],coneApexZ:w[6],coneAxisX:w[7],coneAxisY:w[8],coneAxisZ:w[9],coneCutoff:w[10]}}function q(U,w,L,j){var R=X.exports.sbrk,O=[],N=R(w.byteLength),D=R(U.vertices.byteLength),P=R(U.triangles.byteLength),C=R(W),T=new Uint8Array(X.exports.memory.buffer);T.set(K(w),N),T.set(K(U.vertices),D),T.set(K(U.triangles),P);for(var k=0;k<U.meshletCount;++k){var A=U.meshlets[k*4+0],S=U.meshlets[k*4+0+1],x=U.meshlets[k*4+0+3];X.exports.meshopt_computeMeshletBounds(C,D+A*4,P+S,x,N,L,j),O.push(H(C))}return R(N-R(0)),O}function F(U,w,L,j){var R=X.exports.sbrk,O=R(W),N=R(U.byteLength),D=R(w.byteLength),P=new Uint8Array(X.exports.memory.buffer);P.set(K(U),N),P.set(K(w),D),X.exports.meshopt_computeClusterBounds(O,N,U.length,D,L,j);var C=H(O);return R(O-R(0)),C}return{ready:Y,supported:!0,buildMeshlets:function(U,w,L,j,R,O){Q(U.length%3==0),Q(w instanceof Float32Array),Q(w.length%L==0),Q(L>=3),Q(j<=255||j>0),Q(R<=512),Q(R%4==0),O=O||0;var N=U.BYTES_PER_ELEMENT==4?U:new Uint32Array(U);return V(N,w,w.length/L,L*4,j,R,O)},computeClusterBounds:function(U,w,L){Q(U.length%3==0),Q(U.length/3<=512),Q(w instanceof Float32Array),Q(w.length%L==0),Q(L>=3);var j=U.BYTES_PER_ELEMENT==4?U:new Uint32Array(U);return F(j,w,w.length/L,L*4)},computeMeshletBounds:function(U,w,L){return Q(U.meshletCount!=0),Q(w instanceof Float32Array),Q(w.length%L==0),Q(L>=3),q(U,w,w.length/L,L*4)},extractMeshlet:function(U,w){return Q(w>=0&&w<U.meshletCount),z(U,w)}}}();var sQ={OPTIMIZED_DIR:".optimized",CHECKSUM_EXT:".md5",DIRECTORIES:[(()=>{try{return a5.dirname(u.resolve("/Users/arkdev/Desktop/HYTOPIA/hytopia/assets/release/index.js"))}catch{return null}})(),a5.resolve(process.cwd(),"assets")].filter(Boolean),OPTIMIZER_RUNS:[{suffix:"",options:["--compress","false","--instance","false","--simplify","false"]},{suffix:"-named-nodes",options:["--compress","false","--instance","false","--simplify","false","--join","true","--join-named","false"]}]};class R5{static instance=new R5;optimize=!0;optimizeEveryStart=!1;_modelUriDocuments=new Map;_modelUriBoundingBoxes=new Map;_modelUriNodeNames=new Map;_modelUriTrimeshes=new Map;constructor(){}async preloadModels(){let Z=await this._getAbsoluteModelPaths();console.log(`ModelRegistry.preloadModels(): Preloading ${Z.length} models...`);for(let J of Z){if(this.optimize)await this._resolveOptimizedModelPath(J);await this._loadModelData(J)}console.log(`ModelRegistry.preloadModels(): Preloaded ${Z.length} models!`)}getAnimationNames(Z){let J=this._modelUriDocuments.get(Z);if(!J)m.fatalError(`ModelRegistry.getAnimationNames(): Model ${Z} not found!`);return J.getRoot().listAnimations().map((Y)=>Y.getName())}getBoundingBox(Z){let J=this._modelUriBoundingBoxes.get(Z);if(!J)m.fatalError(`ModelRegistry.getBoundingBox(): Model ${Z} not found!`);return J}getDepth(Z){let J=this.getBoundingBox(Z);return J.max.z-J.min.z}getHeight(Z){let J=this.getBoundingBox(Z);return J.max.y-J.min.y}getNodeNames(Z){let J=this._modelUriNodeNames.get(Z);if(!J)m.fatalError(`ModelRegistry.getNodeNames(): Model ${Z} not found!`);return J}getTrimesh(Z,J=1){let X=this._modelUriTrimeshes.get(Z);if(!X){m.error(`ModelRegistry.getTrimesh(): Model ${Z} not found!`);return}let Y=X.vertices;if(J!==1){Y=new Float32Array(Y.length);for(let $=0;$<Y.length;$++)Y[$]=X.vertices[$]*J}return{vertices:Y,indices:X.indices}}getWidth(Z){let J=this.getBoundingBox(Z);return J.max.x-J.min.x}modelHasNode(Z,J){let X=this._modelUriNodeNames.get(Z);if(!X)m.fatalError(`ModelRegistry.modelHasNode(): Model ${Z} not found!`);return X.includes(J)}_absoluteModelPathToModelUri(Z){let J=a5.normalize(Z);for(let X of sQ.DIRECTORIES){let Y=a5.normalize(X);if(J.startsWith(Y))return a5.relative(Y,J).replace(/\\/g,"/")}return a5.basename(J)}async _getAbsoluteModelPaths(){let Z=[];for(let J of sQ.DIRECTORIES){let X=a5.resolve(process.cwd(),J);if(!PJ.existsSync(X))continue;let Y=await IU("**/*.{gltf,glb}",{cwd:X,follow:!0});for(let $ of Y)Z.push(a5.join(X,$))}return Z}async _loadModelData(Z){let J=await new vP().read(Z),X=Xa(J.getRoot().listScenes()[0]),Y=J.getRoot().listNodes().map((Q)=>Q.getName()),$=this._absoluteModelPathToModelUri(Z);this._modelUriDocuments.set($,J),this._modelUriBoundingBoxes.set($,{min:{x:X.min[0],y:X.min[1],z:X.min[2]},max:{x:X.max[0],y:X.max[1],z:X.max[2]}}),this._modelUriNodeNames.set($,Y),this._modelUriTrimeshes.set($,await this._buildTrimesh($))}async _resolveOptimizedModelPath(Z){let J=this._buildOptimizedModelPath(Z);if(!this.optimizeEveryStart&&this._isOptimizedVersionValid(Z))return J;return await this._optimizeModel(Z,J)}_isOptimizedVersionValid(Z){let J=`${this._buildOptimizedModelPath(Z)}${sQ.CHECKSUM_EXT}`;if(!PJ.existsSync(J))return!1;let X=this._calculateChecksum(Z),Y=PJ.readFileSync(J,"utf8");return X===Y}_calculateChecksum(Z){if(!PJ.existsSync(Z))return"";let J=PJ.readFileSync(Z);return Zj1.createHash("sha256").update(J.toString("base64")).digest("hex")}_buildOptimizedModelPath(Z){let J=a5.basename(Z),X=J.replace(/\.[^/.]+$/,""),Y=a5.dirname(Z),$=a5.join(Y,sQ.OPTIMIZED_DIR,X);return a5.join($,J)}async _buildTrimesh(Z,J=1,X=0.001){let Y=this._modelUriDocuments.get(Z);if(!Y)m.fatalError(`ModelRegistry._buildTrimesh(): Model ${Z} not found!`);let $=Za(Y);$.setLogger(new j5(XG.WARN)),await $.transform(fn({pivot:"center"}),Ja(),Ya(),EC(),Ga({simplifier:za,ratio:J,error:X}),tn());for(let z of $.getRoot().listScenes())for(let V of z.listChildren())on(V);let Q=$.getRoot().listMeshes()[0];if(!Q){m.error(`ModelRegistry._buildTrimesh(): Model ${Z} has no root mesh!`);return}let K=Q.listPrimitives()[0];if(!K){m.error(`ModelRegistry._buildTrimesh(): Model ${Z} has no root primitive!`);return}let W=K.getAttribute("POSITION"),G=K.getIndices();if(!W||!G){m.error(`ModelRegistry._buildTrimesh(): Model ${Z} missing required geometry data!`);return}return{vertices:W.getArray(),indices:G.getArray()}}async _optimizeModel(Z,J){let X=a5.dirname(J);PJ.rmSync(X,{recursive:!0,force:!0}),PJ.mkdirSync(X,{recursive:!0}),console.log(`ModelRegistry: Optimizing model ${this._absoluteModelPathToModelUri(Z)}...`);for(let Y of sQ.OPTIMIZER_RUNS){let $=J.replace(/(\.[^/.]+)$/,`${Y.suffix}$1`),{stderr:Q}=await wd("npx",["gltf-transform","optimize",Z,$,...Y.options]);if(Q)return m.warning(`ModelRegistry._optimizeModel(): Error optimizing model ${this._absoluteModelPathToModelUri(Z)}, defaulting to unoptimized model. Error: ${Q}`),Z}return PJ.writeFileSync(`${J}${sQ.CHECKSUM_EXT}`,this._calculateChecksum(Z)),J}}var IG;(($)=>{$.DYNAMIC="dynamic";$.FIXED="fixed";$.KINEMATIC_POSITION="kinematic_position";$.KINEMATIC_VELOCITY="kinematic_velocity"})(IG||={});var vC=0.001,Va="dynamic";class NY extends j0{_additionalMass=0;_colliders=new Set;_explicitSleep=!1;_enabledPositions={x:!0,y:!0,z:!0};_enabledRotations={x:!0,y:!0,z:!0};_rigidBody;_rigidBodyDesc;_rigidBodyType;_simulation;constructor(Z){super();Z.type??=Va,this._rigidBodyDesc=this._createRigidBodyDesc(Z),this._rigidBodyType=Z.type,this._applyRigidBodyOptions(Z),this._autoAddToSimulation(Z)}get additionalMass(){if(!this._requireNotRemoved("additionalMass"))return 0;return this._additionalMass}get additionalSolverIterations(){if(!this._requireNotRemoved("additionalSolverIterations"))return 0;return this._rigidBody?this._rigidBody.additionalSolverIterations():this._rigidBodyDesc.additionalSolverIterations}get angularDamping(){if(!this._requireNotRemoved("angularDamping"))return 0;return this._rigidBody?this._rigidBody.angularDamping():this._rigidBodyDesc.angularDamping}get angularVelocity(){if(!this._requireNotRemoved("angularVelocity"))return{x:0,y:0,z:0};return this._rigidBody?this._rigidBody.angvel():this._rigidBodyDesc.angvel}get colliders(){return this._colliders}get dominanceGroup(){if(!this._requireNotRemoved("dominanceGroup"))return 0;return this._rigidBody?this._rigidBody.dominanceGroup():this._rigidBodyDesc.dominanceGroup}get directionFromRotation(){let{x:Z,y:J,z:X,w:Y}=this.rotation;return{x:-2*(Z*X+Y*J),y:-2*(J*X-Y*Z),z:-(1-2*(Z*Z+J*J))}}get effectiveAngularInertia(){if(!this._requireNotRemoved("effectiveAngularInertia"))return;return this._rigidBody?this._rigidBody.effectiveAngularInertia():void 0}get effectiveInverseMass(){if(!this._requireNotRemoved("effectiveInverseMass"))return;return this._rigidBody?this._rigidBody.effectiveInvMass():void 0}get effectiveWorldInversePrincipalAngularInertiaSqrt(){if(!this._requireNotRemoved("effectiveWorldInversePrincipalAngularInertiaSqrt"))return;return this._rigidBody?this._rigidBody.effectiveWorldInvInertiaSqrt():void 0}get enabledRotations(){if(!this._requireNotRemoved("enabledRotations"))return{x:!0,y:!0,z:!0};return this._enabledRotations}get enabledPositions(){if(!this._requireNotRemoved("enabledPositions"))return{x:!0,y:!0,z:!0};return this._enabledPositions}get gravityScale(){if(!this._requireNotRemoved("gravityScale"))return 0;return this._rigidBody?this._rigidBody.gravityScale():this._rigidBodyDesc.gravityScale}get inverseMass(){if(!this._requireNotRemoved("inverseMass"))return;return this._rigidBody?this._rigidBody.invMass():void 0}get inversePrincipalAngularInertiaSqrt(){if(!this._requireNotRemoved("inversePrincipalAngularInertiaSqrt"))return;return this._rigidBody?this._rigidBody.invPrincipalInertiaSqrt():void 0}get isCcdEnabled(){if(!this._requireNotRemoved("isCcdEnabled"))return!1;return this._rigidBody?this._rigidBody.isCcdEnabled():this._rigidBodyDesc.ccdEnabled}get isDynamic(){if(!this._requireNotRemoved("isDynamic"))return!1;return this._rigidBodyType==="dynamic"}get isEnabled(){if(!this._requireNotRemoved("isEnabled"))return!1;return this._rigidBody?this._rigidBody.isEnabled():this._rigidBodyDesc.enabled}get isFixed(){if(!this._requireNotRemoved("isFixed"))return!1;return this._rigidBodyType==="fixed"}get isKinematic(){if(!this._requireNotRemoved("isKinematic"))return!1;return["kinematic_position","kinematic_velocity"].includes(this._rigidBodyType)}get isKinematicPositionBased(){if(!this._requireNotRemoved("isKinematicPositionBased"))return!1;return this._rigidBodyType==="kinematic_position"}get isKinematicVelocityBased(){if(!this._requireNotRemoved("isKinematicVelocityBased"))return!1;return this._rigidBodyType==="kinematic_velocity"}get isMoving(){if(!this._requireNotRemoved("isMoving"))return!1;return this._rigidBody?this._rigidBody.isMoving():!1}get isRemoved(){return!this._rigidBody&&!this._rigidBodyDesc}get isSimulated(){if(!this._requireNotRemoved("isSimulated"))return!1;return this._rigidBody?!0:!1}get isSleeping(){if(!this._requireNotRemoved("isSleeping"))return!1;return this._rigidBody?this._rigidBody.isSleeping():this._rigidBodyDesc.sleeping}get linearDamping(){if(!this._requireNotRemoved("linearDamping"))return 0;return this._rigidBody?this._rigidBody.linearDamping():this._rigidBodyDesc.linearDamping}get linearVelocity(){if(!this._requireNotRemoved("linearVelocity"))return{x:0,y:0,z:0};return this._rigidBody?this._rigidBody.linvel():this._rigidBodyDesc.linvel}get localCenterOfMass(){if(!this._requireNotRemoved("localCenterOfMass"))return{x:0,y:0,z:0};return this._rigidBody?this._rigidBody.localCom():this._rigidBodyDesc.centerOfMass}get mass(){if(!this._requireNotRemoved("mass"))return 0;return this._rigidBody?this._rigidBody.mass():this._rigidBodyDesc.mass}get nextKinematicRotation(){if(!this._requireNotRemoved("nextKinematicRotation"))return{x:0,y:0,z:0,w:1};return this._rigidBody?this._rigidBody.nextRotation():this._rigidBodyDesc.rotation}get nextKinematicPosition(){if(!this._requireNotRemoved("nextKinematicPosition"))return{x:0,y:0,z:0};return this._rigidBody?this._rigidBody.nextTranslation():this._rigidBodyDesc.translation}get numColliders(){return this._colliders.size}get principalAngularInertia(){if(!this._requireNotRemoved("principalAngularInertia"))return{x:0,y:0,z:0};return this._rigidBody?this._rigidBody.principalInertia():this._rigidBodyDesc.principalAngularInertia}get principalAngularInertiaLocalFrame(){if(!this._requireNotRemoved("principalAngularInertiaLocalFrame"))return;return this._rigidBody?this._rigidBody.principalInertiaLocalFrame():void 0}get position(){if(!this._requireNotRemoved("position"))return{x:0,y:0,z:0};return this._rigidBody?this._rigidBody.translation():this._rigidBodyDesc.translation}get rawRigidBody(){if(!this._requireNotRemoved("rawRigidBody"))return;return this._rigidBody}get rotation(){if(!this._requireNotRemoved("rotation"))return{x:0,y:0,z:0,w:1};return this._rigidBody?this._rigidBody.rotation():this._rigidBodyDesc.rotation}get softCcdPrediction(){if(!this._requireNotRemoved("softCcdPrediction"))return 0;return this._rigidBody?this._rigidBody.softCcdPrediction():this._rigidBodyDesc.softCcdPrediction}get type(){if(!this._requireNotRemoved("type"))return"dynamic";return this._rigidBodyType}get worldCenterOfMass(){if(!this._requireNotRemoved("worldCenterOfMass"))return;return this._rigidBody?this._rigidBody.worldCom():void 0}setAdditionalMass(Z){if(!this._requireDynamic("setAdditionalMass"))return;if(!this._requireNotRemoved("setAdditionalMass"))return;this._rigidBody?this._rigidBody.setAdditionalMass(Z,!this._explicitSleep):this._rigidBodyDesc.setAdditionalMass(Z)}setAdditionalMassProperties(Z){if(!this._requireDynamic("setAdditionalMassProperties"))return;if(!this._requireNotRemoved("setAdditionalMassProperties"))return;let{additionalMass:J,centerOfMass:X,principalAngularInertia:Y,principalAngularInertiaLocalFrame:$}=Z;this._rigidBody?this._rigidBody.setAdditionalMassProperties(J,X,Y,$,!this._explicitSleep):this._rigidBodyDesc.setAdditionalMassProperties(J,X,Y,$)}setAdditionalSolverIterations(Z){if(!this._requireDynamic("setAdditionalSolverIterations"))return;if(!this._requireNotRemoved("setAdditionalSolverIterations"))return;this._rigidBody?this._rigidBody.setAdditionalSolverIterations(Z):this._rigidBodyDesc.setAdditionalSolverIterations(Z)}setAngularDamping(Z){if(!this._requireDynamic("setAngularDamping"))return;if(!this._requireNotRemoved("setAngularDamping"))return;this._rigidBody?this._rigidBody.setAngularDamping(Z):this._rigidBodyDesc.setAngularDamping(Z)}setAngularVelocity(Z){if(!this._requireNotKinematicPositionBased("setAngularVelocity"))return;if(!this._requireNotRemoved("setAngularVelocity"))return;this._rigidBody?this._rigidBody.setAngvel(Z,!this._explicitSleep):this._rigidBodyDesc.setAngvel(Z)}setCcdEnabled(Z){if(!this._requireDynamic("setCcdEnabled"))return;if(!this._requireNotRemoved("setCcdEnabled"))return;this._rigidBody?this._rigidBody.enableCcd(Z):this._rigidBodyDesc.setCcdEnabled(Z)}setDominanceGroup(Z){if(!this._requireDynamic("setDominanceGroup"))return;if(!this._requireNotRemoved("setDominanceGroup"))return;this._rigidBody?this._rigidBody.setDominanceGroup(Z):this._rigidBodyDesc.setDominanceGroup(Z)}setEnabled(Z){if(!this._requireNotRemoved("setEnabled"))return;this._rigidBody?this._rigidBody.setEnabled(Z):this._rigidBodyDesc.setEnabled(Z)}setEnabledPositions(Z){if(!this._requireDynamic("setEnabledPositions"))return;if(!this._requireNotRemoved("setEnabledPositions"))return;this._rigidBody?this._rigidBody.setEnabledTranslations(Z.x,Z.y,Z.z,!this._explicitSleep):this._rigidBodyDesc.enabledTranslations(Z.x,Z.y,Z.z),this._enabledPositions=Z}setEnabledRotations(Z){if(!this._requireDynamic("setEnabledRotations"))return;if(!this._requireNotRemoved("setEnabledRotations"))return;this._rigidBody?this._rigidBody.setEnabledRotations(Z.x,Z.y,Z.z,!this._explicitSleep):this._rigidBodyDesc.enabledRotations(Z.x,Z.y,Z.z),this._enabledRotations=Z}setGravityScale(Z){if(!this._requireDynamic("setGravityScale"))return;if(!this._requireNotRemoved("setGravityScale"))return;this._rigidBody?this._rigidBody.setGravityScale(Z,!this._explicitSleep):this._rigidBodyDesc.setGravityScale(Z)}setLinearDamping(Z){if(!this._requireDynamic("setLinearDamping"))return;if(!this._requireNotRemoved("setLinearDamping"))return;this._rigidBody?this._rigidBody.setLinearDamping(Z):this._rigidBodyDesc.setLinearDamping(Z)}setLinearVelocity(Z){if(!this._requireNotKinematicPositionBased("setLinearVelocity"))return;if(!this._requireNotRemoved("setLinearVelocity"))return;this._rigidBody?this._rigidBody.setLinvel(Z,!this._explicitSleep):this._rigidBodyDesc.setLinvel(Z.x,Z.y,Z.z)}setNextKinematicRotation(Z){if(!this._requireKinematic("setNextKinematicRotation"))return;if(!this._requireNotRemoved("setNextKinematicRotation"))return;this._rigidBody?this._rigidBody.setNextKinematicRotation(Z):this._rigidBodyDesc.setRotation(Z)}setNextKinematicPosition(Z){if(!this._requireKinematic("setNextKinematicPosition"))return;if(!this._requireNotRemoved("setNextKinematicPosition"))return;this._rigidBody?this._rigidBody.setNextKinematicTranslation(Z):this._rigidBodyDesc.setTranslation(Z.x,Z.y,Z.z)}setPosition(Z){if(!this._requireNotRemoved("setPosition"))return;this._rigidBody?this._rigidBody.setTranslation(Z,!this._explicitSleep):this._rigidBodyDesc.setTranslation(Z.x,Z.y,Z.z)}setRotation(Z){if(!this._requireNotRemoved("setRotation"))return;this._rigidBody?this._rigidBody.setRotation(Z,!this._explicitSleep):this._rigidBodyDesc.setRotation(Z)}setSleeping(Z){if(!this._requireDynamic("setSleeping"))return;if(!this._requireNotRemoved("setSleeping"))return;this._rigidBody?Z?this._rigidBody.sleep():this._rigidBody.wakeUp():this._rigidBodyDesc.sleeping=Z,this._explicitSleep=Z}setSoftCcdPrediction(Z){if(!this._requireDynamic("setSoftCcdPrediction"))return;if(!this._requireNotRemoved("setSoftCcdPrediction"))return;this._rigidBody?this._rigidBody.setSoftCcdPrediction(Z):this._rigidBodyDesc.setSoftCcdPrediction(Z)}setCollisionGroupsForSolidColliders(Z){if(!this._requireNotRemoved("setCollisionGroupsForSolidColliders"))return;this._colliders.forEach((J)=>{if(J.isSensor)return;J.setCollisionGroups(Z)})}setCollisionGroupsForSensorColliders(Z){if(!this._requireNotRemoved("setCollisionGroupsForSensorColliders"))return;this._colliders.forEach((J)=>{if(!J.isSensor)return;J.setCollisionGroups(Z)})}setType(Z){if(!this._requireNotRemoved("setType"))return;let X={["dynamic"]:$1.RigidBodyType.Dynamic,["fixed"]:$1.RigidBodyType.Fixed,["kinematic_position"]:$1.RigidBodyType.KinematicPositionBased,["kinematic_velocity"]:$1.RigidBodyType.KinematicVelocityBased}[Z];if(X===void 0)return m.error(`Invalid RigidBodyType: ${Z}`);this._rigidBody?this._rigidBody.setBodyType(X,!this._explicitSleep):this._rigidBodyDesc.status=X,this._rigidBodyType=Z}addForce(Z){if(!this._requireNotRemoved("addForce"))return;if(!this._requireCreated("addForce"))return;if(!this._requireDynamic("addForce"))return;if(this._isNegligibleVector(Z))return;this._rigidBody.addForce(Z,!this._explicitSleep)}addTorque(Z){if(!this._requireNotRemoved("addTorque"))return;if(!this._requireCreated("addTorque"))return;if(!this._requireDynamic("addTorque"))return;if(this._isNegligibleVector(Z))return;this._rigidBody.addTorque(Z,!this._explicitSleep)}addChildColliderToSimulation(Z){if(!this._requireNotRemoved("addChildColliderToSimulation"))return;if(!this._requireCreated("addChildColliderToSimulation"))return;Z.addToSimulation(this._simulation,this)}addToSimulation(Z){if(!this._requireNotRemoved("addToSimulation"))return;if(this._rigidBody)return m.error("RigidBody.addToSimulation(): Rigid body already exists in the simulation!");this._simulation=Z,this._rigidBody=this._simulation.createRawRigidBody(this._rigidBodyDesc),this._colliders.forEach((J)=>{if(!J.isSimulated)J.addToSimulation(Z,this)})}applyImpulse(Z){if(!this._requireNotRemoved("applyImpulse"))return;if(!this._requireCreated("applyImpulse"))return;if(!this._requireDynamic("applyImpulse"))return;if(this._isNegligibleVector(Z))return;this._rigidBody.applyImpulse(Z,!this._explicitSleep)}applyImpulseAtPoint(Z,J){if(!this._requireNotRemoved("applyImpulseAtPoint"))return;if(!this._requireCreated("applyImpulseAtPoint"))return;if(!this._requireDynamic("applyImpulseAtPoint"))return;if(this._isNegligibleVector(Z))return;this._rigidBody.applyImpulseAtPoint(Z,J,!this._explicitSleep)}applyTorqueImpulse(Z){if(!this._requireNotRemoved("applyTorqueImpulse"))return;if(!this._requireCreated("applyTorqueImpulse"))return;if(!this._requireDynamic("applyTorqueImpulse"))return;this._rigidBody.applyTorqueImpulse(Z,!this._explicitSleep)}createAndAddChildCollider(Z){if(!this._requireNotRemoved("createAndAddChildCollider"))return null;return this._simulation?new s5({...Z,parentRigidBody:this,simulation:this._simulation}):this._createAndAddPendingChildCollider(Z)}createAndAddChildColliders(Z){let J=[];return Z.forEach((X)=>{let Y=this.createAndAddChildCollider(X);if(Y)J.push(Y)}),J}getCollidersByTag(Z){let J=[];for(let X of this._colliders)if(X.tag===Z)J.push(X);return J}linkCollider(Z){if(!this._requireNotRemoved("linkCollider"))return;if(Z.parentRigidBody!==this)return m.error("RigidBody.linkCollider(): Collider cannot be linked because it is not a child of this rigid body!");this._colliders.add(Z)}lockAllRotations(){if(!this._requireNotRemoved("lockAllRotations"))return;this.setEnabledRotations({x:!1,y:!1,z:!1})}lockAllPositions(){if(!this._requireNotRemoved("lockAllPositions"))return;this.setEnabledPositions({x:!1,y:!1,z:!1})}removeFromSimulation(){if(!this._requireNotRemoved("removeFromSimulation"))return;if(!this._rigidBody)return m.error("RigidBody.removeFromSimulation(): Rigid body does not exist in the simulation!");this._colliders.forEach((Z)=>{Z.removeFromSimulation()}),this._simulation.removeRawRigidBody(this._rigidBody),this._simulation=void 0,this._rigidBody=void 0}unlinkCollider(Z){if(!this._requireNotRemoved("unlinkCollider"))return;if(!Z.isRemoved)return m.error("RigidBody.unlinkCollider(): Collider is still simulated and therefore cannot be unlinked from this rigid body!");this._colliders.delete(Z)}resetAngularVelocity(){if(!this._requireNotRemoved("resetAngularVelocity"))return;if(!this._requireCreated("resetAngularVelocity"))return;this.setAngularVelocity({x:0,y:0,z:0})}resetForces(){if(!this._requireNotRemoved("resetForces"))return;if(!this._requireCreated("resetForces"))return;this._rigidBody.resetForces(!this._explicitSleep)}resetLinearVelocity(){if(!this._requireNotRemoved("resetLinearVelocity"))return;if(!this._requireCreated("resetLinearVelocity"))return;this.setLinearVelocity({x:0,y:0,z:0})}resetTorques(){if(!this._requireNotRemoved("resetTorques"))return;if(!this._requireCreated("resetTorques"))return;this._rigidBody.resetTorques(!this._explicitSleep)}sleep(){if(!this._requireNotRemoved("sleep"))return;this.setSleeping(!0)}wakeUp(){if(!this._requireNotRemoved("wakeUp"))return;this.setSleeping(!1)}_applyRigidBodyOptions(Z){[["additionalMass",this.setAdditionalMass.bind(this)],["additionalMassProperties",this.setAdditionalMassProperties.bind(this)],["additionalSolverIterations",this.setAdditionalSolverIterations.bind(this)],["angularDamping",this.setAngularDamping.bind(this)],["angularVelocity",this.setAngularVelocity.bind(this)],["dominanceGroup",this.setDominanceGroup.bind(this)],["ccdEnabled",this.setCcdEnabled.bind(this)],["enabled",this.setEnabled.bind(this)],["enabledPositions",this.setEnabledPositions.bind(this)],["enabledRotations",this.setEnabledRotations.bind(this)],["gravityScale",this.setGravityScale.bind(this)],["linearDamping",this.setLinearDamping.bind(this)],["linearVelocity",this.setLinearVelocity.bind(this)],["position",this.setPosition.bind(this)],["rotation",this.setRotation.bind(this)],["sleeping",this.setSleeping.bind(this)],["softCcdPrediction",this.setSoftCcdPrediction.bind(this)]].forEach(([X,Y])=>{if(X in Z)Y(Z[X])})}_autoAddToSimulation(Z){if(Z.colliders)this._createAndAddPendingChildColliders(Z.colliders);if(Z.simulation)this.addToSimulation(Z.simulation)}_createAndAddPendingChildCollider(Z){if(!this._requireNotRemoved("createAndAddPendingChildCollider"))return null;if(!this._requireNotSimulated("createAndAddPendingChildCollider"))return null;let J=new s5(Z);return this._colliders.add(J),J}_createAndAddPendingChildColliders(Z){let J=[];return Z.forEach((X)=>{let Y=this._createAndAddPendingChildCollider(X);if(Y)J.push(Y)}),J}_createRigidBodyDesc(Z){let J=Z.type??Va;return{["dynamic"]:()=>$1.RigidBodyDesc.dynamic(),["fixed"]:()=>$1.RigidBodyDesc.fixed(),["kinematic_position"]:()=>$1.RigidBodyDesc.kinematicPositionBased(),["kinematic_velocity"]:()=>$1.RigidBodyDesc.kinematicVelocityBased()}[J]()}_requireCreated(Z){if(!this._rigidBody||!this._simulation)m.error(`RigidBody._requireCreated(): Rigid body has not been created and therefore does not support the invoked method: ${Z}()`);return!!this._rigidBody&&!!this._simulation}_requireDynamic(Z){if(!this.isDynamic)m.error(`RigidBody._requireDynamic(): Rigid body is not dynamic and therefore does not support the invoked method: ${Z}()`);return this.isDynamic}_requireKinematic(Z){if(!this.isKinematic)m.error(`RigidBody._requireKinematic(): Rigid body is not kinematic and therefore does not support the invoked method: ${Z}()`);return this.isKinematic}_requireNotKinematicPositionBased(Z){if(this.isKinematicPositionBased)m.error(`RigidBody._requireNotKinematicPositionBased(): Rigid body is kinematic position based and therefore does not support the invoked method: ${Z}()`);return!this.isKinematicPositionBased}_requireNotRemoved(Z){if(!this._rigidBody&&!this._rigidBodyDesc)m.error(`RigidBody._requireNotRemoved(): Rigid body has been removed and therefore does not support the invoked method: ${Z}()`);return!!this._rigidBody||!!this._rigidBodyDesc}_requireNotSimulated(Z){if(this.isSimulated)m.error(`RigidBody._requireNotSimulated(): Rigid body is simulated and therefore does not support the invoked method: ${Z}()`);return!this.isSimulated}_isNegligibleVector(Z){return Math.abs(Z.x)<vC&&Math.abs(Z.y)<vC&&Math.abs(Z.z)<vC}}var SC;(($)=>{$[$.Average=0]="Average";$[$.Min=1]="Min";$[$.Multiply=2]="Multiply";$[$.Max=3]="Max"})(SC||={});var vG;((z)=>{z.NONE="none";z.BALL="ball";z.BLOCK="block";z.CAPSULE="capsule";z.CONE="cone";z.CYLINDER="cylinder";z.ROUND_CYLINDER="round-cylinder";z.TRIMESH="trimesh";z.WEDGE="wedge"})(vG||={});class s5 extends j0{_collider;_colliderDesc;_onCollision;_parentRigidBody;_shape;_simulation;_tag;constructor(Z){super();this._colliderDesc=this._createColliderDesc(Z),this._shape=Z.shape,this._applyColliderOptions(Z),this._autoAddToSimulation(Z)}static optionsFromBlockHalfExtents(Z){return{shape:"block",halfExtents:Z}}static optionsFromModelUri(Z,J=1,X){let Y=R5.instance.getBoundingBox(Z),$=Y.max.x-Y.min.x,Q=Y.max.y-Y.min.y,K=Y.max.z-Y.min.z,W=Math.max($,K),G=Math.min($,K),z=W/G,V=W/Q,H=W*J/2,q=(R)=>Math.max(0.01,R),F=()=>({shape:"block",halfExtents:{x:q($*J/2),y:q(Q*J/2),z:q(K*J/2)}}),U=()=>({shape:"round-cylinder",radius:q(H),halfHeight:q(Q*J/2),borderRadius:q(H*0.1)}),w=()=>{let R=R5.instance.getTrimesh(Z,J);if(!R)return;return{shape:"trimesh",vertices:R.vertices,indices:R.indices}},L=()=>({shape:"wedge",extents:{x:$*J,y:Q*J,z:K*J}}),j=()=>({shape:"capsule",radius:q(H),halfHeight:q(Q*J/2-H)});if(X)switch(X){case"block":return F();case"capsule":return j();case"round-cylinder":return U();case"trimesh":{let R=w();if(!R){m.error(`Collider.optionsFromModelUri(): Failed to create trimesh options for model ${Z}, falling back to generic shape!`);break}return R}case"wedge":return L();default:m.warning(`Collider.optionsFromModelUri(): Preferred shape ${X} is not yet supported with Collider.optionsFromModelUri(), defaulting to generic shape!`)}if(z>2)return F();if(V>1.5)return U();return j()}get bounciness(){if(!this._requireNotRemoved("bounciness"))return 0;return this._collider?this._collider.restitution():this._colliderDesc.restitution}get bouncinessCombineRule(){if(!this._requireNotRemoved("bouncinessCombineRule"))return 0;return this._collider?this._collider.restitutionCombineRule():this._colliderDesc.restitutionCombineRule}get collisionGroups(){if(!this._requireNotRemoved("collisionGroups"))return{belongsTo:[],collidesWith:[]};return this._collider?J4.decodeRawCollisionGroups(this._collider.collisionGroups()):J4.decodeRawCollisionGroups(this._colliderDesc.collisionGroups)}get friction(){if(!this._requireNotRemoved("friction"))return 0;return this._collider?this._collider.friction():this._colliderDesc.friction}get frictionCombineRule(){if(!this._requireNotRemoved("frictionCombineRule"))return 0;return this._collider?this._collider.frictionCombineRule():this._colliderDesc.frictionCombineRule}get isEnabled(){if(!this._requireNotRemoved("isEnabled"))return!1;return this._collider?this._collider.isEnabled():this._colliderDesc.enabled}get isRemoved(){return!this._collider&&!this._colliderDesc}get isSensor(){if(!this._requireNotRemoved("isSensor"))return!1;return this._collider?this._collider.isSensor():this._colliderDesc.isSensor}get isSimulated(){if(!this._requireNotRemoved("isSimulated"))return!1;return!!this._collider}get parentRigidBody(){if(!this._requireNotRemoved("parentRigidBody"))return;return this._parentRigidBody}get rawCollider(){if(!this._requireNotRemoved("rawCollider"))return;return this._collider}get rawShape(){if(!this._requireNotRemoved("rawShape"))return;return this._collider?this._collider.shape:this._colliderDesc.shape}get relativePosition(){if(!this._requireNotRemoved("relativePosition"))return{x:0,y:0,z:0};return this._collider?this._collider.translation():this._colliderDesc.translation}get relativeRotation(){if(!this._requireNotRemoved("relativeRotation"))return{x:0,y:0,z:0,w:1};return this._collider?this._collider.rotation():this._colliderDesc.rotation}get shape(){if(!this._requireNotRemoved("shape"))return"none";return this._shape}get tag(){if(!this._requireNotRemoved("tag"))return;return this._tag}setBounciness(Z){if(!this._requireNotRemoved("setBounciness"))return;this._collider?this._collider.setRestitution(Z):this._colliderDesc.setRestitution(Z)}setBouncinessCombineRule(Z){if(!this._requireNotRemoved("setBouncinessCombineRule"))return;this._collider?this._collider.setRestitutionCombineRule(Z):this._colliderDesc.setRestitutionCombineRule(Z)}setCollisionGroups(Z){if(!this._requireNotRemoved("setCollisionGroups"))return;let J=J4.buildRawCollisionGroups(Z);this._collider?this._collider.setCollisionGroups(J):this._colliderDesc.setCollisionGroups(J)}setEnabled(Z){if(!this._requireNotRemoved("setEnabled"))return;this._collider?this._collider.setEnabled(Z):this._colliderDesc.setEnabled(Z)}setFriction(Z){if(!this._requireNotRemoved("setFriction"))return;this._collider?this._collider.setFriction(Z):this._colliderDesc.setFriction(Z)}setFrictionCombineRule(Z){if(!this._requireNotRemoved("setFrictionCombineRule"))return;this._collider?this._collider.setFrictionCombineRule(Z):this._colliderDesc.setFrictionCombineRule(Z)}setMass(Z){if(!this._requireNotRemoved("setMass"))return;this._collider?this._collider.setMass(Z):this._colliderDesc.setMass(Z)}setOnCollision(Z){if(!this._requireNotRemoved("setOnCollision"))return;if(this._onCollision=Z,this.isSimulated)if(this.enableCollisionEvents(!!Z),Z)this._simulation.colliderMap.setColliderCollisionCallback(this,Z);else this._simulation.colliderMap.removeColliderCollisionCallback(this)}setRelativeRotation(Z){if(!this._requireNotRemoved("setRelativeRotation"))return;this._collider?this._collider.setRotation(Z):this._colliderDesc.setRotation(Z)}setRelativePosition(Z){if(!this._requireNotRemoved("setRelativePosition"))return;this._collider?this._collider.setTranslation(Z):this._colliderDesc.setTranslation(Z.x,Z.y,Z.z)}setSensor(Z){if(!this._requireNotRemoved("setSensor"))return;this._collider?this._collider.setSensor(Z):this._colliderDesc.setSensor(Z)}setTag(Z){if(!this._requireNotRemoved("setTag"))return;this._tag=Z}addToSimulation(Z,J){if(!this._requireNotRemoved("addToSimulation"))return;if(!this._requireUnsimulated("addToSimulation"))return;if(J){if(!J.isSimulated)return m.error("Collider.addToSimulation(): Rigid body must be simulated before adding a collider to it!");if(J.type==="dynamic"&&this.shape==="trimesh")m.warning("Collider.addToSimulation(): Trimesh colliders are strongly discouraged to be used with dynamic rigid bodies, they will not contribute any mass!")}if(this._simulation=Z,this._parentRigidBody=J,this._collider=this._simulation.createRawCollider(this._colliderDesc,J?.rawRigidBody),this._colliderDesc=void 0,J)J.linkCollider(this);if(this._onCollision)this.setOnCollision(this._onCollision)}enableCollisionEvents(Z){if(!this._requireNotRemoved("enableCollisionEvents"))return;let J=this._collider?this._collider.activeEvents():this._colliderDesc.activeEvents,X=Z?J|$1.ActiveEvents.COLLISION_EVENTS:J&~$1.ActiveEvents.COLLISION_EVENTS;(this._collider??this._colliderDesc).setActiveEvents(X),this._setActiveCollisionTypes()}enableContactForceEvents(Z){if(!this._requireNotRemoved("enableContactForceEvents"))return;let J=this._collider?this._collider.activeEvents():this._colliderDesc.activeEvents,X=Z?J|$1.ActiveEvents.CONTACT_FORCE_EVENTS:J&~$1.ActiveEvents.CONTACT_FORCE_EVENTS;(this._collider??this._colliderDesc).setActiveEvents(X),this._setActiveCollisionTypes()}removeFromSimulation(){if(!this._requireNotRemoved("removeFromSimulation"))return;if(!this._requireSimulated("removeFromSimulation"))return;if(this._simulation.removeRawCollider(this._collider),this._simulation=void 0,this._collider=void 0,this._parentRigidBody)this._parentRigidBody.unlinkCollider(this);this._parentRigidBody=void 0}_applyColliderOptions(Z){[["bounciness",this.setBounciness.bind(this)],["bouncinessCombineRule",this.setBouncinessCombineRule.bind(this)],["collisionGroups",this.setCollisionGroups.bind(this)],["enabled",this.setEnabled.bind(this)],["friction",this.setFriction.bind(this)],["frictionCombineRule",this.setFrictionCombineRule.bind(this)],["isSensor",this.setSensor.bind(this)],["mass",this.setMass.bind(this)],["onCollision",this.setOnCollision.bind(this)],["relativePosition",this.setRelativePosition.bind(this)],["relativeRotation",this.setRelativeRotation.bind(this)],["tag",this.setTag.bind(this)]].forEach(([X,Y])=>{if(Z[X]!==void 0)Y.call(this,Z[X])})}_autoAddToSimulation(Z){if(Z.simulation)this.addToSimulation(Z.simulation,Z.parentRigidBody)}_buildWedgeConvexHullVertices(Z){let{x:J,y:X,z:Y}=Z,$=J/2,Q=Y/2,K=X/2;return new Float32Array([-$,0-K,-Q,$,0-K,-Q,$,0-K,Q,-$,0-K,Q,-$,X-K,-Q,$,X-K,-Q])}_createColliderDesc(Z){let{shape:J,flags:X}=Z;switch(J){case"ball":{if(!Z.radius)m.fatalError("Ball collider must have a radius!");return $1.ColliderDesc.ball(Z.radius)}case"block":{if(!Z.halfExtents)m.fatalError("Block collider must have halfExtents!");return $1.ColliderDesc.cuboid(Z.halfExtents.x,Z.halfExtents.y,Z.halfExtents.z)}case"capsule":{if(!Z.halfHeight||!Z.radius)m.fatalError("Capsule collider must have halfHeight and radius!");return $1.ColliderDesc.capsule(Z.halfHeight,Z.radius)}case"cone":{if(!Z.radius||!Z.halfHeight)m.fatalError("Cone collider must have radius and halfHeight!");return $1.ColliderDesc.cone(Z.halfHeight,Z.radius)}case"cylinder":{if(!Z.radius||!Z.halfHeight)m.fatalError("Cylinder collider must have radius and halfHeight!");return $1.ColliderDesc.cylinder(Z.halfHeight,Z.radius)}case"round-cylinder":{if(!Z.radius||!Z.halfHeight||!Z.borderRadius)m.fatalError("Round cylinder collider must have radius, halfHeight, and borderRadius!");return $1.ColliderDesc.roundCylinder(Z.halfHeight,Z.radius,Z.borderRadius)}case"trimesh":{if(!Z.indices||!Z.vertices)m.fatalError("Trimesh collider must have vertices and indices!");return $1.ColliderDesc.trimesh(Z.vertices,Z.indices,X)}case"wedge":{if(!Z.extents)m.fatalError("Wedge collider must have extents!");let Y=this._buildWedgeConvexHullVertices(Z.extents),$=$1.ColliderDesc.convexHull(Y);if(!$)throw m.fatalError("Failed to create convex hull for wedge collider!"),new Error("Convex hull creation failed");return $}default:m.fatalError(`Collider._createColliderDesc(): ${J} is not a valid collider shape!`)}}_requireSimulated(Z){if(!this.isSimulated)m.error(`Collider._requireSimulated(): Collider is not simulated, invoked method: ${Z}()`);return this.isSimulated}_requireUnsimulated(Z){if(this.isSimulated)m.error(`Collider._requireUnsimulated(): Collider is already simulated, invoked method: ${Z}()`);return!this.isSimulated}_requireNotRemoved(Z){if(this.isRemoved)m.error(`Collider._requireNotRemoved(): Collider is removed, invoked method: ${Z}()`);return!this.isRemoved}_setActiveCollisionTypes(){(this._collider??this._colliderDesc).setActiveCollisionTypes($1.ActiveCollisionTypes.DYNAMIC_DYNAMIC|$1.ActiveCollisionTypes.DYNAMIC_KINEMATIC|$1.ActiveCollisionTypes.DYNAMIC_FIXED|$1.ActiveCollisionTypes.KINEMATIC_KINEMATIC|$1.ActiveCollisionTypes.KINEMATIC_FIXED)}}var Jj1={shape:"trimesh",flags:L3.FIX_INTERNAL_EDGES},Xj1=new Uint32Array([0,1,2,2,3,0,4,5,6,6,7,4,8,9,10,10,11,8,12,13,14,14,15,12,16,17,18,18,19,16,20,21,22,22,23,20]),Yj1=new Float32Array([-0.5,-0.5,0.5,0.5,-0.5,0.5,0.5,0.5,0.5,-0.5,0.5,0.5,-0.5,-0.5,-0.5,0.5,-0.5,-0.5,0.5,0.5,-0.5,-0.5,0.5,-0.5,-0.5,0.5,-0.5,0.5,0.5,-0.5,0.5,0.5,0.5,-0.5,0.5,0.5,-0.5,-0.5,-0.5,0.5,-0.5,-0.5,0.5,-0.5,0.5,-0.5,-0.5,0.5,0.5,-0.5,-0.5,0.5,0.5,-0.5,0.5,0.5,0.5,0.5,-0.5,0.5,-0.5,-0.5,-0.5,-0.5,0.5,-0.5,-0.5,0.5,0.5,-0.5,-0.5,0.5]),_C;((X)=>{X.ENTITY_COLLISION="BLOCK_TYPE.ENTITY_COLLISION";X.ENTITY_CONTACT_FORCE="BLOCK_TYPE.ENTITY_CONTACT_FORCE"})(_C||={});class o5 extends j0{_id;_customColliderOptions;_isLiquid;_name;_textureUri;constructor(Z={id:-1,textureUri:"textures/missing.png",name:"Unknown"}){if(Z.id<0)m.fatalError("BlockType.constructor(): BlockType id not set.");super();this._id=Z.id,this._customColliderOptions=Z.customColliderOptions,this._isLiquid=Z.isLiquid??!1,this._name=Z.name,this._textureUri=Z.textureUri}get id(){return this._id}get colliderOptions(){return{...this._customColliderOptions,...Jj1}}get isLiquid(){return this._isLiquid}get isMeshable(){return!this._customColliderOptions}get name(){return this._name}get textureUri(){return this._textureUri}createCollider(Z=Xj1,J=Yj1){let X=new s5({...this.colliderOptions,indices:Z,vertices:J});if(this.isLiquid)X.setSensor(!0);if(this.hasListeners("BLOCK_TYPE.ENTITY_COLLISION")||this.isLiquid)X.enableCollisionEvents(!0);if(this.hasListeners("BLOCK_TYPE.ENTITY_CONTACT_FORCE"))X.enableContactForceEvents(!0);if(J4.isDefaultCollisionGroups(X.collisionGroups))X.setCollisionGroups({belongsTo:[1],collidesWith:[65535&~1]});return X}serialize(){return p0.serializeBlockType(this)}}var AC;((J)=>J.REGISTER_BLOCK_TYPE="BLOCK_TYPE_REGISTRY.REGISTER_BLOCK_TYPE")(AC||={});class SG extends j0{_blockTypes=new Map;_world;constructor(Z){super();this._world=Z}get world(){return this._world}getAllBlockTypes(){return Array.from(this._blockTypes.values())}getBlockType(Z){let J=this._blockTypes.get(Z);if(!J)m.fatalError(`BlockTypeRegistry.getBlockType(): BlockType with id ${Z} not found.`);return J}registerGenericBlockType(Z){let X=new class extends o5{constructor(Y=Z){super(Y)}};return this.registerBlockType(X),X}registerBlockType(Z){this._blockTypes.set(Z.id,Z),this.emitWithWorld(this._world,"BLOCK_TYPE_REGISTRY.REGISTER_BLOCK_TYPE",{blockTypeRegistry:this,id:Z.id,blockType:Z})}serialize(){return p0.serializeBlockTypeRegistry(this)}}var Gk={};c4(Gk,{worldSchema:()=>Wk,worldPacketDefinition:()=>Ye,vectorSchema:()=>v1,vectorBooleanSchema:()=>JT1,uiSchema:()=>Qk,uiPacketDefinition:()=>Je,uiDatasSchema:()=>Kk,uiDatasPacketDefinition:()=>Xe,uiDataSendPacketDefinition:()=>ut,uiDataSchema:()=>Jz,syncResponseSchema:()=>$k,syncResponsePacketDefinition:()=>Ze,syncRequestSchema:()=>xT,syncRequestPacketDefinition:()=>mt,stateRequestSchema:()=>AT,stateRequestPacketDefinition:()=>gt,sceneUIsSchema:()=>Yk,sceneUIsPacketDefinition:()=>et,sceneUISchema:()=>Xk,rgbColorSchema:()=>H7,registeredPackets:()=>EL,quaternionSchema:()=>iT,playersSchema:()=>Jk,playersPacketDefinition:()=>tt,playerSchema:()=>Zk,physicsDebugRenderSchema:()=>eT,physicsDebugRenderPacketDefinition:()=>ot,physicsDebugRaycastsSchema:()=>tT,physicsDebugRaycastsPacketDefinition:()=>rt,physicsDebugRaycastSchema:()=>rT,outboundPackets:()=>kL,modelNodeOverrideSchema:()=>pT,lightsSchema:()=>oT,lightsPacketDefinition:()=>st,lightSchema:()=>sT,isValidPacket:()=>YT1,inputSchema:()=>_T,inputPacketDefinition:()=>yt,inboundPackets:()=>TL,hexColorSchema:()=>vT,heartbeatSchema:()=>IT,heartbeatPacketDefinition:()=>ht,entitySchema:()=>nT,entitiesSchema:()=>aT,entitiesPacketDefinition:()=>at,definePacket:()=>E0,debugConfigSchema:()=>ST,debugConfigPacketDefinition:()=>bt,createPacket:()=>pC1,connectionSchema:()=>ET,connectionPacketDefinition:()=>xt,chunksSchema:()=>lT,chunksPacketDefinition:()=>nt,chunkSchema:()=>cT,chatMessagesSchema:()=>dT,chatMessagesPacketDefinition:()=>it,chatMessageSendPacketDefinition:()=>ft,chatMessageSchema:()=>Zz,cameraSchema:()=>uT,cameraPacketDefinition:()=>pt,blocksSchema:()=>yT,blocksPacketDefinition:()=>ct,blockTypesSchema:()=>mT,blockTypesPacketDefinition:()=>lt,blockTypeSchema:()=>gT,blockSchema:()=>bT,bidirectionalPackets:()=>CL,audiosSchema:()=>fT,audiosPacketDefinition:()=>dt,audioSchema:()=>hT,PacketId:()=>x1});var CL={};c4(CL,{heartbeatPacketDefinition:()=>ht,connectionPacketDefinition:()=>xt});var TT=t(_t(),1);class kT extends TT.default{static instance=new TT.default}var x1;((T)=>{T[T.SYNC_REQUEST=0]="SYNC_REQUEST";T[T.INPUT=1]="INPUT";T[T.STATE_REQUEST=2]="STATE_REQUEST";T[T.CHAT_MESSAGE_SEND=3]="CHAT_MESSAGE_SEND";T[T.UI_DATA_SEND=4]="UI_DATA_SEND";T[T.SYNC_RESPONSE=32]="SYNC_RESPONSE";T[T.AUDIOS=33]="AUDIOS";T[T.BLOCKS=34]="BLOCKS";T[T.BLOCK_TYPES=35]="BLOCK_TYPES";T[T.CHAT_MESSAGES=36]="CHAT_MESSAGES";T[T.CHUNKS=37]="CHUNKS";T[T.ENTITIES=38]="ENTITIES";T[T.WORLD=39]="WORLD";T[T.CAMERA=40]="CAMERA";T[T.UI=41]="UI";T[T.UI_DATAS=42]="UI_DATAS";T[T.SCENE_UIS=43]="SCENE_UIS";T[T.LIGHTS=44]="LIGHTS";T[T.PLAYERS=45]="PLAYERS";T[T.CONNECTION=116]="CONNECTION";T[T.HEARTBEAT=117]="HEARTBEAT";T[T.DEBUG_CONFIG=128]="DEBUG_CONFIG";T[T.PHYSICS_DEBUG_RENDER=192]="PHYSICS_DEBUG_RENDER";T[T.PHYSICS_DEBUG_RAYCASTS=193]="PHYSICS_DEBUG_RAYCASTS"})(x1||={});function pC1(Z,J,X){if(!Z.validate(J))throw new Error(`Invalid payload for packet with id ${Z.id}. Error: ${kT.instance.errorsText(Z.validate.errors)}`);let Y=[Z.id,J];if(typeof X==="number")Y.push(X);return Y}function E0(Z,J){return{id:Z,schema:J,validate:kT.instance.compile(J)}}var iC1={type:"object",properties:{i:{type:"string"}},required:["i"],additionalProperties:!1},At={type:"object",properties:{role:{type:"string",enum:["auto","client","server"],nullable:!0},fingerprints:{type:"array",items:{type:"object",properties:{algorithm:{type:"string",enum:["sha-1","sha-224","sha-256","sha-384","sha-512"]},value:{type:"string"}},required:["algorithm","value"]}}},required:["fingerprints"],additionalProperties:!1},nC1={type:"object",properties:{foundation:{type:"string"},priority:{type:"number"},ip:{type:"string"},address:{type:"string"},protocol:{type:"string",enum:["udp","tcp"]},port:{type:"number"},type:{type:"string",enum:["host"]},tcpType:{type:"string",enum:["passive"],nullable:!0}},required:["foundation","priority","ip","address","protocol","port","type"],additionalProperties:!1},aC1={type:"object",properties:{usernameFragment:{type:"string"},password:{type:"string"},iceLite:{type:"boolean",nullable:!0}},required:["usernameFragment","password"],additionalProperties:!1},sC1={type:"object",properties:{i:{type:"string"},l:{type:"string"}},required:["i","l"],additionalProperties:!1},oC1={type:"object",properties:{port:{type:"number"},OS:{type:"number"},MIS:{type:"number"},maxMessageSize:{type:"number"}},required:["port","OS","MIS","maxMessageSize"],additionalProperties:!0},rC1={type:"object",properties:{streamId:{type:"number"},ordered:{type:"boolean",nullable:!0},maxPacketLifeTime:{type:"number",nullable:!0},maxRetransmits:{type:"number",nullable:!0}},required:["streamId"],additionalProperties:!1},tC1={type:"object",properties:{i:{type:"string"},f:{type:"string",enum:["cs","sc"]},ip:aC1,ic:{type:"array",items:nC1},d:At,s:oC1},required:["i","f","ip","ic","d","s"],additionalProperties:!1},eC1={type:"object",properties:{i:{type:"string"},d:At},required:["i","d"],additionalProperties:!1},ZT1={type:"object",properties:{i:{type:"string",nullable:!0},pi:{type:"string",nullable:!0},l:{type:"string"},s:rC1},required:["l","s"],additionalProperties:!1},ET={type:"object",properties:{i:{type:"string",nullable:!0},c:{...eC1,nullable:!0},ca:{...iC1,nullable:!0},d:{type:"array",items:{...ZT1},nullable:!0},pa:{...sC1,nullable:!0},t:{type:"array",items:{...tC1},nullable:!0}},additionalProperties:!1};var xt=E0(116,ET);var IT={type:"null",nullable:!0};var ht=E0(117,IT);var TL={};c4(TL,{uiDataSendPacketDefinition:()=>ut,syncRequestPacketDefinition:()=>mt,stateRequestPacketDefinition:()=>gt,inputPacketDefinition:()=>yt,debugConfigPacketDefinition:()=>bt,chatMessageSendPacketDefinition:()=>ft});var vT={type:"string",pattern:"^[0-9A-Fa-f]{6}$"};var Zz={type:"object",properties:{m:{type:"string"},c:{...vT,nullable:!0},p:{type:"string",nullable:!0}},required:["m"],additionalProperties:!1};var ft=E0(3,Zz);var ST={type:"object",properties:{pdr:{type:"boolean",nullable:!0}},additionalProperties:!1};var bt=E0(128,ST);var _T={type:"object",properties:{"1":{type:"boolean",nullable:!0},"2":{type:"boolean",nullable:!0},"3":{type:"boolean",nullable:!0},"4":{type:"boolean",nullable:!0},"5":{type:"boolean",nullable:!0},"6":{type:"boolean",nullable:!0},"7":{type:"boolean",nullable:!0},"8":{type:"boolean",nullable:!0},"9":{type:"boolean",nullable:!0},"0":{type:"boolean",nullable:!0},w:{type:"boolean",nullable:!0},a:{type:"boolean",nullable:!0},s:{type:"boolean",nullable:!0},d:{type:"boolean",nullable:!0},q:{type:"boolean",nullable:!0},e:{type:"boolean",nullable:!0},r:{type:"boolean",nullable:!0},f:{type:"boolean",nullable:!0},z:{type:"boolean",nullable:!0},x:{type:"boolean",nullable:!0},c:{type:"boolean",nullable:!0},v:{type:"boolean",nullable:!0},u:{type:"boolean",nullable:!0},i:{type:"boolean",nullable:!0},o:{type:"boolean",nullable:!0},j:{type:"boolean",nullable:!0},k:{type:"boolean",nullable:!0},l:{type:"boolean",nullable:!0},n:{type:"boolean",nullable:!0},m:{type:"boolean",nullable:!0},sp:{type:"boolean",nullable:!0},sh:{type:"boolean",nullable:!0},tb:{type:"boolean",nullable:!0},ml:{type:"boolean",nullable:!0},mr:{type:"boolean",nullable:!0},cp:{type:"number",nullable:!0},cy:{type:"number",nullable:!0},sq:{type:"number",nullable:!0}},additionalProperties:!1};var yt=E0(1,_T);var AT={type:"object",properties:{},additionalProperties:!1};var gt=E0(2,AT);var xT={type:"null",nullable:!0};var mt=E0(0,xT);var Jz={type:"object",properties:{},additionalProperties:!0};var ut=E0(4,Jz);var kL={};c4(kL,{worldPacketDefinition:()=>Ye,uiPacketDefinition:()=>Je,uiDatasPacketDefinition:()=>Xe,syncResponsePacketDefinition:()=>Ze,sceneUIsPacketDefinition:()=>et,playersPacketDefinition:()=>tt,physicsDebugRenderPacketDefinition:()=>ot,physicsDebugRaycastsPacketDefinition:()=>rt,lightsPacketDefinition:()=>st,entitiesPacketDefinition:()=>at,chunksPacketDefinition:()=>nt,chatMessagesPacketDefinition:()=>it,cameraPacketDefinition:()=>pt,blocksPacketDefinition:()=>ct,blockTypesPacketDefinition:()=>lt,audiosPacketDefinition:()=>dt});var v1={type:"array",items:[{type:"number"},{type:"number"},{type:"number"}],minItems:3,maxItems:3};var hT={type:"object",properties:{i:{type:"number"},a:{type:"string",nullable:!0},cd:{type:"number",nullable:!0},d:{type:"number",nullable:!0},de:{type:"number",nullable:!0},di:{type:"number",minimum:0,nullable:!0},e:{type:"number",nullable:!0},l:{type:"boolean",nullable:!0},o:{type:"number",nullable:!0},p:{...v1,nullable:!0},pa:{type:"boolean",nullable:!0},pl:{type:"boolean",nullable:!0},pr:{type:"number",minimum:0,nullable:!0},r:{type:"boolean",nullable:!0},rd:{type:"number",nullable:!0},s:{type:"number",nullable:!0},v:{type:"number",minimum:0,maximum:1,nullable:!0}},required:["i"],additionalProperties:!1};var fT={type:"array",items:{...hT}};var dt=E0(33,fT);var bT={type:"object",properties:{i:{type:"number"},c:v1},required:["i","c"],additionalProperties:!1};var yT={type:"array",items:{...bT}};var ct=E0(34,yT);var gT={type:"object",properties:{i:{type:"number"},l:{type:"boolean",nullable:!0},n:{type:"string",nullable:!0},t:{type:"string",nullable:!0}},required:["i"],additionalProperties:!1};var mT={type:"array",items:{...gT}};var lt=E0(35,mT);var uT={type:"object",properties:{m:{type:"number",nullable:!0},e:{type:"number",nullable:!0},et:{type:"number",nullable:!0},fo:{type:"number",nullable:!0},ffo:{type:"number",nullable:!0},fv:{type:"number",nullable:!0},h:{type:"array",items:{type:"string"},nullable:!0},o:{...v1,nullable:!0},p:{...v1,nullable:!0},pt:{...v1,nullable:!0},pl:{...v1,nullable:!0},s:{type:"array",items:{type:"string"},nullable:!0},sa:{type:"number",nullable:!0},z:{type:"number",nullable:!0}},additionalProperties:!1};var dT={type:"array",items:{...Zz}};var cT={type:"object",properties:{c:v1,b:{type:"array",items:{type:"number",minimum:0,maximum:255},minItems:4096,maxItems:4096,nullable:!0},rm:{type:"boolean",nullable:!0}},required:["c"],additionalProperties:!1};var lT={type:"array",items:{...cT}};var H7={type:"array",items:[{type:"number",minimum:0,maximum:255},{type:"number",minimum:0,maximum:255},{type:"number",minimum:0,maximum:255}],minItems:3,maxItems:3};var pT={type:"object",properties:{n:{type:"string"},h:{type:"boolean",nullable:!0},o:{type:"number",minimum:0,maximum:1,nullable:!0},r:{type:"boolean",nullable:!0},s:{type:"number",nullable:!0},t:{...H7,nullable:!0}},required:["n"],additionalProperties:!1};var iT={type:"array",items:[{type:"number"},{type:"number"},{type:"number"},{type:"number"}],minItems:4,maxItems:4};var nT={type:"object",properties:{i:{type:"number"},al:{type:"array",items:{type:"string"},nullable:!0},ao:{type:"array",items:{type:"string"},nullable:!0},ap:{type:"number",nullable:!0},as:{type:"array",items:{type:"string"},nullable:!0},bh:{...v1,nullable:!0},bt:{type:"string",nullable:!0},h:{type:"array",items:{type:"string"},nullable:!0},m:{type:"string",nullable:!0},mo:{type:"array",items:{...pT},nullable:!0},mt:{type:"string",nullable:!0},n:{type:"string",nullable:!0},o:{type:"number",nullable:!0},p:{...v1,nullable:!0},pe:{type:"number",nullable:!0},pn:{type:"string",nullable:!0},r:{...iT,nullable:!0},rm:{type:"boolean",nullable:!0},s:{type:"number",nullable:!0},sn:{type:"array",items:{type:"string"},nullable:!0},t:{...H7,nullable:!0}},required:["i"],additionalProperties:!1};var aT={type:"array",items:{...nT}};var sT={type:"object",properties:{i:{type:"number"},a:{type:"number",nullable:!0},e:{type:"number",nullable:!0},c:{...H7,nullable:!0},d:{type:"number",nullable:!0},n:{type:"number",nullable:!0},o:{...v1,nullable:!0},p:{...v1,nullable:!0},pe:{type:"number",minimum:0,maximum:1,nullable:!0},rm:{type:"boolean",nullable:!0},t:{type:"number",nullable:!0},te:{type:"number",nullable:!0},tp:{...v1,nullable:!0}},required:["i"],additionalProperties:!1};var oT={type:"array",items:{...sT}};var rT={type:"object",properties:{o:{...v1},d:{...v1},l:{type:"number"},h:{type:"boolean"}},required:["o","d","l","h"],additionalProperties:!1};var tT={type:"array",items:{...rT}};var eT={type:"object",properties:{v:{type:"array",items:{type:"number"}},c:{type:"array",items:{type:"number"}}},required:["v","c"],additionalProperties:!1};var Zk={type:"object",properties:{i:{type:"string"},p:{type:"string",nullable:!0},rm:{type:"boolean",nullable:!0},u:{type:"string",nullable:!0}},required:["i"],additionalProperties:!1};var Jk={type:"array",items:{...Zk}};var Xk={type:"object",properties:{i:{type:"number"},e:{type:"number",nullable:!0},o:{...v1,nullable:!0},p:{...v1,nullable:!0},rm:{type:"boolean",nullable:!0},s:{type:"object",nullable:!0},t:{type:"string",nullable:!0},v:{type:"number",nullable:!0}},required:["i"],additionalProperties:!1};var Yk={type:"array",items:{...Xk}};var $k={type:"object",properties:{r:{type:"number"},s:{type:"number"},p:{type:"number"},n:{type:"number"}},required:["r","s","p","n"],additionalProperties:!1};var Qk={type:"object",properties:{p:{type:"boolean",nullable:!0},u:{type:"string",nullable:!0}},additionalProperties:!1};var Kk={type:"array",items:{...Jz}};var JT1={type:"array",items:[{type:"boolean"},{type:"boolean"},{type:"boolean"}],minItems:3,maxItems:3};var Wk={type:"object",properties:{i:{type:"number"},ac:{...H7,nullable:!0},ai:{type:"number",nullable:!0},dc:{...H7,nullable:!0},di:{type:"number",nullable:!0},dp:{...v1,nullable:!0},n:{type:"string",nullable:!0},s:{type:"string",nullable:!0},si:{type:"number",nullable:!0},t:{type:"number",nullable:!0}},required:["i"],additionalProperties:!1};var pt=E0(40,uT);var it=E0(36,dT);var nt=E0(37,lT);var at=E0(38,aT);var st=E0(44,oT);var ot=E0(192,eT);var rt=E0(193,tT);var tt=E0(45,Jk);var et=E0(43,Yk);var Ze=E0(32,$k);var Je=E0(41,Qk);var Xe=E0(42,Kk);var Ye=E0(39,Wk);var EL=new Map,XT1={...CL,...TL,...kL};for(let Z of Object.values(XT1))if("id"in Z&&"schema"in Z){let J=Z;if(EL.has(J.id))throw new Error(`Packet with id ${J.id} is already registered.`);EL.set(J.id,J)}function YT1(Z){if(typeof Z!=="object"||Z===null||typeof Z[0]!=="number"||Z[0]<0||Z[1]===void 0||Z[2]!==void 0&&(typeof Z[2]!=="number"||Z[2]<0))return!1;let J=EL.get(Z[0]);return!!J&&J.validate(Z[1])}var X0=Gk;var Ee=t(Te(),1);import IY from"fs";import ke from"path";var Yz="./dev/persistence";class q7{static instance=new q7;gameId=process.env.HYTOPIA_GAME_ID;lobbyId=process.env.HYTOPIA_LOBBY_ID;_creativeGateway;constructor(){try{this._creativeGateway=new Ee.CreativeGateway}catch{console.warn(["\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501","\uD83D\uDEA8 HYTOPIA PLATFORM GATEWAY IS NOT INITIALIZED \uD83D\uDEA8","","\uD83D\uDD27 Local development is still possible, but these features will be disabled:"," \u2022 \uD83D\uDC64 Player Accounts"," \u2022 \uD83C\uDFAD Player Cosmetics"," \u2022 \uD83D\uDC1B Crash Analytics & Debug Logs","","\uD83D\uDCA1 These features will be enabled but modified:"," \u2022 \uD83D\uDCBE Player & Global Persisted Data - Data will be persisted"," locally in the ./dev/persistence directory of your project."," Player ids for data persistence will begin at 1 for the first "," player to join your local server, and increments for each"," additional player. This means that if you restart your"," server, the first player id will be 1 again. This is to ensure"," that data persistence across server restarts can be easily"," tested and debugged in local development.","","To enable the HYTOPIA Platform Gateway locally:"," 1. Set these environment variables:"," HYTOPIA_API_KEY, HYTOPIA_GAME_ID, HYTOPIA_LOBBY_ID"," 2. You can find these values at: https://create.hytopia.com","","Note: In production, these environment variables will be auto-populated ","& the HYTOPIA Platform Gateway will automatically be initialized \uD83D\uDE80","\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501",""].join(`
|
407
407
|
`))}}get isGatewayAvailable(){return!!this._creativeGateway}async getData(Z){if(!this._creativeGateway&&process.env.NODE_ENV==="production")return m.warning("PlatformGateway.getData(): You are running in production mode, but the Platform Gateway is not initialized! No data will be returned.");return this._creativeGateway?await this._creativeGateway.kv.get(Z):this._readDevDataLocally(Z)}async getPlayerLoadout(Z){if(!this._creativeGateway)return;return await this._creativeGateway.getLoadout(Z)}async getPlayerSession(Z){if(!this._creativeGateway)return;return await this._creativeGateway.getSession(Z)}async setData(Z,J){if(J.error)return m.warning("PlatformGateway.setData(): Cannot set data with an error property.");if(!this._creativeGateway&&process.env.NODE_ENV==="production")return m.warning("PlatformGateway.setData(): You are running in production mode, but the Platform Gateway is not initialized! No data will be set.");return this._creativeGateway?await this._creativeGateway.kv.set(Z,J):this._writeDevDataLocally(Z,J)}_readDevDataLocally(Z){try{if(!IY.existsSync(Yz))return;let J=ke.join(Yz,`${Z}.json`);return JSON.parse(IY.readFileSync(J,"utf8"))}catch(J){m.warning(`PlatformGateway._readDevDataLocally(): Failed to read data for key "${Z}": ${J}`)}}_writeDevDataLocally(Z,J){try{if(!IY.existsSync(Yz))IY.mkdirSync(Yz,{recursive:!0});let X=ke.join(Yz,`${Z}.json`),Y={};if(IY.existsSync(X))Y=JSON.parse(IY.readFileSync(X,"utf8"));let $={...Y,...J};IY.writeFileSync(X,JSON.stringify($,null,2),"utf8")}catch(X){m.warning(`PlatformGateway._writeDevDataLocally(): Failed to write data for key "${Z}": ${X}`)}}}class vY{static instance=new vY;constructor(){}async getGlobalData(Z){let J=await q7.instance.getData(Z);if(!J||J.error){if(J?.error)m.warning(`PersistenceManager.getGlobalData(): ${J.error.message}`);return}return J}async getPlayerData(Z){let J=await q7.instance.getData(this._getPlayerKey(Z));if(!J||J.error){if(J?.error)m.warning(`PersistenceManager.getPlayerData(): ${J.error.message}`);return}return J}async setGlobalData(Z,J){let X=await q7.instance.setData(Z,J);if(!X||X.error){if(X?.error)m.warning(`PersistenceManager.setGlobalData(): ${X.error.message}`);return}return X}async setPlayerData(Z,J){let X=await q7.instance.setData(this._getPlayerKey(Z),J);if(!X||X.error){if(X?.error)m.warning(`PersistenceManager.setPlayerData(): ${X.error.message}`);return}return X}_getPlayerKey(Z){return`player-${Z.id}`}}var Ie;((Y)=>{Y[Y.FIRST_PERSON=0]="FIRST_PERSON";Y[Y.THIRD_PERSON=1]="THIRD_PERSON";Y[Y.SPECTATOR=2]="SPECTATOR"})(Ie||={});var Vk;((w)=>{w.LOOK_AT_ENTITY="PLAYER_CAMERA.LOOK_AT_ENTITY";w.LOOK_AT_POSITION="PLAYER_CAMERA.LOOK_AT_POSITION";w.SET_ATTACHED_TO_ENTITY="PLAYER_CAMERA.SET_ATTACHED_TO_ENTITY";w.SET_ATTACHED_TO_POSITION="PLAYER_CAMERA.SET_ATTACHED_TO_POSITION";w.SET_FILM_OFFSET="PLAYER_CAMERA.SET_FILM_OFFSET";w.SET_FORWARD_OFFSET="PLAYER_CAMERA.SET_FORWARD_OFFSET";w.SET_FOV="PLAYER_CAMERA.SET_FOV";w.SET_MODEL_HIDDEN_NODES="PLAYER_CAMERA.SET_MODEL_HIDDEN_NODES";w.SET_MODEL_SHOWN_NODES="PLAYER_CAMERA.SET_MODEL_SHOWN_NODES";w.SET_MODE="PLAYER_CAMERA.SET_MODE";w.SET_OFFSET="PLAYER_CAMERA.SET_OFFSET";w.SET_SHOULDER_ANGLE="PLAYER_CAMERA.SET_SHOULDER_ANGLE";w.SET_TRACKED_ENTITY="PLAYER_CAMERA.SET_TRACKED_ENTITY";w.SET_TRACKED_POSITION="PLAYER_CAMERA.SET_TRACKED_POSITION";w.SET_ZOOM="PLAYER_CAMERA.SET_ZOOM"})(Vk||={});class $z extends j0{player;_attachedToEntity;_attachedToPosition;_filmOffset=0;_forwardOffset=0;_fov=75;_modelHiddenNodes=new Set;_modelShownNodes=new Set;_mode=1;_offset={x:0,y:0,z:0};_orientation={pitch:0,yaw:0};_shoulderAngle=0;_trackedEntity;_trackedPosition;_zoom=1;constructor(Z){super();this.player=Z}get attachedToEntity(){return this._attachedToEntity}get attachedToPosition(){return this._attachedToPosition}get facingDirection(){return{x:-Math.sin(this._orientation.yaw)*Math.cos(this._orientation.pitch),y:Math.sin(this._orientation.pitch),z:-Math.cos(this._orientation.yaw)*Math.cos(this._orientation.pitch)}}get facingQuaternion(){let Z=this._orientation.pitch*0.5,J=this._orientation.yaw*0.5,X=Math.cos(Z),Y=Math.sin(Z),$=Math.cos(J),Q=Math.sin(J);return{x:Y*$,y:X*Q,z:-Y*Q,w:X*$}}get filmOffset(){return this._filmOffset}get forwardOffset(){return this._forwardOffset}get fov(){return this._fov}get modelHiddenNodes(){return this._modelHiddenNodes}get modelShownNodes(){return this._modelShownNodes}get mode(){return this._mode}get offset(){return this._offset}get orientation(){return this._orientation}get shoulderAngle(){return this._shoulderAngle}get trackedEntity(){return this._trackedEntity}get trackedPosition(){return this._trackedPosition}get zoom(){return this._zoom}lookAtEntity(Z){if(!this._requirePlayerWorld())return;this.emitWithWorld(this.player.world,"PLAYER_CAMERA.LOOK_AT_ENTITY",{playerCamera:this,entity:Z})}lookAtPosition(Z){if(!this._requirePlayerWorld())return;this.emitWithWorld(this.player.world,"PLAYER_CAMERA.LOOK_AT_POSITION",{playerCamera:this,position:Z})}reset(){this._attachedToEntity=void 0,this._attachedToPosition=void 0,this._orientation={pitch:0,yaw:0},this._trackedEntity=void 0,this._trackedPosition=void 0}setAttachedToEntity(Z){if(!this._requirePlayerWorld())return;if(!Z.isSpawned)return m.error(`PlayerCamera.setAttachedToEntity(): Entity ${Z.id} is not spawned!`);this._attachedToEntity=Z,this.emitWithWorld(this.player.world,"PLAYER_CAMERA.SET_ATTACHED_TO_ENTITY",{playerCamera:this,entity:Z})}setAttachedToPosition(Z){if(!this._requirePlayerWorld())return;this._attachedToPosition=Z,this.emitWithWorld(this.player.world,"PLAYER_CAMERA.SET_ATTACHED_TO_POSITION",{playerCamera:this,position:Z})}setFilmOffset(Z){if(!this._requirePlayerWorld())return;this._filmOffset=Z,this.emitWithWorld(this.player.world,"PLAYER_CAMERA.SET_FILM_OFFSET",{playerCamera:this,filmOffset:Z})}setForwardOffset(Z){if(!this._requirePlayerWorld())return;this._forwardOffset=Z,this.emitWithWorld(this.player.world,"PLAYER_CAMERA.SET_FORWARD_OFFSET",{playerCamera:this,forwardOffset:Z})}setFov(Z){if(!this._requirePlayerWorld())return;this._fov=Z,this.emitWithWorld(this.player.world,"PLAYER_CAMERA.SET_FOV",{playerCamera:this,fov:Z})}setModelHiddenNodes(Z){if(!this._requirePlayerWorld())return;this._modelHiddenNodes=new Set(Z.map((J)=>J.toLowerCase())),this.emitWithWorld(this.player.world,"PLAYER_CAMERA.SET_MODEL_HIDDEN_NODES",{playerCamera:this,modelHiddenNodes:this._modelHiddenNodes})}setModelShownNodes(Z){if(!this._requirePlayerWorld())return;this._modelShownNodes=new Set(Z.map((J)=>J.toLowerCase())),this.emitWithWorld(this.player.world,"PLAYER_CAMERA.SET_MODEL_SHOWN_NODES",{playerCamera:this,modelShownNodes:this._modelShownNodes})}setMode(Z){if(!this._requirePlayerWorld())return;this._mode=Z,this.emitWithWorld(this.player.world,"PLAYER_CAMERA.SET_MODE",{playerCamera:this,mode:Z})}setOffset(Z){if(!this._requirePlayerWorld())return;this._offset=Z,this.emitWithWorld(this.player.world,"PLAYER_CAMERA.SET_OFFSET",{playerCamera:this,offset:Z})}setOrientationPitch(Z){this._orientation.pitch=Z}setOrientationYaw(Z){this._orientation.yaw=Z}setShoulderAngle(Z){if(!this._requirePlayerWorld())return;this._shoulderAngle=Z,this.emitWithWorld(this.player.world,"PLAYER_CAMERA.SET_SHOULDER_ANGLE",{playerCamera:this,shoulderAngle:Z})}setTrackedEntity(Z){if(!this._requirePlayerWorld())return;this._trackedEntity=Z,this.emitWithWorld(this.player.world,"PLAYER_CAMERA.SET_TRACKED_ENTITY",{playerCamera:this,entity:Z})}setTrackedPosition(Z){if(!this._requirePlayerWorld())return;this._trackedPosition=Z,this.emitWithWorld(this.player.world,"PLAYER_CAMERA.SET_TRACKED_POSITION",{playerCamera:this,position:Z})}setZoom(Z){if(!this._requirePlayerWorld())return;this._zoom=Z,this.emitWithWorld(this.player.world,"PLAYER_CAMERA.SET_ZOOM",{playerCamera:this,zoom:Z})}serialize(){return p0.serializePlayerCamera(this)}_requirePlayerWorld(){if(!this.player.world)m.error(`PlayerCamera._requirePlayerWorld(): Player ${this.player.id} is not in a world!`);return!!this.player.world}}var vL;(($)=>{$.DATA="PLAYER_UI.DATA";$.LOAD="PLAYER_UI.LOAD";$.LOCK_POINTER="PLAYER_UI.LOCK_POINTER";$.SEND_DATA="PLAYER_UI.SEND_DATA"})(vL||={});class Qz extends j0{player;constructor(Z){super();this.player=Z}load(Z){if(!this.player.world)return;this.emitWithWorld(this.player.world,"PLAYER_UI.LOAD",{playerUI:this,htmlUri:Z})}lockPointer(Z){if(!this.player.world)return;this.emitWithWorld(this.player.world,"PLAYER_UI.LOCK_POINTER",{playerUI:this,lock:Z})}sendData(Z){if(!this.player.world)return;this.emitWithWorld(this.player.world,"PLAYER_UI.SEND_DATA",{playerUI:this,data:Z})}}var ve=["w","a","s","d","sp","sh","tb","ml","mr","q","e","r","f","z","x","c","v","u","i","o","j","k","l","n","m","1","2","3","4","5","6","7","8","9","0"],Kz;((Q)=>{Q.CHAT_MESSAGE_SEND="PLAYER.CHAT_MESSAGE_SEND";Q.JOINED_WORLD="PLAYER.JOINED_WORLD";Q.LEFT_WORLD="PLAYER.LEFT_WORLD";Q.RECONNECTED_WORLD="PLAYER.RECONNECTED_WORLD";Q.REQUEST_SYNC="PLAYER.REQUEST_SYNC"})(Kz||={});class KK extends j0{static _devNextPlayerId=1;id;username;profilePictureUrl;camera;connection;ui;_input={};_lastUnreliableInputSequenceNumber=0;_world;_worldSwitched=!1;constructor(Z,J){super();this.id=J?.user.id??`player-${KK._devNextPlayerId++}`,this.username=J?.user.username??this.id,this.profilePictureUrl=J?.user.profilePictureURL??void 0,this.camera=new $z(this),this.connection=Z,this.ui=new Qz(this),Z.onPacket(X0.PacketId.CHAT_MESSAGE_SEND,this._onChatMessageSendPacket),Z.onPacket(X0.PacketId.DEBUG_CONFIG,this._onDebugConfigPacket),Z.onPacket(X0.PacketId.INPUT,this._onInputPacket),Z.onPacket(X0.PacketId.SYNC_REQUEST,this._onSyncRequestPacket),Z.onPacket(X0.PacketId.UI_DATA_SEND,this._onUIDataSendPacket)}get input(){return this._input}get world(){return this._world}disconnect(){this._leaveWorld(),this.connection.disconnect()}async getPersistedData(){return vY.instance.getPlayerData(this)}joinWorld(Z){if(this._world===Z)return;if(!this._world)this._world=Z,this.emitWithWorld(this._world,"PLAYER.JOINED_WORLD",{player:this,world:this._world});else{for(let J of this._world.entityManager.getPlayerEntitiesByPlayer(this))if(J.isSpawned)J.despawn();this.disconnect(),this._world=Z,this._worldSwitched=!0}}reconnected(){if(!this._world)return;if(this._lastUnreliableInputSequenceNumber=0,!this._worldSwitched)this.emitWithWorld(this._world,"PLAYER.RECONNECTED_WORLD",{player:this,world:this._world});else this._worldSwitched=!1,this.emitWithWorld(this._world,"PLAYER.JOINED_WORLD",{player:this,world:this._world})}resetInputs(){this._input={}}async setPersistedData(Z){return vY.instance.setPlayerData(this,Z)}serialize(){return p0.serializePlayer(this)}_leaveWorld(){if(!this._world)return;this.emitWithWorld(this._world,"PLAYER.LEFT_WORLD",{player:this,world:this._world}),this._world=void 0}_onChatMessageSendPacket=(Z)=>{if(this._world)this.emitWithWorld(this._world,"PLAYER.CHAT_MESSAGE_SEND",{player:this,message:Z[1].m})};_onDebugConfigPacket=(Z)=>{console.log(Z)};_onInputPacket=(Z)=>{let J=Z[1];if(J.sq!==void 0){if(J.sq<this._lastUnreliableInputSequenceNumber)return;this._lastUnreliableInputSequenceNumber=J.sq}if(ve.forEach((X)=>{let Y=X;if(J[Y]!==void 0)this._input[Y]=Boolean(J[Y])}),J.cp!==void 0)this.camera.setOrientationPitch(J.cp);if(J.cy!==void 0)this.camera.setOrientationYaw(J.cy)};_onSyncRequestPacket=()=>{if(this._world)this.emitWithWorld(this._world,"PLAYER.REQUEST_SYNC",{player:this,receivedAt:Date.now(),receivedAtMs:performance.now()})};_onUIDataSendPacket=(Z)=>{this.ui.emit("PLAYER_UI.DATA",{playerUI:this.ui,data:Z[1]})}}var Hk;((X)=>{X.BROADCAST_MESSAGE="CHAT.BROADCAST_MESSAGE";X.PLAYER_MESSAGE="CHAT.PLAYER_MESSAGE"})(Hk||={});class Wz extends j0{_commandCallbacks={};_world;constructor(Z){super();this._world=Z,this._subscribeToPlayerEvents()}registerCommand(Z,J){this._commandCallbacks[Z]=J}unregisterCommand(Z){delete this._commandCallbacks[Z]}sendBroadcastMessage(Z,J){this._sendBroadcastMessage(void 0,Z,J)}sendPlayerMessage(Z,J,X){this.emitWithWorld(this._world,"CHAT.PLAYER_MESSAGE",{player:Z,message:J,color:X})}_subscribeToPlayerEvents(){this._world.on("PLAYER.CHAT_MESSAGE_SEND",(Z)=>{let{player:J,message:X}=Z,[Y,...$]=X.split(" "),Q=this._commandCallbacks[Y];if(Q){Q(J,$,X);return}this._sendBroadcastMessage(J,X)})}_sendBroadcastMessage(Z,J,X){this.emitWithWorld(this._world,"CHAT.BROADCAST_MESSAGE",{player:Z,message:J,color:X})}}var D8=16,WK=D8-1,Se=D8**3,ET1=[{neighborOffset:[-1,0,0],generateVertices:(Z,J,X)=>[Z+0,J+0,X+0,Z+0,J+0,X+1,Z+0,J+1,X+0,Z+0,J+1,X+0,Z+0,J+0,X+1,Z+0,J+1,X+1]},{neighborOffset:[1,0,0],generateVertices:(Z,J,X)=>[Z+1,J+0,X+0,Z+1,J+1,X+0,Z+1,J+0,X+1,Z+1,J+1,X+0,Z+1,J+1,X+1,Z+1,J+0,X+1]},{neighborOffset:[0,-1,0],generateVertices:(Z,J,X)=>[Z+0,J+0,X+0,Z+1,J+0,X+0,Z+0,J+0,X+1,Z+1,J+0,X+0,Z+1,J+0,X+1,Z+0,J+0,X+1]},{neighborOffset:[0,1,0],generateVertices:(Z,J,X)=>[Z+0,J+1,X+0,Z+0,J+1,X+1,Z+1,J+1,X+0,Z+1,J+1,X+0,Z+0,J+1,X+1,Z+1,J+1,X+1]},{neighborOffset:[0,0,-1],generateVertices:(Z,J,X)=>[Z+0,J+0,X+0,Z+0,J+1,X+0,Z+1,J+0,X+0,Z+0,J+1,X+0,Z+1,J+1,X+0,Z+1,J+0,X+0]},{neighborOffset:[0,0,1],generateVertices:(Z,J,X)=>[Z+0,J+0,X+1,Z+1,J+0,X+1,Z+0,J+1,X+1,Z+0,J+1,X+1,Z+1,J+0,X+1,Z+1,J+1,X+1]}],qk;((Y)=>{Y.DESPAWN="CHUNK.DESPAWN";Y.SET_BLOCK="CHUNK.SET_BLOCK";Y.SPAWN="CHUNK.SPAWN"})(qk||={});class v6 extends j0{_blocks;_originCoordinate;_requiresUpdate=!1;_rigidBody;_world;constructor(){super();this._blocks=new Uint8Array(Se)}get blocks(){return this._blocks}get requiresUpdate(){return this._requiresUpdate}get isSimulated(){return!!this._rigidBody}get isSpawned(){return!!this._originCoordinate&&!!this._world}get originCoordinate(){return this._originCoordinate}get world(){return this._world}static blockIndexToLocalCoordinate(Z){return{x:Z%D8,y:(Z/D8|0)%D8,z:Z/(D8*D8)|0}}static globalCoordinateToLocalCoordinate(Z){return{x:Z.x&D8-1,y:Z.y&D8-1,z:Z.z&D8-1}}static globalCoordinateToOriginCoordinate(Z){return{x:Z.x&~(D8-1),y:Z.y&~(D8-1),z:Z.z&~(D8-1)}}static isValidOriginCoordinate(Z){return Z.x%D8===0&&Z.y%D8===0&&Z.z%D8===0}spawn(Z,J){if(this.isSpawned){let{x:X,y:Y,z:$}=this.originCoordinate;return m.error(`Chunk.spawn(): Chunk is already spawned at origin ${X}, ${Y}, ${$}!`)}if(!v6.isValidOriginCoordinate(J))return m.error(`Chunk.spawn(): Chunk coordinates must be divisible by ${D8}`);this._originCoordinate=J,this._world=Z,this._world.chunkLattice.registerChunk(this),this._requiresUpdate=!0}despawn(){if(!this.isSpawned)return m.error("Chunk.despawn(): Chunk has not been spawned and cannot be despawned!");this.emitWithWorld(this._world,"CHUNK.DESPAWN",{chunk:this}),this._removeFromSimulation(),this._world.chunkLattice.unregisterChunk(this),this._originCoordinate=void 0,this._world=void 0}getBlockId(Z){return this._blocks[this._getIndex(Z)]}hasBlock(Z){return this._blocks[this._getIndex(Z)]!==0}setBlock(Z,J){if(!this._isValidLocalCoordinate(Z))return m.error("Chunk.setBlock(): Block local coordinate is out of bounds");if(this._blocks[this._getIndex(Z)]===J)return;if(this._blocks[this._getIndex(Z)]=J,this.isSpawned&&this.isSimulated){this.emitWithWorld(this._world,"CHUNK.SET_BLOCK",{chunk:this,globalCoordinate:this._getGlobalCoordinate(Z),localCoordinate:Z,blockTypeId:J});let X=this._getGlobalCoordinate(Z),Y=[];if(Z.x===0)Y.push({x:-1,y:0,z:0});if(Z.y===0)Y.push({x:0,y:-1,z:0});if(Z.z===0)Y.push({x:0,y:0,z:-1});if(Z.x===WK)Y.push({x:1,y:0,z:0});if(Z.y===WK)Y.push({x:0,y:1,z:0});if(Z.z===WK)Y.push({x:0,y:0,z:1});for(let $ of Y){let Q={x:X.x+$.x,y:X.y+$.y,z:X.z+$.z},K=v6.globalCoordinateToOriginCoordinate(Q),W=this._world?.chunkLattice.getChunk(K);if(!W?.hasBlock(v6.globalCoordinateToLocalCoordinate(Q)))continue;W.setRequiresUpdate(!0)}}this._requiresUpdate=!0}setRequiresUpdate(Z){this._requiresUpdate=Z}update(){if(!this._requiresUpdate)return;if(!this.isSpawned)return m.error("Chunk.update(): Chunk is not spawned and cannot be updated.");let Z=!this._rigidBody,J=this._world.simulation;if(this._removeFromSimulation(),this._rigidBody=new NY({type:"fixed",position:this._originCoordinate,simulation:this._world.simulation}),this._meshColliders().map(([X,Y])=>{if(!X.isSimulated)X.addToSimulation(J,this._rigidBody);J.colliderMap.setColliderBlockType(X,Y)}),this._requiresUpdate=!1,Z)this.emitWithWorld(this._world,"CHUNK.SPAWN",{chunk:this})}serialize(){return p0.serializeChunk(this)}_meshColliders(){if(!this._world)return m.error("Chunk._meshColliders(): Chunk is not spawned and cannot be meshed."),[];let Z=new Map,J=[];for(let Y=0;Y<Se;Y++){if(this._blocks[Y]===0)continue;let $=this._blocks[Y],Q=this._world.blockTypeRegistry.getBlockType($),{x:K,y:W,z:G}=v6.blockIndexToLocalCoordinate(Y);if(!Q.isMeshable){let V=Q.createCollider();V.setRelativePosition({x:K,y:W,z:G}),J.push([V,Q]);continue}let z=Z.get(Q)??{indices:[],vertices:[]};Z.set(Q,z);for(let V of ET1){let[H,q,F]=V.neighborOffset,U={x:K+H,y:W+q,z:G+F},w=this._getGlobalCoordinate(U),L=this._world.chunkLattice.getBlockType(w);if(L&&!L.isLiquid)continue;let j=z.indices.length;z.indices.push(j,j+1,j+2,j+3,j+4,j+5),z.vertices.push(...V.generateVertices(K,W,G))}}let X=[];return Z.forEach((Y,$)=>{if(!Y.indices.length)return;let Q=$.createCollider(new Uint32Array(Y.indices),new Float32Array(Y.vertices));X.push([Q,$])}),[...J,...X]}_removeFromSimulation(){if(!this._rigidBody||!this._world)return;this._rigidBody.removeFromSimulation(),this._rigidBody=void 0}_getGlobalCoordinate(Z){if(!this.originCoordinate)m.fatalError("Chunk._getGlobalCoordinate(): Chunk is not spawned, calculating global coordinate is impossible.");return{x:this.originCoordinate.x+Z.x,y:this.originCoordinate.y+Z.y,z:this.originCoordinate.z+Z.z}}_getIndex(Z){return Z.x+D8*(Z.y+D8*Z.z)}_isValidLocalCoordinate(Z){return Z.x>=0&&Z.x<=WK&&Z.y>=0&&Z.y<=WK&&Z.z>=0&&Z.z<=WK}}class Gz{_chunks=new Map;_world;constructor(Z){this._world=Z}get chunkCount(){return this._chunks.size}registerChunk(Z){if(!Z.isSpawned)return m.error("ChunkLattice.registerChunk(): Chunk is not spawned.");if(this.hasChunk(Z.originCoordinate)){let{x:J,y:X,z:Y}=Z.originCoordinate;return m.error(`ChunkLattice.registerChunk(): Chunk exists at origin (${J}, ${X}, ${Y}), despawn the current chunk before registering another at the same origin.`)}if(Z.world.id!==this._world.id)return m.error("ChunkLattice.registerChunk(): Chunk world does not match lattice world.");this._chunks.set(this._getChunkKey(Z.originCoordinate),Z)}unregisterChunk(Z){if(!Z.isSpawned)return m.error("ChunkLattice.unregisterChunk(): Chunk is not spawned.");if(Z.world.id!==this._world.id)return m.error("ChunkLattice.unregisterChunk(): Chunk world does not match lattice world.");this._chunks.delete(this._getChunkKey(Z.originCoordinate))}clear(){this._chunks.forEach((Z)=>Z.despawn()),this._chunks.clear()}getBlockId(Z){let J=this.getChunk(v6.globalCoordinateToOriginCoordinate(Z));if(!J)return 0;return J.getBlockId(v6.globalCoordinateToLocalCoordinate(Z))}getBlockType(Z){let J=this.getBlockId(Z);return J?this._world.blockTypeRegistry.getBlockType(J):null}getChunk(Z){if(!v6.isValidOriginCoordinate(Z)){m.error(`ChunkLattice.getChunk(): Chunk coordinates must be divisible by CHUNK_SIZE (${D8})`);return}return this._chunks.get(this._getChunkKey(Z))}getAllChunks(){return Array.from(this._chunks.values())}hasBlock(Z){let J=this.getChunk(v6.globalCoordinateToOriginCoordinate(Z));if(!J)return!1;return J.hasBlock(v6.globalCoordinateToLocalCoordinate(Z))}hasChunk(Z){return this._chunks.has(this._getChunkKey(Z))}setBlock(Z,J){let X=v6.globalCoordinateToLocalCoordinate(Z),Y=v6.globalCoordinateToOriginCoordinate(Z),$=this.getChunk(Y);if(!$)$=new v6,$.spawn(this._world,Y);$.setBlock(X,J)}updateChunks(){this._chunks.forEach((Z)=>{if(Z.requiresUpdate)Z.update()})}_getChunkKey(Z){return`${Z.x},${Z.y},${Z.z}`}}class zz{_colliderHandleBlockTypeMap=new Map;_colliderHandleCollisionCallbackMap=new Map;_colliderHandleEntityMap=new Map;_cleanupBlockTypeColliderHandles=new Set;_pendingCleanupBlockTypeColliderHandles=new Set;_cleanupCollisionCallbackColliderHandles=new Set;_pendingCleanupCollisionCallbackColliderHandles=new Set;_cleanupEntityColliderHandles=new Set;_pendingCleanupEntityColliderHandles=new Set;getColliderBlockType(Z){if(!this._requireSimulatedCollider(Z))return;return this._colliderHandleBlockTypeMap.get(Z.rawCollider.handle)}getColliderCollisionCallback(Z){if(!this._requireSimulatedCollider(Z))return;return this._colliderHandleCollisionCallbackMap.get(Z.rawCollider.handle)}getColliderEntity(Z){if(!this._requireSimulatedCollider(Z))return;return this._colliderHandleEntityMap.get(Z.rawCollider.handle)}getColliderHandleBlockType(Z){return this._colliderHandleBlockTypeMap.get(Z)}getColliderHandleCollisionCallback(Z){return this._colliderHandleCollisionCallbackMap.get(Z)}getColliderHandleEntity(Z){return this._colliderHandleEntityMap.get(Z)}removeColliderBlockType(Z){if(!this._requireSimulatedCollider(Z))return;this.removeColliderHandleBlockType(Z.rawCollider.handle)}removeColliderCollisionCallback(Z){if(!this._requireSimulatedCollider(Z))return;this.removeColliderHandleCollisionCallback(Z.rawCollider.handle)}removeColliderEntity(Z){if(!this._requireSimulatedCollider(Z))return;this.removeColliderHandleEntity(Z.rawCollider.handle)}removeColliderHandleBlockType(Z){this._colliderHandleBlockTypeMap.delete(Z)}removeColliderHandleCollisionCallback(Z){this._colliderHandleCollisionCallbackMap.delete(Z)}removeColliderHandleEntity(Z){this._colliderHandleEntityMap.delete(Z)}setColliderBlockType(Z,J){if(!this._requireSimulatedCollider(Z))return;this.setColliderHandleBlockType(Z.rawCollider.handle,J)}setColliderCollisionCallback(Z,J){if(!this._requireSimulatedCollider(Z))return;this.setColliderHandleCollisionCallback(Z.rawCollider.handle,J)}setColliderEntity(Z,J){if(!this._requireSimulatedCollider(Z))return;this.setColliderHandleEntity(Z.rawCollider.handle,J)}setColliderHandleBlockType(Z,J){this._colliderHandleBlockTypeMap.set(Z,J),this._cleanupBlockTypeColliderHandles.delete(Z),this._pendingCleanupBlockTypeColliderHandles.delete(Z)}setColliderHandleCollisionCallback(Z,J){this._colliderHandleCollisionCallbackMap.set(Z,J),this._cleanupCollisionCallbackColliderHandles.delete(Z),this._pendingCleanupCollisionCallbackColliderHandles.delete(Z)}setColliderHandleEntity(Z,J){this._colliderHandleEntityMap.set(Z,J),this._cleanupEntityColliderHandles.delete(Z),this._pendingCleanupEntityColliderHandles.delete(Z)}queueColliderHandleForCleanup(Z){if(this._colliderHandleBlockTypeMap.has(Z))this._pendingCleanupBlockTypeColliderHandles.add(Z);if(this._colliderHandleCollisionCallbackMap.has(Z))this._pendingCleanupCollisionCallbackColliderHandles.add(Z);if(this._colliderHandleEntityMap.has(Z))this._pendingCleanupEntityColliderHandles.add(Z)}cleanup(){for(let Z of this._cleanupBlockTypeColliderHandles)this._colliderHandleBlockTypeMap.delete(Z);if(this._cleanupBlockTypeColliderHandles.size>0)this._cleanupBlockTypeColliderHandles.clear();for(let Z of this._cleanupCollisionCallbackColliderHandles)this._colliderHandleCollisionCallbackMap.delete(Z);if(this._cleanupCollisionCallbackColliderHandles.size>0)this._cleanupCollisionCallbackColliderHandles.clear();for(let Z of this._cleanupEntityColliderHandles)this._colliderHandleEntityMap.delete(Z);if(this._cleanupEntityColliderHandles.size>0)this._cleanupEntityColliderHandles.clear();for(let Z of this._pendingCleanupBlockTypeColliderHandles)this._cleanupBlockTypeColliderHandles.add(Z);if(this._pendingCleanupBlockTypeColliderHandles.size>0)this._pendingCleanupBlockTypeColliderHandles.clear();for(let Z of this._pendingCleanupCollisionCallbackColliderHandles)this._cleanupCollisionCallbackColliderHandles.add(Z);if(this._pendingCleanupCollisionCallbackColliderHandles.size>0)this._pendingCleanupCollisionCallbackColliderHandles.clear();for(let Z of this._pendingCleanupEntityColliderHandles)this._cleanupEntityColliderHandles.add(Z);if(this._pendingCleanupEntityColliderHandles.size>0)this._pendingCleanupEntityColliderHandles.clear()}_requireSimulatedCollider(Z){if(!Z.rawCollider)m.error("ColliderMap._requireSimulatedCollider(): Collider is not in the simulation.");return!!Z.rawCollider}}var _e={type:"dynamic",softCcdPrediction:1},Ae=0.015625,xe=Math.cos(0.026),Vz;((O)=>{O.BLOCK_COLLISION="ENTITY.BLOCK_COLLISION";O.BLOCK_CONTACT_FORCE="ENTITY.BLOCK_CONTACT_FORCE";O.DESPAWN="ENTITY.DESPAWN";O.ENTITY_COLLISION="ENTITY.ENTITY_COLLISION";O.ENTITY_CONTACT_FORCE="ENTITY.ENTITY_CONTACT_FORCE";O.SET_MODEL_ANIMATIONS_PLAYBACK_RATE="ENTITY.SET_MODEL_ANIMATIONS_PLAYBACK_RATE";O.SET_MODEL_HIDDEN_NODES="ENTITY.SET_MODEL_HIDDEN_NODES";O.SET_MODEL_SHOWN_NODES="ENTITY.SET_MODEL_SHOWN_NODES";O.SET_MODEL_TEXTURE_URI="ENTITY.SET_MODEL_TEXTURE_URI";O.SET_OPACITY="ENTITY.SET_OPACITY";O.SET_PARENT="ENTITY.SET_PARENT";O.SET_TINT_COLOR="ENTITY.SET_TINT_COLOR";O.SPAWN="ENTITY.SPAWN";O.START_MODEL_LOOPED_ANIMATIONS="ENTITY.START_MODEL_LOOPED_ANIMATIONS";O.START_MODEL_ONESHOT_ANIMATIONS="ENTITY.START_MODEL_ONESHOT_ANIMATIONS";O.STOP_MODEL_ANIMATIONS="ENTITY.STOP_MODEL_ANIMATIONS";O.TICK="ENTITY.TICK";O.UPDATE_POSITION="ENTITY.UPDATE_POSITION";O.UPDATE_ROTATION="ENTITY.UPDATE_ROTATION"})(Vz||={});class c8 extends NY{_id;_blockHalfExtents;_blockTextureUri;_controller;_isEnvironmental=!1;_modelAnimationsPlaybackRate=1;_modelHiddenNodes=new Set;_modelLoopedAnimations=new Set;_modelOneshotAnimations=new Set;_modelPreferredShape;_modelScale=1;_modelShownNodes=new Set;_modelTextureUri;_modelUri;_name;_opacity;_parent;_parentNodeName;_tag;_tintColor;_lastUpdatedPosition={x:0,y:0,z:0};_lastUpdatedRotation={x:0,y:0,z:0,w:1};_lastParentlessType="dynamic";_world;_positionUpdateThresholdSq;_rotationUpdateThreshold;constructor(Z){let J="blockTextureUri"in Z,X="modelUri"in Z;if(!J===!X)m.fatalError("Entity.constructor(): Entity data must include a blockTextureUri or modelUri, but not both.");if(J&&!Z.blockHalfExtents)m.fatalError("Entity.constructor(): Block entity must have blockHalfExtents!");if(Z.parent&&!Z.parent.isSpawned)m.fatalError("Entity.constructor(): Parent entity must be spawned before child entity!");if(Z.parent?.modelUri&&Z.parentNodeName&&!R5.instance.modelHasNode(Z.parent.modelUri,Z.parentNodeName))m.fatalError(`Entity.constructor(): Parent node name ${Z.parentNodeName} not found in parent model ${Z.parent.modelUri}!`);super(Z.rigidBodyOptions??_e);if(J)this._blockHalfExtents=Z.blockHalfExtents,this._blockTextureUri=Z.blockTextureUri;if(X)this._modelAnimationsPlaybackRate=Z.modelAnimationsPlaybackRate??1,this._modelPreferredShape=Z.modelPreferredShape,this._modelScale=Z.modelScale??1,this._modelTextureUri=Z.modelTextureUri,this._modelUri=Z.modelUri,Z.modelHiddenNodes?.forEach((Y)=>this._modelHiddenNodes.add(Y.toLowerCase())),Z.modelLoopedAnimations?.forEach((Y)=>this._modelLoopedAnimations.add(Y)),Z.modelShownNodes?.forEach((Y)=>this._modelShownNodes.add(Y.toLowerCase()));if(this._isEnvironmental=Z.isEnvironmental??!1,this._name=Z.name??"Nameless",this._opacity=Z.opacity??1,this._parent=Z.parent,this._parentNodeName=Z.parentNodeName,this._tag=Z.tag,this._tintColor=Z.tintColor,this._positionUpdateThresholdSq=Ae,this._rotationUpdateThreshold=xe,Z.controller)this.setController(Z.controller)}get id(){return this._id}get blockHalfExtents(){return this._blockHalfExtents}get blockTextureUri(){return this._blockTextureUri}get controller(){return this._controller}get depth(){return this.isModelEntity?R5.instance.getDepth(this._modelUri)*(this._modelScale??1):this._blockHalfExtents.z*2}get height(){return this.isModelEntity?R5.instance.getHeight(this._modelUri)*(this._modelScale??1):this._blockHalfExtents.y*2}get modelAnimationsPlaybackRate(){return this._modelAnimationsPlaybackRate}get modelHiddenNodes(){return this._modelHiddenNodes}get modelLoopedAnimations(){return this._modelLoopedAnimations}get modelPreferredShape(){return this._modelPreferredShape}get modelScale(){return this._modelScale}get modelShownNodes(){return this._modelShownNodes}get modelTextureUri(){return this._modelTextureUri}get modelUri(){return this._modelUri}get name(){return this._name}get opacity(){return this._opacity}get parent(){return this._parent}get parentNodeName(){return this._parentNodeName}get tag(){return this._tag}get tintColor(){return this._tintColor}get isBlockEntity(){return!!this._blockTextureUri}get isEnvironmental(){return this._isEnvironmental}get isModelEntity(){return!!this._modelUri}get isSpawned(){return!!this._world}get width(){return this.isModelEntity?R5.instance.getWidth(this._modelUri)*(this._modelScale??1):this._blockHalfExtents.x*2}get world(){return this._world}spawn(Z,J,X){if(this.isSpawned)return m.error(`Entity.spawn(): Entity ${this._name} is already spawned with id ${this._id}!`);if(!this.isSimulated)this.addToSimulation(Z.simulation);if(this._blockTextureUri&&this._blockHalfExtents&&this.numColliders===0)this.addChildColliderToSimulation(new s5(s5.optionsFromBlockHalfExtents(this._blockHalfExtents)));if(this._modelUri&&this.numColliders===0&&this._modelPreferredShape!=="none")this.addChildColliderToSimulation(new s5(s5.optionsFromModelUri(this._modelUri,this._modelScale,this._modelPreferredShape)));if(this.colliders.forEach((Y)=>{if(this.hasListeners("ENTITY.BLOCK_COLLISION")||this.hasListeners("ENTITY.ENTITY_COLLISION"))Y.enableCollisionEvents(!0);if(this.hasListeners("ENTITY.BLOCK_CONTACT_FORCE")||this.hasListeners("ENTITY.ENTITY_CONTACT_FORCE"))Y.enableContactForceEvents(!0);if(J4.isDefaultCollisionGroups(Y.collisionGroups))Y.setCollisionGroups({belongsTo:[Y.isSensor?4:2],collidesWith:[65535]})}),this.setPosition(J),X)this.setRotation(X);if(this._id=Z.entityManager.registerEntity(this),this._world=Z,this._controller)this._controller.spawn(this);if(this._parent)this.setParent(this._parent,this._parentNodeName,J,X);this.colliders.forEach((Y)=>{Z.simulation.colliderMap.setColliderEntity(Y,this)}),this.emitWithWorld(Z,"ENTITY.SPAWN",{entity:this})}despawn(){if(!this._requireSpawned("despawn"))return;if(this._world.entityManager.getEntityChildren(this).forEach((Z)=>{Z.despawn()}),this._controller)this._controller.detach(this),this._controller.despawn(this);if(this.emitWithWorld(this._world,"ENTITY.DESPAWN",{entity:this}),this.isSimulated)this.removeFromSimulation();this._world.entityManager.unregisterEntity(this),this._world.audioManager.unregisterEntityAttachedAudios(this),this._world.lightManager.despawnEntityAttachedLights(this),this._world.sceneUIManager.unloadEntityAttachedSceneUIs(this),this._id=void 0,this._world=void 0}setController(Z){if(this._controller===Z)return;if(this._controller)this._controller.detach(this);if(this._controller=Z,this._controller)this._controller.attach(this)}setModelAnimationsPlaybackRate(Z){if(!this._requireSpawned("setModelAnimationsPlaybackRate"))return;if(!this.isModelEntity||this._modelAnimationsPlaybackRate===Z)return;this._modelAnimationsPlaybackRate=Z,this.emitWithWorld(this._world,"ENTITY.SET_MODEL_ANIMATIONS_PLAYBACK_RATE",{entity:this,playbackRate:Z})}setModelHiddenNodes(Z){if(!this._requireSpawned("setModelHiddenNodes"))return;this._modelHiddenNodes=new Set(Z.map((J)=>J.toLowerCase())),this.emitWithWorld(this._world,"ENTITY.SET_MODEL_HIDDEN_NODES",{entity:this,modelHiddenNodes:this._modelHiddenNodes})}setModelShownNodes(Z){if(!this._requireSpawned("setModelShownNodes"))return;this._modelShownNodes=new Set(Z.map((J)=>J.toLowerCase())),this.emitWithWorld(this._world,"ENTITY.SET_MODEL_SHOWN_NODES",{entity:this,modelShownNodes:this._modelShownNodes})}setModelTextureUri(Z){if(!this._requireSpawned("setModelTextureUri"))return;if(this._modelTextureUri===Z)return;this._modelTextureUri=Z,this.emitWithWorld(this._world,"ENTITY.SET_MODEL_TEXTURE_URI",{entity:this,modelTextureUri:Z})}setOpacity(Z){if(!this._requireSpawned("setOpacity"))return;if(this._opacity===Z)return;this._opacity=Z,this.emitWithWorld(this._world,"ENTITY.SET_OPACITY",{entity:this,opacity:Z})}setParent(Z,J,X,Y){if(!this._requireSpawned("setParent"))return;if(Z&&!Z.isSpawned)return m.error("Entity.setParent(): Parent entity is not spawned, cannot set parent!");if(!this._parent&&Z)this._lastParentlessType=this.type;if(this._parent=Z,this._parentNodeName=J,this.colliders.forEach(($)=>$.setEnabled(!Z)),this.setType(!Z?this._lastParentlessType:"kinematic_velocity"),this.setPosition(X??{x:0,y:0,z:0}),this.setRotation(Y??{x:0,y:0,z:0,w:1}),!this.isKinematicPositionBased)this.resetAngularVelocity(),this.resetForces(),this.resetLinearVelocity(),this.resetTorques();this.emitWithWorld(this._world,"ENTITY.SET_PARENT",{entity:this,parent:Z,parentNodeName:J})}setTintColor(Z){if(!this._requireSpawned("setTintColor"))return;if(!Z&&!this._tintColor||Z&&this._tintColor&&Z.r===this._tintColor.r&&Z.g===this._tintColor.g&&Z.b===this._tintColor.b)return;this._tintColor=Z,this.emitWithWorld(this._world,"ENTITY.SET_TINT_COLOR",{entity:this,tintColor:Z})}startModelLoopedAnimations(Z){if(!this._requireSpawned("startModelLoopedAnimations"))return;if(!this.isModelEntity||!Z.length)return;if(!Z.some((J)=>!this._modelLoopedAnimations.has(J)))return;Z.forEach((J)=>{this._modelLoopedAnimations.add(J)}),this.emitWithWorld(this._world,"ENTITY.START_MODEL_LOOPED_ANIMATIONS",{entity:this,animations:new Set(Z)})}startModelOneshotAnimations(Z){if(!this._requireSpawned("startModelOneshotAnimations"))return;if(!this.isModelEntity||!Z.length)return;Z.forEach((J)=>{this._modelOneshotAnimations.add(J)}),this.emitWithWorld(this._world,"ENTITY.START_MODEL_ONESHOT_ANIMATIONS",{entity:this,animations:new Set(Z)})}stopAllModelAnimations(Z=[]){if(!this._requireSpawned("stopAllModelAnimations"))return;this._stopAnimationsFromSets([this._modelLoopedAnimations,this._modelOneshotAnimations],Z)}stopAllModelLoopedAnimations(Z=[]){if(!this._requireSpawned("stopAllModelLoopedAnimations"))return;this._stopAnimationsFromSets([this._modelLoopedAnimations],Z)}stopAllModelOneshotAnimations(Z=[]){if(!this._requireSpawned("stopAllModelOneshotAnimations"))return;this._stopAnimationsFromSets([this._modelOneshotAnimations],Z)}stopModelAnimations(Z){if(!this._requireSpawned("stopModelAnimations"))return;if(!this.isModelEntity||!Z.length)return;if(!Z.some((J)=>this._modelLoopedAnimations.has(J))&&!Z.some((J)=>this._modelOneshotAnimations.has(J)))return;Z.forEach((J)=>{this._modelLoopedAnimations.delete(J),this._modelOneshotAnimations.delete(J)}),this.emitWithWorld(this._world,"ENTITY.STOP_MODEL_ANIMATIONS",{entity:this,animations:new Set(Z)})}serialize(){return p0.serializeEntity(this)}tick(Z){if(this.emit("ENTITY.TICK",{entity:this,tickDeltaMs:Z}),this._controller)this._controller.tick(this,Z)}checkAndEmitUpdates(){if(!this._requireSpawned("checkAndEmitUpdates"))return;let Z=this.position,J=this.rotation;if(this._rotationExceedsThreshold(J,this._lastUpdatedRotation))this._lastUpdatedRotation=J,this.emitWithWorld(this._world,"ENTITY.UPDATE_ROTATION",{entity:this,rotation:J});if(this._positionExceedsThreshold(Z,this._lastUpdatedPosition))this._lastUpdatedPosition=Z,this.emitWithWorld(this._world,"ENTITY.UPDATE_POSITION",{entity:this,position:Z})}_positionExceedsThreshold(Z,J){let X=Z.x-J.x,Y=Z.y-J.y,$=Z.z-J.z;return X*X+Y*Y+$*$>this._positionUpdateThresholdSq}_requireSpawned(Z){if(!this.isSpawned)m.error(`Entity._requireSpawned(): Entity ${this._name} is not spawned, cannot invoke ${Z}()!`);return this.isSpawned}_rotationExceedsThreshold(Z,J){return Math.abs(Z.x*J.x+Z.y*J.y+Z.z*J.z+Z.w*J.w)<this._rotationUpdateThreshold}_stopAnimationsFromSets(Z,J=[]){if(!this.isModelEntity)return;let X=new Set(J),Y=[];for(let $ of Z)for(let Q of $)if(!X.has(Q))Y.push(Q);if(Y.length>0)this.stopModelAnimations(Y)}}class h1 extends fX{static BASE_ENTITY_HEIGHT=1.5;static GROUND_SENSOR_HEIGHT_SCALE=0.125;static GROUND_SENSOR_RADIUS_SCALE=0.23;static JUMP_LAND_HEAVY_VELOCITY_THRESHOLD=-12;static WALL_COLLIDER_HEIGHT_SCALE=0.33;static WALL_COLLIDER_RADIUS_SCALE=0.4;static MOVEMENT_ROTATIONS={wa:Math.PI/4,wd:-Math.PI/4,sa:Math.PI-Math.PI/4,sd:Math.PI+Math.PI/4,s:Math.PI,asd:Math.PI,a:Math.PI/2,d:-Math.PI/2};static EXTERNAL_IMPULSE_DECAY_RATE=0.253;static SWIM_UPWARD_COOLDOWN_MS=600;static SWIMMING_DRAG_FACTOR=0.05;static WATER_ENTRY_SINKING_FACTOR=0.8;static WATER_ENTRY_SINKING_MS=250;applyDirectionalMovementRotations=!0;autoCancelMouseLeftClick=!0;canJump=()=>!0;canRun=()=>!0;canSwim=()=>!0;canWalk=()=>!0;faceForwardOnStop=!0;idleLoopedAnimations=["idle-upper","idle-lower"];interactOneshotAnimations=["simple-interact"];jumpLandHeavyOneshotAnimations=["jump-post-heavy"];jumpLandLightOneshotAnimations=["jump-post-light"];jumpOneshotAnimations=["jump-loop"];jumpVelocity=10;runLoopedAnimations=["run-upper","run-lower"];runVelocity=8;sticksToPlatforms=!0;swimFastVelocity=5;swimGravity=0;swimIdleLoopedAnimations=["swim-idle"];swimLoopedAnimations=["swim-forward"];swimMaxGravityVelocity=-1;swimSlowVelocity=3;swimUpwardVelocity=2;walkLoopedAnimations=["walk-upper","walk-lower"];walkVelocity=4;_externalVelocity={x:0,y:0,z:0};_magnitudeYTracker=0;_groundContactCount=0;_internalApplyImpulse=()=>{};_isActivelyMoving=!1;_isFullySubmerged=!1;_justSubmergedUntil=0;_liquidContactCount=0;_platform;_reusableImpulse={x:0,y:0,z:0};_reusablePlatformVelocity={x:0,y:0,z:0};_reusableTargetVelocities={x:0,y:0,z:0};_reusableVelocityClamp={x:0,y:0,z:0};_stepAudio;_swimUpwardCooldownAt=0;constructor(Z={}){super();this.applyDirectionalMovementRotations=Z.applyDirectionalMovementRotations??this.applyDirectionalMovementRotations,this.autoCancelMouseLeftClick=Z.autoCancelMouseLeftClick??this.autoCancelMouseLeftClick,this.faceForwardOnStop=Z.faceForwardOnStop??this.faceForwardOnStop,this.sticksToPlatforms=Z.sticksToPlatforms??this.sticksToPlatforms,this.canJump=Z.canJump??this.canJump,this.canRun=Z.canRun??this.canRun,this.canSwim=Z.canSwim??this.canSwim,this.canWalk=Z.canWalk??this.canWalk,this.jumpVelocity=Z.jumpVelocity??this.jumpVelocity,this.runVelocity=Z.runVelocity??this.runVelocity,this.walkVelocity=Z.walkVelocity??this.walkVelocity,this.swimFastVelocity=Z.swimFastVelocity??this.swimFastVelocity,this.swimSlowVelocity=Z.swimSlowVelocity??this.swimSlowVelocity,this.swimUpwardVelocity=Z.swimUpwardVelocity??this.swimUpwardVelocity,this.swimGravity=Z.swimGravity??this.swimGravity,this.swimMaxGravityVelocity=Z.swimMaxGravityVelocity??this.swimMaxGravityVelocity,this.idleLoopedAnimations=Z.idleLoopedAnimations??this.idleLoopedAnimations,this.interactOneshotAnimations=Z.interactOneshotAnimations??this.interactOneshotAnimations,this.jumpOneshotAnimations=Z.jumpOneshotAnimations??this.jumpOneshotAnimations,this.jumpLandHeavyOneshotAnimations=Z.jumpLandHeavyOneshotAnimations??this.jumpLandHeavyOneshotAnimations,this.jumpLandLightOneshotAnimations=Z.jumpLandLightOneshotAnimations??this.jumpLandLightOneshotAnimations,this.runLoopedAnimations=Z.runLoopedAnimations??this.runLoopedAnimations,this.swimLoopedAnimations=Z.swimLoopedAnimations??this.swimLoopedAnimations,this.swimIdleLoopedAnimations=Z.swimIdleLoopedAnimations??this.swimIdleLoopedAnimations,this.walkLoopedAnimations=Z.walkLoopedAnimations??this.walkLoopedAnimations}get isActivelyMoving(){return this._isActivelyMoving}get isGrounded(){return this._groundContactCount>0}get isOnPlatform(){return!!this._platform}get isSwimming(){return this._liquidContactCount>0}get platform(){return this._platform}attach(Z){super.attach(Z),this._internalApplyImpulse=Z.applyImpulse.bind(Z),Z.applyImpulse=(J)=>{let X=Z.mass||1;this._externalVelocity.x+=J.x/X,this._externalVelocity.y+=J.y/X,this._externalVelocity.z+=J.z/X},this._stepAudio=new Y3({uri:"audio/sfx/step/stone/stone-step-04.mp3",loop:!0,volume:0.1,referenceDistance:2,cutoffDistance:15,attachedToEntity:Z}),Z.setCcdEnabled(!0),Z.lockAllRotations(),Z.on("ENTITY.BLOCK_COLLISION",({blockType:J,started:X})=>{if(!J.isLiquid||!this.canSwim(this))return;if(this._liquidContactCount<=0&&X){let Y=Z.linearVelocity;Z.setLinearVelocity({x:Y.x*this.swimGravity,y:Y.y*this.swimGravity,z:Y.z*this.swimGravity})}if(this._liquidContactCount+=X?1:-1,this._liquidContactCount>0)Z.setGravityScale(this.swimGravity),Z.stopAllModelLoopedAnimations(this.swimLoopedAnimations),this._swimUpwardCooldownAt=performance.now()+h1.SWIM_UPWARD_COOLDOWN_MS;else Z.setGravityScale(1),Z.stopModelAnimations(this.swimLoopedAnimations)})}spawn(Z){if(!Z.isSpawned)return m.error("DefaultPlayerEntityController.spawn(): Entity is not spawned!");Z.createAndAddChildCollider({shape:"cylinder",radius:h1.GROUND_SENSOR_RADIUS_SCALE*(Z.height/h1.BASE_ENTITY_HEIGHT),halfHeight:h1.GROUND_SENSOR_HEIGHT_SCALE*(Z.height/h1.BASE_ENTITY_HEIGHT),collisionGroups:{belongsTo:[4],collidesWith:[1,2]},isSensor:!0,relativePosition:{x:0,y:-Z.height/2,z:0},tag:"groundSensor",onCollision:(J,X)=>{if(!Z.isSpawned)return;if(!(J instanceof o5)||!J.isLiquid){if(X&&this._groundContactCount===0&&Z.linearVelocity.y<-1)if(Z.linearVelocity.y<h1.JUMP_LAND_HEAVY_VELOCITY_THRESHOLD)Z.startModelOneshotAnimations(this.jumpLandHeavyOneshotAnimations);else Z.startModelOneshotAnimations(this.jumpLandLightOneshotAnimations);this._groundContactCount+=X?1:-1}if(!this._groundContactCount&&!this.isSwimming)Z.startModelOneshotAnimations(this.jumpOneshotAnimations);else Z.stopModelAnimations(this.jumpOneshotAnimations);if(!(J instanceof c8))return;if(X&&this.sticksToPlatforms)this._platform=J;else if(J===this._platform&&!X)this._platform=void 0}}),Z.createAndAddChildCollider({shape:"capsule",halfHeight:h1.WALL_COLLIDER_HEIGHT_SCALE*(Z.height/h1.BASE_ENTITY_HEIGHT),radius:h1.WALL_COLLIDER_RADIUS_SCALE*(Z.height/h1.BASE_ENTITY_HEIGHT),collisionGroups:{belongsTo:[4],collidesWith:[1,2]},friction:0,frictionCombineRule:1,tag:"wallCollider"})}tickWithPlayerInput(Z,J,X,Y){if(!Z.isSpawned||!Z.world)return;if(super.tickWithPlayerInput(Z,J,X,Y),Z.parent)return;let{w:$,a:Q,s:K,d:W,c:G,sp:z,sh:V,ml:H}=J,{yaw:q}=X,F=Z.linearVelocity;this._reusableTargetVelocities.x=0,this._reusableTargetVelocities.y=0,this._reusableTargetVelocities.z=0,this._isActivelyMoving=!!($||Q||K||W);let U=V,w=Q&&W&&!$&&!K||$&&K&&!Q&&!W,L=U&&this.canRun(this)||!U&&this.canWalk(this);if(this.isSwimming&&!this._isFullySubmerged)this._isFullySubmerged=!0,this._justSubmergedUntil=performance.now()+h1.WATER_ENTRY_SINKING_MS;else if(!this.isSwimming)this._isFullySubmerged=!1,this._justSubmergedUntil=0;if(this.isGrounded&&!this.isSwimming&&this._isActivelyMoving&&!w&&L){let P=U?this.runLoopedAnimations:this.walkLoopedAnimations;Z.stopAllModelLoopedAnimations(P),Z.startModelLoopedAnimations(P),this._stepAudio?.setPlaybackRate(U?0.75:0.51),this._stepAudio?.play(Z.world,!this._stepAudio?.isPlaying)}else if(this._isFullySubmerged&&this.canSwim(this))if(this._stepAudio?.pause(),this._isActivelyMoving)Z.stopAllModelLoopedAnimations(this.swimLoopedAnimations),Z.startModelLoopedAnimations(this.swimLoopedAnimations);else Z.stopAllModelLoopedAnimations(this.swimIdleLoopedAnimations),Z.startModelLoopedAnimations(this.swimIdleLoopedAnimations);else this._stepAudio?.pause(),Z.stopAllModelLoopedAnimations(this.idleLoopedAnimations),Z.startModelLoopedAnimations(this.idleLoopedAnimations);let j;if(this.applyDirectionalMovementRotations&&L){if($&&Q&&!W&&!K)j=h1.MOVEMENT_ROTATIONS.wa;else if($&&W&&!Q&&!K)j=h1.MOVEMENT_ROTATIONS.wd;else if(K&&Q&&!$&&!W)j=h1.MOVEMENT_ROTATIONS.sa;else if(K&&W&&!$&&!Q)j=h1.MOVEMENT_ROTATIONS.sd;else if(K&&!$&&!Q&&!W||Q&&K&&W&&!$)j=h1.MOVEMENT_ROTATIONS.s;else if(Q&&!$&&!K&&!W)j=h1.MOVEMENT_ROTATIONS.a;else if(W&&!$&&!Q&&!K)j=h1.MOVEMENT_ROTATIONS.d}if(H)Z.startModelOneshotAnimations(this.interactOneshotAnimations),J.ml=!this.autoCancelMouseLeftClick;if(L){let P=!this.isSwimming?U?this.runVelocity:this.walkVelocity:U?this.swimFastVelocity:this.swimSlowVelocity,C=Math.sin(q),T=Math.cos(q);if($)this._reusableTargetVelocities.x-=P*C,this._reusableTargetVelocities.z-=P*T;if(K)this._reusableTargetVelocities.x+=P*C,this._reusableTargetVelocities.z+=P*T;if(Q)this._reusableTargetVelocities.x-=P*T,this._reusableTargetVelocities.z+=P*C;if(W)this._reusableTargetVelocities.x+=P*T,this._reusableTargetVelocities.z-=P*C;let k=Math.sqrt(this._reusableTargetVelocities.x*this._reusableTargetVelocities.x+this._reusableTargetVelocities.z*this._reusableTargetVelocities.z);if(k>P){let A=P/k;this._reusableTargetVelocities.x*=A,this._reusableTargetVelocities.z*=A}}if(this.isSwimming){if(F.y<this.swimMaxGravityVelocity)this._reusableVelocityClamp.x=F.x,this._reusableVelocityClamp.y=this.swimMaxGravityVelocity,this._reusableVelocityClamp.z=F.z,Z.setLinearVelocity(this._reusableVelocityClamp);if(F.y>this.swimUpwardVelocity*2)this._reusableVelocityClamp.x=F.x,this._reusableVelocityClamp.y=this.swimUpwardVelocity*2,this._reusableVelocityClamp.z=F.z,Z.setLinearVelocity(this._reusableVelocityClamp);if(G)this._reusableTargetVelocities.y=-this.swimUpwardVelocity;else if(performance.now()<this._justSubmergedUntil)this._reusableTargetVelocities.y=-this.swimUpwardVelocity*h1.WATER_ENTRY_SINKING_FACTOR;else if(!z)this._reusableTargetVelocities.y=-F.y*h1.SWIMMING_DRAG_FACTOR}if(z&&this.canJump(this)){if(this.isGrounded&&!this.isSwimming&&F.y>-0.001&&F.y<=3)this._reusableTargetVelocities.y=this.jumpVelocity;else if(this.isSwimming&&performance.now()>this._swimUpwardCooldownAt)this._reusableTargetVelocities.y=this.swimUpwardVelocity}let R=this._platform?.linearVelocity??this._reusablePlatformVelocity;if(this._externalVelocity.y!==0)this._magnitudeYTracker+=this._externalVelocity.y;if(this._externalVelocity.x!==0||this._externalVelocity.y!==0||this._externalVelocity.z!==0){if(this.isGrounded){let P=Math.sqrt(this._externalVelocity.x*this._externalVelocity.x+this._magnitudeYTracker*this._magnitudeYTracker+this._externalVelocity.z*this._externalVelocity.z);if(P>0.01){let T=Math.max(0,P-h1.EXTERNAL_IMPULSE_DECAY_RATE)/P;this._externalVelocity.x*=T,this._magnitudeYTracker*=T,this._externalVelocity.z*=T}else this._externalVelocity.x=0,this._externalVelocity.y=0,this._magnitudeYTracker=0,this._externalVelocity.z=0}}let O=this._reusableTargetVelocities.x+this._externalVelocity.x-F.x+R.x,N=this._reusableTargetVelocities.y+this._externalVelocity.y+R.y,D=this._reusableTargetVelocities.z+this._externalVelocity.z-F.z+R.z;if(this._externalVelocity.y=0,O!==0||N!==0||D!==0){let P=Z.mass;this._reusableImpulse.x=O*P,this._reusableImpulse.y=N*P,this._reusableImpulse.z=D*P,this._internalApplyImpulse(this._reusableImpulse)}if(q!==void 0&&(this.faceForwardOnStop||this.isActivelyMoving)){let C=(j!==void 0?q+j:q)*0.5;Z.setRotation({x:0,y:Math.sin(C),z:0,w:Math.cos(C)})}}}var Fk;((W)=>{W.LOAD="SCENE_UI.LOAD";W.SET_ATTACHED_TO_ENTITY="SCENE_UI.SET_ATTACHED_TO_ENTITY";W.SET_OFFSET="SCENE_UI.SET_OFFSET";W.SET_POSITION="SCENE_UI.SET_POSITION";W.SET_STATE="SCENE_UI.SET_STATE";W.SET_VIEW_DISTANCE="SCENE_UI.SET_VIEW_DISTANCE";W.UNLOAD="SCENE_UI.UNLOAD"})(Fk||={});class Hz extends j0{_id;_attachedToEntity;_offset;_position;_state={};_templateId;_viewDistance;_world;constructor(Z){if(!!Z.attachedToEntity===!!Z.position)m.fatalError("Either attachedToEntity or position must be set, but not both");super();this._attachedToEntity=Z.attachedToEntity,this._offset=Z.offset,this._position=Z.position,this._state=Z.state??{},this._templateId=Z.templateId,this._viewDistance=Z.viewDistance}get id(){return this._id}get attachedToEntity(){return this._attachedToEntity}get isLoaded(){return this._id!==void 0}get offset(){return this._offset}get position(){return this._position}get state(){return this._state}get templateId(){return this._templateId}get viewDistance(){return this._viewDistance}get world(){return this._world}load(Z){if(this.isLoaded)return;if(this._attachedToEntity&&!this._attachedToEntity.isSpawned)return m.error(`SceneUI.load(): Attached entity ${this._attachedToEntity.id} must be spawned before loading SceneUI!`);this._id=Z.sceneUIManager.registerSceneUI(this),this._world=Z,this.emitWithWorld(Z,"SCENE_UI.LOAD",{sceneUI:this})}setAttachedToEntity(Z){if(!Z.isSpawned)return m.error(`SceneUI.setAttachedToEntity(): Entity ${Z.id} is not spawned!`);if(this._attachedToEntity===Z)return;if(this._attachedToEntity=Z,this._position=void 0,this.isLoaded)this.emitWithWorld(this._world,"SCENE_UI.SET_ATTACHED_TO_ENTITY",{sceneUI:this,entity:Z})}setOffset(Z){if(this._offset===Z)return;if(this._offset=Z,this.isLoaded)this.emitWithWorld(this._world,"SCENE_UI.SET_OFFSET",{sceneUI:this,offset:Z})}setPosition(Z){if(this._position===Z)return;if(this._attachedToEntity=void 0,this._position=Z,this.isLoaded)this.emitWithWorld(this._world,"SCENE_UI.SET_POSITION",{sceneUI:this,position:Z})}setState(Z){if(this._state={...this._state,...Z},this.isLoaded)this.emitWithWorld(this._world,"SCENE_UI.SET_STATE",{sceneUI:this,state:this._state})}setViewDistance(Z){if(this._viewDistance=Z,this.isLoaded)this.emitWithWorld(this._world,"SCENE_UI.SET_VIEW_DISTANCE",{sceneUI:this,viewDistance:Z})}unload(){if(!this.isLoaded||!this._world)return;this._world.sceneUIManager.unregisterSceneUI(this),this.emitWithWorld(this._world,"SCENE_UI.UNLOAD",{sceneUI:this}),this._id=void 0,this._world=void 0}serialize(){return p0.serializeSceneUI(this)}}var he=0.010000000000000002,fe=Math.cos(0.026);class F7 extends c8{player;nametagSceneUI;constructor(Z){super(Z);this._positionUpdateThresholdSq=he,this._rotationUpdateThreshold=fe,this.player=Z.player,this.nametagSceneUI=new Hz({templateId:"hytopia:nametag",attachedToEntity:this,offset:{x:0,y:1,z:0},viewDistance:15,state:{username:this.player.username,profilePictureUrl:this.player.profilePictureUrl}})}spawn(Z,J,X){super.spawn(Z,J,X),this.nametagSceneUI.load(Z),this.player.on("PLAYER.CHAT_MESSAGE_SEND",({message:Y})=>{this.nametagSceneUI.setState({chat:Y})})}tick(Z){if(!this.isSpawned||!this.world)return;if(!this.controller)return m.error(`PlayerEntity.tick(): PlayerEntity "${this.name}" must have a controller.`);let{input:J,camera:X}=this.player;this.controller.tickWithPlayerInput(this,J,X.orientation,Z),super.tick(Z)}}class Uk extends F7{constructor(Z){super({modelUri:"models/players/player.gltf",modelLoopedAnimations:["idle_lower","idle_upper"],modelHiddenNodes:["hair-"],modelShownNodes:["hair-0003"],...Z});if(!Z.controller)this.setController(new h1)}}class qz{_activeEntities=new Set;_entities=new Map;_nextEntityId=1;_world;constructor(Z){this._world=Z}get entityCount(){return this._entities.size}get world(){return this._world}registerEntity(Z){if(Z.id!==void 0)m.fatalError(`EntityManager.registerEntity(): Entity ${Z.name} is already assigned the id ${Z.id}!`);let J=this._nextEntityId;if(this._entities.set(J,Z),this._nextEntityId++,!Z.isEnvironmental)this._activeEntities.add(Z);return J}unregisterEntity(Z){if(Z.id===void 0)return m.error(`EntityManager.unregisterEntity(): Entity ${Z.name} is not assigned an id!`);if(this._entities.delete(Z.id),!Z.isEnvironmental)this._activeEntities.delete(Z)}getAllEntities(){return Array.from(this._entities.values())}getAllPlayerEntities(){let Z=[];return this._entities.forEach((J)=>{if(J instanceof F7)Z.push(J)}),Z}getPlayerEntitiesByPlayer(Z){let J=[];return this._entities.forEach((X)=>{if(X instanceof F7&&X.player===Z)J.push(X)}),J}getEntity(Z){return this._entities.get(Z)}getEntitiesByTag(Z){let J=[];return this._entities.forEach((X)=>{if(X.tag===Z)J.push(X)}),J}getEntitiesByTagSubstring(Z){let J=[];return this._entities.forEach((X)=>{if(X.tag?.includes(Z))J.push(X)}),J}getEntityChildren(Z){let J=[];return this._entities.forEach((X)=>{if(X.parent===Z)J.push(X)}),J}tickEntities(Z){for(let J of this._activeEntities)J.tick(Z)}checkAndEmitUpdates(){for(let Z of this._activeEntities)Z.checkAndEmitUpdates()}}import{WebSocket as P16}from"ws";var r6=t(m00(),1),tB6=r6.default.v1,eB6=r6.default.v1ToV6,Zj6=r6.default.v3,u00=r6.default.v4,Jj6=r6.default.v5,Xj6=r6.default.v6,Yj6=r6.default.v6ToV1,$j6=r6.default.v7,Qj6=r6.default.NIL,Kj6=r6.default.MAX,Wj6=r6.default.version,Gj6=r6.default.validate,zj6=r6.default.stringify,Vj6=r6.default.parse;var Nk;try{Nk=new TextDecoder}catch(Z){}var e,t5,y=0;var Tk=[],_Y=Tk,Lz=0,S1={},X1,MZ,r5=0,T9=0,l8,RZ,k5=[],e0,d00={useRecords:!1,mapsAsObjects:!0};class yL{}var kk=new yL;kk.name="MessagePack 0xC1";var vJ=!1,o00=2,Pk,Dk,Ck;try{new Function("")}catch(Z){o00=1/0}class NZ{constructor(Z){if(Z){if(Z.useRecords===!1&&Z.mapsAsObjects===void 0)Z.mapsAsObjects=!0;if(Z.sequential&&Z.trusted!==!1){if(Z.trusted=!0,!Z.structures&&Z.useRecords!=!1){if(Z.structures=[],!Z.maxSharedStructures)Z.maxSharedStructures=0}}if(Z.structures)Z.structures.sharedLength=Z.structures.length;else if(Z.getStructures)(Z.structures=[]).uninitialized=!0,Z.structures.sharedLength=0;if(Z.int64AsNumber)Z.int64AsType="number"}Object.assign(this,Z)}unpack(Z,J){if(e)return W10(()=>{return bL(),this?this.unpack(Z,J):NZ.prototype.unpack.call(d00,Z,J)});if(!Z.buffer&&Z.constructor===ArrayBuffer)Z=typeof Buffer!=="undefined"?Buffer.from(Z):new Uint8Array(Z);if(typeof J==="object")t5=J.end||Z.length,y=J.start||0;else y=0,t5=J>-1?J:Z.length;Lz=0,T9=0,MZ=null,_Y=Tk,l8=null,e=Z;try{e0=Z.dataView||(Z.dataView=new DataView(Z.buffer,Z.byteOffset,Z.byteLength))}catch(X){if(e=null,Z instanceof Uint8Array)throw X;throw new Error("Source must be a Uint8Array or Buffer but was a "+(Z&&typeof Z=="object"?Z.constructor.name:typeof Z))}if(this instanceof NZ){if(S1=this,this.structures)return X1=this.structures,hL(J);else if(!X1||X1.length>0)X1=[]}else if(S1=d00,!X1||X1.length>0)X1=[];return hL(J)}unpackMultiple(Z,J){let X,Y=0;try{vJ=!0;let $=Z.length,Q=this?this.unpack(Z,$):gL.unpack(Z,$);if(J){if(J(Q,Y,y)===!1)return;while(y<$)if(Y=y,J(hL(),Y,y)===!1)return}else{X=[Q];while(y<$)Y=y,X.push(hL());return X}}catch($){throw $.lastPosition=Y,$.values=X,$}finally{vJ=!1,bL()}}_mergeStructures(Z,J){if(Dk)Z=Dk.call(this,Z);if(Z=Z||[],Object.isFrozen(Z))Z=Z.map((X)=>X.slice(0));for(let X=0,Y=Z.length;X<Y;X++){let $=Z[X];if($){if($.isShared=!0,X>=32)$.highByte=X-32>>5}}Z.sharedLength=Z.length;for(let X in J||[])if(X>=0){let Y=Z[X],$=J[X];if($){if(Y)(Z.restoreStructures||(Z.restoreStructures=[]))[X]=Y;Z[X]=$}}return this.structures=Z}decode(Z,J){return this.unpack(Z,J)}}function hL(Z){try{if(!S1.trusted&&!vJ){let X=X1.sharedLength||0;if(X<X1.length)X1.length=X}let J;if(S1.randomAccessStructure&&e[y]<64&&e[y]>=32&&Pk){if(J=Pk(e,y,t5,S1),e=null,!(Z&&Z.lazy)&&J)J=J.toJSON();y=t5}else J=C8();if(l8)y=l8.postBundlePosition,l8=null;if(vJ)X1.restoreStructures=null;if(y==t5){if(X1&&X1.restoreStructures)c00();if(X1=null,e=null,RZ)RZ=null}else if(y>t5)throw new Error("Unexpected end of MessagePack data");else if(!vJ){let X;try{X=JSON.stringify(J,(Y,$)=>typeof $==="bigint"?`${$}n`:$).slice(0,100)}catch(Y){X="(JSON view not available "+Y+")"}throw new Error("Data read, but end of buffer not reached "+X)}return J}catch(J){if(X1&&X1.restoreStructures)c00();if(bL(),J instanceof RangeError||J.message.startsWith("Unexpected end of buffer")||y>t5)J.incomplete=!0;throw J}}function c00(){for(let Z in X1.restoreStructures)X1[Z]=X1.restoreStructures[Z];X1.restoreStructures=null}function C8(){let Z=e[y++];if(Z<160)if(Z<128)if(Z<64)return Z;else{let J=X1[Z&63]||S1.getStructures&&r00()[Z&63];if(J){if(!J.read)J.read=Ek(J,Z&63);return J.read()}else return Z}else if(Z<144)if(Z-=128,S1.mapsAsObjects){let J={};for(let X=0;X<Z;X++){let Y=Q10();if(Y==="__proto__")Y="__proto_";J[Y]=C8()}return J}else{let J=new Map;for(let X=0;X<Z;X++)J.set(C8(),C8());return J}else{Z-=144;let J=new Array(Z);for(let X=0;X<Z;X++)J[X]=C8();if(S1.freezeData)return Object.freeze(J);return J}else if(Z<192){let J=Z-160;if(T9>=y)return MZ.slice(y-r5,(y+=J)-r5);if(T9==0&&t5<140){let X=J<16?Ik(J):$10(J);if(X!=null)return X}return fL(J)}else{let J;switch(Z){case 192:return null;case 193:if(l8)if(J=C8(),J>0)return l8[1].slice(l8.position1,l8.position1+=J);else return l8[0].slice(l8.position0,l8.position0-=J);return kk;case 194:return!1;case 195:return!0;case 196:if(J=e[y++],J===void 0)throw new Error("Unexpected end of buffer");return Rk(J);case 197:return J=e0.getUint16(y),y+=2,Rk(J);case 198:return J=e0.getUint32(y),y+=4,Rk(J);case 199:return SY(e[y++]);case 200:return J=e0.getUint16(y),y+=2,SY(J);case 201:return J=e0.getUint32(y),y+=4,SY(J);case 202:if(J=e0.getFloat32(y),S1.useFloat32>2){let X=xY[(e[y]&127)<<1|e[y+1]>>7];return y+=4,(X*J+(J>0?0.5:-0.5)>>0)/X}return y+=4,J;case 203:return J=e0.getFloat64(y),y+=8,J;case 204:return e[y++];case 205:return J=e0.getUint16(y),y+=2,J;case 206:return J=e0.getUint32(y),y+=4,J;case 207:if(S1.int64AsType==="number")J=e0.getUint32(y)*4294967296,J+=e0.getUint32(y+4);else if(S1.int64AsType==="string")J=e0.getBigUint64(y).toString();else if(S1.int64AsType==="auto"){if(J=e0.getBigUint64(y),J<=BigInt(2)<<BigInt(52))J=Number(J)}else J=e0.getBigUint64(y);return y+=8,J;case 208:return e0.getInt8(y++);case 209:return J=e0.getInt16(y),y+=2,J;case 210:return J=e0.getInt32(y),y+=4,J;case 211:if(S1.int64AsType==="number")J=e0.getInt32(y)*4294967296,J+=e0.getUint32(y+4);else if(S1.int64AsType==="string")J=e0.getBigInt64(y).toString();else if(S1.int64AsType==="auto"){if(J=e0.getBigInt64(y),J>=BigInt(-2)<<BigInt(52)&&J<=BigInt(2)<<BigInt(52))J=Number(J)}else J=e0.getBigInt64(y);return y+=8,J;case 212:if(J=e[y++],J==114)return s00(e[y++]&63);else{let X=k5[J];if(X)if(X.read)return y++,X.read(C8());else if(X.noBuffer)return y++,X();else return X(e.subarray(y,++y));else throw new Error("Unknown extension "+J)}case 213:if(J=e[y],J==114)return y++,s00(e[y++]&63,e[y++]);else return SY(2);case 214:return SY(4);case 215:return SY(8);case 216:return SY(16);case 217:if(J=e[y++],T9>=y)return MZ.slice(y-r5,(y+=J)-r5);return t00(J);case 218:if(J=e0.getUint16(y),y+=2,T9>=y)return MZ.slice(y-r5,(y+=J)-r5);return e00(J);case 219:if(J=e0.getUint32(y),y+=4,T9>=y)return MZ.slice(y-r5,(y+=J)-r5);return Z10(J);case 220:return J=e0.getUint16(y),y+=2,p00(J);case 221:return J=e0.getUint32(y),y+=4,p00(J);case 222:return J=e0.getUint16(y),y+=2,i00(J);case 223:return J=e0.getUint32(y),y+=4,i00(J);default:if(Z>=224)return Z-256;if(Z===void 0){let X=new Error("Unexpected end of MessagePack data");throw X.incomplete=!0,X}throw new Error("Unknown MessagePack token "+Z)}}}var YE1=/^[a-zA-Z_$][a-zA-Z\d_$]*$/;function Ek(Z,J){function X(){if(X.count++>o00){let $=Z.read=new Function("r","return function(){return "+(S1.freezeData?"Object.freeze":"")+"({"+Z.map((Q)=>Q==="__proto__"?"__proto_:r()":YE1.test(Q)?Q+":r()":"["+JSON.stringify(Q)+"]:r()").join(",")+"})}")(C8);if(Z.highByte===0)Z.read=l00(J,Z.read);return $()}let Y={};for(let $=0,Q=Z.length;$<Q;$++){let K=Z[$];if(K==="__proto__")K="__proto_";Y[K]=C8()}if(S1.freezeData)return Object.freeze(Y);return Y}if(X.count=0,Z.highByte===0)return l00(J,X);return X}var l00=(Z,J)=>{return function(){let X=e[y++];if(X===0)return J();let Y=Z<32?-(Z+(X<<5)):Z+(X<<5),$=X1[Y]||r00()[Y];if(!$)throw new Error("Record id is not defined for "+Y);if(!$.read)$.read=Ek($,Z);return $.read()}};function r00(){let Z=W10(()=>{return e=null,S1.getStructures()});return X1=S1._mergeStructures(Z,X1)}var fL=AY,t00=AY,e00=AY,Z10=AY,J10=!1;function X10(Z){J10=!0,fL=J(1),t00=J(2),e00=J(3),Z10=J(5);function J(X){return function Y($){let Q=_Y[Lz++];if(Q==null){if(l8)return AY($);let W=e.byteOffset,G=Z(y-X+W,t5+W,e.buffer);if(typeof G=="string")Q=G,_Y=Tk;else if(_Y=G,Lz=1,T9=1,Q=_Y[0],Q===void 0)throw new Error("Unexpected end of buffer")}let K=Q.length;if(K<=$)return y+=$,Q;return MZ=Q,r5=y,T9=y+K,y+=$,Q.slice(0,$)}}}function AY(Z){let J;if(Z<16){if(J=Ik(Z))return J}if(Z>64&&Nk)return Nk.decode(e.subarray(y,y+=Z));let X=y+Z,Y=[];J="";while(y<X){let $=e[y++];if(($&128)===0)Y.push($);else if(($&224)===192){let Q=e[y++]&63;Y.push(($&31)<<6|Q)}else if(($&240)===224){let Q=e[y++]&63,K=e[y++]&63;Y.push(($&31)<<12|Q<<6|K)}else if(($&248)===240){let Q=e[y++]&63,K=e[y++]&63,W=e[y++]&63,G=($&7)<<18|Q<<12|K<<6|W;if(G>65535)G-=65536,Y.push(G>>>10&1023|55296),G=56320|G&1023;Y.push(G)}else Y.push($);if(Y.length>=4096)J+=J6.apply(String,Y),Y.length=0}if(Y.length>0)J+=J6.apply(String,Y);return J}function Y10(Z,J,X){let Y=e;e=Z,y=J;try{return AY(X)}finally{e=Y}}function p00(Z){let J=new Array(Z);for(let X=0;X<Z;X++)J[X]=C8();if(S1.freezeData)return Object.freeze(J);return J}function i00(Z){if(S1.mapsAsObjects){let J={};for(let X=0;X<Z;X++){let Y=Q10();if(Y==="__proto__")Y="__proto_";J[Y]=C8()}return J}else{let J=new Map;for(let X=0;X<Z;X++)J.set(C8(),C8());return J}}var J6=String.fromCharCode;function $10(Z){let J=y,X=new Array(Z);for(let Y=0;Y<Z;Y++){let $=e[y++];if(($&128)>0){y=J;return}X[Y]=$}return J6.apply(String,X)}function Ik(Z){if(Z<4)if(Z<2)if(Z===0)return"";else{let J=e[y++];if((J&128)>1){y-=1;return}return J6(J)}else{let J=e[y++],X=e[y++];if((J&128)>0||(X&128)>0){y-=2;return}if(Z<3)return J6(J,X);let Y=e[y++];if((Y&128)>0){y-=3;return}return J6(J,X,Y)}else{let J=e[y++],X=e[y++],Y=e[y++],$=e[y++];if((J&128)>0||(X&128)>0||(Y&128)>0||($&128)>0){y-=4;return}if(Z<6)if(Z===4)return J6(J,X,Y,$);else{let Q=e[y++];if((Q&128)>0){y-=5;return}return J6(J,X,Y,$,Q)}else if(Z<8){let Q=e[y++],K=e[y++];if((Q&128)>0||(K&128)>0){y-=6;return}if(Z<7)return J6(J,X,Y,$,Q,K);let W=e[y++];if((W&128)>0){y-=7;return}return J6(J,X,Y,$,Q,K,W)}else{let Q=e[y++],K=e[y++],W=e[y++],G=e[y++];if((Q&128)>0||(K&128)>0||(W&128)>0||(G&128)>0){y-=8;return}if(Z<10)if(Z===8)return J6(J,X,Y,$,Q,K,W,G);else{let z=e[y++];if((z&128)>0){y-=9;return}return J6(J,X,Y,$,Q,K,W,G,z)}else if(Z<12){let z=e[y++],V=e[y++];if((z&128)>0||(V&128)>0){y-=10;return}if(Z<11)return J6(J,X,Y,$,Q,K,W,G,z,V);let H=e[y++];if((H&128)>0){y-=11;return}return J6(J,X,Y,$,Q,K,W,G,z,V,H)}else{let z=e[y++],V=e[y++],H=e[y++],q=e[y++];if((z&128)>0||(V&128)>0||(H&128)>0||(q&128)>0){y-=12;return}if(Z<14)if(Z===12)return J6(J,X,Y,$,Q,K,W,G,z,V,H,q);else{let F=e[y++];if((F&128)>0){y-=13;return}return J6(J,X,Y,$,Q,K,W,G,z,V,H,q,F)}else{let F=e[y++],U=e[y++];if((F&128)>0||(U&128)>0){y-=14;return}if(Z<15)return J6(J,X,Y,$,Q,K,W,G,z,V,H,q,F,U);let w=e[y++];if((w&128)>0){y-=15;return}return J6(J,X,Y,$,Q,K,W,G,z,V,H,q,F,U,w)}}}}}function n00(){let Z=e[y++],J;if(Z<192)J=Z-160;else switch(Z){case 217:J=e[y++];break;case 218:J=e0.getUint16(y),y+=2;break;case 219:J=e0.getUint32(y),y+=4;break;default:throw new Error("Expected string")}return AY(J)}function Rk(Z){return S1.copyBuffers?Uint8Array.prototype.slice.call(e,y,y+=Z):e.subarray(y,y+=Z)}function SY(Z){let J=e[y++];if(k5[J]){let X;return k5[J](e.subarray(y,X=y+=Z),(Y)=>{y=Y;try{return C8()}finally{y=X}})}else throw new Error("Unknown extension type "+J)}var a00=new Array(4096);function Q10(){let Z=e[y++];if(Z>=160&&Z<192){if(Z=Z-160,T9>=y)return MZ.slice(y-r5,(y+=Z)-r5);else if(!(T9==0&&t5<180))return fL(Z)}else return y--,K10(C8());let J=(Z<<5^(Z>1?e0.getUint16(y):Z>0?e[y]:0))&4095,X=a00[J],Y=y,$=y+Z-3,Q,K=0;if(X&&X.bytes==Z){while(Y<$){if(Q=e0.getUint32(Y),Q!=X[K++]){Y=1879048192;break}Y+=4}$+=3;while(Y<$)if(Q=e[Y++],Q!=X[K++]){Y=1879048192;break}if(Y===$)return y=Y,X.string;$-=3,Y=y}X=[],a00[J]=X,X.bytes=Z;while(Y<$)Q=e0.getUint32(Y),X.push(Q),Y+=4;$+=3;while(Y<$)Q=e[Y++],X.push(Q);let W=Z<16?Ik(Z):$10(Z);if(W!=null)return X.string=W;return X.string=fL(Z)}function K10(Z){if(typeof Z==="string")return Z;if(typeof Z==="number"||typeof Z==="boolean"||typeof Z==="bigint")return Z.toString();if(Z==null)return Z+"";if(S1.allowArraysInMapKeys&&Array.isArray(Z)&&Z.flat().every((J)=>["string","number","boolean","bigint"].includes(typeof J)))return Z.flat().toString();throw new Error(`Invalid property type for record: ${typeof Z}`)}var s00=(Z,J)=>{let X=C8().map(K10),Y=Z;if(J!==void 0)Z=Z<32?-((J<<5)+Z):(J<<5)+Z,X.highByte=J;let $=X1[Z];if($&&($.isShared||vJ))(X1.restoreStructures||(X1.restoreStructures=[]))[Z]=$;return X1[Z]=X,X.read=Ek(X,Y),X.read()};k5[0]=()=>{};k5[0].noBuffer=!0;k5[66]=(Z)=>{let J=Z.length,X=BigInt(Z[0]&128?Z[0]-256:Z[0]);for(let Y=1;Y<J;Y++)X<<=BigInt(8),X+=BigInt(Z[Y]);return X};var $E1={Error,TypeError,ReferenceError};k5[101]=()=>{let Z=C8();return($E1[Z[0]]||Error)(Z[1],{cause:Z[2]})};k5[105]=(Z)=>{if(S1.structuredClone===!1)throw new Error("Structured clone extension is disabled");let J=e0.getUint32(y-4);if(!RZ)RZ=new Map;let X=e[y],Y;if(X>=144&&X<160||X==220||X==221)Y=[];else if(X>=128&&X<144||X==222||X==223)Y=new Map;else if((X>=199&&X<=201||X>=212&&X<=216)&&e[y+1]===115)Y=new Set;else Y={};let $={target:Y};RZ.set(J,$);let Q=C8();if(!$.used)return $.target=Q;else Object.assign(Y,Q);if(Y instanceof Map)for(let[K,W]of Q.entries())Y.set(K,W);if(Y instanceof Set)for(let K of Array.from(Q))Y.add(K);return Y};k5[112]=(Z)=>{if(S1.structuredClone===!1)throw new Error("Structured clone extension is disabled");let J=e0.getUint32(y-4),X=RZ.get(J);return X.used=!0,X.target};k5[115]=()=>new Set(C8());var vk=["Int8","Uint8","Uint8Clamped","Int16","Uint16","Int32","Uint32","Float32","Float64","BigInt64","BigUint64"].map((Z)=>Z+"Array"),QE1=typeof globalThis==="object"?globalThis:window;k5[116]=(Z)=>{let J=Z[0],X=Uint8Array.prototype.slice.call(Z,1).buffer,Y=vk[J];if(!Y){if(J===16)return X;if(J===17)return new DataView(X);throw new Error("Could not find typed array for code "+J)}return new QE1[Y](X)};k5[120]=()=>{let Z=C8();return new RegExp(Z[0],Z[1])};var KE1=[];k5[98]=(Z)=>{let J=(Z[0]<<24)+(Z[1]<<16)+(Z[2]<<8)+Z[3],X=y;return y+=J-Z.length,l8=KE1,l8=[n00(),n00()],l8.position0=0,l8.position1=0,l8.postBundlePosition=y,y=X,C8()};k5[255]=(Z)=>{if(Z.length==4)return new Date((Z[0]*16777216+(Z[1]<<16)+(Z[2]<<8)+Z[3])*1000);else if(Z.length==8)return new Date(((Z[0]<<22)+(Z[1]<<14)+(Z[2]<<6)+(Z[3]>>2))/1e6+((Z[3]&3)*4294967296+Z[4]*16777216+(Z[5]<<16)+(Z[6]<<8)+Z[7])*1000);else if(Z.length==12)return new Date(((Z[0]<<24)+(Z[1]<<16)+(Z[2]<<8)+Z[3])/1e6+((Z[4]&128?-281474976710656:0)+Z[6]*1099511627776+Z[7]*4294967296+Z[8]*16777216+(Z[9]<<16)+(Z[10]<<8)+Z[11])*1000);else return new Date("invalid")};function W10(Z){if(Ck)Ck();let J=t5,X=y,Y=Lz,$=r5,Q=T9,K=MZ,W=_Y,G=RZ,z=l8,V=new Uint8Array(e.slice(0,t5)),H=X1,q=X1.slice(0,X1.length),F=S1,U=vJ,w=Z();return t5=J,y=X,Lz=Y,r5=$,T9=Q,MZ=K,_Y=W,RZ=G,l8=z,e=V,vJ=U,X1=H,X1.splice(0,X1.length,...q),S1=F,e0=new DataView(e.buffer,e.byteOffset,e.byteLength),w}function bL(){e=null,RZ=null,X1=null}var xY=new Array(147);for(let Z=0;Z<256;Z++)xY[Z]=+("1e"+Math.floor(45.15-Z*0.30103));var gL=new NZ({useRecords:!1}),WE1=gL.unpack,GE1=gL.unpackMultiple,zE1=gL.unpack;var VE1=new Float32Array(1),qj6=new Uint8Array(VE1.buffer,0,4);function G10(Z,J,X){Pk=Z,Dk=J,Ck=X}var uL;try{uL=new TextEncoder}catch(Z){}var Ak,q10,Bz=typeof Buffer!=="undefined",mL=Bz?function(Z){return Buffer.allocUnsafeSlow(Z)}:Uint8Array,F10=Bz?Buffer:Uint8Array,z10=Bz?4294967296:2144337920,c,wz,f1,g=0,t6,e1=null,U10,HE1=21760,qE1=/[\u0080-\uFFFF]/,U7=Symbol("record-id");class hY extends NZ{constructor(Z){super(Z);this.offset=0;let J,X,Y,$,Q,K=F10.prototype.utf8Write?function(I,v){return c.utf8Write(I,v,c.byteLength-v)}:uL&&uL.encodeInto?function(I,v){return uL.encodeInto(I,c.subarray(v)).written}:!1,W=this;if(!Z)Z={};let G=Z&&Z.sequential,z=Z.structures||Z.saveStructures,V=Z.maxSharedStructures;if(V==null)V=z?32:0;if(V>8160)throw new Error("Maximum maxSharedStructure is 8160");if(Z.structuredClone&&Z.moreTypes==null)this.moreTypes=!0;let H=Z.maxOwnStructures;if(H==null)H=z?32:64;if(!this.structures&&Z.useRecords!=!1)this.structures=[];let q=V>32||H+V>64,F=V+64,U=V+H+64;if(U>8256)throw new Error("Maximum maxSharedStructure + maxOwnStructure is 8192");let w=[],L=0,j=0;this.pack=this.encode=function(I,v){if(!c)c=new mL(8192),f1=c.dataView||(c.dataView=new DataView(c.buffer,0,8192)),g=0;if(t6=c.length-10,t6-g<2048)c=new mL(c.length),f1=c.dataView||(c.dataView=new DataView(c.buffer,0,c.length)),t6=c.length-10,g=0;else g=g+7&2147483640;if(X=g,v&OE1)g+=v&255;if(Q=W.structuredClone?new Map:null,W.bundleStrings&&typeof I!=="string")e1=[],e1.size=1/0;else e1=null;if($=W.structures,$){if($.uninitialized)$=W._mergeStructures(W.getStructures());let p=$.sharedLength||0;if(p>V)throw new Error("Shared structures is larger than maximum shared structures, try increasing maxSharedStructures to "+$.sharedLength);if(!$.transitions){$.transitions=Object.create(null);for(let n=0;n<p;n++){let o=$[n];if(!o)continue;let J0,Q0=$.transitions;for(let T0=0,k0=o.length;T0<k0;T0++){let a0=o[T0];if(J0=Q0[a0],!J0)J0=Q0[a0]=Object.create(null);Q0=J0}Q0[U7]=n+64}this.lastNamedStructuresLength=p}if(!G)$.nextId=p+64}if(Y)Y=!1;let f;try{if(W.randomAccessStructure&&I&&I.constructor&&I.constructor===Object)x(I);else N(I);let p=e1;if(e1)V10(X,N,0);if(Q&&Q.idsToInsert){let n=Q.idsToInsert.sort((T0,k0)=>T0.offset>k0.offset?1:-1),o=n.length,J0=-1;while(p&&o>0){let T0=n[--o].offset+X;if(T0<p.stringsPosition+X&&J0===-1)J0=0;if(T0>p.position+X){if(J0>=0)J0+=6}else{if(J0>=0)f1.setUint32(p.position+X,f1.getUint32(p.position+X)+J0),J0=-1;p=p.previous,o++}}if(J0>=0&&p)f1.setUint32(p.position+X,f1.getUint32(p.position+X)+J0);if(g+=n.length*6,g>t6)k(g);W.offset=g;let Q0=UE1(c.subarray(X,g),n);return Q=null,Q0}if(W.offset=g,v&BE1)return c.start=X,c.end=g,c;return c.subarray(X,g)}catch(p){throw f=p,p}finally{if($){if(R(),Y&&W.saveStructures){let p=$.sharedLength||0,n=c.subarray(X,g),o=L10($,W);if(!f){if(W.saveStructures(o,o.isCompatible)===!1)return W.pack(I,v);if(W.lastNamedStructuresLength=p,c.length>1073741824)c=null;return n}}}if(c.length>1073741824)c=null;if(v&jE1)g=X}};let R=()=>{if(j<10)j++;let I=$.sharedLength||0;if($.length>I&&!G)$.length=I;if(L>1e4){if($.transitions=null,j=0,L=0,w.length>0)w=[]}else if(w.length>0&&!G){for(let v=0,f=w.length;v<f;v++)w[v][U7]=0;w=[]}},O=(I)=>{var v=I.length;if(v<16)c[g++]=144|v;else if(v<65536)c[g++]=220,c[g++]=v>>8,c[g++]=v&255;else c[g++]=221,f1.setUint32(g,v),g+=4;for(let f=0;f<v;f++)N(I[f])},N=(I)=>{if(g>t6)c=k(g);var v=typeof I,f;if(v==="string"){let p=I.length;if(e1&&p>=4&&p<4096){if((e1.size+=p)>HE1){let Q0,T0=(e1[0]?e1[0].length*3+e1[1].length:0)+10;if(g+T0>t6)c=k(g+T0);let k0;if(e1.position)k0=e1,c[g]=200,g+=3,c[g++]=98,Q0=g-X,g+=4,V10(X,N,0),f1.setUint16(Q0+X-3,g-X-Q0);else c[g++]=214,c[g++]=98,Q0=g-X,g+=4;e1=["",""],e1.previous=k0,e1.size=0,e1.position=Q0}let J0=qE1.test(I);e1[J0?0:1]+=I,c[g++]=193,N(J0?-p:p);return}let n;if(p<32)n=1;else if(p<256)n=2;else if(p<65536)n=3;else n=5;let o=p*3;if(g+o>t6)c=k(g+o);if(p<64||!K){let J0,Q0,T0,k0=g+n;for(J0=0;J0<p;J0++)if(Q0=I.charCodeAt(J0),Q0<128)c[k0++]=Q0;else if(Q0<2048)c[k0++]=Q0>>6|192,c[k0++]=Q0&63|128;else if((Q0&64512)===55296&&((T0=I.charCodeAt(J0+1))&64512)===56320)Q0=65536+((Q0&1023)<<10)+(T0&1023),J0++,c[k0++]=Q0>>18|240,c[k0++]=Q0>>12&63|128,c[k0++]=Q0>>6&63|128,c[k0++]=Q0&63|128;else c[k0++]=Q0>>12|224,c[k0++]=Q0>>6&63|128,c[k0++]=Q0&63|128;f=k0-g-n}else f=K(I,g+n);if(f<32)c[g++]=160|f;else if(f<256){if(n<2)c.copyWithin(g+2,g+1,g+1+f);c[g++]=217,c[g++]=f}else if(f<65536){if(n<3)c.copyWithin(g+3,g+2,g+2+f);c[g++]=218,c[g++]=f>>8,c[g++]=f&255}else{if(n<5)c.copyWithin(g+5,g+3,g+3+f);c[g++]=219,f1.setUint32(g,f),g+=4}g+=f}else if(v==="number")if(I>>>0===I)if(I<32||I<128&&this.useRecords===!1||I<64&&!this.randomAccessStructure)c[g++]=I;else if(I<256)c[g++]=204,c[g++]=I;else if(I<65536)c[g++]=205,c[g++]=I>>8,c[g++]=I&255;else c[g++]=206,f1.setUint32(g,I),g+=4;else if(I>>0===I)if(I>=-32)c[g++]=256+I;else if(I>=-128)c[g++]=208,c[g++]=I+256;else if(I>=-32768)c[g++]=209,f1.setInt16(g,I),g+=2;else c[g++]=210,f1.setInt32(g,I),g+=4;else{let p;if((p=this.useFloat32)>0&&I<4294967296&&I>=-2147483648){c[g++]=202,f1.setFloat32(g,I);let n;if(p<4||(n=I*xY[(c[g]&127)<<1|c[g+1]>>7])>>0===n){g+=4;return}else g--}c[g++]=203,f1.setFloat64(g,I),g+=8}else if(v==="object"||v==="function")if(!I)c[g++]=192;else{if(Q){let n=Q.get(I);if(n){if(!n.id){let o=Q.idsToInsert||(Q.idsToInsert=[]);n.id=o.push(n)}c[g++]=214,c[g++]=112,f1.setUint32(g,n.id),g+=4;return}else Q.set(I,{offset:g-X})}let p=I.constructor;if(p===Object)T(I);else if(p===Array)O(I);else if(p===Map)if(this.mapAsEmptyObject)c[g++]=128;else{if(f=I.size,f<16)c[g++]=128|f;else if(f<65536)c[g++]=222,c[g++]=f>>8,c[g++]=f&255;else c[g++]=223,f1.setUint32(g,f),g+=4;for(let[n,o]of I)N(n),N(o)}else{for(let n=0,o=Ak.length;n<o;n++){let J0=q10[n];if(I instanceof J0){let Q0=Ak[n];if(Q0.write){if(Q0.type)c[g++]=212,c[g++]=Q0.type,c[g++]=0;let s1=Q0.write.call(this,I);if(s1===I)if(Array.isArray(I))O(I);else T(I);else N(s1);return}let T0=c,k0=f1,a0=g;c=null;let v8;try{v8=Q0.pack.call(this,I,(s1)=>{if(c=T0,T0=null,g+=s1,g>t6)k(g);return{target:c,targetView:f1,position:g-s1}},N)}finally{if(T0)c=T0,f1=k0,g=a0,t6=c.length-10}if(v8){if(v8.length+g>t6)k(v8.length+g);g=FE1(v8,c,g,Q0.type)}return}}if(Array.isArray(I))O(I);else{if(I.toJSON){let n=I.toJSON();if(n!==I)return N(n)}if(v==="function")return N(this.writeFunction&&this.writeFunction(I));T(I)}}}else if(v==="boolean")c[g++]=I?195:194;else if(v==="bigint"){if(I<9223372036854776000&&I>=-9223372036854776000)c[g++]=211,f1.setBigInt64(g,I);else if(I<18446744073709552000&&I>0)c[g++]=207,f1.setBigUint64(g,I);else if(this.largeBigIntToFloat)c[g++]=203,f1.setFloat64(g,Number(I));else if(this.largeBigIntToString)return N(I.toString());else if((this.useBigIntExtension||this.moreTypes)&&I<BigInt(2)**BigInt(1023)&&I>-(BigInt(2)**BigInt(1023))){c[g++]=199,g++,c[g++]=66;let p=[],n;do{let o=I&BigInt(255);n=(o&BigInt(128))===(I<BigInt(0)?BigInt(128):BigInt(0)),p.push(o),I>>=BigInt(8)}while(!((I===BigInt(0)||I===BigInt(-1))&&n));c[g-2]=p.length;for(let o=p.length;o>0;)c[g++]=Number(p[--o]);return}else throw new RangeError(I+" was too large to fit in MessagePack 64-bit integer format, use useBigIntExtension, or set largeBigIntToFloat to convert to float-64, or set largeBigIntToString to convert to string");g+=8}else if(v==="undefined")if(this.encodeUndefinedAsNil)c[g++]=192;else c[g++]=212,c[g++]=0,c[g++]=0;else throw new Error("Unknown type: "+v)},D=this.variableMapSize||this.coercibleKeyAsNumber||this.skipValues?(I)=>{let v;if(this.skipValues){v=[];for(let n in I)if((typeof I.hasOwnProperty!=="function"||I.hasOwnProperty(n))&&!this.skipValues.includes(I[n]))v.push(n)}else v=Object.keys(I);let f=v.length;if(f<16)c[g++]=128|f;else if(f<65536)c[g++]=222,c[g++]=f>>8,c[g++]=f&255;else c[g++]=223,f1.setUint32(g,f),g+=4;let p;if(this.coercibleKeyAsNumber)for(let n=0;n<f;n++){p=v[n];let o=Number(p);N(isNaN(o)?p:o),N(I[p])}else for(let n=0;n<f;n++)N(p=v[n]),N(I[p])}:(I)=>{c[g++]=222;let v=g-X;g+=2;let f=0;for(let p in I)if(typeof I.hasOwnProperty!=="function"||I.hasOwnProperty(p))N(p),N(I[p]),f++;if(f>65535)throw new Error('Object is too large to serialize with fast 16-bit map size, use the "variableMapSize" option to serialize this object');c[v+++X]=f>>8,c[v+X]=f&255},P=this.useRecords===!1?D:Z.progressiveRecords&&!q?(I)=>{let v,f=$.transitions||($.transitions=Object.create(null)),p=g++-X,n;for(let o in I)if(typeof I.hasOwnProperty!=="function"||I.hasOwnProperty(o)){if(v=f[o],v)f=v;else{let J0=Object.keys(I),Q0=f;f=$.transitions;let T0=0;for(let k0=0,a0=J0.length;k0<a0;k0++){let v8=J0[k0];if(v=f[v8],!v)v=f[v8]=Object.create(null),T0++;f=v}if(p+X+1==g)g--,A(f,J0,T0);else S(f,J0,p,T0);n=!0,f=Q0[o]}N(I[o])}if(!n){let o=f[U7];if(o)c[p+X]=o;else S(f,Object.keys(I),p,0)}}:(I)=>{let v,f=$.transitions||($.transitions=Object.create(null)),p=0;for(let o in I)if(typeof I.hasOwnProperty!=="function"||I.hasOwnProperty(o)){if(v=f[o],!v)v=f[o]=Object.create(null),p++;f=v}let n=f[U7];if(n)if(n>=96&&q)c[g++]=((n-=96)&31)+96,c[g++]=n>>5;else c[g++]=n;else A(f,f.__keys__||Object.keys(I),p);for(let o in I)if(typeof I.hasOwnProperty!=="function"||I.hasOwnProperty(o))N(I[o])},C=typeof this.useRecords=="function"&&this.useRecords,T=C?(I)=>{C(I)?P(I):D(I)}:P,k=(I)=>{let v;if(I>16777216){if(I-X>z10)throw new Error("Packed buffer would be larger than maximum buffer size");v=Math.min(z10,Math.round(Math.max((I-X)*(I>67108864?1.25:2),4194304)/4096)*4096)}else v=(Math.max(I-X<<2,c.length-1)>>12)+1<<12;let f=new mL(v);if(f1=f.dataView||(f.dataView=new DataView(f.buffer,0,v)),I=Math.min(I,c.length),c.copy)c.copy(f,0,X,I);else f.set(c.slice(X,I));return g-=X,X=0,t6=f.length-10,c=f},A=(I,v,f)=>{let p=$.nextId;if(!p)p=64;if(p<F&&this.shouldShareStructure&&!this.shouldShareStructure(v)){if(p=$.nextOwnId,!(p<U))p=F;$.nextOwnId=p+1}else{if(p>=U)p=F;$.nextId=p+1}let n=v.highByte=p>=96&&q?p-96>>5:-1;if(I[U7]=p,I.__keys__=v,$[p-64]=v,p<F)if(v.isShared=!0,$.sharedLength=p-63,Y=!0,n>=0)c[g++]=(p&31)+96,c[g++]=n;else c[g++]=p;else{if(n>=0)c[g++]=213,c[g++]=114,c[g++]=(p&31)+96,c[g++]=n;else c[g++]=212,c[g++]=114,c[g++]=p;if(f)L+=j*f;if(w.length>=H)w.shift()[U7]=0;w.push(I),N(v)}},S=(I,v,f,p)=>{let n=c,o=g,J0=t6,Q0=X;if(c=wz,g=0,X=0,!c)wz=c=new mL(8192);t6=c.length-10,A(I,v,p),wz=c;let T0=g;if(c=n,g=o,t6=J0,X=Q0,T0>1){let k0=g+T0-1;if(k0>t6)k(k0);let a0=f+X;c.copyWithin(a0+T0,a0+1,g),c.set(wz.slice(0,T0),a0),g=k0}else c[f+X]=wz[0]},x=(I)=>{let v=U10(I,c,X,g,$,k,(f,p,n)=>{if(n)return Y=!0;g=p;let o=c;if(N(f),R(),o!==c)return{position:g,targetView:f1,target:c};return g},this);if(v===0)return T(I);g=v}}useBuffer(Z){c=Z,c.dataView||(c.dataView=new DataView(c.buffer,c.byteOffset,c.byteLength)),g=0}set position(Z){g=Z}get position(){return g}clearSharedData(){if(this.structures)this.structures=[];if(this.typedStructs)this.typedStructs=[]}}q10=[Date,Set,Error,RegExp,ArrayBuffer,Object.getPrototypeOf(Uint8Array.prototype).constructor,DataView,yL];Ak=[{pack(Z,J,X){let Y=Z.getTime()/1000;if((this.useTimestamp32||Z.getMilliseconds()===0)&&Y>=0&&Y<4294967296){let{target:$,targetView:Q,position:K}=J(6);$[K++]=214,$[K++]=255,Q.setUint32(K,Y)}else if(Y>0&&Y<4294967296){let{target:$,targetView:Q,position:K}=J(10);$[K++]=215,$[K++]=255,Q.setUint32(K,Z.getMilliseconds()*4000000+(Y/1000/4294967296>>0)),Q.setUint32(K+4,Y)}else if(isNaN(Y)){if(this.onInvalidDate)return J(0),X(this.onInvalidDate());let{target:$,targetView:Q,position:K}=J(3);$[K++]=212,$[K++]=255,$[K++]=255}else{let{target:$,targetView:Q,position:K}=J(15);$[K++]=199,$[K++]=12,$[K++]=255,Q.setUint32(K,Z.getMilliseconds()*1e6),Q.setBigInt64(K+4,BigInt(Math.floor(Y)))}}},{pack(Z,J,X){if(this.setAsEmptyObject)return J(0),X({});let Y=Array.from(Z),{target:$,position:Q}=J(this.moreTypes?3:0);if(this.moreTypes)$[Q++]=212,$[Q++]=115,$[Q++]=0;X(Y)}},{pack(Z,J,X){let{target:Y,position:$}=J(this.moreTypes?3:0);if(this.moreTypes)Y[$++]=212,Y[$++]=101,Y[$++]=0;X([Z.name,Z.message,Z.cause])}},{pack(Z,J,X){let{target:Y,position:$}=J(this.moreTypes?3:0);if(this.moreTypes)Y[$++]=212,Y[$++]=120,Y[$++]=0;X([Z.source,Z.flags])}},{pack(Z,J){if(this.moreTypes)Sk(Z,16,J);else _k(Bz?Buffer.from(Z):new Uint8Array(Z),J)}},{pack(Z,J){let X=Z.constructor;if(X!==F10&&this.moreTypes)Sk(Z,vk.indexOf(X.name),J);else _k(Z,J)}},{pack(Z,J){if(this.moreTypes)Sk(Z,17,J);else _k(Bz?Buffer.from(Z):new Uint8Array(Z),J)}},{pack(Z,J){let{target:X,position:Y}=J(1);X[Y]=193}}];function Sk(Z,J,X,Y){let $=Z.byteLength;if($+1<256){var{target:Q,position:K}=X(4+$);Q[K++]=199,Q[K++]=$+1}else if($+1<65536){var{target:Q,position:K}=X(5+$);Q[K++]=200,Q[K++]=$+1>>8,Q[K++]=$+1&255}else{var{target:Q,position:K,targetView:W}=X(7+$);Q[K++]=201,W.setUint32(K,$+1),K+=4}if(Q[K++]=116,Q[K++]=J,!Z.buffer)Z=new Uint8Array(Z);Q.set(new Uint8Array(Z.buffer,Z.byteOffset,Z.byteLength),K)}function _k(Z,J){let X=Z.byteLength;var Y,$;if(X<256){var{target:Y,position:$}=J(X+2);Y[$++]=196,Y[$++]=X}else if(X<65536){var{target:Y,position:$}=J(X+3);Y[$++]=197,Y[$++]=X>>8,Y[$++]=X&255}else{var{target:Y,position:$,targetView:Q}=J(X+5);Y[$++]=198,Q.setUint32($,X),$+=4}Y.set(Z,$)}function FE1(Z,J,X,Y){let $=Z.length;switch($){case 1:J[X++]=212;break;case 2:J[X++]=213;break;case 4:J[X++]=214;break;case 8:J[X++]=215;break;case 16:J[X++]=216;break;default:if($<256)J[X++]=199,J[X++]=$;else if($<65536)J[X++]=200,J[X++]=$>>8,J[X++]=$&255;else J[X++]=201,J[X++]=$>>24,J[X++]=$>>16&255,J[X++]=$>>8&255,J[X++]=$&255}return J[X++]=Y,J.set(Z,X),X+=$,X}function UE1(Z,J){let X,Y=J.length*6,$=Z.length-Y;while(X=J.pop()){let{offset:Q,id:K}=X;Z.copyWithin(Q+Y,Q,$),Y-=6;let W=Q+Y;Z[W++]=214,Z[W++]=105,Z[W++]=K>>24,Z[W++]=K>>16&255,Z[W++]=K>>8&255,Z[W++]=K&255,$=Q}return Z}function V10(Z,J,X){if(e1.length>0){f1.setUint32(e1.position+Z,g+X-e1.position-Z),e1.stringsPosition=g-Z;let Y=e1;e1=null,J(Y[0]),J(Y[1])}}function L10(Z,J){return Z.isCompatible=(X)=>{let Y=!X||(J.lastNamedStructuresLength||0)===X.length;if(!Y)J._mergeStructures(X);return Y},Z}function w10(Z,J){U10=Z,L10=J}var B10=new hY({useRecords:!1}),LE1=B10.pack,wE1=B10.pack;var BE1=512,jE1=1024,OE1=2048;var xk=3,zK=0,jz=2,dL=1,fk=16,O10=["num","object","string","ascii"];O10[fk]="date";var RE1=[!1,!0,!0,!1,!1,!0,!0,!1],M10;try{new Function(""),M10=!0}catch(Z){}var fY,NE1=typeof Buffer!=="undefined",cL,L7;try{cL=new TextEncoder}catch(Z){}var PE1=NE1?function(Z,J,X){return Z.utf8Write(J,X,Z.byteLength-X)}:cL&&cL.encodeInto?function(Z,J,X){return cL.encodeInto(J,Z.subarray(X)).written}:!1,Rj6=Symbol("type"),Nj6=Symbol("parent");w10(R10,EE1);function R10(Z,J,X,Y,$,Q,K,W){let G=W.typedStructs||(W.typedStructs=[]),z=J.dataView,V=(G.lastStringStart||100)+Y,H=J.length-10,q=Y;if(Y>H)J=Q(Y),z=J.dataView,Y-=X,q-=X,V-=X,X=0,H=J.length-10;let F,U=V,w=G.transitions||(G.transitions=Object.create(null)),L=G.nextId||G.length,j=L<15?1:L<240?2:L<61440?3:L<15728640?4:0;if(j===0)return 0;Y+=j;let R=[],O,N=0;for(let P in Z){let C=Z[P],T=w[P];if(!T)w[P]=T={key:P,parent:w,enumerationOffset:0,ascii0:null,ascii8:null,num8:null,string16:null,object16:null,num32:null,float64:null,date64:null};if(Y>H)J=Q(Y),z=J.dataView,Y-=X,q-=X,V-=X,U-=X,X=0,H=J.length-10;switch(typeof C){case"number":let k=C;if(L<200||!T.num64){if(k>>0===k&&k<536870912&&k>-520093696){if(k<246&&k>=0&&(T.num8&&!(L>200&&T.num32)||k<32&&!T.num32))w=T.num8||E5(T,zK,1),J[Y++]=k;else w=T.num32||E5(T,zK,4),z.setUint32(Y,k,!0),Y+=4;break}else if(k<4294967296&&k>=-2147483648){if(z.setFloat32(Y,k,!0),RE1[J[Y+3]>>>5]){let I;if((I=k*xY[(J[Y+3]&127)<<1|J[Y+2]>>7])>>0===I){w=T.num32||E5(T,zK,4),Y+=4;break}}}}w=T.num64||E5(T,zK,8),z.setFloat64(Y,k,!0),Y+=8;break;case"string":let A=C.length;if(F=U-V,(A<<2)+U>H)J=Q((A<<2)+U),z=J.dataView,Y-=X,q-=X,V-=X,U-=X,X=0,H=J.length-10;if(A>65280+F>>2){R.push(P,C,Y-q);break}let S,x=U;if(A<64){let I,v,f;for(I=0;I<A;I++)if(v=C.charCodeAt(I),v<128)J[U++]=v;else if(v<2048)S=!0,J[U++]=v>>6|192,J[U++]=v&63|128;else if((v&64512)===55296&&((f=C.charCodeAt(I+1))&64512)===56320)S=!0,v=65536+((v&1023)<<10)+(f&1023),I++,J[U++]=v>>18|240,J[U++]=v>>12&63|128,J[U++]=v>>6&63|128,J[U++]=v&63|128;else S=!0,J[U++]=v>>12|224,J[U++]=v>>6&63|128,J[U++]=v&63|128}else U+=PE1(J,C,U),S=U-x>A;if(F<160||F<246&&(T.ascii8||T.string8)){if(S){if(!(w=T.string8))if(G.length>10&&(w=T.ascii8))w.__type=jz,T.ascii8=null,T.string8=w,K(null,0,!0);else w=E5(T,jz,1)}else if(F===0&&!O){O=!0,w=T.ascii0||E5(T,xk,0);break}else if(!(w=T.ascii8)&&!(G.length>10&&(w=T.string8)))w=E5(T,xk,1);J[Y++]=F}else w=T.string16||E5(T,jz,2),z.setUint16(Y,F,!0),Y+=2;break;case"object":if(C){if(C.constructor===Date)w=T.date64||E5(T,fk,8),z.setFloat64(Y,C.getTime(),!0),Y+=8;else R.push(P,C,N);break}else if(T=j10(T,Y,z,-10),T)w=T,Y=fY;else R.push(P,C,N);break;case"boolean":w=T.num8||T.ascii8||E5(T,zK,1),J[Y++]=C?249:248;break;case"undefined":if(T=j10(T,Y,z,-9),T)w=T,Y=fY;else R.push(P,C,N);break;default:R.push(P,C,N)}N++}for(let P=0,C=R.length;P<C;){let T=R[P++],k=R[P++],A=R[P++],S=w[T];if(!S)w[T]=S={key:T,parent:w,enumerationOffset:A-N,ascii0:null,ascii8:null,num8:null,string16:null,object16:null,num32:null,float64:null};let x;if(k){let I;if(F=U-V,F<65280)if(w=S.object16,w)I=2;else if(w=S.object32)I=4;else w=E5(S,dL,2),I=2;else w=S.object32||E5(S,dL,4),I=4;if(x=K(k,U),typeof x==="object")U=x.position,z=x.targetView,J=x.target,V-=X,Y-=X,q-=X,X=0;else U=x;if(I===2)z.setUint16(Y,F,!0),Y+=2;else z.setUint32(Y,F,!0),Y+=4}else w=S.object16||E5(S,dL,2),z.setInt16(Y,k===null?-10:-9,!0),Y+=2;N++}let D=w[U7];if(D==null){D=W.typedStructs.length;let P=[],C=w,T,k;while((k=C.__type)!==void 0){let A=C.__size;C=C.__parent,T=C.key;let S=[k,A,T];if(C.enumerationOffset)S.push(C.enumerationOffset);P.push(S),C=C.parent}P.reverse(),w[U7]=D,W.typedStructs[D]=P,K(null,0,!0)}switch(j){case 1:if(D>=16)return 0;J[q]=D+32;break;case 2:if(D>=256)return 0;J[q]=56,J[q+1]=D;break;case 3:if(D>=65536)return 0;J[q]=57,z.setUint16(q+1,D,!0);break;case 4:if(D>=16777216)return 0;z.setUint32(q,(D<<8)+58,!0);break}if(Y<V){if(V===U)return Y;J.copyWithin(Y,V,U),U+=Y-V,G.lastStringStart=Y-q}else if(Y>V){if(V===U)return Y;return G.lastStringStart=Y-q,R10(Z,J,X,q,$,Q,K,W)}return U}function j10(Z,J,X,Y){let $;if($=Z.ascii8||Z.num8)return X.setInt8(J,Y,!0),fY=J+1,$;if($=Z.string16||Z.object16)return X.setInt16(J,Y,!0),fY=J+2,$;if($=Z.num32)return X.setUint32(J,3758096640+Y,!0),fY=J+4,$;if($=Z.num64)return X.setFloat64(J,NaN,!0),X.setInt8(J,Y),fY=J+8,$;fY=J;return}function E5(Z,J,X){let Y=O10[J]+(X<<3),$=Z[Y]||(Z[Y]=Object.create(null));return $.__type=J,$.__size=X,$.__parent=Z,$}function DE1(Z){if(!(Z instanceof Map))return Z;let J=Z.get("typed")||[];if(Object.isFrozen(J))J=J.map(($)=>$.slice(0));let X=Z.get("named"),Y=Object.create(null);for(let $=0,Q=J.length;$<Q;$++){let K=J[$],W=Y;for(let[G,z,V]of K){let H=W[V];if(!H)W[V]=H={key:V,parent:W,enumerationOffset:0,ascii0:null,ascii8:null,num8:null,string16:null,object16:null,num32:null,float64:null,date64:null};W=E5(H,G,z)}W[U7]=$}return J.transitions=Y,this.typedStructs=J,this.lastTypedStructuresLength=J.length,X}var hk=Symbol.for("source");function CE1(Z,J,X,Y){let $=Z[J++]-32;if($>=24)switch($){case 24:$=Z[J++];break;case 25:$=Z[J++]+(Z[J++]<<8);break;case 26:$=Z[J++]+(Z[J++]<<8)+(Z[J++]<<16);break;case 27:$=Z[J++]+(Z[J++]<<8)+(Z[J++]<<16)+(Z[J++]<<24);break}let Q=Y.typedStructs&&Y.typedStructs[$];if(!Q){if(Z=Uint8Array.prototype.slice.call(Z,J,X),X-=J,J=0,!Y.getStructures)throw new Error(`Reference to shared structure ${$} without getStructures method`);if(Y._mergeStructures(Y.getStructures()),!Y.typedStructs)throw new Error("Could not find any shared typed structures");if(Y.lastTypedStructuresLength=Y.typedStructs.length,Q=Y.typedStructs[$],!Q)throw new Error("Could not find typed structure "+$)}var{construct:K,fullConstruct:W}=Q;if(!K){K=Q.construct=function F(){},W=Q.fullConstruct=function F(){},W.prototype=Y.structPrototype??{};var G=K.prototype=Y.structPrototype?Object.create(Y.structPrototype):{};let V=[],H=0,q;for(let F=0,U=Q.length;F<U;F++){let w=Q[F],[L,j,R,O]=w;if(R==="__proto__")R="__proto_";let N={key:R,offset:H};if(O)V.splice(F+O,0,N);else V.push(N);let D;switch(j){case 0:D=()=>0;break;case 1:D=(C,T)=>{let k=C.bytes[T+N.offset];return k>=246?GK(k):k};break;case 2:D=(C,T)=>{let k=C.bytes,S=(k.dataView||(k.dataView=new DataView(k.buffer,k.byteOffset,k.byteLength))).getUint16(T+N.offset,!0);return S>=65280?GK(S&255):S};break;case 4:D=(C,T)=>{let k=C.bytes,S=(k.dataView||(k.dataView=new DataView(k.buffer,k.byteOffset,k.byteLength))).getUint32(T+N.offset,!0);return S>=4294967040?GK(S&255):S};break}N.getRef=D,H+=j;let P;switch(L){case xk:if(q&&!q.next)q.next=N;q=N,N.multiGetCount=0,P=function(C){let{bytes:T,position:k}=C,A=H+k,S=D(C,k);if(typeof S!=="number")return S;let x,I=N.next;while(I){if(x=I.getRef(C,k),typeof x==="number")break;else x=null;I=I.next}if(x==null)x=C.bytesEnd-A;if(C.srcString)return C.srcString.slice(S,x);return Y10(T,S+A,x-S)};break;case jz:case dL:if(q&&!q.next)q.next=N;q=N,P=function(C){let T=C.position,k=H+T,A=D(C,T);if(typeof A!=="number")return A;let S=C.bytes,x,I=N.next;while(I){if(x=I.getRef(C,T),typeof x==="number")break;else x=null;I=I.next}if(x==null)x=C.bytesEnd-k;if(L===jz)return S.toString("utf8",A+k,x+k);else{L7=C;try{return Y.unpack(S,{start:A+k,end:x+k})}finally{L7=null}}};break;case zK:switch(j){case 4:P=function(C){let T=C.bytes,k=T.dataView||(T.dataView=new DataView(T.buffer,T.byteOffset,T.byteLength)),A=C.position+N.offset,S=k.getInt32(A,!0);if(S<536870912){if(S>-520093696)return S;if(S>-536870912)return GK(S&255)}let x=k.getFloat32(A,!0),I=xY[(T[A+3]&127)<<1|T[A+2]>>7];return(I*x+(x>0?0.5:-0.5)>>0)/I};break;case 8:P=function(C){let T=C.bytes,A=(T.dataView||(T.dataView=new DataView(T.buffer,T.byteOffset,T.byteLength))).getFloat64(C.position+N.offset,!0);if(isNaN(A)){let S=T[C.position+N.offset];if(S>=246)return GK(S)}return A};break;case 1:P=function(C){let k=C.bytes[C.position+N.offset];return k<246?k:GK(k)};break}break;case fk:P=function(C){let T=C.bytes,k=T.dataView||(T.dataView=new DataView(T.buffer,T.byteOffset,T.byteLength));return new Date(k.getFloat64(C.position+N.offset,!0))};break}N.get=P}if(M10){let F=[],U=[],w=0,L;for(let R of V){if(Y.alwaysLazyProperty&&Y.alwaysLazyProperty(R.key)){L=!0;continue}Object.defineProperty(G,R.key,{get:TE1(R.get),enumerable:!0});let O="v"+w++;U.push(O),F.push("o["+JSON.stringify(R.key)+"]="+O+"(s)")}if(L)F.push("__proto__:this");let j=new Function(...U,"var c=this;return function(s){var o=new c();"+F.join(";")+";return o;}").apply(W,V.map((R)=>R.get));Object.defineProperty(G,"toJSON",{value(R){return j.call(this,this[hk])}})}else Object.defineProperty(G,"toJSON",{value(F){let U={};for(let w=0,L=V.length;w<L;w++){let j=V[w].key;U[j]=this[j]}return U}})}var z=new K;return z[hk]={bytes:Z,position:J,srcString:"",bytesEnd:X},z}function GK(Z){switch(Z){case 246:return null;case 247:return;case 248:return!1;case 249:return!0}throw new Error("Unknown constant")}function TE1(Z){return function(){return Z(this[hk])}}function kE1(){if(L7)L7.bytes=Uint8Array.prototype.slice.call(L7.bytes,L7.position,L7.bytesEnd),L7.position=0,L7.bytesEnd=L7.bytes.length}function EE1(Z,J){if(J.typedStructs){let Y=new Map;Y.set("named",Z),Y.set("typed",J.typedStructs),Z=Y}let X=J.lastTypedStructuresLength||0;return Z.isCompatible=(Y)=>{let $=!0;if(Y instanceof Map){if((Y.get("named")||[]).length!==(J.lastNamedStructuresLength||0))$=!1;if((Y.get("typed")||[]).length!==X)$=!1}else if(Y instanceof Array||Array.isArray(Y)){if(Y.length!==(J.lastNamedStructuresLength||0))$=!1}if(!$)J._mergeStructures(Y);return $},J.lastTypedStructuresLength=J.typedStructs&&J.typedStructs.length,Z}G10(CE1,DE1,kE1);var SE1=process.env.MSGPACKR_NATIVE_ACCELERATION_DISABLED!==void 0&&process.env.MSGPACKR_NATIVE_ACCELERATION_DISABLED.toLowerCase()==="true";if(!SE1){let Z;try{if(Z=u("msgpackr-extract"),Z)X10(Z.extractStrings)}catch(J){}}import{WebSocketServer as Em1}from"ws";import Im1 from"mediasoup";var ow=t(JJ0(),1);import Dm1 from"http";import Cm1 from"https";import sw from"fs";import Tm1 from"path";import km1 from"url";var XJ0=`-----BEGIN CERTIFICATE-----
|
408
408
|
MIIDRjCCAi6gAwIBAgIFOTEzNTIwDQYJKoZIhvcNAQELBQAwWDEQMA4GA1UEAxMH
|
409
409
|
SFlUT1BJQTELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNV
|
@@ -449,12 +449,12 @@ qYGMwU/HBVHkLAn5XvT2a9xM0mzZ558d+ahbw8qAgRxg7BZ+2PW/bf7F2WRBUk1f
|
|
449
449
|
xauhAoGBALEspoxQozwohGQnP7EMF0/0JoKNpdNv0b0qCVvNiMo0+N297lI2mFQp
|
450
450
|
6xYlW/1l9afLokklF/J2IsyBrTCZoY7SaEk/lMMrQSyra+y0z71ogZ8A4ny9fxsj
|
451
451
|
0dDYJZGllL+3E/MQfd7k+KnOM/+A+cPoAnci76+L3vdkUb2P8SJk
|
452
|
-
-----END RSA PRIVATE KEY-----`;var iI=process.env.PORT??8080,nI="0.6.
|
452
|
+
-----END RSA PRIVATE KEY-----`;var iI=process.env.PORT??8080,nI="0.6.21",aI;(($)=>{$.READY="WEBSERVER.READY";$.STOPPED="WEBSERVER.STOPPED";$.ERROR="WEBSERVER.ERROR";$.UPGRADE="WEBSERVER.UPGRADE"})(aI||={});class uK extends j0{static instance=new uK;_webserver=ow.default();_internalHttpServer;constructor(){super();this._webserver.use((Z,J,X)=>{J.header("Access-Control-Allow-Origin","*"),X()}),this._webserver.get("/",(Z,J)=>{J.json({status:"OK",version:nI,runtime:typeof Bun!=="undefined"?"bun":"node"})}),this._webserver.use(ow.default.static("assets"));try{this._webserver.use(ow.default.static(Tm1.dirname(u.resolve("@hytopia.com/assets"))))}catch{}}start(){if(!this._internalHttpServer)this._internalHttpServer=process.env.NODE_ENV==="production"?Dm1.createServer(this._webserver):Cm1.createServer({key:sw.existsSync("assets/certs/localhost.key")?sw.readFileSync("assets/certs/localhost.key"):YJ0,cert:sw.existsSync("assets/certs/localhost.crt")?sw.readFileSync("assets/certs/localhost.crt"):XJ0},this._webserver),this._internalHttpServer.on("upgrade",this._onUpgrade),this._internalHttpServer.on("error",this._onError),this._internalHttpServer.on("close",this._onStopped);else m.warning("WebServer.start(): server already started!");this._internalHttpServer.listen(iI,this._onStarted),console.info(`WebServer.start(): Server running on port ${iI}.`)}stop(){if(this._internalHttpServer)return new Promise((Z,J)=>{this._internalHttpServer.close((X)=>{if(X)J(X);else Z(!0)})});else return m.warning("WebServer.stop(): server not started."),Promise.resolve(!1)}_onStarted=()=>{this.emitWithGlobal("WEBSERVER.READY",{})};_onUpgrade=async(Z,J,X)=>{let Y=km1.parse(Z.url??"",!0).query,$=Y.connectionId?.toString(),Q=Y.sessionToken?.toString()??"";if($&&P7.instance.isValidConnectionId($))Z.connectionId=$;else{let K=await q7.instance.getPlayerSession(Q);if(K?.error){let W=`${K.error.code}: ${K.error.message}`;J.write(`HTTP/1.1 401 Unauthorized\r
|
453
453
|
Content-Type: text/plain\r
|
454
454
|
Content-Length: ${W.length}\r
|
455
455
|
Connection: close\r
|
456
456
|
\r
|
457
|
-
${W}`),J.end();return}if(K)Z.session=K}J.setNoDelay(!0),this.emitWithGlobal("WEBSERVER.UPGRADE",{req:Z,socket:J,head:X})};_onError=(Z)=>{m.error(`WebServer._onError(): ${Z.message}`),this.emitWithGlobal("WEBSERVER.ERROR",{error:Z})};_onStopped=()=>{this.emitWithGlobal("WEBSERVER.STOPPED",{})}}class P7 extends j0{static instance=new P7;_connections=new Map;_wss;_wrtcMinPort=process.env.WRTC_MIN_PORT?parseInt(process.env.WRTC_MIN_PORT):40000;_wrtcMaxPort=process.env.WRTC_MAX_PORT?parseInt(process.env.WRTC_MAX_PORT):41023;_wrtcPublicIpv4=process.env.NODE_ENV==="production"?process.env.WRTC_PUBLIC_IPV4:"127.0.0.1";_wrtcPublicIpv6=process.env.NODE_ENV==="production"?process.env.WRTC_PUBLIC_IPV6:"::";_wrtcRouter=null;_wrtcWorker=null;constructor(){super();this._wss=new Em1({noServer:!0}),this._wss.on("connection",this._onConnection),this._wss.on("error",this._onError),this._initWrtc().catch((Z)=>{m.warning(`Socket._constructor(): Failed to initialize WebRTC, falling back to Websockets. This can be ignored for local development. Error: ${Z.message}`)}),j0.globalInstance.on("WEBSERVER.UPGRADE",({req:Z,socket:J,head:X})=>{this._onUpgrade(Z,J,X)})}get isWrtcEnabled(){return this._wrtcWorker&&!this._wrtcWorker.died&&this._wrtcRouter}get wrtcRouter(){return this._wrtcRouter}async createWrtcTransports(){if(!this.isWrtcEnabled)m.fatalError("Socket.createWrtcTransports(): WebRTC not enabled, unable to create transports.");let Z={listenIps:[{ip:"::",announcedIp:this._wrtcPublicIpv6},{ip:"0.0.0.0",announcedIp:this._wrtcPublicIpv4}],preferUdp:!0,enableSctp:!0,enableTcp:!1},J=await this._wrtcRouter.createDirectTransport(),X=await this._wrtcRouter.createWebRtcTransport(Z),Y=await this._wrtcRouter.createWebRtcTransport(Z);return{directTransport:J,clientServerTransport:X,serverClientTransport:Y}}isValidConnectionId(Z){return this._connections.has(Z)}async _initWrtc(){if(!this._wrtcPublicIpv4||!this._wrtcPublicIpv6)throw new Error("Socket._initWrtc(): WebRTC disabled, falling back to Websockets. Env variables WRTC_PUBLIC_IPV4 and WRTC_PUBLIC_IPV6 must be set in production");this._wrtcWorker=await Im1.createWorker({rtcMinPort:this._wrtcMinPort,rtcMaxPort:this._wrtcMaxPort}),this._wrtcWorker.on("died",this._onWrtcWorkerDied),this._wrtcRouter=await this._wrtcWorker.createRouter({mediaCodecs:[]}),console.log("Socket._initWrtc(): WebRTC enabled and ready!")}_onConnection=(Z,J)=>{let X=J.connectionId;if(X&&this._connections.has(X))this._connections.get(X).bindWs(Z);else{let Y=new M4(Z,J);Y.on("CONNECTION.CLOSED",()=>{this._connections.delete(Y.id)}),this._connections.set(Y.id,Y)}};_onError=(Z,J)=>{this.emitWithGlobal("SOCKET.ERROR",{ws:Z,error:J})};_onUpgrade=(Z,J,X)=>{this._wss.handleUpgrade(Z,J,X,(Y)=>{this._wss.emit("connection",Y,Z)})};_onWrtcWorkerDied=(Z)=>{m.warning(`Socket._onWrtcWorkerDied(): WebRTC worker unexpectedly died, falling back to Websockets for all players. Internal error: ${Z}`),Z9.instance.getConnectedPlayers().forEach((J)=>{J.connection.closeWrtc()}),this._wrtcRouter?.close(),this._wrtcRouter=null,this._wrtcWorker?.close(),this._wrtcWorker=null}}var F0=typeof __SENTRY_DEBUG__==="undefined"||__SENTRY_DEBUG__;var h8="9.22.0";var v0=globalThis;function Y5(){return gJ(v0),v0}function gJ(Z){let J=Z.__SENTRY__=Z.__SENTRY__||{};return J.version=J.version||h8,J[h8]=J[h8]||{}}function eY(Z,J,X=v0){let Y=X.__SENTRY__=X.__SENTRY__||{},$=Y[h8]=Y[h8]||{};return $[Z]||($[Z]=J())}var $J0=Object.prototype.toString;function rw(Z){switch($J0.call(Z)){case"[object Error]":case"[object Exception]":case"[object DOMException]":case"[object WebAssembly.Exception]":return!0;default:return CZ(Z,Error)}}function tw(Z,J){return $J0.call(Z)===`[object ${J}]`}function QJ0(Z){return tw(Z,"ErrorEvent")}function Z$(Z){return tw(Z,"String")}function BV(Z){return typeof Z==="object"&&Z!==null&&"__sentry_template_string__"in Z&&"__sentry_template_values__"in Z}function jV(Z){return Z===null||BV(Z)||typeof Z!=="object"&&typeof Z!=="function"}function mJ(Z){return tw(Z,"Object")}function KJ0(Z){return typeof Event!=="undefined"&&CZ(Z,Event)}function WJ0(Z){return typeof Element!=="undefined"&&CZ(Z,Element)}function GJ0(Z){return tw(Z,"RegExp")}function D7(Z){return Boolean(Z?.then&&typeof Z.then==="function")}function zJ0(Z){return mJ(Z)&&"nativeEvent"in Z&&"preventDefault"in Z&&"stopPropagation"in Z}function CZ(Z,J){try{return Z instanceof J}catch(X){return!1}}function ew(Z){return!!(typeof Z==="object"&&Z!==null&&(Z.__isVue||Z._isVue))}var Sm1=v0,_m1=80;function VJ0(Z,J={}){if(!Z)return"<unknown>";try{let X=Z,Y=5,$=[],Q=0,K=0,W=" > ",G=W.length,z,V=Array.isArray(J)?J:J.keyAttrs,H=!Array.isArray(J)&&J.maxStringLength||_m1;while(X&&Q++<Y){if(z=Am1(X,V),z==="html"||Q>1&&K+$.length*G+z.length>=H)break;$.push(z),K+=z.length,X=X.parentNode}return $.reverse().join(W)}catch(X){return"<unknown>"}}function Am1(Z,J){let X=Z,Y=[];if(!X?.tagName)return"";if(Sm1.HTMLElement){if(X instanceof HTMLElement&&X.dataset){if(X.dataset.sentryComponent)return X.dataset.sentryComponent;if(X.dataset.sentryElement)return X.dataset.sentryElement}}Y.push(X.tagName.toLowerCase());let $=J?.length?J.filter((K)=>X.getAttribute(K)).map((K)=>[K,X.getAttribute(K)]):null;if($?.length)$.forEach((K)=>{Y.push(`[${K[0]}="${K[1]}"]`)});else{if(X.id)Y.push(`#${X.id}`);let K=X.className;if(K&&Z$(K)){let W=K.split(/\s+/);for(let G of W)Y.push(`.${G}`)}}let Q=["aria-label","type","name","title","alt"];for(let K of Q){let W=X.getAttribute(K);if(W)Y.push(`[${K}="${W}"]`)}return Y.join("")}var xm1="Sentry Logger ",J$=["debug","info","warn","error","log","assert","trace"],dK={};function T8(Z){if(!("console"in v0))return Z();let J=v0.console,X={},Y=Object.keys(dK);Y.forEach(($)=>{let Q=dK[$];X[$]=J[$],J[$]=Q});try{return Z()}finally{Y.forEach(($)=>{J[$]=X[$]})}}function hm1(){let Z=!1,J={enable:()=>{Z=!0},disable:()=>{Z=!1},isEnabled:()=>Z};if(F0)J$.forEach((X)=>{J[X]=(...Y)=>{if(Z)T8(()=>{v0.console[X](`${xm1}[${X}]:`,...Y)})}});else J$.forEach((X)=>{J[X]=()=>{return}});return J}var l=eY("logger",hm1);function C7(Z,J=0){if(typeof Z!=="string"||J===0)return Z;return Z.length<=J?Z:`${Z.slice(0,J)}...`}function sI(Z,J){let X=Z,Y=X.length;if(Y<=150)return X;if(J>Y)J=Y;let $=Math.max(J-60,0);if($<5)$=0;let Q=Math.min($+140,Y);if(Q>Y-5)Q=Y;if(Q===Y)$=Math.max(Q-140,0);if(X=X.slice($,Q),$>0)X=`'{snip} ${X}`;if(Q<Y)X+=" {snip}";return X}function oI(Z,J){if(!Array.isArray(Z))return"";let X=[];for(let Y=0;Y<Z.length;Y++){let $=Z[Y];try{if(ew($))X.push("[VueViewModel]");else X.push(String($))}catch(Q){X.push("[value cannot be serialized]")}}return X.join(J)}function HJ0(Z,J,X=!1){if(!Z$(Z))return!1;if(GJ0(J))return J.test(Z);if(Z$(J))return X?Z===J:Z.includes(J);return!1}function uJ(Z,J=[],X=!1){return J.some((Y)=>HJ0(Z,Y,X))}function rI(Z,J,X){if(!(J in Z))return;let Y=Z[J];if(typeof Y!=="function")return;let $=X(Y);if(typeof $==="function")UJ0($,Y);try{Z[J]=$}catch{F0&&l.log(`Failed to replace method "${J}" in object`,Z)}}function W6(Z,J,X){try{Object.defineProperty(Z,J,{value:X,writable:!0,configurable:!0})}catch(Y){F0&&l.log(`Failed to add non-enumerable property "${J}" to object`,Z)}}function UJ0(Z,J){try{let X=J.prototype||{};Z.prototype=J.prototype=X,W6(Z,"__sentry_original__",J)}catch(X){}}function tI(Z){return Z.__sentry_original__}function ZB(Z){if(rw(Z))return{message:Z.message,name:Z.name,stack:Z.stack,...FJ0(Z)};else if(KJ0(Z)){let J={type:Z.type,target:qJ0(Z.target),currentTarget:qJ0(Z.currentTarget),...FJ0(Z)};if(typeof CustomEvent!=="undefined"&&CZ(Z,CustomEvent))J.detail=Z.detail;return J}else return Z}function qJ0(Z){try{return WJ0(Z)?VJ0(Z):Object.prototype.toString.call(Z)}catch(J){return"<unknown>"}}function FJ0(Z){if(typeof Z==="object"&&Z!==null){let J={};for(let X in Z)if(Object.prototype.hasOwnProperty.call(Z,X))J[X]=Z[X];return J}else return{}}function eI(Z,J=40){let X=Object.keys(ZB(Z));X.sort();let Y=X[0];if(!Y)return"[object has no keys]";if(Y.length>=J)return C7(Y,J);for(let $=X.length;$>0;$--){let Q=X.slice(0,$).join(", ");if(Q.length>J)continue;if($===X.length)return Q;return C7(Q,J)}return""}function fm1(){let Z=v0;return Z.crypto||Z.msCrypto}function i8(Z=fm1()){let J=()=>Math.random()*16;try{if(Z?.randomUUID)return Z.randomUUID().replace(/-/g,"");if(Z?.getRandomValues)J=()=>{let X=new Uint8Array(1);return Z.getRandomValues(X),X[0]}}catch(X){}return([1e7]+1000+4000+8000+100000000000).replace(/[018]/g,(X)=>(X^(J()&15)>>X/4).toString(16))}function LJ0(Z){return Z.exception?.values?.[0]}function dJ(Z){let{message:J,event_id:X}=Z;if(J)return J;let Y=LJ0(Z);if(Y){if(Y.type&&Y.value)return`${Y.type}: ${Y.value}`;return Y.type||Y.value||X||"<unknown>"}return X||"<unknown>"}function Jv(Z,J,X){let Y=Z.exception=Z.exception||{},$=Y.values=Y.values||[],Q=$[0]=$[0]||{};if(!Q.value)Q.value=J||"";if(!Q.type)Q.type=X||"Error"}function cK(Z,J){let X=LJ0(Z);if(!X)return;let Y={type:"generic",handled:!0},$=X.mechanism;if(X.mechanism={...Y,...$,...J},J&&"data"in J){let Q={...$?.data,...J.data};X.mechanism.data=Q}}var bm1=/^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$/;function Zv(Z){return parseInt(Z||"",10)}function Xv(Z){let J=Z.match(bm1)||[],X=Zv(J[1]),Y=Zv(J[2]),$=Zv(J[3]);return{buildmetadata:J[5],major:isNaN(X)?void 0:X,minor:isNaN(Y)?void 0:Y,patch:isNaN($)?void 0:$,prerelease:J[4]}}function JB(Z){if(ym1(Z))return!0;try{W6(Z,"__sentry_captured__",!0)}catch(J){}return!1}function ym1(Z){try{return Z.__sentry_captured__}catch{}}var wJ0=1000;function TZ(){return Date.now()/wJ0}function gm1(){let{performance:Z}=v0;if(!Z?.now)return TZ;let J=Date.now()-Z.now(),X=Z.timeOrigin==null?J:Z.timeOrigin;return()=>{return(X+Z.now())/wJ0}}var cJ=gm1();function BJ0(Z){let J=cJ(),X={sid:i8(),init:!0,timestamp:J,started:J,duration:0,status:"ok",errors:0,ignoreDuration:!1,toJSON:()=>mm1(X)};if(Z)kZ(X,Z);return X}function kZ(Z,J={}){if(J.user){if(!Z.ipAddress&&J.user.ip_address)Z.ipAddress=J.user.ip_address;if(!Z.did&&!J.did)Z.did=J.user.id||J.user.email||J.user.username}if(Z.timestamp=J.timestamp||cJ(),J.abnormal_mechanism)Z.abnormal_mechanism=J.abnormal_mechanism;if(J.ignoreDuration)Z.ignoreDuration=J.ignoreDuration;if(J.sid)Z.sid=J.sid.length===32?J.sid:i8();if(J.init!==void 0)Z.init=J.init;if(!Z.did&&J.did)Z.did=`${J.did}`;if(typeof J.started==="number")Z.started=J.started;if(Z.ignoreDuration)Z.duration=void 0;else if(typeof J.duration==="number")Z.duration=J.duration;else{let X=Z.timestamp-Z.started;Z.duration=X>=0?X:0}if(J.release)Z.release=J.release;if(J.environment)Z.environment=J.environment;if(!Z.ipAddress&&J.ipAddress)Z.ipAddress=J.ipAddress;if(!Z.userAgent&&J.userAgent)Z.userAgent=J.userAgent;if(typeof J.errors==="number")Z.errors=J.errors;if(J.status)Z.status=J.status}function jJ0(Z,J){let X={};if(J)X={status:J};else if(Z.status==="ok")X={status:"exited"};kZ(Z,X)}function mm1(Z){return{sid:`${Z.sid}`,init:Z.init,started:new Date(Z.started*1000).toISOString(),timestamp:new Date(Z.timestamp*1000).toISOString(),status:Z.status,errors:Z.errors,did:typeof Z.did==="number"||typeof Z.did==="string"?`${Z.did}`:void 0,duration:Z.duration,abnormal_mechanism:Z.abnormal_mechanism,attrs:{release:Z.release,environment:Z.environment,ip_address:Z.ipAddress,user_agent:Z.userAgent}}}function lJ(Z,J,X=2){if(!J||typeof J!=="object"||X<=0)return J;if(Z&&Object.keys(J).length===0)return Z;let Y={...Z};for(let $ in J)if(Object.prototype.hasOwnProperty.call(J,$))Y[$]=lJ(Y[$],J[$],X-1);return Y}var Yv="_sentrySpan";function lK(Z,J){if(J)W6(Z,Yv,J);else delete Z[Yv]}function EZ(Z){return Z[Yv]}function R4(){return i8()}function J9(){return i8().substring(16)}var um1=100;class $5{constructor(){this._notifyingListeners=!1,this._scopeListeners=[],this._eventProcessors=[],this._breadcrumbs=[],this._attachments=[],this._user={},this._tags={},this._extra={},this._contexts={},this._sdkProcessingMetadata={},this._propagationContext={traceId:R4(),sampleRand:Math.random()}}clone(){let Z=new $5;if(Z._breadcrumbs=[...this._breadcrumbs],Z._tags={...this._tags},Z._extra={...this._extra},Z._contexts={...this._contexts},this._contexts.flags)Z._contexts.flags={values:[...this._contexts.flags.values]};return Z._user=this._user,Z._level=this._level,Z._session=this._session,Z._transactionName=this._transactionName,Z._fingerprint=this._fingerprint,Z._eventProcessors=[...this._eventProcessors],Z._attachments=[...this._attachments],Z._sdkProcessingMetadata={...this._sdkProcessingMetadata},Z._propagationContext={...this._propagationContext},Z._client=this._client,Z._lastEventId=this._lastEventId,lK(Z,EZ(this)),Z}setClient(Z){this._client=Z}setLastEventId(Z){this._lastEventId=Z}getClient(){return this._client}lastEventId(){return this._lastEventId}addScopeListener(Z){this._scopeListeners.push(Z)}addEventProcessor(Z){return this._eventProcessors.push(Z),this}setUser(Z){if(this._user=Z||{email:void 0,id:void 0,ip_address:void 0,username:void 0},this._session)kZ(this._session,{user:Z});return this._notifyScopeListeners(),this}getUser(){return this._user}setTags(Z){return this._tags={...this._tags,...Z},this._notifyScopeListeners(),this}setTag(Z,J){return this._tags={...this._tags,[Z]:J},this._notifyScopeListeners(),this}setExtras(Z){return this._extra={...this._extra,...Z},this._notifyScopeListeners(),this}setExtra(Z,J){return this._extra={...this._extra,[Z]:J},this._notifyScopeListeners(),this}setFingerprint(Z){return this._fingerprint=Z,this._notifyScopeListeners(),this}setLevel(Z){return this._level=Z,this._notifyScopeListeners(),this}setTransactionName(Z){return this._transactionName=Z,this._notifyScopeListeners(),this}setContext(Z,J){if(J===null)delete this._contexts[Z];else this._contexts[Z]=J;return this._notifyScopeListeners(),this}setSession(Z){if(!Z)delete this._session;else this._session=Z;return this._notifyScopeListeners(),this}getSession(){return this._session}update(Z){if(!Z)return this;let J=typeof Z==="function"?Z(this):Z,X=J instanceof $5?J.getScopeData():mJ(J)?Z:void 0,{tags:Y,extra:$,user:Q,contexts:K,level:W,fingerprint:G=[],propagationContext:z}=X||{};if(this._tags={...this._tags,...Y},this._extra={...this._extra,...$},this._contexts={...this._contexts,...K},Q&&Object.keys(Q).length)this._user=Q;if(W)this._level=W;if(G.length)this._fingerprint=G;if(z)this._propagationContext=z;return this}clear(){return this._breadcrumbs=[],this._tags={},this._extra={},this._user={},this._contexts={},this._level=void 0,this._transactionName=void 0,this._fingerprint=void 0,this._session=void 0,lK(this,void 0),this._attachments=[],this.setPropagationContext({traceId:R4(),sampleRand:Math.random()}),this._notifyScopeListeners(),this}addBreadcrumb(Z,J){let X=typeof J==="number"?J:um1;if(X<=0)return this;let Y={timestamp:TZ(),...Z,message:Z.message?C7(Z.message,2048):Z.message};if(this._breadcrumbs.push(Y),this._breadcrumbs.length>X)this._breadcrumbs=this._breadcrumbs.slice(-X),this._client?.recordDroppedEvent("buffer_overflow","log_item");return this._notifyScopeListeners(),this}getLastBreadcrumb(){return this._breadcrumbs[this._breadcrumbs.length-1]}clearBreadcrumbs(){return this._breadcrumbs=[],this._notifyScopeListeners(),this}addAttachment(Z){return this._attachments.push(Z),this}clearAttachments(){return this._attachments=[],this}getScopeData(){return{breadcrumbs:this._breadcrumbs,attachments:this._attachments,contexts:this._contexts,tags:this._tags,extra:this._extra,user:this._user,level:this._level,fingerprint:this._fingerprint||[],eventProcessors:this._eventProcessors,propagationContext:this._propagationContext,sdkProcessingMetadata:this._sdkProcessingMetadata,transactionName:this._transactionName,span:EZ(this)}}setSDKProcessingMetadata(Z){return this._sdkProcessingMetadata=lJ(this._sdkProcessingMetadata,Z,2),this}setPropagationContext(Z){return this._propagationContext=Z,this}getPropagationContext(){return this._propagationContext}captureException(Z,J){let X=J?.event_id||i8();if(!this._client)return l.warn("No client configured on scope - will not capture exception!"),X;let Y=new Error("Sentry syntheticException");return this._client.captureException(Z,{originalException:Z,syntheticException:Y,...J,event_id:X},this),X}captureMessage(Z,J,X){let Y=X?.event_id||i8();if(!this._client)return l.warn("No client configured on scope - will not capture message!"),Y;let $=new Error(Z);return this._client.captureMessage(Z,J,{originalException:Z,syntheticException:$,...X,event_id:Y},this),Y}captureEvent(Z,J){let X=J?.event_id||i8();if(!this._client)return l.warn("No client configured on scope - will not capture event!"),X;return this._client.captureEvent(Z,{...J,event_id:X},this),X}_notifyScopeListeners(){if(!this._notifyingListeners)this._notifyingListeners=!0,this._scopeListeners.forEach((Z)=>{Z(this)}),this._notifyingListeners=!1}}function pK(){return eY("defaultCurrentScope",()=>new $5)}function N4(){return eY("defaultIsolationScope",()=>new $5)}class MJ0{constructor(Z,J){let X;if(!Z)X=new $5;else X=Z;let Y;if(!J)Y=new $5;else Y=J;this._stack=[{scope:X}],this._isolationScope=Y}withScope(Z){let J=this._pushScope(),X;try{X=Z(J)}catch(Y){throw this._popScope(),Y}if(D7(X))return X.then((Y)=>{return this._popScope(),Y},(Y)=>{throw this._popScope(),Y});return this._popScope(),X}getClient(){return this.getStackTop().client}getScope(){return this.getStackTop().scope}getIsolationScope(){return this._isolationScope}getStackTop(){return this._stack[this._stack.length-1]}_pushScope(){let Z=this.getScope().clone();return this._stack.push({client:this.getClient(),scope:Z}),Z}_popScope(){if(this._stack.length<=1)return!1;return!!this._stack.pop()}}function iK(){let Z=Y5(),J=gJ(Z);return J.stack=J.stack||new MJ0(pK(),N4())}function dm1(Z){return iK().withScope(Z)}function cm1(Z,J){let X=iK();return X.withScope(()=>{return X.getStackTop().scope=Z,J(Z)})}function OJ0(Z){return iK().withScope(()=>{return Z(iK().getIsolationScope())})}function RJ0(){return{withIsolationScope:OJ0,withScope:dm1,withSetScope:cm1,withSetIsolationScope:(Z,J)=>{return OJ0(J)},getCurrentScope:()=>iK().getScope(),getIsolationScope:()=>iK().getIsolationScope()}}function $v(Z){let J=Y5(),X=gJ(J);X.acs=Z}function P4(Z){let J=gJ(Z);if(J.acs)return J.acs;return RJ0()}function O1(){let Z=Y5();return P4(Z).getCurrentScope()}function G1(){let Z=Y5();return P4(Z).getIsolationScope()}function XB(){return eY("globalScope",()=>new $5)}function nK(...Z){let J=Y5(),X=P4(J);if(Z.length===2){let[Y,$]=Z;if(!Y)return X.withScope($);return X.withSetScope(Y,$)}return X.withScope(Z[0])}function OV(...Z){let J=Y5(),X=P4(J);if(Z.length===2){let[Y,$]=Z;if(!Y)return X.withIsolationScope($);return X.withSetIsolationScope(Y,$)}return X.withIsolationScope(Z[0])}function R0(){return O1().getClient()}function aK(Z){let J=Z.getPropagationContext(),{traceId:X,parentSpanId:Y,propagationSpanId:$}=J,Q={trace_id:X,span_id:$||J9()};if(Y)Q.parent_span_id=Y;return Q}var n8="sentry.source",D4="sentry.sample_rate",Qv="sentry.previous_trace_sample_rate",b0="sentry.op",z1="sentry.origin";var Kv="sentry.measurement_unit",Wv="sentry.measurement_value",T7="sentry.custom_span_name",sK="sentry.profile_id",oK="sentry.exclusive_time",Gv="cache.hit",zv="cache.key",Vv="cache.item_size";var Hv=0,rK=1,k7=2;function YB(Z){if(Z<400&&Z>=100)return{code:1};if(Z>=400&&Z<500)switch(Z){case 401:return{code:2,message:"unauthenticated"};case 403:return{code:2,message:"permission_denied"};case 404:return{code:2,message:"not_found"};case 409:return{code:2,message:"already_exists"};case 413:return{code:2,message:"failed_precondition"};case 429:return{code:2,message:"resource_exhausted"};case 499:return{code:2,message:"cancelled"};default:return{code:2,message:"invalid_argument"}}if(Z>=500&&Z<600)switch(Z){case 501:return{code:2,message:"unimplemented"};case 503:return{code:2,message:"unavailable"};case 504:return{code:2,message:"deadline_exceeded"};default:return{code:2,message:"internal_error"}}return{code:2,message:"unknown_error"}}var NJ0="_sentryScope",PJ0="_sentryIsolationScope";function MV(Z,J,X){if(Z)W6(Z,PJ0,X),W6(Z,NJ0,J)}function C4(Z){return{scope:Z[NJ0],isolationScope:Z[PJ0]}}function X9(Z){if(typeof Z==="boolean")return Number(Z);let J=typeof Z==="string"?parseFloat(Z):Z;if(typeof J!=="number"||isNaN(J)||J<0||J>1)return;return J}var RV="sentry-",CJ0=/^sentry-/,TJ0=8192;function pJ(Z){let J=Y$(Z);if(!J)return;let X=Object.entries(J).reduce((Y,[$,Q])=>{if($.match(CJ0)){let K=$.slice(RV.length);Y[K]=Q}return Y},{});if(Object.keys(X).length>0)return X;else return}function X$(Z){if(!Z)return;let J=Object.entries(Z).reduce((X,[Y,$])=>{if($)X[`${RV}${Y}`]=$;return X},{});return $B(J)}function Y$(Z){if(!Z||!Z$(Z)&&!Array.isArray(Z))return;if(Array.isArray(Z))return Z.reduce((J,X)=>{let Y=DJ0(X);return Object.entries(Y).forEach(([$,Q])=>{J[$]=Q}),J},{});return DJ0(Z)}function DJ0(Z){return Z.split(",").map((J)=>J.split("=").map((X)=>{try{return decodeURIComponent(X.trim())}catch{return}})).reduce((J,[X,Y])=>{if(X&&Y)J[X]=Y;return J},{})}function $B(Z){if(Object.keys(Z).length===0)return;return Object.entries(Z).reduce((J,[X,Y],$)=>{let Q=`${encodeURIComponent(X)}=${encodeURIComponent(Y)}`,K=$===0?Q:`${J},${Q}`;if(K.length>TJ0)return F0&&l.warn(`Not adding key: ${X} with val: ${Y} to baggage header due to exceeding baggage size limits.`),J;else return K},"")}var NV=new RegExp("^[ \\t]*([0-9a-f]{32})?-?([0-9a-f]{16})?-?([01])?[ \\t]*$");function kJ0(Z){if(!Z)return;let J=Z.match(NV);if(!J)return;let X;if(J[3]==="1")X=!0;else if(J[3]==="0")X=!1;return{traceId:J[1],parentSampled:X,parentSpanId:J[2]}}function PV(Z,J){let X=kJ0(Z),Y=pJ(J);if(!X?.traceId)return{traceId:R4(),sampleRand:Math.random()};let $=lm1(X,Y);if(Y)Y.sample_rand=$.toString();let{traceId:Q,parentSpanId:K,parentSampled:W}=X;return{traceId:Q,parentSpanId:K,sampled:W,dsc:Y||{},sampleRand:$}}function iJ(Z=R4(),J=J9(),X){let Y="";if(X!==void 0)Y=X?"-1":"-0";return`${Z}-${J}${Y}`}function lm1(Z,J){let X=X9(J?.sample_rand);if(X!==void 0)return X;let Y=X9(J?.sample_rate);if(Y&&Z?.parentSampled!==void 0)return Z.parentSampled?Math.random()*Y:Y+Math.random()*(1-Y);else return Math.random()}var QB=0,KB=1,EJ0=!1;function vJ0(Z){let{spanId:J,traceId:X}=Z.spanContext(),{data:Y,op:$,parent_span_id:Q,status:K,origin:W,links:G}=N0(Z);return{parent_span_id:Q,span_id:J,trace_id:X,data:Y,op:$,status:K,origin:W,links:G}}function nJ(Z){let{spanId:J,traceId:X,isRemote:Y}=Z.spanContext(),$=Y?J:N0(Z).parent_span_id,Q=C4(Z).scope,K=Y?Q?.getPropagationContext().propagationSpanId||J9():J;return{parent_span_id:$,span_id:K,trace_id:X}}function WB(Z){let{traceId:J,spanId:X}=Z.spanContext(),Y=E7(Z);return iJ(J,X,Y)}function $$(Z){if(Z&&Z.length>0)return Z.map(({context:{spanId:J,traceId:X,traceFlags:Y,...$},attributes:Q})=>({span_id:J,trace_id:X,sampled:Y===KB,attributes:Q,...$}));else return}function _5(Z){if(typeof Z==="number")return IJ0(Z);if(Array.isArray(Z))return Z[0]+Z[1]/1e9;if(Z instanceof Date)return IJ0(Z.getTime());return cJ()}function IJ0(Z){return Z>9999999999?Z/1000:Z}function N0(Z){if(im1(Z))return Z.getSpanJSON();let{spanId:J,traceId:X}=Z.spanContext();if(pm1(Z)){let{attributes:Y,startTime:$,name:Q,endTime:K,status:W,links:G}=Z,z="parentSpanId"in Z?Z.parentSpanId:("parentSpanContext"in Z)?Z.parentSpanContext?.spanId:void 0;return{span_id:J,trace_id:X,data:Y,description:Q,parent_span_id:z,start_timestamp:_5($),timestamp:_5(K)||void 0,status:Q$(W),op:Y[b0],origin:Y[z1],links:$$(G)}}return{span_id:J,trace_id:X,start_timestamp:0,data:{}}}function pm1(Z){let J=Z;return!!J.attributes&&!!J.startTime&&!!J.name&&!!J.endTime&&!!J.status}function im1(Z){return typeof Z.getSpanJSON==="function"}function E7(Z){let{traceFlags:J}=Z.spanContext();return J===KB}function Q$(Z){if(!Z||Z.code===Hv)return;if(Z.code===rK)return"ok";return Z.message||"unknown_error"}var DV="_sentryChildSpans",qv="_sentryRootSpan";function tK(Z,J){let X=Z[qv]||Z;if(W6(J,qv,X),Z[DV])Z[DV].add(J);else W6(Z,DV,new Set([J]))}function GB(Z){let J=new Set;function X(Y){if(J.has(Y))return;else if(E7(Y)){J.add(Y);let $=Y[DV]?Array.from(Y[DV]):[];for(let Q of $)X(Q)}}return X(Z),Array.from(J)}function H8(Z){return Z[qv]||Z}function eK(){let Z=Y5(),J=P4(Z);if(J.getActiveSpan)return J.getActiveSpan();return EZ(O1())}function CV(){if(!EJ0)T8(()=>{console.warn("[Sentry] Returning null from `beforeSendSpan` is disallowed. To drop certain spans, configure the respective integrations directly.")}),EJ0=!0}var Uv="?",SJ0=/\(error: (.*)\)/,_J0=/captureMessage|captureException/;function VB(...Z){let J=Z.sort((X,Y)=>X[0]-Y[0]).map((X)=>X[1]);return(X,Y=0,$=0)=>{let Q=[],K=X.split(`
|
457
|
+
${W}`),J.end();return}if(K)Z.session=K}J.setNoDelay(!0),this.emitWithGlobal("WEBSERVER.UPGRADE",{req:Z,socket:J,head:X})};_onError=(Z)=>{m.error(`WebServer._onError(): ${Z.message}`),this.emitWithGlobal("WEBSERVER.ERROR",{error:Z})};_onStopped=()=>{this.emitWithGlobal("WEBSERVER.STOPPED",{})}}class P7 extends j0{static instance=new P7;_connectionIdConnections=new Map;_userIdConnections=new Map;_wss;_wrtcMinPort=process.env.WRTC_MIN_PORT?parseInt(process.env.WRTC_MIN_PORT):40000;_wrtcMaxPort=process.env.WRTC_MAX_PORT?parseInt(process.env.WRTC_MAX_PORT):41023;_wrtcPublicIpv4=process.env.NODE_ENV==="production"?process.env.WRTC_PUBLIC_IPV4:"127.0.0.1";_wrtcPublicIpv6=process.env.NODE_ENV==="production"?process.env.WRTC_PUBLIC_IPV6:"::";_wrtcRouter=null;_wrtcWorker=null;constructor(){super();this._wss=new Em1({noServer:!0}),this._wss.on("connection",this._onConnection),this._wss.on("error",this._onError),this._initWrtc().catch((Z)=>{m.warning(`Socket._constructor(): Failed to initialize WebRTC, falling back to Websockets. This can be ignored for local development. Error: ${Z.message}`)}),j0.globalInstance.on("WEBSERVER.UPGRADE",({req:Z,socket:J,head:X})=>{this._onUpgrade(Z,J,X)})}get isWrtcEnabled(){return this._wrtcWorker&&!this._wrtcWorker.died&&this._wrtcRouter}get wrtcRouter(){return this._wrtcRouter}async createWrtcTransports(){if(!this.isWrtcEnabled)m.fatalError("Socket.createWrtcTransports(): WebRTC not enabled, unable to create transports.");let Z={listenIps:[{ip:"::",announcedIp:this._wrtcPublicIpv6},{ip:"0.0.0.0",announcedIp:this._wrtcPublicIpv4}],preferUdp:!0,enableSctp:!0,enableTcp:!1},J=await this._wrtcRouter.createDirectTransport(),X=await this._wrtcRouter.createWebRtcTransport(Z),Y=await this._wrtcRouter.createWebRtcTransport(Z);return{directTransport:J,clientServerTransport:X,serverClientTransport:Y}}isValidConnectionId(Z){return this._connectionIdConnections.has(Z)}async _initWrtc(){if(!this._wrtcPublicIpv4||!this._wrtcPublicIpv6)throw new Error("Socket._initWrtc(): WebRTC disabled, falling back to Websockets. Env variables WRTC_PUBLIC_IPV4 and WRTC_PUBLIC_IPV6 must be set in production");this._wrtcWorker=await Im1.createWorker({rtcMinPort:this._wrtcMinPort,rtcMaxPort:this._wrtcMaxPort}),this._wrtcWorker.on("died",this._onWrtcWorkerDied),this._wrtcRouter=await this._wrtcWorker.createRouter({mediaCodecs:[]}),console.log("Socket._initWrtc(): WebRTC enabled and ready!")}_onConnection=(Z,J)=>{let X=J.connectionId,Y=J.session?.user.id,$=X&&this._connectionIdConnections.get(X)||Y&&this._userIdConnections.get(Y);if($)$.bindWs(Z);else{let Q=new M4(Z,J);if(Q.on("CONNECTION.CLOSED",()=>{if(this._connectionIdConnections.delete(Q.id),Y)this._userIdConnections.delete(Y)}),this._connectionIdConnections.set(Q.id,Q),Y)this._userIdConnections.set(Y,Q)}};_onError=(Z,J)=>{this.emitWithGlobal("SOCKET.ERROR",{ws:Z,error:J})};_onUpgrade=(Z,J,X)=>{this._wss.handleUpgrade(Z,J,X,(Y)=>{this._wss.emit("connection",Y,Z)})};_onWrtcWorkerDied=(Z)=>{m.warning(`Socket._onWrtcWorkerDied(): WebRTC worker unexpectedly died, falling back to Websockets for all players. Internal error: ${Z}`),Z9.instance.getConnectedPlayers().forEach((J)=>{J.connection.closeWrtc()}),this._wrtcRouter?.close(),this._wrtcRouter=null,this._wrtcWorker?.close(),this._wrtcWorker=null}}var F0=typeof __SENTRY_DEBUG__==="undefined"||__SENTRY_DEBUG__;var h8="9.22.0";var v0=globalThis;function Y5(){return gJ(v0),v0}function gJ(Z){let J=Z.__SENTRY__=Z.__SENTRY__||{};return J.version=J.version||h8,J[h8]=J[h8]||{}}function eY(Z,J,X=v0){let Y=X.__SENTRY__=X.__SENTRY__||{},$=Y[h8]=Y[h8]||{};return $[Z]||($[Z]=J())}var $J0=Object.prototype.toString;function rw(Z){switch($J0.call(Z)){case"[object Error]":case"[object Exception]":case"[object DOMException]":case"[object WebAssembly.Exception]":return!0;default:return CZ(Z,Error)}}function tw(Z,J){return $J0.call(Z)===`[object ${J}]`}function QJ0(Z){return tw(Z,"ErrorEvent")}function Z$(Z){return tw(Z,"String")}function BV(Z){return typeof Z==="object"&&Z!==null&&"__sentry_template_string__"in Z&&"__sentry_template_values__"in Z}function jV(Z){return Z===null||BV(Z)||typeof Z!=="object"&&typeof Z!=="function"}function mJ(Z){return tw(Z,"Object")}function KJ0(Z){return typeof Event!=="undefined"&&CZ(Z,Event)}function WJ0(Z){return typeof Element!=="undefined"&&CZ(Z,Element)}function GJ0(Z){return tw(Z,"RegExp")}function D7(Z){return Boolean(Z?.then&&typeof Z.then==="function")}function zJ0(Z){return mJ(Z)&&"nativeEvent"in Z&&"preventDefault"in Z&&"stopPropagation"in Z}function CZ(Z,J){try{return Z instanceof J}catch(X){return!1}}function ew(Z){return!!(typeof Z==="object"&&Z!==null&&(Z.__isVue||Z._isVue))}var Sm1=v0,_m1=80;function VJ0(Z,J={}){if(!Z)return"<unknown>";try{let X=Z,Y=5,$=[],Q=0,K=0,W=" > ",G=W.length,z,V=Array.isArray(J)?J:J.keyAttrs,H=!Array.isArray(J)&&J.maxStringLength||_m1;while(X&&Q++<Y){if(z=Am1(X,V),z==="html"||Q>1&&K+$.length*G+z.length>=H)break;$.push(z),K+=z.length,X=X.parentNode}return $.reverse().join(W)}catch(X){return"<unknown>"}}function Am1(Z,J){let X=Z,Y=[];if(!X?.tagName)return"";if(Sm1.HTMLElement){if(X instanceof HTMLElement&&X.dataset){if(X.dataset.sentryComponent)return X.dataset.sentryComponent;if(X.dataset.sentryElement)return X.dataset.sentryElement}}Y.push(X.tagName.toLowerCase());let $=J?.length?J.filter((K)=>X.getAttribute(K)).map((K)=>[K,X.getAttribute(K)]):null;if($?.length)$.forEach((K)=>{Y.push(`[${K[0]}="${K[1]}"]`)});else{if(X.id)Y.push(`#${X.id}`);let K=X.className;if(K&&Z$(K)){let W=K.split(/\s+/);for(let G of W)Y.push(`.${G}`)}}let Q=["aria-label","type","name","title","alt"];for(let K of Q){let W=X.getAttribute(K);if(W)Y.push(`[${K}="${W}"]`)}return Y.join("")}var xm1="Sentry Logger ",J$=["debug","info","warn","error","log","assert","trace"],dK={};function T8(Z){if(!("console"in v0))return Z();let J=v0.console,X={},Y=Object.keys(dK);Y.forEach(($)=>{let Q=dK[$];X[$]=J[$],J[$]=Q});try{return Z()}finally{Y.forEach(($)=>{J[$]=X[$]})}}function hm1(){let Z=!1,J={enable:()=>{Z=!0},disable:()=>{Z=!1},isEnabled:()=>Z};if(F0)J$.forEach((X)=>{J[X]=(...Y)=>{if(Z)T8(()=>{v0.console[X](`${xm1}[${X}]:`,...Y)})}});else J$.forEach((X)=>{J[X]=()=>{return}});return J}var l=eY("logger",hm1);function C7(Z,J=0){if(typeof Z!=="string"||J===0)return Z;return Z.length<=J?Z:`${Z.slice(0,J)}...`}function sI(Z,J){let X=Z,Y=X.length;if(Y<=150)return X;if(J>Y)J=Y;let $=Math.max(J-60,0);if($<5)$=0;let Q=Math.min($+140,Y);if(Q>Y-5)Q=Y;if(Q===Y)$=Math.max(Q-140,0);if(X=X.slice($,Q),$>0)X=`'{snip} ${X}`;if(Q<Y)X+=" {snip}";return X}function oI(Z,J){if(!Array.isArray(Z))return"";let X=[];for(let Y=0;Y<Z.length;Y++){let $=Z[Y];try{if(ew($))X.push("[VueViewModel]");else X.push(String($))}catch(Q){X.push("[value cannot be serialized]")}}return X.join(J)}function HJ0(Z,J,X=!1){if(!Z$(Z))return!1;if(GJ0(J))return J.test(Z);if(Z$(J))return X?Z===J:Z.includes(J);return!1}function uJ(Z,J=[],X=!1){return J.some((Y)=>HJ0(Z,Y,X))}function rI(Z,J,X){if(!(J in Z))return;let Y=Z[J];if(typeof Y!=="function")return;let $=X(Y);if(typeof $==="function")UJ0($,Y);try{Z[J]=$}catch{F0&&l.log(`Failed to replace method "${J}" in object`,Z)}}function W6(Z,J,X){try{Object.defineProperty(Z,J,{value:X,writable:!0,configurable:!0})}catch(Y){F0&&l.log(`Failed to add non-enumerable property "${J}" to object`,Z)}}function UJ0(Z,J){try{let X=J.prototype||{};Z.prototype=J.prototype=X,W6(Z,"__sentry_original__",J)}catch(X){}}function tI(Z){return Z.__sentry_original__}function ZB(Z){if(rw(Z))return{message:Z.message,name:Z.name,stack:Z.stack,...FJ0(Z)};else if(KJ0(Z)){let J={type:Z.type,target:qJ0(Z.target),currentTarget:qJ0(Z.currentTarget),...FJ0(Z)};if(typeof CustomEvent!=="undefined"&&CZ(Z,CustomEvent))J.detail=Z.detail;return J}else return Z}function qJ0(Z){try{return WJ0(Z)?VJ0(Z):Object.prototype.toString.call(Z)}catch(J){return"<unknown>"}}function FJ0(Z){if(typeof Z==="object"&&Z!==null){let J={};for(let X in Z)if(Object.prototype.hasOwnProperty.call(Z,X))J[X]=Z[X];return J}else return{}}function eI(Z,J=40){let X=Object.keys(ZB(Z));X.sort();let Y=X[0];if(!Y)return"[object has no keys]";if(Y.length>=J)return C7(Y,J);for(let $=X.length;$>0;$--){let Q=X.slice(0,$).join(", ");if(Q.length>J)continue;if($===X.length)return Q;return C7(Q,J)}return""}function fm1(){let Z=v0;return Z.crypto||Z.msCrypto}function i8(Z=fm1()){let J=()=>Math.random()*16;try{if(Z?.randomUUID)return Z.randomUUID().replace(/-/g,"");if(Z?.getRandomValues)J=()=>{let X=new Uint8Array(1);return Z.getRandomValues(X),X[0]}}catch(X){}return([1e7]+1000+4000+8000+100000000000).replace(/[018]/g,(X)=>(X^(J()&15)>>X/4).toString(16))}function LJ0(Z){return Z.exception?.values?.[0]}function dJ(Z){let{message:J,event_id:X}=Z;if(J)return J;let Y=LJ0(Z);if(Y){if(Y.type&&Y.value)return`${Y.type}: ${Y.value}`;return Y.type||Y.value||X||"<unknown>"}return X||"<unknown>"}function Jv(Z,J,X){let Y=Z.exception=Z.exception||{},$=Y.values=Y.values||[],Q=$[0]=$[0]||{};if(!Q.value)Q.value=J||"";if(!Q.type)Q.type=X||"Error"}function cK(Z,J){let X=LJ0(Z);if(!X)return;let Y={type:"generic",handled:!0},$=X.mechanism;if(X.mechanism={...Y,...$,...J},J&&"data"in J){let Q={...$?.data,...J.data};X.mechanism.data=Q}}var bm1=/^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$/;function Zv(Z){return parseInt(Z||"",10)}function Xv(Z){let J=Z.match(bm1)||[],X=Zv(J[1]),Y=Zv(J[2]),$=Zv(J[3]);return{buildmetadata:J[5],major:isNaN(X)?void 0:X,minor:isNaN(Y)?void 0:Y,patch:isNaN($)?void 0:$,prerelease:J[4]}}function JB(Z){if(ym1(Z))return!0;try{W6(Z,"__sentry_captured__",!0)}catch(J){}return!1}function ym1(Z){try{return Z.__sentry_captured__}catch{}}var wJ0=1000;function TZ(){return Date.now()/wJ0}function gm1(){let{performance:Z}=v0;if(!Z?.now)return TZ;let J=Date.now()-Z.now(),X=Z.timeOrigin==null?J:Z.timeOrigin;return()=>{return(X+Z.now())/wJ0}}var cJ=gm1();function BJ0(Z){let J=cJ(),X={sid:i8(),init:!0,timestamp:J,started:J,duration:0,status:"ok",errors:0,ignoreDuration:!1,toJSON:()=>mm1(X)};if(Z)kZ(X,Z);return X}function kZ(Z,J={}){if(J.user){if(!Z.ipAddress&&J.user.ip_address)Z.ipAddress=J.user.ip_address;if(!Z.did&&!J.did)Z.did=J.user.id||J.user.email||J.user.username}if(Z.timestamp=J.timestamp||cJ(),J.abnormal_mechanism)Z.abnormal_mechanism=J.abnormal_mechanism;if(J.ignoreDuration)Z.ignoreDuration=J.ignoreDuration;if(J.sid)Z.sid=J.sid.length===32?J.sid:i8();if(J.init!==void 0)Z.init=J.init;if(!Z.did&&J.did)Z.did=`${J.did}`;if(typeof J.started==="number")Z.started=J.started;if(Z.ignoreDuration)Z.duration=void 0;else if(typeof J.duration==="number")Z.duration=J.duration;else{let X=Z.timestamp-Z.started;Z.duration=X>=0?X:0}if(J.release)Z.release=J.release;if(J.environment)Z.environment=J.environment;if(!Z.ipAddress&&J.ipAddress)Z.ipAddress=J.ipAddress;if(!Z.userAgent&&J.userAgent)Z.userAgent=J.userAgent;if(typeof J.errors==="number")Z.errors=J.errors;if(J.status)Z.status=J.status}function jJ0(Z,J){let X={};if(J)X={status:J};else if(Z.status==="ok")X={status:"exited"};kZ(Z,X)}function mm1(Z){return{sid:`${Z.sid}`,init:Z.init,started:new Date(Z.started*1000).toISOString(),timestamp:new Date(Z.timestamp*1000).toISOString(),status:Z.status,errors:Z.errors,did:typeof Z.did==="number"||typeof Z.did==="string"?`${Z.did}`:void 0,duration:Z.duration,abnormal_mechanism:Z.abnormal_mechanism,attrs:{release:Z.release,environment:Z.environment,ip_address:Z.ipAddress,user_agent:Z.userAgent}}}function lJ(Z,J,X=2){if(!J||typeof J!=="object"||X<=0)return J;if(Z&&Object.keys(J).length===0)return Z;let Y={...Z};for(let $ in J)if(Object.prototype.hasOwnProperty.call(J,$))Y[$]=lJ(Y[$],J[$],X-1);return Y}var Yv="_sentrySpan";function lK(Z,J){if(J)W6(Z,Yv,J);else delete Z[Yv]}function EZ(Z){return Z[Yv]}function R4(){return i8()}function J9(){return i8().substring(16)}var um1=100;class $5{constructor(){this._notifyingListeners=!1,this._scopeListeners=[],this._eventProcessors=[],this._breadcrumbs=[],this._attachments=[],this._user={},this._tags={},this._extra={},this._contexts={},this._sdkProcessingMetadata={},this._propagationContext={traceId:R4(),sampleRand:Math.random()}}clone(){let Z=new $5;if(Z._breadcrumbs=[...this._breadcrumbs],Z._tags={...this._tags},Z._extra={...this._extra},Z._contexts={...this._contexts},this._contexts.flags)Z._contexts.flags={values:[...this._contexts.flags.values]};return Z._user=this._user,Z._level=this._level,Z._session=this._session,Z._transactionName=this._transactionName,Z._fingerprint=this._fingerprint,Z._eventProcessors=[...this._eventProcessors],Z._attachments=[...this._attachments],Z._sdkProcessingMetadata={...this._sdkProcessingMetadata},Z._propagationContext={...this._propagationContext},Z._client=this._client,Z._lastEventId=this._lastEventId,lK(Z,EZ(this)),Z}setClient(Z){this._client=Z}setLastEventId(Z){this._lastEventId=Z}getClient(){return this._client}lastEventId(){return this._lastEventId}addScopeListener(Z){this._scopeListeners.push(Z)}addEventProcessor(Z){return this._eventProcessors.push(Z),this}setUser(Z){if(this._user=Z||{email:void 0,id:void 0,ip_address:void 0,username:void 0},this._session)kZ(this._session,{user:Z});return this._notifyScopeListeners(),this}getUser(){return this._user}setTags(Z){return this._tags={...this._tags,...Z},this._notifyScopeListeners(),this}setTag(Z,J){return this._tags={...this._tags,[Z]:J},this._notifyScopeListeners(),this}setExtras(Z){return this._extra={...this._extra,...Z},this._notifyScopeListeners(),this}setExtra(Z,J){return this._extra={...this._extra,[Z]:J},this._notifyScopeListeners(),this}setFingerprint(Z){return this._fingerprint=Z,this._notifyScopeListeners(),this}setLevel(Z){return this._level=Z,this._notifyScopeListeners(),this}setTransactionName(Z){return this._transactionName=Z,this._notifyScopeListeners(),this}setContext(Z,J){if(J===null)delete this._contexts[Z];else this._contexts[Z]=J;return this._notifyScopeListeners(),this}setSession(Z){if(!Z)delete this._session;else this._session=Z;return this._notifyScopeListeners(),this}getSession(){return this._session}update(Z){if(!Z)return this;let J=typeof Z==="function"?Z(this):Z,X=J instanceof $5?J.getScopeData():mJ(J)?Z:void 0,{tags:Y,extra:$,user:Q,contexts:K,level:W,fingerprint:G=[],propagationContext:z}=X||{};if(this._tags={...this._tags,...Y},this._extra={...this._extra,...$},this._contexts={...this._contexts,...K},Q&&Object.keys(Q).length)this._user=Q;if(W)this._level=W;if(G.length)this._fingerprint=G;if(z)this._propagationContext=z;return this}clear(){return this._breadcrumbs=[],this._tags={},this._extra={},this._user={},this._contexts={},this._level=void 0,this._transactionName=void 0,this._fingerprint=void 0,this._session=void 0,lK(this,void 0),this._attachments=[],this.setPropagationContext({traceId:R4(),sampleRand:Math.random()}),this._notifyScopeListeners(),this}addBreadcrumb(Z,J){let X=typeof J==="number"?J:um1;if(X<=0)return this;let Y={timestamp:TZ(),...Z,message:Z.message?C7(Z.message,2048):Z.message};if(this._breadcrumbs.push(Y),this._breadcrumbs.length>X)this._breadcrumbs=this._breadcrumbs.slice(-X),this._client?.recordDroppedEvent("buffer_overflow","log_item");return this._notifyScopeListeners(),this}getLastBreadcrumb(){return this._breadcrumbs[this._breadcrumbs.length-1]}clearBreadcrumbs(){return this._breadcrumbs=[],this._notifyScopeListeners(),this}addAttachment(Z){return this._attachments.push(Z),this}clearAttachments(){return this._attachments=[],this}getScopeData(){return{breadcrumbs:this._breadcrumbs,attachments:this._attachments,contexts:this._contexts,tags:this._tags,extra:this._extra,user:this._user,level:this._level,fingerprint:this._fingerprint||[],eventProcessors:this._eventProcessors,propagationContext:this._propagationContext,sdkProcessingMetadata:this._sdkProcessingMetadata,transactionName:this._transactionName,span:EZ(this)}}setSDKProcessingMetadata(Z){return this._sdkProcessingMetadata=lJ(this._sdkProcessingMetadata,Z,2),this}setPropagationContext(Z){return this._propagationContext=Z,this}getPropagationContext(){return this._propagationContext}captureException(Z,J){let X=J?.event_id||i8();if(!this._client)return l.warn("No client configured on scope - will not capture exception!"),X;let Y=new Error("Sentry syntheticException");return this._client.captureException(Z,{originalException:Z,syntheticException:Y,...J,event_id:X},this),X}captureMessage(Z,J,X){let Y=X?.event_id||i8();if(!this._client)return l.warn("No client configured on scope - will not capture message!"),Y;let $=new Error(Z);return this._client.captureMessage(Z,J,{originalException:Z,syntheticException:$,...X,event_id:Y},this),Y}captureEvent(Z,J){let X=J?.event_id||i8();if(!this._client)return l.warn("No client configured on scope - will not capture event!"),X;return this._client.captureEvent(Z,{...J,event_id:X},this),X}_notifyScopeListeners(){if(!this._notifyingListeners)this._notifyingListeners=!0,this._scopeListeners.forEach((Z)=>{Z(this)}),this._notifyingListeners=!1}}function pK(){return eY("defaultCurrentScope",()=>new $5)}function N4(){return eY("defaultIsolationScope",()=>new $5)}class MJ0{constructor(Z,J){let X;if(!Z)X=new $5;else X=Z;let Y;if(!J)Y=new $5;else Y=J;this._stack=[{scope:X}],this._isolationScope=Y}withScope(Z){let J=this._pushScope(),X;try{X=Z(J)}catch(Y){throw this._popScope(),Y}if(D7(X))return X.then((Y)=>{return this._popScope(),Y},(Y)=>{throw this._popScope(),Y});return this._popScope(),X}getClient(){return this.getStackTop().client}getScope(){return this.getStackTop().scope}getIsolationScope(){return this._isolationScope}getStackTop(){return this._stack[this._stack.length-1]}_pushScope(){let Z=this.getScope().clone();return this._stack.push({client:this.getClient(),scope:Z}),Z}_popScope(){if(this._stack.length<=1)return!1;return!!this._stack.pop()}}function iK(){let Z=Y5(),J=gJ(Z);return J.stack=J.stack||new MJ0(pK(),N4())}function dm1(Z){return iK().withScope(Z)}function cm1(Z,J){let X=iK();return X.withScope(()=>{return X.getStackTop().scope=Z,J(Z)})}function OJ0(Z){return iK().withScope(()=>{return Z(iK().getIsolationScope())})}function RJ0(){return{withIsolationScope:OJ0,withScope:dm1,withSetScope:cm1,withSetIsolationScope:(Z,J)=>{return OJ0(J)},getCurrentScope:()=>iK().getScope(),getIsolationScope:()=>iK().getIsolationScope()}}function $v(Z){let J=Y5(),X=gJ(J);X.acs=Z}function P4(Z){let J=gJ(Z);if(J.acs)return J.acs;return RJ0()}function O1(){let Z=Y5();return P4(Z).getCurrentScope()}function G1(){let Z=Y5();return P4(Z).getIsolationScope()}function XB(){return eY("globalScope",()=>new $5)}function nK(...Z){let J=Y5(),X=P4(J);if(Z.length===2){let[Y,$]=Z;if(!Y)return X.withScope($);return X.withSetScope(Y,$)}return X.withScope(Z[0])}function OV(...Z){let J=Y5(),X=P4(J);if(Z.length===2){let[Y,$]=Z;if(!Y)return X.withIsolationScope($);return X.withSetIsolationScope(Y,$)}return X.withIsolationScope(Z[0])}function R0(){return O1().getClient()}function aK(Z){let J=Z.getPropagationContext(),{traceId:X,parentSpanId:Y,propagationSpanId:$}=J,Q={trace_id:X,span_id:$||J9()};if(Y)Q.parent_span_id=Y;return Q}var n8="sentry.source",D4="sentry.sample_rate",Qv="sentry.previous_trace_sample_rate",b0="sentry.op",z1="sentry.origin";var Kv="sentry.measurement_unit",Wv="sentry.measurement_value",T7="sentry.custom_span_name",sK="sentry.profile_id",oK="sentry.exclusive_time",Gv="cache.hit",zv="cache.key",Vv="cache.item_size";var Hv=0,rK=1,k7=2;function YB(Z){if(Z<400&&Z>=100)return{code:1};if(Z>=400&&Z<500)switch(Z){case 401:return{code:2,message:"unauthenticated"};case 403:return{code:2,message:"permission_denied"};case 404:return{code:2,message:"not_found"};case 409:return{code:2,message:"already_exists"};case 413:return{code:2,message:"failed_precondition"};case 429:return{code:2,message:"resource_exhausted"};case 499:return{code:2,message:"cancelled"};default:return{code:2,message:"invalid_argument"}}if(Z>=500&&Z<600)switch(Z){case 501:return{code:2,message:"unimplemented"};case 503:return{code:2,message:"unavailable"};case 504:return{code:2,message:"deadline_exceeded"};default:return{code:2,message:"internal_error"}}return{code:2,message:"unknown_error"}}var NJ0="_sentryScope",PJ0="_sentryIsolationScope";function MV(Z,J,X){if(Z)W6(Z,PJ0,X),W6(Z,NJ0,J)}function C4(Z){return{scope:Z[NJ0],isolationScope:Z[PJ0]}}function X9(Z){if(typeof Z==="boolean")return Number(Z);let J=typeof Z==="string"?parseFloat(Z):Z;if(typeof J!=="number"||isNaN(J)||J<0||J>1)return;return J}var RV="sentry-",CJ0=/^sentry-/,TJ0=8192;function pJ(Z){let J=Y$(Z);if(!J)return;let X=Object.entries(J).reduce((Y,[$,Q])=>{if($.match(CJ0)){let K=$.slice(RV.length);Y[K]=Q}return Y},{});if(Object.keys(X).length>0)return X;else return}function X$(Z){if(!Z)return;let J=Object.entries(Z).reduce((X,[Y,$])=>{if($)X[`${RV}${Y}`]=$;return X},{});return $B(J)}function Y$(Z){if(!Z||!Z$(Z)&&!Array.isArray(Z))return;if(Array.isArray(Z))return Z.reduce((J,X)=>{let Y=DJ0(X);return Object.entries(Y).forEach(([$,Q])=>{J[$]=Q}),J},{});return DJ0(Z)}function DJ0(Z){return Z.split(",").map((J)=>J.split("=").map((X)=>{try{return decodeURIComponent(X.trim())}catch{return}})).reduce((J,[X,Y])=>{if(X&&Y)J[X]=Y;return J},{})}function $B(Z){if(Object.keys(Z).length===0)return;return Object.entries(Z).reduce((J,[X,Y],$)=>{let Q=`${encodeURIComponent(X)}=${encodeURIComponent(Y)}`,K=$===0?Q:`${J},${Q}`;if(K.length>TJ0)return F0&&l.warn(`Not adding key: ${X} with val: ${Y} to baggage header due to exceeding baggage size limits.`),J;else return K},"")}var NV=new RegExp("^[ \\t]*([0-9a-f]{32})?-?([0-9a-f]{16})?-?([01])?[ \\t]*$");function kJ0(Z){if(!Z)return;let J=Z.match(NV);if(!J)return;let X;if(J[3]==="1")X=!0;else if(J[3]==="0")X=!1;return{traceId:J[1],parentSampled:X,parentSpanId:J[2]}}function PV(Z,J){let X=kJ0(Z),Y=pJ(J);if(!X?.traceId)return{traceId:R4(),sampleRand:Math.random()};let $=lm1(X,Y);if(Y)Y.sample_rand=$.toString();let{traceId:Q,parentSpanId:K,parentSampled:W}=X;return{traceId:Q,parentSpanId:K,sampled:W,dsc:Y||{},sampleRand:$}}function iJ(Z=R4(),J=J9(),X){let Y="";if(X!==void 0)Y=X?"-1":"-0";return`${Z}-${J}${Y}`}function lm1(Z,J){let X=X9(J?.sample_rand);if(X!==void 0)return X;let Y=X9(J?.sample_rate);if(Y&&Z?.parentSampled!==void 0)return Z.parentSampled?Math.random()*Y:Y+Math.random()*(1-Y);else return Math.random()}var QB=0,KB=1,EJ0=!1;function vJ0(Z){let{spanId:J,traceId:X}=Z.spanContext(),{data:Y,op:$,parent_span_id:Q,status:K,origin:W,links:G}=N0(Z);return{parent_span_id:Q,span_id:J,trace_id:X,data:Y,op:$,status:K,origin:W,links:G}}function nJ(Z){let{spanId:J,traceId:X,isRemote:Y}=Z.spanContext(),$=Y?J:N0(Z).parent_span_id,Q=C4(Z).scope,K=Y?Q?.getPropagationContext().propagationSpanId||J9():J;return{parent_span_id:$,span_id:K,trace_id:X}}function WB(Z){let{traceId:J,spanId:X}=Z.spanContext(),Y=E7(Z);return iJ(J,X,Y)}function $$(Z){if(Z&&Z.length>0)return Z.map(({context:{spanId:J,traceId:X,traceFlags:Y,...$},attributes:Q})=>({span_id:J,trace_id:X,sampled:Y===KB,attributes:Q,...$}));else return}function _5(Z){if(typeof Z==="number")return IJ0(Z);if(Array.isArray(Z))return Z[0]+Z[1]/1e9;if(Z instanceof Date)return IJ0(Z.getTime());return cJ()}function IJ0(Z){return Z>9999999999?Z/1000:Z}function N0(Z){if(im1(Z))return Z.getSpanJSON();let{spanId:J,traceId:X}=Z.spanContext();if(pm1(Z)){let{attributes:Y,startTime:$,name:Q,endTime:K,status:W,links:G}=Z,z="parentSpanId"in Z?Z.parentSpanId:("parentSpanContext"in Z)?Z.parentSpanContext?.spanId:void 0;return{span_id:J,trace_id:X,data:Y,description:Q,parent_span_id:z,start_timestamp:_5($),timestamp:_5(K)||void 0,status:Q$(W),op:Y[b0],origin:Y[z1],links:$$(G)}}return{span_id:J,trace_id:X,start_timestamp:0,data:{}}}function pm1(Z){let J=Z;return!!J.attributes&&!!J.startTime&&!!J.name&&!!J.endTime&&!!J.status}function im1(Z){return typeof Z.getSpanJSON==="function"}function E7(Z){let{traceFlags:J}=Z.spanContext();return J===KB}function Q$(Z){if(!Z||Z.code===Hv)return;if(Z.code===rK)return"ok";return Z.message||"unknown_error"}var DV="_sentryChildSpans",qv="_sentryRootSpan";function tK(Z,J){let X=Z[qv]||Z;if(W6(J,qv,X),Z[DV])Z[DV].add(J);else W6(Z,DV,new Set([J]))}function GB(Z){let J=new Set;function X(Y){if(J.has(Y))return;else if(E7(Y)){J.add(Y);let $=Y[DV]?Array.from(Y[DV]):[];for(let Q of $)X(Q)}}return X(Z),Array.from(J)}function H8(Z){return Z[qv]||Z}function eK(){let Z=Y5(),J=P4(Z);if(J.getActiveSpan)return J.getActiveSpan();return EZ(O1())}function CV(){if(!EJ0)T8(()=>{console.warn("[Sentry] Returning null from `beforeSendSpan` is disallowed. To drop certain spans, configure the respective integrations directly.")}),EJ0=!0}var Uv="?",SJ0=/\(error: (.*)\)/,_J0=/captureMessage|captureException/;function VB(...Z){let J=Z.sort((X,Y)=>X[0]-Y[0]).map((X)=>X[1]);return(X,Y=0,$=0)=>{let Q=[],K=X.split(`
|
458
458
|
`);for(let W=Y;W<K.length;W++){let G=K[W];if(G.length>1024)continue;let z=SJ0.test(G)?G.replace(SJ0,"$1"):G;if(z.match(/\S*Error: /))continue;for(let V of J){let H=V(z);if(H){Q.push(H);break}}if(Q.length>=50+$)break}return AJ0(Q.slice($))}}function Lv(Z){if(Array.isArray(Z))return VB(...Z);return Z}function AJ0(Z){if(!Z.length)return[];let J=Array.from(Z);if(/sentryWrapped/.test(zB(J).function||""))J.pop();if(J.reverse(),_J0.test(zB(J).function||"")){if(J.pop(),_J0.test(zB(J).function||""))J.pop()}return J.slice(0,50).map((X)=>({...X,filename:X.filename||zB(J).filename,function:X.function||"?"}))}function zB(Z){return Z[Z.length-1]||{}}var Fv="<anonymous>";function TV(Z){try{if(!Z||typeof Z!=="function")return Fv;return Z.name||Fv}catch(J){return Fv}}var HB={},xJ0={};function ZW(Z,J){HB[Z]=HB[Z]||[],HB[Z].push(J)}function JW(Z,J){if(!xJ0[Z]){xJ0[Z]=!0;try{J()}catch(X){F0&&l.error(`Error while instrumenting ${Z}`,X)}}}function XW(Z,J){let X=Z&&HB[Z];if(!X)return;for(let Y of X)try{Y(J)}catch($){F0&&l.error(`Error while triggering instrumentation handler.
|
459
459
|
Type: ${Z}
|
460
460
|
Name: ${TV(Y)}
|