@splinetool/loader 0.9.119 → 0.9.121

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.
@@ -1,8 +1,10 @@
1
- var xv=Object.create;var ec=Object.defineProperty;var bv=Object.getOwnPropertyDescriptor;var Sv=Object.getOwnPropertyNames;var wv=Object.getPrototypeOf,Tv=Object.prototype.hasOwnProperty;var tc=(r,t)=>()=>(t||r((t={exports:{}}).exports,t),t.exports),Cv=(r,t)=>{for(var e in t)ec(r,e,{get:t[e],enumerable:!0})},Av=(r,t,e,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of Sv(t))!Tv.call(r,o)&&o!==e&&ec(r,o,{get:()=>t[o],enumerable:!(n=bv(t,o))||n.enumerable});return r};var Dp=(r,t,e)=>(e=r!=null?xv(wv(r)):{},Av(t||!r||!r.__esModule?ec(e,"default",{value:r,enumerable:!0}):e,r));var Wu=tc(()=>{});var w0=tc((Yl,S0)=>{(function(r,t){typeof Yl=="object"&&typeof S0<"u"?t(Yl):typeof define=="function"&&define.amd?define(["exports"],t):t((r=typeof globalThis<"u"?globalThis:r||self).SVDJS={})})(Yl,function(r){"use strict";r.SVD=function(t,e,n,o,i){if(e=e===void 0||e,n=n===void 0||n,i=1e-64/(o=o||Math.pow(2,-52)),!t)throw new TypeError("Matrix a is not defined");var a,s,l,u,c,p,f,d,h,m,g,v,x=t[0].length,S=t.length;if(S<x)throw new TypeError("Invalid matrix: m < n");for(var w=[],b=[],_=[],T=e==="f"?S:x,y=m=f=0;y<S;y++)b[y]=new Array(T).fill(0);for(y=0;y<x;y++)_[y]=new Array(x).fill(0);var I,A=new Array(x).fill(0);for(y=0;y<S;y++)for(a=0;a<x;a++)b[y][a]=t[y][a];for(y=0;y<x;y++){for(w[y]=f,h=0,l=y+1,a=y;a<S;a++)h+=Math.pow(b[a][y],2);if(h<i)f=0;else for(d=(p=b[y][y])*(f=p<0?Math.sqrt(h):-Math.sqrt(h))-h,b[y][y]=p-f,a=l;a<x;a++){for(h=0,s=y;s<S;s++)h+=b[s][y]*b[s][a];for(p=h/d,s=y;s<S;s++)b[s][a]=b[s][a]+p*b[s][y]}for(A[y]=f,h=0,a=l;a<x;a++)h+=Math.pow(b[y][a],2);if(h<i)f=0;else{for(d=(p=b[y][y+1])*(f=p<0?Math.sqrt(h):-Math.sqrt(h))-h,b[y][y+1]=p-f,a=l;a<x;a++)w[a]=b[y][a]/d;for(a=l;a<S;a++){for(h=0,s=l;s<x;s++)h+=b[a][s]*b[y][s];for(s=l;s<x;s++)b[a][s]=b[a][s]+h*w[s]}}m<(g=Math.abs(A[y])+Math.abs(w[y]))&&(m=g)}if(n)for(y=x-1;0<=y;y--){if(f!==0){for(d=b[y][y+1]*f,a=l;a<x;a++)_[a][y]=b[y][a]/d;for(a=l;a<x;a++){for(h=0,s=l;s<x;s++)h+=b[y][s]*_[s][a];for(s=l;s<x;s++)_[s][a]=_[s][a]+h*_[s][y]}}for(a=l;a<x;a++)_[y][a]=0,_[a][y]=0;_[y][y]=1,f=w[y],l=y}if(e){if(e==="f")for(y=x;y<S;y++){for(a=x;a<S;a++)b[y][a]=0;b[y][y]=1}for(y=x-1;0<=y;y--){for(l=y+1,f=A[y],a=l;a<T;a++)b[y][a]=0;if(f!==0){for(d=b[y][y]*f,a=l;a<T;a++){for(h=0,s=l;s<S;s++)h+=b[s][y]*b[s][a];for(p=h/d,s=y;s<S;s++)b[s][a]=b[s][a]+p*b[s][y]}for(a=y;a<S;a++)b[a][y]=b[a][y]/f}else for(a=y;a<S;a++)b[a][y]=0;b[y][y]=b[y][y]+1}}for(o*=m,s=x-1;0<=s;s--)for(var O=0;O<50;O++){for(I=!1,l=s;0<=l;l--){if(Math.abs(w[l])<=o){I=!0;break}if(Math.abs(A[l-1])<=o)break}if(!I){for(c=0,u=l-(h=1),y=l;y<s+1&&(p=h*w[y],w[y]=c*w[y],!(Math.abs(p)<=o));y++)if(f=A[y],A[y]=Math.sqrt(p*p+f*f),c=f/(d=A[y]),h=-p/d,e)for(a=0;a<S;a++)g=b[a][u],v=b[a][y],b[a][u]=g*c+v*h,b[a][y]=-g*h+v*c}if(v=A[s],l===s){if(v<0&&(A[s]=-v,n))for(a=0;a<x;a++)_[a][s]=-_[a][s];break}for(m=A[l],p=(((g=A[s-1])-v)*(g+v)+((f=w[s-1])-(d=w[s]))*(f+d))/(2*d*g),f=Math.sqrt(p*p+1),p=((m-v)*(m+v)+d*(g/(p<0?p-f:p+f)-d))/m,y=l+(h=c=1);y<s+1;y++){if(f=w[y],g=A[y],d=h*f,f*=c,v=Math.sqrt(p*p+d*d),p=m*(c=p/(w[y-1]=v))+f*(h=d/v),f=-m*h+f*c,d=g*h,g*=c,n)for(a=0;a<x;a++)m=_[a][y-1],v=_[a][y],_[a][y-1]=m*c+v*h,_[a][y]=-m*h+v*c;if(v=Math.sqrt(p*p+d*d),p=(c=p/(A[y-1]=v))*f+(h=d/v)*g,m=-h*f+c*g,e)for(a=0;a<S;a++)g=b[a][y-1],v=b[a][y],b[a][y-1]=g*c+v*h,b[a][y]=-g*h+v*c}w[l]=0,w[s]=p,A[s]=m}for(y=0;y<x;y++)A[y]<o&&(A[y]=0);return{u:b,q:A,v:_}},r.VERSION="1.1.1",Object.defineProperty(r,"__esModule",{value:!0})})});var G0=tc(Kl=>{(function(){"use strict";var r=function(){this.init()};r.prototype={init:function(){var c=this||t;return c._counter=1e3,c._html5AudioPool=[],c.html5PoolSize=10,c._codecs={},c._howls=[],c._muted=!1,c._volume=1,c._canPlayEvent="canplaythrough",c._navigator=typeof window<"u"&&window.navigator?window.navigator:null,c.masterGain=null,c.noAudio=!1,c.usingWebAudio=!0,c.autoSuspend=!0,c.ctx=null,c.autoUnlock=!0,c._setup(),c},volume:function(c){var p=this||t;if(c=parseFloat(c),p.ctx||u(),typeof c<"u"&&c>=0&&c<=1){if(p._volume=c,p._muted)return p;p.usingWebAudio&&p.masterGain.gain.setValueAtTime(c,t.ctx.currentTime);for(var f=0;f<p._howls.length;f++)if(!p._howls[f]._webAudio)for(var d=p._howls[f]._getSoundIds(),h=0;h<d.length;h++){var m=p._howls[f]._soundById(d[h]);m&&m._node&&(m._node.volume=m._volume*c)}return p}return p._volume},mute:function(c){var p=this||t;p.ctx||u(),p._muted=c,p.usingWebAudio&&p.masterGain.gain.setValueAtTime(c?0:p._volume,t.ctx.currentTime);for(var f=0;f<p._howls.length;f++)if(!p._howls[f]._webAudio)for(var d=p._howls[f]._getSoundIds(),h=0;h<d.length;h++){var m=p._howls[f]._soundById(d[h]);m&&m._node&&(m._node.muted=c?!0:m._muted)}return p},stop:function(){for(var c=this||t,p=0;p<c._howls.length;p++)c._howls[p].stop();return c},unload:function(){for(var c=this||t,p=c._howls.length-1;p>=0;p--)c._howls[p].unload();return c.usingWebAudio&&c.ctx&&typeof c.ctx.close<"u"&&(c.ctx.close(),c.ctx=null,u()),c},codecs:function(c){return(this||t)._codecs[c.replace(/^x-/,"")]},_setup:function(){var c=this||t;if(c.state=c.ctx&&c.ctx.state||"suspended",c._autoSuspend(),!c.usingWebAudio)if(typeof Audio<"u")try{var p=new Audio;typeof p.oncanplaythrough>"u"&&(c._canPlayEvent="canplay")}catch{c.noAudio=!0}else c.noAudio=!0;try{var p=new Audio;p.muted&&(c.noAudio=!0)}catch{}return c.noAudio||c._setupCodecs(),c},_setupCodecs:function(){var c=this||t,p=null;try{p=typeof Audio<"u"?new Audio:null}catch{return c}if(!p||typeof p.canPlayType!="function")return c;var f=p.canPlayType("audio/mpeg;").replace(/^no$/,""),d=c._navigator?c._navigator.userAgent:"",h=d.match(/OPR\/([0-6].)/g),m=h&&parseInt(h[0].split("/")[1],10)<33,g=d.indexOf("Safari")!==-1&&d.indexOf("Chrome")===-1,v=d.match(/Version\/(.*?) /),x=g&&v&&parseInt(v[1],10)<15;return c._codecs={mp3:!!(!m&&(f||p.canPlayType("audio/mp3;").replace(/^no$/,""))),mpeg:!!f,opus:!!p.canPlayType('audio/ogg; codecs="opus"').replace(/^no$/,""),ogg:!!p.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,""),oga:!!p.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,""),wav:!!(p.canPlayType('audio/wav; codecs="1"')||p.canPlayType("audio/wav")).replace(/^no$/,""),aac:!!p.canPlayType("audio/aac;").replace(/^no$/,""),caf:!!p.canPlayType("audio/x-caf;").replace(/^no$/,""),m4a:!!(p.canPlayType("audio/x-m4a;")||p.canPlayType("audio/m4a;")||p.canPlayType("audio/aac;")).replace(/^no$/,""),m4b:!!(p.canPlayType("audio/x-m4b;")||p.canPlayType("audio/m4b;")||p.canPlayType("audio/aac;")).replace(/^no$/,""),mp4:!!(p.canPlayType("audio/x-mp4;")||p.canPlayType("audio/mp4;")||p.canPlayType("audio/aac;")).replace(/^no$/,""),weba:!!(!x&&p.canPlayType('audio/webm; codecs="vorbis"').replace(/^no$/,"")),webm:!!(!x&&p.canPlayType('audio/webm; codecs="vorbis"').replace(/^no$/,"")),dolby:!!p.canPlayType('audio/mp4; codecs="ec-3"').replace(/^no$/,""),flac:!!(p.canPlayType("audio/x-flac;")||p.canPlayType("audio/flac;")).replace(/^no$/,"")},c},_unlockAudio:function(){var c=this||t;if(!(c._audioUnlocked||!c.ctx)){c._audioUnlocked=!1,c.autoUnlock=!1,!c._mobileUnloaded&&c.ctx.sampleRate!==44100&&(c._mobileUnloaded=!0,c.unload()),c._scratchBuffer=c.ctx.createBuffer(1,1,22050);var p=function(f){for(;c._html5AudioPool.length<c.html5PoolSize;)try{var d=new Audio;d._unlocked=!0,c._releaseHtml5Audio(d)}catch{c.noAudio=!0;break}for(var h=0;h<c._howls.length;h++)if(!c._howls[h]._webAudio)for(var m=c._howls[h]._getSoundIds(),g=0;g<m.length;g++){var v=c._howls[h]._soundById(m[g]);v&&v._node&&!v._node._unlocked&&(v._node._unlocked=!0,v._node.load())}c._autoResume();var x=c.ctx.createBufferSource();x.buffer=c._scratchBuffer,x.connect(c.ctx.destination),typeof x.start>"u"?x.noteOn(0):x.start(0),typeof c.ctx.resume=="function"&&c.ctx.resume(),x.onended=function(){x.disconnect(0),c._audioUnlocked=!0,document.removeEventListener("touchstart",p,!0),document.removeEventListener("touchend",p,!0),document.removeEventListener("click",p,!0),document.removeEventListener("keydown",p,!0);for(var S=0;S<c._howls.length;S++)c._howls[S]._emit("unlock")}};return document.addEventListener("touchstart",p,!0),document.addEventListener("touchend",p,!0),document.addEventListener("click",p,!0),document.addEventListener("keydown",p,!0),c}},_obtainHtml5Audio:function(){var c=this||t;if(c._html5AudioPool.length)return c._html5AudioPool.pop();var p=new Audio().play();return p&&typeof Promise<"u"&&(p instanceof Promise||typeof p.then=="function")&&p.catch(function(){console.warn("HTML5 Audio pool exhausted, returning potentially locked audio object.")}),new Audio},_releaseHtml5Audio:function(c){var p=this||t;return c._unlocked&&p._html5AudioPool.push(c),p},_autoSuspend:function(){var c=this;if(!(!c.autoSuspend||!c.ctx||typeof c.ctx.suspend>"u"||!t.usingWebAudio)){for(var p=0;p<c._howls.length;p++)if(c._howls[p]._webAudio){for(var f=0;f<c._howls[p]._sounds.length;f++)if(!c._howls[p]._sounds[f]._paused)return c}return c._suspendTimer&&clearTimeout(c._suspendTimer),c._suspendTimer=setTimeout(function(){if(!!c.autoSuspend){c._suspendTimer=null,c.state="suspending";var d=function(){c.state="suspended",c._resumeAfterSuspend&&(delete c._resumeAfterSuspend,c._autoResume())};c.ctx.suspend().then(d,d)}},3e4),c}},_autoResume:function(){var c=this;if(!(!c.ctx||typeof c.ctx.resume>"u"||!t.usingWebAudio))return c.state==="running"&&c.ctx.state!=="interrupted"&&c._suspendTimer?(clearTimeout(c._suspendTimer),c._suspendTimer=null):c.state==="suspended"||c.state==="running"&&c.ctx.state==="interrupted"?(c.ctx.resume().then(function(){c.state="running";for(var p=0;p<c._howls.length;p++)c._howls[p]._emit("resume")}),c._suspendTimer&&(clearTimeout(c._suspendTimer),c._suspendTimer=null)):c.state==="suspending"&&(c._resumeAfterSuspend=!0),c}};var t=new r,e=function(c){var p=this;if(!c.src||c.src.length===0){console.error("An array of source files must be passed with any new Howl.");return}p.init(c)};e.prototype={init:function(c){var p=this;return t.ctx||u(),p._autoplay=c.autoplay||!1,p._format=typeof c.format!="string"?c.format:[c.format],p._html5=c.html5||!1,p._muted=c.mute||!1,p._loop=c.loop||!1,p._pool=c.pool||5,p._preload=typeof c.preload=="boolean"||c.preload==="metadata"?c.preload:!0,p._rate=c.rate||1,p._sprite=c.sprite||{},p._src=typeof c.src!="string"?c.src:[c.src],p._volume=c.volume!==void 0?c.volume:1,p._xhr={method:c.xhr&&c.xhr.method?c.xhr.method:"GET",headers:c.xhr&&c.xhr.headers?c.xhr.headers:null,withCredentials:c.xhr&&c.xhr.withCredentials?c.xhr.withCredentials:!1},p._duration=0,p._state="unloaded",p._sounds=[],p._endTimers={},p._queue=[],p._playLock=!1,p._onend=c.onend?[{fn:c.onend}]:[],p._onfade=c.onfade?[{fn:c.onfade}]:[],p._onload=c.onload?[{fn:c.onload}]:[],p._onloaderror=c.onloaderror?[{fn:c.onloaderror}]:[],p._onplayerror=c.onplayerror?[{fn:c.onplayerror}]:[],p._onpause=c.onpause?[{fn:c.onpause}]:[],p._onplay=c.onplay?[{fn:c.onplay}]:[],p._onstop=c.onstop?[{fn:c.onstop}]:[],p._onmute=c.onmute?[{fn:c.onmute}]:[],p._onvolume=c.onvolume?[{fn:c.onvolume}]:[],p._onrate=c.onrate?[{fn:c.onrate}]:[],p._onseek=c.onseek?[{fn:c.onseek}]:[],p._onunlock=c.onunlock?[{fn:c.onunlock}]:[],p._onresume=[],p._webAudio=t.usingWebAudio&&!p._html5,typeof t.ctx<"u"&&t.ctx&&t.autoUnlock&&t._unlockAudio(),t._howls.push(p),p._autoplay&&p._queue.push({event:"play",action:function(){p.play()}}),p._preload&&p._preload!=="none"&&p.load(),p},load:function(){var c=this,p=null;if(t.noAudio){c._emit("loaderror",null,"No audio support.");return}typeof c._src=="string"&&(c._src=[c._src]);for(var f=0;f<c._src.length;f++){var d,h;if(c._format&&c._format[f])d=c._format[f];else{if(h=c._src[f],typeof h!="string"){c._emit("loaderror",null,"Non-string found in selected audio sources - ignoring.");continue}d=/^data:audio\/([^;,]+);/i.exec(h),d||(d=/\.([^.]+)$/.exec(h.split("?",1)[0])),d&&(d=d[1].toLowerCase())}if(d||console.warn('No file extension was found. Consider using the "format" property or specify an extension.'),d&&t.codecs(d)){p=c._src[f];break}}if(!p){c._emit("loaderror",null,"No codec support for selected audio sources.");return}return c._src=p,c._state="loading",window.location.protocol==="https:"&&p.slice(0,5)==="http:"&&(c._html5=!0,c._webAudio=!1),new n(c),c._webAudio&&i(c),c},play:function(c,p){var f=this,d=null;if(typeof c=="number")d=c,c=null;else{if(typeof c=="string"&&f._state==="loaded"&&!f._sprite[c])return null;if(typeof c>"u"&&(c="__default",!f._playLock)){for(var h=0,m=0;m<f._sounds.length;m++)f._sounds[m]._paused&&!f._sounds[m]._ended&&(h++,d=f._sounds[m]._id);h===1?c=null:d=null}}var g=d?f._soundById(d):f._inactiveSound();if(!g)return null;if(d&&!c&&(c=g._sprite||"__default"),f._state!=="loaded"){g._sprite=c,g._ended=!1;var v=g._id;return f._queue.push({event:"play",action:function(){f.play(v)}}),v}if(d&&!g._paused)return p||f._loadQueue("play"),g._id;f._webAudio&&t._autoResume();var x=Math.max(0,g._seek>0?g._seek:f._sprite[c][0]/1e3),S=Math.max(0,(f._sprite[c][0]+f._sprite[c][1])/1e3-x),w=S*1e3/Math.abs(g._rate),b=f._sprite[c][0]/1e3,_=(f._sprite[c][0]+f._sprite[c][1])/1e3;g._sprite=c,g._ended=!1;var T=function(){g._paused=!1,g._seek=x,g._start=b,g._stop=_,g._loop=!!(g._loop||f._sprite[c][2])};if(x>=_){f._ended(g);return}var y=g._node;if(f._webAudio){var I=function(){f._playLock=!1,T(),f._refreshBuffer(g);var N=g._muted||f._muted?0:g._volume;y.gain.setValueAtTime(N,t.ctx.currentTime),g._playStart=t.ctx.currentTime,typeof y.bufferSource.start>"u"?g._loop?y.bufferSource.noteGrainOn(0,x,86400):y.bufferSource.noteGrainOn(0,x,S):g._loop?y.bufferSource.start(0,x,86400):y.bufferSource.start(0,x,S),w!==1/0&&(f._endTimers[g._id]=setTimeout(f._ended.bind(f,g),w)),p||setTimeout(function(){f._emit("play",g._id),f._loadQueue()},0)};t.state==="running"&&t.ctx.state!=="interrupted"?I():(f._playLock=!0,f.once("resume",I),f._clearTimer(g._id))}else{var A=function(){y.currentTime=x,y.muted=g._muted||f._muted||t._muted||y.muted,y.volume=g._volume*t.volume(),y.playbackRate=g._rate;try{var N=y.play();if(N&&typeof Promise<"u"&&(N instanceof Promise||typeof N.then=="function")?(f._playLock=!0,T(),N.then(function(){f._playLock=!1,y._unlocked=!0,p?f._loadQueue():f._emit("play",g._id)}).catch(function(){f._playLock=!1,f._emit("playerror",g._id,"Playback was unable to start. This is most commonly an issue on mobile devices and Chrome where playback was not within a user interaction."),g._ended=!0,g._paused=!0})):p||(f._playLock=!1,T(),f._emit("play",g._id)),y.playbackRate=g._rate,y.paused){f._emit("playerror",g._id,"Playback was unable to start. This is most commonly an issue on mobile devices and Chrome where playback was not within a user interaction.");return}c!=="__default"||g._loop?f._endTimers[g._id]=setTimeout(f._ended.bind(f,g),w):(f._endTimers[g._id]=function(){f._ended(g),y.removeEventListener("ended",f._endTimers[g._id],!1)},y.addEventListener("ended",f._endTimers[g._id],!1))}catch(P){f._emit("playerror",g._id,P)}};y.src==="data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA"&&(y.src=f._src,y.load());var O=window&&window.ejecta||!y.readyState&&t._navigator.isCocoonJS;if(y.readyState>=3||O)A();else{f._playLock=!0,f._state="loading";var C=function(){f._state="loaded",A(),y.removeEventListener(t._canPlayEvent,C,!1)};y.addEventListener(t._canPlayEvent,C,!1),f._clearTimer(g._id)}}return g._id},pause:function(c){var p=this;if(p._state!=="loaded"||p._playLock)return p._queue.push({event:"pause",action:function(){p.pause(c)}}),p;for(var f=p._getSoundIds(c),d=0;d<f.length;d++){p._clearTimer(f[d]);var h=p._soundById(f[d]);if(h&&!h._paused&&(h._seek=p.seek(f[d]),h._rateSeek=0,h._paused=!0,p._stopFade(f[d]),h._node))if(p._webAudio){if(!h._node.bufferSource)continue;typeof h._node.bufferSource.stop>"u"?h._node.bufferSource.noteOff(0):h._node.bufferSource.stop(0),p._cleanBuffer(h._node)}else(!isNaN(h._node.duration)||h._node.duration===1/0)&&h._node.pause();arguments[1]||p._emit("pause",h?h._id:null)}return p},stop:function(c,p){var f=this;if(f._state!=="loaded"||f._playLock)return f._queue.push({event:"stop",action:function(){f.stop(c)}}),f;for(var d=f._getSoundIds(c),h=0;h<d.length;h++){f._clearTimer(d[h]);var m=f._soundById(d[h]);m&&(m._seek=m._start||0,m._rateSeek=0,m._paused=!0,m._ended=!0,f._stopFade(d[h]),m._node&&(f._webAudio?m._node.bufferSource&&(typeof m._node.bufferSource.stop>"u"?m._node.bufferSource.noteOff(0):m._node.bufferSource.stop(0),f._cleanBuffer(m._node)):(!isNaN(m._node.duration)||m._node.duration===1/0)&&(m._node.currentTime=m._start||0,m._node.pause(),m._node.duration===1/0&&f._clearSound(m._node))),p||f._emit("stop",m._id))}return f},mute:function(c,p){var f=this;if(f._state!=="loaded"||f._playLock)return f._queue.push({event:"mute",action:function(){f.mute(c,p)}}),f;if(typeof p>"u")if(typeof c=="boolean")f._muted=c;else return f._muted;for(var d=f._getSoundIds(p),h=0;h<d.length;h++){var m=f._soundById(d[h]);m&&(m._muted=c,m._interval&&f._stopFade(m._id),f._webAudio&&m._node?m._node.gain.setValueAtTime(c?0:m._volume,t.ctx.currentTime):m._node&&(m._node.muted=t._muted?!0:c),f._emit("mute",m._id))}return f},volume:function(){var c=this,p=arguments,f,d;if(p.length===0)return c._volume;if(p.length===1||p.length===2&&typeof p[1]>"u"){var h=c._getSoundIds(),m=h.indexOf(p[0]);m>=0?d=parseInt(p[0],10):f=parseFloat(p[0])}else p.length>=2&&(f=parseFloat(p[0]),d=parseInt(p[1],10));var g;if(typeof f<"u"&&f>=0&&f<=1){if(c._state!=="loaded"||c._playLock)return c._queue.push({event:"volume",action:function(){c.volume.apply(c,p)}}),c;typeof d>"u"&&(c._volume=f),d=c._getSoundIds(d);for(var v=0;v<d.length;v++)g=c._soundById(d[v]),g&&(g._volume=f,p[2]||c._stopFade(d[v]),c._webAudio&&g._node&&!g._muted?g._node.gain.setValueAtTime(f,t.ctx.currentTime):g._node&&!g._muted&&(g._node.volume=f*t.volume()),c._emit("volume",g._id))}else return g=d?c._soundById(d):c._sounds[0],g?g._volume:0;return c},fade:function(c,p,f,d){var h=this;if(h._state!=="loaded"||h._playLock)return h._queue.push({event:"fade",action:function(){h.fade(c,p,f,d)}}),h;c=Math.min(Math.max(0,parseFloat(c)),1),p=Math.min(Math.max(0,parseFloat(p)),1),f=parseFloat(f),h.volume(c,d);for(var m=h._getSoundIds(d),g=0;g<m.length;g++){var v=h._soundById(m[g]);if(v){if(d||h._stopFade(m[g]),h._webAudio&&!v._muted){var x=t.ctx.currentTime,S=x+f/1e3;v._volume=c,v._node.gain.setValueAtTime(c,x),v._node.gain.linearRampToValueAtTime(p,S)}h._startFadeInterval(v,c,p,f,m[g],typeof d>"u")}}return h},_startFadeInterval:function(c,p,f,d,h,m){var g=this,v=p,x=f-p,S=Math.abs(x/.01),w=Math.max(4,S>0?d/S:d),b=Date.now();c._fadeTo=f,c._interval=setInterval(function(){var _=(Date.now()-b)/d;b=Date.now(),v+=x*_,v=Math.round(v*100)/100,x<0?v=Math.max(f,v):v=Math.min(f,v),g._webAudio?c._volume=v:g.volume(v,c._id,!0),m&&(g._volume=v),(f<p&&v<=f||f>p&&v>=f)&&(clearInterval(c._interval),c._interval=null,c._fadeTo=null,g.volume(f,c._id),g._emit("fade",c._id))},w)},_stopFade:function(c){var p=this,f=p._soundById(c);return f&&f._interval&&(p._webAudio&&f._node.gain.cancelScheduledValues(t.ctx.currentTime),clearInterval(f._interval),f._interval=null,p.volume(f._fadeTo,c),f._fadeTo=null,p._emit("fade",c)),p},loop:function(){var c=this,p=arguments,f,d,h;if(p.length===0)return c._loop;if(p.length===1)if(typeof p[0]=="boolean")f=p[0],c._loop=f;else return h=c._soundById(parseInt(p[0],10)),h?h._loop:!1;else p.length===2&&(f=p[0],d=parseInt(p[1],10));for(var m=c._getSoundIds(d),g=0;g<m.length;g++)h=c._soundById(m[g]),h&&(h._loop=f,c._webAudio&&h._node&&h._node.bufferSource&&(h._node.bufferSource.loop=f,f&&(h._node.bufferSource.loopStart=h._start||0,h._node.bufferSource.loopEnd=h._stop,c.playing(m[g])&&(c.pause(m[g],!0),c.play(m[g],!0)))));return c},rate:function(){var c=this,p=arguments,f,d;if(p.length===0)d=c._sounds[0]._id;else if(p.length===1){var h=c._getSoundIds(),m=h.indexOf(p[0]);m>=0?d=parseInt(p[0],10):f=parseFloat(p[0])}else p.length===2&&(f=parseFloat(p[0]),d=parseInt(p[1],10));var g;if(typeof f=="number"){if(c._state!=="loaded"||c._playLock)return c._queue.push({event:"rate",action:function(){c.rate.apply(c,p)}}),c;typeof d>"u"&&(c._rate=f),d=c._getSoundIds(d);for(var v=0;v<d.length;v++)if(g=c._soundById(d[v]),g){c.playing(d[v])&&(g._rateSeek=c.seek(d[v]),g._playStart=c._webAudio?t.ctx.currentTime:g._playStart),g._rate=f,c._webAudio&&g._node&&g._node.bufferSource?g._node.bufferSource.playbackRate.setValueAtTime(f,t.ctx.currentTime):g._node&&(g._node.playbackRate=f);var x=c.seek(d[v]),S=(c._sprite[g._sprite][0]+c._sprite[g._sprite][1])/1e3-x,w=S*1e3/Math.abs(g._rate);(c._endTimers[d[v]]||!g._paused)&&(c._clearTimer(d[v]),c._endTimers[d[v]]=setTimeout(c._ended.bind(c,g),w)),c._emit("rate",g._id)}}else return g=c._soundById(d),g?g._rate:c._rate;return c},seek:function(){var c=this,p=arguments,f,d;if(p.length===0)c._sounds.length&&(d=c._sounds[0]._id);else if(p.length===1){var h=c._getSoundIds(),m=h.indexOf(p[0]);m>=0?d=parseInt(p[0],10):c._sounds.length&&(d=c._sounds[0]._id,f=parseFloat(p[0]))}else p.length===2&&(f=parseFloat(p[0]),d=parseInt(p[1],10));if(typeof d>"u")return 0;if(typeof f=="number"&&(c._state!=="loaded"||c._playLock))return c._queue.push({event:"seek",action:function(){c.seek.apply(c,p)}}),c;var g=c._soundById(d);if(g)if(typeof f=="number"&&f>=0){var v=c.playing(d);v&&c.pause(d,!0),g._seek=f,g._ended=!1,c._clearTimer(d),!c._webAudio&&g._node&&!isNaN(g._node.duration)&&(g._node.currentTime=f);var x=function(){v&&c.play(d,!0),c._emit("seek",d)};if(v&&!c._webAudio){var S=function(){c._playLock?setTimeout(S,0):x()};setTimeout(S,0)}else x()}else if(c._webAudio){var w=c.playing(d)?t.ctx.currentTime-g._playStart:0,b=g._rateSeek?g._rateSeek-g._seek:0;return g._seek+(b+w*Math.abs(g._rate))}else return g._node.currentTime;return c},playing:function(c){var p=this;if(typeof c=="number"){var f=p._soundById(c);return f?!f._paused:!1}for(var d=0;d<p._sounds.length;d++)if(!p._sounds[d]._paused)return!0;return!1},duration:function(c){var p=this,f=p._duration,d=p._soundById(c);return d&&(f=p._sprite[d._sprite][1]/1e3),f},state:function(){return this._state},unload:function(){for(var c=this,p=c._sounds,f=0;f<p.length;f++)p[f]._paused||c.stop(p[f]._id),c._webAudio||(c._clearSound(p[f]._node),p[f]._node.removeEventListener("error",p[f]._errorFn,!1),p[f]._node.removeEventListener(t._canPlayEvent,p[f]._loadFn,!1),p[f]._node.removeEventListener("ended",p[f]._endFn,!1),t._releaseHtml5Audio(p[f]._node)),delete p[f]._node,c._clearTimer(p[f]._id);var d=t._howls.indexOf(c);d>=0&&t._howls.splice(d,1);var h=!0;for(f=0;f<t._howls.length;f++)if(t._howls[f]._src===c._src||c._src.indexOf(t._howls[f]._src)>=0){h=!1;break}return o&&h&&delete o[c._src],t.noAudio=!1,c._state="unloaded",c._sounds=[],c=null,null},on:function(c,p,f,d){var h=this,m=h["_on"+c];return typeof p=="function"&&m.push(d?{id:f,fn:p,once:d}:{id:f,fn:p}),h},off:function(c,p,f){var d=this,h=d["_on"+c],m=0;if(typeof p=="number"&&(f=p,p=null),p||f)for(m=0;m<h.length;m++){var g=f===h[m].id;if(p===h[m].fn&&g||!p&&g){h.splice(m,1);break}}else if(c)d["_on"+c]=[];else{var v=Object.keys(d);for(m=0;m<v.length;m++)v[m].indexOf("_on")===0&&Array.isArray(d[v[m]])&&(d[v[m]]=[])}return d},once:function(c,p,f){var d=this;return d.on(c,p,f,1),d},_emit:function(c,p,f){for(var d=this,h=d["_on"+c],m=h.length-1;m>=0;m--)(!h[m].id||h[m].id===p||c==="load")&&(setTimeout(function(g){g.call(this,p,f)}.bind(d,h[m].fn),0),h[m].once&&d.off(c,h[m].fn,h[m].id));return d._loadQueue(c),d},_loadQueue:function(c){var p=this;if(p._queue.length>0){var f=p._queue[0];f.event===c&&(p._queue.shift(),p._loadQueue()),c||f.action()}return p},_ended:function(c){var p=this,f=c._sprite;if(!p._webAudio&&c._node&&!c._node.paused&&!c._node.ended&&c._node.currentTime<c._stop)return setTimeout(p._ended.bind(p,c),100),p;var d=!!(c._loop||p._sprite[f][2]);if(p._emit("end",c._id),!p._webAudio&&d&&p.stop(c._id,!0).play(c._id),p._webAudio&&d){p._emit("play",c._id),c._seek=c._start||0,c._rateSeek=0,c._playStart=t.ctx.currentTime;var h=(c._stop-c._start)*1e3/Math.abs(c._rate);p._endTimers[c._id]=setTimeout(p._ended.bind(p,c),h)}return p._webAudio&&!d&&(c._paused=!0,c._ended=!0,c._seek=c._start||0,c._rateSeek=0,p._clearTimer(c._id),p._cleanBuffer(c._node),t._autoSuspend()),!p._webAudio&&!d&&p.stop(c._id,!0),p},_clearTimer:function(c){var p=this;if(p._endTimers[c]){if(typeof p._endTimers[c]!="function")clearTimeout(p._endTimers[c]);else{var f=p._soundById(c);f&&f._node&&f._node.removeEventListener("ended",p._endTimers[c],!1)}delete p._endTimers[c]}return p},_soundById:function(c){for(var p=this,f=0;f<p._sounds.length;f++)if(c===p._sounds[f]._id)return p._sounds[f];return null},_inactiveSound:function(){var c=this;c._drain();for(var p=0;p<c._sounds.length;p++)if(c._sounds[p]._ended)return c._sounds[p].reset();return new n(c)},_drain:function(){var c=this,p=c._pool,f=0,d=0;if(!(c._sounds.length<p)){for(d=0;d<c._sounds.length;d++)c._sounds[d]._ended&&f++;for(d=c._sounds.length-1;d>=0;d--){if(f<=p)return;c._sounds[d]._ended&&(c._webAudio&&c._sounds[d]._node&&c._sounds[d]._node.disconnect(0),c._sounds.splice(d,1),f--)}}},_getSoundIds:function(c){var p=this;if(typeof c>"u"){for(var f=[],d=0;d<p._sounds.length;d++)f.push(p._sounds[d]._id);return f}else return[c]},_refreshBuffer:function(c){var p=this;return c._node.bufferSource=t.ctx.createBufferSource(),c._node.bufferSource.buffer=o[p._src],c._panner?c._node.bufferSource.connect(c._panner):c._node.bufferSource.connect(c._node),c._node.bufferSource.loop=c._loop,c._loop&&(c._node.bufferSource.loopStart=c._start||0,c._node.bufferSource.loopEnd=c._stop||0),c._node.bufferSource.playbackRate.setValueAtTime(c._rate,t.ctx.currentTime),p},_cleanBuffer:function(c){var p=this,f=t._navigator&&t._navigator.vendor.indexOf("Apple")>=0;if(t._scratchBuffer&&c.bufferSource&&(c.bufferSource.onended=null,c.bufferSource.disconnect(0),f))try{c.bufferSource.buffer=t._scratchBuffer}catch{}return c.bufferSource=null,p},_clearSound:function(c){var p=/MSIE |Trident\//.test(t._navigator&&t._navigator.userAgent);p||(c.src="data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA")}};var n=function(c){this._parent=c,this.init()};n.prototype={init:function(){var c=this,p=c._parent;return c._muted=p._muted,c._loop=p._loop,c._volume=p._volume,c._rate=p._rate,c._seek=0,c._paused=!0,c._ended=!0,c._sprite="__default",c._id=++t._counter,p._sounds.push(c),c.create(),c},create:function(){var c=this,p=c._parent,f=t._muted||c._muted||c._parent._muted?0:c._volume;return p._webAudio?(c._node=typeof t.ctx.createGain>"u"?t.ctx.createGainNode():t.ctx.createGain(),c._node.gain.setValueAtTime(f,t.ctx.currentTime),c._node.paused=!0,c._node.connect(t.masterGain)):t.noAudio||(c._node=t._obtainHtml5Audio(),c._errorFn=c._errorListener.bind(c),c._node.addEventListener("error",c._errorFn,!1),c._loadFn=c._loadListener.bind(c),c._node.addEventListener(t._canPlayEvent,c._loadFn,!1),c._endFn=c._endListener.bind(c),c._node.addEventListener("ended",c._endFn,!1),c._node.src=p._src,c._node.preload=p._preload===!0?"auto":p._preload,c._node.volume=f*t.volume(),c._node.load()),c},reset:function(){var c=this,p=c._parent;return c._muted=p._muted,c._loop=p._loop,c._volume=p._volume,c._rate=p._rate,c._seek=0,c._rateSeek=0,c._paused=!0,c._ended=!0,c._sprite="__default",c._id=++t._counter,c},_errorListener:function(){var c=this;c._parent._emit("loaderror",c._id,c._node.error?c._node.error.code:0),c._node.removeEventListener("error",c._errorFn,!1)},_loadListener:function(){var c=this,p=c._parent;p._duration=Math.ceil(c._node.duration*10)/10,Object.keys(p._sprite).length===0&&(p._sprite={__default:[0,p._duration*1e3]}),p._state!=="loaded"&&(p._state="loaded",p._emit("load"),p._loadQueue()),c._node.removeEventListener(t._canPlayEvent,c._loadFn,!1)},_endListener:function(){var c=this,p=c._parent;p._duration===1/0&&(p._duration=Math.ceil(c._node.duration*10)/10,p._sprite.__default[1]===1/0&&(p._sprite.__default[1]=p._duration*1e3),p._ended(c)),c._node.removeEventListener("ended",c._endFn,!1)}};var o={},i=function(c){var p=c._src;if(o[p]){c._duration=o[p].duration,l(c);return}if(/^data:[^;]+;base64,/.test(p)){for(var f=atob(p.split(",")[1]),d=new Uint8Array(f.length),h=0;h<f.length;++h)d[h]=f.charCodeAt(h);s(d.buffer,c)}else{var m=new XMLHttpRequest;m.open(c._xhr.method,p,!0),m.withCredentials=c._xhr.withCredentials,m.responseType="arraybuffer",c._xhr.headers&&Object.keys(c._xhr.headers).forEach(function(g){m.setRequestHeader(g,c._xhr.headers[g])}),m.onload=function(){var g=(m.status+"")[0];if(g!=="0"&&g!=="2"&&g!=="3"){c._emit("loaderror",null,"Failed loading audio file with status: "+m.status+".");return}s(m.response,c)},m.onerror=function(){c._webAudio&&(c._html5=!0,c._webAudio=!1,c._sounds=[],delete o[p],c.load())},a(m)}},a=function(c){try{c.send()}catch{c.onerror()}},s=function(c,p){var f=function(){p._emit("loaderror",null,"Decoding audio data failed.")},d=function(h){h&&p._sounds.length>0?(o[p._src]=h,l(p,h)):f()};typeof Promise<"u"&&t.ctx.decodeAudioData.length===1?t.ctx.decodeAudioData(c).then(d).catch(f):t.ctx.decodeAudioData(c,d,f)},l=function(c,p){p&&!c._duration&&(c._duration=p.duration),Object.keys(c._sprite).length===0&&(c._sprite={__default:[0,c._duration*1e3]}),c._state!=="loaded"&&(c._state="loaded",c._emit("load"),c._loadQueue())},u=function(){if(!!t.usingWebAudio){try{typeof AudioContext<"u"?t.ctx=new AudioContext:typeof webkitAudioContext<"u"?t.ctx=new webkitAudioContext:t.usingWebAudio=!1}catch{t.usingWebAudio=!1}t.ctx||(t.usingWebAudio=!1);var c=/iP(hone|od|ad)/.test(t._navigator&&t._navigator.platform),p=t._navigator&&t._navigator.appVersion.match(/OS (\d+)_(\d+)_?(\d+)?/),f=p?parseInt(p[1],10):null;if(c&&f&&f<9){var d=/safari/.test(t._navigator&&t._navigator.userAgent.toLowerCase());t._navigator&&!d&&(t.usingWebAudio=!1)}t.usingWebAudio&&(t.masterGain=typeof t.ctx.createGain>"u"?t.ctx.createGainNode():t.ctx.createGain(),t.masterGain.gain.setValueAtTime(t._muted?0:t._volume,t.ctx.currentTime),t.masterGain.connect(t.ctx.destination)),t._setup()}};typeof define=="function"&&define.amd&&define([],function(){return{Howler:t,Howl:e}}),typeof Kl<"u"&&(Kl.Howler=t,Kl.Howl=e),typeof global<"u"?(global.HowlerGlobal=r,global.Howler=t,global.Howl=e,global.Sound=n):typeof window<"u"&&(window.HowlerGlobal=r,window.Howler=t,window.Howl=e,window.Sound=n)})();(function(){"use strict";HowlerGlobal.prototype._pos=[0,0,0],HowlerGlobal.prototype._orientation=[0,0,-1,0,1,0],HowlerGlobal.prototype.stereo=function(t){var e=this;if(!e.ctx||!e.ctx.listener)return e;for(var n=e._howls.length-1;n>=0;n--)e._howls[n].stereo(t);return e},HowlerGlobal.prototype.pos=function(t,e,n){var o=this;if(!o.ctx||!o.ctx.listener)return o;if(e=typeof e!="number"?o._pos[1]:e,n=typeof n!="number"?o._pos[2]:n,typeof t=="number")o._pos=[t,e,n],typeof o.ctx.listener.positionX<"u"?(o.ctx.listener.positionX.setTargetAtTime(o._pos[0],Howler.ctx.currentTime,.1),o.ctx.listener.positionY.setTargetAtTime(o._pos[1],Howler.ctx.currentTime,.1),o.ctx.listener.positionZ.setTargetAtTime(o._pos[2],Howler.ctx.currentTime,.1)):o.ctx.listener.setPosition(o._pos[0],o._pos[1],o._pos[2]);else return o._pos;return o},HowlerGlobal.prototype.orientation=function(t,e,n,o,i,a){var s=this;if(!s.ctx||!s.ctx.listener)return s;var l=s._orientation;if(e=typeof e!="number"?l[1]:e,n=typeof n!="number"?l[2]:n,o=typeof o!="number"?l[3]:o,i=typeof i!="number"?l[4]:i,a=typeof a!="number"?l[5]:a,typeof t=="number")s._orientation=[t,e,n,o,i,a],typeof s.ctx.listener.forwardX<"u"?(s.ctx.listener.forwardX.setTargetAtTime(t,Howler.ctx.currentTime,.1),s.ctx.listener.forwardY.setTargetAtTime(e,Howler.ctx.currentTime,.1),s.ctx.listener.forwardZ.setTargetAtTime(n,Howler.ctx.currentTime,.1),s.ctx.listener.upX.setTargetAtTime(o,Howler.ctx.currentTime,.1),s.ctx.listener.upY.setTargetAtTime(i,Howler.ctx.currentTime,.1),s.ctx.listener.upZ.setTargetAtTime(a,Howler.ctx.currentTime,.1)):s.ctx.listener.setOrientation(t,e,n,o,i,a);else return l;return s},Howl.prototype.init=function(t){return function(e){var n=this;return n._orientation=e.orientation||[1,0,0],n._stereo=e.stereo||null,n._pos=e.pos||null,n._pannerAttr={coneInnerAngle:typeof e.coneInnerAngle<"u"?e.coneInnerAngle:360,coneOuterAngle:typeof e.coneOuterAngle<"u"?e.coneOuterAngle:360,coneOuterGain:typeof e.coneOuterGain<"u"?e.coneOuterGain:0,distanceModel:typeof e.distanceModel<"u"?e.distanceModel:"inverse",maxDistance:typeof e.maxDistance<"u"?e.maxDistance:1e4,panningModel:typeof e.panningModel<"u"?e.panningModel:"HRTF",refDistance:typeof e.refDistance<"u"?e.refDistance:1,rolloffFactor:typeof e.rolloffFactor<"u"?e.rolloffFactor:1},n._onstereo=e.onstereo?[{fn:e.onstereo}]:[],n._onpos=e.onpos?[{fn:e.onpos}]:[],n._onorientation=e.onorientation?[{fn:e.onorientation}]:[],t.call(this,e)}}(Howl.prototype.init),Howl.prototype.stereo=function(t,e){var n=this;if(!n._webAudio)return n;if(n._state!=="loaded")return n._queue.push({event:"stereo",action:function(){n.stereo(t,e)}}),n;var o=typeof Howler.ctx.createStereoPanner>"u"?"spatial":"stereo";if(typeof e>"u")if(typeof t=="number")n._stereo=t,n._pos=[t,0,0];else return n._stereo;for(var i=n._getSoundIds(e),a=0;a<i.length;a++){var s=n._soundById(i[a]);if(s)if(typeof t=="number")s._stereo=t,s._pos=[t,0,0],s._node&&(s._pannerAttr.panningModel="equalpower",(!s._panner||!s._panner.pan)&&r(s,o),o==="spatial"?typeof s._panner.positionX<"u"?(s._panner.positionX.setValueAtTime(t,Howler.ctx.currentTime),s._panner.positionY.setValueAtTime(0,Howler.ctx.currentTime),s._panner.positionZ.setValueAtTime(0,Howler.ctx.currentTime)):s._panner.setPosition(t,0,0):s._panner.pan.setValueAtTime(t,Howler.ctx.currentTime)),n._emit("stereo",s._id);else return s._stereo}return n},Howl.prototype.pos=function(t,e,n,o){var i=this;if(!i._webAudio)return i;if(i._state!=="loaded")return i._queue.push({event:"pos",action:function(){i.pos(t,e,n,o)}}),i;if(e=typeof e!="number"?0:e,n=typeof n!="number"?-.5:n,typeof o>"u")if(typeof t=="number")i._pos=[t,e,n];else return i._pos;for(var a=i._getSoundIds(o),s=0;s<a.length;s++){var l=i._soundById(a[s]);if(l)if(typeof t=="number")l._pos=[t,e,n],l._node&&((!l._panner||l._panner.pan)&&r(l,"spatial"),typeof l._panner.positionX<"u"?(l._panner.positionX.setValueAtTime(t,Howler.ctx.currentTime),l._panner.positionY.setValueAtTime(e,Howler.ctx.currentTime),l._panner.positionZ.setValueAtTime(n,Howler.ctx.currentTime)):l._panner.setPosition(t,e,n)),i._emit("pos",l._id);else return l._pos}return i},Howl.prototype.orientation=function(t,e,n,o){var i=this;if(!i._webAudio)return i;if(i._state!=="loaded")return i._queue.push({event:"orientation",action:function(){i.orientation(t,e,n,o)}}),i;if(e=typeof e!="number"?i._orientation[1]:e,n=typeof n!="number"?i._orientation[2]:n,typeof o>"u")if(typeof t=="number")i._orientation=[t,e,n];else return i._orientation;for(var a=i._getSoundIds(o),s=0;s<a.length;s++){var l=i._soundById(a[s]);if(l)if(typeof t=="number")l._orientation=[t,e,n],l._node&&(l._panner||(l._pos||(l._pos=i._pos||[0,0,-.5]),r(l,"spatial")),typeof l._panner.orientationX<"u"?(l._panner.orientationX.setValueAtTime(t,Howler.ctx.currentTime),l._panner.orientationY.setValueAtTime(e,Howler.ctx.currentTime),l._panner.orientationZ.setValueAtTime(n,Howler.ctx.currentTime)):l._panner.setOrientation(t,e,n)),i._emit("orientation",l._id);else return l._orientation}return i},Howl.prototype.pannerAttr=function(){var t=this,e=arguments,n,o,i;if(!t._webAudio)return t;if(e.length===0)return t._pannerAttr;if(e.length===1)if(typeof e[0]=="object")n=e[0],typeof o>"u"&&(n.pannerAttr||(n.pannerAttr={coneInnerAngle:n.coneInnerAngle,coneOuterAngle:n.coneOuterAngle,coneOuterGain:n.coneOuterGain,distanceModel:n.distanceModel,maxDistance:n.maxDistance,refDistance:n.refDistance,rolloffFactor:n.rolloffFactor,panningModel:n.panningModel}),t._pannerAttr={coneInnerAngle:typeof n.pannerAttr.coneInnerAngle<"u"?n.pannerAttr.coneInnerAngle:t._coneInnerAngle,coneOuterAngle:typeof n.pannerAttr.coneOuterAngle<"u"?n.pannerAttr.coneOuterAngle:t._coneOuterAngle,coneOuterGain:typeof n.pannerAttr.coneOuterGain<"u"?n.pannerAttr.coneOuterGain:t._coneOuterGain,distanceModel:typeof n.pannerAttr.distanceModel<"u"?n.pannerAttr.distanceModel:t._distanceModel,maxDistance:typeof n.pannerAttr.maxDistance<"u"?n.pannerAttr.maxDistance:t._maxDistance,refDistance:typeof n.pannerAttr.refDistance<"u"?n.pannerAttr.refDistance:t._refDistance,rolloffFactor:typeof n.pannerAttr.rolloffFactor<"u"?n.pannerAttr.rolloffFactor:t._rolloffFactor,panningModel:typeof n.pannerAttr.panningModel<"u"?n.pannerAttr.panningModel:t._panningModel});else return i=t._soundById(parseInt(e[0],10)),i?i._pannerAttr:t._pannerAttr;else e.length===2&&(n=e[0],o=parseInt(e[1],10));for(var a=t._getSoundIds(o),s=0;s<a.length;s++)if(i=t._soundById(a[s]),i){var l=i._pannerAttr;l={coneInnerAngle:typeof n.coneInnerAngle<"u"?n.coneInnerAngle:l.coneInnerAngle,coneOuterAngle:typeof n.coneOuterAngle<"u"?n.coneOuterAngle:l.coneOuterAngle,coneOuterGain:typeof n.coneOuterGain<"u"?n.coneOuterGain:l.coneOuterGain,distanceModel:typeof n.distanceModel<"u"?n.distanceModel:l.distanceModel,maxDistance:typeof n.maxDistance<"u"?n.maxDistance:l.maxDistance,refDistance:typeof n.refDistance<"u"?n.refDistance:l.refDistance,rolloffFactor:typeof n.rolloffFactor<"u"?n.rolloffFactor:l.rolloffFactor,panningModel:typeof n.panningModel<"u"?n.panningModel:l.panningModel};var u=i._panner;u?(u.coneInnerAngle=l.coneInnerAngle,u.coneOuterAngle=l.coneOuterAngle,u.coneOuterGain=l.coneOuterGain,u.distanceModel=l.distanceModel,u.maxDistance=l.maxDistance,u.refDistance=l.refDistance,u.rolloffFactor=l.rolloffFactor,u.panningModel=l.panningModel):(i._pos||(i._pos=t._pos||[0,0,-.5]),r(i,"spatial"))}return t},Sound.prototype.init=function(t){return function(){var e=this,n=e._parent;e._orientation=n._orientation,e._stereo=n._stereo,e._pos=n._pos,e._pannerAttr=n._pannerAttr,t.call(this),e._stereo?n.stereo(e._stereo):e._pos&&n.pos(e._pos[0],e._pos[1],e._pos[2],e._id)}}(Sound.prototype.init),Sound.prototype.reset=function(t){return function(){var e=this,n=e._parent;return e._orientation=n._orientation,e._stereo=n._stereo,e._pos=n._pos,e._pannerAttr=n._pannerAttr,e._stereo?n.stereo(e._stereo):e._pos?n.pos(e._pos[0],e._pos[1],e._pos[2],e._id):e._panner&&(e._panner.disconnect(0),e._panner=void 0,n._refreshBuffer(e)),t.call(this)}}(Sound.prototype.reset);var r=function(t,e){e=e||"spatial",e==="spatial"?(t._panner=Howler.ctx.createPanner(),t._panner.coneInnerAngle=t._pannerAttr.coneInnerAngle,t._panner.coneOuterAngle=t._pannerAttr.coneOuterAngle,t._panner.coneOuterGain=t._pannerAttr.coneOuterGain,t._panner.distanceModel=t._pannerAttr.distanceModel,t._panner.maxDistance=t._pannerAttr.maxDistance,t._panner.refDistance=t._pannerAttr.refDistance,t._panner.rolloffFactor=t._pannerAttr.rolloffFactor,t._panner.panningModel=t._pannerAttr.panningModel,typeof t._panner.positionX<"u"?(t._panner.positionX.setValueAtTime(t._pos[0],Howler.ctx.currentTime),t._panner.positionY.setValueAtTime(t._pos[1],Howler.ctx.currentTime),t._panner.positionZ.setValueAtTime(t._pos[2],Howler.ctx.currentTime)):t._panner.setPosition(t._pos[0],t._pos[1],t._pos[2]),typeof t._panner.orientationX<"u"?(t._panner.orientationX.setValueAtTime(t._orientation[0],Howler.ctx.currentTime),t._panner.orientationY.setValueAtTime(t._orientation[1],Howler.ctx.currentTime),t._panner.orientationZ.setValueAtTime(t._orientation[2],Howler.ctx.currentTime)):t._panner.setOrientation(t._orientation[0],t._orientation[1],t._orientation[2])):(t._panner=Howler.ctx.createStereoPanner(),t._panner.pan.setValueAtTime(t._stereo,Howler.ctx.currentTime)),t._panner.connect(t._node),t._paused||t._parent.pause(t._id,!0).play(t._id,!0)}})()});import{FileLoader as NP,Loader as PP}from"three";function Un(r,t){return Object.setPrototypeOf(r,t),r}function Bp(r){return Array.isArray(r)?r:[r]}var _v=typeof global=="object"&&global&&global.Object===Object&&global,$a=_v;var Iv=typeof self=="object"&&self&&self.Object===Object&&self,Ov=$a||Iv||Function("return this")(),Ye=Ov;var Lv=Ye.Symbol,vt=Lv;var Fp=Object.prototype,Nv=Fp.hasOwnProperty,Pv=Fp.toString,Oi=vt?vt.toStringTag:void 0;function Mv(r){var t=Nv.call(r,Oi),e=r[Oi];try{r[Oi]=void 0;var n=!0}catch{}var o=Pv.call(r);return n&&(t?r[Oi]=e:delete r[Oi]),o}var Rp=Mv;var Ev=Object.prototype,Dv=Ev.toString;function Bv(r){return Dv.call(r)}var kp=Bv;var Fv="[object Null]",Rv="[object Undefined]",Gp=vt?vt.toStringTag:void 0;function kv(r){return r==null?r===void 0?Rv:Fv:Gp&&Gp in Object(r)?Rp(r):kp(r)}var Et=kv;function Gv(r){return r!=null&&typeof r=="object"}var ht=Gv;var Uv="[object Symbol]";function Vv(r){return typeof r=="symbol"||ht(r)&&Et(r)==Uv}var ho=Vv;function zv(r,t){for(var e=-1,n=r==null?0:r.length,o=Array(n);++e<n;)o[e]=t(r[e],e,r);return o}var Ka=zv;var jv=Array.isArray,Ue=jv;var Hv=1/0,Up=vt?vt.prototype:void 0,Vp=Up?Up.toString:void 0;function zp(r){if(typeof r=="string")return r;if(Ue(r))return Ka(r,zp)+"";if(ho(r))return Vp?Vp.call(r):"";var t=r+"";return t=="0"&&1/r==-Hv?"-0":t}var jp=zp;function Wv(r){var t=typeof r;return r!=null&&(t=="object"||t=="function")}var $e=Wv;function qv(r){return r}var Za=qv;var Xv="[object AsyncFunction]",Yv="[object Function]",$v="[object GeneratorFunction]",Kv="[object Proxy]";function Zv(r){if(!$e(r))return!1;var t=Et(r);return t==Yv||t==$v||t==Xv||t==Kv}var mo=Zv;var Qv=Ye["__core-js_shared__"],Qa=Qv;var Hp=function(){var r=/[^.]+$/.exec(Qa&&Qa.keys&&Qa.keys.IE_PROTO||"");return r?"Symbol(src)_1."+r:""}();function Jv(r){return!!Hp&&Hp in r}var Wp=Jv;var ex=Function.prototype,tx=ex.toString;function rx(r){if(r!=null){try{return tx.call(r)}catch{}try{return r+""}catch{}}return""}var Xr=rx;var nx=/[\\^$.*+?()[\]{}|]/g,ox=/^\[object .+?Constructor\]$/,ix=Function.prototype,ax=Object.prototype,sx=ix.toString,lx=ax.hasOwnProperty,cx=RegExp("^"+sx.call(lx).replace(nx,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function ux(r){if(!$e(r)||Wp(r))return!1;var t=mo(r)?cx:ox;return t.test(Xr(r))}var qp=ux;function px(r,t){return r?.[t]}var Xp=px;function fx(r,t){var e=Xp(r,t);return qp(e)?e:void 0}var Tt=fx;var dx=Tt(Ye,"WeakMap"),Ja=dx;var Yp=Object.create,hx=function(){function r(){}return function(t){if(!$e(t))return{};if(Yp)return Yp(t);r.prototype=t;var e=new r;return r.prototype=void 0,e}}(),$p=hx;function mx(r,t,e){switch(e.length){case 0:return r.call(t);case 1:return r.call(t,e[0]);case 2:return r.call(t,e[0],e[1]);case 3:return r.call(t,e[0],e[1],e[2])}return r.apply(t,e)}var Kp=mx;function gx(r,t){var e=-1,n=r.length;for(t||(t=Array(n));++e<n;)t[e]=r[e];return t}var es=gx;var yx=800,vx=16,xx=Date.now;function bx(r){var t=0,e=0;return function(){var n=xx(),o=vx-(n-e);if(e=n,o>0){if(++t>=yx)return arguments[0]}else t=0;return r.apply(void 0,arguments)}}var Zp=bx;function Sx(r){return function(){return r}}var Qp=Sx;var wx=function(){try{var r=Tt(Object,"defineProperty");return r({},"",{}),r}catch{}}(),go=wx;var Tx=go?function(r,t){return go(r,"toString",{configurable:!0,enumerable:!1,value:Qp(t),writable:!0})}:Za,Jp=Tx;var Cx=Zp(Jp),ts=Cx;function Ax(r,t){for(var e=-1,n=r==null?0:r.length;++e<n&&t(r[e],e,r)!==!1;);return r}var ef=Ax;var _x=9007199254740991,Ix=/^(?:0|[1-9]\d*)$/;function Ox(r,t){var e=typeof r;return t=t??_x,!!t&&(e=="number"||e!="symbol"&&Ix.test(r))&&r>-1&&r%1==0&&r<t}var cn=Ox;function Lx(r,t,e){t=="__proto__"&&go?go(r,t,{configurable:!0,enumerable:!0,value:e,writable:!0}):r[t]=e}var yo=Lx;function Nx(r,t){return r===t||r!==r&&t!==t}var un=Nx;var Px=Object.prototype,Mx=Px.hasOwnProperty;function Ex(r,t,e){var n=r[t];(!(Mx.call(r,t)&&un(n,e))||e===void 0&&!(t in r))&&yo(r,t,e)}var vo=Ex;function Dx(r,t,e,n){var o=!e;e||(e={});for(var i=-1,a=t.length;++i<a;){var s=t[i],l=n?n(e[s],r[s],s,e,r):void 0;l===void 0&&(l=r[s]),o?yo(e,s,l):vo(e,s,l)}return e}var Vt=Dx;var tf=Math.max;function Bx(r,t,e){return t=tf(t===void 0?r.length-1:t,0),function(){for(var n=arguments,o=-1,i=tf(n.length-t,0),a=Array(i);++o<i;)a[o]=n[t+o];o=-1;for(var s=Array(t+1);++o<t;)s[o]=n[o];return s[t]=e(a),Kp(r,this,s)}}var rs=Bx;function Fx(r,t){return ts(rs(r,t,Za),r+"")}var rf=Fx;var Rx=9007199254740991;function kx(r){return typeof r=="number"&&r>-1&&r%1==0&&r<=Rx}var xo=kx;function Gx(r){return r!=null&&xo(r.length)&&!mo(r)}var pn=Gx;function Ux(r,t,e){if(!$e(e))return!1;var n=typeof t;return(n=="number"?pn(e)&&cn(t,e.length):n=="string"&&t in e)?un(e[t],r):!1}var nf=Ux;function Vx(r){return rf(function(t,e){var n=-1,o=e.length,i=o>1?e[o-1]:void 0,a=o>2?e[2]:void 0;for(i=r.length>3&&typeof i=="function"?(o--,i):void 0,a&&nf(e[0],e[1],a)&&(i=o<3?void 0:i,o=1),t=Object(t);++n<o;){var s=e[n];s&&r(t,s,n,i)}return t})}var of=Vx;var zx=Object.prototype;function jx(r){var t=r&&r.constructor,e=typeof t=="function"&&t.prototype||zx;return r===e}var bo=jx;function Hx(r,t){for(var e=-1,n=Array(r);++e<r;)n[e]=t(e);return n}var af=Hx;var Wx="[object Arguments]";function qx(r){return ht(r)&&Et(r)==Wx}var rc=qx;var sf=Object.prototype,Xx=sf.hasOwnProperty,Yx=sf.propertyIsEnumerable,$x=rc(function(){return arguments}())?rc:function(r){return ht(r)&&Xx.call(r,"callee")&&!Yx.call(r,"callee")},Yr=$x;function Kx(){return!1}var lf=Kx;var pf=typeof exports=="object"&&exports&&!exports.nodeType&&exports,cf=pf&&typeof module=="object"&&module&&!module.nodeType&&module,Zx=cf&&cf.exports===pf,uf=Zx?Ye.Buffer:void 0,Qx=uf?uf.isBuffer:void 0,Jx=Qx||lf,So=Jx;var eb="[object Arguments]",tb="[object Array]",rb="[object Boolean]",nb="[object Date]",ob="[object Error]",ib="[object Function]",ab="[object Map]",sb="[object Number]",lb="[object Object]",cb="[object RegExp]",ub="[object Set]",pb="[object String]",fb="[object WeakMap]",db="[object ArrayBuffer]",hb="[object DataView]",mb="[object Float32Array]",gb="[object Float64Array]",yb="[object Int8Array]",vb="[object Int16Array]",xb="[object Int32Array]",bb="[object Uint8Array]",Sb="[object Uint8ClampedArray]",wb="[object Uint16Array]",Tb="[object Uint32Array]",ke={};ke[mb]=ke[gb]=ke[yb]=ke[vb]=ke[xb]=ke[bb]=ke[Sb]=ke[wb]=ke[Tb]=!0;ke[eb]=ke[tb]=ke[db]=ke[rb]=ke[hb]=ke[nb]=ke[ob]=ke[ib]=ke[ab]=ke[sb]=ke[lb]=ke[cb]=ke[ub]=ke[pb]=ke[fb]=!1;function Cb(r){return ht(r)&&xo(r.length)&&!!ke[Et(r)]}var ff=Cb;function Ab(r){return function(t){return r(t)}}var wo=Ab;var df=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Li=df&&typeof module=="object"&&module&&!module.nodeType&&module,_b=Li&&Li.exports===df,nc=_b&&$a.process,Ib=function(){try{var r=Li&&Li.require&&Li.require("util").types;return r||nc&&nc.binding&&nc.binding("util")}catch{}}(),$r=Ib;var hf=$r&&$r.isTypedArray,Ob=hf?wo(hf):ff,ns=Ob;var Lb=Object.prototype,Nb=Lb.hasOwnProperty;function Pb(r,t){var e=Ue(r),n=!e&&Yr(r),o=!e&&!n&&So(r),i=!e&&!n&&!o&&ns(r),a=e||n||o||i,s=a?af(r.length,String):[],l=s.length;for(var u in r)(t||Nb.call(r,u))&&!(a&&(u=="length"||o&&(u=="offset"||u=="parent")||i&&(u=="buffer"||u=="byteLength"||u=="byteOffset")||cn(u,l)))&&s.push(u);return s}var os=Pb;function Mb(r,t){return function(e){return r(t(e))}}var is=Mb;var Eb=is(Object.keys,Object),mf=Eb;var Db=Object.prototype,Bb=Db.hasOwnProperty;function Fb(r){if(!bo(r))return mf(r);var t=[];for(var e in Object(r))Bb.call(r,e)&&e!="constructor"&&t.push(e);return t}var gf=Fb;function Rb(r){return pn(r)?os(r):gf(r)}var To=Rb;function kb(r){var t=[];if(r!=null)for(var e in Object(r))t.push(e);return t}var yf=kb;var Gb=Object.prototype,Ub=Gb.hasOwnProperty;function Vb(r){if(!$e(r))return yf(r);var t=bo(r),e=[];for(var n in r)n=="constructor"&&(t||!Ub.call(r,n))||e.push(n);return e}var vf=Vb;function zb(r){return pn(r)?os(r,!0):vf(r)}var vr=zb;var jb=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Hb=/^\w*$/;function Wb(r,t){if(Ue(r))return!1;var e=typeof r;return e=="number"||e=="symbol"||e=="boolean"||r==null||ho(r)?!0:Hb.test(r)||!jb.test(r)||t!=null&&r in Object(t)}var xf=Wb;var qb=Tt(Object,"create"),Kr=qb;function Xb(){this.__data__=Kr?Kr(null):{},this.size=0}var bf=Xb;function Yb(r){var t=this.has(r)&&delete this.__data__[r];return this.size-=t?1:0,t}var Sf=Yb;var $b="__lodash_hash_undefined__",Kb=Object.prototype,Zb=Kb.hasOwnProperty;function Qb(r){var t=this.__data__;if(Kr){var e=t[r];return e===$b?void 0:e}return Zb.call(t,r)?t[r]:void 0}var wf=Qb;var Jb=Object.prototype,e1=Jb.hasOwnProperty;function t1(r){var t=this.__data__;return Kr?t[r]!==void 0:e1.call(t,r)}var Tf=t1;var r1="__lodash_hash_undefined__";function n1(r,t){var e=this.__data__;return this.size+=this.has(r)?0:1,e[r]=Kr&&t===void 0?r1:t,this}var Cf=n1;function Co(r){var t=-1,e=r==null?0:r.length;for(this.clear();++t<e;){var n=r[t];this.set(n[0],n[1])}}Co.prototype.clear=bf;Co.prototype.delete=Sf;Co.prototype.get=wf;Co.prototype.has=Tf;Co.prototype.set=Cf;var oc=Co;function o1(){this.__data__=[],this.size=0}var Af=o1;function i1(r,t){for(var e=r.length;e--;)if(un(r[e][0],t))return e;return-1}var fn=i1;var a1=Array.prototype,s1=a1.splice;function l1(r){var t=this.__data__,e=fn(t,r);if(e<0)return!1;var n=t.length-1;return e==n?t.pop():s1.call(t,e,1),--this.size,!0}var _f=l1;function c1(r){var t=this.__data__,e=fn(t,r);return e<0?void 0:t[e][1]}var If=c1;function u1(r){return fn(this.__data__,r)>-1}var Of=u1;function p1(r,t){var e=this.__data__,n=fn(e,r);return n<0?(++this.size,e.push([r,t])):e[n][1]=t,this}var Lf=p1;function Ao(r){var t=-1,e=r==null?0:r.length;for(this.clear();++t<e;){var n=r[t];this.set(n[0],n[1])}}Ao.prototype.clear=Af;Ao.prototype.delete=_f;Ao.prototype.get=If;Ao.prototype.has=Of;Ao.prototype.set=Lf;var dn=Ao;var f1=Tt(Ye,"Map"),hn=f1;function d1(){this.size=0,this.__data__={hash:new oc,map:new(hn||dn),string:new oc}}var Nf=d1;function h1(r){var t=typeof r;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?r!=="__proto__":r===null}var Pf=h1;function m1(r,t){var e=r.__data__;return Pf(t)?e[typeof t=="string"?"string":"hash"]:e.map}var mn=m1;function g1(r){var t=mn(this,r).delete(r);return this.size-=t?1:0,t}var Mf=g1;function y1(r){return mn(this,r).get(r)}var Ef=y1;function v1(r){return mn(this,r).has(r)}var Df=v1;function x1(r,t){var e=mn(this,r),n=e.size;return e.set(r,t),this.size+=e.size==n?0:1,this}var Bf=x1;function _o(r){var t=-1,e=r==null?0:r.length;for(this.clear();++t<e;){var n=r[t];this.set(n[0],n[1])}}_o.prototype.clear=Nf;_o.prototype.delete=Mf;_o.prototype.get=Ef;_o.prototype.has=Df;_o.prototype.set=Bf;var Ni=_o;var b1="Expected a function";function ic(r,t){if(typeof r!="function"||t!=null&&typeof t!="function")throw new TypeError(b1);var e=function(){var n=arguments,o=t?t.apply(this,n):n[0],i=e.cache;if(i.has(o))return i.get(o);var a=r.apply(this,n);return e.cache=i.set(o,a)||i,a};return e.cache=new(ic.Cache||Ni),e}ic.Cache=Ni;var Ff=ic;var S1=500;function w1(r){var t=Ff(r,function(n){return e.size===S1&&e.clear(),n}),e=t.cache;return t}var Rf=w1;var T1=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,C1=/\\(\\)?/g,A1=Rf(function(r){var t=[];return r.charCodeAt(0)===46&&t.push(""),r.replace(T1,function(e,n,o,i){t.push(o?i.replace(C1,"$1"):n||e)}),t}),kf=A1;function _1(r){return r==null?"":jp(r)}var Gf=_1;function I1(r,t){return Ue(r)?r:xf(r,t)?[r]:kf(Gf(r))}var zt=I1;var O1=1/0;function L1(r){if(typeof r=="string"||ho(r))return r;var t=r+"";return t=="0"&&1/r==-O1?"-0":t}var gn=L1;function N1(r,t){t=zt(t,r);for(var e=0,n=t.length;r!=null&&e<n;)r=r[gn(t[e++])];return e&&e==n?r:void 0}var as=N1;function P1(r,t){for(var e=-1,n=t.length,o=r.length;++e<n;)r[o+e]=t[e];return r}var Io=P1;var Uf=vt?vt.isConcatSpreadable:void 0;function M1(r){return Ue(r)||Yr(r)||!!(Uf&&r&&r[Uf])}var Vf=M1;function zf(r,t,e,n,o){var i=-1,a=r.length;for(e||(e=Vf),o||(o=[]);++i<a;){var s=r[i];t>0&&e(s)?t>1?zf(s,t-1,e,n,o):Io(o,s):n||(o[o.length]=s)}return o}var jf=zf;function E1(r){var t=r==null?0:r.length;return t?jf(r,1):[]}var Hf=E1;function D1(r){return ts(rs(r,void 0,Hf),r+"")}var ss=D1;var B1=is(Object.getPrototypeOf,Object),Oo=B1;var F1="[object Object]",R1=Function.prototype,k1=Object.prototype,Wf=R1.toString,G1=k1.hasOwnProperty,U1=Wf.call(Object);function V1(r){if(!ht(r)||Et(r)!=F1)return!1;var t=Oo(r);if(t===null)return!0;var e=G1.call(t,"constructor")&&t.constructor;return typeof e=="function"&&e instanceof e&&Wf.call(e)==U1}var ls=V1;function z1(r,t,e){var n=-1,o=r.length;t<0&&(t=-t>o?0:o+t),e=e>o?o:e,e<0&&(e+=o),o=t>e?0:e-t>>>0,t>>>=0;for(var i=Array(o);++n<o;)i[n]=r[n+t];return i}var qf=z1;function j1(){this.__data__=new dn,this.size=0}var Xf=j1;function H1(r){var t=this.__data__,e=t.delete(r);return this.size=t.size,e}var Yf=H1;function W1(r){return this.__data__.get(r)}var $f=W1;function q1(r){return this.__data__.has(r)}var Kf=q1;var X1=200;function Y1(r,t){var e=this.__data__;if(e instanceof dn){var n=e.__data__;if(!hn||n.length<X1-1)return n.push([r,t]),this.size=++e.size,this;e=this.__data__=new Ni(n)}return e.set(r,t),this.size=e.size,this}var Zf=Y1;function Lo(r){var t=this.__data__=new dn(r);this.size=t.size}Lo.prototype.clear=Xf;Lo.prototype.delete=Yf;Lo.prototype.get=$f;Lo.prototype.has=Kf;Lo.prototype.set=Zf;var cs=Lo;function $1(r,t){return r&&Vt(t,To(t),r)}var Qf=$1;function K1(r,t){return r&&Vt(t,vr(t),r)}var Jf=K1;var nd=typeof exports=="object"&&exports&&!exports.nodeType&&exports,ed=nd&&typeof module=="object"&&module&&!module.nodeType&&module,Z1=ed&&ed.exports===nd,td=Z1?Ye.Buffer:void 0,rd=td?td.allocUnsafe:void 0;function Q1(r,t){if(t)return r.slice();var e=r.length,n=rd?rd(e):new r.constructor(e);return r.copy(n),n}var us=Q1;function J1(r,t){for(var e=-1,n=r==null?0:r.length,o=0,i=[];++e<n;){var a=r[e];t(a,e,r)&&(i[o++]=a)}return i}var od=J1;function eS(){return[]}var ps=eS;var tS=Object.prototype,rS=tS.propertyIsEnumerable,id=Object.getOwnPropertySymbols,nS=id?function(r){return r==null?[]:(r=Object(r),od(id(r),function(t){return rS.call(r,t)}))}:ps,No=nS;function oS(r,t){return Vt(r,No(r),t)}var ad=oS;var iS=Object.getOwnPropertySymbols,aS=iS?function(r){for(var t=[];r;)Io(t,No(r)),r=Oo(r);return t}:ps,fs=aS;function sS(r,t){return Vt(r,fs(r),t)}var sd=sS;function lS(r,t,e){var n=t(r);return Ue(r)?n:Io(n,e(r))}var ds=lS;function cS(r){return ds(r,To,No)}var ld=cS;function uS(r){return ds(r,vr,fs)}var hs=uS;var pS=Tt(Ye,"DataView"),ms=pS;var fS=Tt(Ye,"Promise"),gs=fS;var dS=Tt(Ye,"Set"),ys=dS;var cd="[object Map]",hS="[object Object]",ud="[object Promise]",pd="[object Set]",fd="[object WeakMap]",dd="[object DataView]",mS=Xr(ms),gS=Xr(hn),yS=Xr(gs),vS=Xr(ys),xS=Xr(Ja),Vn=Et;(ms&&Vn(new ms(new ArrayBuffer(1)))!=dd||hn&&Vn(new hn)!=cd||gs&&Vn(gs.resolve())!=ud||ys&&Vn(new ys)!=pd||Ja&&Vn(new Ja)!=fd)&&(Vn=function(r){var t=Et(r),e=t==hS?r.constructor:void 0,n=e?Xr(e):"";if(n)switch(n){case mS:return dd;case gS:return cd;case yS:return ud;case vS:return pd;case xS:return fd}return t});var Po=Vn;var bS=Object.prototype,SS=bS.hasOwnProperty;function wS(r){var t=r.length,e=new r.constructor(t);return t&&typeof r[0]=="string"&&SS.call(r,"index")&&(e.index=r.index,e.input=r.input),e}var hd=wS;var TS=Ye.Uint8Array,ac=TS;function CS(r){var t=new r.constructor(r.byteLength);return new ac(t).set(new ac(r)),t}var Mo=CS;function AS(r,t){var e=t?Mo(r.buffer):r.buffer;return new r.constructor(e,r.byteOffset,r.byteLength)}var md=AS;var _S=/\w*$/;function IS(r){var t=new r.constructor(r.source,_S.exec(r));return t.lastIndex=r.lastIndex,t}var gd=IS;var yd=vt?vt.prototype:void 0,vd=yd?yd.valueOf:void 0;function OS(r){return vd?Object(vd.call(r)):{}}var xd=OS;function LS(r,t){var e=t?Mo(r.buffer):r.buffer;return new r.constructor(e,r.byteOffset,r.length)}var vs=LS;var NS="[object Boolean]",PS="[object Date]",MS="[object Map]",ES="[object Number]",DS="[object RegExp]",BS="[object Set]",FS="[object String]",RS="[object Symbol]",kS="[object ArrayBuffer]",GS="[object DataView]",US="[object Float32Array]",VS="[object Float64Array]",zS="[object Int8Array]",jS="[object Int16Array]",HS="[object Int32Array]",WS="[object Uint8Array]",qS="[object Uint8ClampedArray]",XS="[object Uint16Array]",YS="[object Uint32Array]";function $S(r,t,e){var n=r.constructor;switch(t){case kS:return Mo(r);case NS:case PS:return new n(+r);case GS:return md(r,e);case US:case VS:case zS:case jS:case HS:case WS:case qS:case XS:case YS:return vs(r,e);case MS:return new n;case ES:case FS:return new n(r);case DS:return gd(r);case BS:return new n;case RS:return xd(r)}}var bd=$S;function KS(r){return typeof r.constructor=="function"&&!bo(r)?$p(Oo(r)):{}}var xs=KS;var ZS="[object Map]";function QS(r){return ht(r)&&Po(r)==ZS}var Sd=QS;var wd=$r&&$r.isMap,JS=wd?wo(wd):Sd,Td=JS;var ew="[object Set]";function tw(r){return ht(r)&&Po(r)==ew}var Cd=tw;var Ad=$r&&$r.isSet,rw=Ad?wo(Ad):Cd,_d=rw;var nw=1,ow=2,iw=4,Id="[object Arguments]",aw="[object Array]",sw="[object Boolean]",lw="[object Date]",cw="[object Error]",Od="[object Function]",uw="[object GeneratorFunction]",pw="[object Map]",fw="[object Number]",Ld="[object Object]",dw="[object RegExp]",hw="[object Set]",mw="[object String]",gw="[object Symbol]",yw="[object WeakMap]",vw="[object ArrayBuffer]",xw="[object DataView]",bw="[object Float32Array]",Sw="[object Float64Array]",ww="[object Int8Array]",Tw="[object Int16Array]",Cw="[object Int32Array]",Aw="[object Uint8Array]",_w="[object Uint8ClampedArray]",Iw="[object Uint16Array]",Ow="[object Uint32Array]",Re={};Re[Id]=Re[aw]=Re[vw]=Re[xw]=Re[sw]=Re[lw]=Re[bw]=Re[Sw]=Re[ww]=Re[Tw]=Re[Cw]=Re[pw]=Re[fw]=Re[Ld]=Re[dw]=Re[hw]=Re[mw]=Re[gw]=Re[Aw]=Re[_w]=Re[Iw]=Re[Ow]=!0;Re[cw]=Re[Od]=Re[yw]=!1;function bs(r,t,e,n,o,i){var a,s=t&nw,l=t&ow,u=t&iw;if(e&&(a=o?e(r,n,o,i):e(r)),a!==void 0)return a;if(!$e(r))return r;var c=Ue(r);if(c){if(a=hd(r),!s)return es(r,a)}else{var p=Po(r),f=p==Od||p==uw;if(So(r))return us(r,s);if(p==Ld||p==Id||f&&!o){if(a=l||f?{}:xs(r),!s)return l?sd(r,Jf(a,r)):ad(r,Qf(a,r))}else{if(!Re[p])return o?r:{};a=bd(r,p,s)}}i||(i=new cs);var d=i.get(r);if(d)return d;i.set(r,a),_d(r)?r.forEach(function(g){a.add(bs(g,t,e,g,r,i))}):Td(r)&&r.forEach(function(g,v){a.set(v,bs(g,t,e,v,r,i))});var h=u?l?hs:ld:l?vr:To,m=c?void 0:h(r);return ef(m||r,function(g,v){m&&(v=g,g=r[v]),vo(a,v,bs(g,t,e,v,r,i))}),a}var Ss=bs;var Lw=1,Nw=4;function Pw(r){return Ss(r,Lw|Nw)}var Pi=Pw;function Mw(r,t){return r!=null&&t in Object(r)}var Nd=Mw;function Ew(r,t,e){t=zt(t,r);for(var n=-1,o=t.length,i=!1;++n<o;){var a=gn(t[n]);if(!(i=r!=null&&e(r,a)))break;r=r[a]}return i||++n!=o?i:(o=r==null?0:r.length,!!o&&xo(o)&&cn(a,o)&&(Ue(r)||Yr(r)))}var Pd=Ew;function Dw(r,t){return r!=null&&Pd(r,t,Nd)}var Md=Dw;function Bw(r){return function(t,e,n){for(var o=-1,i=Object(t),a=n(t),s=a.length;s--;){var l=a[r?s:++o];if(e(i[l],l,i)===!1)break}return t}}var Ed=Bw;var Fw=Ed(),Dd=Fw;function Rw(r,t,e){(e!==void 0&&!un(r[t],e)||e===void 0&&!(t in r))&&yo(r,t,e)}var Mi=Rw;function kw(r){return ht(r)&&pn(r)}var Bd=kw;function Gw(r,t){if(!(t==="constructor"&&typeof r[t]=="function")&&t!="__proto__")return r[t]}var Ei=Gw;function Uw(r){return Vt(r,vr(r))}var Fd=Uw;function Vw(r,t,e,n,o,i,a){var s=Ei(r,e),l=Ei(t,e),u=a.get(l);if(u){Mi(r,e,u);return}var c=i?i(s,l,e+"",r,t,a):void 0,p=c===void 0;if(p){var f=Ue(l),d=!f&&So(l),h=!f&&!d&&ns(l);c=l,f||d||h?Ue(s)?c=s:Bd(s)?c=es(s):d?(p=!1,c=us(l,!0)):h?(p=!1,c=vs(l,!0)):c=[]:ls(l)||Yr(l)?(c=s,Yr(s)?c=Fd(s):(!$e(s)||mo(s))&&(c=xs(l))):p=!1}p&&(a.set(l,c),o(c,l,n,i,a),a.delete(l)),Mi(r,e,c)}var Rd=Vw;function kd(r,t,e,n,o){r!==t&&Dd(t,function(i,a){if(o||(o=new cs),$e(i))Rd(r,t,a,e,kd,n,o);else{var s=n?n(Ei(r,a),i,a+"",r,t,o):void 0;s===void 0&&(s=i),Mi(r,a,s)}},vr)}var Gd=kd;function zw(r){var t=r==null?0:r.length;return t?r[t-1]:void 0}var Ud=zw;function jw(r,t){return t.length<2?r:as(r,qf(t,0,-1))}var Vd=jw;var Hw=of(function(r,t,e){Gd(r,t,e)}),zn=Hw;function Ww(r,t){return t=zt(t,r),r=Vd(r,t),r==null||delete r[gn(Ud(t))]}var zd=Ww;function qw(r){return ls(r)?void 0:r}var jd=qw;var Xw=1,Yw=2,$w=4,Kw=ss(function(r,t){var e={};if(r==null)return e;var n=!1;t=Ka(t,function(i){return i=zt(i,r),n||(n=i.length>1),i}),Vt(r,hs(r),e),n&&(e=Ss(e,Xw|Yw|$w,jd));for(var o=t.length;o--;)zd(e,t[o]);return e}),Eo=Kw;function Zw(r,t,e,n){if(!$e(r))return r;t=zt(t,r);for(var o=-1,i=t.length,a=i-1,s=r;s!=null&&++o<i;){var l=gn(t[o]),u=e;if(l==="__proto__"||l==="constructor"||l==="prototype")return r;if(o!=a){var c=s[l];u=n?n(c,l,s):void 0,u===void 0&&(u=$e(c)?c:cn(t[o+1])?[]:{})}vo(s,l,u),s=s[l]}return r}var Hd=Zw;function Qw(r,t,e){for(var n=-1,o=t.length,i={};++n<o;){var a=t[n],s=as(r,a);e(s,a)&&Hd(i,zt(a,r),s)}return i}var Wd=Qw;function Jw(r,t){return Wd(r,t,function(e,n){return Md(r,n)})}var qd=Jw;var eT=ss(function(r,t){return r==null?{}:qd(r,t)}),sc=eT;var Do;(e=>{e.all=["PerspectiveCamera","OrthographicCamera"];function t(n){return e.all.includes(n)}e.is=t})(Do||(Do={}));var jn;(o=>{o.DefaultUp=[0,1,0],o.DefaultTargetOffset=1e3,o.defaultData={far:1e5,type:"OrthographicCamera",perspective:{near:5,fov:45,zoom:1},orthographic:{near:-1e5,zoom:1},up:o.DefaultUp,isUpVectorFlipped:!1,targetOffset:o.DefaultTargetOffset};function n(i){return i.type==="PerspectiveCamera"?i.perspective.zoom:i.orthographic.zoom}o.getZoom=n})(jn||(jn={}));var Xd;(e=>{function r(n,o){return n[0]===o[0]&&n[1]===o[1]}e.isEqual=r;function t(n,o,i){return[n[0]+(o[0]-n[0])*i,n[1]+(o[1]-n[1])*i]}e.lerp=t})(Xd||(Xd={}));var Bo;(o=>{function r(i,a){return i[0]===a[0]&&i[1]===a[1]&&i[2]===a[2]}o.isEqual=r;function t(i,a){return[i[0]+a[0],i[1]+a[1],i[2]+a[2]]}o.add=t;function e(i,a){return[i[0]-a[0],i[1]-a[1],i[2]-a[2]]}o.sub=e;function n(i,a,s){return[i[0]+(a[0]-i[0])*s,i[1]+(a[1]-i[1])*s,i[2]+(a[2]-i[2])*s]}o.lerp=n})(Bo||(Bo={}));var Yd;(e=>{function r(n,o){return n[0]===o[0]&&n[1]===o[1]&&n[2]===o[2]&&n[3]===o[3]}e.isEqual=r;function t(n,o,i){return[n[0]+(o[0]-n[0])*i,n[1]+(o[1]-n[1])*i,n[2]+(o[2]-n[2])*i,n[3]+(o[3]-n[3])*i]}e.lerp=t})(Yd||(Yd={}));var yn;(o=>{o.identity=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1];function t(i,a){for(let s=0;s<16;s++)if(i[s]!==a[s])return!1;return!0}o.isEqual=t;function e(i){return i??o.identity}o.simplify=e;function n(i,a){let s=a.slice(0);for(var l=0,u=a.length;l<u;l+=3){let c=i[3]*a[l]+i[7]*a[l+1]+i[11]*a[l+2]+i[15];s[l]=(i[0]*a[l]+i[4]*a[l+1]+i[8]*a[l+2]+i[12])/c,s[l+1]=(i[1]*a[l]+i[5]*a[l+1]+i[9]*a[l+2]+i[13])/c,s[l+2]=(i[2]*a[l]+i[6]*a[l+1]+i[10]*a[l+2]+i[14])/c}return s}o.applyMatrix4=n})(yn||(yn={}));var Ct;(l=>{l.white={r:1,g:1,b:1},l.red={r:1,g:0,b:0},l.black={r:0,g:0,b:0};function n(u){return{r:Math.round(u.r*255),g:Math.round(u.g*255),b:Math.round(u.b*255),a:1}}l.toRgb255a1=n;function o(u){return{r:u.r,g:u.g,b:u.b}}l.clone=o;function i(u){return u=Math.floor(u),{r:(u>>16&255)/255,g:(u>>8&255)/255,b:(u&255)/255}}l.fromHex=i;function a(u,c){return u.r===c.r&&u.g===c.g&&u.b===c.b}l.equals=a;function s(u,c,p){return{r:u.r+(c.r-u.r)*p,g:u.g+(c.g-u.g)*p,b:u.b+(c.b-u.b)*p}}l.lerp=s})(Ct||(Ct={}));var Qt;(s=>{s.white={...Ct.white,a:1},s.transparent={...Ct.white,a:0};function e(l){return{r:l[0],g:l[1],b:l[2],a:l[3]}}s.from0to1=e;function n(l,u){return{...Ct.fromHex(l),a:u}}s.fromHexAndA=n;function o(l){return{r:Math.round(l.r*255),g:Math.round(l.g*255),b:Math.round(l.b*255),a:l.a}}s.toRgb255a1=o;function i(l,u){return Ct.equals(l,u)&&l.a===u.a}s.equals=i;function a(l,u,c){return{r:l.r+(u.r-l.r)*c,g:l.g+(u.g-l.g)*c,b:l.b+(u.b-l.b)*c,a:l.a+(u.a-l.a)*c}}s.lerp=a})(Qt||(Qt={}));var ws;(t=>t.identity={position:[0,0,0],rotation:[0,0,0],scale:[1,1,1]})(ws||(ws={}));var $d;(t=>t.defaultData={mass:1,stiffness:80,damping:10,velocity:0})($d||($d={}));var Kd;(t=>t.defaultData={control1:[.5,.05],control2:[.1,.3]})(Kd||(Kd={}));var Ts;(t=>{function r(e,n=.1){return{type:"radial",hideBase:!1,count:3,radial:{radius:Math.max(e[0],e[1])*2,start:0,end:360,alignment:!1,axis:"y",scale:[1,1,1],rotation:[0,0,0],position:[0,0,0]},linear:{scale:[1,1,1],rotation:[0,0,0],position:[e[0]+e[0]*n,0,0]},grid:{count:[2,2,2],size:e.map(o=>o*(1+n)),useCenter:!0}}}t.defaultData=r})(Ts||(Ts={}));var Ve=class{modifyById(t,e){let n=this;if(n[t]===void 0)throw new Error("not expected");{let i={...n,[t]:e};return Object.setPrototypeOf(i,Ve.prototype),i}}add(t,e){return this.runOp({type:1,id:t,data:e})?.data??this}runOp(t){let e=this;if(t.type===1){let n=e[t.id],o;n===void 0?o={type:2,id:t.id}:o={type:1,id:t.id,data:n};let{id:i,data:a}=t,s={...e,[i]:a};return Object.setPrototypeOf(s,Ve.prototype),{data:s,actual:t,reverse:o}}else if(t.type===2){let{id:n}=t,o=e[n];if(o===void 0)return null;{let i={...e};return Object.setPrototypeOf(i,Ve.prototype),delete i[n],{data:i,actual:t,reverse:{type:1,id:n,data:o}}}}throw new Error("illegal arg")}};function Di(r){if(r.deepFreeze!==void 0){r.deepFreeze(r);return}let t=Object.getOwnPropertyNames(r);for(let e of t){let n=r[e];n&&typeof n=="object"&&Di(n)}return Object.freeze(r)}function Zd(r,t){let e=0;for(;e<r.length&&e<t.length;){if(r[e]<t[e])return-1;if(r[e]>t[e])return 1;e+=1}return e!==t.length?-1:e!==r.length?1:0}var Cs=class extends Error{};function xr(r,t,e){if(r===void 0?t===void 0?(r=0,t=10):r=t-10:t===void 0&&(t=r+10),r>t){let i=r;r=t,t=i}let n=[],o=1/(e+1);for(let i=0;i<e;i++){let a=r+(t-r)*(i+.75+Math.random()*.5)*o;n.push(a)}return n}function Hn(r){return r instanceof Uint8Array||r instanceof Uint16Array||r instanceof Uint32Array||r instanceof Int8Array||r instanceof Int16Array||r instanceof Int32Array||r instanceof Float32Array||r instanceof Float64Array}function Qd(){return typeof process<"u"}function Jd(r,t){for(let e of r)t(e.id,e.data),Jd(e.children,t)}function eh(r,t){t(r.id,r.data);for(let e of r.children)eh(e,t)}var At=class extends Array{constructor(...e){super(...e);Object.setPrototypeOf(this,At.prototype)}deepFreeze(){let e=0;for(;e<this.length;)Di(this[e]),e++}fillCaches0(e,n){this.objCaches.set(e.id,e),this.parentCaches.set(e.id,n);for(let o of e.children)this.fillCaches0(o,e.id)}fillCaches(){if(this.objCaches===void 0){this.objCaches=new Map,this.parentCaches=new Map;for(let e of this)this.fillCaches0(e,null)}}randomId(){this.fillCaches();let e=Array.from(this.objCaches.keys());if(e.length!==0)return e[Math.max(0,Math.floor(Math.random()*e.length)-1)]}isDescendantOf(e,n){for(;e;){let o=this.parent(e);if(o===n)return!0;e=o}return!1}data(e){return this.get(e)?.data}has(e){return this.childrenOf(e)!==void 0}get(e){return this.fillCaches(),this.objCaches.get(e)}childrenOf(e){return e===null?this:this.get(e)?.children}traverseFrom(e,n){if(e===null)this.traverse(n);else{let o=this.get(e);o&&eh(o,n)}}traverse(e){Jd(this,e)}totalSize(){return this.fillCaches(),this.objCaches.size}parent(e){return this.fillCaches(),this.parentCaches.get(e)}childrenArray(e){return e===null?this:this.get(e).children}modifyById(e,n){if(this.get(e)===void 0)throw new Error("not expected");{let i=this.parent(e),a=this.childrenArray(i),s=a.findIndex(c=>c.id===e);if(s<0)throw new Error("not expected");let l=a[s];return a=[...a],a[s]={...l,data:n},this.modifyArrayBy(i,a)}}modifyArrayBy(e,n){let o=e,i=n;for(;o!==null;){let s=i,l=o;if(o=this.parent(o),o===void 0)throw new Error;i=this.childrenArray(o);let u=i.findIndex(c=>c.id===l);if(u<0)throw new Error;i=[...i],i[u]={...i[u],children:s}}Object.setPrototypeOf(i,At.prototype);let a=i;return a.fillCaches(),a}runOp(e){switch(e.type){case 7:return this.addOp(e);case 8:return this.deleteOp(e);case 9:return this.moveOp(e)}}checkDuplicatedIdRec({id:e,children:n}){if(this.get(e)!==void 0)return!0;for(let o of n)if(this.checkDuplicatedIdRec(o))return!0;return!1}addOp(e){let{parent:n,fi:o,id:i,data:a,children:s}=e;if(n!==null&&this.get(n)===void 0)return null;if(this.checkDuplicatedIdRec(e))return null;{let l=n,u=this.childrenArray(l),c={fi:o,id:i,data:a,children:s};return u=[...u,c],u.sort((f,d)=>f.fi-d.fi),e.localIndex=u.indexOf(c),{data:this.modifyArrayBy(l,u),actual:e,reverse:{type:8,id:i}}}}deleteOp(e){let{id:n}=e;if(this.get(n)===null)return null;{let o=this.parent(n);if(o===void 0)return null;let i=this.childrenArray(o),a=i.findIndex(u=>u.id===n);e.localIndex=a,i=[...i];let s=i.splice(a,1)[0];return{data:this.modifyArrayBy(o,i),actual:e,reverse:{type:7,...s,parent:o}}}}moveOp(e){let{parent:n,fi:o,id:i}=e;if(n!==null&&this.get(n)===void 0)return this.deleteOp({type:8,id:i});if(n!==null){let d=n;for(;d!==null;){if(d===void 0)throw new Error;if(d===i)throw new Cs("cyclic tree");d=this.parent(d)}}let a=this.parent(i);if(a===void 0)return null;let s=a,l=this.childrenArray(a),u=l.findIndex(d=>d.id===i);l=[...l];let c=l.splice(u,1)[0],p=this.modifyArrayBy(a,l);a=n,l=p.childrenArray(a);let f=c.fi;return c={...c,fi:o},l=[...l,c],l.sort((d,h)=>d.fi-h.fi),e.localIndex=l.indexOf(c),p=p.modifyArrayBy(a,l),{data:p,actual:e,reverse:{type:9,parent:s,fi:f,id:i}}}previous(e,n){if(n===null){let i=this.childrenArray(e);return i.length===0?null:i[i.length-1].id}let o=null;for(let i of this.childrenArray(e)){if(i.id===n)return o;o=i.id}return null}traverseSortNext(e){let n=this.parent(e);if(n!==void 0){let o=this.childrenArray(n),i=o.findIndex(a=>a.id===e)+1;if(i<o.length)return o[i].id;if(n)return this.traverseSortNext(n)}}sortNext(e){let n=this.childrenArray(e);return n.length>0?n[0].id:this.traverseSortNext(e)}traverseSortPrevious(e){let n=this.childrenArray(e);return n.length>0?this.traverseSortPrevious(n[n.length-1].id):e}sortPrevious(e){let n=this.parent(e);if(n!==void 0){let o=this.childrenArray(n),i=o.findIndex(a=>a.id===e)-1;return i>=0?this.traverseSortPrevious(o[i].id):n}}getAllSorted(e){let n=[];for(let o of e){let i=this.getWithSortKey(o.id);i!==void 0&&n.push({...o,...i})}n.sort((o,i)=>Zd(o.sortKey,i.sortKey));for(let o of n)delete o.sortKey;return n}getWithSortKey(e){var n=e;let o=[],i=this.get(n),a=i;if(i!==void 0){for(;n;)o.splice(0,0,i.fi),n=this.parent(n),n!==null&&(i=this.get(n));return{...a,sortKey:o}}}insertBeforeHelper(e,n,o){return this.insertAfterHelper(e,this.previous(e,n),o)}insertAfterHelper(e,n,o){let i=this.childrenArray(e);if(n===null){if(i.length===0)return xr(0,o,o);{let a=i[0].fi;return xr(a-o,a,o)}}else{let a=this.get(n);if(a===void 0||this.parent(n)!==e)throw new Error("illegal args");let s=i.find(l=>l.fi>a.fi);if(s===void 0){let l=i[i.length-1].fi;return xr(l,l+o,o)}else return xr(a.fi,s.fi,o)}}};var As;(t=>{function r(e,n){if(Array.isArray(e)){let o=n.props,i={},a=[...e],s=!1;if(o)for(let l of Object.keys(o)){let u=parseInt(l);if(isNaN(u))throw new Error("wrong index");i[l]=a[u],a[u]=o[l],s=!0}return s?{data:a,actual:n,reverse:{type:0,props:i}}:null}else{let o=n.props,i={},a={...e},s=!1;if(o)for(let l of Object.keys(o)){i[l]=a[l];let u=o[l];u===void 0?delete a[l]:a[l]=u,s=!0}return s?{data:a,actual:n,reverse:{type:0,props:i}}:null}}t.runOp=r})(As||(As={}));var Ge=class extends Array{constructor(...e){super(...e);Object.setPrototypeOf(this,Ge.prototype)}deepFreeze(){let e=0;for(;e<this.length;)Di(this[e]),e++}fillCaches0(e){this.objCaches.set(e.id,e)}fillCaches(){if(this.objCaches===void 0){this.objCaches=new Map,Object.getOwnPropertyDescriptor(this,"objCaches").enumerable=!1;for(let e of this)this.fillCaches0(e)}}randomId(){this.fillCaches();let e=Array.from(this.objCaches.keys());if(e.length!==0)return e[Math.max(0,Math.floor(Math.random()*e.length)-1)]}data(e){return this.get(e)?.data}get(e){return this.fillCaches(),this.objCaches.get(e)}modifyById(e,n){if(this.get(e)===void 0)throw new Error("not expected");{let i=this,a=i.findIndex(u=>u.id===e);if(a<0)throw new Error("not expected");let s=i[a];return i=[...i],i[a]={...s,data:n},this.modifyArrayBy(i)}}modifyArrayBy(e){Object.setPrototypeOf(e,Ge.prototype);let n=e;return Qd()||n.fillCaches(),n}runOp(e){switch(e.type){case 4:return this.addOp(e);case 5:return this.deleteOp(e);case 6:return this.moveOp(e)}}addOp(e){let{fi:n,id:o,data:i}=e,a=this,s={fi:n,id:o,data:i};return a=[...a,s],a.sort((u,c)=>u.fi-c.fi),e.localIndex=a.indexOf(s),{data:this.modifyArrayBy(a),actual:e,reverse:{type:5,id:o}}}deleteOp(e){let{id:n}=e,o=this,i=o.findIndex(l=>l.id===n);if(i===-1)return null;e.localIndex=i,o=[...o];let a=o.splice(i,1)[0];return{data:this.modifyArrayBy(o),actual:e,reverse:{type:4,...a}}}moveOp(e){let{fi:n,id:o}=e,i=this;i=[...i];let a=i.findIndex(c=>c.id===o);if(a===-1)return null;let s=i[a].fi,l={...i[a],fi:n};return i[a]=l,i.sort((c,p)=>c.fi-p.fi),e.localIndex=i.indexOf(l),{data:this.modifyArrayBy(i),actual:e,reverse:{type:6,fi:s,id:o}}}previous(e){if(e===null)return this.length===0?null:this[this.length-1].id;let n=null;for(let o of this){if(o.id===e)return n;n=o.id}return null}insertBeforeHelper(e,n){return this.insertAfterHelper(this.previous(e),n)}insertAfterHelper(e,n){let o=this;if(e===null){if(o.length===0)return xr(0,n,n);{let i=o[0].fi;return xr(i-n,i,n)}}else{let i=this.get(e);if(i===void 0)throw new Error("illegal args");let a=o.find(s=>s.fi>i.fi);if(a===void 0){let s=o[o.length-1].fi;return xr(s,s+n,n)}else return xr(i.fi,a.fi,n)}}};var Zr=class{unusedFun(t){}runOp(t){let e=[],n=this,o=0,i={};for(;o<t.path.length;)e.push(n),n=n===void 0?void 0:n[t.path[o]],o+=1;n={...n};for(let[l,u]of Object.entries(t.props)){let c=n[l];i[l]=c,u===void 0?delete n[l]:n[l]=u}for(;o>0;)Object.keys(n).length===0?(n={...e[o-1]},delete n[t.path[o-1]]):n={...e[o-1],[t.path[o-1]]:n},o-=1;let a=Object.setPrototypeOf(n,Zr.prototype),s={...t,props:i};return{data:a,actual:t,reverse:s}}},th;(e=>{function r(n,o){return Bi(n,o)??n}e.apply=r;function t(n,o){if(o.type===0){let i=Wn.zoom(n,o.path);if(i===void 0)return o;if(typeof i=="string"||typeof i=="number"||Hn(i))return;if(i&&typeof i=="object"){let a={...o.props};for(let s of Object.keys(i))delete a[s];return{...o,props:a}}else return}else if(o.type===1||o.type===4||o.type===7){let i=Wn.zoom(n,[...o.path,o.id]);if(i===void 0)return o;if(typeof i=="string"||typeof i=="number"||Hn(i))return;if(i&&typeof i=="object"){let a={...o.data,...i};return{...o,data:a}}else return}else return o}e.filterOp=t})(th||(th={}));function rh(r,t){if(t===void 0)return;let e=!1,n=r.map(o=>{let i=o.id,a=Bi(o.data,t[i]);e=e||a!==void 0,a===void 0&&(a=o.data);let s=rh(o.children,t);return s!==void 0?e=!0:s=o.children,{...o,id:i,data:a,children:s}});if(e)return n}function tT(r,t){if(t===void 0)return;let e=!1,n=r.map(o=>{let i=o.id,a=Bi(o.data,t[i]);return e=e||a!==void 0,a===void 0&&(a=o.data),{...o,id:i,data:a}});if(e)return Object.setPrototypeOf(n,Object.getPrototypeOf(r)),n}function Bi(r,t){if(t!==void 0)if(r instanceof At){let e=rh(r,t);return e!==void 0&&Object.setPrototypeOf(e,Object.getPrototypeOf(r)),e}else{if(r instanceof Ge)return tT(r,t);if(Array.isArray(r)){let e=!1,n=r.map((o,i)=>{let a=Bi(o,t[i]);return e=e||a!==void 0,a===void 0&&(a=o),a});return e?(Object.setPrototypeOf(n,Object.getPrototypeOf(r)),n):void 0}else if(r&&typeof r=="object"){let e={},n=!1;for(let[o,i]of Object.entries(r)){let a=Bi(i,t[o]);n=n||a!==void 0,a===void 0&&(a=i),e[o]=a}return n?(Object.setPrototypeOf(e,Object.getPrototypeOf(r)),e):void 0}else return t??r}}var nh=Symbol(),Fi=Symbol(),qn=class{reportOp(t,e,n=[]){let o=this;if(e===null)return;o._current=e.data;let i=n;for(;!(o instanceof _s);){let a=o._path,s=o._current;if(a!==""&&i.splice(0,0,a),o=o._parent,o===null)return;o.update(a,s)}o.push(i,t,e.actual,e.reverse)}deleteChildren(t){if(this._children){let e=this._children[t];if(e){let n=e[Fi];n&&n(),delete this._children[t]}}}},cc=class extends qn{constructor(t,e,n){super(),this._parent=t,this._path=e,this._current=n}update(t,e){if(Array.isArray(this._current)){if(typeof t=="string"&&(t=parseInt(t),isNaN(t)))throw new Error("Invalid path");this._current=[...this._current],this._current[t]=e}else this._current={...this._current,[t]:e}}runOp(t){this.reportOp(t,As.runOp(this._current,t),t.path)}},uc=class extends qn{constructor(t,e,n){super(),this._parent=t,this._path=e,this._current=n}update(t,e){this._current={...this._current,[t]:e},Object.setPrototypeOf(this._current,Ve.prototype)}runOp(t){this.reportOp(t,this._current.runOp(t))}},oh={get(r,t){if(t===Fi)return()=>{r._parent=null};if(t===nh)return r._current;let{_current:e,_children:n}=r;if(t==="push"&&Array.isArray(e))throw new Error("not supported to expand array");let o=n===void 0?void 0:n[t];if(o!==void 0)return o;let i=e[t],a=Is(r,t,i);return a!==i?(n===void 0&&(n={},r._children=n),n[t]=a,a):i},has(r,t){return t in r._current},ownKeys(r){return Reflect.ownKeys(r._current)},defineProperty(){throw Error("not supported")},getPrototypeOf(r){return Object.getPrototypeOf(r._current)},setPrototypeOf(){throw Error("not supported")},getOwnPropertyDescriptor(r,t){let e=r._current,n=Reflect.getOwnPropertyDescriptor(e,t);return n&&{writable:!0,configurable:!0,enumerable:n.enumerable,value:e[t]}}},rT={...oh,set(r,t,e){let n={type:0,props:{[t]:_t(e)??e}};return r.deleteChildren(t),r.runOp(n),!0},deleteProperty(r,t){let e={type:0,props:{[t]:void 0}};return r.deleteChildren(t),r.runOp(e),!0}},nT={...oh,set(r,t,e){return e===void 0?this.deleteProperty(r,t):(r.deleteChildren(t),r.runOp({type:1,id:t,data:e})),!0},deleteProperty(r,t){return r.runOp({type:2,id:t}),!0}},Fo=class extends qn{constructor(t,e,n){super(),this._children={},this._parent=t,this._path=e,this._current=n,this[Fi]=()=>{this._parent=null}}unproxy(){return this._current}update(t,e){this._current=this._current.modifyById(t,e)}runOp(t){this.reportOp(t,this._current.runOp(t))}randomId(){return this._current.randomId()}isDescendantOf(t,e){return this._current.isDescendantOf(t,e)}childrenOf(t){return this._current.childrenOf(t)}traverse(t){return this._current.traverse(t)}get(t){return this._current.get(t)}parent(t){return this._current.parent(t)}traverse(t){this._current.traverse((e,n)=>{t(e,this.data(e))})}data(t){let{_current:e,_children:n}=this,o=n===void 0?void 0:n[t];if(o!==void 0)return o;let i=e.get(t)?.data,a=Is(this,t,i);return a!==i?(n===void 0&&(n={},this._children=n),n[t]=a,a):i}add(t,e,n,o,i){this.runOp({type:7,parent:t,fi:e,id:n,data:o,children:i})}move(t,e,n){this.runOp({type:9,parent:t,fi:e,id:n})}insertAfter(t,e,n){let o=this._current.insertAfterHelper(t,e,n.length);for(let i=0;i<n.length;i++){let a=n[i];this.add(t,o[i],a.id,a.data,a.children)}}insertBefore(t,e,n){let o=this._current.insertBeforeHelper(t,e,n.length);for(let i=0;i<n.length;i++){let a=n[i];this.add(t,o[i],a.id,a.data,a.children)}}moveAfter(t,e,n){let o=this._current.insertAfterHelper(t,e,n.length);for(let i=0;i<n.length;i++){let a=n[i];this.move(t,o[i],a)}}moveBefore(t,e,n){let o=this._current.insertBeforeHelper(t,e,n.length);for(let i=0;i<n.length;i++){let a=n[i];this.move(t,o[i],a)}}delete(t){this.deleteChildren(t),this.runOp({type:8,id:t})}sortNext(t){return this._current.sortNext(t)}sortPrevious(t){return this._current.sortPrevious(t)}getAllSorted(t){return this._current.getAllSorted(t)}},pc=class extends qn{constructor(t,e,n){super(),this._parent=t,this._path=e,this._current=n,this[Fi]=()=>{this._parent=null}}feedOp(t){let{path:e,...n}=t;this.reportOp(n,this._current.runOp(t),e)}},Ro=class extends qn{constructor(t,e,n){super(),this._children={},this._parent=t,this._path=e,this._current=n,this[Fi]=()=>{this._parent=null}}unproxy(){return this._current}get length(){return this._current.length}forEach(t){let e=this.length;for(let n=0;n<e;n++){let o=this._current[n].id;t(this.data(this._current[n].id),o)}}update(t,e){this._current=this._current.modifyById(t,e)}randomId(){return this._current.randomId()}get(t){return{...this._current.get(t),data:this.data(t)}}data(t){let{_current:e,_children:n}=this,o=n===void 0?void 0:n[t];if(o!==void 0)return o;let i=e.get(t)?.data,a=Is(this,t,i);return a!==i?(n===void 0&&(n={},this._children=n),n[t]=a,a):i}runOp(t){this.reportOp(t,this._current.runOp(t))}add(t,e,n){this.runOp({type:4,fi:t,id:e,data:n})}move(t,e){this.runOp({type:6,fi:t,id:e})}insertAfter(t,e){let n=this._current.insertAfterHelper(t,e.length);for(let o=0;o<e.length;o++){let i=e[o];this.add(n[o],i.id,i.data)}}insertBefore(t,e){let n=this._current.insertBeforeHelper(t,e.length);for(let o=0;o<e.length;o++){let i=e[o];this.add(n[o],i.id,i.data)}}moveAfter(t,e){let n=this._current.insertAfterHelper(t,e.length);for(let o=0;o<e.length;o++){let i=e[o];this.move(n[o],i)}}moveBefore(t,e){let n=this._current.insertBeforeHelper(t,e.length);for(let o=0;o<e.length;o++){let i=e[o];this.move(n[o],i)}}delete(t){this.deleteChildren(t),this.runOp({type:5,id:t})}};function lc(r,t,e){if(r.length>0){let n=r[r.length-1];if(n.type===0&&t.type===0&&Wn.equal(n.path,e)){Object.assign(n.props,t.props);return}}r.push({...t,path:e})}var _s=class{constructor(t){this.ts=[],this.actual=[],this.reverse=[],this._current=t}update(t,e){if(t!=="")throw new Error("");this._current=e}push(t,e,n,o){lc(this.ts,e,t),lc(this.actual,n,t),lc(this.reverse,o,t)}result(){return{data:this._current,ts:this.ts,actual:this.actual,reverse:this.reverse.reverse()}}};function Is(r,t,e){return e instanceof At?new Fo(r,t,e):e instanceof Ge?new Ro(r,t,e):e instanceof Zr?new pc(r,t,e):e instanceof Ve?new Proxy(new uc(r,t,e),nT):e!==null&&typeof e=="object"?Hn(e)?e:new Proxy(new cc(r,t,e),rT):e}function fc(r){let t=new _s(r);return[Is(t,"",r),t]}function dc(r,t){let[e,n]=fc(r);return t(e),n.result()}function _t(r){return r instanceof Fo||r instanceof Ro?r._current:r!==null&&typeof r=="object"?r[nh]:r}var Wn;(o=>{function r(i,a){if(a.length===i.length)for(var s=0;s<i.length;){if(i[s]!==a[s])return!1;s+=1}else return!1;return!0}o.equal=r;function t(i,a,s){let l=n(s,i);if(l!==void 0&&typeof l=="object"&&l!==null){let u={...a};return Object.keys(l).forEach(c=>{delete u[c]}),u}else return a}o.removeOverridden=t;function e(i,a){if((i instanceof At||i instanceof Fo)&&typeof a=="string")return i.data(a);if((i instanceof Ge||i instanceof Ro)&&typeof a=="string")return i.data(a);if(typeof a=="number"&&Array.isArray(i))return i[a];if(typeof a=="string"&&typeof i=="object")return i[a]}o.zoomOnce=e;function n(i,a,s=0){for(;s<a.length&&i!==void 0;)i=e(i,a[s]),s+=1;return i}o.zoom=n})(Wn||(Wn={}));var Os=class{},Ri=class extends Os{constructor(e){super();this.id=e}},ki=class extends Os{constructor(e){super();this.data=e}};var mc;try{mc=new TextDecoder}catch{}var se,xn,L=0;var fh=[],gc=fh,yc=0,It={},_e,vn,jt=0,br=0,Dt,Qr,xt=[],Pe,ih={useRecords:!1,mapsAsObjects:!0},Gi=class{},xc=new Gi;xc.name="MessagePack 0xC1";var ko=!1,Sr=class{constructor(t){t&&(t.useRecords===!1&&t.mapsAsObjects===void 0&&(t.mapsAsObjects=!0),t.structures?t.structures.sharedLength=t.structures.length:t.getStructures&&((t.structures=[]).uninitialized=!0,t.structures.sharedLength=0)),Object.assign(this,t)}unpack(t,e){if(se)return yh(()=>(Ns(),this?this.unpack(t,e):Sr.prototype.unpack.call(ih,t,e)));xn=e>-1?e:t.length,L=0,yc=0,br=0,vn=null,gc=fh,Dt=null,se=t;try{Pe=t.dataView||(t.dataView=new DataView(t.buffer,t.byteOffset,t.byteLength))}catch(n){throw se=null,t instanceof Uint8Array?n:new Error("Source must be a Uint8Array or Buffer but was a "+(t&&typeof t=="object"?t.constructor.name:typeof t))}if(this instanceof Sr){if(It=this,this.structures)return _e=this.structures,Ls();(!_e||_e.length>0)&&(_e=[])}else It=ih,(!_e||_e.length>0)&&(_e=[]);return Ls()}unpackMultiple(t,e){let n,o=0;try{ko=!0;let i=t.length,a=this?this.unpack(t,i):Es.unpack(t,i);if(e){for(e(a);L<i;)if(o=L,e(Ls())===!1)return}else{for(n=[a];L<i;)o=L,n.push(Ls());return n}}catch(i){throw i.lastPosition=o,i.values=n,i}finally{ko=!1,Ns()}}_mergeStructures(t,e){t=t||[];for(let n=0,o=t.length;n<o;n++){let i=t[n];i&&(i.isShared=!0,n>=32&&(i.highByte=n-32>>5))}t.sharedLength=t.length;for(let n in e||[])if(n>=0){let o=t[n],i=e[n];i&&(o&&((t.restoreStructures||(t.restoreStructures=[]))[n]=o),t[n]=i)}return this.structures=t}decode(t,e){return this.unpack(t,e)}};function Ls(){try{if(!It.trusted&&!ko){let t=_e.sharedLength||0;t<_e.length&&(_e.length=t)}let r=ze();if(L==xn)_e.restoreStructures&&ah(),_e=null,se=null,Qr&&(Qr=null);else if(L>xn){let t=new Error("Unexpected end of MessagePack data");throw t.incomplete=!0,t}else if(!ko)throw new Error("Data read, but end of buffer not reached");return r}catch(r){throw _e.restoreStructures&&ah(),Ns(),(r instanceof RangeError||r.message.startsWith("Unexpected end of buffer"))&&(r.incomplete=!0),r}}function ah(){for(let r in _e.restoreStructures)_e[r]=_e.restoreStructures[r];_e.restoreStructures=null}function ze(){let r=se[L++];if(r<160)if(r<128){if(r<64)return r;{let t=_e[r&63]||It.getStructures&&dh()[r&63];return t?(t.read||(t.read=bc(t,r&63)),t.read()):r}}else if(r<144)if(r-=128,It.mapsAsObjects){let t={};for(let e=0;e<r;e++)t[mh()]=ze();return t}else{let t=new Map;for(let e=0;e<r;e++)t.set(ze(),ze());return t}else{r-=144;let t=new Array(r);for(let e=0;e<r;e++)t[e]=ze();return t}else if(r<192){let t=r-160;if(br>=L)return vn.slice(L-jt,(L+=t)-jt);if(br==0&&xn<140){let e=t<16?Sc(t):hh(t);if(e!=null)return e}return vc(t)}else{let t;switch(r){case 192:return null;case 193:return Dt?(t=ze(),t>0?Dt[1].slice(Dt.position1,Dt.position1+=t):Dt[0].slice(Dt.position0,Dt.position0-=t)):xc;case 194:return!1;case 195:return!0;case 196:return hc(se[L++]);case 197:return t=Pe.getUint16(L),L+=2,hc(t);case 198:return t=Pe.getUint32(L),L+=4,hc(t);case 199:return Xn(se[L++]);case 200:return t=Pe.getUint16(L),L+=2,Xn(t);case 201:return t=Pe.getUint32(L),L+=4,Xn(t);case 202:if(t=Pe.getFloat32(L),It.useFloat32>2){let e=Ms[(se[L]&127)<<1|se[L+1]>>7];return L+=4,(e*t+(t>0?.5:-.5)>>0)/e}return L+=4,t;case 203:return t=Pe.getFloat64(L),L+=8,t;case 204:return se[L++];case 205:return t=Pe.getUint16(L),L+=2,t;case 206:return t=Pe.getUint32(L),L+=4,t;case 207:return It.int64AsNumber?(t=Pe.getUint32(L)*4294967296,t+=Pe.getUint32(L+4)):t=Pe.getBigUint64(L),L+=8,t;case 208:return Pe.getInt8(L++);case 209:return t=Pe.getInt16(L),L+=2,t;case 210:return t=Pe.getInt32(L),L+=4,t;case 211:return It.int64AsNumber?(t=Pe.getInt32(L)*4294967296,t+=Pe.getUint32(L+4)):t=Pe.getBigInt64(L),L+=8,t;case 212:if(t=se[L++],t==114)return ph(se[L++]&63);{let e=xt[t];if(e)return e.read?(L++,e.read(ze())):e.noBuffer?(L++,e()):e(se.subarray(L,++L));throw new Error("Unknown extension "+t)}case 213:return t=se[L],t==114?(L++,ph(se[L++]&63,se[L++])):Xn(2);case 214:return Xn(4);case 215:return Xn(8);case 216:return Xn(16);case 217:return t=se[L++],br>=L?vn.slice(L-jt,(L+=t)-jt):iT(t);case 218:return t=Pe.getUint16(L),L+=2,br>=L?vn.slice(L-jt,(L+=t)-jt):aT(t);case 219:return t=Pe.getUint32(L),L+=4,br>=L?vn.slice(L-jt,(L+=t)-jt):sT(t);case 220:return t=Pe.getUint16(L),L+=2,lh(t);case 221:return t=Pe.getUint32(L),L+=4,lh(t);case 222:return t=Pe.getUint16(L),L+=2,ch(t);case 223:return t=Pe.getUint32(L),L+=4,ch(t);default:if(r>=224)return r-256;if(r===void 0){let e=new Error("Unexpected end of MessagePack data");throw e.incomplete=!0,e}throw new Error("Unknown MessagePack token "+r)}}}var oT=/^[a-zA-Z_$][a-zA-Z\d_$]*$/;function bc(r,t){function e(){if(e.count++>2){let o=r.read=new Function("r","return function(){return {"+r.map(i=>oT.test(i)?i+":r()":"["+JSON.stringify(i)+"]:r()").join(",")+"}}")(ze);return r.highByte===0&&(r.read=sh(t,r.read)),o()}let n={};for(let o=0,i=r.length;o<i;o++){let a=r[o];n[a]=ze()}return n}return e.count=0,r.highByte===0?sh(t,e):e}var sh=(r,t)=>function(){let e=se[L++];if(e===0)return t();let n=r<32?-(r+(e<<5)):r+(e<<5),o=_e[n]||dh()[n];if(!o)throw new Error("Record id is not defined for "+n);return o.read||(o.read=bc(o,r)),o.read()};function dh(){let r=yh(()=>(se=null,It.getStructures()));return _e=It._mergeStructures(r,_e)}var vc=Ps,iT=Ps,aT=Ps,sT=Ps;function Ps(r){let t;if(r<16&&(t=Sc(r)))return t;if(r>64&&mc)return mc.decode(se.subarray(L,L+=r));let e=L+r,n=[];for(t="";L<e;){let o=se[L++];if((o&128)===0)n.push(o);else if((o&224)===192){let i=se[L++]&63;n.push((o&31)<<6|i)}else if((o&240)===224){let i=se[L++]&63,a=se[L++]&63;n.push((o&31)<<12|i<<6|a)}else if((o&248)===240){let i=se[L++]&63,a=se[L++]&63,s=se[L++]&63,l=(o&7)<<18|i<<12|a<<6|s;l>65535&&(l-=65536,n.push(l>>>10&1023|55296),l=56320|l&1023),n.push(l)}else n.push(o);n.length>=4096&&(t+=nt.apply(String,n),n.length=0)}return n.length>0&&(t+=nt.apply(String,n)),t}function lh(r){let t=new Array(r);for(let e=0;e<r;e++)t[e]=ze();return t}function ch(r){if(It.mapsAsObjects){let t={};for(let e=0;e<r;e++)t[mh()]=ze();return t}else{let t=new Map;for(let e=0;e<r;e++)t.set(ze(),ze());return t}}var nt=String.fromCharCode;function hh(r){let t=L,e=new Array(r);for(let n=0;n<r;n++){let o=se[L++];if((o&128)>0){L=t;return}e[n]=o}return nt.apply(String,e)}function Sc(r){if(r<4)if(r<2){if(r===0)return"";{let t=se[L++];if((t&128)>1){L-=1;return}return nt(t)}}else{let t=se[L++],e=se[L++];if((t&128)>0||(e&128)>0){L-=2;return}if(r<3)return nt(t,e);let n=se[L++];if((n&128)>0){L-=3;return}return nt(t,e,n)}else{let t=se[L++],e=se[L++],n=se[L++],o=se[L++];if((t&128)>0||(e&128)>0||(n&128)>0||(o&128)>0){L-=4;return}if(r<6){if(r===4)return nt(t,e,n,o);{let i=se[L++];if((i&128)>0){L-=5;return}return nt(t,e,n,o,i)}}else if(r<8){let i=se[L++],a=se[L++];if((i&128)>0||(a&128)>0){L-=6;return}if(r<7)return nt(t,e,n,o,i,a);let s=se[L++];if((s&128)>0){L-=7;return}return nt(t,e,n,o,i,a,s)}else{let i=se[L++],a=se[L++],s=se[L++],l=se[L++];if((i&128)>0||(a&128)>0||(s&128)>0||(l&128)>0){L-=8;return}if(r<10){if(r===8)return nt(t,e,n,o,i,a,s,l);{let u=se[L++];if((u&128)>0){L-=9;return}return nt(t,e,n,o,i,a,s,l,u)}}else if(r<12){let u=se[L++],c=se[L++];if((u&128)>0||(c&128)>0){L-=10;return}if(r<11)return nt(t,e,n,o,i,a,s,l,u,c);let p=se[L++];if((p&128)>0){L-=11;return}return nt(t,e,n,o,i,a,s,l,u,c,p)}else{let u=se[L++],c=se[L++],p=se[L++],f=se[L++];if((u&128)>0||(c&128)>0||(p&128)>0||(f&128)>0){L-=12;return}if(r<14){if(r===12)return nt(t,e,n,o,i,a,s,l,u,c,p,f);{let d=se[L++];if((d&128)>0){L-=13;return}return nt(t,e,n,o,i,a,s,l,u,c,p,f,d)}}else{let d=se[L++],h=se[L++];if((d&128)>0||(h&128)>0){L-=14;return}if(r<15)return nt(t,e,n,o,i,a,s,l,u,c,p,f,d,h);let m=se[L++];if((m&128)>0){L-=15;return}return nt(t,e,n,o,i,a,s,l,u,c,p,f,d,h,m)}}}}}function hc(r){return It.copyBuffers?Uint8Array.prototype.slice.call(se,L,L+=r):se.subarray(L,L+=r)}function Xn(r){let t=se[L++];if(xt[t])return xt[t](se.subarray(L,L+=r));throw new Error("Unknown extension type "+t)}var uh=new Array(4096);function mh(){let r=se[L++];if(r>=160&&r<192){if(r=r-160,br>=L)return vn.slice(L-jt,(L+=r)-jt);if(!(br==0&&xn<180))return vc(r)}else return L--,ze();let t=(r<<5^(r>1?Pe.getUint16(L):r>0?se[L]:0))&4095,e=uh[t],n=L,o=L+r-3,i,a=0;if(e&&e.bytes==r){for(;n<o;){if(i=Pe.getUint32(n),i!=e[a++]){n=1879048192;break}n+=4}for(o+=3;n<o;)if(i=se[n++],i!=e[a++]){n=1879048192;break}if(n===o)return L=n,e.string;o-=3,n=L}for(e=[],uh[t]=e,e.bytes=r;n<o;)i=Pe.getUint32(n),e.push(i),n+=4;for(o+=3;n<o;)i=se[n++],e.push(i);let s=r<16?Sc(r):hh(r);return s!=null?e.string=s:e.string=vc(r)}var ph=(r,t)=>{var e=ze();let n=r;t!==void 0&&(r=r<32?-((t<<5)+r):(t<<5)+r,e.highByte=t);let o=_e[r];return o&&o.isShared&&((_e.restoreStructures||(_e.restoreStructures=[]))[r]=o),_e[r]=e,e.read=bc(e,n),e.read()},gh=typeof self=="object"?self:global;xt[0]=()=>{};xt[0].noBuffer=!0;xt[101]=()=>{let r=ze();return(gh[r[0]]||Error)(r[1])};xt[105]=r=>{let t=Pe.getUint32(L-4);Qr||(Qr=new Map);let e=se[L],n;e>=144&&e<160||e==220||e==221?n=[]:n={};let o={target:n};Qr.set(t,o);let i=ze();return o.used?Object.assign(n,i):(o.target=i,i)};xt[112]=r=>{let t=Pe.getUint32(L-4),e=Qr.get(t);return e.used=!0,e.target};xt[115]=()=>new Set(ze());var wc=["Int8","Uint8","Uint8Clamped","Int16","Uint16","Int32","Uint32","Float32","Float64","BigInt64","BigUint64"].map(r=>r+"Array");xt[116]=r=>{let t=r[0],e=wc[t];if(!e)throw new Error("Could not find typed array for code "+t);return new gh[e](Uint8Array.prototype.slice.call(r,1).buffer)};xt[120]=()=>{let r=ze();return new RegExp(r[0],r[1])};xt[98]=r=>{let t=(r[0]<<24)+(r[1]<<16)+(r[2]<<8)+r[3],e=L;L+=t-4,Dt=[ze(),ze()],Dt.position0=0,Dt.position1=0;let n=L;L=e;try{return ze()}finally{L=n}};xt[255]=r=>r.length==4?new Date((r[0]*16777216+(r[1]<<16)+(r[2]<<8)+r[3])*1e3):r.length==8?new Date(((r[0]<<22)+(r[1]<<14)+(r[2]<<6)+(r[3]>>2))/1e6+((r[3]&3)*4294967296+r[4]*16777216+(r[5]<<16)+(r[6]<<8)+r[7])*1e3):r.length==12?new Date(((r[0]<<24)+(r[1]<<16)+(r[2]<<8)+r[3])/1e6+((r[4]&128?-281474976710656:0)+r[6]*1099511627776+r[7]*4294967296+r[8]*16777216+(r[9]<<16)+(r[10]<<8)+r[11])*1e3):new Date("invalid");function yh(r){let t=xn,e=L,n=yc,o=jt,i=br,a=vn,s=gc,l=Qr,u=Dt,c=new Uint8Array(se.slice(0,xn)),p=_e,f=_e.slice(0,_e.length),d=It,h=ko,m=r();return xn=t,L=e,yc=n,jt=o,br=i,vn=a,gc=s,Qr=l,Dt=u,se=c,ko=h,_e=p,_e.splice(0,_e.length,...f),It=d,Pe=new DataView(se.buffer,se.byteOffset,se.byteLength),m}function Ns(){se=null,Qr=null,_e=null}function vh(r){r.unpack?xt[r.type]=r.unpack:xt[r.type]=r}var Ms=new Array(147);for(let r=0;r<256;r++)Ms[r]=+("1e"+Math.floor(45.15-r*.30103));var Es=new Sr({useRecords:!1}),lT=Es.unpack,cT=Es.unpackMultiple,uT=Es.unpack,Ds={NEVER:0,ALWAYS:1,DECIMAL_ROUND:3,DECIMAL_FIT:4},pT=new Float32Array(1),qG=new Uint8Array(pT.buffer,0,4);var Bs;try{Bs=new TextEncoder}catch{}var Fs,Cc,Rs=typeof Buffer<"u",Tc=Rs?Buffer.allocUnsafeSlow:Uint8Array,wh=Rs?Buffer:Uint8Array,xh=Rs?4294967296:2144337920,k,qe,M=0,wr,Tr=null,fT=/[\u0080-\uFFFF]/,Ui=Symbol("record-id"),Yn=class extends Sr{constructor(t){super(t),this.offset=0;let e,n,o,i,a,s,l=0,u=wh.prototype.utf8Write?function(y,I,A){return k.utf8Write(y,I,A)}:Bs&&Bs.encodeInto?function(y,I){return Bs.encodeInto(y,k.subarray(I)).written}:!1,c=this;t||(t={});let p=t&&t.sequential,f=t.structures||t.saveStructures,d=t.maxSharedStructures;if(d==null&&(d=f?32:0),d>8160)throw new Error("Maximum maxSharedStructure is 8160");let h=t.maxOwnStructures;h==null&&(h=f?32:64),p&&!t.saveStructures&&(this.structures=[]);let m=d>32||h+d>64,g=d+64,v=d+h+64;if(v>8256)throw new Error("Maximum maxSharedStructure + maxOwnStructure is 8192");let x=[],S=0,w=0;this.pack=this.encode=function(y,I){if(k||(k=new Tc(8192),qe=new DataView(k.buffer,0,8192),M=0),wr=k.length-10,wr-M<2048?(k=new Tc(k.length),qe=new DataView(k.buffer,0,k.length),wr=k.length-10,M=0):M=M+7&2147483640,n=M,s=c.structuredClone?new Map:null,c.bundleStrings?(Tr=["",""],k[M++]=214,k[M++]=98,Tr.position=M-n,M+=4):Tr=null,o=c.structures,o){o.uninitialized&&(o=c._mergeStructures(c.getStructures()));let A=o.sharedLength||0;if(A>d)throw new Error("Shared structures is larger than maximum shared structures, try increasing maxSharedStructures to "+o.sharedLength);if(!o.transitions){o.transitions=Object.create(null);for(let O=0;O<A;O++){let C=o[O];if(!C)continue;let N,P=o.transitions;for(let G=0,$=C.length;G<$;G++){let Y=C[G];N=P[Y],N||(N=P[Y]=Object.create(null)),P=N}P[Ui]=O+64}l=A}p||(o.nextId=A+64)}i&&(i=!1),a=o||[];try{if(b(y),Tr){qe.setUint32(Tr.position+n,M-Tr.position-n);let A=Tr;Tr=null,b(A[0]),b(A[1])}if(c.offset=M,s&&s.idsToInsert){M+=s.idsToInsert.length*6,M>wr&&T(M),c.offset=M;let A=hT(k.subarray(n,M),s.idsToInsert);return s=null,A}return I&Ch?(k.start=n,k.end=M,k):k.subarray(n,M)}finally{if(o){if(w<10&&w++,S>1e4)o.transitions=null,w=0,S=0,x.length>0&&(x=[]);else if(x.length>0&&!p){for(let A=0,O=x.length;A<O;A++)x[A][Ui]=0;x=[]}if(i&&c.saveStructures){let A=o.sharedLength||d;o.length>A&&(o=o.slice(0,A));let O=k.subarray(n,M);return c.saveStructures(o,l)===!1?(c._mergeStructures(c.getStructures()),c.pack(y)):(l=A,O)}}I&ST&&(M=n)}};let b=y=>{M>wr&&(k=T(M));var I=typeof y,A;if(I==="string"){let O=y.length;if(Tr&&O>=8&&O<4096){let P=fT.test(y);Tr[P?0:1]+=y,k[M++]=193,b(P?-O:O);return}let C;O<32?C=1:O<256?C=2:O<65536?C=3:C=5;let N=O*3;if(M+N>wr&&(k=T(M+N)),O<64||!u){let P,G,$,Y=M+C;for(P=0;P<O;P++)G=y.charCodeAt(P),G<128?k[Y++]=G:G<2048?(k[Y++]=G>>6|192,k[Y++]=G&63|128):(G&64512)===55296&&(($=y.charCodeAt(P+1))&64512)===56320?(G=65536+((G&1023)<<10)+($&1023),P++,k[Y++]=G>>18|240,k[Y++]=G>>12&63|128,k[Y++]=G>>6&63|128,k[Y++]=G&63|128):(k[Y++]=G>>12|224,k[Y++]=G>>6&63|128,k[Y++]=G&63|128);A=Y-M-C}else A=u(y,M+C,N);A<32?k[M++]=160|A:A<256?(C<2&&k.copyWithin(M+2,M+1,M+1+A),k[M++]=217,k[M++]=A):A<65536?(C<3&&k.copyWithin(M+3,M+2,M+2+A),k[M++]=218,k[M++]=A>>8,k[M++]=A&255):(C<5&&k.copyWithin(M+5,M+3,M+3+A),k[M++]=219,qe.setUint32(M,A),M+=4),M+=A}else if(I==="number")if(y>>>0===y)y<64?k[M++]=y:y<256?(k[M++]=204,k[M++]=y):y<65536?(k[M++]=205,k[M++]=y>>8,k[M++]=y&255):(k[M++]=206,qe.setUint32(M,y),M+=4);else if(y>>0===y)y>=-32?k[M++]=256+y:y>=-128?(k[M++]=208,k[M++]=y+256):y>=-32768?(k[M++]=209,qe.setInt16(M,y),M+=2):(k[M++]=210,qe.setInt32(M,y),M+=4);else{let O;if((O=this.useFloat32)>0&&y<4294967296&&y>=-2147483648){k[M++]=202,qe.setFloat32(M,y);let C;if(O<4||(C=y*Ms[(k[M]&127)<<1|k[M+1]>>7])>>0===C){M+=4;return}else M--}k[M++]=203,qe.setFloat64(M,y),M+=8}else if(I==="object")if(!y)k[M++]=192;else{if(s){let C=s.get(y);if(C){if(!C.id){let N=s.idsToInsert||(s.idsToInsert=[]);C.id=N.push(C)}k[M++]=214,k[M++]=112,qe.setUint32(M,C.id),M+=4;return}else s.set(y,{offset:M-n})}let O=y.constructor;if(O===Object)_(y,!0);else if(O===Array){A=y.length,A<16?k[M++]=144|A:A<65536?(k[M++]=220,k[M++]=A>>8,k[M++]=A&255):(k[M++]=221,qe.setUint32(M,A),M+=4);for(let C=0;C<A;C++)b(y[C])}else if(O===Map){A=y.size,A<16?k[M++]=128|A:A<65536?(k[M++]=222,k[M++]=A>>8,k[M++]=A&255):(k[M++]=223,qe.setUint32(M,A),M+=4);for(let[C,N]of y)b(C),b(N)}else{for(let C=0,N=Fs.length;C<N;C++){let P=Cc[C];if(y instanceof P){let G=Fs[C];if(G.write){G.type&&(k[M++]=212,k[M++]=G.type,k[M++]=0),b(G.write.call(this,y));return}let $=k,Y=qe,ie=M;k=null;let j;try{j=G.pack.call(this,y,H=>(k=$,$=null,M+=H,M>wr&&T(M),{target:k,targetView:qe,position:M-H}),b)}finally{$&&(k=$,qe=Y,M=ie,wr=k.length-10)}j&&(j.length+M>wr&&T(j.length+M),M=dT(j,k,M,G.type));return}}_(y,!y.hasOwnProperty)}}else if(I==="boolean")k[M++]=y?195:194;else if(I==="bigint"){if(y<BigInt(1)<<BigInt(63)&&y>=-(BigInt(1)<<BigInt(63)))k[M++]=211,qe.setBigInt64(M,y);else if(y<BigInt(1)<<BigInt(64)&&y>0)k[M++]=207,qe.setBigUint64(M,y);else if(this.largeBigIntToFloat)k[M++]=203,qe.setFloat64(M,Number(y));else throw new RangeError(y+" was too large to fit in MessagePack 64-bit integer format, set largeBigIntToFloat to convert to float-64");M+=8}else if(I==="undefined")this.encodeUndefinedAsNil?k[M++]=192:(k[M++]=212,k[M++]=0,k[M++]=0);else if(I==="function")b(this.writeFunction&&this.writeFunction());else throw new Error("Unknown type: "+I)},_=this.useRecords===!1?this.variableMapSize?y=>{let I=Object.keys(y),A=I.length;A<16?k[M++]=128|A:A<65536?(k[M++]=222,k[M++]=A>>8,k[M++]=A&255):(k[M++]=223,qe.setUint32(M,A),M+=4);let O;for(let C=0;C<A;C++)b(O=I[C]),b(y[O])}:(y,I)=>{k[M++]=222;let A=M-n;M+=2;let O=0;for(let C in y)(I||y.hasOwnProperty(C))&&(b(C),b(y[C]),O++);k[A+++n]=O>>8,k[A+n]=O&255}:y=>{let I=Object.keys(y),A,O=a.transitions||(a.transitions=Object.create(null)),C=0;for(let P=0,G=I.length;P<G;P++){let $=I[P];A=O[$],A||(A=O[$]=Object.create(null),C++),O=A}let N=O[Ui];if(N)N>=96&&m?(k[M++]=((N-=96)&31)+96,k[M++]=N>>5):k[M++]=N;else{N=a.nextId,N||(N=64),N<g&&this.shouldShareStructure&&!this.shouldShareStructure(I)?(N=a.nextOwnId,N<v||(N=g),a.nextOwnId=N+1):(N>=v&&(N=g),a.nextId=N+1);let P=I.highByte=N>=96&&m?N-96>>5:-1;O[Ui]=N,a[N-64]=I,N<g?(I.isShared=!0,a.sharedLength=N-63,i=!0,P>=0?(k[M++]=(N&31)+96,k[M++]=P):k[M++]=N):(P>=0?(k[M++]=213,k[M++]=114,k[M++]=(N&31)+96,k[M++]=P):(k[M++]=212,k[M++]=114,k[M++]=N),C&&(S+=w*C),x.length>=h&&(x.shift()[Ui]=0),x.push(O),b(I))}for(let P=0,G=I.length;P<G;P++)b(y[I[P]])},T=y=>{let I;if(y>16777216){if(y-n>xh)throw new Error("Packed buffer would be larger than maximum buffer size");I=Math.min(xh,Math.round(Math.max((y-n)*(y>67108864?1.25:2),4194304)/4096)*4096)}else I=(Math.max(y-n<<2,k.length-1)>>12)+1<<12;let A=new Tc(I);return qe=new DataView(A.buffer,0,I),k.copy?k.copy(A,0,n,y):A.set(k.slice(n,y)),M-=n,n=0,wr=A.length-10,k=A}}useBuffer(t){k=t,qe=new DataView(k.buffer,k.byteOffset,k.byteLength),M=0}};Cc=[Date,Set,Error,RegExp,ArrayBuffer,Object.getPrototypeOf(Uint8Array.prototype).constructor,Gi];Fs=[{pack(r,t,e){let n=r.getTime()/1e3;if((this.useTimestamp32||r.getMilliseconds()===0)&&n>=0&&n<4294967296){let{target:o,targetView:i,position:a}=t(6);o[a++]=214,o[a++]=255,i.setUint32(a,n)}else if(n>0&&n<17179869184){let{target:o,targetView:i,position:a}=t(10);o[a++]=215,o[a++]=255,i.setUint32(a,r.getMilliseconds()*4e6+(n/1e3/4294967296>>0)),i.setUint32(a+4,n)}else if(isNaN(n)){if(this.onInvalidDate)return t(0),e(this.onInvalidDate());let{target:o,targetView:i,position:a}=t(3);o[a++]=212,o[a++]=255,o[a++]=255}else{let{target:o,targetView:i,position:a}=t(15);o[a++]=199,o[a++]=12,o[a++]=255,i.setUint32(a,r.getMilliseconds()*1e6),i.setBigInt64(a+4,BigInt(Math.floor(n)))}}},{pack(r,t,e){let n=Array.from(r),{target:o,position:i}=t(this.structuredClone?3:0);this.structuredClone&&(o[i++]=212,o[i++]=115,o[i++]=0),e(n)}},{pack(r,t,e){let{target:n,position:o}=t(this.structuredClone?3:0);this.structuredClone&&(n[o++]=212,n[o++]=101,n[o++]=0),e([r.name,r.message])}},{pack(r,t,e){let{target:n,position:o}=t(this.structuredClone?3:0);this.structuredClone&&(n[o++]=212,n[o++]=120,n[o++]=0),e([r.source,r.flags])}},{pack(r,t){this.structuredClone?bh(r,16,t):Sh(Rs?Buffer.from(r):new Uint8Array(r),t)}},{pack(r,t){let e=r.constructor;e!==wh&&this.structuredClone?bh(r,wc.indexOf(e.name),t):Sh(r,t)}},{pack(r,t){let{target:e,position:n}=t(1);e[n]=193}}];function bh(r,t,e,n){let o=r.byteLength;if(o+1<256){var{target:i,position:a}=e(4+o);i[a++]=199,i[a++]=o+1}else if(o+1<65536){var{target:i,position:a}=e(5+o);i[a++]=200,i[a++]=o+1>>8,i[a++]=o+1&255}else{var{target:i,position:a,targetView:s}=e(7+o);i[a++]=201,s.setUint32(a,o+1),a+=4}i[a++]=116,i[a++]=t,i.set(new Uint8Array(r.buffer,r.byteOffset,r.byteLength),a)}function Sh(r,t){let e=r.byteLength;var n,o;if(e<256){var{target:n,position:o}=t(e+2);n[o++]=196,n[o++]=e}else if(e<65536){var{target:n,position:o}=t(e+3);n[o++]=197,n[o++]=e>>8,n[o++]=e&255}else{var{target:n,position:o,targetView:i}=t(e+5);n[o++]=198,i.setUint32(o,e),o+=4}n.set(r,o)}function dT(r,t,e,n){let o=r.length;switch(o){case 1:t[e++]=212;break;case 2:t[e++]=213;break;case 4:t[e++]=214;break;case 8:t[e++]=215;break;case 16:t[e++]=216;break;default:o<256?(t[e++]=199,t[e++]=o):o<65536?(t[e++]=200,t[e++]=o>>8,t[e++]=o&255):(t[e++]=201,t[e++]=o>>24,t[e++]=o>>16&255,t[e++]=o>>8&255,t[e++]=o&255)}return t[e++]=n,t.set(r,e),e+=o,e}function hT(r,t){let e,n=t.length*6,o=r.length-n;for(t.sort((i,a)=>i.offset>a.offset?1:-1);e=t.pop();){let i=e.offset,a=e.id;r.copyWithin(i+n,i,o),n-=6;let s=i+n;r[s++]=214,r[s++]=105,r[s++]=a>>24,r[s++]=a>>16&255,r[s++]=a>>8&255,r[s++]=a&255,o=i}return r}function bn(r){if(r.Class){if(!r.pack&&!r.write)throw new Error("Extension has no pack or write function");if(r.pack&&!r.type)throw new Error("Extension has no type (numeric code to identify the extension)");Cc.unshift(r.Class),Fs.unshift(r)}vh(r)}var Th=new Yn({useRecords:!1}),mT=Th.pack,gT=Th.pack;var{NEVER:yT,ALWAYS:vT,DECIMAL_ROUND:xT,DECIMAL_FIT:bT}=Ds,Ch=512,ST=1024;var Ah=new Yn({structuredClone:!0});bn({Class:Ve.prototype.constructor,type:1,write(r){return{...r}},read(r){return Object.setPrototypeOf(r,Ve.prototype),r}});bn({Class:Ge.prototype.constructor,type:2,write(r){return[...r]},read(r){return Object.setPrototypeOf(r,Ge.prototype),r}});bn({Class:At.prototype.constructor,type:3,write(r){return[...r]},read(r){return Object.setPrototypeOf(r,At.prototype),r}});bn({Class:Ri.prototype.constructor,type:4,write(r){return r.id},read(r){return new Ri(r)}});bn({Class:ki.prototype.constructor,type:5,write(r){return r.data},read(r){return new ki(r)}});bn({Class:Zr.prototype.constructor,type:6,write(r){return{...r}},read(r){return Object.setPrototypeOf(r,Zr.prototype),r}});function wT(r){var t=0;if(r.length===0)return t;for(let e=0;e<r.length;e++){let n=r[e];t=(t<<5)-t+n,t=t&t}return t}function Ac(r){if(Hn(r))return r;if(Array.isArray(r))return r.map(Ac);if(typeof r=="object"&&r!==null){let t={};for(let e of Object.keys(r).sort())t[e]=Ac(r[e]);return Object.setPrototypeOf(t,Object.getPrototypeOf(r)),t}else return r}var ks;(n=>{function r(o){return Ah.pack(o)}n.serialize=r;function t(o){return Ah.unpack(o)}n.deserialize=t;function e(o){return wT(r(Ac(o))).toString()}n.checksum=e})(ks||(ks={}));var Gs;(e=>{e.all=["PointLight","SpotLight","DirectionalLight","HemisphereLight"];function t(n){return e.all.includes(n)}e.is=t})(Gs||(Gs={}));var Us;(e=>{function r(n){return t(n)}e.defaultData=r;function t(n){if(n==="PointLight")return{type:n,color:Qt.white,intensity:1,distance:2e3,decay:1,shadows:!0,shadowResolution:1024,shadowRadius:1,depth:1e5};if(n==="SpotLight")return{type:n,color:Qt.white,intensity:1,distance:2e3,decay:1,shadows:!0,penumbra:0,angle:30/180*Math.PI,depth:1e5,shadowResolution:1024,shadowRadius:1};if(n==="DirectionalLight")return{type:n,color:Qt.white,intensity:1,shadows:!0,size:1e3,depth:1e5,shadowResolution:1024,shadowRadius:1};throw new Error("not implemented")}})(Us||(Us={}));var _c;(e=>{e.defaultData={castShadow:!0,receiveShadow:!0};function t(n,o){return n.castShadow===o.castShadow&&n.receiveShadow===o.receiveShadow}e.equals=t})(_c||(_c={}));var Ic;(e=>{e.defaultData={flatShading:!1,wireframe:!1,side:0};function t(n,o){return n.flatShading===o.flatShading&&n.side===o.side&&n.wireframe===o.wireframe}e.equals=t})(Ic||(Ic={}));var Vs;(t=>t.defaultData={...Ic.defaultData,..._c.defaultData,cloner:null,booleanExclude:null})(Vs||(Vs={}));var _h=["mode","gradientType","noiseType","displacementType","projection","cnormal","crop","axis","side"],Ih=["wrapping","image"],Sn;(n=>{function r(o,i){return o==="light"&&i?t(i):e(o)}n.defaultData=r;function t(o){switch(o){case"basic":return{type:"light",category:"basic",alpha:1,visible:!0,mode:0};case"phong":return{category:"phong",specular:{r:.2,g:.2,b:.2},shininess:10,type:"light",alpha:1,visible:!0,mode:0};case"toon":return{category:"toon",specular:{r:.2,g:.2,b:.2},shininess:10,type:"light",alpha:1,visible:!0,mode:0};case"lambert":return{category:"lambert",emissive:{r:0,g:0,b:0},type:"light",alpha:1,visible:!0,mode:0};case"physical":return{category:"physical",roughness:.2,metalness:.2,reflectivity:.2,type:"light",alpha:1,visible:!0,mode:0}}}function e(o){switch(o){case"texture":return{alpha:1,visible:!0,size:[128,128],mode:0,axis:"x",side:2,type:"texture",projection:0,texture:{image:"image_0",wrapping:1001,repeat:[1,1],offset:[0,0]},crop:!0};case"color":return{type:"color",alpha:1,visible:!0,mode:0,color:Ct.fromHex(4737101)};case"depth":return{type:"depth",alpha:1,visible:!0,mode:0,gradientType:1,smooth:!1,isVector:!0,isWorldSpace:!1,origin:[0,0,0],direction:[1,0,0],colors:[[1,1,1,1],[0,0,0,1]],steps:[0,1],near:50,far:200};case"normal":return{type:"normal",alpha:1,visible:!0,mode:0,cnormal:[1,1,1]};case"gradient":return{type:"gradient",alpha:1,visible:!0,mode:0,gradientType:0,smooth:!1,colors:[[0,0,0,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1]],steps:[0,1,1,1,1,1,1,1,1,1],num:2,angle:0,offset:[0,0],morph:[0,0]};case"noise":return{type:"noise",alpha:1,visible:!0,mode:0,size:[100,100,100],noiseType:0,scale:1,move:1,colorA:{...Ct.fromHex(6710886),a:1},colorB:{...Ct.fromHex(6710886),a:1},colorC:{...Ct.fromHex(16777215),a:1},colorD:{...Ct.fromHex(16777215),a:1},distortion:[1,1],fA:[1.7,9.2],fB:[8.3,2.8]};case"fresnel":return{type:"fresnel",alpha:1,visible:!0,mode:0,color:Qt.fromHexAndA(16777215,1),bias:.1,scale:1,intensity:2,factor:1};case"rainbow":return{type:"rainbow",alpha:1,visible:!0,mode:0,filmThickness:30,movement:0,wavelengths:[0,0,0],noiseStrength:0,noiseScale:1,offset:[0,0,0]};case"toon":return{type:"toon",alpha:1,visible:!0,mode:0,positioning:2,colors:[[0,0,0,1],[.5,.5,.5,1],[.5,.5,.5,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1]],steps:[0,.475,.525,1,1,1,1,1,1,1],num:4,source:[0,1e3,0],isWorldSpace:!0,noiseStrength:0,noiseScale:1,shadowColor:Qt.fromHexAndA(0,0),offset:[0,0,0]};case"outline":return{type:"outline",alpha:1,visible:!0,mode:0,outlineColor:Qt.fromHexAndA(0,1),contourColor:Qt.fromHexAndA(0,1),outlineWidth:2,contourWidth:5,outlineThreshold:.4,contourThreshold:0,outlineSmoothing:0,contourFrequency:10,contourDirection:[0,1,0],positionalLines:!1,compensation:!0};case"matcap":return{type:"matcap",alpha:1,visible:!0,mode:0,texture:{image:"matcap_0",wrapping:1001,repeat:[1,1],offset:[0,0]}};case"transmission":return{type:"transmission",alpha:1,visible:!0,mode:0,thickness:10,ior:1.5,roughness:1};case"displace":return{type:"displace",displacementType:"noise",noiseType:0,scale:10,movement:1,offset:[0,0,0],intensity:8,visible:!0}}}})(Sn||(Sn={}));var Bt;(s=>{function r(l){return!l.layers.some(c=>{if(c.data.type==="texture"&&c.data.projection!==0||c.data.type==="depth"&&!c.data.isWorldSpace||c.data.type==="noise"||c.data.type==="displace")return!0})&&!e(l)}s.isMergable=r;function t(l){let u="";return l.layers.forEach(c=>{Object.entries(c.data).forEach(([p,f])=>{u+=`${p}${f}`,Array.isArray(f)?f.forEach(d=>u+=`${d}`):typeof f=="object"?Object.values(f).forEach(d=>{typeof d=="number"?u+=`${d.toFixed(4)}`:u+=`${d}`}):u+=`${f}`})}),u}s.getHash=t;function e(l){let u=0;for(let c of l.layers)"alpha"in c.data&&c.data.type!=="light"&&c.data.type!=="fresnel"&&(u+=(1-u)*c.data.alpha);return u<1}s.isTransparent=e;function n(){return{layers:new Ge}}s.defaultEmptyData=n;function o(l="layer1",u="layer2"){return i("phong",l,u)}s.defaultData=o;function i(l,u="layer1",c="layer2"){let p=new Ge;return p.push({fi:0,data:Sn.defaultData("light",l),id:u}),p.push({fi:1,data:Sn.defaultData("color"),id:c}),{layers:p}}s.defaultTwoLayerData=i;function a(l,u="basic",c="layer1",p="layer2"){let f=Sn.defaultData("texture");Object.assign(f.texture,{image:l});let d=new Ge;return d.push({fi:0,data:f,id:c}),d.push({fi:1,data:Sn.defaultData("light",u),id:p}),{layers:d}}s.defaultTwoLayerTextureData=a})(Bt||(Bt={}));var Go;(t=>{function r(){return{points:new Ge,roundness:0,shapeHoles:[],isClosed:!1}}t.defaultData=r})(Go||(Go={}));var zs;(t=>{function r(e){return e==="PolygonGeometry"||e==="RectangleGeometry"||e==="StarGeometry"||e==="TriangleGeometry"||e==="EllipseGeometry"}t.is2DParametricMesh=r})(zs||(zs={}));var wn;(t=>{function r(e){if(e==="RectangleGeometry")return{width:320,height:320,type:e,cornerRadius:[0,0,0,0],cornerType:0,depth:0,extrudeBevelSize:0,extrudeBevelSegments:1};if(e==="VectorGeometry")return{width:1,height:1,type:e,subdivisions:12,shape:Go.defaultData(),depth:0,extrudeBevelSize:0,extrudeBevelSegments:1};if(e==="BooleanGeometry")return{type:e,operation:2,width:0,height:0,depth:0,phongAngle:35};if(e==="TextGeometry")return{type:e,width:100,height:100,depth:0,horizontalAlign:1,verticalAlign:1,fontSize:16,lineHeight:1.2,letterSpacing:0,text:"",textTransform:1,font:"Roboto_regular",extrudeBevelSize:0,extrudeBevelSegments:1};throw new Error("not implemented")}t.defaultData=r})(wn||(wn={}));var Vi;(o=>{o.identity={...ws.identity,hiddenMatrix:yn.identity};function t(i){return{position:i.position,rotation:i.rotation,scale:i.scale,hiddenMatrix:i.hiddenMatrix}}o.fromObject=t;function e(i,a){return{position:a?.position||i.position,rotation:a?.rotation||i.rotation,scale:a?.scale||i.scale,hiddenMatrix:a?.hiddenMatrix||i.hiddenMatrix}}o.merge=e;function n(i,a){return{position:Bo.isEqual(i.position,a.position)?null:a.position,rotation:Bo.isEqual(i.rotation,a.rotation)?null:a.rotation,scale:Bo.isEqual(i.scale,a.scale)?null:a.scale,hiddenMatrix:yn.isEqual(i.hiddenMatrix,a.hiddenMatrix)?null:a.hiddenMatrix}}o.diff=n})(Vi||(Vi={}));var Oc;(t=>t.defaultData={fusedBody:!0,rigidBody:"positioned",density:1,pointMass:0,gravityScale:1,friction:.5,damping:0,restitution:.2,colliderType:"convex",enabledRotation:[!0,!0,!0],enabledTranslation:[!0,!0,!0]})(Oc||(Oc={}));var Jt;(t=>t.defaultData={states:new Ge,events:new Ge,visible:!0,raycastLock:!1,physics:null,...Vi.identity})(Jt||(Jt={}));var Oh;(t=>t.defaultData={type:"Empty",...Jt.defaultData})(Oh||(Oh={}));var $n;(t=>t.defaultData={type:"Mesh",...Jt.defaultData,...Vs.defaultData})($n||($n={}));var js;(t=>t.defaultData={...Jt.defaultData,...Vi.identity,...jn.defaultData})(js||(js={}));var Lh;(t=>{function r(e){return{...Jt.defaultData,...Us.defaultData(e)}}t.defaultData=r})(Lh||(Lh={}));var Nh;(o=>(o.defaultCamera={position:[0,0,1e3],scale:[1,1,1],rotation:[0,0,0],hiddenMatrix:yn.identity,name:"Play Camera",visible:!0,raycastLock:!1,physics:Oc.defaultData,states:new Ge,events:new Ge,...jn.defaultData},o.defaultMeshObject={name:"Rectangle",...Jt.defaultData,...$n.defaultData,geometry:wn.defaultData("RectangleGeometry"),material:Bt.defaultTwoLayerData("basic","layer1","layer2")},o.defaultBooleanObject={name:"Boolean",...Jt.defaultData,...$n.defaultData,geometry:wn.defaultData("BooleanGeometry"),material:Bt.defaultTwoLayerData("phong","layer1","layer2")},o.defaultTextObject={name:"Text",...Jt.defaultData,...$n.defaultData,geometry:wn.defaultData("TextGeometry"),material:Bt.defaultTwoLayerData("phong","layer1","layer2")}))(Nh||(Nh={}));var Ph;(e=>{function r(n,o){if(o===void 0)return n;let i={...n};return"material"in i&&"material"in o&&o.material&&(i.material=dc(i.material,a=>{if(typeof a!="string")for(let[s,l]of Object.entries(o.material.layers)){let u=a.layers.data(s);u&&zn(u,l)}}).data),i.materials&&o.materials&&(i.materials=dc(i.materials,a=>{for(let s=0;s<i.materials.length;s++){let l=o.materials[s];if(typeof l!="string")for(let[u,c]of Object.entries(l.layers)){let p=a[s]?.layers?.data(u);p&&zn(p,c)}}}).data),i}e.patchMaterialState=r;function t(n,o){if(o===void 0)return n;let i={...n};if(Object.assign(i,Vi.merge(i,o)),Do.is(n.type)){i.orthographic={...i.orthographic},i.perspective={...i.perspective};let a=o;a.orthographic?.zoom!==void 0&&(i.orthographic.zoom=a.orthographic.zoom),a.perspective?.zoom!==void 0&&(i.perspective.zoom=a.perspective.zoom),a.isUpVectorFlipped!==void 0&&(i.isUpVectorFlipped=a.isUpVectorFlipped),a.targetOffset!==void 0&&(i.targetOffset=a.targetOffset)}else if(n.type==="Mesh")i.geometry={...i.geometry},Object.assign(i.geometry,o.geometry),i=r(i,o);else if(Gs.is(n.type)){let a=o;a.intensity!==void 0&&(i.intensity=a.intensity),a.color!==void 0&&(typeof a.color=="string"?i.color=a.color:i.color=Ct.clone(a.color))}return i}e.patch=t})(Ph||(Ph={}));var Uo;(t=>t.defaultData={enablePan:!0,enableZoom:!0,enableRotate:!0,enableDamping:!0,rotationLimitsMode:0,rotationVerticalOffset:{min:Math.PI/4,max:Math.PI/4},rotationHorizontalOffset:{min:Math.PI/4,max:Math.PI/4},rotationSoftLimit:2,panLimitsMode:0,panVerticalOffset:{min:250,max:250},panHorizontalOffset:{min:250,max:250},panSoftLimit:2,zoomLimitsEnabled:!1,zoomLimits:{min:.1,max:2},autoRotate:!1,autoRotateSpeed:2,autoRotateClockwise:!0,hoverRotatePanMode:0,hoverRotatePanStrength:20,isTouchZoom:!0,orbitTouches:2,panTouches:3})(Uo||(Uo={}));var Hs;(t=>t.defaultData={orbitControls:Uo.defaultData,playCamera:null,withBackground:!0,preventScroll:!1,settings:{image:{format:"jpg",ratio:1},video:{format:"mp4",imageFormat:"jpg",fps:30,mbps:80,ratio:1,stopMode:"manual",duration:5e3},web:{compress:!0,preset:1,preload:!0}},stopRaycast:!0,joystickSizeAndXYOffset:Array(12).fill(0).map((e,n)=>{let o=0,i=0;return n<5?i=-30:n<10&&(i=30),n===0||n===10||n===5?o=30:(n===4||n===11||n===9)&&(o=-30),[120,[o,i],"show"]}),gameControlObject:null})(Hs||(Hs={}));var Ws;(e=>{function r(){let n={};return n["89b10010-844c-11ec-a8a3-0242ac120002"]={r:.5,g:.5,b:.5,a:1,name:"Default Color"},Un(n,Ve.prototype)}e.defaultColors=r;function t(){return{materials:new Ve,images:new Ve,colors:new Ve,audios:new Ve,fonts:new Ve,penumbraSize:[.5,.5,.5]}}e.emptyData=t})(Ws||(Ws={}));function Mh(r){r.layers.forEach(t=>{if(t.type==="depth"&&t.colorA!==void 0){let e=t.colorA,n=t.colorB,o=[[e.r,e.g,e.b,e.a],[n.r,n.g,n.b,n.a]],i=[0,1];for(let s=2;s<10;s++)o.push(o[1]),i.push(1);let a={...sc(_t(t),"type","visible","isVector","isWorldSpace","origin","alpha","mode"),near:Math.max(0,t.near),far:Math.max(0,t.far),colors:o,steps:i,num:2,direction:[1,0,0],smooth:!1,gradientType:1};Object.assign(t,a)}else if(t.type==="depth"&&t.gradientType===1&&(t.near<0||t.far<0)){let e={..._t(t),near:Math.max(t.near,0),far:Math.max(t.far,0)};Object.assign(t,e)}})}function Lc(r,t){Object.values(r.shared.materials).forEach(e=>t(e))}function Nc(r,t){r.scene.objects.traverse((e,n)=>{"materials"in n?n.materials.forEach(o=>{typeof o!="string"&&t(o)}):"material"in n&&typeof n.material!="string"&&t(n.material)})}function TT(r){Object.assign(r.scene.publish,{orbitControls:{...Uo.defaultData,..._t(r.scene.publish.orbitControls)}})}function CT(r){Object.assign(r.scene.publish.settings,{video:{...Hs.defaultData.settings.video,..._t(r.scene.publish.settings.video)}})}function AT(r){function t(e){if(e.layers){for(let n of Object.values(e.layers))if(n){for(let[o,i]of Object.entries(n))if((_h.includes(o)||typeof i=="boolean")&&delete n[o],o==="texture")for(let[a,s]of Object.entries(i))(Ih.includes(a)||typeof s=="boolean")&&delete i[a]}}}r.scene.objects.traverse((e,n)=>{n.states.forEach(o=>{let i=o;i.material?t(i.material):i.materials&&i.materials.forEach(a=>{t(a)})})})}function _T(r){r.scene.publish.withBackground=!0}function IT(r){r.scene.publish.settings.web={compress:!0,preload:!0,preset:1}}function OT(r){r.scene.objects.traverse((t,e)=>{let n=e.cloner;n&&(n.radial.scale=n.radial.scale.map(o=>o+1),n.linear.scale=n.linear.scale.map(o=>o+1))})}function LT(r){r.scene.objects.traverse((t,e)=>{let n=e.geometry;n&&(n.type==="DodecahedronGeometry"||n.type==="IcosahedronGeometry")&&(n.detail=Math.round(n.detail))})}function NT(r){r.scene.objects.traverse((t,e)=>{let n=r.scene.objects.parent(t);e.type==="Mesh"&&(!n||r.scene.objects.data(n).geometry?.type!=="BooleanGeometry")&&(e.booleanExclude=null)})}function Eh(r){r.layers===void 0&&Object.assign(r,Bt.defaultTwoLayerData("lambert"))}function Pc(r){!r.layers||r.layers.forEach(t=>{if(t.type==="depth"&&t.colors.length===10){let e=[...t.colors];e.push(t.colors[9]);let n=[...t.steps];n.push(t.steps[9]);let o={..._t(t),colors:e,steps:n};Object.assign(t,o)}})}function PT(r){r.scene.objects.traverse((t,e)=>{e.type==="Mesh"&&(e.geometry.type==="BooleanGeometry"||e.geometry.type==="SubdivGeometry")&&(e.geometry.phongAngle=35)})}function Dh(r){r.scene.objects.traverse((t,e)=>{"materials"in e?e.materials.forEach(n=>{typeof n!="string"&&Pc(n)}):"material"in e&&typeof e.material!="string"&&Pc(e.material)}),Object.values(r.shared.materials).forEach(t=>Pc(t))}function MT(r){r.scene.environment.ambientLight.softShadows=!1,r.scene.environment.ambientLight.softShadowQuality="low",r.scene.objects.traverse((t,e)=>{(e.type==="DirectionalLight"||e.type==="SpotLight")&&(e.shadowResolution=1024,e.shadowRadius=1,e.depth=1e5)}),r.shared.penumbraSize=new Array(5).fill(.5)}function ET(r){r.shared.audios=Un({},Ve.prototype)}function DT(r){let t=r.shared.materials;Object.entries(t).forEach(([e,n])=>{if(!n.layers){let o={name:"Untitled Material",layers:[{fi:0,data:{type:"light",category:"basic",alpha:1,visible:!0,mode:0},id:"layer1"},{fi:1,data:{type:"color",alpha:1,visible:!0,mode:0,color:{r:.2823529411764706,g:.2823529411764706,b:.30196078431372547}},id:"layer2"}]};Object.assign(t,{[e]:o})}})}function BT(r){Object.entries(_t(r.shared.images)).filter(n=>n[1].asset===!1).map(n=>n[0]).forEach(n=>{delete r.shared.images[n]}),Object.entries(_t(r.shared.audios)).filter(n=>n[1].asset===!1).map(n=>n[0]).forEach(n=>{delete r.shared.audios[n]})}function FT(r){r.scene.publish.settings.web.preload=!1}function Bh(r){r.layers&&r.layers.forEach(t=>{t.type==="depth"&&t.num!==void 0&&(t.colors=t.colors.slice(0,t.num),t.steps=t.steps.slice(0,t.num),delete t.num)})}function RT(r){r.shared.fonts=Un({},Ve.prototype)}function kT(r){return r.replace(".typeface","").replace(/optimer/gi,"open sans").replace("space_mono","space mono").replace(/alma_mono/gi,"varela round").replace(/droid_sans_mono/gi,"noto sans mono").replace(/droid_sans|gentilis|gnomon_(simple|foreground)|helvetiker/gi,"roboto").replace(/droid_serif/gi,"roboto slab").replace("_sans"," sans").replace("crimson_text","crimson text").replace("medium_medium","medium").replace("fatface_fatface","fatface").replace("100hairline","thin").replace("200thin","extralight").replace("300light","light").replace("500medium","medium").replace("600semi","semibold").replace("800heavy","extrabold").replace("900black","black").replace(/bodoni_(11|16|24|36|48|72|96)([^_])/gi,"bodoni_$1_$2").replace(/bodoni_(11|16|24|36|48|72|96)/gi,"bodoni moda").replace(/(thin|hairline)(_regular)?/gi,"100").replace(/(extra|ultra)light(_regular)?/gi,"200").replace(/light(_regular)?/gi,"300").replace(/_book|_normal|_roman/gi,"_regular").replace(/medium(_regular)?/gi,"500").replace(/(semi|demi)bold(_regular)?/gi,"600").replace(/(extra|ultra)bold(_regular)?/gi,"800").replace(/bold(_regular)?/gi,"700").replace(/(black|heavy|fatface)(_regular)?/gi,"900").replace(/([1-9]00)_italic/gi,"$1italic").replace(/regularitalic/gi,"italic").replace(/regularitalic/gi,"italic").split(" ").map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(" ")}function GT(r){let t=[];r.scene.objects.traverse((e,n)=>{let o=n;if(o.type==="TextFrame"){let i=Bt.defaultTwoLayerData("basic"),a=typeof o.color=="string"?r.shared.colors[o.color]:o.color;i.layers[1].data.color={r:a.r,g:a.g,b:a.b},i.layers[1].data.alpha=o.alpha;let s=kT(o.font);r.shared.fonts[s]===void 0&&(r.shared.fonts[s]={name:s});let l={name:o.name,...Jt.defaultData,...$n.defaultData,flatShading:!1,wireframe:!1,geometry:{...wn.defaultData("TextGeometry"),width:o.width,height:o.height,font:s,depth:0,horizontalAlign:o.horizontalAlign,verticalAlign:o.verticalAlign,fontSize:o.fontSize*1.40625,lineHeight:o.lineHeight/1.40625,letterSpacing:o.letterSpacing-1,text:o.text,textTransform:o.textTransform,extrudeBevelSize:0,extrudeBevelSegments:1},material:i,states:_t(o.states),events:_t(o.events),visible:o.visible,raycastLock:o.raycastLock,position:o.position,rotation:o.rotation,scale:o.scale,hiddenMatrix:o.hiddenMatrix},u=_t(r.scene.objects).parent(e);r.scene.objects.insertAfter(u??null,e,[{id:e+"new",data:l,children:[]}]),t.push(e)}}),t.forEach(e=>{r.scene.objects.delete(e)})}var Fh=20;function Rh(r){let t=r.schema??0;t!==Fh&&(console.warn("updating from ",t,"to ",Fh),t<1&&(Nc(r,Mh),Lc(r,Mh),r.schema=1),t<2&&(TT(r),r.schema=2),t<3&&(AT(r),r.schema=3),t<4&&(_T(r),r.schema=4),t<5&&(IT(r),r.schema=5),t<6&&(OT(r),r.schema=6),t<7&&(LT(r),r.schema=7),t<8&&(NT(r),r.schema=8),t<9&&(Dh(r),r.schema=9),t<10&&(PT(r),r.schema=10),t<11&&(MT(r),r.schema=11),t<12&&(Dh(r),r.schema=12),t<13&&(ET(r),r.schema=13),t<14&&(DT(r),r.schema=14),t<15&&(BT(r),r.schema=15),t<16&&(FT(r),r.schema=16),t<17&&(Nc(r,Bh),Lc(r,Bh),r.schema=17),t<18&&(Nc(r,Eh),Lc(r,Eh),r.schema=18),t<19&&(CT(r),r.schema=19),t<20&&(RT(r),GT(r),r.schema=20))}var qs;(t=>t.emptyImage={data:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVQYV2NgYAAAAAMAAWgmWQ0AAAAASUVORK5CYII="})(qs||(qs={}));import{Object3D as VT,Vector3 as ji,Euler as kh,MathUtils as Tn}from"three";import{Object3D as UT}from"three";var Mc=class extends UT{},Xs=class extends Mc{constructor(e){super();this.object=e;this.matrixAutoUpdate=!0}get castShadow(){return this.object.castShadow}set castShadow(e){}get receiveShadow(){return this.object.receiveShadow}set receiveShadow(e){}get isMesh(){return!0}get isLight(){return!1}get layers(){return this.object.layers}set layers(e){}get isCamera(){return!1}get geometry(){return this.object.geometry}get material(){return this.object.material}};var Kn=class extends VT{constructor(e,n={}){super();this.object=e;let o=e.recursiveBBox.getSize(new ji),i=.1;this.parameters=Ts.defaultData(o.toArray(),i),zn(this.parameters,n),this.update(),this.setHideBase(this.parameters.hideBase)}setHideBase(e){this.parameters.hideBase=e}update(){switch(this._updateCount(),this.parameters.type){case"radial":this._updateRadial(this.parameters);break;case"linear":this._updateLinear(this.parameters);break;case"grid":this._updateGrid(this.parameters)}this.children.forEach(e=>e.updateMatrix())}_updateCount(){let e=this.parameters.type==="grid"?this.parameters.grid.count[0]*this.parameters.grid.count[1]*this.parameters.grid.count[2]:this.parameters.count;if(this.children.length!==e)if(this.children.length<e)for(let n=0,o=e-this.children.length;n<o;++n){let i=new Xs(this.object);i.visible=!0,this.add(i),this.parameters.hideBase&&this.setHideBase(!0)}else for(let n=0,o=this.children.length-e;n<o;++n)this.remove(this.children[0])}_updateRadial(e){let n=e.radial,o=n.start*Tn.DEG2RAD,i=n.end*Tn.DEG2RAD,a=o-i,s=new kh(n.rotation[0]*Tn.DEG2RAD,n.rotation[1]*Tn.DEG2RAD,n.rotation[2]*Tn.DEG2RAD),l;switch(n.axis){case"z":l=new ji(0,0,1);break;case"y":l=new ji(0,1,0);break;default:case"x":l=new ji(1,0,0);break}for(let[u,c]of this.children.entries()){c.scale.x=n.scale[0],c.scale.y=n.scale[1],c.scale.z=n.scale[2],c.position.setScalar(0);let p=a/e.count*u-o;switch(n.axis){case"x":c.rotation.set(0,p,0);break;case"y":c.rotation.set(0,0,p);break;case"z":c.rotation.set(p,0,0);break}c.translateOnAxis(l,n.radius),c.position.x+=n.position[0],c.position.y+=n.position[1],c.position.z+=n.position[2],n.alignment===!0?(c.rotation.x+=s.x,c.rotation.y+=s.y,c.rotation.z+=s.z):c.rotation.copy(s)}}_updateLinear(e){if(e.type!=="linear")throw new Error;let n=e.linear,o=new kh(n.rotation[0]*Tn.DEG2RAD,n.rotation[1]*Tn.DEG2RAD,n.rotation[2]*Tn.DEG2RAD);for(let[i,a]of this.children.entries())a.scale.x=1+(n.scale[0]-1)*i,a.scale.y=1+(n.scale[1]-1)*i,a.scale.z=1+(n.scale[2]-1)*i,a.rotation.x=o.x*i,a.rotation.y=o.y*i,a.rotation.z=o.z*i,a.position.x=n.position[0]*i,a.position.y=n.position[1]*i,a.position.z=n.position[2]*i}_updateGrid(e){let n=0,o=e.grid;if(o.useCenter===!0){let i={x:o.count[0]%2===0?2:1,y:o.count[1]%2===0?2:1,z:o.count[2]%2===0?2:1},a=new ji(o.size[0]*(o.count[0]-i.x)*.5,o.size[1]*(o.count[1]-i.y)*.5,o.size[2]*(o.count[2]-i.z)*.5);for(let s=0;s<o.count[0];s++)for(let l=0;l<o.count[1];l++)for(let u=0;u<o.count[2];u++){let c=this.children[n++];c.scale.setScalar(1),c.rotation.set(0,0,0),c.position.x=o.size[0]*s-a.x,c.position.y=o.size[1]*l-a.y,c.position.z=o.size[2]*u-a.z}}else for(let i=0;i<o.count[0];i++)for(let a=0;a<o.count[1];a++)for(let s=0;s<o.count[2];s++){let l=this.children[n++];l.scale.setScalar(1),l.rotation.set(0,0,0),l.position.x=o.size[0]*i,l.position.y=-o.size[1]*a,l.position.z=-o.size[2]*s}}fromClonerState(e){return e.hideBase!==void 0&&this.setHideBase(e.hideBase),zn(this.parameters,e),this.update(),this}};import{HemisphereLight as GN,Scene as UN,Vector3 as VN,Fog as zN,Box3 as jN}from"three";import{Camera as L_,OrthographicCamera as N_,PerspectiveCamera as P_,Vector3 as lr,Object3D as Lg,Quaternion as M_}from"three";import{BoxBufferGeometry as zT}from"three";var Cr=r=>{var t;return t=class extends r{constructor(){super(...arguments);this.isObjectHelper=!0}},t.geometryHelper=new zT(30,30,30),t};import{Camera as XT,LineSegments as YT,BufferGeometry as $T,LineBasicMaterial as KT,Color as Dc,Vector3 as ZT,Float32BufferAttribute as Uh}from"three";import{Ray as jT,Sphere as HT,Matrix4 as WT,Vector3 as Jr}from"three";var Ys=new jT,Ec=new HT,Gh=new WT,Ar=(r,t,e,n,o=!1)=>{let i=t,a=r.matrixWorld;if(i.boundingSphere===null&&i.computeBoundingSphere(),Ec.copy(i.boundingSphere),Ec.applyMatrix4(a),e.ray.intersectsSphere(Ec)===!1||(Gh.copy(a).invert(),Ys.copy(e.ray).applyMatrix4(Gh),i.boundingBox!==null&&Ys.intersectsBox(i.boundingBox)===!1))return;let s,l,u,c,p=i.index,f=i.attributes.position,d=i.drawRange,h,m;if(o===!1){let v=Math.max(0,d.start),x=Math.min(p.count,d.start+d.count);for(h=v,m=x;h<m;h+=3)if(l=p.getX(h),u=p.getX(h+1),c=p.getX(h+2),s=g(r,e,Ys,f,l,u,c),s){s.faceIndex=Math.floor(h/3),n.push(s);return}}else{let x=i.attributes.position,S=new Jr,w=new Jr,b=new Jr,_=new Jr,T=2,I=1/((r.scale.x+r.scale.y+r.scale.z)/3),A=I*I,O=Math.max(0,d.start),C=Math.min(x.count,d.start+d.count);for(let N=O,P=C-1;N<P;N+=T){if(S.fromBufferAttribute(x,N),w.fromBufferAttribute(x,N+1),Ys.distanceSqToSegment(S,w,_,b)>A)continue;_.applyMatrix4(r.matrixWorld);let $=e.ray.origin.distanceTo(_);$<e.near||$>e.far||n.push({distance:$,point:b.clone().applyMatrix4(r.matrixWorld),object:r})}}function g(v,x,S,w,b,_,T){let y=new Jr,I=new Jr,A=new Jr,O=new Jr,C=new Jr;if(y.fromBufferAttribute(w,b),I.fromBufferAttribute(w,_),A.fromBufferAttribute(w,T),S.intersectTriangle(y,I,A,!1,O)===null)return null;C.copy(O),C.applyMatrix4(v.matrixWorld);let P=x.ray.origin.distanceTo(C);return P<x.near||P>x.far?null:{faceIndex:1,distance:P,point:C.clone(),object:v}}};var $s=new ZT,Ht=new XT,Bc=class extends YT{constructor(e){let n=new $T,o=new KT({color:16777215,vertexColors:!0,toneMapped:!1}),i=[],a=[],s={},l=new Dc(15711266),u=new Dc(15711266),c=new Dc(2857471);p("n1","n2",l),p("n2","n4",l),p("n4","n3",l),p("n3","n1",l),p("f1","f2",l),p("f2","f4",l),p("f4","f3",l),p("f3","f1",l),p("n1","f1",l),p("n2","f2",l),p("n3","f3",l),p("n4","f4",l),p("p","n1",u),p("p","n2",u),p("p","n3",u),p("p","n4",u),p("u1","u2",c),p("u2","u3",c),p("u3","u1",c);function p(d,h,m){f(d,m),f(h,m)}function f(d,h){i.push(0,0,0),a.push(h.r,h.g,h.b),s[d]===void 0&&(s[d]=[]),s[d].push(i.length/3-1)}n.setAttribute("position",new Uh(i,3)),n.setAttribute("color",new Uh(a,3));super(n,o);this.type="CameraHelper",this.camera=e,this.camera.updateProjectionMatrix&&this.camera.updateProjectionMatrix(),this.matrix=e.matrixWorld,this.matrixAutoUpdate=!1,this.pointMap=s,this.update()}update(){let e=this.geometry,n=this.pointMap,o=!0;Ht.projectionMatrixInverse.elements=[.5112609807824982,-0,-0,-0,-0,.41421356237309503,-0,-0,-0,-0,-0,-.099999,-0,-0,-1.0000000000000002,.100001];let i=1,a=1,s=o?.8:1e-4;er("n1",n,e,Ht,-i,-a,s),er("n2",n,e,Ht,i,-a,s),er("n3",n,e,Ht,-i,a,s),er("n4",n,e,Ht,i,a,s);let l=s;er("f1",n,e,Ht,-i,-a,l),er("f2",n,e,Ht,i,-a,l),er("f3",n,e,Ht,-i,a,l),er("f4",n,e,Ht,i,a,l);let u=l,c=.5;er("u1",n,e,Ht,i*.7*c,a*1.1,u),er("u2",n,e,Ht,-i*.7*c,a*1.1,u),er("u3",n,e,Ht,0,a*(1.1+.9*c),u),e.getAttribute("position").needsUpdate=!0}dispose(){this.geometry.dispose(),this.material.dispose()}};function er(r,t,e,n,o,i,a){$s.set(o,i,a).unproject(n);let s=t[r];if(s!==void 0){let l=e.getAttribute("position");for(let u=0,c=s.length;u<c;u++)l.setXYZ(s[u],$s.x,$s.y,$s.z)}}var Ks=class extends Cr(Bc){constructor(e){super(e);this.object=e;this.object=e,this.name=`CombinedCameraHelper: ${e.uuid}`}updateMatrixWorld(e){super.updateMatrixWorld(e),this.updateTarget()}updateTarget(){let e=this.object.getTarget();this.updateWorldMatrix(!0,!1),this.worldToLocal(e)}raycast(e,n){Ar(this.object,this.geometry,e,n,!0)}};import{DirectionalLightHelper as QT}from"three";var Vo=class extends Cr(QT){constructor(e,n=15,o=10066329){super(e,n,o);this.object=e;this.added=!1;this.name=`DirectionalLightHelper: ${e.uuid}`}raycast(e,n){Ar(this.object,Vo.geometryHelper,e,n)}};import{AxesHelper as JT}from"three";var zo=class extends Cr(JT){constructor(e,n=15){super(n);this.object=e;this.object.updateMatrixWorld(),this.name=`EmptyObjectHelper: ${e.uuid}`,this.matrix=e.matrixWorld,this.matrixAutoUpdate=!1}raycast(e,n){Ar(this.object,zo.geometryHelper,e,n)}update(){}};import{PointLightHelper as eC}from"three";var jo=class extends Cr(eC){constructor(e,n=15,o=6710886){super(e,n,o);this.object=e;this.name=`PointLightHelper: ${e.uuid}`}raycast(e,n){Ar(this.object,jo.geometryHelper,e,n)}};import{SpotLightHelper as tC,Vector3 as rC}from"three";var Zs=class extends Cr(tC){constructor(e,n=6710886){super(e,n);this.object=e;this.name=`SpotLightHelper: ${e.uuid}`}raycast(e,n){Ar(this.object,Zs.geometryHelper,e,n)}update(){if(this.object!==void 0){let e=Zs._vector,n=this.object.distance?this.object.distance:1e3,o=n*Math.tan(this.object.angle);this.cone.scale.set(o,o,n),e.setFromMatrixPosition(this.object.target.matrixWorld),this.cone.lookAt(e);let i=this.color!==void 0?this.color:this.light.color;if(this.cone.material instanceof Array)for(let a=0,s=this.cone.material.length;a<s;a++)this.cone.material[a].color.set(i);else this.cone.material.color.set(i)}}},Hi=Zs;Hi._vector=new rC;import{CubicBezierCurve as Qs,EllipseCurve as nC,LineCurve as Js,LineCurve3 as oC,MathUtils as iC,QuadraticBezierCurve as Rc,SplineCurve as aC,Vector2 as mt,Vector3 as jh}from"three";var Wi=1e-12,Ho=class{constructor(t){this.position=new mt;this.startPosition=new mt;this.uuid=iC.generateUUID();this.position=t.clone()}start(){this.reset()}reset(){this.startPosition.copy(this.position)}applyOffset(t){this.position.copy(this.startPosition).add(t)}copy(t){return this.position.copy(t.position),this.startPosition.copy(t.startPosition),this}clone(){return new Ho(this.position).copy(this)}toJSON(){return[this.position.x,this.position.y]}},Wo=class extends Ho{constructor(e){super(e.position);this.parent=e}copy(e){return super.copy(e),this}clone(){return new Wo(this.parent).copy(this)}},tr=class extends Ho{constructor(e,n){super(n);this.controls=[];this.roundness=0;this.areControlsDirectionsMirrored=!0;this.uuid=e,this.controls.push(new Wo(this),new Wo(this))}static create(e,n){let o=new tr(e,new mt(...n.position));return o.controls[0].position.set(...n.controlPrevious.position),o.controls[1].position.set(...n.controlNext.position),o.roundness=n.roundness,o.areControlsDirectionsMirrored=n.areControlsDirectionsMirrored,o}getOppositeControl(e){let n=this.controls.indexOf(e);return n===0?this.controls[1]:n===1?this.controls[0]:null}applyOffsetToControls(e,n=1){for(let o=0,i=this.controls.length;o<i;o++){let a=this.controls[o];this.position.distanceTo(a.position)<=n?a.position.copy(this.position):a.applyOffset(e)}}controlsMoved(){return!(this.position.equals(this.controls[0].position)&&this.position.equals(this.controls[1].position))}copy(e){return super.copy(e),this.controls[0].copy(e.controls[0]),this.controls[1].copy(e.controls[1]),this.roundness=e.roundness,this.uuid=e.uuid,this}clone(){return new tr(this.uuid,this.position).copy(this)}toJSON(){return super.toJSON().concat(this.controls[0].toJSON(),this.controls[1].toJSON(),[this.roundness])}computeTangents(){let e=this.curveBefore?.getTangentAt(1),n=this.curveAfter?.getTangentAt(0);return[e,n]}computeNormals(e=new mt,n=new mt){let[o,i]=this.computeTangents();return o&&i&&(Vh(o,e),Vh(i,n)),[e,n]}computeTangent(e=new mt){let[n,o]=this.computeTangents();return n&&o&&e.copy(n).add(o).normalize(),e}computeNormal(e=new mt){let[n,o]=this.computeNormals();return e.copy(n).add(o).normalize(),e}};function Vh(r,t=new mt){let e=r.length();return t.set(-r.y/e,r.x/e)}var kc=r=>r,qo=new mt,el=new mt,sC=new mt,lC=new mt,cC=new mt,uC=new mt,Hh=new jh,Wh=new jh;function qh(r){let t=new mt;t.addVectors(r.v0,qo.subVectors(r.v1,r.v0).multiplyScalar(2/3));let e=new mt;return e.addVectors(r.v2,el.subVectors(r.v1,r.v2).multiplyScalar(2/3)),new Qs(r.v0,t,e,r.v2)}function qi(r,t,e=Number.EPSILON){return Math.abs(r-t)<e}function pC(r,t,e=Number.EPSILON){return r.distanceTo(t)<e}function fC(r,t,e=Number.EPSILON){return r.distanceTo(t)<e}function Gc(r,t,e){let n=Math.sqrt(Math.pow(t.x-r.x,2)+Math.pow(t.y-r.y,2)),o=Math.sqrt(Math.pow(t.x-e.x,2)+Math.pow(t.y-e.y,2)),i=Math.sqrt(Math.pow(e.x-r.x,2)+Math.pow(e.y-r.y,2));return Math.acos((o*o+n*n-i*i)/(2*o*n))}function Xh(r,t,e){return zh(r,t)&&zh(t,e)&&Fc(r.position,t.position,e.position)}function Fc(r,t,e){return qo.copy(t).sub(r).cross(el.copy(e).sub(r))===0}function Yh(r,t,e,n,o){let i=Math.sqrt(Math.pow(t.x-r.x,2)+Math.pow(t.y-r.y,2)),a=(r.y+t.y)/2,s=(r.x+t.x)/2,l=Math.sqrt(Math.pow(e,2)-Math.pow(i/2,2))*(r.y-t.y)/i,u=Math.sqrt(Math.pow(e,2)-Math.pow(i/2,2))*(t.x-r.x)/i;return n.set(s+l,a+u),o.set(s-l,a-u),[n,o]}function $h(r,t,e){let n=r.distanceTo(e),o=t.distanceTo(e);return n<o?t:r}function Kh(r,t,e,n,o,i){let a=t.x-r.x,s=t.y-r.y,l=e.x-r.x,u=e.y-r.y,c=Math.sqrt((a+l)*(a+l)+(s+u)*(s+u)),p;return Gc(t,r,e)>Math.PI&&(c*=-1),qi(u,s)?p=(s+u)*(n/c-.5)*8/3/(a-l):p=(a+l)*(n/c-.5)*8/3/(u-s),o.set(t.x-p*s,t.y+p*a),i.set(e.x+p*u,e.y-p*l),[o,i]}function Uc(r,t){return r.position.equals(r.controls[1].position)&&t.position.equals(t.controls[0].position)}function zh(r,t){return Fc(r.position,r.controls[1].position,t.position)&&Fc(r.position,t.controls[0].position,t.position)}function Zh(r,t,e,n,o=.5){let i=qo.subVectors(t,r).multiplyScalar(o).add(r),a=el.subVectors(e,t).multiplyScalar(o).add(t),s=sC.subVectors(n,e).multiplyScalar(o).add(e),l=i,u=lC.subVectors(a,i).multiplyScalar(o).add(i),c=cC.subVectors(s,a).multiplyScalar(o).add(a),p=s,f=uC.subVectors(c,u).multiplyScalar(o).add(u);return[r.x,r.y,l.x,l.y,u.x,u.y,f.x,f.y,c.x,c.y,p.x,p.y,n.x,n.y]}function Qh(r,t,e=12,n=!0){let o=Wh.set(0,0,0),i,a=0,s=[];for(let l=0;l<t.length;l++){let u=kc(t[l]),c=qo,p=Cn(u,e);s.push(p);for(let f=0;f<=p;f++)if(u instanceof Qs||u instanceof Rc||u instanceof Js){if(u.getPoint(f/p,c),o.set(c.x,c.y,0),i!==void 0&&fC(i,o))continue;i===void 0&&(i=Hh),i.copy(o),r.setXYZ(a,o.x,o.y,o.z),a++}}return n&&a>1&&!(r.getX(a-1)===r.getX(0)&&r.getY(a-1)===r.getY(0)&&r.getZ(a-1)===r.getZ(0))&&(r.setXYZ(a,r.getX(0),r.getY(0),r.getZ(0)),a++),r}function Jh(r,t,e,n=12,o=!0){let i=Wh.set(0,0,0),a=0,s=[];for(let l=0;l<t.length;l++){if(e[l]===!1)continue;let u,c=kc(t[l]),p=qo,f=Cn(c,n);s.push(f);for(let d=0;d<=f;d++)if(c instanceof Qs||c instanceof Rc||c instanceof Js){if(c.getPoint(d/f,p),i.set(p.x,p.y,0),u?.equals(i))continue;u===void 0?u=Hh:(r.setXYZ(a,u.x,u.y,u.z),a++,r.setXYZ(a,i.x,i.y,i.z),a++),u.copy(i)}}return o&&a>1&&!(r.getX(a-1)===r.getX(0)&&r.getY(a-1)===r.getY(0)&&r.getZ(a-1)===r.getZ(0))&&(r.setXYZ(a,r.getX(0),r.getY(0),r.getZ(0)),a++),s}function Vc(r,t=12,e=!1){let n=[];for(let o=0,i=r.length;o<i;o++){let a=r[o],s=0;if(e&&a.roundedCurveCorner!==void 0){let l=Cn(a.roundedCurveCorner,t)*.5;o>0&&(n[o-1]+=l),s+=l}a.curveAfter!==void 0&&(s+=Cn(a.curveAfter,t)),n.push(s)}return r.length>0&&e&&r[0].roundedCurveCorner!==void 0&&(n[r.length-1]+=Cn(r[0].roundedCurveCorner,t)*.5),n}function Cn(r,t=12){return r&&r instanceof nC?t*2:r&&(r instanceof Js||r instanceof oC)?1:r&&r instanceof aC?t*r.points.length:t}function em(r,t,e=12,n=!0){let o,i=0;for(let a=0;a<t.length;a++){let s=kc(t[a]),l=Cn(s,e),u=qo;for(let c=0;c<=l;c++)if(s instanceof Qs||s instanceof Rc||s instanceof Js){if(s.getPoint(c/l,u),o!==void 0&&pC(o,u,Wi))continue;o===void 0&&(o=el),o.copy(u),r.push(u.x,u.y),i++}}return qi(r[0],r[r.length-2],Wi)&&qi(r[1],r[r.length-1],Wi)&&(r.pop(),r.pop()),n&&i>1&&!(qi(r[i-1],r[1],Wi)&&qi(r[i-2],r[0],Wi))&&(r.push(r[0],r[1]),i++),r}import{EventDispatcher as __,Matrix3 as I_,Vector3 as ju}from"three";import{EventDispatcher as dC,Plane as hC,Shape as tm,Vector2 as en,Vector3 as mC,MathUtils as zc,LineCurve as jc,QuadraticBezierCurve as rm,CubicBezierCurve as tl}from"three";var Hc=new en,gC=new en,yC=new en,vC=new en,xC=new en,bC=new en,Ae=class extends tm{constructor(e=100,n=100){super();this.points=[];this.shapeHoles=[];this.eventDispatcher=new dC;this.plane=new hC(new mC(0,0,-1));this.subdivision=0;this.controlSnapDistance=4;this.pointIDs=0;this.isMesh2D=!1;this._roundness=0;this.isClosed=!1;this.useCubicForRoundedCorners=!0;this.uuid=zc.generateUUID();this.needsUpdate=!1;this.roundedCurves=[];this._width=e,this._height=n}static createFromState(e,n,o){let i=new Ae;return i.isClosed=e.isClosed,i.points=e.points.map(a=>tr.create(a.id,a.data)),typeof e.roundness=="number"&&(i.roundness=e.roundness),i.shapeHoles=e.shapeHoles.map(a=>Ae.createFromState(a)),n!==void 0&&o!==void 0&&i.applySize(n,o),i.update(),i}get width(){return this._width}get height(){return this._height}get roundness(){return this._roundness}set roundness(e){if(this._roundness!==e){this._roundness=e;for(let n=0,o=this.points.length;n<o;n++)this.points[n].roundness=e;this.needsUpdate=!0}}getPointsIndexesByIds(e){return e.map(n=>this.getPointIndexById(n)).filter(n=>n>=0)}getPointIndexById(e){let n=this.points.length,o=this.points.findIndex(i=>i.uuid===e);if(o<0){let i=n;for(let a=0,s=this.shapeHoles.length;a<s;a++){let l=this.shapeHoles[a],u=l.points.length,c=l.getPointIndexById(e);if(c<0)i+=u;else return c+i}}return o}getLineIndexById(e){return this.getPointIndexById(e)}getBezierPoint(e){if(e<=this.points.length-1)return this.points[e];if(this.shapeHoles.length>0){let n=this.points.length;for(let o=0,i=this.shapeHoles.length;o<i;o++){let a=this.shapeHoles[o],s=e-n;if(s<=a.points.length-1)return a.points[s];n+=a.points.length}}throw new Error("This shape does not have a point for this index: "+e)}getBezierPointIndex(e){let n=this.points.indexOf(e);if(n>=0)return n;if(n=this.points.length,this.shapeHoles.length>0)for(let o=0,i=this.shapeHoles.length;o<i;o++){let a=this.shapeHoles[o],s=a.points.indexOf(e);if(s>=0)return n+s;n+=a.points.length}return-1}getAllPoints(){let e=[].concat(...this.shapeHoles.map(n=>n.points));return[...this.points,...e]}applySize(e,n){e===0&&(e=.001),n===0&&(n=.001),this._width=e,this._height=n}applyScale(e,n){let o=Hc.set(e,n);for(let i=0,a=this.points.length;i<a;i++){let s=this.points[i];s.position.multiply(o),s.controls[0].position.multiply(o),s.controls[1].position.multiply(o)}for(let i=0,a=this.shapeHoles.length;i<a;i++)this.shapeHoles[i].applyScale(e,n);this._update(!1)}createPoint(e,n=0,o=zc.generateUUID()){let i;e instanceof en?i=e:i=new en(e,n);let a=new tr(o,i);return a.roundness=this.roundness,a}addPoint(e){this.points.push(e),this.needsUpdate=!0}addPointAt(e,n){this.points.splice(n,0,e),this.needsUpdate=!0}getPointByUuid(e){for(let n=0,o=this.points.length;n<o;n++){let i=this.points[n];if(i.uuid===e)return i}for(let n=0,o=this.shapeHoles.length;n<o;n++){let a=this.shapeHoles[n].getPointByUuid(e);if(a)return a}}getFirstPoint(){return this.points[0]}getLastPoint(){return this.points[this.points.length-1]}removePoint(e){let n=this.points.indexOf(e);n>=0&&this.points.splice(n,1),this.needsUpdate=!0}removePointById(e){let n=this.points.find(o=>o.uuid===e);n&&this.removePoint(n)}update(e=!0){for(let n=0,o=this.shapeHoles.length;n<o;n++)this.shapeHoles[n].update(!1);this._update(e)}extractShapePointsToBuffer(e,n=12,o=!1){this.subdivision=n,this.curveDivisions===void 0&&this.computeCurveDivisions(n);let i=o?this.roundedCurveDivisions:this.curveDivisions;return Qh(e,o?this.roundedCurves:this.curves,n,this.autoClose),i.reduce((a,s)=>a+s,0)+1}computeCurveDivisions(e=12){return this.curveDivisions=Vc(this.points,e,!1),this.roundedCurveDivisions=Vc(this.points,e,!0),this.curveDivisions}extractFilteredShapePointsToBuffer(e,n,o=12){return Jh(e,this.curves,n,o,this.autoClose).reduce((a,s)=>a+s,0)*2}extractShapePointsToFlatArray(e,n=12){return this.subdivision=n,this.curveDivisions===void 0&&this.computeCurveDivisions(n),em(e,this.roundedCurves,n,this.autoClose)}getCurveIndexFromVertexId(e,n=!1){let o=0;this.curveDivisions===void 0&&this.computeCurveDivisions(this.subdivision);let i=n?this.roundedCurveDivisions:this.curveDivisions,a=0;n&&this.points[0].roundedCurveCorner!==void 0&&(a=Cn(this.points[0].roundedCurveCorner,this.subdivision)*.5);let s=e-a;s<0&&(s+=i.reduce((l,u)=>l+u,0));for(let l=0,u=i.length;l<u;l++){let c=i[l];if(s<o+c)return[l,(s-o+1)/c];o+=c}return[0,1]}getCurveT(e,n,o){let i=this.points[e],a=this.points[e>=this.points.length-1?0:e+1],s=this.curveDivisions,l=s[e];if(Uc(i,a)){let p=i.position.distanceTo(a.position);return i.position.distanceTo(Hc.set(o.x,o.y))/p}let u=0;for(let p=0;p<e;p++)u+=s[p];return(n-u)/l}dispose(){this.eventDispatcher=null}_applyCurveForPoint(e,n){Uc(n,e)?this.lineTo(e.position.x,e.position.y):this.bezierCurveTo(n.controls[1].position.x,n.controls[1].position.y,e.controls[0].position.x,e.controls[0].position.y,e.position.x,e.position.y);let o=this.curves[this.curves.length-1];e.curveBefore=o,n.curveAfter=o;let i=o.clone();e.roundedCurveBefore=i,n.roundedCurveAfter=i,e.roundedCurveCorner=void 0,this.roundedCurves.push(i)}_update(e=!0){if(this.curves=[],this.roundedCurves=[],!this.points.length)return;for(let o=0,i=this.points.length;o<i;o++){let a=this.points[o];if(o===0)this.moveTo(a.position.x,a.position.y);else{let s=this.points[o-1];this._applyCurveForPoint(a,s)}}let n=this.getLastPoint();if(n?.curveAfter&&(n.curveAfter=void 0),this.isClosed){let o=this.points[0],i=this.points[this.points.length-1];this._applyCurveForPoint(o,i)}if(this.points.length>2){let o=0;for(let i=0,a=this.points.length;i<a;i++){let s=this.points[i],l=this.points[i-1]??this.points[this.points.length-1],u=this.points[i+1]??this.points[0],c=s.roundness,p=l&&u&&Xh(l,s,u);if(!s.controlsMoved()&&c>0&&!p){let f=s.curveBefore,d=s.curveAfter;if(f===void 0||d===void 0)continue;let h=s.roundedCurveBefore,m=s.roundedCurveAfter,g=f.getLength(),v=d.getLength(),x=Math.min(c,g*.499),S=Math.min(c,v*.499),w=Math.min(x,S),b=1-w/g,_=w/v,T=f.getPointAt(b,Hc),y=d.getPointAt(_,gC);this._subSplitCurve(f,h,b,T,void 0),this._subSplitCurve(d,m,_,void 0,y);let I;if(this.useCubicForRoundedCorners){let A=Gc(T,s.position,y)/2,O=Math.tan(A)*T.distanceTo(s.position),[C,N]=Yh(T,y,O,yC,vC),P=$h(C,N,s.position),[G,$]=Kh(P,T,y,O,xC,bC);I=new tl(T.clone(),G.clone(),$.clone(),y.clone())}else I=new rm(T.clone(),s.position.clone(),y.clone());s.roundedCurveCorner=I,this.roundedCurves.splice(i+o,0,I),o++}}}e&&this.eventDispatcher?.dispatchEvent({type:"update"})}_subSplitCurve(e,n,o,i,a){if(e instanceof jc)i!==void 0&&n.v2.copy(i),a!==void 0&&n.v1.copy(a);else{let s=e,l=n,u=s.getUtoTmapping(o,0),c=Zh(s.v0,s.v1,s.v2,s.v3,u);return i!==void 0&&(l.v0.set(c[0],c[1]),l.v1.set(c[2],c[3]),l.v2.set(c[4],c[5]),l.v3.set(c[6],c[7])),a!==void 0&&(l.v0.set(c[6],c[7]),l.v1.set(c[8],c[9]),l.v2.set(c[10],c[11]),l.v3.set(c[12],c[13])),l}return n}clone(){let e=new Ae(this._width,this._height);return e.points=this.points.map(n=>n.clone()),e.isClosed=this.isClosed,e.roundness=this.roundness,e.isMesh2D=this.isMesh2D,e.shapeHoles=this.shapeHoles.map(n=>n.clone()),e}toJSON(){return{points:this.points.reduce((e,n)=>e.concat(n.toJSON()),[]),shapeHoles:this.shapeHoles.map(e=>e.toJSON()),isClosed:this.isClosed,roundness:this.roundness}}fromJSON(e){this.points=[],this.pointIDs=0;let n=e.points.length/7;for(let o=0;o<n;o++){let i=o*7,a=e.points[i+0],s=e.points[i+1],l=e.points[i+2],u=e.points[i+3],c=e.points[i+4],p=e.points[i+5],f=e.points[i+6],d=new tr(zc.generateUUID(),new en(a,s));d.controls[0].position.set(l,u),d.controls[1].position.set(c,p),d.roundness=f,this.points.push(d)}return this.shapeHoles=e.shapeHoles?.length?e.shapeHoles.map(o=>{let i=new Ae;return i.fromJSON(o),i}):[],this.isClosed=e.isClosed,this._roundness=e.roundness,this._update(),this}fromShape(e){let n=(i,a)=>{a instanceof tl&&a.v3.equals(i.position)&&i.controls[0].position.copy(a.v2)},o=i=>{let a=[],s,l;for(s=0,l=i.length;s<l;s++)i[s]instanceof rm&&(i[s]=qh(i[s]));for(s=0,l=i.length;s<l;s++){let p=i[s],f=s>0?i[s-1]:null,d;p instanceof tl?(d=this.createPoint(p.v0),d.controls[1].position.copy(p.v1)):p instanceof jc&&(d=this.createPoint(p.v1)),d!==void 0&&(f!==null&&n(d,f),a.push(d))}let u=i[i.length-1],c=!1;return u instanceof tl?u.v3.equals(a[0].position)&&(a[0].controls[0].position.copy(u.v2),c=!0):u instanceof jc&&u.v2.equals(a[0].position)&&(c=!0),this.isClosed=c,a};return this.points=o(e.curves),e instanceof tm&&(this.shapeHoles=e.holes.map(i=>{let a=new Ae;return a.fromShape(i),a})),this.update(),this}};import{BufferAttribute as nl,BufferGeometry as AC}from"three";var De;(function(r){r[r.ODD=0]="ODD",r[r.NONZERO=1]="NONZERO",r[r.POSITIVE=2]="POSITIVE",r[r.NEGATIVE=3]="NEGATIVE",r[r.ABS_GEQ_TWO=4]="ABS_GEQ_TWO"})(De||(De={}));var Ke;(function(r){r[r.POLYGONS=0]="POLYGONS",r[r.CONNECTED_POLYGONS=1]="CONNECTED_POLYGONS",r[r.BOUNDARY_CONTOURS=2]="BOUNDARY_CONTOURS"})(Ke||(Ke={}));function he(r,t){if(!r)throw t||"Assertion Failed!"}var fe=function(){function r(){}return r.vertEq=function(t,e){return t.s===e.s&&t.t===e.t},r.vertLeq=function(t,e){return t.s<e.s||t.s===e.s&&t.t<=e.t},r.transLeq=function(t,e){return t.t<e.t||t.t===e.t&&t.s<=e.s},r.edgeGoesLeft=function(t){return r.vertLeq(t.Dst,t.Org)},r.edgeGoesRight=function(t){return r.vertLeq(t.Org,t.Dst)},r.vertL1dist=function(t,e){return Math.abs(t.s-e.s)+Math.abs(t.t-e.t)},r.edgeEval=function(t,e,n){he(r.vertLeq(t,e)&&r.vertLeq(e,n));var o=e.s-t.s,i=n.s-e.s;return o+i>0?o<i?e.t-t.t+(t.t-n.t)*(o/(o+i)):e.t-n.t+(n.t-t.t)*(i/(o+i)):0},r.edgeSign=function(t,e,n){he(r.vertLeq(t,e)&&r.vertLeq(e,n));var o=e.s-t.s,i=n.s-e.s;return o+i>0?(e.t-n.t)*o+(e.t-t.t)*i:0},r.transEval=function(t,e,n){he(r.transLeq(t,e)&&r.transLeq(e,n));var o=e.t-t.t,i=n.t-e.t;return o+i>0?o<i?e.s-t.s+(t.s-n.s)*(o/(o+i)):e.s-n.s+(n.s-t.s)*(i/(o+i)):0},r.transSign=function(t,e,n){he(r.transLeq(t,e)&&r.transLeq(e,n));var o=e.t-t.t,i=n.t-e.t;return o+i>0?(e.s-n.s)*o+(e.s-t.s)*i:0},r.vertCCW=function(t,e,n){return t.s*(e.t-n.t)+e.s*(n.t-t.t)+n.s*(t.t-e.t)>=0},r.interpolate=function(t,e,n,o){return t=t<0?0:t,n=n<0?0:n,t<=n?n===0?(e+o)/2:e+(o-e)*(t/(t+n)):o+(e-o)*(n/(t+n))},r.intersect=function(t,e,n,o,i){var a,s,l;r.vertLeq(t,e)||(l=t,t=e,e=l),r.vertLeq(n,o)||(l=n,n=o,o=l),r.vertLeq(t,n)||(l=t,t=n,n=l,l=e,e=o,o=l),r.vertLeq(n,e)?r.vertLeq(e,o)?(a=r.edgeEval(t,n,e),s=r.edgeEval(n,e,o),a+s<0&&(a=-a,s=-s),i.s=r.interpolate(a,n.s,s,e.s)):(a=r.edgeSign(t,n,e),s=-r.edgeSign(t,o,e),a+s<0&&(a=-a,s=-s),i.s=r.interpolate(a,n.s,s,o.s)):i.s=(n.s+e.s)/2,r.transLeq(t,e)||(l=t,t=e,e=l),r.transLeq(n,o)||(l=n,n=o,o=l),r.transLeq(t,n)||(l=t,t=n,n=l,l=e,e=o,o=l),r.transLeq(n,e)?r.transLeq(e,o)?(a=r.transEval(t,n,e),s=r.transEval(n,e,o),a+s<0&&(a=-a,s=-s),i.t=r.interpolate(a,n.t,s,e.t)):(a=r.transSign(t,n,e),s=-r.transSign(t,o,e),a+s<0&&(a=-a,s=-s),i.t=r.interpolate(a,n.t,s,o.t)):i.t=(n.t+e.t)/2},r}(),Xi=function(){function r(){this.next=null,this.prev=null,this.anEdge=null,this.trail=null,this.n=0,this.marked=!1,this.inside=!1}return r}(),rl=function(){function r(t){this.side=t,this.next=null,this.Org=null,this.Sym=null,this.Onext=null,this.Lnext=null,this.Lface=null,this.activeRegion=null,this.winding=0}return Object.defineProperty(r.prototype,"Rface",{get:function(){return this.Sym.Lface},set:function(t){this.Sym.Lface=t},enumerable:!0,configurable:!0}),Object.defineProperty(r.prototype,"Dst",{get:function(){return this.Sym.Org},set:function(t){this.Sym.Org=t},enumerable:!0,configurable:!0}),Object.defineProperty(r.prototype,"Oprev",{get:function(){return this.Sym.Lnext},set:function(t){this.Sym.Lnext=t},enumerable:!0,configurable:!0}),Object.defineProperty(r.prototype,"Lprev",{get:function(){return this.Onext.Sym},set:function(t){this.Onext.Sym=t},enumerable:!0,configurable:!0}),Object.defineProperty(r.prototype,"Dprev",{get:function(){return this.Lnext.Sym},set:function(t){this.Lnext.Sym=t},enumerable:!0,configurable:!0}),Object.defineProperty(r.prototype,"Rprev",{get:function(){return this.Sym.Onext},set:function(t){this.Sym.Onext=t},enumerable:!0,configurable:!0}),Object.defineProperty(r.prototype,"Dnext",{get:function(){return this.Sym.Onext.Sym},set:function(t){this.Sym.Onext.Sym=t},enumerable:!0,configurable:!0}),Object.defineProperty(r.prototype,"Rnext",{get:function(){return this.Sym.Lnext.Sym},set:function(t){this.Sym.Lnext.Sym=t},enumerable:!0,configurable:!0}),r}(),Xo=function(){function r(){this.next=null,this.prev=null,this.anEdge=null,this.coords=[0,0,0],this.s=0,this.t=0,this.pqHandle=0,this.n=0,this.idx=0}return r}(),nm=function(){function r(){var t=new Xo,e=new Xi,n=new rl(0),o=new rl(1);t.next=t.prev=t,t.anEdge=null,e.next=e.prev=e,n.next=n,n.Sym=o,o.next=o,o.Sym=n,this.vHead=t,this.fHead=e,this.eHead=n,this.eHeadSym=o}return r.prototype.makeEdge_=function(t){var e=new rl(0),n=new rl(1);t.Sym.side<t.side&&(t=t.Sym);var o=t.Sym.next;return n.next=o,o.Sym.next=e,e.next=t,t.Sym.next=n,e.Sym=n,e.Onext=e,e.Lnext=n,e.Org=null,e.Lface=null,e.winding=0,e.activeRegion=null,n.Sym=e,n.Onext=n,n.Lnext=e,n.Org=null,n.Lface=null,n.winding=0,n.activeRegion=null,e},r.prototype.splice_=function(t,e){var n=t.Onext,o=e.Onext;n.Sym.Lnext=e,o.Sym.Lnext=t,t.Onext=o,e.Onext=n},r.prototype.makeVertex_=function(t,e,n){var o=t;he(o,"Vertex can't be null!");var i=n.prev;o.prev=i,i.next=o,o.next=n,n.prev=o,o.anEdge=e;var a=e;do a.Org=o,a=a.Onext;while(a!==e)},r.prototype.makeFace_=function(t,e,n){var o=t;he(o,"Face can't be null");var i=n.prev;o.prev=i,i.next=o,o.next=n,n.prev=o,o.anEdge=e,o.trail=null,o.marked=!1,o.inside=n.inside;var a=e;do a.Lface=o,a=a.Lnext;while(a!==e)},r.prototype.killEdge_=function(t){t.Sym.side<t.side&&(t=t.Sym);var e=t.next,n=t.Sym.next;e.Sym.next=n,n.Sym.next=e},r.prototype.killVertex_=function(t,e){var n=t.anEdge,o=n;do o.Org=e,o=o.Onext;while(o!==n);var i=t.prev,a=t.next;a.prev=i,i.next=a},r.prototype.killFace_=function(t,e){var n=t.anEdge,o=n;do o.Lface=e,o=o.Lnext;while(o!==n);var i=t.prev,a=t.next;a.prev=i,i.next=a},r.prototype.makeEdge=function(){var t=new Xo,e=new Xo,n=new Xi,o=this.makeEdge_(this.eHead);return this.makeVertex_(t,o,this.vHead),this.makeVertex_(e,o.Sym,this.vHead),this.makeFace_(n,o,this.fHead),o},r.prototype.splice=function(t,e){var n=!1,o=!1;if(t!==e){if(e.Org!==t.Org&&(o=!0,this.killVertex_(e.Org,t.Org)),e.Lface!==t.Lface&&(n=!0,this.killFace_(e.Lface,t.Lface)),this.splice_(e,t),!o){var i=new Xo;this.makeVertex_(i,e,t.Org),t.Org.anEdge=t}if(!n){var a=new Xi;this.makeFace_(a,e,t.Lface),t.Lface.anEdge=t}}},r.prototype.delete=function(t){var e=t.Sym,n=!1;if(t.Lface!==t.Rface&&(n=!0,this.killFace_(t.Lface,t.Rface)),t.Onext===t)this.killVertex_(t.Org,null);else if(t.Rface.anEdge=t.Oprev,t.Org.anEdge=t.Onext,this.splice_(t,t.Oprev),!n){var o=new Xi;this.makeFace_(o,t,t.Lface)}e.Onext===e?(this.killVertex_(e.Org,null),this.killFace_(e.Lface,null)):(t.Lface.anEdge=e.Oprev,e.Org.anEdge=e.Onext,this.splice_(e,e.Oprev)),this.killEdge_(t)},r.prototype.addEdgeVertex=function(t){var e=this.makeEdge_(t),n=e.Sym;this.splice_(e,t.Lnext),e.Org=t.Dst;var o=new Xo;return this.makeVertex_(o,n,e.Org),e.Lface=n.Lface=t.Lface,e},r.prototype.splitEdge=function(t){var e=this.addEdgeVertex(t),n=e.Sym;return this.splice_(t.Sym,t.Sym.Oprev),this.splice_(t.Sym,n),t.Dst=n.Org,n.Dst.anEdge=n.Sym,n.Rface=t.Rface,n.winding=t.winding,n.Sym.winding=t.Sym.winding,n.idx=t.idx,n.Sym.idx=t.Sym.idx,n},r.prototype.connect=function(t,e){var n=!1,o=this.makeEdge_(t),i=o.Sym;if(e.Lface!==t.Lface&&(n=!0,this.killFace_(e.Lface,t.Lface)),this.splice_(o,t.Lnext),this.splice_(i,e),o.Org=t.Dst,i.Org=e.Org,o.Lface=i.Lface=t.Lface,t.Lface.anEdge=i,!n){var a=new Xi;this.makeFace_(a,o,t.Lface)}return o},r.prototype.zapFace=function(t){var e=t.anEdge,n,o,i,a,s;o=e.Lnext;do n=o,o=n.Lnext,n.Lface=null,n.Rface===null&&(n.Onext===n?this.killVertex_(n.Org,null):(n.Org.anEdge=n.Onext,this.splice_(n,n.Oprev)),i=n.Sym,i.Onext===i?this.killVertex_(i.Org,null):(i.Org.anEdge=i.Onext,this.splice_(i,i.Oprev)),this.killEdge_(n));while(n!=e);a=t.prev,s=t.next,s.prev=a,a.next=s},r.prototype.countFaceVerts_=function(t){var e=t.anEdge,n=0;do n++,e=e.Lnext;while(e!==t.anEdge);return n},r.prototype.mergeConvexFaces=function(t){var e,n,o,i,a,s,l;for(e=this.fHead.next;e!==this.fHead;e=e.next)if(!!e.inside)for(n=e.anEdge,a=n.Org;o=n.Lnext,i=n.Sym,i&&i.Lface&&i.Lface.inside&&(s=this.countFaceVerts_(e),l=this.countFaceVerts_(i.Lface),s+l-2<=t&&fe.vertCCW(n.Lprev.Org,n.Org,i.Lnext.Lnext.Org)&&fe.vertCCW(i.Lprev.Org,i.Org,n.Lnext.Lnext.Org)&&(o=i.Lnext,this.delete(i),n=null,i=null)),!(n&&n.Lnext.Org===a);)n=o;return!0},r.prototype.check=function(){var t=this.fHead,e=this.vHead,n=this.eHead,o,i,a,s,l,u;for(i=t,i=t;(o=i.next)!==t;i=o){he(o.prev===i),l=o.anEdge;do he(l.Sym!==l),he(l.Sym.Sym===l),he(l.Lnext.Onext.Sym===l),he(l.Onext.Sym.Lnext===l),he(l.Lface===o),l=l.Lnext;while(l!==o.anEdge)}for(he(o.prev===i&&o.anEdge===null),s=e,s=e;(a=s.next)!==e;s=a){he(a.prev===s),l=a.anEdge;do he(l.Sym!==l),he(l.Sym.Sym===l),he(l.Lnext.Onext.Sym===l),he(l.Onext.Sym.Lnext===l),he(l.Org===a),l=l.Onext;while(l!==a.anEdge)}for(he(a.prev===s&&a.anEdge===null),u=n,u=n;(l=u.next)!==n;u=l)he(l.Sym.next===u.Sym),he(l.Sym!==l),he(l.Sym.Sym===l),he(l.Org!==null),he(l.Dst!==null),he(l.Lnext.Onext.Sym===l),he(l.Onext.Sym.Lnext===l);he(l.Sym.next===u.Sym&&l.Sym===this.eHeadSym&&l.Sym.Sym===l&&l.Org===null&&l.Dst===null&&l.Lface===null&&l.Rface===null)},r}(),om=function(){function r(){this.handle=null}return r}(),im=function(){function r(){this.key=null,this.node=0}return r}(),SC=function(){function r(t,e){this.leq=e,this.max=0,this.nodes=[],this.handles=[],this.initialized=!1,this.freeList=0,this.size=0,this.max=t,this.nodes=[],this.handles=[];for(var n=0;n<t+1;n++)this.nodes[n]=new om,this.handles[n]=new im;this.initialized=!1,this.nodes[1].handle=1,this.handles[1].key=null}return r.prototype.floatDown_=function(t){var e=this.nodes,n=this.handles,o,i,a;for(o=e[t].handle;;){if(a=t<<1,a<this.size&&this.leq(n[e[a+1].handle].key,n[e[a].handle].key)&&++a,he(a<=this.max),i=e[a].handle,a>this.size||this.leq(n[o].key,n[i].key)){e[t].handle=o,n[o].node=t;break}e[t].handle=i,n[i].node=t,t=a}},r.prototype.floatUp_=function(t){var e=this.nodes,n=this.handles,o,i,a;for(o=e[t].handle;;){if(a=t>>1,i=e[a].handle,a===0||this.leq(n[i].key,n[o].key)){e[t].handle=o,n[o].node=t;break}e[t].handle=i,n[i].node=t,t=a}},r.prototype.init=function(){for(var t=this.size;t>=1;--t)this.floatDown_(t);this.initialized=!0},r.prototype.min=function(){return this.handles[this.nodes[1].handle].key},r.prototype.insert=function(t){var e,n;if(e=++this.size,e*2>this.max){this.max*=2;var o,i;for(i=this.nodes.length,this.nodes.length=this.max+1,o=i;o<this.nodes.length;o++)this.nodes[o]=new om;for(i=this.handles.length,this.handles.length=this.max+1,o=i;o<this.handles.length;o++)this.handles[o]=new im}return this.freeList===0?n=e:(n=this.freeList,this.freeList=this.handles[n].node),this.nodes[e].handle=n,this.handles[n].node=e,this.handles[n].key=t,this.initialized&&this.floatUp_(e),n},r.prototype.extractMin=function(){var t=this.nodes,e=this.handles,n=t[1].handle,o=e[n].key;return this.size>0&&(t[1].handle=t[this.size].handle,e[t[1].handle].node=1,e[n].key=null,e[n].node=this.freeList,this.freeList=n,--this.size,this.size>0&&this.floatDown_(1)),o},r.prototype.delete=function(t){var e=this.nodes,n=this.handles,o;he(t>=1&&t<=this.max&&n[t].key!==null),o=n[t].node,e[o].handle=e[this.size].handle,n[e[o].handle].node=o,--this.size,o<=this.size&&(o<=1||this.leq(n[e[o>>1].handle].key,n[e[o].handle].key)?this.floatDown_(o):this.floatUp_(o)),n[t].key=null,n[t].node=this.freeList,this.freeList=t},r}(),Wc=function(){function r(){this.eUp=null,this.nodeUp=null,this.windingNumber=0,this.inside=!1,this.sentinel=!1,this.dirty=!1,this.fixUpperEdge=!1}return r}(),am=function(){function r(){this.key=null,this.next=null,this.prev=null}return r}(),wC=function(){function r(t,e){this.frame=t,this.leq=e,this.head=new am,this.head.next=this.head,this.head.prev=this.head}return r.prototype.min=function(){return this.head.next},r.prototype.max=function(){return this.head.prev},r.prototype.insert=function(t){return this.insertBefore(this.head,t)},r.prototype.search=function(t){var e=this.head;do e=e.next;while(e.key!==null&&!this.leq(this.frame,t,e.key));return e},r.prototype.insertBefore=function(t,e){do t=t.prev;while(t.key!==null&&!this.leq(this.frame,t.key,e));var n=new am;return n.key=e,n.next=t.next,t.next.prev=n,n.prev=t,t.next=n,n},r.prototype.delete=function(t){t.next.prev=t.prev,t.prev.next=t.next},r}(),TC=function(){function r(){}return r.regionBelow=function(t){return t.nodeUp.prev.key},r.regionAbove=function(t){return t.nodeUp.next.key},r.debugEvent=function(t){},r.addWinding=function(t,e){t.winding+=e.winding,t.Sym.winding+=e.Sym.winding},r.edgeLeq=function(t,e,n){var o=t.event,i=e.eUp,a=n.eUp;if(i.Dst===o)return a.Dst===o?fe.vertLeq(i.Org,a.Org)?fe.edgeSign(a.Dst,i.Org,a.Org)<=0:fe.edgeSign(i.Dst,a.Org,i.Org)>=0:fe.edgeSign(a.Dst,o,a.Org)<=0;if(a.Dst===o)return fe.edgeSign(i.Dst,o,i.Org)>=0;var s=fe.edgeEval(i.Dst,o,i.Org),l=fe.edgeEval(a.Dst,o,a.Org);return s>=l},r.deleteRegion=function(t,e){e.fixUpperEdge&&he(e.eUp.winding===0),e.eUp.activeRegion=null,t.dict.delete(e.nodeUp)},r.fixUpperEdge=function(t,e,n){he(e.fixUpperEdge),t.mesh.delete(e.eUp),e.fixUpperEdge=!1,e.eUp=n,n.activeRegion=e},r.topLeftRegion=function(t,e){var n=e.eUp.Org,o;do e=r.regionAbove(e);while(e.eUp.Org===n);if(e.fixUpperEdge){if(o=t.mesh.connect(r.regionBelow(e).eUp.Sym,e.eUp.Lnext),o===null)return null;r.fixUpperEdge(t,e,o),e=r.regionAbove(e)}return e},r.topRightRegion=function(t){var e=t.eUp.Dst;do t=r.regionAbove(t);while(t.eUp.Dst===e);return t},r.addRegionBelow=function(t,e,n){var o=new Wc;return o.eUp=n,o.nodeUp=t.dict.insertBefore(e.nodeUp,o),o.fixUpperEdge=!1,o.sentinel=!1,o.dirty=!1,n.activeRegion=o,o},r.isWindingInside=function(t,e){switch(t.windingRule){case De.ODD:return(e&1)!==0;case De.NONZERO:return e!==0;case De.POSITIVE:return e>0;case De.NEGATIVE:return e<0;case De.ABS_GEQ_TWO:return e>=2||e<=-2}throw new Error("Invalid winding rulle")},r.computeWinding=function(t,e){e.windingNumber=r.regionAbove(e).windingNumber+e.eUp.winding,e.inside=r.isWindingInside(t,e.windingNumber)},r.finishRegion=function(t,e){var n=e.eUp,o=n.Lface;o.inside=e.inside,o.anEdge=n,r.deleteRegion(t,e)},r.finishLeftRegions=function(t,e,n){for(var o,i=null,a=e,s=e.eUp;a!==n;){if(a.fixUpperEdge=!1,i=r.regionBelow(a),o=i.eUp,o.Org!=s.Org){if(!i.fixUpperEdge){r.finishRegion(t,a);break}o=t.mesh.connect(s.Lprev,o.Sym),r.fixUpperEdge(t,i,o)}s.Onext!==o&&(t.mesh.splice(o.Oprev,o),t.mesh.splice(s,o)),r.finishRegion(t,a),s=i.eUp,a=i}return s},r.addRightEdges=function(t,e,n,o,i,a){var s,l,u,c,p=!0;u=n;do he(fe.vertLeq(u.Org,u.Dst)),r.addRegionBelow(t,e,u.Sym),u=u.Onext;while(u!==o);for(i===null&&(i=r.regionBelow(e).eUp.Rprev),l=e,c=i;s=r.regionBelow(l),u=s.eUp.Sym,u.Org===c.Org;)u.Onext!==c&&(t.mesh.splice(u.Oprev,u),t.mesh.splice(c.Oprev,u)),s.windingNumber=l.windingNumber-u.winding,s.inside=r.isWindingInside(t,s.windingNumber),l.dirty=!0,!p&&r.checkForRightSplice(t,l)&&(r.addWinding(u,c),r.deleteRegion(t,l),t.mesh.delete(c)),p=!1,l=s,c=u;l.dirty=!0,he(l.windingNumber-u.winding===s.windingNumber),a&&r.walkDirtyRegions(t,l)},r.spliceMergeVertices=function(t,e,n){t.mesh.splice(e,n)},r.vertexWeights=function(t,e,n){var o=fe.vertL1dist(e,t),i=fe.vertL1dist(n,t),a=.5*i/(o+i),s=.5*o/(o+i);t.coords[0]+=a*e.coords[0]+s*n.coords[0],t.coords[1]+=a*e.coords[1]+s*n.coords[1],t.coords[2]+=a*e.coords[2]+s*n.coords[2]},r.getIntersectData=function(t,e,n,o,i,a){e.coords[0]=e.coords[1]=e.coords[2]=0,e.idx=-1,r.vertexWeights(e,n,o),r.vertexWeights(e,i,a)},r.checkForRightSplice=function(t,e){var n=r.regionBelow(e),o=e.eUp,i=n.eUp;if(fe.vertLeq(o.Org,i.Org)){if(fe.edgeSign(i.Dst,o.Org,i.Org)>0)return!1;fe.vertEq(o.Org,i.Org)?o.Org!==i.Org&&(t.pq.delete(o.Org.pqHandle),r.spliceMergeVertices(t,i.Oprev,o)):(t.mesh.splitEdge(i.Sym),t.mesh.splice(o,i.Oprev),e.dirty=n.dirty=!0)}else{if(fe.edgeSign(o.Dst,i.Org,o.Org)<0)return!1;r.regionAbove(e).dirty=e.dirty=!0,t.mesh.splitEdge(o.Sym),t.mesh.splice(i.Oprev,o)}return!0},r.checkForLeftSplice=function(t,e){var n=r.regionBelow(e),o=e.eUp,i=n.eUp,a;if(he(!fe.vertEq(o.Dst,i.Dst)),fe.vertLeq(o.Dst,i.Dst)){if(fe.edgeSign(o.Dst,i.Dst,o.Org)<0)return!1;r.regionAbove(e).dirty=e.dirty=!0,a=t.mesh.splitEdge(o),t.mesh.splice(i.Sym,a),a.Lface.inside=e.inside}else{if(fe.edgeSign(i.Dst,o.Dst,i.Org)>0)return!1;e.dirty=n.dirty=!0,a=t.mesh.splitEdge(i),t.mesh.splice(o.Lnext,i.Sym),a.Rface.inside=e.inside}return!0},r.checkForIntersect=function(t,e){var n=r.regionBelow(e),o=e.eUp,i=n.eUp,a=o.Org,s=i.Org,l=o.Dst,u=i.Dst,c,p,f=new Xo,d,h;if(he(!fe.vertEq(u,l)),he(fe.edgeSign(l,t.event,a)<=0),he(fe.edgeSign(u,t.event,s)>=0),he(a!==t.event&&s!==t.event),he(!e.fixUpperEdge&&!n.fixUpperEdge),a===s||(c=Math.min(a.t,l.t),p=Math.max(s.t,u.t),c>p))return!1;if(fe.vertLeq(a,s)){if(fe.edgeSign(u,a,s)>0)return!1}else if(fe.edgeSign(l,s,a)<0)return!1;return r.debugEvent(t),fe.intersect(l,a,u,s,f),he(Math.min(a.t,l.t)<=f.t),he(f.t<=Math.max(s.t,u.t)),he(Math.min(u.s,l.s)<=f.s),he(f.s<=Math.max(s.s,a.s)),fe.vertLeq(f,t.event)&&(f.s=t.event.s,f.t=t.event.t),d=fe.vertLeq(a,s)?a:s,fe.vertLeq(d,f)&&(f.s=d.s,f.t=d.t),fe.vertEq(f,a)||fe.vertEq(f,s)?(r.checkForRightSplice(t,e),!1):!fe.vertEq(l,t.event)&&fe.edgeSign(l,t.event,f)>=0||!fe.vertEq(u,t.event)&&fe.edgeSign(u,t.event,f)<=0?u===t.event?(t.mesh.splitEdge(o.Sym),t.mesh.splice(i.Sym,o),e=r.topLeftRegion(t,e),o=r.regionBelow(e).eUp,r.finishLeftRegions(t,r.regionBelow(e),n),r.addRightEdges(t,e,o.Oprev,o,o,!0),!0):l===t.event?(t.mesh.splitEdge(i.Sym),t.mesh.splice(o.Lnext,i.Oprev),n=e,e=r.topRightRegion(e),h=r.regionBelow(e).eUp.Rprev,n.eUp=i.Oprev,i=r.finishLeftRegions(t,n,null),r.addRightEdges(t,e,i.Onext,o.Rprev,h,!0),!0):(fe.edgeSign(l,t.event,f)>=0&&(r.regionAbove(e).dirty=e.dirty=!0,t.mesh.splitEdge(o.Sym),o.Org.s=t.event.s,o.Org.t=t.event.t),fe.edgeSign(u,t.event,f)<=0&&(e.dirty=n.dirty=!0,t.mesh.splitEdge(i.Sym),i.Org.s=t.event.s,i.Org.t=t.event.t),!1):(t.mesh.splitEdge(o.Sym),t.mesh.splitEdge(i.Sym),t.mesh.splice(i.Oprev,o),o.Org.s=f.s,o.Org.t=f.t,o.Org.pqHandle=t.pq.insert(o.Org),r.getIntersectData(t,o.Org,a,l,s,u),r.regionAbove(e).dirty=e.dirty=n.dirty=!0,!1)},r.walkDirtyRegions=function(t,e){for(var n=r.regionBelow(e),o,i;;){for(;n.dirty;)e=n,n=r.regionBelow(n);if(!e.dirty&&(n=e,e=r.regionAbove(e),e===null||!e.dirty))return;if(e.dirty=!1,o=e.eUp,i=n.eUp,o.Dst!==i.Dst&&r.checkForLeftSplice(t,e)&&(n.fixUpperEdge?(r.deleteRegion(t,n),t.mesh.delete(i),n=r.regionBelow(e),i=n.eUp):e.fixUpperEdge&&(r.deleteRegion(t,e),t.mesh.delete(o),e=r.regionAbove(n),o=e.eUp)),o.Org!==i.Org)if(o.Dst!==i.Dst&&!e.fixUpperEdge&&!n.fixUpperEdge&&(o.Dst===t.event||i.Dst===t.event)){if(r.checkForIntersect(t,e))return}else r.checkForRightSplice(t,e);o.Org===i.Org&&o.Dst===i.Dst&&(r.addWinding(i,o),r.deleteRegion(t,e),t.mesh.delete(o),e=r.regionAbove(n))}},r.connectRightVertex=function(t,e,n){var o,i=n.Onext,a=r.regionBelow(e),s=e.eUp,l=a.eUp,u=!1;if(s.Dst!==l.Dst&&r.checkForIntersect(t,e),fe.vertEq(s.Org,t.event)&&(t.mesh.splice(i.Oprev,s),e=r.topLeftRegion(t,e),i=r.regionBelow(e).eUp,r.finishLeftRegions(t,r.regionBelow(e),a),u=!0),fe.vertEq(l.Org,t.event)&&(t.mesh.splice(n,l.Oprev),n=r.finishLeftRegions(t,a,null),u=!0),u){r.addRightEdges(t,e,n.Onext,i,i,!0);return}fe.vertLeq(l.Org,s.Org)?o=l.Oprev:o=s,o=t.mesh.connect(n.Lprev,o),r.addRightEdges(t,e,o,o.Onext,o.Onext,!1),o.Sym.activeRegion.fixUpperEdge=!0,r.walkDirtyRegions(t,e)},r.connectLeftDegenerate=function(t,e,n){var o,i,a,s,l;if(o=e.eUp,fe.vertEq(o.Org,n)){he(!1),r.spliceMergeVertices(t,o,n.anEdge);return}if(!fe.vertEq(o.Dst,n)){t.mesh.splitEdge(o.Sym),e.fixUpperEdge&&(t.mesh.delete(o.Onext),e.fixUpperEdge=!1),t.mesh.splice(n.anEdge,o),r.sweepEvent(t,n);return}he(!1),e=r.topRightRegion(e),l=r.regionBelow(e),a=l.eUp.Sym,i=s=a.Onext,l.fixUpperEdge&&(he(i!==a),r.deleteRegion(t,l),t.mesh.delete(a),a=i.Oprev),t.mesh.splice(n.anEdge,a),fe.edgeGoesLeft(i)||(i=null),r.addRightEdges(t,e,a.Onext,s,i,!0)},r.connectLeftVertex=function(t,e){var n,o,i,a,s,l,u=new Wc;if(u.eUp=e.anEdge.Sym,n=t.dict.search(u).key,o=r.regionBelow(n),!!o){if(a=n.eUp,s=o.eUp,fe.edgeSign(a.Dst,e,a.Org)===0){r.connectLeftDegenerate(t,n,e);return}if(i=fe.vertLeq(s.Dst,a.Dst)?n:o,n.inside||i.fixUpperEdge){if(i===n)l=t.mesh.connect(e.anEdge.Sym,a.Lnext);else{var c=t.mesh.connect(s.Dnext,e.anEdge);l=c.Sym}i.fixUpperEdge?r.fixUpperEdge(t,i,l):r.computeWinding(t,r.addRegionBelow(t,n,l)),r.sweepEvent(t,e)}else r.addRightEdges(t,n,e.anEdge,e.anEdge,null,!0)}},r.sweepEvent=function(t,e){t.event=e,r.debugEvent(t);for(var n=e.anEdge;n.activeRegion===null;)if(n=n.Onext,n===e.anEdge){r.connectLeftVertex(t,e);return}var o=r.topLeftRegion(t,n.activeRegion);he(o!==null);var i=r.regionBelow(o),a=i.eUp,s=r.finishLeftRegions(t,i,null);s.Onext===a?r.connectRightVertex(t,o,s):r.addRightEdges(t,o,s.Onext,a,a,!0)},r.addSentinel=function(t,e,n,o){var i=new Wc,a=t.mesh.makeEdge();a.Org.s=n,a.Org.t=o,a.Dst.s=e,a.Dst.t=o,t.event=a.Dst,i.eUp=a,i.windingNumber=0,i.inside=!1,i.fixUpperEdge=!1,i.sentinel=!0,i.dirty=!1,i.nodeUp=t.dict.insert(i)},r.initEdgeDict=function(t){t.dict=new wC(t,r.edgeLeq);var e=t.bmax[0]-t.bmin[0],n=t.bmax[1]-t.bmin[1],o=t.bmin[0]-e,i=t.bmax[0]+e,a=t.bmin[1]-n,s=t.bmax[1]+n;r.addSentinel(t,o,i,a),r.addSentinel(t,o,i,s)},r.doneEdgeDict=function(t){for(var e,n=0;(e=t.dict.min().key)!==null;)e.sentinel||(he(e.fixUpperEdge),he(++n===1)),he(e.windingNumber===0),r.deleteRegion(t,e)},r.removeDegenerateEdges=function(t){var e,n,o,i=t.mesh.eHead;for(e=i.next;e!==i;e=n)n=e.next,o=e.Lnext,fe.vertEq(e.Org,e.Dst)&&e.Lnext.Lnext!==e&&(r.spliceMergeVertices(t,o,e),t.mesh.delete(e),e=o,o=e.Lnext),o.Lnext===e&&(o!==e&&((o===n||o===n.Sym)&&(n=n.next),t.mesh.delete(o)),(e===n||e===n.Sym)&&(n=n.next),t.mesh.delete(e))},r.initPriorityQ=function(t){var e,n,o,i=0;for(o=t.mesh.vHead,n=o.next;n!==o;n=n.next)i++;for(i+=8,e=t.pq=new SC(i,fe.vertLeq),o=t.mesh.vHead,n=o.next;n!==o;n=n.next)n.pqHandle=e.insert(n);return n!==o?!1:(e.init(),!0)},r.donePriorityQ=function(t){t.pq=null},r.removeDegenerateFaces=function(t,e){var n,o,i;for(n=e.fHead.next;n!==e.fHead;n=o)o=n.next,i=n.anEdge,he(i.Lnext!==i),i.Lnext.Lnext===i&&(r.addWinding(i.Onext,i),t.mesh.delete(i));return!0},r.computeInterior=function(t,e){e===void 0&&(e=!0);var n,o;if(r.removeDegenerateEdges(t),!r.initPriorityQ(t))return!1;for(r.initEdgeDict(t);(n=t.pq.extractMin())!==null;){for(;o=t.pq.min(),!(o===null||!fe.vertEq(o,n));)o=t.pq.extractMin(),r.spliceMergeVertices(t,n.anEdge,o.anEdge);r.sweepEvent(t,n)}return t.event=t.dict.min().key.eUp.Org,r.debugEvent(t),r.doneEdgeDict(t),r.donePriorityQ(t),r.removeDegenerateFaces(t,t.mesh)?(e&&t.mesh.check(),!0):!1},r}(),CC=function(){function r(){this.mesh=new nm,this.normal=[0,0,0],this.sUnit=[0,0,0],this.tUnit=[0,0,0],this.bmin=[0,0],this.bmax=[0,0],this.windingRule=De.ODD,this.dict=null,this.pq=null,this.event=null,this.vertexIndexCounter=0,this.vertices=[],this.vertexIndices=[],this.vertexCount=0,this.elements=[],this.elementCount=0}return r.prototype.dot_=function(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]},r.prototype.normalize_=function(t){var e=t[0]*t[0]+t[1]*t[1]+t[2]*t[2];if(!e)throw"Zero-size vector!";e=Math.sqrt(e),t[0]/=e,t[1]/=e,t[2]/=e},r.prototype.longAxis_=function(t){var e=0;return Math.abs(t[1])>Math.abs(t[0])&&(e=1),Math.abs(t[2])>Math.abs(t[e])&&(e=2),e},r.prototype.computeNormal_=function(t){var e,n,o,i,a,s,l=[0,0,0],u=[0,0,0],c=[0,0,0],p=[0,0,0],f=[0,0,0],d=[null,null,null],h=[null,null,null],m=this.mesh.vHead;e=m.next;for(var g=0;g<3;++g)i=e.coords[g],u[g]=i,h[g]=e,l[g]=i,d[g]=e;for(e=m.next;e!==m;e=e.next)for(var v=0;v<3;++v)i=e.coords[v],i<u[v]&&(u[v]=i,h[v]=e),i>l[v]&&(l[v]=i,d[v]=e);var x=0;if(l[1]-u[1]>l[0]-u[0]&&(x=1),l[2]-u[2]>l[x]-u[x]&&(x=2),u[x]>=l[x]){t[0]=0,t[1]=0,t[2]=1;return}for(s=0,n=h[x],o=d[x],c[0]=n.coords[0]-o.coords[0],c[1]=n.coords[1]-o.coords[1],c[2]=n.coords[2]-o.coords[2],e=m.next;e!==m;e=e.next)p[0]=e.coords[0]-o.coords[0],p[1]=e.coords[1]-o.coords[1],p[2]=e.coords[2]-o.coords[2],f[0]=c[1]*p[2]-c[2]*p[1],f[1]=c[2]*p[0]-c[0]*p[2],f[2]=c[0]*p[1]-c[1]*p[0],a=f[0]*f[0]+f[1]*f[1]+f[2]*f[2],a>s&&(s=a,t[0]=f[0],t[1]=f[1],t[2]=f[2]);s<=0&&(t[0]=t[1]=t[2]=0,t[this.longAxis_(c)]=1)},r.prototype.checkOrientation_=function(){for(var t=this.mesh.fHead,e,n=this.mesh.vHead,o,i=0,a=t.next;a!==t;a=a.next)if(o=a.anEdge,!(o.winding<=0))do i+=(o.Org.s-o.Dst.s)*(o.Org.t+o.Dst.t),o=o.Lnext;while(o!==a.anEdge);if(i<0){for(e=n.next;e!==n;e=e.next)e.t=-e.t;this.tUnit[0]=-this.tUnit[0],this.tUnit[1]=-this.tUnit[1],this.tUnit[2]=-this.tUnit[2]}},r.prototype.projectPolygon_=function(){var t=this.mesh.vHead,e=[0,0,0],n,o,i=!1;e[0]=this.normal[0],e[1]=this.normal[1],e[2]=this.normal[2],!e[0]&&!e[1]&&!e[2]&&(this.computeNormal_(e),i=!0),n=this.sUnit,o=this.tUnit;var a=this.longAxis_(e);n[a]=0,n[(a+1)%3]=1,n[(a+2)%3]=0,o[a]=0,o[(a+1)%3]=0,o[(a+2)%3]=e[a]>0?1:-1;for(var s=t.next;s!==t;s=s.next)s.s=this.dot_(s.coords,n),s.t=this.dot_(s.coords,o);i&&this.checkOrientation_();for(var l=!0,u=t.next;u!==t;u=u.next)l?(this.bmin[0]=this.bmax[0]=u.s,this.bmin[1]=this.bmax[1]=u.t,l=!1):(u.s<this.bmin[0]&&(this.bmin[0]=u.s),u.s>this.bmax[0]&&(this.bmax[0]=u.s),u.t<this.bmin[1]&&(this.bmin[1]=u.t),u.t>this.bmax[1]&&(this.bmax[1]=u.t))},r.prototype.addWinding_=function(t,e){t.winding+=e.winding,t.Sym.winding+=e.Sym.winding},r.prototype.tessellateMonoRegion_=function(t,e){var n,o;if(n=e.anEdge,!(n.Lnext!==n&&n.Lnext.Lnext!==n))throw"Mono region invalid";for(;fe.vertLeq(n.Dst,n.Org);n=n.Lprev);for(;fe.vertLeq(n.Org,n.Dst);n=n.Lnext);o=n.Lprev;for(var i=void 0;n.Lnext!==o;)if(fe.vertLeq(n.Dst,o.Org)){for(;o.Lnext!==n&&(fe.edgeGoesLeft(o.Lnext)||fe.edgeSign(o.Org,o.Dst,o.Lnext.Dst)<=0);)i=t.connect(o.Lnext,o),o=i.Sym;o=o.Lprev}else{for(;o.Lnext!==n&&(fe.edgeGoesRight(n.Lprev)||fe.edgeSign(n.Dst,n.Org,n.Lprev.Org)>=0);)i=t.connect(n,n.Lprev),n=i.Sym;n=n.Lnext}if(o.Lnext===n)throw"Mono region invalid";for(;o.Lnext.Lnext!==n;)i=t.connect(o.Lnext,o),o=i.Sym;return!0},r.prototype.tessellateInterior_=function(t){for(var e,n=t.fHead.next;n!==t.fHead;n=e)if(e=n.next,n.inside&&!this.tessellateMonoRegion_(t,n))return!1;return!0},r.prototype.discardExterior_=function(t){for(var e,n=t.fHead.next;n!==t.fHead;n=e)e=n.next,n.inside||t.zapFace(n)},r.prototype.setWindingNumber_=function(t,e,n){for(var o,i=t.eHead.next;i!==t.eHead;i=o)o=i.next,i.Rface.inside!==i.Lface.inside?i.winding=i.Lface.inside?e:-e:n?t.delete(i):i.winding=0},r.prototype.getNeighbourFace_=function(t){return!t.Rface||!t.Rface.inside?-1:t.Rface.n},r.prototype.outputPolymesh_=function(t,e,n,o){var i,a=0,s=0,l;n>3&&t.mergeConvexFaces(n);for(var u=t.vHead.next;u!==t.vHead;u=u.next)u.n=-1;for(var c=t.fHead.next;c!==t.fHead;c=c.next)if(c.n=-1,!!c.inside){i=c.anEdge,l=0;do{var u=i.Org;u.n===-1&&(u.n=s,s++),l++,i=i.Lnext}while(i!==c.anEdge);if(l>n)throw"Face vertex greater that support polygon";c.n=a,++a}this.elementCount=a,e===Ke.CONNECTED_POLYGONS&&(a*=2),this.elements=[],this.elements.length=a*n,this.vertexCount=s,this.vertices=[],this.vertices.length=s*o,this.vertexIndices=[],this.vertexIndices.length=s;for(var u=t.vHead.next;u!==t.vHead;u=u.next)if(u.n!==-1){var p=u.n*o;this.vertices[p+0]=u.coords[0],this.vertices[p+1]=u.coords[1],o>2&&(this.vertices[p+2]=u.coords[2]),this.vertexIndices[u.n]=u.idx}for(var f=0,c=t.fHead.next;c!==t.fHead;c=c.next)if(!!c.inside){i=c.anEdge,l=0;do{var u=i.Org;this.elements[f++]=u.n,l++,i=i.Lnext}while(i!==c.anEdge);for(var d=l;d<n;++d)this.elements[f++]=-1;if(e===Ke.CONNECTED_POLYGONS){i=c.anEdge;do this.elements[f++]=this.getNeighbourFace_(i),i=i.Lnext;while(i!==c.anEdge);for(var h=l;h<n;++h)this.elements[f++]=-1}}},r.prototype.outputContours_=function(t,e){var n,o,i=0,a=0;this.vertexCount=0,this.elementCount=0;for(var s=t.fHead.next;s!==t.fHead;s=s.next)if(!!s.inside){o=n=s.anEdge;do this.vertexCount++,n=n.Lnext;while(n!==o);this.elementCount++}this.elements=[],this.elements.length=this.elementCount*2,this.vertices=[],this.vertices.length=this.vertexCount*e,this.vertexIndices=[],this.vertexIndices.length=this.vertexCount;var l=0,u=0,c=0;i=0;for(var s=t.fHead.next;s!==t.fHead;s=s.next)if(!!s.inside){a=0,o=n=s.anEdge;do this.vertices[l++]=n.Org.coords[0],this.vertices[l++]=n.Org.coords[1],e>2&&(this.vertices[l++]=n.Org.coords[2]),this.vertexIndices[u++]=this.vertexIdCallback?this.vertexIdCallback(n):n.Org.idx,a++,n=n.Lnext;while(n!==o);this.elements[c++]=i,this.elements[c++]=a,i+=a}},r.prototype.addContour=function(t,e){this.mesh===null&&(this.mesh=new nm),t<2&&(t=2),t>3&&(t=3);for(var n=null,o=0;o<e.length;o+=t)n===null?(n=this.mesh.makeEdge(),this.mesh.splice(n,n.Sym)):(this.mesh.splitEdge(n),n=n.Lnext),n.Org.coords[0]=e[o+0],n.Org.coords[1]=e[o+1],t>2?n.Org.coords[2]=e[o+2]:n.Org.coords[2]=0,n.Org.idx=this.vertexIndexCounter++,this.edgeCreateCallback&&this.edgeCreateCallback(n),n.winding=1,n.Sym.winding=-1},r.prototype.tesselate=function(t,e,n,o,i,a){if(t===void 0&&(t=De.ODD),e===void 0&&(e=Ke.POLYGONS),a===void 0&&(a=!0),this.vertices=[],this.elements=[],this.vertexIndices=[],this.vertexIndexCounter=0,i&&(this.normal[0]=i[0],this.normal[1]=i[1],this.normal[2]=i[2]),this.windingRule=t,o<2&&(o=2),o>3&&(o=3),!this.mesh)return!1;this.projectPolygon_(),TC.computeInterior(this,a);var s=this.mesh;return e===Ke.BOUNDARY_CONTOURS?this.setWindingNumber_(s,1,!0):this.tessellateInterior_(s),a&&s.check(),e===Ke.BOUNDARY_CONTOURS?this.outputContours_(s,o):this.outputPolymesh_(s,e,n,o),!0},r}();function Zn(r){var t=r.windingRule,e=t===void 0?De.ODD:t,n=r.elementType,o=n===void 0?Ke.POLYGONS:n,i=r.polySize,a=i===void 0?3:i,s=r.vertexSize,l=s===void 0?2:s,u=r.normal,c=u===void 0?[0,0,1]:u,p=r.contours,f=p===void 0?[]:p,d=r.strict,h=d===void 0?!0:d,m=r.debug,g=m===void 0?!1:m;if(!f&&h)throw new Error("Contours can't be empty");if(!!f){var v=new CC;r.edgeCreateCallback&&(v.edgeCreateCallback=r.edgeCreateCallback),r.vertexIdCallback&&(v.vertexIdCallback=r.vertexIdCallback);for(var x=0;x<f.length;x++)v.addContour(l||2,f[x]);return v.tesselate(e,o,a,l,c,h),{vertices:v.vertices,vertexIndices:v.vertexIndices,vertexCount:v.vertexCount,elements:v.elements,elementCount:v.elementCount,mesh:g?v.mesh:void 0}}}var X4=De.ODD,Y4=De.NONZERO,$4=De.POSITIVE,K4=De.NEGATIVE,Z4=De.ABS_GEQ_TWO,Q4=Ke.POLYGONS,J4=Ke.CONNECTED_POLYGONS,ez=Ke.BOUNDARY_CONTOURS;var Yo=class extends AC{constructor(e,n=12,o={}){super();this.type="ShapeGeometry";this.windingRule=De.ODD;this.elementType=Ke.POLYGONS;this.polySize=3;this.vertexSize=2;this.strict=!0;this._shape=e,this._curveSegments=n,this._triangulationOptions=Object.assign({windingRule:De.ODD,elementType:Ke.POLYGONS,polySize:3,vertexSize:2,strict:!0},o);let i=this._shape.extractShapePointsToFlatArray([],this._curveSegments),a=this._shape.shapeHoles.map(h=>h.extractShapePointsToFlatArray([],this._curveSegments)),s,l=!0,u=!0,c,p;for(let h=0,m=i.length/2;h<m;h++){let g=h*2,v=i[g+0],x=i[g+1];if(c!==void 0&&v!==c&&(l=!1),p!==void 0&&x!==p&&(u=!1),c=v,p=x,!l&&!u)break}!l&&!u&&(s=Zn({contours:[i,...a],windingRule:this._triangulationOptions.windingRule,elementType:this._triangulationOptions.elementType,polySize:this._triangulationOptions.polySize,vertexSize:this._triangulationOptions.vertexSize,strict:this._triangulationOptions.strict}));let f=s?.vertexCount??1,d=s?.elementCount??1;if(this._positionAttribute=new nl(new Float32Array(f*3),3),this._normalAttribute=new nl(new Float32Array(f*3),3),this._uvAttribute=new nl(new Float32Array(f*2),2),this._indexAttribute=new nl(new Uint32Array(d*3),1),s){let h=1/0,m=-1/0,g=1/0,v=-1/0;for(let w=0,b=f;w<b;w++){let _=w*2,T=s.vertices[_+0],y=s.vertices[_+1];T<h&&(h=T),T>m&&(m=T),y<g&&(g=y),y>v&&(v=y)}let x=m-h,S=v-g;for(let w=0,b=f;w<b;w++){let _=w*2,T=s.vertices[_+0],y=s.vertices[_+1],I=(T-h)/x,A=(y-g)/S;this._positionAttribute.setXYZ(w,T,y,0),this._normalAttribute.setXYZ(w,0,0,1),this._uvAttribute.setXY(w,I,A)}for(let w=0,b=d;w<b;w++){let _=w*3,T=s.elements[_+0],y=s.elements[_+1],I=s.elements[_+2];this._indexAttribute.setX(_+0,T),this._indexAttribute.setX(_+1,y),this._indexAttribute.setX(_+2,I)}}this.setAttribute("position",this._positionAttribute),this.setAttribute("normal",this._normalAttribute),this.setAttribute("uv",this._uvAttribute),this.setIndex(this._indexAttribute),this.setDrawRange(0,(s?.elementCount??1)*3)}clone(){let e=new Yo(this._shape,this._curveSegments);return e.userData=Pi(this.userData),e}};import{BufferAttribute as il,BufferGeometry as _C}from"three";var ol=class{constructor(t=256,e=!1){this.capacity=t,this.size=0,this.debug=e,this.debug&&console.log(`allocating with cap ${t}`);let n=t*ol.eSize;this.buffer=new ArrayBuffer(n);let o=Float32Array.BYTES_PER_ELEMENT,i=0;this.positions=new Float32Array(this.buffer,i*o,3*t),i+=3*t,this.normals=new Float32Array(this.buffer,i*o,3*t),i+=3*t,this.uvs=new Float32Array(this.buffer,i*o,2*t)}realloc(t,e=!1){if(t<this.size)throw Error("cannot shrink buffer");if(t<=this.capacity&&!e)return;this.debug&&console.log(`resizing from ${this.capacity} \u2192 ${t}`);let n=t*ol.eSize,o=new ArrayBuffer(n),i=Float32Array.BYTES_PER_ELEMENT,a=0,s=new Float32Array(o,a*i,3*t);a+=3*t;let l=new Float32Array(o,a*i,3*t);a+=3*t;let u=new Float32Array(o,a*i,2*t);s.set(this.positions.slice(0,this.size*3)),l.set(this.normals.slice(0,this.size*3)),u.set(this.uvs.slice(0,this.size*2)),this.buffer=o,this.positions=s,this.normals=l,this.uvs=u,this.capacity=t}get(t=1){let e=this.size+t;if(e>this.capacity){let o=this.capacity;for(;e>o;)o*=2;this.realloc(o)}let n=this.size;return this.size=e,n}reserve(t){let e=this.size+t;e>this.capacity&&this.realloc(e)}shrink(){this.debug&&console.log(`shrinking ${this.capacity} \u2192 ${this.size}`),this.realloc(this.size,!0)}},Yi=ol;Yi.eSize=(3+3+2)*Float32Array.BYTES_PER_ELEMENT;var qc=(r,t)=>([e,n])=>(n<e&&(n+=t),(r>=e?r:r+t)<=n),$o=class extends _C{constructor(e,n,o=0,i=12,a=3,s=De.ODD){super();this.type="ShapeGeometry";this.vertexCache={};this._shape=e,this._depth=n,this._bevel=o,this._curveSegments=i,this._bevelSegmentsInput=a,o<=0?(this._bevelSize=0,this._bevelSegments=0):(this._bevelSize=Math.min(o,n/2-1e-12),this._bevelSegments=Math.floor(a));let l=this._shape.extractShapePointsToFlatArray([],i),u=this._shape.shapeHoles.map(y=>{let I=y.extractShapePointsToFlatArray([],i),A=[];for(let O=I.length-1;O>=1;O-=2){let C=I[O-1],N=I[O-0];A.push(C,N)}return A}),c=Zn({windingRule:s,elementType:Ke.BOUNDARY_CONTOURS,vertexSize:2,strict:!0,contours:[l]}),p=Zn({windingRule:De.ODD,elementType:Ke.BOUNDARY_CONTOURS,vertexSize:2,strict:!0,contours:[...u]});if(!c)throw new Error("error generating geometry");let f=c.elementCount;if(p){c.elementCount+=p.elementCount;for(let y=0;y<p.elements.length;y++){let I=p.elements[y],A=y%2===0?c.vertexCount:0;c.elements.push(I+A)}for(let y=0;y<p.vertexIndices.length;y++){let I=p.vertexIndices[y],A=c.vertexCount;c.vertexIndices.push(I+A)}for(let y=0;y<p.vertices.length;y++){let I=p.vertices[y];c.vertices.push(I)}}let d=1/0,h=-1/0,m=1/0,g=-1/0;for(let y=0,I=c.vertexCount;y<I;y++){let A=y*2,O=c.vertices[A+0],C=c.vertices[A+1];O<d&&(d=O),O>h&&(h=O),C<m&&(m=C),C>g&&(g=C)}this._minX=d,this._minY=m,this._width=h-d,this._height=g-m;let v=c.vertexCount*2*(2+this._bevelSegments);this._buffer=new Yi(v);let x=[],S=[];for(let y=c.elementCount-1;y>=0;y--){let I=y>=f,A=y*2,O=c.elements[A+0],C=c.elements[A+1],N=O+C,P={start:O,count:C,normals:[],continuous:[],concave:[]},G=O,$=N-1,Y=O+1,ie=this._shape.roundedCurves.length;do{let R=G-O,D=c.vertices[$*2+0],F=c.vertices[$*2+1],B=c.vertices[G*2+0],X=c.vertices[G*2+1],K=c.vertices[Y*2+0],q=c.vertices[Y*2+1],z=B-D,U=X-F,W=Math.sqrt(z*z+U*U);z/=W,U/=W;let re=B-K,ae=X-q,pe=Math.sqrt(re*re+ae*ae);re/=pe,ae/=pe,P.normals[R*2+0]=-ae,P.normals[R*2+1]=re,P.concave[R]=z*ae-U*re>0;let oe=c.vertexIndices[G];if(Array.isArray(oe))P.continuous[R]=!1;else{let[ne,ee]=this._shape.getCurveIndexFromVertexId(oe-1,!0);if(ee>0&&ee<1)P.continuous[R]=!0;else{let Q=ee===1?ne+1:ne-1;Q=(Q+ie)%ie;let be=ee===1?0:1,ge=this._shape.roundedCurves[ne].getTangent(ee),we=this._shape.roundedCurves[Q].getTangent(be);P.continuous[R]=ge.dot(we)>.95}}I&&(P.normals[R*2+0]*=-1,P.normals[R*2+1]*=-1),[$,G,Y]=[G,Y,Y+1],Y>=N&&(Y-=C)}while(Y!==O+1);let j=[];j.push({bevelI:0,angle:0,size:0,boundary:{vertices:c.vertices.slice(O*2,N*2),vertexCount:C,vertexIndices:new Array(C).fill(!0).map((R,D)=>[D,D]),elements:[0,C],elementCount:1,mesh:null},reverseMap:[],insetPoints:c.vertices.slice(O*2,N*2)});for(let R=1;R<=this._bevelSegments;R++){let D=R/this._bevelSegments*Math.PI/2,F=(1-Math.cos(D))*this._bevelSize,B=[],X=[],K=[],q=[],z=0;for(let W=0;W<C;W++){let re=W*2,ae=(W-1+C)%C*2,pe=c.vertices[P.start*2+re+0],oe=c.vertices[P.start*2+re+1],ne=-P.normals[ae+0]*F,ee=-P.normals[ae+1]*F,Q=-P.normals[re+0]*F,be=-P.normals[re+1]*F;if(P.concave[W]||!P.concave[W]&&I){let ge=Math.atan2(ee,ne),we=Math.atan2(be,Q);we>ge&&(we-=Math.PI*2);let rt=we-ge;if(P.continuous[W]||I){let Oe=ge+rt/2,Ne=Math.cos(Oe)*F,Ee=Math.sin(Oe)*F;B[2*z+0]=pe+Ne*(I?-1:1),B[2*z+1]=oe+Ee*(I?-1:1),q[z]=W,z++}else{let Oe=Math.max(1,Math.floor(i/4*Math.abs(rt)/Math.PI));for(let Ne=0;Ne<=Oe;Ne++){let Ee=ge+rt*(Ne/Oe),Ut=Math.cos(Ee)*F,ln=Math.sin(Ee)*F;B[2*z+0]=pe+Ut,B[2*z+1]=oe+ln,q[z]=W,z++}}}else B[2*z+0]=pe+ne,B[2*z+1]=oe+ee,q[z]=W,X[W]=z,z++,B[2*z+0]=pe,B[2*z+1]=oe,q[z]=W,z++,B[2*z+0]=pe+Q,B[2*z+1]=oe+be,q[z]=W,K[W]=z,z++}let U=Zn({windingRule:De.POSITIVE,elementType:Ke.BOUNDARY_CONTOURS,vertexSize:2,strict:!0,contours:[B],edgeCreateCallback:W=>{let ae=W.Org.idx,pe=q[ae],oe=q[(ae+1)%q.length];W.idx=[pe,oe],W.Sym.idx=[oe,pe]},vertexIdCallback:W=>{let re=W.Lprev.idx;return[re?re[1]:0,W.idx[0]]}});if(!U)throw console.log("Error"),new Error(`error generating bevel geometry for ${R}'th loop`);if(!U.vertexCount)break;for(let W=0;W<U.vertexIndices.length;W++){let[re,ae]=U.vertexIndices[W];if(re===ae)continue;let pe=ae;ae<re&&(pe+=C);for(let oe=re;oe<pe;oe++){let ne=oe%C,ee=(oe+1)%C;if(!P.continuous[ne]||!P.continuous[ee]){U.vertexIndices[W]=[re,ne],U.vertexIndices.splice(W+1,0,[ee,ae]),U.vertices.splice((W+1)*2,0,U.vertices[W*2],U.vertices[W*2+1]);break}}}j.push({bevelI:R,angle:D,size:F,boundary:U,reverseMap:q,insetPoints:B})}let H=(R,D,F)=>{let B=0,X=R.boundary.vertexIndices.length;for(;B<X&&F(R.boundary.vertexIndices[D]);)D=(D+1)%X,B++;return B},V=x.length;for(let R=1;R<j.length;R++){let D=j[R-1],F=j[R],B=D.boundary.vertexIndices.length,X=F.boundary.vertexIndices.length;if(!B||!X)break;let K=P.concave.length,q=0,z=qc(q,C);for(;!D.boundary.vertexIndices.filter(z).length||!F.boundary.vertexIndices.filter(z).length;)q++,z=qc(q,C);let U=D.boundary.vertexIndices.findIndex(z),W=F.boundary.vertexIndices.findIndex(z);do U=(U+1)%B;while(z(D.boundary.vertexIndices[U]));do W=(W+1)%X;while(z(F.boundary.vertexIndices[W]));q=(q+1)%C;let re=q,ae=this.buildBevelVert(P,D,(U-1+B)%B),pe=this.buildBevelVert(P,F,(W-1+X)%X),oe=ae,ne=pe,ee,Q,be=!1;do{z=qc(q,C);let ge=H(D,U,z),we=H(F,W,z),rt=be;if(be=!1,ge&&!we){for(let Oe=0;Oe<ge;Oe++)ee=this.buildBevelVert(P,D,(U+Oe)%B,Oe/(ge-1)),x.push(oe.topN,ee.topP,ne.topN),x.push(ee.bottomP,oe.bottomN,ne.bottomN),oe=ee;be=!0}else if(!ge&&we)for(let Oe=0;Oe<we;Oe++)Q=this.buildBevelVert(P,F,(W+Oe)%X,Oe/(we-1)),x.push(ne.topN,oe.topP,Q.topP),x.push(oe.bottomP,ne.bottomN,Q.bottomP),ne=Q;else if(ge&&we)if(ee=this.buildBevelVert(P,D,U,0),Q=this.buildBevelVert(P,F,W,0),rt?(x.push(oe.topN,Q.topP,ne.topN),x.push(oe.topN,ee.topP,Q.topP),x.push(Q.bottomP,oe.bottomN,ne.bottomN),x.push(Q.bottomP,ee.bottomP,oe.bottomN)):(x.push(ne.topN,oe.topN,ee.topP),x.push(ne.topN,ee.topP,Q.topP),x.push(ee.bottomP,oe.bottomN,ne.bottomN),x.push(ee.bottomP,ne.bottomN,Q.bottomP)),oe=ee,ne=Q,ge===we)for(let Oe=1;Oe<ge;Oe++)ee=this.buildBevelVert(P,D,(U+Oe)%B,Oe/(ge-1)),Q=this.buildBevelVert(P,F,(W+Oe)%X,Oe/(we-1)),x.push(oe.topN,ee.topP,ne.topN),x.push(ne.topN,ee.topP,Q.topP),x.push(ee.bottomP,oe.bottomN,ne.bottomN),x.push(ee.bottomP,ne.bottomN,Q.bottomP),oe=ee,ne=Q;else if(ge>we){let Oe=ge/we,Ne=0;for(let Ee=1;Ee<ge;Ee++)ee=this.buildBevelVert(P,D,(U+Ee)%B,Ee/(ge-1)),x.push(oe.topN,ee.topP,ne.topN),x.push(ee.bottomP,oe.bottomN,ne.bottomN),oe=ee,Ee>(Ne+1)*Oe&&(Ne++,Q=this.buildBevelVert(P,F,(W+Ne)%X,Ne/(we-1)),x.push(ne.topN,ee.topP,Q.topP),x.push(ee.bottomP,ne.bottomN,Q.bottomP),ne=Q)}else{let Oe=we/ge,Ne=0;for(let Ee=1;Ee<we;Ee++)Q=this.buildBevelVert(P,F,(W+Ee)%X,Ee/(we-1)),x.push(ne.topN,ee.topP,Q.topP),x.push(ee.bottomP,ne.bottomN,Q.bottomP),ne=Q,Ee>(Ne+1)*Oe&&(Ne++,ee=this.buildBevelVert(P,D,(U+Ne)%B,Ne/(ge-1)),x.push(oe.topN,ee.topP,ne.topN),x.push(ee.bottomP,oe.bottomN,ne.bottomN),oe=ee)}U=(U+ge)%B,W=(W+we)%X,q=(q+1)%K}while(q!==re)}{let R=j[0];for(let D=0,F=R.boundary.vertexCount;D<F;D++){let B=this.buildBevelVert(P,R,D),X=this.buildBevelVert(P,R,(D+1)%F);x.push(X.topP,B.topN,B.bottomN),x.push(X.topP,B.bottomN,X.bottomP)}}if(I){let R=[];for(let D=x.length-1;D>=V+2;D-=3){let F=x[D-2],B=x[D-1],X=x[D-0];R.push(X,B,F)}x.splice(V,x.length-V,...R)}if(I){let R=[];for(let D=j[j.length-1].boundary.vertices.length-1;D>=1;D-=2){let F=j[j.length-1].boundary.vertices[D-1],B=j[j.length-1].boundary.vertices[D-0];R.push(F,B)}S.push(R)}if(!I){let R=j[j.length-1],D=Zn({windingRule:j.length>1?De.POSITIVE:De.ODD,elementType:Ke.POLYGONS,vertexSize:2,strict:!0,contours:[R.insetPoints,...S]});if(!D)throw new Error("Error generating geometry for surface");u.length===0&&Object.assign(this,{capStartIndex:x.length});for(let F=0;F<D.elementCount*3;F+=3){let B=this.buildSurfaceVert(D,D.elements[F+0]),X=this.buildSurfaceVert(D,D.elements[F+1]),K=this.buildSurfaceVert(D,D.elements[F+2]);x.push(B.top,X.top,K.top),x.push(K.bottom,X.bottom,B.bottom)}}this.vertexCache={}}this._buffer.shrink();let w=new il(Uint32Array.from(x),1),b=new il(this._buffer.positions,3),_=new il(this._buffer.normals,3),T=new il(this._buffer.uvs,2);b.needsUpdate=!0,_.needsUpdate=!0,T.needsUpdate=!0,w.needsUpdate=!0,this.setAttribute("position",b),this.setAttribute("normal",_),this.setAttribute("uv",T),this.setIndex(w)}buildSurfaceVert(e,n){let o=n.toString();if(o in this.vertexCache)return this.vertexCache[o];let i=e.vertices[n*2+0],a=e.vertices[n*2+1],s=(i-this._minX)/this._width,l=(a-this._minY)/this._height,u=this._buffer.get(2),c=u*3,p=u*2,f={top:u+0,bottom:u+1};return this._buffer.positions[c+0]=i,this._buffer.positions[c+1]=a,this._buffer.positions[c+2]=this._depth,this._buffer.normals[c+0]=0,this._buffer.normals[c+1]=0,this._buffer.normals[c+2]=1,this._buffer.uvs[p+0]=s,this._buffer.uvs[p+1]=l,this._buffer.positions[c+3]=i,this._buffer.positions[c+4]=a,this._buffer.positions[c+5]=0,this._buffer.normals[c+3]=0,this._buffer.normals[c+4]=0,this._buffer.normals[c+5]=-1,this._buffer.uvs[p+2]=s,this._buffer.uvs[p+3]=l,this.vertexCache[o]=f,f}buildBevelVert(e,n,o,i=1){let a=`${n.bevelI}:${o}`;if(a in this.vertexCache)return this.vertexCache[a];let[s,l]=n.boundary.vertexIndices[o],u,c,p,f;s!==l?(c=s,u=l,f=!1,p=e.continuous[c]&&e.continuous[u]):(u=s,c=(u-1+e.count)%e.count,f=e.concave[u]&&n.bevelI>0,p=e.continuous[u]||f);let d=Math.cos(n.angle),h=Math.sin(n.angle),m=o*2,g=u*2,v=c*2,x=n.boundary.vertices[m+0],S=n.boundary.vertices[m+1],w=(1-h)*this._bevelSize,b=(x-this._minX)/this._width,_=(S-this._minY)/this._height,T=e.normals[g+0],y=e.normals[g+1],I=e.normals[v+0],A=e.normals[v+1];if(f){let G=I-T,$=A-y;T=T+G*(1-i),y=y+$*(1-i);let Y=Math.sqrt(T*T+y*y);T/=Y,y/=Y}let O=this._buffer.get(p?2:4),C=O*3,N=O*2,P={i:o,fi:u,topP:O+0,topN:O+0,bottomP:O+1,bottomN:O+1};return this._buffer.positions[C+0]=x,this._buffer.positions[C+1]=S,this._buffer.positions[C+2]=this._depth-w,this._buffer.normals[C+0]=T*d,this._buffer.normals[C+1]=y*d,this._buffer.normals[C+2]=h,this._buffer.uvs[N+0]=b,this._buffer.uvs[N+1]=_,this._buffer.positions[C+3]=x,this._buffer.positions[C+4]=S,this._buffer.positions[C+5]=w,this._buffer.normals[C+3]=T*d,this._buffer.normals[C+4]=y*d,this._buffer.normals[C+5]=-h,this._buffer.uvs[N+2]=_,this._buffer.uvs[N+3]=b,p||(O+=2,C+=6,N+=4,P.topP=O+0,P.bottomP=O+1,this._buffer.positions[C+0]=x,this._buffer.positions[C+1]=S,this._buffer.positions[C+2]=this._depth-w,this._buffer.normals[C+0]=I*d,this._buffer.normals[C+1]=A*d,this._buffer.normals[C+2]=h,this._buffer.uvs[N+0]=b,this._buffer.uvs[N+1]=_,this._buffer.positions[C+3]=x,this._buffer.positions[C+4]=S,this._buffer.positions[C+5]=w,this._buffer.normals[C+3]=I*d,this._buffer.normals[C+4]=A*d,this._buffer.normals[C+5]=-h,this._buffer.uvs[N+2]=_,this._buffer.uvs[N+3]=b),this.vertexCache[a]=P,P}clone(){let e=new $o(this._shape,this._depth,this._bevel,this._curveSegments,this._bevelSegmentsInput);return e.userData=Pi(this.userData),e}};var pt=class{static create(r){return this.build(this.normalizeInputs(r))}static normalizeInputs(r,t){let e=Object.assign({},t?.parameters??{width:100,subdivisions:40,roundness:0,extrudeBevelSize:0,extrudeBevelSegments:3,windingRule:De.ODD},r.parameters),n=Math.abs(e.width),o=Math.abs(e.height??e.width),i=Math.abs(e.depth??0),a=r.shape??t?.shape,s=a?.roundness??e.roundness;a!==void 0&&(a instanceof Ae?(a.width!==n||a.height!==o)&&a.applySize(n,o):a=new Ae(n,o).fromJSON(a),r.parameters?.roundness!==void 0&&r.parameters?.roundness>0&&a.update(!1));let l=a??new Ae(n,o);return{parameters:Object.assign(e,{width:n,height:o,depth:i,roundness:s}),shape:l}}static build(r){let{depth:t,extrudeBevelSize:e,extrudeBevelSegments:n,subdivisions:o,roundness:i,windingRule:a}=r.parameters;r.shape.roundness=i;let s;return t<=0?s=new Yo(r.shape,o,{windingRule:a}):s=new $o(r.shape,t,e,o,n,a),Object.assign(s,{userData:{...r,type:"VectorGeometry"}})}};import{Mesh as C_,Matrix4 as A_}from"three";import{ConeBufferGeometry as LC}from"three";import{BufferGeometry as IC,CylinderBufferGeometry as OC,Float32BufferAttribute as Xc,Vector2 as rr,Vector3 as al}from"three";var lm=class{static create(r){return this.build(this.normalizeInputs(r))}static normalizeInputs(r,t){let e=Object.assign({},t?.parameters??{width:100,radialSegments:64,heightSegments:1,openEnded:!1,thetaStart:0,thetaLength:360,cornerRadius:0,cornerSegments:8,hollow:0},r.parameters),n=e.width/2,o=e.radiusTop??n,i=e.radiusBottom??n;return o===i?(o=n,i=n):o>i?(o=n,i=i*n/o):(o=o*n/i,i=n),{parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??e.width),radiusTop:o,radiusBottom:i})}}static build(r){let{width:t,depth:e,height:n,radialSegments:o,heightSegments:i,openEnded:a,thetaStart:s,thetaLength:l,radiusTop:u,radiusBottom:c,cornerRadius:p,cornerSegments:f,hollow:d}=r.parameters,h;return p||d?h=new $i(u,c,n,o,i,a,s,l*Math.PI/180,p,p,f,d):h=new OC(u,c,n,o,i,a,s,l*Math.PI/180),h.scale(1,1,e/t),Object.assign(h,{userData:{...r,type:"CylinderGeometry"}})}};function An(r,t,e){e.x=r.x*t.x,e.y=r.y,e.z=r.x*t.y}function sm(r){return new rr(r.y,-r.x)}var $i=class extends IC{constructor(t,e,n,o,i,a,s,l,u,c,p,f,d=!1){super(),this.type="RoundedCylinderBufferGeometry",t=t!==void 0?t:1,e=e!==void 0?e:1,n=n||1,o=Math.floor(o)||8,i=Math.floor(i)||1,a=a!==void 0?a:!1,s=s!==void 0?s:0,l=l!==void 0?l:Math.PI*2,a&&(u=0,c=0);let h=[],m=[],g=[],v=[],x=0,S=n/2,w=new al,b=new al;d&&t==0&&(t=u),d&&e==0&&(e=c);let _=new rr(t,S),T=new rr(e,-S),y=null,I=null,A=null,O=null,C=_.clone().sub(T),N=0,P=0,G=0;f>0&&(N=Math.min(t,e)*(1-f),P=t-N,G=e-N);let $=_.clone();$.x-=N;let Y=Math.PI-C.angle(),ie=C.angle(),j=Math.tan(ie/2),H=Math.tan(Y/2),V=j+H,R=f?V:H,D=f?V:j;if(u=Math.min(u,(t-P)/R,C.length()/V),c=Math.min(c,(e-G)/D,C.length()/V),u>0){let z=u/j;y=_.clone().sub(new rr(z,u)),f&&(A=y.clone(),A.x-=N-V*u),_.sub(C.clone().setLength(z))}if(c>0){let z=c/H;I=T.clone().sub(new rr(z,-c)),T.add(C.clone().setLength(z)),f&&(O=I.clone(),O.x-=N-V*c,$.sub(C.clone().setLength(z)))}C=_.clone().sub(T);let F=C.length()<.5,B=[];for(let z=0;z<=o;z++){let U=[],W=z/o,re=W*l+s,ae=new rr(Math.sin(re),Math.cos(re));O&&I?(X(U,W,ae,Y,c,O,-1,!0),X(U,W,ae,ie,c,I,-1,!1)):I?(K(U,ae,I.x,0,-1),X(U,W,ae,ie,c,I,-1,!1)):a||K(U,ae,e,G,-1);let pe=sm(C).normalize();if(An(pe,ae,w),!F)for(let oe=0;oe<=i;oe++){let ne=oe/i,ee=C.clone().multiplyScalar(ne).add(T);An(ee,ae,b),m.push(b.x,b.y,b.z),g.push(w.x,w.y,w.z),v.push(W,.5+b.y/n),U.push(x++)}if(A&&y?(X(U,W,ae,Y,u,y,1,!1),X(U,W,ae,ie,u,A,1,!0)):y?(X(U,W,ae,Y,u,y,1,!1),K(U,ae,y.x,0,1)):a||K(U,ae,t,P,1),f&&!F){let oe=sm(C).multiplyScalar(-1).normalize();An(oe,ae,w);for(let ne=0;ne<=i;ne++){let ee=ne/i,Q=C.clone().multiplyScalar(-ee).add($);An(Q,ae,b),m.push(b.x,b.y,b.z),g.push(w.x,w.y,w.z),v.push(W,.5+b.y/n),U.push(x++)}}f&&!a&&U.push(U[0]),B.push(U)}for(let z=0;z<B.length-1;z++)for(let U=0;U<B[0].length-1;U++){if(a&&f&&U==i)continue;let W=B[z][U],re=B[z+1][U],ae=B[z+1][U+1],pe=B[z][U+1],oe=m[ae*3+0],ne=m[ae*3+2];h.push(W,re,pe),(oe!=0||ne!=0)&&h.push(re,ae,pe)}l<Math.PI*2&&(q(-1,B[0],s),q(1,B[B.length-1],s+l)),this.setIndex(h),this.setAttribute("position",new Xc(m,3)),this.setAttribute("normal",new Xc(g,3)),this.setAttribute("uv",new Xc(v,2));function X(z,U,W,re,ae,pe,oe,ne){for(let ee=0;ee<p+1;ee++){let Q=ee/p,be=oe<0?Q:1-Q;ne&&(be-=1),be*=re;let ge=new rr(Math.sin(be),Math.cos(be)*oe),we=ge.clone().multiplyScalar(ae).add(pe);An(we,W,b),m.push(b.x,b.y,b.z),An(ge,W,w),g.push(w.x,w.y,w.z),v.push(U,.5+b.y/n),z.push(x++)}}function K(z,U,W,re,ae){let pe=new al,oe=new rr,ne=[W,re];ae<0&&ne.reverse();for(let ee of ne)oe.set(ee,S*ae),An(oe,U,pe),m.push(pe.x,pe.y,pe.z),g.push(0,ae,0),v.push(.5,.5),z.push(x++)}function q(z,U,W){let re=new rr(Math.sin(W),Math.cos(W)),ae=new rr(-Math.cos(W),Math.sin(W)),pe=new al,oe=z<0?(Q,be,ge)=>h.push(Q,be,ge):(Q,be,ge)=>h.push(Q,ge,be),ne=new rr((t+e+P+G)/4,0);An(ne,re,pe),m.push(pe.x,pe.y,pe.z),g.push(ae.x,0,ae.y),v.push(.5,.5);let ee=x++;for(let Q of U){let be=m.slice(Q*3,Q*3+3);m.push(...be),g.push(ae.x,0,ae.y);let ge=v.slice(Q*2,Q*2+2);v.push(...ge),x++}for(let Q=ee+1;Q<x-1;Q++)oe(ee,Q,Q+1);oe(ee,x-1,ee+1)}}};var cm=class{static create(r){return this.build(this.normalizeInputs(r))}static normalizeInputs(r,t){let e=Object.assign({},t?.parameters??{width:100,radialSegments:32,heightSegments:8,openEnded:!1,thetaStart:0,thetaLength:360,cornerRadiusTop:0,cornerRadiusBottom:0,cornerSegments:8},r.parameters);return{parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??e.width)})}}static build(r){let{width:t,depth:e,height:n,radialSegments:o,heightSegments:i,openEnded:a,thetaStart:s,thetaLength:l,cornerRadiusTop:u,cornerRadiusBottom:c,cornerSegments:p}=r.parameters,f;return u>0||c>0||l<360?f=new $i(0,t/2,n,o,i,a,s,l*Math.PI/180,u,c,p,0,!0):f=new LC(t/2,n,o,i,a),f.scale(1,1,e/t),Object.assign(f,{userData:{...r,type:"ConeGeometry"}})}};import{BoxBufferGeometry as NC,BufferGeometry as PC,Float32BufferAttribute as Yc,Vector3 as Ki}from"three";var um=class{static create(r){return this.build(this.normalizeInputs(r))}static normalizeInputs(r,t){let e=Object.assign({},t?.parameters??{width:100,widthSegments:1,heightSegments:1,depthSegments:1,cornerRadius:0,cornerSegments:8},r.parameters);return{parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??e.width)})}}static build(r){let{width:t,height:e,depth:n,widthSegments:o,heightSegments:i,depthSegments:a,cornerRadius:s,cornerSegments:l}=r.parameters,u;return s==0?u=new NC(t,e,n,o,i,a):u=new Kc(t,e,n,o,i,a,s,l),Object.assign(u,{userData:{...r,type:"CubeGeometry"}})}},$c=Math.PI/2,Kc=class extends PC{constructor(t=1,e=1,n=1,o=1,i=1,a=1,s=0,l=4){super(),this.type="BoxBufferGeometry";let u=this;o=Math.floor(o),i=Math.floor(i),a=Math.floor(a),l=Math.floor(l),s=Math.min(s,t/2,e/2,n/2);let c=[],p=[],f=[],d=[],h=0,m=0;g("z","y","x",-1,-1,n,e,t,a,i,0),g("z","y","x",1,-1,n,e,-t,a,i,1),g("x","z","y",1,1,t,n,e,o,a,2),g("x","z","y",1,-1,t,n,-e,o,a,3),g("x","y","z",1,-1,t,e,n,o,i,4),g("x","y","z",-1,-1,t,e,-n,o,i,5),s>0&&(v("z","y","x",-1,-1,1,n,e,t,a,0),v("z","y","x",1,-1,-1,n,e,t,a,1),v("z","y","x",-1,1,-1,n,e,t,a,1),v("z","y","x",1,1,1,n,e,t,a,0),v("x","y","z",-1,-1,-1,t,e,n,o,0),v("x","y","z",1,-1,1,t,e,n,o,1),v("x","y","z",-1,1,1,t,e,n,o,0),v("x","y","z",1,1,-1,t,e,n,o,1),v("y","x","z",-1,-1,1,e,t,n,i,0),v("y","x","z",1,-1,-1,e,t,n,i,1),v("y","x","z",1,1,1,e,t,n,i,1),v("y","x","z",-1,1,-1,e,t,n,i,0),x(1,1,1),x(-1,1,1),x(1,-1,1),x(-1,-1,1),x(1,1,-1),x(-1,1,-1),x(1,-1,-1),x(-1,-1,-1)),this.setIndex(c),this.setAttribute("position",new Yc(p,3)),this.setAttribute("normal",new Yc(f,3)),this.setAttribute("uv",new Yc(d,2));function g(S,w,b,_,T,y,I,A,O,C,N){let P=(y-2*s)/O,G=(I-2*s)/C,$=y/2-s,Y=I/2-s,ie=A/2,j=O+1,H=C+1,V=0,R=0,D=new Ki;for(let F=0;F<H;F++){let B=F*G-Y;for(let X=0;X<j;X++){let K=X*P-$;D[S]=K*_,D[w]=B*T,D[b]=ie,p.push(D.x,D.y,D.z),D[S]=0,D[w]=0,D[b]=A>0?1:-1,f.push(D.x,D.y,D.z),d.push(X/O),d.push(1-F/C),V+=1}}for(let F=0;F<C;F++)for(let B=0;B<O;B++){let X=h+B+j*F,K=h+B+j*(F+1),q=h+(B+1)+j*(F+1),z=h+(B+1)+j*F;c.push(X,K,z),c.push(K,q,z),R+=6}u.addGroup(m,R,N),m+=R,h+=V}function v(S,w,b,_,T,y,I,A,O,C,N){let P=(I-2*s)/C,G=I/2-s,$=A/2-s,Y=O/2,ie=C+1,j=0,H=0,V=new Ki,R=new Ki;for(let D=0;D<l+1;D++){let F=D/l*$c,B=Math.sin(F)*s,X=(1-Math.cos(F))*s,K=Math.sin(F),q=Math.cos(F);V[w]=($+B)*T,V[b]=(Y-X)*y,R[S]=0,R[w]=K*Math.sign(V[w]),R[b]=q*Math.sign(V[b]);for(let z=0;z<ie;z++){let U=z*P-G;V[S]=U*_,p.push(V.x,V.y,V.z),f.push(R.x,R.y,R.z),d.push(z/C),d.push(0),j+=1}}for(let D=0;D<l;D++)for(let F=0;F<C;F++){let B=h+F+ie*D,X=h+F+ie*(D+1),K=h+(F+1)+ie*(D+1),q=h+(F+1)+ie*D;c.push(B,X,q),c.push(X,K,q),H+=6}u.addGroup(m,H,N),m+=H,h+=j}function x(S,w,b){let _=new Ki,T=new Ki(t/2,e/2,n/2);T.subScalar(s);let y=[],I=S*w*b>0?(O,C,N)=>c.push(O,C,N):(O,C,N)=>c.push(O,N,C);for(let O=0;O<=l;O++){let C=[],N=$c*(1-O/l),P=Math.cos(N),G=Math.sin(N),$=0;for(let Y=0;Y<=O;Y++){let ie=Math.cos($),j=Math.sin($);_.x=P*ie,_.y=G,_.z=P*j;let H=T.clone().addScaledVector(_,s);p.push(S*H.x,w*H.y,b*H.z),f.push(S*_.x,w*_.y,b*_.z),d.push(0,0),C.push(h++),$+=$c/O}y.push(C)}let A=y.length-1;for(let O=0;O<A;O++){let C=y[O],N=y[O+1],P=C.length-1;I(C[0],N[1],N[0]);for(let G=1;G<=P;G++)I(C[G-1],C[G],N[G]),I(C[G],N[G+1],N[G])}}}};import{BufferGeometry as MC,Float32BufferAttribute as Zc,Triangle as EC,Vector3 as tn,Vector2 as Qc}from"three";var _n=class extends MC{constructor(t=[],e=[],n="",o=1,i=.2,a=4){super(),this.type="PolyhedronGeometryRound";let s=[],l=[],u=[];c(),p(),this.setAttribute("position",new Zc(s,3)),this.setAttribute("normal",new Zc(u,3)),this.setAttribute("uv",new Zc(l,2));return;function c(){i=Math.min(1-1e-5,i),i==0&&(a=0);let d={IcosahedronGeometry:5,DodecahedronGeometry:3,HexahedronGeometry:3,OctahedronGeometry:4,TetrahedronGeometry:3}[n],h=new tn,m=h.clone(),g=new EC,v=i*o,x=o-v,S=a+1,w=new tn,b=(j,H)=>w.subVectors(j,H).normalize(),_=(j,H)=>Array(j).fill(void 0).map(H),T=_(t.length/3,(j,H)=>new tn().fromArray(t,H*3).setLength(o)),y=[],I=1e6;for(let j=0;j<T.length;j++){let H=T[j],V=[],R,D,F,B=1e10,X=-1;for(;(X=e.indexOf(j,X+1))!=-1;){let U=X-X%3;R=e[U+(X+1)%3],D=e[U+(X+2)%3],F=H.distanceToSquared(T[R]),B=Math.min(B,F),V.push([R,D,F])}B+=1e-6;let K=[],q=0,z=V.length;for(let U=0;U<z;U++){[R,D,F]=V[q];let W=y[R]?.includes(j)==!0;F<=B&&K.push(R+ +W*I),q=V.findIndex(re=>re[0]==D)}y.push(K)}let A=[];{let j=0,H=0,V,R,D=d==3;for(let F=0;F<=a;F++){V=F*(F+1)/2,R=(F+1)*(F+2)/2;for(let B=0;B<a-F;B++)[j,H]=[V+B+F+2,R+B+F+3],A.push(V,R,...D?[H,V]:[j,R],H,j),[V,R]=[j,H];A.push(V,R,V+a+2)}}let O=h.clone(),C=h.clone(),N=h.clone(),P=h.clone(),G=h.clone(),$=[],Y=_(T.length,()=>_(d,()=>h.clone()));for(let j=0;j<T.length;j++){h.copy(T[j]).normalize(),O.copy(h).multiplyScalar(x);let H=y[j];for(let K=0;K<H.length;K++){let q=H[K],z=H[(K+1)%d];g.setFromPointsAndIndices(T,j,q%I,z%I),g.b.sub(g.a).setLength(1e10).add(g.a),g.c.sub(g.a).setLength(1e10).add(g.a),g.closestPointToPoint(O,Y[j][K])}let V=[],R=[],D=[],F=new tn;a==0&&[...Y[j]].reduce((K,q)=>K.add(q),F).multiplyScalar(1/d);for(let K=0;K<d;K++){let q=[],z=(K-1+d)%d,U=Y[j][z],W=Y[j][K];h.copy(U).sub(O),m.copy(W).sub(O);let re=O.angleTo(h),ae=h.angleTo(m),pe=Math.cos(re)*v;a==0?C.copy(F):C.copy(O).setLength(x+pe),R.push(pe);let oe=[C,U,W];for(let ne=0;ne<2;ne++){let ee=oe[ne],Q=oe[ne+1];P.subVectors(ee,O),G.subVectors(Q,O),N.crossVectors(P,G).normalize();for(let be=0;be<S;be++){let ge=[re,ae][ne]*be/S;h.copy(P).applyAxisAngle(N,ge).add(O),V.push(h.clone()),ne&&(b(h,O),q.push([be==0?ee:h.clone(),w.clone()]))}ne&&(b(Q,O),q.push([Q,w.clone()]))}D.push(q)}$.push(D);let B=2*S,X=2;for(let K=0;K<d;K++){let q=B*K,z=B*((K+1)%d),U=[V[q]];for(let re=1;re<S;re++){P=V[q+re],G=V[z+re],U.push(P);for(let ae=1,pe=re-X+1;ae<=pe;ae++)h.lerpVectors(P,G,ae/(pe+1)),h.sub(O).setLength(R[K]).add(O),U.push(h.clone());U.push(G)}for(let re=0;re<S;re++)U.push(V[re+S+q]);U.push(V[z+S]);let W=A.map(re=>U[re]);s.push(...W.map(re=>[re.x,re.y,re.z]).flat()),u.push(...W.map(re=>(b(re,O),[w.x,w.y,w.z])).flat())}}let ie=[];for(let j=0;j<y.length;j++)for(let H=0;H<d;H++){let V=y[j][H];if(V<I){let R=y[V].findIndex(B=>B%I==j),D=$[j][H],F=$[V][R];for(let B=0;B<S;B++){let X=D[B],K=F[S-B],q=D[B+1],z=F[S-(B+1)];[X,K,q,q,K,z].forEach(U=>{s.push(U[0].x,U[0].y,U[0].z),u.push(U[1].x,U[1].y,U[1].z)})}ie.push(D[0][0],F[S][0],D[S][0],F[0][0])}}for(;ie.length;){let j,H,V,R;[j,H]=ie.splice(0,2);let D=[j];for(;j!=H;)D.push(H),V=ie.indexOf(H),R=V%2,H=ie.splice(V-R,2)[1-R];w.subVectors(D[0],D[1]).cross(h.subVectors(D[0],D[2])).normalize();let F=w.dot(D[0])<0;F&&w.negate();for(let B=1;B<=D.length-2;B++)[D[B+ +F],D[B+1-+F],D[0]].forEach(X=>{s.push(X.x,X.y,X.z),u.push(w.x,w.y,w.z)})}}function p(){let f=new tn;for(let T=0;T<s.length;T+=3){f.x=s[T+0],f.y=s[T+1],f.z=s[T+2];let y=b(f)/2/Math.PI+.5,I=_(f)/Math.PI+.5;l.push(y,1-I)}let d=new tn,h=new tn,m=new tn,g=new tn,v=new Qc,x=new Qc,S=new Qc,w=(T,y,I,A)=>{A<0&&T.x===1&&(l[y]=T.x-1),I.x===0&&I.z===0&&(l[y]=A/2/Math.PI+.5)};for(let T=0,y=0;T<s.length;T+=9,y+=6){d.set(s[T+0],s[T+1],s[T+2]),h.set(s[T+3],s[T+4],s[T+5]),m.set(s[T+6],s[T+7],s[T+8]),v.set(l[y+0],l[y+1]),x.set(l[y+2],l[y+3]),S.set(l[y+4],l[y+5]),g.copy(d).add(h).add(m).divideScalar(3);let I=b(g);w(v,y+0,d,I),w(x,y+2,h,I),w(S,y+4,m,I)}for(let T=0;T<l.length;T+=6){let y=l[T+0],I=l[T+2],A=l[T+4],O=Math.max(y,I,A),C=Math.min(y,I,A);O>.9&&C<.1&&(y<.2&&(l[T+0]+=1),I<.2&&(l[T+2]+=1),A<.2&&(l[T+4]+=1))}function b(T){return Math.atan2(T.z,-T.x)}function _(T){return Math.atan2(-T.y,Math.sqrt(T.x*T.x+T.z*T.z))}}}static fromJSON(t){return new _n(t.vertices,t.indices,t.radius,t.corner,t.cornerSides)}};import{DodecahedronBufferGeometry as DC}from"three";var pm=class{static create(r){return this.build(this.normalizeInputs(r))}static normalizeInputs(r,t){let e=Object.assign({},t?.parameters??{width:100,detail:0,corner:0,cornerSides:4},r.parameters);return{parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??e.width)})}}static build(r){let{width:t,height:e,depth:n,detail:o,corner:i,cornerSides:a}=r.parameters,s=o===0&&i!==0?new Zi(t*.5,i,a):new DC(t*.5,o);return s.scale(1,e/t,n/t),Object.assign(s,{userData:{...r,type:"DodecahedronGeometry"}})}},Zi=class extends _n{constructor(t=1,e=.2,n=4){let o=(1+Math.sqrt(5))/2,i=1/o,a=[-1,-1,-1,-1,-1,1,-1,1,-1,-1,1,1,1,-1,-1,1,-1,1,1,1,-1,1,1,1,0,-i,-o,0,-i,o,0,i,-o,0,i,o,-i,-o,0,-i,o,0,i,-o,0,i,o,0,-o,0,-i,o,0,-i,-o,0,i,o,0,i],s=[3,11,7,3,7,15,3,15,13,7,19,17,7,17,6,7,6,15,17,4,8,17,8,10,17,10,6,8,0,16,8,16,2,8,2,10,0,12,1,0,1,18,0,18,16,6,10,2,6,2,13,6,13,15,2,16,18,2,18,3,2,3,13,18,1,9,18,9,11,18,11,3,4,14,12,4,12,0,4,0,8,11,9,5,11,5,19,11,19,7,19,5,14,19,14,4,19,4,17,1,12,14,1,14,5,1,5,9],l="DodecahedronGeometry";super(a,s,l,t,e,n),this.type=l}static fromJSON(t){return new Zi(t.radius,t.corner,t.cornerSides)}};var eu=Math.PI*2;function Jc({x:r,y:t},e,n,o,i){return{x:r*e+o,y:t*n+i}}function BC(r,t){let e=t===1.5707963267948966?.551915024494:t===-1.5707963267948966?-.551915024494:1.3333333333333333*Math.tan(t/4),n=Math.cos(r),o=Math.sin(r),i=Math.cos(r+t),a=Math.sin(r+t);return[{x:n-o*e,y:o+n*e},{x:i+a*e,y:a-i*e},{x:i,y:a}]}function fm(r,t,e,n){let o=r*n-t*e<0?-1:1,i=Math.min(1,Math.max(-1,r*e+t*n));return o*Math.acos(i)}function FC(r,t,e,n,o,i,a,s,l,u){let c=Math.pow(o,2),p=Math.pow(i,2),f=Math.pow(a,2),d=Math.pow(s,2),h=c*p-c*d-p*f;h<0&&(h=0),h/=c*d+p*f,h=Math.sqrt(h)*(l===u?-1:1);let m=h*o/i*s,g=h*-i/o*a,v=m+(r+e)/2,x=g+(t+n)/2,S=(a-m)/o,w=(s-g)/i,b=(-a-m)/o,_=(-s-g)/i,T=fm(1,0,S,w),y=fm(S,w,b,_);return!u&&y>0&&(y-=eu),u&&y<0&&(y+=eu),{centerx:v,centery:x,ang1:T,ang2:y}}function dm({px:r,py:t,cx:e,cy:n,rx:o,ry:i,largeArcFlag:a,sweepFlag:s}){let l=[];if(o===0||i===0)return[];let u=(r-e)/2,c=(t-n)/2;if(u===0&&c===0)return[];o=Math.abs(o),i=Math.abs(i);let p=Math.pow(u,2)/Math.pow(o,2)+Math.pow(c,2)/Math.pow(i,2);p>1&&(o*=Math.sqrt(p),i*=Math.sqrt(p));let f=FC(r,t,e,n,o,i,u,c,a,s),{ang1:d,ang2:h}=f,{centerx:m,centery:g}=f,v=Math.abs(h)/(eu/4);Math.abs(1-v)<1e-7&&(v=1);let x=Math.max(Math.ceil(v),1);h/=x;for(let S=0;S<x;S++)l.push(BC(d,h)),d+=h;return l.map(S=>{let{x:w,y:b}=Jc(S[0],o,i,m,g),{x:_,y:T}=Jc(S[1],o,i,m,g),{x:y,y:I}=Jc(S[2],o,i,m,g);return{x1:w,y1:b,x2:_,y2:T,x:y,y:I}})}import{MathUtils as mm,Vector2 as gm}from"three";var ym=Math.PI*2,vm=class{static create(r){return this.build(this.normalizeInputs(r))}static normalizeInputs(r,t){let e=Object.assign({},t?.parameters??{width:100,depth:0,spikes:64,angle:360,innerRadius:0,extrudeBevelSize:0,extrudeBevelSegments:1},r.parameters);return{shape:r.shape&&r.shape instanceof Ae?r.shape:new Ae,parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??0)})}}static build(r){let{width:t,height:e,spikes:n,angle:o,innerRadius:i,depth:a,extrudeBevelSize:s,extrudeBevelSegments:l}=r.parameters,u=r.shape,c=t*.5,p=e*.5,f=RC(u,c,p,o*Math.PI/180,n,i);u.isClosed=!0,u.update();let d=pt.create({shape:u,parameters:{subdivisions:f,depth:a,extrudeBevelSize:s,extrudeBevelSegments:l}});return Object.assign(d,{userData:{...r,type:"EllipseGeometry"}})}};function RC(r,t,e,n,o,i){if(n>=ym)return o>30||o%4===0?(GC(r,t,e,i),Math.round(o/4)):hm(r,n,o,t,e,i);let a={x:0,y:e},s=n+Math.PI*.5,l={x:Math.cos(s)*t,y:Math.sin(s)*e},u=dm({px:a.x,py:a.y,cx:l.x,cy:l.y,rx:t,ry:e,largeArcFlag:n>Math.PI,sweepFlag:!0});return o>30||o%u.length===0?kC(r,a.x,a.y,u,o,t,e,i):hm(r,n,o,t,e,i)}function kC(r,t,e,n,o,i,a,s){let l=Math.round(o/n.length);r.addPoint(Ko(t,e));for(let u=0,c=n.length;u<c;u++){let p=n[u],f=r.points[u],d=Ko(p.x,p.y);f.controls[1].position.set(p.x1,p.y1),d.controls[0].position.set(p.x2,p.y2),r.addPoint(d)}return s>0?xm(r,i,a,s):r.addPoint(Ko(0,0)),l}function hm(r,t,e,n,o,i){let a=-t/e;for(let s=0;s<=e;s++){let l=a*s,u=Math.sin(l)*n,c=Math.cos(l)*o;r.addPoint(Ko(u,c))}return t<ym?i>0?xm(r,n,o,i):r.addPoint(Ko(0,0)):(r.removePoint(r.points[r.points.length-1]),i>0&&bm(r,n,o,i)),1}function GC(r,t,e,n=0,o=0,i=0){let a=.5522847498,s=t*a,l=e*a;r.addPoint(sl(o-t,i,o-t,i-l,o-t,i+l)),r.addPoint(sl(o,i+e,o-s,i+e,o+s,i+e)),r.addPoint(sl(o+t,i,o+t,i+l,o+t,i-l)),r.addPoint(sl(o,i-e,o+s,i-e,o-s,i-e)),n>0&&bm(r,t,e,n)}function Ko(r,t){return new tr(mm.generateUUID(),new gm(r,t))}function sl(r,t,e,n,o,i){let a=Ko(r,t);return a.controls[0].position.set(e,n),a.controls[1].position.set(o,i),a}function xm(r,t,e,n){Sm(r,t,e,n).forEach(i=>r.addPoint(i))}function bm(r,t,e,n){let o=Sm(r,t,e,n),i=new Ae;o.forEach(a=>i.addPoint(a)),i.isClosed=!0,r.shapeHoles.push(i)}function Sm(r,t,e,n){let o=n*t/100,i=o*(Math.abs(e)/Math.abs(t)),a=new gm(o/t,i/e),s=r.points.map(l=>{let u=l.clone();return u.uuid=mm.generateUUID(),u}).reverse();return s.forEach(l=>{l.position.multiply(a);let u=l.controls[0].position.clone().multiply(a),c=l.controls[1].position.clone().multiply(a);l.controls[0].position.copy(c),l.controls[1].position.copy(u)}),s}import{BufferGeometry as UC,Float32BufferAttribute as tu,Vector3 as wm}from"three";var Tm=class{static create(r){return this.build(this.normalizeInputs(r))}static normalizeInputs(r,t){let e=Object.assign({},t?.parameters??{width:100,revolutions:2,segments:40,pathRadius:10,pathType:0,pathSegments:30,cornerRadius:30,cornerSegments:4},r.parameters),n=Math.abs(e.width),o=Math.abs(e.height??n),i=Math.abs(e.depth??n),a=Math.abs(Math.min(n,i))/2;return{parameters:Object.assign(e,{width:n,height:o,depth:i,radius:a,segments:Math.round(e.segments),pathSegments:Math.round(e.pathSegments),cornerSegments:Math.round(e.cornerSegments)})}}static build(r){let{width:t,height:e,depth:n,radius:o,revolutions:i,segments:a,pathRadius:s,pathType:l,pathSegments:u,cornerRadius:c,cornerSegments:p}=r.parameters,f=new Qi(!1,t,e,n,o,i,a,s,l,u,c,p);return Object.assign(f,{userData:{...r,type:"HelixGeometry"}})}},Qi=class extends UC{constructor(t=!0,e=1,n=1,o=1,i=1,a=1,s=1,l=1,u=1,c=1,p=1,f=1){super();let d=t&&a===1;d&&(f=0),p>100&&(p=100);let h=()=>new wm,m=new wm,g=h(),v=h(),x=h(),S,w,b,_,T,y,I,A,O=h(),C=h(),N=h(),P=h(),G=h(),$=h(),Y=h(),ie=h(),j=n-2*l+.001,H=j/a,V=Math.ceil(s*a),R=V+1,D=j/V,F=-j/2,B=c+1,X=2*Math.PI/c,K=Math.PI/2/f,q=.01,z=Math.min((1-p/100)*l,l-q),U=l-z,W=0,re=2,ae=f*re+re,pe=B*ae/re,oe=pe+B*R,ne=B*(R+ae),[ee,Q,be]=[3,3,2].map(We=>Array(ne*We).fill(0)),ge=[],we=i-l;function rt(We,Mt){let yr=Math.PI/2;y=Mt*D,A=2*Math.PI*(y%H)/H+yr,y+=F,I=Math.sin(A)*we,T=Math.cos(A)*we,t?We.set(T,I,y):We.set(T,y,I)}rt(m,-1e-10),rt(g,0),O.copy(m),rt(m,1);let Oe=m.distanceTo(g),Ne=U+z,Ee=Oe*V+2*Ne,Ut=z,ln=Ee-Ne;for(let We=0;We<=V;We++){rt(v,We),ie.subVectors(v,O).normalize(),O.copy(v),$.copy(v).setComponent(+t+1,0).normalize(),Y.crossVectors(ie,$).normalize();let Mt=We===0,yr=We===V,fv=Mt?3*Math.PI/2:K,dv=Mt?Ut:ln,hv=Mt?B:oe,mv=Mt?0:ne-B,gv=ie.clone().multiplyScalar(Mt?-U:U).add(v),yv=ie.clone().multiplyScalar(Mt?-1:1).normalize();for(let qr=0;qr<B;qr++){let Ep=qr*X;if(C.addVectors(m.copy($).multiplyScalar(l*Math.cos(Ep)),g.copy(Y).multiplyScalar(l*Math.sin(Ep))),N.copy(C).normalize(),Mt||yr){d||(W=mv+qr,[0,1,2].forEach(wt=>{ee[W*3+wt]=gv.getComponent(wt),Q[W*3+wt]=yv.getComponent(wt)}),be[W*2]=+yr,be[W*2+1]=qr/c),g.copy(N).multiplyScalar(z),x.addVectors(v,g);for(let wt=0;wt<f;wt++){let Jl=wt*K+fv;P.addVectors(m.copy(ie).multiplyScalar(U*Math.sin(Jl)),g.copy(N).multiplyScalar(U*Math.cos(Jl))),G.copy(P).normalize(),g.addVectors(x,P),P.normalize(),W=hv+wt*B+qr,[0,1,2].forEach(Ya=>{ee[W*3+Ya]=g.getComponent(Ya),Q[W*3+Ya]=G.getComponent(Ya)});let vv=+Mt+Math.sin(Jl);be[W*2]=(dv+U*vv)/Ee,be[W*2+1]=qr/c}}g.addVectors(v,C),W=pe+We*B+qr,[0,1,2].forEach(wt=>{ee[W*3+wt]=g.getComponent(wt),Q[W*3+wt]=N.getComponent(wt)}),be[W*2]=(Ne+We*Oe)/Ee,be[W*2+1]=qr/c}}let Pt=R+2*f+re,fo=1,[qa,Xa]=d?[fo,fo+R-1]:[0,Pt-1];for(let We=qa;We<=Xa-1;We++){let Mt=d&&We===Xa-1;for(let yr=0;yr<B-1;yr++)S=We*B+yr,w=S+1,b=(Mt?yr:S)+B,_=(Mt?yr+1:w)+B,We===0?ge.push(w,_,b):We===Pt-2?ge.push(S,w,b):ge.push(S,w,b,w,_,b)}this.setIndex(ge),this.setAttribute("position",new tu(ee,3)),this.setAttribute("normal",new tu(Q,3)),this.setAttribute("uv",new tu(be,2))}};import{IcosahedronBufferGeometry as VC}from"three";var Cm=class{static create(r){return this.build(this.normalizeInputs(r))}static normalizeInputs(r,t){let e=Object.assign({},t?.parameters??{width:100,detail:0,corner:0,cornerSides:4},r.parameters);return{parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??e.width)})}}static build(r){let{width:t,height:e,depth:n,detail:o,corner:i,cornerSides:a}=r.parameters,s=o===0&&i!==0?new Ji(t*.5,i,a):new VC(t*.5,o);return s.scale(1,e/t,n/t),Object.assign(s,{userData:{...r,type:"IcosahedronGeometry"}})}},Ji=class extends _n{constructor(t=1,e=.2,n=4){let o=(1+Math.sqrt(5))/2,i=[-1,o,0,1,o,0,-1,-o,0,1,-o,0,0,-1,o,0,1,o,0,-1,-o,0,1,-o,o,0,-1,o,0,1,-o,0,-1,-o,0,1],a=[0,11,5,0,5,1,0,1,7,0,7,10,0,10,11,1,5,9,5,11,4,11,10,2,10,7,6,7,1,8,3,9,4,3,4,2,3,2,6,3,6,8,3,8,9,4,9,5,2,4,11,6,2,10,8,6,7,9,8,1],s="IcosahedronGeometry";super(i,a,s,t,e,n),this.type=s}static fromJSON(t){return new Ji(t.radius,t.corner,t.cornerSides)}};import{LatheBufferGeometry as zC,Shape as jC}from"three";var Am=class{static create(r){return this.build(this.normalizeInputs(r))}static normalizeInputs(r,t){(r.parameters?.points??[]).forEach(n=>{Array.isArray(n)&&(n.x=n[0],n.y=n[1])});let e=Object.assign({},t?.parameters??{width:100,segments:64,verticalSegments:64,points:[{x:0,y:-50,id:0},{x:50,y:-50,id:1},{x:50,y:50,id:2},{x:0,y:50,id:3}]},r.parameters);return{parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??e.width)})}}static build(r){let{points:t,segments:e,verticalSegments:n}=r.parameters,o=new jC;o.moveTo(t[0].x,t[0].y),o.bezierCurveTo(t[1].x,t[1].y,t[2].x,t[2].y,t[3].x,t[3].y);let i=new zC(o.extractPoints(n).shape,e);return i.rotateZ(Math.PI),Object.assign(i,{userData:{...r,type:"LatheGeometry"}})}};import{BufferGeometry as Pm,BufferGeometryLoader as JC,Vector3 as eA,BoxBufferGeometry as Mm}from"three";import{BufferGeometry as $C,Vector2 as ou,Vector3 as Nm}from"three";import{Box3 as HC,BufferAttribute as ea,BufferGeometry as _m,Color as Om,EventDispatcher as WC,Float32BufferAttribute as Zo,Matrix3 as Im,Matrix4 as Lm,MathUtils as qC,Object3D as XC,Sphere as YC,Vector2 as Wt,Vector3 as gt}from"three";var _r=new Lm,ru=new XC,ll=new gt,In=class extends WC{constructor(){super(),this.uuid=qC.generateUUID(),this.name="",this.type="Geometry",this.vertices=[],this.colors=[],this.faces=[],this.faceVertexUvs=[[]],this.morphTargets=[],this.morphNormals=[],this.skinWeights=[],this.skinIndices=[],this.lineDistances=[],this.boundingBox=null,this.boundingSphere=null,this.elementsNeedUpdate=!1,this.verticesNeedUpdate=!1,this.uvsNeedUpdate=!1,this.normalsNeedUpdate=!1,this.colorsNeedUpdate=!1,this.lineDistancesNeedUpdate=!1,this.groupsNeedUpdate=!1}applyMatrix4(t){let e=new Im().getNormalMatrix(t);for(let n=0,o=this.vertices.length;n<o;n++)this.vertices[n].applyMatrix4(t);for(let n=0,o=this.faces.length;n<o;n++){let i=this.faces[n];i.normal.applyMatrix3(e).normalize();for(let a=0,s=i.vertexNormals.length;a<s;a++)i.vertexNormals[a].applyMatrix3(e).normalize()}return this.boundingBox!==null&&this.computeBoundingBox(),this.boundingSphere!==null&&this.computeBoundingSphere(),this.verticesNeedUpdate=!0,this.normalsNeedUpdate=!0,this}rotateX(t){return _r.makeRotationX(t),this.applyMatrix4(_r),this}rotateY(t){return _r.makeRotationY(t),this.applyMatrix4(_r),this}rotateZ(t){return _r.makeRotationZ(t),this.applyMatrix4(_r),this}translate(t,e,n){return _r.makeTranslation(t,e,n),this.applyMatrix4(_r),this}scale(t,e,n){return _r.makeScale(t,e,n),this.applyMatrix4(_r),this}lookAt(t){return ru.lookAt(t),ru.updateMatrix(),this.applyMatrix4(ru.matrix),this}fromBufferGeometry(t){let e=this,n=t.index!==null?t.index:void 0,o=t.attributes;if(o.position===void 0)return console.error("THREE.Geometry.fromBufferGeometry(): Position attribute required for conversion."),this;let i=o.position,a=o.normal,s=o.color,l=o.uv,u=o.uv2;u!==void 0&&(this.faceVertexUvs[1]=[]);for(let f=0;f<i.count;f++)e.vertices.push(new gt().fromBufferAttribute(i,f)),s!==void 0&&e.colors.push(new Om().fromBufferAttribute(s,f));function c(f,d,h,m){let g=s===void 0?[]:[e.colors[f].clone(),e.colors[d].clone(),e.colors[h].clone()],v=a===void 0?[]:[new gt().fromBufferAttribute(a,f),new gt().fromBufferAttribute(a,d),new gt().fromBufferAttribute(a,h)],x=new Qo(f,d,h,v,g,m);e.faces.push(x),l!==void 0&&e.faceVertexUvs[0].push([new Wt().fromBufferAttribute(l,f),new Wt().fromBufferAttribute(l,d),new Wt().fromBufferAttribute(l,h)]),u!==void 0&&e.faceVertexUvs[1].push([new Wt().fromBufferAttribute(u,f),new Wt().fromBufferAttribute(u,d),new Wt().fromBufferAttribute(u,h)])}let p=t.groups;if(p.length>0)for(let f=0;f<p.length;f++){let d=p[f],h=d.start,m=d.count;for(let g=h,v=h+m;g<v;g+=3)n!==void 0?c(n.getX(g),n.getX(g+1),n.getX(g+2),d.materialIndex):c(g,g+1,g+2,d.materialIndex)}else if(n!==void 0)for(let f=0;f<n.count;f+=3)c(n.getX(f),n.getX(f+1),n.getX(f+2));else for(let f=0;f<i.count;f+=3)c(f,f+1,f+2);return this.computeFaceNormals(),t.boundingBox!==null&&(this.boundingBox=t.boundingBox.clone()),t.boundingSphere!==null&&(this.boundingSphere=t.boundingSphere.clone()),this}center(){return this.computeBoundingBox(),this.boundingBox.getCenter(ll).negate(),this.translate(ll.x,ll.y,ll.z),this}normalize(){this.computeBoundingSphere();let t=this.boundingSphere.center,e=this.boundingSphere.radius,n=e===0?1:1/e,o=new Lm;return o.set(n,0,0,-n*t.x,0,n,0,-n*t.y,0,0,n,-n*t.z,0,0,0,1),this.applyMatrix4(o),this}computeFaceNormals(){let t=new gt,e=new gt;for(let n=0,o=this.faces.length;n<o;n++){let i=this.faces[n],a=this.vertices[i.a],s=this.vertices[i.b],l=this.vertices[i.c];t.subVectors(l,s),e.subVectors(a,s),t.cross(e),t.normalize(),i.normal.copy(t)}}computeVertexNormals(t=!0){let e=new Array(this.vertices.length);for(let n=0,o=this.vertices.length;n<o;n++)e[n]=new gt;if(t){let n=new gt,o=new gt;for(let i=0,a=this.faces.length;i<a;i++){let s=this.faces[i],l=this.vertices[s.a],u=this.vertices[s.b],c=this.vertices[s.c];n.subVectors(c,u),o.subVectors(l,u),n.cross(o),e[s.a].add(n),e[s.b].add(n),e[s.c].add(n)}}else{this.computeFaceNormals();for(let n=0,o=this.faces.length;n<o;n++){let i=this.faces[n];e[i.a].add(i.normal),e[i.b].add(i.normal),e[i.c].add(i.normal)}}for(let n=0,o=this.vertices.length;n<o;n++)e[n].normalize();for(let n=0,o=this.faces.length;n<o;n++){let i=this.faces[n],a=i.vertexNormals;a.length===3?(a[0].copy(e[i.a]),a[1].copy(e[i.b]),a[2].copy(e[i.c])):(a[0]=e[i.a].clone(),a[1]=e[i.b].clone(),a[2]=e[i.c].clone())}this.faces.length>0&&(this.normalsNeedUpdate=!0)}computeFlatVertexNormals(){this.computeFaceNormals();for(let t=0,e=this.faces.length;t<e;t++){let n=this.faces[t],o=n.vertexNormals;o.length===3?(o[0].copy(n.normal),o[1].copy(n.normal),o[2].copy(n.normal)):(o[0]=n.normal.clone(),o[1]=n.normal.clone(),o[2]=n.normal.clone())}this.faces.length>0&&(this.normalsNeedUpdate=!0)}computeMorphNormals(){for(let e=0,n=this.faces.length;e<n;e++){let o=this.faces[e];o.__originalFaceNormal?o.__originalFaceNormal.copy(o.normal):o.__originalFaceNormal=o.normal.clone(),o.__originalVertexNormals||(o.__originalVertexNormals=[]);for(let i=0,a=o.vertexNormals.length;i<a;i++)o.__originalVertexNormals[i]?o.__originalVertexNormals[i].copy(o.vertexNormals[i]):o.__originalVertexNormals[i]=o.vertexNormals[i].clone()}let t=new In;t.faces=this.faces;for(let e=0,n=this.morphTargets.length;e<n;e++){if(!this.morphNormals[e]){this.morphNormals[e]={},this.morphNormals[e].faceNormals=[],this.morphNormals[e].vertexNormals=[];let i=this.morphNormals[e].faceNormals,a=this.morphNormals[e].vertexNormals;for(let s=0,l=this.faces.length;s<l;s++){let u=new gt,c={a:new gt,b:new gt,c:new gt};i.push(u),a.push(c)}}let o=this.morphNormals[e];t.vertices=this.morphTargets[e].vertices,t.computeFaceNormals(),t.computeVertexNormals();for(let i=0,a=this.faces.length;i<a;i++){let s=this.faces[i],l=o.faceNormals[i],u=o.vertexNormals[i];l.copy(s.normal),u.a.copy(s.vertexNormals[0]),u.b.copy(s.vertexNormals[1]),u.c.copy(s.vertexNormals[2])}}for(let e=0,n=this.faces.length;e<n;e++){let o=this.faces[e];o.normal=o.__originalFaceNormal,o.vertexNormals=o.__originalVertexNormals}}computeBoundingBox(){this.boundingBox===null&&(this.boundingBox=new HC),this.boundingBox.setFromPoints(this.vertices)}computeBoundingSphere(){this.boundingSphere===null&&(this.boundingSphere=new YC),this.boundingSphere.setFromPoints(this.vertices)}merge(t,e,n=0){if(!(t&&t.isGeometry)){console.error("THREE.Geometry.merge(): geometry not an instance of THREE.Geometry.",t);return}let o,i=this.vertices.length,a=this.vertices,s=t.vertices,l=this.faces,u=t.faces,c=this.colors,p=t.colors;e!==void 0&&(o=new Im().getNormalMatrix(e));for(let f=0,d=s.length;f<d;f++){let m=s[f].clone();e!==void 0&&m.applyMatrix4(e),a.push(m)}for(let f=0,d=p.length;f<d;f++)c.push(p[f].clone());for(let f=0,d=u.length;f<d;f++){let h=u[f],m,g,v=h.vertexNormals,x=h.vertexColors,S=new Qo(h.a+i,h.b+i,h.c+i);S.normal.copy(h.normal),o!==void 0&&S.normal.applyMatrix3(o).normalize();for(let w=0,b=v.length;w<b;w++)m=v[w].clone(),o!==void 0&&m.applyMatrix3(o).normalize(),S.vertexNormals.push(m);S.color.copy(h.color);for(let w=0,b=x.length;w<b;w++)g=x[w],S.vertexColors.push(g.clone());S.materialIndex=h.materialIndex+n,l.push(S)}for(let f=0,d=t.faceVertexUvs.length;f<d;f++){let h=t.faceVertexUvs[f];this.faceVertexUvs[f]===void 0&&(this.faceVertexUvs[f]=[]);for(let m=0,g=h.length;m<g;m++){let v=h[m],x=[];for(let S=0,w=v.length;S<w;S++)x.push(v[S].clone());this.faceVertexUvs[f].push(x)}}}mergeMesh(t){if(!(t&&t.isMesh)){console.error("THREE.Geometry.mergeMesh(): mesh not an instance of THREE.Mesh.",t);return}t.matrixAutoUpdate&&t.updateMatrix(),this.merge(t.geometry,t.matrix)}mergeVertices(t=4){let e={},n=[],o=[],i=Math.pow(10,t);for(let l=0,u=this.vertices.length;l<u;l++){let c=this.vertices[l],p=Math.round(c.x*i)+"_"+Math.round(c.y*i)+"_"+Math.round(c.z*i);e[p]===void 0?(e[p]=l,n.push(this.vertices[l]),o[l]=n.length-1):o[l]=o[e[p]]}let a=[];for(let l=0,u=this.faces.length;l<u;l++){let c=this.faces[l];c.a=o[c.a],c.b=o[c.b],c.c=o[c.c];let p=[c.a,c.b,c.c];for(let f=0;f<3;f++)if(p[f]===p[(f+1)%3]){a.push(l);break}}for(let l=a.length-1;l>=0;l--){let u=a[l];this.faces.splice(u,1);for(let c=0,p=this.faceVertexUvs.length;c<p;c++)this.faceVertexUvs[c].splice(u,1)}let s=this.vertices.length-n.length;return this.vertices=n,s}setFromPoints(t){this.vertices=[];for(let e=0,n=t.length;e<n;e++){let o=t[e];this.vertices.push(new gt(o.x,o.y,o.z||0))}return this}sortFacesByMaterialIndex(){let t=this.faces,e=t.length;for(let l=0;l<e;l++)t[l]._id=l;function n(l,u){return l.materialIndex-u.materialIndex}t.sort(n);let o=this.faceVertexUvs[0],i=this.faceVertexUvs[1],a,s;o&&o.length===e&&(a=[]),i&&i.length===e&&(s=[]);for(let l=0;l<e;l++){let u=t[l]._id;a&&a.push(o[u]),s&&s.push(i[u])}a&&(this.faceVertexUvs[0]=a),s&&(this.faceVertexUvs[1]=s)}toJSON(){let t={metadata:{version:4.5,type:"Geometry",generator:"Geometry.toJSON"}};if(t.uuid=this.uuid,t.type=this.type,this.name!==""&&(t.name=this.name),this.parameters!==void 0){let h=this.parameters;for(let m in h)h[m]!==void 0&&(t[m]=h[m]);return t}let e=[];for(let h=0;h<this.vertices.length;h++){let m=this.vertices[h];e.push(m.x,m.y,m.z)}let n=[],o=[],i={},a=[],s={},l=[],u={};for(let h=0;h<this.faces.length;h++){let m=this.faces[h],g=!0,v=!1,x=this.faceVertexUvs[0][h]!==void 0,S=m.normal.length()>0,w=m.vertexNormals.length>0,b=m.color.r!==1||m.color.g!==1||m.color.b!==1,_=m.vertexColors.length>0,T=0;if(T=c(T,0,0),T=c(T,1,g),T=c(T,2,v),T=c(T,3,x),T=c(T,4,S),T=c(T,5,w),T=c(T,6,b),T=c(T,7,_),n.push(T),n.push(m.a,m.b,m.c),n.push(m.materialIndex),x){let y=this.faceVertexUvs[0][h];n.push(d(y[0]),d(y[1]),d(y[2]))}if(S&&n.push(p(m.normal)),w){let y=m.vertexNormals;n.push(p(y[0]),p(y[1]),p(y[2]))}if(b&&n.push(f(m.color)),_){let y=m.vertexColors;n.push(f(y[0]),f(y[1]),f(y[2]))}}function c(h,m,g){return g?h|1<<m:h&~(1<<m)}function p(h){let m=h.x.toString()+h.y.toString()+h.z.toString();return i[m]!==void 0||(i[m]=o.length/3,o.push(h.x,h.y,h.z)),i[m]}function f(h){let m=h.r.toString()+h.g.toString()+h.b.toString();return s[m]!==void 0||(s[m]=a.length,a.push(h.getHex())),s[m]}function d(h){let m=h.x.toString()+h.y.toString();return u[m]!==void 0||(u[m]=l.length/2,l.push(h.x,h.y)),u[m]}return t.data={},t.data.vertices=e,t.data.normals=o,a.length>0&&(t.data.colors=a),l.length>0&&(t.data.uvs=[l]),t.data.faces=n,t}clone(){return new In().copy(this)}copy(t){this.vertices=[],this.colors=[],this.faces=[],this.faceVertexUvs=[[]],this.morphTargets=[],this.morphNormals=[],this.skinWeights=[],this.skinIndices=[],this.lineDistances=[],this.boundingBox=null,this.boundingSphere=null,this.name=t.name;let e=t.vertices;for(let f=0,d=e.length;f<d;f++)this.vertices.push(e[f].clone());let n=t.colors;for(let f=0,d=n.length;f<d;f++)this.colors.push(n[f].clone());let o=t.faces;for(let f=0,d=o.length;f<d;f++)this.faces.push(o[f].clone());for(let f=0,d=t.faceVertexUvs.length;f<d;f++){let h=t.faceVertexUvs[f];this.faceVertexUvs[f]===void 0&&(this.faceVertexUvs[f]=[]);for(let m=0,g=h.length;m<g;m++){let v=h[m],x=[];for(let S=0,w=v.length;S<w;S++){let b=v[S];x.push(b.clone())}this.faceVertexUvs[f].push(x)}}let i=t.morphTargets;for(let f=0,d=i.length;f<d;f++){let h={};if(h.name=i[f].name,i[f].vertices!==void 0){h.vertices=[];for(let m=0,g=i[f].vertices.length;m<g;m++)h.vertices.push(i[f].vertices[m].clone())}if(i[f].normals!==void 0){h.normals=[];for(let m=0,g=i[f].normals.length;m<g;m++)h.normals.push(i[f].normals[m].clone())}this.morphTargets.push(h)}let a=t.morphNormals;for(let f=0,d=a.length;f<d;f++){let h={};if(a[f].vertexNormals!==void 0){h.vertexNormals=[];for(let m=0,g=a[f].vertexNormals.length;m<g;m++){let v=a[f].vertexNormals[m],x={};x.a=v.a.clone(),x.b=v.b.clone(),x.c=v.c.clone(),h.vertexNormals.push(x)}}if(a[f].faceNormals!==void 0){h.faceNormals=[];for(let m=0,g=a[f].faceNormals.length;m<g;m++)h.faceNormals.push(a[f].faceNormals[m].clone())}this.morphNormals.push(h)}let s=t.skinWeights;for(let f=0,d=s.length;f<d;f++)this.skinWeights.push(s[f].clone());let l=t.skinIndices;for(let f=0,d=l.length;f<d;f++)this.skinIndices.push(l[f].clone());let u=t.lineDistances;for(let f=0,d=u.length;f<d;f++)this.lineDistances.push(u[f]);let c=t.boundingBox;c!==null&&(this.boundingBox=c.clone());let p=t.boundingSphere;return p!==null&&(this.boundingSphere=p.clone()),this.elementsNeedUpdate=t.elementsNeedUpdate,this.verticesNeedUpdate=t.verticesNeedUpdate,this.uvsNeedUpdate=t.uvsNeedUpdate,this.normalsNeedUpdate=t.normalsNeedUpdate,this.colorsNeedUpdate=t.colorsNeedUpdate,this.lineDistancesNeedUpdate=t.lineDistancesNeedUpdate,this.groupsNeedUpdate=t.groupsNeedUpdate,this}toBufferGeometry(){let t=new nu().fromGeometry(this),e=new _m,n=new Float32Array(t.vertices.length*3);if(e.setAttribute("position",new ea(n,3).copyVector3sArray(t.vertices)),t.normals.length>0){let o=new Float32Array(t.normals.length*3);e.setAttribute("normal",new ea(o,3).copyVector3sArray(t.normals))}if(t.colors.length>0){let o=new Float32Array(t.colors.length*3);e.setAttribute("color",new ea(o,3).copyColorsArray(t.colors))}if(t.uvs.length>0){let o=new Float32Array(t.uvs.length*2);e.setAttribute("uv",new ea(o,2).copyVector2sArray(t.uvs))}if(t.uvs2.length>0){let o=new Float32Array(t.uvs2.length*2);e.setAttribute("uv2",new ea(o,2).copyVector2sArray(t.uvs2))}e.groups=t.groups;for(let o in t.morphTargets){let i=[],a=t.morphTargets[o];for(let s=0,l=a.length;s<l;s++){let u=a[s],c=new Zo(u.data.length*3,3);c.name=u.name,i.push(c.copyVector3sArray(u.data))}e.morphAttributes[o]=i}if(t.skinIndices.length>0){let o=new Zo(t.skinIndices.length*4,4);e.setAttribute("skinIndex",o.copyVector4sArray(t.skinIndices))}if(t.skinWeights.length>0){let o=new Zo(t.skinWeights.length*4,4);e.setAttribute("skinWeight",o.copyVector4sArray(t.skinWeights))}return t.boundingSphere!==null&&(e.boundingSphere=t.boundingSphere.clone()),t.boundingBox!==null&&(e.boundingBox=t.boundingBox.clone()),e}computeTangents(){console.error("THREE.Geometry: .computeTangents() has been removed.")}computeLineDistances(){console.error("THREE.Geometry: .computeLineDistances() has been removed. Use THREE.Line.computeLineDistances() instead.")}applyMatrix(t){return console.warn("THREE.Geometry: .applyMatrix() has been renamed to .applyMatrix4()."),this.applyMatrix4(t)}dispose(){this.dispatchEvent({type:"dispose"})}static createBufferGeometryFromObject(t){let e=new _m,n=t.geometry;if(t.isPoints||t.isLine){let o=new Zo(n.vertices.length*3,3),i=new Zo(n.colors.length*3,3);if(e.setAttribute("position",o.copyVector3sArray(n.vertices)),e.setAttribute("color",i.copyColorsArray(n.colors)),n.lineDistances&&n.lineDistances.length===n.vertices.length){let a=new Zo(n.lineDistances.length,1);e.setAttribute("lineDistance",a.copyArray(n.lineDistances))}n.boundingSphere!==null&&(e.boundingSphere=n.boundingSphere.clone()),n.boundingBox!==null&&(e.boundingBox=n.boundingBox.clone())}else t.isMesh&&(e=n.toBufferGeometry());return e}};In.prototype.isGeometry=!0;var nu=class{constructor(){this.vertices=[],this.normals=[],this.colors=[],this.uvs=[],this.uvs2=[],this.groups=[],this.morphTargets={},this.skinWeights=[],this.skinIndices=[],this.boundingBox=null,this.boundingSphere=null,this.verticesNeedUpdate=!1,this.normalsNeedUpdate=!1,this.colorsNeedUpdate=!1,this.uvsNeedUpdate=!1,this.groupsNeedUpdate=!1}computeGroups(t){let e=[],n,o,i,a=t.faces;for(o=0;o<a.length;o++){let s=a[o];s.materialIndex!==i&&(i=s.materialIndex,n!==void 0&&(n.count=o*3-n.start,e.push(n)),n={start:o*3,materialIndex:i})}n!==void 0&&(n.count=o*3-n.start,e.push(n)),this.groups=e}fromGeometry(t){let e=t.faces,n=t.vertices,o=t.faceVertexUvs,i=o[0]&&o[0].length>0,a=o[1]&&o[1].length>0,s=t.morphTargets,l=s.length,u;if(l>0){u=[];for(let v=0;v<l;v++)u[v]={name:s[v].name,data:[]};this.morphTargets.position=u}let c=t.morphNormals,p=c.length,f;if(p>0){f=[];for(let v=0;v<p;v++)f[v]={name:c[v].name,data:[]};this.morphTargets.normal=f}let d=t.skinIndices,h=t.skinWeights,m=d.length===n.length,g=h.length===n.length;n.length>0&&e.length===0&&console.error("THREE.DirectGeometry: Faceless geometries are not supported.");for(let v=0;v<e.length;v++){let x=e[v];this.vertices.push(n[x.a],n[x.b],n[x.c]);let S=x.vertexNormals;if(S.length===3)this.normals.push(S[0],S[1],S[2]);else{let b=x.normal;this.normals.push(b,b,b)}let w=x.vertexColors;if(w.length===3)this.colors.push(w[0],w[1],w[2]);else{let b=x.color;this.colors.push(b,b,b)}if(i===!0){let b=o[0][v];b!==void 0?this.uvs.push(b[0],b[1],b[2]):(console.warn("THREE.DirectGeometry.fromGeometry(): Undefined vertexUv ",v),this.uvs.push(new Wt,new Wt,new Wt))}if(a===!0){let b=o[1][v];b!==void 0?this.uvs2.push(b[0],b[1],b[2]):(console.warn("THREE.DirectGeometry.fromGeometry(): Undefined vertexUv2 ",v),this.uvs2.push(new Wt,new Wt,new Wt))}for(let b=0;b<l;b++){let _=s[b].vertices;u[b].data.push(_[x.a],_[x.b],_[x.c])}for(let b=0;b<p;b++){let _=c[b].vertexNormals[v];f[b].data.push(_.a,_.b,_.c)}m&&this.skinIndices.push(d[x.a],d[x.b],d[x.c]),g&&this.skinWeights.push(h[x.a],h[x.b],h[x.c])}return this.computeGroups(t),this.verticesNeedUpdate=t.verticesNeedUpdate,this.normalsNeedUpdate=t.normalsNeedUpdate,this.colorsNeedUpdate=t.colorsNeedUpdate,this.uvsNeedUpdate=t.uvsNeedUpdate,this.groupsNeedUpdate=t.groupsNeedUpdate,t.boundingSphere!==null&&(this.boundingSphere=t.boundingSphere.clone()),t.boundingBox!==null&&(this.boundingBox=t.boundingBox.clone()),this}},Qo=class{constructor(t,e,n,o,i,a=0){this.a=t,this.b=e,this.c=n,this.normal=o&&o.isVector3?o:new gt,this.vertexNormals=Array.isArray(o)?o:[],this.color=i&&i.isColor?i:new Om,this.vertexColors=Array.isArray(i)?i:[],this.materialIndex=a}clone(){return new this.constructor().copy(this)}copy(t){this.a=t.a,this.b=t.b,this.c=t.c,this.normal.copy(t.normal),this.color.copy(t.color),this.materialIndex=t.materialIndex;for(let e=0,n=t.vertexNormals.length;e<n;e++)this.vertexNormals[e]=t.vertexNormals[e].clone();for(let e=0,n=t.vertexColors.length;e<n;e++)this.vertexColors[e]=t.vertexColors[e].clone();return this}};var KC=["a","b","c"];function ZC(r,t){switch(t){case"c":return r.c;case"b":return r.b;case"a":default:return r.a}}function iu(r,t,e){let n=Math.min(r,t),o=Math.max(r,t),i=n+"_"+o;return e.get(i)}function au(r,t,e,n,o,i){let a=Math.min(r,t),s=Math.max(r,t),l=a+"_"+s,u;if(n.has(l))u=n.get(l);else{let c=e[a],p=e[s];u={a:c,b:p,newEdge:null,faces:[]},n.set(l,u)}u.faces.push(o),i[r].edges.push(u),i[t].edges.push(u)}function QC(r,t,e,n){let o,i,a;for(o=0,i=r.length;o<i;o++)e[o]={edges:[]};for(o=0,i=t.length;o<i;o++)a=t[o],au(a.a,a.b,r,n,a,e),au(a.b,a.c,r,n,a,e),au(a.c,a.a,r,n,a,e)}function cl(r,t,e,n,o){r.push(new Qo(t,e,n,void 0,void 0,o))}function Jo(r,t){return Math.abs(t-r)/2+Math.min(r,t)}function ul(r,t,e,n){r.push([t.clone(),e.clone(),n.clone()])}var pl=class{constructor(t=1){this.subdivisions=t}modify(t){t instanceof $C?t=new In().fromBufferGeometry(t):t=t.clone(),t.mergeVertices();let e=this.subdivisions;for(;e-- >0;)this._smooth(t);return t.computeFaceNormals(),t.computeVertexNormals(),t}_smooth(t){let e=new Nm,n,o,i,a,s,l=t.vertices,u=t.faces,c=t.faceVertexUvs[0],p=c!==void 0&&c.length>0,f=[],d=new Map;QC(l,u,f,d);let h=[],m,g,v,x,S,w,b;for(let q of Array.from(d.keys())){for(g=d.get(q),v=new Nm,S=3/8,w=1/8,b=g.faces.length,b!=2&&(S=.5,w=0,b!=1),v.addVectors(g.a,g.b).multiplyScalar(S),e.set(0,0,0),a=0;a<b;a++){for(x=g.faces[a],s=0;s<3&&(m=l[ZC(x,KC[s])],!(m!==g.a&&m!==g.b));s++);m&&e.add(m)}e.multiplyScalar(w),v.add(e),g.newEdge=h.length,h.push(v)}let _,T,y,I,A,O,C,N=[];for(o=0,i=l.length;o<i;o++){for(O=l[o],A=f[o].edges,n=A.length,n==3?_=3/16:n>3&&(_=3/(8*n)),T=1-n*Number(_),y=_,n<=2&&(n==2?(T=3/4,y=1/8):n==1||n==0),C=O.clone().multiplyScalar(T),e.set(0,0,0),a=0;a<n;a++)I=A[a],m=I.a!==O?I.a:I.b,e.add(m);e.multiplyScalar(Number(y)),C.add(e),N.push(C)}let P=N.concat(h),G=N.length,$,Y,ie,j=[],H=[],V,R,D,F,B=new ou,X=new ou,K=new ou;for(o=0,i=u.length;o<i;o++)x=u[o],$=Number(iu(x.a,x.b,d).newEdge)+G,Y=Number(iu(x.b,x.c,d).newEdge)+G,ie=Number(iu(x.c,x.a,d).newEdge)+G,cl(j,$,Y,ie,x.materialIndex),cl(j,x.a,$,ie,x.materialIndex),cl(j,x.b,Y,$,x.materialIndex),cl(j,x.c,ie,Y,x.materialIndex),p&&(V=c[o],R=V[0],D=V[1],F=V[2],B.set(Jo(R.x,D.x),Jo(R.y,D.y)),X.set(Jo(D.x,F.x),Jo(D.y,F.y)),K.set(Jo(R.x,F.x),Jo(R.y,F.y)),ul(H,B,X,K),ul(H,R,B,K),ul(H,D,X,B),ul(H,F,K,X));t.vertices=P,t.faces=j,p&&(t.faceVertexUvs[0]=H)}};var Ze=new eA,Em=class{static create(r){return this.build(this.normalizeInputs(r))}static normalizeInputs(r,t){let e=r.geometry??t?.geometry??new Pm().copy(new Mm(100,100,100)),n;t===void 0?(e.computeBoundingBox(),e.boundingBox.getSize(Ze),n={width:Ze.x,height:Ze.y,depth:Ze.z,subdivisions:0}):n=t.parameters;let o={...n,...r.parameters};return{parameters:{width:Math.abs(o.width),height:Math.abs(o.height),depth:Math.abs(o.depth),subdivisions:Math.abs(o.subdivisions)},geometry:e}}static build(r){let{width:t,height:e,depth:n,subdivisions:o}=r.parameters,i=r.geometry??new Pm().copy(new Mm(100,100,100)),a=i.userData.parameters;a===void 0?(i.computeBoundingBox(),i.boundingBox.getSize(Ze)):Ze.set(a.width,a.height,a.depth),(t!==Ze.x||e!==Ze.y||n!==Ze.z)&&i.scale(Ze.x===0?1:t/Ze.x,Ze.y===0?1:e/Ze.y,Ze.z===0?1:n/Ze.z);let s=i.originalGeometry;return o>0?(s===void 0||a?.subdivisions!==o)&&(s===void 0&&(s=i),i=new pl(o).modify(s).toBufferGeometry()):(s!==void 0&&(i=s),s=void 0,i.getAttribute("normal")===void 0&&i.computeVertexNormals()),s!==void 0&&Object.assign(i,{originalGeometry:s}),delete r.geometry,Object.assign(i,{userData:{...r,type:"NonParametricGeometry"}})}static loadFromUrl(r,t,e){new JC(e).load(r,o=>{let i=this.normalizeInputs({geometry:o});o.boundingBox.getSize(Ze);let a=100/Ze.x;Object.assign(i.parameters,{width:100,height:Ze.y*a,depth:Ze.z*a}),t(this.build(i))})}};var Dm=class{static create(r){return this.build(this.normalizeInputs(r))}static normalizeInputs(r,t){let e=Object.assign({},t?.parameters??{width:100,depth:0,spikes:5,cornerRadius:0,extrudeBevelSize:0,extrudeBevelSegments:3},r.parameters);return{shape:r.shape&&r.shape instanceof Ae?r.shape:new Ae,parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??0)})}}static build(r){let{width:t,height:e,spikes:n,cornerRadius:o,depth:i,extrudeBevelSize:a,extrudeBevelSegments:s}=r.parameters,l=r.shape,u=t*.5,c=e*.5,p=0,f=0,d=2*Math.PI/n;for(let m=0;m<n;m++){let g=d*m,v=p+Math.sin(g)*u,x=f+Math.cos(g)*c;l.addPoint(l.createPoint(v,x))}l.isClosed=!0;for(let m=0,g=l.points.length;m<g;m++)l.points[m].roundness=o;l.roundness=o,l.update();let h=pt.create({shape:l,parameters:{roundness:o,depth:i,extrudeBevelSize:a,extrudeBevelSegments:s}});return Object.assign(h,{userData:{...r,type:"PolygonGeometry"}})}};import{BufferGeometry as tA,Float32BufferAttribute as su,Vector2 as Ir,Vector3 as ot}from"three";var Bm=class{static create(r){return this.build(this.normalizeInputs(r))}static normalizeInputs(r,t){let e=Object.assign({},t?.parameters??{width:100,radialSegments:4,heightSegments:1,cornerRadius:0,cornerSegments:8,openEnded:!1},r.parameters);return{parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??e.width)})}}static build(r){let{width:t,height:e,depth:n,radialSegments:o,heightSegments:i,openEnded:a,cornerRadius:s,cornerSegments:l}=r.parameters,u=new cu(t*.5,e,o,i,a,s,l);return u.scale(1,1,n/t),Object.assign(u,{userData:{...r,type:"PyramidGeometry"}})}};function ta(r,t,e){e.x=r.x*t.x,e.y=r.y,e.z=r.x*t.y}function lu(r,t,e,n,o,i){let a=t.clone().sub(r),s=e.clone().sub(r),l=a.angleTo(s);if(a.normalize(),s.normalize(),n===o){let u=a.add(s).normalize();i.copy(r).addScaledVector(u,n/Math.sin(l/2))}else{let u=a.angleTo(s);i.copy(r),i.addScaledVector(a,o/Math.sin(u)),i.addScaledVector(s,n/Math.sin(u))}}function rA(r,t,e){let n=r.clone().sub(t),o=e.clone().sub(t);return n.projectOnVector(o),n.add(t)}var cu=class extends tA{constructor(t=.5,e=1,n=4,o=1,i=!1,a=0,s=4){super(),n=Math.floor(Math.max(3,n)),o=Math.floor(o),s=Math.floor(s);let l=[],u=[],c=[],p=[],f=0,d=e/2,h=Math.PI/n,m=t*Math.cos(Math.PI/n),g=2*Math.PI/n,v=(n-2)*Math.PI/n,x=Math.PI-v,S=new ot(0,-d,0),w=new ot(0,d,0),b=new Ir(t,-d),_=new Ir(m,-d),T=new Ir(0,w.y).sub(_),y=new Ir(0,w.y).sub(b),I=new Ir(T.y,-T.x).normalize(),A=new Ir(y.y,-y.x).normalize(),C=t*Math.cos(Math.PI/n)*Math.tan((Math.PI-T.angle())/2)-1e-8;a=Math.min(a,C);let N;{let H=new ot(I.x,I.y,0),V=new ot(Math.cos(g)*H.x,H.y,Math.sin(g)*H.x);N=H.angleTo(V)}let P=a/Math.tan((Math.PI-T.angle())/2),G=a/Math.tan((Math.PI-N)/2),$=new ot;if(!i){u.push(S.x,S.y,S.z),c.push(0,-1,0),p.push(0,0);let H=f++,V=[],R=b.clone(),D=P/Math.cos(Math.PI/n);R.x-=D;for(let F=0;F<n;F++){let B=F/n*Math.PI*2+h,X=new Ir(Math.sin(B),Math.cos(B));ta(R,X,$),u.push($.x,$.y,$.z),c.push(0,-1,0),p.push(0,0),V.push(f++)}for(let F=0;F<V.length;F++)l.push(V[F],H,V[(F+1)%V.length])}let Y=[];{let H=new ot,V=new ot,R=new ot,D=new ot,F=new ot,B=new ot;for(let X=0;X<n;X++){let K=X/n*Math.PI*2+h,q=(X+.5)/n*Math.PI*2+h,z=(X+1)/n*Math.PI*2+h,U=new Ir(Math.sin(K),Math.cos(K)),W=new Ir(Math.sin(q),Math.cos(q)),re=new Ir(Math.sin(z),Math.cos(z));ta(b,U,V),ta(b,re,R),ta(I,W,H),lu(w,V,R,G,G,D),u.push(D.x,D.y,D.z),lu(V,w,R,G,P,F),u.push(F.x,F.y,F.z),lu(R,V,w,P,G,B),u.push(B.x,B.y,B.z),c.push(H.x,H.y,H.z),c.push(H.x,H.y,H.z),c.push(H.x,H.y,H.z),p.push(0,0),p.push(0,0),p.push(0,0);let ae=f++,pe=f++,oe=f++;if(l.push(ae,pe,oe),a>0){{let Q=V.clone().add(R).multiplyScalar(.5),be=w.clone().sub(Q).normalize(),we=S.clone().sub(Q).normalize().add(be).normalize().multiplyScalar(-1),rt=B.clone().sub(F);ie(Q,rt,we,T.angle())}let ne,ee;{let Q=new ot;ta(A,re,Q);let be=B.clone().add(D).multiplyScalar(.5);be=rA(be,R,w);let ge=B.clone().sub(D);[ne,ee]=ie(be,ge,Q,N,D.y)}{let Q=ne,be=Q.clone().setY(0).normalize(),ge=new ot(0,-1,0),we=be.clone().cross(ge);j(Q,be,ge,we)}Y.concat(ee);{let Q=T.angle(),be=Math.PI-Q,ge=w.clone();ge.y-=a/Math.sin(Q-Math.PI/2);let we=new ot,rt=[];for(let Ne=0;Ne<s;Ne++){let Ee=[],Ut=Math.PI/2-be*Ne/s,ln=Math.cos(Ut),Pt=Math.sin(Ut),fo=q;for(let qa=0;qa<=Ne;qa++){let Xa=Math.cos(fo),We=Math.sin(fo);H.x=ln*We,H.y=Pt,H.z=ln*Xa,we.copy(ge).addScaledVector(H,a),u.push(we.x,we.y,we.z),c.push(H.x,H.y,H.z),p.push(0,0),Ee.push(f++),fo+=Math.PI*2/Ne/n}rt.push(Ee)}ee.reverse(),rt.push(ee);let Oe=rt.length-1;for(let Ne=0;Ne<Oe;Ne++){let Ee=rt[Ne],Ut=rt[Ne+1],ln=Ee.length-1;l.push(Ut[1],Ee[0],Ut[0]);for(let Pt=1;Pt<=ln;Pt++)l.push(Ee[Pt],Ee[Pt-1],Ut[Pt]),l.push(Ut[Pt+1],Ee[Pt],Ut[Pt])}}}}}this.setIndex(l),this.setAttribute("position",new su(u,3)),this.setAttribute("normal",new su(c,3)),this.setAttribute("uv",new su(p,2));function ie(H,V,R,D,F){let B=-D/2,X=(Math.PI-D)/2,K=V.clone().normalize().cross(R);H.addScaledVector(R,-a/Math.sin(X));let q=new ot,z=new ot,U=1,W=f,re=[];for(let ae=0;ae<=s;ae++){let pe=B+ae/s*D;z.set(0,0,0),z.addScaledVector(K,Math.sin(pe)),z.addScaledVector(R,Math.cos(pe));for(let oe=0;oe<=U;oe++){let ne=oe/U-.5;if(q.copy(H),q.addScaledVector(V,ne),q.addScaledVector(z,a),F!=null){let ee=Math.max(0,q.y-F);q.addScaledVector(V,-ee/V.y)}u.push(q.x,q.y,q.z),c.push(z.x,z.y,z.z),p.push(0,0),oe===0&&re.push(f),f++}}for(let ae=0;ae<s;ae++)for(let pe=0;pe<U;pe++){let oe=W+pe+(U+1)*ae,ne=oe+(U+1),ee=ne+1,Q=oe+1;l.push(oe,ne,Q),l.push(ne,ee,Q)}return[H.clone().addScaledVector(V,.5),re]}function j(H,V,R,D){let F=Math.PI/2,B=y.angle()-F,X=[],K=new ot,q=new ot;for(let U=0;U<=s;U++){let W=[],re=U/s;for(let ae=0;ae<=U;ae++){let oe=((U?ae/U:0)-.5)*x,ne=Math.cos(oe),ee=Math.sin(oe),Q=Math.atan(Math.tan(B)*ne),be=(F+Q)*re,ge=Math.cos(be),we=Math.sin(be);K.set(0,0,0),K.addScaledVector(V,we*ne),K.addScaledVector(R,ge),K.addScaledVector(D,we*ee),q.copy(H).addScaledVector(K,a),u.push(q.x,q.y,q.z),c.push(K.x,K.y,K.z),p.push(0,0),W.push(f++)}X.push(W)}let z=X.length-1;for(let U=0;U<z;U++){let W=X[U],re=X[U+1],ae=W.length-1;l.push(W[0],re[1],re[0]);for(let pe=1;pe<=ae;pe++)l.push(W[pe-1],W[pe],re[pe]),l.push(W[pe],re[pe+1],re[pe])}}}};var Fm=class{static create(r){return this.build(this.normalizeInputs(r))}static normalizeInputs(r,t){let e=Object.assign({},t?.parameters??{width:100,depth:0,cornerRadius:[0,0,0,0],cornerType:1,extrudeBevelSize:0,extrudeBevelSegments:1},r.parameters),n=Object.assign(t?.ui??{enabledIndieCorners:!1},r.ui);return{shape:r.shape&&r.shape instanceof Ae?r.shape:new Ae,parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??0)}),ui:n}}static build(r){let t=r.shape,{width:e,height:n,cornerRadius:o,cornerType:i,depth:a,extrudeBevelSize:s,extrudeBevelSegments:l}=r.parameters,u={x:e*.5,y:n*.5},c={x:-u.x,y:-u.y},p={x:u.x,y:u.y};function f(w,b,_){return b>e&&_>n?Math.min(w*e/b,w*n/_):b>e?w*e/b:_>n?w*n/_:w}let d=[];d[0]=o[0]===0?0:f(o[0],o[0]+o[3],o[0]+o[1]),d[1]=o[1]===0?0:f(o[1],o[1]+o[2],o[1]+o[0]),d[2]=o[2]===0?0:f(o[2],o[2]+o[1],o[2]+o[3]),d[3]=o[3]===0?0:f(o[3],o[3]+o[0],o[3]+o[2]);let h=c.x,m=p.x,g=p.y,v=c.y;t.addPoint(t.createPoint(h,g)),t.addPoint(t.createPoint(m,g)),t.addPoint(t.createPoint(m,v)),t.addPoint(t.createPoint(h,v)),t.isClosed=!0;let x=!0;for(let w=0,b=t.points.length;w<b;w++)t.points[w].roundness=d[w],w>0&&d[w]!==d[w-1]&&(x=!1);x&&(t.roundness=d[0]),t.useCubicForRoundedCorners=i!==1,t.update();let S=pt.create({shape:t,parameters:{depth:a,extrudeBevelSize:s,extrudeBevelSegments:l}});return Object.assign(S,{userData:{...r,type:"RectangleGeometry"}})}};import{SphereBufferGeometry as nA}from"three";var Rm=class{static create(r){return this.build(this.normalizeInputs(r))}static normalizeInputs(r,t){let e=Object.assign({},t?.parameters??{width:100,widthSegments:64,heightSegments:64,phiStart:0,phiLength:2*Math.PI,thetaStart:0,thetaLength:Math.PI},r.parameters);return{parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??e.width)})}}static build(r){let{width:t=100,height:e=t,depth:n=t,widthSegments:o=64,heightSegments:i=64,phiStart:a,phiLength:s,thetaStart:l,thetaLength:u}=r.parameters,c=new nA(.5*t,o,i,a,s,l,u);return c.scale(1,e/t,n/t),Object.assign(c,{userData:{...r,type:"SphereGeometry"}})}};import{PlaneBufferGeometry as oA}from"three";var km=class{static create(r){return this.build(this.normalizeInputs(r))}static normalizeInputs(r,t){let e=Object.assign({},t?.parameters??{width:100,depth:0,widthSegments:8,heightSegments:8},r.parameters);return{parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:0})}}static build(r){let{width:t=100,height:e=t,widthSegments:n=8,heightSegments:o=8}=r.parameters,i=new oA(t,e,n,o);return i.scale(1,1,1),Object.assign(i,{userData:{...r,type:"PlaneGeometry"}})}};import{BufferGeometry as iA,Float32BufferAttribute as uu,Vector3 as aA}from"three";var Gm=class{static create(r){return this.build(this.normalizeInputs(r))}static normalizeInputs(r,t){let e=Object.assign({},t?.parameters??{width:100,angle:90,cornerRadius:24,cornerSegments:8},r.parameters);return{parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??e.width)})}}static build(r){let{width:t,height:e,depth:n,angle:o,cornerRadius:i,cornerSegments:a}=r.parameters,s=new pu(t,e,n,o,i,a);return Object.assign(s,{userData:{...r,type:"BackdropGeometry"}})}},pu=class extends iA{constructor(t=1,e=1,n=1,o=90,i=10,a=24){super(),this.type="BackdropGeometry";let s=[],l=[],u=[],c=.001;i==0&&(a=1),a=Math.max(1,Math.floor(a)),i=Math.min(i,100),o=Math.min(180-c,o),o*=Math.PI/180;let p=[],f=Math.PI/2,d=(q=0,z=0,U=0)=>new aA(q,z,U),h=d(),m=d(),[g,v,x]=[e/2,t/2,n/2],S=-v,w=+v,[b,_,T]=[d(S,-g,+x),d(S,-g,-x),d(S,+g,-x)],y=(q,z=!1)=>Math.sin(q-Math.PI/(1+ +z)),I=(q,z=!1)=>Math.cos(q-Math.PI/(1+ +z));T.y=Math.sin(o)*e-g;let A=Math.cos(o)*e-x,O=b.z-c;o<=f?(T.z=Math.min(A,O),T.z==O&&(T.y-=(A-O)/Math.tan(f-o))):_.z=Math.min(_.z-A-x,b.z-c),h.subVectors(b,_),m.subVectors(T,_);let C=Math.min(h.length(),m.length())*i/100,N=C*Math.tan(o/2),P=C/Math.cos(o/2),G=h.clone().normalize().add(m.normalize()).setLength(P).add(_);h.set(0,y(o,!0),I(o,!0)),p.push([T,h.clone()]);let $=(Math.PI-o)/a;for(let q=0;q<=a;q++){let z=f+o+q*$;h.set(0,Math.sin(z)*N,Math.cos(z)*N),h.add(G),m.set(0,y(z),I(z)),p.push([h.clone(),m.clone()])}p.push([b,d(0,1,0)]);let Y=Math.sin($/2)*N*2,ie=p.length-1,j=p[0][0].distanceTo(p[1][0]),H=p[ie-1][0].distanceTo(p[ie][0]),V=j+Y*a+H;p[0].push(1);for(let q=0;q<=a;q++)p[q+1].push(1-(j+q*Y)/V);p[ie].push(0);let[R,D,F]=p[0],B,X,K;for(let q=1;q<p.length;q++)[B,X,K]=p[q],s.push(S,R.y,R.z,S,B.y,B.z,w,R.y,R.z,w,R.y,R.z,S,B.y,B.z,w,B.y,B.z),l.push(0,D.y,D.z,0,X.y,X.z,0,D.y,D.z,0,D.y,D.z,0,X.y,X.z,0,X.y,X.z),u.push(0,F,0,K,1,F,1,F,0,K,1,K),[R,D,F]=[B,X,K];this.setAttribute("position",new uu(s,3)),this.setAttribute("normal",new uu(l,3)),this.setAttribute("uv",new uu(u,2))}};var Um=class{static create(r){return this.build(this.normalizeInputs(r))}static normalizeInputs(r,t){let e=Object.assign({},t?.parameters??{width:100,depth:0,innerRadiusPercent:38.19,spikes:5,cornerRadius:0,angle:360,extrudeBevelSize:0,extrudeBevelSegments:1},r.parameters);return{shape:r.shape&&r.shape instanceof Ae?r.shape:new Ae,parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??0)})}}static build(r){let{width:t,height:e,innerRadiusPercent:n,spikes:o,cornerRadius:i,angle:a,depth:s,extrudeBevelSize:l,extrudeBevelSegments:u}=r.parameters,c=r.shape,p=t*.5,f=e*.5,d=0,h=0,m=a*Math.PI/360/o,g=Math.PI/2*3*-1,v=p*n/100,x=f*n/100;if(o===3&&n===50){m=2*Math.PI/o;for(let w=0;w<o;w++){let b=m*w,_=d+Math.sin(b)*p,T=h+Math.cos(b)*f;c.addPoint(c.createPoint(_,T))}}else for(let w=0;w<o;w++){let b=d+Math.cos(g)*p,_=h+Math.sin(g)*f;c.addPoint(c.createPoint(b,_)),g+=m,b=d+Math.cos(g)*v,_=h+Math.sin(g)*x,w<=o,c.addPoint(c.createPoint(b,_)),g+=m}c.isClosed=!0;for(let w=0,b=c.points.length;w<b;w++)c.points[w].roundness=i;c.roundness=i,c.update();let S=pt.create({shape:c,parameters:{roundness:i,depth:s,extrudeBevelSize:l,extrudeBevelSegments:u}});return Object.assign(S,{userData:{...r,type:"StarGeometry"}})}};import{PlaneBufferGeometry as sA}from"three";var Vm=class{static create(r){return this.build(this.normalizeInputs(r))}static normalizeInputs(r,t){let e=Object.assign({},t?.parameters??{width:100,depth:0},r.parameters);return{parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??0)})}}static build(r){let{width:t,height:e}=r.parameters,n=new sA(t,e);return Object.assign(n,{userData:{...r,type:"TextFrameGeometry"}})}};var zm=class{static create(r){return this.build(this.normalizeInputs(r))}static normalizeInputs(r,t){let e=Object.assign({},t?.parameters??{width:100,radialSegments:32,tubularSegments:64,arc:Math.PI*2,cornerRadius:30,cornerSegments:8},r.parameters),n=Math.abs(e.width),o=Math.abs(e.height??e.width),i=Math.abs(e.depth??e.width*.25);return{parameters:Object.assign(e,{width:n,height:o,depth:i})}}static build(r){let{width:t,height:e,depth:n,radialSegments:o,tubularSegments:i,arc:a,cornerRadius:s,cornerSegments:l}=r.parameters,u=lA(t,e,n,t*.5,a,i,0,0,o,s,l);return u.scale(1,e/t,1),Object.assign(u,{userData:{...r,type:"TorusGeometry"}})}};function lA(r,t,e,n,o,i,a,s,l,u,c){return[t,e]=[e,t],a=t/2,o/=2*Math.PI,o==1&&(u=0),new Qi(!0,r,t,e,n,o,i,a,s,l,u,c)}import{TorusKnotBufferGeometry as cA}from"three";var jm=class{static create(r){return this.build(this.normalizeInputs(r))}static normalizeInputs(r,t){let e=Object.assign({},t?.parameters??{width:100,tubularSegments:64,radialSegments:32,p:2,q:3},r.parameters);return{parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??e.width),tube:e.tube??e.width*.125})}}static build(r){let{width:t,tube:e,tubularSegments:n,radialSegments:o,p:i,q:a}=r.parameters,s=t*.5;s!==e&&(s-=e);let l=new cA(s,e,n,o,i,a);return Object.assign(l,{userData:{...r,type:"TorusKnotGeometry"}})}};var Hm=class{static create(r){return this.build(this.normalizeInputs(r))}static normalizeInputs(r,t){let e=Object.assign({},t?.parameters??{width:100,depth:0,spikes:5,cornerRadius:0,extrudeBevelSize:0,extrudeBevelSegments:1,isRect:!1},r.parameters);return{shape:r.shape&&r.shape instanceof Ae?r.shape:new Ae,parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width*(e.isRect?1:Math.sqrt(3)/2)),depth:Math.abs(e.depth??0)})}}static build(r){let{width:t=100,height:e,cornerRadius:n,depth:o,extrudeBevelSize:i,extrudeBevelSegments:a,isRect:s}=r.parameters,l=r.shape,u=t*.5,c=e*.5;s?(l.addPoint(l.createPoint(-u,c)),l.addPoint(l.createPoint(u,-c)),l.addPoint(l.createPoint(-u,-c))):(l.addPoint(l.createPoint(0,c)),l.addPoint(l.createPoint(u,-c)),l.addPoint(l.createPoint(-u,-c))),l.isClosed=!0;for(let f=0,d=l.points.length;f<d;f++)l.points[f].roundness=n;l.roundness=n,l.update();let p=pt.create({shape:l,parameters:{roundness:n,depth:o,extrudeBevelSize:i,extrudeBevelSegments:a}});return Object.assign(p,{userData:{...r,type:"TriangleGeometry"}})}};import{BufferGeometry as Wm,BufferAttribute as qm,Uint32BufferAttribute as fu,Float32BufferAttribute as du,Matrix4 as dA,Vector3 as ml}from"three";var uA,fl=new Promise(r=>{uA=r});import{BufferGeometryLoader as pA}from"three";function dl(r,t){return fA(r)}function fA(r){let t={parameters:r,type:r.type};if(r.type==="VectorGeometry"){let n=Ae.createFromState(r.shape,r.width,r.height);t.shape=n}else r.type==="NonParametricGeometry"&&(r.data.groups&&r.data.groups.forEach(n=>n.materialIndex=Math.max(n.materialIndex??0,0)),t.geometry=new pA().parse(r));let e;try{e=ra(t)}catch(n){console.error(n)}if(!e){let n=Ae.createFromState(Go.defaultData(),100,100);t.shape=n,e=ra(t)}return e}var me;fl.then(r=>{me=r});var Xm=new Float32Array([10,10,0,-10,10,0,-10,-10,0,10,-10,0]),Ym=new Uint32Array([0,1,2,3]),$m=new Uint8Array([4]),qt=class{static build(r,t,e,n,o){let i,a,s,l=r?.phongAngle??t?.phongAngle??35;if(n===!1&&(l=-1),r.positionWASM!==void 0){e&&e!==0&&(me.free_bvh(e),me.free_subdivision_surface(e));try{i=qt.allocate(r,o)}catch(u){console.error(u,r),i=qt.allocate({positionWASM:Xm,indexWASM:Ym,verticesPerFaceWASM:$m},o)}me.set_destination_refinement_level(i,0),a=qt.buildLevel(i,!0,l)}else i=e,r.phongAngle!==void 0&&(a=qt.buildLevel(i,!0,l));return r.subdivisions!==void 0&&(me.set_destination_refinement_level(i,r.subdivisions),r.subdivisions>0?s=qt.buildLevel(i,!1,l):s=null),{subdivPointer:i,originalGeometry:a,subdividedGeometry:s}}static primitiveToQuads(r,t){r.widthSegments>16&&(r.widthSegments=16),r.heightSegments>16&&(r.heightSegments=16),r.depthSegments>16&&(r.depthSegments=16),r.radialSegments>16&&(r.radialSegments=16),r.type==="DodecahedronGeometry"&&(r.detail=0);let e=r.shape!==void 0?t.geometry:dl(r),n,o,i,a;({positions:n,triIndices:a}=yu(e.getAttribute("position"),e.getIndex()));let s;if(r.type==="CylinderGeometry"&&r.cornerRadius===0&&r.hollow===0&&r.openEnded===!1){let l=r.radialSegments*r.heightSegments*3*2,u=l+r.radialSegments*3;s=[l,u]}return{indices:o,verticesPerFace:i}=vu(n,a,e,s),{positions:n,indices:o,verticesPerFace:i}}static allocate(r,t){let e,n,o,i=[],a=[];r.positionWASM&&r.positionWASM.length>0?(e=r.positionWASM,n=r.indexWASM,o=r.verticesPerFaceWASM):(e=Xm,n=Ym,o=$m);let s=e.length,l=n.length,u=o.length,c=e.length+i.length+a.length,p=n.length+o.length,f=c*Float32Array.BYTES_PER_ELEMENT+p*Uint32Array.BYTES_PER_ELEMENT,d=c*Float32Array.BYTES_PER_ELEMENT,h=p*Uint32Array.BYTES_PER_ELEMENT,m=me._malloc(f),g=new Float32Array(me.HEAPF32.buffer,m,c),v=new Uint32Array(me.HEAPU32.buffer,m+d,p);g.set(e,0),g.set(i,e.length),g.set(a,e.length+i.length),v.set(n,0),v.set(o,n.length);let x;r?.scaleBaked?.some(w=>w!==1)&&(x=new dA().makeScale(...r.scaleBaked)),t&&(x?x.premultiply(t):x=t);let S=x?me.alloc_subdivision_surface2(m,s,m+d,l,m+d+n.length*Uint32Array.BYTES_PER_ELEMENT,u,x.elements):me.alloc_subdivision_surface(m,s,m+d,l,m+d+n.length*Uint32Array.BYTES_PER_ELEMENT,u);return me._free(m),S}static buildLevel(r,t,e,n,o){let i=o?me.get_mesh_data2(r,t?me.Level.CONTROL:me.Level.REFINED,e,o.elements):me.get_mesh_data(r,t?me.Level.CONTROL:me.Level.REFINED,e),a=8,s=me.HEAPU32.subarray(i>>2,(i>>2)+a),l=s.subarray(4,4+4),u=0,c=me.HEAPU32[s[u]>>2],p=me.HEAPF32.subarray(c>>2,(c>>2)+l[u]);u++;let f=me.HEAPU32[s[u]>>2],d=me.HEAPF32.subarray(f>>2,(f>>2)+l[u]);u++;let h=me.HEAPU32[s[u]>>2],m=me.HEAPU32.subarray(h>>2,(h>>2)+l[u]);u++;let g=me.HEAPU32[s[u]>>2],v=me.HEAPU32.subarray(g>>2,(g>>2)+l[u]);if(u++,n===void 0){let x=new Wm;if(x.setIndex(new fu(v,1)),x.setAttribute("position",new du(p,3)),x.setAttribute("normal",new du(d,3)),t){x.setAttribute("faceMap",new fu(m,1));let S=new Float32Array(d.length/3*4).fill(0);x.setAttribute("color",new qm(S,4))}return me.free_mesh_data(i),x.userData.type="SubdivGeometry",x}n.getAttribute("position").copyArray(p),n.getAttribute("normal").copyArray(d),n.attributes.position.needsUpdate=!0,n.attributes.normal.needsUpdate=!0,me.free_mesh_data(i)}static buildControlCageWireframe(r,t,e){let n=me.get_wireframe_data_for_base_level(r),o=4,i=me.HEAPU32.subarray(n>>2,(n>>2)+o),a=i.subarray(2,2+2),s=0,l=me.HEAPU32[i[s]>>2],u=me.HEAPF32.subarray(l>>2,(l>>2)+a[s]);s++;let c=me.HEAPU32[i[s]>>2],p=me.HEAPU32.subarray(c>>2,(c>>2)+a[s]);if(t===void 0){let f=new Wm;f.setAttribute("position",new du(u,3));let d=new Float32Array(u.length);for(let h=0,m=u.length;h<m;)d[h++]=e.r,d[h++]=e.g,d[h++]=e.b;return f.setAttribute("color",new qm(d,3)),f.setIndex(new fu(p,1)),me.free_wireframe_data_for_base_level(n),f}t.getAttribute("position").copyArray(u),t.attributes.position.needsUpdate=!0,me.free_wireframe_data_for_base_level(n)}static updateCollabMesh(r,t,e){let n=t===0;n||me.set_destination_refinement_level(r,t);let o=e?me.get_topological_data2(r,n?me.Level.CONTROL:me.Level.REFINED,e.elements):me.get_topological_data(r,n?me.Level.CONTROL:me.Level.REFINED),i=6,a=me.HEAPU32.subarray(o>>2,(o>>2)+i),s=a.subarray(3,3+3),l=0,u=me.HEAPU32[a[l]>>2],c=new Float32Array(me.HEAPF32.subarray(u>>2,(u>>2)+s[l]));l++;let p=me.HEAPU32[a[l]>>2],f=new Uint32Array(me.HEAPU32.subarray(p>>2,(p>>2)+s[l]));l++;let d=me.HEAPU32[a[l]>>2],h=new Uint8Array(me.HEAPU32.subarray(d>>2,(d>>2)+s[l]));return me.free_topological_data(o),{positions:c,indices:f,verticesPerFace:h}}};var Km=["getX","getY","getZ"];function yu(r,t){let e={},n=t?t.count:r.count,o=0,i=[],a=[],s=1e4;for(let u=0;u<n;u++){let c=t?t.getX(u):u,p="";for(let f=0;f<3;f++)p+=`${~~(r[Km[f]](c)*s)},`;if(p in e)i.push(e[p]);else{for(let f=0;f<3;f++)a.push(r[Km[f]](c));e[p]=o,i.push(o),o++}}let l=[];for(let u=0;u<i.length;u+=3)i[u]===i[u+1]||i[u]===i[u+2]||i[u+1]===i[u+2]||l.push(i[u],i[u+1],i[u+2]);return{positions:a,triIndices:l}}var hl=new ml,hu=new ml,mu=new ml,gu=new ml;function vu(r,t,e,n){let o=[],i=[];if(e.userData.shape!==void 0&&e.userData.parameters.depth===0&&e.userData.shape.shapeHoles.length===0){let a=e.userData.shape.extractShapePointsToFlatArray([]),s=0;for(let u=0;u<a.length;u+=2)s+=(a[u]-a[(u===0?a.length:u)-2])*(a[u+1]+a[(u===0?a.length:u)-1]);r.length=0;let l=0;if(s<0)for(let u=0;u<a.length;u+=2)r.push(a[u],a[u+1],0),o.push(l++);else for(let u=a.length-2;u>=0;u-=2)r.push(a[u],a[u+1],0),o.push(l++);return i.push(l),{indices:o,verticesPerFace:i}}for(let a=0,s=e.capStartIndex??t.length;a<s;)if(t[a+1]===t[a+3]&&t[a+2]===t[a+5]||t[a+0]===t[a+3]&&t[a+2]===t[a+4]){hl.set(r[t[a]*3],r[t[a]*3+1],r[t[a]*3+2]),hu.set(r[t[a+1]*3],r[t[a+1]*3+1],r[t[a+1]*3+2]),mu.set(r[t[a+4]*3],r[t[a+4]*3+1],r[t[a+4]*3+2]),gu.set(r[t[a+5]*3],r[t[a+5]*3+1],r[t[a+5]*3+2]),hu.sub(hl).normalize(),mu.sub(hl).normalize(),gu.sub(hl).normalize();let l=hu.cross(mu).dot(gu);Math.abs(l)>.005||n&&n.some((u,c)=>c%2===1?!1:a>=n[c]&&a<n[c+1])?(o.push(t[a],t[a+1],t[a+2]),i.push(3),a+=3):(o.push(t[a],t[a+1],t[a+4],t[a+5]),i.push(4),a+=6)}else o.push(t[a],t[a+1],t[a+2]),i.push(3),a+=3;if(e.capStartIndex!==void 0){let a=[],s=[],l=0,u=new Float32Array([e.userData.parameters.depth])[0];for(let c=0,p=0;c<r.length;c+=3,p++)r[c+2]===0&&(a.push(p),l++),r[c+2]===u&&s.push(p);if(e.userData.parameters.extrudeBevelSize===0){let c=s[0];s[0]=s[1],s[1]=c}a.reverse(),o.push(...a,...s),i.push(l,l)}return{indices:o,verticesPerFace:i}}var nr={};Cv(nr,{calcBoolean:()=>vA,calcBooleanTopological:()=>yA,freeMeshSet:()=>SA,getMeshSet:()=>xA,transformMeshSet:()=>bA});var hA,Zm=new Promise(r=>{hA=r});import{Float32BufferAttribute as Qm,Sphere as mA}from"three";var Se,ei;Zm.then(r=>Se=r);function gA(r,t,e){let n,{positions:o,triIndices:i}=yu(r.getAttribute("position"),r.getIndex()),a;if(t&&e){let{indices:s,verticesPerFace:l}=vu(o,i,r);a=l.length,n=[];for(let u=0,c=0;u<a;u++){n.push(l[u]);for(let p=0;p<l[u];p++)n.push(s[c++])}}else{let s=i.length;n=Array(s+s/3),a=0;for(let l=0,u=0;u<n.length;)n[u++]=3,a++,n[u++]=i[l++],n[u++]=i[l++],n[u++]=i[l++]}return{positions:o,faceIndices:n,nFaces:a}}function Jm(r){let t=r.length,e=t*Uint32Array.BYTES_PER_ELEMENT,n=t*Float32Array.BYTES_PER_ELEMENT,o=Number.isInteger(r[0])?e:n,i=Se._malloc(o);return(Number.isInteger(r[0])?new Uint32Array(Se.HEAPU32.buffer,i,t):new Float32Array(Se.HEAPF32.buffer,i,t)).set(r,0),i}function eg(r){switch(r){case 0:return Se.OP.UNION;case 1:return Se.OP.INTERSECTION;case 2:return Se.OP.A_MINUS_B;case 3:return Se.OP.B_MINUS_A;case 4:return Se.OP.SYMMETRIC_DIFFERENCE;case 5:return Se.OP.ALL;default:throw new Error("Unknown boolean operation "+r)}}function yA(r,t){ei===void 0&&(ei=Se.init_csg());let e=Jm(r),n=Se.csg_calc_topological(ei,e,r.length,eg(t));Se._free(e);let o=6,i=Se.HEAPU32.subarray(n>>2,(n>>2)+o),a=i.subarray(3,3+3),s=0,l=Se.HEAPU32[i[s]>>2],u=new Float32Array(Se.HEAPF32.subarray(l>>2,(l>>2)+a[s]));s++;let c=Se.HEAPU32[i[s]>>2],p=new Uint32Array(Se.HEAPU32.subarray(c>>2,(c>>2)+a[s]));s++;let f=Se.HEAPU32[i[s]>>2],d=new Uint8Array(Se.HEAPU32.subarray(f>>2,(f>>2)+a[s]));return Se.free_mesh_data(n),{positions:u,indices:p,verticesPerFace:d}}function vA(r,t,e,n){ei===void 0&&(ei=Se.init_csg());let o=Jm(r),i=Se.csg_calc(ei,o,r.length,n,eg(t));Se._free(o);let a=5,s=Se.HEAPU32.subarray(i>>2,(i>>2)+a),l=s.subarray(2,2+3),u=0,c=Se.HEAPU32[s[u]>>2],p=Se.HEAPF32.subarray(c>>2,(c>>2)+l[u]);u++;let f=Se.HEAPU32[s[u]>>2],d=Se.HEAPF32.subarray(f>>2,(f>>2)+l[u]);u++;let h=l[u];e.setAttribute("position",new Qm(p,3)),e.setAttribute("normal",new Qm(d,3));let m=Se.HEAPF32.subarray((i>>2)+5,(i>>2)+5+6);return e.boundingSphere===null&&(e.boundingSphere=new mA),e.boundingSphere.center.set(m[0],m[1],m[2]),e.boundingSphere.radius=(m[3]**2+m[4]**2+m[5]**2)**.5,e.userData.parameters={width:m[3]*2,height:m[4]*2,depth:m[5]*2},Se.free_mesh_data(i),h}function xA(r,t,e){if(Se===void 0)return-1;let n,o,i;if(t&&r.userData.positions!==void 0){let g=r.userData;i=g.verticesPerFace.length,n=g.positions,o=Array(g.verticesPerFace.reduce((v,x)=>v+x,0)+i);for(let v=0,x=0,S=0;v<g.verticesPerFace.length;v++){o[S++]=g.verticesPerFace[v];for(let w=0;w<g.verticesPerFace[v];w++)o[S++]=g.indices[x++]}}else({positions:n,faceIndices:o,nFaces:i}=gA(r,t,e));let a=n.length,s=o.length,l=n.length,u=o.length,c=l*Float32Array.BYTES_PER_ELEMENT+u*Uint32Array.BYTES_PER_ELEMENT,p=l*Float32Array.BYTES_PER_ELEMENT,f=u*Uint32Array.BYTES_PER_ELEMENT,d=Se._malloc(c),h=new Float32Array(Se.HEAPF32.buffer,d,l),m=new Uint32Array(Se.HEAPU32.buffer,d+p,u);return h.set(n,0),m.set(o,0),Se.get_csg_mesh(d,a,d+p,s,i)}function bA(r,t){Se.transform_csg_mesh(r,t.elements)}function SA(r){Se.free_csg_mesh(r)}var xu={ConeGeometry:cm,CubeGeometry:um,CylinderGeometry:lm,DodecahedronGeometry:pm,EllipseGeometry:vm,HelixGeometry:Tm,IcosahedronGeometry:Cm,LatheGeometry:Am,NonParametricGeometry:Em,PolygonGeometry:Dm,PyramidGeometry:Bm,RectangleGeometry:Fm,SphereGeometry:Rm,PlaneGeometry:km,BackdropGeometry:Gm,StarGeometry:Um,TextFrameGeometry:Vm,TorusGeometry:zm,TorusKnotGeometry:jm,TriangleGeometry:Hm,VectorGeometry:pt},ra=r=>xu[r.type].create(r);import{Matrix4 as lg}from"three";import{Object3D as CA,Matrix4 as AA}from"three";import{HemisphereLight as tg}from"three";function it(r,t){return t.color(r)}var bu=r=>"isEntity"in r,Or=r=>"isAbstractMesh"in r,Lr=r=>r!==null&&r.objectType==="BooleanObject",rg=r=>r.objectType==="CombinedCamera";var gl=r=>"objectHelper"in r;function wA(r,t){let e=!1;t.position&&(r.position.fromArray(t.position),e=!0),t.rotation&&(r.rotation.fromArray(t.rotation),e=!0),t.scale&&(e=!0,r.scale.fromArray(t.scale)),t.hiddenMatrix!==void 0&&"hiddenMatrix"in r&&(e=!0,r.hiddenMatrix.fromArray(t.hiddenMatrix??yn.identity)),e&&(r.updateMatrix(),Lr(r.parent)&&Or(r)&&r.invalidateDownstreamBooleanData(!0).recomputeBoolean()),t.position&&t.rotation&&t.scale&&t.hiddenMatrix!==void 0&&r.updateWorldMatrix(!1,!0),r.objectType==="CombinedCamera"&&(t.isUpVectorFlipped!==void 0&&(r.isUpVectorFlipped=t.isUpVectorFlipped),r.updateUp())}function TA(r,t){wA(r,t),t.name!==void 0&&(r.name=t.name),t.visible!==void 0&&(r.visible=t.visible)}function ng(r,t,e){TA(r,t),t.color!==void 0&&(r.color=it(t.color,e)),t.intensity!==void 0&&(r.intensity=t.intensity),t.shadows!==void 0&&!(r instanceof tg)&&(r.castShadow=t.shadows),r.shadow&&!(r instanceof tg)&&t.depth!==void 0&&(r.shadow.camera.far=t.depth,r.shadow.needsUpdate=!0)}function og(r,t){r.shadow.camera.right=t/2,r.shadow.camera.left=-t/2,r.shadow.camera.top=t/2,r.shadow.camera.bottom=-t/2,r.shadow.needsUpdate=!0}var yl=r=>class extends r{hasEntityChild(){return this.children.some(e=>bu(e))}isDescendantOf(e){e instanceof CA&&(e=e.uuid);let n=this;for(;n.parent;){if(n.parent.uuid===e)return!0;n=n.parent}return!1}attach(e,n){this.updateWorldMatrix(!0,!1);let o=new AA().copy(this.matrixWorld).invert();return e.parent!==null&&(e.parent.updateWorldMatrix(!0,!1),o.multiply(e.parent.matrixWorld)),bu(e)?e.hiddenMatrix.premultiply(o):e.applyMatrix4(o),e.updateWorldMatrix(!1,!1),this.add(e),n!==void 0&&(this.children.pop(),this.children.splice(n,0,e)),this}copy(e,n=!0){if(this.name=e.name,this.up.copy(e.up),this.position.copy(e.position),this.rotation.order=e.rotation.order,this.quaternion.copy(e.quaternion),this.scale.copy(e.scale),this.matrix.copy(e.matrix),this.matrixWorld.copy(e.matrixWorld),this.matrixAutoUpdate=e.matrixAutoUpdate,this.matrixWorldNeedsUpdate=e.matrixWorldNeedsUpdate,this.layers.mask=e.layers.mask,this.visible=e.visible,this.castShadow=e.castShadow,this.receiveShadow=e.receiveShadow,this.frustumCulled=e.frustumCulled,this.renderOrder=e.renderOrder,this.userData=JSON.parse(JSON.stringify(e.userData)),n===!0)for(let o=0;o<e.children.length;o++){let i=e.children[o];this.add(i.clone())}return this}};import{Box3 as ag,Line3 as _A,Matrix4 as Su,Vector3 as Yt}from"three";var Qn=new ag,or=new Yt,Xt=new Yt,ti=new Su,sg=[new Yt(-1,1,1),new Yt(-1,-1,1),new Yt(1,-1,1),new Yt(1,1,1),new Yt(-1,1,-1),new Yt(-1,-1,-1),new Yt(1,-1,-1),new Yt(1,1,-1)],IA=[[0,3],[1,2],[5,6],[4,7],[0,1],[3,2],[7,6],[4,5],[0,4],[1,5],[2,6],[3,7]],OA=[[0,2],[7,5],[4,1],[3,6],[4,3],[1,6]];function LA(r,t,e=0,n=t.count){let o=1/0,i=1/0,a=1/0,s=-1/0,l=-1/0,u=-1/0;for(let c=e;c<n;c++){let p=t.getX(c),f=t.getY(c),d=t.getZ(c);p<o&&(o=p),f<i&&(i=f),d<a&&(a=d),p>s&&(s=p),f>l&&(l=f),d>u&&(u=d)}return r.min.set(o,i,a),r.max.set(s,l,u),r}var ig=(r,t,e)=>{if(r.objectType==="TextFrame"){let o=r.data.geometry;or.set(0,0,o.depth*.5),r.forceComputeSize?Qn.getSize(Xt).multiplyScalar(.5):Xt.set(o.width,o.height,o.depth??0).multiplyScalar(.5)}else if(Or(r)){let n=r.geometry.userData.parameters,o=r.geometry.getAttribute("position");r.geometry.userData.type==="SubdivGeometry"?or.copy(r.originalGeometry.boundingSphere.center):o!==void 0&&(LA(Qn,o,r.geometry.drawRange.start,r.geometry.drawRange.count<1/0?r.geometry.drawRange.count:o.count),Qn.getCenter(or)),r.forceComputeSize?Qn.getSize(Xt).multiplyScalar(.5):Xt.set(n.width,n.height,n.depth??0).multiplyScalar(.5)}else if(gl(r)&&r.objectHelper.visible){let n=r.geometryHelper.getAttribute("position");Qn.setFromArray(n.array),Qn.getCenter(or),Qn.getSize(Xt).multiplyScalar(.5)}else or.setScalar(0),Xt.setScalar(0);ti.copy(t).multiply(r.matrixWorld),Xt.x===0&&Xt.y===0&&Xt.z===0?e.push(new Yt(or.x,or.y,or.z).applyMatrix4(ti)):sg.forEach(n=>{e.push(n.clone().multiply(Xt).add(or).applyMatrix4(ti))})},na=class extends ag{constructor(){super(...arguments);this.matrix=new Su;this.vertices=[];this.faces=[];this.edges=[];this.centerEdges=[]}copy(e){return super.copy(e),this.matrix.copy(e.matrix),this.vertices=e.vertices.map(n=>n.clone()),this.faces=e.faces.map(n=>n.clone()),this.edges=e.edges.map(n=>n.clone()),this.centerEdges=e.centerEdges.map(n=>n.clone()),this}setFromObjectSize(e,n=!1){e.updateWorldMatrix(!1,n),this.makeEmpty(),this.matrix.copy(e.matrixWorld);let o=new Su().copy(e.matrixWorld).invert();return this.expandByObjectSize(e,o,n)}expandByObjectSize(e,n,o=!1){let i=[];return o===!0?e.traverseEntity(a=>{a.visible&&ig(a,n,i)}):ig(e,n,i),this.setFromPoints(i)}getCenter(e){return e=super.getCenter(e),e.applyMatrix4(this.matrix),e}getPositionToCenter(e){return e=super.getCenter(e),e.applyMatrix4(ti.copy(this.matrix).setPosition(0,0,0)),e}computeVertices(){this.getSize(Xt).multiplyScalar(.5),this.getCenter(or),ti.copy(this.matrix).setPosition(or),this.vertices=sg.map(e=>e.clone().multiply(Xt).applyMatrix4(ti))}computeEdges(){this.vertices.length>0&&this.computeVertices(),this.edges=IA.map(([e,n])=>new _A(this.vertices[e],this.vertices[n])),this.centerEdges=this.edges.map(e=>e.getCenter(new Yt))}computeFaces(){this.vertices.length>0&&this.computeVertices(),this.faces=OA.map(([e,n])=>this.vertices[e].clone().add(this.vertices[n]).multiplyScalar(.5))}};var Nr=r=>"isEntity"in r,cg=r=>"isAbstractMesh"in r,$t=r=>class extends yl(r){constructor(){super(...arguments);this.objectType="";this.isEntity=!0;this.raycastLock=!1;this.scaleLock=!1;this.hiddenMatrix=new lg;this._singleBBox=new na;this._recursiveBBox=new na;this.singleBBoxNeedsUpdate=!0;this.recursiveBBoxNeedsUpdate=!0;this.forceComputeSize=!1}get singleBBox(){return this.singleBBoxNeedsUpdate&&(this.singleBBoxNeedsUpdate=!1,this._singleBBox.setFromObjectSize(this,!1),this._singleBBox.computeVertices(),this._singleBBox.computeEdges(),this._singleBBox.computeFaces()),this._singleBBox}get recursiveBBox(){return this.recursiveBBoxNeedsUpdate&&(this.recursiveBBoxNeedsUpdate=!1,this._recursiveBBox.setFromObjectSize(this,!0),this._recursiveBBox.computeVertices(),this._recursiveBBox.computeEdges(),this._recursiveBBox.computeFaces()),this._recursiveBBox}resetBBoxNeedsUpdate(){this.singleBBoxNeedsUpdate=!0,this.recursiveBBoxNeedsUpdate=!0,this.traverseAncestors(n=>{Nr(n)&&(n.singleBBoxNeedsUpdate=!0,n.recursiveBBoxNeedsUpdate=!0)}),this.traverseEntity(n=>{n.singleBBoxNeedsUpdate=!0,n.recursiveBBoxNeedsUpdate=!0})}traverseEntity(n){n(this);for(let o of this.children)Nr(o)&&o.traverseEntity(n)}traverseVisibleEntity(n){n(this);for(let o of this.children)Nr(o)&&o.visible&&o.traverseVisibleEntity(n)}updateMatrixWorld(n){this.matrixAutoUpdate&&this.updateMatrix(),(this.matrixWorldNeedsUpdate||n)&&(this.parent===null?this.matrixWorld.multiplyMatrices(this.hiddenMatrix,this.matrix):(this.matrixWorld.multiplyMatrices(this.parent.matrixWorld,this.hiddenMatrix),this.matrixWorld.multiplyMatrices(this.matrixWorld,this.matrix)),this.matrixWorldNeedsUpdate=!1,n=!0);for(let o of this.children)o.updateMatrixWorld(n)}updateWorldMatrix(n,o){let i=this.parent;if(n&&i!==null&&i.updateWorldMatrix(!0,!1),this.matrixAutoUpdate&&this.updateMatrix(),this.parent===null?this.matrixWorld.multiplyMatrices(this.hiddenMatrix,this.matrix):(this.matrixWorld.multiplyMatrices(this.parent.matrixWorld,this.hiddenMatrix),this.matrixWorld.multiplyMatrices(this.matrixWorld,this.matrix)),o)for(let a of this.children)a.updateWorldMatrix(!1,!0)}clone(n){return new this.constructor().copy(this,n)}copy(n,o=!0){if(super.copy(n,!1),this.raycastLock=n.raycastLock,this.scaleLock=n.scaleLock,this.hiddenMatrix.copy(n.hiddenMatrix),o===!0)for(let i of n.children)Nr(i)&&this.add(i.clone());return this}keepChildrenMatrixWorld(){let n=new lg,o=this.matrixWorld.clone();this.updateWorldMatrix(!1,!1),n.copy(this.matrixWorld).invert(),n.multiply(o);for(let i of this.children)Nr(i)&&i.hiddenMatrix.premultiply(n)}toObjectTransformState(n=[]){this.updateWorldMatrix(!0,!1);let o={position:this.position.toArray(),rotation:[this.rotation.x,this.rotation.y,this.rotation.z],scale:this.scale.toArray(),hiddenMatrix:this.hiddenMatrix.toArray()};return Eo(o,n)}fromObjectTransformState(n){return n.position&&this.position.fromArray(n.position),n.rotation&&this.rotation.fromArray(n.rotation),n.scale&&this.scale.fromArray(n.scale),n.hiddenMatrix&&this.hiddenMatrix.fromArray(n.hiddenMatrix),this.updateMatrix(),this}toState(n=[]){let o={name:this.name,visible:this.visible,raycastLock:this.raycastLock,...this.toObjectTransformState(n)};return Eo(o,n)}fromState(n,o){return n.name&&(this.name=n.name),n.raycastLock!==void 0&&(this.raycastLock=n.raycastLock),n.type!=="OrthographicCamera"&&n.type!=="PerspectiveCamera"&&(this.matrixAutoUpdate=!1),n.visible!==void 0&&(this.visible=n.visible),this.fromObjectTransformState(n),this}};import{NormalBlending as x_,ShaderMaterial as b_}from"three";import{CubeReflectionMapping as VA,CubeRefractionMapping as zA,CubeUVReflectionMapping as jA,LinearEncoding as dg,sRGBEncoding as HA}from"three";var oa=class{constructor(t){t=t??{},this.name=t.name,this.type=t.type,this.node=t.node,this.size=t.size,this.needsUpdate=t.needsUpdate}get value(){return this.node.value}set value(t){this.node.value=t}};import{MathUtils as NA}from"three";var at=class{constructor(t){this.hashProperties=void 0;this.isNode=!0;this.shortcuts={};this.uuid=NA.generateUUID(),this.type=t,this.name=""}analyze(t,e){e=e??{},t.analyzing=!0,this.build(t.addFlow(e.slot,e.cache,e.context),"v4"),t.clearVertexNodeCode(),t.clearFragmentNodeCode(),t.removeFlow(),t.analyzing=!1}analyzeAndFlow(t,e,n){return n=n??{},this.analyze(t,n),this.flow(t,e,n)}flow(t,e,n){n=n??{},t.addFlow(n.slot,n.cache,n.context);let o={result:this.build(t,e),code:t.clearNodeCode(),extra:t.context.extra};return t.removeFlow(),o}build(t,e,n){e=e??this.getType(t,e);let o=t.getNodeData(n??this);return t.analyzing&&this.appendDepsNode(t,o,e),t.nodes.indexOf(this)===-1&&t.nodes.push(this),this.updateFrame!==void 0&&t.updaters.indexOf(this)===-1&&t.updaters.push(this),this.generate(t,e,n)}updateFrame(t){}generateReadonly(t,e,n,o,i,a){return""}generate(t,e,n,o,i){return""}parse(t,e,n,o){}appendDepsNode(t,e,n){e.deps=(e.deps||0)+1;let o=t.getTypeLength(n);(o>(e.outputMax||0)||this.getType(t,n))&&(e.outputMax=o,e.output=n)}setName(t){this.name=t}getName(){return this.name}getType(t,e){return e==="sampler2D"||e==="samplerCube"?e:this.type}getHash(){let t="{",e,n;for(e in this)n=this[e],n instanceof at&&(t+='"'+e+'":'+n.getHash()+",");if(this.hashProperties)for(let o=0;o<this.hashProperties.length;o++)e=this.hashProperties[o],n=this[e],t+='"'+e+'":"'+String(n)+'",';return t+='"id":"'+this.uuid+'"}',t}};var wu=class{constructor(){this.nodes={};this.keywords={}}add(t){this.nodes[t.name]=t}addKeyword(t,e,n){n=n!==void 0?n:!0,this.keywords[t]={callback:e,cache:n}}remove(t){delete this.nodes[t.name]}removeKeyword(t){delete this.keywords[t]}get(t){return this.nodes[t]}getKeyword(t,e){return this.keywords[t].callback(e)}getKeywordData(t){return this.keywords[t]}contains(t){return this.nodes[t]!==void 0}containsKeyword(t){return this.keywords[t]!==void 0}},Qe=new wu;import{Vector2 as ug}from"three";import{MathUtils as PA}from"three";var de=class extends at{constructor(e,n){super(e);this.scope="";n=n??{},this.shared=n.shared!==void 0?n.shared:!0,this.unique=n.unique!==void 0?n.unique:!1}build(e,n,o,i){if(n=n??this.getType(e),this.getShared(e,n)){let a=this.getUnique(e,n);a&&this.uuid===void 0&&(this.uuid=PA.generateUUID()),o=e.getUUID(o??this.getUUID(),!a);let s=e.getNodeData(o),l=s.output||this.getType(e);if(e.analyzing)return(s.deps||0)>0||this.getLabel()?(this.appendDepsNode(e,s,n),this.generate(e,n,o)):super.build(e,n,o);if(a)return s.name=s.name||super.build(e,n,o),s.name;if(!this.getLabel()&&(!this.getShared(e,l)||e.context.ignoreCache||s.deps===1))return super.build(e,n,o);o=this.getUUID(!1);let u=this.getTemp(e,o);if(u)return e.format(u,l,n);{u=super.generate(e,n,o,s.output,i);let c=this.generate(e,l,o);return e.addNodeCode(u+" = "+c+";"),e.format(u,l,n)}}return super.build(e,n,o)}getShared(e,n){return n!=="sampler2D"&&n!=="samplerCube"&&this.shared}getUnique(e,n){return this.unique}setLabel(e){return this.label=e,this}getLabel(){return this.label}getUUID(e){let n=this.uuid;return typeof this.scope=="string"&&(n=this.scope+"-"+n),n}getTemp(e,n){n=n||this.uuid;let o=e.getVars()[n];return o?o.name:void 0}generate(e,n,o,i,a){return this.getShared(e,n)||console.error("TempNode is not shared"),o=o??this.uuid,e.getTempVar(o,i??this.getType(e),a,this.getLabel()).name}};var Be=class extends de{constructor(e,n){n=n??{},n.shared=n.shared!==void 0?n.shared:!1;super(e,n);this.readonly=!1}setReadonly(e){return this.readonly=e,this.hashProperties=this.readonly?["value"]:void 0,this}getReadonly(){return this.readonly}generate(e,n,o,i,a,s){o=e.getUUID(o??this.getUUID()),i=i??this.getType(e);let l=e.getNodeData(o);return this.getReadonly()&&this.generateReadonly!==void 0?this.generateReadonly(e,n,o,i,a,s):e.isShader("vertex")?(l.vertex||(l.vertex=e.createVertexUniform(i,this,a,s,this.getLabel())),e.format(l.vertex.name,i,n)):(l.fragment||(l.fragment=e.createFragmentUniform(i,this,a,s,this.getLabel())),e.format(l.fragment.name,i,n))}};var st=class extends Be{constructor(e=0,n){super("v2");this.nodeType="Vector2";this.value=e instanceof ug?e:new ug(e,n)}get x(){return this.value.x}set x(e){this.value.x=e}get y(){return this.value.y}set y(e){this.value.y=e}generateReadonly(e,n,o,i,a,s){return e.format("vec2("+this.value.x+", "+this.value.y+")",i,n)}};import{Vector3 as pg}from"three";var ft=class extends Be{constructor(e=0,n,o){super("v3");this.nodeType="Vector3";this.value=e instanceof pg?e:new pg(e,n,o)}get x(){return this.value.x}set x(e){this.value.x=e}get y(){return this.value.y}set y(e){this.value.y=e}get z(){return this.value.z}set z(e){this.value.z=e}generateReadonly(e,n,o,i,a,s){return e.format("vec3("+this.value.x+", "+this.value.y+", "+this.value.z+")",i,n)}};import{Color as MA}from"three";var Je=class extends MA{constructor(e,n,o,i){super(e,n,o);this.isColorA=!0;this.a=i}setRGBA(e,n,o,i){super.setRGB(e,n,o),this.a=i}copy(e){return super.copy(e),this.a="a"in e?e.a:1,this}clone(){return new this.constructor(this.r,this.g,this.b,this.a)}get x(){return this.r}get y(){return this.g}get z(){return this.b}get w(){return this.a}set x(e){this.r=e}set y(e){this.g=e}set z(e){this.b=e}set w(e){this.a=e}};var Kt=class extends Be{constructor(e){super("v4");this.nodeType="Vector4";this.value=e instanceof Je?e:new Je(e.r,e.g,e.b,e.a)}generateReadonly(e,n,o,i,a,s){return e.format("vec4("+this.value.r+", "+this.value.g+", "+this.value.b+", "+this.value.a+")",i,n)}};var EA=/^\s*([a-z_0-9]+)\s([a-z_0-9]+)\s*\((.*?)\)/i,fg=/[a-z_0-9]+/gi,Z=class extends de{constructor(e,n,o,i,a){super(a);this.src="";this.nodeType="Function";this.useKeywords=!0;this.includes=[];this.extensions={};this.keywords={};this.isMethod=a===void 0,this.isInterface=!1,this.parse(e,n,o,i)}getShared(e,n){return!this.isMethod}getType(e){return e.getTypeByFormat(this.type)}getInputByName(e){if(this.inputs){let n=this.inputs.length;for(;n--;)if(this.inputs[n].name===e)return this.inputs[n]}}getIncludeByName(e){if(this.includes){let n=this.includes.length;for(;n--;)if(this.includes[n].name===e)return this.includes[n]}}generate(e,n,o,i,a){let s,l=0,u=this.src;if(this.includes)for(let p=0;p<this.includes.length;p++)e.include(this.includes[p],this);for(let p in this.extensions)e.extensions[p]=!0;let c=[];for(;s=fg.exec(this.src);)c.push(s);for(let p=0;p<c.length;p++){let f=c[p],d=f[0],h=this.isMethod?!this.getInputByName(d):!0,m=d;if(this.keywords[d]||this.useKeywords&&h&&Qe.containsKeyword(d)){let g=this.keywords[d];if(!g){let v=Qe.getKeywordData(d);v.cache&&(g=e.keywords[d]),g=g||Qe.getKeyword(d,e),v.cache&&(e.keywords[d]=g)}m=g.build(e)}d!==m&&u[f.index+l-1]!=="."&&(u=u.substring(0,f.index+l)+m+u.substring(f.index+d.length+l),l+=m.length-d.length),this.getIncludeByName(m)===void 0&&Qe.contains(m)&&e.include(Qe.get(m))}return n==="source"?u:this.isMethod?(this.isInterface||e.include(this,void 0,u),this.name):e.format("( "+u+" )",this.getType(e),n)}parse(e,n,o,i){if(this.src=e||"",this.includes=n??[],this.extensions=o??{},this.keywords=i??{},this.isMethod){let a=EA.exec(this.src);if(this.inputs=[],a&&a.length==4){this.type=a[1],this.name=a[2];let s=a[3].match(fg);if(s){let l=0;for(;l<s.length;){let u=s[l++],c;u==="in"||u==="out"||u==="inout"?c=s[l++]:(c=u,u="");let p=s[l++];this.inputs.push({name:p,type:c,qualifier:u})}}this.isInterface=this.src.indexOf("{")===-1}else this.type="",this.name=""}}};var DA=/^([a-z_0-9]+)\s([a-z_0-9]+)\s?\=?\s?(.*?)(\;|$)/i,Tu=class extends de{constructor(e="",n){super();this.src="";this.useDefine=!1;this.nodeType="Const";this.parse(e||Tu.PI,void 0,void 0,void 0,n)}getType(e){return e.getTypeByFormat(this.type)}parse(e,n,o,i,a){this.src=e||"";let s,l,u="",c=DA.exec(e);this.useDefine=a??this.src.charAt(0)==="#",c&&c.length>1?(l=c[1],s=c[2],u=c[3]):(s=this.src,l="f"),this.name=s,this.type=l,this.value=u}build(e,n){if(n==="source"){if(this.value)return this.useDefine?"#define "+this.name+" "+this.value:"const "+this.type+" "+this.name+" = "+this.value+";";if(this.useDefine)return this.src}return e.include(this),e.format(this.name,this.getType(e),n)}generate(e,n,o,i,a){return e.format(this.name,this.getType(e),n)}},Ce=Tu;Ce.PI="PI",Ce.PI2="PI2",Ce.RECIPROCAL_PI="RECIPROCAL_PI",Ce.RECIPROCAL_PI2="RECIPROCAL_PI2",Ce.LOG2="LOG2",Ce.EPSILON="EPSILON";var BA=new RegExp(`^structs*([a-z_0-9]+)s*{s*((.|
2
- )*?)}`,"gim"),FA=new RegExp("s*(w*?)s*(w*?)(=|;)","gim"),ri=class extends de{constructor(e=""){super();this.inputs=[];this.src="";this.nodeType="Struct";this.parse(e)}getType(e){return e.getTypeByFormat(this.name)}getInputByName(e){let n=this.inputs.length;for(;n--;)if(this.inputs[n].name===e)return this.inputs[n]}generate(e,n,o,i,a){return n==="source"?this.src+";":e.format("( "+this.src+" )",this.getType(e),n)}parse(e=""){this.src=e,this.inputs=[];let n=BA.exec(e);if(n){let o=n[2],i;for(;i=FA.exec(o);)this.inputs.push({type:i[1],name:i[2]});this.name=n[1]}else this.name="";this.type=this.name}};var ni=class extends de{constructor(e){super("v2",{shared:!1});this.nodeType="UV";this.index=e??0}generate(e,n){e.requires.uv[this.index]=!0;let o=this.index>0?this.index+1:"",i=e.isShader("vertex")?"uv"+o:"vUv"+o;return e.format(i,this.getType(e),n)}};Qe.addKeyword("uv",function(){return new ni});Qe.addKeyword("uv2",function(){return new ni(1)});import{LinearEncoding as RA,sRGBEncoding as kA}from"three";var Jn=class extends de{constructor(e,n){super("v4");this.nodeType="ColorSpace";this.input=e,this.method=n??Jn.LINEAR_TO_LINEAR,this.hashProperties=["method"]}static getEncodingComponents(e){switch(e){case RA:return["Linear"];case kA:return["sRGB"];default:return[]}}generate(e,n){let o=this.input.build(e,"v4"),i=this.getType(e),a=Jn.Nodes[this.method],s=e.include(a);if(s===Jn.LINEAR_TO_LINEAR)return e.format(o,i,n);if(a.inputs?.length===2){let l=this.factor.build(e,"f");return e.format(s+"( "+o+", "+l+" )",i,n)}else return e.format(s+"( "+o+" )",i,n)}fromEncoding(e){let n=Jn.getEncodingComponents(e);this.method="LinearTo"+n[0],this.factor=n[1]}fromDecoding(e){let n=Jn.getEncodingComponents(e);this.method=n[0]+"ToLinear",this.factor=n[1]}},bt=Jn;bt.Nodes={LinearToLinear:new Z(["vec4 LinearToLinear( in vec4 value ) {"," return value;","}"].join(`
1
+ var vv=Object.create;var tc=Object.defineProperty;var xv=Object.getOwnPropertyDescriptor;var bv=Object.getOwnPropertyNames;var Sv=Object.getPrototypeOf,wv=Object.prototype.hasOwnProperty;var rc=(r,t)=>()=>(t||r((t={exports:{}}).exports,t),t.exports),Tv=(r,t)=>{for(var e in t)tc(r,e,{get:t[e],enumerable:!0})},Cv=(r,t,e,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of bv(t))!wv.call(r,o)&&o!==e&&tc(r,o,{get:()=>t[o],enumerable:!(n=xv(t,o))||n.enumerable});return r};var Dp=(r,t,e)=>(e=r!=null?vv(Sv(r)):{},Cv(t||!r||!r.__esModule?tc(e,"default",{value:r,enumerable:!0}):e,r));var qu=rc(()=>{});var S0=rc(($l,b0)=>{(function(r,t){typeof $l=="object"&&typeof b0<"u"?t($l):typeof define=="function"&&define.amd?define(["exports"],t):t((r=typeof globalThis<"u"?globalThis:r||self).SVDJS={})})($l,function(r){"use strict";r.SVD=function(t,e,n,o,i){if(e=e===void 0||e,n=n===void 0||n,i=1e-64/(o=o||Math.pow(2,-52)),!t)throw new TypeError("Matrix a is not defined");var a,s,l,u,c,p,f,d,h,m,g,v,x=t[0].length,S=t.length;if(S<x)throw new TypeError("Invalid matrix: m < n");for(var w=[],b=[],_=[],T=e==="f"?S:x,y=m=f=0;y<S;y++)b[y]=new Array(T).fill(0);for(y=0;y<x;y++)_[y]=new Array(x).fill(0);var O,A=new Array(x).fill(0);for(y=0;y<S;y++)for(a=0;a<x;a++)b[y][a]=t[y][a];for(y=0;y<x;y++){for(w[y]=f,h=0,l=y+1,a=y;a<S;a++)h+=Math.pow(b[a][y],2);if(h<i)f=0;else for(d=(p=b[y][y])*(f=p<0?Math.sqrt(h):-Math.sqrt(h))-h,b[y][y]=p-f,a=l;a<x;a++){for(h=0,s=y;s<S;s++)h+=b[s][y]*b[s][a];for(p=h/d,s=y;s<S;s++)b[s][a]=b[s][a]+p*b[s][y]}for(A[y]=f,h=0,a=l;a<x;a++)h+=Math.pow(b[y][a],2);if(h<i)f=0;else{for(d=(p=b[y][y+1])*(f=p<0?Math.sqrt(h):-Math.sqrt(h))-h,b[y][y+1]=p-f,a=l;a<x;a++)w[a]=b[y][a]/d;for(a=l;a<S;a++){for(h=0,s=l;s<x;s++)h+=b[a][s]*b[y][s];for(s=l;s<x;s++)b[a][s]=b[a][s]+h*w[s]}}m<(g=Math.abs(A[y])+Math.abs(w[y]))&&(m=g)}if(n)for(y=x-1;0<=y;y--){if(f!==0){for(d=b[y][y+1]*f,a=l;a<x;a++)_[a][y]=b[y][a]/d;for(a=l;a<x;a++){for(h=0,s=l;s<x;s++)h+=b[y][s]*_[s][a];for(s=l;s<x;s++)_[s][a]=_[s][a]+h*_[s][y]}}for(a=l;a<x;a++)_[y][a]=0,_[a][y]=0;_[y][y]=1,f=w[y],l=y}if(e){if(e==="f")for(y=x;y<S;y++){for(a=x;a<S;a++)b[y][a]=0;b[y][y]=1}for(y=x-1;0<=y;y--){for(l=y+1,f=A[y],a=l;a<T;a++)b[y][a]=0;if(f!==0){for(d=b[y][y]*f,a=l;a<T;a++){for(h=0,s=l;s<S;s++)h+=b[s][y]*b[s][a];for(p=h/d,s=y;s<S;s++)b[s][a]=b[s][a]+p*b[s][y]}for(a=y;a<S;a++)b[a][y]=b[a][y]/f}else for(a=y;a<S;a++)b[a][y]=0;b[y][y]=b[y][y]+1}}for(o*=m,s=x-1;0<=s;s--)for(var I=0;I<50;I++){for(O=!1,l=s;0<=l;l--){if(Math.abs(w[l])<=o){O=!0;break}if(Math.abs(A[l-1])<=o)break}if(!O){for(c=0,u=l-(h=1),y=l;y<s+1&&(p=h*w[y],w[y]=c*w[y],!(Math.abs(p)<=o));y++)if(f=A[y],A[y]=Math.sqrt(p*p+f*f),c=f/(d=A[y]),h=-p/d,e)for(a=0;a<S;a++)g=b[a][u],v=b[a][y],b[a][u]=g*c+v*h,b[a][y]=-g*h+v*c}if(v=A[s],l===s){if(v<0&&(A[s]=-v,n))for(a=0;a<x;a++)_[a][s]=-_[a][s];break}for(m=A[l],p=(((g=A[s-1])-v)*(g+v)+((f=w[s-1])-(d=w[s]))*(f+d))/(2*d*g),f=Math.sqrt(p*p+1),p=((m-v)*(m+v)+d*(g/(p<0?p-f:p+f)-d))/m,y=l+(h=c=1);y<s+1;y++){if(f=w[y],g=A[y],d=h*f,f*=c,v=Math.sqrt(p*p+d*d),p=m*(c=p/(w[y-1]=v))+f*(h=d/v),f=-m*h+f*c,d=g*h,g*=c,n)for(a=0;a<x;a++)m=_[a][y-1],v=_[a][y],_[a][y-1]=m*c+v*h,_[a][y]=-m*h+v*c;if(v=Math.sqrt(p*p+d*d),p=(c=p/(A[y-1]=v))*f+(h=d/v)*g,m=-h*f+c*g,e)for(a=0;a<S;a++)g=b[a][y-1],v=b[a][y],b[a][y-1]=g*c+v*h,b[a][y]=-g*h+v*c}w[l]=0,w[s]=p,A[s]=m}for(y=0;y<x;y++)A[y]<o&&(A[y]=0);return{u:b,q:A,v:_}},r.VERSION="1.1.1",Object.defineProperty(r,"__esModule",{value:!0})})});var R0=rc(Kl=>{(function(){"use strict";var r=function(){this.init()};r.prototype={init:function(){var c=this||t;return c._counter=1e3,c._html5AudioPool=[],c.html5PoolSize=10,c._codecs={},c._howls=[],c._muted=!1,c._volume=1,c._canPlayEvent="canplaythrough",c._navigator=typeof window<"u"&&window.navigator?window.navigator:null,c.masterGain=null,c.noAudio=!1,c.usingWebAudio=!0,c.autoSuspend=!0,c.ctx=null,c.autoUnlock=!0,c._setup(),c},volume:function(c){var p=this||t;if(c=parseFloat(c),p.ctx||u(),typeof c<"u"&&c>=0&&c<=1){if(p._volume=c,p._muted)return p;p.usingWebAudio&&p.masterGain.gain.setValueAtTime(c,t.ctx.currentTime);for(var f=0;f<p._howls.length;f++)if(!p._howls[f]._webAudio)for(var d=p._howls[f]._getSoundIds(),h=0;h<d.length;h++){var m=p._howls[f]._soundById(d[h]);m&&m._node&&(m._node.volume=m._volume*c)}return p}return p._volume},mute:function(c){var p=this||t;p.ctx||u(),p._muted=c,p.usingWebAudio&&p.masterGain.gain.setValueAtTime(c?0:p._volume,t.ctx.currentTime);for(var f=0;f<p._howls.length;f++)if(!p._howls[f]._webAudio)for(var d=p._howls[f]._getSoundIds(),h=0;h<d.length;h++){var m=p._howls[f]._soundById(d[h]);m&&m._node&&(m._node.muted=c?!0:m._muted)}return p},stop:function(){for(var c=this||t,p=0;p<c._howls.length;p++)c._howls[p].stop();return c},unload:function(){for(var c=this||t,p=c._howls.length-1;p>=0;p--)c._howls[p].unload();return c.usingWebAudio&&c.ctx&&typeof c.ctx.close<"u"&&(c.ctx.close(),c.ctx=null,u()),c},codecs:function(c){return(this||t)._codecs[c.replace(/^x-/,"")]},_setup:function(){var c=this||t;if(c.state=c.ctx&&c.ctx.state||"suspended",c._autoSuspend(),!c.usingWebAudio)if(typeof Audio<"u")try{var p=new Audio;typeof p.oncanplaythrough>"u"&&(c._canPlayEvent="canplay")}catch{c.noAudio=!0}else c.noAudio=!0;try{var p=new Audio;p.muted&&(c.noAudio=!0)}catch{}return c.noAudio||c._setupCodecs(),c},_setupCodecs:function(){var c=this||t,p=null;try{p=typeof Audio<"u"?new Audio:null}catch{return c}if(!p||typeof p.canPlayType!="function")return c;var f=p.canPlayType("audio/mpeg;").replace(/^no$/,""),d=c._navigator?c._navigator.userAgent:"",h=d.match(/OPR\/([0-6].)/g),m=h&&parseInt(h[0].split("/")[1],10)<33,g=d.indexOf("Safari")!==-1&&d.indexOf("Chrome")===-1,v=d.match(/Version\/(.*?) /),x=g&&v&&parseInt(v[1],10)<15;return c._codecs={mp3:!!(!m&&(f||p.canPlayType("audio/mp3;").replace(/^no$/,""))),mpeg:!!f,opus:!!p.canPlayType('audio/ogg; codecs="opus"').replace(/^no$/,""),ogg:!!p.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,""),oga:!!p.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,""),wav:!!(p.canPlayType('audio/wav; codecs="1"')||p.canPlayType("audio/wav")).replace(/^no$/,""),aac:!!p.canPlayType("audio/aac;").replace(/^no$/,""),caf:!!p.canPlayType("audio/x-caf;").replace(/^no$/,""),m4a:!!(p.canPlayType("audio/x-m4a;")||p.canPlayType("audio/m4a;")||p.canPlayType("audio/aac;")).replace(/^no$/,""),m4b:!!(p.canPlayType("audio/x-m4b;")||p.canPlayType("audio/m4b;")||p.canPlayType("audio/aac;")).replace(/^no$/,""),mp4:!!(p.canPlayType("audio/x-mp4;")||p.canPlayType("audio/mp4;")||p.canPlayType("audio/aac;")).replace(/^no$/,""),weba:!!(!x&&p.canPlayType('audio/webm; codecs="vorbis"').replace(/^no$/,"")),webm:!!(!x&&p.canPlayType('audio/webm; codecs="vorbis"').replace(/^no$/,"")),dolby:!!p.canPlayType('audio/mp4; codecs="ec-3"').replace(/^no$/,""),flac:!!(p.canPlayType("audio/x-flac;")||p.canPlayType("audio/flac;")).replace(/^no$/,"")},c},_unlockAudio:function(){var c=this||t;if(!(c._audioUnlocked||!c.ctx)){c._audioUnlocked=!1,c.autoUnlock=!1,!c._mobileUnloaded&&c.ctx.sampleRate!==44100&&(c._mobileUnloaded=!0,c.unload()),c._scratchBuffer=c.ctx.createBuffer(1,1,22050);var p=function(f){for(;c._html5AudioPool.length<c.html5PoolSize;)try{var d=new Audio;d._unlocked=!0,c._releaseHtml5Audio(d)}catch{c.noAudio=!0;break}for(var h=0;h<c._howls.length;h++)if(!c._howls[h]._webAudio)for(var m=c._howls[h]._getSoundIds(),g=0;g<m.length;g++){var v=c._howls[h]._soundById(m[g]);v&&v._node&&!v._node._unlocked&&(v._node._unlocked=!0,v._node.load())}c._autoResume();var x=c.ctx.createBufferSource();x.buffer=c._scratchBuffer,x.connect(c.ctx.destination),typeof x.start>"u"?x.noteOn(0):x.start(0),typeof c.ctx.resume=="function"&&c.ctx.resume(),x.onended=function(){x.disconnect(0),c._audioUnlocked=!0,document.removeEventListener("touchstart",p,!0),document.removeEventListener("touchend",p,!0),document.removeEventListener("click",p,!0),document.removeEventListener("keydown",p,!0);for(var S=0;S<c._howls.length;S++)c._howls[S]._emit("unlock")}};return document.addEventListener("touchstart",p,!0),document.addEventListener("touchend",p,!0),document.addEventListener("click",p,!0),document.addEventListener("keydown",p,!0),c}},_obtainHtml5Audio:function(){var c=this||t;if(c._html5AudioPool.length)return c._html5AudioPool.pop();var p=new Audio().play();return p&&typeof Promise<"u"&&(p instanceof Promise||typeof p.then=="function")&&p.catch(function(){console.warn("HTML5 Audio pool exhausted, returning potentially locked audio object.")}),new Audio},_releaseHtml5Audio:function(c){var p=this||t;return c._unlocked&&p._html5AudioPool.push(c),p},_autoSuspend:function(){var c=this;if(!(!c.autoSuspend||!c.ctx||typeof c.ctx.suspend>"u"||!t.usingWebAudio)){for(var p=0;p<c._howls.length;p++)if(c._howls[p]._webAudio){for(var f=0;f<c._howls[p]._sounds.length;f++)if(!c._howls[p]._sounds[f]._paused)return c}return c._suspendTimer&&clearTimeout(c._suspendTimer),c._suspendTimer=setTimeout(function(){if(!!c.autoSuspend){c._suspendTimer=null,c.state="suspending";var d=function(){c.state="suspended",c._resumeAfterSuspend&&(delete c._resumeAfterSuspend,c._autoResume())};c.ctx.suspend().then(d,d)}},3e4),c}},_autoResume:function(){var c=this;if(!(!c.ctx||typeof c.ctx.resume>"u"||!t.usingWebAudio))return c.state==="running"&&c.ctx.state!=="interrupted"&&c._suspendTimer?(clearTimeout(c._suspendTimer),c._suspendTimer=null):c.state==="suspended"||c.state==="running"&&c.ctx.state==="interrupted"?(c.ctx.resume().then(function(){c.state="running";for(var p=0;p<c._howls.length;p++)c._howls[p]._emit("resume")}),c._suspendTimer&&(clearTimeout(c._suspendTimer),c._suspendTimer=null)):c.state==="suspending"&&(c._resumeAfterSuspend=!0),c}};var t=new r,e=function(c){var p=this;if(!c.src||c.src.length===0){console.error("An array of source files must be passed with any new Howl.");return}p.init(c)};e.prototype={init:function(c){var p=this;return t.ctx||u(),p._autoplay=c.autoplay||!1,p._format=typeof c.format!="string"?c.format:[c.format],p._html5=c.html5||!1,p._muted=c.mute||!1,p._loop=c.loop||!1,p._pool=c.pool||5,p._preload=typeof c.preload=="boolean"||c.preload==="metadata"?c.preload:!0,p._rate=c.rate||1,p._sprite=c.sprite||{},p._src=typeof c.src!="string"?c.src:[c.src],p._volume=c.volume!==void 0?c.volume:1,p._xhr={method:c.xhr&&c.xhr.method?c.xhr.method:"GET",headers:c.xhr&&c.xhr.headers?c.xhr.headers:null,withCredentials:c.xhr&&c.xhr.withCredentials?c.xhr.withCredentials:!1},p._duration=0,p._state="unloaded",p._sounds=[],p._endTimers={},p._queue=[],p._playLock=!1,p._onend=c.onend?[{fn:c.onend}]:[],p._onfade=c.onfade?[{fn:c.onfade}]:[],p._onload=c.onload?[{fn:c.onload}]:[],p._onloaderror=c.onloaderror?[{fn:c.onloaderror}]:[],p._onplayerror=c.onplayerror?[{fn:c.onplayerror}]:[],p._onpause=c.onpause?[{fn:c.onpause}]:[],p._onplay=c.onplay?[{fn:c.onplay}]:[],p._onstop=c.onstop?[{fn:c.onstop}]:[],p._onmute=c.onmute?[{fn:c.onmute}]:[],p._onvolume=c.onvolume?[{fn:c.onvolume}]:[],p._onrate=c.onrate?[{fn:c.onrate}]:[],p._onseek=c.onseek?[{fn:c.onseek}]:[],p._onunlock=c.onunlock?[{fn:c.onunlock}]:[],p._onresume=[],p._webAudio=t.usingWebAudio&&!p._html5,typeof t.ctx<"u"&&t.ctx&&t.autoUnlock&&t._unlockAudio(),t._howls.push(p),p._autoplay&&p._queue.push({event:"play",action:function(){p.play()}}),p._preload&&p._preload!=="none"&&p.load(),p},load:function(){var c=this,p=null;if(t.noAudio){c._emit("loaderror",null,"No audio support.");return}typeof c._src=="string"&&(c._src=[c._src]);for(var f=0;f<c._src.length;f++){var d,h;if(c._format&&c._format[f])d=c._format[f];else{if(h=c._src[f],typeof h!="string"){c._emit("loaderror",null,"Non-string found in selected audio sources - ignoring.");continue}d=/^data:audio\/([^;,]+);/i.exec(h),d||(d=/\.([^.]+)$/.exec(h.split("?",1)[0])),d&&(d=d[1].toLowerCase())}if(d||console.warn('No file extension was found. Consider using the "format" property or specify an extension.'),d&&t.codecs(d)){p=c._src[f];break}}if(!p){c._emit("loaderror",null,"No codec support for selected audio sources.");return}return c._src=p,c._state="loading",window.location.protocol==="https:"&&p.slice(0,5)==="http:"&&(c._html5=!0,c._webAudio=!1),new n(c),c._webAudio&&i(c),c},play:function(c,p){var f=this,d=null;if(typeof c=="number")d=c,c=null;else{if(typeof c=="string"&&f._state==="loaded"&&!f._sprite[c])return null;if(typeof c>"u"&&(c="__default",!f._playLock)){for(var h=0,m=0;m<f._sounds.length;m++)f._sounds[m]._paused&&!f._sounds[m]._ended&&(h++,d=f._sounds[m]._id);h===1?c=null:d=null}}var g=d?f._soundById(d):f._inactiveSound();if(!g)return null;if(d&&!c&&(c=g._sprite||"__default"),f._state!=="loaded"){g._sprite=c,g._ended=!1;var v=g._id;return f._queue.push({event:"play",action:function(){f.play(v)}}),v}if(d&&!g._paused)return p||f._loadQueue("play"),g._id;f._webAudio&&t._autoResume();var x=Math.max(0,g._seek>0?g._seek:f._sprite[c][0]/1e3),S=Math.max(0,(f._sprite[c][0]+f._sprite[c][1])/1e3-x),w=S*1e3/Math.abs(g._rate),b=f._sprite[c][0]/1e3,_=(f._sprite[c][0]+f._sprite[c][1])/1e3;g._sprite=c,g._ended=!1;var T=function(){g._paused=!1,g._seek=x,g._start=b,g._stop=_,g._loop=!!(g._loop||f._sprite[c][2])};if(x>=_){f._ended(g);return}var y=g._node;if(f._webAudio){var O=function(){f._playLock=!1,T(),f._refreshBuffer(g);var N=g._muted||f._muted?0:g._volume;y.gain.setValueAtTime(N,t.ctx.currentTime),g._playStart=t.ctx.currentTime,typeof y.bufferSource.start>"u"?g._loop?y.bufferSource.noteGrainOn(0,x,86400):y.bufferSource.noteGrainOn(0,x,S):g._loop?y.bufferSource.start(0,x,86400):y.bufferSource.start(0,x,S),w!==1/0&&(f._endTimers[g._id]=setTimeout(f._ended.bind(f,g),w)),p||setTimeout(function(){f._emit("play",g._id),f._loadQueue()},0)};t.state==="running"&&t.ctx.state!=="interrupted"?O():(f._playLock=!0,f.once("resume",O),f._clearTimer(g._id))}else{var A=function(){y.currentTime=x,y.muted=g._muted||f._muted||t._muted||y.muted,y.volume=g._volume*t.volume(),y.playbackRate=g._rate;try{var N=y.play();if(N&&typeof Promise<"u"&&(N instanceof Promise||typeof N.then=="function")?(f._playLock=!0,T(),N.then(function(){f._playLock=!1,y._unlocked=!0,p?f._loadQueue():f._emit("play",g._id)}).catch(function(){f._playLock=!1,f._emit("playerror",g._id,"Playback was unable to start. This is most commonly an issue on mobile devices and Chrome where playback was not within a user interaction."),g._ended=!0,g._paused=!0})):p||(f._playLock=!1,T(),f._emit("play",g._id)),y.playbackRate=g._rate,y.paused){f._emit("playerror",g._id,"Playback was unable to start. This is most commonly an issue on mobile devices and Chrome where playback was not within a user interaction.");return}c!=="__default"||g._loop?f._endTimers[g._id]=setTimeout(f._ended.bind(f,g),w):(f._endTimers[g._id]=function(){f._ended(g),y.removeEventListener("ended",f._endTimers[g._id],!1)},y.addEventListener("ended",f._endTimers[g._id],!1))}catch(P){f._emit("playerror",g._id,P)}};y.src==="data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA"&&(y.src=f._src,y.load());var I=window&&window.ejecta||!y.readyState&&t._navigator.isCocoonJS;if(y.readyState>=3||I)A();else{f._playLock=!0,f._state="loading";var C=function(){f._state="loaded",A(),y.removeEventListener(t._canPlayEvent,C,!1)};y.addEventListener(t._canPlayEvent,C,!1),f._clearTimer(g._id)}}return g._id},pause:function(c){var p=this;if(p._state!=="loaded"||p._playLock)return p._queue.push({event:"pause",action:function(){p.pause(c)}}),p;for(var f=p._getSoundIds(c),d=0;d<f.length;d++){p._clearTimer(f[d]);var h=p._soundById(f[d]);if(h&&!h._paused&&(h._seek=p.seek(f[d]),h._rateSeek=0,h._paused=!0,p._stopFade(f[d]),h._node))if(p._webAudio){if(!h._node.bufferSource)continue;typeof h._node.bufferSource.stop>"u"?h._node.bufferSource.noteOff(0):h._node.bufferSource.stop(0),p._cleanBuffer(h._node)}else(!isNaN(h._node.duration)||h._node.duration===1/0)&&h._node.pause();arguments[1]||p._emit("pause",h?h._id:null)}return p},stop:function(c,p){var f=this;if(f._state!=="loaded"||f._playLock)return f._queue.push({event:"stop",action:function(){f.stop(c)}}),f;for(var d=f._getSoundIds(c),h=0;h<d.length;h++){f._clearTimer(d[h]);var m=f._soundById(d[h]);m&&(m._seek=m._start||0,m._rateSeek=0,m._paused=!0,m._ended=!0,f._stopFade(d[h]),m._node&&(f._webAudio?m._node.bufferSource&&(typeof m._node.bufferSource.stop>"u"?m._node.bufferSource.noteOff(0):m._node.bufferSource.stop(0),f._cleanBuffer(m._node)):(!isNaN(m._node.duration)||m._node.duration===1/0)&&(m._node.currentTime=m._start||0,m._node.pause(),m._node.duration===1/0&&f._clearSound(m._node))),p||f._emit("stop",m._id))}return f},mute:function(c,p){var f=this;if(f._state!=="loaded"||f._playLock)return f._queue.push({event:"mute",action:function(){f.mute(c,p)}}),f;if(typeof p>"u")if(typeof c=="boolean")f._muted=c;else return f._muted;for(var d=f._getSoundIds(p),h=0;h<d.length;h++){var m=f._soundById(d[h]);m&&(m._muted=c,m._interval&&f._stopFade(m._id),f._webAudio&&m._node?m._node.gain.setValueAtTime(c?0:m._volume,t.ctx.currentTime):m._node&&(m._node.muted=t._muted?!0:c),f._emit("mute",m._id))}return f},volume:function(){var c=this,p=arguments,f,d;if(p.length===0)return c._volume;if(p.length===1||p.length===2&&typeof p[1]>"u"){var h=c._getSoundIds(),m=h.indexOf(p[0]);m>=0?d=parseInt(p[0],10):f=parseFloat(p[0])}else p.length>=2&&(f=parseFloat(p[0]),d=parseInt(p[1],10));var g;if(typeof f<"u"&&f>=0&&f<=1){if(c._state!=="loaded"||c._playLock)return c._queue.push({event:"volume",action:function(){c.volume.apply(c,p)}}),c;typeof d>"u"&&(c._volume=f),d=c._getSoundIds(d);for(var v=0;v<d.length;v++)g=c._soundById(d[v]),g&&(g._volume=f,p[2]||c._stopFade(d[v]),c._webAudio&&g._node&&!g._muted?g._node.gain.setValueAtTime(f,t.ctx.currentTime):g._node&&!g._muted&&(g._node.volume=f*t.volume()),c._emit("volume",g._id))}else return g=d?c._soundById(d):c._sounds[0],g?g._volume:0;return c},fade:function(c,p,f,d){var h=this;if(h._state!=="loaded"||h._playLock)return h._queue.push({event:"fade",action:function(){h.fade(c,p,f,d)}}),h;c=Math.min(Math.max(0,parseFloat(c)),1),p=Math.min(Math.max(0,parseFloat(p)),1),f=parseFloat(f),h.volume(c,d);for(var m=h._getSoundIds(d),g=0;g<m.length;g++){var v=h._soundById(m[g]);if(v){if(d||h._stopFade(m[g]),h._webAudio&&!v._muted){var x=t.ctx.currentTime,S=x+f/1e3;v._volume=c,v._node.gain.setValueAtTime(c,x),v._node.gain.linearRampToValueAtTime(p,S)}h._startFadeInterval(v,c,p,f,m[g],typeof d>"u")}}return h},_startFadeInterval:function(c,p,f,d,h,m){var g=this,v=p,x=f-p,S=Math.abs(x/.01),w=Math.max(4,S>0?d/S:d),b=Date.now();c._fadeTo=f,c._interval=setInterval(function(){var _=(Date.now()-b)/d;b=Date.now(),v+=x*_,v=Math.round(v*100)/100,x<0?v=Math.max(f,v):v=Math.min(f,v),g._webAudio?c._volume=v:g.volume(v,c._id,!0),m&&(g._volume=v),(f<p&&v<=f||f>p&&v>=f)&&(clearInterval(c._interval),c._interval=null,c._fadeTo=null,g.volume(f,c._id),g._emit("fade",c._id))},w)},_stopFade:function(c){var p=this,f=p._soundById(c);return f&&f._interval&&(p._webAudio&&f._node.gain.cancelScheduledValues(t.ctx.currentTime),clearInterval(f._interval),f._interval=null,p.volume(f._fadeTo,c),f._fadeTo=null,p._emit("fade",c)),p},loop:function(){var c=this,p=arguments,f,d,h;if(p.length===0)return c._loop;if(p.length===1)if(typeof p[0]=="boolean")f=p[0],c._loop=f;else return h=c._soundById(parseInt(p[0],10)),h?h._loop:!1;else p.length===2&&(f=p[0],d=parseInt(p[1],10));for(var m=c._getSoundIds(d),g=0;g<m.length;g++)h=c._soundById(m[g]),h&&(h._loop=f,c._webAudio&&h._node&&h._node.bufferSource&&(h._node.bufferSource.loop=f,f&&(h._node.bufferSource.loopStart=h._start||0,h._node.bufferSource.loopEnd=h._stop,c.playing(m[g])&&(c.pause(m[g],!0),c.play(m[g],!0)))));return c},rate:function(){var c=this,p=arguments,f,d;if(p.length===0)d=c._sounds[0]._id;else if(p.length===1){var h=c._getSoundIds(),m=h.indexOf(p[0]);m>=0?d=parseInt(p[0],10):f=parseFloat(p[0])}else p.length===2&&(f=parseFloat(p[0]),d=parseInt(p[1],10));var g;if(typeof f=="number"){if(c._state!=="loaded"||c._playLock)return c._queue.push({event:"rate",action:function(){c.rate.apply(c,p)}}),c;typeof d>"u"&&(c._rate=f),d=c._getSoundIds(d);for(var v=0;v<d.length;v++)if(g=c._soundById(d[v]),g){c.playing(d[v])&&(g._rateSeek=c.seek(d[v]),g._playStart=c._webAudio?t.ctx.currentTime:g._playStart),g._rate=f,c._webAudio&&g._node&&g._node.bufferSource?g._node.bufferSource.playbackRate.setValueAtTime(f,t.ctx.currentTime):g._node&&(g._node.playbackRate=f);var x=c.seek(d[v]),S=(c._sprite[g._sprite][0]+c._sprite[g._sprite][1])/1e3-x,w=S*1e3/Math.abs(g._rate);(c._endTimers[d[v]]||!g._paused)&&(c._clearTimer(d[v]),c._endTimers[d[v]]=setTimeout(c._ended.bind(c,g),w)),c._emit("rate",g._id)}}else return g=c._soundById(d),g?g._rate:c._rate;return c},seek:function(){var c=this,p=arguments,f,d;if(p.length===0)c._sounds.length&&(d=c._sounds[0]._id);else if(p.length===1){var h=c._getSoundIds(),m=h.indexOf(p[0]);m>=0?d=parseInt(p[0],10):c._sounds.length&&(d=c._sounds[0]._id,f=parseFloat(p[0]))}else p.length===2&&(f=parseFloat(p[0]),d=parseInt(p[1],10));if(typeof d>"u")return 0;if(typeof f=="number"&&(c._state!=="loaded"||c._playLock))return c._queue.push({event:"seek",action:function(){c.seek.apply(c,p)}}),c;var g=c._soundById(d);if(g)if(typeof f=="number"&&f>=0){var v=c.playing(d);v&&c.pause(d,!0),g._seek=f,g._ended=!1,c._clearTimer(d),!c._webAudio&&g._node&&!isNaN(g._node.duration)&&(g._node.currentTime=f);var x=function(){v&&c.play(d,!0),c._emit("seek",d)};if(v&&!c._webAudio){var S=function(){c._playLock?setTimeout(S,0):x()};setTimeout(S,0)}else x()}else if(c._webAudio){var w=c.playing(d)?t.ctx.currentTime-g._playStart:0,b=g._rateSeek?g._rateSeek-g._seek:0;return g._seek+(b+w*Math.abs(g._rate))}else return g._node.currentTime;return c},playing:function(c){var p=this;if(typeof c=="number"){var f=p._soundById(c);return f?!f._paused:!1}for(var d=0;d<p._sounds.length;d++)if(!p._sounds[d]._paused)return!0;return!1},duration:function(c){var p=this,f=p._duration,d=p._soundById(c);return d&&(f=p._sprite[d._sprite][1]/1e3),f},state:function(){return this._state},unload:function(){for(var c=this,p=c._sounds,f=0;f<p.length;f++)p[f]._paused||c.stop(p[f]._id),c._webAudio||(c._clearSound(p[f]._node),p[f]._node.removeEventListener("error",p[f]._errorFn,!1),p[f]._node.removeEventListener(t._canPlayEvent,p[f]._loadFn,!1),p[f]._node.removeEventListener("ended",p[f]._endFn,!1),t._releaseHtml5Audio(p[f]._node)),delete p[f]._node,c._clearTimer(p[f]._id);var d=t._howls.indexOf(c);d>=0&&t._howls.splice(d,1);var h=!0;for(f=0;f<t._howls.length;f++)if(t._howls[f]._src===c._src||c._src.indexOf(t._howls[f]._src)>=0){h=!1;break}return o&&h&&delete o[c._src],t.noAudio=!1,c._state="unloaded",c._sounds=[],c=null,null},on:function(c,p,f,d){var h=this,m=h["_on"+c];return typeof p=="function"&&m.push(d?{id:f,fn:p,once:d}:{id:f,fn:p}),h},off:function(c,p,f){var d=this,h=d["_on"+c],m=0;if(typeof p=="number"&&(f=p,p=null),p||f)for(m=0;m<h.length;m++){var g=f===h[m].id;if(p===h[m].fn&&g||!p&&g){h.splice(m,1);break}}else if(c)d["_on"+c]=[];else{var v=Object.keys(d);for(m=0;m<v.length;m++)v[m].indexOf("_on")===0&&Array.isArray(d[v[m]])&&(d[v[m]]=[])}return d},once:function(c,p,f){var d=this;return d.on(c,p,f,1),d},_emit:function(c,p,f){for(var d=this,h=d["_on"+c],m=h.length-1;m>=0;m--)(!h[m].id||h[m].id===p||c==="load")&&(setTimeout(function(g){g.call(this,p,f)}.bind(d,h[m].fn),0),h[m].once&&d.off(c,h[m].fn,h[m].id));return d._loadQueue(c),d},_loadQueue:function(c){var p=this;if(p._queue.length>0){var f=p._queue[0];f.event===c&&(p._queue.shift(),p._loadQueue()),c||f.action()}return p},_ended:function(c){var p=this,f=c._sprite;if(!p._webAudio&&c._node&&!c._node.paused&&!c._node.ended&&c._node.currentTime<c._stop)return setTimeout(p._ended.bind(p,c),100),p;var d=!!(c._loop||p._sprite[f][2]);if(p._emit("end",c._id),!p._webAudio&&d&&p.stop(c._id,!0).play(c._id),p._webAudio&&d){p._emit("play",c._id),c._seek=c._start||0,c._rateSeek=0,c._playStart=t.ctx.currentTime;var h=(c._stop-c._start)*1e3/Math.abs(c._rate);p._endTimers[c._id]=setTimeout(p._ended.bind(p,c),h)}return p._webAudio&&!d&&(c._paused=!0,c._ended=!0,c._seek=c._start||0,c._rateSeek=0,p._clearTimer(c._id),p._cleanBuffer(c._node),t._autoSuspend()),!p._webAudio&&!d&&p.stop(c._id,!0),p},_clearTimer:function(c){var p=this;if(p._endTimers[c]){if(typeof p._endTimers[c]!="function")clearTimeout(p._endTimers[c]);else{var f=p._soundById(c);f&&f._node&&f._node.removeEventListener("ended",p._endTimers[c],!1)}delete p._endTimers[c]}return p},_soundById:function(c){for(var p=this,f=0;f<p._sounds.length;f++)if(c===p._sounds[f]._id)return p._sounds[f];return null},_inactiveSound:function(){var c=this;c._drain();for(var p=0;p<c._sounds.length;p++)if(c._sounds[p]._ended)return c._sounds[p].reset();return new n(c)},_drain:function(){var c=this,p=c._pool,f=0,d=0;if(!(c._sounds.length<p)){for(d=0;d<c._sounds.length;d++)c._sounds[d]._ended&&f++;for(d=c._sounds.length-1;d>=0;d--){if(f<=p)return;c._sounds[d]._ended&&(c._webAudio&&c._sounds[d]._node&&c._sounds[d]._node.disconnect(0),c._sounds.splice(d,1),f--)}}},_getSoundIds:function(c){var p=this;if(typeof c>"u"){for(var f=[],d=0;d<p._sounds.length;d++)f.push(p._sounds[d]._id);return f}else return[c]},_refreshBuffer:function(c){var p=this;return c._node.bufferSource=t.ctx.createBufferSource(),c._node.bufferSource.buffer=o[p._src],c._panner?c._node.bufferSource.connect(c._panner):c._node.bufferSource.connect(c._node),c._node.bufferSource.loop=c._loop,c._loop&&(c._node.bufferSource.loopStart=c._start||0,c._node.bufferSource.loopEnd=c._stop||0),c._node.bufferSource.playbackRate.setValueAtTime(c._rate,t.ctx.currentTime),p},_cleanBuffer:function(c){var p=this,f=t._navigator&&t._navigator.vendor.indexOf("Apple")>=0;if(t._scratchBuffer&&c.bufferSource&&(c.bufferSource.onended=null,c.bufferSource.disconnect(0),f))try{c.bufferSource.buffer=t._scratchBuffer}catch{}return c.bufferSource=null,p},_clearSound:function(c){var p=/MSIE |Trident\//.test(t._navigator&&t._navigator.userAgent);p||(c.src="data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA")}};var n=function(c){this._parent=c,this.init()};n.prototype={init:function(){var c=this,p=c._parent;return c._muted=p._muted,c._loop=p._loop,c._volume=p._volume,c._rate=p._rate,c._seek=0,c._paused=!0,c._ended=!0,c._sprite="__default",c._id=++t._counter,p._sounds.push(c),c.create(),c},create:function(){var c=this,p=c._parent,f=t._muted||c._muted||c._parent._muted?0:c._volume;return p._webAudio?(c._node=typeof t.ctx.createGain>"u"?t.ctx.createGainNode():t.ctx.createGain(),c._node.gain.setValueAtTime(f,t.ctx.currentTime),c._node.paused=!0,c._node.connect(t.masterGain)):t.noAudio||(c._node=t._obtainHtml5Audio(),c._errorFn=c._errorListener.bind(c),c._node.addEventListener("error",c._errorFn,!1),c._loadFn=c._loadListener.bind(c),c._node.addEventListener(t._canPlayEvent,c._loadFn,!1),c._endFn=c._endListener.bind(c),c._node.addEventListener("ended",c._endFn,!1),c._node.src=p._src,c._node.preload=p._preload===!0?"auto":p._preload,c._node.volume=f*t.volume(),c._node.load()),c},reset:function(){var c=this,p=c._parent;return c._muted=p._muted,c._loop=p._loop,c._volume=p._volume,c._rate=p._rate,c._seek=0,c._rateSeek=0,c._paused=!0,c._ended=!0,c._sprite="__default",c._id=++t._counter,c},_errorListener:function(){var c=this;c._parent._emit("loaderror",c._id,c._node.error?c._node.error.code:0),c._node.removeEventListener("error",c._errorFn,!1)},_loadListener:function(){var c=this,p=c._parent;p._duration=Math.ceil(c._node.duration*10)/10,Object.keys(p._sprite).length===0&&(p._sprite={__default:[0,p._duration*1e3]}),p._state!=="loaded"&&(p._state="loaded",p._emit("load"),p._loadQueue()),c._node.removeEventListener(t._canPlayEvent,c._loadFn,!1)},_endListener:function(){var c=this,p=c._parent;p._duration===1/0&&(p._duration=Math.ceil(c._node.duration*10)/10,p._sprite.__default[1]===1/0&&(p._sprite.__default[1]=p._duration*1e3),p._ended(c)),c._node.removeEventListener("ended",c._endFn,!1)}};var o={},i=function(c){var p=c._src;if(o[p]){c._duration=o[p].duration,l(c);return}if(/^data:[^;]+;base64,/.test(p)){for(var f=atob(p.split(",")[1]),d=new Uint8Array(f.length),h=0;h<f.length;++h)d[h]=f.charCodeAt(h);s(d.buffer,c)}else{var m=new XMLHttpRequest;m.open(c._xhr.method,p,!0),m.withCredentials=c._xhr.withCredentials,m.responseType="arraybuffer",c._xhr.headers&&Object.keys(c._xhr.headers).forEach(function(g){m.setRequestHeader(g,c._xhr.headers[g])}),m.onload=function(){var g=(m.status+"")[0];if(g!=="0"&&g!=="2"&&g!=="3"){c._emit("loaderror",null,"Failed loading audio file with status: "+m.status+".");return}s(m.response,c)},m.onerror=function(){c._webAudio&&(c._html5=!0,c._webAudio=!1,c._sounds=[],delete o[p],c.load())},a(m)}},a=function(c){try{c.send()}catch{c.onerror()}},s=function(c,p){var f=function(){p._emit("loaderror",null,"Decoding audio data failed.")},d=function(h){h&&p._sounds.length>0?(o[p._src]=h,l(p,h)):f()};typeof Promise<"u"&&t.ctx.decodeAudioData.length===1?t.ctx.decodeAudioData(c).then(d).catch(f):t.ctx.decodeAudioData(c,d,f)},l=function(c,p){p&&!c._duration&&(c._duration=p.duration),Object.keys(c._sprite).length===0&&(c._sprite={__default:[0,c._duration*1e3]}),c._state!=="loaded"&&(c._state="loaded",c._emit("load"),c._loadQueue())},u=function(){if(!!t.usingWebAudio){try{typeof AudioContext<"u"?t.ctx=new AudioContext:typeof webkitAudioContext<"u"?t.ctx=new webkitAudioContext:t.usingWebAudio=!1}catch{t.usingWebAudio=!1}t.ctx||(t.usingWebAudio=!1);var c=/iP(hone|od|ad)/.test(t._navigator&&t._navigator.platform),p=t._navigator&&t._navigator.appVersion.match(/OS (\d+)_(\d+)_?(\d+)?/),f=p?parseInt(p[1],10):null;if(c&&f&&f<9){var d=/safari/.test(t._navigator&&t._navigator.userAgent.toLowerCase());t._navigator&&!d&&(t.usingWebAudio=!1)}t.usingWebAudio&&(t.masterGain=typeof t.ctx.createGain>"u"?t.ctx.createGainNode():t.ctx.createGain(),t.masterGain.gain.setValueAtTime(t._muted?0:t._volume,t.ctx.currentTime),t.masterGain.connect(t.ctx.destination)),t._setup()}};typeof define=="function"&&define.amd&&define([],function(){return{Howler:t,Howl:e}}),typeof Kl<"u"&&(Kl.Howler=t,Kl.Howl=e),typeof global<"u"?(global.HowlerGlobal=r,global.Howler=t,global.Howl=e,global.Sound=n):typeof window<"u"&&(window.HowlerGlobal=r,window.Howler=t,window.Howl=e,window.Sound=n)})();(function(){"use strict";HowlerGlobal.prototype._pos=[0,0,0],HowlerGlobal.prototype._orientation=[0,0,-1,0,1,0],HowlerGlobal.prototype.stereo=function(t){var e=this;if(!e.ctx||!e.ctx.listener)return e;for(var n=e._howls.length-1;n>=0;n--)e._howls[n].stereo(t);return e},HowlerGlobal.prototype.pos=function(t,e,n){var o=this;if(!o.ctx||!o.ctx.listener)return o;if(e=typeof e!="number"?o._pos[1]:e,n=typeof n!="number"?o._pos[2]:n,typeof t=="number")o._pos=[t,e,n],typeof o.ctx.listener.positionX<"u"?(o.ctx.listener.positionX.setTargetAtTime(o._pos[0],Howler.ctx.currentTime,.1),o.ctx.listener.positionY.setTargetAtTime(o._pos[1],Howler.ctx.currentTime,.1),o.ctx.listener.positionZ.setTargetAtTime(o._pos[2],Howler.ctx.currentTime,.1)):o.ctx.listener.setPosition(o._pos[0],o._pos[1],o._pos[2]);else return o._pos;return o},HowlerGlobal.prototype.orientation=function(t,e,n,o,i,a){var s=this;if(!s.ctx||!s.ctx.listener)return s;var l=s._orientation;if(e=typeof e!="number"?l[1]:e,n=typeof n!="number"?l[2]:n,o=typeof o!="number"?l[3]:o,i=typeof i!="number"?l[4]:i,a=typeof a!="number"?l[5]:a,typeof t=="number")s._orientation=[t,e,n,o,i,a],typeof s.ctx.listener.forwardX<"u"?(s.ctx.listener.forwardX.setTargetAtTime(t,Howler.ctx.currentTime,.1),s.ctx.listener.forwardY.setTargetAtTime(e,Howler.ctx.currentTime,.1),s.ctx.listener.forwardZ.setTargetAtTime(n,Howler.ctx.currentTime,.1),s.ctx.listener.upX.setTargetAtTime(o,Howler.ctx.currentTime,.1),s.ctx.listener.upY.setTargetAtTime(i,Howler.ctx.currentTime,.1),s.ctx.listener.upZ.setTargetAtTime(a,Howler.ctx.currentTime,.1)):s.ctx.listener.setOrientation(t,e,n,o,i,a);else return l;return s},Howl.prototype.init=function(t){return function(e){var n=this;return n._orientation=e.orientation||[1,0,0],n._stereo=e.stereo||null,n._pos=e.pos||null,n._pannerAttr={coneInnerAngle:typeof e.coneInnerAngle<"u"?e.coneInnerAngle:360,coneOuterAngle:typeof e.coneOuterAngle<"u"?e.coneOuterAngle:360,coneOuterGain:typeof e.coneOuterGain<"u"?e.coneOuterGain:0,distanceModel:typeof e.distanceModel<"u"?e.distanceModel:"inverse",maxDistance:typeof e.maxDistance<"u"?e.maxDistance:1e4,panningModel:typeof e.panningModel<"u"?e.panningModel:"HRTF",refDistance:typeof e.refDistance<"u"?e.refDistance:1,rolloffFactor:typeof e.rolloffFactor<"u"?e.rolloffFactor:1},n._onstereo=e.onstereo?[{fn:e.onstereo}]:[],n._onpos=e.onpos?[{fn:e.onpos}]:[],n._onorientation=e.onorientation?[{fn:e.onorientation}]:[],t.call(this,e)}}(Howl.prototype.init),Howl.prototype.stereo=function(t,e){var n=this;if(!n._webAudio)return n;if(n._state!=="loaded")return n._queue.push({event:"stereo",action:function(){n.stereo(t,e)}}),n;var o=typeof Howler.ctx.createStereoPanner>"u"?"spatial":"stereo";if(typeof e>"u")if(typeof t=="number")n._stereo=t,n._pos=[t,0,0];else return n._stereo;for(var i=n._getSoundIds(e),a=0;a<i.length;a++){var s=n._soundById(i[a]);if(s)if(typeof t=="number")s._stereo=t,s._pos=[t,0,0],s._node&&(s._pannerAttr.panningModel="equalpower",(!s._panner||!s._panner.pan)&&r(s,o),o==="spatial"?typeof s._panner.positionX<"u"?(s._panner.positionX.setValueAtTime(t,Howler.ctx.currentTime),s._panner.positionY.setValueAtTime(0,Howler.ctx.currentTime),s._panner.positionZ.setValueAtTime(0,Howler.ctx.currentTime)):s._panner.setPosition(t,0,0):s._panner.pan.setValueAtTime(t,Howler.ctx.currentTime)),n._emit("stereo",s._id);else return s._stereo}return n},Howl.prototype.pos=function(t,e,n,o){var i=this;if(!i._webAudio)return i;if(i._state!=="loaded")return i._queue.push({event:"pos",action:function(){i.pos(t,e,n,o)}}),i;if(e=typeof e!="number"?0:e,n=typeof n!="number"?-.5:n,typeof o>"u")if(typeof t=="number")i._pos=[t,e,n];else return i._pos;for(var a=i._getSoundIds(o),s=0;s<a.length;s++){var l=i._soundById(a[s]);if(l)if(typeof t=="number")l._pos=[t,e,n],l._node&&((!l._panner||l._panner.pan)&&r(l,"spatial"),typeof l._panner.positionX<"u"?(l._panner.positionX.setValueAtTime(t,Howler.ctx.currentTime),l._panner.positionY.setValueAtTime(e,Howler.ctx.currentTime),l._panner.positionZ.setValueAtTime(n,Howler.ctx.currentTime)):l._panner.setPosition(t,e,n)),i._emit("pos",l._id);else return l._pos}return i},Howl.prototype.orientation=function(t,e,n,o){var i=this;if(!i._webAudio)return i;if(i._state!=="loaded")return i._queue.push({event:"orientation",action:function(){i.orientation(t,e,n,o)}}),i;if(e=typeof e!="number"?i._orientation[1]:e,n=typeof n!="number"?i._orientation[2]:n,typeof o>"u")if(typeof t=="number")i._orientation=[t,e,n];else return i._orientation;for(var a=i._getSoundIds(o),s=0;s<a.length;s++){var l=i._soundById(a[s]);if(l)if(typeof t=="number")l._orientation=[t,e,n],l._node&&(l._panner||(l._pos||(l._pos=i._pos||[0,0,-.5]),r(l,"spatial")),typeof l._panner.orientationX<"u"?(l._panner.orientationX.setValueAtTime(t,Howler.ctx.currentTime),l._panner.orientationY.setValueAtTime(e,Howler.ctx.currentTime),l._panner.orientationZ.setValueAtTime(n,Howler.ctx.currentTime)):l._panner.setOrientation(t,e,n)),i._emit("orientation",l._id);else return l._orientation}return i},Howl.prototype.pannerAttr=function(){var t=this,e=arguments,n,o,i;if(!t._webAudio)return t;if(e.length===0)return t._pannerAttr;if(e.length===1)if(typeof e[0]=="object")n=e[0],typeof o>"u"&&(n.pannerAttr||(n.pannerAttr={coneInnerAngle:n.coneInnerAngle,coneOuterAngle:n.coneOuterAngle,coneOuterGain:n.coneOuterGain,distanceModel:n.distanceModel,maxDistance:n.maxDistance,refDistance:n.refDistance,rolloffFactor:n.rolloffFactor,panningModel:n.panningModel}),t._pannerAttr={coneInnerAngle:typeof n.pannerAttr.coneInnerAngle<"u"?n.pannerAttr.coneInnerAngle:t._coneInnerAngle,coneOuterAngle:typeof n.pannerAttr.coneOuterAngle<"u"?n.pannerAttr.coneOuterAngle:t._coneOuterAngle,coneOuterGain:typeof n.pannerAttr.coneOuterGain<"u"?n.pannerAttr.coneOuterGain:t._coneOuterGain,distanceModel:typeof n.pannerAttr.distanceModel<"u"?n.pannerAttr.distanceModel:t._distanceModel,maxDistance:typeof n.pannerAttr.maxDistance<"u"?n.pannerAttr.maxDistance:t._maxDistance,refDistance:typeof n.pannerAttr.refDistance<"u"?n.pannerAttr.refDistance:t._refDistance,rolloffFactor:typeof n.pannerAttr.rolloffFactor<"u"?n.pannerAttr.rolloffFactor:t._rolloffFactor,panningModel:typeof n.pannerAttr.panningModel<"u"?n.pannerAttr.panningModel:t._panningModel});else return i=t._soundById(parseInt(e[0],10)),i?i._pannerAttr:t._pannerAttr;else e.length===2&&(n=e[0],o=parseInt(e[1],10));for(var a=t._getSoundIds(o),s=0;s<a.length;s++)if(i=t._soundById(a[s]),i){var l=i._pannerAttr;l={coneInnerAngle:typeof n.coneInnerAngle<"u"?n.coneInnerAngle:l.coneInnerAngle,coneOuterAngle:typeof n.coneOuterAngle<"u"?n.coneOuterAngle:l.coneOuterAngle,coneOuterGain:typeof n.coneOuterGain<"u"?n.coneOuterGain:l.coneOuterGain,distanceModel:typeof n.distanceModel<"u"?n.distanceModel:l.distanceModel,maxDistance:typeof n.maxDistance<"u"?n.maxDistance:l.maxDistance,refDistance:typeof n.refDistance<"u"?n.refDistance:l.refDistance,rolloffFactor:typeof n.rolloffFactor<"u"?n.rolloffFactor:l.rolloffFactor,panningModel:typeof n.panningModel<"u"?n.panningModel:l.panningModel};var u=i._panner;u?(u.coneInnerAngle=l.coneInnerAngle,u.coneOuterAngle=l.coneOuterAngle,u.coneOuterGain=l.coneOuterGain,u.distanceModel=l.distanceModel,u.maxDistance=l.maxDistance,u.refDistance=l.refDistance,u.rolloffFactor=l.rolloffFactor,u.panningModel=l.panningModel):(i._pos||(i._pos=t._pos||[0,0,-.5]),r(i,"spatial"))}return t},Sound.prototype.init=function(t){return function(){var e=this,n=e._parent;e._orientation=n._orientation,e._stereo=n._stereo,e._pos=n._pos,e._pannerAttr=n._pannerAttr,t.call(this),e._stereo?n.stereo(e._stereo):e._pos&&n.pos(e._pos[0],e._pos[1],e._pos[2],e._id)}}(Sound.prototype.init),Sound.prototype.reset=function(t){return function(){var e=this,n=e._parent;return e._orientation=n._orientation,e._stereo=n._stereo,e._pos=n._pos,e._pannerAttr=n._pannerAttr,e._stereo?n.stereo(e._stereo):e._pos?n.pos(e._pos[0],e._pos[1],e._pos[2],e._id):e._panner&&(e._panner.disconnect(0),e._panner=void 0,n._refreshBuffer(e)),t.call(this)}}(Sound.prototype.reset);var r=function(t,e){e=e||"spatial",e==="spatial"?(t._panner=Howler.ctx.createPanner(),t._panner.coneInnerAngle=t._pannerAttr.coneInnerAngle,t._panner.coneOuterAngle=t._pannerAttr.coneOuterAngle,t._panner.coneOuterGain=t._pannerAttr.coneOuterGain,t._panner.distanceModel=t._pannerAttr.distanceModel,t._panner.maxDistance=t._pannerAttr.maxDistance,t._panner.refDistance=t._pannerAttr.refDistance,t._panner.rolloffFactor=t._pannerAttr.rolloffFactor,t._panner.panningModel=t._pannerAttr.panningModel,typeof t._panner.positionX<"u"?(t._panner.positionX.setValueAtTime(t._pos[0],Howler.ctx.currentTime),t._panner.positionY.setValueAtTime(t._pos[1],Howler.ctx.currentTime),t._panner.positionZ.setValueAtTime(t._pos[2],Howler.ctx.currentTime)):t._panner.setPosition(t._pos[0],t._pos[1],t._pos[2]),typeof t._panner.orientationX<"u"?(t._panner.orientationX.setValueAtTime(t._orientation[0],Howler.ctx.currentTime),t._panner.orientationY.setValueAtTime(t._orientation[1],Howler.ctx.currentTime),t._panner.orientationZ.setValueAtTime(t._orientation[2],Howler.ctx.currentTime)):t._panner.setOrientation(t._orientation[0],t._orientation[1],t._orientation[2])):(t._panner=Howler.ctx.createStereoPanner(),t._panner.pan.setValueAtTime(t._stereo,Howler.ctx.currentTime)),t._panner.connect(t._node),t._paused||t._parent.pause(t._id,!0).play(t._id,!0)}})()});import{FileLoader as AP,Loader as _P}from"three";var Ue=class{modifyById(t,e){let n=this;if(n[t]===void 0)throw new Error("not expected");{let i={...n,[t]:e};return Object.setPrototypeOf(i,Ue.prototype),i}}add(t,e){return this.runOp({type:1,id:t,data:e})?.data??this}runOp(t){let e=this;if(t.type===1){let n=e[t.id],o;n===void 0?o={type:2,id:t.id}:o={type:1,id:t.id,data:n};let{id:i,data:a}=t,s={...e,[i]:a};return Object.setPrototypeOf(s,Ue.prototype),{data:s,actual:t,reverse:o}}else if(t.type===2){let{id:n}=t,o=e[n];if(o===void 0)return null;{let i={...e};return Object.setPrototypeOf(i,Ue.prototype),delete i[n],{data:i,actual:t,reverse:{type:1,id:n,data:o}}}}throw new Error("illegal arg")}};function Li(r){if(r.deepFreeze!==void 0){r.deepFreeze(r);return}let t=Object.getOwnPropertyNames(r);for(let e of t){let n=r[e];n&&typeof n=="object"&&Li(n)}return Object.freeze(r)}function Bp(r,t){let e=0;for(;e<r.length&&e<t.length;){if(r[e]<t[e])return-1;if(r[e]>t[e])return 1;e+=1}return e!==t.length?-1:e!==r.length?1:0}var $a=class extends Error{};function yr(r,t,e){if(r===void 0?t===void 0?(r=0,t=10):r=t-10:t===void 0&&(t=r+10),r>t){let i=r;r=t,t=i}let n=[],o=1/(e+1);for(let i=0;i<e;i++){let a=r+(t-r)*(i+.75+Math.random()*.5)*o;n.push(a)}return n}function Un(r){return r instanceof Uint8Array||r instanceof Uint16Array||r instanceof Uint32Array||r instanceof Int8Array||r instanceof Int16Array||r instanceof Int32Array||r instanceof Float32Array||r instanceof Float64Array}function Fp(){return typeof process<"u"}function Rp(r,t){for(let e of r)t(e.id,e.data),Rp(e.children,t)}function kp(r,t){t(r.id,r.data);for(let e of r.children)kp(e,t)}var Tt=class extends Array{constructor(...e){super(...e);Object.setPrototypeOf(this,Tt.prototype)}deepFreeze(){let e=0;for(;e<this.length;)Li(this[e]),e++}fillCaches0(e,n){this.objCaches.set(e.id,e),this.parentCaches.set(e.id,n);for(let o of e.children)this.fillCaches0(o,e.id)}fillCaches(){if(this.objCaches===void 0){this.objCaches=new Map,this.parentCaches=new Map;for(let e of this)this.fillCaches0(e,null)}}randomId(){this.fillCaches();let e=Array.from(this.objCaches.keys());if(e.length!==0)return e[Math.max(0,Math.floor(Math.random()*e.length)-1)]}isDescendantOf(e,n){for(;e;){let o=this.parent(e);if(o===n)return!0;e=o}return!1}data(e){return this.get(e)?.data}has(e){return this.childrenOf(e)!==void 0}get(e){return this.fillCaches(),this.objCaches.get(e)}childrenOf(e){return e===null?this:this.get(e)?.children}traverseFrom(e,n){if(e===null)this.traverse(n);else{let o=this.get(e);o&&kp(o,n)}}traverse(e){Rp(this,e)}totalSize(){return this.fillCaches(),this.objCaches.size}parent(e){return this.fillCaches(),this.parentCaches.get(e)}childrenArray(e){return e===null?this:this.get(e).children}modifyById(e,n){if(this.get(e)===void 0)throw new Error("not expected");{let i=this.parent(e),a=this.childrenArray(i),s=a.findIndex(c=>c.id===e);if(s<0)throw new Error("not expected");let l=a[s];return a=[...a],a[s]={...l,data:n},this.modifyArrayBy(i,a)}}modifyArrayBy(e,n){let o=e,i=n;for(;o!==null;){let s=i,l=o;if(o=this.parent(o),o===void 0)throw new Error;i=this.childrenArray(o);let u=i.findIndex(c=>c.id===l);if(u<0)throw new Error;i=[...i],i[u]={...i[u],children:s}}Object.setPrototypeOf(i,Tt.prototype);let a=i;return a.fillCaches(),a}runOp(e){switch(e.type){case 7:return this.addOp(e);case 8:return this.deleteOp(e);case 9:return this.moveOp(e)}}checkDuplicatedIdRec({id:e,children:n}){if(this.get(e)!==void 0)return!0;for(let o of n)if(this.checkDuplicatedIdRec(o))return!0;return!1}addOp(e){let{parent:n,fi:o,id:i,data:a,children:s}=e;if(n!==null&&this.get(n)===void 0)return null;if(this.checkDuplicatedIdRec(e))return null;{let l=n,u=this.childrenArray(l),c={fi:o,id:i,data:a,children:s};return u=[...u,c],u.sort((f,d)=>f.fi-d.fi),e.localIndex=u.indexOf(c),{data:this.modifyArrayBy(l,u),actual:e,reverse:{type:8,id:i}}}}deleteOp(e){let{id:n}=e;if(this.get(n)===null)return null;{let o=this.parent(n);if(o===void 0)return null;let i=this.childrenArray(o),a=i.findIndex(u=>u.id===n);e.localIndex=a,i=[...i];let s=i.splice(a,1)[0];return{data:this.modifyArrayBy(o,i),actual:e,reverse:{type:7,...s,parent:o}}}}moveOp(e){let{parent:n,fi:o,id:i}=e;if(n!==null&&this.get(n)===void 0)return this.deleteOp({type:8,id:i});if(n!==null){let d=n;for(;d!==null;){if(d===void 0)throw new Error;if(d===i)throw new $a("cyclic tree");d=this.parent(d)}}let a=this.parent(i);if(a===void 0)return null;let s=a,l=this.childrenArray(a),u=l.findIndex(d=>d.id===i);l=[...l];let c=l.splice(u,1)[0],p=this.modifyArrayBy(a,l);a=n,l=p.childrenArray(a);let f=c.fi;return c={...c,fi:o},l=[...l,c],l.sort((d,h)=>d.fi-h.fi),e.localIndex=l.indexOf(c),p=p.modifyArrayBy(a,l),{data:p,actual:e,reverse:{type:9,parent:s,fi:f,id:i}}}previous(e,n){if(n===null){let i=this.childrenArray(e);return i.length===0?null:i[i.length-1].id}let o=null;for(let i of this.childrenArray(e)){if(i.id===n)return o;o=i.id}return null}traverseSortNext(e){let n=this.parent(e);if(n!==void 0){let o=this.childrenArray(n),i=o.findIndex(a=>a.id===e)+1;if(i<o.length)return o[i].id;if(n)return this.traverseSortNext(n)}}sortNext(e){let n=this.childrenArray(e);return n.length>0?n[0].id:this.traverseSortNext(e)}traverseSortPrevious(e){let n=this.childrenArray(e);return n.length>0?this.traverseSortPrevious(n[n.length-1].id):e}sortPrevious(e){let n=this.parent(e);if(n!==void 0){let o=this.childrenArray(n),i=o.findIndex(a=>a.id===e)-1;return i>=0?this.traverseSortPrevious(o[i].id):n}}getAllSorted(e){let n=[];for(let o of e){let i=this.getWithSortKey(o.id);i!==void 0&&n.push({...o,...i})}n.sort((o,i)=>Bp(o.sortKey,i.sortKey));for(let o of n)delete o.sortKey;return n}getWithSortKey(e){var n=e;let o=[],i=this.get(n),a=i;if(i!==void 0){for(;n;)o.splice(0,0,i.fi),n=this.parent(n),n!==null&&(i=this.get(n));return{...a,sortKey:o}}}insertBeforeHelper(e,n,o){return this.insertAfterHelper(e,this.previous(e,n),o)}insertAfterHelper(e,n,o){let i=this.childrenArray(e);if(n===null){if(i.length===0)return yr(0,o,o);{let a=i[0].fi;return yr(a-o,a,o)}}else{let a=this.get(n);if(a===void 0||this.parent(n)!==e)throw new Error("illegal args");let s=i.find(l=>l.fi>a.fi);if(s===void 0){let l=i[i.length-1].fi;return yr(l,l+o,o)}else return yr(a.fi,s.fi,o)}}};var Ka;(t=>{function r(e,n){if(Array.isArray(e)){let o=n.props,i={},a=[...e],s=!1;if(o)for(let l of Object.keys(o)){let u=parseInt(l);if(isNaN(u))throw new Error("wrong index");i[l]=a[u],a[u]=o[l],s=!0}return s?{data:a,actual:n,reverse:{type:0,props:i}}:null}else{let o=n.props,i={},a={...e},s=!1;if(o)for(let l of Object.keys(o)){i[l]=a[l];let u=o[l];u===void 0?delete a[l]:a[l]=u,s=!0}return s?{data:a,actual:n,reverse:{type:0,props:i}}:null}}t.runOp=r})(Ka||(Ka={}));var _e=class extends Array{constructor(...e){super(...e);Object.setPrototypeOf(this,_e.prototype)}deepFreeze(){let e=0;for(;e<this.length;)Li(this[e]),e++}fillCaches0(e){this.objCaches.set(e.id,e)}fillCaches(){if(this.objCaches===void 0){this.objCaches=new Map,Object.getOwnPropertyDescriptor(this,"objCaches").enumerable=!1;for(let e of this)this.fillCaches0(e)}}randomId(){this.fillCaches();let e=Array.from(this.objCaches.keys());if(e.length!==0)return e[Math.max(0,Math.floor(Math.random()*e.length)-1)]}data(e){return this.get(e)?.data}get(e){return this.fillCaches(),this.objCaches.get(e)}modifyById(e,n){if(this.get(e)===void 0)throw new Error("not expected");{let i=this,a=i.findIndex(u=>u.id===e);if(a<0)throw new Error("not expected");let s=i[a];return i=[...i],i[a]={...s,data:n},this.modifyArrayBy(i)}}modifyArrayBy(e){Object.setPrototypeOf(e,_e.prototype);let n=e;return Fp()||n.fillCaches(),n}runOp(e){switch(e.type){case 4:return this.addOp(e);case 5:return this.deleteOp(e);case 6:return this.moveOp(e)}}addOp(e){let{fi:n,id:o,data:i}=e,a=this,s={fi:n,id:o,data:i};return a=[...a,s],a.sort((u,c)=>u.fi-c.fi),e.localIndex=a.indexOf(s),{data:this.modifyArrayBy(a),actual:e,reverse:{type:5,id:o}}}deleteOp(e){let{id:n}=e,o=this,i=o.findIndex(l=>l.id===n);if(i===-1)return null;e.localIndex=i,o=[...o];let a=o.splice(i,1)[0];return{data:this.modifyArrayBy(o),actual:e,reverse:{type:4,...a}}}moveOp(e){let{fi:n,id:o}=e,i=this;i=[...i];let a=i.findIndex(c=>c.id===o);if(a===-1)return null;let s=i[a].fi,l={...i[a],fi:n};return i[a]=l,i.sort((c,p)=>c.fi-p.fi),e.localIndex=i.indexOf(l),{data:this.modifyArrayBy(i),actual:e,reverse:{type:6,fi:s,id:o}}}previous(e){if(e===null)return this.length===0?null:this[this.length-1].id;let n=null;for(let o of this){if(o.id===e)return n;n=o.id}return null}insertBeforeHelper(e,n){return this.insertAfterHelper(this.previous(e),n)}insertAfterHelper(e,n){let o=this;if(e===null){if(o.length===0)return yr(0,n,n);{let i=o[0].fi;return yr(i-n,i,n)}}else{let i=this.get(e);if(i===void 0)throw new Error("illegal args");let a=o.find(s=>s.fi>i.fi);if(a===void 0){let s=o[o.length-1].fi;return yr(s,s+n,n)}else return yr(i.fi,a.fi,n)}}};var Xr=class{unusedFun(t){}runOp(t){let e=[],n=this,o=0,i={};for(;o<t.path.length;)e.push(n),n=n===void 0?void 0:n[t.path[o]],o+=1;n={...n};for(let[l,u]of Object.entries(t.props)){let c=n[l];i[l]=c,u===void 0?delete n[l]:n[l]=u}for(;o>0;)Object.keys(n).length===0?(n={...e[o-1]},delete n[t.path[o-1]]):n={...e[o-1],[t.path[o-1]]:n},o-=1;let a=Object.setPrototypeOf(n,Xr.prototype),s={...t,props:i};return{data:a,actual:t,reverse:s}}},Gp;(e=>{function r(n,o){return Ni(n,o)??n}e.apply=r;function t(n,o){if(o.type===0){let i=Vn.zoom(n,o.path);if(i===void 0)return o;if(typeof i=="string"||typeof i=="number"||Un(i))return;if(i&&typeof i=="object"){let a={...o.props};for(let s of Object.keys(i))delete a[s];return{...o,props:a}}else return}else if(o.type===1||o.type===4||o.type===7){let i=Vn.zoom(n,[...o.path,o.id]);if(i===void 0)return o;if(typeof i=="string"||typeof i=="number"||Un(i))return;if(i&&typeof i=="object"){let a={...o.data,...i};return{...o,data:a}}else return}else return o}e.filterOp=t})(Gp||(Gp={}));function Up(r,t){if(t===void 0)return;let e=!1,n=r.map(o=>{let i=o.id,a=Ni(o.data,t[i]);e=e||a!==void 0,a===void 0&&(a=o.data);let s=Up(o.children,t);return s!==void 0?e=!0:s=o.children,{...o,id:i,data:a,children:s}});if(e)return n}function Av(r,t){if(t===void 0)return;let e=!1,n=r.map(o=>{let i=o.id,a=Ni(o.data,t[i]);return e=e||a!==void 0,a===void 0&&(a=o.data),{...o,id:i,data:a}});if(e)return Object.setPrototypeOf(n,Object.getPrototypeOf(r)),n}function Ni(r,t){if(t!==void 0)if(r instanceof Tt){let e=Up(r,t);return e!==void 0&&Object.setPrototypeOf(e,Object.getPrototypeOf(r)),e}else{if(r instanceof _e)return Av(r,t);if(Array.isArray(r)){let e=!1,n=r.map((o,i)=>{let a=Ni(o,t[i]);return e=e||a!==void 0,a===void 0&&(a=o),a});return e?(Object.setPrototypeOf(n,Object.getPrototypeOf(r)),n):void 0}else if(r&&typeof r=="object"){let e={},n=!1;for(let[o,i]of Object.entries(r)){let a=Ni(i,t[o]);n=n||a!==void 0,a===void 0&&(a=i),e[o]=a}return n?(Object.setPrototypeOf(e,Object.getPrototypeOf(r)),e):void 0}else return t??r}}var Vp=Symbol(),Pi=Symbol(),zn=class{reportOp(t,e,n=[]){let o=this;if(e===null)return;o._current=e.data;let i=n;for(;!(o instanceof Za);){let a=o._path,s=o._current;if(a!==""&&i.splice(0,0,a),o=o._parent,o===null)return;o.update(a,s)}o.push(i,t,e.actual,e.reverse)}deleteChildren(t){if(this._children){let e=this._children[t];if(e){let n=e[Pi];n&&n(),delete this._children[t]}}}},oc=class extends zn{constructor(t,e,n){super(),this._parent=t,this._path=e,this._current=n}update(t,e){if(Array.isArray(this._current)){if(typeof t=="string"&&(t=parseInt(t),isNaN(t)))throw new Error("Invalid path");this._current=[...this._current],this._current[t]=e}else this._current={...this._current,[t]:e}}runOp(t){this.reportOp(t,Ka.runOp(this._current,t),t.path)}},ic=class extends zn{constructor(t,e,n){super(),this._parent=t,this._path=e,this._current=n}update(t,e){this._current={...this._current,[t]:e},Object.setPrototypeOf(this._current,Ue.prototype)}runOp(t){this.reportOp(t,this._current.runOp(t))}},zp={get(r,t){if(t===Pi)return()=>{r._parent=null};if(t===Vp)return r._current;let{_current:e,_children:n}=r;if(t==="push"&&Array.isArray(e))throw new Error("not supported to expand array");let o=n===void 0?void 0:n[t];if(o!==void 0)return o;let i=e[t],a=Qa(r,t,i);return a!==i?(n===void 0&&(n={},r._children=n),n[t]=a,a):i},has(r,t){return t in r._current},ownKeys(r){return Reflect.ownKeys(r._current)},defineProperty(){throw Error("not supported")},getPrototypeOf(r){return Object.getPrototypeOf(r._current)},setPrototypeOf(){throw Error("not supported")},getOwnPropertyDescriptor(r,t){let e=r._current,n=Reflect.getOwnPropertyDescriptor(e,t);return n&&{writable:!0,configurable:!0,enumerable:n.enumerable,value:e[t]}}},_v={...zp,set(r,t,e){let n={type:0,props:{[t]:Ct(e)??e}};return r.deleteChildren(t),r.runOp(n),!0},deleteProperty(r,t){let e={type:0,props:{[t]:void 0}};return r.deleteChildren(t),r.runOp(e),!0}},Ov={...zp,set(r,t,e){return e===void 0?this.deleteProperty(r,t):(r.deleteChildren(t),r.runOp({type:1,id:t,data:e})),!0},deleteProperty(r,t){return r.runOp({type:2,id:t}),!0}},fo=class extends zn{constructor(t,e,n){super(),this._children={},this._parent=t,this._path=e,this._current=n,this[Pi]=()=>{this._parent=null}}unproxy(){return this._current}update(t,e){this._current=this._current.modifyById(t,e)}runOp(t){this.reportOp(t,this._current.runOp(t))}randomId(){return this._current.randomId()}isDescendantOf(t,e){return this._current.isDescendantOf(t,e)}childrenOf(t){return this._current.childrenOf(t)}traverse(t){return this._current.traverse(t)}get(t){return this._current.get(t)}parent(t){return this._current.parent(t)}traverse(t){this._current.traverse((e,n)=>{t(e,this.data(e))})}data(t){let{_current:e,_children:n}=this,o=n===void 0?void 0:n[t];if(o!==void 0)return o;let i=e.get(t)?.data,a=Qa(this,t,i);return a!==i?(n===void 0&&(n={},this._children=n),n[t]=a,a):i}add(t,e,n,o,i){this.runOp({type:7,parent:t,fi:e,id:n,data:o,children:i})}move(t,e,n){this.runOp({type:9,parent:t,fi:e,id:n})}insertAfter(t,e,n){let o=this._current.insertAfterHelper(t,e,n.length);for(let i=0;i<n.length;i++){let a=n[i];this.add(t,o[i],a.id,a.data,a.children)}}insertBefore(t,e,n){let o=this._current.insertBeforeHelper(t,e,n.length);for(let i=0;i<n.length;i++){let a=n[i];this.add(t,o[i],a.id,a.data,a.children)}}moveAfter(t,e,n){let o=this._current.insertAfterHelper(t,e,n.length);for(let i=0;i<n.length;i++){let a=n[i];this.move(t,o[i],a)}}moveBefore(t,e,n){let o=this._current.insertBeforeHelper(t,e,n.length);for(let i=0;i<n.length;i++){let a=n[i];this.move(t,o[i],a)}}delete(t){this.deleteChildren(t),this.runOp({type:8,id:t})}sortNext(t){return this._current.sortNext(t)}sortPrevious(t){return this._current.sortPrevious(t)}getAllSorted(t){return this._current.getAllSorted(t)}},ac=class extends zn{constructor(t,e,n){super(),this._parent=t,this._path=e,this._current=n,this[Pi]=()=>{this._parent=null}}feedOp(t){let{path:e,...n}=t;this.reportOp(n,this._current.runOp(t),e)}},ho=class extends zn{constructor(t,e,n){super(),this._children={},this._parent=t,this._path=e,this._current=n,this[Pi]=()=>{this._parent=null}}unproxy(){return this._current}get length(){return this._current.length}forEach(t){let e=this.length;for(let n=0;n<e;n++){let o=this._current[n].id,i=this._current[n].fi;t(this.data(this._current[n].id),o,i)}}find(t){let e=this.length;for(let n=0;n<e;n++){let o=this._current[n].id;if(t(this.data(o),o))return this.get(o)}}update(t,e){this._current=this._current.modifyById(t,e)}randomId(){return this._current.randomId()}get(t){return{...this._current.get(t),data:this.data(t)}}data(t){let{_current:e,_children:n}=this,o=n===void 0?void 0:n[t];if(o!==void 0)return o;let i=e.get(t)?.data,a=Qa(this,t,i);return a!==i?(n===void 0&&(n={},this._children=n),n[t]=a,a):i}runOp(t){this.reportOp(t,this._current.runOp(t))}add(t,e,n){this.runOp({type:4,fi:t,id:e,data:n})}move(t,e){this.runOp({type:6,fi:t,id:e})}insertAfter(t,e){let n=this._current.insertAfterHelper(t,e.length);for(let o=0;o<e.length;o++){let i=e[o];this.add(n[o],i.id,i.data)}}insertBefore(t,e){let n=this._current.insertBeforeHelper(t,e.length);for(let o=0;o<e.length;o++){let i=e[o];this.add(n[o],i.id,i.data)}}moveAfter(t,e){let n=this._current.insertAfterHelper(t,e.length);for(let o=0;o<e.length;o++){let i=e[o];this.move(n[o],i)}}moveBefore(t,e){let n=this._current.insertBeforeHelper(t,e.length);for(let o=0;o<e.length;o++){let i=e[o];this.move(n[o],i)}}delete(t){this.deleteChildren(t),this.runOp({type:5,id:t})}};function nc(r,t,e){if(r.length>0){let n=r[r.length-1];if(n.type===0&&t.type===0&&Vn.equal(n.path,e)){Object.assign(n.props,t.props);return}}r.push({...t,path:e})}var Za=class{constructor(t){this.ts=[],this.actual=[],this.reverse=[],this._current=t}update(t,e){if(t!=="")throw new Error("");this._current=e}push(t,e,n,o){nc(this.ts,e,t),nc(this.actual,n,t),nc(this.reverse,o,t)}result(){return{data:this._current,ts:this.ts,actual:this.actual,reverse:this.reverse.reverse()}}};function Qa(r,t,e){return e instanceof Tt?new fo(r,t,e):e instanceof _e?new ho(r,t,e):e instanceof Xr?new ac(r,t,e):e instanceof Ue?new Proxy(new ic(r,t,e),Ov):e!==null&&typeof e=="object"?Un(e)?e:new Proxy(new oc(r,t,e),_v):e}function sc(r){let t=new Za(r);return[Qa(t,"",r),t]}function lc(r,t){let[e,n]=sc(r);return t(e),n.result()}function Ct(r){return r instanceof fo||r instanceof ho?r._current:r!==null&&typeof r=="object"?r[Vp]:r}var Vn;(o=>{function r(i,a){if(a.length===i.length)for(var s=0;s<i.length;){if(i[s]!==a[s])return!1;s+=1}else return!1;return!0}o.equal=r;function t(i,a,s){let l=n(s,i);if(l!==void 0&&typeof l=="object"&&l!==null){let u={...a};return Object.keys(l).forEach(c=>{delete u[c]}),u}else return a}o.removeOverridden=t;function e(i,a){if((i instanceof Tt||i instanceof fo)&&typeof a=="string")return i.data(a);if((i instanceof _e||i instanceof ho)&&typeof a=="string")return i.data(a);if(typeof a=="number"&&Array.isArray(i))return i[a];if(typeof a=="string"&&typeof i=="object")return i[a]}o.zoomOnce=e;function n(i,a,s=0){for(;s<a.length&&i!==void 0;)i=e(i,a[s]),s+=1;return i}o.zoom=n})(Vn||(Vn={}));var Ja=class{},Mi=class extends Ja{constructor(e){super();this.id=e}},Ei=class extends Ja{constructor(e){super();this.data=e}};var uc;try{uc=new TextDecoder}catch{}var se,un,L=0;var Kp=[],pc=Kp,fc=0,At={},Oe,cn,Vt=0,vr=0,Et,Yr,vt=[],Me,jp={useRecords:!1,mapsAsObjects:!0},Di=class{},hc=new Di;hc.name="MessagePack 0xC1";var mo=!1,xr=class{constructor(t){t&&(t.useRecords===!1&&t.mapsAsObjects===void 0&&(t.mapsAsObjects=!0),t.structures?t.structures.sharedLength=t.structures.length:t.getStructures&&((t.structures=[]).uninitialized=!0,t.structures.sharedLength=0)),Object.assign(this,t)}unpack(t,e){if(se)return tf(()=>(ts(),this?this.unpack(t,e):xr.prototype.unpack.call(jp,t,e)));un=e>-1?e:t.length,L=0,fc=0,vr=0,cn=null,pc=Kp,Et=null,se=t;try{Me=t.dataView||(t.dataView=new DataView(t.buffer,t.byteOffset,t.byteLength))}catch(n){throw se=null,t instanceof Uint8Array?n:new Error("Source must be a Uint8Array or Buffer but was a "+(t&&typeof t=="object"?t.constructor.name:typeof t))}if(this instanceof xr){if(At=this,this.structures)return Oe=this.structures,es();(!Oe||Oe.length>0)&&(Oe=[])}else At=jp,(!Oe||Oe.length>0)&&(Oe=[]);return es()}unpackMultiple(t,e){let n,o=0;try{mo=!0;let i=t.length,a=this?this.unpack(t,i):os.unpack(t,i);if(e){for(e(a);L<i;)if(o=L,e(es())===!1)return}else{for(n=[a];L<i;)o=L,n.push(es());return n}}catch(i){throw i.lastPosition=o,i.values=n,i}finally{mo=!1,ts()}}_mergeStructures(t,e){t=t||[];for(let n=0,o=t.length;n<o;n++){let i=t[n];i&&(i.isShared=!0,n>=32&&(i.highByte=n-32>>5))}t.sharedLength=t.length;for(let n in e||[])if(n>=0){let o=t[n],i=e[n];i&&(o&&((t.restoreStructures||(t.restoreStructures=[]))[n]=o),t[n]=i)}return this.structures=t}decode(t,e){return this.unpack(t,e)}};function es(){try{if(!At.trusted&&!mo){let t=Oe.sharedLength||0;t<Oe.length&&(Oe.length=t)}let r=Ve();if(L==un)Oe.restoreStructures&&Hp(),Oe=null,se=null,Yr&&(Yr=null);else if(L>un){let t=new Error("Unexpected end of MessagePack data");throw t.incomplete=!0,t}else if(!mo)throw new Error("Data read, but end of buffer not reached");return r}catch(r){throw Oe.restoreStructures&&Hp(),ts(),(r instanceof RangeError||r.message.startsWith("Unexpected end of buffer"))&&(r.incomplete=!0),r}}function Hp(){for(let r in Oe.restoreStructures)Oe[r]=Oe.restoreStructures[r];Oe.restoreStructures=null}function Ve(){let r=se[L++];if(r<160)if(r<128){if(r<64)return r;{let t=Oe[r&63]||At.getStructures&&Zp()[r&63];return t?(t.read||(t.read=mc(t,r&63)),t.read()):r}}else if(r<144)if(r-=128,At.mapsAsObjects){let t={};for(let e=0;e<r;e++)t[Jp()]=Ve();return t}else{let t=new Map;for(let e=0;e<r;e++)t.set(Ve(),Ve());return t}else{r-=144;let t=new Array(r);for(let e=0;e<r;e++)t[e]=Ve();return t}else if(r<192){let t=r-160;if(vr>=L)return cn.slice(L-Vt,(L+=t)-Vt);if(vr==0&&un<140){let e=t<16?gc(t):Qp(t);if(e!=null)return e}return dc(t)}else{let t;switch(r){case 192:return null;case 193:return Et?(t=Ve(),t>0?Et[1].slice(Et.position1,Et.position1+=t):Et[0].slice(Et.position0,Et.position0-=t)):hc;case 194:return!1;case 195:return!0;case 196:return cc(se[L++]);case 197:return t=Me.getUint16(L),L+=2,cc(t);case 198:return t=Me.getUint32(L),L+=4,cc(t);case 199:return jn(se[L++]);case 200:return t=Me.getUint16(L),L+=2,jn(t);case 201:return t=Me.getUint32(L),L+=4,jn(t);case 202:if(t=Me.getFloat32(L),At.useFloat32>2){let e=ns[(se[L]&127)<<1|se[L+1]>>7];return L+=4,(e*t+(t>0?.5:-.5)>>0)/e}return L+=4,t;case 203:return t=Me.getFloat64(L),L+=8,t;case 204:return se[L++];case 205:return t=Me.getUint16(L),L+=2,t;case 206:return t=Me.getUint32(L),L+=4,t;case 207:return At.int64AsNumber?(t=Me.getUint32(L)*4294967296,t+=Me.getUint32(L+4)):t=Me.getBigUint64(L),L+=8,t;case 208:return Me.getInt8(L++);case 209:return t=Me.getInt16(L),L+=2,t;case 210:return t=Me.getInt32(L),L+=4,t;case 211:return At.int64AsNumber?(t=Me.getInt32(L)*4294967296,t+=Me.getUint32(L+4)):t=Me.getBigInt64(L),L+=8,t;case 212:if(t=se[L++],t==114)return $p(se[L++]&63);{let e=vt[t];if(e)return e.read?(L++,e.read(Ve())):e.noBuffer?(L++,e()):e(se.subarray(L,++L));throw new Error("Unknown extension "+t)}case 213:return t=se[L],t==114?(L++,$p(se[L++]&63,se[L++])):jn(2);case 214:return jn(4);case 215:return jn(8);case 216:return jn(16);case 217:return t=se[L++],vr>=L?cn.slice(L-Vt,(L+=t)-Vt):Lv(t);case 218:return t=Me.getUint16(L),L+=2,vr>=L?cn.slice(L-Vt,(L+=t)-Vt):Nv(t);case 219:return t=Me.getUint32(L),L+=4,vr>=L?cn.slice(L-Vt,(L+=t)-Vt):Pv(t);case 220:return t=Me.getUint16(L),L+=2,qp(t);case 221:return t=Me.getUint32(L),L+=4,qp(t);case 222:return t=Me.getUint16(L),L+=2,Xp(t);case 223:return t=Me.getUint32(L),L+=4,Xp(t);default:if(r>=224)return r-256;if(r===void 0){let e=new Error("Unexpected end of MessagePack data");throw e.incomplete=!0,e}throw new Error("Unknown MessagePack token "+r)}}}var Iv=/^[a-zA-Z_$][a-zA-Z\d_$]*$/;function mc(r,t){function e(){if(e.count++>2){let o=r.read=new Function("r","return function(){return {"+r.map(i=>Iv.test(i)?i+":r()":"["+JSON.stringify(i)+"]:r()").join(",")+"}}")(Ve);return r.highByte===0&&(r.read=Wp(t,r.read)),o()}let n={};for(let o=0,i=r.length;o<i;o++){let a=r[o];n[a]=Ve()}return n}return e.count=0,r.highByte===0?Wp(t,e):e}var Wp=(r,t)=>function(){let e=se[L++];if(e===0)return t();let n=r<32?-(r+(e<<5)):r+(e<<5),o=Oe[n]||Zp()[n];if(!o)throw new Error("Record id is not defined for "+n);return o.read||(o.read=mc(o,r)),o.read()};function Zp(){let r=tf(()=>(se=null,At.getStructures()));return Oe=At._mergeStructures(r,Oe)}var dc=rs,Lv=rs,Nv=rs,Pv=rs;function rs(r){let t;if(r<16&&(t=gc(r)))return t;if(r>64&&uc)return uc.decode(se.subarray(L,L+=r));let e=L+r,n=[];for(t="";L<e;){let o=se[L++];if((o&128)===0)n.push(o);else if((o&224)===192){let i=se[L++]&63;n.push((o&31)<<6|i)}else if((o&240)===224){let i=se[L++]&63,a=se[L++]&63;n.push((o&31)<<12|i<<6|a)}else if((o&248)===240){let i=se[L++]&63,a=se[L++]&63,s=se[L++]&63,l=(o&7)<<18|i<<12|a<<6|s;l>65535&&(l-=65536,n.push(l>>>10&1023|55296),l=56320|l&1023),n.push(l)}else n.push(o);n.length>=4096&&(t+=nt.apply(String,n),n.length=0)}return n.length>0&&(t+=nt.apply(String,n)),t}function qp(r){let t=new Array(r);for(let e=0;e<r;e++)t[e]=Ve();return t}function Xp(r){if(At.mapsAsObjects){let t={};for(let e=0;e<r;e++)t[Jp()]=Ve();return t}else{let t=new Map;for(let e=0;e<r;e++)t.set(Ve(),Ve());return t}}var nt=String.fromCharCode;function Qp(r){let t=L,e=new Array(r);for(let n=0;n<r;n++){let o=se[L++];if((o&128)>0){L=t;return}e[n]=o}return nt.apply(String,e)}function gc(r){if(r<4)if(r<2){if(r===0)return"";{let t=se[L++];if((t&128)>1){L-=1;return}return nt(t)}}else{let t=se[L++],e=se[L++];if((t&128)>0||(e&128)>0){L-=2;return}if(r<3)return nt(t,e);let n=se[L++];if((n&128)>0){L-=3;return}return nt(t,e,n)}else{let t=se[L++],e=se[L++],n=se[L++],o=se[L++];if((t&128)>0||(e&128)>0||(n&128)>0||(o&128)>0){L-=4;return}if(r<6){if(r===4)return nt(t,e,n,o);{let i=se[L++];if((i&128)>0){L-=5;return}return nt(t,e,n,o,i)}}else if(r<8){let i=se[L++],a=se[L++];if((i&128)>0||(a&128)>0){L-=6;return}if(r<7)return nt(t,e,n,o,i,a);let s=se[L++];if((s&128)>0){L-=7;return}return nt(t,e,n,o,i,a,s)}else{let i=se[L++],a=se[L++],s=se[L++],l=se[L++];if((i&128)>0||(a&128)>0||(s&128)>0||(l&128)>0){L-=8;return}if(r<10){if(r===8)return nt(t,e,n,o,i,a,s,l);{let u=se[L++];if((u&128)>0){L-=9;return}return nt(t,e,n,o,i,a,s,l,u)}}else if(r<12){let u=se[L++],c=se[L++];if((u&128)>0||(c&128)>0){L-=10;return}if(r<11)return nt(t,e,n,o,i,a,s,l,u,c);let p=se[L++];if((p&128)>0){L-=11;return}return nt(t,e,n,o,i,a,s,l,u,c,p)}else{let u=se[L++],c=se[L++],p=se[L++],f=se[L++];if((u&128)>0||(c&128)>0||(p&128)>0||(f&128)>0){L-=12;return}if(r<14){if(r===12)return nt(t,e,n,o,i,a,s,l,u,c,p,f);{let d=se[L++];if((d&128)>0){L-=13;return}return nt(t,e,n,o,i,a,s,l,u,c,p,f,d)}}else{let d=se[L++],h=se[L++];if((d&128)>0||(h&128)>0){L-=14;return}if(r<15)return nt(t,e,n,o,i,a,s,l,u,c,p,f,d,h);let m=se[L++];if((m&128)>0){L-=15;return}return nt(t,e,n,o,i,a,s,l,u,c,p,f,d,h,m)}}}}}function cc(r){return At.copyBuffers?Uint8Array.prototype.slice.call(se,L,L+=r):se.subarray(L,L+=r)}function jn(r){let t=se[L++];if(vt[t])return vt[t](se.subarray(L,L+=r));throw new Error("Unknown extension type "+t)}var Yp=new Array(4096);function Jp(){let r=se[L++];if(r>=160&&r<192){if(r=r-160,vr>=L)return cn.slice(L-Vt,(L+=r)-Vt);if(!(vr==0&&un<180))return dc(r)}else return L--,Ve();let t=(r<<5^(r>1?Me.getUint16(L):r>0?se[L]:0))&4095,e=Yp[t],n=L,o=L+r-3,i,a=0;if(e&&e.bytes==r){for(;n<o;){if(i=Me.getUint32(n),i!=e[a++]){n=1879048192;break}n+=4}for(o+=3;n<o;)if(i=se[n++],i!=e[a++]){n=1879048192;break}if(n===o)return L=n,e.string;o-=3,n=L}for(e=[],Yp[t]=e,e.bytes=r;n<o;)i=Me.getUint32(n),e.push(i),n+=4;for(o+=3;n<o;)i=se[n++],e.push(i);let s=r<16?gc(r):Qp(r);return s!=null?e.string=s:e.string=dc(r)}var $p=(r,t)=>{var e=Ve();let n=r;t!==void 0&&(r=r<32?-((t<<5)+r):(t<<5)+r,e.highByte=t);let o=Oe[r];return o&&o.isShared&&((Oe.restoreStructures||(Oe.restoreStructures=[]))[r]=o),Oe[r]=e,e.read=mc(e,n),e.read()},ef=typeof self=="object"?self:global;vt[0]=()=>{};vt[0].noBuffer=!0;vt[101]=()=>{let r=Ve();return(ef[r[0]]||Error)(r[1])};vt[105]=r=>{let t=Me.getUint32(L-4);Yr||(Yr=new Map);let e=se[L],n;e>=144&&e<160||e==220||e==221?n=[]:n={};let o={target:n};Yr.set(t,o);let i=Ve();return o.used?Object.assign(n,i):(o.target=i,i)};vt[112]=r=>{let t=Me.getUint32(L-4),e=Yr.get(t);return e.used=!0,e.target};vt[115]=()=>new Set(Ve());var yc=["Int8","Uint8","Uint8Clamped","Int16","Uint16","Int32","Uint32","Float32","Float64","BigInt64","BigUint64"].map(r=>r+"Array");vt[116]=r=>{let t=r[0],e=yc[t];if(!e)throw new Error("Could not find typed array for code "+t);return new ef[e](Uint8Array.prototype.slice.call(r,1).buffer)};vt[120]=()=>{let r=Ve();return new RegExp(r[0],r[1])};vt[98]=r=>{let t=(r[0]<<24)+(r[1]<<16)+(r[2]<<8)+r[3],e=L;L+=t-4,Et=[Ve(),Ve()],Et.position0=0,Et.position1=0;let n=L;L=e;try{return Ve()}finally{L=n}};vt[255]=r=>r.length==4?new Date((r[0]*16777216+(r[1]<<16)+(r[2]<<8)+r[3])*1e3):r.length==8?new Date(((r[0]<<22)+(r[1]<<14)+(r[2]<<6)+(r[3]>>2))/1e6+((r[3]&3)*4294967296+r[4]*16777216+(r[5]<<16)+(r[6]<<8)+r[7])*1e3):r.length==12?new Date(((r[0]<<24)+(r[1]<<16)+(r[2]<<8)+r[3])/1e6+((r[4]&128?-281474976710656:0)+r[6]*1099511627776+r[7]*4294967296+r[8]*16777216+(r[9]<<16)+(r[10]<<8)+r[11])*1e3):new Date("invalid");function tf(r){let t=un,e=L,n=fc,o=Vt,i=vr,a=cn,s=pc,l=Yr,u=Et,c=new Uint8Array(se.slice(0,un)),p=Oe,f=Oe.slice(0,Oe.length),d=At,h=mo,m=r();return un=t,L=e,fc=n,Vt=o,vr=i,cn=a,pc=s,Yr=l,Et=u,se=c,mo=h,Oe=p,Oe.splice(0,Oe.length,...f),At=d,Me=new DataView(se.buffer,se.byteOffset,se.byteLength),m}function ts(){se=null,Yr=null,Oe=null}function rf(r){r.unpack?vt[r.type]=r.unpack:vt[r.type]=r}var ns=new Array(147);for(let r=0;r<256;r++)ns[r]=+("1e"+Math.floor(45.15-r*.30103));var os=new xr({useRecords:!1}),Mv=os.unpack,Ev=os.unpackMultiple,Dv=os.unpack,is={NEVER:0,ALWAYS:1,DECIMAL_ROUND:3,DECIMAL_FIT:4},Bv=new Float32Array(1),lM=new Uint8Array(Bv.buffer,0,4);var as;try{as=new TextEncoder}catch{}var ss,xc,ls=typeof Buffer<"u",vc=ls?Buffer.allocUnsafeSlow:Uint8Array,sf=ls?Buffer:Uint8Array,nf=ls?4294967296:2144337920,k,qe,M=0,br,Sr=null,Fv=/[\u0080-\uFFFF]/,Bi=Symbol("record-id"),Hn=class extends xr{constructor(t){super(t),this.offset=0;let e,n,o,i,a,s,l=0,u=sf.prototype.utf8Write?function(y,O,A){return k.utf8Write(y,O,A)}:as&&as.encodeInto?function(y,O){return as.encodeInto(y,k.subarray(O)).written}:!1,c=this;t||(t={});let p=t&&t.sequential,f=t.structures||t.saveStructures,d=t.maxSharedStructures;if(d==null&&(d=f?32:0),d>8160)throw new Error("Maximum maxSharedStructure is 8160");let h=t.maxOwnStructures;h==null&&(h=f?32:64),p&&!t.saveStructures&&(this.structures=[]);let m=d>32||h+d>64,g=d+64,v=d+h+64;if(v>8256)throw new Error("Maximum maxSharedStructure + maxOwnStructure is 8192");let x=[],S=0,w=0;this.pack=this.encode=function(y,O){if(k||(k=new vc(8192),qe=new DataView(k.buffer,0,8192),M=0),br=k.length-10,br-M<2048?(k=new vc(k.length),qe=new DataView(k.buffer,0,k.length),br=k.length-10,M=0):M=M+7&2147483640,n=M,s=c.structuredClone?new Map:null,c.bundleStrings?(Sr=["",""],k[M++]=214,k[M++]=98,Sr.position=M-n,M+=4):Sr=null,o=c.structures,o){o.uninitialized&&(o=c._mergeStructures(c.getStructures()));let A=o.sharedLength||0;if(A>d)throw new Error("Shared structures is larger than maximum shared structures, try increasing maxSharedStructures to "+o.sharedLength);if(!o.transitions){o.transitions=Object.create(null);for(let I=0;I<A;I++){let C=o[I];if(!C)continue;let N,P=o.transitions;for(let G=0,$=C.length;G<$;G++){let Y=C[G];N=P[Y],N||(N=P[Y]=Object.create(null)),P=N}P[Bi]=I+64}l=A}p||(o.nextId=A+64)}i&&(i=!1),a=o||[];try{if(b(y),Sr){qe.setUint32(Sr.position+n,M-Sr.position-n);let A=Sr;Sr=null,b(A[0]),b(A[1])}if(c.offset=M,s&&s.idsToInsert){M+=s.idsToInsert.length*6,M>br&&T(M),c.offset=M;let A=kv(k.subarray(n,M),s.idsToInsert);return s=null,A}return O&cf?(k.start=n,k.end=M,k):k.subarray(n,M)}finally{if(o){if(w<10&&w++,S>1e4)o.transitions=null,w=0,S=0,x.length>0&&(x=[]);else if(x.length>0&&!p){for(let A=0,I=x.length;A<I;A++)x[A][Bi]=0;x=[]}if(i&&c.saveStructures){let A=o.sharedLength||d;o.length>A&&(o=o.slice(0,A));let I=k.subarray(n,M);return c.saveStructures(o,l)===!1?(c._mergeStructures(c.getStructures()),c.pack(y)):(l=A,I)}}O&Wv&&(M=n)}};let b=y=>{M>br&&(k=T(M));var O=typeof y,A;if(O==="string"){let I=y.length;if(Sr&&I>=8&&I<4096){let P=Fv.test(y);Sr[P?0:1]+=y,k[M++]=193,b(P?-I:I);return}let C;I<32?C=1:I<256?C=2:I<65536?C=3:C=5;let N=I*3;if(M+N>br&&(k=T(M+N)),I<64||!u){let P,G,$,Y=M+C;for(P=0;P<I;P++)G=y.charCodeAt(P),G<128?k[Y++]=G:G<2048?(k[Y++]=G>>6|192,k[Y++]=G&63|128):(G&64512)===55296&&(($=y.charCodeAt(P+1))&64512)===56320?(G=65536+((G&1023)<<10)+($&1023),P++,k[Y++]=G>>18|240,k[Y++]=G>>12&63|128,k[Y++]=G>>6&63|128,k[Y++]=G&63|128):(k[Y++]=G>>12|224,k[Y++]=G>>6&63|128,k[Y++]=G&63|128);A=Y-M-C}else A=u(y,M+C,N);A<32?k[M++]=160|A:A<256?(C<2&&k.copyWithin(M+2,M+1,M+1+A),k[M++]=217,k[M++]=A):A<65536?(C<3&&k.copyWithin(M+3,M+2,M+2+A),k[M++]=218,k[M++]=A>>8,k[M++]=A&255):(C<5&&k.copyWithin(M+5,M+3,M+3+A),k[M++]=219,qe.setUint32(M,A),M+=4),M+=A}else if(O==="number")if(y>>>0===y)y<64?k[M++]=y:y<256?(k[M++]=204,k[M++]=y):y<65536?(k[M++]=205,k[M++]=y>>8,k[M++]=y&255):(k[M++]=206,qe.setUint32(M,y),M+=4);else if(y>>0===y)y>=-32?k[M++]=256+y:y>=-128?(k[M++]=208,k[M++]=y+256):y>=-32768?(k[M++]=209,qe.setInt16(M,y),M+=2):(k[M++]=210,qe.setInt32(M,y),M+=4);else{let I;if((I=this.useFloat32)>0&&y<4294967296&&y>=-2147483648){k[M++]=202,qe.setFloat32(M,y);let C;if(I<4||(C=y*ns[(k[M]&127)<<1|k[M+1]>>7])>>0===C){M+=4;return}else M--}k[M++]=203,qe.setFloat64(M,y),M+=8}else if(O==="object")if(!y)k[M++]=192;else{if(s){let C=s.get(y);if(C){if(!C.id){let N=s.idsToInsert||(s.idsToInsert=[]);C.id=N.push(C)}k[M++]=214,k[M++]=112,qe.setUint32(M,C.id),M+=4;return}else s.set(y,{offset:M-n})}let I=y.constructor;if(I===Object)_(y,!0);else if(I===Array){A=y.length,A<16?k[M++]=144|A:A<65536?(k[M++]=220,k[M++]=A>>8,k[M++]=A&255):(k[M++]=221,qe.setUint32(M,A),M+=4);for(let C=0;C<A;C++)b(y[C])}else if(I===Map){A=y.size,A<16?k[M++]=128|A:A<65536?(k[M++]=222,k[M++]=A>>8,k[M++]=A&255):(k[M++]=223,qe.setUint32(M,A),M+=4);for(let[C,N]of y)b(C),b(N)}else{for(let C=0,N=ss.length;C<N;C++){let P=xc[C];if(y instanceof P){let G=ss[C];if(G.write){G.type&&(k[M++]=212,k[M++]=G.type,k[M++]=0),b(G.write.call(this,y));return}let $=k,Y=qe,ie=M;k=null;let j;try{j=G.pack.call(this,y,H=>(k=$,$=null,M+=H,M>br&&T(M),{target:k,targetView:qe,position:M-H}),b)}finally{$&&(k=$,qe=Y,M=ie,br=k.length-10)}j&&(j.length+M>br&&T(j.length+M),M=Rv(j,k,M,G.type));return}}_(y,!y.hasOwnProperty)}}else if(O==="boolean")k[M++]=y?195:194;else if(O==="bigint"){if(y<BigInt(1)<<BigInt(63)&&y>=-(BigInt(1)<<BigInt(63)))k[M++]=211,qe.setBigInt64(M,y);else if(y<BigInt(1)<<BigInt(64)&&y>0)k[M++]=207,qe.setBigUint64(M,y);else if(this.largeBigIntToFloat)k[M++]=203,qe.setFloat64(M,Number(y));else throw new RangeError(y+" was too large to fit in MessagePack 64-bit integer format, set largeBigIntToFloat to convert to float-64");M+=8}else if(O==="undefined")this.encodeUndefinedAsNil?k[M++]=192:(k[M++]=212,k[M++]=0,k[M++]=0);else if(O==="function")b(this.writeFunction&&this.writeFunction());else throw new Error("Unknown type: "+O)},_=this.useRecords===!1?this.variableMapSize?y=>{let O=Object.keys(y),A=O.length;A<16?k[M++]=128|A:A<65536?(k[M++]=222,k[M++]=A>>8,k[M++]=A&255):(k[M++]=223,qe.setUint32(M,A),M+=4);let I;for(let C=0;C<A;C++)b(I=O[C]),b(y[I])}:(y,O)=>{k[M++]=222;let A=M-n;M+=2;let I=0;for(let C in y)(O||y.hasOwnProperty(C))&&(b(C),b(y[C]),I++);k[A+++n]=I>>8,k[A+n]=I&255}:y=>{let O=Object.keys(y),A,I=a.transitions||(a.transitions=Object.create(null)),C=0;for(let P=0,G=O.length;P<G;P++){let $=O[P];A=I[$],A||(A=I[$]=Object.create(null),C++),I=A}let N=I[Bi];if(N)N>=96&&m?(k[M++]=((N-=96)&31)+96,k[M++]=N>>5):k[M++]=N;else{N=a.nextId,N||(N=64),N<g&&this.shouldShareStructure&&!this.shouldShareStructure(O)?(N=a.nextOwnId,N<v||(N=g),a.nextOwnId=N+1):(N>=v&&(N=g),a.nextId=N+1);let P=O.highByte=N>=96&&m?N-96>>5:-1;I[Bi]=N,a[N-64]=O,N<g?(O.isShared=!0,a.sharedLength=N-63,i=!0,P>=0?(k[M++]=(N&31)+96,k[M++]=P):k[M++]=N):(P>=0?(k[M++]=213,k[M++]=114,k[M++]=(N&31)+96,k[M++]=P):(k[M++]=212,k[M++]=114,k[M++]=N),C&&(S+=w*C),x.length>=h&&(x.shift()[Bi]=0),x.push(I),b(O))}for(let P=0,G=O.length;P<G;P++)b(y[O[P]])},T=y=>{let O;if(y>16777216){if(y-n>nf)throw new Error("Packed buffer would be larger than maximum buffer size");O=Math.min(nf,Math.round(Math.max((y-n)*(y>67108864?1.25:2),4194304)/4096)*4096)}else O=(Math.max(y-n<<2,k.length-1)>>12)+1<<12;let A=new vc(O);return qe=new DataView(A.buffer,0,O),k.copy?k.copy(A,0,n,y):A.set(k.slice(n,y)),M-=n,n=0,br=A.length-10,k=A}}useBuffer(t){k=t,qe=new DataView(k.buffer,k.byteOffset,k.byteLength),M=0}};xc=[Date,Set,Error,RegExp,ArrayBuffer,Object.getPrototypeOf(Uint8Array.prototype).constructor,Di];ss=[{pack(r,t,e){let n=r.getTime()/1e3;if((this.useTimestamp32||r.getMilliseconds()===0)&&n>=0&&n<4294967296){let{target:o,targetView:i,position:a}=t(6);o[a++]=214,o[a++]=255,i.setUint32(a,n)}else if(n>0&&n<17179869184){let{target:o,targetView:i,position:a}=t(10);o[a++]=215,o[a++]=255,i.setUint32(a,r.getMilliseconds()*4e6+(n/1e3/4294967296>>0)),i.setUint32(a+4,n)}else if(isNaN(n)){if(this.onInvalidDate)return t(0),e(this.onInvalidDate());let{target:o,targetView:i,position:a}=t(3);o[a++]=212,o[a++]=255,o[a++]=255}else{let{target:o,targetView:i,position:a}=t(15);o[a++]=199,o[a++]=12,o[a++]=255,i.setUint32(a,r.getMilliseconds()*1e6),i.setBigInt64(a+4,BigInt(Math.floor(n)))}}},{pack(r,t,e){let n=Array.from(r),{target:o,position:i}=t(this.structuredClone?3:0);this.structuredClone&&(o[i++]=212,o[i++]=115,o[i++]=0),e(n)}},{pack(r,t,e){let{target:n,position:o}=t(this.structuredClone?3:0);this.structuredClone&&(n[o++]=212,n[o++]=101,n[o++]=0),e([r.name,r.message])}},{pack(r,t,e){let{target:n,position:o}=t(this.structuredClone?3:0);this.structuredClone&&(n[o++]=212,n[o++]=120,n[o++]=0),e([r.source,r.flags])}},{pack(r,t){this.structuredClone?of(r,16,t):af(ls?Buffer.from(r):new Uint8Array(r),t)}},{pack(r,t){let e=r.constructor;e!==sf&&this.structuredClone?of(r,yc.indexOf(e.name),t):af(r,t)}},{pack(r,t){let{target:e,position:n}=t(1);e[n]=193}}];function of(r,t,e,n){let o=r.byteLength;if(o+1<256){var{target:i,position:a}=e(4+o);i[a++]=199,i[a++]=o+1}else if(o+1<65536){var{target:i,position:a}=e(5+o);i[a++]=200,i[a++]=o+1>>8,i[a++]=o+1&255}else{var{target:i,position:a,targetView:s}=e(7+o);i[a++]=201,s.setUint32(a,o+1),a+=4}i[a++]=116,i[a++]=t,i.set(new Uint8Array(r.buffer,r.byteOffset,r.byteLength),a)}function af(r,t){let e=r.byteLength;var n,o;if(e<256){var{target:n,position:o}=t(e+2);n[o++]=196,n[o++]=e}else if(e<65536){var{target:n,position:o}=t(e+3);n[o++]=197,n[o++]=e>>8,n[o++]=e&255}else{var{target:n,position:o,targetView:i}=t(e+5);n[o++]=198,i.setUint32(o,e),o+=4}n.set(r,o)}function Rv(r,t,e,n){let o=r.length;switch(o){case 1:t[e++]=212;break;case 2:t[e++]=213;break;case 4:t[e++]=214;break;case 8:t[e++]=215;break;case 16:t[e++]=216;break;default:o<256?(t[e++]=199,t[e++]=o):o<65536?(t[e++]=200,t[e++]=o>>8,t[e++]=o&255):(t[e++]=201,t[e++]=o>>24,t[e++]=o>>16&255,t[e++]=o>>8&255,t[e++]=o&255)}return t[e++]=n,t.set(r,e),e+=o,e}function kv(r,t){let e,n=t.length*6,o=r.length-n;for(t.sort((i,a)=>i.offset>a.offset?1:-1);e=t.pop();){let i=e.offset,a=e.id;r.copyWithin(i+n,i,o),n-=6;let s=i+n;r[s++]=214,r[s++]=105,r[s++]=a>>24,r[s++]=a>>16&255,r[s++]=a>>8&255,r[s++]=a&255,o=i}return r}function pn(r){if(r.Class){if(!r.pack&&!r.write)throw new Error("Extension has no pack or write function");if(r.pack&&!r.type)throw new Error("Extension has no type (numeric code to identify the extension)");xc.unshift(r.Class),ss.unshift(r)}rf(r)}var lf=new Hn({useRecords:!1}),Gv=lf.pack,Uv=lf.pack;var{NEVER:Vv,ALWAYS:zv,DECIMAL_ROUND:jv,DECIMAL_FIT:Hv}=is,cf=512,Wv=1024;var uf=new Hn({structuredClone:!0});pn({Class:Ue.prototype.constructor,type:1,write(r){return{...r}},read(r){return Object.setPrototypeOf(r,Ue.prototype),r}});pn({Class:_e.prototype.constructor,type:2,write(r){return[...r]},read(r){return Object.setPrototypeOf(r,_e.prototype),r}});pn({Class:Tt.prototype.constructor,type:3,write(r){return[...r]},read(r){return Object.setPrototypeOf(r,Tt.prototype),r}});pn({Class:Mi.prototype.constructor,type:4,write(r){return r.id},read(r){return new Mi(r)}});pn({Class:Ei.prototype.constructor,type:5,write(r){return r.data},read(r){return new Ei(r)}});pn({Class:Xr.prototype.constructor,type:6,write(r){return{...r}},read(r){return Object.setPrototypeOf(r,Xr.prototype),r}});function qv(r){var t=0;if(r.length===0)return t;for(let e=0;e<r.length;e++){let n=r[e];t=(t<<5)-t+n,t=t&t}return t}function bc(r){if(Un(r))return r;if(Array.isArray(r))return r.map(bc);if(typeof r=="object"&&r!==null){let t={};for(let e of Object.keys(r).sort())t[e]=bc(r[e]);return Object.setPrototypeOf(t,Object.getPrototypeOf(r)),t}else return r}var cs;(n=>{function r(o){return uf.pack(o)}n.serialize=r;function t(o){return uf.unpack(o)}n.deserialize=t;function e(o){return qv(r(bc(o))).toString()}n.checksum=e})(cs||(cs={}));var pf;(e=>{function r(n,o){return n[0]===o[0]&&n[1]===o[1]}e.isEqual=r;function t(n,o,i){return[n[0]+(o[0]-n[0])*i,n[1]+(o[1]-n[1])*i]}e.lerp=t})(pf||(pf={}));var go;(o=>{function r(i,a){return i[0]===a[0]&&i[1]===a[1]&&i[2]===a[2]}o.isEqual=r;function t(i,a){return[i[0]+a[0],i[1]+a[1],i[2]+a[2]]}o.add=t;function e(i,a){return[i[0]-a[0],i[1]-a[1],i[2]-a[2]]}o.sub=e;function n(i,a,s){return[i[0]+(a[0]-i[0])*s,i[1]+(a[1]-i[1])*s,i[2]+(a[2]-i[2])*s]}o.lerp=n})(go||(go={}));var ff;(e=>{function r(n,o){return n[0]===o[0]&&n[1]===o[1]&&n[2]===o[2]&&n[3]===o[3]}e.isEqual=r;function t(n,o,i){return[n[0]+(o[0]-n[0])*i,n[1]+(o[1]-n[1])*i,n[2]+(o[2]-n[2])*i,n[3]+(o[3]-n[3])*i]}e.lerp=t})(ff||(ff={}));var fn;(o=>{o.identity=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1];function t(i,a){for(let s=0;s<16;s++)if(i[s]!==a[s])return!1;return!0}o.isEqual=t;function e(i){return i??o.identity}o.simplify=e;function n(i,a){let s=a.slice(0);for(var l=0,u=a.length;l<u;l+=3){let c=i[3]*a[l]+i[7]*a[l+1]+i[11]*a[l+2]+i[15];s[l]=(i[0]*a[l]+i[4]*a[l+1]+i[8]*a[l+2]+i[12])/c,s[l+1]=(i[1]*a[l]+i[5]*a[l+1]+i[9]*a[l+2]+i[13])/c,s[l+2]=(i[2]*a[l]+i[6]*a[l+1]+i[10]*a[l+2]+i[14])/c}return s}o.applyMatrix4=n})(fn||(fn={}));var _t;(l=>{l.white={r:1,g:1,b:1},l.red={r:1,g:0,b:0},l.black={r:0,g:0,b:0};function n(u){return{r:Math.round(u.r*255),g:Math.round(u.g*255),b:Math.round(u.b*255),a:1}}l.toRgb255a1=n;function o(u){return{r:u.r,g:u.g,b:u.b}}l.clone=o;function i(u){return u=Math.floor(u),{r:(u>>16&255)/255,g:(u>>8&255)/255,b:(u&255)/255}}l.fromHex=i;function a(u,c){return u.r===c.r&&u.g===c.g&&u.b===c.b}l.equals=a;function s(u,c,p){return{r:u.r+(c.r-u.r)*p,g:u.g+(c.g-u.g)*p,b:u.b+(c.b-u.b)*p}}l.lerp=s})(_t||(_t={}));var Zt;(s=>{s.white={..._t.white,a:1},s.transparent={..._t.white,a:0};function e(l){return{r:l[0],g:l[1],b:l[2],a:l[3]}}s.from0to1=e;function n(l,u){return{..._t.fromHex(l),a:u}}s.fromHexAndA=n;function o(l){return{r:Math.round(l.r*255),g:Math.round(l.g*255),b:Math.round(l.b*255),a:l.a}}s.toRgb255a1=o;function i(l,u){return _t.equals(l,u)&&l.a===u.a}s.equals=i;function a(l,u,c){return{r:l.r+(u.r-l.r)*c,g:l.g+(u.g-l.g)*c,b:l.b+(u.b-l.b)*c,a:l.a+(u.a-l.a)*c}}s.lerp=a})(Zt||(Zt={}));var us;(t=>t.identity={position:[0,0,0],rotation:[0,0,0],scale:[1,1,1]})(us||(us={}));var df;(t=>t.defaultData={mass:1,stiffness:80,damping:10,velocity:0})(df||(df={}));var hf;(t=>t.defaultData={control1:[.5,.05],control2:[.1,.3]})(hf||(hf={}));var yo;(e=>{e.all=["PerspectiveCamera","OrthographicCamera"];function t(n){return e.all.includes(n)}e.is=t})(yo||(yo={}));var Wn;(o=>{o.DefaultUp=[0,1,0],o.DefaultTargetOffset=1e3,o.defaultData={far:1e5,type:"OrthographicCamera",perspective:{near:5,fov:45,zoom:1},orthographic:{near:-1e5,zoom:1},up:o.DefaultUp,isUpVectorFlipped:!1,targetOffset:o.DefaultTargetOffset};function n(i){return i.type==="PerspectiveCamera"?i.perspective.zoom:i.orthographic.zoom}o.getZoom=n})(Wn||(Wn={}));var ps;(t=>{function r(e,n=.1){return{type:"radial",hideBase:!1,count:3,radial:{radius:Math.max(e[0],e[1])*2,start:0,end:360,alignment:!1,axis:"y",scale:[1,1,1],rotation:[0,0,0],position:[0,0,0]},linear:{scale:[1,1,1],rotation:[0,0,0],position:[e[0]+e[0]*n,0,0]},grid:{count:[2,2,2],size:e.map(o=>o*(1+n)),useCenter:!0}}}t.defaultData=r})(ps||(ps={}));var fs;(e=>{e.all=["PointLight","SpotLight","DirectionalLight","HemisphereLight"];function t(n){return e.all.includes(n)}e.is=t})(fs||(fs={}));var ds;(e=>{function r(n){return t(n)}e.defaultData=r;function t(n){if(n==="PointLight")return{type:n,color:Zt.white,intensity:1,distance:2e3,decay:1,shadows:!0,shadowResolution:1024,shadowRadius:1,depth:1e5};if(n==="SpotLight")return{type:n,color:Zt.white,intensity:1,distance:2e3,decay:1,shadows:!0,penumbra:0,angle:30/180*Math.PI,depth:1e5,shadowResolution:1024,shadowRadius:1};if(n==="DirectionalLight")return{type:n,color:Zt.white,intensity:1,shadows:!0,size:1e3,depth:1e5,shadowResolution:1024,shadowRadius:1};throw new Error("not implemented")}})(ds||(ds={}));var Sc;(e=>{e.defaultData={castShadow:!0,receiveShadow:!0};function t(n,o){return n.castShadow===o.castShadow&&n.receiveShadow===o.receiveShadow}e.equals=t})(Sc||(Sc={}));var wc;(e=>{e.defaultData={flatShading:!1,wireframe:!1,side:0};function t(n,o){return n.flatShading===o.flatShading&&n.side===o.side&&n.wireframe===o.wireframe}e.equals=t})(wc||(wc={}));var hs;(t=>t.defaultData={...wc.defaultData,...Sc.defaultData,cloner:null,booleanExclude:null})(hs||(hs={}));var mf=["mode","gradientType","noiseType","displacementType","projection","cnormal","crop","axis","side"],gf=["wrapping","image"],dn;(n=>{function r(o,i){return o==="light"&&i?t(i):e(o)}n.defaultData=r;function t(o){switch(o){case"basic":return{type:"light",category:"basic",alpha:1,visible:!0,mode:0};case"phong":return{category:"phong",specular:{r:.2,g:.2,b:.2},shininess:10,type:"light",alpha:1,visible:!0,mode:0};case"toon":return{category:"toon",specular:{r:.2,g:.2,b:.2},shininess:10,type:"light",alpha:1,visible:!0,mode:0};case"lambert":return{category:"lambert",emissive:{r:0,g:0,b:0},type:"light",alpha:1,visible:!0,mode:0};case"physical":return{category:"physical",roughness:.2,metalness:.2,reflectivity:.2,type:"light",alpha:1,visible:!0,mode:0}}}function e(o){switch(o){case"texture":return{alpha:1,visible:!0,size:[128,128],mode:0,axis:"x",side:2,type:"texture",projection:0,texture:{image:"image_0",wrapping:1001,repeat:[1,1],offset:[0,0]},crop:!0};case"color":return{type:"color",alpha:1,visible:!0,mode:0,color:_t.fromHex(4737101)};case"depth":return{type:"depth",alpha:1,visible:!0,mode:0,gradientType:1,smooth:!1,isVector:!0,isWorldSpace:!1,origin:[0,0,0],direction:[1,0,0],colors:[[1,1,1,1],[0,0,0,1]],steps:[0,1],near:50,far:200};case"normal":return{type:"normal",alpha:1,visible:!0,mode:0,cnormal:[1,1,1]};case"gradient":return{type:"gradient",alpha:1,visible:!0,mode:0,gradientType:0,smooth:!1,colors:[[0,0,0,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1]],steps:[0,1,1,1,1,1,1,1,1,1],num:2,angle:0,offset:[0,0],morph:[0,0]};case"noise":return{type:"noise",alpha:1,visible:!0,mode:0,size:[100,100,100],noiseType:0,scale:1,move:1,colorA:{..._t.fromHex(6710886),a:1},colorB:{..._t.fromHex(6710886),a:1},colorC:{..._t.fromHex(16777215),a:1},colorD:{..._t.fromHex(16777215),a:1},distortion:[1,1],fA:[1.7,9.2],fB:[8.3,2.8]};case"fresnel":return{type:"fresnel",alpha:1,visible:!0,mode:0,color:Zt.fromHexAndA(16777215,1),bias:.1,scale:1,intensity:2,factor:1};case"rainbow":return{type:"rainbow",alpha:1,visible:!0,mode:0,filmThickness:30,movement:0,wavelengths:[0,0,0],noiseStrength:0,noiseScale:1,offset:[0,0,0]};case"toon":return{type:"toon",alpha:1,visible:!0,mode:0,positioning:2,colors:[[0,0,0,1],[.5,.5,.5,1],[.5,.5,.5,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1]],steps:[0,.475,.525,1,1,1,1,1,1,1],num:4,source:[0,1e3,0],isWorldSpace:!0,noiseStrength:0,noiseScale:1,shadowColor:Zt.fromHexAndA(0,0),offset:[0,0,0]};case"outline":return{type:"outline",alpha:1,visible:!0,mode:0,outlineColor:Zt.fromHexAndA(0,1),contourColor:Zt.fromHexAndA(0,1),outlineWidth:2,contourWidth:5,outlineThreshold:.4,contourThreshold:0,outlineSmoothing:0,contourFrequency:10,contourDirection:[0,1,0],positionalLines:!1,compensation:!0};case"matcap":return{type:"matcap",alpha:1,visible:!0,mode:0,texture:{image:"matcap_0",wrapping:1001,repeat:[1,1],offset:[0,0]}};case"transmission":return{type:"transmission",alpha:1,visible:!0,mode:0,thickness:10,ior:1.5,roughness:1};case"displace":return{type:"displace",displacementType:"noise",noiseType:0,scale:10,movement:1,offset:[0,0,0],intensity:8,visible:!0}}}})(dn||(dn={}));var Dt;(s=>{function r(l){return!l.layers.some(c=>{if(c.data.type==="texture"&&c.data.projection!==0||c.data.type==="depth"&&!c.data.isWorldSpace||c.data.type==="noise"||c.data.type==="displace")return!0})&&!e(l)}s.isMergable=r;function t(l){let u="";return l.layers.forEach(c=>{Object.entries(c.data).forEach(([p,f])=>{u+=`${p}${f}`,Array.isArray(f)?f.forEach(d=>u+=`${d}`):typeof f=="object"?Object.values(f).forEach(d=>{typeof d=="number"?u+=`${d.toFixed(4)}`:u+=`${d}`}):u+=`${f}`})}),u}s.getHash=t;function e(l){let u=0;for(let c of l.layers)"alpha"in c.data&&c.data.type!=="light"&&c.data.type!=="fresnel"&&(u+=(1-u)*c.data.alpha);return u<1}s.isTransparent=e;function n(){return{layers:new _e}}s.defaultEmptyData=n;function o(l="layer1",u="layer2"){return i("phong",l,u)}s.defaultData=o;function i(l,u="layer1",c="layer2"){let p=new _e;return p.push({fi:0,data:dn.defaultData("light",l),id:u}),p.push({fi:1,data:dn.defaultData("color"),id:c}),{layers:p}}s.defaultTwoLayerData=i;function a(l,u="basic",c="layer1",p="layer2"){let f=dn.defaultData("texture");Object.assign(f.texture,{image:l});let d=new _e;return d.push({fi:0,data:f,id:c}),d.push({fi:1,data:dn.defaultData("light",u),id:p}),{layers:d}}s.defaultTwoLayerTextureData=a})(Dt||(Dt={}));var vo;(t=>{function r(){return{points:new _e,roundness:0,shapeHoles:[],isClosed:!1}}t.defaultData=r})(vo||(vo={}));var ms;(t=>{function r(e){return e==="PolygonGeometry"||e==="RectangleGeometry"||e==="StarGeometry"||e==="TriangleGeometry"||e==="EllipseGeometry"}t.is2DParametricMesh=r})(ms||(ms={}));var hn;(t=>{function r(e){if(e==="RectangleGeometry")return{width:320,height:320,type:e,cornerRadius:[0,0,0,0],cornerType:0,depth:0,extrudeBevelSize:0,extrudeBevelSegments:1};if(e==="VectorGeometry")return{width:1,height:1,type:e,subdivisions:12,shape:vo.defaultData(),depth:0,extrudeBevelSize:0,extrudeBevelSegments:1};if(e==="BooleanGeometry")return{type:e,operation:2,width:0,height:0,depth:0,phongAngle:35};if(e==="TextGeometry")return{type:e,width:100,height:100,depth:0,horizontalAlign:1,verticalAlign:1,fontSize:16,lineHeight:1.2,letterSpacing:0,text:"",textTransform:1,font:"Roboto_regular",extrudeBevelSize:0,extrudeBevelSegments:1};throw new Error("not implemented")}t.defaultData=r})(hn||(hn={}));var Xv=typeof global=="object"&&global&&global.Object===Object&&global,gs=Xv;var Yv=typeof self=="object"&&self&&self.Object===Object&&self,$v=gs||Yv||Function("return this")(),Ye=$v;var Kv=Ye.Symbol,xt=Kv;var yf=Object.prototype,Zv=yf.hasOwnProperty,Qv=yf.toString,Fi=xt?xt.toStringTag:void 0;function Jv(r){var t=Zv.call(r,Fi),e=r[Fi];try{r[Fi]=void 0;var n=!0}catch{}var o=Qv.call(r);return n&&(t?r[Fi]=e:delete r[Fi]),o}var vf=Jv;var ex=Object.prototype,tx=ex.toString;function rx(r){return tx.call(r)}var xf=rx;var nx="[object Null]",ox="[object Undefined]",bf=xt?xt.toStringTag:void 0;function ix(r){return r==null?r===void 0?ox:nx:bf&&bf in Object(r)?vf(r):xf(r)}var Bt=ix;function ax(r){return r!=null&&typeof r=="object"}var ht=ax;var sx="[object Symbol]";function lx(r){return typeof r=="symbol"||ht(r)&&Bt(r)==sx}var xo=lx;function cx(r,t){for(var e=-1,n=r==null?0:r.length,o=Array(n);++e<n;)o[e]=t(r[e],e,r);return o}var ys=cx;var ux=Array.isArray,ze=ux;var px=1/0,Sf=xt?xt.prototype:void 0,wf=Sf?Sf.toString:void 0;function Tf(r){if(typeof r=="string")return r;if(ze(r))return ys(r,Tf)+"";if(xo(r))return wf?wf.call(r):"";var t=r+"";return t=="0"&&1/r==-px?"-0":t}var Cf=Tf;function fx(r){var t=typeof r;return r!=null&&(t=="object"||t=="function")}var $e=fx;function dx(r){return r}var vs=dx;var hx="[object AsyncFunction]",mx="[object Function]",gx="[object GeneratorFunction]",yx="[object Proxy]";function vx(r){if(!$e(r))return!1;var t=Bt(r);return t==mx||t==gx||t==hx||t==yx}var bo=vx;var xx=Ye["__core-js_shared__"],xs=xx;var Af=function(){var r=/[^.]+$/.exec(xs&&xs.keys&&xs.keys.IE_PROTO||"");return r?"Symbol(src)_1."+r:""}();function bx(r){return!!Af&&Af in r}var _f=bx;var Sx=Function.prototype,wx=Sx.toString;function Tx(r){if(r!=null){try{return wx.call(r)}catch{}try{return r+""}catch{}}return""}var $r=Tx;var Cx=/[\\^$.*+?()[\]{}|]/g,Ax=/^\[object .+?Constructor\]$/,_x=Function.prototype,Ox=Object.prototype,Ix=_x.toString,Lx=Ox.hasOwnProperty,Nx=RegExp("^"+Ix.call(Lx).replace(Cx,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function Px(r){if(!$e(r)||_f(r))return!1;var t=bo(r)?Nx:Ax;return t.test($r(r))}var Of=Px;function Mx(r,t){return r?.[t]}var If=Mx;function Ex(r,t){var e=If(r,t);return Of(e)?e:void 0}var Ot=Ex;var Dx=Ot(Ye,"WeakMap"),bs=Dx;var Lf=Object.create,Bx=function(){function r(){}return function(t){if(!$e(t))return{};if(Lf)return Lf(t);r.prototype=t;var e=new r;return r.prototype=void 0,e}}(),Nf=Bx;function Fx(r,t,e){switch(e.length){case 0:return r.call(t);case 1:return r.call(t,e[0]);case 2:return r.call(t,e[0],e[1]);case 3:return r.call(t,e[0],e[1],e[2])}return r.apply(t,e)}var Pf=Fx;function Rx(r,t){var e=-1,n=r.length;for(t||(t=Array(n));++e<n;)t[e]=r[e];return t}var Ss=Rx;var kx=800,Gx=16,Ux=Date.now;function Vx(r){var t=0,e=0;return function(){var n=Ux(),o=Gx-(n-e);if(e=n,o>0){if(++t>=kx)return arguments[0]}else t=0;return r.apply(void 0,arguments)}}var Mf=Vx;function zx(r){return function(){return r}}var Ef=zx;var jx=function(){try{var r=Ot(Object,"defineProperty");return r({},"",{}),r}catch{}}(),So=jx;var Hx=So?function(r,t){return So(r,"toString",{configurable:!0,enumerable:!1,value:Ef(t),writable:!0})}:vs,Df=Hx;var Wx=Mf(Df),ws=Wx;function qx(r,t){for(var e=-1,n=r==null?0:r.length;++e<n&&t(r[e],e,r)!==!1;);return r}var Bf=qx;var Xx=9007199254740991,Yx=/^(?:0|[1-9]\d*)$/;function $x(r,t){var e=typeof r;return t=t??Xx,!!t&&(e=="number"||e!="symbol"&&Yx.test(r))&&r>-1&&r%1==0&&r<t}var mn=$x;function Kx(r,t,e){t=="__proto__"&&So?So(r,t,{configurable:!0,enumerable:!0,value:e,writable:!0}):r[t]=e}var wo=Kx;function Zx(r,t){return r===t||r!==r&&t!==t}var gn=Zx;var Qx=Object.prototype,Jx=Qx.hasOwnProperty;function eb(r,t,e){var n=r[t];(!(Jx.call(r,t)&&gn(n,e))||e===void 0&&!(t in r))&&wo(r,t,e)}var To=eb;function tb(r,t,e,n){var o=!e;e||(e={});for(var i=-1,a=t.length;++i<a;){var s=t[i],l=n?n(e[s],r[s],s,e,r):void 0;l===void 0&&(l=r[s]),o?wo(e,s,l):To(e,s,l)}return e}var zt=tb;var Ff=Math.max;function rb(r,t,e){return t=Ff(t===void 0?r.length-1:t,0),function(){for(var n=arguments,o=-1,i=Ff(n.length-t,0),a=Array(i);++o<i;)a[o]=n[t+o];o=-1;for(var s=Array(t+1);++o<t;)s[o]=n[o];return s[t]=e(a),Pf(r,this,s)}}var Ts=rb;function nb(r,t){return ws(Ts(r,t,vs),r+"")}var Rf=nb;var ob=9007199254740991;function ib(r){return typeof r=="number"&&r>-1&&r%1==0&&r<=ob}var Co=ib;function ab(r){return r!=null&&Co(r.length)&&!bo(r)}var yn=ab;function sb(r,t,e){if(!$e(e))return!1;var n=typeof t;return(n=="number"?yn(e)&&mn(t,e.length):n=="string"&&t in e)?gn(e[t],r):!1}var kf=sb;function lb(r){return Rf(function(t,e){var n=-1,o=e.length,i=o>1?e[o-1]:void 0,a=o>2?e[2]:void 0;for(i=r.length>3&&typeof i=="function"?(o--,i):void 0,a&&kf(e[0],e[1],a)&&(i=o<3?void 0:i,o=1),t=Object(t);++n<o;){var s=e[n];s&&r(t,s,n,i)}return t})}var Gf=lb;var cb=Object.prototype;function ub(r){var t=r&&r.constructor,e=typeof t=="function"&&t.prototype||cb;return r===e}var Ao=ub;function pb(r,t){for(var e=-1,n=Array(r);++e<r;)n[e]=t(e);return n}var Uf=pb;var fb="[object Arguments]";function db(r){return ht(r)&&Bt(r)==fb}var Tc=db;var Vf=Object.prototype,hb=Vf.hasOwnProperty,mb=Vf.propertyIsEnumerable,gb=Tc(function(){return arguments}())?Tc:function(r){return ht(r)&&hb.call(r,"callee")&&!mb.call(r,"callee")},Kr=gb;function yb(){return!1}var zf=yb;var Wf=typeof exports=="object"&&exports&&!exports.nodeType&&exports,jf=Wf&&typeof module=="object"&&module&&!module.nodeType&&module,vb=jf&&jf.exports===Wf,Hf=vb?Ye.Buffer:void 0,xb=Hf?Hf.isBuffer:void 0,bb=xb||zf,_o=bb;var Sb="[object Arguments]",wb="[object Array]",Tb="[object Boolean]",Cb="[object Date]",Ab="[object Error]",_b="[object Function]",Ob="[object Map]",Ib="[object Number]",Lb="[object Object]",Nb="[object RegExp]",Pb="[object Set]",Mb="[object String]",Eb="[object WeakMap]",Db="[object ArrayBuffer]",Bb="[object DataView]",Fb="[object Float32Array]",Rb="[object Float64Array]",kb="[object Int8Array]",Gb="[object Int16Array]",Ub="[object Int32Array]",Vb="[object Uint8Array]",zb="[object Uint8ClampedArray]",jb="[object Uint16Array]",Hb="[object Uint32Array]",Ge={};Ge[Fb]=Ge[Rb]=Ge[kb]=Ge[Gb]=Ge[Ub]=Ge[Vb]=Ge[zb]=Ge[jb]=Ge[Hb]=!0;Ge[Sb]=Ge[wb]=Ge[Db]=Ge[Tb]=Ge[Bb]=Ge[Cb]=Ge[Ab]=Ge[_b]=Ge[Ob]=Ge[Ib]=Ge[Lb]=Ge[Nb]=Ge[Pb]=Ge[Mb]=Ge[Eb]=!1;function Wb(r){return ht(r)&&Co(r.length)&&!!Ge[Bt(r)]}var qf=Wb;function qb(r){return function(t){return r(t)}}var Oo=qb;var Xf=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Ri=Xf&&typeof module=="object"&&module&&!module.nodeType&&module,Xb=Ri&&Ri.exports===Xf,Cc=Xb&&gs.process,Yb=function(){try{var r=Ri&&Ri.require&&Ri.require("util").types;return r||Cc&&Cc.binding&&Cc.binding("util")}catch{}}(),Zr=Yb;var Yf=Zr&&Zr.isTypedArray,$b=Yf?Oo(Yf):qf,Cs=$b;var Kb=Object.prototype,Zb=Kb.hasOwnProperty;function Qb(r,t){var e=ze(r),n=!e&&Kr(r),o=!e&&!n&&_o(r),i=!e&&!n&&!o&&Cs(r),a=e||n||o||i,s=a?Uf(r.length,String):[],l=s.length;for(var u in r)(t||Zb.call(r,u))&&!(a&&(u=="length"||o&&(u=="offset"||u=="parent")||i&&(u=="buffer"||u=="byteLength"||u=="byteOffset")||mn(u,l)))&&s.push(u);return s}var As=Qb;function Jb(r,t){return function(e){return r(t(e))}}var _s=Jb;var e1=_s(Object.keys,Object),$f=e1;var t1=Object.prototype,r1=t1.hasOwnProperty;function n1(r){if(!Ao(r))return $f(r);var t=[];for(var e in Object(r))r1.call(r,e)&&e!="constructor"&&t.push(e);return t}var Kf=n1;function o1(r){return yn(r)?As(r):Kf(r)}var Io=o1;function i1(r){var t=[];if(r!=null)for(var e in Object(r))t.push(e);return t}var Zf=i1;var a1=Object.prototype,s1=a1.hasOwnProperty;function l1(r){if(!$e(r))return Zf(r);var t=Ao(r),e=[];for(var n in r)n=="constructor"&&(t||!s1.call(r,n))||e.push(n);return e}var Qf=l1;function c1(r){return yn(r)?As(r,!0):Qf(r)}var wr=c1;var u1=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,p1=/^\w*$/;function f1(r,t){if(ze(r))return!1;var e=typeof r;return e=="number"||e=="symbol"||e=="boolean"||r==null||xo(r)?!0:p1.test(r)||!u1.test(r)||t!=null&&r in Object(t)}var Jf=f1;var d1=Ot(Object,"create"),Qr=d1;function h1(){this.__data__=Qr?Qr(null):{},this.size=0}var ed=h1;function m1(r){var t=this.has(r)&&delete this.__data__[r];return this.size-=t?1:0,t}var td=m1;var g1="__lodash_hash_undefined__",y1=Object.prototype,v1=y1.hasOwnProperty;function x1(r){var t=this.__data__;if(Qr){var e=t[r];return e===g1?void 0:e}return v1.call(t,r)?t[r]:void 0}var rd=x1;var b1=Object.prototype,S1=b1.hasOwnProperty;function w1(r){var t=this.__data__;return Qr?t[r]!==void 0:S1.call(t,r)}var nd=w1;var T1="__lodash_hash_undefined__";function C1(r,t){var e=this.__data__;return this.size+=this.has(r)?0:1,e[r]=Qr&&t===void 0?T1:t,this}var od=C1;function Lo(r){var t=-1,e=r==null?0:r.length;for(this.clear();++t<e;){var n=r[t];this.set(n[0],n[1])}}Lo.prototype.clear=ed;Lo.prototype.delete=td;Lo.prototype.get=rd;Lo.prototype.has=nd;Lo.prototype.set=od;var Ac=Lo;function A1(){this.__data__=[],this.size=0}var id=A1;function _1(r,t){for(var e=r.length;e--;)if(gn(r[e][0],t))return e;return-1}var vn=_1;var O1=Array.prototype,I1=O1.splice;function L1(r){var t=this.__data__,e=vn(t,r);if(e<0)return!1;var n=t.length-1;return e==n?t.pop():I1.call(t,e,1),--this.size,!0}var ad=L1;function N1(r){var t=this.__data__,e=vn(t,r);return e<0?void 0:t[e][1]}var sd=N1;function P1(r){return vn(this.__data__,r)>-1}var ld=P1;function M1(r,t){var e=this.__data__,n=vn(e,r);return n<0?(++this.size,e.push([r,t])):e[n][1]=t,this}var cd=M1;function No(r){var t=-1,e=r==null?0:r.length;for(this.clear();++t<e;){var n=r[t];this.set(n[0],n[1])}}No.prototype.clear=id;No.prototype.delete=ad;No.prototype.get=sd;No.prototype.has=ld;No.prototype.set=cd;var xn=No;var E1=Ot(Ye,"Map"),bn=E1;function D1(){this.size=0,this.__data__={hash:new Ac,map:new(bn||xn),string:new Ac}}var ud=D1;function B1(r){var t=typeof r;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?r!=="__proto__":r===null}var pd=B1;function F1(r,t){var e=r.__data__;return pd(t)?e[typeof t=="string"?"string":"hash"]:e.map}var Sn=F1;function R1(r){var t=Sn(this,r).delete(r);return this.size-=t?1:0,t}var fd=R1;function k1(r){return Sn(this,r).get(r)}var dd=k1;function G1(r){return Sn(this,r).has(r)}var hd=G1;function U1(r,t){var e=Sn(this,r),n=e.size;return e.set(r,t),this.size+=e.size==n?0:1,this}var md=U1;function Po(r){var t=-1,e=r==null?0:r.length;for(this.clear();++t<e;){var n=r[t];this.set(n[0],n[1])}}Po.prototype.clear=ud;Po.prototype.delete=fd;Po.prototype.get=dd;Po.prototype.has=hd;Po.prototype.set=md;var ki=Po;var V1="Expected a function";function _c(r,t){if(typeof r!="function"||t!=null&&typeof t!="function")throw new TypeError(V1);var e=function(){var n=arguments,o=t?t.apply(this,n):n[0],i=e.cache;if(i.has(o))return i.get(o);var a=r.apply(this,n);return e.cache=i.set(o,a)||i,a};return e.cache=new(_c.Cache||ki),e}_c.Cache=ki;var gd=_c;var z1=500;function j1(r){var t=gd(r,function(n){return e.size===z1&&e.clear(),n}),e=t.cache;return t}var yd=j1;var H1=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,W1=/\\(\\)?/g,q1=yd(function(r){var t=[];return r.charCodeAt(0)===46&&t.push(""),r.replace(H1,function(e,n,o,i){t.push(o?i.replace(W1,"$1"):n||e)}),t}),vd=q1;function X1(r){return r==null?"":Cf(r)}var xd=X1;function Y1(r,t){return ze(r)?r:Jf(r,t)?[r]:vd(xd(r))}var jt=Y1;var $1=1/0;function K1(r){if(typeof r=="string"||xo(r))return r;var t=r+"";return t=="0"&&1/r==-$1?"-0":t}var wn=K1;function Z1(r,t){t=jt(t,r);for(var e=0,n=t.length;r!=null&&e<n;)r=r[wn(t[e++])];return e&&e==n?r:void 0}var Os=Z1;function Q1(r,t){for(var e=-1,n=t.length,o=r.length;++e<n;)r[o+e]=t[e];return r}var Mo=Q1;var bd=xt?xt.isConcatSpreadable:void 0;function J1(r){return ze(r)||Kr(r)||!!(bd&&r&&r[bd])}var Sd=J1;function wd(r,t,e,n,o){var i=-1,a=r.length;for(e||(e=Sd),o||(o=[]);++i<a;){var s=r[i];t>0&&e(s)?t>1?wd(s,t-1,e,n,o):Mo(o,s):n||(o[o.length]=s)}return o}var Td=wd;function eS(r){var t=r==null?0:r.length;return t?Td(r,1):[]}var Cd=eS;function tS(r){return ws(Ts(r,void 0,Cd),r+"")}var Is=tS;var rS=_s(Object.getPrototypeOf,Object),Eo=rS;var nS="[object Object]",oS=Function.prototype,iS=Object.prototype,Ad=oS.toString,aS=iS.hasOwnProperty,sS=Ad.call(Object);function lS(r){if(!ht(r)||Bt(r)!=nS)return!1;var t=Eo(r);if(t===null)return!0;var e=aS.call(t,"constructor")&&t.constructor;return typeof e=="function"&&e instanceof e&&Ad.call(e)==sS}var Ls=lS;function cS(r,t,e){var n=-1,o=r.length;t<0&&(t=-t>o?0:o+t),e=e>o?o:e,e<0&&(e+=o),o=t>e?0:e-t>>>0,t>>>=0;for(var i=Array(o);++n<o;)i[n]=r[n+t];return i}var _d=cS;function uS(){this.__data__=new xn,this.size=0}var Od=uS;function pS(r){var t=this.__data__,e=t.delete(r);return this.size=t.size,e}var Id=pS;function fS(r){return this.__data__.get(r)}var Ld=fS;function dS(r){return this.__data__.has(r)}var Nd=dS;var hS=200;function mS(r,t){var e=this.__data__;if(e instanceof xn){var n=e.__data__;if(!bn||n.length<hS-1)return n.push([r,t]),this.size=++e.size,this;e=this.__data__=new ki(n)}return e.set(r,t),this.size=e.size,this}var Pd=mS;function Do(r){var t=this.__data__=new xn(r);this.size=t.size}Do.prototype.clear=Od;Do.prototype.delete=Id;Do.prototype.get=Ld;Do.prototype.has=Nd;Do.prototype.set=Pd;var Ns=Do;function gS(r,t){return r&&zt(t,Io(t),r)}var Md=gS;function yS(r,t){return r&&zt(t,wr(t),r)}var Ed=yS;var Rd=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Dd=Rd&&typeof module=="object"&&module&&!module.nodeType&&module,vS=Dd&&Dd.exports===Rd,Bd=vS?Ye.Buffer:void 0,Fd=Bd?Bd.allocUnsafe:void 0;function xS(r,t){if(t)return r.slice();var e=r.length,n=Fd?Fd(e):new r.constructor(e);return r.copy(n),n}var Ps=xS;function bS(r,t){for(var e=-1,n=r==null?0:r.length,o=0,i=[];++e<n;){var a=r[e];t(a,e,r)&&(i[o++]=a)}return i}var kd=bS;function SS(){return[]}var Ms=SS;var wS=Object.prototype,TS=wS.propertyIsEnumerable,Gd=Object.getOwnPropertySymbols,CS=Gd?function(r){return r==null?[]:(r=Object(r),kd(Gd(r),function(t){return TS.call(r,t)}))}:Ms,Bo=CS;function AS(r,t){return zt(r,Bo(r),t)}var Ud=AS;var _S=Object.getOwnPropertySymbols,OS=_S?function(r){for(var t=[];r;)Mo(t,Bo(r)),r=Eo(r);return t}:Ms,Es=OS;function IS(r,t){return zt(r,Es(r),t)}var Vd=IS;function LS(r,t,e){var n=t(r);return ze(r)?n:Mo(n,e(r))}var Ds=LS;function NS(r){return Ds(r,Io,Bo)}var zd=NS;function PS(r){return Ds(r,wr,Es)}var Bs=PS;var MS=Ot(Ye,"DataView"),Fs=MS;var ES=Ot(Ye,"Promise"),Rs=ES;var DS=Ot(Ye,"Set"),ks=DS;var jd="[object Map]",BS="[object Object]",Hd="[object Promise]",Wd="[object Set]",qd="[object WeakMap]",Xd="[object DataView]",FS=$r(Fs),RS=$r(bn),kS=$r(Rs),GS=$r(ks),US=$r(bs),qn=Bt;(Fs&&qn(new Fs(new ArrayBuffer(1)))!=Xd||bn&&qn(new bn)!=jd||Rs&&qn(Rs.resolve())!=Hd||ks&&qn(new ks)!=Wd||bs&&qn(new bs)!=qd)&&(qn=function(r){var t=Bt(r),e=t==BS?r.constructor:void 0,n=e?$r(e):"";if(n)switch(n){case FS:return Xd;case RS:return jd;case kS:return Hd;case GS:return Wd;case US:return qd}return t});var Fo=qn;var VS=Object.prototype,zS=VS.hasOwnProperty;function jS(r){var t=r.length,e=new r.constructor(t);return t&&typeof r[0]=="string"&&zS.call(r,"index")&&(e.index=r.index,e.input=r.input),e}var Yd=jS;var HS=Ye.Uint8Array,Oc=HS;function WS(r){var t=new r.constructor(r.byteLength);return new Oc(t).set(new Oc(r)),t}var Ro=WS;function qS(r,t){var e=t?Ro(r.buffer):r.buffer;return new r.constructor(e,r.byteOffset,r.byteLength)}var $d=qS;var XS=/\w*$/;function YS(r){var t=new r.constructor(r.source,XS.exec(r));return t.lastIndex=r.lastIndex,t}var Kd=YS;var Zd=xt?xt.prototype:void 0,Qd=Zd?Zd.valueOf:void 0;function $S(r){return Qd?Object(Qd.call(r)):{}}var Jd=$S;function KS(r,t){var e=t?Ro(r.buffer):r.buffer;return new r.constructor(e,r.byteOffset,r.length)}var Gs=KS;var ZS="[object Boolean]",QS="[object Date]",JS="[object Map]",ew="[object Number]",tw="[object RegExp]",rw="[object Set]",nw="[object String]",ow="[object Symbol]",iw="[object ArrayBuffer]",aw="[object DataView]",sw="[object Float32Array]",lw="[object Float64Array]",cw="[object Int8Array]",uw="[object Int16Array]",pw="[object Int32Array]",fw="[object Uint8Array]",dw="[object Uint8ClampedArray]",hw="[object Uint16Array]",mw="[object Uint32Array]";function gw(r,t,e){var n=r.constructor;switch(t){case iw:return Ro(r);case ZS:case QS:return new n(+r);case aw:return $d(r,e);case sw:case lw:case cw:case uw:case pw:case fw:case dw:case hw:case mw:return Gs(r,e);case JS:return new n;case ew:case nw:return new n(r);case tw:return Kd(r);case rw:return new n;case ow:return Jd(r)}}var eh=gw;function yw(r){return typeof r.constructor=="function"&&!Ao(r)?Nf(Eo(r)):{}}var Us=yw;var vw="[object Map]";function xw(r){return ht(r)&&Fo(r)==vw}var th=xw;var rh=Zr&&Zr.isMap,bw=rh?Oo(rh):th,nh=bw;var Sw="[object Set]";function ww(r){return ht(r)&&Fo(r)==Sw}var oh=ww;var ih=Zr&&Zr.isSet,Tw=ih?Oo(ih):oh,ah=Tw;var Cw=1,Aw=2,_w=4,sh="[object Arguments]",Ow="[object Array]",Iw="[object Boolean]",Lw="[object Date]",Nw="[object Error]",lh="[object Function]",Pw="[object GeneratorFunction]",Mw="[object Map]",Ew="[object Number]",ch="[object Object]",Dw="[object RegExp]",Bw="[object Set]",Fw="[object String]",Rw="[object Symbol]",kw="[object WeakMap]",Gw="[object ArrayBuffer]",Uw="[object DataView]",Vw="[object Float32Array]",zw="[object Float64Array]",jw="[object Int8Array]",Hw="[object Int16Array]",Ww="[object Int32Array]",qw="[object Uint8Array]",Xw="[object Uint8ClampedArray]",Yw="[object Uint16Array]",$w="[object Uint32Array]",ke={};ke[sh]=ke[Ow]=ke[Gw]=ke[Uw]=ke[Iw]=ke[Lw]=ke[Vw]=ke[zw]=ke[jw]=ke[Hw]=ke[Ww]=ke[Mw]=ke[Ew]=ke[ch]=ke[Dw]=ke[Bw]=ke[Fw]=ke[Rw]=ke[qw]=ke[Xw]=ke[Yw]=ke[$w]=!0;ke[Nw]=ke[lh]=ke[kw]=!1;function Vs(r,t,e,n,o,i){var a,s=t&Cw,l=t&Aw,u=t&_w;if(e&&(a=o?e(r,n,o,i):e(r)),a!==void 0)return a;if(!$e(r))return r;var c=ze(r);if(c){if(a=Yd(r),!s)return Ss(r,a)}else{var p=Fo(r),f=p==lh||p==Pw;if(_o(r))return Ps(r,s);if(p==ch||p==sh||f&&!o){if(a=l||f?{}:Us(r),!s)return l?Vd(r,Ed(a,r)):Ud(r,Md(a,r))}else{if(!ke[p])return o?r:{};a=eh(r,p,s)}}i||(i=new Ns);var d=i.get(r);if(d)return d;i.set(r,a),ah(r)?r.forEach(function(g){a.add(Vs(g,t,e,g,r,i))}):nh(r)&&r.forEach(function(g,v){a.set(v,Vs(g,t,e,v,r,i))});var h=u?l?Bs:zd:l?wr:Io,m=c?void 0:h(r);return Bf(m||r,function(g,v){m&&(v=g,g=r[v]),To(a,v,Vs(g,t,e,v,r,i))}),a}var zs=Vs;var Kw=1,Zw=4;function Qw(r){return zs(r,Kw|Zw)}var Gi=Qw;function Jw(r,t){return r!=null&&t in Object(r)}var uh=Jw;function eT(r,t,e){t=jt(t,r);for(var n=-1,o=t.length,i=!1;++n<o;){var a=wn(t[n]);if(!(i=r!=null&&e(r,a)))break;r=r[a]}return i||++n!=o?i:(o=r==null?0:r.length,!!o&&Co(o)&&mn(a,o)&&(ze(r)||Kr(r)))}var ph=eT;function tT(r,t){return r!=null&&ph(r,t,uh)}var fh=tT;function rT(r){return function(t,e,n){for(var o=-1,i=Object(t),a=n(t),s=a.length;s--;){var l=a[r?s:++o];if(e(i[l],l,i)===!1)break}return t}}var dh=rT;var nT=dh(),hh=nT;function oT(r,t,e){(e!==void 0&&!gn(r[t],e)||e===void 0&&!(t in r))&&wo(r,t,e)}var Ui=oT;function iT(r){return ht(r)&&yn(r)}var mh=iT;function aT(r,t){if(!(t==="constructor"&&typeof r[t]=="function")&&t!="__proto__")return r[t]}var Vi=aT;function sT(r){return zt(r,wr(r))}var gh=sT;function lT(r,t,e,n,o,i,a){var s=Vi(r,e),l=Vi(t,e),u=a.get(l);if(u){Ui(r,e,u);return}var c=i?i(s,l,e+"",r,t,a):void 0,p=c===void 0;if(p){var f=ze(l),d=!f&&_o(l),h=!f&&!d&&Cs(l);c=l,f||d||h?ze(s)?c=s:mh(s)?c=Ss(s):d?(p=!1,c=Ps(l,!0)):h?(p=!1,c=Gs(l,!0)):c=[]:Ls(l)||Kr(l)?(c=s,Kr(s)?c=gh(s):(!$e(s)||bo(s))&&(c=Us(l))):p=!1}p&&(a.set(l,c),o(c,l,n,i,a),a.delete(l)),Ui(r,e,c)}var yh=lT;function vh(r,t,e,n,o){r!==t&&hh(t,function(i,a){if(o||(o=new Ns),$e(i))yh(r,t,a,e,vh,n,o);else{var s=n?n(Vi(r,a),i,a+"",r,t,o):void 0;s===void 0&&(s=i),Ui(r,a,s)}},wr)}var xh=vh;function cT(r){var t=r==null?0:r.length;return t?r[t-1]:void 0}var bh=cT;function uT(r,t){return t.length<2?r:Os(r,_d(t,0,-1))}var Sh=uT;var pT=Gf(function(r,t,e){xh(r,t,e)}),Xn=pT;function fT(r,t){return t=jt(t,r),r=Sh(r,t),r==null||delete r[wn(bh(t))]}var wh=fT;function dT(r){return Ls(r)?void 0:r}var Th=dT;var hT=1,mT=2,gT=4,yT=Is(function(r,t){var e={};if(r==null)return e;var n=!1;t=ys(t,function(i){return i=jt(i,r),n||(n=i.length>1),i}),zt(r,Bs(r),e),n&&(e=zs(e,hT|mT|gT,Th));for(var o=t.length;o--;)wh(e,t[o]);return e}),ko=yT;function vT(r,t,e,n){if(!$e(r))return r;t=jt(t,r);for(var o=-1,i=t.length,a=i-1,s=r;s!=null&&++o<i;){var l=wn(t[o]),u=e;if(l==="__proto__"||l==="constructor"||l==="prototype")return r;if(o!=a){var c=s[l];u=n?n(c,l,s):void 0,u===void 0&&(u=$e(c)?c:mn(t[o+1])?[]:{})}To(s,l,u),s=s[l]}return r}var Ch=vT;function xT(r,t,e){for(var n=-1,o=t.length,i={};++n<o;){var a=t[n],s=Os(r,a);e(s,a)&&Ch(i,jt(a,r),s)}return i}var Ah=xT;function bT(r,t){return Ah(r,t,function(e,n){return fh(r,n)})}var _h=bT;var ST=Is(function(r,t){return r==null?{}:_h(r,t)}),Go=ST;var zi;(o=>{o.identity={...us.identity,hiddenMatrix:fn.identity};function t(i){return{position:i.position,rotation:i.rotation,scale:i.scale,hiddenMatrix:i.hiddenMatrix}}o.fromObject=t;function e(i,a){return{position:a?.position||i.position,rotation:a?.rotation||i.rotation,scale:a?.scale||i.scale,hiddenMatrix:a?.hiddenMatrix||i.hiddenMatrix}}o.merge=e;function n(i,a){return{position:go.isEqual(i.position,a.position)?null:a.position,rotation:go.isEqual(i.rotation,a.rotation)?null:a.rotation,scale:go.isEqual(i.scale,a.scale)?null:a.scale,hiddenMatrix:fn.isEqual(i.hiddenMatrix,a.hiddenMatrix)?null:a.hiddenMatrix}}o.diff=n})(zi||(zi={}));var Ic;(t=>t.defaultData={fusedBody:!0,rigidBody:"positioned",density:1,pointMass:0,gravityScale:1,friction:.5,damping:0,restitution:.2,colliderType:"convex",enabledRotation:[!0,!0,!0],enabledTranslation:[!0,!0,!0]})(Ic||(Ic={}));var Qt;(t=>t.defaultData={states:new _e,events:new _e,visible:!0,raycastLock:!1,physics:null,...zi.identity})(Qt||(Qt={}));var Oh;(t=>t.defaultData={type:"Empty",...Qt.defaultData})(Oh||(Oh={}));var Yn;(t=>t.defaultData={type:"Mesh",...Qt.defaultData,...hs.defaultData})(Yn||(Yn={}));var js;(t=>t.defaultData={...Qt.defaultData,...zi.identity,...Wn.defaultData})(js||(js={}));var Ih;(t=>{function r(e){return{...Qt.defaultData,...ds.defaultData(e)}}t.defaultData=r})(Ih||(Ih={}));var Lh;(o=>(o.defaultCamera={position:[0,0,1e3],scale:[1,1,1],rotation:[0,0,0],hiddenMatrix:fn.identity,name:"Play Camera",visible:!0,raycastLock:!1,physics:Ic.defaultData,states:new _e,events:new _e,...Wn.defaultData},o.defaultMeshObject={name:"Rectangle",...Qt.defaultData,...Yn.defaultData,geometry:hn.defaultData("RectangleGeometry"),material:Dt.defaultTwoLayerData("basic","layer1","layer2")},o.defaultBooleanObject={name:"Boolean",...Qt.defaultData,...Yn.defaultData,geometry:hn.defaultData("BooleanGeometry"),material:Dt.defaultTwoLayerData("phong","layer1","layer2")},o.defaultTextObject={name:"Text",...Qt.defaultData,...Yn.defaultData,geometry:hn.defaultData("TextGeometry"),material:Dt.defaultTwoLayerData("phong","layer1","layer2")}))(Lh||(Lh={}));var Nh;(e=>{function r(n,o){if(o===void 0)return n;let i={...n};return"material"in i&&"material"in o&&o.material&&(i.material=lc(i.material,a=>{if(typeof a!="string")for(let[s,l]of Object.entries(o.material.layers)){let u=a.layers.data(s);u&&Xn(u,l)}}).data),i.materials&&o.materials&&(i.materials=lc(i.materials,a=>{for(let s=0;s<i.materials.length;s++){let l=o.materials[s];if(typeof l!="string")for(let[u,c]of Object.entries(l.layers)){let p=a[s]?.layers?.data(u);p&&Xn(p,c)}}}).data),i}e.patchMaterialState=r;function t(n,o){if(o===void 0)return n;let i={...n};if(Object.assign(i,zi.merge(i,o)),yo.is(n.type)){i.orthographic={...i.orthographic},i.perspective={...i.perspective};let a=o;a.orthographic?.zoom!==void 0&&(i.orthographic.zoom=a.orthographic.zoom),a.perspective?.zoom!==void 0&&(i.perspective.zoom=a.perspective.zoom),a.isUpVectorFlipped!==void 0&&(i.isUpVectorFlipped=a.isUpVectorFlipped),a.targetOffset!==void 0&&(i.targetOffset=a.targetOffset)}else if(n.type==="Mesh")i.geometry={...i.geometry},Object.assign(i.geometry,o.geometry),i=r(i,o);else if(fs.is(n.type)){let a=o;a.intensity!==void 0&&(i.intensity=a.intensity),a.color!==void 0&&(typeof a.color=="string"?i.color=a.color:i.color=_t.clone(a.color))}return i}e.patch=t})(Nh||(Nh={}));var Uo;(t=>t.defaultData={enablePan:!0,enableZoom:!0,enableRotate:!0,enableDamping:!0,rotationLimitsMode:0,rotationVerticalOffset:{min:Math.PI/4,max:Math.PI/4},rotationHorizontalOffset:{min:Math.PI/4,max:Math.PI/4},rotationSoftLimit:2,panLimitsMode:0,panVerticalOffset:{min:250,max:250},panHorizontalOffset:{min:250,max:250},panSoftLimit:2,zoomLimitsEnabled:!1,zoomLimits:{min:.1,max:2},autoRotate:!1,autoRotateSpeed:2,autoRotateClockwise:!0,hoverRotatePanMode:0,hoverRotatePanStrength:20,isTouchZoom:!0,orbitTouches:2,panTouches:3})(Uo||(Uo={}));var Hs;(t=>t.defaultData={orbitControls:Uo.defaultData,playCamera:null,withBackground:!0,preventScroll:!1,settings:{image:{format:"jpg",ratio:1},video:{format:"mp4",imageFormat:"jpg",fps:30,mbps:80,ratio:1,stopMode:"manual",duration:5e3},web:{compress:!0,preset:1,preload:!0}},stopRaycast:!0,joystickSizeAndXYOffset:Array(12).fill(0).map((e,n)=>{let o=0,i=0;return n<5?i=-30:n<10&&(i=30),n===0||n===10||n===5?o=30:(n===4||n===11||n===9)&&(o=-30),[120,[o,i],"show"]}),gameControlObject:null})(Hs||(Hs={}));function $n(r,t){return Object.setPrototypeOf(r,t),r}function Ph(r){return Array.isArray(r)?r:[r]}var Ws;(e=>{function r(){let n={};return n["89b10010-844c-11ec-a8a3-0242ac120002"]={r:.5,g:.5,b:.5,a:1,name:"Default Color"},$n(n,Ue.prototype)}e.defaultColors=r;function t(){return{materials:new Ue,images:new Ue,colors:new Ue,audios:new Ue,fonts:new Ue,penumbraSize:[.5,.5,.5]}}e.emptyData=t})(Ws||(Ws={}));import{MathUtils as qs}from"three";function Mh(r){r.layers.forEach(t=>{if(t.type==="depth"&&t.colorA!==void 0){let e=t.colorA,n=t.colorB,o=[[e.r,e.g,e.b,e.a],[n.r,n.g,n.b,n.a]],i=[0,1];for(let s=2;s<10;s++)o.push(o[1]),i.push(1);let a={...Go(Ct(t),"type","visible","isVector","isWorldSpace","origin","alpha","mode"),near:Math.max(0,t.near),far:Math.max(0,t.far),colors:o,steps:i,num:2,direction:[1,0,0],smooth:!1,gradientType:1};Object.assign(t,a)}else if(t.type==="depth"&&t.gradientType===1&&(t.near<0||t.far<0)){let e={...Ct(t),near:Math.max(t.near,0),far:Math.max(t.far,0)};Object.assign(t,e)}})}function Lc(r,t){Object.values(r.shared.materials).forEach(e=>t(e))}function Nc(r,t){r.scene.objects.traverse((e,n)=>{"materials"in n?n.materials.forEach(o=>{typeof o!="string"&&t(o)}):"material"in n&&typeof n.material!="string"&&t(n.material)})}function wT(r){Object.assign(r.scene.publish,{orbitControls:{...Uo.defaultData,...Ct(r.scene.publish.orbitControls)}})}function TT(r){Object.assign(r.scene.publish.settings,{video:{...Hs.defaultData.settings.video,...Ct(r.scene.publish.settings.video)}})}function CT(r){function t(e){if(e.layers){for(let n of Object.values(e.layers))if(n){for(let[o,i]of Object.entries(n))if((mf.includes(o)||typeof i=="boolean")&&delete n[o],o==="texture")for(let[a,s]of Object.entries(i))(gf.includes(a)||typeof s=="boolean")&&delete i[a]}}}r.scene.objects.traverse((e,n)=>{n.states.forEach(o=>{let i=o;i.material?t(i.material):i.materials&&i.materials.forEach(a=>{t(a)})})})}function AT(r){r.scene.publish.withBackground=!0}function _T(r){r.scene.publish.settings.web={compress:!0,preload:!0,preset:1}}function OT(r){r.scene.objects.traverse((t,e)=>{let n=e.cloner;n&&(n.radial.scale=n.radial.scale.map(o=>o+1),n.linear.scale=n.linear.scale.map(o=>o+1))})}function IT(r){r.scene.objects.traverse((t,e)=>{let n=e.geometry;n&&(n.type==="DodecahedronGeometry"||n.type==="IcosahedronGeometry")&&(n.detail=Math.round(n.detail))})}function LT(r){r.scene.objects.traverse((t,e)=>{let n=r.scene.objects.parent(t);e.type==="Mesh"&&(!n||r.scene.objects.data(n).geometry?.type!=="BooleanGeometry")&&(e.booleanExclude=null)})}function Eh(r){r.layers===void 0&&Object.assign(r,Dt.defaultTwoLayerData("lambert"))}function Pc(r){!r.layers||r.layers.forEach(t=>{if(t.type==="depth"&&t.colors.length===10){let e=[...t.colors];e.push(t.colors[9]);let n=[...t.steps];n.push(t.steps[9]);let o={...Ct(t),colors:e,steps:n};Object.assign(t,o)}})}function NT(r){r.scene.objects.traverse((t,e)=>{e.type==="Mesh"&&(e.geometry.type==="BooleanGeometry"||e.geometry.type==="SubdivGeometry")&&(e.geometry.phongAngle=35)})}function Dh(r){r.scene.objects.traverse((t,e)=>{"materials"in e?e.materials.forEach(n=>{typeof n!="string"&&Pc(n)}):"material"in e&&typeof e.material!="string"&&Pc(e.material)}),Object.values(r.shared.materials).forEach(t=>Pc(t))}function PT(r){r.scene.environment.ambientLight.softShadows=!1,r.scene.environment.ambientLight.softShadowQuality="low",r.scene.objects.traverse((t,e)=>{(e.type==="DirectionalLight"||e.type==="SpotLight")&&(e.shadowResolution=1024,e.shadowRadius=1,e.depth=1e5)}),r.shared.penumbraSize=new Array(5).fill(.5)}function MT(r){r.shared.audios=$n({},Ue.prototype)}function ET(r){let t=r.shared.materials;Object.entries(t).forEach(([e,n])=>{if(!n.layers){let o={name:"Untitled Material",layers:[{fi:0,data:{type:"light",category:"basic",alpha:1,visible:!0,mode:0},id:"layer1"},{fi:1,data:{type:"color",alpha:1,visible:!0,mode:0,color:{r:.2823529411764706,g:.2823529411764706,b:.30196078431372547}},id:"layer2"}]};Object.assign(t,{[e]:o})}})}function DT(r){Object.entries(Ct(r.shared.images)).filter(n=>n[1].asset===!1).map(n=>n[0]).forEach(n=>{delete r.shared.images[n]}),Object.entries(Ct(r.shared.audios)).filter(n=>n[1].asset===!1).map(n=>n[0]).forEach(n=>{delete r.shared.audios[n]})}function BT(r){r.scene.publish.settings.web.preload=!1}function Bh(r){r.layers&&r.layers.forEach(t=>{t.type==="depth"&&t.num!==void 0&&(t.colors=t.colors.slice(0,t.num),t.steps=t.steps.slice(0,t.num),delete t.num)})}function FT(r){r.shared.fonts=$n({},Ue.prototype)}function RT(r){return r.replace(".typeface","").replace(/optimer/gi,"open sans").replace("space_mono","space mono").replace(/alma_mono/gi,"varela round").replace(/droid_sans_mono/gi,"noto sans mono").replace(/droid_sans|gentilis|gnomon_(simple|foreground)|helvetiker/gi,"roboto").replace(/droid_serif/gi,"roboto slab").replace("_sans"," sans").replace("crimson_text","crimson text").replace("medium_medium","medium").replace("fatface_fatface","fatface").replace("100hairline","thin").replace("200thin","extralight").replace("300light","light").replace("500medium","medium").replace("600semi","semibold").replace("800heavy","extrabold").replace("900black","black").replace(/bodoni_(11|16|24|36|48|72|96)([^_])/gi,"bodoni_$1_$2").replace(/bodoni_(11|16|24|36|48|72|96)/gi,"bodoni moda").replace(/(thin|hairline)(_regular)?/gi,"100").replace(/(extra|ultra)light(_regular)?/gi,"200").replace(/light(_regular)?/gi,"300").replace(/_book|_normal|_roman/gi,"_regular").replace(/medium(_regular)?/gi,"500").replace(/(semi|demi)bold(_regular)?/gi,"600").replace(/(extra|ultra)bold(_regular)?/gi,"800").replace(/bold(_regular)?/gi,"700").replace(/(black|heavy|fatface)(_regular)?/gi,"900").replace(/([1-9]00)_italic/gi,"$1italic").replace(/regularitalic/gi,"italic").replace(/regularitalic/gi,"italic").split(" ").map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(" ")}function kT(r){let t=[];r.scene.objects.traverse((e,n)=>{let o=n;if(o.type==="TextFrame"){let i=Dt.defaultTwoLayerData("basic"),a=typeof o.color=="string"?r.shared.colors[o.color]:o.color;i.layers[1].data.color={r:a.r,g:a.g,b:a.b},i.layers[1].data.alpha=o.alpha;let s=RT(o.font);r.shared.fonts[s]===void 0&&(r.shared.fonts[s]={name:s});let l={name:o.name,...Qt.defaultData,...Yn.defaultData,flatShading:!1,wireframe:!1,geometry:{...hn.defaultData("TextGeometry"),width:o.width,height:o.height,font:s,depth:0,horizontalAlign:o.horizontalAlign,verticalAlign:o.verticalAlign,fontSize:o.fontSize*1.40625,lineHeight:o.lineHeight/1.40625,letterSpacing:o.letterSpacing-1,text:o.text,textTransform:o.textTransform,extrudeBevelSize:0,extrudeBevelSegments:1},material:i,states:Ct(o.states),events:Ct(o.events),visible:o.visible,raycastLock:o.raycastLock,position:o.position,rotation:o.rotation,scale:o.scale,hiddenMatrix:o.hiddenMatrix},u=Ct(r.scene.objects).parent(e);r.scene.objects.insertAfter(u??null,e,[{id:e+"new",data:l,children:[]}]),t.push(e)}}),t.forEach(e=>{r.scene.objects.delete(e)})}function GT(r){let t={0:"MouseDown",1:"MouseUp",2:"MouseHover",5:"KeyDown",6:"KeyUp",7:"Start",9:"LookAt",10:"Follow",11:"Scroll",12:"Audio",13:"GameControl"};r.scene.objects.traverse((e,n)=>{n.events.forEach(o=>{if(!!t[Number(o.type)])if(Object.assign(o,{type:t[Number(o.type)]}),o.type==="Audio"&&"audioEvent"in o&&(Object.assign(o,{playAudio:o.audioEvent}),delete o.audioEvent),o.type==="GameControl")Object.assign(o,{gameActions:{idle:new _e,move:new _e,jump:new _e}});else{let i=new _e;Object.assign(o,{actions:i}),(o.type==="MouseDown"||o.type==="MouseUp"||o.type==="KeyDown"||o.type==="KeyUp")&&"url"in o&&i.push({fi:0,id:qs.generateUUID(),data:{type:"Link",url:o.url,delay:0}}),"targets"in o&&(o.targets.forEach((a,s,l)=>{let u={state:void 0,repeat:0,delay:0,delayDirection:void 0,direction:"normal",duration:0,easing:4},c={easing:a.easing,duration:a.duration};a.easing===6?Object.assign(c,Go(a,"mass","stiffness","damping","velocity")):a.easing===5&&Object.assign(c,{control1:{...a.control1},control2:{...a.control2}});let p={repeat:a.repeat?-1:0,delay:a.delay,delayDirection:a.delayDirection,direction:a.cycle&&a.rewind?"pingpong-rewind":a.cycle?"pingpong":"normal"},f={state:a.state,...p,...c},d={allowSlerp:!0,type:"Transition",object:a.object,repeat:0,delay:0,delayDirection:void 0,direction:"normal",tweens:new _e({fi:0,id:qs.generateUUID(),data:u},{fi:1,id:qs.generateUUID(),data:f})};i.push({fi:l,id:s,data:d})}),delete o.targets)}})})}function UT(r){r.scene.objects.traverse((t,e)=>{function n(o,i){let a=new _e,s=[];if(e.events.forEach((l,u,c)=>{if(l.type==="Audio"&&l.trigger===i){let p;s.push(u),l.interaction==="play"?p={...Go(l,"interaction","audio","delay","volume","loop"),triggerAfter:"after"in l?l.after:void 0,toggle:"after"in l?l.toggle:void 0,type:"Audio"}:(l.interaction==="pause"||l.interaction==="stop")&&(p={...Go(l,"interaction","delay","object","playAudio"),type:"Audio"}),p&&a.push({fi:c,id:u,data:p})}}),s.forEach(l=>e.events.delete(l)),a.length){let l=e.events.find(u=>u.type===o)?.data;l?"actions"in l&&l.actions.insertBefore(null,a):e.events.insertBefore(null,[{id:qs.generateUUID(),data:{type:o,actions:a}}])}}n("Start","start"),n("MouseDown","mouseDown"),n("MouseUp","mouseUp"),n("KeyDown","keyDown"),n("KeyUp","keyUp")})}var Fh=21;function Rh(r){let t=r.schema??0;t!==Fh&&(console.warn("updating from ",t,"to ",Fh),t<1&&(Nc(r,Mh),Lc(r,Mh),r.schema=1),t<2&&(wT(r),r.schema=2),t<3&&(CT(r),r.schema=3),t<4&&(AT(r),r.schema=4),t<5&&(_T(r),r.schema=5),t<6&&(OT(r),r.schema=6),t<7&&(IT(r),r.schema=7),t<8&&(LT(r),r.schema=8),t<9&&(Dh(r),r.schema=9),t<10&&(NT(r),r.schema=10),t<11&&(PT(r),r.schema=11),t<12&&(Dh(r),r.schema=12),t<13&&(MT(r),r.schema=13),t<14&&(ET(r),r.schema=14),t<15&&(DT(r),r.schema=15),t<16&&(BT(r),r.schema=16),t<17&&(Nc(r,Bh),Lc(r,Bh),r.schema=17),t<18&&(Nc(r,Eh),Lc(r,Eh),r.schema=18),t<19&&(TT(r),r.schema=19),t<20&&(FT(r),kT(r),r.schema=20),t<21&&(GT(r),UT(r),r.schema=21))}var Xs;(t=>t.emptyImage={data:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVQYV2NgYAAAAAMAAWgmWQ0AAAAASUVORK5CYII="})(Xs||(Xs={}));import{Object3D as zT,Vector3 as Hi,Euler as kh,MathUtils as Tn}from"three";import{Object3D as VT}from"three";var Mc=class extends VT{},Ys=class extends Mc{constructor(e){super();this.object=e;this.matrixAutoUpdate=!0}get castShadow(){return this.object.castShadow}set castShadow(e){}get receiveShadow(){return this.object.receiveShadow}set receiveShadow(e){}get isMesh(){return!0}get isLight(){return!1}get layers(){return this.object.layers}set layers(e){}get isCamera(){return!1}get geometry(){return this.object.geometry}get material(){return this.object.material}};var Kn=class extends zT{constructor(e,n={}){super();this.object=e;let o=e.recursiveBBox.getSize(new Hi),i=.1;this.parameters=ps.defaultData(o.toArray(),i),Xn(this.parameters,n),this.update(),this.setHideBase(this.parameters.hideBase)}setHideBase(e){this.parameters.hideBase=e}update(){switch(this._updateCount(),this.parameters.type){case"radial":this._updateRadial(this.parameters);break;case"linear":this._updateLinear(this.parameters);break;case"grid":this._updateGrid(this.parameters)}this.children.forEach(e=>e.updateMatrix())}_updateCount(){let e=this.parameters.type==="grid"?this.parameters.grid.count[0]*this.parameters.grid.count[1]*this.parameters.grid.count[2]:this.parameters.count;if(this.children.length!==e)if(this.children.length<e)for(let n=0,o=e-this.children.length;n<o;++n){let i=new Ys(this.object);i.visible=!0,this.add(i),this.parameters.hideBase&&this.setHideBase(!0)}else for(let n=0,o=this.children.length-e;n<o;++n)this.remove(this.children[0])}_updateRadial(e){let n=e.radial,o=n.start*Tn.DEG2RAD,i=n.end*Tn.DEG2RAD,a=o-i,s=new kh(n.rotation[0]*Tn.DEG2RAD,n.rotation[1]*Tn.DEG2RAD,n.rotation[2]*Tn.DEG2RAD),l;switch(n.axis){case"z":l=new Hi(0,0,1);break;case"y":l=new Hi(0,1,0);break;default:case"x":l=new Hi(1,0,0);break}for(let[u,c]of this.children.entries()){c.scale.x=n.scale[0],c.scale.y=n.scale[1],c.scale.z=n.scale[2],c.position.setScalar(0);let p=a/e.count*u-o;switch(n.axis){case"x":c.rotation.set(0,p,0);break;case"y":c.rotation.set(0,0,p);break;case"z":c.rotation.set(p,0,0);break}c.translateOnAxis(l,n.radius),c.position.x+=n.position[0],c.position.y+=n.position[1],c.position.z+=n.position[2],n.alignment===!0?(c.rotation.x+=s.x,c.rotation.y+=s.y,c.rotation.z+=s.z):c.rotation.copy(s)}}_updateLinear(e){if(e.type!=="linear")throw new Error;let n=e.linear,o=new kh(n.rotation[0]*Tn.DEG2RAD,n.rotation[1]*Tn.DEG2RAD,n.rotation[2]*Tn.DEG2RAD);for(let[i,a]of this.children.entries())a.scale.x=1+(n.scale[0]-1)*i,a.scale.y=1+(n.scale[1]-1)*i,a.scale.z=1+(n.scale[2]-1)*i,a.rotation.x=o.x*i,a.rotation.y=o.y*i,a.rotation.z=o.z*i,a.position.x=n.position[0]*i,a.position.y=n.position[1]*i,a.position.z=n.position[2]*i}_updateGrid(e){let n=0,o=e.grid;if(o.useCenter===!0){let i={x:o.count[0]%2===0?2:1,y:o.count[1]%2===0?2:1,z:o.count[2]%2===0?2:1},a=new Hi(o.size[0]*(o.count[0]-i.x)*.5,o.size[1]*(o.count[1]-i.y)*.5,o.size[2]*(o.count[2]-i.z)*.5);for(let s=0;s<o.count[0];s++)for(let l=0;l<o.count[1];l++)for(let u=0;u<o.count[2];u++){let c=this.children[n++];c.scale.setScalar(1),c.rotation.set(0,0,0),c.position.x=o.size[0]*s-a.x,c.position.y=o.size[1]*l-a.y,c.position.z=o.size[2]*u-a.z}}else for(let i=0;i<o.count[0];i++)for(let a=0;a<o.count[1];a++)for(let s=0;s<o.count[2];s++){let l=this.children[n++];l.scale.setScalar(1),l.rotation.set(0,0,0),l.position.x=o.size[0]*i,l.position.y=-o.size[1]*a,l.position.z=-o.size[2]*s}}fromClonerState(e){return e.hideBase!==void 0&&this.setHideBase(e.hideBase),Xn(this.parameters,e),this.update(),this}};import{HemisphereLight as DN,Scene as BN,Vector3 as FN,Fog as RN,Box3 as kN}from"three";import{Camera as E_,OrthographicCamera as D_,PerspectiveCamera as B_,Vector3 as sr,Object3D as Pg,Quaternion as F_}from"three";import{BoxBufferGeometry as jT}from"three";var Tr=r=>{var t;return t=class extends r{constructor(){super(...arguments);this.isObjectHelper=!0}},t.geometryHelper=new jT(30,30,30),t};import{Camera as YT,LineSegments as $T,BufferGeometry as KT,LineBasicMaterial as ZT,Color as Dc,Vector3 as QT,Float32BufferAttribute as Uh}from"three";import{Ray as HT,Sphere as WT,Matrix4 as qT,Vector3 as Jr}from"three";var $s=new HT,Ec=new WT,Gh=new qT,Cr=(r,t,e,n,o=!1)=>{let i=t,a=r.matrixWorld;if(i.boundingSphere===null&&i.computeBoundingSphere(),Ec.copy(i.boundingSphere),Ec.applyMatrix4(a),e.ray.intersectsSphere(Ec)===!1||(Gh.copy(a).invert(),$s.copy(e.ray).applyMatrix4(Gh),i.boundingBox!==null&&$s.intersectsBox(i.boundingBox)===!1))return;let s,l,u,c,p=i.index,f=i.attributes.position,d=i.drawRange,h,m;if(o===!1){let v=Math.max(0,d.start),x=Math.min(p.count,d.start+d.count);for(h=v,m=x;h<m;h+=3)if(l=p.getX(h),u=p.getX(h+1),c=p.getX(h+2),s=g(r,e,$s,f,l,u,c),s){s.faceIndex=Math.floor(h/3),n.push(s);return}}else{let x=i.attributes.position,S=new Jr,w=new Jr,b=new Jr,_=new Jr,T=2,O=1/((r.scale.x+r.scale.y+r.scale.z)/3),A=O*O,I=Math.max(0,d.start),C=Math.min(x.count,d.start+d.count);for(let N=I,P=C-1;N<P;N+=T){if(S.fromBufferAttribute(x,N),w.fromBufferAttribute(x,N+1),$s.distanceSqToSegment(S,w,_,b)>A)continue;_.applyMatrix4(r.matrixWorld);let $=e.ray.origin.distanceTo(_);$<e.near||$>e.far||n.push({distance:$,point:b.clone().applyMatrix4(r.matrixWorld),object:r})}}function g(v,x,S,w,b,_,T){let y=new Jr,O=new Jr,A=new Jr,I=new Jr,C=new Jr;if(y.fromBufferAttribute(w,b),O.fromBufferAttribute(w,_),A.fromBufferAttribute(w,T),S.intersectTriangle(y,O,A,!1,I)===null)return null;C.copy(I),C.applyMatrix4(v.matrixWorld);let P=x.ray.origin.distanceTo(C);return P<x.near||P>x.far?null:{faceIndex:1,distance:P,point:C.clone(),object:v}}};var Ks=new QT,Ht=new YT,Bc=class extends $T{constructor(e){let n=new KT,o=new ZT({color:16777215,vertexColors:!0,toneMapped:!1}),i=[],a=[],s={},l=new Dc(15711266),u=new Dc(15711266),c=new Dc(2857471);p("n1","n2",l),p("n2","n4",l),p("n4","n3",l),p("n3","n1",l),p("f1","f2",l),p("f2","f4",l),p("f4","f3",l),p("f3","f1",l),p("n1","f1",l),p("n2","f2",l),p("n3","f3",l),p("n4","f4",l),p("p","n1",u),p("p","n2",u),p("p","n3",u),p("p","n4",u),p("u1","u2",c),p("u2","u3",c),p("u3","u1",c);function p(d,h,m){f(d,m),f(h,m)}function f(d,h){i.push(0,0,0),a.push(h.r,h.g,h.b),s[d]===void 0&&(s[d]=[]),s[d].push(i.length/3-1)}n.setAttribute("position",new Uh(i,3)),n.setAttribute("color",new Uh(a,3));super(n,o);this.type="CameraHelper",this.camera=e,this.camera.updateProjectionMatrix&&this.camera.updateProjectionMatrix(),this.matrix=e.matrixWorld,this.matrixAutoUpdate=!1,this.pointMap=s,this.update()}update(){let e=this.geometry,n=this.pointMap,o=!0;Ht.projectionMatrixInverse.elements=[.5112609807824982,-0,-0,-0,-0,.41421356237309503,-0,-0,-0,-0,-0,-.099999,-0,-0,-1.0000000000000002,.100001];let i=1,a=1,s=o?.8:1e-4;Jt("n1",n,e,Ht,-i,-a,s),Jt("n2",n,e,Ht,i,-a,s),Jt("n3",n,e,Ht,-i,a,s),Jt("n4",n,e,Ht,i,a,s);let l=s;Jt("f1",n,e,Ht,-i,-a,l),Jt("f2",n,e,Ht,i,-a,l),Jt("f3",n,e,Ht,-i,a,l),Jt("f4",n,e,Ht,i,a,l);let u=l,c=.5;Jt("u1",n,e,Ht,i*.7*c,a*1.1,u),Jt("u2",n,e,Ht,-i*.7*c,a*1.1,u),Jt("u3",n,e,Ht,0,a*(1.1+.9*c),u),e.getAttribute("position").needsUpdate=!0}dispose(){this.geometry.dispose(),this.material.dispose()}};function Jt(r,t,e,n,o,i,a){Ks.set(o,i,a).unproject(n);let s=t[r];if(s!==void 0){let l=e.getAttribute("position");for(let u=0,c=s.length;u<c;u++)l.setXYZ(s[u],Ks.x,Ks.y,Ks.z)}}var Zs=class extends Tr(Bc){constructor(e){super(e);this.object=e;this.object=e,this.name=`CombinedCameraHelper: ${e.uuid}`}updateMatrixWorld(e){super.updateMatrixWorld(e),this.updateTarget()}updateTarget(){let e=this.object.getTarget();this.updateWorldMatrix(!0,!1),this.worldToLocal(e)}raycast(e,n){Cr(this.object,this.geometry,e,n,!0)}};import{DirectionalLightHelper as JT}from"three";var Vo=class extends Tr(JT){constructor(e,n=15,o=10066329){super(e,n,o);this.object=e;this.added=!1;this.name=`DirectionalLightHelper: ${e.uuid}`}raycast(e,n){Cr(this.object,Vo.geometryHelper,e,n)}};import{AxesHelper as eC}from"three";var zo=class extends Tr(eC){constructor(e,n=15){super(n);this.object=e;this.object.updateMatrixWorld(),this.name=`EmptyObjectHelper: ${e.uuid}`,this.matrix=e.matrixWorld,this.matrixAutoUpdate=!1}raycast(e,n){Cr(this.object,zo.geometryHelper,e,n)}update(){}};import{PointLightHelper as tC}from"three";var jo=class extends Tr(tC){constructor(e,n=15,o=6710886){super(e,n,o);this.object=e;this.name=`PointLightHelper: ${e.uuid}`}raycast(e,n){Cr(this.object,jo.geometryHelper,e,n)}};import{SpotLightHelper as rC,Vector3 as nC}from"three";var Qs=class extends Tr(rC){constructor(e,n=6710886){super(e,n);this.object=e;this.name=`SpotLightHelper: ${e.uuid}`}raycast(e,n){Cr(this.object,Qs.geometryHelper,e,n)}update(){if(this.object!==void 0){let e=Qs._vector,n=this.object.distance?this.object.distance:1e3,o=n*Math.tan(this.object.angle);this.cone.scale.set(o,o,n),e.setFromMatrixPosition(this.object.target.matrixWorld),this.cone.lookAt(e);let i=this.color!==void 0?this.color:this.light.color;if(this.cone.material instanceof Array)for(let a=0,s=this.cone.material.length;a<s;a++)this.cone.material[a].color.set(i);else this.cone.material.color.set(i)}}},Wi=Qs;Wi._vector=new nC;import{CubicBezierCurve as Js,EllipseCurve as oC,LineCurve as el,LineCurve3 as iC,MathUtils as aC,QuadraticBezierCurve as Rc,SplineCurve as sC,Vector2 as mt,Vector3 as jh}from"three";var qi=1e-12,Ho=class{constructor(t){this.position=new mt;this.startPosition=new mt;this.uuid=aC.generateUUID();this.position=t.clone()}start(){this.reset()}reset(){this.startPosition.copy(this.position)}applyOffset(t){this.position.copy(this.startPosition).add(t)}copy(t){return this.position.copy(t.position),this.startPosition.copy(t.startPosition),this}clone(){return new Ho(this.position).copy(this)}toJSON(){return[this.position.x,this.position.y]}},Wo=class extends Ho{constructor(e){super(e.position);this.parent=e}copy(e){return super.copy(e),this}clone(){return new Wo(this.parent).copy(this)}},er=class extends Ho{constructor(e,n){super(n);this.controls=[];this.roundness=0;this.areControlsDirectionsMirrored=!0;this.uuid=e,this.controls.push(new Wo(this),new Wo(this))}static create(e,n){let o=new er(e,new mt(...n.position));return o.controls[0].position.set(...n.controlPrevious.position),o.controls[1].position.set(...n.controlNext.position),o.roundness=n.roundness,o.areControlsDirectionsMirrored=n.areControlsDirectionsMirrored,o}getOppositeControl(e){let n=this.controls.indexOf(e);return n===0?this.controls[1]:n===1?this.controls[0]:null}applyOffsetToControls(e,n=1){for(let o=0,i=this.controls.length;o<i;o++){let a=this.controls[o];this.position.distanceTo(a.position)<=n?a.position.copy(this.position):a.applyOffset(e)}}controlsMoved(){return!(this.position.equals(this.controls[0].position)&&this.position.equals(this.controls[1].position))}copy(e){return super.copy(e),this.controls[0].copy(e.controls[0]),this.controls[1].copy(e.controls[1]),this.roundness=e.roundness,this.uuid=e.uuid,this}clone(){return new er(this.uuid,this.position).copy(this)}toJSON(){return super.toJSON().concat(this.controls[0].toJSON(),this.controls[1].toJSON(),[this.roundness])}computeTangents(){let e=this.curveBefore?.getTangentAt(1),n=this.curveAfter?.getTangentAt(0);return[e,n]}computeNormals(e=new mt,n=new mt){let[o,i]=this.computeTangents();return o&&i&&(Vh(o,e),Vh(i,n)),[e,n]}computeTangent(e=new mt){let[n,o]=this.computeTangents();return n&&o&&e.copy(n).add(o).normalize(),e}computeNormal(e=new mt){let[n,o]=this.computeNormals();return e.copy(n).add(o).normalize(),e}};function Vh(r,t=new mt){let e=r.length();return t.set(-r.y/e,r.x/e)}var kc=r=>r,qo=new mt,tl=new mt,lC=new mt,cC=new mt,uC=new mt,pC=new mt,Hh=new jh,Wh=new jh;function qh(r){let t=new mt;t.addVectors(r.v0,qo.subVectors(r.v1,r.v0).multiplyScalar(2/3));let e=new mt;return e.addVectors(r.v2,tl.subVectors(r.v1,r.v2).multiplyScalar(2/3)),new Js(r.v0,t,e,r.v2)}function Xi(r,t,e=Number.EPSILON){return Math.abs(r-t)<e}function fC(r,t,e=Number.EPSILON){return r.distanceTo(t)<e}function dC(r,t,e=Number.EPSILON){return r.distanceTo(t)<e}function Gc(r,t,e){let n=Math.sqrt(Math.pow(t.x-r.x,2)+Math.pow(t.y-r.y,2)),o=Math.sqrt(Math.pow(t.x-e.x,2)+Math.pow(t.y-e.y,2)),i=Math.sqrt(Math.pow(e.x-r.x,2)+Math.pow(e.y-r.y,2));return Math.acos((o*o+n*n-i*i)/(2*o*n))}function Xh(r,t,e){return zh(r,t)&&zh(t,e)&&Fc(r.position,t.position,e.position)}function Fc(r,t,e){return qo.copy(t).sub(r).cross(tl.copy(e).sub(r))===0}function Yh(r,t,e,n,o){let i=Math.sqrt(Math.pow(t.x-r.x,2)+Math.pow(t.y-r.y,2)),a=(r.y+t.y)/2,s=(r.x+t.x)/2,l=Math.sqrt(Math.pow(e,2)-Math.pow(i/2,2))*(r.y-t.y)/i,u=Math.sqrt(Math.pow(e,2)-Math.pow(i/2,2))*(t.x-r.x)/i;return n.set(s+l,a+u),o.set(s-l,a-u),[n,o]}function $h(r,t,e){let n=r.distanceTo(e),o=t.distanceTo(e);return n<o?t:r}function Kh(r,t,e,n,o,i){let a=t.x-r.x,s=t.y-r.y,l=e.x-r.x,u=e.y-r.y,c=Math.sqrt((a+l)*(a+l)+(s+u)*(s+u)),p;return Gc(t,r,e)>Math.PI&&(c*=-1),Xi(u,s)?p=(s+u)*(n/c-.5)*8/3/(a-l):p=(a+l)*(n/c-.5)*8/3/(u-s),o.set(t.x-p*s,t.y+p*a),i.set(e.x+p*u,e.y-p*l),[o,i]}function Uc(r,t){return r.position.equals(r.controls[1].position)&&t.position.equals(t.controls[0].position)}function zh(r,t){return Fc(r.position,r.controls[1].position,t.position)&&Fc(r.position,t.controls[0].position,t.position)}function Zh(r,t,e,n,o=.5){let i=qo.subVectors(t,r).multiplyScalar(o).add(r),a=tl.subVectors(e,t).multiplyScalar(o).add(t),s=lC.subVectors(n,e).multiplyScalar(o).add(e),l=i,u=cC.subVectors(a,i).multiplyScalar(o).add(i),c=uC.subVectors(s,a).multiplyScalar(o).add(a),p=s,f=pC.subVectors(c,u).multiplyScalar(o).add(u);return[r.x,r.y,l.x,l.y,u.x,u.y,f.x,f.y,c.x,c.y,p.x,p.y,n.x,n.y]}function Qh(r,t,e=12,n=!0){let o=Wh.set(0,0,0),i,a=0,s=[];for(let l=0;l<t.length;l++){let u=kc(t[l]),c=qo,p=Cn(u,e);s.push(p);for(let f=0;f<=p;f++)if(u instanceof Js||u instanceof Rc||u instanceof el){if(u.getPoint(f/p,c),o.set(c.x,c.y,0),i!==void 0&&dC(i,o))continue;i===void 0&&(i=Hh),i.copy(o),r.setXYZ(a,o.x,o.y,o.z),a++}}return n&&a>1&&!(r.getX(a-1)===r.getX(0)&&r.getY(a-1)===r.getY(0)&&r.getZ(a-1)===r.getZ(0))&&(r.setXYZ(a,r.getX(0),r.getY(0),r.getZ(0)),a++),r}function Jh(r,t,e,n=12,o=!0){let i=Wh.set(0,0,0),a=0,s=[];for(let l=0;l<t.length;l++){if(e[l]===!1)continue;let u,c=kc(t[l]),p=qo,f=Cn(c,n);s.push(f);for(let d=0;d<=f;d++)if(c instanceof Js||c instanceof Rc||c instanceof el){if(c.getPoint(d/f,p),i.set(p.x,p.y,0),u?.equals(i))continue;u===void 0?u=Hh:(r.setXYZ(a,u.x,u.y,u.z),a++,r.setXYZ(a,i.x,i.y,i.z),a++),u.copy(i)}}return o&&a>1&&!(r.getX(a-1)===r.getX(0)&&r.getY(a-1)===r.getY(0)&&r.getZ(a-1)===r.getZ(0))&&(r.setXYZ(a,r.getX(0),r.getY(0),r.getZ(0)),a++),s}function Vc(r,t=12,e=!1){let n=[];for(let o=0,i=r.length;o<i;o++){let a=r[o],s=0;if(e&&a.roundedCurveCorner!==void 0){let l=Cn(a.roundedCurveCorner,t)*.5;o>0&&(n[o-1]+=l),s+=l}a.curveAfter!==void 0&&(s+=Cn(a.curveAfter,t)),n.push(s)}return r.length>0&&e&&r[0].roundedCurveCorner!==void 0&&(n[r.length-1]+=Cn(r[0].roundedCurveCorner,t)*.5),n}function Cn(r,t=12){return r&&r instanceof oC?t*2:r&&(r instanceof el||r instanceof iC)?1:r&&r instanceof sC?t*r.points.length:t}function em(r,t,e=12,n=!0){let o,i=0;for(let a=0;a<t.length;a++){let s=kc(t[a]),l=Cn(s,e),u=qo;for(let c=0;c<=l;c++)if(s instanceof Js||s instanceof Rc||s instanceof el){if(s.getPoint(c/l,u),o!==void 0&&fC(o,u,qi))continue;o===void 0&&(o=tl),o.copy(u),r.push(u.x,u.y),i++}}return Xi(r[0],r[r.length-2],qi)&&Xi(r[1],r[r.length-1],qi)&&(r.pop(),r.pop()),n&&i>1&&!(Xi(r[i-1],r[1],qi)&&Xi(r[i-2],r[0],qi))&&(r.push(r[0],r[1]),i++),r}import{EventDispatcher as N_,Matrix3 as P_,Vector3 as Hu}from"three";import{EventDispatcher as hC,Plane as mC,Shape as tm,Vector2 as en,Vector3 as gC,MathUtils as zc,LineCurve as jc,QuadraticBezierCurve as rm,CubicBezierCurve as rl}from"three";var Hc=new en,yC=new en,vC=new en,xC=new en,bC=new en,SC=new en,Ae=class extends tm{constructor(e=100,n=100){super();this.points=[];this.shapeHoles=[];this.eventDispatcher=new hC;this.plane=new mC(new gC(0,0,-1));this.subdivision=0;this.controlSnapDistance=4;this.pointIDs=0;this.isMesh2D=!1;this._roundness=0;this.isClosed=!1;this.useCubicForRoundedCorners=!0;this.uuid=zc.generateUUID();this.needsUpdate=!1;this.roundedCurves=[];this._width=e,this._height=n}static createFromState(e,n,o){let i=new Ae;return i.isClosed=e.isClosed,i.points=e.points.map(a=>er.create(a.id,a.data)),typeof e.roundness=="number"&&(i.roundness=e.roundness),i.shapeHoles=e.shapeHoles.map(a=>Ae.createFromState(a)),n!==void 0&&o!==void 0&&i.applySize(n,o),i.update(),i}get width(){return this._width}get height(){return this._height}get roundness(){return this._roundness}set roundness(e){if(this._roundness!==e){this._roundness=e;for(let n=0,o=this.points.length;n<o;n++)this.points[n].roundness=e;this.needsUpdate=!0}}getPointsIndexesByIds(e){return e.map(n=>this.getPointIndexById(n)).filter(n=>n>=0)}getPointIndexById(e){let n=this.points.length,o=this.points.findIndex(i=>i.uuid===e);if(o<0){let i=n;for(let a=0,s=this.shapeHoles.length;a<s;a++){let l=this.shapeHoles[a],u=l.points.length,c=l.getPointIndexById(e);if(c<0)i+=u;else return c+i}}return o}getLineIndexById(e){return this.getPointIndexById(e)}getBezierPoint(e){if(e<=this.points.length-1)return this.points[e];if(this.shapeHoles.length>0){let n=this.points.length;for(let o=0,i=this.shapeHoles.length;o<i;o++){let a=this.shapeHoles[o],s=e-n;if(s<=a.points.length-1)return a.points[s];n+=a.points.length}}throw new Error("This shape does not have a point for this index: "+e)}getBezierPointIndex(e){let n=this.points.indexOf(e);if(n>=0)return n;if(n=this.points.length,this.shapeHoles.length>0)for(let o=0,i=this.shapeHoles.length;o<i;o++){let a=this.shapeHoles[o],s=a.points.indexOf(e);if(s>=0)return n+s;n+=a.points.length}return-1}getAllPoints(){let e=[].concat(...this.shapeHoles.map(n=>n.points));return[...this.points,...e]}applySize(e,n){e===0&&(e=.001),n===0&&(n=.001),this._width=e,this._height=n}applyScale(e,n){let o=Hc.set(e,n);for(let i=0,a=this.points.length;i<a;i++){let s=this.points[i];s.position.multiply(o),s.controls[0].position.multiply(o),s.controls[1].position.multiply(o)}for(let i=0,a=this.shapeHoles.length;i<a;i++)this.shapeHoles[i].applyScale(e,n);this._update(!1)}createPoint(e,n=0,o=zc.generateUUID()){let i;e instanceof en?i=e:i=new en(e,n);let a=new er(o,i);return a.roundness=this.roundness,a}addPoint(e){this.points.push(e),this.needsUpdate=!0}addPointAt(e,n){this.points.splice(n,0,e),this.needsUpdate=!0}getPointByUuid(e){for(let n=0,o=this.points.length;n<o;n++){let i=this.points[n];if(i.uuid===e)return i}for(let n=0,o=this.shapeHoles.length;n<o;n++){let a=this.shapeHoles[n].getPointByUuid(e);if(a)return a}}getFirstPoint(){return this.points[0]}getLastPoint(){return this.points[this.points.length-1]}removePoint(e){let n=this.points.indexOf(e);n>=0&&this.points.splice(n,1),this.needsUpdate=!0}removePointById(e){let n=this.points.find(o=>o.uuid===e);n&&this.removePoint(n)}update(e=!0){for(let n=0,o=this.shapeHoles.length;n<o;n++)this.shapeHoles[n].update(!1);this._update(e)}extractShapePointsToBuffer(e,n=12,o=!1){this.subdivision=n,this.curveDivisions===void 0&&this.computeCurveDivisions(n);let i=o?this.roundedCurveDivisions:this.curveDivisions;return Qh(e,o?this.roundedCurves:this.curves,n,this.autoClose),i.reduce((a,s)=>a+s,0)+1}computeCurveDivisions(e=12){return this.curveDivisions=Vc(this.points,e,!1),this.roundedCurveDivisions=Vc(this.points,e,!0),this.curveDivisions}extractFilteredShapePointsToBuffer(e,n,o=12){return Jh(e,this.curves,n,o,this.autoClose).reduce((a,s)=>a+s,0)*2}extractShapePointsToFlatArray(e,n=12){return this.subdivision=n,this.curveDivisions===void 0&&this.computeCurveDivisions(n),em(e,this.roundedCurves,n,this.autoClose)}getCurveIndexFromVertexId(e,n=!1){let o=0;this.curveDivisions===void 0&&this.computeCurveDivisions(this.subdivision);let i=n?this.roundedCurveDivisions:this.curveDivisions,a=0;n&&this.points[0].roundedCurveCorner!==void 0&&(a=Cn(this.points[0].roundedCurveCorner,this.subdivision)*.5);let s=e-a;s<0&&(s+=i.reduce((l,u)=>l+u,0));for(let l=0,u=i.length;l<u;l++){let c=i[l];if(s<o+c)return[l,(s-o+1)/c];o+=c}return[0,1]}getCurveT(e,n,o){let i=this.points[e],a=this.points[e>=this.points.length-1?0:e+1],s=this.curveDivisions,l=s[e];if(Uc(i,a)){let p=i.position.distanceTo(a.position);return i.position.distanceTo(Hc.set(o.x,o.y))/p}let u=0;for(let p=0;p<e;p++)u+=s[p];return(n-u)/l}dispose(){this.eventDispatcher=null}_applyCurveForPoint(e,n){Uc(n,e)?this.lineTo(e.position.x,e.position.y):this.bezierCurveTo(n.controls[1].position.x,n.controls[1].position.y,e.controls[0].position.x,e.controls[0].position.y,e.position.x,e.position.y);let o=this.curves[this.curves.length-1];e.curveBefore=o,n.curveAfter=o;let i=o.clone();e.roundedCurveBefore=i,n.roundedCurveAfter=i,e.roundedCurveCorner=void 0,this.roundedCurves.push(i)}_update(e=!0){if(this.curves=[],this.roundedCurves=[],!this.points.length)return;for(let o=0,i=this.points.length;o<i;o++){let a=this.points[o];if(o===0)this.moveTo(a.position.x,a.position.y);else{let s=this.points[o-1];this._applyCurveForPoint(a,s)}}let n=this.getLastPoint();if(n?.curveAfter&&(n.curveAfter=void 0),this.isClosed){let o=this.points[0],i=this.points[this.points.length-1];this._applyCurveForPoint(o,i)}if(this.points.length>2){let o=0;for(let i=0,a=this.points.length;i<a;i++){let s=this.points[i],l=this.points[i-1]??this.points[this.points.length-1],u=this.points[i+1]??this.points[0],c=s.roundness,p=l&&u&&Xh(l,s,u);if(!s.controlsMoved()&&c>0&&!p){let f=s.curveBefore,d=s.curveAfter;if(f===void 0||d===void 0)continue;let h=s.roundedCurveBefore,m=s.roundedCurveAfter,g=f.getLength(),v=d.getLength(),x=Math.min(c,g*.499),S=Math.min(c,v*.499),w=Math.min(x,S),b=1-w/g,_=w/v,T=f.getPointAt(b,Hc),y=d.getPointAt(_,yC);this._subSplitCurve(f,h,b,T,void 0),this._subSplitCurve(d,m,_,void 0,y);let O;if(this.useCubicForRoundedCorners){let A=Gc(T,s.position,y)/2,I=Math.tan(A)*T.distanceTo(s.position),[C,N]=Yh(T,y,I,vC,xC),P=$h(C,N,s.position),[G,$]=Kh(P,T,y,I,bC,SC);O=new rl(T.clone(),G.clone(),$.clone(),y.clone())}else O=new rm(T.clone(),s.position.clone(),y.clone());s.roundedCurveCorner=O,this.roundedCurves.splice(i+o,0,O),o++}}}e&&this.eventDispatcher?.dispatchEvent({type:"update"})}_subSplitCurve(e,n,o,i,a){if(e instanceof jc)i!==void 0&&n.v2.copy(i),a!==void 0&&n.v1.copy(a);else{let s=e,l=n,u=s.getUtoTmapping(o,0),c=Zh(s.v0,s.v1,s.v2,s.v3,u);return i!==void 0&&(l.v0.set(c[0],c[1]),l.v1.set(c[2],c[3]),l.v2.set(c[4],c[5]),l.v3.set(c[6],c[7])),a!==void 0&&(l.v0.set(c[6],c[7]),l.v1.set(c[8],c[9]),l.v2.set(c[10],c[11]),l.v3.set(c[12],c[13])),l}return n}clone(){let e=new Ae(this._width,this._height);return e.points=this.points.map(n=>n.clone()),e.isClosed=this.isClosed,e.roundness=this.roundness,e.isMesh2D=this.isMesh2D,e.shapeHoles=this.shapeHoles.map(n=>n.clone()),e}toJSON(){return{points:this.points.reduce((e,n)=>e.concat(n.toJSON()),[]),shapeHoles:this.shapeHoles.map(e=>e.toJSON()),isClosed:this.isClosed,roundness:this.roundness}}fromJSON(e){this.points=[],this.pointIDs=0;let n=e.points.length/7;for(let o=0;o<n;o++){let i=o*7,a=e.points[i+0],s=e.points[i+1],l=e.points[i+2],u=e.points[i+3],c=e.points[i+4],p=e.points[i+5],f=e.points[i+6],d=new er(zc.generateUUID(),new en(a,s));d.controls[0].position.set(l,u),d.controls[1].position.set(c,p),d.roundness=f,this.points.push(d)}return this.shapeHoles=e.shapeHoles?.length?e.shapeHoles.map(o=>{let i=new Ae;return i.fromJSON(o),i}):[],this.isClosed=e.isClosed,this._roundness=e.roundness,this._update(),this}fromShape(e){let n=(i,a)=>{a instanceof rl&&a.v3.equals(i.position)&&i.controls[0].position.copy(a.v2)},o=i=>{let a=[],s,l;for(s=0,l=i.length;s<l;s++)i[s]instanceof rm&&(i[s]=qh(i[s]));for(s=0,l=i.length;s<l;s++){let p=i[s],f=s>0?i[s-1]:null,d;p instanceof rl?(d=this.createPoint(p.v0),d.controls[1].position.copy(p.v1)):p instanceof jc&&(d=this.createPoint(p.v1)),d!==void 0&&(f!==null&&n(d,f),a.push(d))}let u=i[i.length-1],c=!1;return u instanceof rl?u.v3.equals(a[0].position)&&(a[0].controls[0].position.copy(u.v2),c=!0):u instanceof jc&&u.v2.equals(a[0].position)&&(c=!0),this.isClosed=c,a};return this.points=o(e.curves),e instanceof tm&&(this.shapeHoles=e.holes.map(i=>{let a=new Ae;return a.fromShape(i),a})),this.update(),this}};import{BufferAttribute as ol,BufferGeometry as _C}from"three";var Be;(function(r){r[r.ODD=0]="ODD",r[r.NONZERO=1]="NONZERO",r[r.POSITIVE=2]="POSITIVE",r[r.NEGATIVE=3]="NEGATIVE",r[r.ABS_GEQ_TWO=4]="ABS_GEQ_TWO"})(Be||(Be={}));var Ke;(function(r){r[r.POLYGONS=0]="POLYGONS",r[r.CONNECTED_POLYGONS=1]="CONNECTED_POLYGONS",r[r.BOUNDARY_CONTOURS=2]="BOUNDARY_CONTOURS"})(Ke||(Ke={}));function he(r,t){if(!r)throw t||"Assertion Failed!"}var fe=function(){function r(){}return r.vertEq=function(t,e){return t.s===e.s&&t.t===e.t},r.vertLeq=function(t,e){return t.s<e.s||t.s===e.s&&t.t<=e.t},r.transLeq=function(t,e){return t.t<e.t||t.t===e.t&&t.s<=e.s},r.edgeGoesLeft=function(t){return r.vertLeq(t.Dst,t.Org)},r.edgeGoesRight=function(t){return r.vertLeq(t.Org,t.Dst)},r.vertL1dist=function(t,e){return Math.abs(t.s-e.s)+Math.abs(t.t-e.t)},r.edgeEval=function(t,e,n){he(r.vertLeq(t,e)&&r.vertLeq(e,n));var o=e.s-t.s,i=n.s-e.s;return o+i>0?o<i?e.t-t.t+(t.t-n.t)*(o/(o+i)):e.t-n.t+(n.t-t.t)*(i/(o+i)):0},r.edgeSign=function(t,e,n){he(r.vertLeq(t,e)&&r.vertLeq(e,n));var o=e.s-t.s,i=n.s-e.s;return o+i>0?(e.t-n.t)*o+(e.t-t.t)*i:0},r.transEval=function(t,e,n){he(r.transLeq(t,e)&&r.transLeq(e,n));var o=e.t-t.t,i=n.t-e.t;return o+i>0?o<i?e.s-t.s+(t.s-n.s)*(o/(o+i)):e.s-n.s+(n.s-t.s)*(i/(o+i)):0},r.transSign=function(t,e,n){he(r.transLeq(t,e)&&r.transLeq(e,n));var o=e.t-t.t,i=n.t-e.t;return o+i>0?(e.s-n.s)*o+(e.s-t.s)*i:0},r.vertCCW=function(t,e,n){return t.s*(e.t-n.t)+e.s*(n.t-t.t)+n.s*(t.t-e.t)>=0},r.interpolate=function(t,e,n,o){return t=t<0?0:t,n=n<0?0:n,t<=n?n===0?(e+o)/2:e+(o-e)*(t/(t+n)):o+(e-o)*(n/(t+n))},r.intersect=function(t,e,n,o,i){var a,s,l;r.vertLeq(t,e)||(l=t,t=e,e=l),r.vertLeq(n,o)||(l=n,n=o,o=l),r.vertLeq(t,n)||(l=t,t=n,n=l,l=e,e=o,o=l),r.vertLeq(n,e)?r.vertLeq(e,o)?(a=r.edgeEval(t,n,e),s=r.edgeEval(n,e,o),a+s<0&&(a=-a,s=-s),i.s=r.interpolate(a,n.s,s,e.s)):(a=r.edgeSign(t,n,e),s=-r.edgeSign(t,o,e),a+s<0&&(a=-a,s=-s),i.s=r.interpolate(a,n.s,s,o.s)):i.s=(n.s+e.s)/2,r.transLeq(t,e)||(l=t,t=e,e=l),r.transLeq(n,o)||(l=n,n=o,o=l),r.transLeq(t,n)||(l=t,t=n,n=l,l=e,e=o,o=l),r.transLeq(n,e)?r.transLeq(e,o)?(a=r.transEval(t,n,e),s=r.transEval(n,e,o),a+s<0&&(a=-a,s=-s),i.t=r.interpolate(a,n.t,s,e.t)):(a=r.transSign(t,n,e),s=-r.transSign(t,o,e),a+s<0&&(a=-a,s=-s),i.t=r.interpolate(a,n.t,s,o.t)):i.t=(n.t+e.t)/2},r}(),Yi=function(){function r(){this.next=null,this.prev=null,this.anEdge=null,this.trail=null,this.n=0,this.marked=!1,this.inside=!1}return r}(),nl=function(){function r(t){this.side=t,this.next=null,this.Org=null,this.Sym=null,this.Onext=null,this.Lnext=null,this.Lface=null,this.activeRegion=null,this.winding=0}return Object.defineProperty(r.prototype,"Rface",{get:function(){return this.Sym.Lface},set:function(t){this.Sym.Lface=t},enumerable:!0,configurable:!0}),Object.defineProperty(r.prototype,"Dst",{get:function(){return this.Sym.Org},set:function(t){this.Sym.Org=t},enumerable:!0,configurable:!0}),Object.defineProperty(r.prototype,"Oprev",{get:function(){return this.Sym.Lnext},set:function(t){this.Sym.Lnext=t},enumerable:!0,configurable:!0}),Object.defineProperty(r.prototype,"Lprev",{get:function(){return this.Onext.Sym},set:function(t){this.Onext.Sym=t},enumerable:!0,configurable:!0}),Object.defineProperty(r.prototype,"Dprev",{get:function(){return this.Lnext.Sym},set:function(t){this.Lnext.Sym=t},enumerable:!0,configurable:!0}),Object.defineProperty(r.prototype,"Rprev",{get:function(){return this.Sym.Onext},set:function(t){this.Sym.Onext=t},enumerable:!0,configurable:!0}),Object.defineProperty(r.prototype,"Dnext",{get:function(){return this.Sym.Onext.Sym},set:function(t){this.Sym.Onext.Sym=t},enumerable:!0,configurable:!0}),Object.defineProperty(r.prototype,"Rnext",{get:function(){return this.Sym.Lnext.Sym},set:function(t){this.Sym.Lnext.Sym=t},enumerable:!0,configurable:!0}),r}(),Xo=function(){function r(){this.next=null,this.prev=null,this.anEdge=null,this.coords=[0,0,0],this.s=0,this.t=0,this.pqHandle=0,this.n=0,this.idx=0}return r}(),nm=function(){function r(){var t=new Xo,e=new Yi,n=new nl(0),o=new nl(1);t.next=t.prev=t,t.anEdge=null,e.next=e.prev=e,n.next=n,n.Sym=o,o.next=o,o.Sym=n,this.vHead=t,this.fHead=e,this.eHead=n,this.eHeadSym=o}return r.prototype.makeEdge_=function(t){var e=new nl(0),n=new nl(1);t.Sym.side<t.side&&(t=t.Sym);var o=t.Sym.next;return n.next=o,o.Sym.next=e,e.next=t,t.Sym.next=n,e.Sym=n,e.Onext=e,e.Lnext=n,e.Org=null,e.Lface=null,e.winding=0,e.activeRegion=null,n.Sym=e,n.Onext=n,n.Lnext=e,n.Org=null,n.Lface=null,n.winding=0,n.activeRegion=null,e},r.prototype.splice_=function(t,e){var n=t.Onext,o=e.Onext;n.Sym.Lnext=e,o.Sym.Lnext=t,t.Onext=o,e.Onext=n},r.prototype.makeVertex_=function(t,e,n){var o=t;he(o,"Vertex can't be null!");var i=n.prev;o.prev=i,i.next=o,o.next=n,n.prev=o,o.anEdge=e;var a=e;do a.Org=o,a=a.Onext;while(a!==e)},r.prototype.makeFace_=function(t,e,n){var o=t;he(o,"Face can't be null");var i=n.prev;o.prev=i,i.next=o,o.next=n,n.prev=o,o.anEdge=e,o.trail=null,o.marked=!1,o.inside=n.inside;var a=e;do a.Lface=o,a=a.Lnext;while(a!==e)},r.prototype.killEdge_=function(t){t.Sym.side<t.side&&(t=t.Sym);var e=t.next,n=t.Sym.next;e.Sym.next=n,n.Sym.next=e},r.prototype.killVertex_=function(t,e){var n=t.anEdge,o=n;do o.Org=e,o=o.Onext;while(o!==n);var i=t.prev,a=t.next;a.prev=i,i.next=a},r.prototype.killFace_=function(t,e){var n=t.anEdge,o=n;do o.Lface=e,o=o.Lnext;while(o!==n);var i=t.prev,a=t.next;a.prev=i,i.next=a},r.prototype.makeEdge=function(){var t=new Xo,e=new Xo,n=new Yi,o=this.makeEdge_(this.eHead);return this.makeVertex_(t,o,this.vHead),this.makeVertex_(e,o.Sym,this.vHead),this.makeFace_(n,o,this.fHead),o},r.prototype.splice=function(t,e){var n=!1,o=!1;if(t!==e){if(e.Org!==t.Org&&(o=!0,this.killVertex_(e.Org,t.Org)),e.Lface!==t.Lface&&(n=!0,this.killFace_(e.Lface,t.Lface)),this.splice_(e,t),!o){var i=new Xo;this.makeVertex_(i,e,t.Org),t.Org.anEdge=t}if(!n){var a=new Yi;this.makeFace_(a,e,t.Lface),t.Lface.anEdge=t}}},r.prototype.delete=function(t){var e=t.Sym,n=!1;if(t.Lface!==t.Rface&&(n=!0,this.killFace_(t.Lface,t.Rface)),t.Onext===t)this.killVertex_(t.Org,null);else if(t.Rface.anEdge=t.Oprev,t.Org.anEdge=t.Onext,this.splice_(t,t.Oprev),!n){var o=new Yi;this.makeFace_(o,t,t.Lface)}e.Onext===e?(this.killVertex_(e.Org,null),this.killFace_(e.Lface,null)):(t.Lface.anEdge=e.Oprev,e.Org.anEdge=e.Onext,this.splice_(e,e.Oprev)),this.killEdge_(t)},r.prototype.addEdgeVertex=function(t){var e=this.makeEdge_(t),n=e.Sym;this.splice_(e,t.Lnext),e.Org=t.Dst;var o=new Xo;return this.makeVertex_(o,n,e.Org),e.Lface=n.Lface=t.Lface,e},r.prototype.splitEdge=function(t){var e=this.addEdgeVertex(t),n=e.Sym;return this.splice_(t.Sym,t.Sym.Oprev),this.splice_(t.Sym,n),t.Dst=n.Org,n.Dst.anEdge=n.Sym,n.Rface=t.Rface,n.winding=t.winding,n.Sym.winding=t.Sym.winding,n.idx=t.idx,n.Sym.idx=t.Sym.idx,n},r.prototype.connect=function(t,e){var n=!1,o=this.makeEdge_(t),i=o.Sym;if(e.Lface!==t.Lface&&(n=!0,this.killFace_(e.Lface,t.Lface)),this.splice_(o,t.Lnext),this.splice_(i,e),o.Org=t.Dst,i.Org=e.Org,o.Lface=i.Lface=t.Lface,t.Lface.anEdge=i,!n){var a=new Yi;this.makeFace_(a,o,t.Lface)}return o},r.prototype.zapFace=function(t){var e=t.anEdge,n,o,i,a,s;o=e.Lnext;do n=o,o=n.Lnext,n.Lface=null,n.Rface===null&&(n.Onext===n?this.killVertex_(n.Org,null):(n.Org.anEdge=n.Onext,this.splice_(n,n.Oprev)),i=n.Sym,i.Onext===i?this.killVertex_(i.Org,null):(i.Org.anEdge=i.Onext,this.splice_(i,i.Oprev)),this.killEdge_(n));while(n!=e);a=t.prev,s=t.next,s.prev=a,a.next=s},r.prototype.countFaceVerts_=function(t){var e=t.anEdge,n=0;do n++,e=e.Lnext;while(e!==t.anEdge);return n},r.prototype.mergeConvexFaces=function(t){var e,n,o,i,a,s,l;for(e=this.fHead.next;e!==this.fHead;e=e.next)if(!!e.inside)for(n=e.anEdge,a=n.Org;o=n.Lnext,i=n.Sym,i&&i.Lface&&i.Lface.inside&&(s=this.countFaceVerts_(e),l=this.countFaceVerts_(i.Lface),s+l-2<=t&&fe.vertCCW(n.Lprev.Org,n.Org,i.Lnext.Lnext.Org)&&fe.vertCCW(i.Lprev.Org,i.Org,n.Lnext.Lnext.Org)&&(o=i.Lnext,this.delete(i),n=null,i=null)),!(n&&n.Lnext.Org===a);)n=o;return!0},r.prototype.check=function(){var t=this.fHead,e=this.vHead,n=this.eHead,o,i,a,s,l,u;for(i=t,i=t;(o=i.next)!==t;i=o){he(o.prev===i),l=o.anEdge;do he(l.Sym!==l),he(l.Sym.Sym===l),he(l.Lnext.Onext.Sym===l),he(l.Onext.Sym.Lnext===l),he(l.Lface===o),l=l.Lnext;while(l!==o.anEdge)}for(he(o.prev===i&&o.anEdge===null),s=e,s=e;(a=s.next)!==e;s=a){he(a.prev===s),l=a.anEdge;do he(l.Sym!==l),he(l.Sym.Sym===l),he(l.Lnext.Onext.Sym===l),he(l.Onext.Sym.Lnext===l),he(l.Org===a),l=l.Onext;while(l!==a.anEdge)}for(he(a.prev===s&&a.anEdge===null),u=n,u=n;(l=u.next)!==n;u=l)he(l.Sym.next===u.Sym),he(l.Sym!==l),he(l.Sym.Sym===l),he(l.Org!==null),he(l.Dst!==null),he(l.Lnext.Onext.Sym===l),he(l.Onext.Sym.Lnext===l);he(l.Sym.next===u.Sym&&l.Sym===this.eHeadSym&&l.Sym.Sym===l&&l.Org===null&&l.Dst===null&&l.Lface===null&&l.Rface===null)},r}(),om=function(){function r(){this.handle=null}return r}(),im=function(){function r(){this.key=null,this.node=0}return r}(),wC=function(){function r(t,e){this.leq=e,this.max=0,this.nodes=[],this.handles=[],this.initialized=!1,this.freeList=0,this.size=0,this.max=t,this.nodes=[],this.handles=[];for(var n=0;n<t+1;n++)this.nodes[n]=new om,this.handles[n]=new im;this.initialized=!1,this.nodes[1].handle=1,this.handles[1].key=null}return r.prototype.floatDown_=function(t){var e=this.nodes,n=this.handles,o,i,a;for(o=e[t].handle;;){if(a=t<<1,a<this.size&&this.leq(n[e[a+1].handle].key,n[e[a].handle].key)&&++a,he(a<=this.max),i=e[a].handle,a>this.size||this.leq(n[o].key,n[i].key)){e[t].handle=o,n[o].node=t;break}e[t].handle=i,n[i].node=t,t=a}},r.prototype.floatUp_=function(t){var e=this.nodes,n=this.handles,o,i,a;for(o=e[t].handle;;){if(a=t>>1,i=e[a].handle,a===0||this.leq(n[i].key,n[o].key)){e[t].handle=o,n[o].node=t;break}e[t].handle=i,n[i].node=t,t=a}},r.prototype.init=function(){for(var t=this.size;t>=1;--t)this.floatDown_(t);this.initialized=!0},r.prototype.min=function(){return this.handles[this.nodes[1].handle].key},r.prototype.insert=function(t){var e,n;if(e=++this.size,e*2>this.max){this.max*=2;var o,i;for(i=this.nodes.length,this.nodes.length=this.max+1,o=i;o<this.nodes.length;o++)this.nodes[o]=new om;for(i=this.handles.length,this.handles.length=this.max+1,o=i;o<this.handles.length;o++)this.handles[o]=new im}return this.freeList===0?n=e:(n=this.freeList,this.freeList=this.handles[n].node),this.nodes[e].handle=n,this.handles[n].node=e,this.handles[n].key=t,this.initialized&&this.floatUp_(e),n},r.prototype.extractMin=function(){var t=this.nodes,e=this.handles,n=t[1].handle,o=e[n].key;return this.size>0&&(t[1].handle=t[this.size].handle,e[t[1].handle].node=1,e[n].key=null,e[n].node=this.freeList,this.freeList=n,--this.size,this.size>0&&this.floatDown_(1)),o},r.prototype.delete=function(t){var e=this.nodes,n=this.handles,o;he(t>=1&&t<=this.max&&n[t].key!==null),o=n[t].node,e[o].handle=e[this.size].handle,n[e[o].handle].node=o,--this.size,o<=this.size&&(o<=1||this.leq(n[e[o>>1].handle].key,n[e[o].handle].key)?this.floatDown_(o):this.floatUp_(o)),n[t].key=null,n[t].node=this.freeList,this.freeList=t},r}(),Wc=function(){function r(){this.eUp=null,this.nodeUp=null,this.windingNumber=0,this.inside=!1,this.sentinel=!1,this.dirty=!1,this.fixUpperEdge=!1}return r}(),am=function(){function r(){this.key=null,this.next=null,this.prev=null}return r}(),TC=function(){function r(t,e){this.frame=t,this.leq=e,this.head=new am,this.head.next=this.head,this.head.prev=this.head}return r.prototype.min=function(){return this.head.next},r.prototype.max=function(){return this.head.prev},r.prototype.insert=function(t){return this.insertBefore(this.head,t)},r.prototype.search=function(t){var e=this.head;do e=e.next;while(e.key!==null&&!this.leq(this.frame,t,e.key));return e},r.prototype.insertBefore=function(t,e){do t=t.prev;while(t.key!==null&&!this.leq(this.frame,t.key,e));var n=new am;return n.key=e,n.next=t.next,t.next.prev=n,n.prev=t,t.next=n,n},r.prototype.delete=function(t){t.next.prev=t.prev,t.prev.next=t.next},r}(),CC=function(){function r(){}return r.regionBelow=function(t){return t.nodeUp.prev.key},r.regionAbove=function(t){return t.nodeUp.next.key},r.debugEvent=function(t){},r.addWinding=function(t,e){t.winding+=e.winding,t.Sym.winding+=e.Sym.winding},r.edgeLeq=function(t,e,n){var o=t.event,i=e.eUp,a=n.eUp;if(i.Dst===o)return a.Dst===o?fe.vertLeq(i.Org,a.Org)?fe.edgeSign(a.Dst,i.Org,a.Org)<=0:fe.edgeSign(i.Dst,a.Org,i.Org)>=0:fe.edgeSign(a.Dst,o,a.Org)<=0;if(a.Dst===o)return fe.edgeSign(i.Dst,o,i.Org)>=0;var s=fe.edgeEval(i.Dst,o,i.Org),l=fe.edgeEval(a.Dst,o,a.Org);return s>=l},r.deleteRegion=function(t,e){e.fixUpperEdge&&he(e.eUp.winding===0),e.eUp.activeRegion=null,t.dict.delete(e.nodeUp)},r.fixUpperEdge=function(t,e,n){he(e.fixUpperEdge),t.mesh.delete(e.eUp),e.fixUpperEdge=!1,e.eUp=n,n.activeRegion=e},r.topLeftRegion=function(t,e){var n=e.eUp.Org,o;do e=r.regionAbove(e);while(e.eUp.Org===n);if(e.fixUpperEdge){if(o=t.mesh.connect(r.regionBelow(e).eUp.Sym,e.eUp.Lnext),o===null)return null;r.fixUpperEdge(t,e,o),e=r.regionAbove(e)}return e},r.topRightRegion=function(t){var e=t.eUp.Dst;do t=r.regionAbove(t);while(t.eUp.Dst===e);return t},r.addRegionBelow=function(t,e,n){var o=new Wc;return o.eUp=n,o.nodeUp=t.dict.insertBefore(e.nodeUp,o),o.fixUpperEdge=!1,o.sentinel=!1,o.dirty=!1,n.activeRegion=o,o},r.isWindingInside=function(t,e){switch(t.windingRule){case Be.ODD:return(e&1)!==0;case Be.NONZERO:return e!==0;case Be.POSITIVE:return e>0;case Be.NEGATIVE:return e<0;case Be.ABS_GEQ_TWO:return e>=2||e<=-2}throw new Error("Invalid winding rulle")},r.computeWinding=function(t,e){e.windingNumber=r.regionAbove(e).windingNumber+e.eUp.winding,e.inside=r.isWindingInside(t,e.windingNumber)},r.finishRegion=function(t,e){var n=e.eUp,o=n.Lface;o.inside=e.inside,o.anEdge=n,r.deleteRegion(t,e)},r.finishLeftRegions=function(t,e,n){for(var o,i=null,a=e,s=e.eUp;a!==n;){if(a.fixUpperEdge=!1,i=r.regionBelow(a),o=i.eUp,o.Org!=s.Org){if(!i.fixUpperEdge){r.finishRegion(t,a);break}o=t.mesh.connect(s.Lprev,o.Sym),r.fixUpperEdge(t,i,o)}s.Onext!==o&&(t.mesh.splice(o.Oprev,o),t.mesh.splice(s,o)),r.finishRegion(t,a),s=i.eUp,a=i}return s},r.addRightEdges=function(t,e,n,o,i,a){var s,l,u,c,p=!0;u=n;do he(fe.vertLeq(u.Org,u.Dst)),r.addRegionBelow(t,e,u.Sym),u=u.Onext;while(u!==o);for(i===null&&(i=r.regionBelow(e).eUp.Rprev),l=e,c=i;s=r.regionBelow(l),u=s.eUp.Sym,u.Org===c.Org;)u.Onext!==c&&(t.mesh.splice(u.Oprev,u),t.mesh.splice(c.Oprev,u)),s.windingNumber=l.windingNumber-u.winding,s.inside=r.isWindingInside(t,s.windingNumber),l.dirty=!0,!p&&r.checkForRightSplice(t,l)&&(r.addWinding(u,c),r.deleteRegion(t,l),t.mesh.delete(c)),p=!1,l=s,c=u;l.dirty=!0,he(l.windingNumber-u.winding===s.windingNumber),a&&r.walkDirtyRegions(t,l)},r.spliceMergeVertices=function(t,e,n){t.mesh.splice(e,n)},r.vertexWeights=function(t,e,n){var o=fe.vertL1dist(e,t),i=fe.vertL1dist(n,t),a=.5*i/(o+i),s=.5*o/(o+i);t.coords[0]+=a*e.coords[0]+s*n.coords[0],t.coords[1]+=a*e.coords[1]+s*n.coords[1],t.coords[2]+=a*e.coords[2]+s*n.coords[2]},r.getIntersectData=function(t,e,n,o,i,a){e.coords[0]=e.coords[1]=e.coords[2]=0,e.idx=-1,r.vertexWeights(e,n,o),r.vertexWeights(e,i,a)},r.checkForRightSplice=function(t,e){var n=r.regionBelow(e),o=e.eUp,i=n.eUp;if(fe.vertLeq(o.Org,i.Org)){if(fe.edgeSign(i.Dst,o.Org,i.Org)>0)return!1;fe.vertEq(o.Org,i.Org)?o.Org!==i.Org&&(t.pq.delete(o.Org.pqHandle),r.spliceMergeVertices(t,i.Oprev,o)):(t.mesh.splitEdge(i.Sym),t.mesh.splice(o,i.Oprev),e.dirty=n.dirty=!0)}else{if(fe.edgeSign(o.Dst,i.Org,o.Org)<0)return!1;r.regionAbove(e).dirty=e.dirty=!0,t.mesh.splitEdge(o.Sym),t.mesh.splice(i.Oprev,o)}return!0},r.checkForLeftSplice=function(t,e){var n=r.regionBelow(e),o=e.eUp,i=n.eUp,a;if(he(!fe.vertEq(o.Dst,i.Dst)),fe.vertLeq(o.Dst,i.Dst)){if(fe.edgeSign(o.Dst,i.Dst,o.Org)<0)return!1;r.regionAbove(e).dirty=e.dirty=!0,a=t.mesh.splitEdge(o),t.mesh.splice(i.Sym,a),a.Lface.inside=e.inside}else{if(fe.edgeSign(i.Dst,o.Dst,i.Org)>0)return!1;e.dirty=n.dirty=!0,a=t.mesh.splitEdge(i),t.mesh.splice(o.Lnext,i.Sym),a.Rface.inside=e.inside}return!0},r.checkForIntersect=function(t,e){var n=r.regionBelow(e),o=e.eUp,i=n.eUp,a=o.Org,s=i.Org,l=o.Dst,u=i.Dst,c,p,f=new Xo,d,h;if(he(!fe.vertEq(u,l)),he(fe.edgeSign(l,t.event,a)<=0),he(fe.edgeSign(u,t.event,s)>=0),he(a!==t.event&&s!==t.event),he(!e.fixUpperEdge&&!n.fixUpperEdge),a===s||(c=Math.min(a.t,l.t),p=Math.max(s.t,u.t),c>p))return!1;if(fe.vertLeq(a,s)){if(fe.edgeSign(u,a,s)>0)return!1}else if(fe.edgeSign(l,s,a)<0)return!1;return r.debugEvent(t),fe.intersect(l,a,u,s,f),he(Math.min(a.t,l.t)<=f.t),he(f.t<=Math.max(s.t,u.t)),he(Math.min(u.s,l.s)<=f.s),he(f.s<=Math.max(s.s,a.s)),fe.vertLeq(f,t.event)&&(f.s=t.event.s,f.t=t.event.t),d=fe.vertLeq(a,s)?a:s,fe.vertLeq(d,f)&&(f.s=d.s,f.t=d.t),fe.vertEq(f,a)||fe.vertEq(f,s)?(r.checkForRightSplice(t,e),!1):!fe.vertEq(l,t.event)&&fe.edgeSign(l,t.event,f)>=0||!fe.vertEq(u,t.event)&&fe.edgeSign(u,t.event,f)<=0?u===t.event?(t.mesh.splitEdge(o.Sym),t.mesh.splice(i.Sym,o),e=r.topLeftRegion(t,e),o=r.regionBelow(e).eUp,r.finishLeftRegions(t,r.regionBelow(e),n),r.addRightEdges(t,e,o.Oprev,o,o,!0),!0):l===t.event?(t.mesh.splitEdge(i.Sym),t.mesh.splice(o.Lnext,i.Oprev),n=e,e=r.topRightRegion(e),h=r.regionBelow(e).eUp.Rprev,n.eUp=i.Oprev,i=r.finishLeftRegions(t,n,null),r.addRightEdges(t,e,i.Onext,o.Rprev,h,!0),!0):(fe.edgeSign(l,t.event,f)>=0&&(r.regionAbove(e).dirty=e.dirty=!0,t.mesh.splitEdge(o.Sym),o.Org.s=t.event.s,o.Org.t=t.event.t),fe.edgeSign(u,t.event,f)<=0&&(e.dirty=n.dirty=!0,t.mesh.splitEdge(i.Sym),i.Org.s=t.event.s,i.Org.t=t.event.t),!1):(t.mesh.splitEdge(o.Sym),t.mesh.splitEdge(i.Sym),t.mesh.splice(i.Oprev,o),o.Org.s=f.s,o.Org.t=f.t,o.Org.pqHandle=t.pq.insert(o.Org),r.getIntersectData(t,o.Org,a,l,s,u),r.regionAbove(e).dirty=e.dirty=n.dirty=!0,!1)},r.walkDirtyRegions=function(t,e){for(var n=r.regionBelow(e),o,i;;){for(;n.dirty;)e=n,n=r.regionBelow(n);if(!e.dirty&&(n=e,e=r.regionAbove(e),e===null||!e.dirty))return;if(e.dirty=!1,o=e.eUp,i=n.eUp,o.Dst!==i.Dst&&r.checkForLeftSplice(t,e)&&(n.fixUpperEdge?(r.deleteRegion(t,n),t.mesh.delete(i),n=r.regionBelow(e),i=n.eUp):e.fixUpperEdge&&(r.deleteRegion(t,e),t.mesh.delete(o),e=r.regionAbove(n),o=e.eUp)),o.Org!==i.Org)if(o.Dst!==i.Dst&&!e.fixUpperEdge&&!n.fixUpperEdge&&(o.Dst===t.event||i.Dst===t.event)){if(r.checkForIntersect(t,e))return}else r.checkForRightSplice(t,e);o.Org===i.Org&&o.Dst===i.Dst&&(r.addWinding(i,o),r.deleteRegion(t,e),t.mesh.delete(o),e=r.regionAbove(n))}},r.connectRightVertex=function(t,e,n){var o,i=n.Onext,a=r.regionBelow(e),s=e.eUp,l=a.eUp,u=!1;if(s.Dst!==l.Dst&&r.checkForIntersect(t,e),fe.vertEq(s.Org,t.event)&&(t.mesh.splice(i.Oprev,s),e=r.topLeftRegion(t,e),i=r.regionBelow(e).eUp,r.finishLeftRegions(t,r.regionBelow(e),a),u=!0),fe.vertEq(l.Org,t.event)&&(t.mesh.splice(n,l.Oprev),n=r.finishLeftRegions(t,a,null),u=!0),u){r.addRightEdges(t,e,n.Onext,i,i,!0);return}fe.vertLeq(l.Org,s.Org)?o=l.Oprev:o=s,o=t.mesh.connect(n.Lprev,o),r.addRightEdges(t,e,o,o.Onext,o.Onext,!1),o.Sym.activeRegion.fixUpperEdge=!0,r.walkDirtyRegions(t,e)},r.connectLeftDegenerate=function(t,e,n){var o,i,a,s,l;if(o=e.eUp,fe.vertEq(o.Org,n)){he(!1),r.spliceMergeVertices(t,o,n.anEdge);return}if(!fe.vertEq(o.Dst,n)){t.mesh.splitEdge(o.Sym),e.fixUpperEdge&&(t.mesh.delete(o.Onext),e.fixUpperEdge=!1),t.mesh.splice(n.anEdge,o),r.sweepEvent(t,n);return}he(!1),e=r.topRightRegion(e),l=r.regionBelow(e),a=l.eUp.Sym,i=s=a.Onext,l.fixUpperEdge&&(he(i!==a),r.deleteRegion(t,l),t.mesh.delete(a),a=i.Oprev),t.mesh.splice(n.anEdge,a),fe.edgeGoesLeft(i)||(i=null),r.addRightEdges(t,e,a.Onext,s,i,!0)},r.connectLeftVertex=function(t,e){var n,o,i,a,s,l,u=new Wc;if(u.eUp=e.anEdge.Sym,n=t.dict.search(u).key,o=r.regionBelow(n),!!o){if(a=n.eUp,s=o.eUp,fe.edgeSign(a.Dst,e,a.Org)===0){r.connectLeftDegenerate(t,n,e);return}if(i=fe.vertLeq(s.Dst,a.Dst)?n:o,n.inside||i.fixUpperEdge){if(i===n)l=t.mesh.connect(e.anEdge.Sym,a.Lnext);else{var c=t.mesh.connect(s.Dnext,e.anEdge);l=c.Sym}i.fixUpperEdge?r.fixUpperEdge(t,i,l):r.computeWinding(t,r.addRegionBelow(t,n,l)),r.sweepEvent(t,e)}else r.addRightEdges(t,n,e.anEdge,e.anEdge,null,!0)}},r.sweepEvent=function(t,e){t.event=e,r.debugEvent(t);for(var n=e.anEdge;n.activeRegion===null;)if(n=n.Onext,n===e.anEdge){r.connectLeftVertex(t,e);return}var o=r.topLeftRegion(t,n.activeRegion);he(o!==null);var i=r.regionBelow(o),a=i.eUp,s=r.finishLeftRegions(t,i,null);s.Onext===a?r.connectRightVertex(t,o,s):r.addRightEdges(t,o,s.Onext,a,a,!0)},r.addSentinel=function(t,e,n,o){var i=new Wc,a=t.mesh.makeEdge();a.Org.s=n,a.Org.t=o,a.Dst.s=e,a.Dst.t=o,t.event=a.Dst,i.eUp=a,i.windingNumber=0,i.inside=!1,i.fixUpperEdge=!1,i.sentinel=!0,i.dirty=!1,i.nodeUp=t.dict.insert(i)},r.initEdgeDict=function(t){t.dict=new TC(t,r.edgeLeq);var e=t.bmax[0]-t.bmin[0],n=t.bmax[1]-t.bmin[1],o=t.bmin[0]-e,i=t.bmax[0]+e,a=t.bmin[1]-n,s=t.bmax[1]+n;r.addSentinel(t,o,i,a),r.addSentinel(t,o,i,s)},r.doneEdgeDict=function(t){for(var e,n=0;(e=t.dict.min().key)!==null;)e.sentinel||(he(e.fixUpperEdge),he(++n===1)),he(e.windingNumber===0),r.deleteRegion(t,e)},r.removeDegenerateEdges=function(t){var e,n,o,i=t.mesh.eHead;for(e=i.next;e!==i;e=n)n=e.next,o=e.Lnext,fe.vertEq(e.Org,e.Dst)&&e.Lnext.Lnext!==e&&(r.spliceMergeVertices(t,o,e),t.mesh.delete(e),e=o,o=e.Lnext),o.Lnext===e&&(o!==e&&((o===n||o===n.Sym)&&(n=n.next),t.mesh.delete(o)),(e===n||e===n.Sym)&&(n=n.next),t.mesh.delete(e))},r.initPriorityQ=function(t){var e,n,o,i=0;for(o=t.mesh.vHead,n=o.next;n!==o;n=n.next)i++;for(i+=8,e=t.pq=new wC(i,fe.vertLeq),o=t.mesh.vHead,n=o.next;n!==o;n=n.next)n.pqHandle=e.insert(n);return n!==o?!1:(e.init(),!0)},r.donePriorityQ=function(t){t.pq=null},r.removeDegenerateFaces=function(t,e){var n,o,i;for(n=e.fHead.next;n!==e.fHead;n=o)o=n.next,i=n.anEdge,he(i.Lnext!==i),i.Lnext.Lnext===i&&(r.addWinding(i.Onext,i),t.mesh.delete(i));return!0},r.computeInterior=function(t,e){e===void 0&&(e=!0);var n,o;if(r.removeDegenerateEdges(t),!r.initPriorityQ(t))return!1;for(r.initEdgeDict(t);(n=t.pq.extractMin())!==null;){for(;o=t.pq.min(),!(o===null||!fe.vertEq(o,n));)o=t.pq.extractMin(),r.spliceMergeVertices(t,n.anEdge,o.anEdge);r.sweepEvent(t,n)}return t.event=t.dict.min().key.eUp.Org,r.debugEvent(t),r.doneEdgeDict(t),r.donePriorityQ(t),r.removeDegenerateFaces(t,t.mesh)?(e&&t.mesh.check(),!0):!1},r}(),AC=function(){function r(){this.mesh=new nm,this.normal=[0,0,0],this.sUnit=[0,0,0],this.tUnit=[0,0,0],this.bmin=[0,0],this.bmax=[0,0],this.windingRule=Be.ODD,this.dict=null,this.pq=null,this.event=null,this.vertexIndexCounter=0,this.vertices=[],this.vertexIndices=[],this.vertexCount=0,this.elements=[],this.elementCount=0}return r.prototype.dot_=function(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]},r.prototype.normalize_=function(t){var e=t[0]*t[0]+t[1]*t[1]+t[2]*t[2];if(!e)throw"Zero-size vector!";e=Math.sqrt(e),t[0]/=e,t[1]/=e,t[2]/=e},r.prototype.longAxis_=function(t){var e=0;return Math.abs(t[1])>Math.abs(t[0])&&(e=1),Math.abs(t[2])>Math.abs(t[e])&&(e=2),e},r.prototype.computeNormal_=function(t){var e,n,o,i,a,s,l=[0,0,0],u=[0,0,0],c=[0,0,0],p=[0,0,0],f=[0,0,0],d=[null,null,null],h=[null,null,null],m=this.mesh.vHead;e=m.next;for(var g=0;g<3;++g)i=e.coords[g],u[g]=i,h[g]=e,l[g]=i,d[g]=e;for(e=m.next;e!==m;e=e.next)for(var v=0;v<3;++v)i=e.coords[v],i<u[v]&&(u[v]=i,h[v]=e),i>l[v]&&(l[v]=i,d[v]=e);var x=0;if(l[1]-u[1]>l[0]-u[0]&&(x=1),l[2]-u[2]>l[x]-u[x]&&(x=2),u[x]>=l[x]){t[0]=0,t[1]=0,t[2]=1;return}for(s=0,n=h[x],o=d[x],c[0]=n.coords[0]-o.coords[0],c[1]=n.coords[1]-o.coords[1],c[2]=n.coords[2]-o.coords[2],e=m.next;e!==m;e=e.next)p[0]=e.coords[0]-o.coords[0],p[1]=e.coords[1]-o.coords[1],p[2]=e.coords[2]-o.coords[2],f[0]=c[1]*p[2]-c[2]*p[1],f[1]=c[2]*p[0]-c[0]*p[2],f[2]=c[0]*p[1]-c[1]*p[0],a=f[0]*f[0]+f[1]*f[1]+f[2]*f[2],a>s&&(s=a,t[0]=f[0],t[1]=f[1],t[2]=f[2]);s<=0&&(t[0]=t[1]=t[2]=0,t[this.longAxis_(c)]=1)},r.prototype.checkOrientation_=function(){for(var t=this.mesh.fHead,e,n=this.mesh.vHead,o,i=0,a=t.next;a!==t;a=a.next)if(o=a.anEdge,!(o.winding<=0))do i+=(o.Org.s-o.Dst.s)*(o.Org.t+o.Dst.t),o=o.Lnext;while(o!==a.anEdge);if(i<0){for(e=n.next;e!==n;e=e.next)e.t=-e.t;this.tUnit[0]=-this.tUnit[0],this.tUnit[1]=-this.tUnit[1],this.tUnit[2]=-this.tUnit[2]}},r.prototype.projectPolygon_=function(){var t=this.mesh.vHead,e=[0,0,0],n,o,i=!1;e[0]=this.normal[0],e[1]=this.normal[1],e[2]=this.normal[2],!e[0]&&!e[1]&&!e[2]&&(this.computeNormal_(e),i=!0),n=this.sUnit,o=this.tUnit;var a=this.longAxis_(e);n[a]=0,n[(a+1)%3]=1,n[(a+2)%3]=0,o[a]=0,o[(a+1)%3]=0,o[(a+2)%3]=e[a]>0?1:-1;for(var s=t.next;s!==t;s=s.next)s.s=this.dot_(s.coords,n),s.t=this.dot_(s.coords,o);i&&this.checkOrientation_();for(var l=!0,u=t.next;u!==t;u=u.next)l?(this.bmin[0]=this.bmax[0]=u.s,this.bmin[1]=this.bmax[1]=u.t,l=!1):(u.s<this.bmin[0]&&(this.bmin[0]=u.s),u.s>this.bmax[0]&&(this.bmax[0]=u.s),u.t<this.bmin[1]&&(this.bmin[1]=u.t),u.t>this.bmax[1]&&(this.bmax[1]=u.t))},r.prototype.addWinding_=function(t,e){t.winding+=e.winding,t.Sym.winding+=e.Sym.winding},r.prototype.tessellateMonoRegion_=function(t,e){var n,o;if(n=e.anEdge,!(n.Lnext!==n&&n.Lnext.Lnext!==n))throw"Mono region invalid";for(;fe.vertLeq(n.Dst,n.Org);n=n.Lprev);for(;fe.vertLeq(n.Org,n.Dst);n=n.Lnext);o=n.Lprev;for(var i=void 0;n.Lnext!==o;)if(fe.vertLeq(n.Dst,o.Org)){for(;o.Lnext!==n&&(fe.edgeGoesLeft(o.Lnext)||fe.edgeSign(o.Org,o.Dst,o.Lnext.Dst)<=0);)i=t.connect(o.Lnext,o),o=i.Sym;o=o.Lprev}else{for(;o.Lnext!==n&&(fe.edgeGoesRight(n.Lprev)||fe.edgeSign(n.Dst,n.Org,n.Lprev.Org)>=0);)i=t.connect(n,n.Lprev),n=i.Sym;n=n.Lnext}if(o.Lnext===n)throw"Mono region invalid";for(;o.Lnext.Lnext!==n;)i=t.connect(o.Lnext,o),o=i.Sym;return!0},r.prototype.tessellateInterior_=function(t){for(var e,n=t.fHead.next;n!==t.fHead;n=e)if(e=n.next,n.inside&&!this.tessellateMonoRegion_(t,n))return!1;return!0},r.prototype.discardExterior_=function(t){for(var e,n=t.fHead.next;n!==t.fHead;n=e)e=n.next,n.inside||t.zapFace(n)},r.prototype.setWindingNumber_=function(t,e,n){for(var o,i=t.eHead.next;i!==t.eHead;i=o)o=i.next,i.Rface.inside!==i.Lface.inside?i.winding=i.Lface.inside?e:-e:n?t.delete(i):i.winding=0},r.prototype.getNeighbourFace_=function(t){return!t.Rface||!t.Rface.inside?-1:t.Rface.n},r.prototype.outputPolymesh_=function(t,e,n,o){var i,a=0,s=0,l;n>3&&t.mergeConvexFaces(n);for(var u=t.vHead.next;u!==t.vHead;u=u.next)u.n=-1;for(var c=t.fHead.next;c!==t.fHead;c=c.next)if(c.n=-1,!!c.inside){i=c.anEdge,l=0;do{var u=i.Org;u.n===-1&&(u.n=s,s++),l++,i=i.Lnext}while(i!==c.anEdge);if(l>n)throw"Face vertex greater that support polygon";c.n=a,++a}this.elementCount=a,e===Ke.CONNECTED_POLYGONS&&(a*=2),this.elements=[],this.elements.length=a*n,this.vertexCount=s,this.vertices=[],this.vertices.length=s*o,this.vertexIndices=[],this.vertexIndices.length=s;for(var u=t.vHead.next;u!==t.vHead;u=u.next)if(u.n!==-1){var p=u.n*o;this.vertices[p+0]=u.coords[0],this.vertices[p+1]=u.coords[1],o>2&&(this.vertices[p+2]=u.coords[2]),this.vertexIndices[u.n]=u.idx}for(var f=0,c=t.fHead.next;c!==t.fHead;c=c.next)if(!!c.inside){i=c.anEdge,l=0;do{var u=i.Org;this.elements[f++]=u.n,l++,i=i.Lnext}while(i!==c.anEdge);for(var d=l;d<n;++d)this.elements[f++]=-1;if(e===Ke.CONNECTED_POLYGONS){i=c.anEdge;do this.elements[f++]=this.getNeighbourFace_(i),i=i.Lnext;while(i!==c.anEdge);for(var h=l;h<n;++h)this.elements[f++]=-1}}},r.prototype.outputContours_=function(t,e){var n,o,i=0,a=0;this.vertexCount=0,this.elementCount=0;for(var s=t.fHead.next;s!==t.fHead;s=s.next)if(!!s.inside){o=n=s.anEdge;do this.vertexCount++,n=n.Lnext;while(n!==o);this.elementCount++}this.elements=[],this.elements.length=this.elementCount*2,this.vertices=[],this.vertices.length=this.vertexCount*e,this.vertexIndices=[],this.vertexIndices.length=this.vertexCount;var l=0,u=0,c=0;i=0;for(var s=t.fHead.next;s!==t.fHead;s=s.next)if(!!s.inside){a=0,o=n=s.anEdge;do this.vertices[l++]=n.Org.coords[0],this.vertices[l++]=n.Org.coords[1],e>2&&(this.vertices[l++]=n.Org.coords[2]),this.vertexIndices[u++]=this.vertexIdCallback?this.vertexIdCallback(n):n.Org.idx,a++,n=n.Lnext;while(n!==o);this.elements[c++]=i,this.elements[c++]=a,i+=a}},r.prototype.addContour=function(t,e){this.mesh===null&&(this.mesh=new nm),t<2&&(t=2),t>3&&(t=3);for(var n=null,o=0;o<e.length;o+=t)n===null?(n=this.mesh.makeEdge(),this.mesh.splice(n,n.Sym)):(this.mesh.splitEdge(n),n=n.Lnext),n.Org.coords[0]=e[o+0],n.Org.coords[1]=e[o+1],t>2?n.Org.coords[2]=e[o+2]:n.Org.coords[2]=0,n.Org.idx=this.vertexIndexCounter++,this.edgeCreateCallback&&this.edgeCreateCallback(n),n.winding=1,n.Sym.winding=-1},r.prototype.tesselate=function(t,e,n,o,i,a){if(t===void 0&&(t=Be.ODD),e===void 0&&(e=Ke.POLYGONS),a===void 0&&(a=!0),this.vertices=[],this.elements=[],this.vertexIndices=[],this.vertexIndexCounter=0,i&&(this.normal[0]=i[0],this.normal[1]=i[1],this.normal[2]=i[2]),this.windingRule=t,o<2&&(o=2),o>3&&(o=3),!this.mesh)return!1;this.projectPolygon_(),CC.computeInterior(this,a);var s=this.mesh;return e===Ke.BOUNDARY_CONTOURS?this.setWindingNumber_(s,1,!0):this.tessellateInterior_(s),a&&s.check(),e===Ke.BOUNDARY_CONTOURS?this.outputContours_(s,o):this.outputPolymesh_(s,e,n,o),!0},r}();function Zn(r){var t=r.windingRule,e=t===void 0?Be.ODD:t,n=r.elementType,o=n===void 0?Ke.POLYGONS:n,i=r.polySize,a=i===void 0?3:i,s=r.vertexSize,l=s===void 0?2:s,u=r.normal,c=u===void 0?[0,0,1]:u,p=r.contours,f=p===void 0?[]:p,d=r.strict,h=d===void 0?!0:d,m=r.debug,g=m===void 0?!1:m;if(!f&&h)throw new Error("Contours can't be empty");if(!!f){var v=new AC;r.edgeCreateCallback&&(v.edgeCreateCallback=r.edgeCreateCallback),r.vertexIdCallback&&(v.vertexIdCallback=r.vertexIdCallback);for(var x=0;x<f.length;x++)v.addContour(l||2,f[x]);return v.tesselate(e,o,a,l,c,h),{vertices:v.vertices,vertexIndices:v.vertexIndices,vertexCount:v.vertexCount,elements:v.elements,elementCount:v.elementCount,mesh:g?v.mesh:void 0}}}var H4=Be.ODD,W4=Be.NONZERO,q4=Be.POSITIVE,X4=Be.NEGATIVE,Y4=Be.ABS_GEQ_TWO,$4=Ke.POLYGONS,K4=Ke.CONNECTED_POLYGONS,Z4=Ke.BOUNDARY_CONTOURS;var Yo=class extends _C{constructor(e,n=12,o={}){super();this.type="ShapeGeometry";this.windingRule=Be.ODD;this.elementType=Ke.POLYGONS;this.polySize=3;this.vertexSize=2;this.strict=!0;this._shape=e,this._curveSegments=n,this._triangulationOptions=Object.assign({windingRule:Be.ODD,elementType:Ke.POLYGONS,polySize:3,vertexSize:2,strict:!0},o);let i=this._shape.extractShapePointsToFlatArray([],this._curveSegments),a=this._shape.shapeHoles.map(h=>h.extractShapePointsToFlatArray([],this._curveSegments)),s,l=!0,u=!0,c,p;for(let h=0,m=i.length/2;h<m;h++){let g=h*2,v=i[g+0],x=i[g+1];if(c!==void 0&&v!==c&&(l=!1),p!==void 0&&x!==p&&(u=!1),c=v,p=x,!l&&!u)break}!l&&!u&&(s=Zn({contours:[i,...a],windingRule:this._triangulationOptions.windingRule,elementType:this._triangulationOptions.elementType,polySize:this._triangulationOptions.polySize,vertexSize:this._triangulationOptions.vertexSize,strict:this._triangulationOptions.strict}));let f=s?.vertexCount??1,d=s?.elementCount??1;if(this._positionAttribute=new ol(new Float32Array(f*3),3),this._normalAttribute=new ol(new Float32Array(f*3),3),this._uvAttribute=new ol(new Float32Array(f*2),2),this._indexAttribute=new ol(new Uint32Array(d*3),1),s){let h=1/0,m=-1/0,g=1/0,v=-1/0;for(let w=0,b=f;w<b;w++){let _=w*2,T=s.vertices[_+0],y=s.vertices[_+1];T<h&&(h=T),T>m&&(m=T),y<g&&(g=y),y>v&&(v=y)}let x=m-h,S=v-g;for(let w=0,b=f;w<b;w++){let _=w*2,T=s.vertices[_+0],y=s.vertices[_+1],O=(T-h)/x,A=(y-g)/S;this._positionAttribute.setXYZ(w,T,y,0),this._normalAttribute.setXYZ(w,0,0,1),this._uvAttribute.setXY(w,O,A)}for(let w=0,b=d;w<b;w++){let _=w*3,T=s.elements[_+0],y=s.elements[_+1],O=s.elements[_+2];this._indexAttribute.setX(_+0,T),this._indexAttribute.setX(_+1,y),this._indexAttribute.setX(_+2,O)}}this.setAttribute("position",this._positionAttribute),this.setAttribute("normal",this._normalAttribute),this.setAttribute("uv",this._uvAttribute),this.setIndex(this._indexAttribute),this.setDrawRange(0,(s?.elementCount??1)*3)}clone(){let e=new Yo(this._shape,this._curveSegments);return e.userData=Gi(this.userData),e}};import{BufferAttribute as al,BufferGeometry as OC}from"three";var il=class{constructor(t=256,e=!1){this.capacity=t,this.size=0,this.debug=e,this.debug&&console.log(`allocating with cap ${t}`);let n=t*il.eSize;this.buffer=new ArrayBuffer(n);let o=Float32Array.BYTES_PER_ELEMENT,i=0;this.positions=new Float32Array(this.buffer,i*o,3*t),i+=3*t,this.normals=new Float32Array(this.buffer,i*o,3*t),i+=3*t,this.uvs=new Float32Array(this.buffer,i*o,2*t)}realloc(t,e=!1){if(t<this.size)throw Error("cannot shrink buffer");if(t<=this.capacity&&!e)return;this.debug&&console.log(`resizing from ${this.capacity} \u2192 ${t}`);let n=t*il.eSize,o=new ArrayBuffer(n),i=Float32Array.BYTES_PER_ELEMENT,a=0,s=new Float32Array(o,a*i,3*t);a+=3*t;let l=new Float32Array(o,a*i,3*t);a+=3*t;let u=new Float32Array(o,a*i,2*t);s.set(this.positions.slice(0,this.size*3)),l.set(this.normals.slice(0,this.size*3)),u.set(this.uvs.slice(0,this.size*2)),this.buffer=o,this.positions=s,this.normals=l,this.uvs=u,this.capacity=t}get(t=1){let e=this.size+t;if(e>this.capacity){let o=this.capacity;for(;e>o;)o*=2;this.realloc(o)}let n=this.size;return this.size=e,n}reserve(t){let e=this.size+t;e>this.capacity&&this.realloc(e)}shrink(){this.debug&&console.log(`shrinking ${this.capacity} \u2192 ${this.size}`),this.realloc(this.size,!0)}},$i=il;$i.eSize=(3+3+2)*Float32Array.BYTES_PER_ELEMENT;var qc=(r,t)=>([e,n])=>(n<e&&(n+=t),(r>=e?r:r+t)<=n),$o=class extends OC{constructor(e,n,o=0,i=12,a=3,s=Be.ODD){super();this.type="ShapeGeometry";this.vertexCache={};this._shape=e,this._depth=n,this._bevel=o,this._curveSegments=i,this._bevelSegmentsInput=a,o<=0?(this._bevelSize=0,this._bevelSegments=0):(this._bevelSize=Math.min(o,n/2-1e-12),this._bevelSegments=Math.floor(a));let l=this._shape.extractShapePointsToFlatArray([],i),u=this._shape.shapeHoles.map(y=>{let O=y.extractShapePointsToFlatArray([],i),A=[];for(let I=O.length-1;I>=1;I-=2){let C=O[I-1],N=O[I-0];A.push(C,N)}return A}),c=Zn({windingRule:s,elementType:Ke.BOUNDARY_CONTOURS,vertexSize:2,strict:!0,contours:[l]}),p=Zn({windingRule:Be.ODD,elementType:Ke.BOUNDARY_CONTOURS,vertexSize:2,strict:!0,contours:[...u]});if(!c)throw new Error("error generating geometry");let f=c.elementCount;if(p){c.elementCount+=p.elementCount;for(let y=0;y<p.elements.length;y++){let O=p.elements[y],A=y%2===0?c.vertexCount:0;c.elements.push(O+A)}for(let y=0;y<p.vertexIndices.length;y++){let O=p.vertexIndices[y],A=c.vertexCount;c.vertexIndices.push(O+A)}for(let y=0;y<p.vertices.length;y++){let O=p.vertices[y];c.vertices.push(O)}}let d=1/0,h=-1/0,m=1/0,g=-1/0;for(let y=0,O=c.vertexCount;y<O;y++){let A=y*2,I=c.vertices[A+0],C=c.vertices[A+1];I<d&&(d=I),I>h&&(h=I),C<m&&(m=C),C>g&&(g=C)}this._minX=d,this._minY=m,this._width=h-d,this._height=g-m;let v=c.vertexCount*2*(2+this._bevelSegments);this._buffer=new $i(v);let x=[],S=[];for(let y=c.elementCount-1;y>=0;y--){let O=y>=f,A=y*2,I=c.elements[A+0],C=c.elements[A+1],N=I+C,P={start:I,count:C,normals:[],continuous:[],concave:[]},G=I,$=N-1,Y=I+1,ie=this._shape.roundedCurves.length;do{let R=G-I,D=c.vertices[$*2+0],F=c.vertices[$*2+1],B=c.vertices[G*2+0],X=c.vertices[G*2+1],K=c.vertices[Y*2+0],q=c.vertices[Y*2+1],z=B-D,U=X-F,W=Math.sqrt(z*z+U*U);z/=W,U/=W;let re=B-K,ae=X-q,pe=Math.sqrt(re*re+ae*ae);re/=pe,ae/=pe,P.normals[R*2+0]=-ae,P.normals[R*2+1]=re,P.concave[R]=z*ae-U*re>0;let oe=c.vertexIndices[G];if(Array.isArray(oe))P.continuous[R]=!1;else{let[ne,ee]=this._shape.getCurveIndexFromVertexId(oe-1,!0);if(ee>0&&ee<1)P.continuous[R]=!0;else{let Q=ee===1?ne+1:ne-1;Q=(Q+ie)%ie;let be=ee===1?0:1,ge=this._shape.roundedCurves[ne].getTangent(ee),we=this._shape.roundedCurves[Q].getTangent(be);P.continuous[R]=ge.dot(we)>.95}}O&&(P.normals[R*2+0]*=-1,P.normals[R*2+1]*=-1),[$,G,Y]=[G,Y,Y+1],Y>=N&&(Y-=C)}while(Y!==I+1);let j=[];j.push({bevelI:0,angle:0,size:0,boundary:{vertices:c.vertices.slice(I*2,N*2),vertexCount:C,vertexIndices:new Array(C).fill(!0).map((R,D)=>[D,D]),elements:[0,C],elementCount:1,mesh:null},reverseMap:[],insetPoints:c.vertices.slice(I*2,N*2)});for(let R=1;R<=this._bevelSegments;R++){let D=R/this._bevelSegments*Math.PI/2,F=(1-Math.cos(D))*this._bevelSize,B=[],X=[],K=[],q=[],z=0;for(let W=0;W<C;W++){let re=W*2,ae=(W-1+C)%C*2,pe=c.vertices[P.start*2+re+0],oe=c.vertices[P.start*2+re+1],ne=-P.normals[ae+0]*F,ee=-P.normals[ae+1]*F,Q=-P.normals[re+0]*F,be=-P.normals[re+1]*F;if(P.concave[W]||!P.concave[W]&&O){let ge=Math.atan2(ee,ne),we=Math.atan2(be,Q);we>ge&&(we-=Math.PI*2);let rt=we-ge;if(P.continuous[W]||O){let Le=ge+rt/2,Pe=Math.cos(Le)*F,De=Math.sin(Le)*F;B[2*z+0]=pe+Pe*(O?-1:1),B[2*z+1]=oe+De*(O?-1:1),q[z]=W,z++}else{let Le=Math.max(1,Math.floor(i/4*Math.abs(rt)/Math.PI));for(let Pe=0;Pe<=Le;Pe++){let De=ge+rt*(Pe/Le),Ut=Math.cos(De)*F,ln=Math.sin(De)*F;B[2*z+0]=pe+Ut,B[2*z+1]=oe+ln,q[z]=W,z++}}}else B[2*z+0]=pe+ne,B[2*z+1]=oe+ee,q[z]=W,X[W]=z,z++,B[2*z+0]=pe,B[2*z+1]=oe,q[z]=W,z++,B[2*z+0]=pe+Q,B[2*z+1]=oe+be,q[z]=W,K[W]=z,z++}let U=Zn({windingRule:Be.POSITIVE,elementType:Ke.BOUNDARY_CONTOURS,vertexSize:2,strict:!0,contours:[B],edgeCreateCallback:W=>{let ae=W.Org.idx,pe=q[ae],oe=q[(ae+1)%q.length];W.idx=[pe,oe],W.Sym.idx=[oe,pe]},vertexIdCallback:W=>{let re=W.Lprev.idx;return[re?re[1]:0,W.idx[0]]}});if(!U)throw console.log("Error"),new Error(`error generating bevel geometry for ${R}'th loop`);if(!U.vertexCount)break;for(let W=0;W<U.vertexIndices.length;W++){let[re,ae]=U.vertexIndices[W];if(re===ae)continue;let pe=ae;ae<re&&(pe+=C);for(let oe=re;oe<pe;oe++){let ne=oe%C,ee=(oe+1)%C;if(!P.continuous[ne]||!P.continuous[ee]){U.vertexIndices[W]=[re,ne],U.vertexIndices.splice(W+1,0,[ee,ae]),U.vertices.splice((W+1)*2,0,U.vertices[W*2],U.vertices[W*2+1]);break}}}j.push({bevelI:R,angle:D,size:F,boundary:U,reverseMap:q,insetPoints:B})}let H=(R,D,F)=>{let B=0,X=R.boundary.vertexIndices.length;for(;B<X&&F(R.boundary.vertexIndices[D]);)D=(D+1)%X,B++;return B},V=x.length;for(let R=1;R<j.length;R++){let D=j[R-1],F=j[R],B=D.boundary.vertexIndices.length,X=F.boundary.vertexIndices.length;if(!B||!X)break;let K=P.concave.length,q=0,z=qc(q,C);for(;!D.boundary.vertexIndices.filter(z).length||!F.boundary.vertexIndices.filter(z).length;)q++,z=qc(q,C);let U=D.boundary.vertexIndices.findIndex(z),W=F.boundary.vertexIndices.findIndex(z);do U=(U+1)%B;while(z(D.boundary.vertexIndices[U]));do W=(W+1)%X;while(z(F.boundary.vertexIndices[W]));q=(q+1)%C;let re=q,ae=this.buildBevelVert(P,D,(U-1+B)%B),pe=this.buildBevelVert(P,F,(W-1+X)%X),oe=ae,ne=pe,ee,Q,be=!1;do{z=qc(q,C);let ge=H(D,U,z),we=H(F,W,z),rt=be;if(be=!1,ge&&!we){for(let Le=0;Le<ge;Le++)ee=this.buildBevelVert(P,D,(U+Le)%B,Le/(ge-1)),x.push(oe.topN,ee.topP,ne.topN),x.push(ee.bottomP,oe.bottomN,ne.bottomN),oe=ee;be=!0}else if(!ge&&we)for(let Le=0;Le<we;Le++)Q=this.buildBevelVert(P,F,(W+Le)%X,Le/(we-1)),x.push(ne.topN,oe.topP,Q.topP),x.push(oe.bottomP,ne.bottomN,Q.bottomP),ne=Q;else if(ge&&we)if(ee=this.buildBevelVert(P,D,U,0),Q=this.buildBevelVert(P,F,W,0),rt?(x.push(oe.topN,Q.topP,ne.topN),x.push(oe.topN,ee.topP,Q.topP),x.push(Q.bottomP,oe.bottomN,ne.bottomN),x.push(Q.bottomP,ee.bottomP,oe.bottomN)):(x.push(ne.topN,oe.topN,ee.topP),x.push(ne.topN,ee.topP,Q.topP),x.push(ee.bottomP,oe.bottomN,ne.bottomN),x.push(ee.bottomP,ne.bottomN,Q.bottomP)),oe=ee,ne=Q,ge===we)for(let Le=1;Le<ge;Le++)ee=this.buildBevelVert(P,D,(U+Le)%B,Le/(ge-1)),Q=this.buildBevelVert(P,F,(W+Le)%X,Le/(we-1)),x.push(oe.topN,ee.topP,ne.topN),x.push(ne.topN,ee.topP,Q.topP),x.push(ee.bottomP,oe.bottomN,ne.bottomN),x.push(ee.bottomP,ne.bottomN,Q.bottomP),oe=ee,ne=Q;else if(ge>we){let Le=ge/we,Pe=0;for(let De=1;De<ge;De++)ee=this.buildBevelVert(P,D,(U+De)%B,De/(ge-1)),x.push(oe.topN,ee.topP,ne.topN),x.push(ee.bottomP,oe.bottomN,ne.bottomN),oe=ee,De>(Pe+1)*Le&&(Pe++,Q=this.buildBevelVert(P,F,(W+Pe)%X,Pe/(we-1)),x.push(ne.topN,ee.topP,Q.topP),x.push(ee.bottomP,ne.bottomN,Q.bottomP),ne=Q)}else{let Le=we/ge,Pe=0;for(let De=1;De<we;De++)Q=this.buildBevelVert(P,F,(W+De)%X,De/(we-1)),x.push(ne.topN,ee.topP,Q.topP),x.push(ee.bottomP,ne.bottomN,Q.bottomP),ne=Q,De>(Pe+1)*Le&&(Pe++,ee=this.buildBevelVert(P,D,(U+Pe)%B,Pe/(ge-1)),x.push(oe.topN,ee.topP,ne.topN),x.push(ee.bottomP,oe.bottomN,ne.bottomN),oe=ee)}U=(U+ge)%B,W=(W+we)%X,q=(q+1)%K}while(q!==re)}{let R=j[0];for(let D=0,F=R.boundary.vertexCount;D<F;D++){let B=this.buildBevelVert(P,R,D),X=this.buildBevelVert(P,R,(D+1)%F);x.push(X.topP,B.topN,B.bottomN),x.push(X.topP,B.bottomN,X.bottomP)}}if(O){let R=[];for(let D=x.length-1;D>=V+2;D-=3){let F=x[D-2],B=x[D-1],X=x[D-0];R.push(X,B,F)}x.splice(V,x.length-V,...R)}if(O){let R=[];for(let D=j[j.length-1].boundary.vertices.length-1;D>=1;D-=2){let F=j[j.length-1].boundary.vertices[D-1],B=j[j.length-1].boundary.vertices[D-0];R.push(F,B)}S.push(R)}if(!O){let R=j[j.length-1],D=Zn({windingRule:j.length>1?Be.POSITIVE:Be.ODD,elementType:Ke.POLYGONS,vertexSize:2,strict:!0,contours:[R.insetPoints,...S]});if(!D)throw new Error("Error generating geometry for surface");u.length===0&&Object.assign(this,{capStartIndex:x.length});for(let F=0;F<D.elementCount*3;F+=3){let B=this.buildSurfaceVert(D,D.elements[F+0]),X=this.buildSurfaceVert(D,D.elements[F+1]),K=this.buildSurfaceVert(D,D.elements[F+2]);x.push(B.top,X.top,K.top),x.push(K.bottom,X.bottom,B.bottom)}}this.vertexCache={}}this._buffer.shrink();let w=new al(Uint32Array.from(x),1),b=new al(this._buffer.positions,3),_=new al(this._buffer.normals,3),T=new al(this._buffer.uvs,2);b.needsUpdate=!0,_.needsUpdate=!0,T.needsUpdate=!0,w.needsUpdate=!0,this.setAttribute("position",b),this.setAttribute("normal",_),this.setAttribute("uv",T),this.setIndex(w)}buildSurfaceVert(e,n){let o=n.toString();if(o in this.vertexCache)return this.vertexCache[o];let i=e.vertices[n*2+0],a=e.vertices[n*2+1],s=(i-this._minX)/this._width,l=(a-this._minY)/this._height,u=this._buffer.get(2),c=u*3,p=u*2,f={top:u+0,bottom:u+1};return this._buffer.positions[c+0]=i,this._buffer.positions[c+1]=a,this._buffer.positions[c+2]=this._depth,this._buffer.normals[c+0]=0,this._buffer.normals[c+1]=0,this._buffer.normals[c+2]=1,this._buffer.uvs[p+0]=s,this._buffer.uvs[p+1]=l,this._buffer.positions[c+3]=i,this._buffer.positions[c+4]=a,this._buffer.positions[c+5]=0,this._buffer.normals[c+3]=0,this._buffer.normals[c+4]=0,this._buffer.normals[c+5]=-1,this._buffer.uvs[p+2]=s,this._buffer.uvs[p+3]=l,this.vertexCache[o]=f,f}buildBevelVert(e,n,o,i=1){let a=`${n.bevelI}:${o}`;if(a in this.vertexCache)return this.vertexCache[a];let[s,l]=n.boundary.vertexIndices[o],u,c,p,f;s!==l?(c=s,u=l,f=!1,p=e.continuous[c]&&e.continuous[u]):(u=s,c=(u-1+e.count)%e.count,f=e.concave[u]&&n.bevelI>0,p=e.continuous[u]||f);let d=Math.cos(n.angle),h=Math.sin(n.angle),m=o*2,g=u*2,v=c*2,x=n.boundary.vertices[m+0],S=n.boundary.vertices[m+1],w=(1-h)*this._bevelSize,b=(x-this._minX)/this._width,_=(S-this._minY)/this._height,T=e.normals[g+0],y=e.normals[g+1],O=e.normals[v+0],A=e.normals[v+1];if(f){let G=O-T,$=A-y;T=T+G*(1-i),y=y+$*(1-i);let Y=Math.sqrt(T*T+y*y);T/=Y,y/=Y}let I=this._buffer.get(p?2:4),C=I*3,N=I*2,P={i:o,fi:u,topP:I+0,topN:I+0,bottomP:I+1,bottomN:I+1};return this._buffer.positions[C+0]=x,this._buffer.positions[C+1]=S,this._buffer.positions[C+2]=this._depth-w,this._buffer.normals[C+0]=T*d,this._buffer.normals[C+1]=y*d,this._buffer.normals[C+2]=h,this._buffer.uvs[N+0]=b,this._buffer.uvs[N+1]=_,this._buffer.positions[C+3]=x,this._buffer.positions[C+4]=S,this._buffer.positions[C+5]=w,this._buffer.normals[C+3]=T*d,this._buffer.normals[C+4]=y*d,this._buffer.normals[C+5]=-h,this._buffer.uvs[N+2]=_,this._buffer.uvs[N+3]=b,p||(I+=2,C+=6,N+=4,P.topP=I+0,P.bottomP=I+1,this._buffer.positions[C+0]=x,this._buffer.positions[C+1]=S,this._buffer.positions[C+2]=this._depth-w,this._buffer.normals[C+0]=O*d,this._buffer.normals[C+1]=A*d,this._buffer.normals[C+2]=h,this._buffer.uvs[N+0]=b,this._buffer.uvs[N+1]=_,this._buffer.positions[C+3]=x,this._buffer.positions[C+4]=S,this._buffer.positions[C+5]=w,this._buffer.normals[C+3]=O*d,this._buffer.normals[C+4]=A*d,this._buffer.normals[C+5]=-h,this._buffer.uvs[N+2]=_,this._buffer.uvs[N+3]=b),this.vertexCache[a]=P,P}clone(){let e=new $o(this._shape,this._depth,this._bevel,this._curveSegments,this._bevelSegmentsInput);return e.userData=Gi(this.userData),e}};var pt=class{static create(r){return this.build(this.normalizeInputs(r))}static normalizeInputs(r,t){let e=Object.assign({},t?.parameters??{width:100,subdivisions:40,roundness:0,extrudeBevelSize:0,extrudeBevelSegments:3,windingRule:Be.ODD},r.parameters),n=Math.abs(e.width),o=Math.abs(e.height??e.width),i=Math.abs(e.depth??0),a=r.shape??t?.shape,s=a?.roundness??e.roundness;a!==void 0&&(a instanceof Ae?(a.width!==n||a.height!==o)&&a.applySize(n,o):a=new Ae(n,o).fromJSON(a),r.parameters?.roundness!==void 0&&r.parameters?.roundness>0&&a.update(!1));let l=a??new Ae(n,o);return{parameters:Object.assign(e,{width:n,height:o,depth:i,roundness:s}),shape:l}}static build(r){let{depth:t,extrudeBevelSize:e,extrudeBevelSegments:n,subdivisions:o,roundness:i,windingRule:a}=r.parameters;r.shape.roundness=i;let s;return t<=0?s=new Yo(r.shape,o,{windingRule:a}):s=new $o(r.shape,t,e,o,n,a),Object.assign(s,{userData:{...r,type:"VectorGeometry"}})}};import{Mesh as I_,Matrix4 as L_}from"three";import{ConeBufferGeometry as NC}from"three";import{BufferGeometry as IC,CylinderBufferGeometry as LC,Float32BufferAttribute as Xc,Vector2 as tr,Vector3 as sl}from"three";var lm=class{static create(r){return this.build(this.normalizeInputs(r))}static normalizeInputs(r,t){let e=Object.assign({},t?.parameters??{width:100,radialSegments:64,heightSegments:1,openEnded:!1,thetaStart:0,thetaLength:360,cornerRadius:0,cornerSegments:8,hollow:0},r.parameters),n=e.width/2,o=e.radiusTop??n,i=e.radiusBottom??n;return o===i?(o=n,i=n):o>i?(o=n,i=i*n/o):(o=o*n/i,i=n),{parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??e.width),radiusTop:o,radiusBottom:i})}}static build(r){let{width:t,depth:e,height:n,radialSegments:o,heightSegments:i,openEnded:a,thetaStart:s,thetaLength:l,radiusTop:u,radiusBottom:c,cornerRadius:p,cornerSegments:f,hollow:d}=r.parameters,h;return p||d?h=new Ki(u,c,n,o,i,a,s,l*Math.PI/180,p,p,f,d):h=new LC(u,c,n,o,i,a,s,l*Math.PI/180),h.scale(1,1,e/t),Object.assign(h,{userData:{...r,type:"CylinderGeometry"}})}};function An(r,t,e){e.x=r.x*t.x,e.y=r.y,e.z=r.x*t.y}function sm(r){return new tr(r.y,-r.x)}var Ki=class extends IC{constructor(t,e,n,o,i,a,s,l,u,c,p,f,d=!1){super(),this.type="RoundedCylinderBufferGeometry",t=t!==void 0?t:1,e=e!==void 0?e:1,n=n||1,o=Math.floor(o)||8,i=Math.floor(i)||1,a=a!==void 0?a:!1,s=s!==void 0?s:0,l=l!==void 0?l:Math.PI*2,a&&(u=0,c=0);let h=[],m=[],g=[],v=[],x=0,S=n/2,w=new sl,b=new sl;d&&t==0&&(t=u),d&&e==0&&(e=c);let _=new tr(t,S),T=new tr(e,-S),y=null,O=null,A=null,I=null,C=_.clone().sub(T),N=0,P=0,G=0;f>0&&(N=Math.min(t,e)*(1-f),P=t-N,G=e-N);let $=_.clone();$.x-=N;let Y=Math.PI-C.angle(),ie=C.angle(),j=Math.tan(ie/2),H=Math.tan(Y/2),V=j+H,R=f?V:H,D=f?V:j;if(u=Math.min(u,(t-P)/R,C.length()/V),c=Math.min(c,(e-G)/D,C.length()/V),u>0){let z=u/j;y=_.clone().sub(new tr(z,u)),f&&(A=y.clone(),A.x-=N-V*u),_.sub(C.clone().setLength(z))}if(c>0){let z=c/H;O=T.clone().sub(new tr(z,-c)),T.add(C.clone().setLength(z)),f&&(I=O.clone(),I.x-=N-V*c,$.sub(C.clone().setLength(z)))}C=_.clone().sub(T);let F=C.length()<.5,B=[];for(let z=0;z<=o;z++){let U=[],W=z/o,re=W*l+s,ae=new tr(Math.sin(re),Math.cos(re));I&&O?(X(U,W,ae,Y,c,I,-1,!0),X(U,W,ae,ie,c,O,-1,!1)):O?(K(U,ae,O.x,0,-1),X(U,W,ae,ie,c,O,-1,!1)):a||K(U,ae,e,G,-1);let pe=sm(C).normalize();if(An(pe,ae,w),!F)for(let oe=0;oe<=i;oe++){let ne=oe/i,ee=C.clone().multiplyScalar(ne).add(T);An(ee,ae,b),m.push(b.x,b.y,b.z),g.push(w.x,w.y,w.z),v.push(W,.5+b.y/n),U.push(x++)}if(A&&y?(X(U,W,ae,Y,u,y,1,!1),X(U,W,ae,ie,u,A,1,!0)):y?(X(U,W,ae,Y,u,y,1,!1),K(U,ae,y.x,0,1)):a||K(U,ae,t,P,1),f&&!F){let oe=sm(C).multiplyScalar(-1).normalize();An(oe,ae,w);for(let ne=0;ne<=i;ne++){let ee=ne/i,Q=C.clone().multiplyScalar(-ee).add($);An(Q,ae,b),m.push(b.x,b.y,b.z),g.push(w.x,w.y,w.z),v.push(W,.5+b.y/n),U.push(x++)}}f&&!a&&U.push(U[0]),B.push(U)}for(let z=0;z<B.length-1;z++)for(let U=0;U<B[0].length-1;U++){if(a&&f&&U==i)continue;let W=B[z][U],re=B[z+1][U],ae=B[z+1][U+1],pe=B[z][U+1],oe=m[ae*3+0],ne=m[ae*3+2];h.push(W,re,pe),(oe!=0||ne!=0)&&h.push(re,ae,pe)}l<Math.PI*2&&(q(-1,B[0],s),q(1,B[B.length-1],s+l)),this.setIndex(h),this.setAttribute("position",new Xc(m,3)),this.setAttribute("normal",new Xc(g,3)),this.setAttribute("uv",new Xc(v,2));function X(z,U,W,re,ae,pe,oe,ne){for(let ee=0;ee<p+1;ee++){let Q=ee/p,be=oe<0?Q:1-Q;ne&&(be-=1),be*=re;let ge=new tr(Math.sin(be),Math.cos(be)*oe),we=ge.clone().multiplyScalar(ae).add(pe);An(we,W,b),m.push(b.x,b.y,b.z),An(ge,W,w),g.push(w.x,w.y,w.z),v.push(U,.5+b.y/n),z.push(x++)}}function K(z,U,W,re,ae){let pe=new sl,oe=new tr,ne=[W,re];ae<0&&ne.reverse();for(let ee of ne)oe.set(ee,S*ae),An(oe,U,pe),m.push(pe.x,pe.y,pe.z),g.push(0,ae,0),v.push(.5,.5),z.push(x++)}function q(z,U,W){let re=new tr(Math.sin(W),Math.cos(W)),ae=new tr(-Math.cos(W),Math.sin(W)),pe=new sl,oe=z<0?(Q,be,ge)=>h.push(Q,be,ge):(Q,be,ge)=>h.push(Q,ge,be),ne=new tr((t+e+P+G)/4,0);An(ne,re,pe),m.push(pe.x,pe.y,pe.z),g.push(ae.x,0,ae.y),v.push(.5,.5);let ee=x++;for(let Q of U){let be=m.slice(Q*3,Q*3+3);m.push(...be),g.push(ae.x,0,ae.y);let ge=v.slice(Q*2,Q*2+2);v.push(...ge),x++}for(let Q=ee+1;Q<x-1;Q++)oe(ee,Q,Q+1);oe(ee,x-1,ee+1)}}};var cm=class{static create(r){return this.build(this.normalizeInputs(r))}static normalizeInputs(r,t){let e=Object.assign({},t?.parameters??{width:100,radialSegments:32,heightSegments:8,openEnded:!1,thetaStart:0,thetaLength:360,cornerRadiusTop:0,cornerRadiusBottom:0,cornerSegments:8},r.parameters);return{parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??e.width)})}}static build(r){let{width:t,depth:e,height:n,radialSegments:o,heightSegments:i,openEnded:a,thetaStart:s,thetaLength:l,cornerRadiusTop:u,cornerRadiusBottom:c,cornerSegments:p}=r.parameters,f;return u>0||c>0||l<360?f=new Ki(0,t/2,n,o,i,a,s,l*Math.PI/180,u,c,p,0,!0):f=new NC(t/2,n,o,i,a),f.scale(1,1,e/t),Object.assign(f,{userData:{...r,type:"ConeGeometry"}})}};import{BoxBufferGeometry as PC,BufferGeometry as MC,Float32BufferAttribute as Yc,Vector3 as Zi}from"three";var um=class{static create(r){return this.build(this.normalizeInputs(r))}static normalizeInputs(r,t){let e=Object.assign({},t?.parameters??{width:100,widthSegments:1,heightSegments:1,depthSegments:1,cornerRadius:0,cornerSegments:8},r.parameters);return{parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??e.width)})}}static build(r){let{width:t,height:e,depth:n,widthSegments:o,heightSegments:i,depthSegments:a,cornerRadius:s,cornerSegments:l}=r.parameters,u;return s==0?u=new PC(t,e,n,o,i,a):u=new Kc(t,e,n,o,i,a,s,l),Object.assign(u,{userData:{...r,type:"CubeGeometry"}})}},$c=Math.PI/2,Kc=class extends MC{constructor(t=1,e=1,n=1,o=1,i=1,a=1,s=0,l=4){super(),this.type="BoxBufferGeometry";let u=this;o=Math.floor(o),i=Math.floor(i),a=Math.floor(a),l=Math.floor(l),s=Math.min(s,t/2,e/2,n/2);let c=[],p=[],f=[],d=[],h=0,m=0;g("z","y","x",-1,-1,n,e,t,a,i,0),g("z","y","x",1,-1,n,e,-t,a,i,1),g("x","z","y",1,1,t,n,e,o,a,2),g("x","z","y",1,-1,t,n,-e,o,a,3),g("x","y","z",1,-1,t,e,n,o,i,4),g("x","y","z",-1,-1,t,e,-n,o,i,5),s>0&&(v("z","y","x",-1,-1,1,n,e,t,a,0),v("z","y","x",1,-1,-1,n,e,t,a,1),v("z","y","x",-1,1,-1,n,e,t,a,1),v("z","y","x",1,1,1,n,e,t,a,0),v("x","y","z",-1,-1,-1,t,e,n,o,0),v("x","y","z",1,-1,1,t,e,n,o,1),v("x","y","z",-1,1,1,t,e,n,o,0),v("x","y","z",1,1,-1,t,e,n,o,1),v("y","x","z",-1,-1,1,e,t,n,i,0),v("y","x","z",1,-1,-1,e,t,n,i,1),v("y","x","z",1,1,1,e,t,n,i,1),v("y","x","z",-1,1,-1,e,t,n,i,0),x(1,1,1),x(-1,1,1),x(1,-1,1),x(-1,-1,1),x(1,1,-1),x(-1,1,-1),x(1,-1,-1),x(-1,-1,-1)),this.setIndex(c),this.setAttribute("position",new Yc(p,3)),this.setAttribute("normal",new Yc(f,3)),this.setAttribute("uv",new Yc(d,2));function g(S,w,b,_,T,y,O,A,I,C,N){let P=(y-2*s)/I,G=(O-2*s)/C,$=y/2-s,Y=O/2-s,ie=A/2,j=I+1,H=C+1,V=0,R=0,D=new Zi;for(let F=0;F<H;F++){let B=F*G-Y;for(let X=0;X<j;X++){let K=X*P-$;D[S]=K*_,D[w]=B*T,D[b]=ie,p.push(D.x,D.y,D.z),D[S]=0,D[w]=0,D[b]=A>0?1:-1,f.push(D.x,D.y,D.z),d.push(X/I),d.push(1-F/C),V+=1}}for(let F=0;F<C;F++)for(let B=0;B<I;B++){let X=h+B+j*F,K=h+B+j*(F+1),q=h+(B+1)+j*(F+1),z=h+(B+1)+j*F;c.push(X,K,z),c.push(K,q,z),R+=6}u.addGroup(m,R,N),m+=R,h+=V}function v(S,w,b,_,T,y,O,A,I,C,N){let P=(O-2*s)/C,G=O/2-s,$=A/2-s,Y=I/2,ie=C+1,j=0,H=0,V=new Zi,R=new Zi;for(let D=0;D<l+1;D++){let F=D/l*$c,B=Math.sin(F)*s,X=(1-Math.cos(F))*s,K=Math.sin(F),q=Math.cos(F);V[w]=($+B)*T,V[b]=(Y-X)*y,R[S]=0,R[w]=K*Math.sign(V[w]),R[b]=q*Math.sign(V[b]);for(let z=0;z<ie;z++){let U=z*P-G;V[S]=U*_,p.push(V.x,V.y,V.z),f.push(R.x,R.y,R.z),d.push(z/C),d.push(0),j+=1}}for(let D=0;D<l;D++)for(let F=0;F<C;F++){let B=h+F+ie*D,X=h+F+ie*(D+1),K=h+(F+1)+ie*(D+1),q=h+(F+1)+ie*D;c.push(B,X,q),c.push(X,K,q),H+=6}u.addGroup(m,H,N),m+=H,h+=j}function x(S,w,b){let _=new Zi,T=new Zi(t/2,e/2,n/2);T.subScalar(s);let y=[],O=S*w*b>0?(I,C,N)=>c.push(I,C,N):(I,C,N)=>c.push(I,N,C);for(let I=0;I<=l;I++){let C=[],N=$c*(1-I/l),P=Math.cos(N),G=Math.sin(N),$=0;for(let Y=0;Y<=I;Y++){let ie=Math.cos($),j=Math.sin($);_.x=P*ie,_.y=G,_.z=P*j;let H=T.clone().addScaledVector(_,s);p.push(S*H.x,w*H.y,b*H.z),f.push(S*_.x,w*_.y,b*_.z),d.push(0,0),C.push(h++),$+=$c/I}y.push(C)}let A=y.length-1;for(let I=0;I<A;I++){let C=y[I],N=y[I+1],P=C.length-1;O(C[0],N[1],N[0]);for(let G=1;G<=P;G++)O(C[G-1],C[G],N[G]),O(C[G],N[G+1],N[G])}}}};import{BufferGeometry as EC,Float32BufferAttribute as Zc,Triangle as DC,Vector3 as tn,Vector2 as Qc}from"three";var _n=class extends EC{constructor(t=[],e=[],n="",o=1,i=.2,a=4){super(),this.type="PolyhedronGeometryRound";let s=[],l=[],u=[];c(),p(),this.setAttribute("position",new Zc(s,3)),this.setAttribute("normal",new Zc(u,3)),this.setAttribute("uv",new Zc(l,2));return;function c(){i=Math.min(1-1e-5,i),i==0&&(a=0);let d={IcosahedronGeometry:5,DodecahedronGeometry:3,HexahedronGeometry:3,OctahedronGeometry:4,TetrahedronGeometry:3}[n],h=new tn,m=h.clone(),g=new DC,v=i*o,x=o-v,S=a+1,w=new tn,b=(j,H)=>w.subVectors(j,H).normalize(),_=(j,H)=>Array(j).fill(void 0).map(H),T=_(t.length/3,(j,H)=>new tn().fromArray(t,H*3).setLength(o)),y=[],O=1e6;for(let j=0;j<T.length;j++){let H=T[j],V=[],R,D,F,B=1e10,X=-1;for(;(X=e.indexOf(j,X+1))!=-1;){let U=X-X%3;R=e[U+(X+1)%3],D=e[U+(X+2)%3],F=H.distanceToSquared(T[R]),B=Math.min(B,F),V.push([R,D,F])}B+=1e-6;let K=[],q=0,z=V.length;for(let U=0;U<z;U++){[R,D,F]=V[q];let W=y[R]?.includes(j)==!0;F<=B&&K.push(R+ +W*O),q=V.findIndex(re=>re[0]==D)}y.push(K)}let A=[];{let j=0,H=0,V,R,D=d==3;for(let F=0;F<=a;F++){V=F*(F+1)/2,R=(F+1)*(F+2)/2;for(let B=0;B<a-F;B++)[j,H]=[V+B+F+2,R+B+F+3],A.push(V,R,...D?[H,V]:[j,R],H,j),[V,R]=[j,H];A.push(V,R,V+a+2)}}let I=h.clone(),C=h.clone(),N=h.clone(),P=h.clone(),G=h.clone(),$=[],Y=_(T.length,()=>_(d,()=>h.clone()));for(let j=0;j<T.length;j++){h.copy(T[j]).normalize(),I.copy(h).multiplyScalar(x);let H=y[j];for(let K=0;K<H.length;K++){let q=H[K],z=H[(K+1)%d];g.setFromPointsAndIndices(T,j,q%O,z%O),g.b.sub(g.a).setLength(1e10).add(g.a),g.c.sub(g.a).setLength(1e10).add(g.a),g.closestPointToPoint(I,Y[j][K])}let V=[],R=[],D=[],F=new tn;a==0&&[...Y[j]].reduce((K,q)=>K.add(q),F).multiplyScalar(1/d);for(let K=0;K<d;K++){let q=[],z=(K-1+d)%d,U=Y[j][z],W=Y[j][K];h.copy(U).sub(I),m.copy(W).sub(I);let re=I.angleTo(h),ae=h.angleTo(m),pe=Math.cos(re)*v;a==0?C.copy(F):C.copy(I).setLength(x+pe),R.push(pe);let oe=[C,U,W];for(let ne=0;ne<2;ne++){let ee=oe[ne],Q=oe[ne+1];P.subVectors(ee,I),G.subVectors(Q,I),N.crossVectors(P,G).normalize();for(let be=0;be<S;be++){let ge=[re,ae][ne]*be/S;h.copy(P).applyAxisAngle(N,ge).add(I),V.push(h.clone()),ne&&(b(h,I),q.push([be==0?ee:h.clone(),w.clone()]))}ne&&(b(Q,I),q.push([Q,w.clone()]))}D.push(q)}$.push(D);let B=2*S,X=2;for(let K=0;K<d;K++){let q=B*K,z=B*((K+1)%d),U=[V[q]];for(let re=1;re<S;re++){P=V[q+re],G=V[z+re],U.push(P);for(let ae=1,pe=re-X+1;ae<=pe;ae++)h.lerpVectors(P,G,ae/(pe+1)),h.sub(I).setLength(R[K]).add(I),U.push(h.clone());U.push(G)}for(let re=0;re<S;re++)U.push(V[re+S+q]);U.push(V[z+S]);let W=A.map(re=>U[re]);s.push(...W.map(re=>[re.x,re.y,re.z]).flat()),u.push(...W.map(re=>(b(re,I),[w.x,w.y,w.z])).flat())}}let ie=[];for(let j=0;j<y.length;j++)for(let H=0;H<d;H++){let V=y[j][H];if(V<O){let R=y[V].findIndex(B=>B%O==j),D=$[j][H],F=$[V][R];for(let B=0;B<S;B++){let X=D[B],K=F[S-B],q=D[B+1],z=F[S-(B+1)];[X,K,q,q,K,z].forEach(U=>{s.push(U[0].x,U[0].y,U[0].z),u.push(U[1].x,U[1].y,U[1].z)})}ie.push(D[0][0],F[S][0],D[S][0],F[0][0])}}for(;ie.length;){let j,H,V,R;[j,H]=ie.splice(0,2);let D=[j];for(;j!=H;)D.push(H),V=ie.indexOf(H),R=V%2,H=ie.splice(V-R,2)[1-R];w.subVectors(D[0],D[1]).cross(h.subVectors(D[0],D[2])).normalize();let F=w.dot(D[0])<0;F&&w.negate();for(let B=1;B<=D.length-2;B++)[D[B+ +F],D[B+1-+F],D[0]].forEach(X=>{s.push(X.x,X.y,X.z),u.push(w.x,w.y,w.z)})}}function p(){let f=new tn;for(let T=0;T<s.length;T+=3){f.x=s[T+0],f.y=s[T+1],f.z=s[T+2];let y=b(f)/2/Math.PI+.5,O=_(f)/Math.PI+.5;l.push(y,1-O)}let d=new tn,h=new tn,m=new tn,g=new tn,v=new Qc,x=new Qc,S=new Qc,w=(T,y,O,A)=>{A<0&&T.x===1&&(l[y]=T.x-1),O.x===0&&O.z===0&&(l[y]=A/2/Math.PI+.5)};for(let T=0,y=0;T<s.length;T+=9,y+=6){d.set(s[T+0],s[T+1],s[T+2]),h.set(s[T+3],s[T+4],s[T+5]),m.set(s[T+6],s[T+7],s[T+8]),v.set(l[y+0],l[y+1]),x.set(l[y+2],l[y+3]),S.set(l[y+4],l[y+5]),g.copy(d).add(h).add(m).divideScalar(3);let O=b(g);w(v,y+0,d,O),w(x,y+2,h,O),w(S,y+4,m,O)}for(let T=0;T<l.length;T+=6){let y=l[T+0],O=l[T+2],A=l[T+4],I=Math.max(y,O,A),C=Math.min(y,O,A);I>.9&&C<.1&&(y<.2&&(l[T+0]+=1),O<.2&&(l[T+2]+=1),A<.2&&(l[T+4]+=1))}function b(T){return Math.atan2(T.z,-T.x)}function _(T){return Math.atan2(-T.y,Math.sqrt(T.x*T.x+T.z*T.z))}}}static fromJSON(t){return new _n(t.vertices,t.indices,t.radius,t.corner,t.cornerSides)}};import{DodecahedronBufferGeometry as BC}from"three";var pm=class{static create(r){return this.build(this.normalizeInputs(r))}static normalizeInputs(r,t){let e=Object.assign({},t?.parameters??{width:100,detail:0,corner:0,cornerSides:4},r.parameters);return{parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??e.width)})}}static build(r){let{width:t,height:e,depth:n,detail:o,corner:i,cornerSides:a}=r.parameters,s=o===0&&i!==0?new Qi(t*.5,i,a):new BC(t*.5,o);return s.scale(1,e/t,n/t),Object.assign(s,{userData:{...r,type:"DodecahedronGeometry"}})}},Qi=class extends _n{constructor(t=1,e=.2,n=4){let o=(1+Math.sqrt(5))/2,i=1/o,a=[-1,-1,-1,-1,-1,1,-1,1,-1,-1,1,1,1,-1,-1,1,-1,1,1,1,-1,1,1,1,0,-i,-o,0,-i,o,0,i,-o,0,i,o,-i,-o,0,-i,o,0,i,-o,0,i,o,0,-o,0,-i,o,0,-i,-o,0,i,o,0,i],s=[3,11,7,3,7,15,3,15,13,7,19,17,7,17,6,7,6,15,17,4,8,17,8,10,17,10,6,8,0,16,8,16,2,8,2,10,0,12,1,0,1,18,0,18,16,6,10,2,6,2,13,6,13,15,2,16,18,2,18,3,2,3,13,18,1,9,18,9,11,18,11,3,4,14,12,4,12,0,4,0,8,11,9,5,11,5,19,11,19,7,19,5,14,19,14,4,19,4,17,1,12,14,1,14,5,1,5,9],l="DodecahedronGeometry";super(a,s,l,t,e,n),this.type=l}static fromJSON(t){return new Qi(t.radius,t.corner,t.cornerSides)}};var eu=Math.PI*2;function Jc({x:r,y:t},e,n,o,i){return{x:r*e+o,y:t*n+i}}function FC(r,t){let e=t===1.5707963267948966?.551915024494:t===-1.5707963267948966?-.551915024494:1.3333333333333333*Math.tan(t/4),n=Math.cos(r),o=Math.sin(r),i=Math.cos(r+t),a=Math.sin(r+t);return[{x:n-o*e,y:o+n*e},{x:i+a*e,y:a-i*e},{x:i,y:a}]}function fm(r,t,e,n){let o=r*n-t*e<0?-1:1,i=Math.min(1,Math.max(-1,r*e+t*n));return o*Math.acos(i)}function RC(r,t,e,n,o,i,a,s,l,u){let c=Math.pow(o,2),p=Math.pow(i,2),f=Math.pow(a,2),d=Math.pow(s,2),h=c*p-c*d-p*f;h<0&&(h=0),h/=c*d+p*f,h=Math.sqrt(h)*(l===u?-1:1);let m=h*o/i*s,g=h*-i/o*a,v=m+(r+e)/2,x=g+(t+n)/2,S=(a-m)/o,w=(s-g)/i,b=(-a-m)/o,_=(-s-g)/i,T=fm(1,0,S,w),y=fm(S,w,b,_);return!u&&y>0&&(y-=eu),u&&y<0&&(y+=eu),{centerx:v,centery:x,ang1:T,ang2:y}}function dm({px:r,py:t,cx:e,cy:n,rx:o,ry:i,largeArcFlag:a,sweepFlag:s}){let l=[];if(o===0||i===0)return[];let u=(r-e)/2,c=(t-n)/2;if(u===0&&c===0)return[];o=Math.abs(o),i=Math.abs(i);let p=Math.pow(u,2)/Math.pow(o,2)+Math.pow(c,2)/Math.pow(i,2);p>1&&(o*=Math.sqrt(p),i*=Math.sqrt(p));let f=RC(r,t,e,n,o,i,u,c,a,s),{ang1:d,ang2:h}=f,{centerx:m,centery:g}=f,v=Math.abs(h)/(eu/4);Math.abs(1-v)<1e-7&&(v=1);let x=Math.max(Math.ceil(v),1);h/=x;for(let S=0;S<x;S++)l.push(FC(d,h)),d+=h;return l.map(S=>{let{x:w,y:b}=Jc(S[0],o,i,m,g),{x:_,y:T}=Jc(S[1],o,i,m,g),{x:y,y:O}=Jc(S[2],o,i,m,g);return{x1:w,y1:b,x2:_,y2:T,x:y,y:O}})}import{MathUtils as mm,Vector2 as gm}from"three";var ym=Math.PI*2,vm=class{static create(r){return this.build(this.normalizeInputs(r))}static normalizeInputs(r,t){let e=Object.assign({},t?.parameters??{width:100,depth:0,spikes:64,angle:360,innerRadius:0,extrudeBevelSize:0,extrudeBevelSegments:1},r.parameters);return{shape:r.shape&&r.shape instanceof Ae?r.shape:new Ae,parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??0)})}}static build(r){let{width:t,height:e,spikes:n,angle:o,innerRadius:i,depth:a,extrudeBevelSize:s,extrudeBevelSegments:l}=r.parameters,u=r.shape,c=t*.5,p=e*.5,f=kC(u,c,p,o*Math.PI/180,n,i);u.isClosed=!0,u.update();let d=pt.create({shape:u,parameters:{subdivisions:f,depth:a,extrudeBevelSize:s,extrudeBevelSegments:l}});return Object.assign(d,{userData:{...r,type:"EllipseGeometry"}})}};function kC(r,t,e,n,o,i){if(n>=ym)return o>30||o%4===0?(UC(r,t,e,i),Math.round(o/4)):hm(r,n,o,t,e,i);let a={x:0,y:e},s=n+Math.PI*.5,l={x:Math.cos(s)*t,y:Math.sin(s)*e},u=dm({px:a.x,py:a.y,cx:l.x,cy:l.y,rx:t,ry:e,largeArcFlag:n>Math.PI,sweepFlag:!0});return o>30||o%u.length===0?GC(r,a.x,a.y,u,o,t,e,i):hm(r,n,o,t,e,i)}function GC(r,t,e,n,o,i,a,s){let l=Math.round(o/n.length);r.addPoint(Ko(t,e));for(let u=0,c=n.length;u<c;u++){let p=n[u],f=r.points[u],d=Ko(p.x,p.y);f.controls[1].position.set(p.x1,p.y1),d.controls[0].position.set(p.x2,p.y2),r.addPoint(d)}return s>0?xm(r,i,a,s):r.addPoint(Ko(0,0)),l}function hm(r,t,e,n,o,i){let a=-t/e;for(let s=0;s<=e;s++){let l=a*s,u=Math.sin(l)*n,c=Math.cos(l)*o;r.addPoint(Ko(u,c))}return t<ym?i>0?xm(r,n,o,i):r.addPoint(Ko(0,0)):(r.removePoint(r.points[r.points.length-1]),i>0&&bm(r,n,o,i)),1}function UC(r,t,e,n=0,o=0,i=0){let a=.5522847498,s=t*a,l=e*a;r.addPoint(ll(o-t,i,o-t,i-l,o-t,i+l)),r.addPoint(ll(o,i+e,o-s,i+e,o+s,i+e)),r.addPoint(ll(o+t,i,o+t,i+l,o+t,i-l)),r.addPoint(ll(o,i-e,o+s,i-e,o-s,i-e)),n>0&&bm(r,t,e,n)}function Ko(r,t){return new er(mm.generateUUID(),new gm(r,t))}function ll(r,t,e,n,o,i){let a=Ko(r,t);return a.controls[0].position.set(e,n),a.controls[1].position.set(o,i),a}function xm(r,t,e,n){Sm(r,t,e,n).forEach(i=>r.addPoint(i))}function bm(r,t,e,n){let o=Sm(r,t,e,n),i=new Ae;o.forEach(a=>i.addPoint(a)),i.isClosed=!0,r.shapeHoles.push(i)}function Sm(r,t,e,n){let o=n*t/100,i=o*(Math.abs(e)/Math.abs(t)),a=new gm(o/t,i/e),s=r.points.map(l=>{let u=l.clone();return u.uuid=mm.generateUUID(),u}).reverse();return s.forEach(l=>{l.position.multiply(a);let u=l.controls[0].position.clone().multiply(a),c=l.controls[1].position.clone().multiply(a);l.controls[0].position.copy(c),l.controls[1].position.copy(u)}),s}import{BufferGeometry as VC,Float32BufferAttribute as tu,Vector3 as wm}from"three";var Tm=class{static create(r){return this.build(this.normalizeInputs(r))}static normalizeInputs(r,t){let e=Object.assign({},t?.parameters??{width:100,revolutions:2,segments:40,pathRadius:10,pathType:0,pathSegments:30,cornerRadius:30,cornerSegments:4},r.parameters),n=Math.abs(e.width),o=Math.abs(e.height??n),i=Math.abs(e.depth??n),a=Math.abs(Math.min(n,i))/2;return{parameters:Object.assign(e,{width:n,height:o,depth:i,radius:a,segments:Math.round(e.segments),pathSegments:Math.round(e.pathSegments),cornerSegments:Math.round(e.cornerSegments)})}}static build(r){let{width:t,height:e,depth:n,radius:o,revolutions:i,segments:a,pathRadius:s,pathType:l,pathSegments:u,cornerRadius:c,cornerSegments:p}=r.parameters,f=new Ji(!1,t,e,n,o,i,a,s,l,u,c,p);return Object.assign(f,{userData:{...r,type:"HelixGeometry"}})}},Ji=class extends VC{constructor(t=!0,e=1,n=1,o=1,i=1,a=1,s=1,l=1,u=1,c=1,p=1,f=1){super();let d=t&&a===1;d&&(f=0),p>100&&(p=100);let h=()=>new wm,m=new wm,g=h(),v=h(),x=h(),S,w,b,_,T,y,O,A,I=h(),C=h(),N=h(),P=h(),G=h(),$=h(),Y=h(),ie=h(),j=n-2*l+.001,H=j/a,V=Math.ceil(s*a),R=V+1,D=j/V,F=-j/2,B=c+1,X=2*Math.PI/c,K=Math.PI/2/f,q=.01,z=Math.min((1-p/100)*l,l-q),U=l-z,W=0,re=2,ae=f*re+re,pe=B*ae/re,oe=pe+B*R,ne=B*(R+ae),[ee,Q,be]=[3,3,2].map(We=>Array(ne*We).fill(0)),ge=[],we=i-l;function rt(We,Mt){let gr=Math.PI/2;y=Mt*D,A=2*Math.PI*(y%H)/H+gr,y+=F,O=Math.sin(A)*we,T=Math.cos(A)*we,t?We.set(T,O,y):We.set(T,y,O)}rt(m,-1e-10),rt(g,0),I.copy(m),rt(m,1);let Le=m.distanceTo(g),Pe=U+z,De=Le*V+2*Pe,Ut=z,ln=De-Pe;for(let We=0;We<=V;We++){rt(v,We),ie.subVectors(v,I).normalize(),I.copy(v),$.copy(v).setComponent(+t+1,0).normalize(),Y.crossVectors(ie,$).normalize();let Mt=We===0,gr=We===V,pv=Mt?3*Math.PI/2:K,fv=Mt?Ut:ln,dv=Mt?B:oe,hv=Mt?0:ne-B,mv=ie.clone().multiplyScalar(Mt?-U:U).add(v),gv=ie.clone().multiplyScalar(Mt?-1:1).normalize();for(let qr=0;qr<B;qr++){let Ep=qr*X;if(C.addVectors(m.copy($).multiplyScalar(l*Math.cos(Ep)),g.copy(Y).multiplyScalar(l*Math.sin(Ep))),N.copy(C).normalize(),Mt||gr){d||(W=hv+qr,[0,1,2].forEach(wt=>{ee[W*3+wt]=mv.getComponent(wt),Q[W*3+wt]=gv.getComponent(wt)}),be[W*2]=+gr,be[W*2+1]=qr/c),g.copy(N).multiplyScalar(z),x.addVectors(v,g);for(let wt=0;wt<f;wt++){let ec=wt*K+pv;P.addVectors(m.copy(ie).multiplyScalar(U*Math.sin(ec)),g.copy(N).multiplyScalar(U*Math.cos(ec))),G.copy(P).normalize(),g.addVectors(x,P),P.normalize(),W=dv+wt*B+qr,[0,1,2].forEach(Ya=>{ee[W*3+Ya]=g.getComponent(Ya),Q[W*3+Ya]=G.getComponent(Ya)});let yv=+Mt+Math.sin(ec);be[W*2]=(fv+U*yv)/De,be[W*2+1]=qr/c}}g.addVectors(v,C),W=pe+We*B+qr,[0,1,2].forEach(wt=>{ee[W*3+wt]=g.getComponent(wt),Q[W*3+wt]=N.getComponent(wt)}),be[W*2]=(Pe+We*Le)/De,be[W*2+1]=qr/c}}let Pt=R+2*f+re,po=1,[qa,Xa]=d?[po,po+R-1]:[0,Pt-1];for(let We=qa;We<=Xa-1;We++){let Mt=d&&We===Xa-1;for(let gr=0;gr<B-1;gr++)S=We*B+gr,w=S+1,b=(Mt?gr:S)+B,_=(Mt?gr+1:w)+B,We===0?ge.push(w,_,b):We===Pt-2?ge.push(S,w,b):ge.push(S,w,b,w,_,b)}this.setIndex(ge),this.setAttribute("position",new tu(ee,3)),this.setAttribute("normal",new tu(Q,3)),this.setAttribute("uv",new tu(be,2))}};import{IcosahedronBufferGeometry as zC}from"three";var Cm=class{static create(r){return this.build(this.normalizeInputs(r))}static normalizeInputs(r,t){let e=Object.assign({},t?.parameters??{width:100,detail:0,corner:0,cornerSides:4},r.parameters);return{parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??e.width)})}}static build(r){let{width:t,height:e,depth:n,detail:o,corner:i,cornerSides:a}=r.parameters,s=o===0&&i!==0?new ea(t*.5,i,a):new zC(t*.5,o);return s.scale(1,e/t,n/t),Object.assign(s,{userData:{...r,type:"IcosahedronGeometry"}})}},ea=class extends _n{constructor(t=1,e=.2,n=4){let o=(1+Math.sqrt(5))/2,i=[-1,o,0,1,o,0,-1,-o,0,1,-o,0,0,-1,o,0,1,o,0,-1,-o,0,1,-o,o,0,-1,o,0,1,-o,0,-1,-o,0,1],a=[0,11,5,0,5,1,0,1,7,0,7,10,0,10,11,1,5,9,5,11,4,11,10,2,10,7,6,7,1,8,3,9,4,3,4,2,3,2,6,3,6,8,3,8,9,4,9,5,2,4,11,6,2,10,8,6,7,9,8,1],s="IcosahedronGeometry";super(i,a,s,t,e,n),this.type=s}static fromJSON(t){return new ea(t.radius,t.corner,t.cornerSides)}};import{LatheBufferGeometry as jC,Shape as HC}from"three";var Am=class{static create(r){return this.build(this.normalizeInputs(r))}static normalizeInputs(r,t){(r.parameters?.points??[]).forEach(n=>{Array.isArray(n)&&(n.x=n[0],n.y=n[1])});let e=Object.assign({},t?.parameters??{width:100,segments:64,verticalSegments:64,points:[{x:0,y:-50,id:0},{x:50,y:-50,id:1},{x:50,y:50,id:2},{x:0,y:50,id:3}]},r.parameters);return{parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??e.width)})}}static build(r){let{points:t,segments:e,verticalSegments:n}=r.parameters,o=new HC;o.moveTo(t[0].x,t[0].y),o.bezierCurveTo(t[1].x,t[1].y,t[2].x,t[2].y,t[3].x,t[3].y);let i=new jC(o.extractPoints(n).shape,e);return i.rotateZ(Math.PI),Object.assign(i,{userData:{...r,type:"LatheGeometry"}})}};import{BufferGeometry as Pm,BufferGeometryLoader as eA,Vector3 as tA,BoxBufferGeometry as Mm}from"three";import{BufferGeometry as KC,Vector2 as ou,Vector3 as Nm}from"three";import{Box3 as WC,BufferAttribute as ta,BufferGeometry as _m,Color as Im,EventDispatcher as qC,Float32BufferAttribute as Zo,Matrix3 as Om,Matrix4 as Lm,MathUtils as XC,Object3D as YC,Sphere as $C,Vector2 as Wt,Vector3 as gt}from"three";var Ar=new Lm,ru=new YC,cl=new gt,On=class extends qC{constructor(){super(),this.uuid=XC.generateUUID(),this.name="",this.type="Geometry",this.vertices=[],this.colors=[],this.faces=[],this.faceVertexUvs=[[]],this.morphTargets=[],this.morphNormals=[],this.skinWeights=[],this.skinIndices=[],this.lineDistances=[],this.boundingBox=null,this.boundingSphere=null,this.elementsNeedUpdate=!1,this.verticesNeedUpdate=!1,this.uvsNeedUpdate=!1,this.normalsNeedUpdate=!1,this.colorsNeedUpdate=!1,this.lineDistancesNeedUpdate=!1,this.groupsNeedUpdate=!1}applyMatrix4(t){let e=new Om().getNormalMatrix(t);for(let n=0,o=this.vertices.length;n<o;n++)this.vertices[n].applyMatrix4(t);for(let n=0,o=this.faces.length;n<o;n++){let i=this.faces[n];i.normal.applyMatrix3(e).normalize();for(let a=0,s=i.vertexNormals.length;a<s;a++)i.vertexNormals[a].applyMatrix3(e).normalize()}return this.boundingBox!==null&&this.computeBoundingBox(),this.boundingSphere!==null&&this.computeBoundingSphere(),this.verticesNeedUpdate=!0,this.normalsNeedUpdate=!0,this}rotateX(t){return Ar.makeRotationX(t),this.applyMatrix4(Ar),this}rotateY(t){return Ar.makeRotationY(t),this.applyMatrix4(Ar),this}rotateZ(t){return Ar.makeRotationZ(t),this.applyMatrix4(Ar),this}translate(t,e,n){return Ar.makeTranslation(t,e,n),this.applyMatrix4(Ar),this}scale(t,e,n){return Ar.makeScale(t,e,n),this.applyMatrix4(Ar),this}lookAt(t){return ru.lookAt(t),ru.updateMatrix(),this.applyMatrix4(ru.matrix),this}fromBufferGeometry(t){let e=this,n=t.index!==null?t.index:void 0,o=t.attributes;if(o.position===void 0)return console.error("THREE.Geometry.fromBufferGeometry(): Position attribute required for conversion."),this;let i=o.position,a=o.normal,s=o.color,l=o.uv,u=o.uv2;u!==void 0&&(this.faceVertexUvs[1]=[]);for(let f=0;f<i.count;f++)e.vertices.push(new gt().fromBufferAttribute(i,f)),s!==void 0&&e.colors.push(new Im().fromBufferAttribute(s,f));function c(f,d,h,m){let g=s===void 0?[]:[e.colors[f].clone(),e.colors[d].clone(),e.colors[h].clone()],v=a===void 0?[]:[new gt().fromBufferAttribute(a,f),new gt().fromBufferAttribute(a,d),new gt().fromBufferAttribute(a,h)],x=new Qo(f,d,h,v,g,m);e.faces.push(x),l!==void 0&&e.faceVertexUvs[0].push([new Wt().fromBufferAttribute(l,f),new Wt().fromBufferAttribute(l,d),new Wt().fromBufferAttribute(l,h)]),u!==void 0&&e.faceVertexUvs[1].push([new Wt().fromBufferAttribute(u,f),new Wt().fromBufferAttribute(u,d),new Wt().fromBufferAttribute(u,h)])}let p=t.groups;if(p.length>0)for(let f=0;f<p.length;f++){let d=p[f],h=d.start,m=d.count;for(let g=h,v=h+m;g<v;g+=3)n!==void 0?c(n.getX(g),n.getX(g+1),n.getX(g+2),d.materialIndex):c(g,g+1,g+2,d.materialIndex)}else if(n!==void 0)for(let f=0;f<n.count;f+=3)c(n.getX(f),n.getX(f+1),n.getX(f+2));else for(let f=0;f<i.count;f+=3)c(f,f+1,f+2);return this.computeFaceNormals(),t.boundingBox!==null&&(this.boundingBox=t.boundingBox.clone()),t.boundingSphere!==null&&(this.boundingSphere=t.boundingSphere.clone()),this}center(){return this.computeBoundingBox(),this.boundingBox.getCenter(cl).negate(),this.translate(cl.x,cl.y,cl.z),this}normalize(){this.computeBoundingSphere();let t=this.boundingSphere.center,e=this.boundingSphere.radius,n=e===0?1:1/e,o=new Lm;return o.set(n,0,0,-n*t.x,0,n,0,-n*t.y,0,0,n,-n*t.z,0,0,0,1),this.applyMatrix4(o),this}computeFaceNormals(){let t=new gt,e=new gt;for(let n=0,o=this.faces.length;n<o;n++){let i=this.faces[n],a=this.vertices[i.a],s=this.vertices[i.b],l=this.vertices[i.c];t.subVectors(l,s),e.subVectors(a,s),t.cross(e),t.normalize(),i.normal.copy(t)}}computeVertexNormals(t=!0){let e=new Array(this.vertices.length);for(let n=0,o=this.vertices.length;n<o;n++)e[n]=new gt;if(t){let n=new gt,o=new gt;for(let i=0,a=this.faces.length;i<a;i++){let s=this.faces[i],l=this.vertices[s.a],u=this.vertices[s.b],c=this.vertices[s.c];n.subVectors(c,u),o.subVectors(l,u),n.cross(o),e[s.a].add(n),e[s.b].add(n),e[s.c].add(n)}}else{this.computeFaceNormals();for(let n=0,o=this.faces.length;n<o;n++){let i=this.faces[n];e[i.a].add(i.normal),e[i.b].add(i.normal),e[i.c].add(i.normal)}}for(let n=0,o=this.vertices.length;n<o;n++)e[n].normalize();for(let n=0,o=this.faces.length;n<o;n++){let i=this.faces[n],a=i.vertexNormals;a.length===3?(a[0].copy(e[i.a]),a[1].copy(e[i.b]),a[2].copy(e[i.c])):(a[0]=e[i.a].clone(),a[1]=e[i.b].clone(),a[2]=e[i.c].clone())}this.faces.length>0&&(this.normalsNeedUpdate=!0)}computeFlatVertexNormals(){this.computeFaceNormals();for(let t=0,e=this.faces.length;t<e;t++){let n=this.faces[t],o=n.vertexNormals;o.length===3?(o[0].copy(n.normal),o[1].copy(n.normal),o[2].copy(n.normal)):(o[0]=n.normal.clone(),o[1]=n.normal.clone(),o[2]=n.normal.clone())}this.faces.length>0&&(this.normalsNeedUpdate=!0)}computeMorphNormals(){for(let e=0,n=this.faces.length;e<n;e++){let o=this.faces[e];o.__originalFaceNormal?o.__originalFaceNormal.copy(o.normal):o.__originalFaceNormal=o.normal.clone(),o.__originalVertexNormals||(o.__originalVertexNormals=[]);for(let i=0,a=o.vertexNormals.length;i<a;i++)o.__originalVertexNormals[i]?o.__originalVertexNormals[i].copy(o.vertexNormals[i]):o.__originalVertexNormals[i]=o.vertexNormals[i].clone()}let t=new On;t.faces=this.faces;for(let e=0,n=this.morphTargets.length;e<n;e++){if(!this.morphNormals[e]){this.morphNormals[e]={},this.morphNormals[e].faceNormals=[],this.morphNormals[e].vertexNormals=[];let i=this.morphNormals[e].faceNormals,a=this.morphNormals[e].vertexNormals;for(let s=0,l=this.faces.length;s<l;s++){let u=new gt,c={a:new gt,b:new gt,c:new gt};i.push(u),a.push(c)}}let o=this.morphNormals[e];t.vertices=this.morphTargets[e].vertices,t.computeFaceNormals(),t.computeVertexNormals();for(let i=0,a=this.faces.length;i<a;i++){let s=this.faces[i],l=o.faceNormals[i],u=o.vertexNormals[i];l.copy(s.normal),u.a.copy(s.vertexNormals[0]),u.b.copy(s.vertexNormals[1]),u.c.copy(s.vertexNormals[2])}}for(let e=0,n=this.faces.length;e<n;e++){let o=this.faces[e];o.normal=o.__originalFaceNormal,o.vertexNormals=o.__originalVertexNormals}}computeBoundingBox(){this.boundingBox===null&&(this.boundingBox=new WC),this.boundingBox.setFromPoints(this.vertices)}computeBoundingSphere(){this.boundingSphere===null&&(this.boundingSphere=new $C),this.boundingSphere.setFromPoints(this.vertices)}merge(t,e,n=0){if(!(t&&t.isGeometry)){console.error("THREE.Geometry.merge(): geometry not an instance of THREE.Geometry.",t);return}let o,i=this.vertices.length,a=this.vertices,s=t.vertices,l=this.faces,u=t.faces,c=this.colors,p=t.colors;e!==void 0&&(o=new Om().getNormalMatrix(e));for(let f=0,d=s.length;f<d;f++){let m=s[f].clone();e!==void 0&&m.applyMatrix4(e),a.push(m)}for(let f=0,d=p.length;f<d;f++)c.push(p[f].clone());for(let f=0,d=u.length;f<d;f++){let h=u[f],m,g,v=h.vertexNormals,x=h.vertexColors,S=new Qo(h.a+i,h.b+i,h.c+i);S.normal.copy(h.normal),o!==void 0&&S.normal.applyMatrix3(o).normalize();for(let w=0,b=v.length;w<b;w++)m=v[w].clone(),o!==void 0&&m.applyMatrix3(o).normalize(),S.vertexNormals.push(m);S.color.copy(h.color);for(let w=0,b=x.length;w<b;w++)g=x[w],S.vertexColors.push(g.clone());S.materialIndex=h.materialIndex+n,l.push(S)}for(let f=0,d=t.faceVertexUvs.length;f<d;f++){let h=t.faceVertexUvs[f];this.faceVertexUvs[f]===void 0&&(this.faceVertexUvs[f]=[]);for(let m=0,g=h.length;m<g;m++){let v=h[m],x=[];for(let S=0,w=v.length;S<w;S++)x.push(v[S].clone());this.faceVertexUvs[f].push(x)}}}mergeMesh(t){if(!(t&&t.isMesh)){console.error("THREE.Geometry.mergeMesh(): mesh not an instance of THREE.Mesh.",t);return}t.matrixAutoUpdate&&t.updateMatrix(),this.merge(t.geometry,t.matrix)}mergeVertices(t=4){let e={},n=[],o=[],i=Math.pow(10,t);for(let l=0,u=this.vertices.length;l<u;l++){let c=this.vertices[l],p=Math.round(c.x*i)+"_"+Math.round(c.y*i)+"_"+Math.round(c.z*i);e[p]===void 0?(e[p]=l,n.push(this.vertices[l]),o[l]=n.length-1):o[l]=o[e[p]]}let a=[];for(let l=0,u=this.faces.length;l<u;l++){let c=this.faces[l];c.a=o[c.a],c.b=o[c.b],c.c=o[c.c];let p=[c.a,c.b,c.c];for(let f=0;f<3;f++)if(p[f]===p[(f+1)%3]){a.push(l);break}}for(let l=a.length-1;l>=0;l--){let u=a[l];this.faces.splice(u,1);for(let c=0,p=this.faceVertexUvs.length;c<p;c++)this.faceVertexUvs[c].splice(u,1)}let s=this.vertices.length-n.length;return this.vertices=n,s}setFromPoints(t){this.vertices=[];for(let e=0,n=t.length;e<n;e++){let o=t[e];this.vertices.push(new gt(o.x,o.y,o.z||0))}return this}sortFacesByMaterialIndex(){let t=this.faces,e=t.length;for(let l=0;l<e;l++)t[l]._id=l;function n(l,u){return l.materialIndex-u.materialIndex}t.sort(n);let o=this.faceVertexUvs[0],i=this.faceVertexUvs[1],a,s;o&&o.length===e&&(a=[]),i&&i.length===e&&(s=[]);for(let l=0;l<e;l++){let u=t[l]._id;a&&a.push(o[u]),s&&s.push(i[u])}a&&(this.faceVertexUvs[0]=a),s&&(this.faceVertexUvs[1]=s)}toJSON(){let t={metadata:{version:4.5,type:"Geometry",generator:"Geometry.toJSON"}};if(t.uuid=this.uuid,t.type=this.type,this.name!==""&&(t.name=this.name),this.parameters!==void 0){let h=this.parameters;for(let m in h)h[m]!==void 0&&(t[m]=h[m]);return t}let e=[];for(let h=0;h<this.vertices.length;h++){let m=this.vertices[h];e.push(m.x,m.y,m.z)}let n=[],o=[],i={},a=[],s={},l=[],u={};for(let h=0;h<this.faces.length;h++){let m=this.faces[h],g=!0,v=!1,x=this.faceVertexUvs[0][h]!==void 0,S=m.normal.length()>0,w=m.vertexNormals.length>0,b=m.color.r!==1||m.color.g!==1||m.color.b!==1,_=m.vertexColors.length>0,T=0;if(T=c(T,0,0),T=c(T,1,g),T=c(T,2,v),T=c(T,3,x),T=c(T,4,S),T=c(T,5,w),T=c(T,6,b),T=c(T,7,_),n.push(T),n.push(m.a,m.b,m.c),n.push(m.materialIndex),x){let y=this.faceVertexUvs[0][h];n.push(d(y[0]),d(y[1]),d(y[2]))}if(S&&n.push(p(m.normal)),w){let y=m.vertexNormals;n.push(p(y[0]),p(y[1]),p(y[2]))}if(b&&n.push(f(m.color)),_){let y=m.vertexColors;n.push(f(y[0]),f(y[1]),f(y[2]))}}function c(h,m,g){return g?h|1<<m:h&~(1<<m)}function p(h){let m=h.x.toString()+h.y.toString()+h.z.toString();return i[m]!==void 0||(i[m]=o.length/3,o.push(h.x,h.y,h.z)),i[m]}function f(h){let m=h.r.toString()+h.g.toString()+h.b.toString();return s[m]!==void 0||(s[m]=a.length,a.push(h.getHex())),s[m]}function d(h){let m=h.x.toString()+h.y.toString();return u[m]!==void 0||(u[m]=l.length/2,l.push(h.x,h.y)),u[m]}return t.data={},t.data.vertices=e,t.data.normals=o,a.length>0&&(t.data.colors=a),l.length>0&&(t.data.uvs=[l]),t.data.faces=n,t}clone(){return new On().copy(this)}copy(t){this.vertices=[],this.colors=[],this.faces=[],this.faceVertexUvs=[[]],this.morphTargets=[],this.morphNormals=[],this.skinWeights=[],this.skinIndices=[],this.lineDistances=[],this.boundingBox=null,this.boundingSphere=null,this.name=t.name;let e=t.vertices;for(let f=0,d=e.length;f<d;f++)this.vertices.push(e[f].clone());let n=t.colors;for(let f=0,d=n.length;f<d;f++)this.colors.push(n[f].clone());let o=t.faces;for(let f=0,d=o.length;f<d;f++)this.faces.push(o[f].clone());for(let f=0,d=t.faceVertexUvs.length;f<d;f++){let h=t.faceVertexUvs[f];this.faceVertexUvs[f]===void 0&&(this.faceVertexUvs[f]=[]);for(let m=0,g=h.length;m<g;m++){let v=h[m],x=[];for(let S=0,w=v.length;S<w;S++){let b=v[S];x.push(b.clone())}this.faceVertexUvs[f].push(x)}}let i=t.morphTargets;for(let f=0,d=i.length;f<d;f++){let h={};if(h.name=i[f].name,i[f].vertices!==void 0){h.vertices=[];for(let m=0,g=i[f].vertices.length;m<g;m++)h.vertices.push(i[f].vertices[m].clone())}if(i[f].normals!==void 0){h.normals=[];for(let m=0,g=i[f].normals.length;m<g;m++)h.normals.push(i[f].normals[m].clone())}this.morphTargets.push(h)}let a=t.morphNormals;for(let f=0,d=a.length;f<d;f++){let h={};if(a[f].vertexNormals!==void 0){h.vertexNormals=[];for(let m=0,g=a[f].vertexNormals.length;m<g;m++){let v=a[f].vertexNormals[m],x={};x.a=v.a.clone(),x.b=v.b.clone(),x.c=v.c.clone(),h.vertexNormals.push(x)}}if(a[f].faceNormals!==void 0){h.faceNormals=[];for(let m=0,g=a[f].faceNormals.length;m<g;m++)h.faceNormals.push(a[f].faceNormals[m].clone())}this.morphNormals.push(h)}let s=t.skinWeights;for(let f=0,d=s.length;f<d;f++)this.skinWeights.push(s[f].clone());let l=t.skinIndices;for(let f=0,d=l.length;f<d;f++)this.skinIndices.push(l[f].clone());let u=t.lineDistances;for(let f=0,d=u.length;f<d;f++)this.lineDistances.push(u[f]);let c=t.boundingBox;c!==null&&(this.boundingBox=c.clone());let p=t.boundingSphere;return p!==null&&(this.boundingSphere=p.clone()),this.elementsNeedUpdate=t.elementsNeedUpdate,this.verticesNeedUpdate=t.verticesNeedUpdate,this.uvsNeedUpdate=t.uvsNeedUpdate,this.normalsNeedUpdate=t.normalsNeedUpdate,this.colorsNeedUpdate=t.colorsNeedUpdate,this.lineDistancesNeedUpdate=t.lineDistancesNeedUpdate,this.groupsNeedUpdate=t.groupsNeedUpdate,this}toBufferGeometry(){let t=new nu().fromGeometry(this),e=new _m,n=new Float32Array(t.vertices.length*3);if(e.setAttribute("position",new ta(n,3).copyVector3sArray(t.vertices)),t.normals.length>0){let o=new Float32Array(t.normals.length*3);e.setAttribute("normal",new ta(o,3).copyVector3sArray(t.normals))}if(t.colors.length>0){let o=new Float32Array(t.colors.length*3);e.setAttribute("color",new ta(o,3).copyColorsArray(t.colors))}if(t.uvs.length>0){let o=new Float32Array(t.uvs.length*2);e.setAttribute("uv",new ta(o,2).copyVector2sArray(t.uvs))}if(t.uvs2.length>0){let o=new Float32Array(t.uvs2.length*2);e.setAttribute("uv2",new ta(o,2).copyVector2sArray(t.uvs2))}e.groups=t.groups;for(let o in t.morphTargets){let i=[],a=t.morphTargets[o];for(let s=0,l=a.length;s<l;s++){let u=a[s],c=new Zo(u.data.length*3,3);c.name=u.name,i.push(c.copyVector3sArray(u.data))}e.morphAttributes[o]=i}if(t.skinIndices.length>0){let o=new Zo(t.skinIndices.length*4,4);e.setAttribute("skinIndex",o.copyVector4sArray(t.skinIndices))}if(t.skinWeights.length>0){let o=new Zo(t.skinWeights.length*4,4);e.setAttribute("skinWeight",o.copyVector4sArray(t.skinWeights))}return t.boundingSphere!==null&&(e.boundingSphere=t.boundingSphere.clone()),t.boundingBox!==null&&(e.boundingBox=t.boundingBox.clone()),e}computeTangents(){console.error("THREE.Geometry: .computeTangents() has been removed.")}computeLineDistances(){console.error("THREE.Geometry: .computeLineDistances() has been removed. Use THREE.Line.computeLineDistances() instead.")}applyMatrix(t){return console.warn("THREE.Geometry: .applyMatrix() has been renamed to .applyMatrix4()."),this.applyMatrix4(t)}dispose(){this.dispatchEvent({type:"dispose"})}static createBufferGeometryFromObject(t){let e=new _m,n=t.geometry;if(t.isPoints||t.isLine){let o=new Zo(n.vertices.length*3,3),i=new Zo(n.colors.length*3,3);if(e.setAttribute("position",o.copyVector3sArray(n.vertices)),e.setAttribute("color",i.copyColorsArray(n.colors)),n.lineDistances&&n.lineDistances.length===n.vertices.length){let a=new Zo(n.lineDistances.length,1);e.setAttribute("lineDistance",a.copyArray(n.lineDistances))}n.boundingSphere!==null&&(e.boundingSphere=n.boundingSphere.clone()),n.boundingBox!==null&&(e.boundingBox=n.boundingBox.clone())}else t.isMesh&&(e=n.toBufferGeometry());return e}};On.prototype.isGeometry=!0;var nu=class{constructor(){this.vertices=[],this.normals=[],this.colors=[],this.uvs=[],this.uvs2=[],this.groups=[],this.morphTargets={},this.skinWeights=[],this.skinIndices=[],this.boundingBox=null,this.boundingSphere=null,this.verticesNeedUpdate=!1,this.normalsNeedUpdate=!1,this.colorsNeedUpdate=!1,this.uvsNeedUpdate=!1,this.groupsNeedUpdate=!1}computeGroups(t){let e=[],n,o,i,a=t.faces;for(o=0;o<a.length;o++){let s=a[o];s.materialIndex!==i&&(i=s.materialIndex,n!==void 0&&(n.count=o*3-n.start,e.push(n)),n={start:o*3,materialIndex:i})}n!==void 0&&(n.count=o*3-n.start,e.push(n)),this.groups=e}fromGeometry(t){let e=t.faces,n=t.vertices,o=t.faceVertexUvs,i=o[0]&&o[0].length>0,a=o[1]&&o[1].length>0,s=t.morphTargets,l=s.length,u;if(l>0){u=[];for(let v=0;v<l;v++)u[v]={name:s[v].name,data:[]};this.morphTargets.position=u}let c=t.morphNormals,p=c.length,f;if(p>0){f=[];for(let v=0;v<p;v++)f[v]={name:c[v].name,data:[]};this.morphTargets.normal=f}let d=t.skinIndices,h=t.skinWeights,m=d.length===n.length,g=h.length===n.length;n.length>0&&e.length===0&&console.error("THREE.DirectGeometry: Faceless geometries are not supported.");for(let v=0;v<e.length;v++){let x=e[v];this.vertices.push(n[x.a],n[x.b],n[x.c]);let S=x.vertexNormals;if(S.length===3)this.normals.push(S[0],S[1],S[2]);else{let b=x.normal;this.normals.push(b,b,b)}let w=x.vertexColors;if(w.length===3)this.colors.push(w[0],w[1],w[2]);else{let b=x.color;this.colors.push(b,b,b)}if(i===!0){let b=o[0][v];b!==void 0?this.uvs.push(b[0],b[1],b[2]):(console.warn("THREE.DirectGeometry.fromGeometry(): Undefined vertexUv ",v),this.uvs.push(new Wt,new Wt,new Wt))}if(a===!0){let b=o[1][v];b!==void 0?this.uvs2.push(b[0],b[1],b[2]):(console.warn("THREE.DirectGeometry.fromGeometry(): Undefined vertexUv2 ",v),this.uvs2.push(new Wt,new Wt,new Wt))}for(let b=0;b<l;b++){let _=s[b].vertices;u[b].data.push(_[x.a],_[x.b],_[x.c])}for(let b=0;b<p;b++){let _=c[b].vertexNormals[v];f[b].data.push(_.a,_.b,_.c)}m&&this.skinIndices.push(d[x.a],d[x.b],d[x.c]),g&&this.skinWeights.push(h[x.a],h[x.b],h[x.c])}return this.computeGroups(t),this.verticesNeedUpdate=t.verticesNeedUpdate,this.normalsNeedUpdate=t.normalsNeedUpdate,this.colorsNeedUpdate=t.colorsNeedUpdate,this.uvsNeedUpdate=t.uvsNeedUpdate,this.groupsNeedUpdate=t.groupsNeedUpdate,t.boundingSphere!==null&&(this.boundingSphere=t.boundingSphere.clone()),t.boundingBox!==null&&(this.boundingBox=t.boundingBox.clone()),this}},Qo=class{constructor(t,e,n,o,i,a=0){this.a=t,this.b=e,this.c=n,this.normal=o&&o.isVector3?o:new gt,this.vertexNormals=Array.isArray(o)?o:[],this.color=i&&i.isColor?i:new Im,this.vertexColors=Array.isArray(i)?i:[],this.materialIndex=a}clone(){return new this.constructor().copy(this)}copy(t){this.a=t.a,this.b=t.b,this.c=t.c,this.normal.copy(t.normal),this.color.copy(t.color),this.materialIndex=t.materialIndex;for(let e=0,n=t.vertexNormals.length;e<n;e++)this.vertexNormals[e]=t.vertexNormals[e].clone();for(let e=0,n=t.vertexColors.length;e<n;e++)this.vertexColors[e]=t.vertexColors[e].clone();return this}};var ZC=["a","b","c"];function QC(r,t){switch(t){case"c":return r.c;case"b":return r.b;case"a":default:return r.a}}function iu(r,t,e){let n=Math.min(r,t),o=Math.max(r,t),i=n+"_"+o;return e.get(i)}function au(r,t,e,n,o,i){let a=Math.min(r,t),s=Math.max(r,t),l=a+"_"+s,u;if(n.has(l))u=n.get(l);else{let c=e[a],p=e[s];u={a:c,b:p,newEdge:null,faces:[]},n.set(l,u)}u.faces.push(o),i[r].edges.push(u),i[t].edges.push(u)}function JC(r,t,e,n){let o,i,a;for(o=0,i=r.length;o<i;o++)e[o]={edges:[]};for(o=0,i=t.length;o<i;o++)a=t[o],au(a.a,a.b,r,n,a,e),au(a.b,a.c,r,n,a,e),au(a.c,a.a,r,n,a,e)}function ul(r,t,e,n,o){r.push(new Qo(t,e,n,void 0,void 0,o))}function Jo(r,t){return Math.abs(t-r)/2+Math.min(r,t)}function pl(r,t,e,n){r.push([t.clone(),e.clone(),n.clone()])}var fl=class{constructor(t=1){this.subdivisions=t}modify(t){t instanceof KC?t=new On().fromBufferGeometry(t):t=t.clone(),t.mergeVertices();let e=this.subdivisions;for(;e-- >0;)this._smooth(t);return t.computeFaceNormals(),t.computeVertexNormals(),t}_smooth(t){let e=new Nm,n,o,i,a,s,l=t.vertices,u=t.faces,c=t.faceVertexUvs[0],p=c!==void 0&&c.length>0,f=[],d=new Map;JC(l,u,f,d);let h=[],m,g,v,x,S,w,b;for(let q of Array.from(d.keys())){for(g=d.get(q),v=new Nm,S=3/8,w=1/8,b=g.faces.length,b!=2&&(S=.5,w=0,b!=1),v.addVectors(g.a,g.b).multiplyScalar(S),e.set(0,0,0),a=0;a<b;a++){for(x=g.faces[a],s=0;s<3&&(m=l[QC(x,ZC[s])],!(m!==g.a&&m!==g.b));s++);m&&e.add(m)}e.multiplyScalar(w),v.add(e),g.newEdge=h.length,h.push(v)}let _,T,y,O,A,I,C,N=[];for(o=0,i=l.length;o<i;o++){for(I=l[o],A=f[o].edges,n=A.length,n==3?_=3/16:n>3&&(_=3/(8*n)),T=1-n*Number(_),y=_,n<=2&&(n==2?(T=3/4,y=1/8):n==1||n==0),C=I.clone().multiplyScalar(T),e.set(0,0,0),a=0;a<n;a++)O=A[a],m=O.a!==I?O.a:O.b,e.add(m);e.multiplyScalar(Number(y)),C.add(e),N.push(C)}let P=N.concat(h),G=N.length,$,Y,ie,j=[],H=[],V,R,D,F,B=new ou,X=new ou,K=new ou;for(o=0,i=u.length;o<i;o++)x=u[o],$=Number(iu(x.a,x.b,d).newEdge)+G,Y=Number(iu(x.b,x.c,d).newEdge)+G,ie=Number(iu(x.c,x.a,d).newEdge)+G,ul(j,$,Y,ie,x.materialIndex),ul(j,x.a,$,ie,x.materialIndex),ul(j,x.b,Y,$,x.materialIndex),ul(j,x.c,ie,Y,x.materialIndex),p&&(V=c[o],R=V[0],D=V[1],F=V[2],B.set(Jo(R.x,D.x),Jo(R.y,D.y)),X.set(Jo(D.x,F.x),Jo(D.y,F.y)),K.set(Jo(R.x,F.x),Jo(R.y,F.y)),pl(H,B,X,K),pl(H,R,B,K),pl(H,D,X,B),pl(H,F,K,X));t.vertices=P,t.faces=j,p&&(t.faceVertexUvs[0]=H)}};var Ze=new tA,Em=class{static create(r){return this.build(this.normalizeInputs(r))}static normalizeInputs(r,t){let e=r.geometry??t?.geometry??new Pm().copy(new Mm(100,100,100)),n;t===void 0?(e.computeBoundingBox(),e.boundingBox.getSize(Ze),n={width:Ze.x,height:Ze.y,depth:Ze.z,subdivisions:0}):n=t.parameters;let o={...n,...r.parameters};return{parameters:{width:Math.abs(o.width),height:Math.abs(o.height),depth:Math.abs(o.depth),subdivisions:Math.abs(o.subdivisions)},geometry:e}}static build(r){let{width:t,height:e,depth:n,subdivisions:o}=r.parameters,i=r.geometry??new Pm().copy(new Mm(100,100,100)),a=i.userData.parameters;a===void 0?(i.computeBoundingBox(),i.boundingBox.getSize(Ze)):Ze.set(a.width,a.height,a.depth),(t!==Ze.x||e!==Ze.y||n!==Ze.z)&&i.scale(Ze.x===0?1:t/Ze.x,Ze.y===0?1:e/Ze.y,Ze.z===0?1:n/Ze.z);let s=i.originalGeometry;return o>0?(s===void 0||a?.subdivisions!==o)&&(s===void 0&&(s=i),i=new fl(o).modify(s).toBufferGeometry()):(s!==void 0&&(i=s),s=void 0,i.getAttribute("normal")===void 0&&i.computeVertexNormals()),s!==void 0&&Object.assign(i,{originalGeometry:s}),delete r.geometry,Object.assign(i,{userData:{...r,type:"NonParametricGeometry"}})}static loadFromUrl(r,t,e){new eA(e).load(r,o=>{let i=this.normalizeInputs({geometry:o});o.boundingBox.getSize(Ze);let a=100/Ze.x;Object.assign(i.parameters,{width:100,height:Ze.y*a,depth:Ze.z*a}),t(this.build(i))})}};var Dm=class{static create(r){return this.build(this.normalizeInputs(r))}static normalizeInputs(r,t){let e=Object.assign({},t?.parameters??{width:100,depth:0,spikes:5,cornerRadius:0,extrudeBevelSize:0,extrudeBevelSegments:3},r.parameters);return{shape:r.shape&&r.shape instanceof Ae?r.shape:new Ae,parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??0)})}}static build(r){let{width:t,height:e,spikes:n,cornerRadius:o,depth:i,extrudeBevelSize:a,extrudeBevelSegments:s}=r.parameters,l=r.shape,u=t*.5,c=e*.5,p=0,f=0,d=2*Math.PI/n;for(let m=0;m<n;m++){let g=d*m,v=p+Math.sin(g)*u,x=f+Math.cos(g)*c;l.addPoint(l.createPoint(v,x))}l.isClosed=!0;for(let m=0,g=l.points.length;m<g;m++)l.points[m].roundness=o;l.roundness=o,l.update();let h=pt.create({shape:l,parameters:{roundness:o,depth:i,extrudeBevelSize:a,extrudeBevelSegments:s}});return Object.assign(h,{userData:{...r,type:"PolygonGeometry"}})}};import{BufferGeometry as rA,Float32BufferAttribute as su,Vector2 as _r,Vector3 as ot}from"three";var Bm=class{static create(r){return this.build(this.normalizeInputs(r))}static normalizeInputs(r,t){let e=Object.assign({},t?.parameters??{width:100,radialSegments:4,heightSegments:1,cornerRadius:0,cornerSegments:8,openEnded:!1},r.parameters);return{parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??e.width)})}}static build(r){let{width:t,height:e,depth:n,radialSegments:o,heightSegments:i,openEnded:a,cornerRadius:s,cornerSegments:l}=r.parameters,u=new cu(t*.5,e,o,i,a,s,l);return u.scale(1,1,n/t),Object.assign(u,{userData:{...r,type:"PyramidGeometry"}})}};function ra(r,t,e){e.x=r.x*t.x,e.y=r.y,e.z=r.x*t.y}function lu(r,t,e,n,o,i){let a=t.clone().sub(r),s=e.clone().sub(r),l=a.angleTo(s);if(a.normalize(),s.normalize(),n===o){let u=a.add(s).normalize();i.copy(r).addScaledVector(u,n/Math.sin(l/2))}else{let u=a.angleTo(s);i.copy(r),i.addScaledVector(a,o/Math.sin(u)),i.addScaledVector(s,n/Math.sin(u))}}function nA(r,t,e){let n=r.clone().sub(t),o=e.clone().sub(t);return n.projectOnVector(o),n.add(t)}var cu=class extends rA{constructor(t=.5,e=1,n=4,o=1,i=!1,a=0,s=4){super(),n=Math.floor(Math.max(3,n)),o=Math.floor(o),s=Math.floor(s);let l=[],u=[],c=[],p=[],f=0,d=e/2,h=Math.PI/n,m=t*Math.cos(Math.PI/n),g=2*Math.PI/n,v=(n-2)*Math.PI/n,x=Math.PI-v,S=new ot(0,-d,0),w=new ot(0,d,0),b=new _r(t,-d),_=new _r(m,-d),T=new _r(0,w.y).sub(_),y=new _r(0,w.y).sub(b),O=new _r(T.y,-T.x).normalize(),A=new _r(y.y,-y.x).normalize(),C=t*Math.cos(Math.PI/n)*Math.tan((Math.PI-T.angle())/2)-1e-8;a=Math.min(a,C);let N;{let H=new ot(O.x,O.y,0),V=new ot(Math.cos(g)*H.x,H.y,Math.sin(g)*H.x);N=H.angleTo(V)}let P=a/Math.tan((Math.PI-T.angle())/2),G=a/Math.tan((Math.PI-N)/2),$=new ot;if(!i){u.push(S.x,S.y,S.z),c.push(0,-1,0),p.push(0,0);let H=f++,V=[],R=b.clone(),D=P/Math.cos(Math.PI/n);R.x-=D;for(let F=0;F<n;F++){let B=F/n*Math.PI*2+h,X=new _r(Math.sin(B),Math.cos(B));ra(R,X,$),u.push($.x,$.y,$.z),c.push(0,-1,0),p.push(0,0),V.push(f++)}for(let F=0;F<V.length;F++)l.push(V[F],H,V[(F+1)%V.length])}let Y=[];{let H=new ot,V=new ot,R=new ot,D=new ot,F=new ot,B=new ot;for(let X=0;X<n;X++){let K=X/n*Math.PI*2+h,q=(X+.5)/n*Math.PI*2+h,z=(X+1)/n*Math.PI*2+h,U=new _r(Math.sin(K),Math.cos(K)),W=new _r(Math.sin(q),Math.cos(q)),re=new _r(Math.sin(z),Math.cos(z));ra(b,U,V),ra(b,re,R),ra(O,W,H),lu(w,V,R,G,G,D),u.push(D.x,D.y,D.z),lu(V,w,R,G,P,F),u.push(F.x,F.y,F.z),lu(R,V,w,P,G,B),u.push(B.x,B.y,B.z),c.push(H.x,H.y,H.z),c.push(H.x,H.y,H.z),c.push(H.x,H.y,H.z),p.push(0,0),p.push(0,0),p.push(0,0);let ae=f++,pe=f++,oe=f++;if(l.push(ae,pe,oe),a>0){{let Q=V.clone().add(R).multiplyScalar(.5),be=w.clone().sub(Q).normalize(),we=S.clone().sub(Q).normalize().add(be).normalize().multiplyScalar(-1),rt=B.clone().sub(F);ie(Q,rt,we,T.angle())}let ne,ee;{let Q=new ot;ra(A,re,Q);let be=B.clone().add(D).multiplyScalar(.5);be=nA(be,R,w);let ge=B.clone().sub(D);[ne,ee]=ie(be,ge,Q,N,D.y)}{let Q=ne,be=Q.clone().setY(0).normalize(),ge=new ot(0,-1,0),we=be.clone().cross(ge);j(Q,be,ge,we)}Y.concat(ee);{let Q=T.angle(),be=Math.PI-Q,ge=w.clone();ge.y-=a/Math.sin(Q-Math.PI/2);let we=new ot,rt=[];for(let Pe=0;Pe<s;Pe++){let De=[],Ut=Math.PI/2-be*Pe/s,ln=Math.cos(Ut),Pt=Math.sin(Ut),po=q;for(let qa=0;qa<=Pe;qa++){let Xa=Math.cos(po),We=Math.sin(po);H.x=ln*We,H.y=Pt,H.z=ln*Xa,we.copy(ge).addScaledVector(H,a),u.push(we.x,we.y,we.z),c.push(H.x,H.y,H.z),p.push(0,0),De.push(f++),po+=Math.PI*2/Pe/n}rt.push(De)}ee.reverse(),rt.push(ee);let Le=rt.length-1;for(let Pe=0;Pe<Le;Pe++){let De=rt[Pe],Ut=rt[Pe+1],ln=De.length-1;l.push(Ut[1],De[0],Ut[0]);for(let Pt=1;Pt<=ln;Pt++)l.push(De[Pt],De[Pt-1],Ut[Pt]),l.push(Ut[Pt+1],De[Pt],Ut[Pt])}}}}}this.setIndex(l),this.setAttribute("position",new su(u,3)),this.setAttribute("normal",new su(c,3)),this.setAttribute("uv",new su(p,2));function ie(H,V,R,D,F){let B=-D/2,X=(Math.PI-D)/2,K=V.clone().normalize().cross(R);H.addScaledVector(R,-a/Math.sin(X));let q=new ot,z=new ot,U=1,W=f,re=[];for(let ae=0;ae<=s;ae++){let pe=B+ae/s*D;z.set(0,0,0),z.addScaledVector(K,Math.sin(pe)),z.addScaledVector(R,Math.cos(pe));for(let oe=0;oe<=U;oe++){let ne=oe/U-.5;if(q.copy(H),q.addScaledVector(V,ne),q.addScaledVector(z,a),F!=null){let ee=Math.max(0,q.y-F);q.addScaledVector(V,-ee/V.y)}u.push(q.x,q.y,q.z),c.push(z.x,z.y,z.z),p.push(0,0),oe===0&&re.push(f),f++}}for(let ae=0;ae<s;ae++)for(let pe=0;pe<U;pe++){let oe=W+pe+(U+1)*ae,ne=oe+(U+1),ee=ne+1,Q=oe+1;l.push(oe,ne,Q),l.push(ne,ee,Q)}return[H.clone().addScaledVector(V,.5),re]}function j(H,V,R,D){let F=Math.PI/2,B=y.angle()-F,X=[],K=new ot,q=new ot;for(let U=0;U<=s;U++){let W=[],re=U/s;for(let ae=0;ae<=U;ae++){let oe=((U?ae/U:0)-.5)*x,ne=Math.cos(oe),ee=Math.sin(oe),Q=Math.atan(Math.tan(B)*ne),be=(F+Q)*re,ge=Math.cos(be),we=Math.sin(be);K.set(0,0,0),K.addScaledVector(V,we*ne),K.addScaledVector(R,ge),K.addScaledVector(D,we*ee),q.copy(H).addScaledVector(K,a),u.push(q.x,q.y,q.z),c.push(K.x,K.y,K.z),p.push(0,0),W.push(f++)}X.push(W)}let z=X.length-1;for(let U=0;U<z;U++){let W=X[U],re=X[U+1],ae=W.length-1;l.push(W[0],re[1],re[0]);for(let pe=1;pe<=ae;pe++)l.push(W[pe-1],W[pe],re[pe]),l.push(W[pe],re[pe+1],re[pe])}}}};var Fm=class{static create(r){return this.build(this.normalizeInputs(r))}static normalizeInputs(r,t){let e=Object.assign({},t?.parameters??{width:100,depth:0,cornerRadius:[0,0,0,0],cornerType:1,extrudeBevelSize:0,extrudeBevelSegments:1},r.parameters),n=Object.assign(t?.ui??{enabledIndieCorners:!1},r.ui);return{shape:r.shape&&r.shape instanceof Ae?r.shape:new Ae,parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??0)}),ui:n}}static build(r){let t=r.shape,{width:e,height:n,cornerRadius:o,cornerType:i,depth:a,extrudeBevelSize:s,extrudeBevelSegments:l}=r.parameters,u={x:e*.5,y:n*.5},c={x:-u.x,y:-u.y},p={x:u.x,y:u.y};function f(w,b,_){return b>e&&_>n?Math.min(w*e/b,w*n/_):b>e?w*e/b:_>n?w*n/_:w}let d=[];d[0]=o[0]===0?0:f(o[0],o[0]+o[3],o[0]+o[1]),d[1]=o[1]===0?0:f(o[1],o[1]+o[2],o[1]+o[0]),d[2]=o[2]===0?0:f(o[2],o[2]+o[1],o[2]+o[3]),d[3]=o[3]===0?0:f(o[3],o[3]+o[0],o[3]+o[2]);let h=c.x,m=p.x,g=p.y,v=c.y;t.addPoint(t.createPoint(h,g)),t.addPoint(t.createPoint(m,g)),t.addPoint(t.createPoint(m,v)),t.addPoint(t.createPoint(h,v)),t.isClosed=!0;let x=!0;for(let w=0,b=t.points.length;w<b;w++)t.points[w].roundness=d[w],w>0&&d[w]!==d[w-1]&&(x=!1);x&&(t.roundness=d[0]),t.useCubicForRoundedCorners=i!==1,t.update();let S=pt.create({shape:t,parameters:{depth:a,extrudeBevelSize:s,extrudeBevelSegments:l}});return Object.assign(S,{userData:{...r,type:"RectangleGeometry"}})}};import{SphereBufferGeometry as oA}from"three";var Rm=class{static create(r){return this.build(this.normalizeInputs(r))}static normalizeInputs(r,t){let e=Object.assign({},t?.parameters??{width:100,widthSegments:64,heightSegments:64,phiStart:0,phiLength:2*Math.PI,thetaStart:0,thetaLength:Math.PI},r.parameters);return{parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??e.width)})}}static build(r){let{width:t=100,height:e=t,depth:n=t,widthSegments:o=64,heightSegments:i=64,phiStart:a,phiLength:s,thetaStart:l,thetaLength:u}=r.parameters,c=new oA(.5*t,o,i,a,s,l,u);return c.scale(1,e/t,n/t),Object.assign(c,{userData:{...r,type:"SphereGeometry"}})}};import{PlaneBufferGeometry as iA}from"three";var km=class{static create(r){return this.build(this.normalizeInputs(r))}static normalizeInputs(r,t){let e=Object.assign({},t?.parameters??{width:100,depth:0,widthSegments:8,heightSegments:8},r.parameters);return{parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:0})}}static build(r){let{width:t=100,height:e=t,widthSegments:n=8,heightSegments:o=8}=r.parameters,i=new iA(t,e,n,o);return i.scale(1,1,1),Object.assign(i,{userData:{...r,type:"PlaneGeometry"}})}};import{BufferGeometry as aA,Float32BufferAttribute as uu,Vector3 as sA}from"three";var Gm=class{static create(r){return this.build(this.normalizeInputs(r))}static normalizeInputs(r,t){let e=Object.assign({},t?.parameters??{width:100,angle:90,cornerRadius:24,cornerSegments:8},r.parameters);return{parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??e.width)})}}static build(r){let{width:t,height:e,depth:n,angle:o,cornerRadius:i,cornerSegments:a}=r.parameters,s=new pu(t,e,n,o,i,a);return Object.assign(s,{userData:{...r,type:"BackdropGeometry"}})}},pu=class extends aA{constructor(t=1,e=1,n=1,o=90,i=10,a=24){super(),this.type="BackdropGeometry";let s=[],l=[],u=[],c=.001;i==0&&(a=1),a=Math.max(1,Math.floor(a)),i=Math.min(i,100),o=Math.min(180-c,o),o*=Math.PI/180;let p=[],f=Math.PI/2,d=(q=0,z=0,U=0)=>new sA(q,z,U),h=d(),m=d(),[g,v,x]=[e/2,t/2,n/2],S=-v,w=+v,[b,_,T]=[d(S,-g,+x),d(S,-g,-x),d(S,+g,-x)],y=(q,z=!1)=>Math.sin(q-Math.PI/(1+ +z)),O=(q,z=!1)=>Math.cos(q-Math.PI/(1+ +z));T.y=Math.sin(o)*e-g;let A=Math.cos(o)*e-x,I=b.z-c;o<=f?(T.z=Math.min(A,I),T.z==I&&(T.y-=(A-I)/Math.tan(f-o))):_.z=Math.min(_.z-A-x,b.z-c),h.subVectors(b,_),m.subVectors(T,_);let C=Math.min(h.length(),m.length())*i/100,N=C*Math.tan(o/2),P=C/Math.cos(o/2),G=h.clone().normalize().add(m.normalize()).setLength(P).add(_);h.set(0,y(o,!0),O(o,!0)),p.push([T,h.clone()]);let $=(Math.PI-o)/a;for(let q=0;q<=a;q++){let z=f+o+q*$;h.set(0,Math.sin(z)*N,Math.cos(z)*N),h.add(G),m.set(0,y(z),O(z)),p.push([h.clone(),m.clone()])}p.push([b,d(0,1,0)]);let Y=Math.sin($/2)*N*2,ie=p.length-1,j=p[0][0].distanceTo(p[1][0]),H=p[ie-1][0].distanceTo(p[ie][0]),V=j+Y*a+H;p[0].push(1);for(let q=0;q<=a;q++)p[q+1].push(1-(j+q*Y)/V);p[ie].push(0);let[R,D,F]=p[0],B,X,K;for(let q=1;q<p.length;q++)[B,X,K]=p[q],s.push(S,R.y,R.z,S,B.y,B.z,w,R.y,R.z,w,R.y,R.z,S,B.y,B.z,w,B.y,B.z),l.push(0,D.y,D.z,0,X.y,X.z,0,D.y,D.z,0,D.y,D.z,0,X.y,X.z,0,X.y,X.z),u.push(0,F,0,K,1,F,1,F,0,K,1,K),[R,D,F]=[B,X,K];this.setAttribute("position",new uu(s,3)),this.setAttribute("normal",new uu(l,3)),this.setAttribute("uv",new uu(u,2))}};var Um=class{static create(r){return this.build(this.normalizeInputs(r))}static normalizeInputs(r,t){let e=Object.assign({},t?.parameters??{width:100,depth:0,innerRadiusPercent:38.19,spikes:5,cornerRadius:0,angle:360,extrudeBevelSize:0,extrudeBevelSegments:1},r.parameters);return{shape:r.shape&&r.shape instanceof Ae?r.shape:new Ae,parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??0)})}}static build(r){let{width:t,height:e,innerRadiusPercent:n,spikes:o,cornerRadius:i,angle:a,depth:s,extrudeBevelSize:l,extrudeBevelSegments:u}=r.parameters,c=r.shape,p=t*.5,f=e*.5,d=0,h=0,m=a*Math.PI/360/o,g=Math.PI/2*3*-1,v=p*n/100,x=f*n/100;if(o===3&&n===50){m=2*Math.PI/o;for(let w=0;w<o;w++){let b=m*w,_=d+Math.sin(b)*p,T=h+Math.cos(b)*f;c.addPoint(c.createPoint(_,T))}}else for(let w=0;w<o;w++){let b=d+Math.cos(g)*p,_=h+Math.sin(g)*f;c.addPoint(c.createPoint(b,_)),g+=m,b=d+Math.cos(g)*v,_=h+Math.sin(g)*x,w<=o,c.addPoint(c.createPoint(b,_)),g+=m}c.isClosed=!0;for(let w=0,b=c.points.length;w<b;w++)c.points[w].roundness=i;c.roundness=i,c.update();let S=pt.create({shape:c,parameters:{roundness:i,depth:s,extrudeBevelSize:l,extrudeBevelSegments:u}});return Object.assign(S,{userData:{...r,type:"StarGeometry"}})}};import{PlaneBufferGeometry as lA}from"three";var Vm=class{static create(r){return this.build(this.normalizeInputs(r))}static normalizeInputs(r,t){let e=Object.assign({},t?.parameters??{width:100,depth:0},r.parameters);return{parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??0)})}}static build(r){let{width:t,height:e}=r.parameters,n=new lA(t,e);return Object.assign(n,{userData:{...r,type:"TextFrameGeometry"}})}};var zm=class{static create(r){return this.build(this.normalizeInputs(r))}static normalizeInputs(r,t){let e=Object.assign({},t?.parameters??{width:100,radialSegments:32,tubularSegments:64,arc:Math.PI*2,cornerRadius:30,cornerSegments:8},r.parameters),n=Math.abs(e.width),o=Math.abs(e.height??e.width),i=Math.abs(e.depth??e.width*.25);return{parameters:Object.assign(e,{width:n,height:o,depth:i})}}static build(r){let{width:t,height:e,depth:n,radialSegments:o,tubularSegments:i,arc:a,cornerRadius:s,cornerSegments:l}=r.parameters,u=cA(t,e,n,t*.5,a,i,0,0,o,s,l);return u.scale(1,e/t,1),Object.assign(u,{userData:{...r,type:"TorusGeometry"}})}};function cA(r,t,e,n,o,i,a,s,l,u,c){return[t,e]=[e,t],a=t/2,o/=2*Math.PI,o==1&&(u=0),new Ji(!0,r,t,e,n,o,i,a,s,l,u,c)}import{TorusKnotBufferGeometry as uA}from"three";var jm=class{static create(r){return this.build(this.normalizeInputs(r))}static normalizeInputs(r,t){let e=Object.assign({},t?.parameters??{width:100,tubularSegments:64,radialSegments:32,p:2,q:3},r.parameters);return{parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??e.width),tube:e.tube??e.width*.125})}}static build(r){let{width:t,tube:e,tubularSegments:n,radialSegments:o,p:i,q:a}=r.parameters,s=t*.5;s!==e&&(s-=e);let l=new uA(s,e,n,o,i,a);return Object.assign(l,{userData:{...r,type:"TorusKnotGeometry"}})}};var Hm=class{static create(r){return this.build(this.normalizeInputs(r))}static normalizeInputs(r,t){let e=Object.assign({},t?.parameters??{width:100,depth:0,spikes:5,cornerRadius:0,extrudeBevelSize:0,extrudeBevelSegments:1,isRect:!1},r.parameters);return{shape:r.shape&&r.shape instanceof Ae?r.shape:new Ae,parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width*(e.isRect?1:Math.sqrt(3)/2)),depth:Math.abs(e.depth??0)})}}static build(r){let{width:t=100,height:e,cornerRadius:n,depth:o,extrudeBevelSize:i,extrudeBevelSegments:a,isRect:s}=r.parameters,l=r.shape,u=t*.5,c=e*.5;s?(l.addPoint(l.createPoint(-u,c)),l.addPoint(l.createPoint(u,-c)),l.addPoint(l.createPoint(-u,-c))):(l.addPoint(l.createPoint(0,c)),l.addPoint(l.createPoint(u,-c)),l.addPoint(l.createPoint(-u,-c))),l.isClosed=!0;for(let f=0,d=l.points.length;f<d;f++)l.points[f].roundness=n;l.roundness=n,l.update();let p=pt.create({shape:l,parameters:{roundness:n,depth:o,extrudeBevelSize:i,extrudeBevelSegments:a}});return Object.assign(p,{userData:{...r,type:"TriangleGeometry"}})}};import{BufferAttribute as Wm,BufferGeometry as fu}from"three";import{mergeBufferGeometries as pA}from"three/examples/jsm/utils/BufferGeometryUtils.js";function qm(){let r=new fu;return r.setAttribute("position",new Wm(new Float32Array([]),3)),r.setIndex(new Wm(new Uint16Array([]),1)),r}var fA=12;var ei=class extends fu{constructor(e,n){super();this.charWidths=[];this.charCoords=[];this.wrappedText=[];this.vectorShapes=[];let o=qm();Object.entries(o.attributes).forEach(([i,a])=>{this.setAttribute(i,a)}),this.setIndex(o.index),this.updateFont(e.font,n),this.update(e)}async updateFont(e,n){let o=n.getFont(e);o&&(this.font=o,await o.loadingPromise)}async update(e){let n=this.font;if(this.userData={parameters:e,type:"TextGeometry"},!n||!n.isLoaded){console.warn("Cannot update text because its font is not loaded");return}let{width:o,height:i,depth:a,extrudeBevelSize:s,extrudeBevelSegments:l,text:u,textTransform:c,subdivisions:p}=e;await n.loadingPromise;let f=c===2?u.toUpperCase():c===3?u.toLowerCase():u,d=dA(e,n,f),{shapes:h,charWidths:m,charCoords:g}=await n.generateShapes(d,e),v=o*.5,x=i*.5,S=h.map(_=>new Ae().fromShape(_));this.vectorShapes=S;let w=S.map(_=>pt.create({shape:_,parameters:{depth:a,extrudeBevelSegments:l,extrudeBevelSize:s,windingRule:a<=0?Be.NONZERO:Be.ODD,subdivisions:p??fA}})),b=w.length?pA(w):qm();b.translate(-v,x,0),this.dispose(),this.wrappedText=d,this.charCoords=g,this.charWidths=m,Object.entries(b.attributes).forEach(([_,T])=>{this.setAttribute(_,T)}),this.setIndex(b.index),this.computeBoundingSphere()}clone(){let e=$n(new fu,ei.prototype);return e.copy(this),e}copy(e){return Object.entries(e.attributes).forEach(([n,o])=>{this.setAttribute(n,o)}),this.setIndex(e.index),this.userData={parameters:{...e.userData.parameters},type:"TextGeometry"},this}async setText(e){this.font&&await this.font.loadingPromise,await this.update({...this.userData.parameters,text:e})}get text(){return this.userData.parameters.text??""}};function dA(r,t,e){e=e??r.text;let n=[""],o="";for(let i of e)o+=i,i===" "||i===`
2
+ `?(n[n.length-1]+=o,o="",i===`
3
+ `&&n.push("")):t.getTextWidth(n[n.length-1]+o,r)>r.width&&(n[n.length-1].length&&n.push(""),t.getTextWidth(n[n.length-1]+o,r)>r.width&&(o.length===1?(n[n.length-1]+=o,o=""):(n[n.length-1]+=o.slice(0,-1),o=o[o.length-1],n.push(""))));return n[n.length-1]+=o,n}import{BufferGeometry as Xm,BufferAttribute as Ym,Uint32BufferAttribute as du,Float32BufferAttribute as hu,Matrix4 as yA,Vector3 as gl}from"three";var hA,dl=new Promise(r=>{hA=r});import{BufferGeometryLoader as mA}from"three";function hl(r,t){return gA(r)}function gA(r){let t={parameters:r,type:r.type};if(r.type==="VectorGeometry"){let n=Ae.createFromState(r.shape,r.width,r.height);t.shape=n}else r.type==="NonParametricGeometry"&&(r.data.groups&&r.data.groups.forEach(n=>n.materialIndex=Math.max(n.materialIndex??0,0)),t.geometry=new mA().parse(r));let e;try{e=na(t)}catch(n){console.error(n)}if(!e){let n=Ae.createFromState(vo.defaultData(),100,100);t.shape=n,e=na(t)}return e}var me;dl.then(r=>{me=r});var $m=new Float32Array([10,10,0,-10,10,0,-10,-10,0,10,-10,0]),Km=new Uint32Array([0,1,2,3]),Zm=new Uint8Array([4]),qt=class{static build(r,t,e,n,o){let i,a,s,l=r?.phongAngle??t?.phongAngle??35;if(n===!1&&(l=-1),r.positionWASM!==void 0){e&&e!==0&&(me.free_bvh(e),me.free_subdivision_surface(e));try{i=qt.allocate(r,o)}catch(u){console.error(u,r),i=qt.allocate({positionWASM:$m,indexWASM:Km,verticesPerFaceWASM:Zm},o)}me.set_destination_refinement_level(i,0),a=qt.buildLevel(i,!0,l)}else i=e,r.phongAngle!==void 0&&(a=qt.buildLevel(i,!0,l));return r.subdivisions!==void 0&&(me.set_destination_refinement_level(i,r.subdivisions),r.subdivisions>0?s=qt.buildLevel(i,!1,l):s=null),{subdivPointer:i,originalGeometry:a,subdividedGeometry:s}}static primitiveToQuads(r,t){r.widthSegments>16&&(r.widthSegments=16),r.heightSegments>16&&(r.heightSegments=16),r.depthSegments>16&&(r.depthSegments=16),r.radialSegments>16&&(r.radialSegments=16),r.type==="DodecahedronGeometry"&&(r.detail=0);let e=r.shape!==void 0?t.geometry:hl(r),n,o,i,a;({positions:n,triIndices:a}=vu(e.getAttribute("position"),e.getIndex()));let s;if(r.type==="CylinderGeometry"&&r.cornerRadius===0&&r.hollow===0&&r.openEnded===!1){let l=r.radialSegments*r.heightSegments*3*2,u=l+r.radialSegments*3;s=[l,u]}return{indices:o,verticesPerFace:i}=xu(n,a,e,s),{positions:n,indices:o,verticesPerFace:i}}static allocate(r,t){let e,n,o,i=[],a=[];r.positionWASM&&r.positionWASM.length>0?(e=r.positionWASM,n=r.indexWASM,o=r.verticesPerFaceWASM):(e=$m,n=Km,o=Zm);let s=e.length,l=n.length,u=o.length,c=e.length+i.length+a.length,p=n.length+o.length,f=c*Float32Array.BYTES_PER_ELEMENT+p*Uint32Array.BYTES_PER_ELEMENT,d=c*Float32Array.BYTES_PER_ELEMENT,h=p*Uint32Array.BYTES_PER_ELEMENT,m=me._malloc(f),g=new Float32Array(me.HEAPF32.buffer,m,c),v=new Uint32Array(me.HEAPU32.buffer,m+d,p);g.set(e,0),g.set(i,e.length),g.set(a,e.length+i.length),v.set(n,0),v.set(o,n.length);let x;r?.scaleBaked?.some(w=>w!==1)&&(x=new yA().makeScale(...r.scaleBaked)),t&&(x?x.premultiply(t):x=t);let S=x?me.alloc_subdivision_surface2(m,s,m+d,l,m+d+n.length*Uint32Array.BYTES_PER_ELEMENT,u,x.elements):me.alloc_subdivision_surface(m,s,m+d,l,m+d+n.length*Uint32Array.BYTES_PER_ELEMENT,u);return me._free(m),S}static buildLevel(r,t,e,n,o){let i=o?me.get_mesh_data2(r,t?me.Level.CONTROL:me.Level.REFINED,e,o.elements):me.get_mesh_data(r,t?me.Level.CONTROL:me.Level.REFINED,e),a=8,s=me.HEAPU32.subarray(i>>2,(i>>2)+a),l=s.subarray(4,4+4),u=0,c=me.HEAPU32[s[u]>>2],p=me.HEAPF32.subarray(c>>2,(c>>2)+l[u]);u++;let f=me.HEAPU32[s[u]>>2],d=me.HEAPF32.subarray(f>>2,(f>>2)+l[u]);u++;let h=me.HEAPU32[s[u]>>2],m=me.HEAPU32.subarray(h>>2,(h>>2)+l[u]);u++;let g=me.HEAPU32[s[u]>>2],v=me.HEAPU32.subarray(g>>2,(g>>2)+l[u]);if(u++,n===void 0){let x=new Xm;if(x.setIndex(new du(v,1)),x.setAttribute("position",new hu(p,3)),x.setAttribute("normal",new hu(d,3)),t){x.setAttribute("faceMap",new du(m,1));let S=new Float32Array(d.length/3*4).fill(0);x.setAttribute("color",new Ym(S,4))}return me.free_mesh_data(i),x.userData.type="SubdivGeometry",x}n.getAttribute("position").copyArray(p),n.getAttribute("normal").copyArray(d),n.attributes.position.needsUpdate=!0,n.attributes.normal.needsUpdate=!0,me.free_mesh_data(i)}static buildControlCageWireframe(r,t,e){let n=me.get_wireframe_data_for_base_level(r),o=4,i=me.HEAPU32.subarray(n>>2,(n>>2)+o),a=i.subarray(2,2+2),s=0,l=me.HEAPU32[i[s]>>2],u=me.HEAPF32.subarray(l>>2,(l>>2)+a[s]);s++;let c=me.HEAPU32[i[s]>>2],p=me.HEAPU32.subarray(c>>2,(c>>2)+a[s]);if(t===void 0){let f=new Xm;f.setAttribute("position",new hu(u,3));let d=new Float32Array(u.length);for(let h=0,m=u.length;h<m;)d[h++]=e.r,d[h++]=e.g,d[h++]=e.b;return f.setAttribute("color",new Ym(d,3)),f.setIndex(new du(p,1)),me.free_wireframe_data_for_base_level(n),f}t.getAttribute("position").copyArray(u),t.attributes.position.needsUpdate=!0,me.free_wireframe_data_for_base_level(n)}static updateCollabMesh(r,t,e){let n=t===0;n||me.set_destination_refinement_level(r,t);let o=e?me.get_topological_data2(r,n?me.Level.CONTROL:me.Level.REFINED,e.elements):me.get_topological_data(r,n?me.Level.CONTROL:me.Level.REFINED),i=6,a=me.HEAPU32.subarray(o>>2,(o>>2)+i),s=a.subarray(3,3+3),l=0,u=me.HEAPU32[a[l]>>2],c=new Float32Array(me.HEAPF32.subarray(u>>2,(u>>2)+s[l]));l++;let p=me.HEAPU32[a[l]>>2],f=new Uint32Array(me.HEAPU32.subarray(p>>2,(p>>2)+s[l]));l++;let d=me.HEAPU32[a[l]>>2],h=new Uint8Array(me.HEAPU32.subarray(d>>2,(d>>2)+s[l]));return me.free_topological_data(o),{positions:c,indices:f,verticesPerFace:h}}};var Qm=["getX","getY","getZ"];function vu(r,t){let e={},n=t?t.count:r.count,o=0,i=[],a=[],s=1e4;for(let u=0;u<n;u++){let c=t?t.getX(u):u,p="";for(let f=0;f<3;f++)p+=`${~~(r[Qm[f]](c)*s)},`;if(p in e)i.push(e[p]);else{for(let f=0;f<3;f++)a.push(r[Qm[f]](c));e[p]=o,i.push(o),o++}}let l=[];for(let u=0;u<i.length;u+=3)i[u]===i[u+1]||i[u]===i[u+2]||i[u+1]===i[u+2]||l.push(i[u],i[u+1],i[u+2]);return{positions:a,triIndices:l}}var ml=new gl,mu=new gl,gu=new gl,yu=new gl;function xu(r,t,e,n){let o=[],i=[];if(e.userData.shape!==void 0&&e.userData.parameters.depth===0&&e.userData.shape.shapeHoles.length===0){let a=e.userData.shape.extractShapePointsToFlatArray([]),s=0;for(let u=0;u<a.length;u+=2)s+=(a[u]-a[(u===0?a.length:u)-2])*(a[u+1]+a[(u===0?a.length:u)-1]);r.length=0;let l=0;if(s<0)for(let u=0;u<a.length;u+=2)r.push(a[u],a[u+1],0),o.push(l++);else for(let u=a.length-2;u>=0;u-=2)r.push(a[u],a[u+1],0),o.push(l++);return i.push(l),{indices:o,verticesPerFace:i}}for(let a=0,s=e.capStartIndex??t.length;a<s;)if(t[a+1]===t[a+3]&&t[a+2]===t[a+5]||t[a+0]===t[a+3]&&t[a+2]===t[a+4]){ml.set(r[t[a]*3],r[t[a]*3+1],r[t[a]*3+2]),mu.set(r[t[a+1]*3],r[t[a+1]*3+1],r[t[a+1]*3+2]),gu.set(r[t[a+4]*3],r[t[a+4]*3+1],r[t[a+4]*3+2]),yu.set(r[t[a+5]*3],r[t[a+5]*3+1],r[t[a+5]*3+2]),mu.sub(ml).normalize(),gu.sub(ml).normalize(),yu.sub(ml).normalize();let l=mu.cross(gu).dot(yu);Math.abs(l)>.005||n&&n.some((u,c)=>c%2===1?!1:a>=n[c]&&a<n[c+1])?(o.push(t[a],t[a+1],t[a+2]),i.push(3),a+=3):(o.push(t[a],t[a+1],t[a+4],t[a+5]),i.push(4),a+=6)}else o.push(t[a],t[a+1],t[a+2]),i.push(3),a+=3;if(e.capStartIndex!==void 0){let a=[],s=[],l=0,u=new Float32Array([e.userData.parameters.depth])[0];for(let c=0,p=0;c<r.length;c+=3,p++)r[c+2]===0&&(a.push(p),l++),r[c+2]===u&&s.push(p);if(e.userData.parameters.extrudeBevelSize===0){let c=s[0];s[0]=s[1],s[1]=c}a.reverse(),o.push(...a,...s),i.push(l,l)}return{indices:o,verticesPerFace:i}}var rr={};Tv(rr,{calcBoolean:()=>wA,calcBooleanTopological:()=>SA,freeMeshSet:()=>AA,getMeshSet:()=>TA,transformMeshSet:()=>CA});var vA,Jm=new Promise(r=>{vA=r});import{Float32BufferAttribute as eg,Sphere as xA}from"three";var Se,ti;Jm.then(r=>Se=r);function bA(r,t,e){let n,{positions:o,triIndices:i}=vu(r.getAttribute("position"),r.getIndex()),a;if(t&&e){let{indices:s,verticesPerFace:l}=xu(o,i,r);a=l.length,n=[];for(let u=0,c=0;u<a;u++){n.push(l[u]);for(let p=0;p<l[u];p++)n.push(s[c++])}}else{let s=i.length;n=Array(s+s/3),a=0;for(let l=0,u=0;u<n.length;)n[u++]=3,a++,n[u++]=i[l++],n[u++]=i[l++],n[u++]=i[l++]}return{positions:o,faceIndices:n,nFaces:a}}function tg(r){let t=r.length,e=t*Uint32Array.BYTES_PER_ELEMENT,n=t*Float32Array.BYTES_PER_ELEMENT,o=Number.isInteger(r[0])?e:n,i=Se._malloc(o);return(Number.isInteger(r[0])?new Uint32Array(Se.HEAPU32.buffer,i,t):new Float32Array(Se.HEAPF32.buffer,i,t)).set(r,0),i}function rg(r){switch(r){case 0:return Se.OP.UNION;case 1:return Se.OP.INTERSECTION;case 2:return Se.OP.A_MINUS_B;case 3:return Se.OP.B_MINUS_A;case 4:return Se.OP.SYMMETRIC_DIFFERENCE;case 5:return Se.OP.ALL;default:throw new Error("Unknown boolean operation "+r)}}function SA(r,t){ti===void 0&&(ti=Se.init_csg());let e=tg(r),n=Se.csg_calc_topological(ti,e,r.length,rg(t));Se._free(e);let o=6,i=Se.HEAPU32.subarray(n>>2,(n>>2)+o),a=i.subarray(3,3+3),s=0,l=Se.HEAPU32[i[s]>>2],u=new Float32Array(Se.HEAPF32.subarray(l>>2,(l>>2)+a[s]));s++;let c=Se.HEAPU32[i[s]>>2],p=new Uint32Array(Se.HEAPU32.subarray(c>>2,(c>>2)+a[s]));s++;let f=Se.HEAPU32[i[s]>>2],d=new Uint8Array(Se.HEAPU32.subarray(f>>2,(f>>2)+a[s]));return Se.free_mesh_data(n),{positions:u,indices:p,verticesPerFace:d}}function wA(r,t,e,n){ti===void 0&&(ti=Se.init_csg());let o=tg(r),i=Se.csg_calc(ti,o,r.length,n,rg(t));Se._free(o);let a=5,s=Se.HEAPU32.subarray(i>>2,(i>>2)+a),l=s.subarray(2,2+3),u=0,c=Se.HEAPU32[s[u]>>2],p=Se.HEAPF32.subarray(c>>2,(c>>2)+l[u]);u++;let f=Se.HEAPU32[s[u]>>2],d=Se.HEAPF32.subarray(f>>2,(f>>2)+l[u]);u++;let h=l[u];e.setAttribute("position",new eg(p,3)),e.setAttribute("normal",new eg(d,3));let m=Se.HEAPF32.subarray((i>>2)+5,(i>>2)+5+6);return e.boundingSphere===null&&(e.boundingSphere=new xA),e.boundingSphere.center.set(m[0],m[1],m[2]),e.boundingSphere.radius=(m[3]**2+m[4]**2+m[5]**2)**.5,e.userData.parameters={width:m[3]*2,height:m[4]*2,depth:m[5]*2},Se.free_mesh_data(i),h}function TA(r,t,e){if(Se===void 0)return-1;let n,o,i;if(t&&r.userData.positions!==void 0){let g=r.userData;i=g.verticesPerFace.length,n=g.positions,o=Array(g.verticesPerFace.reduce((v,x)=>v+x,0)+i);for(let v=0,x=0,S=0;v<g.verticesPerFace.length;v++){o[S++]=g.verticesPerFace[v];for(let w=0;w<g.verticesPerFace[v];w++)o[S++]=g.indices[x++]}}else({positions:n,faceIndices:o,nFaces:i}=bA(r,t,e));let a=n.length,s=o.length,l=n.length,u=o.length,c=l*Float32Array.BYTES_PER_ELEMENT+u*Uint32Array.BYTES_PER_ELEMENT,p=l*Float32Array.BYTES_PER_ELEMENT,f=u*Uint32Array.BYTES_PER_ELEMENT,d=Se._malloc(c),h=new Float32Array(Se.HEAPF32.buffer,d,l),m=new Uint32Array(Se.HEAPU32.buffer,d+p,u);return h.set(n,0),m.set(o,0),Se.get_csg_mesh(d,a,d+p,s,i)}function CA(r,t){Se.transform_csg_mesh(r,t.elements)}function AA(r){Se.free_csg_mesh(r)}var bu={ConeGeometry:cm,CubeGeometry:um,CylinderGeometry:lm,DodecahedronGeometry:pm,EllipseGeometry:vm,HelixGeometry:Tm,IcosahedronGeometry:Cm,LatheGeometry:Am,NonParametricGeometry:Em,PolygonGeometry:Dm,PyramidGeometry:Bm,RectangleGeometry:Fm,SphereGeometry:Rm,PlaneGeometry:km,BackdropGeometry:Gm,StarGeometry:Um,TextFrameGeometry:Vm,TorusGeometry:zm,TorusKnotGeometry:jm,TriangleGeometry:Hm,VectorGeometry:pt},na=r=>bu[r.type].create(r);import{Matrix4 as ug}from"three";import{Object3D as IA,Matrix4 as LA}from"three";import{HemisphereLight as ng}from"three";function it(r,t){return t.color(r)}var Su=r=>"isEntity"in r,Or=r=>"isAbstractMesh"in r,Ir=r=>r!==null&&r.objectType==="BooleanObject",og=r=>r.objectType==="CombinedCamera";var yl=r=>"objectHelper"in r;function _A(r,t){let e=!1;t.position&&(r.position.fromArray(t.position),e=!0),t.rotation&&(r.rotation.fromArray(t.rotation),e=!0),t.scale&&(e=!0,r.scale.fromArray(t.scale)),t.hiddenMatrix!==void 0&&"hiddenMatrix"in r&&(e=!0,r.hiddenMatrix.fromArray(t.hiddenMatrix??fn.identity)),e&&(r.updateMatrix(),Ir(r.parent)&&Or(r)&&r.invalidateDownstreamBooleanData(!0).recomputeBoolean()),t.position&&t.rotation&&t.scale&&t.hiddenMatrix!==void 0&&r.updateWorldMatrix(!1,!0),r.objectType==="CombinedCamera"&&(t.isUpVectorFlipped!==void 0&&(r.isUpVectorFlipped=t.isUpVectorFlipped),r.updateUp())}function OA(r,t){_A(r,t),t.name!==void 0&&(r.name=t.name),t.visible!==void 0&&(r.visible=t.visible)}function ig(r,t,e){OA(r,t),t.color!==void 0&&(r.color=it(t.color,e)),t.intensity!==void 0&&(r.intensity=t.intensity),t.shadows!==void 0&&!(r instanceof ng)&&(r.castShadow=t.shadows),r.shadow&&!(r instanceof ng)&&t.depth!==void 0&&(r.shadow.camera.far=t.depth,r.shadow.needsUpdate=!0)}function ag(r,t){r.shadow.camera.right=t/2,r.shadow.camera.left=-t/2,r.shadow.camera.top=t/2,r.shadow.camera.bottom=-t/2,r.shadow.needsUpdate=!0}var vl=r=>class extends r{hasEntityChild(){return this.children.some(e=>Su(e))}isDescendantOf(e){e instanceof IA&&(e=e.uuid);let n=this;for(;n.parent;){if(n.parent.uuid===e)return!0;n=n.parent}return!1}attach(e,n){this.updateWorldMatrix(!0,!1);let o=new LA().copy(this.matrixWorld).invert();return e.parent!==null&&(e.parent.updateWorldMatrix(!0,!1),o.multiply(e.parent.matrixWorld)),Su(e)?e.hiddenMatrix.premultiply(o):e.applyMatrix4(o),e.updateWorldMatrix(!1,!1),this.add(e),n!==void 0&&(this.children.pop(),this.children.splice(n,0,e)),this}copy(e,n=!0){if(this.name=e.name,this.up.copy(e.up),this.position.copy(e.position),this.rotation.order=e.rotation.order,this.quaternion.copy(e.quaternion),this.scale.copy(e.scale),this.matrix.copy(e.matrix),this.matrixWorld.copy(e.matrixWorld),this.matrixAutoUpdate=e.matrixAutoUpdate,this.matrixWorldNeedsUpdate=e.matrixWorldNeedsUpdate,this.layers.mask=e.layers.mask,this.visible=e.visible,this.castShadow=e.castShadow,this.receiveShadow=e.receiveShadow,this.frustumCulled=e.frustumCulled,this.renderOrder=e.renderOrder,this.userData=JSON.parse(JSON.stringify(e.userData)),n===!0)for(let o=0;o<e.children.length;o++){let i=e.children[o];this.add(i.clone())}return this}};import{Box3 as lg,Line3 as NA,Matrix4 as wu,Vector3 as Xt}from"three";var ri=new lg,nr=new Xt,Lr=new Xt,ni=new wu,cg=[new Xt(-1,1,1),new Xt(-1,-1,1),new Xt(1,-1,1),new Xt(1,1,1),new Xt(-1,1,-1),new Xt(-1,-1,-1),new Xt(1,-1,-1),new Xt(1,1,-1)],PA=[[0,3],[1,2],[5,6],[4,7],[0,1],[3,2],[7,6],[4,5],[0,4],[1,5],[2,6],[3,7]],MA=[[0,2],[7,5],[4,1],[3,6],[4,3],[1,6]];function EA(r,t,e=0,n=t.count){let o=1/0,i=1/0,a=1/0,s=-1/0,l=-1/0,u=-1/0;for(let c=e;c<n;c++){let p=t.getX(c),f=t.getY(c),d=t.getZ(c);p<o&&(o=p),f<i&&(i=f),d<a&&(a=d),p>s&&(s=p),f>l&&(l=f),d>u&&(u=d)}return r.min.set(o,i,a),r.max.set(s,l,u),r}var sg=(r,t,e)=>{if(Or(r)){let n=r.geometry.userData.parameters,o=r.geometry.getAttribute("position");r.geometry.userData.type==="SubdivGeometry"?nr.copy(r.originalGeometry.boundingSphere.center):r.geometry.userData.type==="TextGeometry"?nr.set(0,0,n.depth*.5):o!==void 0&&(EA(ri,o,r.geometry.drawRange.start,r.geometry.drawRange.count<1/0?r.geometry.drawRange.count:o.count),ri.getCenter(nr)),r.forceComputeSize?ri.getSize(Lr).multiplyScalar(.5):Lr.set(n.width,n.height,n.depth??0).multiplyScalar(.5)}else if(yl(r)&&r.objectHelper.visible){let n=r.geometryHelper.getAttribute("position");ri.setFromArray(n.array),ri.getCenter(nr),ri.getSize(Lr).multiplyScalar(.5)}else nr.setScalar(0),Lr.setScalar(0);ni.copy(t).multiply(r.matrixWorld),Lr.x===0&&Lr.y===0&&Lr.z===0?e.push(new Xt(nr.x,nr.y,nr.z).applyMatrix4(ni)):cg.forEach(n=>{e.push(n.clone().multiply(Lr).add(nr).applyMatrix4(ni))})},oa=class extends lg{constructor(){super(...arguments);this.matrix=new wu;this.vertices=[];this.faces=[];this.edges=[];this.centerEdges=[]}copy(e){return super.copy(e),this.matrix.copy(e.matrix),this.vertices=e.vertices.map(n=>n.clone()),this.faces=e.faces.map(n=>n.clone()),this.edges=e.edges.map(n=>n.clone()),this.centerEdges=e.centerEdges.map(n=>n.clone()),this}setFromObjectSize(e,n=!1){e.updateWorldMatrix(!1,n),this.makeEmpty(),this.matrix.copy(e.matrixWorld);let o=new wu().copy(e.matrixWorld).invert();return this.expandByObjectSize(e,o,n)}expandByObjectSize(e,n,o=!1){let i=[];return o===!0?e.traverseEntity(a=>{a.visible&&sg(a,n,i)}):sg(e,n,i),this.setFromPoints(i)}getCenter(e){return e=super.getCenter(e),e.applyMatrix4(this.matrix),e}getPositionToCenter(e){return e=super.getCenter(e),e.applyMatrix4(ni.copy(this.matrix).setPosition(0,0,0)),e}computeVertices(){this.getSize(Lr).multiplyScalar(.5),this.getCenter(nr),ni.copy(this.matrix).setPosition(nr),this.vertices=cg.map(e=>e.clone().multiply(Lr).applyMatrix4(ni))}computeEdges(){this.vertices.length>0&&this.computeVertices(),this.edges=PA.map(([e,n])=>new NA(this.vertices[e],this.vertices[n])),this.centerEdges=this.edges.map(e=>e.getCenter(new Xt))}computeFaces(){this.vertices.length>0&&this.computeVertices(),this.faces=MA.map(([e,n])=>this.vertices[e].clone().add(this.vertices[n]).multiplyScalar(.5))}};var Nr=r=>"isEntity"in r,pg=r=>"isAbstractMesh"in r,Yt=r=>class extends vl(r){constructor(){super(...arguments);this.objectType="";this.isEntity=!0;this.raycastLock=!1;this.scaleLock=!1;this.hiddenMatrix=new ug;this._singleBBox=new oa;this._recursiveBBox=new oa;this.singleBBoxNeedsUpdate=!0;this.recursiveBBoxNeedsUpdate=!0;this.forceComputeSize=!1;this.states={};this.currentState=null;this.currentTransitionAction=null}get singleBBox(){return this.singleBBoxNeedsUpdate&&(this.singleBBoxNeedsUpdate=!1,this._singleBBox.setFromObjectSize(this,!1),this._singleBBox.computeVertices(),this._singleBBox.computeEdges(),this._singleBBox.computeFaces()),this._singleBBox}get recursiveBBox(){return this.recursiveBBoxNeedsUpdate&&(this.recursiveBBoxNeedsUpdate=!1,this._recursiveBBox.setFromObjectSize(this,!0),this._recursiveBBox.computeVertices(),this._recursiveBBox.computeEdges(),this._recursiveBBox.computeFaces()),this._recursiveBBox}resetBBoxNeedsUpdate(){this.singleBBoxNeedsUpdate=!0,this.recursiveBBoxNeedsUpdate=!0,this.traverseAncestors(n=>{Nr(n)&&(n.singleBBoxNeedsUpdate=!0,n.recursiveBBoxNeedsUpdate=!0)}),this.traverseEntity(n=>{n.singleBBoxNeedsUpdate=!0,n.recursiveBBoxNeedsUpdate=!0})}traverseEntity(n){n(this);for(let o of this.children)Nr(o)&&o.traverseEntity(n)}traverseVisibleEntity(n){n(this);for(let o of this.children)Nr(o)&&o.visible&&o.traverseVisibleEntity(n)}updateMatrix(){super.updateMatrix(),this.dispatchEvent({type:"updateMatrix"})}updateMatrixWorld(n){this.matrixAutoUpdate&&this.updateMatrix(),(this.matrixWorldNeedsUpdate||n)&&(this.parent===null?this.matrixWorld.multiplyMatrices(this.hiddenMatrix,this.matrix):(this.matrixWorld.multiplyMatrices(this.parent.matrixWorld,this.hiddenMatrix),this.matrixWorld.multiplyMatrices(this.matrixWorld,this.matrix)),this.matrixWorldNeedsUpdate=!1,n=!0);for(let o of this.children)o.updateMatrixWorld(n)}updateWorldMatrix(n,o){let i=this.parent;if(n&&i!==null&&i.updateWorldMatrix(!0,!1),this.matrixAutoUpdate&&this.updateMatrix(),this.parent===null?this.matrixWorld.multiplyMatrices(this.hiddenMatrix,this.matrix):(this.matrixWorld.multiplyMatrices(this.parent.matrixWorld,this.hiddenMatrix),this.matrixWorld.multiplyMatrices(this.matrixWorld,this.matrix)),o)for(let a of this.children)a.updateWorldMatrix(!1,!0)}clone(n){return new this.constructor().copy(this,n)}copy(n,o=!0){if(super.copy(n,!1),this.raycastLock=n.raycastLock,this.scaleLock=n.scaleLock,this.hiddenMatrix.copy(n.hiddenMatrix),o===!0)for(let i of n.children)Nr(i)&&this.add(i.clone());return this}keepChildrenMatrixWorld(){let n=new ug,o=this.matrixWorld.clone();this.updateWorldMatrix(!1,!1),n.copy(this.matrixWorld).invert(),n.multiply(o);for(let i of this.children)Nr(i)&&i.hiddenMatrix.premultiply(n)}toObjectTransformState(n=[]){this.updateWorldMatrix(!0,!1);let o={position:this.position.toArray(),rotation:[this.rotation.x,this.rotation.y,this.rotation.z],scale:this.scale.toArray(),hiddenMatrix:this.hiddenMatrix.toArray()};return ko(o,n)}fromObjectTransformState(n){return n.position&&this.position.fromArray(n.position),n.rotation&&this.rotation.fromArray(n.rotation),n.scale&&this.scale.fromArray(n.scale),n.hiddenMatrix&&this.hiddenMatrix.fromArray(n.hiddenMatrix),this.updateMatrix(),this}toState(n=[]){let o={name:this.name,visible:this.visible,raycastLock:this.raycastLock,...this.toObjectTransformState(n)};return ko(o,n)}fromState(n,o){return n.name&&(this.name=n.name),n.raycastLock!==void 0&&(this.raycastLock=n.raycastLock),n.type!=="OrthographicCamera"&&n.type!=="PerspectiveCamera"&&(this.matrixAutoUpdate=!1),n.visible!==void 0&&(this.visible=n.visible),this.fromObjectTransformState(n),this}};import{NormalBlending as T_,ShaderMaterial as C_}from"three";import{CubeReflectionMapping as WA,CubeRefractionMapping as qA,CubeUVReflectionMapping as XA,LinearEncoding as mg,sRGBEncoding as YA}from"three";var ia=class{constructor(t){t=t??{},this.name=t.name,this.type=t.type,this.node=t.node,this.size=t.size,this.needsUpdate=t.needsUpdate}get value(){return this.node.value}set value(t){this.node.value=t}};import{MathUtils as DA}from"three";var at=class{constructor(t){this.hashProperties=void 0;this.isNode=!0;this.shortcuts={};this.uuid=DA.generateUUID(),this.type=t,this.name=""}analyze(t,e){e=e??{},t.analyzing=!0,this.build(t.addFlow(e.slot,e.cache,e.context),"v4"),t.clearVertexNodeCode(),t.clearFragmentNodeCode(),t.removeFlow(),t.analyzing=!1}analyzeAndFlow(t,e,n){return n=n??{},this.analyze(t,n),this.flow(t,e,n)}flow(t,e,n){n=n??{},t.addFlow(n.slot,n.cache,n.context);let o={result:this.build(t,e),code:t.clearNodeCode(),extra:t.context.extra};return t.removeFlow(),o}build(t,e,n){e=e??this.getType(t,e);let o=t.getNodeData(n??this);return t.analyzing&&this.appendDepsNode(t,o,e),t.nodes.indexOf(this)===-1&&t.nodes.push(this),this.updateFrame!==void 0&&t.updaters.indexOf(this)===-1&&t.updaters.push(this),this.generate(t,e,n)}updateFrame(t){}generateReadonly(t,e,n,o,i,a){return""}generate(t,e,n,o,i){return""}parse(t,e,n,o){}appendDepsNode(t,e,n){e.deps=(e.deps||0)+1;let o=t.getTypeLength(n);(o>(e.outputMax||0)||this.getType(t,n))&&(e.outputMax=o,e.output=n)}setName(t){this.name=t}getName(){return this.name}getType(t,e){return e==="sampler2D"||e==="samplerCube"?e:this.type}getHash(){let t="{",e,n;for(e in this)n=this[e],n instanceof at&&(t+='"'+e+'":'+n.getHash()+",");if(this.hashProperties)for(let o=0;o<this.hashProperties.length;o++)e=this.hashProperties[o],n=this[e],t+='"'+e+'":"'+String(n)+'",';return t+='"id":"'+this.uuid+'"}',t}};var Tu=class{constructor(){this.nodes={};this.keywords={}}add(t){this.nodes[t.name]=t}addKeyword(t,e,n){n=n!==void 0?n:!0,this.keywords[t]={callback:e,cache:n}}remove(t){delete this.nodes[t.name]}removeKeyword(t){delete this.keywords[t]}get(t){return this.nodes[t]}getKeyword(t,e){return this.keywords[t].callback(e)}getKeywordData(t){return this.keywords[t]}contains(t){return this.nodes[t]!==void 0}containsKeyword(t){return this.keywords[t]!==void 0}},Qe=new Tu;import{Vector2 as fg}from"three";import{MathUtils as BA}from"three";var de=class extends at{constructor(e,n){super(e);this.scope="";n=n??{},this.shared=n.shared!==void 0?n.shared:!0,this.unique=n.unique!==void 0?n.unique:!1}build(e,n,o,i){if(n=n??this.getType(e),this.getShared(e,n)){let a=this.getUnique(e,n);a&&this.uuid===void 0&&(this.uuid=BA.generateUUID()),o=e.getUUID(o??this.getUUID(),!a);let s=e.getNodeData(o),l=s.output||this.getType(e);if(e.analyzing)return(s.deps||0)>0||this.getLabel()?(this.appendDepsNode(e,s,n),this.generate(e,n,o)):super.build(e,n,o);if(a)return s.name=s.name||super.build(e,n,o),s.name;if(!this.getLabel()&&(!this.getShared(e,l)||e.context.ignoreCache||s.deps===1))return super.build(e,n,o);o=this.getUUID(!1);let u=this.getTemp(e,o);if(u)return e.format(u,l,n);{u=super.generate(e,n,o,s.output,i);let c=this.generate(e,l,o);return e.addNodeCode(u+" = "+c+";"),e.format(u,l,n)}}return super.build(e,n,o)}getShared(e,n){return n!=="sampler2D"&&n!=="samplerCube"&&this.shared}getUnique(e,n){return this.unique}setLabel(e){return this.label=e,this}getLabel(){return this.label}getUUID(e){let n=this.uuid;return typeof this.scope=="string"&&(n=this.scope+"-"+n),n}getTemp(e,n){n=n||this.uuid;let o=e.getVars()[n];return o?o.name:void 0}generate(e,n,o,i,a){return this.getShared(e,n)||console.error("TempNode is not shared"),o=o??this.uuid,e.getTempVar(o,i??this.getType(e),a,this.getLabel()).name}};var Fe=class extends de{constructor(e,n){n=n??{},n.shared=n.shared!==void 0?n.shared:!1;super(e,n);this.readonly=!1}setReadonly(e){return this.readonly=e,this.hashProperties=this.readonly?["value"]:void 0,this}getReadonly(){return this.readonly}generate(e,n,o,i,a,s){o=e.getUUID(o??this.getUUID()),i=i??this.getType(e);let l=e.getNodeData(o);return this.getReadonly()&&this.generateReadonly!==void 0?this.generateReadonly(e,n,o,i,a,s):e.isShader("vertex")?(l.vertex||(l.vertex=e.createVertexUniform(i,this,a,s,this.getLabel())),e.format(l.vertex.name,i,n)):(l.fragment||(l.fragment=e.createFragmentUniform(i,this,a,s,this.getLabel())),e.format(l.fragment.name,i,n))}};var st=class extends Fe{constructor(e=0,n){super("v2");this.nodeType="Vector2";this.value=e instanceof fg?e:new fg(e,n)}get x(){return this.value.x}set x(e){this.value.x=e}get y(){return this.value.y}set y(e){this.value.y=e}generateReadonly(e,n,o,i,a,s){return e.format("vec2("+this.value.x+", "+this.value.y+")",i,n)}};import{Vector3 as dg}from"three";var ft=class extends Fe{constructor(e=0,n,o){super("v3");this.nodeType="Vector3";this.value=e instanceof dg?e:new dg(e,n,o)}get x(){return this.value.x}set x(e){this.value.x=e}get y(){return this.value.y}set y(e){this.value.y=e}get z(){return this.value.z}set z(e){this.value.z=e}generateReadonly(e,n,o,i,a,s){return e.format("vec3("+this.value.x+", "+this.value.y+", "+this.value.z+")",i,n)}};import{Color as FA}from"three";var Je=class extends FA{constructor(e,n,o,i){super(e,n,o);this.isColorA=!0;this.a=i}setRGBA(e,n,o,i){super.setRGB(e,n,o),this.a=i}copy(e){return super.copy(e),this.a="a"in e?e.a:1,this}clone(){return new this.constructor(this.r,this.g,this.b,this.a)}get x(){return this.r}get y(){return this.g}get z(){return this.b}get w(){return this.a}set x(e){this.r=e}set y(e){this.g=e}set z(e){this.b=e}set w(e){this.a=e}};var $t=class extends Fe{constructor(e){super("v4");this.nodeType="Vector4";this.value=e instanceof Je?e:new Je(e.r,e.g,e.b,e.a)}generateReadonly(e,n,o,i,a,s){return e.format("vec4("+this.value.r+", "+this.value.g+", "+this.value.b+", "+this.value.a+")",i,n)}};var RA=/^\s*([a-z_0-9]+)\s([a-z_0-9]+)\s*\((.*?)\)/i,hg=/[a-z_0-9]+/gi,Z=class extends de{constructor(e,n,o,i,a){super(a);this.src="";this.nodeType="Function";this.useKeywords=!0;this.includes=[];this.extensions={};this.keywords={};this.isMethod=a===void 0,this.isInterface=!1,this.parse(e,n,o,i)}getShared(e,n){return!this.isMethod}getType(e){return e.getTypeByFormat(this.type)}getInputByName(e){if(this.inputs){let n=this.inputs.length;for(;n--;)if(this.inputs[n].name===e)return this.inputs[n]}}getIncludeByName(e){if(this.includes){let n=this.includes.length;for(;n--;)if(this.includes[n].name===e)return this.includes[n]}}generate(e,n,o,i,a){let s,l=0,u=this.src;if(this.includes)for(let p=0;p<this.includes.length;p++)e.include(this.includes[p],this);for(let p in this.extensions)e.extensions[p]=!0;let c=[];for(;s=hg.exec(this.src);)c.push(s);for(let p=0;p<c.length;p++){let f=c[p],d=f[0],h=this.isMethod?!this.getInputByName(d):!0,m=d;if(this.keywords[d]||this.useKeywords&&h&&Qe.containsKeyword(d)){let g=this.keywords[d];if(!g){let v=Qe.getKeywordData(d);v.cache&&(g=e.keywords[d]),g=g||Qe.getKeyword(d,e),v.cache&&(e.keywords[d]=g)}m=g.build(e)}d!==m&&u[f.index+l-1]!=="."&&(u=u.substring(0,f.index+l)+m+u.substring(f.index+d.length+l),l+=m.length-d.length),this.getIncludeByName(m)===void 0&&Qe.contains(m)&&e.include(Qe.get(m))}return n==="source"?u:this.isMethod?(this.isInterface||e.include(this,void 0,u),this.name):e.format("( "+u+" )",this.getType(e),n)}parse(e,n,o,i){if(this.src=e||"",this.includes=n??[],this.extensions=o??{},this.keywords=i??{},this.isMethod){let a=RA.exec(this.src);if(this.inputs=[],a&&a.length==4){this.type=a[1],this.name=a[2];let s=a[3].match(hg);if(s){let l=0;for(;l<s.length;){let u=s[l++],c;u==="in"||u==="out"||u==="inout"?c=s[l++]:(c=u,u="");let p=s[l++];this.inputs.push({name:p,type:c,qualifier:u})}}this.isInterface=this.src.indexOf("{")===-1}else this.type="",this.name=""}}};var kA=/^([a-z_0-9]+)\s([a-z_0-9]+)\s?\=?\s?(.*?)(\;|$)/i,Cu=class extends de{constructor(e="",n){super();this.src="";this.useDefine=!1;this.nodeType="Const";this.parse(e||Cu.PI,void 0,void 0,void 0,n)}getType(e){return e.getTypeByFormat(this.type)}parse(e,n,o,i,a){this.src=e||"";let s,l,u="",c=kA.exec(e);this.useDefine=a??this.src.charAt(0)==="#",c&&c.length>1?(l=c[1],s=c[2],u=c[3]):(s=this.src,l="f"),this.name=s,this.type=l,this.value=u}build(e,n){if(n==="source"){if(this.value)return this.useDefine?"#define "+this.name+" "+this.value:"const "+this.type+" "+this.name+" = "+this.value+";";if(this.useDefine)return this.src}return e.include(this),e.format(this.name,this.getType(e),n)}generate(e,n,o,i,a){return e.format(this.name,this.getType(e),n)}},Ce=Cu;Ce.PI="PI",Ce.PI2="PI2",Ce.RECIPROCAL_PI="RECIPROCAL_PI",Ce.RECIPROCAL_PI2="RECIPROCAL_PI2",Ce.LOG2="LOG2",Ce.EPSILON="EPSILON";var GA=new RegExp(`^structs*([a-z_0-9]+)s*{s*((.|
4
+ )*?)}`,"gim"),UA=new RegExp("s*(w*?)s*(w*?)(=|;)","gim"),oi=class extends de{constructor(e=""){super();this.inputs=[];this.src="";this.nodeType="Struct";this.parse(e)}getType(e){return e.getTypeByFormat(this.name)}getInputByName(e){let n=this.inputs.length;for(;n--;)if(this.inputs[n].name===e)return this.inputs[n]}generate(e,n,o,i,a){return n==="source"?this.src+";":e.format("( "+this.src+" )",this.getType(e),n)}parse(e=""){this.src=e,this.inputs=[];let n=GA.exec(e);if(n){let o=n[2],i;for(;i=UA.exec(o);)this.inputs.push({type:i[1],name:i[2]});this.name=n[1]}else this.name="";this.type=this.name}};var ii=class extends de{constructor(e){super("v2",{shared:!1});this.nodeType="UV";this.index=e??0}generate(e,n){e.requires.uv[this.index]=!0;let o=this.index>0?this.index+1:"",i=e.isShader("vertex")?"uv"+o:"vUv"+o;return e.format(i,this.getType(e),n)}};Qe.addKeyword("uv",function(){return new ii});Qe.addKeyword("uv2",function(){return new ii(1)});import{LinearEncoding as VA,sRGBEncoding as zA}from"three";var Qn=class extends de{constructor(e,n){super("v4");this.nodeType="ColorSpace";this.input=e,this.method=n??Qn.LINEAR_TO_LINEAR,this.hashProperties=["method"]}static getEncodingComponents(e){switch(e){case VA:return["Linear"];case zA:return["sRGB"];default:return[]}}generate(e,n){let o=this.input.build(e,"v4"),i=this.getType(e),a=Qn.Nodes[this.method],s=e.include(a);if(s===Qn.LINEAR_TO_LINEAR)return e.format(o,i,n);if(a.inputs?.length===2){let l=this.factor.build(e,"f");return e.format(s+"( "+o+", "+l+" )",i,n)}else return e.format(s+"( "+o+" )",i,n)}fromEncoding(e){let n=Qn.getEncodingComponents(e);this.method="LinearTo"+n[0],this.factor=n[1]}fromDecoding(e){let n=Qn.getEncodingComponents(e);this.method=n[0]+"ToLinear",this.factor=n[1]}},bt=Qn;bt.Nodes={LinearToLinear:new Z(["vec4 LinearToLinear( in vec4 value ) {"," return value;","}"].join(`
3
5
  `)),sRGBToLinear:new Z(["vec4 sRGBToLinear( in vec4 value ) {"," return vec4( mix( pow( value.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), value.rgb * 0.0773993808, vec3( lessThanEqual( value.rgb, vec3( 0.04045 ) ) ) ), value.w );","}"].join(`
4
6
  `)),LinearTosRGB:new Z(["vec4 LinearTosRGB( in vec4 value ) {"," return vec4( mix( pow( value.rgb, vec3( 0.41666 ) ) * 1.055 - vec3( 0.055 ), value.rgb * 12.92, vec3( lessThanEqual( value.rgb, vec3( 0.0031308 ) ) ) ), value.w );","}"].join(`
5
- `))},bt.LINEAR_TO_LINEAR="LinearToLinear",bt.SRGB_TO_LINEAR="sRGBToLinear",bt.LINEAR_TO_SRGB="LinearTosRGB";var Ie=class extends Z{constructor(e="",n,o,i,a){super(e,a,i,o,n);this.nodeType="Expression"}};import{Texture as GA}from"three";var Ot=class extends Be{constructor(e=new GA,n,o,i){super("v4",{shared:!0});this.nodeType="Texture";this.value=e,this.uv=n??new ni,this.bias=o,this.project=i!==void 0?i:!1}getTexture(e,n){return super.generate(e,n,this.value.uuid,"t")}generate(e,n){if(n==="sampler2D")return this.getTexture(e,n);let o=this.getTexture(e,n),i=this.uv.build(e,this.project?"v4":"v2"),a=this.bias?this.bias.build(e,"f"):void 0;a===void 0&&e.context.bias&&(a=e.context.bias.setTexture(this).build(e,"f"));let s,l;this.project?s="texture2DProj":s=a?"tex2DBias":"tex2D",a?l=s+"( "+o+", "+i+", "+a+" )":l=s+"( "+o+", "+i+" )";let u={include:e.isShader("vertex"),ignoreCache:!0},c=this.getType(e);return e.addContext(u),this.colorSpace=this.colorSpace??new bt(new Ie("",c)),this.colorSpace.fromDecoding(e.getTextureEncodingFromMap(this.value)),this.colorSpace.input.parse(l),l=this.colorSpace.build(e,c),e.removeContext(),e.format(l,c,n)}};var J=class extends Be{constructor(e){super("f");this.nodeType="Float";this.value=e??0}generateReadonly(e,n,o,i,a,s){return e.format(this.value+(this.value%1?"":".0"),i,n)}};var ia=class extends de{constructor(e,n){super();this.inputs=[];this.nodeType="FunctionCall";this.value=e,this.inputs=n??[]}getFunction(){return this.value}getType(e){return this.value.getType(e)}generate(e,n,o,i,a){i=this.getType(e);let s=this.value,l=s.build(e,n)+"( ",u=[];if(s.inputs){for(let c=0;c<s.inputs.length;c++){let p=s.inputs[c],f=this.inputs[c]||this.inputs[p.name];u.push(f.build(e,e.getTypeByFormat(p.type)))}l+=u.join(", ")+" )"}return e.format(l,i,n)}};var Cu=class extends de{constructor(e,n,o=Cu.ADD){super();this.nodeType="Operator";this.type=e.type,this.a=e,this.b=n,this.op=o}getType(e){let n=this.a.getType(e),o=this.b.getType(e);return e.isTypeMatrix(n)?"v4":e.getTypeLength(o)>e.getTypeLength(n)?o:n}generate(e,n){let o=this.getType(e);this.type=o;let i=this.a.build(e,o),a=this.b.build(e,o);return e.format("( "+i+" "+this.op+" "+a+" )",o,n)}},Lt=Cu;Lt.ADD="+",Lt.SUB="-",Lt.MUL="*",Lt.DIV="/";var Me=class extends de{constructor(e,n=Me.ABS,o,i){super();this.nodeType="Math";this.a=e,typeof n!="string"?this.b=n:i=n,typeof o!="string"?this.c=o:i=o,this.method=i,this.hashProperties=["method"]}getNumInputs(e){switch(this.method){case Me.MIX:case Me.CLAMP:case Me.REFRACT:case Me.SMOOTHSTEP:case Me.FACEFORWARD:return 3;case Me.MIN:case Me.MAX:case Me.MOD:case Me.STEP:case Me.REFLECT:case Me.DISTANCE:case Me.DOT:case Me.CROSS:case Me.POW:return 2;default:return 1}}getInputType(e){let n=e.getTypeLength(this.a.getType(e)),o=this.b?e.getTypeLength(this.b.getType(e)):0,i=this.c?e.getTypeLength(this.c.getType(e)):0;return n>o&&n>i?this.a.getType(e):o>i?this.b.getType(e):this.c.getType(e)}getType(e){switch(this.method){case Me.LENGTH:case Me.DISTANCE:case Me.DOT:return"f";case Me.CROSS:return"v3"}return this.getInputType(e)}generate(e,n){let o,i,a,s=this.a?e.getTypeLength(this.a.getType(e)):0,l=this.b?e.getTypeLength(this.b.getType(e)):0,u=this.c?e.getTypeLength(this.c.getType(e)):0,c=this.getInputType(e),p=this.getType(e);switch(this.type=p,this.method){case Me.NEGATE:return e.format("( -"+this.a.build(e,c)+" )",c,n);case Me.INVERT:return e.format("( 1.0 - "+this.a.build(e,c)+" )",c,n);case Me.CROSS:o=this.a.build(e,"v3"),i=this.b.build(e,"v3");break;case Me.STEP:o=this.a.build(e,s===1?"f":c),i=this.b.build(e,c);break;case Me.MIN:case Me.MAX:case Me.MOD:o=this.a.build(e,c),i=this.b.build(e,l===1?"f":c);break;case Me.REFRACT:o=this.a.build(e,c),i=this.b.build(e,c),a=this.c.build(e,"f");break;case Me.MIX:o=this.a.build(e,c),i=this.b.build(e,c),a=this.c.build(e,u===1?"f":c);break;default:o=this.a.build(e,c),this.b&&(i=this.b.build(e,c)),this.c&&(a=this.c.build(e,c));break}let f=[];f.push(o),i&&f.push(i),a&&f.push(a);let d=this.getNumInputs(e);if(f.length!==d)throw Error(`Arguments not match used in "${this.method}". Require ${d}, currently ${f.length}.`);return e.format(this.method+"( "+f.join(", ")+" )",p,n)}},ye=Me;ye.RAD="radians",ye.DEG="degrees",ye.EXP="exp",ye.EXP2="exp2",ye.LOG="log",ye.LOG2="log2",ye.SQRT="sqrt",ye.INV_SQRT="inversesqrt",ye.FLOOR="floor",ye.CEIL="ceil",ye.NORMALIZE="normalize",ye.FRACT="fract",ye.SATURATE="saturate",ye.SIN="sin",ye.COS="cos",ye.TAN="tan",ye.ASIN="asin",ye.ACOS="acos",ye.ARCTAN="atan",ye.ABS="abs",ye.SIGN="sign",ye.LENGTH="length",ye.NEGATE="negate",ye.INVERT="invert",ye.MIN="min",ye.MAX="max",ye.MOD="mod",ye.STEP="step",ye.REFLECT="reflect",ye.DISTANCE="distance",ye.DOT="dot",ye.CROSS="cross",ye.POW="pow",ye.MIX="mix",ye.CLAMP="clamp",ye.REFRACT="refract",ye.SMOOTHSTEP="smoothstep",ye.FACEFORWARD="faceforward";var oi=class extends de{constructor(e,n,o){super("v4");this.nodeType="TextureCubeUV";this.value=e,this.uv=n,this.bias=o}bilinearCubeUV(e,n,o,i){let a=new ia(oi.Nodes.bilinearCubeUV,[n,o,i]);this.colorSpaceTL=this.colorSpaceTL??new bt(new Ie("","v4")),this.colorSpaceTL.fromDecoding(e.getTextureEncodingFromMap(this.value.value)),this.colorSpaceTL.input.parse(a.build(e)+".tl"),this.colorSpaceTR=this.colorSpaceTR??new bt(new Ie("","v4")),this.colorSpaceTR.fromDecoding(e.getTextureEncodingFromMap(this.value.value)),this.colorSpaceTR.input.parse(a.build(e)+".tr"),this.colorSpaceBL=this.colorSpaceBL??new bt(new Ie("","v4")),this.colorSpaceBL.fromDecoding(e.getTextureEncodingFromMap(this.value.value)),this.colorSpaceBL.input.parse(a.build(e)+".bl"),this.colorSpaceBR=this.colorSpaceBR??new bt(new Ie("","v4")),this.colorSpaceBR.fromDecoding(e.getTextureEncodingFromMap(this.value.value)),this.colorSpaceBR.input.parse(a.build(e)+".br");let s={include:e.isShader("vertex"),ignoreCache:!0};e.addContext(s),this.colorSpaceTLExp=new Ie(this.colorSpaceTL.build(e,"v4"),"v4"),this.colorSpaceTRExp=new Ie(this.colorSpaceTR.build(e,"v4"),"v4"),this.colorSpaceBLExp=new Ie(this.colorSpaceBL.build(e,"v4"),"v4"),this.colorSpaceBRExp=new Ie(this.colorSpaceBR.build(e,"v4"),"v4"),e.removeContext();let l=new Ie("mix( mix( cubeUV_TL, cubeUV_TR, cubeUV.f.x ), mix( cubeUV_BL, cubeUV_BR, cubeUV.f.x ), cubeUV.f.y )","v4");return l.keywords.cubeUV_TL=this.colorSpaceTLExp,l.keywords.cubeUV_TR=this.colorSpaceTRExp,l.keywords.cubeUV_BL=this.colorSpaceBLExp,l.keywords.cubeUV_BR=this.colorSpaceBRExp,l.keywords.cubeUV=a,l}generate(e,n){if(e.isShader("fragment")){let o=this.uv,i=this.bias||e.context.roughness,a=new ia(oi.Nodes.roughnessToMip,[i]),s=new ye(a,oi.Nodes.m0,oi.Nodes.cubeUV_maxMipLevel,ye.CLAMP),l=new ye(s,ye.FLOOR),u=new ye(s,ye.FRACT),c=this.bilinearCubeUV(e,this.value,o,l),p=this.bilinearCubeUV(e,this.value,o,new Lt(l,new J(1).setReadonly(!0),Lt.ADD)),f=new ye(c,p,u,ye.MIX);return e.format(f.build(e),"v4",n)}else return console.warn("TextureCubeUVNode is not compatible with "+e.shader+" shader."),e.format("vec4( 0.0 )",this.getType(e),n)}},ii=oi;ii.Nodes=function(){let e=new ri(`struct TextureCubeUVData {
7
+ `))},bt.LINEAR_TO_LINEAR="LinearToLinear",bt.SRGB_TO_LINEAR="sRGBToLinear",bt.LINEAR_TO_SRGB="LinearTosRGB";var Ie=class extends Z{constructor(e="",n,o,i,a){super(e,a,i,o,n);this.nodeType="Expression"}};import{Texture as jA}from"three";var It=class extends Fe{constructor(e=new jA,n,o,i){super("v4",{shared:!0});this.nodeType="Texture";this.value=e,this.uv=n??new ii,this.bias=o,this.project=i!==void 0?i:!1}getTexture(e,n){return super.generate(e,n,this.value.uuid,"t")}generate(e,n){if(n==="sampler2D")return this.getTexture(e,n);let o=this.getTexture(e,n),i=this.uv.build(e,this.project?"v4":"v2"),a=this.bias?this.bias.build(e,"f"):void 0;a===void 0&&e.context.bias&&(a=e.context.bias.setTexture(this).build(e,"f"));let s,l;this.project?s="texture2DProj":s=a?"tex2DBias":"tex2D",a?l=s+"( "+o+", "+i+", "+a+" )":l=s+"( "+o+", "+i+" )";let u={include:e.isShader("vertex"),ignoreCache:!0},c=this.getType(e);return e.addContext(u),this.colorSpace=this.colorSpace??new bt(new Ie("",c)),this.colorSpace.fromDecoding(e.getTextureEncodingFromMap(this.value)),this.colorSpace.input.parse(l),l=this.colorSpace.build(e,c),e.removeContext(),e.format(l,c,n)}};var J=class extends Fe{constructor(e){super("f");this.nodeType="Float";this.value=e??0}generateReadonly(e,n,o,i,a,s){return e.format(this.value+(this.value%1?"":".0"),i,n)}};var aa=class extends de{constructor(e,n){super();this.inputs=[];this.nodeType="FunctionCall";this.value=e,this.inputs=n??[]}getFunction(){return this.value}getType(e){return this.value.getType(e)}generate(e,n,o,i,a){i=this.getType(e);let s=this.value,l=s.build(e,n)+"( ",u=[];if(s.inputs){for(let c=0;c<s.inputs.length;c++){let p=s.inputs[c],f=this.inputs[c]||this.inputs[p.name];u.push(f.build(e,e.getTypeByFormat(p.type)))}l+=u.join(", ")+" )"}return e.format(l,i,n)}};var Au=class extends de{constructor(e,n,o=Au.ADD){super();this.nodeType="Operator";this.type=e.type,this.a=e,this.b=n,this.op=o}getType(e){let n=this.a.getType(e),o=this.b.getType(e);return e.isTypeMatrix(n)?"v4":e.getTypeLength(o)>e.getTypeLength(n)?o:n}generate(e,n){let o=this.getType(e);this.type=o;let i=this.a.build(e,o),a=this.b.build(e,o);return e.format("( "+i+" "+this.op+" "+a+" )",o,n)}},Lt=Au;Lt.ADD="+",Lt.SUB="-",Lt.MUL="*",Lt.DIV="/";var Ee=class extends de{constructor(e,n=Ee.ABS,o,i){super();this.nodeType="Math";this.a=e,typeof n!="string"?this.b=n:i=n,typeof o!="string"?this.c=o:i=o,this.method=i,this.hashProperties=["method"]}getNumInputs(e){switch(this.method){case Ee.MIX:case Ee.CLAMP:case Ee.REFRACT:case Ee.SMOOTHSTEP:case Ee.FACEFORWARD:return 3;case Ee.MIN:case Ee.MAX:case Ee.MOD:case Ee.STEP:case Ee.REFLECT:case Ee.DISTANCE:case Ee.DOT:case Ee.CROSS:case Ee.POW:return 2;default:return 1}}getInputType(e){let n=e.getTypeLength(this.a.getType(e)),o=this.b?e.getTypeLength(this.b.getType(e)):0,i=this.c?e.getTypeLength(this.c.getType(e)):0;return n>o&&n>i?this.a.getType(e):o>i?this.b.getType(e):this.c.getType(e)}getType(e){switch(this.method){case Ee.LENGTH:case Ee.DISTANCE:case Ee.DOT:return"f";case Ee.CROSS:return"v3"}return this.getInputType(e)}generate(e,n){let o,i,a,s=this.a?e.getTypeLength(this.a.getType(e)):0,l=this.b?e.getTypeLength(this.b.getType(e)):0,u=this.c?e.getTypeLength(this.c.getType(e)):0,c=this.getInputType(e),p=this.getType(e);switch(this.type=p,this.method){case Ee.NEGATE:return e.format("( -"+this.a.build(e,c)+" )",c,n);case Ee.INVERT:return e.format("( 1.0 - "+this.a.build(e,c)+" )",c,n);case Ee.CROSS:o=this.a.build(e,"v3"),i=this.b.build(e,"v3");break;case Ee.STEP:o=this.a.build(e,s===1?"f":c),i=this.b.build(e,c);break;case Ee.MIN:case Ee.MAX:case Ee.MOD:o=this.a.build(e,c),i=this.b.build(e,l===1?"f":c);break;case Ee.REFRACT:o=this.a.build(e,c),i=this.b.build(e,c),a=this.c.build(e,"f");break;case Ee.MIX:o=this.a.build(e,c),i=this.b.build(e,c),a=this.c.build(e,u===1?"f":c);break;default:o=this.a.build(e,c),this.b&&(i=this.b.build(e,c)),this.c&&(a=this.c.build(e,c));break}let f=[];f.push(o),i&&f.push(i),a&&f.push(a);let d=this.getNumInputs(e);if(f.length!==d)throw Error(`Arguments not match used in "${this.method}". Require ${d}, currently ${f.length}.`);return e.format(this.method+"( "+f.join(", ")+" )",p,n)}},ye=Ee;ye.RAD="radians",ye.DEG="degrees",ye.EXP="exp",ye.EXP2="exp2",ye.LOG="log",ye.LOG2="log2",ye.SQRT="sqrt",ye.INV_SQRT="inversesqrt",ye.FLOOR="floor",ye.CEIL="ceil",ye.NORMALIZE="normalize",ye.FRACT="fract",ye.SATURATE="saturate",ye.SIN="sin",ye.COS="cos",ye.TAN="tan",ye.ASIN="asin",ye.ACOS="acos",ye.ARCTAN="atan",ye.ABS="abs",ye.SIGN="sign",ye.LENGTH="length",ye.NEGATE="negate",ye.INVERT="invert",ye.MIN="min",ye.MAX="max",ye.MOD="mod",ye.STEP="step",ye.REFLECT="reflect",ye.DISTANCE="distance",ye.DOT="dot",ye.CROSS="cross",ye.POW="pow",ye.MIX="mix",ye.CLAMP="clamp",ye.REFRACT="refract",ye.SMOOTHSTEP="smoothstep",ye.FACEFORWARD="faceforward";var ai=class extends de{constructor(e,n,o){super("v4");this.nodeType="TextureCubeUV";this.value=e,this.uv=n,this.bias=o}bilinearCubeUV(e,n,o,i){let a=new aa(ai.Nodes.bilinearCubeUV,[n,o,i]);this.colorSpaceTL=this.colorSpaceTL??new bt(new Ie("","v4")),this.colorSpaceTL.fromDecoding(e.getTextureEncodingFromMap(this.value.value)),this.colorSpaceTL.input.parse(a.build(e)+".tl"),this.colorSpaceTR=this.colorSpaceTR??new bt(new Ie("","v4")),this.colorSpaceTR.fromDecoding(e.getTextureEncodingFromMap(this.value.value)),this.colorSpaceTR.input.parse(a.build(e)+".tr"),this.colorSpaceBL=this.colorSpaceBL??new bt(new Ie("","v4")),this.colorSpaceBL.fromDecoding(e.getTextureEncodingFromMap(this.value.value)),this.colorSpaceBL.input.parse(a.build(e)+".bl"),this.colorSpaceBR=this.colorSpaceBR??new bt(new Ie("","v4")),this.colorSpaceBR.fromDecoding(e.getTextureEncodingFromMap(this.value.value)),this.colorSpaceBR.input.parse(a.build(e)+".br");let s={include:e.isShader("vertex"),ignoreCache:!0};e.addContext(s),this.colorSpaceTLExp=new Ie(this.colorSpaceTL.build(e,"v4"),"v4"),this.colorSpaceTRExp=new Ie(this.colorSpaceTR.build(e,"v4"),"v4"),this.colorSpaceBLExp=new Ie(this.colorSpaceBL.build(e,"v4"),"v4"),this.colorSpaceBRExp=new Ie(this.colorSpaceBR.build(e,"v4"),"v4"),e.removeContext();let l=new Ie("mix( mix( cubeUV_TL, cubeUV_TR, cubeUV.f.x ), mix( cubeUV_BL, cubeUV_BR, cubeUV.f.x ), cubeUV.f.y )","v4");return l.keywords.cubeUV_TL=this.colorSpaceTLExp,l.keywords.cubeUV_TR=this.colorSpaceTRExp,l.keywords.cubeUV_BL=this.colorSpaceBLExp,l.keywords.cubeUV_BR=this.colorSpaceBRExp,l.keywords.cubeUV=a,l}generate(e,n){if(e.isShader("fragment")){let o=this.uv,i=this.bias||e.context.roughness,a=new aa(ai.Nodes.roughnessToMip,[i]),s=new ye(a,ai.Nodes.m0,ai.Nodes.cubeUV_maxMipLevel,ye.CLAMP),l=new ye(s,ye.FLOOR),u=new ye(s,ye.FRACT),c=this.bilinearCubeUV(e,this.value,o,l),p=this.bilinearCubeUV(e,this.value,o,new Lt(l,new J(1).setReadonly(!0),Lt.ADD)),f=new ye(c,p,u,ye.MIX);return e.format(f.build(e),"v4",n)}else return console.warn("TextureCubeUVNode is not compatible with "+e.shader+" shader."),e.format("vec4( 0.0 )",this.getType(e),n)}},si=ai;si.Nodes=function(){let e=new oi(`struct TextureCubeUVData {
6
8
  vec4 tl;
7
9
  vec4 tr;
8
10
  vec4 br;
@@ -67,7 +69,7 @@ var xv=Object.create;var ec=Object.defineProperty;var bv=Object.getOwnPropertyDe
67
69
  uv.x -= texelSize;
68
70
  vec4 bl = texture2D(envMap, uv);
69
71
  return TextureCubeUVData( tl, tr, br, bl, f );
70
- }`,[e,s,l,n,o,i,a]);u.useKeywords=!1;let c=new Ce("float r0 1.0",!0),p=new Ce("float v0 0.339",!0),f=new Ce("float m0 -2.0",!0),d=new Ce("float r1 0.8",!0),h=new Ce("float v1 0.276",!0),m=new Ce("float m1 -1.0",!0),g=new Ce("float r4 0.4",!0),v=new Ce("float v4 0.046",!0),x=new Ce("float m4 2.0",!0),S=new Ce("float r5 0.305",!0),w=new Ce("float v5 0.016",!0),b=new Ce("float m5 3.0",!0),_=new Ce("float r6 0.21",!0),T=new Ce("float v6 0.0038",!0),y=new Ce("float m6 4.0",!0),I=[c,p,f,d,h,m,g,v,x,S,w,b,_,T,y],A=new Z(`float roughnessToMip(float roughness) {
72
+ }`,[e,s,l,n,o,i,a]);u.useKeywords=!1;let c=new Ce("float r0 1.0",!0),p=new Ce("float v0 0.339",!0),f=new Ce("float m0 -2.0",!0),d=new Ce("float r1 0.8",!0),h=new Ce("float v1 0.276",!0),m=new Ce("float m1 -1.0",!0),g=new Ce("float r4 0.4",!0),v=new Ce("float v4 0.046",!0),x=new Ce("float m4 2.0",!0),S=new Ce("float r5 0.305",!0),w=new Ce("float v5 0.016",!0),b=new Ce("float m5 3.0",!0),_=new Ce("float r6 0.21",!0),T=new Ce("float v6 0.0038",!0),y=new Ce("float m6 4.0",!0),O=[c,p,f,d,h,m,g,v,x,S,w,b,_,T,y],A=new Z(`float roughnessToMip(float roughness) {
71
73
  float mip = 0.0;
72
74
  if (roughness >= r1) {
73
75
  mip = (r0 - roughness) * (m1 - m0) / (r0 - r1) + m0;
@@ -81,7 +83,7 @@ var xv=Object.create;var ec=Object.defineProperty;var bv=Object.getOwnPropertyDe
81
83
  mip = -2.0 * log2(1.16 * roughness);// 1.16 = 1.79^0.25
82
84
  }
83
85
  return mip;
84
- }`,I);return{bilinearCubeUV:u,roughnessToMip:A,m0:f,cubeUV_maxMipLevel:n}}();var eo=class extends de{constructor(e){super("v3");this.nodeType="Normal";this.scope=e??eo.VIEW}getShared(){return this.scope===eo.WORLD}build(e,n,o,i){let a=e.context[this.scope+"Normal"];return a?a.build(e,n,o,i):super.build(e,n,o)}generate(e,n,o,i,a){let s;switch(this.scope){case eo.VIEW:e.isShader("vertex")?s="transformedNormal":s="geometryNormal";break;case eo.LOCAL:e.isShader("vertex")?s="objectNormal":(e.requires.normal=!0,s="vObjectNormal");break;case eo.WORLD:e.isShader("vertex")?s="inverseTransformDirection( transformedNormal, viewMatrix ).xyz":(e.requires.worldNormal=!0,s="vWNormal");break}return e.format(s,this.getType(e),n)}},lt=eo;lt.LOCAL="local",lt.WORLD="world",lt.VIEW="view",lt.NORMAL="normal";Qe.addKeyword("viewNormal",function(){return new lt(lt.VIEW)});Qe.addKeyword("localNormal",function(){return new lt(lt.NORMAL)});Qe.addKeyword("worldNormal",function(){return new lt(lt.WORLD)});var Pr=class extends de{constructor(e){super("v3");this.nodeType="Position";this.scope=e??Pr.LOCAL}getType(){switch(this.scope){case Pr.PROJECTION:return"v4"}return this.type}getShader(){switch(this.scope){case Pr.LOCAL:case Pr.WORLD:return!1}return!0}generate(e,n,o,i,a){let s;switch(this.scope){case Pr.LOCAL:e.isShader("vertex")?s="transformed":(e.requires.position=!0,s="vPosition");break;case Pr.WORLD:if(e.isShader("vertex"))return"( modelMatrix * vec4( transformed, 1.0 ) ).xyz";e.requires.worldPosition=!0,s="vWPosition";break;case Pr.VIEW:s=e.isShader("vertex")?"-mvPosition.xyz":"vViewPosition";break;case Pr.PROJECTION:s=e.isShader("vertex")?"( projectionMatrix * modelViewMatrix * vec4( position, 1.0 ) )":"vec4( 0.0 )";break}return e.format(s,this.getType(),n)}},Nt=Pr;Nt.LOCAL="local",Nt.WORLD="world",Nt.VIEW="view",Nt.PROJECTION="projection";Qe.addKeyword("position",function(){return new Nt});Qe.addKeyword("worldPosition",function(){return new Nt(Nt.WORLD)});Qe.addKeyword("viewPosition",function(){return new Nt(Nt.VIEW)});var ir=class extends de{constructor(e){super("v3");this.nodeType="Reflect";this.scope=e??ir.CUBE}getUnique(e){return!e.context.viewNormal}getType(){switch(this.scope){case ir.SPHERE:return"v2"}return this.type}generate(e,n){let o=this.getUnique(e);if(e.isShader("fragment")){let i;switch(this.scope){case ir.VECTOR:{let a=new lt(lt.VIEW),s=e.context.roughness,l=a.build(e,"v3"),u=new Nt(Nt.VIEW).build(e,"v3"),c=s?s.build(e,"f"):void 0,p=`reflect( -normalize( ${u} ), ${l} )`;c&&(p=`normalize( mix( ${p}, ${l}, ${c} * ${c} ) )`);let f=`inverseTransformDirection( ${p}, viewMatrix )`;o?(e.addNodeCode(`vec3 reflectVec = ${f};`),i="reflectVec"):i=f;break}case ir.CUBE:{let a=new ir(ir.VECTOR).build(e,"v3"),s="vec3( -"+a+".x, "+a+".yz )";o?(e.addNodeCode(`vec3 reflectCubeVec = ${s};`),i="reflectCubeVec"):i=s;break}case ir.SPHERE:{let a=new ir(ir.VECTOR).build(e,"v3"),s="normalize( ( viewMatrix * vec4( "+a+", 0.0 ) ).xyz + vec3( 0.0, 0.0, 1.0 ) ).xy * 0.5 + 0.5";o?(e.addNodeCode(`vec2 reflectSphereVec = ${s};`),i="reflectSphereVec"):i=s;break}}return e.format(i,this.getType(),n)}else return console.warn("ReflectNode is not compatible with "+e.shader+" shader."),e.format("vec3( 0.0 )",this.type,n)}},Mr=ir;Mr.CUBE="cube",Mr.SPHERE="sphere",Mr.VECTOR="vector";var vl=class extends de{constructor(e=new Ot,n,o){super("v4");this.nodeType="TextureCube";this.value=e,this.radianceNode=new ii(this.value,n??new Mr(Mr.VECTOR),o),this.irradianceNode=new ii(this.value,new lt(lt.WORLD),new J(1).setReadonly(!0))}generate(e,n){return e.isShader("fragment")?(e.require("irradiance"),e.context.bias&&e.context.bias.setTexture(this.value),(e.slot==="irradiance"?this.irradianceNode:this.radianceNode).build(e,n)):(console.warn("TextureCubeNode is not compatible with "+e.shader+" shader."),e.format("vec4( 0.0 )",this.getType(e),n))}};import{CubeTexture as UA}from"three";var xl=class extends Be{constructor(e=new UA,n,o){super("v4",{shared:!0});this.nodeType="CubeTexture";this.value=e,this.uv=n??new Mr,this.bias=o}getTexture(e,n){return super.generate(e,n,this.value.uuid,"tc")}generate(e,n){if(n==="samplerCube")return this.getTexture(e,n);let o=this.getTexture(e,n),i=this.uv?.build(e,"v3"),a=this.bias?this.bias.build(e,"f"):void 0;a===void 0&&e.context.bias&&(a=e.context.bias.setTexture(this).build(e,"f"));let s;a?s="texCubeBias( "+o+", "+i+", "+a+" )":s="texCube( "+o+", "+i+" )";let l={include:e.isShader("vertex"),ignoreCache:!0},u=this.getType(e);return e.addContext(l),this.colorSpace=this.colorSpace??new bt(new Ie("",u)),this.colorSpace.fromDecoding(e.getTextureEncodingFromMap(this.value)),this.colorSpace.input.parse(s),s=this.colorSpace.build(e,u),e.removeContext(),e.format(s,u,n)}};var hg=["x","y","z","w"],WA=["float","vec2","vec3","vec4"],qA={float:"f",vec2:"v2",vec3:"v3",vec4:"v4",mat4:"v4",int:"i",bool:"b","float[]":"f[]","vec4[]":"v4[]"},XA={t:"sampler2D",tc:"samplerCube",b:"bool",i:"int",f:"float",c:"vec3",v2:"vec2",v3:"vec3",v4:"vec4",m3:"mat3",m4:"mat4","f[]":"float[]","v4[]":"vec4[]"},bl=class{constructor(){this.includes={consts:{},functions:{},structs:{}};this.cache="";this.slot="";this.shader="";this.context={};this.getIncludesCode=function(){function t(e,n){return e.deps.length-n.deps.length}return function(n,o){let i=this.getIncludes(n,o);if(!i)return"";let a="";i=i.sort(t);for(let s=0;s<i.length;s++)i[s].src&&(a+=i[s].src+`
86
+ }`,O);return{bilinearCubeUV:u,roughnessToMip:A,m0:f,cubeUV_maxMipLevel:n}}();var Jn=class extends de{constructor(e){super("v3");this.nodeType="Normal";this.scope=e??Jn.VIEW}getShared(){return this.scope===Jn.WORLD}build(e,n,o,i){let a=e.context[this.scope+"Normal"];return a?a.build(e,n,o,i):super.build(e,n,o)}generate(e,n,o,i,a){let s;switch(this.scope){case Jn.VIEW:e.isShader("vertex")?s="transformedNormal":s="geometryNormal";break;case Jn.LOCAL:e.isShader("vertex")?s="objectNormal":(e.requires.normal=!0,s="vObjectNormal");break;case Jn.WORLD:e.isShader("vertex")?s="inverseTransformDirection( transformedNormal, viewMatrix ).xyz":(e.requires.worldNormal=!0,s="vWNormal");break}return e.format(s,this.getType(e),n)}},lt=Jn;lt.LOCAL="local",lt.WORLD="world",lt.VIEW="view",lt.NORMAL="normal";Qe.addKeyword("viewNormal",function(){return new lt(lt.VIEW)});Qe.addKeyword("localNormal",function(){return new lt(lt.NORMAL)});Qe.addKeyword("worldNormal",function(){return new lt(lt.WORLD)});var Pr=class extends de{constructor(e){super("v3");this.nodeType="Position";this.scope=e??Pr.LOCAL}getType(){switch(this.scope){case Pr.PROJECTION:return"v4"}return this.type}getShader(){switch(this.scope){case Pr.LOCAL:case Pr.WORLD:return!1}return!0}generate(e,n,o,i,a){let s;switch(this.scope){case Pr.LOCAL:e.isShader("vertex")?s="transformed":(e.requires.position=!0,s="vPosition");break;case Pr.WORLD:if(e.isShader("vertex"))return"( modelMatrix * vec4( transformed, 1.0 ) ).xyz";e.requires.worldPosition=!0,s="vWPosition";break;case Pr.VIEW:s=e.isShader("vertex")?"-mvPosition.xyz":"vViewPosition";break;case Pr.PROJECTION:s=e.isShader("vertex")?"( projectionMatrix * modelViewMatrix * vec4( position, 1.0 ) )":"vec4( 0.0 )";break}return e.format(s,this.getType(),n)}},Nt=Pr;Nt.LOCAL="local",Nt.WORLD="world",Nt.VIEW="view",Nt.PROJECTION="projection";Qe.addKeyword("position",function(){return new Nt});Qe.addKeyword("worldPosition",function(){return new Nt(Nt.WORLD)});Qe.addKeyword("viewPosition",function(){return new Nt(Nt.VIEW)});var or=class extends de{constructor(e){super("v3");this.nodeType="Reflect";this.scope=e??or.CUBE}getUnique(e){return!e.context.viewNormal}getType(){switch(this.scope){case or.SPHERE:return"v2"}return this.type}generate(e,n){let o=this.getUnique(e);if(e.isShader("fragment")){let i;switch(this.scope){case or.VECTOR:{let a=new lt(lt.VIEW),s=e.context.roughness,l=a.build(e,"v3"),u=new Nt(Nt.VIEW).build(e,"v3"),c=s?s.build(e,"f"):void 0,p=`reflect( -normalize( ${u} ), ${l} )`;c&&(p=`normalize( mix( ${p}, ${l}, ${c} * ${c} ) )`);let f=`inverseTransformDirection( ${p}, viewMatrix )`;o?(e.addNodeCode(`vec3 reflectVec = ${f};`),i="reflectVec"):i=f;break}case or.CUBE:{let a=new or(or.VECTOR).build(e,"v3"),s="vec3( -"+a+".x, "+a+".yz )";o?(e.addNodeCode(`vec3 reflectCubeVec = ${s};`),i="reflectCubeVec"):i=s;break}case or.SPHERE:{let a=new or(or.VECTOR).build(e,"v3"),s="normalize( ( viewMatrix * vec4( "+a+", 0.0 ) ).xyz + vec3( 0.0, 0.0, 1.0 ) ).xy * 0.5 + 0.5";o?(e.addNodeCode(`vec2 reflectSphereVec = ${s};`),i="reflectSphereVec"):i=s;break}}return e.format(i,this.getType(),n)}else return console.warn("ReflectNode is not compatible with "+e.shader+" shader."),e.format("vec3( 0.0 )",this.type,n)}},Mr=or;Mr.CUBE="cube",Mr.SPHERE="sphere",Mr.VECTOR="vector";var xl=class extends de{constructor(e=new It,n,o){super("v4");this.nodeType="TextureCube";this.value=e,this.radianceNode=new si(this.value,n??new Mr(Mr.VECTOR),o),this.irradianceNode=new si(this.value,new lt(lt.WORLD),new J(1).setReadonly(!0))}generate(e,n){return e.isShader("fragment")?(e.require("irradiance"),e.context.bias&&e.context.bias.setTexture(this.value),(e.slot==="irradiance"?this.irradianceNode:this.radianceNode).build(e,n)):(console.warn("TextureCubeNode is not compatible with "+e.shader+" shader."),e.format("vec4( 0.0 )",this.getType(e),n))}};import{CubeTexture as HA}from"three";var bl=class extends Fe{constructor(e=new HA,n,o){super("v4",{shared:!0});this.nodeType="CubeTexture";this.value=e,this.uv=n??new Mr,this.bias=o}getTexture(e,n){return super.generate(e,n,this.value.uuid,"tc")}generate(e,n){if(n==="samplerCube")return this.getTexture(e,n);let o=this.getTexture(e,n),i=this.uv?.build(e,"v3"),a=this.bias?this.bias.build(e,"f"):void 0;a===void 0&&e.context.bias&&(a=e.context.bias.setTexture(this).build(e,"f"));let s;a?s="texCubeBias( "+o+", "+i+", "+a+" )":s="texCube( "+o+", "+i+" )";let l={include:e.isShader("vertex"),ignoreCache:!0},u=this.getType(e);return e.addContext(l),this.colorSpace=this.colorSpace??new bt(new Ie("",u)),this.colorSpace.fromDecoding(e.getTextureEncodingFromMap(this.value)),this.colorSpace.input.parse(s),s=this.colorSpace.build(e,u),e.removeContext(),e.format(s,u,n)}};var gg=["x","y","z","w"],$A=["float","vec2","vec3","vec4"],KA={float:"f",vec2:"v2",vec3:"v3",vec4:"v4",mat4:"v4",int:"i",bool:"b","float[]":"f[]","vec4[]":"v4[]"},ZA={t:"sampler2D",tc:"samplerCube",b:"bool",i:"int",f:"float",c:"vec3",v2:"vec2",v3:"vec3",v4:"vec4",m3:"mat3",m4:"mat4","f[]":"float[]","v4[]":"vec4[]"},Sl=class{constructor(){this.includes={consts:{},functions:{},structs:{}};this.cache="";this.slot="";this.shader="";this.context={};this.getIncludesCode=function(){function t(e,n){return e.deps.length-n.deps.length}return function(n,o){let i=this.getIncludes(n,o);if(!i)return"";let a="";i=i.sort(t);for(let s=0;s<i.length;s++)i[s].src&&(a+=i[s].src+`
85
87
  `);return a}}();this.slots=[],this.caches=[],this.contexts=[],this.keywords={},this.nodeData={},this.fragmentVariables={},this.fragmentParsVariables={},this.vertexParsVariables={},this.requires={uv:[],color:[],transparent:!1,irradiance:!1,position:!1,worldPosition:!1,normal:!1,worldNormal:!1,vWorldViewDir:!1,modelMatrix:!1,viewMatrix:!1,projectionMatrix:!1},this.includes={consts:[],functions:[],structs:[]},this.attributes={},this.prefixCode=["#ifdef TEXTURE_LOD_EXT"," #define texCube(a, b) textureCube(a, b)"," #define texCubeBias(a, b, c) textureCubeLodEXT(a, b, c)"," #define tex2D(a, b) texture2D(a, b)"," #define tex2DBias(a, b, c) texture2DLodEXT(a, b, c)","#else"," #define texCube(a, b) textureCube(a, b)"," #define texCubeBias(a, b, c) textureCube(a, b, c)"," #define tex2D(a, b) texture2D(a, b)"," #define tex2DBias(a, b, c) texture2D(a, b, c)","#endif",`
86
88
  // NOTE: Include Spline's blending modes. This could be part of BlendNode
87
89
  #define SPE_BLENDING_NORMAL 0
@@ -126,7 +128,7 @@ var xv=Object.create;var ec=Object.defineProperty;var bv=Object.getOwnPropertyDe
126
128
  `}addVaryCode(t){this.addVertexParsCode(t),this.addFragmentParsCode(t)}isCache(t){return this.caches.indexOf(t)!==-1}isSlot(t){return this.slots.indexOf(t)!==-1}define(t,e){this.defines[t]=e===void 0?1:e}require(t){this.requires[t]=!0}isDefined(t){return this.defines[t]!==void 0}getVar(t,e,n,o="varying",i="V",a=""){let s=this.getVars(o),l=s[t];if(!l){let u=s.length;l={name:n||"node"+i+u+(a?"_"+a:""),type:e},s.push(l),s[t]=l}return l}getTempVar(t,e,n,o){return this.getVar(t,e,n,this.shader,"T",o)}getAttribute(t,e){if(!this.attributes[t]){let n=this.getVar(t,e);this.addVertexParsCode("attribute "+e+" "+t+";"),this.addVertexFinalCode(n.name+" = "+t+";"),this.attributes[t]={varying:n,name:t,type:e}}return this.attributes[t]}getCode(t){return[this.prefixCode,this.parsCode[t],this.getVarListCode(this.getVars("varying"),"varying"),this.getVarListCode(this.inputs.uniforms[t],"uniform"),this.getVarListCode(this.inputs.arrayUniforms[t],"uniform"),this.getIncludesCode("consts",t),this.getIncludesCode("structs",t),this.getIncludesCode("functions",t),"void main() {",this.getVarListCode(this.getVars(t)),this.code[t],this.resultCode[t],this.finalCode[t],"}"].join(`
127
129
  `)}getVarListCode(t,e){e=e??"";let n="";for(let o=0,i=t.length;o<i;++o){let a=t[o],s=a.type,l=a.name,u=a.size,c=this.getFormatByType(s);if(c===void 0)throw new Error("Node pars "+c+" not found.");c.includes("[]")?n+=e+" "+c.substring(0,c.length-2)+" "+l+`[${u}];
128
130
  `:n+=e+" "+c+" "+l+`;
129
- `}return n}getVars(t){return this.inputs.vars[t??this.shader]}getNodeData(t){let e=t instanceof at?t.uuid:t;return this.nodeData[e]=this.nodeData[e]||{}}createUniform(t,e,n,o,i,a){if(e.includes("[]")){let s=this.inputs.arrayUniforms,l=s.list.length,u=new oa({type:e,size:n.size,name:o||"nodeUA"+l+(a?"_"+a:""),node:n,needsUpdate:i});return s.list.push(u),s[t].push(u),s[t][u.name]=u,this.uniforms[u.name]=u,u}else{let s=this.inputs.uniforms,l=s.list.length,u=new oa({type:e,name:o||"nodeU"+l+(a?"_"+a:""),node:n,needsUpdate:i});return s.list.push(u),s[t].push(u),s[t][u.name]=u,this.uniforms[u.name]=u,u}}createVertexUniform(t,e,n,o,i){return this.createUniform("vertex",t,e,n,o,i)}createFragmentUniform(t,e,n,o,i){return this.createUniform("fragment",t,e,n,o,i)}include(t,e,n){let o;if(t=typeof t=="string"?Qe.get(t):t,this.context.include===!1)return t.name;t instanceof Z?o=this.includes.functions:t instanceof Ce?o=this.includes.consts:t instanceof ri&&(o=this.includes.structs);let i=o[this.shader]=o[this.shader]||[];if(t){let a=i[t.name];if(a||(a=i[t.name]={node:t,deps:[]},i.push(a),a.src=t.build(this,"source")),t instanceof Z&&e&&i[e.name]&&i[e.name].deps.indexOf(t)===-1&&(i[e.name].deps.push(t),t.includes?.length)){let s=0;do this.include(t.includes[s++],e);while(s<t.includes.length)}return n&&(a.src=n),t.name}else throw new Error("Include not found.")}colorToVectorProperties(t){return t.replace("r","x").replace("g","y").replace("b","z").replace("a","w")}colorToVector(t){return t.replace(/c/g,"v3")}getIncludes(t,e){return this.includes[t][e||this.shader]}getConstructorFromLength(t){return WA[t-1]}isTypeMatrix(t){return/^m/.test(t)}getTypeLength(t){return t==="f"?1:parseInt(this.colorToVector(t).substr(1))}getTypeFromLength(t){return t===1?"f":"v"+t}findNode(...t){for(let e=0;e<arguments.length;e++){let n=t[e];if(n?.isNode)return n}}resolve(...t){for(let e=0;e<arguments.length;e++){let n=t[e];if(n!==void 0){if(n.isNode)return n;if(n.isTexture)switch(n.mapping){case VA:case zA:return new xl(n);case jA:return new vl(new Ot(n));default:return new Ot(n)}else{if(n.isVector2)return new st(n);if(n.isVector3)return new ft(n);if(n.isVector4)return new Kt(n)}}}}format(t,e,n){switch(this.colorToVector(n+" <- "+e)){case"f <- v2":return t+".x";case"f <- v3":return t+".x";case"f <- v4":return t+".x";case"f <- i":case"f <- b":return"float( "+t+" )";case"v2 <- f":return"vec2( "+t+" )";case"v2 <- v3":return t+".xy";case"v2 <- v4":return t+".xy";case"v2 <- i":case"v2 <- b":return"vec2( float( "+t+" ) )";case"v3 <- f":return"vec3( "+t+" )";case"v3 <- v2":return"vec3( "+t+", 0.0 )";case"v3 <- v4":return t+".xyz";case"v3 <- i":case"v3 <- b":return"vec2( float( "+t+" ) )";case"v4 <- f":return"vec4( "+t+" )";case"v4 <- v2":return"vec4( "+t+", 0.0, 1.0 )";case"v4 <- v3":return"vec4( "+t+", 1.0 )";case"v4 <- i":case"v4 <- b":return"vec4( float( "+t+" ) )";case"i <- f":case"i <- b":return"int( "+t+" )";case"i <- v2":return"int( "+t+".x )";case"i <- v3":return"int( "+t+".x )";case"i <- v4":return"int( "+t+".x )";case"b <- f":return"( "+t+" != 0.0 )";case"b <- v2":return"( "+t+" != vec2( 0.0 ) )";case"b <- v3":return"( "+t+" != vec3( 0.0 ) )";case"b <- v4":return"( "+t+" != vec4( 0.0 ) )";case"b <- i":return"( "+t+" != 0 )"}return t}getTypeByFormat(t){return qA[t]||t}getFormatByType(t){return XA[t]||t}getUUID(t,e){return e=e!==void 0?e:!0,e&&this.cache&&(t=this.cache+"-"+t),t}getElementByIndex(t){return hg[t]}getIndexByElement(t){return hg.indexOf(t)}isShader(t){return this.shader===t}setShader(t){return this.shader=t,this}mergeDefines(t){for(let e in t)this.defines[e]=t[e];return this.defines}mergeUniform(t){for(let e in t)this.uniforms[e]=t[e];return this.uniforms}getTextureEncodingFromMap(t){let e;return t?t.isTexture&&(e=t.encoding):e=dg,e===dg&&this.context.gamma&&(e=HA),e}};import{Vector2 as no,Vector3 as Br,Vector4 as ui}from"three";var Le=class extends Be{constructor(e=0,n,o,i){super("c");this.nodeType="Color";this.value=e instanceof Je?e:new Je(e||0,n,o,i)}setRGBA(e){this.value.setRGBA(e.r,e.g,e.b,e.a)}generate(e,n,o,i,a,s){o=e.getUUID(o??this.getUUID()),i=i??this.getType(e);let l=e.getNodeData(o),u=this.getReadonly()&&this.generateReadonly!==void 0;if(this.alpha){let c=this.alpha.build(e,"f");e.addFragmentNodeCode(`accumAlpha += ( 1.0 - accumAlpha ) * ${c};`)}return u?this.generateReadonly(e,n,o,i,a,s):e.isShader("vertex")?(l.vertex||(l.vertex=e.createVertexUniform(i,this,a,s,this.getLabel())),e.format(l.vertex.name,i,n)):(l.fragment||(l.fragment=e.createFragmentUniform(i,this,a,s,this.getLabel())),e.format(l.fragment.name,i,n))}generateReadonly(e,n,o,i,a,s){return e.format("vec3("+this.value.r+", "+this.value.g+", "+this.value.b+")",i,n)}};var Te=class extends Be{constructor(e){super("i");this.nodeType="Int";this.value=Math.floor(e??0)}generateReadonly(e,n,o,i,a,s){return e.format(this.value.toString(),i,n)}};import{UniformsLib as YA,UniformsUtils as $A}from"three";var to=class extends at{constructor(){super("basic");this.nodeType="Basic";this.color=new Le(5855577),this.shadingAlpha=new J(1),this.shadingBlend=new Te(0)}generate(e){let n;if(e.isShader("vertex")){let o=this.position?this.position.analyzeAndFlow(e,"v3",{cache:"position"}):void 0;e.mergeUniform($A.merge([YA.fog])),e.addParsCode(["varying vec3 vViewPosition;","varying vec3 vWPosition;","#include <fog_pars_vertex>","#include <normal_pars_vertex>"].join(`
131
+ `}return n}getVars(t){return this.inputs.vars[t??this.shader]}getNodeData(t){let e=t instanceof at?t.uuid:t;return this.nodeData[e]=this.nodeData[e]||{}}createUniform(t,e,n,o,i,a){if(e.includes("[]")){let s=this.inputs.arrayUniforms,l=s.list.length,u=new ia({type:e,size:n.size,name:o||"nodeUA"+l+(a?"_"+a:""),node:n,needsUpdate:i});return s.list.push(u),s[t].push(u),s[t][u.name]=u,this.uniforms[u.name]=u,u}else{let s=this.inputs.uniforms,l=s.list.length,u=new ia({type:e,name:o||"nodeU"+l+(a?"_"+a:""),node:n,needsUpdate:i});return s.list.push(u),s[t].push(u),s[t][u.name]=u,this.uniforms[u.name]=u,u}}createVertexUniform(t,e,n,o,i){return this.createUniform("vertex",t,e,n,o,i)}createFragmentUniform(t,e,n,o,i){return this.createUniform("fragment",t,e,n,o,i)}include(t,e,n){let o;if(t=typeof t=="string"?Qe.get(t):t,this.context.include===!1)return t.name;t instanceof Z?o=this.includes.functions:t instanceof Ce?o=this.includes.consts:t instanceof oi&&(o=this.includes.structs);let i=o[this.shader]=o[this.shader]||[];if(t){let a=i[t.name];if(a||(a=i[t.name]={node:t,deps:[]},i.push(a),a.src=t.build(this,"source")),t instanceof Z&&e&&i[e.name]&&i[e.name].deps.indexOf(t)===-1&&(i[e.name].deps.push(t),t.includes?.length)){let s=0;do this.include(t.includes[s++],e);while(s<t.includes.length)}return n&&(a.src=n),t.name}else throw new Error("Include not found.")}colorToVectorProperties(t){return t.replace("r","x").replace("g","y").replace("b","z").replace("a","w")}colorToVector(t){return t.replace(/c/g,"v3")}getIncludes(t,e){return this.includes[t][e||this.shader]}getConstructorFromLength(t){return $A[t-1]}isTypeMatrix(t){return/^m/.test(t)}getTypeLength(t){return t==="f"?1:parseInt(this.colorToVector(t).substr(1))}getTypeFromLength(t){return t===1?"f":"v"+t}findNode(...t){for(let e=0;e<arguments.length;e++){let n=t[e];if(n?.isNode)return n}}resolve(...t){for(let e=0;e<arguments.length;e++){let n=t[e];if(n!==void 0){if(n.isNode)return n;if(n.isTexture)switch(n.mapping){case WA:case qA:return new bl(n);case XA:return new xl(new It(n));default:return new It(n)}else{if(n.isVector2)return new st(n);if(n.isVector3)return new ft(n);if(n.isVector4)return new $t(n)}}}}format(t,e,n){switch(this.colorToVector(n+" <- "+e)){case"f <- v2":return t+".x";case"f <- v3":return t+".x";case"f <- v4":return t+".x";case"f <- i":case"f <- b":return"float( "+t+" )";case"v2 <- f":return"vec2( "+t+" )";case"v2 <- v3":return t+".xy";case"v2 <- v4":return t+".xy";case"v2 <- i":case"v2 <- b":return"vec2( float( "+t+" ) )";case"v3 <- f":return"vec3( "+t+" )";case"v3 <- v2":return"vec3( "+t+", 0.0 )";case"v3 <- v4":return t+".xyz";case"v3 <- i":case"v3 <- b":return"vec2( float( "+t+" ) )";case"v4 <- f":return"vec4( "+t+" )";case"v4 <- v2":return"vec4( "+t+", 0.0, 1.0 )";case"v4 <- v3":return"vec4( "+t+", 1.0 )";case"v4 <- i":case"v4 <- b":return"vec4( float( "+t+" ) )";case"i <- f":case"i <- b":return"int( "+t+" )";case"i <- v2":return"int( "+t+".x )";case"i <- v3":return"int( "+t+".x )";case"i <- v4":return"int( "+t+".x )";case"b <- f":return"( "+t+" != 0.0 )";case"b <- v2":return"( "+t+" != vec2( 0.0 ) )";case"b <- v3":return"( "+t+" != vec3( 0.0 ) )";case"b <- v4":return"( "+t+" != vec4( 0.0 ) )";case"b <- i":return"( "+t+" != 0 )"}return t}getTypeByFormat(t){return KA[t]||t}getFormatByType(t){return ZA[t]||t}getUUID(t,e){return e=e!==void 0?e:!0,e&&this.cache&&(t=this.cache+"-"+t),t}getElementByIndex(t){return gg[t]}getIndexByElement(t){return gg.indexOf(t)}isShader(t){return this.shader===t}setShader(t){return this.shader=t,this}mergeDefines(t){for(let e in t)this.defines[e]=t[e];return this.defines}mergeUniform(t){for(let e in t)this.uniforms[e]=t[e];return this.uniforms}getTextureEncodingFromMap(t){let e;return t?t.isTexture&&(e=t.encoding):e=mg,e===mg&&this.context.gamma&&(e=YA),e}};import{Vector2 as ro,Vector3 as Br,Vector4 as fi}from"three";var Ne=class extends Fe{constructor(e=0,n,o,i){super("c");this.nodeType="Color";this.value=e instanceof Je?e:new Je(e||0,n,o,i)}setRGBA(e){this.value.setRGBA(e.r,e.g,e.b,e.a)}generate(e,n,o,i,a,s){o=e.getUUID(o??this.getUUID()),i=i??this.getType(e);let l=e.getNodeData(o),u=this.getReadonly()&&this.generateReadonly!==void 0;if(this.alpha){let c=this.alpha.build(e,"f");e.addFragmentNodeCode(`accumAlpha += ( 1.0 - accumAlpha ) * ${c};`)}return u?this.generateReadonly(e,n,o,i,a,s):e.isShader("vertex")?(l.vertex||(l.vertex=e.createVertexUniform(i,this,a,s,this.getLabel())),e.format(l.vertex.name,i,n)):(l.fragment||(l.fragment=e.createFragmentUniform(i,this,a,s,this.getLabel())),e.format(l.fragment.name,i,n))}generateReadonly(e,n,o,i,a,s){return e.format("vec3("+this.value.r+", "+this.value.g+", "+this.value.b+")",i,n)}};var Te=class extends Fe{constructor(e){super("i");this.nodeType="Int";this.value=Math.floor(e??0)}generateReadonly(e,n,o,i,a,s){return e.format(this.value.toString(),i,n)}};import{UniformsLib as QA,UniformsUtils as JA}from"three";var eo=class extends at{constructor(){super("basic");this.nodeType="Basic";this.color=new Ne(5855577),this.shadingAlpha=new J(1),this.shadingBlend=new Te(0)}generate(e){let n;if(e.isShader("vertex")){let o=this.position?this.position.analyzeAndFlow(e,"v3",{cache:"position"}):void 0;e.mergeUniform(JA.merge([QA.fog])),e.addParsCode(["varying vec3 vViewPosition;","varying vec3 vWPosition;","#include <fog_pars_vertex>","#include <normal_pars_vertex>"].join(`
130
132
  `));let i=["#include <beginnormal_vertex>",`
131
133
  #if !defined( USE_LAYER_DISPLACE )
132
134
  #include <defaultnormal_vertex>
@@ -144,9 +146,9 @@ var xv=Object.create;var ec=Object.defineProperty;var bv=Object.getOwnPropertyDe
144
146
  #include <begin_vertex>
145
147
  #endif /* !USE_LAYER_DISPLACE */
146
148
  `];o&&i.push(o.code,o.result?"displaced_position = "+o.result+";":""),i.push("transformed = displaced_position;","transformedNormal = normalMatrix * displaced_normal;","#ifndef FLAT_SHADED"," vNormal = transformedNormal;","#endif"),i.push("#include <project_vertex>","#include <fog_vertex>","#include <clipping_planes_vertex>"," vViewPosition = - mvPosition.xyz;","#include <worldpos_vertex>"),i.push("vWPosition = ( modelMatrix * vec4( transformed, 1.0 ) ).xyz;"),n=i.join(`
147
- `)}else{this.color===void 0&&(this.color=new Le(5855577)),this.color.analyze(e,{slot:"color"}),this.alpha&&this.alpha.analyze(e),this.afterColor&&this.afterColor.analyze(e,{slot:"afterColor"});let o=this.color.flow(e,"c",{slot:"color"}),i=this.alpha?this.alpha.flow(e,"f"):void 0,a=this.afterColor?this.afterColor.flow(e,"c",{slot:"afterColor"}):void 0;e.requires.transparent=i!==void 0,e.addParsCode(["varying vec3 vWPosition;","#include <fog_pars_fragment>","#include <dithering_pars_fragment>","varying vec3 vViewPosition;","#include <normal_pars_fragment>"].join(`
149
+ `)}else{this.color===void 0&&(this.color=new Ne(5855577)),this.color.analyze(e,{slot:"color"}),this.alpha&&this.alpha.analyze(e),this.afterColor&&this.afterColor.analyze(e,{slot:"afterColor"});let o=this.color.flow(e,"c",{slot:"color"}),i=this.alpha?this.alpha.flow(e,"f"):void 0,a=this.afterColor?this.afterColor.flow(e,"c",{slot:"afterColor"}):void 0;e.requires.transparent=i!==void 0,e.addParsCode(["varying vec3 vWPosition;","#include <fog_pars_fragment>","#include <dithering_pars_fragment>","varying vec3 vViewPosition;","#include <normal_pars_fragment>"].join(`
148
150
  `));let s=["#include <normal_fragment_begin>",o.code];i&&s.push(i.code,"#ifdef ALPHATEST"," if ( "+i.result+" <= ALPHATEST ) discard;","#endif"),a?s.push(a.code,`vec3 outgoingLight = ${o.result};`,`vec3 finalColor = spe_blend(outgoingLight, ${a.result}, 1.0, SPE_BLENDING_NORMAL);`):s.push(`vec3 finalColor = ${o.result};`),i?s.push(`gl_FragColor = vec4( finalColor, accumAlpha * ${i.result} );`):s.push("gl_FragColor = vec4("+o.result+", 1.0 );"),s.push("#include <fog_fragment>","#include <dithering_fragment>"),n=s.join(`
149
- `)}return n}};import{UniformsLib as yg,UniformsUtils as QA}from"three";var On=class extends Be{constructor(e){super("b");this.nodeType="Bool";this.value=e??!1}generateReadonly(e,n,o,i){return e.format(this.value?"true":"false",i,n)}};import{Matrix3 as KA}from"three";var ai=class extends Be{constructor(e){super("m3");this.nodeType="Matrix3";this.value=e??new KA}generateReadonly(e,n,o,i,a,s){return e.format("mat3("+this.value.elements.join(", ")+")",i,n)}get elements(){return this.value.elements}set elements(e){this.value.fromArray(e)}};var ar=class extends Be{constructor(e=1,n){super("f[]");this.nodeType="FloatArray";this.size=e,this.value=Array.isArray(n)?n:typeof n=="number"?new Array(e).fill(n):new Array(e).fill(0)}};import{Vector4 as mg}from"three";var sr=class extends Be{constructor(e=1,n){super("v4[]");this.nodeType="Vector4Array";this.size=e,this.value=Array.isArray(n)?n:n instanceof mg?new Array(e).fill(n):new Array(e).fill(new mg(0))}};var aa=(i=>(i.SIMPLEX="simplex3d",i.SIMPLEX_FRACTAL="simplex3dFractal",i.ASHIMA="simplexAshima",i.FBM="fbm",i.PERLIN="perlin",i))(aa||{}),yt=function(){let t=new Z(`vec3 random3(vec3 c) {
151
+ `)}return n}};import{UniformsLib as xg,UniformsUtils as r_}from"three";var In=class extends Fe{constructor(e){super("b");this.nodeType="Bool";this.value=e??!1}generateReadonly(e,n,o,i){return e.format(this.value?"true":"false",i,n)}};import{Matrix3 as e_}from"three";var li=class extends Fe{constructor(e){super("m3");this.nodeType="Matrix3";this.value=e??new e_}generateReadonly(e,n,o,i,a,s){return e.format("mat3("+this.value.elements.join(", ")+")",i,n)}get elements(){return this.value.elements}set elements(e){this.value.fromArray(e)}};var ir=class extends Fe{constructor(e=1,n){super("f[]");this.nodeType="FloatArray";this.size=e,this.value=Array.isArray(n)?n:typeof n=="number"?new Array(e).fill(n):new Array(e).fill(0)}};import{Vector4 as yg}from"three";var ar=class extends Fe{constructor(e=1,n){super("v4[]");this.nodeType="Vector4Array";this.size=e,this.value=Array.isArray(n)?n:n instanceof yg?new Array(e).fill(n):new Array(e).fill(new yg(0))}};var sa=(i=>(i.SIMPLEX="simplex3d",i.SIMPLEX_FRACTAL="simplex3dFractal",i.ASHIMA="simplexAshima",i.FBM="fbm",i.PERLIN="perlin",i))(sa||{}),yt=function(){let t=new Z(`vec3 random3(vec3 c) {
150
152
  float j = 4096.0*sin(dot(c,vec3(17.0, 59.4, 15.0)));
151
153
  vec3 r;
152
154
  r.z = fract(512.0*j);
@@ -323,7 +325,7 @@ var xv=Object.create;var ec=Object.defineProperty;var bv=Object.getOwnPropertyDe
323
325
  vec2 n_yz = mix(n_z.xy, n_z.zw, fade_xyz.y);
324
326
  float n_xyz = mix(n_yz.x, n_yz.y, fade_xyz.x);
325
327
  return 2.2 * n_xyz;
326
- }`,[o,i,p]);return{simplex:e,simplexFractal:n,simplexAshima:a,fbm:c,perlin:f}}();var sa=class extends de{constructor(e,n,o,i,a,s,l,u,c,p,f,d){super("v3");this.nodeType="Noise";this.scale=e,this.size=n,this.move=o,this.fA=i,this.fB=a,this.distortion=s,this.colorA=l,this.colorB=u,this.colorC=c,this.colorD=p,this.alpha=f,this.noiseType=d,this.calpha=`g${this.uuid.toString().replace(/-/g,"")}_calpha`}generate(e,n,o,i,a){e.require("uv"),e.requires.uv=[!0],e.addFragmentVariable(this.calpha,"float");let s=Object.values(aa)[this.noiseType.value],l=new Z(`vec3 ${s}customNoise(float scale, vec3 size, float move, vec2 fA, vec2 fB, vec2 distortion, vec4 colorA, vec4 colorB, vec4 colorC, vec4 colorD, float alpha, out float calpha) {
328
+ }`,[o,i,p]);return{simplex:e,simplexFractal:n,simplexAshima:a,fbm:c,perlin:f}}();var la=class extends de{constructor(e,n,o,i,a,s,l,u,c,p,f,d){super("v3");this.nodeType="Noise";this.scale=e,this.size=n,this.move=o,this.fA=i,this.fB=a,this.distortion=s,this.colorA=l,this.colorB=u,this.colorC=c,this.colorD=p,this.alpha=f,this.noiseType=d,this.calpha=`g${this.uuid.toString().replace(/-/g,"")}_calpha`}generate(e,n,o,i,a){e.require("uv"),e.requires.uv=[!0],e.addFragmentVariable(this.calpha,"float");let s=Object.values(sa)[this.noiseType.value],l=new Z(`vec3 ${s}customNoise(float scale, vec3 size, float move, vec2 fA, vec2 fB, vec2 distortion, vec4 colorA, vec4 colorB, vec4 colorC, vec4 colorD, float alpha, out float calpha) {
327
329
  vec3 st = position / size;
328
330
  st /= scale;
329
331
  vec3 q = vec3(${s}(st),
@@ -343,7 +345,7 @@ var xv=Object.create;var ec=Object.defineProperty;var bv=Object.getOwnPropertyDe
343
345
 
344
346
  accumAlpha += ( 1.0 - accumAlpha ) * lalpha;
345
347
  return clamp(color, 0.0, 1.0).rgb;
346
- }`,[yt.simplex,yt.simplexFractal,yt.simplexAshima,yt.fbm,yt.perlin]),u=e.include(l),c=[];return c.push(this.scale.build(e,"f")),c.push(this.size.build(e,"v3")),c.push(this.move.build(e,"f")),c.push(this.fA.build(e,"v2")),c.push(this.fB.build(e,"v2")),c.push(this.distortion.build(e,"v2")),c.push(this.colorA.build(e,"v4")),c.push(this.colorB.build(e,"v4")),c.push(this.colorC.build(e,"v4")),c.push(this.colorD.build(e,"v4")),c.push(this.alpha.build(e,"f")),c.push(this.calpha),e.format(u+"("+c.join(",")+")",this.getType(e),n)}};sa.numOctaves=5;import{UniformsLib as gg,UniformsUtils as ZA}from"three";var Sl=class extends at{constructor(){super("phong");this.nodeType="Phong";this.color=new Le(5855577),this.specular=new Le(1118481),this.shininess=new J(30),this.shadingAlpha=new J(1),this.shadingBlend=new Te(0)}build(e){let n;if(e.define("PHONG"),e.requires.lights=!0,e.extensions.derivatives=!0,e.isShader("vertex")){let o=this.position?this.position.analyzeAndFlow(e,"v3",{cache:"position"}):void 0;e.mergeUniform(ZA.merge([gg.fog,gg.lights])),e.addParsCode(["varying vec3 vViewPosition;","varying vec3 vWPosition;","#include <fog_pars_vertex>","#include <normal_pars_vertex>","#include <shadowmap_pars_vertex>","#include <clipping_planes_pars_vertex>"].join(`
348
+ }`,[yt.simplex,yt.simplexFractal,yt.simplexAshima,yt.fbm,yt.perlin]),u=e.include(l),c=[];return c.push(this.scale.build(e,"f")),c.push(this.size.build(e,"v3")),c.push(this.move.build(e,"f")),c.push(this.fA.build(e,"v2")),c.push(this.fB.build(e,"v2")),c.push(this.distortion.build(e,"v2")),c.push(this.colorA.build(e,"v4")),c.push(this.colorB.build(e,"v4")),c.push(this.colorC.build(e,"v4")),c.push(this.colorD.build(e,"v4")),c.push(this.alpha.build(e,"f")),c.push(this.calpha),e.format(u+"("+c.join(",")+")",this.getType(e),n)}};la.numOctaves=5;import{UniformsLib as vg,UniformsUtils as t_}from"three";var wl=class extends at{constructor(){super("phong");this.nodeType="Phong";this.color=new Ne(5855577),this.specular=new Ne(1118481),this.shininess=new J(30),this.shadingAlpha=new J(1),this.shadingBlend=new Te(0)}build(e){let n;if(e.define("PHONG"),e.requires.lights=!0,e.extensions.derivatives=!0,e.isShader("vertex")){let o=this.position?this.position.analyzeAndFlow(e,"v3",{cache:"position"}):void 0;e.mergeUniform(t_.merge([vg.fog,vg.lights])),e.addParsCode(["varying vec3 vViewPosition;","varying vec3 vWPosition;","#include <fog_pars_vertex>","#include <normal_pars_vertex>","#include <shadowmap_pars_vertex>","#include <clipping_planes_pars_vertex>"].join(`
347
349
  `));let i=["#include <beginnormal_vertex>",`
348
350
  #ifndef USE_LAYER_DISPLACE
349
351
  #include <defaultnormal_vertex>
@@ -362,7 +364,7 @@ var xv=Object.create;var ec=Object.defineProperty;var bv=Object.getOwnPropertyDe
362
364
  #include <begin_vertex>
363
365
  #endif
364
366
  `];o&&i.push(o.code,o.result?"displaced_position = "+o.result+";":""),i.push("transformed = displaced_position;","transformedNormal = normalMatrix * displaced_normal;","#ifndef FLAT_SHADED"," vNormal = transformedNormal;","#endif"),i.push(" #include <project_vertex>"," #include <clipping_planes_vertex>"," vViewPosition = - mvPosition.xyz;"," #include <worldpos_vertex>"," #include <shadowmap_vertex>"," #include <fog_vertex>"),i.push("vWPosition = ( modelMatrix * vec4( transformed, 1.0 ) ).xyz;"),n=i.join(`
365
- `)}else{e.mergeUniform({penumbraSize:dt.penumbraSize}),this.color===void 0&&(this.color=new Le(5855577)),this.color.analyze(e,{slot:"color"}),this.specular.analyze(e),this.shininess.analyze(e),this.shadingAlpha.analyze(e),this.shadingBlend.analyze(e),this.afterColor&&this.afterColor.analyze(e,{slot:"afterColor"}),this.alpha&&this.alpha.analyze(e);let o=this.color.flow(e,"c",{slot:"color"}),i=this.specular.flow(e,"c"),a=this.shininess.flow(e,"f"),s=this.shadingAlpha.flow(e,"f"),l=this.shadingBlend.flow(e,"i"),u=this.afterColor?this.afterColor.flow(e,"c",{slot:"afterColor"}):void 0,c=this.alpha?this.alpha.flow(e,"f"):void 0;e.requires.transparent=c!==void 0,e.addParsCode(["varying vec3 vWPosition;","uniform vec3 emissive;",`uniform float penumbraSize[${5}];`,"#include <normal_pars_fragment>","#include <fog_pars_fragment>","#include <bsdfs>","#include <lights_pars_begin>","#include <lights_phong_pars_fragment>","#include <shadowmap_pars_fragment>","#include <dithering_pars_fragment>"].join(`
367
+ `)}else{e.mergeUniform({penumbraSize:dt.penumbraSize}),this.color===void 0&&(this.color=new Ne(5855577)),this.color.analyze(e,{slot:"color"}),this.specular.analyze(e),this.shininess.analyze(e),this.shadingAlpha.analyze(e),this.shadingBlend.analyze(e),this.afterColor&&this.afterColor.analyze(e,{slot:"afterColor"}),this.alpha&&this.alpha.analyze(e);let o=this.color.flow(e,"c",{slot:"color"}),i=this.specular.flow(e,"c"),a=this.shininess.flow(e,"f"),s=this.shadingAlpha.flow(e,"f"),l=this.shadingBlend.flow(e,"i"),u=this.afterColor?this.afterColor.flow(e,"c",{slot:"afterColor"}):void 0,c=this.alpha?this.alpha.flow(e,"f"):void 0;e.requires.transparent=c!==void 0,e.addParsCode(["varying vec3 vWPosition;","uniform vec3 emissive;",`uniform float penumbraSize[${5}];`,"#include <normal_pars_fragment>","#include <fog_pars_fragment>","#include <bsdfs>","#include <lights_pars_begin>","#include <lights_phong_pars_fragment>","#include <shadowmap_pars_fragment>","#include <dithering_pars_fragment>"].join(`
366
368
  `));let p=["#include <normal_fragment_begin>",`
367
369
  // NOTE: gl_FrontFacing alternative using face normal estimation.
368
370
  vec3 viewdx = dFdx(vViewPosition);
@@ -378,14 +380,14 @@ var xv=Object.create;var ec=Object.defineProperty;var bv=Object.getOwnPropertyDe
378
380
  outgoingLight = spe_blend( diffuseColor, outgoingLight, ${s.result}, ${l.result} );
379
381
  }
380
382
  `),u&&p.push(u.code,`outgoingLight = spe_blend(outgoingLight, ${u.result}, 1.0, SPE_BLENDING_NORMAL);`),c?p.push(`gl_FragColor = vec4( outgoingLight, accumAlpha * ${c.result} );`):p.push("gl_FragColor = vec4( outgoingLight, 1.0 );"),p.push("#include <encodings_fragment>","#include <fog_fragment>","#include <dithering_fragment>"),n=p.join(`
381
- `)}return n}};var Au=class extends de{constructor(e,n,o,i,a,s,l){super("v3");this.nodeType="Fresnel";this.color=e,this.bias=n,this.scale=o,this.intensity=i,this.factor=a,this.alpha=s,this.mode=l,this.calpha=`g${this.uuid.toString().replace(/-/g,"")}_calpha`}generate(e,n){if(e.require("vWorldViewDir"),e.require("worldNormal"),e.isShader("fragment")){e.addFragmentVariable(this.calpha,"float");let o=e.include(Au.Nodes.fresnel),i=[];return i.push(this.color.build(e,"c")),i.push(this.bias.build(e,"f")),i.push(this.scale.build(e,"f")),i.push(this.intensity.build(e,"f")),i.push(this.factor.build(e,"f")),i.push(this.alpha.build(e,"f")),i.push(this.mode.build(e,"i")),i.push(this.calpha),e.format(o+"("+i.join(",")+")",this.getType(e),n)}else return console.warn("FresnelNode is not compatible with "+e.shader+" shader."),e.format("vec3( 0.0 )",this.getType(e),n)}},la=Au;la.Nodes=function(){return{fresnel:new Z(`vec3 fresnel(vec3 color, float bias, float scale, float intensity, float factor, float alpha, int mode, out float calpha) {
383
+ `)}return n}};var _u=class extends de{constructor(e,n,o,i,a,s,l){super("v3");this.nodeType="Fresnel";this.color=e,this.bias=n,this.scale=o,this.intensity=i,this.factor=a,this.alpha=s,this.mode=l,this.calpha=`g${this.uuid.toString().replace(/-/g,"")}_calpha`}generate(e,n){if(e.require("vWorldViewDir"),e.require("worldNormal"),e.isShader("fragment")){e.addFragmentVariable(this.calpha,"float");let o=e.include(_u.Nodes.fresnel),i=[];return i.push(this.color.build(e,"c")),i.push(this.bias.build(e,"f")),i.push(this.scale.build(e,"f")),i.push(this.intensity.build(e,"f")),i.push(this.factor.build(e,"f")),i.push(this.alpha.build(e,"f")),i.push(this.mode.build(e,"i")),i.push(this.calpha),e.format(o+"("+i.join(",")+")",this.getType(e),n)}else return console.warn("FresnelNode is not compatible with "+e.shader+" shader."),e.format("vec3( 0.0 )",this.getType(e),n)}},ca=_u;ca.Nodes=function(){return{fresnel:new Z(`vec3 fresnel(vec3 color, float bias, float scale, float intensity, float factor, float alpha, int mode, out float calpha) {
382
384
  float fresnel = bias + scale * pow( abs( factor + dot( normalize( vWorldViewDir ), normalize( vWNormal ) ) ), intensity );
383
385
 
384
386
  float lalpha = clamp( fresnel, 0.0, 1.0 ) * alpha;
385
387
  calpha = lalpha / clamp(lalpha + accumAlpha, 0.001, 1.0);
386
388
  accumAlpha += (1.0 - accumAlpha) * lalpha;
387
389
  return color;
388
- }`)}}();var _u=class extends de{constructor(e,n,o,i,a,s,l){super("v3");this.nodeType="Rainbow";this.filmThickness=e,this.movement=n,this.wavelengths=o,this.noiseStrength=i,this.noiseScale=a,this.offset=s,this.alpha=l,this.calpha=`g${this.uuid.toString().replace(/-/g,"")}_calpha`}generate(e,n){if(e.require("vWorldViewDir"),e.require("worldNormal"),e.isShader("fragment")){e.require("uv"),e.requires.uv=[!0],e.addFragmentVariable(this.calpha,"float");let o=e.include(_u.Nodes.rainbow),i=[];return i.push(this.filmThickness.build(e,"f")),i.push(this.movement.build(e,"f")),i.push(this.wavelengths.build(e,"v3")),i.push(this.noiseStrength.build(e,"f")),i.push(this.noiseScale.build(e,"f")),i.push(this.offset.build(e,"v3")),i.push(this.alpha.build(e,"f")),i.push(this.calpha),e.format(o+"("+i.join(",")+")",this.getType(e),n)}else return console.warn("RainbowNode is not compatible with "+e.shader+" shader."),e.format("vec3( 0.0 )",this.getType(e),n)}},ca=_u;ca.Nodes=function(){let e=new Z(`vec3 attenuation(vec3 wavelengths, float filmThickness, float movement, float noiseStrength, float noiseScale, vec3 offset) {
390
+ }`)}}();var Ou=class extends de{constructor(e,n,o,i,a,s,l){super("v3");this.nodeType="Rainbow";this.filmThickness=e,this.movement=n,this.wavelengths=o,this.noiseStrength=i,this.noiseScale=a,this.offset=s,this.alpha=l,this.calpha=`g${this.uuid.toString().replace(/-/g,"")}_calpha`}generate(e,n){if(e.require("vWorldViewDir"),e.require("worldNormal"),e.isShader("fragment")){e.require("uv"),e.requires.uv=[!0],e.addFragmentVariable(this.calpha,"float");let o=e.include(Ou.Nodes.rainbow),i=[];return i.push(this.filmThickness.build(e,"f")),i.push(this.movement.build(e,"f")),i.push(this.wavelengths.build(e,"v3")),i.push(this.noiseStrength.build(e,"f")),i.push(this.noiseScale.build(e,"f")),i.push(this.offset.build(e,"v3")),i.push(this.alpha.build(e,"f")),i.push(this.calpha),e.format(o+"("+i.join(",")+")",this.getType(e),n)}else return console.warn("RainbowNode is not compatible with "+e.shader+" shader."),e.format("vec3( 0.0 )",this.getType(e),n)}},ua=Ou;ua.Nodes=function(){let e=new Z(`vec3 attenuation(vec3 wavelengths, float filmThickness, float movement, float noiseStrength, float noiseScale, vec3 offset) {
389
391
  vec3 st = position / noiseScale;
390
392
  vec3 q = vec3(simplex3d(st),
391
393
  simplex3d(st + vec3(1.0)),
@@ -421,7 +423,7 @@ var xv=Object.create;var ec=Object.defineProperty;var bv=Object.getOwnPropertyDe
421
423
  // if this offset is the biggest of all the potential offsets
422
424
  gl_Position = ${l}_clipPosition;
423
425
  }
424
- `)}if(e.isShader("fragment")){e.require("uv"),e.requires.uv=[!0],e.addFragmentVariable(this.calpha,"float");let o=e.include(Iu.Nodes.outline),i=[];return i.push(this.outlineColor.build(e,"c")),i.push(this.contourColor.build(e,"c")),i.push(this.outlineWidth.build(e,"f")),i.push(this.contourWidth.build(e,"f")),i.push(this.contourThreshold.build(e,"f")),i.push(this.outlineThreshold.build(e,"f")),i.push(this.contourFrequency.build(e,"f")),i.push(this.outlineSmoothing.build(e,"f")),i.push(this.contourDirection.build(e,"v3")),i.push(this.positionalLines.build(e,"b")),i.push(this.resolution.build(e,"v2")),i.push(this.normalMap.getTexture(e,"t")),i.push(this.depthMap.getTexture(e,"t")),i.push(this.pixelRatio.build(e,"f")),i.push(this.compensation.build(e,"b")),i.push(this.alpha.build(e,"f")),i.push(this.calpha),this.firstTime=!this.firstTime,e.format(o+"("+i.join(",")+")",this.getType(e),n)}else return console.warn("OutlineNode is not compatible with "+e.shader+" shader."),""}},ua=Iu;ua.Nodes=function(){let e=new Z(`
426
+ `)}if(e.isShader("fragment")){e.require("uv"),e.requires.uv=[!0],e.addFragmentVariable(this.calpha,"float");let o=e.include(Iu.Nodes.outline),i=[];return i.push(this.outlineColor.build(e,"c")),i.push(this.contourColor.build(e,"c")),i.push(this.outlineWidth.build(e,"f")),i.push(this.contourWidth.build(e,"f")),i.push(this.contourThreshold.build(e,"f")),i.push(this.outlineThreshold.build(e,"f")),i.push(this.contourFrequency.build(e,"f")),i.push(this.outlineSmoothing.build(e,"f")),i.push(this.contourDirection.build(e,"v3")),i.push(this.positionalLines.build(e,"b")),i.push(this.resolution.build(e,"v2")),i.push(this.normalMap.getTexture(e,"t")),i.push(this.depthMap.getTexture(e,"t")),i.push(this.pixelRatio.build(e,"f")),i.push(this.compensation.build(e,"b")),i.push(this.alpha.build(e,"f")),i.push(this.calpha),this.firstTime=!this.firstTime,e.format(o+"("+i.join(",")+")",this.getType(e),n)}else return console.warn("OutlineNode is not compatible with "+e.shader+" shader."),""}},pa=Iu;pa.Nodes=function(){let e=new Z(`
425
427
  float sobelSample(sampler2D t, sampler2D d, vec2 uv, vec2 resolution, float outlineWidth, float pixelRatio)
426
428
  {
427
429
  vec2 texelSize = (vec2(1.0) / resolution) * outlineWidth * pixelRatio;
@@ -561,7 +563,7 @@ float sobelSample(sampler2D t, sampler2D d, vec2 uv, vec2 resolution, float outl
561
563
  calpha = lalpha / clamp( lalpha + accumAlpha, 0.00001, 1.0 );
562
564
  accumAlpha += ( 1.0 - accumAlpha ) * lalpha;
563
565
  return result;
564
- }`,[e])}}();var Ou=class extends de{constructor(e,n,o,i,a,s,l,u){super("v3");this.nodeType="Transmission";this.thickness=e,this.ior=n,this.roughness=o,this.transmissionSamplerSize=i,this.transmissionSamplerMap=a,this.transmissionDepthMap=s,this.aspectRatio=l,this.alpha=u,this.calpha=`g${this.uuid.toString().replace(/-/g,"")}_calpha`}generate(e,n){if(e.extensions.shaderTextureLOD=!0,e.extensions.derivatives=!0,e.isShader("fragment")){e.define("NUM_SAMPLES",30),e.require("worldPosition"),e.requires.worldNormal=!0,e.requires.modelMatrix=!0,e.requires.projectionMatrix=!0,e.addFragmentVariable(this.calpha,"float");let o=e.include(Ou.Nodes.transmission),i=[];return i.push(this.thickness.build(e,"f")),i.push(this.ior.build(e,"f")),i.push(this.roughness.build(e,"f")),i.push(this.transmissionSamplerSize.build(e,"v2")),i.push(this.transmissionSamplerMap.getTexture(e,"t")),i.push(this.transmissionDepthMap.getTexture(e,"t")),i.push(this.aspectRatio.build(e,"v2")),i.push("normal"),i.push(this.alpha.build(e,"f")),i.push(this.calpha),e.format(o+"("+i.join(",")+")",this.getType(e),n)}else return console.warn("TransmissionNode is not compatible with "+e.shader+" shader."),e.format("vec3( 0.0 )",this.getType(e),n)}},pa=Ou;pa.Nodes=function(){let e=new Z(`
566
+ }`,[e])}}();var Lu=class extends de{constructor(e,n,o,i,a,s,l,u){super("v3");this.nodeType="Transmission";this.thickness=e,this.ior=n,this.roughness=o,this.transmissionSamplerSize=i,this.transmissionSamplerMap=a,this.transmissionDepthMap=s,this.aspectRatio=l,this.alpha=u,this.calpha=`g${this.uuid.toString().replace(/-/g,"")}_calpha`}generate(e,n){if(e.extensions.shaderTextureLOD=!0,e.extensions.derivatives=!0,e.isShader("fragment")){e.define("NUM_SAMPLES",30),e.require("worldPosition"),e.requires.worldNormal=!0,e.requires.modelMatrix=!0,e.requires.projectionMatrix=!0,e.addFragmentVariable(this.calpha,"float");let o=e.include(Lu.Nodes.transmission),i=[];return i.push(this.thickness.build(e,"f")),i.push(this.ior.build(e,"f")),i.push(this.roughness.build(e,"f")),i.push(this.transmissionSamplerSize.build(e,"v2")),i.push(this.transmissionSamplerMap.getTexture(e,"t")),i.push(this.transmissionDepthMap.getTexture(e,"t")),i.push(this.aspectRatio.build(e,"v2")),i.push("normal"),i.push(this.alpha.build(e,"f")),i.push(this.calpha),e.format(o+"("+i.join(",")+")",this.getType(e),n)}else return console.warn("TransmissionNode is not compatible with "+e.shader+" shader."),e.format("vec3( 0.0 )",this.getType(e),n)}},fa=Lu;fa.Nodes=function(){let e=new Z(`
565
567
  float gaussian(vec2 i) {
566
568
  const float sigma = float(NUM_SAMPLES) * .25;
567
569
  return exp( -.5* dot(i/=sigma,i) ) / ( 6.28 * sigma*sigma );
@@ -649,7 +651,7 @@ vec3 getIBLVolumeRefraction( vec3 n, vec3 v, float roughness, vec3 position, mat
649
651
  calpha = lalpha / clamp( lalpha + accumAlpha, 0.00001, 1.0 );
650
652
  accumAlpha += ( 1.0 - accumAlpha ) * lalpha;
651
653
  return transmission;
652
- }`,[s])}}();var si=class extends de{constructor(e,n,o,i,a,s,l,u,c,p,f){super("v3");this.nodeType="Depth";this.gradientType=e,this.smooth=n,this.near=o,this.far=i,this.isVector=a,this.isWorldSpace=s,this.origin=l,this.direction=u,this.colors=c,this.steps=p,this.alpha=f,this.calpha=`g${this.uuid.toString().replace(/-/g,"")}_calpha`}generate(e,n){let o=`g${this.uuid.toString().replace(/-/g,"")}`,i=new Z(`vec3 ${o}_sdepth(float near, float far, vec3 origin, vec3 direction, vec4 colors[${o}_MAX_COLORS], float steps[${o}_MAX_COLORS], float alpha, out float calpha) {
654
+ }`,[s])}}();var ci=class extends de{constructor(e,n,o,i,a,s,l,u,c,p,f){super("v3");this.nodeType="Depth";this.gradientType=e,this.smooth=n,this.near=o,this.far=i,this.isVector=a,this.isWorldSpace=s,this.origin=l,this.direction=u,this.colors=c,this.steps=p,this.alpha=f,this.calpha=`g${this.uuid.toString().replace(/-/g,"")}_calpha`}generate(e,n){let o=`g${this.uuid.toString().replace(/-/g,"")}`,i=new Z(`vec3 ${o}_sdepth(float near, float far, vec3 origin, vec3 direction, vec4 colors[${o}_MAX_COLORS], float steps[${o}_MAX_COLORS], float alpha, out float calpha) {
653
655
  vec4 color = colors[0];
654
656
  #ifdef ${o}_IS_VECTOR
655
657
  #ifdef ${o}_LINEAR
@@ -689,7 +691,7 @@ vec3 getIBLVolumeRefraction( vec3 n, vec3 v, float roughness, vec3 position, mat
689
691
 
690
692
  accumAlpha += ( 1.0 - accumAlpha ) * lalpha;
691
693
  return color.rgb;
692
- }`,[si.Nodes.vectorLinearWorldSpaceDepth,si.Nodes.vectorLinearObjectSpaceDepth,si.Nodes.vectorSphericalObjectSpaceDepth,si.Nodes.vectorSphericalWorldSpaceDepth]);if(e.isShader("fragment")){e.define(`${o}_MAX_COLORS`,this.colors.value.length),this.smooth.value&&e.define(`${o}_SMOOTH`),this.isVector.value>.5&&e.define(`${o}_IS_VECTOR`),this.gradientType.value===0&&e.define(`${o}_LINEAR`),this.isWorldSpace.value>.5&&e.define(`${o}_WORLDSPACE`),e.require("worldPosition"),e.addFragmentVariable(this.calpha,"float");let a=e.include(i),s=[];return s.push(this.near.build(e,"f")),s.push(this.far.build(e,"f")),s.push(this.origin.build(e,"v3")),s.push(this.direction.build(e,"v3")),s.push(this.colors.build(e,"v4[]")),s.push(this.steps.build(e,"f[]")),s.push(this.alpha.build(e,"f")),s.push(this.calpha),e.format(a+"("+s.join(",")+")",this.getType(e),n)}else return console.warn("DepthNode is not compatible with "+e.shader+" shader."),e.format("vec3( 0.0 )",this.getType(e),n)}},fa=si;fa.Nodes=function(){let e=new Z(`float vectorLinearWorldSpaceDepth(vec3 direction, vec3 origin, float near, float far) {
694
+ }`,[ci.Nodes.vectorLinearWorldSpaceDepth,ci.Nodes.vectorLinearObjectSpaceDepth,ci.Nodes.vectorSphericalObjectSpaceDepth,ci.Nodes.vectorSphericalWorldSpaceDepth]);if(e.isShader("fragment")){e.define(`${o}_MAX_COLORS`,this.colors.value.length),this.smooth.value&&e.define(`${o}_SMOOTH`),this.isVector.value>.5&&e.define(`${o}_IS_VECTOR`),this.gradientType.value===0&&e.define(`${o}_LINEAR`),this.isWorldSpace.value>.5&&e.define(`${o}_WORLDSPACE`),e.require("worldPosition"),e.addFragmentVariable(this.calpha,"float");let a=e.include(i),s=[];return s.push(this.near.build(e,"f")),s.push(this.far.build(e,"f")),s.push(this.origin.build(e,"v3")),s.push(this.direction.build(e,"v3")),s.push(this.colors.build(e,"v4[]")),s.push(this.steps.build(e,"f[]")),s.push(this.alpha.build(e,"f")),s.push(this.calpha),e.format(a+"("+s.join(",")+")",this.getType(e),n)}else return console.warn("DepthNode is not compatible with "+e.shader+" shader."),e.format("vec3( 0.0 )",this.getType(e),n)}},da=ci;da.Nodes=function(){let e=new Z(`float vectorLinearWorldSpaceDepth(vec3 direction, vec3 origin, float near, float far) {
693
695
  vec3 n = normalize(direction);
694
696
  float dist = (n.x*(vWPosition.x - origin.x) + n.y*(vWPosition.y - origin.y) + n.z*(vWPosition.z - origin.z));
695
697
  return ( dist - near ) / ( far - near );
@@ -703,7 +705,7 @@ vec3 getIBLVolumeRefraction( vec3 n, vec3 v, float roughness, vec3 position, mat
703
705
  }`),i=new Z(`float vectorSphericalObjectSpaceDepth(vec3 origin, float near, float far) {
704
706
  float dist = length(position - origin);
705
707
  return ( dist - near ) / ( far - near );
706
- }`);return{vectorLinearWorldSpaceDepth:e,vectorLinearObjectSpaceDepth:n,vectorSphericalWorldSpaceDepth:o,vectorSphericalObjectSpaceDepth:i}}();var da=class extends de{constructor(e,n,o,i){super("v3");this.nodeType="Blend";this.a=e,this.b=n,this.alpha=o,this.mode=i}generate(e,n){if(e.isShader("fragment")){let o=[];return o.push(this.a.build(e,"c")),o.push(this.b.build(e,"c")),o.push(this.alpha.build(e,"f")),o.push(this.mode.build(e,"i")),e.format("spe_blend("+o.join(",")+")",this.getType(e),n)}else return console.warn("BlendNode is not compatible with "+e.shader+" shader."),e.format("vec3( 0.0 )",this.getType(e),n)}};var Lu=(e=>(e.NOISE="noise",e.MAP="map",e))(Lu||{}),Nu=class extends de{constructor(e,n,o,i,a){super("v3");this.displacementTypeIndex=new Te(0);this.nodeType="VertexDisplacement";this.intensity=e,this.movementOrTexture=n,Object.values(Lu)[this.displacementTypeIndex.value]==="map"&&(this.mat=new ai(this.movementOrTexture.value.matrix)),this.cropOrOffset=o,this.scale=i,this.noiseFunctionIndex=a}generate(e,n){if(e.isShader("vertex")){e.define("USE_LAYER_DISPLACE");let o,i=[];switch(i.push("displaced_position"),i.push("displaced_normal"),Object.values(Lu)[this.displacementTypeIndex.value]){case"map":{o=e.include(Nu.Nodes.map),i.push(this.movementOrTexture.getTexture(e,"t")),i.push("uv"),i.push(this.cropOrOffset.build(e,"f")),this.mat&&i.push(this.mat.build(e,"mat3"));break}case"noise":{let s=Object.values(aa)[this.noiseFunctionIndex.value],l=new Z(`vec3 orthogonal(vec3 v) {
708
+ }`);return{vectorLinearWorldSpaceDepth:e,vectorLinearObjectSpaceDepth:n,vectorSphericalWorldSpaceDepth:o,vectorSphericalObjectSpaceDepth:i}}();var ha=class extends de{constructor(e,n,o,i){super("v3");this.nodeType="Blend";this.a=e,this.b=n,this.alpha=o,this.mode=i}generate(e,n){if(e.isShader("fragment")){let o=[];return o.push(this.a.build(e,"c")),o.push(this.b.build(e,"c")),o.push(this.alpha.build(e,"f")),o.push(this.mode.build(e,"i")),e.format("spe_blend("+o.join(",")+")",this.getType(e),n)}else return console.warn("BlendNode is not compatible with "+e.shader+" shader."),e.format("vec3( 0.0 )",this.getType(e),n)}};var Nu=(e=>(e.NOISE="noise",e.MAP="map",e))(Nu||{}),Pu=class extends de{constructor(e,n,o,i,a){super("v3");this.displacementTypeIndex=new Te(0);this.nodeType="VertexDisplacement";this.intensity=e,this.movementOrTexture=n,Object.values(Nu)[this.displacementTypeIndex.value]==="map"&&(this.mat=new li(this.movementOrTexture.value.matrix)),this.cropOrOffset=o,this.scale=i,this.noiseFunctionIndex=a}generate(e,n){if(e.isShader("vertex")){e.define("USE_LAYER_DISPLACE");let o,i=[];switch(i.push("displaced_position"),i.push("displaced_normal"),Object.values(Nu)[this.displacementTypeIndex.value]){case"map":{o=e.include(Pu.Nodes.map),i.push(this.movementOrTexture.getTexture(e,"t")),i.push("uv"),i.push(this.cropOrOffset.build(e,"f")),this.mat&&i.push(this.mat.build(e,"mat3"));break}case"noise":{let s=Object.values(sa)[this.noiseFunctionIndex.value],l=new Z(`vec3 orthogonal(vec3 v) {
707
709
  return normalize(abs(v.x) > abs(v.z) ? vec3(-v.y, v.x, 0.0) : vec3(0.0, -v.z, v.y));
708
710
  }`),u=new Z(`vec3 distorted(vec3 p, vec3 n, float scale, float intensity, vec3 offset, float neighbour_offset, float movement) {
709
711
  return p + n * ${s}((p + offset) * scale * 0.001 + neighbour_offset + (movement * 0.1)) * intensity;
@@ -723,7 +725,7 @@ vec3 getIBLVolumeRefraction( vec3 n, vec3 v, float roughness, vec3 position, mat
723
725
  vec3 distorted2 = distorted(nearby2, normal, scale, intensity, offset, neighbor_offset, movement);
724
726
  displaced_normal = normalize(cross(distorted1 - displaced_position, distorted2 - displaced_position));
725
727
  return displaced_position;
726
- }`,[u,l]);o=e.include(c),i.push(this.scale.build(e,"f")),i.push(this.cropOrOffset.build(e,"v3")),i.push(this.movementOrTexture.build(e,"f"));break}}return i.push(this.intensity.build(e,"f")),i.push("displaced_normal"),e.format(o+"("+i.join(",")+")",this.getType(e),n)}else return console.warn("VertexDisplacementNode is not compatible with "+e.shader+" shader."),e.format("vec3( 0.0 )",this.getType(e),n)}},ha=Nu;ha.Nodes=function(){let e=new Z(`vec3 orthogonal(vec3 v) {
728
+ }`,[u,l]);o=e.include(c),i.push(this.scale.build(e,"f")),i.push(this.cropOrOffset.build(e,"v3")),i.push(this.movementOrTexture.build(e,"f"));break}}return i.push(this.intensity.build(e,"f")),i.push("displaced_normal"),e.format(o+"("+i.join(",")+")",this.getType(e),n)}else return console.warn("VertexDisplacementNode is not compatible with "+e.shader+" shader."),e.format("vec3( 0.0 )",this.getType(e),n)}},ma=Pu;ma.Nodes=function(){let e=new Z(`vec3 orthogonal(vec3 v) {
727
729
  return normalize(abs(v.x) > abs(v.z) ? vec3(-v.y, v.x, 0.0) : vec3(0.0, -v.z, v.y));
728
730
  }`),n=new Z(`float displacementMapTexture(sampler2D tex, float crop, vec2 uv, mat3 mat, vec2 offset) {
729
731
  vec2 uvs = (mat * vec3(uv * 2.0 - 1.0, 1.0) / 2.0 + 0.5).xy + offset;
@@ -745,7 +747,7 @@ vec3 getIBLVolumeRefraction( vec3 n, vec3 v, float roughness, vec3 position, mat
745
747
  vec3 distorted2 = nearby2 + normal * displacementMapTexture(tex, crop, uv, mat, vec2(neighbor_offset)) * intensity;
746
748
  displaced_normal = normalize(cross(distorted1 - displaced_position, distorted2 - displaced_position));
747
749
  return displaced_position;
748
- }`,[e,n])}}();var Pu=class extends de{constructor(e,n,o,i,a,s,l,u){super("v3");this.nodeType="Gradient";this.gradientType=e,this.smooth=n,this.colors=o,this.steps=i,this.offset=a,this.morph=s,this.angle=l,this.alpha=u,this.calpha=`g${this.uuid.toString().replace(/-/g,"")}_calpha`}generate(e,n){if(e.isShader("fragment")){e.define("GRAD_MAX",10),e.require("uv"),e.requires.uv=[!0],e.addFragmentVariable(this.calpha,"float");let o=e.include(Pu.Nodes.gradient),i=[];return i.push(this.gradientType.build(e,"i")),i.push(this.smooth.build(e,"b")),i.push(this.colors.build(e,"v4[]")),i.push(this.steps.build(e,"f[]")),i.push(this.offset.build(e,"v2")),i.push(this.morph.build(e,"v2")),i.push(this.angle.build(e,"f")),i.push(this.alpha.build(e,"f")),i.push(this.calpha),e.format(o+"("+i.join(",")+")",this.getType(e),n)}else return console.warn("GradientNode is not compatible with "+e.shader+" shader."),e.format("vec3( 0.0 )",this.getType(e),n)}},ma=Pu;ma.Nodes=function(){return{gradient:new Z(`vec3 gradient(int gradientType, bool smoothed, vec4 colors[GRAD_MAX], float steps[GRAD_MAX], vec2 offset, vec2 morph, float angle, float alpha, out float calpha) {
750
+ }`,[e,n])}}();var Mu=class extends de{constructor(e,n,o,i,a,s,l,u){super("v3");this.nodeType="Gradient";this.gradientType=e,this.smooth=n,this.colors=o,this.steps=i,this.offset=a,this.morph=s,this.angle=l,this.alpha=u,this.calpha=`g${this.uuid.toString().replace(/-/g,"")}_calpha`}generate(e,n){if(e.isShader("fragment")){e.define("GRAD_MAX",10),e.require("uv"),e.requires.uv=[!0],e.addFragmentVariable(this.calpha,"float");let o=e.include(Mu.Nodes.gradient),i=[];return i.push(this.gradientType.build(e,"i")),i.push(this.smooth.build(e,"b")),i.push(this.colors.build(e,"v4[]")),i.push(this.steps.build(e,"f[]")),i.push(this.offset.build(e,"v2")),i.push(this.morph.build(e,"v2")),i.push(this.angle.build(e,"f")),i.push(this.alpha.build(e,"f")),i.push(this.calpha),e.format(o+"("+i.join(",")+")",this.getType(e),n)}else return console.warn("GradientNode is not compatible with "+e.shader+" shader."),e.format("vec3( 0.0 )",this.getType(e),n)}},ga=Mu;ga.Nodes=function(){return{gradient:new Z(`vec3 gradient(int gradientType, bool smoothed, vec4 colors[GRAD_MAX], float steps[GRAD_MAX], vec2 offset, vec2 morph, float angle, float alpha, out float calpha) {
749
751
  vec4 color = colors[0];
750
752
  vec2 m = morph / vUv.xy;
751
753
  vec2 rot = vec2( 0.5 + m.x, m.y );
@@ -787,7 +789,7 @@ vec3 getIBLVolumeRefraction( vec3 n, vec3 v, float roughness, vec3 position, mat
787
789
  accumAlpha += ( 1.0 - accumAlpha ) * lalpha;
788
790
 
789
791
  return color.xyz;
790
- }`)}}();var ya=class extends de{constructor(e,n,o,i,a,s,l,u,c,p){super("v3");this.nodeType="CustomTexture";this.firstTime=!0,this.texture=e,this.textureSize=n,this.crop=o,this.projection=i,this.axis=a,this.side=s,this.size=l,this.mat=u,this.alpha=c,this.mode=p,this.calpha=`g${this.uuid.toString().replace(/-/g,"")}_calpha`}generate(e,n){e.require("position"),e.require("normal"),e.require("uv"),e.requires.uv=[!0],e.extensions.shaderTextureLOD=!0,e.extensions.derivatives=!0;let o=`g${this.uuid.toString().replace(/-/g,"")}`,i;switch(this.projection.value){case 3:i=e.include(ya.Nodes.cylindrical);break;case 2:i=e.include(ya.Nodes.spherical);break;case 1:let s=["vec3(1.0, 0.0, 0.0)","vec3(0.0, 1.0, 0.0)","vec3(0.0, 0.0, 1.0)"][this.axis.value],l=new Z(`
792
+ }`)}}();var va=class extends de{constructor(e,n,o,i,a,s,l,u,c,p){super("v3");this.nodeType="CustomTexture";this.firstTime=!0,this.texture=e,this.textureSize=n,this.crop=o,this.projection=i,this.axis=a,this.side=s,this.size=l,this.mat=u,this.alpha=c,this.mode=p,this.calpha=`g${this.uuid.toString().replace(/-/g,"")}_calpha`}generate(e,n){e.require("position"),e.require("normal"),e.require("uv"),e.requires.uv=[!0],e.extensions.shaderTextureLOD=!0,e.extensions.derivatives=!0;let o=`g${this.uuid.toString().replace(/-/g,"")}`,i;switch(this.projection.value){case 3:i=e.include(va.Nodes.cylindrical);break;case 2:i=e.include(va.Nodes.spherical);break;case 1:let s=["vec3(1.0, 0.0, 0.0)","vec3(0.0, 1.0, 0.0)","vec3(0.0, 0.0, 1.0)"][this.axis.value],l=new Z(`
791
793
  vec3 ${o}_planarTexture(sampler2D tex, vec2 textureSize, float crop, mat3 mat, vec2 size, float alpha, int mode, out float calpha) {
792
794
 
793
795
  vec2 uvs = ( mat * vec3( (${o}_vCustomUv * 2. - 1.) / (size * .5), 1. ) / 2. + 0.5 ).xy;
@@ -806,7 +808,7 @@ vec3 getIBLVolumeRefraction( vec3 n, vec3 v, float roughness, vec3 position, mat
806
808
  calpha = lalpha / clamp( lalpha + accumAlpha, 0.00001, 1.0 );
807
809
  accumAlpha += ( 1.0 - accumAlpha ) * lalpha;
808
810
  return col;
809
- }`);i=e.include(l);break;default:i=e.include(ya.Nodes.uv);break}if(this.projection.value===1&&this.firstTime){e.addVertexParsCode(`varying vec2 ${o}_vCustomUv;`),e.addFragmentParsCode(`varying vec2 ${o}_vCustomUv;`);let s=["zy","xz","xy"][this.axis.value];e.addVertexFinalCode(`${o}_vCustomUv = (1. + (transformed.${s})) / 2.;`)}e.addFragmentVariable(this.calpha,"float");let a=[];return a.push(this.texture.generate(e,"t")),a.push(this.textureSize.build(e,"v2")),a.push(this.crop.build(e,"f")),a.push(this.mat.build(e,"mat3")),a.push(this.size.build(e,"v2")),a.push(this.alpha.build(e,"f")),a.push(this.mode.build(e,"i")),a.push(this.calpha),this.firstTime=!this.firstTime,e.format(i+"("+a.join(",")+")",this.getType(e),n)}},ga=ya;ga.Nodes=function(){let e=new Z(`
811
+ }`);i=e.include(l);break;default:i=e.include(va.Nodes.uv);break}if(this.projection.value===1&&this.firstTime){e.addVertexParsCode(`varying vec2 ${o}_vCustomUv;`),e.addFragmentParsCode(`varying vec2 ${o}_vCustomUv;`);let s=["zy","xz","xy"][this.axis.value];e.addVertexFinalCode(`${o}_vCustomUv = (1. + (transformed.${s})) / 2.;`)}e.addFragmentVariable(this.calpha,"float");let a=[];return a.push(this.texture.generate(e,"t")),a.push(this.textureSize.build(e,"v2")),a.push(this.crop.build(e,"f")),a.push(this.mat.build(e,"mat3")),a.push(this.size.build(e,"v2")),a.push(this.alpha.build(e,"f")),a.push(this.mode.build(e,"i")),a.push(this.calpha),this.firstTime=!this.firstTime,e.format(i+"("+a.join(",")+")",this.getType(e),n)}},ya=va;ya.Nodes=function(){let e=new Z(`
810
812
  vec3 cylindricalTexture(sampler2D tex, vec2 textureSize, float crop, mat3 mat, vec2 size, float alpha, int mode, out float calpha) {
811
813
  vec3 posN = normalize(position);
812
814
  float u = 0.5 + atan(posN.z, posN.x) / (2.*3.1415);
@@ -880,14 +882,14 @@ vec3 sphericalTexture(sampler2D tex, vec2 textureSize, float crop, mat3 mat, vec
880
882
  calpha = lalpha / clamp( lalpha + accumAlpha, 0.00001, 1.0 );
881
883
  accumAlpha += ( 1.0 - accumAlpha ) * lalpha;
882
884
  return col;
883
- }`);return{cylindrical:e,spherical:n,uv:o}}();var Mu=class extends de{constructor(e,n){super("v3");this.nodeType="CustomNormal";this.cnormal=e,this.alpha=n}generate(e,n){if(e.isShader("fragment")){let o=e.include(Mu.Nodes.customNormal),i=[];return i.push(this.cnormal.build(e,"v3")),i.push("normal"),i.push(this.alpha.build(e,"f")),e.format(o+"("+i.join(",")+")",this.getType(e),n)}else return console.warn("CustomNormalNode is not compatible with "+e.shader+" shader."),e.format("vec3( 0.0 )",this.getType(e),n)}},va=Mu;va.Nodes=function(){return{customNormal:new Z(`vec3 customNormal(vec3 cnormal, vec3 norm, float alpha) {
885
+ }`);return{cylindrical:e,spherical:n,uv:o}}();var Eu=class extends de{constructor(e,n){super("v3");this.nodeType="CustomNormal";this.cnormal=e,this.alpha=n}generate(e,n){if(e.isShader("fragment")){let o=e.include(Eu.Nodes.customNormal),i=[];return i.push(this.cnormal.build(e,"v3")),i.push("normal"),i.push(this.alpha.build(e,"f")),e.format(o+"("+i.join(",")+")",this.getType(e),n)}else return console.warn("CustomNormalNode is not compatible with "+e.shader+" shader."),e.format("vec3( 0.0 )",this.getType(e),n)}},xa=Eu;xa.Nodes=function(){return{customNormal:new Z(`vec3 customNormal(vec3 cnormal, vec3 norm, float alpha) {
884
886
  vec3 normal = packNormalToRGB( norm ).rgb;
885
887
  normal *= step( vec3(0.5), cnormal );
886
888
 
887
889
  accumAlpha += ( 1.0 - accumAlpha ) * alpha;
888
890
 
889
891
  return normal;
890
- }`)}}();var dt={normalRenderTarget:new Ot,normalRenderTargetDepth:new Ot,transmissionRenderTarget:new Ot,transmissionSize:new st(2048,2048),transmissionRenderTargetDepth:new Ot,pixelRatioNode:new J(1),resolution:new st,penumbraSize:new ar(5,.5)};for(let r of Object.values(dt))r.isRenderGlobal=!0;var xa=class extends at{constructor(){super("lambert");this.nodeType="Lambert";this.color=new Le(5855577),this.emissive=new Le(0),this.emissiveIntensity=new J(1),this.shadingAlpha=new J(1),this.shadingBlend=new Te(0)}build(e){let n;if(e.define("LAMBERT"),e.requires.lights=!0,e.extensions.derivatives=!0,e.isShader("vertex")){let o=this.position?this.position.analyzeAndFlow(e,"v3",{cache:"position"}):void 0;e.mergeUniform(QA.merge([yg.fog,yg.lights])),e.addParsCode(["varying vec3 vViewPosition;","varying vec3 vWPosition;","varying vec3 vLightFront;","varying vec3 vIndirectFront;","#ifndef DOUBLE_SIDED"," #define DOUBLE_SIDED","#endif","#ifdef DOUBLE_SIDED"," varying vec3 vLightBack;"," varying vec3 vIndirectBack;","#endif","#include <bsdfs>","#include <lights_pars_begin>","#include <color_pars_vertex>","#include <fog_pars_vertex>","#include <normal_pars_vertex>","#include <shadowmap_pars_vertex>","#include <clipping_planes_pars_vertex>"].join(`
892
+ }`)}}();var dt={normalRenderTarget:new It,normalRenderTargetDepth:new It,transmissionRenderTarget:new It,transmissionSize:new st(2048,2048),transmissionRenderTargetDepth:new It,pixelRatioNode:new J(1),resolution:new st,penumbraSize:new ir(5,.5)};for(let r of Object.values(dt))r.isRenderGlobal=!0;var ba=class extends at{constructor(){super("lambert");this.nodeType="Lambert";this.color=new Ne(5855577),this.emissive=new Ne(0),this.emissiveIntensity=new J(1),this.shadingAlpha=new J(1),this.shadingBlend=new Te(0)}build(e){let n;if(e.define("LAMBERT"),e.requires.lights=!0,e.extensions.derivatives=!0,e.isShader("vertex")){let o=this.position?this.position.analyzeAndFlow(e,"v3",{cache:"position"}):void 0;e.mergeUniform(r_.merge([xg.fog,xg.lights])),e.addParsCode(["varying vec3 vViewPosition;","varying vec3 vWPosition;","varying vec3 vLightFront;","varying vec3 vIndirectFront;","#ifndef DOUBLE_SIDED"," #define DOUBLE_SIDED","#endif","#ifdef DOUBLE_SIDED"," varying vec3 vLightBack;"," varying vec3 vIndirectBack;","#endif","#include <bsdfs>","#include <lights_pars_begin>","#include <color_pars_vertex>","#include <fog_pars_vertex>","#include <normal_pars_vertex>","#include <shadowmap_pars_vertex>","#include <clipping_planes_pars_vertex>"].join(`
891
893
  `));let i=["#include <beginnormal_vertex>",`
892
894
  #ifndef USE_LAYER_DISPLACE
893
895
  #include <defaultnormal_vertex>
@@ -979,7 +981,7 @@ vec3 sphericalTexture(sampler2D tex, vec2 textureSize, float crop, mat3 mat, vec
979
981
  #pragma unroll_loop_end
980
982
  #endif
981
983
  `," #include <shadowmap_vertex>"," #include <fog_vertex>"),i.push("vWPosition = ( modelMatrix * vec4( transformed, 1.0 ) ).xyz;"),n=i.join(`
982
- `)}else{e.mergeUniform({penumbraSize:dt.penumbraSize}),this.color===void 0&&(this.color=new Le(5855577)),this.color.analyze(e,{slot:"color"}),this.shadingAlpha.analyze(e),this.shadingBlend.analyze(e),this.afterColor&&this.afterColor.analyze(e,{slot:"afterColor"}),this.alpha&&this.alpha.analyze(e);let o=this.color.flow(e,"c",{slot:"color"}),i=this.emissive.flow(e,"c",{slot:"emissive"}),a=this.emissiveIntensity.flow(e,"f",{slot:"emissive"}),s=this.shadingAlpha.flow(e,"f"),l=this.shadingBlend.flow(e,"i"),u=this.afterColor?this.afterColor.flow(e,"c",{slot:"afterColor"}):void 0,c=this.alpha?this.alpha.flow(e,"f"):void 0;e.requires.transparent=c!==void 0,e.addParsCode([`uniform float penumbraSize[${5}];`,"varying vec3 vViewPosition;","varying vec3 vWPosition;","varying vec3 vLightFront;","varying vec3 vIndirectFront;","#ifndef DOUBLE_SIDED"," #define DOUBLE_SIDED","#endif","#include <normal_pars_fragment>","#ifdef DOUBLE_SIDED"," varying vec3 vLightBack;"," varying vec3 vIndirectBack;","#endif","#include <bsdfs>","#include <lights_pars_begin>","#include <fog_pars_fragment>","#include <shadowmap_pars_fragment>","#include <shadowmask_pars_fragment>","#include <clipping_planes_pars_fragment>","#include <dithering_pars_fragment>"].join(`
984
+ `)}else{e.mergeUniform({penumbraSize:dt.penumbraSize}),this.color===void 0&&(this.color=new Ne(5855577)),this.color.analyze(e,{slot:"color"}),this.shadingAlpha.analyze(e),this.shadingBlend.analyze(e),this.afterColor&&this.afterColor.analyze(e,{slot:"afterColor"}),this.alpha&&this.alpha.analyze(e);let o=this.color.flow(e,"c",{slot:"color"}),i=this.emissive.flow(e,"c",{slot:"emissive"}),a=this.emissiveIntensity.flow(e,"f",{slot:"emissive"}),s=this.shadingAlpha.flow(e,"f"),l=this.shadingBlend.flow(e,"i"),u=this.afterColor?this.afterColor.flow(e,"c",{slot:"afterColor"}):void 0,c=this.alpha?this.alpha.flow(e,"f"):void 0;e.requires.transparent=c!==void 0,e.addParsCode([`uniform float penumbraSize[${5}];`,"varying vec3 vViewPosition;","varying vec3 vWPosition;","varying vec3 vLightFront;","varying vec3 vIndirectFront;","#ifndef DOUBLE_SIDED"," #define DOUBLE_SIDED","#endif","#include <normal_pars_fragment>","#ifdef DOUBLE_SIDED"," varying vec3 vLightBack;"," varying vec3 vIndirectBack;","#endif","#include <bsdfs>","#include <lights_pars_begin>","#include <fog_pars_fragment>","#include <shadowmap_pars_fragment>","#include <shadowmask_pars_fragment>","#include <clipping_planes_pars_fragment>","#include <dithering_pars_fragment>"].join(`
983
985
  `));let p=["#include <normal_fragment_begin>",`
984
986
  // NOTE: gl_FrontFacing alternative using face normal estimation.
985
987
  vec3 viewdx = dFdx(vViewPosition);
@@ -993,7 +995,7 @@ vec3 sphericalTexture(sampler2D tex, vec2 textureSize, float crop, mat3 mat, vec
993
995
  outgoingLight = spe_blend( diffuseColor, outgoingLight, ${s.result}, ${l.result} );
994
996
  }
995
997
  `),u&&p.push(u.code,`outgoingLight = spe_blend(outgoingLight, ${u.result}, 1.0, SPE_BLENDING_NORMAL);`),c?p.push(`gl_FragColor = vec4( outgoingLight, accumAlpha * ${c.result} );`):p.push("gl_FragColor = vec4( outgoingLight, 1.0 );"),p.push("#include <encodings_fragment>","#include <fog_fragment>","#include <dithering_fragment>"),n=p.join(`
996
- `)}return n}};import{UniformsLib as Eu,UniformsUtils as JA}from"three";var ba=class extends at{constructor(){super("standard");this.nodeType="Standard";this.color=new Le(5855577),this.roughness=new J(.3),this.metalness=new J(0),this.reflectivity=new J(.5),this.shadingAlpha=new J(1),this.shadingBlend=new Te(0)}build(e){let n;if(e.define("STANDARD"),e.requires.lights=!0,e.extensions.derivatives=!0,e.extensions.shaderTextureLOD=!0,e.isShader("vertex")){let o=this.position?this.position.analyzeAndFlow(e,"v3",{cache:"position"}):void 0;e.mergeUniform(JA.merge([Eu.fog,Eu.lights])),Eu.LTC_1&&(e.uniforms.ltc_1={value:void 0},e.uniforms.ltc_2={value:void 0}),e.addParsCode(["varying vec3 vViewPosition;","varying vec3 vWPosition;","#include <fog_pars_vertex>","#include <normal_pars_vertex>","#include <shadowmap_pars_vertex>","#include <clipping_planes_pars_vertex>"].join(`
998
+ `)}return n}};import{UniformsLib as Du,UniformsUtils as n_}from"three";var Sa=class extends at{constructor(){super("standard");this.nodeType="Standard";this.color=new Ne(5855577),this.roughness=new J(.3),this.metalness=new J(0),this.reflectivity=new J(.5),this.shadingAlpha=new J(1),this.shadingBlend=new Te(0)}build(e){let n;if(e.define("STANDARD"),e.requires.lights=!0,e.extensions.derivatives=!0,e.extensions.shaderTextureLOD=!0,e.isShader("vertex")){let o=this.position?this.position.analyzeAndFlow(e,"v3",{cache:"position"}):void 0;e.mergeUniform(n_.merge([Du.fog,Du.lights])),Du.LTC_1&&(e.uniforms.ltc_1={value:void 0},e.uniforms.ltc_2={value:void 0}),e.addParsCode(["varying vec3 vViewPosition;","varying vec3 vWPosition;","#include <fog_pars_vertex>","#include <normal_pars_vertex>","#include <shadowmap_pars_vertex>","#include <clipping_planes_pars_vertex>"].join(`
997
999
  `));let i=["#include <beginnormal_vertex>",`
998
1000
  #if !defined( USE_LAYER_DISPLACE )
999
1001
  #include <defaultnormal_vertex>
@@ -1011,7 +1013,7 @@ vec3 sphericalTexture(sampler2D tex, vec2 textureSize, float crop, mat3 mat, vec
1011
1013
  #include <begin_vertex>
1012
1014
  #endif /* !USE_LAYER_DISPLACE */
1013
1015
  `];o&&i.push(o.code,o.result?"displaced_position = "+o.result+";":""),i.push("transformed = displaced_position;","transformedNormal = normalMatrix * displaced_normal;","#ifndef FLAT_SHADED"," vNormal = transformedNormal;","#endif"),i.push("#include <project_vertex>","#include <fog_vertex>","#include <clipping_planes_vertex>"," vViewPosition = - mvPosition.xyz;","#include <worldpos_vertex>","#include <shadowmap_vertex>"),i.push("vWPosition = ( modelMatrix * vec4( transformed, 1.0 ) ).xyz;"),n=i.join(`
1014
- `)}else{e.mergeUniform({penumbraSize:dt.penumbraSize});let o={gamma:!0};this.color===void 0&&(this.color=new Le(5855577)),this.color.analyze(e,{slot:"color",context:o}),this.roughness.analyze(e),this.metalness.analyze(e),this.shadingAlpha.analyze(e),this.shadingBlend.analyze(e),this.afterColor&&this.afterColor.analyze(e,{slot:"afterColor"}),this.alpha&&this.alpha.analyze(e),this.reflectivity&&this.reflectivity.analyze(e);let i=this.color.flow(e,"c",{slot:"color",context:o}),a=this.roughness.flow(e,"f"),s=this.metalness.flow(e,"f"),l=this.shadingAlpha.flow(e,"f"),u=this.shadingBlend.flow(e,"i"),c=this.afterColor?this.afterColor.flow(e,"c",{slot:"afterColor"}):void 0,p=this.alpha?this.alpha.flow(e,"f"):void 0,f=this.reflectivity?this.reflectivity.flow(e,"f"):void 0;e.requires.transparent=p!==void 0,e.addParsCode(["varying vec3 vViewPosition;","varying vec3 vWPosition;",`uniform float penumbraSize[${5}];`,"#include <normal_pars_fragment>","#include <dithering_pars_fragment>","#include <fog_pars_fragment>","#include <bsdfs>","#include <lights_pars_begin>","#include <lights_physical_pars_fragment>","#include <shadowmap_pars_fragment>"].join(`
1016
+ `)}else{e.mergeUniform({penumbraSize:dt.penumbraSize});let o={gamma:!0};this.color===void 0&&(this.color=new Ne(5855577)),this.color.analyze(e,{slot:"color",context:o}),this.roughness.analyze(e),this.metalness.analyze(e),this.shadingAlpha.analyze(e),this.shadingBlend.analyze(e),this.afterColor&&this.afterColor.analyze(e,{slot:"afterColor"}),this.alpha&&this.alpha.analyze(e),this.reflectivity&&this.reflectivity.analyze(e);let i=this.color.flow(e,"c",{slot:"color",context:o}),a=this.roughness.flow(e,"f"),s=this.metalness.flow(e,"f"),l=this.shadingAlpha.flow(e,"f"),u=this.shadingBlend.flow(e,"i"),c=this.afterColor?this.afterColor.flow(e,"c",{slot:"afterColor"}):void 0,p=this.alpha?this.alpha.flow(e,"f"):void 0,f=this.reflectivity?this.reflectivity.flow(e,"f"):void 0;e.requires.transparent=p!==void 0,e.addParsCode(["varying vec3 vViewPosition;","varying vec3 vWPosition;",`uniform float penumbraSize[${5}];`,"#include <normal_pars_fragment>","#include <dithering_pars_fragment>","#include <fog_pars_fragment>","#include <bsdfs>","#include <lights_pars_begin>","#include <lights_physical_pars_fragment>","#include <shadowmap_pars_fragment>"].join(`
1015
1017
  `));let d=["#include <clipping_planes_fragment>"," #include <normal_fragment_begin>",`
1016
1018
  // NOTE: gl_FrontFacing alternative using face normal estimation.
1017
1019
  vec3 viewdx = dFdx(vViewPosition);
@@ -1027,7 +1029,7 @@ vec3 sphericalTexture(sampler2D tex, vec2 textureSize, float crop, mat3 mat, vec
1027
1029
  outgoingLight = spe_blend( diffuseColor, outgoingLight, ${l.result}, ${u.result} );
1028
1030
  }
1029
1031
  `),c&&d.push(c.code,`outgoingLight = spe_blend(outgoingLight, ${c.result}, 1.0, SPE_BLENDING_NORMAL);`),p?d.push(`gl_FragColor = vec4( outgoingLight, accumAlpha * ${p.result} );`):d.push("gl_FragColor = vec4( outgoingLight, 1.0 );"),d.push("#include <encodings_fragment>","#include <fog_fragment>","#include <dithering_fragment>"),n=d.join(`
1030
- `)}return n}};import{UniformsLib as vg,UniformsUtils as e_}from"three";var Sa=class extends at{constructor(){super("toon");this.nodeType="Toon";this.color=new Le(5855577),this.specular=new Le(1118481),this.shininess=new J(30),this.shadingAlpha=new J(1),this.shadingBlend=new Te(0)}build(e){let n;if(e.define("TOON"),e.requires.lights=!0,e.extensions.derivatives=!0,e.isShader("vertex")){let o=this.position?this.position.analyzeAndFlow(e,"v3",{cache:"position"}):void 0;e.mergeUniform(e_.merge([vg.fog,vg.lights])),e.addParsCode(["varying vec3 vViewPosition;","varying vec3 vWPosition;","#include <fog_pars_vertex>","#include <normal_pars_vertex>","#include <shadowmap_pars_vertex>","#include <clipping_planes_pars_vertex>"].join(`
1032
+ `)}return n}};import{UniformsLib as bg,UniformsUtils as o_}from"three";var wa=class extends at{constructor(){super("toon");this.nodeType="Toon";this.color=new Ne(5855577),this.specular=new Ne(1118481),this.shininess=new J(30),this.shadingAlpha=new J(1),this.shadingBlend=new Te(0)}build(e){let n;if(e.define("TOON"),e.requires.lights=!0,e.extensions.derivatives=!0,e.isShader("vertex")){let o=this.position?this.position.analyzeAndFlow(e,"v3",{cache:"position"}):void 0;e.mergeUniform(o_.merge([bg.fog,bg.lights])),e.addParsCode(["varying vec3 vViewPosition;","varying vec3 vWPosition;","#include <fog_pars_vertex>","#include <normal_pars_vertex>","#include <shadowmap_pars_vertex>","#include <clipping_planes_pars_vertex>"].join(`
1031
1033
  `));let i=["#include <beginnormal_vertex>",`
1032
1034
  #ifndef USE_LAYER_DISPLACE
1033
1035
  #include <defaultnormal_vertex>
@@ -1045,7 +1047,7 @@ vec3 sphericalTexture(sampler2D tex, vec2 textureSize, float crop, mat3 mat, vec
1045
1047
  #include <begin_vertex>
1046
1048
  #endif
1047
1049
  `];o&&i.push(o.code,o.result?"displaced_position = "+o.result+";":""),i.push("transformed = displaced_position;","transformedNormal = normalMatrix * displaced_normal;","#ifndef FLAT_SHADED"," vNormal = transformedNormal;","#endif"),i.push(" #include <project_vertex>"," #include <fog_vertex>"," #include <clipping_planes_vertex>"," vViewPosition = - mvPosition.xyz;"," #include <worldpos_vertex>"," #include <shadowmap_vertex>"," #include <fog_vertex>"),i.push("vWPosition = ( modelMatrix * vec4( transformed, 1.0 ) ).xyz;"),n=i.join(`
1048
- `)}else{e.mergeUniform({penumbraSize:dt.penumbraSize}),this.color===void 0&&(this.color=new Le(5855577)),this.color.analyze(e,{slot:"color"}),this.specular.analyze(e),this.shininess.analyze(e),this.shadingAlpha.analyze(e),this.shadingBlend.analyze(e),this.afterColor&&this.afterColor.analyze(e,{slot:"afterColor"}),this.alpha&&this.alpha.analyze(e);let o=this.color.flow(e,"c",{slot:"color"}),i=this.specular.flow(e,"c"),a=this.shininess.flow(e,"f"),s=this.shadingAlpha.flow(e,"f"),l=this.shadingBlend.flow(e,"i"),u=this.afterColor?this.afterColor.flow(e,"c",{slot:"afterColor"}):void 0,c=this.alpha?this.alpha.flow(e,"f"):void 0;e.requires.transparent=c!==void 0,e.addParsCode([`uniform float penumbraSize[${5}];`,"varying vec3 vWPosition;","#include <normal_pars_fragment>","#include <gradientmap_pars_fragment>","#include <fog_pars_fragment>","#include <bsdfs>","#include <lights_pars_begin>","#include <dithering_pars_fragment>",`
1050
+ `)}else{e.mergeUniform({penumbraSize:dt.penumbraSize}),this.color===void 0&&(this.color=new Ne(5855577)),this.color.analyze(e,{slot:"color"}),this.specular.analyze(e),this.shininess.analyze(e),this.shadingAlpha.analyze(e),this.shadingBlend.analyze(e),this.afterColor&&this.afterColor.analyze(e,{slot:"afterColor"}),this.alpha&&this.alpha.analyze(e);let o=this.color.flow(e,"c",{slot:"color"}),i=this.specular.flow(e,"c"),a=this.shininess.flow(e,"f"),s=this.shadingAlpha.flow(e,"f"),l=this.shadingBlend.flow(e,"i"),u=this.afterColor?this.afterColor.flow(e,"c",{slot:"afterColor"}):void 0,c=this.alpha?this.alpha.flow(e,"f"):void 0;e.requires.transparent=c!==void 0,e.addParsCode([`uniform float penumbraSize[${5}];`,"varying vec3 vWPosition;","#include <normal_pars_fragment>","#include <gradientmap_pars_fragment>","#include <fog_pars_fragment>","#include <bsdfs>","#include <lights_pars_begin>","#include <dithering_pars_fragment>",`
1049
1051
  varying vec3 vViewPosition;
1050
1052
  struct ToonMaterial {
1051
1053
  vec3 diffuseColor;
@@ -1081,7 +1083,7 @@ vec3 sphericalTexture(sampler2D tex, vec2 textureSize, float crop, mat3 mat, vec
1081
1083
  outgoingLight = spe_blend( diffuseColor, outgoingLight, ${s.result}, ${l.result} );
1082
1084
  }
1083
1085
  `),u&&p.push(u.code,`outgoingLight = spe_blend(outgoingLight, ${u.result}, 1.0, SPE_BLENDING_NORMAL);`),c?p.push(`gl_FragColor = vec4( outgoingLight, accumAlpha * ${c.result} );`):p.push("gl_FragColor = vec4( outgoingLight, 1.0 );"),p.push("#include <encodings_fragment>","#include <fog_fragment>","#include <dithering_fragment>"),n=p.join(`
1084
- `)}return n}};import{Vector2 as wa,Vector3 as rn,Vector4 as wl}from"three";function xg(r,t){switch(r.type){case"fresnel":return n_(r,t);case"gradient":return o_(r);case"depth":return i_(r);case"normal":return a_(r);case"noise":return s_(r,t);case"rainbow":return l_(r);case"toon":return c_(r,t);case"outline":return u_(r,t);case"transmission":return p_(r,t);case"color":return r_(r,t)}}function t_(r){return{type:r.type}}function Dr(r){let{alpha:t,mode:e}=r;return{...t_(r),alpha:t,mode:e}}function r_(r,t){return{...Dr(r),color:it(r.color,t)}}function n_(r,t){let{bias:e,scale:n,intensity:o,factor:i,color:a}=r;return{...Dr(r),color:it(a,t),bias:e,scale:n,intensity:o,factor:i}}function o_(r){let{gradientType:t,smooth:e,colors:n,steps:o,angle:i,offset:a,morph:s}=r;return{...Dr(r),gradientType:t,smooth:e,colors:n.map(l=>new wl(l[0],l[1],l[2],l[3])),num:n.length,steps:o,offset:new wa(...a),morph:new wa(...s),angle:i}}function i_(r){let{gradientType:t,near:e,far:n,isVector:o,isWorldSpace:i,origin:a,direction:s,colors:l,steps:u,smooth:c}=r;return{...Dr(r),gradientType:t,near:e,far:n,isVector:o,isWorldSpace:i,origin:new rn(...a),direction:s?new rn(...s):new rn(1,0,0),colors:l.map(p=>p!==void 0?new wl(p[0],p[1],p[2],p[3]):new wl(0,0,0,0)),steps:u.slice(0,l.length),smooth:c}}function a_(r){let{cnormal:t}=r;return{...Dr(r),cnormal:new rn(t[0],t[1],t[2])}}function s_(r,t){return{...Dr(r),scale:r.scale,move:r.move,fA:new wa(...r.fA),fB:new wa(...r.fB),size:new rn(...r.size),distortion:new wa(...r.distortion),colorA:it(r.colorA,t),colorB:it(r.colorB,t),colorC:it(r.colorC,t),colorD:it(r.colorD,t),noiseType:r.noiseType}}function l_(r){return{...Dr(r),filmThickness:r.filmThickness,movement:r.movement,wavelengths:new rn(...r.wavelengths),noiseStrength:r.noiseStrength,noiseScale:r.noiseScale,offset:new rn(...r.offset)}}function c_(r,t){return{...Dr(r),positioning:r.positioning,colors:r.colors.map(e=>new wl(e[0],e[1],e[2],e[3])),num:r.colors.length,steps:r.steps,source:new rn(...r.source),isWorldSpace:r.isWorldSpace,noiseStrength:r.noiseStrength,noiseScale:r.noiseScale,shadowColor:it(r.shadowColor,t),offset:new rn(...r.offset)}}function u_(r,t){return{...Dr(r),outlineColor:it(r.outlineColor,t),contourColor:it(r.contourColor,t),outlineWidth:r.outlineWidth,contourWidth:r.contourWidth,outlineThreshold:r.outlineThreshold,contourThreshold:r.contourThreshold,outlineSmoothing:r.outlineSmoothing,contourFrequency:r.contourFrequency,contourDirection:r.contourDirection,positionalLines:r.positionalLines,compensation:r.compensation}}function p_(r,t){return{...Dr(r),thickness:r.thickness,ior:r.ior,roughness:r.roughness}}var Ln=class extends Je{};import{Vector4 as d_}from"three";import{Texture as f_}from"three";var Du=new Map,Ta={url:"head",time:0,data:null,next:null,prev:null},li={url:"tail",time:1/0,data:null,next:null,prev:null};Ta.next=li;li.prev=Ta;var bg=0;function Sg(r){if(typeof r=="string")return r;let t=Date.now(),e=Du.get(r);return e===void 0?(e={url:URL.createObjectURL(new Blob([r])),data:r,time:t,next:null,prev:null},Du.set(r,e)):(e.time=t,e.prev.next=e.next,e.next.prev=e.prev),e.prev=li.prev,e.next=li,li.prev.next=e,li.prev=e,t-bg>1e3*10&&(bg=t+1e3,setTimeout(()=>{let n=Date.now(),o=Ta.next;for(;o.time<n-1e3*10;)URL.revokeObjectURL(o.url),Du.delete(o.data),o=o.next,o.prev=Ta,Ta.next=o},900)),e.url}var ci=class{constructor(t,e){this.data=t;this.onImageLoad=e;this.loaded=!1;this.updateSrc(t.data)}updateSrc(t){typeof document>"u"||(this.dispose(),this.loaded=!1,this.img=new Image,this.img.src=Sg(t),this.img.onload=()=>{this.loaded=!0;let e=[1e3,1001,1002];for(let n of e){let o=this[n];o&&(o.image=this.img,o.needsUpdate=!0)}this.onImageLoad&&this.onImageLoad()})}getTexture(t){let e=this[t];if(e)return e;{let n=new f_(this.img,void 0,t,t);return this.loaded&&(n.needsUpdate=!0),this[t]=n,n}}dispose(){this[1e3]?.dispose(),this[1e3]=void 0,this[1001]?.dispose(),this[1001]=void 0,this[1002]?.dispose(),this[1002]=void 0}};1e3,1001,1002;var ro=class extends ci{};var Nn=class extends Be{};var Bu={noise:["noiseType"],texture:["projection","axis","side"],displace:["noiseType"],depth:["smooth","isWorldSpace","gradientType","isVector"]},Fu={depth:["colors"]};function h_(r,t,e){let n=Bu[r.type],o=Fu[r.type];if(o!==void 0){let i=r.color;if(o.includes(t)){let a=i[t]?.value?.length;if(a!==void 0&&a!==e.length)return!0}}return n!==void 0?n.includes(t):!1}function Ru(r,t,e){let n=e.uniforms[`f${e.id}_texture`];if(!n)return!1;let o=!1,i=r;if("image"in i){let a=i.image,s=t.image(a),l=n;l instanceof ro||l.image.dispose(),l.image=s}if("wrapping"in i){let a=n;a.wrap=i.wrapping}if("repeat"in i||"offset"in i){let a="mat",s=e.uniforms[`f${e.id}_${a}`];"repeat"in i&&(s.repeat=i.repeat),"offset"in i&&(s.offset=i.offset),s.updateMatrix()}return o}function wg(r,t,e,n){let o=!1;for(let[i,a]of Object.entries(r)){if(!i||a===void 0||ku(i,e,n))continue;e.visible=n.visible;let s=e.uniforms[`f${e.id}_${i}`];if(!!s&&!(s instanceof Nn))switch(o=o||h_(e,i,a),s.constructor){case Le:if(typeof a=="string"){let l=t.getColor(a);l&&(s.value=l);break}else{let l=a;s.value instanceof Ln?s.value=new Je(l.r,l.g,l.b,l.a):s.setRGBA(l);break}case Kt:if(typeof a=="string"){let l=t.getColor(a);l&&(s.value=l);break}else{let l=a;s.value instanceof Ln?s.value=new Je(l.r,l.g,l.b,l.a):s.value.setRGBA(l.r,l.g,l.b,l.a);break}case st:{let l=a;s.value.setX(l[0]),s.value.setY(l[1]);break}case ft:{let l=a;s.value.setX(l[0]),s.value.setY(l[1]),s.value.setZ(l[2]);break}case Ot:{Ru(a,t,e);break}case sr:{s.value=a.map(l=>new d_(...l));break}default:{s.value=a;break}}}return o}var Gu=class extends de{constructor(e,n,o){super("v3");this.nodeType="Matcap";this.texture=e,this.alpha=n,this.mode=o,this.calpha=`g${this.uuid.toString().replace(/-/g,"")}_calpha`}generate(e,n){if(e.isShader("fragment")){e.addFragmentVariable(this.calpha,"float");let o=e.include(Gu.Nodes.matcap);e.require("normal"),e.requires.normal=!0;let i=[];return i.push(this.texture.generate(e,"t")),i.push("normal"),i.push(this.alpha.build(e,"f")),i.push(this.mode.build(e,"i")),i.push(this.calpha),e.format(o+"("+i.join(",")+")",this.getType(e),n)}else return console.warn("MatcapNode is not compatible with "+e.shader+" shader."),e.format("vec3( 0.0 )",this.getType(e),n)}},Ca=Gu;Ca.Nodes=function(){return{matcap:new Z(`vec3 matcap(sampler2D matcapTex, vec3 normal, float alpha, int mode, out float calpha) {
1086
+ `)}return n}};import{Vector2 as Ta,Vector3 as rn,Vector4 as Tl}from"three";function Sg(r,t){switch(r.type){case"fresnel":return s_(r,t);case"gradient":return l_(r);case"depth":return c_(r);case"normal":return u_(r);case"noise":return p_(r,t);case"rainbow":return f_(r);case"toon":return d_(r,t);case"outline":return h_(r,t);case"transmission":return m_(r,t);case"color":return a_(r,t)}}function i_(r){return{type:r.type}}function Dr(r){let{alpha:t,mode:e}=r;return{...i_(r),alpha:t,mode:e}}function a_(r,t){return{...Dr(r),color:it(r.color,t)}}function s_(r,t){let{bias:e,scale:n,intensity:o,factor:i,color:a}=r;return{...Dr(r),color:it(a,t),bias:e,scale:n,intensity:o,factor:i}}function l_(r){let{gradientType:t,smooth:e,colors:n,steps:o,angle:i,offset:a,morph:s}=r;return{...Dr(r),gradientType:t,smooth:e,colors:n.map(l=>new Tl(l[0],l[1],l[2],l[3])),num:n.length,steps:o,offset:new Ta(...a),morph:new Ta(...s),angle:i}}function c_(r){let{gradientType:t,near:e,far:n,isVector:o,isWorldSpace:i,origin:a,direction:s,colors:l,steps:u,smooth:c}=r;return{...Dr(r),gradientType:t,near:e,far:n,isVector:o,isWorldSpace:i,origin:new rn(...a),direction:s?new rn(...s):new rn(1,0,0),colors:l.map(p=>p!==void 0?new Tl(p[0],p[1],p[2],p[3]):new Tl(0,0,0,0)),steps:u.slice(0,l.length),smooth:c}}function u_(r){let{cnormal:t}=r;return{...Dr(r),cnormal:new rn(t[0],t[1],t[2])}}function p_(r,t){return{...Dr(r),scale:r.scale,move:r.move,fA:new Ta(...r.fA),fB:new Ta(...r.fB),size:new rn(...r.size),distortion:new Ta(...r.distortion),colorA:it(r.colorA,t),colorB:it(r.colorB,t),colorC:it(r.colorC,t),colorD:it(r.colorD,t),noiseType:r.noiseType}}function f_(r){return{...Dr(r),filmThickness:r.filmThickness,movement:r.movement,wavelengths:new rn(...r.wavelengths),noiseStrength:r.noiseStrength,noiseScale:r.noiseScale,offset:new rn(...r.offset)}}function d_(r,t){return{...Dr(r),positioning:r.positioning,colors:r.colors.map(e=>new Tl(e[0],e[1],e[2],e[3])),num:r.colors.length,steps:r.steps,source:new rn(...r.source),isWorldSpace:r.isWorldSpace,noiseStrength:r.noiseStrength,noiseScale:r.noiseScale,shadowColor:it(r.shadowColor,t),offset:new rn(...r.offset)}}function h_(r,t){return{...Dr(r),outlineColor:it(r.outlineColor,t),contourColor:it(r.contourColor,t),outlineWidth:r.outlineWidth,contourWidth:r.contourWidth,outlineThreshold:r.outlineThreshold,contourThreshold:r.contourThreshold,outlineSmoothing:r.outlineSmoothing,contourFrequency:r.contourFrequency,contourDirection:r.contourDirection,positionalLines:r.positionalLines,compensation:r.compensation}}function m_(r,t){return{...Dr(r),thickness:r.thickness,ior:r.ior,roughness:r.roughness}}var Ln=class extends Je{};import{Vector4 as y_}from"three";import{Texture as g_}from"three";var Bu=new Map,Ca={url:"head",time:0,data:null,next:null,prev:null},ui={url:"tail",time:1/0,data:null,next:null,prev:null};Ca.next=ui;ui.prev=Ca;var wg=0;function Tg(r){if(typeof r=="string")return r;let t=Date.now(),e=Bu.get(r);return e===void 0?(e={url:URL.createObjectURL(new Blob([r])),data:r,time:t,next:null,prev:null},Bu.set(r,e)):(e.time=t,e.prev.next=e.next,e.next.prev=e.prev),e.prev=ui.prev,e.next=ui,ui.prev.next=e,ui.prev=e,t-wg>1e3*10&&(wg=t+1e3,setTimeout(()=>{let n=Date.now(),o=Ca.next;for(;o.time<n-1e3*10;)URL.revokeObjectURL(o.url),Bu.delete(o.data),o=o.next,o.prev=Ca,Ca.next=o},900)),e.url}var pi=class{constructor(t,e){this.data=t;this.onImageLoad=e;this.loaded=!1;this.updateSrc(t.data)}updateSrc(t){typeof document>"u"||(this.dispose(),this.loaded=!1,this.img=new Image,this.img.src=Tg(t),this.img.onload=()=>{this.loaded=!0;let e=[1e3,1001,1002];for(let n of e){let o=this[n];o&&(o.image=this.img,o.needsUpdate=!0)}this.onImageLoad&&this.onImageLoad()})}getTexture(t){let e=this[t];if(e)return e;{let n=new g_(this.img,void 0,t,t);return this.loaded&&(n.needsUpdate=!0),this[t]=n,n}}dispose(){this[1e3]?.dispose(),this[1e3]=void 0,this[1001]?.dispose(),this[1001]=void 0,this[1002]?.dispose(),this[1002]=void 0}};1e3,1001,1002;var to=class extends pi{};var Nn=class extends Fe{};var Fu={noise:["noiseType"],texture:["projection","axis","side"],displace:["noiseType"],depth:["smooth","isWorldSpace","gradientType","isVector"]},Ru={depth:["colors"]};function v_(r,t,e){let n=Fu[r.type],o=Ru[r.type];if(o!==void 0){let i=r.color;if(o.includes(t)){let a=i[t]?.value?.length;if(a!==void 0&&a!==e.length)return!0}}return n!==void 0?n.includes(t):!1}function ku(r,t,e){let n=e.uniforms[`f${e.id}_texture`];if(!n)return!1;let o=!1,i=r;if("image"in i){let a=i.image,s=t.image(a),l=n;l instanceof to||l.image.dispose(),l.image=s}if("wrapping"in i){let a=n;a.wrap=i.wrapping}if("repeat"in i||"offset"in i){let a="mat",s=e.uniforms[`f${e.id}_${a}`];"repeat"in i&&(s.repeat=i.repeat),"offset"in i&&(s.offset=i.offset),s.updateMatrix()}return o}function Cg(r,t,e,n){let o=!1;for(let[i,a]of Object.entries(r)){if(!i||a===void 0||Gu(i,e,n))continue;e.visible=n.visible;let s=e.uniforms[`f${e.id}_${i}`];if(!!s&&!(s instanceof Nn))switch(o=o||v_(e,i,a),s.constructor){case Ne:if(typeof a=="string"){let l=t.getColor(a);l&&(s.value=l);break}else{let l=a;s.value instanceof Ln?s.value=new Je(l.r,l.g,l.b,l.a):s.setRGBA(l);break}case $t:if(typeof a=="string"){let l=t.getColor(a);l&&(s.value=l);break}else{let l=a;s.value instanceof Ln?s.value=new Je(l.r,l.g,l.b,l.a):s.value.setRGBA(l.r,l.g,l.b,l.a);break}case st:{let l=a;s.value.setX(l[0]),s.value.setY(l[1]);break}case ft:{let l=a;s.value.setX(l[0]),s.value.setY(l[1]),s.value.setZ(l[2]);break}case It:{ku(a,t,e);break}case ar:{s.value=a.map(l=>new y_(...l));break}default:{s.value=a;break}}}return o}var Uu=class extends de{constructor(e,n,o){super("v3");this.nodeType="Matcap";this.texture=e,this.alpha=n,this.mode=o,this.calpha=`g${this.uuid.toString().replace(/-/g,"")}_calpha`}generate(e,n){if(e.isShader("fragment")){e.addFragmentVariable(this.calpha,"float");let o=e.include(Uu.Nodes.matcap);e.require("normal"),e.requires.normal=!0;let i=[];return i.push(this.texture.generate(e,"t")),i.push("normal"),i.push(this.alpha.build(e,"f")),i.push(this.mode.build(e,"i")),i.push(this.calpha),e.format(o+"("+i.join(",")+")",this.getType(e),n)}else return console.warn("MatcapNode is not compatible with "+e.shader+" shader."),e.format("vec3( 0.0 )",this.getType(e),n)}},Aa=Uu;Aa.Nodes=function(){return{matcap:new Z(`vec3 matcap(sampler2D matcapTex, vec3 normal, float alpha, int mode, out float calpha) {
1085
1087
  vec3 viewDir = normalize( vViewPosition );
1086
1088
  vec3 x = normalize( vec3( viewDir.z, 0.0, - viewDir.x ) );
1087
1089
  vec3 y = cross( viewDir, x );
@@ -1093,7 +1095,7 @@ vec3 sphericalTexture(sampler2D tex, vec2 textureSize, float crop, mat3 mat, vec
1093
1095
 
1094
1096
  return matcapColor.rgb;
1095
1097
  }
1096
- `)}}();var Aa=class extends Nn{constructor(e,n){super("t");this.image=e;this.wrap=n}get value(){return this.image.getTexture(this.wrap)}};import{Vector3 as m_}from"three";var Tl=class extends Nn{constructor(e){super("v3");this.image=e;this._value=new m_}get value(){return this._value.x=this.image.img.width,this._value.y=this.image.img.height,this._value}};var Uu=class extends de{constructor(e,n,o,i,a,s,l,u,c,p){super("v3");this.nodeType="Toon";this.positioning=e,this.colors=n,this.steps=o,this.source=i,this.isWorldSpace=a,this.noiseStrength=s,this.noiseScale=l,this.shadowColor=u,this.offset=c,this.alpha=p,this.calpha=`g${this.uuid.toString().replace(/-/g,"")}_calpha`}generate(e,n){if(e.require("worldNormal"),e.require("worldPosition"),e.isShader("fragment")){e.define("COLORS_MAX",10),e.addFragmentVariable(this.calpha,"float");let o=e.include(Uu.Nodes.toon),i=[];return i.push(this.positioning.build(e,"i")),i.push(this.colors.build(e,"v4[]")),i.push(this.steps.build(e,"f[]")),i.push(this.source.build(e,"v3")),i.push(this.isWorldSpace.build(e,"b")),i.push(this.noiseStrength.build(e,"f")),i.push(this.noiseScale.build(e,"f")),i.push(this.shadowColor.build(e,"v4")),i.push(this.offset.build(e,"v3")),i.push(this.alpha.build(e,"f")),i.push(this.calpha),e.format(o+"("+i.join(",")+")",this.getType(e),n)}else return console.warn("ToonNode is not compatible with "+e.shader+" shader."),e.format("vec3( 0.0 )",this.getType(e),n)}},_a=Uu;_a.Nodes=function(){let e=new Z(`float rand(float n) {
1098
+ `)}}();var _a=class extends Nn{constructor(e,n){super("t");this.image=e;this.wrap=n}get value(){return this.image.getTexture(this.wrap)}};import{Vector3 as x_}from"three";var Cl=class extends Nn{constructor(e){super("v3");this.image=e;this._value=new x_}get value(){return this._value.x=this.image.img.width,this._value.y=this.image.img.height,this._value}};var Vu=class extends de{constructor(e,n,o,i,a,s,l,u,c,p){super("v3");this.nodeType="Toon";this.positioning=e,this.colors=n,this.steps=o,this.source=i,this.isWorldSpace=a,this.noiseStrength=s,this.noiseScale=l,this.shadowColor=u,this.offset=c,this.alpha=p,this.calpha=`g${this.uuid.toString().replace(/-/g,"")}_calpha`}generate(e,n){if(e.require("worldNormal"),e.require("worldPosition"),e.isShader("fragment")){e.define("COLORS_MAX",10),e.addFragmentVariable(this.calpha,"float");let o=e.include(Vu.Nodes.toon),i=[];return i.push(this.positioning.build(e,"i")),i.push(this.colors.build(e,"v4[]")),i.push(this.steps.build(e,"f[]")),i.push(this.source.build(e,"v3")),i.push(this.isWorldSpace.build(e,"b")),i.push(this.noiseStrength.build(e,"f")),i.push(this.noiseScale.build(e,"f")),i.push(this.shadowColor.build(e,"v4")),i.push(this.offset.build(e,"v3")),i.push(this.alpha.build(e,"f")),i.push(this.calpha),e.format(o+"("+i.join(",")+")",this.getType(e),n)}else return console.warn("ToonNode is not compatible with "+e.shader+" shader."),e.format("vec3( 0.0 )",this.getType(e),n)}},Oa=Vu;Oa.Nodes=function(){let e=new Z(`float rand(float n) {
1097
1099
  return fract(sin(n) * 43758.5453123);
1098
1100
  }`),n=new Z(`float hash1(float p) {
1099
1101
  p = fract(p * 0.011);
@@ -1329,9 +1331,7 @@ vec3 sphericalTexture(sampler2D tex, vec2 textureSize, float crop, mat3 mat, vec
1329
1331
 
1330
1332
  return color.xyz;
1331
1333
 
1332
- }`,[yt.simplex,e,o,a])}}();import{Matrix3 as g_}from"three";function Tg(r,t,e){r.setUvTransform(e[0],e[1],t[0],t[1],0,0,0)}var Cl=class extends ai{constructor(e,n){super(new g_);this.repeat=e;this.offset=n;Tg(this.value,e,n)}updateMatrix(){Tg(this.value,this.repeat,this.offset)}};var Fr=class{constructor(t,e,n,o){this.id=t;this.uuid=e;this.data=n;this.uniforms={};for(let i in o)this.uniforms[`f${this.id}_${i}`]=o[i];for(let i in n)ku(i,this,n)}get type(){return this.data.type}static create(t,e,n,o){if(n.type==="light")return Rr.createLigherLayer(t,e,n,o);if(n.type==="texture"){let i=o.image(n.texture.image),a=new Aa(i,n.texture.wrapping),s=new Tl(i),l=new Cl(n.texture.repeat,n.texture.offset),u=new J(n.crop?1:0),c=new Te(n.projection??0),p=new Te(["x","y","z"].indexOf(n.axis)??0),f=new Te(n.side??0),d=new st(n.size?new no(n.size[0],n.size[1]):new no(100,100)),h=new J(n.alpha??1),m=new Te(n.mode??0),g=new ga(a,s,u,c,p,f,d,l,h,m),v=new Ie(g.calpha,"f");return new et(t,e,n,{texture:a,textureSize:s,crop:u,projection:c,axis:p,side:f,size:d,mat:l,alpha:h,mode:m},g,m,v)}else if(n.type==="matcap"){let i=o.image(n.texture.image),a=new Aa(i,n.texture.wrapping),s=new J(n.alpha??1),l=new Te(n.mode??0),u=new Ca(a,s,l),c=new Ie(u.calpha,"f");return new et(t,e,n,{texture:a,alpha:s,mode:l},u,l,c)}else if(n.type==="displace")if(n.displacementType==="noise"){let i=new ft(new Br(...n.offset)),a=new J(n.scale??10),s=new J(n.intensity??8),l=new J(n.movement??1),u=new Te(n.noiseType??0),c=new ha(s,l,i,a,u);return new Ia(t,e,n,{offset:i,scale:a,intensity:s,movement:l,noiseType:u},c)}else throw new Error;else return v_(t,e,n,o)}updateByOp(t,e,n){let o=t;if(o.path[0]===void 0){if(o.type===0)return"type"in o.props||"category"in o.props?!0:wg(o.props,n,this,e)}else if(o.path[0]==="texture")return"texture"in e?Ru(o.props,n,this):!0;return!1}dispose(){}hasValueByKey(t){return this.uniforms[t]!==void 0}hasValue(t){return this.hasValueByKey(`f${this.id}_${t}`)}setValue(t,e){let n=`f${this.id}_${t}`;this.hasValueByKey(n)&&e!==void 0&&(this.uniforms[n].value=e)}getNode(t){let e=`f${this.id}_${t}`;if(this.hasValueByKey(e))return this.uniforms[e]}getValue(t){let e=`f${this.id}_${t}`;if(this.hasValueByKey(e))return this.uniforms[e].value}getName(t){let n=/f\d+_(.*)/.exec(t);if(n&&n.length>1)return n[1];console.log(`Layer.getName: error ${t}`)}getNames(){let t=[];for(let e in this.uniforms){let n=this.getName(e);n&&t.push(n)}return t}},et=class extends Fr{constructor(e,n,o,i,a,s,l){super(e,n,o,i);this.color=a;this.mode=s;this.alpha=l}},Ia=class extends Fr{constructor(e,n,o,i,a){super(e,n,o,i);this.position=a}},Rr=class extends Fr{constructor(e,n,o,i,a){super(e,n,o,a);this.data=o;this.node=i}static createLigherLayer(e,n,o,i){let a,s=new J(o.alpha),l=new Te(o.mode),u;if(o.category==="lambert"){a=new xa;let c=new Le(i.color(o.emissive)??0);u={emissive:c},a.emissive=c}else if(o.category==="phong"){a=new Sl;let c=new J(o.shininess??30),p=new Le(i.color(o.specular)??1118481);u={shininess:c,specular:p},a.shininess=c,a.specular=p}else if(o.category==="toon"){a=new Sa;let c=new J(o.shininess??30),p=new Le(i.color(o.specular)??1118481);u={shininess:c,specular:p},a.shininess=c,a.specular=p}else if(o.category==="physical"){a=new ba;let c=new J(o.roughness??.3),p=new J(o.metalness??0),f=new J(o.reflectivity??.5);u={roughness:c,metalness:p,reflectivity:f},a.roughness=c,a.metalness=p,a.reflectivity=f}else a=new to,u={};return a.alpha=new J(1),a.shadingAlpha=s,a.shadingBlend=l,u.alpha=a.shadingAlpha,u.mode=a.shadingBlend,new Rr(e,n,o,a,u)}};function Cg(r){let t=r instanceof Fr?r.type:r;return t==="texture"||t==="displace_map"||t==="matcap"}function y_(r,t,e,n){switch(r.type){case"color":{let o=new Le(n.color??5855577),i=new J(n.alpha??1),a=new Ie("alpha / clamp(alpha + accumAlpha, 0.00001, 1.0 )","f");a.keywords.alpha=i;let s=new Te(n.mode??0);return o.alpha=i,new et(t,e,r,{color:o,alpha:i,mode:s},o,s,a)}case"fresnel":{let o=new Le(n.color??16777215),i=new J(n.bias??.1),a=new J(n.scale??1),s=new J(n.intensity??2),l=new J(n.factor??1),u=new J(n.alpha??1),c=new Te(n.mode??0),p=new la(o,i,a,s,l,u,c),f=new Ie(p.calpha,"f");return new et(t,e,r,{color:o,bias:i,scale:a,intensity:s,factor:l,alpha:u,mode:c},p,c,f)}case"rainbow":{let o=new J(n.filmThickness??30),i=new J(n.movement??0),a=new ft(n.wavelengths??new Br(0,0,0)),s=new J(n.noiseStrength??0),l=new J(n.noiseScale??1),u=new ft(n.offset??new Br(0,0,0)),c=new J(n.alpha??1),p=new ca(o,i,a,s,l,u,c),f=new Ie(p.calpha,"f"),d=new Te(n.mode??0);return new et(t,e,r,{filmThickness:o,movement:i,wavelengths:a,noiseStrength:s,noiseScale:l,offset:u,alpha:c,mode:d},p,d,f)}case"transmission":{let o=new J(n.thickness??10),i=new J(n.ior??1.5),a=new J(n.roughness??.5),s=dt.transmissionSize,l=dt.transmissionRenderTarget,u=dt.transmissionRenderTargetDepth,c=window.innerWidth,p=window.innerHeight,f=c>=p?new st(p/c,1):new st(1,c/p),d=new J(n.alpha??1),h=new pa(o,i,a,s,l,u,f,d),m=new Ie(h.calpha,"f"),g=new Te(n.mode??0);return new et(t,e,r,{thickness:o,ior:i,roughness:a,aspectRatio:f,alpha:d,mode:g},h,g,m)}case"toon":{let o=new Te(n.positioning??0),i;n.colors?i=new sr(n.colors.length,n.colors):(i=new sr(10,new ui(0,0,0,1)),i.value[1]=new ui(1,1,1,1));let a;n.steps?a=new ar(n.steps.length,n.steps):(a=new ar(10,1),a.value[0]=0);let s=new ft(n.source??new Br(0,0,0)),l=new On(n.isWorldSpace??!0),u=new J(n.noiseStrength??0),c=new J(n.noiseScale??1),p=new Kt(n.shadowColor),f=new ft(n.offset??new Br(0,0,0)),d=new J(n.alpha??1),h=new _a(o,i,a,s,l,u,c,p,f,d),m=new Ie(h.calpha,"f"),g=new Te(n.mode??0);return new et(t,e,r,{positioning:o,colors:i,steps:a,source:s,isWorldSpace:l,noiseStrength:u,noiseScale:c,shadowColor:p,offset:f,alpha:d,mode:g},h,g,m)}case"outline":{let o=new Le(n.outlineColor??16777215),i=new Le(n.contourColor??16777215),a=new J(n.outlineWidth??.1),s=new J(n.contourWidth??.1),l=new J(n.outlineThreshold??.1),u=new J(n.contourThreshold??.1),c=new J(n.outlineSmoothing??.1),p=new J(n.contourFrequency??.1),f=new ft(n.contourDirections??new Br(0,1,0)),d=new On(n.positionalLines??!1),h=new On(n.compensation??!0),m=dt.normalRenderTarget,g=dt.normalRenderTargetDepth,v=dt.pixelRatioNode,x=dt.resolution,S=new J(n.alpha??1),w=new ua(o,i,a,s,l,u,c,p,f,d,h,x,m,g,v,S),b=new Ie(w.calpha,"f"),_=new Te(n.mode??0);return new et(t,e,r,{outlineColor:o,contourColor:i,outlineWidth:a,contourWidth:s,outlineThreshold:l,contourThreshold:u,outlineSmoothing:c,contourFrequency:p,contourDirection:f,positionalLines:d,compensation:h,alpha:S,mode:_},w,_,b)}case"depth":{let o=new Te(n.gradientType??0),i=new On(n.smooth??!1),a=new J(n.near??50),s=new J(n.far??200),l=new J(n.isVector??1),u=new J(n.isWorldSpace??0),c=new ft(n.origin??new Br),p=new ft(n.direction??new Br),f;n.colors?f=new sr(n.colors.length,n.colors):(f=new sr(2,new ui(0,0,0,1)),f.value[1]=new ui(1,1,1,1));let d;n.steps?d=new ar(n.steps.length,n.steps):(d=new ar(2,1),d.value[0]=0);let h=new J(n.alpha??1),m=new Te(n.mode??0),g=new fa(o,i,a,s,l,u,c,p,f,d,h),v=new Ie(g.calpha,"f");return new et(t,e,r,{gradientType:o,smooth:i,near:a,far:s,isVector:l,isWorldSpace:u,origin:c,direction:p,colors:f,steps:d,alpha:h,mode:m},g,m,v)}case"noise":{let o=new J(n.scale??1),i=new ft(n.size??new Br(100,100,100)),a=new J(n.move??1),s=new st(n.fA??new no(1.7,9.2)),l=new st(n.fB??new no(8.3,2.8)),u=new st(n.distortion??new no(1,1)),c=new Kt(n.colorA),p=new Kt(n.colorB),f=new Kt(n.colorC),d=new Kt(n.colorD),h=new J(n.alpha??1),m=new Te(n.mode??0),g=new Te(n.noiseType??0),v=new sa(o,i,a,s,l,u,c,p,f,d,h,g),x=new Ie(v.calpha,"f");return new et(t,e,r,{scale:o,size:i,move:a,fA:s,fB:l,distortion:u,colorA:c,colorB:p,colorC:f,colorD:d,alpha:h,mode:m,noiseType:g},v,m,x)}case"normal":{let o=new ft(n.cnormal??new Br(1,1,1)),i=new J(n.alpha??1),a=new Te(n.mode??0),s=new va(o,i),l=new Ie("alpha / clamp(alpha + accumAlpha, 0.00001, 1.0 )","f");return l.keywords.alpha=i,new et(t,e,r,{cnormal:o,alpha:i,mode:a},s,a,l)}case"gradient":{let o=new Te(n.gradientType??0),i=new On(n.smooth??!1),a;n.colors?a=new sr(n.colors.length,n.colors):(a=new sr(10,new ui(0,0,0,1)),a.value[1]=new ui(1,1,1,1));let s;n.steps?s=new ar(n.steps.length,n.steps):(s=new ar(10,1),s.value[0]=0);let l=new st(n.offset??new no(0,0)),u=new st(n.morph??new no(0,0)),c=new J(n.angle??0),p=new J(n.alpha??1),f=new Te(n.mode??0),d=new ma(o,i,a,s,l,u,c,p),h=new Ie(d.calpha,"f");return new et(t,e,r,{gradientType:o,smooth:i,colors:a,steps:s,offset:l,morph:u,angle:c,alpha:p,mode:f},d,f,h)}default:{let o=new Le(1,0,0,1),i=new J(1),a=new Ie("alpha / clamp(alpha + accumAlpha, 0.00001, 1.0 )","f");a.keywords.alpha=i;let s=new Te(0);return o.alpha=i,new et(t,e,r,{color:o,alpha:i,mode:s},o,s,a)}}}function v_(r,t,e,n){let o=xg(e,n);return y_(e,r,t,o)}function ku(r,t,e){if(e.type==="displace"&&(r==="intensity"||r==="visible")){let n=t.uniforms[`f${t.id}_intensity`];return n?(n.value=e.intensity*(e.visible?1:0),n):void 0}if(e.type!=="displace"&&(r==="alpha"||r==="visible")){let n=t.uniforms[`f${t.id}_alpha`];if(!n)return;if(n.value=e.alpha*(e.visible?1:0),e.type==="outline"&&r=="visible"){let o=t.uniforms[`f${t.id}_compensation`];o&&(o.value=e.compensation&&e.visible)}return n}}var Ft=class extends b_{constructor(e,n){super(void 0);this.data=e;this.layerIdGen=0;this.type="NodeMaterial";this.uniformsBackup={};this.fog=!0,this.updaters=[],this.dithering=!0,this.vertexColors=!0,this.onBeforeCompile=this._onBeforeCompile,this.transparent=!0,this.reset(e,n)}get fragment(){return this.lightLayer.node}get category(){return this.lightLayer.data.category}reset(e,n){let o=e.layers??Bt.defaultTwoLayerData("phong").layers;this.layers=o.map(i=>Fr.create(this.layerIdGen++,i.id,i.data,n)),this.layers.reverse(),this.name=e.name??"Untitled Material",this.onUpdate(n)}getLayersOfType(e){return this.layers.filter(n=>n.type===e)}getLayerByUuid(e){return this.layers.find(n=>n.uuid===e)}onUpdate(e){this.lightLayer=this.layers.find(n=>n instanceof Rr),this.lightLayer===void 0&&(this.lightLayer=new Rr(0,"",Sn.defaultData("light","basic"),new to,{})),this.dispose(),this.needsUpdate=!0,this.blendColors(),this.blendAfterColors(),this.blendPositions()}updateByOp(e,n,o){if(this.data=n,e.path[0]==="layers"){let i=e.path[1];if(i===void 0){if(this.layers.reverse(),e.type===4){let a=Fr.create(this.layerIdGen++,e.id,e.data,o);this.layers.splice(e.localIndex,0,a)}else if(e.type===5)this.layers.splice(e.localIndex,1)[0].dispose();else if(e.type===6){let a=this.layers.findIndex(l=>l.uuid===e.id),s=this.layers[a];this.layers.splice(a,1),this.layers.splice(e.localIndex,0,s)}this.layers.reverse(),this.onUpdate(o)}else{let a=this.layers.find(s=>s.uuid===i);if(a){let s=n.layers.data(i);if(a.updateByOp({...e,path:e.path.slice(2)},s,o)){let u=Fr.create(this.layerIdGen++,i,s,o);this.layers.splice(this.layers.findIndex(c=>c.uuid===i),1,u),this.onUpdate(o)}}}}}blendColors(){let e=this.layers.findIndex(o=>o instanceof et),n=this.layers.findIndex(o=>o instanceof Rr);if(e!==-1&&e<n){let o=this.layers[e].color;for(let i=e+1;i<n;++i){let a=this.layers[i];a instanceof et&&(o=new da(o,a.color,a.alpha,a.mode))}this.fragment.color=o}else this.fragment.color=void 0}blendAfterColors(){let e=new Ie("outgoingLight","f"),n=this.layers.findIndex(o=>o instanceof Rr);if(this.layers.length>n+1){for(let o=n+1;o<this.layers.length;++o){let i=this.layers[o];i instanceof et&&(e=new da(e,i.color,i.alpha,i.mode))}this.fragment.afterColor=e}else this.fragment.afterColor=void 0}blendPositions(){let e=this.layers.filter(n=>n instanceof Ia);if(e.length>0){let n=e[0].position;for(let o=1;o<e.length;++o)e[o]&&(n=new Lt(n,e[o].position,Lt.ADD),n=new Lt(n,new J(.5).setReadonly(!0),Lt.MUL));this.fragment.position=n}else this.fragment.position=void 0}getDefines(){return this.defines}getUniforms(){return this.uniforms}getVertexShader(){return this.vertexShader}getFragmentShader(){return this.fragmentShader}_onBeforeCompile(e,n){this.build({renderer:n}),e.defines=this.defines,e.uniforms=this.uniforms,e.vertexShader=this.vertexShader,e.fragmentShader=this.fragmentShader,e.extensionDerivatives=this.extensions.derivatives===!0,e.extensionFragDepth=this.extensions.fragDepth===!0,e.extensionDrawBuffers=this.extensions.drawBuffers===!0,e.extensionShaderTextureLOD=this.extensions.shaderTextureLOD===!0}clampUniformsForPreview(e,n){let o=(i,a,s)=>Math.min(Math.max(i,a),s);for(let i of this.layers)if(i.type==="displace"){this.uniformsBackup[`f${i.id}_intensity`]=i.uniforms[`f${i.id}_intensity`].value;let a=o(i.uniforms[`f${i.id}_intensity`].value,e,n);i.uniforms[`f${i.id}_intensity`].value=a}}restoreClampedUniforms(){for(let e of this.layers)e.type==="displace"&&(e.uniforms[`f${e.id}_intensity`].value=this.uniformsBackup[`f${e.id}_intensity`])}customProgramCacheKey(){let e="[";for(let{data:n}of this.data.layers)if(n.type==="light")e+=`"${n.category.toUpperCase()}",`;else{let o=(Bu[n.type]??[]).map(s=>n[s]),i=(Fu[n.type]??[]).map(s=>n[s]?.length??0),a=[...o,...i];a.length?e+=`["${n.type}", "${a.join('","')}"],`:e+=`"${n.type}",`}return e=e.slice(0,-1)+"]",e}updateFrame(e){for(let n=0;n<this.updaters.length;++n)e.updateNode(this.updaters[n])}build(e){e=e??{};let n=e.builder??new bl;return this.lights=this.lightLayer.data.category!=="basic",n.setMaterial(this,e.renderer),n.build(this.fragment,this.fragment),this.vertexShader=n.getCode("vertex"),this.fragmentShader=n.getCode("fragment"),this.defines=n.defines,this.uniforms=n.uniforms,this.extensions=n.extensions,this.updaters=n.updaters,this.transparent=n.requires.transparent||this.blending>x_,this}dispose(){this.layers.forEach(e=>e.dispose()),super.dispose()}getHash(){let e="{";return e+='"fragment":'+this.fragment.getHash(),e+="}",e}};Object.defineProperties(Ft.prototype,{properties:{get:function(){return this.fragment.properties}},needsUpdate:{set:function(r){r===!0&&this.version++,this.needsCompile=r},get:function(){return this.needsCompile}}});import{MathUtils as Vu,BufferAttribute as S_,Vector3 as zu,Float32BufferAttribute as Ag}from"three";function w_(r){if(r.geometry.attributes.extrudeNormal||!r.geometry.attributes.position)return;let t=new Map,e=r.geometry.attributes.position.array,n=r.geometry.attributes.normal.array,o=new Float32Array(e.length);for(let i=0;i<e.length;i+=3){let a=`${e[i]}_${e[i+1]}_${e[i+2]}`,s=new zu(n[i],n[i+1],n[i+2]);t.has(a)?t.get(a)?.normals.push(s):t.set(a,{normals:[s],result:new zu})}t.forEach((i,a)=>{for(let s of i.normals)i.result.add(s);i.result.divideScalar(i.normals.length)});for(let i=0;i<e.length;i+=3){let a=`${e[i]}_${e[i+1]}_${e[i+2]}`,s=t.get(a)?.result;s&&(o[i]=s.x,o[i+1]=s.y,o[i+2]=s.z)}r.geometry.setAttribute("extrudeNormal",new Ag(o,3))}function T_(r){if(r.geometry.attributes.extrudeNormals||!r.geometry.attributes.position)return;let t=r.geometry.attributes.position.array,e=new Float32Array(t.length),n=new zu;for(let o=0;o<t.length;o+=3)n.set(t[o],t[o+1],t[o+2]).normalize(),e[o]=n.x,e[o+1]=n.y,e[o+2]=n.z;r.geometry.setAttribute("extrudeNormal",new Ag(e,3))}function kr(r){if(Array.isArray(r.material)){for(let t of r.material)if(t.getLayersOfType("outline").length===0)return}else if(!(r.material instanceof Ft)||r.material.getLayersOfType("outline").length===0)return;r.objectType==="Mesh2D"||r.objectType==="TextFrame"&&r.data?.geometry?.depth===0?T_(r):w_(r)}function Gr(r){if(!r.geometry.attributes.position)return;let t=r.geometry.attributes.position.array,e=new Float32Array(t.length),n=parseInt(r.uuid.replace(/\D/g,"")),o=[Vu.seededRandom(n),Vu.seededRandom(n+1e4),Vu.seededRandom(n+2e4)];for(let i=0;i<t.length;i++)e[i]=o[i%3];r.geometry.setAttribute("randomColor",new S_(e,3))}var ct=class extends $t(C_){constructor(e,n){super(e,n);this.isAbstractMesh=!0;this.booleanMeshSetAddress=-1;this.booleanWasTransformed=!1;this.booleanMatrixInvOld=new A_;this.booleanExclude=null;Array.isArray(n)&&e.groups.length===0&&e.addGroup(0,e.getAttribute("position").count,0)}get isGroup(){return this._cloner?.parameters.hideBase===!0}get isMesh(){return!this.isGroup}set isMesh(e){}get cloner(){return this._cloner}set cloner(e){this._cloner&&this.remove(this._cloner),e&&this.add(e),this._cloner=e}updateGeometry(e,n){let o=this.geometry,i=xu[o.userData.type],a=this.objectType==="NonParametric"?Object.assign({},o.userData,{geometry:o}):o.userData,s=i.build(i.normalizeInputs(e,a)),l=o.uuid;this.geometry.dispose(),this.geometry=s,this.geometry.uuid=l,this.geometry.computeBoundingSphere(),kr(this),o.getAttribute("randomColor")&&Gr(this)}clone(e){let n=this.objectType==="NonParametric"?Object.assign({},this.geometry.userData,{geometry:this.geometry.clone()}):this.geometry.userData,o=ra(n),i=this.material;return new this.constructor(o,i).copy(this,e)}copy(e,n=!0){return super.copy(e,n),e.cloner&&(this.cloner=new Kn(e,e.cloner.parameters),this.add(this.cloner)),this}setFromClonerState(e){e===null?this.cloner=void 0:(this.cloner===void 0&&(this.cloner=new Kn(this)),this.cloner.fromClonerState(e))}fromState(e,n){return super.fromState(e),e.type==="Mesh"&&(this.setFromClonerState(e.cloner),this.castShadow=e.castShadow??!0,this.receiveShadow=e.receiveShadow??!0,this.booleanExclude=e.booleanExclude??null),this}freeBooleanPointer(){this.booleanMeshSetAddress!==-1&&(nr.freeMeshSet(this.booleanMeshSetAddress),this.booleanMeshSetAddress=-1)}invalidateDownstreamBooleanData(e=!1){return e?this.booleanWasTransformed=!0:this.freeBooleanPointer(),Lr(this.parent)?this.parent.invalidateDownstreamBooleanData():this}invalidateUpstreamBooleanData(){this.freeBooleanPointer();for(let e of this.children)Or(e)&&(e.freeBooleanPointer(),Lr(e)&&e.invalidateUpstreamBooleanData())}};var O_=new ju(0,0,1),_g=new ju,Ig=new ju,Og=new I_,pi=class extends ct{constructor(e=pt.create({}),n){super(e,n);this.recursiveSelection=!1;this.objectType="VectorObject";this.eventDispatcher=new __;this._onShapeUpdate=()=>{this.updateGeometry({}),this.geometry.computeBoundingSphere(),this.geometry.computeBoundingBox()};this.castShadow=!0,this.receiveShadow=!0,this.forceComputeSize=!0,this.shape=e.userData.shape,this.shape.eventDispatcher?.addEventListener("update",this._onShapeUpdate)}fromState(e){return super.fromState(e),this.shape.update(),this}setHelperVisibility(){}updateGeometry(e,n){if(super.updateGeometry(e,n),"userData"in this.geometry){let o=this.geometry.userData.parameters;this.eventDispatcher.dispatchEvent({type:"geometryUpdate",parameters:o})}}setShape(e){this.shape&&this.shape.eventDispatcher?.removeEventListener("update",this._onShapeUpdate),this.shape=e,this.shape.eventDispatcher?.addEventListener("update",this._onShapeUpdate)}updateWorldMatrix(e,n){super.updateWorldMatrix(e,n),Og.getNormalMatrix(this.matrixWorld),_g.copy(O_).applyMatrix3(Og).normalize(),Ig.setFromMatrixPosition(this.matrixWorld),this.shape.plane.setFromNormalAndCoplanarPoint(_g,Ig)}clone(e){let n=this.shape.clone(),o=this.material,i=this.geometry.userData,a=pt.create(Object.assign({},i,{shape:n})),s=new pi(a,o).copy(this,e);return s.shape=n,n.update(),s}raycast(e,n){ct.prototype.raycast.call(this,e,n)}};var Ur=(r,t)=>class extends r{constructor(){super(...arguments);this.objectHelper=new t(this)}get geometryHelper(){return t.geometryHelper}raycast(o,i){this.objectHelper.raycast(o,i)}fromLightState(o,i){if(this.objectType==="LightDirectional"||this.objectType==="LightPoint"||this.objectType==="LightSpot"){let a=this;o.color!==void 0&&(a.color=it(o.color,i)),o.intensity!==void 0&&(a.intensity=o.intensity),o.depth!==void 0&&(a.shadow.camera.far=o.depth,a.shadow.needsUpdate=!0),o.shadows!==void 0&&(this.castShadow=o.shadows)}return this}};var fi=new lr,Hu=new lr,nn=class extends Ur($t(L_),Ks){constructor(e=window.innerWidth,n=window.innerHeight,o=45,i,a=1e5){super();this.objectType="CombinedCamera";this._cameraType="OrthographicCamera";this.targetOffset=jn.DefaultTargetOffset;this.isUpVectorFlipped=!1;this.angleOffsetFromUp=0;this.width=e,this.height=n,this.orthoCamera=new N_(e*-.5,e*.5,n*.5,n*-.5,i??-5e4,a),this.perspCamera=new P_(o,e/n,i??50,a),this.left=this.orthoCamera.left,this.right=this.orthoCamera.right,this.top=this.orthoCamera.top,this.bottom=this.orthoCamera.bottom,this.far=this.orthoCamera.far,this.view=this.orthoCamera.view,this.aspect=this.perspCamera.aspect,this.fov=this.perspCamera.fov,this.focus=this.perspCamera.focus,this.filmGauge=this.perspCamera.filmGauge,this.filmOffset=this.perspCamera.filmOffset,this.toOrthographic()}static createFromState(e,n){let o=new nn().fromState(n);return o.objectHelper.update(),o.uuid=e,o}get isPerspectiveCamera(){return this.cameraType==="PerspectiveCamera"}get isOrthographicCamera(){return!this.isPerspectiveCamera}get cameraType(){return this._cameraType}setNear(e,n){e==="PerspectiveCamera"?this.perspCamera.near=n:this.orthoCamera.near=n}setZoom(e,n){n>=0&&(e==="PerspectiveCamera"?this.perspCamera.zoom=n:this.orthoCamera.zoom=n)}set cameraType(e){e==="PerspectiveCamera"?this.toPerspective():e==="OrthographicCamera"&&this.toOrthographic()}get near(){return this._cameraType==="PerspectiveCamera"?this.perspCamera.near:this.orthoCamera.near}set near(e){this._cameraType==="PerspectiveCamera"?this.perspCamera.near=e:this.orthoCamera.near=e}get zoom(){return this._cameraType==="PerspectiveCamera"?this.perspCamera.zoom:this.orthoCamera.zoom}set zoom(e){e>=0&&(this._cameraType==="PerspectiveCamera"?this.perspCamera.zoom=e:this.orthoCamera.zoom=e)}lookAt(e){super.lookAt(e),this.getWorldPosition(fi),this.targetOffset=fi.distanceTo(e)}getTarget(e=new lr){return this.getWorldDirection(Hu),this.getWorldPosition(fi),Hu.multiplyScalar(this.targetOffset),e.copy(fi).add(Hu),e}getDistanceToTarget(){let e=this.getTarget();return this.getWorldPosition(fi),fi.distanceTo(e)}updateUp(){let e=this.getWorldQuaternion(new M_),n=new lr(0,0,1).applyQuaternion(e),o=new lr().copy(Lg.DefaultUp);this.isUpVectorFlipped&&o.negate(),o.applyQuaternion(e);let i=new lr().copy(Lg.DefaultUp).projectOnPlane(n),a=new lr().crossVectors(i,o).dot(n)>=0?1:-1;this.angleOffsetFromUp=i.angleTo(o)*a}getViewFrontToObject(e){let n=e.getWorldPosition(new lr),i=e.getWorldDirection(new lr).multiplyScalar(this.targetOffset);return{position:n.clone().add(i),target:n}}getViewToObject(e){let n=e.getWorldPosition(new lr),i=this.getWorldDirection(new lr).multiplyScalar(this.targetOffset);return{position:n.clone().sub(i),target:n}}setViewplaneSize(e,n){this.left=-e*.5,this.right=e*.5,this.top=n*.5,this.bottom=-n*.5,this.aspect=e/n,this.updateProjectionMatrix()}toOrthographic(){this.orthoCamera.left=this.left,this.orthoCamera.right=this.right,this.orthoCamera.top=this.top,this.orthoCamera.bottom=this.bottom,this.orthoCamera.view=this.view,this.orthoCamera.far=this.far,this.orthoCamera.updateProjectionMatrix(),this.projectionMatrix=this.orthoCamera.projectionMatrix,this.projectionMatrixInverse=this.orthoCamera.projectionMatrixInverse,this._cameraType="OrthographicCamera",this.objectHelper&&this.objectHelper.update()}toPerspective(){this.perspCamera.aspect=this.aspect,this.perspCamera.fov=this.fov,this.perspCamera.view=this.view,this.perspCamera.far=this.far,this.perspCamera.updateProjectionMatrix(),this.projectionMatrix=this.perspCamera.projectionMatrix,this.projectionMatrixInverse=this.perspCamera.projectionMatrixInverse,this._cameraType="PerspectiveCamera",this.objectHelper&&this.objectHelper.update()}setFocalLength(e){this.perspCamera.setFocalLength(e),this.toPerspective()}getFocalLength(){return this.perspCamera.getFocalLength()}getEffectiveFOV(){return this.perspCamera.getEffectiveFOV()}getFilmWidth(){return this.perspCamera.getFilmWidth()}getFilmHeight(){return this.perspCamera.getFilmHeight()}setViewOffset(e,n,o,i,a,s){this._cameraType==="PerspectiveCamera"?this.perspCamera.setViewOffset(e,n,o,i,a,s):this.orthoCamera.setViewOffset(e,n,o,i,a,s)}clearViewOffset(){this._cameraType==="PerspectiveCamera"?(this.perspCamera.clearViewOffset(),this.toPerspective()):(this.orthoCamera.clearViewOffset(),this.toOrthographic())}updateProjectionMatrix(){this._cameraType==="PerspectiveCamera"?this.toPerspective():this._cameraType==="OrthographicCamera"&&this.toOrthographic()}updateMatrixWorld(e){super.updateMatrixWorld(e),this.matrixWorldInverse.copy(this.matrixWorld).invert()}updateWorldMatrix(e,n){super.updateWorldMatrix(e,n),this.matrixWorldInverse.copy(this.matrixWorld).invert()}copy(e,n){return super.copy(e,n),this.orthoCamera.copy(e.orthoCamera),this.perspCamera.copy(e.perspCamera),this.left=e.left,this.right=e.right,this.top=e.top,this.bottom=e.bottom,this.far=e.far,this.view=e.view===null?null:Object.assign({},e.view),this._cameraType=e._cameraType,this.aspect=e.aspect,this.fov=e.fov,this.focus=e.focus,this.filmGauge=e.filmGauge,this.filmOffset=e.filmOffset,this.targetOffset=e.targetOffset,this.updateProjectionMatrix(),this}toCameraState(e=[]){let n={type:this.cameraType,far:this.far,orthographic:{near:this.orthoCamera.near,zoom:this.orthoCamera.zoom},perspective:{near:this.perspCamera.near,fov:this.perspCamera.fov,zoom:this.perspCamera.zoom},up:this.up.toArray(),targetOffset:this.targetOffset,isUpVectorFlipped:this.isUpVectorFlipped};return Eo(n,e)}fromCameraState(e){let{orthographic:n,perspective:o}=e;return e.type!==void 0&&(this.cameraType=e.type),e.far!==void 0&&(this.far=e.far),n!==void 0&&(n.near!==void 0&&(this.orthoCamera.near=n.near),n.zoom!==void 0&&(this.orthoCamera.zoom=n.zoom)),o!==void 0&&(o.near!==void 0&&(this.perspCamera.near=o.near),o.fov!==void 0&&(this.perspCamera.fov=o.fov),o.zoom!==void 0&&(this.perspCamera.zoom=o.zoom)),e.type==="PerspectiveCamera"?(this.zoom=this.perspCamera.zoom,this.fov=this.perspCamera.fov,this.near=this.perspCamera.near):(this.near=this.orthoCamera.near,this.zoom=this.orthoCamera.zoom),e.up!==void 0&&this.up.fromArray(e.up),e.targetOffset!==void 0&&(this.targetOffset=e.targetOffset),e.isUpVectorFlipped!==void 0&&(this.isUpVectorFlipped=e.isUpVectorFlipped),this.updateProjectionMatrix(),this}toState(e){return{...super.toState(e),...this.toCameraState(e),type:this.cameraType}}fromState(e){return super.fromState(e),this.fromCameraState(e),this}};import{BufferGeometry as Ng,Matrix4 as E_}from"three";var Pg=new E_;var Al=class extends ct{constructor(e=new Ng,n){super(e,n);this.booleanOp=2;this.phongAngle=35;this.meshSetAddresses=[];this.needsTransformForDownstream=!1;this.objectType="BooleanObject",this.castShadow=!0,this.receiveShadow=!0,this.geometry.userData.parameters={width:0,height:0,depth:0},this.onAfterRender=this.recomputeBoolean.bind(this)}reInit(){this.objectType="BooleanObject",this.meshSetAddresses=[],this.needsTransformForDownstream=!1,this.geometry.userData.parameters={width:0,height:0,depth:0},this.onAfterRender=this.recomputeBoolean.bind(this)}recomputeBoolean(e,n=!0){if(this.booleanMeshSetAddress!==-1)return;for(let i=0;i<this.children.length;i++){let a=this.children[i];Lr(a)&&a.recomputeBoolean(e===!0,n)}this.meshSetAddresses=[];for(let i=0;i<this.children.length;i++){let a=this.children[i];if(cg(a)&&a.booleanExclude===!1&&a.geometry.attributes.position?.count>0&&a.geometry.drawRange.count>0){if(a.booleanMeshSetAddress===-1){if((a.geometry.index??a.geometry.getAttribute("position")).count/3<15e5&&(a.booleanMeshSetAddress=nr.getMeshSet(a.geometry,e===!0,n)),a.booleanMeshSetAddress===-1)return;nr.transformMeshSet(a.booleanMeshSetAddress,a.matrix),a.booleanMatrixInvOld.copy(a.matrix).invert(),a.booleanWasTransformed=!1}else Lr(a)&&a.needsTransformForDownstream===!0?(nr.transformMeshSet(a.booleanMeshSetAddress,a.matrix),a.needsTransformForDownstream=!1):a.booleanWasTransformed===!0&&(Pg.multiplyMatrices(a.matrix,a.booleanMatrixInvOld),nr.transformMeshSet(a.booleanMeshSetAddress,Pg),a.booleanMatrixInvOld.copy(a.matrix).invert(),a.booleanWasTransformed=!1);this.meshSetAddresses.push(a.booleanMeshSetAddress)}}if(this.meshSetAddresses.length===0){this.geometry.setDrawRange(0,0);return}if(e===!0)return nr.calcBooleanTopological(this.meshSetAddresses,this.booleanOp);let o=this.geometry;o.dispose(),this.geometry=new Ng,this.geometry.userData=o.userData,this.geometry.boundingSphere=o.boundingSphere;try{this.booleanMeshSetAddress=nr.calcBoolean(this.meshSetAddresses,this.booleanOp,this.geometry,this.phongAngle)}catch(i){this.booleanMeshSetAddress=0,console.error(i)}this.booleanMatrixInvOld.copy(this.matrix).invert(),this.needsTransformForDownstream=!0,kr(this),Gr(this)}updateGeometry(e,n){let o=e.parameters;o.operation!==void 0&&(this.booleanOp=o.operation),o.phongAngle!==void 0&&(this.phongAngle=o.phongAngle),this.invalidateDownstreamBooleanData().recomputeBoolean()}};import{Group as D_}from"three";var oo=class extends Ur($t(D_),zo){constructor(){super(...arguments);this.objectType="EmptyObject"}static createFromState(e,n){let o=new oo().fromState(n);return o.uuid=e,o.objectHelper.update(),o}};import{DirectionalLight as B_,CameraHelper as _l}from"three";var di=class extends Ur($t(B_),Vo){constructor(...e){super(...e);this.objectType="LightDirectional";this._gizmos={};this.castShadow=!0,this.shadow.mapSize.width=2048,this.shadow.mapSize.height=2048,this.shadow.normalBias=1,this.layers.enable(3);let o=this.shadow.camera;o.top=1250,o.bottom=-1250,o.right=1250,o.left=-1250,o.near=-1e4,o.far=2500;let i=new _l(this.shadow.camera);i.visible=!1,this._gizmos.shadowmap=i,this.update()}static createFromState(e,n,o){let i=new di().fromState(n,o);return i.uuid=e,i}get gizmos(){return this._gizmos}showGizmos(){for(let e in this._gizmos){let n=this._gizmos[e];n instanceof _l&&(n.visible=!0)}}hideGizmos(){for(let e in this._gizmos){let n=this._gizmos[e];n instanceof _l&&(n.visible=!1)}}update(){this.shadow.camera.updateProjectionMatrix();for(let e in this._gizmos){let n=this._gizmos[e];n instanceof _l&&n.update()}}updateMatrixWorld(e){super.updateMatrixWorld(e),this.objectHelper&&this.objectHelper.update()}fromDirectionalLightState(e,n){let o=e.depth!==void 0&&e.depth!==this.shadow.camera.far||e.size!==void 0&&e.size/2!==this.shadow.camera.right;return super.fromLightState(e,n),e.size!==void 0&&og(this,e.size),e.shadowRadius!==void 0&&(this.shadow.radius=e.shadowRadius),e.shadowResolution!==void 0&&(this.shadow.mapSize.set(e.shadowResolution,e.shadowResolution),this.shadow.map&&(this.shadow.map.dispose(),this.shadow.map=null)),o&&this.update(),this}fromState(e,n){return super.fromState(e),this.fromDirectionalLightState(e,n),this}};import{PointLight as F_,Vector3 as Il,Box3 as R_,Box3Helper as Ol,Color as k_}from"three";var hi=class extends Ur($t(F_),jo){constructor(...e){super(...e);this.objectType="LightPoint";this._gizmos={};this.castShadow=!0,this.shadow.mapSize.width=1024,this.shadow.mapSize.height=1024,this.shadow.normalBias=1,this.layers.enable(3);let o=this.shadow.camera;o.fov=90,o.aspect=1,o.near=100,o.far=2500;let i=new Il(-o.far+this.position.x,-o.far+this.position.y,-o.far+this.position.z),a=new Il(o.far+this.position.x,o.far+this.position.y,o.far+this.position.z),s=new R_(i,a),l=new Ol(s,new k_(16755200));l.visible=!1,this._gizmos.shadowmap=l,this.update()}static createFromState(e,n,o){let i=new hi().fromState(n,o);return i.uuid=e,i}get gizmos(){return this._gizmos}showGizmos(){for(let e in this._gizmos){let n=this._gizmos[e];n instanceof Ol&&(n.visible=!0)}}hideGizmos(){for(let e in this._gizmos){let n=this._gizmos[e];n instanceof Ol&&(n.visible=!1)}}update(){if(this.shadow&&(this.shadow.camera.updateProjectionMatrix(),this._gizmos))for(let e in this._gizmos){let n=this._gizmos[e];if(n instanceof Ol){let o=this.shadow.camera,i=new Il(-o.far+this.position.x,-o.far+this.position.y,-o.far+this.position.z),a=new Il(o.far+this.position.x,o.far+this.position.y,o.far+this.position.z);n.box.set(i,a),n.updateMatrixWorld(!0)}}}updateMatrixWorld(e){super.updateMatrixWorld(e),this.objectHelper&&this.objectHelper.update()}fromPointLightState(e,n){return super.fromLightState(e,n),e.distance!==void 0&&(this.distance=e.distance),e.decay!==void 0&&(this.decay=e.decay),e.shadowRadius!==void 0&&(this.shadow.radius=e.shadowRadius),e.shadowResolution!==void 0&&(this.shadow.mapSize.set(e.shadowResolution,e.shadowResolution),this.shadow.map&&(this.shadow.map.dispose(),this.shadow.map=null)),this}fromState(e,n){return super.fromState(e),this.fromPointLightState(e,n),this}};import{SpotLight as G_,CameraHelper as Ll,MathUtils as U_,Vector3 as Bg,Quaternion as V_}from"three";var Mg=new Bg,Eg=new Bg,Dg=new V_,mi=class extends Ur($t(G_),Hi){constructor(...e){super(...e);this.objectType="LightSpot";this._gizmos={};this.castShadow=!0,this.shadow.mapSize.width=1024,this.shadow.mapSize.height=1024,this.shadow.normalBias=1,this.layers.enable(3);let o=this.shadow.camera;o.fov=U_.RAD2DEG*2*this.angle,o.aspect=1,o.near=100,o.far=2500;let i=new Ll(this.shadow.camera);i.visible=!1,this._gizmos.shadowmap=i,this.update()}static createFromState(e,n,o){let i=new mi().fromState(n,o);return i.uuid=e,i}get gizmos(){return this._gizmos}showGizmos(){for(let e in this._gizmos){let n=this._gizmos[e];n instanceof Ll&&(n.visible=!0)}}hideGizmos(){for(let e in this._gizmos){let n=this._gizmos[e];n instanceof Ll&&(n.visible=!1)}}update(){this.shadow.camera.updateProjectionMatrix();for(let e in this._gizmos){let n=this._gizmos[e];n instanceof Ll&&n.update()}}updateMatrixWorld(e){super.updateMatrixWorld(e),Eg.setFromMatrixPosition(this.matrixWorld),Dg.setFromRotationMatrix(this.matrixWorld),Mg.copy(this.up).applyQuaternion(Dg).negate().multiplyScalar(this.distance),this.target.position.copy(Eg).add(Mg),this.target.updateMatrixWorld(),this.objectHelper&&this.objectHelper.update()}fromSpotLightState(e,n){return super.fromLightState(e,n),e.distance!==void 0&&(this.distance=e.distance),e.decay!==void 0&&(this.decay=e.decay),e.angle!==void 0&&(this.angle=e.angle),e.penumbra!==void 0&&(this.penumbra=e.penumbra),e.shadowRadius!==void 0&&(this.shadow.radius=e.shadowRadius),e.shadowResolution!==void 0&&(this.shadow.mapSize.set(e.shadowResolution,e.shadowResolution),this.shadow.map&&(this.shadow.map.dispose(),this.shadow.map=null)),this}fromState(e,n){return super.fromState(e),this.fromSpotLightState(e,n),this}};var Fg=r=>r.tagName==="VIDEO",gi=class{static resize(t,e,n){let o=t/e,i;if(!n.image)return;let a=n.image;Fg(a)?i=a.videoWidth/a.videoHeight:i=a.width/a.height,o>i&&(n.imageType=="WEBCAM"?n.repeat.set(-1,1*i/o):n.repeat.set(1,1*i/o)),o<i&&(n.imageType=="WEBCAM"?n.repeat.set(1*o/i*-1,1):n.repeat.set(1*o/i,1)),o==i&&(n.imageType=="WEBCAM"?n.repeat.set(-1,1):n.repeat.set(1,1))}static resizeTextureLayer(t,e,n){let o=t/e,i=n.image!==void 0?n.image.width/n.image.height:1,a;o>i?a={x:1,y:i/o}:o<i?a={x:o/i,y:1}:a={x:1,y:1},n.repeat.set(a.x,a.y),n.updateMatrix()}static resizeTextureLayers(t,e,n){let o=n.layers;for(let i=0;i<o.length;i++){let a=o[i];Cg(a)&&gi.resizeTextureLayer(t,e,a.uniforms[`f${a.id}_texture`].value)}}static resizeComplex(t,e,n,o){let i=t/e,a,s=n.image;Fg(s)?a=s.videoWidth/s.videoHeight:a=s.width/s.height,o.geometry.type.includes("Shape")?(i>a&&(n.imageType=="WEBCAM"?n.repeat.set(1/t*-1,1/e*a/i):n.repeat.set(1/t,1/e*a/i)),i<a&&(n.imageType=="WEBCAM"?n.repeat.set(1/t*i/a*-1,1/e):n.repeat.set(1/t*i/a,1/e)),i==a&&(n.imageType=="WEBCAM"?n.repeat.set(1/t*-1,1/e):n.repeat.set(1/t,1/e))):(i>a&&(n.imageType=="WEBCAM"?n.repeat.set(-1,1*a/i):n.repeat.set(1,1*a/i)),i<a&&(n.imageType=="WEBCAM"?n.repeat.set(1*i/a*-1,1):n.repeat.set(1*i/a,1)),i==a&&(n.imageType=="WEBCAM"?n.repeat.set(-1,1):n.repeat.set(1,1)))}};var Nl=class extends ct{constructor(e,n){super(e,n);this.objectType="Mesh2D";this.castShadow=!0,this.receiveShadow=!0}updateGeometry(e,n){super.updateGeometry(e,n),this.material.layers&&gi.resizeTextureLayers(this.geometry.userData.parameters.width,this.geometry.userData.parameters.height,this.material)}};var yi=class extends ct{constructor(e,n){super(e,n);this.objectType="Mesh3D";this.castShadow=!0,this.receiveShadow=!0}};var Pl=class extends yi{constructor(e,n){super(e,n);this.objectType="NonParametric"}};String.prototype.codePointAt||function(){var r=function(){try{var e={},n=Object.defineProperty,o=n(e,e,e)&&n}catch{}return o}(),t=function(e){if(this==null)throw TypeError();var n=String(this),o=n.length,i=e?Number(e):0;if(i!=i&&(i=0),!(i<0||i>=o)){var a=n.charCodeAt(i),s;return a>=55296&&a<=56319&&o>i+1&&(s=n.charCodeAt(i+1),s>=56320&&s<=57343)?(a-55296)*1024+s-56320+65536:a}};r?r(String.prototype,"codePointAt",{value:t,configurable:!0,writable:!0}):String.prototype.codePointAt=t}();var up=0,wy=-3;function Pa(){this.table=new Uint16Array(16),this.trans=new Uint16Array(288)}function z_(r,t){this.source=r,this.sourceIndex=0,this.tag=0,this.bitcount=0,this.dest=t,this.destLen=0,this.ltree=new Pa,this.dtree=new Pa}var Ty=new Pa,Cy=new Pa,pp=new Uint8Array(30),fp=new Uint16Array(30),Ay=new Uint8Array(30),_y=new Uint16Array(30),j_=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),Rg=new Pa,Vr=new Uint8Array(288+32);function Iy(r,t,e,n){var o,i;for(o=0;o<e;++o)r[o]=0;for(o=0;o<30-e;++o)r[o+e]=o/e|0;for(i=n,o=0;o<30;++o)t[o]=i,i+=1<<r[o]}function H_(r,t){var e;for(e=0;e<7;++e)r.table[e]=0;for(r.table[7]=24,r.table[8]=152,r.table[9]=112,e=0;e<24;++e)r.trans[e]=256+e;for(e=0;e<144;++e)r.trans[24+e]=e;for(e=0;e<8;++e)r.trans[24+144+e]=280+e;for(e=0;e<112;++e)r.trans[24+144+8+e]=144+e;for(e=0;e<5;++e)t.table[e]=0;for(t.table[5]=32,e=0;e<32;++e)t.trans[e]=e}var kg=new Uint16Array(16);function qu(r,t,e,n){var o,i;for(o=0;o<16;++o)r.table[o]=0;for(o=0;o<n;++o)r.table[t[e+o]]++;for(r.table[0]=0,i=0,o=0;o<16;++o)kg[o]=i,i+=r.table[o];for(o=0;o<n;++o)t[e+o]&&(r.trans[kg[t[e+o]]++]=o)}function W_(r){r.bitcount--||(r.tag=r.source[r.sourceIndex++],r.bitcount=7);var t=r.tag&1;return r.tag>>>=1,t}function zr(r,t,e){if(!t)return e;for(;r.bitcount<24;)r.tag|=r.source[r.sourceIndex++]<<r.bitcount,r.bitcount+=8;var n=r.tag&65535>>>16-t;return r.tag>>>=t,r.bitcount-=t,n+e}function tp(r,t){for(;r.bitcount<24;)r.tag|=r.source[r.sourceIndex++]<<r.bitcount,r.bitcount+=8;var e=0,n=0,o=0,i=r.tag;do n=2*n+(i&1),i>>>=1,++o,e+=t.table[o],n-=t.table[o];while(n>=0);return r.tag=i,r.bitcount-=o,t.trans[e+n]}function q_(r,t,e){var n,o,i,a,s,l;for(n=zr(r,5,257),o=zr(r,5,1),i=zr(r,4,4),a=0;a<19;++a)Vr[a]=0;for(a=0;a<i;++a){var u=zr(r,3,0);Vr[j_[a]]=u}for(qu(Rg,Vr,0,19),s=0;s<n+o;){var c=tp(r,Rg);switch(c){case 16:var p=Vr[s-1];for(l=zr(r,2,3);l;--l)Vr[s++]=p;break;case 17:for(l=zr(r,3,3);l;--l)Vr[s++]=0;break;case 18:for(l=zr(r,7,11);l;--l)Vr[s++]=0;break;default:Vr[s++]=c;break}}qu(t,Vr,0,n),qu(e,Vr,n,o)}function Gg(r,t,e){for(;;){var n=tp(r,t);if(n===256)return up;if(n<256)r.dest[r.destLen++]=n;else{var o,i,a,s;for(n-=257,o=zr(r,pp[n],fp[n]),i=tp(r,e),a=r.destLen-zr(r,Ay[i],_y[i]),s=a;s<a+o;++s)r.dest[r.destLen++]=r.dest[s]}}}function X_(r){for(var t,e,n;r.bitcount>8;)r.sourceIndex--,r.bitcount-=8;if(t=r.source[r.sourceIndex+1],t=256*t+r.source[r.sourceIndex],e=r.source[r.sourceIndex+3],e=256*e+r.source[r.sourceIndex+2],t!==(~e&65535))return wy;for(r.sourceIndex+=4,n=t;n;--n)r.dest[r.destLen++]=r.source[r.sourceIndex++];return r.bitcount=0,up}function Y_(r,t){var e=new z_(r,t),n,o,i;do{switch(n=W_(e),o=zr(e,2,0),o){case 0:i=X_(e);break;case 1:i=Gg(e,Ty,Cy);break;case 2:q_(e,e.ltree,e.dtree),i=Gg(e,e.ltree,e.dtree);break;default:i=wy}if(i!==up)throw new Error("Data error")}while(!n);return e.destLen<e.dest.length?typeof e.dest.slice=="function"?e.dest.slice(0,e.destLen):e.dest.subarray(0,e.destLen):e.dest}H_(Ty,Cy);Iy(pp,fp,4,3);Iy(Ay,_y,2,1);pp[28]=0;fp[28]=258;var $_=Y_;function vi(r,t,e,n,o){return Math.pow(1-o,3)*r+3*Math.pow(1-o,2)*o*t+3*(1-o)*Math.pow(o,2)*e+Math.pow(o,3)*n}function Rn(){this.x1=Number.NaN,this.y1=Number.NaN,this.x2=Number.NaN,this.y2=Number.NaN}Rn.prototype.isEmpty=function(){return isNaN(this.x1)||isNaN(this.y1)||isNaN(this.x2)||isNaN(this.y2)};Rn.prototype.addPoint=function(r,t){typeof r=="number"&&((isNaN(this.x1)||isNaN(this.x2))&&(this.x1=r,this.x2=r),r<this.x1&&(this.x1=r),r>this.x2&&(this.x2=r)),typeof t=="number"&&((isNaN(this.y1)||isNaN(this.y2))&&(this.y1=t,this.y2=t),t<this.y1&&(this.y1=t),t>this.y2&&(this.y2=t))};Rn.prototype.addX=function(r){this.addPoint(r,null)};Rn.prototype.addY=function(r){this.addPoint(null,r)};Rn.prototype.addBezier=function(r,t,e,n,o,i,a,s){var l=[r,t],u=[e,n],c=[o,i],p=[a,s];this.addPoint(r,t),this.addPoint(a,s);for(var f=0;f<=1;f++){var d=6*l[f]-12*u[f]+6*c[f],h=-3*l[f]+9*u[f]-9*c[f]+3*p[f],m=3*u[f]-3*l[f];if(h===0){if(d===0)continue;var g=-m/d;0<g&&g<1&&(f===0&&this.addX(vi(l[f],u[f],c[f],p[f],g)),f===1&&this.addY(vi(l[f],u[f],c[f],p[f],g)));continue}var v=Math.pow(d,2)-4*m*h;if(!(v<0)){var x=(-d+Math.sqrt(v))/(2*h);0<x&&x<1&&(f===0&&this.addX(vi(l[f],u[f],c[f],p[f],x)),f===1&&this.addY(vi(l[f],u[f],c[f],p[f],x)));var S=(-d-Math.sqrt(v))/(2*h);0<S&&S<1&&(f===0&&this.addX(vi(l[f],u[f],c[f],p[f],S)),f===1&&this.addY(vi(l[f],u[f],c[f],p[f],S)))}}};Rn.prototype.addQuad=function(r,t,e,n,o,i){var a=r+.6666666666666666*(e-r),s=t+2/3*(n-t),l=a+1/3*(o-r),u=s+1/3*(i-t);this.addBezier(r,t,a,s,l,u,o,i)};function tt(){this.commands=[],this.fill="black",this.stroke=null,this.strokeWidth=1}tt.prototype.moveTo=function(r,t){this.commands.push({type:"M",x:r,y:t})};tt.prototype.lineTo=function(r,t){this.commands.push({type:"L",x:r,y:t})};tt.prototype.curveTo=tt.prototype.bezierCurveTo=function(r,t,e,n,o,i){this.commands.push({type:"C",x1:r,y1:t,x2:e,y2:n,x:o,y:i})};tt.prototype.quadTo=tt.prototype.quadraticCurveTo=function(r,t,e,n){this.commands.push({type:"Q",x1:r,y1:t,x:e,y:n})};tt.prototype.close=tt.prototype.closePath=function(){this.commands.push({type:"Z"})};tt.prototype.extend=function(r){if(r.commands)r=r.commands;else if(r instanceof Rn){var t=r;this.moveTo(t.x1,t.y1),this.lineTo(t.x2,t.y1),this.lineTo(t.x2,t.y2),this.lineTo(t.x1,t.y2),this.close();return}Array.prototype.push.apply(this.commands,r)};tt.prototype.getBoundingBox=function(){for(var r=new Rn,t=0,e=0,n=0,o=0,i=0;i<this.commands.length;i++){var a=this.commands[i];switch(a.type){case"M":r.addPoint(a.x,a.y),t=n=a.x,e=o=a.y;break;case"L":r.addPoint(a.x,a.y),n=a.x,o=a.y;break;case"Q":r.addQuad(n,o,a.x1,a.y1,a.x,a.y),n=a.x,o=a.y;break;case"C":r.addBezier(n,o,a.x1,a.y1,a.x2,a.y2,a.x,a.y),n=a.x,o=a.y;break;case"Z":n=t,o=e;break;default:throw new Error("Unexpected path command "+a.type)}}return r.isEmpty()&&r.addPoint(0,0),r};tt.prototype.draw=function(r){r.beginPath();for(var t=0;t<this.commands.length;t+=1){var e=this.commands[t];e.type==="M"?r.moveTo(e.x,e.y):e.type==="L"?r.lineTo(e.x,e.y):e.type==="C"?r.bezierCurveTo(e.x1,e.y1,e.x2,e.y2,e.x,e.y):e.type==="Q"?r.quadraticCurveTo(e.x1,e.y1,e.x,e.y):e.type==="Z"&&r.closePath()}this.fill&&(r.fillStyle=this.fill,r.fill()),this.stroke&&(r.strokeStyle=this.stroke,r.lineWidth=this.strokeWidth,r.stroke())};tt.prototype.toPathData=function(r){r=r!==void 0?r:2;function t(a){return Math.round(a)===a?""+Math.round(a):a.toFixed(r)}function e(){for(var a=arguments,s="",l=0;l<arguments.length;l+=1){var u=a[l];u>=0&&l>0&&(s+=" "),s+=t(u)}return s}for(var n="",o=0;o<this.commands.length;o+=1){var i=this.commands[o];i.type==="M"?n+="M"+e(i.x,i.y):i.type==="L"?n+="L"+e(i.x,i.y):i.type==="C"?n+="C"+e(i.x1,i.y1,i.x2,i.y2,i.x,i.y):i.type==="Q"?n+="Q"+e(i.x1,i.y1,i.x,i.y):i.type==="Z"&&(n+="Z")}return n};tt.prototype.toSVG=function(r){var t='<path d="';return t+=this.toPathData(r),t+='"',this.fill&&this.fill!=="black"&&(this.fill===null?t+=' fill="none"':t+=' fill="'+this.fill+'"'),this.stroke&&(t+=' stroke="'+this.stroke+'" stroke-width="'+this.strokeWidth+'"'),t+="/>",t};tt.prototype.toDOMElement=function(r){var t=this.toPathData(r),e=document.createElementNS("http://www.w3.org/2000/svg","path");return e.setAttribute("d",t),e};function Oy(r){throw new Error(r)}function Ug(r,t){r||Oy(t)}var ve={fail:Oy,argument:Ug,assert:Ug},Vg=32768,zg=2147483648,bi={},te={},xe={};function fr(r){return function(){return r}}te.BYTE=function(r){return ve.argument(r>=0&&r<=255,"Byte value should be between 0 and 255."),[r]};xe.BYTE=fr(1);te.CHAR=function(r){return[r.charCodeAt(0)]};xe.CHAR=fr(1);te.CHARARRAY=function(r){typeof r>"u"&&(r="",console.warn("Undefined CHARARRAY encountered and treated as an empty string. This is probably caused by a missing glyph name."));for(var t=[],e=0;e<r.length;e+=1)t[e]=r.charCodeAt(e);return t};xe.CHARARRAY=function(r){return typeof r>"u"?0:r.length};te.USHORT=function(r){return[r>>8&255,r&255]};xe.USHORT=fr(2);te.SHORT=function(r){return r>=Vg&&(r=-(2*Vg-r)),[r>>8&255,r&255]};xe.SHORT=fr(2);te.UINT24=function(r){return[r>>16&255,r>>8&255,r&255]};xe.UINT24=fr(3);te.ULONG=function(r){return[r>>24&255,r>>16&255,r>>8&255,r&255]};xe.ULONG=fr(4);te.LONG=function(r){return r>=zg&&(r=-(2*zg-r)),[r>>24&255,r>>16&255,r>>8&255,r&255]};xe.LONG=fr(4);te.FIXED=te.ULONG;xe.FIXED=xe.ULONG;te.FWORD=te.SHORT;xe.FWORD=xe.SHORT;te.UFWORD=te.USHORT;xe.UFWORD=xe.USHORT;te.LONGDATETIME=function(r){return[0,0,0,0,r>>24&255,r>>16&255,r>>8&255,r&255]};xe.LONGDATETIME=fr(8);te.TAG=function(r){return ve.argument(r.length===4,"Tag should be exactly 4 ASCII characters."),[r.charCodeAt(0),r.charCodeAt(1),r.charCodeAt(2),r.charCodeAt(3)]};xe.TAG=fr(4);te.Card8=te.BYTE;xe.Card8=xe.BYTE;te.Card16=te.USHORT;xe.Card16=xe.USHORT;te.OffSize=te.BYTE;xe.OffSize=xe.BYTE;te.SID=te.USHORT;xe.SID=xe.USHORT;te.NUMBER=function(r){return r>=-107&&r<=107?[r+139]:r>=108&&r<=1131?(r=r-108,[(r>>8)+247,r&255]):r>=-1131&&r<=-108?(r=-r-108,[(r>>8)+251,r&255]):r>=-32768&&r<=32767?te.NUMBER16(r):te.NUMBER32(r)};xe.NUMBER=function(r){return te.NUMBER(r).length};te.NUMBER16=function(r){return[28,r>>8&255,r&255]};xe.NUMBER16=fr(3);te.NUMBER32=function(r){return[29,r>>24&255,r>>16&255,r>>8&255,r&255]};xe.NUMBER32=fr(5);te.REAL=function(r){var t=r.toString(),e=/\.(\d*?)(?:9{5,20}|0{5,20})\d{0,2}(?:e(.+)|$)/.exec(t);if(e){var n=parseFloat("1e"+((e[2]?+e[2]:0)+e[1].length));t=(Math.round(r*n)/n).toString()}for(var o="",i=0,a=t.length;i<a;i+=1){var s=t[i];s==="e"?o+=t[++i]==="-"?"c":"b":s==="."?o+="a":s==="-"?o+="e":o+=s}o+=o.length&1?"f":"ff";for(var l=[30],u=0,c=o.length;u<c;u+=2)l.push(parseInt(o.substr(u,2),16));return l};xe.REAL=function(r){return te.REAL(r).length};te.NAME=te.CHARARRAY;xe.NAME=xe.CHARARRAY;te.STRING=te.CHARARRAY;xe.STRING=xe.CHARARRAY;bi.UTF8=function(r,t,e){for(var n=[],o=e,i=0;i<o;i++,t+=1)n[i]=r.getUint8(t);return String.fromCharCode.apply(null,n)};bi.UTF16=function(r,t,e){for(var n=[],o=e/2,i=0;i<o;i++,t+=2)n[i]=r.getUint16(t);return String.fromCharCode.apply(null,n)};te.UTF16=function(r){for(var t=[],e=0;e<r.length;e+=1){var n=r.charCodeAt(e);t[t.length]=n>>8&255,t[t.length]=n&255}return t};xe.UTF16=function(r){return r.length*2};var rp={"x-mac-croatian":"\xC4\xC5\xC7\xC9\xD1\xD6\xDC\xE1\xE0\xE2\xE4\xE3\xE5\xE7\xE9\xE8\xEA\xEB\xED\xEC\xEE\xEF\xF1\xF3\xF2\xF4\xF6\xF5\xFA\xF9\xFB\xFC\u2020\xB0\xA2\xA3\xA7\u2022\xB6\xDF\xAE\u0160\u2122\xB4\xA8\u2260\u017D\xD8\u221E\xB1\u2264\u2265\u2206\xB5\u2202\u2211\u220F\u0161\u222B\xAA\xBA\u03A9\u017E\xF8\xBF\xA1\xAC\u221A\u0192\u2248\u0106\xAB\u010C\u2026\xA0\xC0\xC3\xD5\u0152\u0153\u0110\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\uF8FF\xA9\u2044\u20AC\u2039\u203A\xC6\xBB\u2013\xB7\u201A\u201E\u2030\xC2\u0107\xC1\u010D\xC8\xCD\xCE\xCF\xCC\xD3\xD4\u0111\xD2\xDA\xDB\xD9\u0131\u02C6\u02DC\xAF\u03C0\xCB\u02DA\xB8\xCA\xE6\u02C7","x-mac-cyrillic":"\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u2020\xB0\u0490\xA3\xA7\u2022\xB6\u0406\xAE\xA9\u2122\u0402\u0452\u2260\u0403\u0453\u221E\xB1\u2264\u2265\u0456\xB5\u0491\u0408\u0404\u0454\u0407\u0457\u0409\u0459\u040A\u045A\u0458\u0405\xAC\u221A\u0192\u2248\u2206\xAB\xBB\u2026\xA0\u040B\u045B\u040C\u045C\u0455\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u201E\u040E\u045E\u040F\u045F\u2116\u0401\u0451\u044F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E","x-mac-gaelic":"\xC4\xC5\xC7\xC9\xD1\xD6\xDC\xE1\xE0\xE2\xE4\xE3\xE5\xE7\xE9\xE8\xEA\xEB\xED\xEC\xEE\xEF\xF1\xF3\xF2\xF4\xF6\xF5\xFA\xF9\xFB\xFC\u2020\xB0\xA2\xA3\xA7\u2022\xB6\xDF\xAE\xA9\u2122\xB4\xA8\u2260\xC6\xD8\u1E02\xB1\u2264\u2265\u1E03\u010A\u010B\u1E0A\u1E0B\u1E1E\u1E1F\u0120\u0121\u1E40\xE6\xF8\u1E41\u1E56\u1E57\u027C\u0192\u017F\u1E60\xAB\xBB\u2026\xA0\xC0\xC3\xD5\u0152\u0153\u2013\u2014\u201C\u201D\u2018\u2019\u1E61\u1E9B\xFF\u0178\u1E6A\u20AC\u2039\u203A\u0176\u0177\u1E6B\xB7\u1EF2\u1EF3\u204A\xC2\xCA\xC1\xCB\xC8\xCD\xCE\xCF\xCC\xD3\xD4\u2663\xD2\xDA\xDB\xD9\u0131\xDD\xFD\u0174\u0175\u1E84\u1E85\u1E80\u1E81\u1E82\u1E83","x-mac-greek":"\xC4\xB9\xB2\xC9\xB3\xD6\xDC\u0385\xE0\xE2\xE4\u0384\xA8\xE7\xE9\xE8\xEA\xEB\xA3\u2122\xEE\xEF\u2022\xBD\u2030\xF4\xF6\xA6\u20AC\xF9\xFB\xFC\u2020\u0393\u0394\u0398\u039B\u039E\u03A0\xDF\xAE\xA9\u03A3\u03AA\xA7\u2260\xB0\xB7\u0391\xB1\u2264\u2265\xA5\u0392\u0395\u0396\u0397\u0399\u039A\u039C\u03A6\u03AB\u03A8\u03A9\u03AC\u039D\xAC\u039F\u03A1\u2248\u03A4\xAB\xBB\u2026\xA0\u03A5\u03A7\u0386\u0388\u0153\u2013\u2015\u201C\u201D\u2018\u2019\xF7\u0389\u038A\u038C\u038E\u03AD\u03AE\u03AF\u03CC\u038F\u03CD\u03B1\u03B2\u03C8\u03B4\u03B5\u03C6\u03B3\u03B7\u03B9\u03BE\u03BA\u03BB\u03BC\u03BD\u03BF\u03C0\u03CE\u03C1\u03C3\u03C4\u03B8\u03C9\u03C2\u03C7\u03C5\u03B6\u03CA\u03CB\u0390\u03B0\xAD","x-mac-icelandic":"\xC4\xC5\xC7\xC9\xD1\xD6\xDC\xE1\xE0\xE2\xE4\xE3\xE5\xE7\xE9\xE8\xEA\xEB\xED\xEC\xEE\xEF\xF1\xF3\xF2\xF4\xF6\xF5\xFA\xF9\xFB\xFC\xDD\xB0\xA2\xA3\xA7\u2022\xB6\xDF\xAE\xA9\u2122\xB4\xA8\u2260\xC6\xD8\u221E\xB1\u2264\u2265\xA5\xB5\u2202\u2211\u220F\u03C0\u222B\xAA\xBA\u03A9\xE6\xF8\xBF\xA1\xAC\u221A\u0192\u2248\u2206\xAB\xBB\u2026\xA0\xC0\xC3\xD5\u0152\u0153\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\xFF\u0178\u2044\u20AC\xD0\xF0\xDE\xFE\xFD\xB7\u201A\u201E\u2030\xC2\xCA\xC1\xCB\xC8\xCD\xCE\xCF\xCC\xD3\xD4\uF8FF\xD2\xDA\xDB\xD9\u0131\u02C6\u02DC\xAF\u02D8\u02D9\u02DA\xB8\u02DD\u02DB\u02C7","x-mac-inuit":"\u1403\u1404\u1405\u1406\u140A\u140B\u1431\u1432\u1433\u1434\u1438\u1439\u1449\u144E\u144F\u1450\u1451\u1455\u1456\u1466\u146D\u146E\u146F\u1470\u1472\u1473\u1483\u148B\u148C\u148D\u148E\u1490\u1491\xB0\u14A1\u14A5\u14A6\u2022\xB6\u14A7\xAE\xA9\u2122\u14A8\u14AA\u14AB\u14BB\u14C2\u14C3\u14C4\u14C5\u14C7\u14C8\u14D0\u14EF\u14F0\u14F1\u14F2\u14F4\u14F5\u1505\u14D5\u14D6\u14D7\u14D8\u14DA\u14DB\u14EA\u1528\u1529\u152A\u152B\u152D\u2026\xA0\u152E\u153E\u1555\u1556\u1557\u2013\u2014\u201C\u201D\u2018\u2019\u1558\u1559\u155A\u155D\u1546\u1547\u1548\u1549\u154B\u154C\u1550\u157F\u1580\u1581\u1582\u1583\u1584\u1585\u158F\u1590\u1591\u1592\u1593\u1594\u1595\u1671\u1672\u1673\u1674\u1675\u1676\u1596\u15A0\u15A1\u15A2\u15A3\u15A4\u15A5\u15A6\u157C\u0141\u0142","x-mac-ce":"\xC4\u0100\u0101\xC9\u0104\xD6\xDC\xE1\u0105\u010C\xE4\u010D\u0106\u0107\xE9\u0179\u017A\u010E\xED\u010F\u0112\u0113\u0116\xF3\u0117\xF4\xF6\xF5\xFA\u011A\u011B\xFC\u2020\xB0\u0118\xA3\xA7\u2022\xB6\xDF\xAE\xA9\u2122\u0119\xA8\u2260\u0123\u012E\u012F\u012A\u2264\u2265\u012B\u0136\u2202\u2211\u0142\u013B\u013C\u013D\u013E\u0139\u013A\u0145\u0146\u0143\xAC\u221A\u0144\u0147\u2206\xAB\xBB\u2026\xA0\u0148\u0150\xD5\u0151\u014C\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\u014D\u0154\u0155\u0158\u2039\u203A\u0159\u0156\u0157\u0160\u201A\u201E\u0161\u015A\u015B\xC1\u0164\u0165\xCD\u017D\u017E\u016A\xD3\xD4\u016B\u016E\xDA\u016F\u0170\u0171\u0172\u0173\xDD\xFD\u0137\u017B\u0141\u017C\u0122\u02C7",macintosh:"\xC4\xC5\xC7\xC9\xD1\xD6\xDC\xE1\xE0\xE2\xE4\xE3\xE5\xE7\xE9\xE8\xEA\xEB\xED\xEC\xEE\xEF\xF1\xF3\xF2\xF4\xF6\xF5\xFA\xF9\xFB\xFC\u2020\xB0\xA2\xA3\xA7\u2022\xB6\xDF\xAE\xA9\u2122\xB4\xA8\u2260\xC6\xD8\u221E\xB1\u2264\u2265\xA5\xB5\u2202\u2211\u220F\u03C0\u222B\xAA\xBA\u03A9\xE6\xF8\xBF\xA1\xAC\u221A\u0192\u2248\u2206\xAB\xBB\u2026\xA0\xC0\xC3\xD5\u0152\u0153\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\xFF\u0178\u2044\u20AC\u2039\u203A\uFB01\uFB02\u2021\xB7\u201A\u201E\u2030\xC2\xCA\xC1\xCB\xC8\xCD\xCE\xCF\xCC\xD3\xD4\uF8FF\xD2\xDA\xDB\xD9\u0131\u02C6\u02DC\xAF\u02D8\u02D9\u02DA\xB8\u02DD\u02DB\u02C7","x-mac-romanian":"\xC4\xC5\xC7\xC9\xD1\xD6\xDC\xE1\xE0\xE2\xE4\xE3\xE5\xE7\xE9\xE8\xEA\xEB\xED\xEC\xEE\xEF\xF1\xF3\xF2\xF4\xF6\xF5\xFA\xF9\xFB\xFC\u2020\xB0\xA2\xA3\xA7\u2022\xB6\xDF\xAE\xA9\u2122\xB4\xA8\u2260\u0102\u0218\u221E\xB1\u2264\u2265\xA5\xB5\u2202\u2211\u220F\u03C0\u222B\xAA\xBA\u03A9\u0103\u0219\xBF\xA1\xAC\u221A\u0192\u2248\u2206\xAB\xBB\u2026\xA0\xC0\xC3\xD5\u0152\u0153\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\xFF\u0178\u2044\u20AC\u2039\u203A\u021A\u021B\u2021\xB7\u201A\u201E\u2030\xC2\xCA\xC1\xCB\xC8\xCD\xCE\xCF\xCC\xD3\xD4\uF8FF\xD2\xDA\xDB\xD9\u0131\u02C6\u02DC\xAF\u02D8\u02D9\u02DA\xB8\u02DD\u02DB\u02C7","x-mac-turkish":"\xC4\xC5\xC7\xC9\xD1\xD6\xDC\xE1\xE0\xE2\xE4\xE3\xE5\xE7\xE9\xE8\xEA\xEB\xED\xEC\xEE\xEF\xF1\xF3\xF2\xF4\xF6\xF5\xFA\xF9\xFB\xFC\u2020\xB0\xA2\xA3\xA7\u2022\xB6\xDF\xAE\xA9\u2122\xB4\xA8\u2260\xC6\xD8\u221E\xB1\u2264\u2265\xA5\xB5\u2202\u2211\u220F\u03C0\u222B\xAA\xBA\u03A9\xE6\xF8\xBF\xA1\xAC\u221A\u0192\u2248\u2206\xAB\xBB\u2026\xA0\xC0\xC3\xD5\u0152\u0153\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\xFF\u0178\u011E\u011F\u0130\u0131\u015E\u015F\u2021\xB7\u201A\u201E\u2030\xC2\xCA\xC1\xCB\xC8\xCD\xCE\xCF\xCC\xD3\xD4\uF8FF\xD2\xDA\xDB\xD9\uF8A0\u02C6\u02DC\xAF\u02D8\u02D9\u02DA\xB8\u02DD\u02DB\u02C7"};bi.MACSTRING=function(r,t,e,n){var o=rp[n];if(o!==void 0){for(var i="",a=0;a<e;a++){var s=r.getUint8(t+a);s<=127?i+=String.fromCharCode(s):i+=o[s&127]}return i}};var Ml=typeof WeakMap=="function"&&new WeakMap,El,K_=function(r){if(!El){El={};for(var t in rp)El[t]=new String(t)}var e=El[r];if(e!==void 0){if(Ml){var n=Ml.get(e);if(n!==void 0)return n}var o=rp[r];if(o!==void 0){for(var i={},a=0;a<o.length;a++)i[o.charCodeAt(a)]=a+128;return Ml&&Ml.set(e,i),i}}};te.MACSTRING=function(r,t){var e=K_(t);if(e!==void 0){for(var n=[],o=0;o<r.length;o++){var i=r.charCodeAt(o);if(i>=128&&(i=e[i],i===void 0))return;n[o]=i}return n}};xe.MACSTRING=function(r,t){var e=te.MACSTRING(r,t);return e!==void 0?e.length:0};function np(r){return r>=-128&&r<=127}function Z_(r,t,e){for(var n=0,o=r.length;t<o&&n<64&&r[t]===0;)++t,++n;return e.push(128|n-1),t}function Q_(r,t,e){for(var n=0,o=r.length,i=t;i<o&&n<64;){var a=r[i];if(!np(a)||a===0&&i+1<o&&r[i+1]===0)break;++i,++n}e.push(n-1);for(var s=t;s<i;++s)e.push(r[s]+256&255);return i}function J_(r,t,e){for(var n=0,o=r.length,i=t;i<o&&n<64;){var a=r[i];if(a===0||np(a)&&i+1<o&&np(r[i+1]))break;++i,++n}e.push(64|n-1);for(var s=t;s<i;++s){var l=r[s];e.push(l+65536>>8&255,l+256&255)}return i}te.VARDELTAS=function(r){for(var t=0,e=[];t<r.length;){var n=r[t];n===0?t=Z_(r,t,e):n>=-128&&n<=127?t=Q_(r,t,e):t=J_(r,t,e)}return e};te.INDEX=function(r){for(var t=1,e=[t],n=[],o=0;o<r.length;o+=1){var i=te.OBJECT(r[o]);Array.prototype.push.apply(n,i),t+=i.length,e.push(t)}if(n.length===0)return[0,0];for(var a=[],s=1+Math.floor(Math.log(t)/Math.log(2))/8|0,l=[void 0,te.BYTE,te.USHORT,te.UINT24,te.ULONG][s],u=0;u<e.length;u+=1){var c=l(e[u]);Array.prototype.push.apply(a,c)}return Array.prototype.concat(te.Card16(r.length),te.OffSize(s),a,n)};xe.INDEX=function(r){return te.INDEX(r).length};te.DICT=function(r){for(var t=[],e=Object.keys(r),n=e.length,o=0;o<n;o+=1){var i=parseInt(e[o],0),a=r[i];t=t.concat(te.OPERAND(a.value,a.type)),t=t.concat(te.OPERATOR(i))}return t};xe.DICT=function(r){return te.DICT(r).length};te.OPERATOR=function(r){return r<1200?[r]:[12,r-1200]};te.OPERAND=function(r,t){var e=[];if(Array.isArray(t))for(var n=0;n<t.length;n+=1)ve.argument(r.length===t.length,"Not enough arguments given for type"+t),e=e.concat(te.OPERAND(r[n],t[n]));else if(t==="SID")e=e.concat(te.NUMBER(r));else if(t==="offset")e=e.concat(te.NUMBER32(r));else if(t==="number")e=e.concat(te.NUMBER(r));else if(t==="real")e=e.concat(te.REAL(r));else throw new Error("Unknown operand type "+t);return e};te.OP=te.BYTE;xe.OP=xe.BYTE;var Dl=typeof WeakMap=="function"&&new WeakMap;te.CHARSTRING=function(r){if(Dl){var t=Dl.get(r);if(t!==void 0)return t}for(var e=[],n=r.length,o=0;o<n;o+=1){var i=r[o];e=e.concat(te[i.type](i.value))}return Dl&&Dl.set(r,e),e};xe.CHARSTRING=function(r){return te.CHARSTRING(r).length};te.OBJECT=function(r){var t=te[r.type];return ve.argument(t!==void 0,"No encoding function for type "+r.type),t(r.value)};xe.OBJECT=function(r){var t=xe[r.type];return ve.argument(t!==void 0,"No sizeOf function for type "+r.type),t(r.value)};te.TABLE=function(r){for(var t=[],e=r.fields.length,n=[],o=[],i=0;i<e;i+=1){var a=r.fields[i],s=te[a.type];ve.argument(s!==void 0,"No encoding function for field type "+a.type+" ("+a.name+")");var l=r[a.name];l===void 0&&(l=a.value);var u=s(l);a.type==="TABLE"?(o.push(t.length),t=t.concat([0,0]),n.push(u)):t=t.concat(u)}for(var c=0;c<n.length;c+=1){var p=o[c],f=t.length;ve.argument(f<65536,"Table "+r.tableName+" too big."),t[p]=f>>8,t[p+1]=f&255,t=t.concat(n[c])}return t};xe.TABLE=function(r){for(var t=0,e=r.fields.length,n=0;n<e;n+=1){var o=r.fields[n],i=xe[o.type];ve.argument(i!==void 0,"No sizeOf function for field type "+o.type+" ("+o.name+")");var a=r[o.name];a===void 0&&(a=o.value),t+=i(a),o.type==="TABLE"&&(t+=2)}return t};te.RECORD=te.TABLE;xe.RECORD=xe.TABLE;te.LITERAL=function(r){return r};xe.LITERAL=function(r){return r.length};function ut(r,t,e){if(t.length&&(t[0].name!=="coverageFormat"||t[0].value===1))for(var n=0;n<t.length;n+=1){var o=t[n];this[o.name]=o.value}if(this.tableName=r,this.fields=t,e)for(var i=Object.keys(e),a=0;a<i.length;a+=1){var s=i[a],l=e[s];this[s]!==void 0&&(this[s]=l)}}ut.prototype.encode=function(){return te.TABLE(this)};ut.prototype.sizeOf=function(){return xe.TABLE(this)};function Ma(r,t,e){e===void 0&&(e=t.length);var n=new Array(t.length+1);n[0]={name:r+"Count",type:"USHORT",value:e};for(var o=0;o<t.length;o++)n[o+1]={name:r+o,type:"USHORT",value:t[o]};return n}function op(r,t,e){var n=t.length,o=new Array(n+1);o[0]={name:r+"Count",type:"USHORT",value:n};for(var i=0;i<n;i++)o[i+1]={name:r+i,type:"TABLE",value:e(t[i],i)};return o}function Ea(r,t,e){var n=t.length,o=[];o[0]={name:r+"Count",type:"USHORT",value:n};for(var i=0;i<n;i++)o=o.concat(e(t[i],i));return o}function Gl(r){r.format===1?ut.call(this,"coverageTable",[{name:"coverageFormat",type:"USHORT",value:1}].concat(Ma("glyph",r.glyphs))):r.format===2?ut.call(this,"coverageTable",[{name:"coverageFormat",type:"USHORT",value:2}].concat(Ea("rangeRecord",r.ranges,function(t){return[{name:"startGlyphID",type:"USHORT",value:t.start},{name:"endGlyphID",type:"USHORT",value:t.end},{name:"startCoverageIndex",type:"USHORT",value:t.index}]}))):ve.assert(!1,"Coverage format must be 1 or 2.")}Gl.prototype=Object.create(ut.prototype);Gl.prototype.constructor=Gl;function Ul(r){ut.call(this,"scriptListTable",Ea("scriptRecord",r,function(t,e){var n=t.script,o=n.defaultLangSys;return ve.assert(!!o,"Unable to write GSUB: script "+t.tag+" has no default language system."),[{name:"scriptTag"+e,type:"TAG",value:t.tag},{name:"script"+e,type:"TABLE",value:new ut("scriptTable",[{name:"defaultLangSys",type:"TABLE",value:new ut("defaultLangSys",[{name:"lookupOrder",type:"USHORT",value:0},{name:"reqFeatureIndex",type:"USHORT",value:o.reqFeatureIndex}].concat(Ma("featureIndex",o.featureIndexes)))}].concat(Ea("langSys",n.langSysRecords,function(i,a){var s=i.langSys;return[{name:"langSysTag"+a,type:"TAG",value:i.tag},{name:"langSys"+a,type:"TABLE",value:new ut("langSys",[{name:"lookupOrder",type:"USHORT",value:0},{name:"reqFeatureIndex",type:"USHORT",value:s.reqFeatureIndex}].concat(Ma("featureIndex",s.featureIndexes)))}]})))}]}))}Ul.prototype=Object.create(ut.prototype);Ul.prototype.constructor=Ul;function Vl(r){ut.call(this,"featureListTable",Ea("featureRecord",r,function(t,e){var n=t.feature;return[{name:"featureTag"+e,type:"TAG",value:t.tag},{name:"feature"+e,type:"TABLE",value:new ut("featureTable",[{name:"featureParams",type:"USHORT",value:n.featureParams}].concat(Ma("lookupListIndex",n.lookupListIndexes)))}]}))}Vl.prototype=Object.create(ut.prototype);Vl.prototype.constructor=Vl;function zl(r,t){ut.call(this,"lookupListTable",op("lookup",r,function(e){var n=t[e.lookupType];return ve.assert(!!n,"Unable to write GSUB lookup type "+e.lookupType+" tables."),new ut("lookupTable",[{name:"lookupType",type:"USHORT",value:e.lookupType},{name:"lookupFlag",type:"USHORT",value:e.lookupFlag}].concat(op("subtable",e.subtables,n)))}))}zl.prototype=Object.create(ut.prototype);zl.prototype.constructor=zl;var le={Table:ut,Record:ut,Coverage:Gl,ScriptList:Ul,FeatureList:Vl,LookupList:zl,ushortList:Ma,tableList:op,recordList:Ea};function jg(r,t){return r.getUint8(t)}function jl(r,t){return r.getUint16(t,!1)}function e2(r,t){return r.getInt16(t,!1)}function dp(r,t){return r.getUint32(t,!1)}function Ly(r,t){var e=r.getInt16(t,!1),n=r.getUint16(t+2,!1);return e+n/65535}function t2(r,t){for(var e="",n=t;n<t+4;n+=1)e+=String.fromCharCode(r.getInt8(n));return e}function r2(r,t,e){for(var n=0,o=0;o<e;o+=1)n<<=8,n+=r.getUint8(t+o);return n}function n2(r,t,e){for(var n=[],o=t;o<e;o+=1)n.push(r.getUint8(o));return n}function o2(r){for(var t="",e=0;e<r.length;e+=1)t+=String.fromCharCode(r[e]);return t}var i2={byte:1,uShort:2,short:2,uLong:4,fixed:4,longDateTime:8,tag:4};function E(r,t){this.data=r,this.offset=t,this.relativeOffset=0}E.prototype.parseByte=function(){var r=this.data.getUint8(this.offset+this.relativeOffset);return this.relativeOffset+=1,r};E.prototype.parseChar=function(){var r=this.data.getInt8(this.offset+this.relativeOffset);return this.relativeOffset+=1,r};E.prototype.parseCard8=E.prototype.parseByte;E.prototype.parseUShort=function(){var r=this.data.getUint16(this.offset+this.relativeOffset);return this.relativeOffset+=2,r};E.prototype.parseCard16=E.prototype.parseUShort;E.prototype.parseSID=E.prototype.parseUShort;E.prototype.parseOffset16=E.prototype.parseUShort;E.prototype.parseShort=function(){var r=this.data.getInt16(this.offset+this.relativeOffset);return this.relativeOffset+=2,r};E.prototype.parseF2Dot14=function(){var r=this.data.getInt16(this.offset+this.relativeOffset)/16384;return this.relativeOffset+=2,r};E.prototype.parseULong=function(){var r=dp(this.data,this.offset+this.relativeOffset);return this.relativeOffset+=4,r};E.prototype.parseOffset32=E.prototype.parseULong;E.prototype.parseFixed=function(){var r=Ly(this.data,this.offset+this.relativeOffset);return this.relativeOffset+=4,r};E.prototype.parseString=function(r){var t=this.data,e=this.offset+this.relativeOffset,n="";this.relativeOffset+=r;for(var o=0;o<r;o++)n+=String.fromCharCode(t.getUint8(e+o));return n};E.prototype.parseTag=function(){return this.parseString(4)};E.prototype.parseLongDateTime=function(){var r=dp(this.data,this.offset+this.relativeOffset+4);return r-=2082844800,this.relativeOffset+=8,r};E.prototype.parseVersion=function(r){var t=jl(this.data,this.offset+this.relativeOffset),e=jl(this.data,this.offset+this.relativeOffset+2);return this.relativeOffset+=4,r===void 0&&(r=4096),t+e/r/10};E.prototype.skip=function(r,t){t===void 0&&(t=1),this.relativeOffset+=i2[r]*t};E.prototype.parseULongList=function(r){r===void 0&&(r=this.parseULong());for(var t=new Array(r),e=this.data,n=this.offset+this.relativeOffset,o=0;o<r;o++)t[o]=e.getUint32(n),n+=4;return this.relativeOffset+=r*4,t};E.prototype.parseOffset16List=E.prototype.parseUShortList=function(r){r===void 0&&(r=this.parseUShort());for(var t=new Array(r),e=this.data,n=this.offset+this.relativeOffset,o=0;o<r;o++)t[o]=e.getUint16(n),n+=2;return this.relativeOffset+=r*2,t};E.prototype.parseShortList=function(r){for(var t=new Array(r),e=this.data,n=this.offset+this.relativeOffset,o=0;o<r;o++)t[o]=e.getInt16(n),n+=2;return this.relativeOffset+=r*2,t};E.prototype.parseByteList=function(r){for(var t=new Array(r),e=this.data,n=this.offset+this.relativeOffset,o=0;o<r;o++)t[o]=e.getUint8(n++);return this.relativeOffset+=r,t};E.prototype.parseList=function(r,t){t||(t=r,r=this.parseUShort());for(var e=new Array(r),n=0;n<r;n++)e[n]=t.call(this);return e};E.prototype.parseList32=function(r,t){t||(t=r,r=this.parseULong());for(var e=new Array(r),n=0;n<r;n++)e[n]=t.call(this);return e};E.prototype.parseRecordList=function(r,t){t||(t=r,r=this.parseUShort());for(var e=new Array(r),n=Object.keys(t),o=0;o<r;o++){for(var i={},a=0;a<n.length;a++){var s=n[a],l=t[s];i[s]=l.call(this)}e[o]=i}return e};E.prototype.parseRecordList32=function(r,t){t||(t=r,r=this.parseULong());for(var e=new Array(r),n=Object.keys(t),o=0;o<r;o++){for(var i={},a=0;a<n.length;a++){var s=n[a],l=t[s];i[s]=l.call(this)}e[o]=i}return e};E.prototype.parseStruct=function(r){if(typeof r=="function")return r.call(this);for(var t=Object.keys(r),e={},n=0;n<t.length;n++){var o=t[n],i=r[o];e[o]=i.call(this)}return e};E.prototype.parseValueRecord=function(r){if(r===void 0&&(r=this.parseUShort()),r!==0){var t={};return r&1&&(t.xPlacement=this.parseShort()),r&2&&(t.yPlacement=this.parseShort()),r&4&&(t.xAdvance=this.parseShort()),r&8&&(t.yAdvance=this.parseShort()),r&16&&(t.xPlaDevice=void 0,this.parseShort()),r&32&&(t.yPlaDevice=void 0,this.parseShort()),r&64&&(t.xAdvDevice=void 0,this.parseShort()),r&128&&(t.yAdvDevice=void 0,this.parseShort()),t}};E.prototype.parseValueRecordList=function(){for(var r=this.parseUShort(),t=this.parseUShort(),e=new Array(t),n=0;n<t;n++)e[n]=this.parseValueRecord(r);return e};E.prototype.parsePointer=function(r){var t=this.parseOffset16();if(t>0)return new E(this.data,this.offset+t).parseStruct(r)};E.prototype.parsePointer32=function(r){var t=this.parseOffset32();if(t>0)return new E(this.data,this.offset+t).parseStruct(r)};E.prototype.parseListOfLists=function(r){for(var t=this.parseOffset16List(),e=t.length,n=this.relativeOffset,o=new Array(e),i=0;i<e;i++){var a=t[i];if(a===0){o[i]=void 0;continue}if(this.relativeOffset=a,r){for(var s=this.parseOffset16List(),l=new Array(s.length),u=0;u<s.length;u++)this.relativeOffset=a+s[u],l[u]=r.call(this);o[i]=l}else o[i]=this.parseUShortList()}return this.relativeOffset=n,o};E.prototype.parseCoverage=function(){var r=this.offset+this.relativeOffset,t=this.parseUShort(),e=this.parseUShort();if(t===1)return{format:1,glyphs:this.parseUShortList(e)};if(t===2){for(var n=new Array(e),o=0;o<e;o++)n[o]={start:this.parseUShort(),end:this.parseUShort(),index:this.parseUShort()};return{format:2,ranges:n}}throw new Error("0x"+r.toString(16)+": Coverage format must be 1 or 2.")};E.prototype.parseClassDef=function(){var r=this.offset+this.relativeOffset,t=this.parseUShort();if(t===1)return{format:1,startGlyph:this.parseUShort(),classes:this.parseUShortList()};if(t===2)return{format:2,ranges:this.parseRecordList({start:E.uShort,end:E.uShort,classId:E.uShort})};throw new Error("0x"+r.toString(16)+": ClassDef format must be 1 or 2.")};E.list=function(r,t){return function(){return this.parseList(r,t)}};E.list32=function(r,t){return function(){return this.parseList32(r,t)}};E.recordList=function(r,t){return function(){return this.parseRecordList(r,t)}};E.recordList32=function(r,t){return function(){return this.parseRecordList32(r,t)}};E.pointer=function(r){return function(){return this.parsePointer(r)}};E.pointer32=function(r){return function(){return this.parsePointer32(r)}};E.tag=E.prototype.parseTag;E.byte=E.prototype.parseByte;E.uShort=E.offset16=E.prototype.parseUShort;E.uShortList=E.prototype.parseUShortList;E.uLong=E.offset32=E.prototype.parseULong;E.uLongList=E.prototype.parseULongList;E.struct=E.prototype.parseStruct;E.coverage=E.prototype.parseCoverage;E.classDef=E.prototype.parseClassDef;var Hg={reserved:E.uShort,reqFeatureIndex:E.uShort,featureIndexes:E.uShortList};E.prototype.parseScriptList=function(){return this.parsePointer(E.recordList({tag:E.tag,script:E.pointer({defaultLangSys:E.pointer(Hg),langSysRecords:E.recordList({tag:E.tag,langSys:E.pointer(Hg)})})}))||[]};E.prototype.parseFeatureList=function(){return this.parsePointer(E.recordList({tag:E.tag,feature:E.pointer({featureParams:E.offset16,lookupListIndexes:E.uShortList})}))||[]};E.prototype.parseLookupList=function(r){return this.parsePointer(E.list(E.pointer(function(){var t=this.parseUShort();ve.argument(1<=t&&t<=9,"GPOS/GSUB lookup type "+t+" unknown.");var e=this.parseUShort(),n=e&16;return{lookupType:t,lookupFlag:e,subtables:this.parseList(E.pointer(r[t])),markFilteringSet:n?this.parseUShort():void 0}})))||[]};E.prototype.parseFeatureVariationsList=function(){return this.parsePointer32(function(){var r=this.parseUShort(),t=this.parseUShort();ve.argument(r===1&&t<1,"GPOS/GSUB feature variations table unknown.");var e=this.parseRecordList32({conditionSetOffset:E.offset32,featureTableSubstitutionOffset:E.offset32});return e})||[]};var ue={getByte:jg,getCard8:jg,getUShort:jl,getCard16:jl,getShort:e2,getULong:dp,getFixed:Ly,getTag:t2,getOffset:r2,getBytes:n2,bytesToString:o2,Parser:E};function a2(r,t){t.parseUShort(),r.length=t.parseULong(),r.language=t.parseULong();var e;r.groupCount=e=t.parseULong(),r.glyphIndexMap={};for(var n=0;n<e;n+=1)for(var o=t.parseULong(),i=t.parseULong(),a=t.parseULong(),s=o;s<=i;s+=1)r.glyphIndexMap[s]=a,a++}function s2(r,t,e,n,o){r.length=t.parseUShort(),r.language=t.parseUShort();var i;r.segCount=i=t.parseUShort()>>1,t.skip("uShort",3),r.glyphIndexMap={};for(var a=new ue.Parser(e,n+o+14),s=new ue.Parser(e,n+o+16+i*2),l=new ue.Parser(e,n+o+16+i*4),u=new ue.Parser(e,n+o+16+i*6),c=n+o+16+i*8,p=0;p<i-1;p+=1)for(var f=void 0,d=a.parseUShort(),h=s.parseUShort(),m=l.parseShort(),g=u.parseUShort(),v=h;v<=d;v+=1)g!==0?(c=u.offset+u.relativeOffset-2,c+=g,c+=(v-h)*2,f=ue.getUShort(e,c),f!==0&&(f=f+m&65535)):f=v+m&65535,r.glyphIndexMap[v]=f}function l2(r,t){var e={};e.version=ue.getUShort(r,t),ve.argument(e.version===0,"cmap table version should be 0."),e.numTables=ue.getUShort(r,t+2);for(var n=-1,o=e.numTables-1;o>=0;o-=1){var i=ue.getUShort(r,t+4+o*8),a=ue.getUShort(r,t+4+o*8+2);if(i===3&&(a===0||a===1||a===10)||i===0&&(a===0||a===1||a===2||a===3||a===4)){n=ue.getULong(r,t+4+o*8+4);break}}if(n===-1)throw new Error("No valid cmap sub-tables found.");var s=new ue.Parser(r,t+n);if(e.format=s.parseUShort(),e.format===12)a2(e,s);else if(e.format===4)s2(e,s,r,t,n);else throw new Error("Only format 4 and 12 cmap tables are supported (found format "+e.format+").");return e}function c2(r,t,e){r.segments.push({end:t,start:t,delta:-(t-e),offset:0,glyphIndex:e})}function u2(r){r.segments.push({end:65535,start:65535,delta:1,offset:0})}function p2(r){var t=!0,e;for(e=r.length-1;e>0;e-=1){var n=r.get(e);if(n.unicode>65535){console.log("Adding CMAP format 12 (needed!)"),t=!1;break}}var o=[{name:"version",type:"USHORT",value:0},{name:"numTables",type:"USHORT",value:t?1:2},{name:"platformID",type:"USHORT",value:3},{name:"encodingID",type:"USHORT",value:1},{name:"offset",type:"ULONG",value:t?12:12+8}];t||(o=o.concat([{name:"cmap12PlatformID",type:"USHORT",value:3},{name:"cmap12EncodingID",type:"USHORT",value:10},{name:"cmap12Offset",type:"ULONG",value:0}])),o=o.concat([{name:"format",type:"USHORT",value:4},{name:"cmap4Length",type:"USHORT",value:0},{name:"language",type:"USHORT",value:0},{name:"segCountX2",type:"USHORT",value:0},{name:"searchRange",type:"USHORT",value:0},{name:"entrySelector",type:"USHORT",value:0},{name:"rangeShift",type:"USHORT",value:0}]);var i=new le.Table("cmap",o);for(i.segments=[],e=0;e<r.length;e+=1){for(var a=r.get(e),s=0;s<a.unicodes.length;s+=1)c2(i,a.unicodes[s],e);i.segments=i.segments.sort(function(x,S){return x.start-S.start})}u2(i);var l=i.segments.length,u=0,c=[],p=[],f=[],d=[],h=[],m=[];for(e=0;e<l;e+=1){var g=i.segments[e];g.end<=65535&&g.start<=65535?(c=c.concat({name:"end_"+e,type:"USHORT",value:g.end}),p=p.concat({name:"start_"+e,type:"USHORT",value:g.start}),f=f.concat({name:"idDelta_"+e,type:"SHORT",value:g.delta}),d=d.concat({name:"idRangeOffset_"+e,type:"USHORT",value:g.offset}),g.glyphId!==void 0&&(h=h.concat({name:"glyph_"+e,type:"USHORT",value:g.glyphId}))):u+=1,!t&&g.glyphIndex!==void 0&&(m=m.concat({name:"cmap12Start_"+e,type:"ULONG",value:g.start}),m=m.concat({name:"cmap12End_"+e,type:"ULONG",value:g.end}),m=m.concat({name:"cmap12Glyph_"+e,type:"ULONG",value:g.glyphIndex}))}if(i.segCountX2=(l-u)*2,i.searchRange=Math.pow(2,Math.floor(Math.log(l-u)/Math.log(2)))*2,i.entrySelector=Math.log(i.searchRange/2)/Math.log(2),i.rangeShift=i.segCountX2-i.searchRange,i.fields=i.fields.concat(c),i.fields.push({name:"reservedPad",type:"USHORT",value:0}),i.fields=i.fields.concat(p),i.fields=i.fields.concat(f),i.fields=i.fields.concat(d),i.fields=i.fields.concat(h),i.cmap4Length=14+c.length*2+2+p.length*2+f.length*2+d.length*2+h.length*2,!t){var v=16+m.length*4;i.cmap12Offset=12+2*2+4+i.cmap4Length,i.fields=i.fields.concat([{name:"cmap12Format",type:"USHORT",value:12},{name:"cmap12Reserved",type:"USHORT",value:0},{name:"cmap12Length",type:"ULONG",value:v},{name:"cmap12Language",type:"ULONG",value:0},{name:"cmap12nGroups",type:"ULONG",value:m.length/3}]),i.fields=i.fields.concat(m)}return i}var Ny={parse:l2,make:p2},Rl=[".notdef","space","exclam","quotedbl","numbersign","dollar","percent","ampersand","quoteright","parenleft","parenright","asterisk","plus","comma","hyphen","period","slash","zero","one","two","three","four","five","six","seven","eight","nine","colon","semicolon","less","equal","greater","question","at","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","bracketleft","backslash","bracketright","asciicircum","underscore","quoteleft","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","braceleft","bar","braceright","asciitilde","exclamdown","cent","sterling","fraction","yen","florin","section","currency","quotesingle","quotedblleft","guillemotleft","guilsinglleft","guilsinglright","fi","fl","endash","dagger","daggerdbl","periodcentered","paragraph","bullet","quotesinglbase","quotedblbase","quotedblright","guillemotright","ellipsis","perthousand","questiondown","grave","acute","circumflex","tilde","macron","breve","dotaccent","dieresis","ring","cedilla","hungarumlaut","ogonek","caron","emdash","AE","ordfeminine","Lslash","Oslash","OE","ordmasculine","ae","dotlessi","lslash","oslash","oe","germandbls","onesuperior","logicalnot","mu","trademark","Eth","onehalf","plusminus","Thorn","onequarter","divide","brokenbar","degree","thorn","threequarters","twosuperior","registered","minus","eth","multiply","threesuperior","copyright","Aacute","Acircumflex","Adieresis","Agrave","Aring","Atilde","Ccedilla","Eacute","Ecircumflex","Edieresis","Egrave","Iacute","Icircumflex","Idieresis","Igrave","Ntilde","Oacute","Ocircumflex","Odieresis","Ograve","Otilde","Scaron","Uacute","Ucircumflex","Udieresis","Ugrave","Yacute","Ydieresis","Zcaron","aacute","acircumflex","adieresis","agrave","aring","atilde","ccedilla","eacute","ecircumflex","edieresis","egrave","iacute","icircumflex","idieresis","igrave","ntilde","oacute","ocircumflex","odieresis","ograve","otilde","scaron","uacute","ucircumflex","udieresis","ugrave","yacute","ydieresis","zcaron","exclamsmall","Hungarumlautsmall","dollaroldstyle","dollarsuperior","ampersandsmall","Acutesmall","parenleftsuperior","parenrightsuperior","266 ff","onedotenleader","zerooldstyle","oneoldstyle","twooldstyle","threeoldstyle","fouroldstyle","fiveoldstyle","sixoldstyle","sevenoldstyle","eightoldstyle","nineoldstyle","commasuperior","threequartersemdash","periodsuperior","questionsmall","asuperior","bsuperior","centsuperior","dsuperior","esuperior","isuperior","lsuperior","msuperior","nsuperior","osuperior","rsuperior","ssuperior","tsuperior","ff","ffi","ffl","parenleftinferior","parenrightinferior","Circumflexsmall","hyphensuperior","Gravesmall","Asmall","Bsmall","Csmall","Dsmall","Esmall","Fsmall","Gsmall","Hsmall","Ismall","Jsmall","Ksmall","Lsmall","Msmall","Nsmall","Osmall","Psmall","Qsmall","Rsmall","Ssmall","Tsmall","Usmall","Vsmall","Wsmall","Xsmall","Ysmall","Zsmall","colonmonetary","onefitted","rupiah","Tildesmall","exclamdownsmall","centoldstyle","Lslashsmall","Scaronsmall","Zcaronsmall","Dieresissmall","Brevesmall","Caronsmall","Dotaccentsmall","Macronsmall","figuredash","hypheninferior","Ogoneksmall","Ringsmall","Cedillasmall","questiondownsmall","oneeighth","threeeighths","fiveeighths","seveneighths","onethird","twothirds","zerosuperior","foursuperior","fivesuperior","sixsuperior","sevensuperior","eightsuperior","ninesuperior","zeroinferior","oneinferior","twoinferior","threeinferior","fourinferior","fiveinferior","sixinferior","seveninferior","eightinferior","nineinferior","centinferior","dollarinferior","periodinferior","commainferior","Agravesmall","Aacutesmall","Acircumflexsmall","Atildesmall","Adieresissmall","Aringsmall","AEsmall","Ccedillasmall","Egravesmall","Eacutesmall","Ecircumflexsmall","Edieresissmall","Igravesmall","Iacutesmall","Icircumflexsmall","Idieresissmall","Ethsmall","Ntildesmall","Ogravesmall","Oacutesmall","Ocircumflexsmall","Otildesmall","Odieresissmall","OEsmall","Oslashsmall","Ugravesmall","Uacutesmall","Ucircumflexsmall","Udieresissmall","Yacutesmall","Thornsmall","Ydieresissmall","001.000","001.001","001.002","001.003","Black","Bold","Book","Light","Medium","Regular","Roman","Semibold"],f2=["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","space","exclam","quotedbl","numbersign","dollar","percent","ampersand","quoteright","parenleft","parenright","asterisk","plus","comma","hyphen","period","slash","zero","one","two","three","four","five","six","seven","eight","nine","colon","semicolon","less","equal","greater","question","at","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","bracketleft","backslash","bracketright","asciicircum","underscore","quoteleft","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","braceleft","bar","braceright","asciitilde","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","exclamdown","cent","sterling","fraction","yen","florin","section","currency","quotesingle","quotedblleft","guillemotleft","guilsinglleft","guilsinglright","fi","fl","","endash","dagger","daggerdbl","periodcentered","","paragraph","bullet","quotesinglbase","quotedblbase","quotedblright","guillemotright","ellipsis","perthousand","","questiondown","","grave","acute","circumflex","tilde","macron","breve","dotaccent","dieresis","","ring","cedilla","","hungarumlaut","ogonek","caron","emdash","","","","","","","","","","","","","","","","","AE","","ordfeminine","","","","","Lslash","Oslash","OE","ordmasculine","","","","","","ae","","","","dotlessi","","","lslash","oslash","oe","germandbls"],d2=["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","space","exclamsmall","Hungarumlautsmall","","dollaroldstyle","dollarsuperior","ampersandsmall","Acutesmall","parenleftsuperior","parenrightsuperior","twodotenleader","onedotenleader","comma","hyphen","period","fraction","zerooldstyle","oneoldstyle","twooldstyle","threeoldstyle","fouroldstyle","fiveoldstyle","sixoldstyle","sevenoldstyle","eightoldstyle","nineoldstyle","colon","semicolon","commasuperior","threequartersemdash","periodsuperior","questionsmall","","asuperior","bsuperior","centsuperior","dsuperior","esuperior","","","isuperior","","","lsuperior","msuperior","nsuperior","osuperior","","","rsuperior","ssuperior","tsuperior","","ff","fi","fl","ffi","ffl","parenleftinferior","","parenrightinferior","Circumflexsmall","hyphensuperior","Gravesmall","Asmall","Bsmall","Csmall","Dsmall","Esmall","Fsmall","Gsmall","Hsmall","Ismall","Jsmall","Ksmall","Lsmall","Msmall","Nsmall","Osmall","Psmall","Qsmall","Rsmall","Ssmall","Tsmall","Usmall","Vsmall","Wsmall","Xsmall","Ysmall","Zsmall","colonmonetary","onefitted","rupiah","Tildesmall","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","exclamdownsmall","centoldstyle","Lslashsmall","","","Scaronsmall","Zcaronsmall","Dieresissmall","Brevesmall","Caronsmall","","Dotaccentsmall","","","Macronsmall","","","figuredash","hypheninferior","","","Ogoneksmall","Ringsmall","Cedillasmall","","","","onequarter","onehalf","threequarters","questiondownsmall","oneeighth","threeeighths","fiveeighths","seveneighths","onethird","twothirds","","","zerosuperior","onesuperior","twosuperior","threesuperior","foursuperior","fivesuperior","sixsuperior","sevensuperior","eightsuperior","ninesuperior","zeroinferior","oneinferior","twoinferior","threeinferior","fourinferior","fiveinferior","sixinferior","seveninferior","eightinferior","nineinferior","centinferior","dollarinferior","periodinferior","commainferior","Agravesmall","Aacutesmall","Acircumflexsmall","Atildesmall","Adieresissmall","Aringsmall","AEsmall","Ccedillasmall","Egravesmall","Eacutesmall","Ecircumflexsmall","Edieresissmall","Igravesmall","Iacutesmall","Icircumflexsmall","Idieresissmall","Ethsmall","Ntildesmall","Ogravesmall","Oacutesmall","Ocircumflexsmall","Otildesmall","Odieresissmall","OEsmall","Oslashsmall","Ugravesmall","Uacutesmall","Ucircumflexsmall","Udieresissmall","Yacutesmall","Thornsmall","Ydieresissmall"],ao=[".notdef",".null","nonmarkingreturn","space","exclam","quotedbl","numbersign","dollar","percent","ampersand","quotesingle","parenleft","parenright","asterisk","plus","comma","hyphen","period","slash","zero","one","two","three","four","five","six","seven","eight","nine","colon","semicolon","less","equal","greater","question","at","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","bracketleft","backslash","bracketright","asciicircum","underscore","grave","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","braceleft","bar","braceright","asciitilde","Adieresis","Aring","Ccedilla","Eacute","Ntilde","Odieresis","Udieresis","aacute","agrave","acircumflex","adieresis","atilde","aring","ccedilla","eacute","egrave","ecircumflex","edieresis","iacute","igrave","icircumflex","idieresis","ntilde","oacute","ograve","ocircumflex","odieresis","otilde","uacute","ugrave","ucircumflex","udieresis","dagger","degree","cent","sterling","section","bullet","paragraph","germandbls","registered","copyright","trademark","acute","dieresis","notequal","AE","Oslash","infinity","plusminus","lessequal","greaterequal","yen","mu","partialdiff","summation","product","pi","integral","ordfeminine","ordmasculine","Omega","ae","oslash","questiondown","exclamdown","logicalnot","radical","florin","approxequal","Delta","guillemotleft","guillemotright","ellipsis","nonbreakingspace","Agrave","Atilde","Otilde","OE","oe","endash","emdash","quotedblleft","quotedblright","quoteleft","quoteright","divide","lozenge","ydieresis","Ydieresis","fraction","currency","guilsinglleft","guilsinglright","fi","fl","daggerdbl","periodcentered","quotesinglbase","quotedblbase","perthousand","Acircumflex","Ecircumflex","Aacute","Edieresis","Egrave","Iacute","Icircumflex","Idieresis","Igrave","Oacute","Ocircumflex","apple","Ograve","Uacute","Ucircumflex","Ugrave","dotlessi","circumflex","tilde","macron","breve","dotaccent","ring","cedilla","hungarumlaut","ogonek","caron","Lslash","lslash","Scaron","scaron","Zcaron","zcaron","brokenbar","Eth","eth","Yacute","yacute","Thorn","thorn","minus","multiply","onesuperior","twosuperior","threesuperior","onehalf","onequarter","threequarters","franc","Gbreve","gbreve","Idotaccent","Scedilla","scedilla","Cacute","cacute","Ccaron","ccaron","dcroat"];function Py(r){this.font=r}Py.prototype.charToGlyphIndex=function(r){var t=r.codePointAt(0),e=this.font.glyphs;if(e){for(var n=0;n<e.length;n+=1)for(var o=e.get(n),i=0;i<o.unicodes.length;i+=1)if(o.unicodes[i]===t)return n}return null};function My(r){this.cmap=r}My.prototype.charToGlyphIndex=function(r){return this.cmap.glyphIndexMap[r.codePointAt(0)]||0};function Hl(r,t){this.encoding=r,this.charset=t}Hl.prototype.charToGlyphIndex=function(r){var t=r.codePointAt(0),e=this.encoding[t];return this.charset.indexOf(e)};function hp(r){switch(r.version){case 1:this.names=ao.slice();break;case 2:this.names=new Array(r.numberOfGlyphs);for(var t=0;t<r.numberOfGlyphs;t++)r.glyphNameIndex[t]<ao.length?this.names[t]=ao[r.glyphNameIndex[t]]:this.names[t]=r.names[r.glyphNameIndex[t]-ao.length];break;case 2.5:this.names=new Array(r.numberOfGlyphs);for(var e=0;e<r.numberOfGlyphs;e++)this.names[e]=ao[e+r.glyphNameIndex[e]];break;case 3:this.names=[];break;default:this.names=[];break}}hp.prototype.nameToGlyphIndex=function(r){return this.names.indexOf(r)};hp.prototype.glyphIndexToName=function(r){return this.names[r]};function h2(r){for(var t,e=r.tables.cmap.glyphIndexMap,n=Object.keys(e),o=0;o<n.length;o+=1){var i=n[o],a=e[i];t=r.glyphs.get(a),t.addUnicode(parseInt(i))}for(var s=0;s<r.glyphs.length;s+=1)t=r.glyphs.get(s),r.cffEncoding?r.isCIDFont?t.name="gid"+s:t.name=r.cffEncoding.charset[s]:r.glyphNames.names&&(t.name=r.glyphNames.glyphIndexToName(s))}function m2(r){r._IndexToUnicodeMap={};for(var t=r.tables.cmap.glyphIndexMap,e=Object.keys(t),n=0;n<e.length;n+=1){var o=e[n],i=t[o];r._IndexToUnicodeMap[i]===void 0?r._IndexToUnicodeMap[i]={unicodes:[parseInt(o)]}:r._IndexToUnicodeMap[i].unicodes.push(parseInt(o))}}function g2(r,t){t.lowMemory?m2(r):h2(r)}function y2(r,t,e,n,o){r.beginPath(),r.moveTo(t,e),r.lineTo(n,o),r.stroke()}var io={line:y2};function v2(r,t){var e=t||new tt;return{configurable:!0,get:function(){return typeof e=="function"&&(e=e()),e},set:function(n){e=n}}}function Zt(r){this.bindConstructorValues(r)}Zt.prototype.bindConstructorValues=function(r){this.index=r.index||0,this.name=r.name||null,this.unicode=r.unicode||void 0,this.unicodes=r.unicodes||r.unicode!==void 0?[r.unicode]:[],"xMin"in r&&(this.xMin=r.xMin),"yMin"in r&&(this.yMin=r.yMin),"xMax"in r&&(this.xMax=r.xMax),"yMax"in r&&(this.yMax=r.yMax),"advanceWidth"in r&&(this.advanceWidth=r.advanceWidth),Object.defineProperty(this,"path",v2(this,r.path))};Zt.prototype.addUnicode=function(r){this.unicodes.length===0&&(this.unicode=r),this.unicodes.push(r)};Zt.prototype.getBoundingBox=function(){return this.path.getBoundingBox()};Zt.prototype.getPath=function(r,t,e,n,o){r=r!==void 0?r:0,t=t!==void 0?t:0,e=e!==void 0?e:72;var i,a;n||(n={});var s=n.xScale,l=n.yScale;if(n.hinting&&o&&o.hinting&&(a=this.path&&o.hinting.exec(this,e)),a)i=o.hinting.getCommands(a),r=Math.round(r),t=Math.round(t),s=l=1;else{i=this.path.commands;var u=1/(this.path.unitsPerEm||1e3)*e;s===void 0&&(s=u),l===void 0&&(l=u)}for(var c=new tt,p=0;p<i.length;p+=1){var f=i[p];f.type==="M"?c.moveTo(r+f.x*s,t+-f.y*l):f.type==="L"?c.lineTo(r+f.x*s,t+-f.y*l):f.type==="Q"?c.quadraticCurveTo(r+f.x1*s,t+-f.y1*l,r+f.x*s,t+-f.y*l):f.type==="C"?c.curveTo(r+f.x1*s,t+-f.y1*l,r+f.x2*s,t+-f.y2*l,r+f.x*s,t+-f.y*l):f.type==="Z"&&c.closePath()}return c};Zt.prototype.getContours=function(){if(this.points===void 0)return[];for(var r=[],t=[],e=0;e<this.points.length;e+=1){var n=this.points[e];t.push(n),n.lastPointOfContour&&(r.push(t),t=[])}return ve.argument(t.length===0,"There are still points left in the current contour."),r};Zt.prototype.getMetrics=function(){for(var r=this.path.commands,t=[],e=[],n=0;n<r.length;n+=1){var o=r[n];o.type!=="Z"&&(t.push(o.x),e.push(o.y)),(o.type==="Q"||o.type==="C")&&(t.push(o.x1),e.push(o.y1)),o.type==="C"&&(t.push(o.x2),e.push(o.y2))}var i={xMin:Math.min.apply(null,t),yMin:Math.min.apply(null,e),xMax:Math.max.apply(null,t),yMax:Math.max.apply(null,e),leftSideBearing:this.leftSideBearing};return isFinite(i.xMin)||(i.xMin=0),isFinite(i.xMax)||(i.xMax=this.advanceWidth),isFinite(i.yMin)||(i.yMin=0),isFinite(i.yMax)||(i.yMax=0),i.rightSideBearing=this.advanceWidth-i.leftSideBearing-(i.xMax-i.xMin),i};Zt.prototype.draw=function(r,t,e,n,o){this.getPath(t,e,n,o).draw(r)};Zt.prototype.drawPoints=function(r,t,e,n){function o(p,f,d,h){r.beginPath();for(var m=0;m<p.length;m+=1)r.moveTo(f+p[m].x*h,d+p[m].y*h),r.arc(f+p[m].x*h,d+p[m].y*h,2,0,Math.PI*2,!1);r.closePath(),r.fill()}t=t!==void 0?t:0,e=e!==void 0?e:0,n=n!==void 0?n:24;for(var i=1/this.path.unitsPerEm*n,a=[],s=[],l=this.path,u=0;u<l.commands.length;u+=1){var c=l.commands[u];c.x!==void 0&&a.push({x:c.x,y:-c.y}),c.x1!==void 0&&s.push({x:c.x1,y:-c.y1}),c.x2!==void 0&&s.push({x:c.x2,y:-c.y2})}r.fillStyle="blue",o(a,t,e,i),r.fillStyle="red",o(s,t,e,i)};Zt.prototype.drawMetrics=function(r,t,e,n){var o;t=t!==void 0?t:0,e=e!==void 0?e:0,n=n!==void 0?n:24,o=1/this.path.unitsPerEm*n,r.lineWidth=1,r.strokeStyle="black",io.line(r,t,-1e4,t,1e4),io.line(r,-1e4,e,1e4,e);var i=this.xMin||0,a=this.yMin||0,s=this.xMax||0,l=this.yMax||0,u=this.advanceWidth||0;r.strokeStyle="blue",io.line(r,t+i*o,-1e4,t+i*o,1e4),io.line(r,t+s*o,-1e4,t+s*o,1e4),io.line(r,-1e4,e+-a*o,1e4,e+-a*o),io.line(r,-1e4,e+-l*o,1e4,e+-l*o),r.strokeStyle="green",io.line(r,t+u*o,-1e4,t+u*o,1e4)};function Bl(r,t,e){Object.defineProperty(r,t,{get:function(){return r.path,r[e]},set:function(n){r[e]=n},enumerable:!0,configurable:!0})}function mp(r,t){if(this.font=r,this.glyphs={},Array.isArray(t))for(var e=0;e<t.length;e++){var n=t[e];n.path.unitsPerEm=r.unitsPerEm,this.glyphs[e]=n}this.length=t&&t.length||0}mp.prototype.get=function(r){if(this.glyphs[r]===void 0){this.font._push(r),typeof this.glyphs[r]=="function"&&(this.glyphs[r]=this.glyphs[r]());var t=this.glyphs[r],e=this.font._IndexToUnicodeMap[r];if(e)for(var n=0;n<e.unicodes.length;n++)t.addUnicode(e.unicodes[n]);this.font.cffEncoding?this.font.isCIDFont?t.name="gid"+r:t.name=this.font.cffEncoding.charset[r]:this.font.glyphNames.names&&(t.name=this.font.glyphNames.glyphIndexToName(r)),this.glyphs[r].advanceWidth=this.font._hmtxTableData[r].advanceWidth,this.glyphs[r].leftSideBearing=this.font._hmtxTableData[r].leftSideBearing}else typeof this.glyphs[r]=="function"&&(this.glyphs[r]=this.glyphs[r]());return this.glyphs[r]};mp.prototype.push=function(r,t){this.glyphs[r]=t,this.length++};function x2(r,t){return new Zt({index:t,font:r})}function b2(r,t,e,n,o,i){return function(){var a=new Zt({index:t,font:r});return a.path=function(){e(a,n,o);var s=i(r.glyphs,a);return s.unitsPerEm=r.unitsPerEm,s},Bl(a,"xMin","_xMin"),Bl(a,"xMax","_xMax"),Bl(a,"yMin","_yMin"),Bl(a,"yMax","_yMax"),a}}function S2(r,t,e,n){return function(){var o=new Zt({index:t,font:r});return o.path=function(){var i=e(r,o,n);return i.unitsPerEm=r.unitsPerEm,i},o}}var Hr={GlyphSet:mp,glyphLoader:x2,ttfGlyphLoader:b2,cffGlyphLoader:S2};function Ey(r,t){if(r===t)return!0;if(Array.isArray(r)&&Array.isArray(t)){if(r.length!==t.length)return!1;for(var e=0;e<r.length;e+=1)if(!Ey(r[e],t[e]))return!1;return!0}else return!1}function ip(r){var t;return r.length<1240?t=107:r.length<33900?t=1131:t=32768,t}function En(r,t,e){var n=[],o=[],i=ue.getCard16(r,t),a,s;if(i!==0){var l=ue.getByte(r,t+2);a=t+(i+1)*l+2;for(var u=t+3,c=0;c<i+1;c+=1)n.push(ue.getOffset(r,u,l)),u+=l;s=a+n[i]}else s=t+2;for(var p=0;p<n.length-1;p+=1){var f=ue.getBytes(r,a+n[p],a+n[p+1]);e&&(f=e(f)),o.push(f)}return{objects:o,startOffset:t,endOffset:s}}function w2(r,t){var e=[],n=ue.getCard16(r,t),o,i;if(n!==0){var a=ue.getByte(r,t+2);o=t+(n+1)*a+2;for(var s=t+3,l=0;l<n+1;l+=1)e.push(ue.getOffset(r,s,a)),s+=a;i=o+e[n]}else i=t+2;return{offsets:e,startOffset:t,endOffset:i}}function T2(r,t,e,n,o){var i=ue.getCard16(e,n),a=0;if(i!==0){var s=ue.getByte(e,n+2);a=n+(i+1)*s+2}var l=ue.getBytes(e,a+t[r],a+t[r+1]);return o&&(l=o(l)),l}function C2(r){for(var t="",e=15,n=["0","1","2","3","4","5","6","7","8","9",".","E","E-",null,"-"];;){var o=r.parseByte(),i=o>>4,a=o&15;if(i===e||(t+=n[i],a===e))break;t+=n[a]}return parseFloat(t)}function A2(r,t){var e,n,o,i;if(t===28)return e=r.parseByte(),n=r.parseByte(),e<<8|n;if(t===29)return e=r.parseByte(),n=r.parseByte(),o=r.parseByte(),i=r.parseByte(),e<<24|n<<16|o<<8|i;if(t===30)return C2(r);if(t>=32&&t<=246)return t-139;if(t>=247&&t<=250)return e=r.parseByte(),(t-247)*256+e+108;if(t>=251&&t<=254)return e=r.parseByte(),-(t-251)*256-e-108;throw new Error("Invalid b0 "+t)}function _2(r){for(var t={},e=0;e<r.length;e+=1){var n=r[e][0],o=r[e][1],i=void 0;if(o.length===1?i=o[0]:i=o,t.hasOwnProperty(n)&&!isNaN(t[n]))throw new Error("Object "+t+" already has key "+n);t[n]=i}return t}function Dy(r,t,e){t=t!==void 0?t:0;var n=new ue.Parser(r,t),o=[],i=[];for(e=e!==void 0?e:r.length;n.relativeOffset<e;){var a=n.parseByte();a<=21?(a===12&&(a=1200+n.parseByte()),o.push([a,i]),i=[]):i.push(A2(n,a))}return _2(o)}function Na(r,t){return t<=390?t=Rl[t]:t=r[t-391],t}function By(r,t,e){for(var n={},o,i=0;i<t.length;i+=1){var a=t[i];if(Array.isArray(a.type)){var s=[];s.length=a.type.length;for(var l=0;l<a.type.length;l++)o=r[a.op]!==void 0?r[a.op][l]:void 0,o===void 0&&(o=a.value!==void 0&&a.value[l]!==void 0?a.value[l]:null),a.type[l]==="SID"&&(o=Na(e,o)),s[l]=o;n[a.name]=s}else o=r[a.op],o===void 0&&(o=a.value!==void 0?a.value:null),a.type==="SID"&&(o=Na(e,o)),n[a.name]=o}return n}function I2(r,t){var e={};return e.formatMajor=ue.getCard8(r,t),e.formatMinor=ue.getCard8(r,t+1),e.size=ue.getCard8(r,t+2),e.offsetSize=ue.getCard8(r,t+3),e.startOffset=t,e.endOffset=t+4,e}var Fy=[{name:"version",op:0,type:"SID"},{name:"notice",op:1,type:"SID"},{name:"copyright",op:1200,type:"SID"},{name:"fullName",op:2,type:"SID"},{name:"familyName",op:3,type:"SID"},{name:"weight",op:4,type:"SID"},{name:"isFixedPitch",op:1201,type:"number",value:0},{name:"italicAngle",op:1202,type:"number",value:0},{name:"underlinePosition",op:1203,type:"number",value:-100},{name:"underlineThickness",op:1204,type:"number",value:50},{name:"paintType",op:1205,type:"number",value:0},{name:"charstringType",op:1206,type:"number",value:2},{name:"fontMatrix",op:1207,type:["real","real","real","real","real","real"],value:[.001,0,0,.001,0,0]},{name:"uniqueId",op:13,type:"number"},{name:"fontBBox",op:5,type:["number","number","number","number"],value:[0,0,0,0]},{name:"strokeWidth",op:1208,type:"number",value:0},{name:"xuid",op:14,type:[],value:null},{name:"charset",op:15,type:"offset",value:0},{name:"encoding",op:16,type:"offset",value:0},{name:"charStrings",op:17,type:"offset",value:0},{name:"private",op:18,type:["number","offset"],value:[0,0]},{name:"ros",op:1230,type:["SID","SID","number"]},{name:"cidFontVersion",op:1231,type:"number",value:0},{name:"cidFontRevision",op:1232,type:"number",value:0},{name:"cidFontType",op:1233,type:"number",value:0},{name:"cidCount",op:1234,type:"number",value:8720},{name:"uidBase",op:1235,type:"number"},{name:"fdArray",op:1236,type:"offset"},{name:"fdSelect",op:1237,type:"offset"},{name:"fontName",op:1238,type:"SID"}],Ry=[{name:"subrs",op:19,type:"offset",value:0},{name:"defaultWidthX",op:20,type:"number",value:0},{name:"nominalWidthX",op:21,type:"number",value:0}];function O2(r,t){var e=Dy(r,0,r.byteLength);return By(e,Fy,t)}function ky(r,t,e,n){var o=Dy(r,t,e);return By(o,Ry,n)}function Wg(r,t,e,n){for(var o=[],i=0;i<e.length;i+=1){var a=new DataView(new Uint8Array(e[i]).buffer),s=O2(a,n);s._subrs=[],s._subrsBias=0,s._defaultWidthX=0,s._nominalWidthX=0;var l=s.private[0],u=s.private[1];if(l!==0&&u!==0){var c=ky(r,u+t,l,n);if(s._defaultWidthX=c.defaultWidthX,s._nominalWidthX=c.nominalWidthX,c.subrs!==0){var p=u+c.subrs,f=En(r,p+t);s._subrs=f.objects,s._subrsBias=ip(s._subrs)}s._privateDict=c}o.push(s)}return o}function L2(r,t,e,n){var o,i,a=new ue.Parser(r,t);e-=1;var s=[".notdef"],l=a.parseCard8();if(l===0)for(var u=0;u<e;u+=1)o=a.parseSID(),s.push(Na(n,o));else if(l===1)for(;s.length<=e;){o=a.parseSID(),i=a.parseCard8();for(var c=0;c<=i;c+=1)s.push(Na(n,o)),o+=1}else if(l===2)for(;s.length<=e;){o=a.parseSID(),i=a.parseCard16();for(var p=0;p<=i;p+=1)s.push(Na(n,o)),o+=1}else throw new Error("Unknown charset format "+l);return s}function N2(r,t,e){var n,o={},i=new ue.Parser(r,t),a=i.parseCard8();if(a===0)for(var s=i.parseCard8(),l=0;l<s;l+=1)n=i.parseCard8(),o[n]=l;else if(a===1){var u=i.parseCard8();n=1;for(var c=0;c<u;c+=1)for(var p=i.parseCard8(),f=i.parseCard8(),d=p;d<=p+f;d+=1)o[d]=n,n+=1}else throw new Error("Unknown encoding format "+a);return new Hl(o,e)}function qg(r,t,e){var n,o,i,a,s=new tt,l=[],u=0,c=!1,p=!1,f=0,d=0,h,m,g,v;if(r.isCIDFont){var x=r.tables.cff.topDict._fdSelect[t.index],S=r.tables.cff.topDict._fdArray[x];h=S._subrs,m=S._subrsBias,g=S._defaultWidthX,v=S._nominalWidthX}else h=r.tables.cff.topDict._subrs,m=r.tables.cff.topDict._subrsBias,g=r.tables.cff.topDict._defaultWidthX,v=r.tables.cff.topDict._nominalWidthX;var w=g;function b(y,I){p&&s.closePath(),s.moveTo(y,I),p=!0}function _(){var y;y=l.length%2!==0,y&&!c&&(w=l.shift()+v),u+=l.length>>1,l.length=0,c=!0}function T(y){for(var I,A,O,C,N,P,G,$,Y,ie,j,H,V=0;V<y.length;){var R=y[V];switch(V+=1,R){case 1:_();break;case 3:_();break;case 4:l.length>1&&!c&&(w=l.shift()+v,c=!0),d+=l.pop(),b(f,d);break;case 5:for(;l.length>0;)f+=l.shift(),d+=l.shift(),s.lineTo(f,d);break;case 6:for(;l.length>0&&(f+=l.shift(),s.lineTo(f,d),l.length!==0);)d+=l.shift(),s.lineTo(f,d);break;case 7:for(;l.length>0&&(d+=l.shift(),s.lineTo(f,d),l.length!==0);)f+=l.shift(),s.lineTo(f,d);break;case 8:for(;l.length>0;)n=f+l.shift(),o=d+l.shift(),i=n+l.shift(),a=o+l.shift(),f=i+l.shift(),d=a+l.shift(),s.curveTo(n,o,i,a,f,d);break;case 10:N=l.pop()+m,P=h[N],P&&T(P);break;case 11:return;case 12:switch(R=y[V],V+=1,R){case 35:n=f+l.shift(),o=d+l.shift(),i=n+l.shift(),a=o+l.shift(),G=i+l.shift(),$=a+l.shift(),Y=G+l.shift(),ie=$+l.shift(),j=Y+l.shift(),H=ie+l.shift(),f=j+l.shift(),d=H+l.shift(),l.shift(),s.curveTo(n,o,i,a,G,$),s.curveTo(Y,ie,j,H,f,d);break;case 34:n=f+l.shift(),o=d,i=n+l.shift(),a=o+l.shift(),G=i+l.shift(),$=a,Y=G+l.shift(),ie=a,j=Y+l.shift(),H=d,f=j+l.shift(),s.curveTo(n,o,i,a,G,$),s.curveTo(Y,ie,j,H,f,d);break;case 36:n=f+l.shift(),o=d+l.shift(),i=n+l.shift(),a=o+l.shift(),G=i+l.shift(),$=a,Y=G+l.shift(),ie=a,j=Y+l.shift(),H=ie+l.shift(),f=j+l.shift(),s.curveTo(n,o,i,a,G,$),s.curveTo(Y,ie,j,H,f,d);break;case 37:n=f+l.shift(),o=d+l.shift(),i=n+l.shift(),a=o+l.shift(),G=i+l.shift(),$=a+l.shift(),Y=G+l.shift(),ie=$+l.shift(),j=Y+l.shift(),H=ie+l.shift(),Math.abs(j-f)>Math.abs(H-d)?f=j+l.shift():d=H+l.shift(),s.curveTo(n,o,i,a,G,$),s.curveTo(Y,ie,j,H,f,d);break;default:console.log("Glyph "+t.index+": unknown operator "+1200+R),l.length=0}break;case 14:l.length>0&&!c&&(w=l.shift()+v,c=!0),p&&(s.closePath(),p=!1);break;case 18:_();break;case 19:case 20:_(),V+=u+7>>3;break;case 21:l.length>2&&!c&&(w=l.shift()+v,c=!0),d+=l.pop(),f+=l.pop(),b(f,d);break;case 22:l.length>1&&!c&&(w=l.shift()+v,c=!0),f+=l.pop(),b(f,d);break;case 23:_();break;case 24:for(;l.length>2;)n=f+l.shift(),o=d+l.shift(),i=n+l.shift(),a=o+l.shift(),f=i+l.shift(),d=a+l.shift(),s.curveTo(n,o,i,a,f,d);f+=l.shift(),d+=l.shift(),s.lineTo(f,d);break;case 25:for(;l.length>6;)f+=l.shift(),d+=l.shift(),s.lineTo(f,d);n=f+l.shift(),o=d+l.shift(),i=n+l.shift(),a=o+l.shift(),f=i+l.shift(),d=a+l.shift(),s.curveTo(n,o,i,a,f,d);break;case 26:for(l.length%2&&(f+=l.shift());l.length>0;)n=f,o=d+l.shift(),i=n+l.shift(),a=o+l.shift(),f=i,d=a+l.shift(),s.curveTo(n,o,i,a,f,d);break;case 27:for(l.length%2&&(d+=l.shift());l.length>0;)n=f+l.shift(),o=d,i=n+l.shift(),a=o+l.shift(),f=i+l.shift(),d=a,s.curveTo(n,o,i,a,f,d);break;case 28:I=y[V],A=y[V+1],l.push((I<<24|A<<16)>>16),V+=2;break;case 29:N=l.pop()+r.gsubrsBias,P=r.gsubrs[N],P&&T(P);break;case 30:for(;l.length>0&&(n=f,o=d+l.shift(),i=n+l.shift(),a=o+l.shift(),f=i+l.shift(),d=a+(l.length===1?l.shift():0),s.curveTo(n,o,i,a,f,d),l.length!==0);)n=f+l.shift(),o=d,i=n+l.shift(),a=o+l.shift(),d=a+l.shift(),f=i+(l.length===1?l.shift():0),s.curveTo(n,o,i,a,f,d);break;case 31:for(;l.length>0&&(n=f+l.shift(),o=d,i=n+l.shift(),a=o+l.shift(),d=a+l.shift(),f=i+(l.length===1?l.shift():0),s.curveTo(n,o,i,a,f,d),l.length!==0);)n=f,o=d+l.shift(),i=n+l.shift(),a=o+l.shift(),f=i+l.shift(),d=a+(l.length===1?l.shift():0),s.curveTo(n,o,i,a,f,d);break;default:R<32?console.log("Glyph "+t.index+": unknown operator "+R):R<247?l.push(R-139):R<251?(I=y[V],V+=1,l.push((R-247)*256+I+108)):R<255?(I=y[V],V+=1,l.push(-(R-251)*256-I-108)):(I=y[V],A=y[V+1],O=y[V+2],C=y[V+3],V+=4,l.push((I<<24|A<<16|O<<8|C)/65536))}}}return T(e),t.advanceWidth=w,s}function P2(r,t,e,n){var o=[],i,a=new ue.Parser(r,t),s=a.parseCard8();if(s===0)for(var l=0;l<e;l++){if(i=a.parseCard8(),i>=n)throw new Error("CFF table CID Font FDSelect has bad FD index value "+i+" (FD count "+n+")");o.push(i)}else if(s===3){var u=a.parseCard16(),c=a.parseCard16();if(c!==0)throw new Error("CFF Table CID Font FDSelect format 3 range has bad initial GID "+c);for(var p,f=0;f<u;f++){if(i=a.parseCard8(),p=a.parseCard16(),i>=n)throw new Error("CFF table CID Font FDSelect has bad FD index value "+i+" (FD count "+n+")");if(p>e)throw new Error("CFF Table CID Font FDSelect format 3 range has bad GID "+p);for(;c<p;c++)o.push(i);c=p}if(p!==e)throw new Error("CFF Table CID Font FDSelect format 3 range has bad final GID "+p)}else throw new Error("CFF Table CID Font FDSelect table has unsupported format "+s);return o}function M2(r,t,e,n){e.tables.cff={};var o=I2(r,t),i=En(r,o.endOffset,ue.bytesToString),a=En(r,i.endOffset),s=En(r,a.endOffset,ue.bytesToString),l=En(r,s.endOffset);e.gsubrs=l.objects,e.gsubrsBias=ip(e.gsubrs);var u=Wg(r,t,a.objects,s.objects);if(u.length!==1)throw new Error("CFF table has too many fonts in 'FontSet' - count of fonts NameIndex.length = "+u.length);var c=u[0];if(e.tables.cff.topDict=c,c._privateDict&&(e.defaultWidthX=c._privateDict.defaultWidthX,e.nominalWidthX=c._privateDict.nominalWidthX),c.ros[0]!==void 0&&c.ros[1]!==void 0&&(e.isCIDFont=!0),e.isCIDFont){var p=c.fdArray,f=c.fdSelect;if(p===0||f===0)throw new Error("Font is marked as a CID font, but FDArray and/or FDSelect information is missing");p+=t;var d=En(r,p),h=Wg(r,t,d.objects,s.objects);c._fdArray=h,f+=t,c._fdSelect=P2(r,f,e.numGlyphs,h.length)}var m=t+c.private[1],g=ky(r,m,c.private[0],s.objects);if(e.defaultWidthX=g.defaultWidthX,e.nominalWidthX=g.nominalWidthX,g.subrs!==0){var v=m+g.subrs,x=En(r,v);e.subrs=x.objects,e.subrsBias=ip(e.subrs)}else e.subrs=[],e.subrsBias=0;var S;n.lowMemory?(S=w2(r,t+c.charStrings),e.nGlyphs=S.offsets.length):(S=En(r,t+c.charStrings),e.nGlyphs=S.objects.length);var w=L2(r,t+c.charset,e.nGlyphs,s.objects);if(c.encoding===0?e.cffEncoding=new Hl(f2,w):c.encoding===1?e.cffEncoding=new Hl(d2,w):e.cffEncoding=N2(r,t+c.encoding,w),e.encoding=e.encoding||e.cffEncoding,e.glyphs=new Hr.GlyphSet(e),n.lowMemory)e._push=function(T){var y=T2(T,S.offsets,r,t+c.charStrings);e.glyphs.push(T,Hr.cffGlyphLoader(e,T,qg,y))};else for(var b=0;b<e.nGlyphs;b+=1){var _=S.objects[b];e.glyphs.push(b,Hr.cffGlyphLoader(e,b,qg,_))}}function Gy(r,t){var e,n=Rl.indexOf(r);return n>=0&&(e=n),n=t.indexOf(r),n>=0?e=n+Rl.length:(e=Rl.length+t.length,t.push(r)),e}function E2(){return new le.Record("Header",[{name:"major",type:"Card8",value:1},{name:"minor",type:"Card8",value:0},{name:"hdrSize",type:"Card8",value:4},{name:"major",type:"Card8",value:1}])}function D2(r){var t=new le.Record("Name INDEX",[{name:"names",type:"INDEX",value:[]}]);t.names=[];for(var e=0;e<r.length;e+=1)t.names.push({name:"name_"+e,type:"NAME",value:r[e]});return t}function Uy(r,t,e){for(var n={},o=0;o<r.length;o+=1){var i=r[o],a=t[i.name];a!==void 0&&!Ey(a,i.value)&&(i.type==="SID"&&(a=Gy(a,e)),n[i.op]={name:i.name,type:i.type,value:a})}return n}function Xg(r,t){var e=new le.Record("Top DICT",[{name:"dict",type:"DICT",value:{}}]);return e.dict=Uy(Fy,r,t),e}function Yg(r){var t=new le.Record("Top DICT INDEX",[{name:"topDicts",type:"INDEX",value:[]}]);return t.topDicts=[{name:"topDict_0",type:"TABLE",value:r}],t}function B2(r){var t=new le.Record("String INDEX",[{name:"strings",type:"INDEX",value:[]}]);t.strings=[];for(var e=0;e<r.length;e+=1)t.strings.push({name:"string_"+e,type:"STRING",value:r[e]});return t}function F2(){return new le.Record("Global Subr INDEX",[{name:"subrs",type:"INDEX",value:[]}])}function R2(r,t){for(var e=new le.Record("Charsets",[{name:"format",type:"Card8",value:0}]),n=0;n<r.length;n+=1){var o=r[n],i=Gy(o,t);e.fields.push({name:"glyph_"+n,type:"SID",value:i})}return e}function k2(r){var t=[],e=r.path;t.push({name:"width",type:"NUMBER",value:r.advanceWidth});for(var n=0,o=0,i=0;i<e.commands.length;i+=1){var a=void 0,s=void 0,l=e.commands[i];if(l.type==="Q"){var u=.3333333333333333,c=2/3;l={type:"C",x:l.x,y:l.y,x1:Math.round(u*n+c*l.x1),y1:Math.round(u*o+c*l.y1),x2:Math.round(u*l.x+c*l.x1),y2:Math.round(u*l.y+c*l.y1)}}if(l.type==="M")a=Math.round(l.x-n),s=Math.round(l.y-o),t.push({name:"dx",type:"NUMBER",value:a}),t.push({name:"dy",type:"NUMBER",value:s}),t.push({name:"rmoveto",type:"OP",value:21}),n=Math.round(l.x),o=Math.round(l.y);else if(l.type==="L")a=Math.round(l.x-n),s=Math.round(l.y-o),t.push({name:"dx",type:"NUMBER",value:a}),t.push({name:"dy",type:"NUMBER",value:s}),t.push({name:"rlineto",type:"OP",value:5}),n=Math.round(l.x),o=Math.round(l.y);else if(l.type==="C"){var p=Math.round(l.x1-n),f=Math.round(l.y1-o),d=Math.round(l.x2-l.x1),h=Math.round(l.y2-l.y1);a=Math.round(l.x-l.x2),s=Math.round(l.y-l.y2),t.push({name:"dx1",type:"NUMBER",value:p}),t.push({name:"dy1",type:"NUMBER",value:f}),t.push({name:"dx2",type:"NUMBER",value:d}),t.push({name:"dy2",type:"NUMBER",value:h}),t.push({name:"dx",type:"NUMBER",value:a}),t.push({name:"dy",type:"NUMBER",value:s}),t.push({name:"rrcurveto",type:"OP",value:8}),n=Math.round(l.x),o=Math.round(l.y)}}return t.push({name:"endchar",type:"OP",value:14}),t}function G2(r){for(var t=new le.Record("CharStrings INDEX",[{name:"charStrings",type:"INDEX",value:[]}]),e=0;e<r.length;e+=1){var n=r.get(e),o=k2(n);t.charStrings.push({name:n.name,type:"CHARSTRING",value:o})}return t}function U2(r,t){var e=new le.Record("Private DICT",[{name:"dict",type:"DICT",value:{}}]);return e.dict=Uy(Ry,r,t),e}function V2(r,t){for(var e=new le.Table("CFF ",[{name:"header",type:"RECORD"},{name:"nameIndex",type:"RECORD"},{name:"topDictIndex",type:"RECORD"},{name:"stringIndex",type:"RECORD"},{name:"globalSubrIndex",type:"RECORD"},{name:"charsets",type:"RECORD"},{name:"charStringsIndex",type:"RECORD"},{name:"privateDict",type:"RECORD"}]),n=1/t.unitsPerEm,o={version:t.version,fullName:t.fullName,familyName:t.familyName,weight:t.weightName,fontBBox:t.fontBBox||[0,0,0,0],fontMatrix:[n,0,0,n,0,0],charset:999,encoding:0,charStrings:999,private:[0,999]},i={},a=[],s,l=1;l<r.length;l+=1)s=r.get(l),a.push(s.name);var u=[];e.header=E2(),e.nameIndex=D2([t.postScriptName]);var c=Xg(o,u);e.topDictIndex=Yg(c),e.globalSubrIndex=F2(),e.charsets=R2(a,u),e.charStringsIndex=G2(r),e.privateDict=U2(i,u),e.stringIndex=B2(u);var p=e.header.sizeOf()+e.nameIndex.sizeOf()+e.topDictIndex.sizeOf()+e.stringIndex.sizeOf()+e.globalSubrIndex.sizeOf();return o.charset=p,o.encoding=0,o.charStrings=o.charset+e.charsets.sizeOf(),o.private[1]=o.charStrings+e.charStringsIndex.sizeOf(),c=Xg(o,u),e.topDictIndex=Yg(c),e}var Vy={parse:M2,make:V2};function z2(r,t){var e={},n=new ue.Parser(r,t);return e.version=n.parseVersion(),e.fontRevision=Math.round(n.parseFixed()*1e3)/1e3,e.checkSumAdjustment=n.parseULong(),e.magicNumber=n.parseULong(),ve.argument(e.magicNumber===1594834165,"Font header has wrong magic number."),e.flags=n.parseUShort(),e.unitsPerEm=n.parseUShort(),e.created=n.parseLongDateTime(),e.modified=n.parseLongDateTime(),e.xMin=n.parseShort(),e.yMin=n.parseShort(),e.xMax=n.parseShort(),e.yMax=n.parseShort(),e.macStyle=n.parseUShort(),e.lowestRecPPEM=n.parseUShort(),e.fontDirectionHint=n.parseShort(),e.indexToLocFormat=n.parseShort(),e.glyphDataFormat=n.parseShort(),e}function j2(r){var t=Math.round(new Date().getTime()/1e3)+2082844800,e=t;return r.createdTimestamp&&(e=r.createdTimestamp+2082844800),new le.Table("head",[{name:"version",type:"FIXED",value:65536},{name:"fontRevision",type:"FIXED",value:65536},{name:"checkSumAdjustment",type:"ULONG",value:0},{name:"magicNumber",type:"ULONG",value:1594834165},{name:"flags",type:"USHORT",value:0},{name:"unitsPerEm",type:"USHORT",value:1e3},{name:"created",type:"LONGDATETIME",value:e},{name:"modified",type:"LONGDATETIME",value:t},{name:"xMin",type:"SHORT",value:0},{name:"yMin",type:"SHORT",value:0},{name:"xMax",type:"SHORT",value:0},{name:"yMax",type:"SHORT",value:0},{name:"macStyle",type:"USHORT",value:0},{name:"lowestRecPPEM",type:"USHORT",value:0},{name:"fontDirectionHint",type:"SHORT",value:2},{name:"indexToLocFormat",type:"SHORT",value:0},{name:"glyphDataFormat",type:"SHORT",value:0}],r)}var zy={parse:z2,make:j2};function H2(r,t){var e={},n=new ue.Parser(r,t);return e.version=n.parseVersion(),e.ascender=n.parseShort(),e.descender=n.parseShort(),e.lineGap=n.parseShort(),e.advanceWidthMax=n.parseUShort(),e.minLeftSideBearing=n.parseShort(),e.minRightSideBearing=n.parseShort(),e.xMaxExtent=n.parseShort(),e.caretSlopeRise=n.parseShort(),e.caretSlopeRun=n.parseShort(),e.caretOffset=n.parseShort(),n.relativeOffset+=8,e.metricDataFormat=n.parseShort(),e.numberOfHMetrics=n.parseUShort(),e}function W2(r){return new le.Table("hhea",[{name:"version",type:"FIXED",value:65536},{name:"ascender",type:"FWORD",value:0},{name:"descender",type:"FWORD",value:0},{name:"lineGap",type:"FWORD",value:0},{name:"advanceWidthMax",type:"UFWORD",value:0},{name:"minLeftSideBearing",type:"FWORD",value:0},{name:"minRightSideBearing",type:"FWORD",value:0},{name:"xMaxExtent",type:"FWORD",value:0},{name:"caretSlopeRise",type:"SHORT",value:1},{name:"caretSlopeRun",type:"SHORT",value:0},{name:"caretOffset",type:"SHORT",value:0},{name:"reserved1",type:"SHORT",value:0},{name:"reserved2",type:"SHORT",value:0},{name:"reserved3",type:"SHORT",value:0},{name:"reserved4",type:"SHORT",value:0},{name:"metricDataFormat",type:"SHORT",value:0},{name:"numberOfHMetrics",type:"USHORT",value:0}],r)}var jy={parse:H2,make:W2};function q2(r,t,e,n,o){for(var i,a,s=new ue.Parser(r,t),l=0;l<n;l+=1){l<e&&(i=s.parseUShort(),a=s.parseShort());var u=o.get(l);u.advanceWidth=i,u.leftSideBearing=a}}function X2(r,t,e,n,o){r._hmtxTableData={};for(var i,a,s=new ue.Parser(t,e),l=0;l<o;l+=1)l<n&&(i=s.parseUShort(),a=s.parseShort()),r._hmtxTableData[l]={advanceWidth:i,leftSideBearing:a}}function Y2(r,t,e,n,o,i,a){a.lowMemory?X2(r,t,e,n,o):q2(t,e,n,o,i)}function $2(r){for(var t=new le.Table("hmtx",[]),e=0;e<r.length;e+=1){var n=r.get(e),o=n.advanceWidth||0,i=n.leftSideBearing||0;t.fields.push({name:"advanceWidth_"+e,type:"USHORT",value:o}),t.fields.push({name:"leftSideBearing_"+e,type:"SHORT",value:i})}return t}var Hy={parse:Y2,make:$2};function K2(r){for(var t=new le.Table("ltag",[{name:"version",type:"ULONG",value:1},{name:"flags",type:"ULONG",value:0},{name:"numTags",type:"ULONG",value:r.length}]),e="",n=12+r.length*4,o=0;o<r.length;++o){var i=e.indexOf(r[o]);i<0&&(i=e.length,e+=r[o]),t.fields.push({name:"offset "+o,type:"USHORT",value:n+i}),t.fields.push({name:"length "+o,type:"USHORT",value:r[o].length})}return t.fields.push({name:"stringPool",type:"CHARARRAY",value:e}),t}function Z2(r,t){var e=new ue.Parser(r,t),n=e.parseULong();ve.argument(n===1,"Unsupported ltag table version."),e.skip("uLong",1);for(var o=e.parseULong(),i=[],a=0;a<o;a++){for(var s="",l=t+e.parseUShort(),u=e.parseUShort(),c=l;c<l+u;++c)s+=String.fromCharCode(r.getInt8(c));i.push(s)}return i}var Wy={make:K2,parse:Z2};function Q2(r,t){var e={},n=new ue.Parser(r,t);return e.version=n.parseVersion(),e.numGlyphs=n.parseUShort(),e.version===1&&(e.maxPoints=n.parseUShort(),e.maxContours=n.parseUShort(),e.maxCompositePoints=n.parseUShort(),e.maxCompositeContours=n.parseUShort(),e.maxZones=n.parseUShort(),e.maxTwilightPoints=n.parseUShort(),e.maxStorage=n.parseUShort(),e.maxFunctionDefs=n.parseUShort(),e.maxInstructionDefs=n.parseUShort(),e.maxStackElements=n.parseUShort(),e.maxSizeOfInstructions=n.parseUShort(),e.maxComponentElements=n.parseUShort(),e.maxComponentDepth=n.parseUShort()),e}function J2(r){return new le.Table("maxp",[{name:"version",type:"FIXED",value:20480},{name:"numGlyphs",type:"USHORT",value:r}])}var qy={parse:Q2,make:J2},Xy=["copyright","fontFamily","fontSubfamily","uniqueID","fullName","version","postScriptName","trademark","manufacturer","designer","description","manufacturerURL","designerURL","license","licenseURL","reserved","preferredFamily","preferredSubfamily","compatibleFullName","sampleText","postScriptFindFontName","wwsFamily","wwsSubfamily"],Yy={0:"en",1:"fr",2:"de",3:"it",4:"nl",5:"sv",6:"es",7:"da",8:"pt",9:"no",10:"he",11:"ja",12:"ar",13:"fi",14:"el",15:"is",16:"mt",17:"tr",18:"hr",19:"zh-Hant",20:"ur",21:"hi",22:"th",23:"ko",24:"lt",25:"pl",26:"hu",27:"es",28:"lv",29:"se",30:"fo",31:"fa",32:"ru",33:"zh",34:"nl-BE",35:"ga",36:"sq",37:"ro",38:"cz",39:"sk",40:"si",41:"yi",42:"sr",43:"mk",44:"bg",45:"uk",46:"be",47:"uz",48:"kk",49:"az-Cyrl",50:"az-Arab",51:"hy",52:"ka",53:"mo",54:"ky",55:"tg",56:"tk",57:"mn-CN",58:"mn",59:"ps",60:"ks",61:"ku",62:"sd",63:"bo",64:"ne",65:"sa",66:"mr",67:"bn",68:"as",69:"gu",70:"pa",71:"or",72:"ml",73:"kn",74:"ta",75:"te",76:"si",77:"my",78:"km",79:"lo",80:"vi",81:"id",82:"tl",83:"ms",84:"ms-Arab",85:"am",86:"ti",87:"om",88:"so",89:"sw",90:"rw",91:"rn",92:"ny",93:"mg",94:"eo",128:"cy",129:"eu",130:"ca",131:"la",132:"qu",133:"gn",134:"ay",135:"tt",136:"ug",137:"dz",138:"jv",139:"su",140:"gl",141:"af",142:"br",143:"iu",144:"gd",145:"gv",146:"ga",147:"to",148:"el-polyton",149:"kl",150:"az",151:"nn"},eI={0:0,1:0,2:0,3:0,4:0,5:0,6:0,7:0,8:0,9:0,10:5,11:1,12:4,13:0,14:6,15:0,16:0,17:0,18:0,19:2,20:4,21:9,22:21,23:3,24:29,25:29,26:29,27:29,28:29,29:0,30:0,31:4,32:7,33:25,34:0,35:0,36:0,37:0,38:29,39:29,40:0,41:5,42:7,43:7,44:7,45:7,46:7,47:7,48:7,49:7,50:4,51:24,52:23,53:7,54:7,55:7,56:7,57:27,58:7,59:4,60:4,61:4,62:4,63:26,64:9,65:9,66:9,67:13,68:13,69:11,70:10,71:12,72:17,73:16,74:14,75:15,76:18,77:19,78:20,79:22,80:30,81:0,82:0,83:0,84:4,85:28,86:28,87:28,88:0,89:0,90:0,91:0,92:0,93:0,94:0,128:0,129:0,130:0,131:0,132:0,133:0,134:0,135:7,136:4,137:26,138:0,139:0,140:0,141:0,142:0,143:28,144:0,145:0,146:0,147:0,148:6,149:0,150:0,151:0},$y={1078:"af",1052:"sq",1156:"gsw",1118:"am",5121:"ar-DZ",15361:"ar-BH",3073:"ar",2049:"ar-IQ",11265:"ar-JO",13313:"ar-KW",12289:"ar-LB",4097:"ar-LY",6145:"ary",8193:"ar-OM",16385:"ar-QA",1025:"ar-SA",10241:"ar-SY",7169:"aeb",14337:"ar-AE",9217:"ar-YE",1067:"hy",1101:"as",2092:"az-Cyrl",1068:"az",1133:"ba",1069:"eu",1059:"be",2117:"bn",1093:"bn-IN",8218:"bs-Cyrl",5146:"bs",1150:"br",1026:"bg",1027:"ca",3076:"zh-HK",5124:"zh-MO",2052:"zh",4100:"zh-SG",1028:"zh-TW",1155:"co",1050:"hr",4122:"hr-BA",1029:"cs",1030:"da",1164:"prs",1125:"dv",2067:"nl-BE",1043:"nl",3081:"en-AU",10249:"en-BZ",4105:"en-CA",9225:"en-029",16393:"en-IN",6153:"en-IE",8201:"en-JM",17417:"en-MY",5129:"en-NZ",13321:"en-PH",18441:"en-SG",7177:"en-ZA",11273:"en-TT",2057:"en-GB",1033:"en",12297:"en-ZW",1061:"et",1080:"fo",1124:"fil",1035:"fi",2060:"fr-BE",3084:"fr-CA",1036:"fr",5132:"fr-LU",6156:"fr-MC",4108:"fr-CH",1122:"fy",1110:"gl",1079:"ka",3079:"de-AT",1031:"de",5127:"de-LI",4103:"de-LU",2055:"de-CH",1032:"el",1135:"kl",1095:"gu",1128:"ha",1037:"he",1081:"hi",1038:"hu",1039:"is",1136:"ig",1057:"id",1117:"iu",2141:"iu-Latn",2108:"ga",1076:"xh",1077:"zu",1040:"it",2064:"it-CH",1041:"ja",1099:"kn",1087:"kk",1107:"km",1158:"quc",1159:"rw",1089:"sw",1111:"kok",1042:"ko",1088:"ky",1108:"lo",1062:"lv",1063:"lt",2094:"dsb",1134:"lb",1071:"mk",2110:"ms-BN",1086:"ms",1100:"ml",1082:"mt",1153:"mi",1146:"arn",1102:"mr",1148:"moh",1104:"mn",2128:"mn-CN",1121:"ne",1044:"nb",2068:"nn",1154:"oc",1096:"or",1123:"ps",1045:"pl",1046:"pt",2070:"pt-PT",1094:"pa",1131:"qu-BO",2155:"qu-EC",3179:"qu",1048:"ro",1047:"rm",1049:"ru",9275:"smn",4155:"smj-NO",5179:"smj",3131:"se-FI",1083:"se",2107:"se-SE",8251:"sms",6203:"sma-NO",7227:"sms",1103:"sa",7194:"sr-Cyrl-BA",3098:"sr",6170:"sr-Latn-BA",2074:"sr-Latn",1132:"nso",1074:"tn",1115:"si",1051:"sk",1060:"sl",11274:"es-AR",16394:"es-BO",13322:"es-CL",9226:"es-CO",5130:"es-CR",7178:"es-DO",12298:"es-EC",17418:"es-SV",4106:"es-GT",18442:"es-HN",2058:"es-MX",19466:"es-NI",6154:"es-PA",15370:"es-PY",10250:"es-PE",20490:"es-PR",3082:"es",1034:"es",21514:"es-US",14346:"es-UY",8202:"es-VE",2077:"sv-FI",1053:"sv",1114:"syr",1064:"tg",2143:"tzm",1097:"ta",1092:"tt",1098:"te",1054:"th",1105:"bo",1055:"tr",1090:"tk",1152:"ug",1058:"uk",1070:"hsb",1056:"ur",2115:"uz-Cyrl",1091:"uz",1066:"vi",1106:"cy",1160:"wo",1157:"sah",1144:"ii",1130:"yo"};function tI(r,t,e){switch(r){case 0:if(t===65535)return"und";if(e)return e[t];break;case 1:return Yy[t];case 3:return $y[t]}}var ap="utf-16",rI={0:"macintosh",1:"x-mac-japanese",2:"x-mac-chinesetrad",3:"x-mac-korean",6:"x-mac-greek",7:"x-mac-cyrillic",9:"x-mac-devanagai",10:"x-mac-gurmukhi",11:"x-mac-gujarati",12:"x-mac-oriya",13:"x-mac-bengali",14:"x-mac-tamil",15:"x-mac-telugu",16:"x-mac-kannada",17:"x-mac-malayalam",18:"x-mac-sinhalese",19:"x-mac-burmese",20:"x-mac-khmer",21:"x-mac-thai",22:"x-mac-lao",23:"x-mac-georgian",24:"x-mac-armenian",25:"x-mac-chinesesimp",26:"x-mac-tibetan",27:"x-mac-mongolian",28:"x-mac-ethiopic",29:"x-mac-ce",30:"x-mac-vietnamese",31:"x-mac-extarabic"},nI={15:"x-mac-icelandic",17:"x-mac-turkish",18:"x-mac-croatian",24:"x-mac-ce",25:"x-mac-ce",26:"x-mac-ce",27:"x-mac-ce",28:"x-mac-ce",30:"x-mac-icelandic",37:"x-mac-romanian",38:"x-mac-ce",39:"x-mac-ce",40:"x-mac-ce",143:"x-mac-inuit",146:"x-mac-gaelic"};function Ky(r,t,e){switch(r){case 0:return ap;case 1:return nI[e]||rI[t];case 3:if(t===1||t===10)return ap;break}}function oI(r,t,e){for(var n={},o=new ue.Parser(r,t),i=o.parseUShort(),a=o.parseUShort(),s=o.offset+o.parseUShort(),l=0;l<a;l++){var u=o.parseUShort(),c=o.parseUShort(),p=o.parseUShort(),f=o.parseUShort(),d=Xy[f]||f,h=o.parseUShort(),m=o.parseUShort(),g=tI(u,p,e),v=Ky(u,c,p);if(v!==void 0&&g!==void 0){var x=void 0;if(v===ap?x=bi.UTF16(r,s+m,h):x=bi.MACSTRING(r,s+m,h,v),x){var S=n[d];S===void 0&&(S=n[d]={}),S[g]=x}}}var w=0;return i===1&&(w=o.parseUShort()),n}function Xu(r){var t={};for(var e in r)t[r[e]]=parseInt(e);return t}function $g(r,t,e,n,o,i){return new le.Record("NameRecord",[{name:"platformID",type:"USHORT",value:r},{name:"encodingID",type:"USHORT",value:t},{name:"languageID",type:"USHORT",value:e},{name:"nameID",type:"USHORT",value:n},{name:"length",type:"USHORT",value:o},{name:"offset",type:"USHORT",value:i}])}function iI(r,t){var e=r.length,n=t.length-e+1;e:for(var o=0;o<n;o++)for(;o<n;o++){for(var i=0;i<e;i++)if(t[o+i]!==r[i])continue e;return o}return-1}function Kg(r,t){var e=iI(r,t);if(e<0){e=t.length;for(var n=0,o=r.length;n<o;++n)t.push(r[n])}return e}function aI(r,t){var e,n=[],o={},i=Xu(Xy);for(var a in r){var s=i[a];if(s===void 0&&(s=a),e=parseInt(s),isNaN(e))throw new Error('Name table entry "'+a+'" does not exist, see nameTableNames for complete list.');o[e]=r[a],n.push(e)}for(var l=Xu(Yy),u=Xu($y),c=[],p=[],f=0;f<n.length;f++){e=n[f];var d=o[e];for(var h in d){var m=d[h],g=1,v=l[h],x=eI[v],S=Ky(g,x,v),w=te.MACSTRING(m,S);w===void 0&&(g=0,v=t.indexOf(h),v<0&&(v=t.length,t.push(h)),x=4,w=te.UTF16(m));var b=Kg(w,p);c.push($g(g,x,v,e,w.length,b));var _=u[h];if(_!==void 0){var T=te.UTF16(m),y=Kg(T,p);c.push($g(3,1,_,e,T.length,y))}}}c.sort(function(O,C){return O.platformID-C.platformID||O.encodingID-C.encodingID||O.languageID-C.languageID||O.nameID-C.nameID});for(var I=new le.Table("name",[{name:"format",type:"USHORT",value:0},{name:"count",type:"USHORT",value:c.length},{name:"stringOffset",type:"USHORT",value:6+c.length*12}]),A=0;A<c.length;A++)I.fields.push({name:"record_"+A,type:"RECORD",value:c[A]});return I.fields.push({name:"strings",type:"LITERAL",value:p}),I}var Zy={parse:oI,make:aI},sp=[{begin:0,end:127},{begin:128,end:255},{begin:256,end:383},{begin:384,end:591},{begin:592,end:687},{begin:688,end:767},{begin:768,end:879},{begin:880,end:1023},{begin:11392,end:11519},{begin:1024,end:1279},{begin:1328,end:1423},{begin:1424,end:1535},{begin:42240,end:42559},{begin:1536,end:1791},{begin:1984,end:2047},{begin:2304,end:2431},{begin:2432,end:2559},{begin:2560,end:2687},{begin:2688,end:2815},{begin:2816,end:2943},{begin:2944,end:3071},{begin:3072,end:3199},{begin:3200,end:3327},{begin:3328,end:3455},{begin:3584,end:3711},{begin:3712,end:3839},{begin:4256,end:4351},{begin:6912,end:7039},{begin:4352,end:4607},{begin:7680,end:7935},{begin:7936,end:8191},{begin:8192,end:8303},{begin:8304,end:8351},{begin:8352,end:8399},{begin:8400,end:8447},{begin:8448,end:8527},{begin:8528,end:8591},{begin:8592,end:8703},{begin:8704,end:8959},{begin:8960,end:9215},{begin:9216,end:9279},{begin:9280,end:9311},{begin:9312,end:9471},{begin:9472,end:9599},{begin:9600,end:9631},{begin:9632,end:9727},{begin:9728,end:9983},{begin:9984,end:10175},{begin:12288,end:12351},{begin:12352,end:12447},{begin:12448,end:12543},{begin:12544,end:12591},{begin:12592,end:12687},{begin:43072,end:43135},{begin:12800,end:13055},{begin:13056,end:13311},{begin:44032,end:55215},{begin:55296,end:57343},{begin:67840,end:67871},{begin:19968,end:40959},{begin:57344,end:63743},{begin:12736,end:12783},{begin:64256,end:64335},{begin:64336,end:65023},{begin:65056,end:65071},{begin:65040,end:65055},{begin:65104,end:65135},{begin:65136,end:65279},{begin:65280,end:65519},{begin:65520,end:65535},{begin:3840,end:4095},{begin:1792,end:1871},{begin:1920,end:1983},{begin:3456,end:3583},{begin:4096,end:4255},{begin:4608,end:4991},{begin:5024,end:5119},{begin:5120,end:5759},{begin:5760,end:5791},{begin:5792,end:5887},{begin:6016,end:6143},{begin:6144,end:6319},{begin:10240,end:10495},{begin:40960,end:42127},{begin:5888,end:5919},{begin:66304,end:66351},{begin:66352,end:66383},{begin:66560,end:66639},{begin:118784,end:119039},{begin:119808,end:120831},{begin:1044480,end:1048573},{begin:65024,end:65039},{begin:917504,end:917631},{begin:6400,end:6479},{begin:6480,end:6527},{begin:6528,end:6623},{begin:6656,end:6687},{begin:11264,end:11359},{begin:11568,end:11647},{begin:19904,end:19967},{begin:43008,end:43055},{begin:65536,end:65663},{begin:65856,end:65935},{begin:66432,end:66463},{begin:66464,end:66527},{begin:66640,end:66687},{begin:66688,end:66735},{begin:67584,end:67647},{begin:68096,end:68191},{begin:119552,end:119647},{begin:73728,end:74751},{begin:119648,end:119679},{begin:7040,end:7103},{begin:7168,end:7247},{begin:7248,end:7295},{begin:43136,end:43231},{begin:43264,end:43311},{begin:43312,end:43359},{begin:43520,end:43615},{begin:65936,end:65999},{begin:66e3,end:66047},{begin:66208,end:66271},{begin:127024,end:127135}];function sI(r){for(var t=0;t<sp.length;t+=1){var e=sp[t];if(r>=e.begin&&r<e.end)return t}return-1}function lI(r,t){var e={},n=new ue.Parser(r,t);e.version=n.parseUShort(),e.xAvgCharWidth=n.parseShort(),e.usWeightClass=n.parseUShort(),e.usWidthClass=n.parseUShort(),e.fsType=n.parseUShort(),e.ySubscriptXSize=n.parseShort(),e.ySubscriptYSize=n.parseShort(),e.ySubscriptXOffset=n.parseShort(),e.ySubscriptYOffset=n.parseShort(),e.ySuperscriptXSize=n.parseShort(),e.ySuperscriptYSize=n.parseShort(),e.ySuperscriptXOffset=n.parseShort(),e.ySuperscriptYOffset=n.parseShort(),e.yStrikeoutSize=n.parseShort(),e.yStrikeoutPosition=n.parseShort(),e.sFamilyClass=n.parseShort(),e.panose=[];for(var o=0;o<10;o++)e.panose[o]=n.parseByte();return e.ulUnicodeRange1=n.parseULong(),e.ulUnicodeRange2=n.parseULong(),e.ulUnicodeRange3=n.parseULong(),e.ulUnicodeRange4=n.parseULong(),e.achVendID=String.fromCharCode(n.parseByte(),n.parseByte(),n.parseByte(),n.parseByte()),e.fsSelection=n.parseUShort(),e.usFirstCharIndex=n.parseUShort(),e.usLastCharIndex=n.parseUShort(),e.sTypoAscender=n.parseShort(),e.sTypoDescender=n.parseShort(),e.sTypoLineGap=n.parseShort(),e.usWinAscent=n.parseUShort(),e.usWinDescent=n.parseUShort(),e.version>=1&&(e.ulCodePageRange1=n.parseULong(),e.ulCodePageRange2=n.parseULong()),e.version>=2&&(e.sxHeight=n.parseShort(),e.sCapHeight=n.parseShort(),e.usDefaultChar=n.parseUShort(),e.usBreakChar=n.parseUShort(),e.usMaxContent=n.parseUShort()),e}function cI(r){return new le.Table("OS/2",[{name:"version",type:"USHORT",value:3},{name:"xAvgCharWidth",type:"SHORT",value:0},{name:"usWeightClass",type:"USHORT",value:0},{name:"usWidthClass",type:"USHORT",value:0},{name:"fsType",type:"USHORT",value:0},{name:"ySubscriptXSize",type:"SHORT",value:650},{name:"ySubscriptYSize",type:"SHORT",value:699},{name:"ySubscriptXOffset",type:"SHORT",value:0},{name:"ySubscriptYOffset",type:"SHORT",value:140},{name:"ySuperscriptXSize",type:"SHORT",value:650},{name:"ySuperscriptYSize",type:"SHORT",value:699},{name:"ySuperscriptXOffset",type:"SHORT",value:0},{name:"ySuperscriptYOffset",type:"SHORT",value:479},{name:"yStrikeoutSize",type:"SHORT",value:49},{name:"yStrikeoutPosition",type:"SHORT",value:258},{name:"sFamilyClass",type:"SHORT",value:0},{name:"bFamilyType",type:"BYTE",value:0},{name:"bSerifStyle",type:"BYTE",value:0},{name:"bWeight",type:"BYTE",value:0},{name:"bProportion",type:"BYTE",value:0},{name:"bContrast",type:"BYTE",value:0},{name:"bStrokeVariation",type:"BYTE",value:0},{name:"bArmStyle",type:"BYTE",value:0},{name:"bLetterform",type:"BYTE",value:0},{name:"bMidline",type:"BYTE",value:0},{name:"bXHeight",type:"BYTE",value:0},{name:"ulUnicodeRange1",type:"ULONG",value:0},{name:"ulUnicodeRange2",type:"ULONG",value:0},{name:"ulUnicodeRange3",type:"ULONG",value:0},{name:"ulUnicodeRange4",type:"ULONG",value:0},{name:"achVendID",type:"CHARARRAY",value:"XXXX"},{name:"fsSelection",type:"USHORT",value:0},{name:"usFirstCharIndex",type:"USHORT",value:0},{name:"usLastCharIndex",type:"USHORT",value:0},{name:"sTypoAscender",type:"SHORT",value:0},{name:"sTypoDescender",type:"SHORT",value:0},{name:"sTypoLineGap",type:"SHORT",value:0},{name:"usWinAscent",type:"USHORT",value:0},{name:"usWinDescent",type:"USHORT",value:0},{name:"ulCodePageRange1",type:"ULONG",value:0},{name:"ulCodePageRange2",type:"ULONG",value:0},{name:"sxHeight",type:"SHORT",value:0},{name:"sCapHeight",type:"SHORT",value:0},{name:"usDefaultChar",type:"USHORT",value:0},{name:"usBreakChar",type:"USHORT",value:0},{name:"usMaxContext",type:"USHORT",value:0}],r)}var lp={parse:lI,make:cI,unicodeRanges:sp,getUnicodeRange:sI};function uI(r,t){var e={},n=new ue.Parser(r,t);switch(e.version=n.parseVersion(),e.italicAngle=n.parseFixed(),e.underlinePosition=n.parseShort(),e.underlineThickness=n.parseShort(),e.isFixedPitch=n.parseULong(),e.minMemType42=n.parseULong(),e.maxMemType42=n.parseULong(),e.minMemType1=n.parseULong(),e.maxMemType1=n.parseULong(),e.version){case 1:e.names=ao.slice();break;case 2:e.numberOfGlyphs=n.parseUShort(),e.glyphNameIndex=new Array(e.numberOfGlyphs);for(var o=0;o<e.numberOfGlyphs;o++)e.glyphNameIndex[o]=n.parseUShort();e.names=[];for(var i=0;i<e.numberOfGlyphs;i++)if(e.glyphNameIndex[i]>=ao.length){var a=n.parseChar();e.names.push(n.parseString(a))}break;case 2.5:e.numberOfGlyphs=n.parseUShort(),e.offset=new Array(e.numberOfGlyphs);for(var s=0;s<e.numberOfGlyphs;s++)e.offset[s]=n.parseChar();break}return e}function pI(){return new le.Table("post",[{name:"version",type:"FIXED",value:196608},{name:"italicAngle",type:"FIXED",value:0},{name:"underlinePosition",type:"FWORD",value:0},{name:"underlineThickness",type:"FWORD",value:0},{name:"isFixedPitch",type:"ULONG",value:0},{name:"minMemType42",type:"ULONG",value:0},{name:"maxMemType42",type:"ULONG",value:0},{name:"minMemType1",type:"ULONG",value:0},{name:"maxMemType1",type:"ULONG",value:0}])}var Qy={parse:uI,make:pI},cr=new Array(9);cr[1]=function(){var t=this.offset+this.relativeOffset,e=this.parseUShort();if(e===1)return{substFormat:1,coverage:this.parsePointer(E.coverage),deltaGlyphId:this.parseUShort()};if(e===2)return{substFormat:2,coverage:this.parsePointer(E.coverage),substitute:this.parseOffset16List()};ve.assert(!1,"0x"+t.toString(16)+": lookup type 1 format must be 1 or 2.")};cr[2]=function(){var t=this.parseUShort();return ve.argument(t===1,"GSUB Multiple Substitution Subtable identifier-format must be 1"),{substFormat:t,coverage:this.parsePointer(E.coverage),sequences:this.parseListOfLists()}};cr[3]=function(){var t=this.parseUShort();return ve.argument(t===1,"GSUB Alternate Substitution Subtable identifier-format must be 1"),{substFormat:t,coverage:this.parsePointer(E.coverage),alternateSets:this.parseListOfLists()}};cr[4]=function(){var t=this.parseUShort();return ve.argument(t===1,"GSUB ligature table identifier-format must be 1"),{substFormat:t,coverage:this.parsePointer(E.coverage),ligatureSets:this.parseListOfLists(function(){return{ligGlyph:this.parseUShort(),components:this.parseUShortList(this.parseUShort()-1)}})}};var xi={sequenceIndex:E.uShort,lookupListIndex:E.uShort};cr[5]=function(){var t=this.offset+this.relativeOffset,e=this.parseUShort();if(e===1)return{substFormat:e,coverage:this.parsePointer(E.coverage),ruleSets:this.parseListOfLists(function(){var i=this.parseUShort(),a=this.parseUShort();return{input:this.parseUShortList(i-1),lookupRecords:this.parseRecordList(a,xi)}})};if(e===2)return{substFormat:e,coverage:this.parsePointer(E.coverage),classDef:this.parsePointer(E.classDef),classSets:this.parseListOfLists(function(){var i=this.parseUShort(),a=this.parseUShort();return{classes:this.parseUShortList(i-1),lookupRecords:this.parseRecordList(a,xi)}})};if(e===3){var n=this.parseUShort(),o=this.parseUShort();return{substFormat:e,coverages:this.parseList(n,E.pointer(E.coverage)),lookupRecords:this.parseRecordList(o,xi)}}ve.assert(!1,"0x"+t.toString(16)+": lookup type 5 format must be 1, 2 or 3.")};cr[6]=function(){var t=this.offset+this.relativeOffset,e=this.parseUShort();if(e===1)return{substFormat:1,coverage:this.parsePointer(E.coverage),chainRuleSets:this.parseListOfLists(function(){return{backtrack:this.parseUShortList(),input:this.parseUShortList(this.parseShort()-1),lookahead:this.parseUShortList(),lookupRecords:this.parseRecordList(xi)}})};if(e===2)return{substFormat:2,coverage:this.parsePointer(E.coverage),backtrackClassDef:this.parsePointer(E.classDef),inputClassDef:this.parsePointer(E.classDef),lookaheadClassDef:this.parsePointer(E.classDef),chainClassSet:this.parseListOfLists(function(){return{backtrack:this.parseUShortList(),input:this.parseUShortList(this.parseShort()-1),lookahead:this.parseUShortList(),lookupRecords:this.parseRecordList(xi)}})};if(e===3)return{substFormat:3,backtrackCoverage:this.parseList(E.pointer(E.coverage)),inputCoverage:this.parseList(E.pointer(E.coverage)),lookaheadCoverage:this.parseList(E.pointer(E.coverage)),lookupRecords:this.parseRecordList(xi)};ve.assert(!1,"0x"+t.toString(16)+": lookup type 6 format must be 1, 2 or 3.")};cr[7]=function(){var t=this.parseUShort();ve.argument(t===1,"GSUB Extension Substitution subtable identifier-format must be 1");var e=this.parseUShort(),n=new E(this.data,this.offset+this.parseULong());return{substFormat:1,lookupType:e,extension:cr[e].call(n)}};cr[8]=function(){var t=this.parseUShort();return ve.argument(t===1,"GSUB Reverse Chaining Contextual Single Substitution Subtable identifier-format must be 1"),{substFormat:t,coverage:this.parsePointer(E.coverage),backtrackCoverage:this.parseList(E.pointer(E.coverage)),lookaheadCoverage:this.parseList(E.pointer(E.coverage)),substitutes:this.parseUShortList()}};function fI(r,t){t=t||0;var e=new E(r,t),n=e.parseVersion(1);return ve.argument(n===1||n===1.1,"Unsupported GSUB table version."),n===1?{version:n,scripts:e.parseScriptList(),features:e.parseFeatureList(),lookups:e.parseLookupList(cr)}:{version:n,scripts:e.parseScriptList(),features:e.parseFeatureList(),lookups:e.parseLookupList(cr),variations:e.parseFeatureVariationsList()}}var Si=new Array(9);Si[1]=function(t){return t.substFormat===1?new le.Table("substitutionTable",[{name:"substFormat",type:"USHORT",value:1},{name:"coverage",type:"TABLE",value:new le.Coverage(t.coverage)},{name:"deltaGlyphID",type:"USHORT",value:t.deltaGlyphId}]):new le.Table("substitutionTable",[{name:"substFormat",type:"USHORT",value:2},{name:"coverage",type:"TABLE",value:new le.Coverage(t.coverage)}].concat(le.ushortList("substitute",t.substitute)))};Si[2]=function(t){return ve.assert(t.substFormat===1,"Lookup type 2 substFormat must be 1."),new le.Table("substitutionTable",[{name:"substFormat",type:"USHORT",value:1},{name:"coverage",type:"TABLE",value:new le.Coverage(t.coverage)}].concat(le.tableList("seqSet",t.sequences,function(e){return new le.Table("sequenceSetTable",le.ushortList("sequence",e))})))};Si[3]=function(t){return ve.assert(t.substFormat===1,"Lookup type 3 substFormat must be 1."),new le.Table("substitutionTable",[{name:"substFormat",type:"USHORT",value:1},{name:"coverage",type:"TABLE",value:new le.Coverage(t.coverage)}].concat(le.tableList("altSet",t.alternateSets,function(e){return new le.Table("alternateSetTable",le.ushortList("alternate",e))})))};Si[4]=function(t){return ve.assert(t.substFormat===1,"Lookup type 4 substFormat must be 1."),new le.Table("substitutionTable",[{name:"substFormat",type:"USHORT",value:1},{name:"coverage",type:"TABLE",value:new le.Coverage(t.coverage)}].concat(le.tableList("ligSet",t.ligatureSets,function(e){return new le.Table("ligatureSetTable",le.tableList("ligature",e,function(n){return new le.Table("ligatureTable",[{name:"ligGlyph",type:"USHORT",value:n.ligGlyph}].concat(le.ushortList("component",n.components,n.components.length+1)))}))})))};Si[6]=function(t){if(t.substFormat===1){var e=new le.Table("chainContextTable",[{name:"substFormat",type:"USHORT",value:t.substFormat},{name:"coverage",type:"TABLE",value:new le.Coverage(t.coverage)}].concat(le.tableList("chainRuleSet",t.chainRuleSets,function(i){return new le.Table("chainRuleSetTable",le.tableList("chainRule",i,function(a){var s=le.ushortList("backtrackGlyph",a.backtrack,a.backtrack.length).concat(le.ushortList("inputGlyph",a.input,a.input.length+1)).concat(le.ushortList("lookaheadGlyph",a.lookahead,a.lookahead.length)).concat(le.ushortList("substitution",[],a.lookupRecords.length));return a.lookupRecords.forEach(function(l,u){s=s.concat({name:"sequenceIndex"+u,type:"USHORT",value:l.sequenceIndex}).concat({name:"lookupListIndex"+u,type:"USHORT",value:l.lookupListIndex})}),new le.Table("chainRuleTable",s)}))})));return e}else if(t.substFormat===2)ve.assert(!1,"lookup type 6 format 2 is not yet supported.");else if(t.substFormat===3){var n=[{name:"substFormat",type:"USHORT",value:t.substFormat}];n.push({name:"backtrackGlyphCount",type:"USHORT",value:t.backtrackCoverage.length}),t.backtrackCoverage.forEach(function(i,a){n.push({name:"backtrackCoverage"+a,type:"TABLE",value:new le.Coverage(i)})}),n.push({name:"inputGlyphCount",type:"USHORT",value:t.inputCoverage.length}),t.inputCoverage.forEach(function(i,a){n.push({name:"inputCoverage"+a,type:"TABLE",value:new le.Coverage(i)})}),n.push({name:"lookaheadGlyphCount",type:"USHORT",value:t.lookaheadCoverage.length}),t.lookaheadCoverage.forEach(function(i,a){n.push({name:"lookaheadCoverage"+a,type:"TABLE",value:new le.Coverage(i)})}),n.push({name:"substitutionCount",type:"USHORT",value:t.lookupRecords.length}),t.lookupRecords.forEach(function(i,a){n=n.concat({name:"sequenceIndex"+a,type:"USHORT",value:i.sequenceIndex}).concat({name:"lookupListIndex"+a,type:"USHORT",value:i.lookupListIndex})});var o=new le.Table("chainContextTable",n);return o}ve.assert(!1,"lookup type 6 format must be 1, 2 or 3.")};function dI(r){return new le.Table("GSUB",[{name:"version",type:"ULONG",value:65536},{name:"scripts",type:"TABLE",value:new le.ScriptList(r.scripts)},{name:"features",type:"TABLE",value:new le.FeatureList(r.features)},{name:"lookups",type:"TABLE",value:new le.LookupList(r.lookups,Si)}])}var Jy={parse:fI,make:dI};function hI(r,t){var e=new ue.Parser(r,t),n=e.parseULong();ve.argument(n===1,"Unsupported META table version."),e.parseULong(),e.parseULong();for(var o=e.parseULong(),i={},a=0;a<o;a++){var s=e.parseTag(),l=e.parseULong(),u=e.parseULong(),c=bi.UTF8(r,t+l,u);i[s]=c}return i}function mI(r){var t=Object.keys(r).length,e="",n=16+t*12,o=new le.Table("meta",[{name:"version",type:"ULONG",value:1},{name:"flags",type:"ULONG",value:0},{name:"offset",type:"ULONG",value:n},{name:"numTags",type:"ULONG",value:t}]);for(var i in r){var a=e.length;e+=r[i],o.fields.push({name:"tag "+i,type:"TAG",value:i}),o.fields.push({name:"offset "+i,type:"ULONG",value:n+a}),o.fields.push({name:"length "+i,type:"ULONG",value:r[i].length})}return o.fields.push({name:"stringPool",type:"CHARARRAY",value:e}),o}var e0={parse:hI,make:mI};function Zg(r){return Math.log(r)/Math.log(2)|0}function gp(r){for(;r.length%4!==0;)r.push(0);for(var t=0,e=0;e<r.length;e+=4)t+=(r[e]<<24)+(r[e+1]<<16)+(r[e+2]<<8)+r[e+3];return t%=Math.pow(2,32),t}function Qg(r,t,e,n){return new le.Record("Table Record",[{name:"tag",type:"TAG",value:r!==void 0?r:""},{name:"checkSum",type:"ULONG",value:t!==void 0?t:0},{name:"offset",type:"ULONG",value:e!==void 0?e:0},{name:"length",type:"ULONG",value:n!==void 0?n:0}])}function t0(r){var t=new le.Table("sfnt",[{name:"version",type:"TAG",value:"OTTO"},{name:"numTables",type:"USHORT",value:0},{name:"searchRange",type:"USHORT",value:0},{name:"entrySelector",type:"USHORT",value:0},{name:"rangeShift",type:"USHORT",value:0}]);t.tables=r,t.numTables=r.length;var e=Math.pow(2,Zg(t.numTables));t.searchRange=16*e,t.entrySelector=Zg(e),t.rangeShift=t.numTables*16-t.searchRange;for(var n=[],o=[],i=t.sizeOf()+Qg().sizeOf()*t.numTables;i%4!==0;)i+=1,o.push({name:"padding",type:"BYTE",value:0});for(var a=0;a<r.length;a+=1){var s=r[a];ve.argument(s.tableName.length===4,"Table name"+s.tableName+" is invalid.");var l=s.sizeOf(),u=Qg(s.tableName,gp(s.encode()),i,l);for(n.push({name:u.tag+" Table Record",type:"RECORD",value:u}),o.push({name:s.tableName+" table",type:"RECORD",value:s}),i+=l,ve.argument(!isNaN(i),"Something went wrong calculating the offset.");i%4!==0;)i+=1,o.push({name:"padding",type:"BYTE",value:0})}return n.sort(function(c,p){return c.value.tag>p.value.tag?1:-1}),t.fields=t.fields.concat(n),t.fields=t.fields.concat(o),t}function Jg(r,t,e){for(var n=0;n<t.length;n+=1){var o=r.charToGlyphIndex(t[n]);if(o>0){var i=r.glyphs.get(o);return i.getMetrics()}}return e}function gI(r){for(var t=0,e=0;e<r.length;e+=1)t+=r[e];return t/r.length}function yI(r){for(var t=[],e=[],n=[],o=[],i=[],a=[],s=[],l,u=0,c=0,p=0,f=0,d=0,h=0;h<r.glyphs.length;h+=1){var m=r.glyphs.get(h),g=m.unicode|0;if(isNaN(m.advanceWidth))throw new Error("Glyph "+m.name+" ("+h+"): advanceWidth is not a number.");(l>g||l===void 0)&&g>0&&(l=g),u<g&&(u=g);var v=lp.getUnicodeRange(g);if(v<32)c|=1<<v;else if(v<64)p|=1<<v-32;else if(v<96)f|=1<<v-64;else if(v<123)d|=1<<v-96;else throw new Error("Unicode ranges bits > 123 are reserved for internal usage");if(m.name!==".notdef"){var x=m.getMetrics();t.push(x.xMin),e.push(x.yMin),n.push(x.xMax),o.push(x.yMax),a.push(x.leftSideBearing),s.push(x.rightSideBearing),i.push(m.advanceWidth)}}var S={xMin:Math.min.apply(null,t),yMin:Math.min.apply(null,e),xMax:Math.max.apply(null,n),yMax:Math.max.apply(null,o),advanceWidthMax:Math.max.apply(null,i),advanceWidthAvg:gI(i),minLeftSideBearing:Math.min.apply(null,a),maxLeftSideBearing:Math.max.apply(null,a),minRightSideBearing:Math.min.apply(null,s)};S.ascender=r.ascender,S.descender=r.descender;var w=zy.make({flags:3,unitsPerEm:r.unitsPerEm,xMin:S.xMin,yMin:S.yMin,xMax:S.xMax,yMax:S.yMax,lowestRecPPEM:3,createdTimestamp:r.createdTimestamp}),b=jy.make({ascender:S.ascender,descender:S.descender,advanceWidthMax:S.advanceWidthMax,minLeftSideBearing:S.minLeftSideBearing,minRightSideBearing:S.minRightSideBearing,xMaxExtent:S.maxLeftSideBearing+(S.xMax-S.xMin),numberOfHMetrics:r.glyphs.length}),_=qy.make(r.glyphs.length),T=lp.make(Object.assign({xAvgCharWidth:Math.round(S.advanceWidthAvg),usFirstCharIndex:l,usLastCharIndex:u,ulUnicodeRange1:c,ulUnicodeRange2:p,ulUnicodeRange3:f,ulUnicodeRange4:d,sTypoAscender:S.ascender,sTypoDescender:S.descender,sTypoLineGap:0,usWinAscent:S.yMax,usWinDescent:Math.abs(S.yMin),ulCodePageRange1:1,sxHeight:Jg(r,"xyvw",{yMax:Math.round(S.ascender/2)}).yMax,sCapHeight:Jg(r,"HIKLEFJMNTZBDPRAGOQSUVWXY",S).yMax,usDefaultChar:r.hasChar(" ")?32:0,usBreakChar:r.hasChar(" ")?32:0},r.tables.os2)),y=Hy.make(r.glyphs),I=Ny.make(r.glyphs),A=r.getEnglishName("fontFamily"),O=r.getEnglishName("fontSubfamily"),C=A+" "+O,N=r.getEnglishName("postScriptName");N||(N=A.replace(/\s/g,"")+"-"+O);var P={};for(var G in r.names)P[G]=r.names[G];P.uniqueID||(P.uniqueID={en:r.getEnglishName("manufacturer")+":"+C}),P.postScriptName||(P.postScriptName={en:N}),P.preferredFamily||(P.preferredFamily=r.names.fontFamily),P.preferredSubfamily||(P.preferredSubfamily=r.names.fontSubfamily);var $=[],Y=Zy.make(P,$),ie=$.length>0?Wy.make($):void 0,j=Qy.make(),H=Vy.make(r.glyphs,{version:r.getEnglishName("version"),fullName:C,familyName:A,weightName:O,postScriptName:N,unitsPerEm:r.unitsPerEm,fontBBox:[0,S.yMin,S.ascender,S.advanceWidthMax]}),V=r.metas&&Object.keys(r.metas).length>0?e0.make(r.metas):void 0,R=[w,b,_,T,Y,I,j,H,y];ie&&R.push(ie),r.tables.gsub&&R.push(Jy.make(r.tables.gsub)),V&&R.push(V);for(var D=t0(R),F=D.encode(),B=gp(F),X=D.fields,K=!1,q=0;q<X.length;q+=1)if(X[q].name==="head table"){X[q].value.checkSumAdjustment=2981146554-B,K=!0;break}if(!K)throw new Error("Could not find head table with checkSum to adjust.");return D}var vI={make:t0,fontToTable:yI,computeCheckSum:gp};function Yu(r,t){for(var e=0,n=r.length-1;e<=n;){var o=e+n>>>1,i=r[o].tag;if(i===t)return o;i<t?e=o+1:n=o-1}return-e-1}function ey(r,t){for(var e=0,n=r.length-1;e<=n;){var o=e+n>>>1,i=r[o];if(i===t)return o;i<t?e=o+1:n=o-1}return-e-1}function ty(r,t){for(var e,n=0,o=r.length-1;n<=o;){var i=n+o>>>1;e=r[i];var a=e.start;if(a===t)return e;a<t?n=i+1:o=i-1}if(n>0)return e=r[n-1],t>e.end?0:e}function Ba(r,t){this.font=r,this.tableName=t}Ba.prototype={searchTag:Yu,binSearch:ey,getTable:function(r){var t=this.font.tables[this.tableName];return!t&&r&&(t=this.font.tables[this.tableName]=this.createDefaultTable()),t},getScriptNames:function(){var r=this.getTable();return r?r.scripts.map(function(t){return t.tag}):[]},getDefaultScriptName:function(){var r=this.getTable();if(!!r){for(var t=!1,e=0;e<r.scripts.length;e++){var n=r.scripts[e].tag;if(n==="DFLT")return n;n==="latn"&&(t=!0)}if(t)return"latn"}},getScriptTable:function(r,t){var e=this.getTable(t);if(e){r=r||"DFLT";var n=e.scripts,o=Yu(e.scripts,r);if(o>=0)return n[o].script;if(t){var i={tag:r,script:{defaultLangSys:{reserved:0,reqFeatureIndex:65535,featureIndexes:[]},langSysRecords:[]}};return n.splice(-1-o,0,i),i.script}}},getLangSysTable:function(r,t,e){var n=this.getScriptTable(r,e);if(n){if(!t||t==="dflt"||t==="DFLT")return n.defaultLangSys;var o=Yu(n.langSysRecords,t);if(o>=0)return n.langSysRecords[o].langSys;if(e){var i={tag:t,langSys:{reserved:0,reqFeatureIndex:65535,featureIndexes:[]}};return n.langSysRecords.splice(-1-o,0,i),i.langSys}}},getFeatureTable:function(r,t,e,n){var o=this.getLangSysTable(r,t,n);if(o){for(var i,a=o.featureIndexes,s=this.font.tables[this.tableName].features,l=0;l<a.length;l++)if(i=s[a[l]],i.tag===e)return i.feature;if(n){var u=s.length;return ve.assert(u===0||e>=s[u-1].tag,"Features must be added in alphabetical order."),i={tag:e,feature:{params:0,lookupListIndexes:[]}},s.push(i),a.push(u),i.feature}}},getLookupTables:function(r,t,e,n,o){var i=this.getFeatureTable(r,t,e,o),a=[];if(i){for(var s,l=i.lookupListIndexes,u=this.font.tables[this.tableName].lookups,c=0;c<l.length;c++)s=u[l[c]],s.lookupType===n&&a.push(s);if(a.length===0&&o){s={lookupType:n,lookupFlag:0,subtables:[],markFilteringSet:void 0};var p=u.length;return u.push(s),l.push(p),[s]}}return a},getGlyphClass:function(r,t){switch(r.format){case 1:return r.startGlyph<=t&&t<r.startGlyph+r.classes.length?r.classes[t-r.startGlyph]:0;case 2:var e=ty(r.ranges,t);return e?e.classId:0}},getCoverageIndex:function(r,t){switch(r.format){case 1:var e=ey(r.glyphs,t);return e>=0?e:-1;case 2:var n=ty(r.ranges,t);return n?n.index+t-n.start:-1}},expandCoverage:function(r){if(r.format===1)return r.glyphs;for(var t=[],e=r.ranges,n=0;n<e.length;n++)for(var o=e[n],i=o.start,a=o.end,s=i;s<=a;s++)t.push(s);return t}};function Fa(r){Ba.call(this,r,"gpos")}Fa.prototype=Ba.prototype;Fa.prototype.init=function(){var r=this.getDefaultScriptName();this.defaultKerningTables=this.getKerningTables(r)};Fa.prototype.getKerningValue=function(r,t,e){for(var n=0;n<r.length;n++)for(var o=r[n].subtables,i=0;i<o.length;i++){var a=o[i],s=this.getCoverageIndex(a.coverage,t);if(!(s<0))switch(a.posFormat){case 1:for(var l=a.pairSets[s],u=0;u<l.length;u++){var c=l[u];if(c.secondGlyph===e)return c.value1&&c.value1.xAdvance||0}break;case 2:var p=this.getGlyphClass(a.classDef1,t),f=this.getGlyphClass(a.classDef2,e),d=a.classRecords[p][f];return d.value1&&d.value1.xAdvance||0}}return 0};Fa.prototype.getKerningTables=function(r,t){if(this.font.tables.gpos)return this.getLookupTables(r,t,"kern",2)};function Rt(r){Ba.call(this,r,"gsub")}function xI(r,t){var e=r.length;if(e!==t.length)return!1;for(var n=0;n<e;n++)if(r[n]!==t[n])return!1;return!0}function yp(r,t,e){for(var n=r.subtables,o=0;o<n.length;o++){var i=n[o];if(i.substFormat===t)return i}if(e)return n.push(e),e}Rt.prototype=Ba.prototype;Rt.prototype.createDefaultTable=function(){return{version:1,scripts:[{tag:"DFLT",script:{defaultLangSys:{reserved:0,reqFeatureIndex:65535,featureIndexes:[]},langSysRecords:[]}}],features:[],lookups:[]}};Rt.prototype.getSingle=function(r,t,e){for(var n=[],o=this.getLookupTables(t,e,r,1),i=0;i<o.length;i++)for(var a=o[i].subtables,s=0;s<a.length;s++){var l=a[s],u=this.expandCoverage(l.coverage),c=void 0;if(l.substFormat===1){var p=l.deltaGlyphId;for(c=0;c<u.length;c++){var f=u[c];n.push({sub:f,by:f+p})}}else{var d=l.substitute;for(c=0;c<u.length;c++)n.push({sub:u[c],by:d[c]})}}return n};Rt.prototype.getMultiple=function(r,t,e){for(var n=[],o=this.getLookupTables(t,e,r,2),i=0;i<o.length;i++)for(var a=o[i].subtables,s=0;s<a.length;s++){var l=a[s],u=this.expandCoverage(l.coverage),c=void 0;for(c=0;c<u.length;c++){var p=u[c],f=l.sequences[c];n.push({sub:p,by:f})}}return n};Rt.prototype.getAlternates=function(r,t,e){for(var n=[],o=this.getLookupTables(t,e,r,3),i=0;i<o.length;i++)for(var a=o[i].subtables,s=0;s<a.length;s++)for(var l=a[s],u=this.expandCoverage(l.coverage),c=l.alternateSets,p=0;p<u.length;p++)n.push({sub:u[p],by:c[p]});return n};Rt.prototype.getLigatures=function(r,t,e){for(var n=[],o=this.getLookupTables(t,e,r,4),i=0;i<o.length;i++)for(var a=o[i].subtables,s=0;s<a.length;s++)for(var l=a[s],u=this.expandCoverage(l.coverage),c=l.ligatureSets,p=0;p<u.length;p++)for(var f=u[p],d=c[p],h=0;h<d.length;h++){var m=d[h];n.push({sub:[f].concat(m.components),by:m.ligGlyph})}return n};Rt.prototype.addSingle=function(r,t,e,n){var o=this.getLookupTables(e,n,r,1,!0)[0],i=yp(o,2,{substFormat:2,coverage:{format:1,glyphs:[]},substitute:[]});ve.assert(i.coverage.format===1,"Single: unable to modify coverage table format "+i.coverage.format);var a=t.sub,s=this.binSearch(i.coverage.glyphs,a);s<0&&(s=-1-s,i.coverage.glyphs.splice(s,0,a),i.substitute.splice(s,0,0)),i.substitute[s]=t.by};Rt.prototype.addMultiple=function(r,t,e,n){ve.assert(t.by instanceof Array&&t.by.length>1,'Multiple: "by" must be an array of two or more ids');var o=this.getLookupTables(e,n,r,2,!0)[0],i=yp(o,1,{substFormat:1,coverage:{format:1,glyphs:[]},sequences:[]});ve.assert(i.coverage.format===1,"Multiple: unable to modify coverage table format "+i.coverage.format);var a=t.sub,s=this.binSearch(i.coverage.glyphs,a);s<0&&(s=-1-s,i.coverage.glyphs.splice(s,0,a),i.sequences.splice(s,0,0)),i.sequences[s]=t.by};Rt.prototype.addAlternate=function(r,t,e,n){var o=this.getLookupTables(e,n,r,3,!0)[0],i=yp(o,1,{substFormat:1,coverage:{format:1,glyphs:[]},alternateSets:[]});ve.assert(i.coverage.format===1,"Alternate: unable to modify coverage table format "+i.coverage.format);var a=t.sub,s=this.binSearch(i.coverage.glyphs,a);s<0&&(s=-1-s,i.coverage.glyphs.splice(s,0,a),i.alternateSets.splice(s,0,0)),i.alternateSets[s]=t.by};Rt.prototype.addLigature=function(r,t,e,n){var o=this.getLookupTables(e,n,r,4,!0)[0],i=o.subtables[0];i||(i={substFormat:1,coverage:{format:1,glyphs:[]},ligatureSets:[]},o.subtables[0]=i),ve.assert(i.coverage.format===1,"Ligature: unable to modify coverage table format "+i.coverage.format);var a=t.sub[0],s=t.sub.slice(1),l={ligGlyph:t.by,components:s},u=this.binSearch(i.coverage.glyphs,a);if(u>=0){for(var c=i.ligatureSets[u],p=0;p<c.length;p++)if(xI(c[p].components,s))return;c.push(l)}else u=-1-u,i.coverage.glyphs.splice(u,0,a),i.ligatureSets.splice(u,0,[l])};Rt.prototype.getFeature=function(r,t,e){if(/ss\d\d/.test(r))return this.getSingle(r,t,e);switch(r){case"aalt":case"salt":return this.getSingle(r,t,e).concat(this.getAlternates(r,t,e));case"dlig":case"liga":case"rlig":return this.getLigatures(r,t,e);case"ccmp":return this.getMultiple(r,t,e).concat(this.getLigatures(r,t,e));case"stch":return this.getMultiple(r,t,e)}};Rt.prototype.add=function(r,t,e,n){if(/ss\d\d/.test(r))return this.addSingle(r,t,e,n);switch(r){case"aalt":case"salt":return typeof t.by=="number"?this.addSingle(r,t,e,n):this.addAlternate(r,t,e,n);case"dlig":case"liga":case"rlig":return this.addLigature(r,t,e,n);case"ccmp":return t.by instanceof Array?this.addMultiple(r,t,e,n):this.addLigature(r,t,e,n)}};function bI(){return typeof window<"u"}function SI(r){for(var t=new ArrayBuffer(r.length),e=new Uint8Array(t),n=0;n<r.length;++n)e[n]=r[n];return t}function wI(r){for(var t=new Buffer(r.byteLength),e=new Uint8Array(r),n=0;n<t.length;++n)t[n]=e[n];return t}function La(r,t){if(!r)throw t}function ry(r,t,e,n,o){var i;return(t&n)>0?(i=r.parseByte(),(t&o)===0&&(i=-i),i=e+i):(t&o)>0?i=e:i=e+r.parseShort(),i}function r0(r,t,e){var n=new ue.Parser(t,e);r.numberOfContours=n.parseShort(),r._xMin=n.parseShort(),r._yMin=n.parseShort(),r._xMax=n.parseShort(),r._yMax=n.parseShort();var o,i;if(r.numberOfContours>0){for(var a=r.endPointIndices=[],s=0;s<r.numberOfContours;s+=1)a.push(n.parseUShort());r.instructionLength=n.parseUShort(),r.instructions=[];for(var l=0;l<r.instructionLength;l+=1)r.instructions.push(n.parseByte());var u=a[a.length-1]+1;o=[];for(var c=0;c<u;c+=1)if(i=n.parseByte(),o.push(i),(i&8)>0)for(var p=n.parseByte(),f=0;f<p;f+=1)o.push(i),c+=1;if(ve.argument(o.length===u,"Bad flags."),a.length>0){var d=[],h;if(u>0){for(var m=0;m<u;m+=1)i=o[m],h={},h.onCurve=!!(i&1),h.lastPointOfContour=a.indexOf(m)>=0,d.push(h);for(var g=0,v=0;v<u;v+=1)i=o[v],h=d[v],h.x=ry(n,i,g,2,16),g=h.x;for(var x=0,S=0;S<u;S+=1)i=o[S],h=d[S],h.y=ry(n,i,x,4,32),x=h.y}r.points=d}else r.points=[]}else if(r.numberOfContours===0)r.points=[];else{r.isComposite=!0,r.points=[],r.components=[];for(var w=!0;w;){o=n.parseUShort();var b={glyphIndex:n.parseUShort(),xScale:1,scale01:0,scale10:0,yScale:1,dx:0,dy:0};(o&1)>0?(o&2)>0?(b.dx=n.parseShort(),b.dy=n.parseShort()):b.matchedPoints=[n.parseUShort(),n.parseUShort()]:(o&2)>0?(b.dx=n.parseChar(),b.dy=n.parseChar()):b.matchedPoints=[n.parseByte(),n.parseByte()],(o&8)>0?b.xScale=b.yScale=n.parseF2Dot14():(o&64)>0?(b.xScale=n.parseF2Dot14(),b.yScale=n.parseF2Dot14()):(o&128)>0&&(b.xScale=n.parseF2Dot14(),b.scale01=n.parseF2Dot14(),b.scale10=n.parseF2Dot14(),b.yScale=n.parseF2Dot14()),r.components.push(b),w=!!(o&32)}if(o&256){r.instructionLength=n.parseUShort(),r.instructions=[];for(var _=0;_<r.instructionLength;_+=1)r.instructions.push(n.parseByte())}}}function $u(r,t){for(var e=[],n=0;n<r.length;n+=1){var o=r[n],i={x:t.xScale*o.x+t.scale01*o.y+t.dx,y:t.scale10*o.x+t.yScale*o.y+t.dy,onCurve:o.onCurve,lastPointOfContour:o.lastPointOfContour};e.push(i)}return e}function TI(r){for(var t=[],e=[],n=0;n<r.length;n+=1){var o=r[n];e.push(o),o.lastPointOfContour&&(t.push(e),e=[])}return ve.argument(e.length===0,"There are still points left in the current contour."),t}function n0(r){var t=new tt;if(!r)return t;for(var e=TI(r),n=0;n<e.length;++n){var o=e[n],i=null,a=o[o.length-1],s=o[0];if(a.onCurve)t.moveTo(a.x,a.y);else if(s.onCurve)t.moveTo(s.x,s.y);else{var l={x:(a.x+s.x)*.5,y:(a.y+s.y)*.5};t.moveTo(l.x,l.y)}for(var u=0;u<o.length;++u)if(i=a,a=s,s=o[(u+1)%o.length],a.onCurve)t.lineTo(a.x,a.y);else{var c=i,p=s;i.onCurve||(c={x:(a.x+i.x)*.5,y:(a.y+i.y)*.5}),s.onCurve||(p={x:(a.x+s.x)*.5,y:(a.y+s.y)*.5}),t.quadraticCurveTo(a.x,a.y,p.x,p.y)}t.closePath()}return t}function o0(r,t){if(t.isComposite)for(var e=0;e<t.components.length;e+=1){var n=t.components[e],o=r.get(n.glyphIndex);if(o.getPath(),o.points){var i=void 0;if(n.matchedPoints===void 0)i=$u(o.points,n);else{if(n.matchedPoints[0]>t.points.length-1||n.matchedPoints[1]>o.points.length-1)throw Error("Matched points out of range in "+t.name);var a=t.points[n.matchedPoints[0]],s=o.points[n.matchedPoints[1]],l={xScale:n.xScale,scale01:n.scale01,scale10:n.scale10,yScale:n.yScale,dx:0,dy:0};s=$u([s],l)[0],l.dx=a.x-s.x,l.dy=a.y-s.y,i=$u(o.points,l)}t.points=t.points.concat(i)}}return n0(t.points)}function CI(r,t,e,n){for(var o=new Hr.GlyphSet(n),i=0;i<e.length-1;i+=1){var a=e[i],s=e[i+1];a!==s?o.push(i,Hr.ttfGlyphLoader(n,i,r0,r,t+a,o0)):o.push(i,Hr.glyphLoader(n,i))}return o}function AI(r,t,e,n){var o=new Hr.GlyphSet(n);return n._push=function(i){var a=e[i],s=e[i+1];a!==s?o.push(i,Hr.ttfGlyphLoader(n,i,r0,r,t+a,o0)):o.push(i,Hr.glyphLoader(n,i))},o}function _I(r,t,e,n,o){return o.lowMemory?AI(r,t,e,n):CI(r,t,e,n)}var i0={getPath:n0,parse:_I},a0,lo,s0,cp;function l0(r){this.font=r,this.getCommands=function(t){return i0.getPath(t).commands},this._fpgmState=this._prepState=void 0,this._errorState=0}function II(r){return r}function c0(r){return Math.sign(r)*Math.round(Math.abs(r))}function OI(r){return Math.sign(r)*Math.round(Math.abs(r*2))/2}function LI(r){return Math.sign(r)*(Math.round(Math.abs(r)+.5)-.5)}function NI(r){return Math.sign(r)*Math.ceil(Math.abs(r))}function PI(r){return Math.sign(r)*Math.floor(Math.abs(r))}var u0=function(r){var t=this.srPeriod,e=this.srPhase,n=this.srThreshold,o=1;return r<0&&(r=-r,o=-1),r+=n-e,r=Math.trunc(r/t)*t,r+=e,r<0?e*o:r*o},jr={x:1,y:0,axis:"x",distance:function(r,t,e,n){return(e?r.xo:r.x)-(n?t.xo:t.x)},interpolate:function(r,t,e,n){var o,i,a,s,l,u,c;if(!n||n===this){if(o=r.xo-t.xo,i=r.xo-e.xo,l=t.x-t.xo,u=e.x-e.xo,a=Math.abs(o),s=Math.abs(i),c=a+s,c===0){r.x=r.xo+(l+u)/2;return}r.x=r.xo+(l*s+u*a)/c;return}if(o=n.distance(r,t,!0,!0),i=n.distance(r,e,!0,!0),l=n.distance(t,t,!1,!0),u=n.distance(e,e,!1,!0),a=Math.abs(o),s=Math.abs(i),c=a+s,c===0){jr.setRelative(r,r,(l+u)/2,n,!0);return}jr.setRelative(r,r,(l*s+u*a)/c,n,!0)},normalSlope:Number.NEGATIVE_INFINITY,setRelative:function(r,t,e,n,o){if(!n||n===this){r.x=(o?t.xo:t.x)+e;return}var i=o?t.xo:t.x,a=o?t.yo:t.y,s=i+e*n.x,l=a+e*n.y;r.x=s+(r.y-l)/n.normalSlope},slope:0,touch:function(r){r.xTouched=!0},touched:function(r){return r.xTouched},untouch:function(r){r.xTouched=!1}},on={x:0,y:1,axis:"y",distance:function(r,t,e,n){return(e?r.yo:r.y)-(n?t.yo:t.y)},interpolate:function(r,t,e,n){var o,i,a,s,l,u,c;if(!n||n===this){if(o=r.yo-t.yo,i=r.yo-e.yo,l=t.y-t.yo,u=e.y-e.yo,a=Math.abs(o),s=Math.abs(i),c=a+s,c===0){r.y=r.yo+(l+u)/2;return}r.y=r.yo+(l*s+u*a)/c;return}if(o=n.distance(r,t,!0,!0),i=n.distance(r,e,!0,!0),l=n.distance(t,t,!1,!0),u=n.distance(e,e,!1,!0),a=Math.abs(o),s=Math.abs(i),c=a+s,c===0){on.setRelative(r,r,(l+u)/2,n,!0);return}on.setRelative(r,r,(l*s+u*a)/c,n,!0)},normalSlope:0,setRelative:function(r,t,e,n,o){if(!n||n===this){r.y=(o?t.yo:t.y)+e;return}var i=o?t.xo:t.x,a=o?t.yo:t.y,s=i+e*n.x,l=a+e*n.y;r.y=l+n.normalSlope*(r.x-s)},slope:Number.POSITIVE_INFINITY,touch:function(r){r.yTouched=!0},touched:function(r){return r.yTouched},untouch:function(r){r.yTouched=!1}};Object.freeze(jr);Object.freeze(on);function Ra(r,t){this.x=r,this.y=t,this.axis=void 0,this.slope=t/r,this.normalSlope=-r/t,Object.freeze(this)}Ra.prototype.distance=function(r,t,e,n){return this.x*jr.distance(r,t,e,n)+this.y*on.distance(r,t,e,n)};Ra.prototype.interpolate=function(r,t,e,n){var o,i,a,s,l,u,c;if(a=n.distance(r,t,!0,!0),s=n.distance(r,e,!0,!0),o=n.distance(t,t,!1,!0),i=n.distance(e,e,!1,!0),l=Math.abs(a),u=Math.abs(s),c=l+u,c===0){this.setRelative(r,r,(o+i)/2,n,!0);return}this.setRelative(r,r,(o*u+i*l)/c,n,!0)};Ra.prototype.setRelative=function(r,t,e,n,o){n=n||this;var i=o?t.xo:t.x,a=o?t.yo:t.y,s=i+e*n.x,l=a+e*n.y,u=n.normalSlope,c=this.slope,p=r.x,f=r.y;r.x=(c*p-u*s+l-f)/(c-u),r.y=c*(r.x-p)+f};Ra.prototype.touch=function(r){r.xTouched=!0,r.yTouched=!0};function ka(r,t){var e=Math.sqrt(r*r+t*t);return r/=e,t/=e,r===1&&t===0?jr:r===0&&t===1?on:new Ra(r,t)}function an(r,t,e,n){this.x=this.xo=Math.round(r*64)/64,this.y=this.yo=Math.round(t*64)/64,this.lastPointOfContour=e,this.onCurve=n,this.prevPointOnContour=void 0,this.nextPointOnContour=void 0,this.xTouched=!1,this.yTouched=!1,Object.preventExtensions(this)}an.prototype.nextTouched=function(r){for(var t=this.nextPointOnContour;!r.touched(t)&&t!==this;)t=t.nextPointOnContour;return t};an.prototype.prevTouched=function(r){for(var t=this.prevPointOnContour;!r.touched(t)&&t!==this;)t=t.prevPointOnContour;return t};var Da=Object.freeze(new an(0,0)),MI={cvCutIn:17/16,deltaBase:9,deltaShift:.125,loop:1,minDis:1,autoFlip:!0};function Dn(r,t){switch(this.env=r,this.stack=[],this.prog=t,r){case"glyf":this.zp0=this.zp1=this.zp2=1,this.rp0=this.rp1=this.rp2=0;case"prep":this.fv=this.pv=this.dpv=jr,this.round=c0}}l0.prototype.exec=function(r,t){if(typeof t!="number")throw new Error("Point size is not a number!");if(!(this._errorState>2)){var e=this.font,n=this._prepState;if(!n||n.ppem!==t){var o=this._fpgmState;if(!o){Dn.prototype=MI,o=this._fpgmState=new Dn("fpgm",e.tables.fpgm),o.funcs=[],o.font=e,exports.DEBUG&&(console.log("---EXEC FPGM---"),o.step=-1);try{lo(o)}catch(u){console.log("Hinting error in FPGM:"+u),this._errorState=3;return}}Dn.prototype=o,n=this._prepState=new Dn("prep",e.tables.prep),n.ppem=t;var i=e.tables.cvt;if(i)for(var a=n.cvt=new Array(i.length),s=t/e.unitsPerEm,l=0;l<i.length;l++)a[l]=i[l]*s;else n.cvt=[];exports.DEBUG&&(console.log("---EXEC PREP---"),n.step=-1);try{lo(n)}catch(u){this._errorState<2&&console.log("Hinting error in PREP:"+u),this._errorState=2}}if(!(this._errorState>1))try{return s0(r,n)}catch(u){this._errorState<1&&(console.log("Hinting error:"+u),console.log("Note: further hinting errors are silenced")),this._errorState=1;return}}};s0=function(r,t){var e=t.ppem/t.font.unitsPerEm,n=e,o=r.components,i,a,s;if(Dn.prototype=t,!o)s=new Dn("glyf",r.instructions),exports.DEBUG&&(console.log("---EXEC GLYPH---"),s.step=-1),cp(r,s,e,n),a=s.gZone;else{var l=t.font;a=[],i=[];for(var u=0;u<o.length;u++){var c=o[u],p=l.glyphs.get(c.glyphIndex);s=new Dn("glyf",p.instructions),exports.DEBUG&&(console.log("---EXEC COMP "+u+"---"),s.step=-1),cp(p,s,e,n);for(var f=Math.round(c.dx*e),d=Math.round(c.dy*n),h=s.gZone,m=s.contours,g=0;g<h.length;g++){var v=h[g];v.xTouched=v.yTouched=!1,v.xo=v.x=v.x+f,v.yo=v.y=v.y+d}var x=a.length;a.push.apply(a,h);for(var S=0;S<m.length;S++)i.push(m[S]+x)}r.instructions&&!s.inhibitGridFit&&(s=new Dn("glyf",r.instructions),s.gZone=s.z0=s.z1=s.z2=a,s.contours=i,a.push(new an(0,0),new an(Math.round(r.advanceWidth*e),0)),exports.DEBUG&&(console.log("---EXEC COMPOSITE---"),s.step=-1),lo(s),a.length-=2)}return a};cp=function(r,t,e,n){for(var o=r.points||[],i=o.length,a=t.gZone=t.z0=t.z1=t.z2=[],s=t.contours=[],l,u=0;u<i;u++)l=o[u],a[u]=new an(l.x*e,l.y*n,l.lastPointOfContour,l.onCurve);for(var c,p,f=0;f<i;f++)l=a[f],c||(c=l,s.push(f)),l.lastPointOfContour?(l.nextPointOnContour=c,c.prevPointOnContour=l,c=void 0):(p=a[f+1],l.nextPointOnContour=p,p.prevPointOnContour=l);if(!t.inhibitGridFit){if(exports.DEBUG){console.log("PROCESSING GLYPH",t.stack);for(var d=0;d<i;d++)console.log(d,a[d].x,a[d].y)}if(a.push(new an(0,0),new an(Math.round(r.advanceWidth*e),0)),lo(t),a.length-=2,exports.DEBUG){console.log("FINISHED GLYPH",t.stack);for(var h=0;h<i;h++)console.log(h,a[h].x,a[h].y)}}};lo=function(r){var t=r.prog;if(!!t){var e=t.length,n;for(r.ip=0;r.ip<e;r.ip++){if(exports.DEBUG&&r.step++,n=a0[t[r.ip]],!n)throw new Error("unknown instruction: 0x"+Number(t[r.ip]).toString(16));n(r)}}};function Wl(r){for(var t=r.tZone=new Array(r.gZone.length),e=0;e<t.length;e++)t[e]=new an(0,0)}function p0(r,t){var e=r.prog,n=r.ip,o=1,i;do if(i=e[++n],i===88)o++;else if(i===89)o--;else if(i===64)n+=e[n+1]+1;else if(i===65)n+=2*e[n+1]+1;else if(i>=176&&i<=183)n+=i-176+1;else if(i>=184&&i<=191)n+=(i-184+1)*2;else if(t&&o===1&&i===27)break;while(o>0);r.ip=n}function ny(r,t){exports.DEBUG&&console.log(t.step,"SVTCA["+r.axis+"]"),t.fv=t.pv=t.dpv=r}function oy(r,t){exports.DEBUG&&console.log(t.step,"SPVTCA["+r.axis+"]"),t.pv=t.dpv=r}function iy(r,t){exports.DEBUG&&console.log(t.step,"SFVTCA["+r.axis+"]"),t.fv=r}function ay(r,t){var e=t.stack,n=e.pop(),o=e.pop(),i=t.z2[n],a=t.z1[o];exports.DEBUG&&console.log("SPVTL["+r+"]",n,o);var s,l;r?(s=i.y-a.y,l=a.x-i.x):(s=a.x-i.x,l=a.y-i.y),t.pv=t.dpv=ka(s,l)}function sy(r,t){var e=t.stack,n=e.pop(),o=e.pop(),i=t.z2[n],a=t.z1[o];exports.DEBUG&&console.log("SFVTL["+r+"]",n,o);var s,l;r?(s=i.y-a.y,l=a.x-i.x):(s=a.x-i.x,l=a.y-i.y),t.fv=ka(s,l)}function EI(r){var t=r.stack,e=t.pop(),n=t.pop();exports.DEBUG&&console.log(r.step,"SPVFS[]",e,n),r.pv=r.dpv=ka(n,e)}function DI(r){var t=r.stack,e=t.pop(),n=t.pop();exports.DEBUG&&console.log(r.step,"SPVFS[]",e,n),r.fv=ka(n,e)}function BI(r){var t=r.stack,e=r.pv;exports.DEBUG&&console.log(r.step,"GPV[]"),t.push(e.x*16384),t.push(e.y*16384)}function FI(r){var t=r.stack,e=r.fv;exports.DEBUG&&console.log(r.step,"GFV[]"),t.push(e.x*16384),t.push(e.y*16384)}function RI(r){r.fv=r.pv,exports.DEBUG&&console.log(r.step,"SFVTPV[]")}function kI(r){var t=r.stack,e=t.pop(),n=t.pop(),o=t.pop(),i=t.pop(),a=t.pop(),s=r.z0,l=r.z1,u=s[e],c=s[n],p=l[o],f=l[i],d=r.z2[a];exports.DEBUG&&console.log("ISECT[], ",e,n,o,i,a);var h=u.x,m=u.y,g=c.x,v=c.y,x=p.x,S=p.y,w=f.x,b=f.y,_=(h-g)*(S-b)-(m-v)*(x-w),T=h*v-m*g,y=x*b-S*w;d.x=(T*(x-w)-y*(h-g))/_,d.y=(T*(S-b)-y*(m-v))/_}function GI(r){r.rp0=r.stack.pop(),exports.DEBUG&&console.log(r.step,"SRP0[]",r.rp0)}function UI(r){r.rp1=r.stack.pop(),exports.DEBUG&&console.log(r.step,"SRP1[]",r.rp1)}function VI(r){r.rp2=r.stack.pop(),exports.DEBUG&&console.log(r.step,"SRP2[]",r.rp2)}function zI(r){var t=r.stack.pop();switch(exports.DEBUG&&console.log(r.step,"SZP0[]",t),r.zp0=t,t){case 0:r.tZone||Wl(r),r.z0=r.tZone;break;case 1:r.z0=r.gZone;break;default:throw new Error("Invalid zone pointer")}}function jI(r){var t=r.stack.pop();switch(exports.DEBUG&&console.log(r.step,"SZP1[]",t),r.zp1=t,t){case 0:r.tZone||Wl(r),r.z1=r.tZone;break;case 1:r.z1=r.gZone;break;default:throw new Error("Invalid zone pointer")}}function HI(r){var t=r.stack.pop();switch(exports.DEBUG&&console.log(r.step,"SZP2[]",t),r.zp2=t,t){case 0:r.tZone||Wl(r),r.z2=r.tZone;break;case 1:r.z2=r.gZone;break;default:throw new Error("Invalid zone pointer")}}function WI(r){var t=r.stack.pop();switch(exports.DEBUG&&console.log(r.step,"SZPS[]",t),r.zp0=r.zp1=r.zp2=t,t){case 0:r.tZone||Wl(r),r.z0=r.z1=r.z2=r.tZone;break;case 1:r.z0=r.z1=r.z2=r.gZone;break;default:throw new Error("Invalid zone pointer")}}function qI(r){r.loop=r.stack.pop(),exports.DEBUG&&console.log(r.step,"SLOOP[]",r.loop)}function XI(r){exports.DEBUG&&console.log(r.step,"RTG[]"),r.round=c0}function YI(r){exports.DEBUG&&console.log(r.step,"RTHG[]"),r.round=LI}function $I(r){var t=r.stack.pop();exports.DEBUG&&console.log(r.step,"SMD[]",t),r.minDis=t/64}function KI(r){exports.DEBUG&&console.log(r.step,"ELSE[]"),p0(r,!1)}function ZI(r){var t=r.stack.pop();exports.DEBUG&&console.log(r.step,"JMPR[]",t),r.ip+=t-1}function QI(r){var t=r.stack.pop();exports.DEBUG&&console.log(r.step,"SCVTCI[]",t),r.cvCutIn=t/64}function JI(r){var t=r.stack;exports.DEBUG&&console.log(r.step,"DUP[]"),t.push(t[t.length-1])}function Ku(r){exports.DEBUG&&console.log(r.step,"POP[]"),r.stack.pop()}function eO(r){exports.DEBUG&&console.log(r.step,"CLEAR[]"),r.stack.length=0}function tO(r){var t=r.stack,e=t.pop(),n=t.pop();exports.DEBUG&&console.log(r.step,"SWAP[]"),t.push(e),t.push(n)}function rO(r){var t=r.stack;exports.DEBUG&&console.log(r.step,"DEPTH[]"),t.push(t.length)}function nO(r){var t=r.stack,e=t.pop(),n=t.pop();exports.DEBUG&&console.log(r.step,"LOOPCALL[]",e,n);var o=r.ip,i=r.prog;r.prog=r.funcs[e];for(var a=0;a<n;a++)lo(r),exports.DEBUG&&console.log(++r.step,a+1<n?"next loopcall":"done loopcall",a);r.ip=o,r.prog=i}function oO(r){var t=r.stack.pop();exports.DEBUG&&console.log(r.step,"CALL[]",t);var e=r.ip,n=r.prog;r.prog=r.funcs[t],lo(r),r.ip=e,r.prog=n,exports.DEBUG&&console.log(++r.step,"returning from",t)}function iO(r){var t=r.stack,e=t.pop();exports.DEBUG&&console.log(r.step,"CINDEX[]",e),t.push(t[t.length-e])}function aO(r){var t=r.stack,e=t.pop();exports.DEBUG&&console.log(r.step,"MINDEX[]",e),t.push(t.splice(t.length-e,1)[0])}function sO(r){if(r.env!=="fpgm")throw new Error("FDEF not allowed here");var t=r.stack,e=r.prog,n=r.ip,o=t.pop(),i=n;for(exports.DEBUG&&console.log(r.step,"FDEF[]",o);e[++n]!==45;);r.ip=n,r.funcs[o]=e.slice(i+1,n)}function ly(r,t){var e=t.stack.pop(),n=t.z0[e],o=t.fv,i=t.pv;exports.DEBUG&&console.log(t.step,"MDAP["+r+"]",e);var a=i.distance(n,Da);r&&(a=t.round(a)),o.setRelative(n,Da,a,i),o.touch(n),t.rp0=t.rp1=e}function cy(r,t){var e=t.z2,n=e.length-2,o,i,a;exports.DEBUG&&console.log(t.step,"IUP["+r.axis+"]");for(var s=0;s<n;s++)o=e[s],!r.touched(o)&&(i=o.prevTouched(r),i!==o&&(a=o.nextTouched(r),i===a&&r.setRelative(o,o,r.distance(i,i,!1,!0),r,!0),r.interpolate(o,i,a,r)))}function uy(r,t){for(var e=t.stack,n=r?t.rp1:t.rp2,o=(r?t.z0:t.z1)[n],i=t.fv,a=t.pv,s=t.loop,l=t.z2;s--;){var u=e.pop(),c=l[u],p=a.distance(o,o,!1,!0);i.setRelative(c,c,p,a),i.touch(c),exports.DEBUG&&console.log(t.step,(t.loop>1?"loop "+(t.loop-s)+": ":"")+"SHP["+(r?"rp1":"rp2")+"]",u)}t.loop=1}function py(r,t){var e=t.stack,n=r?t.rp1:t.rp2,o=(r?t.z0:t.z1)[n],i=t.fv,a=t.pv,s=e.pop(),l=t.z2[t.contours[s]],u=l;exports.DEBUG&&console.log(t.step,"SHC["+r+"]",s);var c=a.distance(o,o,!1,!0);do u!==o&&i.setRelative(u,u,c,a),u=u.nextPointOnContour;while(u!==l)}function fy(r,t){var e=t.stack,n=r?t.rp1:t.rp2,o=(r?t.z0:t.z1)[n],i=t.fv,a=t.pv,s=e.pop();exports.DEBUG&&console.log(t.step,"SHZ["+r+"]",s);var l;switch(s){case 0:l=t.tZone;break;case 1:l=t.gZone;break;default:throw new Error("Invalid zone")}for(var u,c=a.distance(o,o,!1,!0),p=l.length-2,f=0;f<p;f++)u=l[f],i.setRelative(u,u,c,a)}function lO(r){for(var t=r.stack,e=r.loop,n=r.fv,o=t.pop()/64,i=r.z2;e--;){var a=t.pop(),s=i[a];exports.DEBUG&&console.log(r.step,(r.loop>1?"loop "+(r.loop-e)+": ":"")+"SHPIX[]",a,o),n.setRelative(s,s,o),n.touch(s)}r.loop=1}function cO(r){for(var t=r.stack,e=r.rp1,n=r.rp2,o=r.loop,i=r.z0[e],a=r.z1[n],s=r.fv,l=r.dpv,u=r.z2;o--;){var c=t.pop(),p=u[c];exports.DEBUG&&console.log(r.step,(r.loop>1?"loop "+(r.loop-o)+": ":"")+"IP[]",c,e,"<->",n),s.interpolate(p,i,a,l),s.touch(p)}r.loop=1}function dy(r,t){var e=t.stack,n=e.pop()/64,o=e.pop(),i=t.z1[o],a=t.z0[t.rp0],s=t.fv,l=t.pv;s.setRelative(i,a,n,l),s.touch(i),exports.DEBUG&&console.log(t.step,"MSIRP["+r+"]",n,o),t.rp1=t.rp0,t.rp2=o,r&&(t.rp0=o)}function uO(r){for(var t=r.stack,e=r.rp0,n=r.z0[e],o=r.loop,i=r.fv,a=r.pv,s=r.z1;o--;){var l=t.pop(),u=s[l];exports.DEBUG&&console.log(r.step,(r.loop>1?"loop "+(r.loop-o)+": ":"")+"ALIGNRP[]",l),i.setRelative(u,n,0,a),i.touch(u)}r.loop=1}function pO(r){exports.DEBUG&&console.log(r.step,"RTDG[]"),r.round=OI}function hy(r,t){var e=t.stack,n=e.pop(),o=e.pop(),i=t.z0[o],a=t.fv,s=t.pv,l=t.cvt[n];exports.DEBUG&&console.log(t.step,"MIAP["+r+"]",n,"(",l,")",o);var u=s.distance(i,Da);r&&(Math.abs(u-l)<t.cvCutIn&&(u=l),u=t.round(u)),a.setRelative(i,Da,u,s),t.zp0===0&&(i.xo=i.x,i.yo=i.y),a.touch(i),t.rp0=t.rp1=o}function fO(r){var t=r.prog,e=r.ip,n=r.stack,o=t[++e];exports.DEBUG&&console.log(r.step,"NPUSHB[]",o);for(var i=0;i<o;i++)n.push(t[++e]);r.ip=e}function dO(r){var t=r.ip,e=r.prog,n=r.stack,o=e[++t];exports.DEBUG&&console.log(r.step,"NPUSHW[]",o);for(var i=0;i<o;i++){var a=e[++t]<<8|e[++t];a&32768&&(a=-((a^65535)+1)),n.push(a)}r.ip=t}function hO(r){var t=r.stack,e=r.store;e||(e=r.store=[]);var n=t.pop(),o=t.pop();exports.DEBUG&&console.log(r.step,"WS",n,o),e[o]=n}function mO(r){var t=r.stack,e=r.store,n=t.pop();exports.DEBUG&&console.log(r.step,"RS",n);var o=e&&e[n]||0;t.push(o)}function gO(r){var t=r.stack,e=t.pop(),n=t.pop();exports.DEBUG&&console.log(r.step,"WCVTP",e,n),r.cvt[n]=e/64}function yO(r){var t=r.stack,e=t.pop();exports.DEBUG&&console.log(r.step,"RCVT",e),t.push(r.cvt[e]*64)}function my(r,t){var e=t.stack,n=e.pop(),o=t.z2[n];exports.DEBUG&&console.log(t.step,"GC["+r+"]",n),e.push(t.dpv.distance(o,Da,r,!1)*64)}function gy(r,t){var e=t.stack,n=e.pop(),o=e.pop(),i=t.z1[n],a=t.z0[o],s=t.dpv.distance(a,i,r,r);exports.DEBUG&&console.log(t.step,"MD["+r+"]",n,o,"->",s),t.stack.push(Math.round(s*64))}function vO(r){exports.DEBUG&&console.log(r.step,"MPPEM[]"),r.stack.push(r.ppem)}function xO(r){exports.DEBUG&&console.log(r.step,"FLIPON[]"),r.autoFlip=!0}function bO(r){var t=r.stack,e=t.pop(),n=t.pop();exports.DEBUG&&console.log(r.step,"LT[]",e,n),t.push(n<e?1:0)}function SO(r){var t=r.stack,e=t.pop(),n=t.pop();exports.DEBUG&&console.log(r.step,"LTEQ[]",e,n),t.push(n<=e?1:0)}function wO(r){var t=r.stack,e=t.pop(),n=t.pop();exports.DEBUG&&console.log(r.step,"GT[]",e,n),t.push(n>e?1:0)}function TO(r){var t=r.stack,e=t.pop(),n=t.pop();exports.DEBUG&&console.log(r.step,"GTEQ[]",e,n),t.push(n>=e?1:0)}function CO(r){var t=r.stack,e=t.pop(),n=t.pop();exports.DEBUG&&console.log(r.step,"EQ[]",e,n),t.push(e===n?1:0)}function AO(r){var t=r.stack,e=t.pop(),n=t.pop();exports.DEBUG&&console.log(r.step,"NEQ[]",e,n),t.push(e!==n?1:0)}function _O(r){var t=r.stack,e=t.pop();exports.DEBUG&&console.log(r.step,"ODD[]",e),t.push(Math.trunc(e)%2?1:0)}function IO(r){var t=r.stack,e=t.pop();exports.DEBUG&&console.log(r.step,"EVEN[]",e),t.push(Math.trunc(e)%2?0:1)}function OO(r){var t=r.stack.pop();exports.DEBUG&&console.log(r.step,"IF[]",t),t||(p0(r,!0),exports.DEBUG&&console.log(r.step,"EIF[]"))}function LO(r){exports.DEBUG&&console.log(r.step,"EIF[]")}function NO(r){var t=r.stack,e=t.pop(),n=t.pop();exports.DEBUG&&console.log(r.step,"AND[]",e,n),t.push(e&&n?1:0)}function PO(r){var t=r.stack,e=t.pop(),n=t.pop();exports.DEBUG&&console.log(r.step,"OR[]",e,n),t.push(e||n?1:0)}function MO(r){var t=r.stack,e=t.pop();exports.DEBUG&&console.log(r.step,"NOT[]",e),t.push(e?0:1)}function Zu(r,t){var e=t.stack,n=e.pop(),o=t.fv,i=t.pv,a=t.ppem,s=t.deltaBase+(r-1)*16,l=t.deltaShift,u=t.z0;exports.DEBUG&&console.log(t.step,"DELTAP["+r+"]",n,e);for(var c=0;c<n;c++){var p=e.pop(),f=e.pop(),d=s+((f&240)>>4);if(d===a){var h=(f&15)-8;h>=0&&h++,exports.DEBUG&&console.log(t.step,"DELTAPFIX",p,"by",h*l);var m=u[p];o.setRelative(m,m,h*l,i)}}}function EO(r){var t=r.stack,e=t.pop();exports.DEBUG&&console.log(r.step,"SDB[]",e),r.deltaBase=e}function DO(r){var t=r.stack,e=t.pop();exports.DEBUG&&console.log(r.step,"SDS[]",e),r.deltaShift=Math.pow(.5,e)}function BO(r){var t=r.stack,e=t.pop(),n=t.pop();exports.DEBUG&&console.log(r.step,"ADD[]",e,n),t.push(n+e)}function FO(r){var t=r.stack,e=t.pop(),n=t.pop();exports.DEBUG&&console.log(r.step,"SUB[]",e,n),t.push(n-e)}function RO(r){var t=r.stack,e=t.pop(),n=t.pop();exports.DEBUG&&console.log(r.step,"DIV[]",e,n),t.push(n*64/e)}function kO(r){var t=r.stack,e=t.pop(),n=t.pop();exports.DEBUG&&console.log(r.step,"MUL[]",e,n),t.push(n*e/64)}function GO(r){var t=r.stack,e=t.pop();exports.DEBUG&&console.log(r.step,"ABS[]",e),t.push(Math.abs(e))}function UO(r){var t=r.stack,e=t.pop();exports.DEBUG&&console.log(r.step,"NEG[]",e),t.push(-e)}function VO(r){var t=r.stack,e=t.pop();exports.DEBUG&&console.log(r.step,"FLOOR[]",e),t.push(Math.floor(e/64)*64)}function zO(r){var t=r.stack,e=t.pop();exports.DEBUG&&console.log(r.step,"CEILING[]",e),t.push(Math.ceil(e/64)*64)}function Fl(r,t){var e=t.stack,n=e.pop();exports.DEBUG&&console.log(t.step,"ROUND[]"),e.push(t.round(n/64)*64)}function jO(r){var t=r.stack,e=t.pop(),n=t.pop();exports.DEBUG&&console.log(r.step,"WCVTF[]",e,n),r.cvt[n]=e*r.ppem/r.font.unitsPerEm}function Qu(r,t){var e=t.stack,n=e.pop(),o=t.ppem,i=t.deltaBase+(r-1)*16,a=t.deltaShift;exports.DEBUG&&console.log(t.step,"DELTAC["+r+"]",n,e);for(var s=0;s<n;s++){var l=e.pop(),u=e.pop(),c=i+((u&240)>>4);if(c===o){var p=(u&15)-8;p>=0&&p++;var f=p*a;exports.DEBUG&&console.log(t.step,"DELTACFIX",l,"by",f),t.cvt[l]+=f}}}function HO(r){var t=r.stack.pop();exports.DEBUG&&console.log(r.step,"SROUND[]",t),r.round=u0;var e;switch(t&192){case 0:e=.5;break;case 64:e=1;break;case 128:e=2;break;default:throw new Error("invalid SROUND value")}switch(r.srPeriod=e,t&48){case 0:r.srPhase=0;break;case 16:r.srPhase=.25*e;break;case 32:r.srPhase=.5*e;break;case 48:r.srPhase=.75*e;break;default:throw new Error("invalid SROUND value")}t&=15,t===0?r.srThreshold=0:r.srThreshold=(t/8-.5)*e}function WO(r){var t=r.stack.pop();exports.DEBUG&&console.log(r.step,"S45ROUND[]",t),r.round=u0;var e;switch(t&192){case 0:e=Math.sqrt(2)/2;break;case 64:e=Math.sqrt(2);break;case 128:e=2*Math.sqrt(2);break;default:throw new Error("invalid S45ROUND value")}switch(r.srPeriod=e,t&48){case 0:r.srPhase=0;break;case 16:r.srPhase=.25*e;break;case 32:r.srPhase=.5*e;break;case 48:r.srPhase=.75*e;break;default:throw new Error("invalid S45ROUND value")}t&=15,t===0?r.srThreshold=0:r.srThreshold=(t/8-.5)*e}function qO(r){exports.DEBUG&&console.log(r.step,"ROFF[]"),r.round=II}function XO(r){exports.DEBUG&&console.log(r.step,"RUTG[]"),r.round=NI}function YO(r){exports.DEBUG&&console.log(r.step,"RDTG[]"),r.round=PI}function $O(r){var t=r.stack.pop();exports.DEBUG&&console.log(r.step,"SCANCTRL[]",t)}function yy(r,t){var e=t.stack,n=e.pop(),o=e.pop(),i=t.z2[n],a=t.z1[o];exports.DEBUG&&console.log(t.step,"SDPVTL["+r+"]",n,o);var s,l;r?(s=i.y-a.y,l=a.x-i.x):(s=a.x-i.x,l=a.y-i.y),t.dpv=ka(s,l)}function KO(r){var t=r.stack,e=t.pop(),n=0;exports.DEBUG&&console.log(r.step,"GETINFO[]",e),e&1&&(n=35),e&32&&(n|=4096),t.push(n)}function ZO(r){var t=r.stack,e=t.pop(),n=t.pop(),o=t.pop();exports.DEBUG&&console.log(r.step,"ROLL[]"),t.push(n),t.push(e),t.push(o)}function QO(r){var t=r.stack,e=t.pop(),n=t.pop();exports.DEBUG&&console.log(r.step,"MAX[]",e,n),t.push(Math.max(n,e))}function JO(r){var t=r.stack,e=t.pop(),n=t.pop();exports.DEBUG&&console.log(r.step,"MIN[]",e,n),t.push(Math.min(n,e))}function eL(r){var t=r.stack.pop();exports.DEBUG&&console.log(r.step,"SCANTYPE[]",t)}function tL(r){var t=r.stack.pop(),e=r.stack.pop();switch(exports.DEBUG&&console.log(r.step,"INSTCTRL[]",t,e),t){case 1:r.inhibitGridFit=!!e;return;case 2:r.ignoreCvt=!!e;return;default:throw new Error("invalid INSTCTRL[] selector")}}function Pn(r,t){var e=t.stack,n=t.prog,o=t.ip;exports.DEBUG&&console.log(t.step,"PUSHB["+r+"]");for(var i=0;i<r;i++)e.push(n[++o]);t.ip=o}function Mn(r,t){var e=t.ip,n=t.prog,o=t.stack;exports.DEBUG&&console.log(t.ip,"PUSHW["+r+"]");for(var i=0;i<r;i++){var a=n[++e]<<8|n[++e];a&32768&&(a=-((a^65535)+1)),o.push(a)}t.ip=e}function ce(r,t,e,n,o,i){var a=i.stack,s=r&&a.pop(),l=a.pop(),u=i.rp0,c=i.z0[u],p=i.z1[l],f=i.minDis,d=i.fv,h=i.dpv,m,g,v,x;g=m=h.distance(p,c,!0,!0),v=g>=0?1:-1,g=Math.abs(g),r&&(x=i.cvt[s],n&&Math.abs(g-x)<i.cvCutIn&&(g=x)),e&&g<f&&(g=f),n&&(g=i.round(g)),d.setRelative(p,c,v*g,h),d.touch(p),exports.DEBUG&&console.log(i.step,(r?"MIRP[":"MDRP[")+(t?"M":"m")+(e?">":"_")+(n?"R":"_")+(o===0?"Gr":o===1?"Bl":o===2?"Wh":"")+"]",r?s+"("+i.cvt[s]+","+x+")":"",l,"(d =",m,"->",v*g,")"),i.rp1=i.rp0,i.rp2=l,t&&(i.rp0=l)}a0=[ny.bind(void 0,on),ny.bind(void 0,jr),oy.bind(void 0,on),oy.bind(void 0,jr),iy.bind(void 0,on),iy.bind(void 0,jr),ay.bind(void 0,0),ay.bind(void 0,1),sy.bind(void 0,0),sy.bind(void 0,1),EI,DI,BI,FI,RI,kI,GI,UI,VI,zI,jI,HI,WI,qI,XI,YI,$I,KI,ZI,QI,void 0,void 0,JI,Ku,eO,tO,rO,iO,aO,void 0,void 0,void 0,nO,oO,sO,void 0,ly.bind(void 0,0),ly.bind(void 0,1),cy.bind(void 0,on),cy.bind(void 0,jr),uy.bind(void 0,0),uy.bind(void 0,1),py.bind(void 0,0),py.bind(void 0,1),fy.bind(void 0,0),fy.bind(void 0,1),lO,cO,dy.bind(void 0,0),dy.bind(void 0,1),uO,pO,hy.bind(void 0,0),hy.bind(void 0,1),fO,dO,hO,mO,gO,yO,my.bind(void 0,0),my.bind(void 0,1),void 0,gy.bind(void 0,0),gy.bind(void 0,1),vO,void 0,xO,void 0,void 0,bO,SO,wO,TO,CO,AO,_O,IO,OO,LO,NO,PO,MO,Zu.bind(void 0,1),EO,DO,BO,FO,RO,kO,GO,UO,VO,zO,Fl.bind(void 0,0),Fl.bind(void 0,1),Fl.bind(void 0,2),Fl.bind(void 0,3),void 0,void 0,void 0,void 0,jO,Zu.bind(void 0,2),Zu.bind(void 0,3),Qu.bind(void 0,1),Qu.bind(void 0,2),Qu.bind(void 0,3),HO,WO,void 0,void 0,qO,void 0,XO,YO,Ku,Ku,void 0,void 0,void 0,void 0,void 0,$O,yy.bind(void 0,0),yy.bind(void 0,1),KO,void 0,ZO,QO,JO,eL,tL,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,Pn.bind(void 0,1),Pn.bind(void 0,2),Pn.bind(void 0,3),Pn.bind(void 0,4),Pn.bind(void 0,5),Pn.bind(void 0,6),Pn.bind(void 0,7),Pn.bind(void 0,8),Mn.bind(void 0,1),Mn.bind(void 0,2),Mn.bind(void 0,3),Mn.bind(void 0,4),Mn.bind(void 0,5),Mn.bind(void 0,6),Mn.bind(void 0,7),Mn.bind(void 0,8),ce.bind(void 0,0,0,0,0,0),ce.bind(void 0,0,0,0,0,1),ce.bind(void 0,0,0,0,0,2),ce.bind(void 0,0,0,0,0,3),ce.bind(void 0,0,0,0,1,0),ce.bind(void 0,0,0,0,1,1),ce.bind(void 0,0,0,0,1,2),ce.bind(void 0,0,0,0,1,3),ce.bind(void 0,0,0,1,0,0),ce.bind(void 0,0,0,1,0,1),ce.bind(void 0,0,0,1,0,2),ce.bind(void 0,0,0,1,0,3),ce.bind(void 0,0,0,1,1,0),ce.bind(void 0,0,0,1,1,1),ce.bind(void 0,0,0,1,1,2),ce.bind(void 0,0,0,1,1,3),ce.bind(void 0,0,1,0,0,0),ce.bind(void 0,0,1,0,0,1),ce.bind(void 0,0,1,0,0,2),ce.bind(void 0,0,1,0,0,3),ce.bind(void 0,0,1,0,1,0),ce.bind(void 0,0,1,0,1,1),ce.bind(void 0,0,1,0,1,2),ce.bind(void 0,0,1,0,1,3),ce.bind(void 0,0,1,1,0,0),ce.bind(void 0,0,1,1,0,1),ce.bind(void 0,0,1,1,0,2),ce.bind(void 0,0,1,1,0,3),ce.bind(void 0,0,1,1,1,0),ce.bind(void 0,0,1,1,1,1),ce.bind(void 0,0,1,1,1,2),ce.bind(void 0,0,1,1,1,3),ce.bind(void 0,1,0,0,0,0),ce.bind(void 0,1,0,0,0,1),ce.bind(void 0,1,0,0,0,2),ce.bind(void 0,1,0,0,0,3),ce.bind(void 0,1,0,0,1,0),ce.bind(void 0,1,0,0,1,1),ce.bind(void 0,1,0,0,1,2),ce.bind(void 0,1,0,0,1,3),ce.bind(void 0,1,0,1,0,0),ce.bind(void 0,1,0,1,0,1),ce.bind(void 0,1,0,1,0,2),ce.bind(void 0,1,0,1,0,3),ce.bind(void 0,1,0,1,1,0),ce.bind(void 0,1,0,1,1,1),ce.bind(void 0,1,0,1,1,2),ce.bind(void 0,1,0,1,1,3),ce.bind(void 0,1,1,0,0,0),ce.bind(void 0,1,1,0,0,1),ce.bind(void 0,1,1,0,0,2),ce.bind(void 0,1,1,0,0,3),ce.bind(void 0,1,1,0,1,0),ce.bind(void 0,1,1,0,1,1),ce.bind(void 0,1,1,0,1,2),ce.bind(void 0,1,1,0,1,3),ce.bind(void 0,1,1,1,0,0),ce.bind(void 0,1,1,1,0,1),ce.bind(void 0,1,1,1,0,2),ce.bind(void 0,1,1,1,0,3),ce.bind(void 0,1,1,1,1,0),ce.bind(void 0,1,1,1,1,1),ce.bind(void 0,1,1,1,1,2),ce.bind(void 0,1,1,1,1,3)];function wi(r){this.char=r,this.state={},this.activeState=null}function vp(r,t,e){this.contextName=e,this.startIndex=r,this.endOffset=t}function rL(r,t,e){this.contextName=r,this.openRange=null,this.ranges=[],this.checkStart=t,this.checkEnd=e}function ur(r,t){this.context=r,this.index=t,this.length=r.length,this.current=r[t],this.backtrack=r.slice(0,t),this.lookahead=r.slice(t+1)}function ql(r){this.eventId=r,this.subscribers=[]}function nL(r){var t=this,e=["start","end","next","newToken","contextStart","contextEnd","insertToken","removeToken","removeRange","replaceToken","replaceRange","composeRUD","updateContextsRanges"];e.forEach(function(o){Object.defineProperty(t.events,o,{value:new ql(o)})}),r&&e.forEach(function(o){var i=r[o];typeof i=="function"&&t.events[o].subscribe(i)});var n=["insertToken","removeToken","removeRange","replaceToken","replaceRange","composeRUD"];n.forEach(function(o){t.events[o].subscribe(t.updateContextsRanges)})}function je(r){this.tokens=[],this.registeredContexts={},this.contextCheckers=[],this.events={},this.registeredModifiers=[],nL.call(this,r)}wi.prototype.setState=function(r,t){return this.state[r]=t,this.activeState={key:r,value:this.state[r]},this.activeState};wi.prototype.getState=function(r){return this.state[r]||null};je.prototype.inboundIndex=function(r){return r>=0&&r<this.tokens.length};je.prototype.composeRUD=function(r){var t=this,e=!0,n=r.map(function(i){return t[i[0]].apply(t,i.slice(1).concat(e))}),o=function(i){return typeof i=="object"&&i.hasOwnProperty("FAIL")};if(n.every(o))return{FAIL:"composeRUD: one or more operations hasn't completed successfully",report:n.filter(o)};this.dispatch("composeRUD",[n.filter(function(i){return!o(i)})])};je.prototype.replaceRange=function(r,t,e,n){t=t!==null?t:this.tokens.length;var o=e.every(function(a){return a instanceof wi});if(!isNaN(r)&&this.inboundIndex(r)&&o){var i=this.tokens.splice.apply(this.tokens,[r,t].concat(e));return n||this.dispatch("replaceToken",[r,t,e]),[i,e]}else return{FAIL:"replaceRange: invalid tokens or startIndex."}};je.prototype.replaceToken=function(r,t,e){if(!isNaN(r)&&this.inboundIndex(r)&&t instanceof wi){var n=this.tokens.splice(r,1,t);return e||this.dispatch("replaceToken",[r,t]),[n[0],t]}else return{FAIL:"replaceToken: invalid token or index."}};je.prototype.removeRange=function(r,t,e){t=isNaN(t)?this.tokens.length:t;var n=this.tokens.splice(r,t);return e||this.dispatch("removeRange",[n,r,t]),n};je.prototype.removeToken=function(r,t){if(!isNaN(r)&&this.inboundIndex(r)){var e=this.tokens.splice(r,1);return t||this.dispatch("removeToken",[e,r]),e}else return{FAIL:"removeToken: invalid token index."}};je.prototype.insertToken=function(r,t,e){var n=r.every(function(o){return o instanceof wi});return n?(this.tokens.splice.apply(this.tokens,[t,0].concat(r)),e||this.dispatch("insertToken",[r,t]),r):{FAIL:"insertToken: invalid token(s)."}};je.prototype.registerModifier=function(r,t,e){this.events.newToken.subscribe(function(n,o){var i=[n,o],a=t===null||t.apply(this,i)===!0,s=[n,o];if(a){var l=e.apply(this,s);n.setState(r,l)}}),this.registeredModifiers.push(r)};ql.prototype.subscribe=function(r){return typeof r=="function"?this.subscribers.push(r)-1:{FAIL:"invalid '"+this.eventId+"' event handler"}};ql.prototype.unsubscribe=function(r){this.subscribers.splice(r,1)};ur.prototype.setCurrentIndex=function(r){this.index=r,this.current=this.context[r],this.backtrack=this.context.slice(0,r),this.lookahead=this.context.slice(r+1)};ur.prototype.get=function(r){switch(!0){case r===0:return this.current;case(r<0&&Math.abs(r)<=this.backtrack.length):return this.backtrack.slice(r)[0];case(r>0&&r<=this.lookahead.length):return this.lookahead[r-1];default:return null}};je.prototype.rangeToText=function(r){if(r instanceof vp)return this.getRangeTokens(r).map(function(t){return t.char}).join("")};je.prototype.getText=function(){return this.tokens.map(function(r){return r.char}).join("")};je.prototype.getContext=function(r){var t=this.registeredContexts[r];return t||null};je.prototype.on=function(r,t){var e=this.events[r];return e?e.subscribe(t):null};je.prototype.dispatch=function(r,t){var e=this,n=this.events[r];n instanceof ql&&n.subscribers.forEach(function(o){o.apply(e,t||[])})};je.prototype.registerContextChecker=function(r,t,e){if(this.getContext(r))return{FAIL:"context name '"+r+"' is already registered."};if(typeof t!="function")return{FAIL:"missing context start check."};if(typeof e!="function")return{FAIL:"missing context end check."};var n=new rL(r,t,e);return this.registeredContexts[r]=n,this.contextCheckers.push(n),n};je.prototype.getRangeTokens=function(r){var t=r.startIndex+r.endOffset;return[].concat(this.tokens.slice(r.startIndex,t))};je.prototype.getContextRanges=function(r){var t=this.getContext(r);return t?t.ranges:{FAIL:"context checker '"+r+"' is not registered."}};je.prototype.resetContextsRanges=function(){var r=this.registeredContexts;for(var t in r)if(r.hasOwnProperty(t)){var e=r[t];e.ranges=[]}};je.prototype.updateContextsRanges=function(){this.resetContextsRanges();for(var r=this.tokens.map(function(n){return n.char}),t=0;t<r.length;t++){var e=new ur(r,t);this.runContextCheck(e)}this.dispatch("updateContextsRanges",[this.registeredContexts])};je.prototype.setEndOffset=function(r,t){var e=this.getContext(t).openRange.startIndex,n=new vp(e,r,t),o=this.getContext(t).ranges;return n.rangeId=t+"."+o.length,o.push(n),this.getContext(t).openRange=null,n};je.prototype.runContextCheck=function(r){var t=this,e=r.index;this.contextCheckers.forEach(function(n){var o=n.contextName,i=t.getContext(o).openRange;if(!i&&n.checkStart(r)&&(i=new vp(e,null,o),t.getContext(o).openRange=i,t.dispatch("contextStart",[o,e])),!!i&&n.checkEnd(r)){var a=e-i.startIndex+1,s=t.setEndOffset(a,o);t.dispatch("contextEnd",[o,s])}})};je.prototype.tokenize=function(r){this.tokens=[],this.resetContextsRanges();var t=Array.from(r);this.dispatch("start");for(var e=0;e<t.length;e++){var n=t[e],o=new ur(t,e);this.dispatch("next",[o]),this.runContextCheck(o);var i=new wi(n);this.tokens.push(i),this.dispatch("newToken",[i,o])}return this.dispatch("end",[this.tokens]),this.tokens};function Bn(r){return/[\u0600-\u065F\u066A-\u06D2\u06FA-\u06FF]/.test(r)}function f0(r){return/[\u0630\u0690\u0621\u0631\u0661\u0671\u0622\u0632\u0672\u0692\u06C2\u0623\u0673\u0693\u06C3\u0624\u0694\u06C4\u0625\u0675\u0695\u06C5\u06E5\u0676\u0696\u06C6\u0627\u0677\u0697\u06C7\u0648\u0688\u0698\u06C8\u0689\u0699\u06C9\u068A\u06CA\u066B\u068B\u06CB\u068C\u068D\u06CD\u06FD\u068E\u06EE\u06FE\u062F\u068F\u06CF\u06EF]/.test(r)}function Fn(r){return/[\u0600-\u0605\u060C-\u060E\u0610-\u061B\u061E\u064B-\u065F\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED]/.test(r)}function kl(r){return/[A-z]/.test(r)}function oL(r){return/\s/.test(r)}function kt(r){this.font=r,this.features={}}function so(r){this.id=r.id,this.tag=r.tag,this.substitution=r.substitution}function Ga(r,t){if(!r)return-1;switch(t.format){case 1:return t.glyphs.indexOf(r);case 2:for(var e=t.ranges,n=0;n<e.length;n++){var o=e[n];if(r>=o.start&&r<=o.end){var i=r-o.start;return o.index+i}}break;default:return-1}return-1}function iL(r,t){var e=Ga(r,t.coverage);return e===-1?null:r+t.deltaGlyphId}function aL(r,t){var e=Ga(r,t.coverage);return e===-1?null:t.substitute[e]}function Ju(r,t){for(var e=[],n=0;n<r.length;n++){var o=r[n],i=t.current;i=Array.isArray(i)?i[0]:i;var a=Ga(i,o);a!==-1&&e.push(a)}return e.length!==r.length?-1:e}function sL(r,t){var e=t.inputCoverage.length+t.lookaheadCoverage.length+t.backtrackCoverage.length;if(r.context.length<e)return[];var n=Ju(t.inputCoverage,r);if(n===-1)return[];var o=t.inputCoverage.length-1;if(r.lookahead.length<t.lookaheadCoverage.length)return[];for(var i=r.lookahead.slice(o);i.length&&Fn(i[0].char);)i.shift();var a=new ur(i,0),s=Ju(t.lookaheadCoverage,a),l=[].concat(r.backtrack);for(l.reverse();l.length&&Fn(l[0].char);)l.shift();if(l.length<t.backtrackCoverage.length)return[];var u=new ur(l,0),c=Ju(t.backtrackCoverage,u),p=n.length===t.inputCoverage.length&&s.length===t.lookaheadCoverage.length&&c.length===t.backtrackCoverage.length,f=[];if(p)for(var d=0;d<t.lookupRecords.length;d++)for(var h=t.lookupRecords[d],m=h.lookupListIndex,g=this.getLookupByIndex(m),v=0;v<g.subtables.length;v++){var x=g.subtables[v],S=this.getLookupMethod(g,x),w=this.getSubstitutionType(g,x);if(w==="12")for(var b=0;b<n.length;b++){var _=r.get(b),T=S(_);T&&f.push(T)}}return f}function lL(r,t){var e=r.current,n=Ga(e,t.coverage);if(n===-1)return null;for(var o,i=t.ligatureSets[n],a=0;a<i.length;a++){o=i[a];for(var s=0;s<o.components.length;s++){var l=r.lookahead[s],u=o.components[s];if(l!==u)break;if(s===o.components.length-1)return o}}return null}function cL(r,t){var e=Ga(r,t.coverage);return e===-1?null:t.sequences[e]}kt.prototype.getDefaultScriptFeaturesIndexes=function(){for(var r=this.font.tables.gsub.scripts,t=0;t<r.length;t++){var e=r[t];if(e.tag==="DFLT")return e.script.defaultLangSys.featureIndexes}return[]};kt.prototype.getScriptFeaturesIndexes=function(r){var t=this.font.tables;if(!t.gsub)return[];if(!r)return this.getDefaultScriptFeaturesIndexes();for(var e=this.font.tables.gsub.scripts,n=0;n<e.length;n++){var o=e[n];if(o.tag===r&&o.script.defaultLangSys)return o.script.defaultLangSys.featureIndexes;var i=o.langSysRecords;if(i)for(var a=0;a<i.length;a++){var s=i[a];if(s.tag===r){var l=s.langSys;return l.featureIndexes}}}return this.getDefaultScriptFeaturesIndexes()};kt.prototype.mapTagsToFeatures=function(r,t){for(var e={},n=0;n<r.length;n++){var o=r[n].tag,i=r[n].feature;e[o]=i}this.features[t].tags=e};kt.prototype.getScriptFeatures=function(r){var t=this.features[r];if(this.features.hasOwnProperty(r))return t;var e=this.getScriptFeaturesIndexes(r);if(!e)return null;var n=this.font.tables.gsub;return t=e.map(function(o){return n.features[o]}),this.features[r]=t,this.mapTagsToFeatures(t,r),t};kt.prototype.getSubstitutionType=function(r,t){var e=r.lookupType.toString(),n=t.substFormat.toString();return e+n};kt.prototype.getLookupMethod=function(r,t){var e=this,n=this.getSubstitutionType(r,t);switch(n){case"11":return function(o){return iL.apply(e,[o,t])};case"12":return function(o){return aL.apply(e,[o,t])};case"63":return function(o){return sL.apply(e,[o,t])};case"41":return function(o){return lL.apply(e,[o,t])};case"21":return function(o){return cL.apply(e,[o,t])};default:throw new Error("lookupType: "+r.lookupType+" - substFormat: "+t.substFormat+" is not yet supported")}};kt.prototype.lookupFeature=function(r){var t=r.contextParams,e=t.index,n=this.getFeature({tag:r.tag,script:r.script});if(!n)return new Error("font '"+this.font.names.fullName.en+"' doesn't support feature '"+r.tag+"' for script '"+r.script+"'.");for(var o=this.getFeatureLookups(n),i=[].concat(t.context),a=0;a<o.length;a++)for(var s=o[a],l=this.getLookupSubtables(s),u=0;u<l.length;u++){var c=l[u],p=this.getSubstitutionType(s,c),f=this.getLookupMethod(s,c),d=void 0;switch(p){case"11":d=f(t.current),d&&i.splice(e,1,new so({id:11,tag:r.tag,substitution:d}));break;case"12":d=f(t.current),d&&i.splice(e,1,new so({id:12,tag:r.tag,substitution:d}));break;case"63":d=f(t),Array.isArray(d)&&d.length&&i.splice(e,1,new so({id:63,tag:r.tag,substitution:d}));break;case"41":d=f(t),d&&i.splice(e,1,new so({id:41,tag:r.tag,substitution:d}));break;case"21":d=f(t.current),d&&i.splice(e,1,new so({id:21,tag:r.tag,substitution:d}));break}t=new ur(i,e),!(Array.isArray(d)&&!d.length)&&(d=null)}return i.length?i:null};kt.prototype.supports=function(r){if(!r.script)return!1;this.getScriptFeatures(r.script);var t=this.features.hasOwnProperty(r.script);if(!r.tag)return t;var e=this.features[r.script].some(function(n){return n.tag===r.tag});return t&&e};kt.prototype.getLookupSubtables=function(r){return r.subtables||null};kt.prototype.getLookupByIndex=function(r){var t=this.font.tables.gsub.lookups;return t[r]||null};kt.prototype.getFeatureLookups=function(r){return r.lookupListIndexes.map(this.getLookupByIndex.bind(this))};kt.prototype.getFeature=function(t){if(!this.font)return{FAIL:"No font was found"};this.features.hasOwnProperty(t.script)||this.getScriptFeatures(t.script);var e=this.features[t.script];return e?e.tags[t.tag]?this.features[t.script].tags[t.tag]:null:{FAIL:"No feature for script "+t.script}};function uL(r){var t=r.current,e=r.get(-1);return e===null&&Bn(t)||!Bn(e)&&Bn(t)}function pL(r){var t=r.get(1);return t===null||!Bn(t)}var fL={startCheck:uL,endCheck:pL};function dL(r){var t=r.current,e=r.get(-1);return(Bn(t)||Fn(t))&&!Bn(e)}function hL(r){var t=r.get(1);switch(!0){case t===null:return!0;case(!Bn(t)&&!Fn(t)):var e=oL(t);if(!e)return!0;if(e){var n=!1;if(n=r.lookahead.some(function(o){return Bn(o)||Fn(o)}),!n)return!0}break;default:return!1}}var mL={startCheck:dL,endCheck:hL};function gL(r,t,e){t[e].setState(r.tag,r.substitution)}function yL(r,t,e){t[e].setState(r.tag,r.substitution)}function vL(r,t,e){r.substitution.forEach(function(n,o){var i=t[e+o];i.setState(r.tag,n)})}function xL(r,t,e){var n=t[e];n.setState(r.tag,r.substitution.ligGlyph);for(var o=r.substitution.components.length,i=0;i<o;i++)n=t[e+i+1],n.setState("deleted",!0)}var vy={11:gL,12:yL,63:vL,41:xL};function xp(r,t,e){r instanceof so&&vy[r.id]&&vy[r.id](r,t,e)}function bL(r){for(var t=[].concat(r.backtrack),e=t.length-1;e>=0;e--){var n=t[e],o=f0(n),i=Fn(n);if(!o&&!i)return!0;if(o)return!1}return!1}function SL(r){if(f0(r.current))return!1;for(var t=0;t<r.lookahead.length;t++){var e=r.lookahead[t],n=Fn(e);if(!n)return!0}return!1}function wL(r){var t=this,e="arab",n=this.featuresTags[e],o=this.tokenizer.getRangeTokens(r);if(o.length!==1){var i=new ur(o.map(function(s){return s.getState("glyphIndex")}),0),a=new ur(o.map(function(s){return s.char}),0);o.forEach(function(s,l){if(!Fn(s.char)){i.setCurrentIndex(l),a.setCurrentIndex(l);var u=0;bL(a)&&(u|=1),SL(a)&&(u|=2);var c;switch(u){case 1:c="fina";break;case 2:c="init";break;case 3:c="medi";break}if(n.indexOf(c)!==-1){var p=t.query.lookupFeature({tag:c,script:e,contextParams:i});if(p instanceof Error)return console.info(p.message);p.forEach(function(f,d){f instanceof so&&(xp(f,o,d),i.context[d]=f.substitution)})}}})}}function xy(r,t){var e=r.map(function(n){return n.activeState.value});return new ur(e,t||0)}function TL(r){var t=this,e="arab",n=this.tokenizer.getRangeTokens(r),o=xy(n);o.context.forEach(function(i,a){o.setCurrentIndex(a);var s=t.query.lookupFeature({tag:"rlig",script:e,contextParams:o});s.length&&(s.forEach(function(l){return xp(l,n,a)}),o=xy(n))})}function CL(r){var t=r.current,e=r.get(-1);return e===null&&kl(t)||!kl(e)&&kl(t)}function AL(r){var t=r.get(1);return t===null||!kl(t)}var _L={startCheck:CL,endCheck:AL};function by(r,t){var e=r.map(function(n){return n.activeState.value});return new ur(e,t||0)}function IL(r){var t=this,e="latn",n=this.tokenizer.getRangeTokens(r),o=by(n);o.context.forEach(function(i,a){o.setCurrentIndex(a);var s=t.query.lookupFeature({tag:"liga",script:e,contextParams:o});s.length&&(s.forEach(function(l){return xp(l,n,a)}),o=by(n))})}function dr(r){this.baseDir=r||"ltr",this.tokenizer=new je,this.featuresTags={}}dr.prototype.setText=function(r){this.text=r};dr.prototype.contextChecks={latinWordCheck:_L,arabicWordCheck:fL,arabicSentenceCheck:mL};function ep(r){var t=this.contextChecks[r+"Check"];return this.tokenizer.registerContextChecker(r,t.startCheck,t.endCheck)}function OL(){return ep.call(this,"latinWord"),ep.call(this,"arabicWord"),ep.call(this,"arabicSentence"),this.tokenizer.tokenize(this.text)}function LL(){var r=this,t=this.tokenizer.getContextRanges("arabicSentence");t.forEach(function(e){var n=r.tokenizer.getRangeTokens(e);r.tokenizer.replaceRange(e.startIndex,e.endOffset,n.reverse())})}dr.prototype.registerFeatures=function(r,t){var e=this,n=t.filter(function(o){return e.query.supports({script:r,tag:o})});this.featuresTags.hasOwnProperty(r)?this.featuresTags[r]=this.featuresTags[r].concat(n):this.featuresTags[r]=n};dr.prototype.applyFeatures=function(r,t){if(!r)throw new Error("No valid font was provided to apply features");this.query||(this.query=new kt(r));for(var e=0;e<t.length;e++){var n=t[e];!this.query.supports({script:n.script})||this.registerFeatures(n.script,n.tags)}};dr.prototype.registerModifier=function(r,t,e){this.tokenizer.registerModifier(r,t,e)};function bp(){if(this.tokenizer.registeredModifiers.indexOf("glyphIndex")===-1)throw new Error("glyphIndex modifier is required to apply arabic presentation features.")}function NL(){var r=this,t="arab";if(!!this.featuresTags.hasOwnProperty(t)){bp.call(this);var e=this.tokenizer.getContextRanges("arabicWord");e.forEach(function(n){wL.call(r,n)})}}function PL(){var r=this,t="arab";if(!!this.featuresTags.hasOwnProperty(t)){var e=this.featuresTags[t];if(e.indexOf("rlig")!==-1){bp.call(this);var n=this.tokenizer.getContextRanges("arabicWord");n.forEach(function(o){TL.call(r,o)})}}}function ML(){var r=this,t="latn";if(!!this.featuresTags.hasOwnProperty(t)){var e=this.featuresTags[t];if(e.indexOf("liga")!==-1){bp.call(this);var n=this.tokenizer.getContextRanges("latinWord");n.forEach(function(o){IL.call(r,o)})}}}dr.prototype.checkContextReady=function(r){return!!this.tokenizer.getContext(r)};dr.prototype.applyFeaturesToContexts=function(){this.checkContextReady("arabicWord")&&(NL.call(this),PL.call(this)),this.checkContextReady("latinWord")&&ML.call(this),this.checkContextReady("arabicSentence")&&LL.call(this)};dr.prototype.processText=function(r){(!this.text||this.text!==r)&&(this.setText(r),OL.call(this),this.applyFeaturesToContexts())};dr.prototype.getBidiText=function(r){return this.processText(r),this.tokenizer.getText()};dr.prototype.getTextGlyphs=function(r){this.processText(r);for(var t=[],e=0;e<this.tokenizer.tokens.length;e++){var n=this.tokenizer.tokens[e];if(!n.state.deleted){var o=n.activeState.value;t.push(Array.isArray(o)?o[0]:o)}}return t};function Fe(r){r=r||{},r.tables=r.tables||{},r.empty||(La(r.familyName,"When creating a new Font object, familyName is required."),La(r.styleName,"When creating a new Font object, styleName is required."),La(r.unitsPerEm,"When creating a new Font object, unitsPerEm is required."),La(r.ascender,"When creating a new Font object, ascender is required."),La(r.descender<=0,"When creating a new Font object, negative descender value is required."),this.names={fontFamily:{en:r.familyName||" "},fontSubfamily:{en:r.styleName||" "},fullName:{en:r.fullName||r.familyName+" "+r.styleName},postScriptName:{en:r.postScriptName||(r.familyName+r.styleName).replace(/\s/g,"")},designer:{en:r.designer||" "},designerURL:{en:r.designerURL||" "},manufacturer:{en:r.manufacturer||" "},manufacturerURL:{en:r.manufacturerURL||" "},license:{en:r.license||" "},licenseURL:{en:r.licenseURL||" "},version:{en:r.version||"Version 0.1"},description:{en:r.description||" "},copyright:{en:r.copyright||" "},trademark:{en:r.trademark||" "}},this.unitsPerEm=r.unitsPerEm||1e3,this.ascender=r.ascender,this.descender=r.descender,this.createdTimestamp=r.createdTimestamp,this.tables=Object.assign(r.tables,{os2:Object.assign({usWeightClass:r.weightClass||this.usWeightClasses.MEDIUM,usWidthClass:r.widthClass||this.usWidthClasses.MEDIUM,fsSelection:r.fsSelection||this.fsSelectionValues.REGULAR},r.tables.os2)})),this.supported=!0,this.glyphs=new Hr.GlyphSet(this,r.glyphs||[]),this.encoding=new Py(this),this.position=new Fa(this),this.substitution=new Rt(this),this.tables=this.tables||{},this._push=null,this._hmtxTableData={},Object.defineProperty(this,"hinting",{get:function(){if(this._hinting)return this._hinting;if(this.outlinesFormat==="truetype")return this._hinting=new l0(this)}})}Fe.prototype.hasChar=function(r){return this.encoding.charToGlyphIndex(r)!==null};Fe.prototype.charToGlyphIndex=function(r){return this.encoding.charToGlyphIndex(r)};Fe.prototype.charToGlyph=function(r){var t=this.charToGlyphIndex(r),e=this.glyphs.get(t);return e||(e=this.glyphs.get(0)),e};Fe.prototype.updateFeatures=function(r){return this.defaultRenderOptions.features.map(function(t){return t.script==="latn"?{script:"latn",tags:t.tags.filter(function(e){return r[e]})}:t})};Fe.prototype.stringToGlyphs=function(r,t){var e=this,n=new dr,o=function(p){return e.charToGlyphIndex(p.char)};n.registerModifier("glyphIndex",null,o);var i=t?this.updateFeatures(t.features):this.defaultRenderOptions.features;n.applyFeatures(this,i);for(var a=n.getTextGlyphs(r),s=a.length,l=new Array(s),u=this.glyphs.get(0),c=0;c<s;c+=1)l[c]=this.glyphs.get(a[c])||u;return l};Fe.prototype.nameToGlyphIndex=function(r){return this.glyphNames.nameToGlyphIndex(r)};Fe.prototype.nameToGlyph=function(r){var t=this.nameToGlyphIndex(r),e=this.glyphs.get(t);return e||(e=this.glyphs.get(0)),e};Fe.prototype.glyphIndexToName=function(r){return this.glyphNames.glyphIndexToName?this.glyphNames.glyphIndexToName(r):""};Fe.prototype.getKerningValue=function(r,t){r=r.index||r,t=t.index||t;var e=this.position.defaultKerningTables;return e?this.position.getKerningValue(e,r,t):this.kerningPairs[r+","+t]||0};Fe.prototype.defaultRenderOptions={kerning:!0,features:[{script:"arab",tags:["init","medi","fina","rlig"]},{script:"latn",tags:["liga","rlig"]}]};Fe.prototype.forEachGlyph=function(r,t,e,n,o,i){t=t!==void 0?t:0,e=e!==void 0?e:0,n=n!==void 0?n:72,o=Object.assign({},this.defaultRenderOptions,o);var a=1/this.unitsPerEm*n,s=this.stringToGlyphs(r,o),l;if(o.kerning){var u=o.script||this.position.getDefaultScriptName();l=this.position.getKerningTables(u,o.language)}for(var c=0;c<s.length;c+=1){var p=s[c];if(i.call(this,p,t,e,n,o),p.advanceWidth&&(t+=p.advanceWidth*a),o.kerning&&c<s.length-1){var f=l?this.position.getKerningValue(l,p.index,s[c+1].index):this.getKerningValue(p,s[c+1]);t+=f*a}o.letterSpacing?t+=o.letterSpacing*n:o.tracking&&(t+=o.tracking/1e3*n)}return t};Fe.prototype.getPath=function(r,t,e,n,o){var i=new tt;return this.forEachGlyph(r,t,e,n,o,function(a,s,l,u){var c=a.getPath(s,l,u,o,this);i.extend(c)}),i};Fe.prototype.getPaths=function(r,t,e,n,o){var i=[];return this.forEachGlyph(r,t,e,n,o,function(a,s,l,u){var c=a.getPath(s,l,u,o,this);i.push(c)}),i};Fe.prototype.getAdvanceWidth=function(r,t,e){return this.forEachGlyph(r,0,0,t,e,function(){})};Fe.prototype.draw=function(r,t,e,n,o,i){this.getPath(t,e,n,o,i).draw(r)};Fe.prototype.drawPoints=function(r,t,e,n,o,i){this.forEachGlyph(t,e,n,o,i,function(a,s,l,u){a.drawPoints(r,s,l,u)})};Fe.prototype.drawMetrics=function(r,t,e,n,o,i){this.forEachGlyph(t,e,n,o,i,function(a,s,l,u){a.drawMetrics(r,s,l,u)})};Fe.prototype.getEnglishName=function(r){var t=this.names[r];if(t)return t.en};Fe.prototype.validate=function(){var r=this;function t(n,o){}function e(n){var o=r.getEnglishName(n);o&&o.trim().length>0}e("fontFamily"),e("weightName"),e("manufacturer"),e("copyright"),e("version"),this.unitsPerEm>0};Fe.prototype.toTables=function(){return vI.fontToTable(this)};Fe.prototype.toBuffer=function(){return console.warn("Font.toBuffer is deprecated. Use Font.toArrayBuffer instead."),this.toArrayBuffer()};Fe.prototype.toArrayBuffer=function(){for(var r=this.toTables(),t=r.encode(),e=new ArrayBuffer(t.length),n=new Uint8Array(e),o=0;o<t.length;o++)n[o]=t[o];return e};Fe.prototype.download=function(r){var t=this.getEnglishName("fontFamily"),e=this.getEnglishName("fontSubfamily");r=r||t.replace(/\s/g,"")+"-"+e+".otf";var n=this.toArrayBuffer();if(bI())if(window.URL=window.URL||window.webkitURL,window.URL){var o=new DataView(n),i=new Blob([o],{type:"font/opentype"}),a=document.createElement("a");a.href=window.URL.createObjectURL(i),a.download=r;var s=document.createEvent("MouseEvents");s.initEvent("click",!0,!1),a.dispatchEvent(s)}else console.warn("Font file could not be downloaded. Try using a different browser.");else{var l=Wu(),u=wI(n);l.writeFileSync(r,u)}};Fe.prototype.fsSelectionValues={ITALIC:1,UNDERSCORE:2,NEGATIVE:4,OUTLINED:8,STRIKEOUT:16,BOLD:32,REGULAR:64,USER_TYPO_METRICS:128,WWS:256,OBLIQUE:512};Fe.prototype.usWidthClasses={ULTRA_CONDENSED:1,EXTRA_CONDENSED:2,CONDENSED:3,SEMI_CONDENSED:4,MEDIUM:5,SEMI_EXPANDED:6,EXPANDED:7,EXTRA_EXPANDED:8,ULTRA_EXPANDED:9};Fe.prototype.usWeightClasses={THIN:100,EXTRA_LIGHT:200,LIGHT:300,NORMAL:400,MEDIUM:500,SEMI_BOLD:600,BOLD:700,EXTRA_BOLD:800,BLACK:900};function d0(r,t){var e=JSON.stringify(r),n=256;for(var o in t){var i=parseInt(o);if(!(!i||i<256)){if(JSON.stringify(t[o])===e)return i;n<=i&&(n=i+1)}}return t[n]=r,n}function EL(r,t,e){var n=d0(t.name,e);return[{name:"tag_"+r,type:"TAG",value:t.tag},{name:"minValue_"+r,type:"FIXED",value:t.minValue<<16},{name:"defaultValue_"+r,type:"FIXED",value:t.defaultValue<<16},{name:"maxValue_"+r,type:"FIXED",value:t.maxValue<<16},{name:"flags_"+r,type:"USHORT",value:0},{name:"nameID_"+r,type:"USHORT",value:n}]}function DL(r,t,e){var n={},o=new ue.Parser(r,t);return n.tag=o.parseTag(),n.minValue=o.parseFixed(),n.defaultValue=o.parseFixed(),n.maxValue=o.parseFixed(),o.skip("uShort",1),n.name=e[o.parseUShort()]||{},n}function BL(r,t,e,n){for(var o=d0(t.name,n),i=[{name:"nameID_"+r,type:"USHORT",value:o},{name:"flags_"+r,type:"USHORT",value:0}],a=0;a<e.length;++a){var s=e[a].tag;i.push({name:"axis_"+r+" "+s,type:"FIXED",value:t.coordinates[s]<<16})}return i}function FL(r,t,e,n){var o={},i=new ue.Parser(r,t);o.name=n[i.parseUShort()]||{},i.skip("uShort",1),o.coordinates={};for(var a=0;a<e.length;++a)o.coordinates[e[a].tag]=i.parseFixed();return o}function RL(r,t){var e=new le.Table("fvar",[{name:"version",type:"ULONG",value:65536},{name:"offsetToData",type:"USHORT",value:0},{name:"countSizePairs",type:"USHORT",value:2},{name:"axisCount",type:"USHORT",value:r.axes.length},{name:"axisSize",type:"USHORT",value:20},{name:"instanceCount",type:"USHORT",value:r.instances.length},{name:"instanceSize",type:"USHORT",value:4+r.axes.length*4}]);e.offsetToData=e.sizeOf();for(var n=0;n<r.axes.length;n++)e.fields=e.fields.concat(EL(n,r.axes[n],t));for(var o=0;o<r.instances.length;o++)e.fields=e.fields.concat(BL(o,r.instances[o],r.axes,t));return e}function kL(r,t,e){var n=new ue.Parser(r,t),o=n.parseULong();ve.argument(o===65536,"Unsupported fvar table version.");var i=n.parseOffset16();n.skip("uShort",1);for(var a=n.parseUShort(),s=n.parseUShort(),l=n.parseUShort(),u=n.parseUShort(),c=[],p=0;p<a;p++)c.push(DL(r,t+i+p*s,e));for(var f=[],d=t+i+a*s,h=0;h<l;h++)f.push(FL(r,d+h*u,c,e));return{axes:c,instances:f}}var GL={make:RL,parse:kL},UL=function(){return{coverage:this.parsePointer(E.coverage),attachPoints:this.parseList(E.pointer(E.uShortList))}},VL=function(){var r=this.parseUShort();if(ve.argument(r===1||r===2||r===3,"Unsupported CaretValue table version."),r===1)return{coordinate:this.parseShort()};if(r===2)return{pointindex:this.parseShort()};if(r===3)return{coordinate:this.parseShort()}},zL=function(){return this.parseList(E.pointer(VL))},jL=function(){return{coverage:this.parsePointer(E.coverage),ligGlyphs:this.parseList(E.pointer(zL))}},HL=function(){return this.parseUShort(),this.parseList(E.pointer(E.coverage))};function WL(r,t){t=t||0;var e=new E(r,t),n=e.parseVersion(1);ve.argument(n===1||n===1.2||n===1.3,"Unsupported GDEF table version.");var o={version:n,classDef:e.parsePointer(E.classDef),attachList:e.parsePointer(UL),ligCaretList:e.parsePointer(jL),markAttachClassDef:e.parsePointer(E.classDef)};return n>=1.2&&(o.markGlyphSets=e.parsePointer(HL)),o}var qL={parse:WL},pr=new Array(10);pr[1]=function(){var t=this.offset+this.relativeOffset,e=this.parseUShort();if(e===1)return{posFormat:1,coverage:this.parsePointer(E.coverage),value:this.parseValueRecord()};if(e===2)return{posFormat:2,coverage:this.parsePointer(E.coverage),values:this.parseValueRecordList()};ve.assert(!1,"0x"+t.toString(16)+": GPOS lookup type 1 format must be 1 or 2.")};pr[2]=function(){var t=this.offset+this.relativeOffset,e=this.parseUShort();ve.assert(e===1||e===2,"0x"+t.toString(16)+": GPOS lookup type 2 format must be 1 or 2.");var n=this.parsePointer(E.coverage),o=this.parseUShort(),i=this.parseUShort();if(e===1)return{posFormat:e,coverage:n,valueFormat1:o,valueFormat2:i,pairSets:this.parseList(E.pointer(E.list(function(){return{secondGlyph:this.parseUShort(),value1:this.parseValueRecord(o),value2:this.parseValueRecord(i)}})))};if(e===2){var a=this.parsePointer(E.classDef),s=this.parsePointer(E.classDef),l=this.parseUShort(),u=this.parseUShort();return{posFormat:e,coverage:n,valueFormat1:o,valueFormat2:i,classDef1:a,classDef2:s,class1Count:l,class2Count:u,classRecords:this.parseList(l,E.list(u,function(){return{value1:this.parseValueRecord(o),value2:this.parseValueRecord(i)}}))}}};pr[3]=function(){return{error:"GPOS Lookup 3 not supported"}};pr[4]=function(){return{error:"GPOS Lookup 4 not supported"}};pr[5]=function(){return{error:"GPOS Lookup 5 not supported"}};pr[6]=function(){return{error:"GPOS Lookup 6 not supported"}};pr[7]=function(){return{error:"GPOS Lookup 7 not supported"}};pr[8]=function(){return{error:"GPOS Lookup 8 not supported"}};pr[9]=function(){return{error:"GPOS Lookup 9 not supported"}};function XL(r,t){t=t||0;var e=new E(r,t),n=e.parseVersion(1);return ve.argument(n===1||n===1.1,"Unsupported GPOS table version "+n),n===1?{version:n,scripts:e.parseScriptList(),features:e.parseFeatureList(),lookups:e.parseLookupList(pr)}:{version:n,scripts:e.parseScriptList(),features:e.parseFeatureList(),lookups:e.parseLookupList(pr),variations:e.parseFeatureVariationsList()}}var YL=new Array(10);function $L(r){return new le.Table("GPOS",[{name:"version",type:"ULONG",value:65536},{name:"scripts",type:"TABLE",value:new le.ScriptList(r.scripts)},{name:"features",type:"TABLE",value:new le.FeatureList(r.features)},{name:"lookups",type:"TABLE",value:new le.LookupList(r.lookups,YL)}])}var KL={parse:XL,make:$L};function ZL(r){var t={};r.skip("uShort");var e=r.parseUShort();ve.argument(e===0,"Unsupported kern sub-table version."),r.skip("uShort",2);var n=r.parseUShort();r.skip("uShort",3);for(var o=0;o<n;o+=1){var i=r.parseUShort(),a=r.parseUShort(),s=r.parseShort();t[i+","+a]=s}return t}function QL(r){var t={};r.skip("uShort");var e=r.parseULong();e>1&&console.warn("Only the first kern subtable is supported."),r.skip("uLong");var n=r.parseUShort(),o=n&255;if(r.skip("uShort"),o===0){var i=r.parseUShort();r.skip("uShort",3);for(var a=0;a<i;a+=1){var s=r.parseUShort(),l=r.parseUShort(),u=r.parseShort();t[s+","+l]=u}}return t}function JL(r,t){var e=new ue.Parser(r,t),n=e.parseUShort();if(n===0)return ZL(e);if(n===1)return QL(e);throw new Error("Unsupported kern table version ("+n+").")}var eN={parse:JL};function tN(r,t,e,n){for(var o=new ue.Parser(r,t),i=n?o.parseUShort:o.parseULong,a=[],s=0;s<e+1;s+=1){var l=i.call(o);n&&(l*=2),a.push(l)}return a}var rN={parse:tN};function nN(r,t){var e=Wu();e.readFile(r,function(n,o){if(n)return t(n.message);t(null,SI(o))})}function oN(r,t){var e=new XMLHttpRequest;e.open("get",r,!0),e.responseType="arraybuffer",e.onload=function(){return e.response?t(null,e.response):t("Font could not be loaded: "+e.statusText)},e.onerror=function(){t("Font could not be loaded")},e.send()}function Sy(r,t){for(var e=[],n=12,o=0;o<t;o+=1){var i=ue.getTag(r,n),a=ue.getULong(r,n+4),s=ue.getULong(r,n+8),l=ue.getULong(r,n+12);e.push({tag:i,checksum:a,offset:s,length:l,compression:!1}),n+=16}return e}function iN(r,t){for(var e=[],n=44,o=0;o<t;o+=1){var i=ue.getTag(r,n),a=ue.getULong(r,n+4),s=ue.getULong(r,n+8),l=ue.getULong(r,n+12),u=void 0;s<l?u="WOFF":u=!1,e.push({tag:i,offset:a,compression:u,compressedLength:s,length:l}),n+=20}return e}function Xe(r,t){if(t.compression==="WOFF"){var e=new Uint8Array(r.buffer,t.offset+2,t.compressedLength-2),n=new Uint8Array(t.length);if($_(e,n),n.byteLength!==t.length)throw new Error("Decompression error: "+t.tag+" decompressed length doesn't match recorded length");var o=new DataView(n.buffer,0);return{data:o,offset:0}}else return{data:r,offset:t.offset}}function Sp(r,t){t=t??{};var e,n,o=new Fe({empty:!0}),i=new DataView(r,0),a,s=[],l=ue.getTag(i,0);if(l===String.fromCharCode(0,1,0,0)||l==="true"||l==="typ1")o.outlinesFormat="truetype",a=ue.getUShort(i,4),s=Sy(i,a);else if(l==="OTTO")o.outlinesFormat="cff",a=ue.getUShort(i,4),s=Sy(i,a);else if(l==="wOFF"){var u=ue.getTag(i,4);if(u===String.fromCharCode(0,1,0,0))o.outlinesFormat="truetype";else if(u==="OTTO")o.outlinesFormat="cff";else throw new Error("Unsupported OpenType flavor "+l);a=ue.getUShort(i,12),s=iN(i,a)}else throw new Error("Unsupported OpenType signature "+l);for(var c,p,f,d,h,m,g,v,x,S,w,b,_=0;_<a;_+=1){var T=s[_],y=void 0;switch(T.tag){case"cmap":y=Xe(i,T),o.tables.cmap=Ny.parse(y.data,y.offset),o.encoding=new My(o.tables.cmap);break;case"cvt ":y=Xe(i,T),b=new ue.Parser(y.data,y.offset),o.tables.cvt=b.parseShortList(T.length/2);break;case"fvar":p=T;break;case"fpgm":y=Xe(i,T),b=new ue.Parser(y.data,y.offset),o.tables.fpgm=b.parseByteList(T.length);break;case"head":y=Xe(i,T),o.tables.head=zy.parse(y.data,y.offset),o.unitsPerEm=o.tables.head.unitsPerEm,e=o.tables.head.indexToLocFormat;break;case"hhea":y=Xe(i,T),o.tables.hhea=jy.parse(y.data,y.offset),o.ascender=o.tables.hhea.ascender,o.descender=o.tables.hhea.descender,o.numberOfHMetrics=o.tables.hhea.numberOfHMetrics;break;case"hmtx":g=T;break;case"ltag":y=Xe(i,T),n=Wy.parse(y.data,y.offset);break;case"maxp":y=Xe(i,T),o.tables.maxp=qy.parse(y.data,y.offset),o.numGlyphs=o.tables.maxp.numGlyphs;break;case"name":S=T;break;case"OS/2":y=Xe(i,T),o.tables.os2=lp.parse(y.data,y.offset);break;case"post":y=Xe(i,T),o.tables.post=Qy.parse(y.data,y.offset),o.glyphNames=new hp(o.tables.post);break;case"prep":y=Xe(i,T),b=new ue.Parser(y.data,y.offset),o.tables.prep=b.parseByteList(T.length);break;case"glyf":f=T;break;case"loca":x=T;break;case"CFF ":c=T;break;case"kern":v=T;break;case"GDEF":d=T;break;case"GPOS":h=T;break;case"GSUB":m=T;break;case"meta":w=T;break}}var I=Xe(i,S);if(o.tables.name=Zy.parse(I.data,I.offset,n),o.names=o.tables.name,f&&x){var A=e===0,O=Xe(i,x),C=rN.parse(O.data,O.offset,o.numGlyphs,A),N=Xe(i,f);o.glyphs=i0.parse(N.data,N.offset,C,o,t)}else if(c){var P=Xe(i,c);Vy.parse(P.data,P.offset,o,t)}else throw new Error("Font doesn't contain TrueType or CFF outlines.");var G=Xe(i,g);if(Hy.parse(o,G.data,G.offset,o.numberOfHMetrics,o.numGlyphs,o.glyphs,t),g2(o,t),v){var $=Xe(i,v);o.kerningPairs=eN.parse($.data,$.offset)}else o.kerningPairs={};if(d){var Y=Xe(i,d);o.tables.gdef=qL.parse(Y.data,Y.offset)}if(h){var ie=Xe(i,h);o.tables.gpos=KL.parse(ie.data,ie.offset),o.position.init()}if(m){var j=Xe(i,m);o.tables.gsub=Jy.parse(j.data,j.offset)}if(p){var H=Xe(i,p);o.tables.fvar=GL.parse(H.data,H.offset,o.names)}if(w){var V=Xe(i,w);o.tables.meta=e0.parse(V.data,V.offset),o.metas=o.tables.meta}return o}function h0(r,t,e){e=e??{};var n=typeof window>"u",o=n&&!e.isUrl?nN:oN;return new Promise(function(i,a){o(r,function(s,l){if(s){if(t)return t(s);a(s)}var u;try{u=Sp(l,e)}catch(c){if(t)return t(c,null);a(c)}if(t)return t(null,u);i(u)})})}var Ua=class{load(t,e,n=()=>{}){h0(t,(o,i)=>{o||!i?n(o??"Something went wrong"):e(i)})}parse(t){try{return Sp(t)}catch(e){console.error(e)}}};var aN="AIzaSyCiLGWdiRt3ErAKMH8t6fgppJ9AaQRafyY",Va=null,m0=null,sN={"Spline Sans_300":"SplineSans-Light.ttf","Spline Sans_regular":"SplineSans-Regular.ttf","Spline Sans_500":"SplineSans-Medium.ttf","Spline Sans_600":"SplineSans-SemiBold.ttf","Spline Sans_700":"SplineSans-Bold.ttf","Spline Sans Mono_300":"SplineSansMono-Light.ttf","Spline Sans Mono_regular":"SplineSansMono-Regular.ttf","Spline Sans Mono_500":"SplineSansMono-Medium.ttf","Spline Sans Mono_600":"SplineSansMono-SemiBold.ttf","Spline Sans Mono_700":"SplineSansMono-Bold.ttf","Spline Sans Mono_300italic":"SplineSansMono-LightItalic.ttf","Spline Sans Mono_italic":"SplineSansMono-Italic.ttf","Spline Sans Mono_500italic":"SplineSansMono-MediumItalic.ttf","Spline Sans Mono_600italic":"SplineSansMono-SemiBoldItalic.ttf","Spline Sans Mono_700italic":"SplineSansMono-BoldItalic.ttf"};async function lN(){Va=await(await fetch("https://www.googleapis.com/webfonts/v1/webfonts?key="+aN)).json(),m0=[],Va?.items.forEach(t=>{let e=t.family;t.variants.forEach(n=>{m0?.push({key:e+"_"+n,name:e+" "+n})})})}function cN(r,t){return r.items.find(e=>e.family===t)}async function wp(r){return await(await fetch(r)).arrayBuffer()}async function uN(r,t=!0){let e=sN[r];if(e!==void 0){let a="/_assets/_fonts/"+e;return{arr:await wp(a),url:a,intercepted:!0}}await fN();let[n,o]=r.split("_"),i=cN(Va,n);if(i!==void 0&&i.variants.includes(o)){let a=t?i.files[o].replace("http://","https://"):i.files[o];if(a)return{arr:await wp(a),url:a,intercepted:!1}}return null}var pN=new Ua;async function g0(r,t){let e,n,o=!1;if(r.url)e=await wp(r.url),n=r.url;else if(!r.data&&t){let i=await uN(t);i&&(e=i.arr,n=i.url,o=i.intercepted)}else r.data&&(e=r.data.buffer);if(e){let i=pN.parse(e);if(i)return{font:i,url:n,intercepted:o,arr:e}}return null}async function fN(){return Va===null&&await lN(),Va}import{Vector3 as yN,Matrix4 as vN,Ray as xN}from"three";import{BufferAttribute as y0,BufferGeometry as Tp}from"three";import{mergeBufferGeometries as dN}from"three/examples/jsm/utils/BufferGeometryUtils.js";function hN(){let r=new Tp;return r.setAttribute("position",new y0(new Float32Array([]),3)),r.setIndex(new y0(new Uint16Array([]),1)),r}var mN=12;var Ti=class extends Tp{constructor(e,n){super();this.data=e;this.charWidths=[];this.charCoords=[];this.wrappedText=[];this.update(e,n)}async update(e,n){this.data=e,this.userData={parameters:e};let o=n.getFont(e.font);o&&(this.font=o,await o.loadingPromise,await this.updateWithCurrentFont(e))}async updateWithCurrentFont(e){let n=this.font;if(!n||!n.isLoaded){console.warn("Cannot update text because its font is not loaded");return}this.data=e;let{width:o,height:i,depth:a,extrudeBevelSize:s,extrudeBevelSegments:l,text:u,textTransform:c,subdivisions:p}=e;await n.loadingPromise;let f=c===2?u.toUpperCase():c===3?u.toLowerCase():u,d=gN(e,n,f),{shapes:h,charWidths:m,charCoords:g}=await n.generateShapes(d,e),v=o*.5,x=i*.5,S=h.map(b=>pt.create({shape:new Ae().fromShape(b),parameters:{depth:a,extrudeBevelSegments:l,extrudeBevelSize:s,windingRule:a<=0?De.NONZERO:De.ODD,subdivisions:p??mN}})),w=S.length?dN(S):hN();w.translate(-v,x,0),this.dispose(),this.wrappedText=d,this.charCoords=g,this.charWidths=m,Object.entries(w.attributes).forEach(([b,_])=>{this.setAttribute(b,_)}),this.setIndex(w.index),this.computeBoundingSphere()}clone(){let e=Un(new Tp,Ti.prototype);return e.copy(this),e}copy(e){return Object.entries(e.attributes).forEach(([n,o])=>{this.setAttribute(n,o)}),this.setIndex(e.index),this.data=e.data,this}async setText(e){this.font&&await this.font.loadingPromise,await this.updateWithCurrentFont({...this.data,text:e})}get text(){return this.data.text??""}};function gN(r,t,e){e=e??r.text;let n=[""],o="";for(let i of e)o+=i,i===" "||i===`
1333
- `?(n[n.length-1]+=o,o="",i===`
1334
- `&&n.push("")):t.getTextWidth(n[n.length-1]+o,r)>r.width&&(n[n.length-1].length&&n.push(""),t.getTextWidth(n[n.length-1]+o,r)>r.width&&(o.length===1?(n[n.length-1]+=o,o=""):(n[n.length-1]+=o.slice(0,-1),o=o[o.length-1],n.push(""))));return n[n.length-1]+=o,n}var v0=new yN,x0=new vN,b0=new xN,Xl=class extends ct{constructor(e,n,o){super(new Ti(n.geometry,o),o.material(n.material));this.data=n;this.objectType="TextFrame";this.wrappedText=[""];this.charWidths=[];this.charCoords=[];this.castShadow=n.castShadow,this.receiveShadow=n.receiveShadow,this.name=n.name,this.uuid=e,this.updateState(n,o)}async updateGeometry(e,n){if(!n){console.warn("To update a Text Geometry you need to pass the SharedAssetsManager instance in order to get the font");return}let o=this.geometry.getAttribute("randomColor"),i={...this.data.geometry,...e.parameters};Object.assign(this.data,{geometry:i}),await this.geometry.update(i,n),kr(this),o&&Gr(this);let{wrappedText:a,charCoords:s,charWidths:l}=this.geometry;this.wrappedText=a,this.charWidths=l,this.charCoords=s,this.resetBBoxNeedsUpdate()}updateState(e,n){this.data=e,this.material=n.material(e.material),this.fromState(e,n),this.updateGeometry({parameters:e.geometry},n)}get font(){return this.geometry.font}get initialOffsetY(){return this.font?.getLineInitialOffsetY(this.lineHeight,this.wrappedText.length,this.data.geometry.height,this.fontScale,this.data.geometry.verticalAlign)??0}get fontScale(){return this.font?this.data.geometry.fontSize/this.font.unitsPerEm:1}get AD(){return Math.abs(this.ascender-this.descender)}get ascender(){return(this.font?.ascender??1)*this.fontScale}get descender(){return(this.font?.descender??1)*this.fontScale}get lineHeight(){return this.data.geometry.fontSize*this.data.geometry.lineHeight}raycast(e,n){let{matrixWorld:o}=this;if(x0.copy(o).invert(),b0.copy(e.ray).applyMatrix4(x0),b0.intersectBox(this.singleBBox,v0)){let i=v0.applyMatrix4(o),a=e.ray.origin.distanceTo(i);n.push({distance:a,point:i.clone(),object:this})}}};import{Box3 as bN,Matrix4 as co,Sphere as T0,Vector3 as SN}from"three";var A0=Dp(w0());var Cp;fl.then(r=>{Cp=r});var _0=new co,wN=new co,TN=new co,hr=new bN,kn=new SN,CN=new co,AN=new co,Ci=class extends ct{constructor(e,n,o,i){super(o??n,i);this.subdivPointer=e;this.originalGeometry=n;this.subdividedGeometry=o;this.objectType="SubdivObject";this.hiddenMatrixOld=new co;this.smoothShading=!0;this.phongAngle=35;this.matrixWorldRigid=new co;this.castShadow=!0,this.receiveShadow=!0,this.forceComputeSize=!1}static createFromState(e,n,o){let{subdivPointer:i,originalGeometry:a,subdividedGeometry:s}=qt.build(n.geometry,void 0,void 0,!n.flatShading),l=o.material(n.material),u=new Ci(i,a,s||void 0,l);return n.geometry.phongAngle!==void 0&&(u.phongAngle=n.geometry.phongAngle),u.calcBoundingBox(),u.freeSubdivPointer(),u.uuid=e,u.fromState(n),u}buildFromStore(e,n){let{originalGeometry:o,subdividedGeometry:i,subdivPointer:a}=qt.build(e,n,this.subdivPointer,this.smoothShading,this.shearScale);e.phongAngle!==void 0&&(this.phongAngle=e.phongAngle),this.subdivPointer=a,o!==void 0&&(this.originalGeometry?.dispose(),this.originalGeometry=o),i!==void 0&&(this.subdividedGeometry?.dispose(),this.subdividedGeometry=i??void 0),this.geometry=this.subdividedGeometry??this.originalGeometry,kr(this),Gr(this),e.width&&(this.geometry.userData.parameters={width:e.width,height:e.height,depth:e.depth})}updateMesh(e=!1){qt.buildLevel(this.subdivPointer,!0,this.smoothShading?this.phongAngle:-1,this.originalGeometry,e?this.shearScaleInv:void 0),this.subdividedGeometry&&qt.buildLevel(this.subdivPointer,!1,this.smoothShading?this.phongAngle:-1,this.subdividedGeometry,e?this.shearScaleInv:void 0)}updateTopology(){this.originalGeometry.dispose(),this.originalGeometry=qt.buildLevel(this.subdivPointer,!0,this.smoothShading?this.phongAngle:-1),this.subdividedGeometry&&(this.subdividedGeometry.dispose(),this.subdividedGeometry=qt.buildLevel(this.subdivPointer,!1,this.smoothShading?this.phongAngle:-1)),this.geometry=this.subdividedGeometry??this.originalGeometry}raycast(e,n){this.geometry=this.originalGeometry,ct.prototype.raycast.call(this,e,n),this.geometry=this.subdividedGeometry??this.originalGeometry}updateMatrixWorldSVD(){let e=this.matrixWorld.elements,n=[[e[0],e[4],e[8]],[e[1],e[5],e[9]],[e[2],e[6],e[10]]],{u:o,v:i,q:a}=(0,A0.SVD)(n),s=_0.set(o[0][0],o[0][1],o[0][2],0,o[1][0],o[1][1],o[1][2],0,o[2][0],o[2][1],o[2][2],0,0,0,0,1),l=wN.set(i[0][0],i[0][1],i[0][2],0,i[1][0],i[1][1],i[1][2],0,i[2][0],i[2][1],i[2][2],0,0,0,0,1),u=TN.copy(l).transpose();this.shearScale=CN.makeScale(a[0],a[1],a[2]).multiply(u).premultiply(l),this.shearScaleInv=AN.copy(this.shearScale).invert(),this.matrixWorldRigid.multiplyMatrices(s,u),a.every(c=>Math.abs(a[0]-c)<.01)&&(this.shearScale=void 0,this.shearScaleInv=void 0)}activateSVDCompensation(){this.shearScale!==void 0&&(this.matrixAutoUpdate=!1,this.matrix.copy(this.matrixWorldRigid).copyPosition(this.matrixWorld),this.hiddenMatrixOld.copy(this.hiddenMatrix),this.hiddenMatrix.copy(this.parent.matrixWorld).invert())}deactivateSVDCompensation(){this.shearScale!==void 0&&(this.shearScale=void 0,this.shearScaleInv=void 0,this.matrixAutoUpdate=!0,this.hiddenMatrix.copy(this.hiddenMatrixOld))}calcBoundingBox(){let e=this.originalGeometry;e.boundingSphere===null&&(e.boundingSphere=new T0);let n=e.attributes.position,o=e.boundingSphere.center;hr.setFromBufferAttribute(n),hr.getCenter(o),e.boundingSphere.radius=o.distanceTo(hr.max),isNaN(e.boundingSphere.radius)&&console.error('THREE.BufferGeometry.computeBoundingSphere(): Computed radius is NaN. The "position" attribute is likely to have NaN values.',this),hr.getSize(kn);let i={width:kn.x,height:kn.y,depth:kn.z};return this.geometry.userData.parameters=i,i}updateBoundingBox(e){let n=this.originalGeometry;hr.min.set(e[0],e[2],e[4]),hr.max.set(e[1],e[3],e[5]),this.shearScaleInv&&(hr.min.applyMatrix4(this.shearScaleInv),hr.max.applyMatrix4(this.shearScaleInv)),n.boundingSphere===null&&(n.boundingSphere=new T0);let o=n.boundingSphere.center;hr.getCenter(o),n.boundingSphere.radius=o.distanceTo(hr.max),isNaN(n.boundingSphere.radius)&&console.error('THREE.BufferGeometry.computeBoundingSphere(): Computed radius is NaN. The "position" attribute is likely to have NaN values.',this),hr.getSize(kn);let i={width:kn.x,height:kn.y,depth:kn.z};return this.geometry.userData.parameters=i,i}freeSubdivPointer(){this.subdivPointer&&(Cp.free_bvh(this.subdivPointer),Cp.free_subdivision_surface(this.subdivPointer),this.subdivPointer=0)}updateGeometry(e,n){this.geometry.userData.scale||(this.geometry.userData.scale=Array(3)),this.geometry.userData.scale[0]=this.geometry.userData.parameters.width===0?1:e.parameters.width/this.geometry.userData.parameters.width,this.geometry.userData.scale[1]=this.geometry.userData.parameters.height===0?1:e.parameters.height/this.geometry.userData.parameters.height,this.geometry.userData.scale[2]=this.geometry.userData.parameters.depth===0?1:e.parameters.depth/this.geometry.userData.parameters.depth,C0(this.originalGeometry.attributes,...this.geometry.userData.scale),this.originalGeometry.attributes.position.needsUpdate=!0,this.originalGeometry.attributes.normal.needsUpdate=!0,this.subdividedGeometry&&(C0(this.subdividedGeometry.attributes,...this.subdividedGeometry.userData.scale),this.subdividedGeometry.attributes.position.needsUpdate=!0,this.subdividedGeometry.attributes.normal.needsUpdate=!0),this.geometry.userData.parameters={...e.parameters}}};function C0(r,t,e,n){let o=r.position.array,i=r.normal.array,a=_0.makeScale(t,e,n).invert().elements,s,l,u;for(var c=0,p=o.length;c<p;c+=3)o[c]*=t,o[c+1]*=e,o[c+2]*=n,s=i[c],l=i[c+1],u=i[c+2],i[c]=a[0]*s+a[4]*l+a[8]*u,i[c+1]=a[1]*s+a[5]*l+a[9]*u,i[c+2]=a[2]*s+a[6]*l+a[10]*u}import{BackSide as _N,BufferGeometry as IN,DoubleSide as ON,FrontSide as LN}from"three";function I0(r,t){t.flatShading!==void 0&&(r.flatShading=t.flatShading,r.needsUpdate=!0),t.wireframe!==void 0&&(r.wireframe=t.wireframe),t.side!==void 0&&(t.side===0?r.side=LN:t.side===1?r.side=_N:r.side=ON)}function NN(r,t){if(Array.isArray(r.material))for(let e of r.material)I0(e,t);else{let e=r.material;I0(e,t)}r.objectType==="SubdivObject"&&t.flatShading!==void 0&&(r.material.flatShading=!1,r.smoothShading=!t.flatShading,r.updateMesh())}function O0(r,t,e){let n;if(t.geometry.type==="SubdivGeometry")n=Ci.createFromState(r,t,e);else{let o=t.geometry.type==="BooleanGeometry"?new IN:dl(t.geometry,e),i="materials"in t?t.materials.map(a=>e.material(a)):e.material(t.material);zs.is2DParametricMesh(o.userData.type)?n=new Nl(o,i):o?.userData.type==="VectorGeometry"?n=new pi(o,i):t.geometry.type==="NonParametricGeometry"?n=new Pl(o,i):t.geometry.type==="BooleanGeometry"?(n=new Al(void 0,i),n.booleanOp=t.geometry.operation,t.geometry.phongAngle!==void 0&&(n.phongAngle=t.geometry.phongAngle)):n=new yi(o,i),n.uuid=r,n.fromState(t,e)}return NN(n,t),n}function L0(r,t,e){return t.type==="Mesh"?t.geometry.type==="TextGeometry"?new Xl(r,t,e):O0(r,t,e):t.type==="Empty"?oo.createFromState(r,t):t.type==="PointLight"?hi.createFromState(r,t,e):t.type==="SpotLight"?mi.createFromState(r,t,e):t.type==="DirectionalLight"?di.createFromState(r,t,e):Do.is(t.type)?nn.createFromState(r,t):(console.error(t),new oo)}var uo=class extends Ft{};import{Mesh as M0,Ray as MN,Matrix4 as EN,Raycaster as DN}from"three";function N0(r,t){let e=!1,n=t.getLayersOfType("transmission"),o=t.getLayersOfType("outline");return o.length>0&&(r.layers.set(8),n.length>0&&r.layers.enable(3),e=!0,Gr(r),kr(r)),n.length===0&&o.length===0&&r.layers.set(0),e}function P0(r,t){if(!t.layers)return!1;let e=!1,n=t.getLayersOfType("transmission"),o=t.getLayersOfType("outline");return n.length>0&&(r.layers.set(3),o.length>0&&r.layers.enable(8),e=!0),n.length===0&&o.length===0&&r.layers.set(0),e}function E0(r){let t=!1;return r.traverseEntity(e=>{if(e instanceof M0)if(Array.isArray(e.material))for(let n=0;n<e.material.length;n++)N0(e,e.material[n])&&(t=!0);else N0(e,e.material)&&(t=!0)}),t}function D0(r){let t=!1;return r.traverseEntity(e=>{if(e instanceof M0)if(Array.isArray(e.material))for(let n=0;n<e.material.length;n++)P0(e,e.material[n])&&(t=!0);else P0(e,e.material)&&(t=!0)}),t}function B0(r){"material"in r&&BN(r.material),"geometry"in r&&r.geometry.dispose()}function BN(r){Bp(r).forEach(t=>{t instanceof uo||t.dispose()})}var FN=new DN,RN=new EN,kN=new MN;function F0(r,t,e){let n=r.cloner;if(n)for(let o of n.children){let i=RN.copy(o.matrixWorld).invert(),a=kN.copy(t.ray).applyMatrix4(i),s=r.matrixWorld;a.applyMatrix4(s);let l=FN;l.set(a.origin,a.direction),l.near=t.near,l.far=t.far,l.intersectObject(r,!1).length>0&&e.push({object:r})}}var R0=new VN,Ap=class extends yl(UN){constructor(e,n){super();this.objectType="Scene";this.backupFog=new zN(16777215,.1,2e3);this.fogUseBGColor=!1;this.enableHelpers=!1;this.wireframeState=!1;this.needsTransmissionDirty=!0;this.needsNormalDirty=!0;this._needsTransmission=!1;this._needsNormal=!1;this.bgColor=new Je(1,1,1,1);this.entityByUuid={};this.ambientLight=new GN(13882323,8553090,.75),this.ambientLight.name="Default Ambient Light",this.ambientLight.layers.enable(3),this.personalCamera=this.createPersonalCamera(),this.activeCamera=this.personalCamera,this.postprocessing=e.postprocessing,this.init(e,n),this.matrixAutoUpdate=!1}needsTransmission(){return this.needsTransmissionDirty&&(this._needsTransmission=D0(this),this.needsTransmissionDirty=!1),this._needsTransmission}needsNormal(){return this.needsNormalDirty&&(this._needsNormal=E0(this),this.needsNormalDirty=!1),this._needsNormal}find(e){if(e===""||e===void 0)return;let n=this.entityByUuid[e];return n===void 0?this.getObjectByProperty("uuid",e):n}get enableFog(){return this.fog!==null}set enableFog(e){this.fog=e===!0?this.backupFog:null}init(e,n){if(this.createChildrenObjects(e.objects,this,n),this.personalCamera.removeFromParent(),this.add(this.personalCamera),this.ambientLight.removeFromParent(),this.add(this.ambientLight),this.setBackgroundColor(it(e.backgroundColor,n)),this.updateFog(e.fog,n),this.updateAmbientLight(e.environment.ambientLight,n),this.activeCamera=this.personalCamera,e.publish.playCamera!==null){let o=this.find(e.publish.playCamera);o instanceof nn&&this.switchActiveCamera(o)}this.traverse(o=>{Lr(o)&&o.recomputeBoolean()})}clearScene(){this.traverseEntity(e=>{B0(e)});for(let e of this.children)Nr(e)&&e.removeFromParent()}resetAfterClear(e,n){this.init(e,n)}createPersonalCamera(){let e=nn.createFromState(Ap.PERSONAL_CAMERA_ID,{...js.defaultData,name:"Personal Camera"});return e.objectHelper.visible=!1,delete e.isEntity,this.registerObjectCreatedInLegacy(e),e}raycast(e){let n=[],o=i=>{for(let a of i.children)Nr(a)&&!a.raycastLock&&a.visible&&((Or(a)||gl(a)&&this.enableHelpers&&a.objectHelper.visible)&&(e.intersectObject(a,!1,n),F0(a,e,n)),o(a))};return o(this),n}traverseEntity(e){for(let n of this.children)Nr(n)&&n.traverseEntity(e)}traverseVisibleEntity(e){for(let n of this.children)Nr(n)&&n.visible&&n.traverseVisibleEntity(e)}updateFog(e,n){this.enableFog=e.enabled,this.fogUseBGColor=e.useBackgroundColor,e.useBackgroundColor?this.backupFog.color.set(this.bgColor):this.backupFog.color=it(e.color,n),this.backupFog.near=e.near,this.backupFog.far=e.far}dispose(){this.clearScene()}updateAmbientLight(e,n){ng(this.ambientLight,e,n),e.groundColor!==void 0&&(this.ambientLight.groundColor=it(e.groundColor,n)),e.enabled!==void 0&&(this.ambientLight.visible=e.enabled)}switchActiveCamera(e){this.activeCamera!==this.personalCamera&&(this.activeCamera.objectHelper.visible=!0),this.activeCamera=e,e.objectHelper.visible=!1}setBackgroundColor(e){this.bgColor=e,this.fogUseBGColor===!0&&(this.backupFog.color=e)}createChildrenObjects(e,n,o){for(let i of e)this.createChildObject(i.id,i.data,i.children,n,o)}registerObjectCreatedInLegacy(e){this.entityByUuid[e.uuid]=e}unregisterObject(e){delete this.entityByUuid[e.uuid];for(let n of e.children)this.unregisterObject(n)}createChildObject(e,n,o,i,a){let s=L0(e,n,a);return s&&(this.entityByUuid[e]=s,i.add(s),Lr(i)&&Or(s)&&(s.prevBooleanObjectParent=i),this.createChildrenObjects(o,s,a)),s}getCenter(e){let n=[];for(let i=0,a=e.length;i<a;++i){let{id:s,recursive:l}=e[i],u=this.find(s),c=l?u.recursiveBBox:u.singleBBox;n.push(...c.vertices)}let o=new jN;return o.setFromPoints(n),o.getCenter(R0),R0}copyMatrixWorld(e,n){if(e===null){n.identity();return}let o=this.find(e);o?n.copy(o.matrixWorld):n.identity()}copyParentMatrixWorld(e,n){if(e===null){n.identity();return}let o=this.find(e)?.parent;o?n.copy(o.matrixWorld):n.identity()}traverseMaterial(e){this.traverseEntity(n=>{if(n instanceof ct)if(Array.isArray(n.material))for(let o=0;o<n.material.length;o++)n.material[o]instanceof Ft&&e(n.material[o]);else n.material instanceof Ft&&e(n.material)})}updateCanvasSize(e,n){this.activeCamera.setViewplaneSize(e,n);let o,i;e>=n?(o=n/e,i=1):(o=1,i=e/n),this.traverseMaterial(a=>{a.getLayersOfType("transmission").forEach(l=>{l.uniforms[`f${l.id}_aspectRatio`].value.x=o,l.uniforms[`f${l.id}_aspectRatio`].value.y=i})})}},za=Ap;za.PERSONAL_CAMERA_ID="f23858d0-4a3b-4bd8-8173-66ed0af7f6fb-personalCamera";import{Box2 as HN,Vector2 as po,Path as k0,Shape as WN,ShapeUtils as qN,Color as XN}from"three";var $l=class{constructor(){this.type="ShapePath";this.color=new XN;this.subPaths=[];this.currentPath=null}moveTo(t,e){return this.currentPath=new k0,this.subPaths.push(this.currentPath),this.currentPath.moveTo(t,e),this}lineTo(t,e){return this.currentPath?.lineTo(t,e),this}quadraticCurveTo(t,e,n,o){return this.currentPath?.quadraticCurveTo(t,e,n,o),this}bezierCurveTo(t,e,n,o,i,a){return this.currentPath?.bezierCurveTo(t,e,n,o,i,a),this}splineThru(t){return this.currentPath?.splineThru(t),this}toShapes(){let e={ORIGIN:0,DESTINATION:1,BETWEEN:2,LEFT:3,RIGHT:4,BEHIND:5,BEYOND:6},n={loc:e.ORIGIN,t:0};function o(m,g,v,x){let S=m.x,w=g.x,b=v.x,_=x.x,T=m.y,y=g.y,I=v.y,A=x.y,O=(_-b)*(T-I)-(A-I)*(S-b),C=(w-S)*(T-I)-(y-T)*(S-b),N=(A-I)*(w-S)-(_-b)*(y-T),P=O/N,G=C/N;if(N===0&&O!==0||P<=0||P>=1||G<0||G>1)return null;if(O===0&&N===0){for(let $=0;$<2;$++)if(i($===0?v:x,m,g),n.loc===e.ORIGIN){let Y=$===0?v:x;return{x:Y.x,y:Y.y,t:n.t}}else if(n.loc===e.BETWEEN){let Y=+(S+n.t*(w-S)).toPrecision(10),ie=+(T+n.t*(y-T)).toPrecision(10);return{x:Y,y:ie,t:n.t}}return null}else{for(let ie=0;ie<2;ie++)if(i(ie===0?v:x,m,g),n.loc===e.ORIGIN){let j=ie===0?v:x;return{x:j.x,y:j.y,t:n.t}}let $=+(S+P*(w-S)).toPrecision(10),Y=+(T+P*(y-T)).toPrecision(10);return{x:$,y:Y,t:P}}}function i(m,g,v){let x=v.x-g.x,S=v.y-g.y,w=m.x-g.x,b=m.y-g.y,_=x*b-w*S;if(m.x===g.x&&m.y===g.y){n.loc=e.ORIGIN,n.t=0;return}if(m.x===v.x&&m.y===v.y){n.loc=e.DESTINATION,n.t=1;return}if(_<-Number.EPSILON){n.loc=e.LEFT;return}if(_>Number.EPSILON){n.loc=e.RIGHT;return}if(x*w<0||S*b<0){n.loc=e.BEHIND;return}if(Math.sqrt(x*x+S*S)<Math.sqrt(w*w+b*b)){n.loc=e.BEYOND;return}let T;x!==0?T=w/x:T=b/S,n.loc=e.BETWEEN,n.t=T}function a(m,g){let v=[],x=[];for(let S=1;S<m.length;S++){let w=m[S-1],b=m[S];for(let _=1;_<g.length;_++){let T=g[_-1],y=g[_],I=o(w,b,T,y);I!==null&&v.find(A=>A.t<=I.t+Number.EPSILON&&A.t>=I.t-Number.EPSILON)===void 0&&(v.push(I),x.push(new po(I.x,I.y)))}}return x}function s(m,g,v){let x=new po;g.getCenter(x);let S=[];return v.forEach(w=>{w.boundingBox.containsPoint(x)&&a(m,w.points).forEach(_=>{S.push({identifier:w.identifier,isCW:w.isCW,point:_})})}),S.sort((w,b)=>w.point.x-b.point.x),S}function l(m,g,v,x,S){(S==null||S==="")&&(S="nonzero");let w=new po;m.boundingBox.getCenter(w);let b=[new po(v,w.y),new po(x,w.y)],_=s(b,m.boundingBox,g);_.sort((C,N)=>C.point.x-N.point.x);let T=[],y=[];_.forEach(C=>{C.identifier===m.identifier?T.push(C):y.push(C)});let I=T[0].point.x,A=[],O=0;for(;O<y.length&&y[O].point.x<I;)A.length>0&&A[A.length-1]===y[O].identifier?A.pop():A.push(y[O].identifier),O++;if(A.push(m.identifier),S==="evenodd"){let C=A.length%2===0,N=A[A.length-2];return{identifier:m.identifier,isHole:C,for:N}}else if(S==="nonzero"){let C=!0,N=null,P=null;for(let G=0;G<A.length;G++){let $=A[G];g[$]&&(C?(P=g[$].isCW,C=!1,N=$):P!==g[$].isCW&&(P=g[$].isCW,C=!0))}return{identifier:m.identifier,isHole:C,for:N}}else console.warn('fill-rule: "'+S+'" is currently not implemented.')}let u=0,c=999999999,p=-999999999,f=[];this.subPaths.forEach(m=>{let g=m.getPoints(),v=-999999999,x=999999999,S=-999999999,w=999999999;for(let b=0;b<g.length;b++){let _=g[b];_.y>v&&(v=_.y),_.y<x&&(x=_.y),_.x>S&&(S=_.x),_.x<w&&(w=_.x)}p<=S&&(p=S+1),c>=w&&(c=w-1),g.length&&f.push({curves:m.curves,points:g,isCW:qN.isClockWise(g),identifier:u++,boundingBox:new HN(new po(w,x),new po(S,v))})});let d=f.map(m=>l(m,f,c,p,this.userData?.style.fillRule)),h=[];return f.forEach(m=>{let g=d[m.identifier];if(g&&!g.isHole){let v=new WN;v.curves=m.curves,d.filter(S=>S?.isHole&&S.for===m.identifier).forEach(S=>{if(S){let w=f[S.identifier],b=new k0;b.curves=w.curves,v.holes.push(b)}}),h.push(v)}}),h}};var z0=Dp(G0());var U0=new Map;function V0(r){if(typeof r=="string")return r;let t=U0.get(r);return t||(t={url:URL.createObjectURL(new Blob([r]))},U0.set(r,t)),t.url}var Ai=class{constructor({src:t,volume:e,delay:n,loop:o}){this._volume=1;this.delay=0;this._loop=1;this.loopsRemaining=0;this._isStarted=!1;this.onEnd=()=>{this._loop>1?this.loopsRemaining===1/0?this.play():this.loopsRemaining>1?(this.play(),this.loopsRemaining--):this._isStarted=!1:this._isStarted=!1};let i;typeof t=="string"?i={src:t}:i={src:V0(t),format:"wav"},this.sound=new z0.Howl(i),this.sound.on("end",this.onEnd),this._src=t,e!==void 0&&(this.volume=e),n!==void 0&&(this.delay=n),o!==void 0&&(this.loop=o)}get src(){return this._src}get isStarted(){return this._isStarted}get volume(){return this._volume}set volume(t){this._volume=t,this.sound.volume(t)}get loop(){return this._loop}set loop(t){this._loop=t,this.loopsRemaining=t}fade(t,e=1e3){t?(this.sound.volume(this._volume),this.clearFade(),this.fadeTimerId=window.setTimeout(()=>{this.sound.fade(this._volume,0,e),this.clearFade()},t)):this.sound.fade(this._volume,0,e)}on(t,e,n){this.sound.on(t,e,n)}off(t,e,n){this.sound.off(t,e,n)}play(){this._isStarted=!0,this.delay?(this.clearDelay(),this.delayTimerId=window.setTimeout(()=>{this.sound.play(),this.clearDelay()},this.delay)):this.sound.play()}pause(){this._isStarted=!1,this.sound.pause(),this.clearFade(),this.clearDelay()}stop(){this._isStarted=!1,this.sound.stop(),this.loopsRemaining=this._loop,this.clearFade(),this.clearDelay()}clearFade(){this.fadeTimerId&&(clearTimeout(this.fadeTimerId),delete this.fadeTimerId)}clearDelay(){this.delayTimerId&&(clearTimeout(this.delayTimerId),delete this.delayTimerId)}dispose(t=!1){this.off(),this.stop(),this.clearFade(),this.clearDelay()}};function _i(r){this.char=r,this.state={},this.activeState=null}function _p(r,t,e){this.contextName=e,this.startIndex=r,this.endOffset=t}function YN(r,t,e){this.contextName=r,this.openRange=null,this.ranges=[],this.checkStart=t,this.checkEnd=e}function St(r,t){this.context=r,this.index=t,this.length=r.length,this.current=r[t],this.backtrack=r.slice(0,t),this.lookahead=r.slice(t+1)}function Zl(r){this.eventId=r,this.subscribers=[]}function $N(r){let t=["start","end","next","newToken","contextStart","contextEnd","insertToken","removeToken","removeRange","replaceToken","replaceRange","composeRUD","updateContextsRanges"];t.forEach(n=>{Object.defineProperty(this.events,n,{value:new Zl(n)})}),r&&t.forEach(n=>{let o=r[n];typeof o=="function"&&this.events[n].subscribe(o)}),["insertToken","removeToken","removeRange","replaceToken","replaceRange","composeRUD"].forEach(n=>{this.events[n].subscribe(this.updateContextsRanges)})}function He(r){this.tokens=[],this.registeredContexts={},this.contextCheckers=[],this.events={},this.registeredModifiers=[],$N.call(this,r)}_i.prototype.setState=function(r,t){return this.state[r]=t,this.activeState={key:r,value:this.state[r]},this.activeState};_i.prototype.getState=function(r){return this.state[r]||null};He.prototype.inboundIndex=function(r){return r>=0&&r<this.tokens.length};He.prototype.composeRUD=function(r){let e=r.map(o=>this[o[0]].apply(this,o.slice(1).concat(!0))),n=o=>typeof o=="object"&&o.hasOwnProperty("FAIL");if(e.every(n))return{FAIL:"composeRUD: one or more operations hasn't completed successfully",report:e.filter(n)};this.dispatch("composeRUD",[e.filter(o=>!n(o))])};He.prototype.replaceRange=function(r,t,e,n){t=t!==null?t:this.tokens.length;let o=e.every(i=>i instanceof _i);if(!isNaN(r)&&this.inboundIndex(r)&&o){let i=this.tokens.splice.apply(this.tokens,[r,t].concat(e));return n||this.dispatch("replaceToken",[r,t,e]),[i,e]}else return{FAIL:"replaceRange: invalid tokens or startIndex."}};He.prototype.replaceToken=function(r,t,e){if(!isNaN(r)&&this.inboundIndex(r)&&t instanceof _i){let n=this.tokens.splice(r,1,t);return e||this.dispatch("replaceToken",[r,t]),[n[0],t]}else return{FAIL:"replaceToken: invalid token or index."}};He.prototype.removeRange=function(r,t,e){t=isNaN(t)?this.tokens.length:t;let n=this.tokens.splice(r,t);return e||this.dispatch("removeRange",[n,r,t]),n};He.prototype.removeToken=function(r,t){if(!isNaN(r)&&this.inboundIndex(r)){let e=this.tokens.splice(r,1);return t||this.dispatch("removeToken",[e,r]),e}else return{FAIL:"removeToken: invalid token index."}};He.prototype.insertToken=function(r,t,e){return r.every(o=>o instanceof _i)?(this.tokens.splice.apply(this.tokens,[t,0].concat(r)),e||this.dispatch("insertToken",[r,t]),r):{FAIL:"insertToken: invalid token(s)."}};He.prototype.registerModifier=function(r,t,e){this.events.newToken.subscribe(function(n,o){let i=[n,o],a=t===null||t.apply(this,i)===!0,s=[n,o];if(a){let l=e.apply(this,s);n.setState(r,l)}}),this.registeredModifiers.push(r)};Zl.prototype.subscribe=function(r){return typeof r=="function"?this.subscribers.push(r)-1:{FAIL:`invalid '${this.eventId}' event handler`}};Zl.prototype.unsubscribe=function(r){this.subscribers.splice(r,1)};St.prototype.setCurrentIndex=function(r){this.index=r,this.current=this.context[r],this.backtrack=this.context.slice(0,r),this.lookahead=this.context.slice(r+1)};St.prototype.get=function(r){switch(!0){case r===0:return this.current;case(r<0&&Math.abs(r)<=this.backtrack.length):return this.backtrack.slice(r)[0];case(r>0&&r<=this.lookahead.length):return this.lookahead[r-1];default:return null}};He.prototype.rangeToText=function(r){if(r instanceof _p)return this.getRangeTokens(r).map(t=>t.char).join("")};He.prototype.getText=function(){return this.tokens.map(r=>r.char).join("")};He.prototype.getContext=function(r){let t=this.registeredContexts[r];return t||null};He.prototype.on=function(r,t){let e=this.events[r];return e?e.subscribe(t):null};He.prototype.dispatch=function(r,t){let e=this.events[r];e instanceof Zl&&e.subscribers.forEach(n=>{n.apply(this,t||[])})};He.prototype.registerContextChecker=function(r,t,e){if(this.getContext(r))return{FAIL:`context name '${r}' is already registered.`};if(typeof t!="function")return{FAIL:"missing context start check."};if(typeof e!="function")return{FAIL:"missing context end check."};let n=new YN(r,t,e);return this.registeredContexts[r]=n,this.contextCheckers.push(n),n};He.prototype.getRangeTokens=function(r){let t=r.startIndex+r.endOffset;return[].concat(this.tokens.slice(r.startIndex,t))};He.prototype.getContextRanges=function(r){let t=this.getContext(r);return t?t.ranges:{FAIL:`context checker '${r}' is not registered.`}};He.prototype.resetContextsRanges=function(){let r=this.registeredContexts;for(let t in r)if(r.hasOwnProperty(t)){let e=r[t];e.ranges=[]}};He.prototype.updateContextsRanges=function(){this.resetContextsRanges();let r=this.tokens.map(t=>t.char);for(let t=0;t<r.length;t++){let e=new St(r,t);this.runContextCheck(e)}this.dispatch("updateContextsRanges",[this.registeredContexts])};He.prototype.setEndOffset=function(r,t){let e=this.getContext(t).openRange.startIndex,n=new _p(e,r,t),o=this.getContext(t).ranges;return n.rangeId=`${t}.${o.length}`,o.push(n),this.getContext(t).openRange=null,n};He.prototype.runContextCheck=function(r){let t=r.index;this.contextCheckers.forEach(e=>{let n=e.contextName,o=this.getContext(n).openRange;if(!o&&e.checkStart(r)&&(o=new _p(t,null,n),this.getContext(n).openRange=o,this.dispatch("contextStart",[n,t])),!!o&&e.checkEnd(r)){let i=t-o.startIndex+1,a=this.setEndOffset(i,n);this.dispatch("contextEnd",[n,a])}})};He.prototype.tokenize=function(r){this.tokens=[],this.resetContextsRanges();let t=Array.from(r);this.dispatch("start");for(let e=0;e<t.length;e++){let n=t[e],o=new St(t,e);this.dispatch("next",[o]),this.runContextCheck(o);let i=new _i(n);this.tokens.push(i),this.dispatch("newToken",[i,o])}return this.dispatch("end",[this.tokens]),this.tokens};var j0=He;function Wr(r){return/[\u0600-\u065F\u066A-\u06D2\u06FA-\u06FF]/.test(r)}function Ip(r){return/[\u0630\u0690\u0621\u0631\u0661\u0671\u0622\u0632\u0672\u0692\u06C2\u0623\u0673\u0693\u06C3\u0624\u0694\u06C4\u0625\u0675\u0695\u06C5\u06E5\u0676\u0696\u06C6\u0627\u0677\u0697\u06C7\u0648\u0688\u0698\u06C8\u0689\u0699\u06C9\u068A\u06CA\u066B\u068B\u06CB\u068C\u068D\u06CD\u06FD\u068E\u06EE\u06FE\u062F\u068F\u06CF\u06EF]/.test(r)}function mr(r){return/[\u0600-\u0605\u060C-\u060E\u0610-\u061B\u061E\u064B-\u065F\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED]/.test(r)}function ja(r){return/[A-z]/.test(r)}function H0(r){return/\s/.test(r)}function Gt(r){this.font=r,this.features={}}function sn(r){this.id=r.id,this.tag=r.tag,this.substitution=r.substitution}function Ha(r,t){if(!r)return-1;switch(t.format){case 1:return t.glyphs.indexOf(r);case 2:let e=t.ranges;for(let n=0;n<e.length;n++){let o=e[n];if(r>=o.start&&r<=o.end){let i=r-o.start;return o.index+i}}break;default:return-1}return-1}function KN(r,t){return Ha(r,t.coverage)===-1?null:r+t.deltaGlyphId}function ZN(r,t){let e=Ha(r,t.coverage);return e===-1?null:t.substitute[e]}function Op(r,t){let e=[];for(let n=0;n<r.length;n++){let o=r[n],i=t.current;i=Array.isArray(i)?i[0]:i;let a=Ha(i,o);a!==-1&&e.push(a)}return e.length!==r.length?-1:e}function QN(r,t){let e=t.inputCoverage.length+t.lookaheadCoverage.length+t.backtrackCoverage.length;if(r.context.length<e)return[];let n=Op(t.inputCoverage,r);if(n===-1)return[];let o=t.inputCoverage.length-1;if(r.lookahead.length<t.lookaheadCoverage.length)return[];let i=r.lookahead.slice(o);for(;i.length&&mr(i[0].char);)i.shift();let a=new St(i,0),s=Op(t.lookaheadCoverage,a),l=[].concat(r.backtrack);for(l.reverse();l.length&&mr(l[0].char);)l.shift();if(l.length<t.backtrackCoverage.length)return[];let u=new St(l,0),c=Op(t.backtrackCoverage,u),p=n.length===t.inputCoverage.length&&s.length===t.lookaheadCoverage.length&&c.length===t.backtrackCoverage.length,f=[];if(p)for(let d=0;d<t.lookupRecords.length;d++){let m=t.lookupRecords[d].lookupListIndex,g=this.getLookupByIndex(m);for(let v=0;v<g.subtables.length;v++){let x=g.subtables[v],S=this.getLookupMethod(g,x);if(this.getSubstitutionType(g,x)==="12")for(let b=0;b<n.length;b++){let _=r.get(b),T=S(_);T&&f.push(T)}}}return f}function JN(r,t){let e=r.current,n=Ha(e,t.coverage);if(n===-1)return null;let o,i=t.ligatureSets[n];for(let a=0;a<i.length;a++){o=i[a];for(let s=0;s<o.components.length;s++){let l=r.lookahead[s],u=o.components[s];if(l!==u)break;if(s===o.components.length-1)return o}}return null}function eP(r,t){let e=Ha(r,t.coverage);return e===-1?null:t.sequences[e]}Gt.prototype.getDefaultScriptFeaturesIndexes=function(){let r=this.font.tables.gsub.scripts;for(let t=0;t<r.length;t++){let e=r[t];if(e.tag==="DFLT")return e.script.defaultLangSys.featureIndexes}return[]};Gt.prototype.getScriptFeaturesIndexes=function(r){if(!this.font.tables.gsub)return[];if(!r)return this.getDefaultScriptFeaturesIndexes();let e=this.font.tables.gsub.scripts;for(let n=0;n<e.length;n++){let o=e[n];if(o.tag===r&&o.script.defaultLangSys)return o.script.defaultLangSys.featureIndexes;{let i=o.langSysRecords;if(i)for(let a=0;a<i.length;a++){let s=i[a];if(s.tag===r)return s.langSys.featureIndexes}}}return this.getDefaultScriptFeaturesIndexes()};Gt.prototype.mapTagsToFeatures=function(r,t){let e={};for(let n=0;n<r.length;n++){let o=r[n].tag,i=r[n].feature;e[o]=i}this.features[t].tags=e};Gt.prototype.getScriptFeatures=function(r){let t=this.features[r];if(this.features.hasOwnProperty(r))return t;let e=this.getScriptFeaturesIndexes(r);if(!e)return null;let n=this.font.tables.gsub;return t=e.map(o=>n.features[o]),this.features[r]=t,this.mapTagsToFeatures(t,r),t};Gt.prototype.getSubstitutionType=function(r,t){let e=r.lookupType.toString(),n=t.substFormat.toString();return e+n};Gt.prototype.getLookupMethod=function(r,t){switch(this.getSubstitutionType(r,t)){case"11":return n=>KN.apply(this,[n,t]);case"12":return n=>ZN.apply(this,[n,t]);case"63":return n=>QN.apply(this,[n,t]);case"41":return n=>JN.apply(this,[n,t]);case"21":return n=>eP.apply(this,[n,t]);default:throw new Error(`lookupType: ${r.lookupType} - substFormat: ${t.substFormat} is not yet supported`)}};Gt.prototype.lookupFeature=function(r){let t=r.contextParams,e=t.index,n=this.getFeature({tag:r.tag,script:r.script});if(!n)return new Error(`font '${this.font.names.fullName.en}' doesn't support feature '${r.tag}' for script '${r.script}'.`);let o=this.getFeatureLookups(n),i=[].concat(t.context);for(let a=0;a<o.length;a++){let s=o[a],l=this.getLookupSubtables(s);for(let u=0;u<l.length;u++){let c=l[u],p=this.getSubstitutionType(s,c),f=this.getLookupMethod(s,c),d;switch(p){case"11":d=f(t.current),d&&i.splice(e,1,new sn({id:11,tag:r.tag,substitution:d}));break;case"12":d=f(t.current),d&&i.splice(e,1,new sn({id:12,tag:r.tag,substitution:d}));break;case"63":d=f(t),Array.isArray(d)&&d.length&&i.splice(e,1,new sn({id:63,tag:r.tag,substitution:d}));break;case"41":d=f(t),d&&i.splice(e,1,new sn({id:41,tag:r.tag,substitution:d}));break;case"21":d=f(t.current),d&&i.splice(e,1,new sn({id:21,tag:r.tag,substitution:d}));break}t=new St(i,e),!(Array.isArray(d)&&!d.length)&&(d=null)}}return i.length?i:null};Gt.prototype.supports=function(r){if(!r.script)return!1;this.getScriptFeatures(r.script);let t=this.features.hasOwnProperty(r.script);if(!r.tag)return t;let e=this.features[r.script].some(n=>n.tag===r.tag);return t&&e};Gt.prototype.getLookupSubtables=function(r){return r.subtables||null};Gt.prototype.getLookupByIndex=function(r){return this.font.tables.gsub.lookups[r]||null};Gt.prototype.getFeatureLookups=function(r){return r.lookupListIndexes.map(this.getLookupByIndex.bind(this))};Gt.prototype.getFeature=function(t){if(!this.font)return{FAIL:"No font was found"};this.features.hasOwnProperty(t.script)||this.getScriptFeatures(t.script);let e=this.features[t.script];return e?e.tags[t.tag]?this.features[t.script].tags[t.tag]:null:{FAIL:`No feature for script ${t.script}`}};var W0=Gt;function tP(r){let t=r.current,e=r.get(-1);return e===null&&Wr(t)||!Wr(e)&&Wr(t)}function rP(r){let t=r.get(1);return t===null||!Wr(t)}var q0={startCheck:tP,endCheck:rP};function nP(r){let t=r.current,e=r.get(-1);return(Wr(t)||mr(t))&&!Wr(e)}function oP(r){let t=r.get(1);switch(!0){case t===null:return!0;case(!Wr(t)&&!mr(t)):let e=H0(t);if(!e)return!0;if(e){let n=!1;if(n=r.lookahead.some(o=>Wr(o)||mr(o)),!n)return!0}break;default:return!1}}var X0={startCheck:nP,endCheck:oP};function iP(r,t,e){t[e].setState(r.tag,r.substitution)}function aP(r,t,e){t[e].setState(r.tag,r.substitution)}function sP(r,t,e){r.substitution.forEach((n,o)=>{t[e+o].setState(r.tag,n)})}function lP(r,t,e){let n=t[e];n.setState(r.tag,r.substitution.ligGlyph);let o=r.substitution.components.length;for(let i=0;i<o;i++)n=t[e+i+1],n.setState("deleted",!0)}var Y0={11:iP,12:aP,63:sP,41:lP};function cP(r,t,e){r instanceof sn&&Y0[r.id]&&Y0[r.id](r,t,e)}var Ii=cP;function uP(r){let t=[].concat(r.backtrack);for(let e=t.length-1;e>=0;e--){let n=t[e],o=Ip(n),i=mr(n);if(!o&&!i)return!0;if(o)return!1}return!1}function pP(r){if(Ip(r.current))return!1;for(let t=0;t<r.lookahead.length;t++){let e=r.lookahead[t];if(!mr(e))return!0}return!1}function fP(r){let t="arab",e=this.featuresTags[t],n=this.tokenizer.getRangeTokens(r);if(n.length===1)return;let o=new St(n.map(a=>a.getState("glyphIndex")),0),i=new St(n.map(a=>a.char),0);n.forEach((a,s)=>{if(mr(a.char))return;o.setCurrentIndex(s),i.setCurrentIndex(s);let l=0;uP(i)&&(l|=1),pP(i)&&(l|=2);let u;switch(l){case 1:u="fina";break;case 2:u="init";break;case 3:u="medi";break}if(e.indexOf(u)===-1)return;let c=this.query.lookupFeature({tag:u,script:t,contextParams:o});if(c instanceof Error)return console.info(c.message);c.forEach((p,f)=>{p instanceof sn&&(Ii(p,n,f),o.context[f]=p.substitution)})})}var $0=fP;function K0(r,t){let e=r.map(n=>n.activeState.value);return new St(e,t||0)}function dP(r){let t="arab",e=this.tokenizer.getRangeTokens(r),n=K0(e);n.context.forEach((o,i)=>{n.setCurrentIndex(i);let a=this.query.lookupFeature({tag:"rlig",script:t,contextParams:n});a.length&&(a.forEach(s=>Ii(s,e,i)),n=K0(e))})}var Z0=dP;function hP(r){let t=r.current,e=r.get(-1);return e===null&&ja(t)||!ja(e)&&ja(t)}function mP(r){let t=r.get(1);return t===null||!ja(t)}var Q0={startCheck:hP,endCheck:mP};function J0(r,t){let e=r.map(n=>n.activeState.value);return new St(e,t||0)}function gP(r){let t="latn",e=this.tokenizer.getRangeTokens(r),n=J0(e);n.context.forEach((o,i)=>{n.setCurrentIndex(i);let a=this.query.lookupFeature({tag:"liga",script:t,contextParams:n});a.length&&(a.forEach(s=>Ii(s,e,i)),n=J0(e))})}var ev=gP;function gr(r){this.baseDir=r||"ltr",this.tokenizer=new j0,this.featuresTags={}}gr.prototype.setText=function(r){this.text=r};gr.prototype.contextChecks={latinWordCheck:Q0,arabicWordCheck:q0,arabicSentenceCheck:X0};function Lp(r){let t=this.contextChecks[`${r}Check`];return this.tokenizer.registerContextChecker(r,t.startCheck,t.endCheck)}function yP(){return Lp.call(this,"latinWord"),Lp.call(this,"arabicWord"),Lp.call(this,"arabicSentence"),this.tokenizer.tokenize(this.text)}function vP(){this.tokenizer.getContextRanges("arabicSentence").forEach(t=>{let e=this.tokenizer.getRangeTokens(t);this.tokenizer.replaceRange(t.startIndex,t.endOffset,e.reverse())})}gr.prototype.registerFeatures=function(r,t){let e=t.filter(n=>this.query.supports({script:r,tag:n}));this.featuresTags.hasOwnProperty(r)?this.featuresTags[r]=this.featuresTags[r].concat(e):this.featuresTags[r]=e};gr.prototype.applyFeatures=function(r,t){if(!r)throw new Error("No valid font was provided to apply features");this.query||(this.query=new W0(r));for(let e=0;e<t.length;e++){let n=t[e];!this.query.supports({script:n.script})||this.registerFeatures(n.script,n.tags)}};gr.prototype.registerModifier=function(r,t,e){this.tokenizer.registerModifier(r,t,e)};function Np(){if(this.tokenizer.registeredModifiers.indexOf("glyphIndex")===-1)throw new Error("glyphIndex modifier is required to apply arabic presentation features.")}function xP(){let r="arab";if(!this.featuresTags.hasOwnProperty(r))return;Np.call(this),this.tokenizer.getContextRanges("arabicWord").forEach(e=>{$0.call(this,e)})}function bP(){let r="arab";if(!this.featuresTags.hasOwnProperty(r)||this.featuresTags[r].indexOf("rlig")===-1)return;Np.call(this),this.tokenizer.getContextRanges("arabicWord").forEach(n=>{Z0.call(this,n)})}function SP(){let r="latn";if(!this.featuresTags.hasOwnProperty(r)||this.featuresTags[r].indexOf("liga")===-1)return;Np.call(this),this.tokenizer.getContextRanges("latinWord").forEach(n=>{ev.call(this,n)})}gr.prototype.checkContextReady=function(r){return!!this.tokenizer.getContext(r)};gr.prototype.applyFeaturesToContexts=function(){this.checkContextReady("arabicWord")&&(xP.call(this),bP.call(this)),this.checkContextReady("latinWord")&&SP.call(this),this.checkContextReady("arabicSentence")&&vP.call(this)};gr.prototype.processText=function(r){(!this.text||this.text!==r)&&(this.setText(r),yP.call(this),this.applyFeaturesToContexts())};gr.prototype.getBidiText=function(r){return this.processText(r),this.tokenizer.getText()};gr.prototype.getTextGlyphs=function(r){this.processText(r);let t=[];for(let e=0;e<this.tokenizer.tokens.length;e++){let n=this.tokenizer.tokens[e];if(n.state.deleted)continue;let o=n.activeState.value;t.push(Array.isArray(o)?o[0]:o)}return t};var tv=gr;function wP(r,t){return t.state.glyphIndex===r||t.state.fina===r||t.state.medi===r||t.state.init===r}var Ql=class{constructor(t,e,n){this._arrayBuffer=new ArrayBuffer(1);this._isLoaded=!1;this._intercepted=!1;this._isUserFont=t.isUserFont??!1,this._loadingPromise=g0(t,e).then(o=>{o&&(this._arrayBuffer=o.arr,this._url=o.url,this.font=o.font,this._intercepted=o.intercepted,this._isLoaded=!0,n())})}get url(){return this._url}get intercepted(){return this._intercepted}get isLoaded(){return this._isLoaded}get loadingPromise(){return this._loadingPromise}reverseLigaturesTable(t,e,n){let o=new tv,i=c=>t.charToGlyphIndex(c.char);o.registerModifier("glyphIndex",null,i),o.applyFeatures(t,t.defaultRenderOptions.features),o.getTextGlyphs(e);let a=o.tokenizer.tokens,s=[],l=0,u=n.length===a.length;for(let c=0;c<n.length;c++){let p=n[c].index,f=String.fromCharCode(n[c].unicode),d=a[l];if(wP(p,d)||u)s.push({char:f,index:p,replacements:[d.state.glyphIndex],replacementChars:[d.char]}),l++;else{let h=d.char,m="",g=[d.state.glyphIndex],v=[],x=!1;for(;!x;)l++,m=e.charAt(l),h+=m,g.push(t.charToGlyphIndex(m)),v=t.stringToGlyphs(h),v.length===1&&v[0].index===p&&(x=!0),l>e.length&&(x=!0);s.push({char:f,index:p,replacements:g,replacementChars:Array.from(h)}),l++}}return s}async generateShapes(t,e){await this._loadingPromise;let n=this.font,o=e.fontSize/this.unitsPerEm,i=e.fontSize*e.lineHeight,a=t.map(v=>this.getTextWidth(v,e)),s=e.width,l=this.getLineInitialOffsetX(a[0],s,e.horizontalAlign),u=this.getLineInitialOffsetY(i,t.length,e.height,o,e.verticalAlign),c=this.computeSpaceWidthForLine(t,0,e),p=this.getCharWidth(`
1334
+ }`,[yt.simplex,e,o,a])}}();import{Matrix3 as b_}from"three";function Ag(r,t,e){r.setUvTransform(e[0],e[1],t[0],t[1],0,0,0)}var Al=class extends li{constructor(e,n){super(new b_);this.repeat=e;this.offset=n;Ag(this.value,e,n)}updateMatrix(){Ag(this.value,this.repeat,this.offset)}};var Fr=class{constructor(t,e,n,o){this.id=t;this.uuid=e;this.data=n;this.uniforms={};for(let i in o)this.uniforms[`f${this.id}_${i}`]=o[i];for(let i in n)Gu(i,this,n)}get type(){return this.data.type}static create(t,e,n,o){if(n.type==="light")return Rr.createLigherLayer(t,e,n,o);if(n.type==="texture"){let i=o.image(n.texture.image),a=new _a(i,n.texture.wrapping),s=new Cl(i),l=new Al(n.texture.repeat,n.texture.offset),u=new J(n.crop?1:0),c=new Te(n.projection??0),p=new Te(["x","y","z"].indexOf(n.axis)??0),f=new Te(n.side??0),d=new st(n.size?new ro(n.size[0],n.size[1]):new ro(100,100)),h=new J(n.alpha??1),m=new Te(n.mode??0),g=new ya(a,s,u,c,p,f,d,l,h,m),v=new Ie(g.calpha,"f");return new et(t,e,n,{texture:a,textureSize:s,crop:u,projection:c,axis:p,side:f,size:d,mat:l,alpha:h,mode:m},g,m,v)}else if(n.type==="matcap"){let i=o.image(n.texture.image),a=new _a(i,n.texture.wrapping),s=new J(n.alpha??1),l=new Te(n.mode??0),u=new Aa(a,s,l),c=new Ie(u.calpha,"f");return new et(t,e,n,{texture:a,alpha:s,mode:l},u,l,c)}else if(n.type==="displace")if(n.displacementType==="noise"){let i=new ft(new Br(...n.offset)),a=new J(n.scale??10),s=new J(n.intensity??8),l=new J(n.movement??1),u=new Te(n.noiseType??0),c=new ma(s,l,i,a,u);return new Ia(t,e,n,{offset:i,scale:a,intensity:s,movement:l,noiseType:u},c)}else throw new Error;else return w_(t,e,n,o)}updateByOp(t,e,n){let o=t;if(o.path[0]===void 0){if(o.type===0)return"type"in o.props||"category"in o.props?!0:Cg(o.props,n,this,e)}else if(o.path[0]==="texture")return"texture"in e?ku(o.props,n,this):!0;return!1}dispose(){}hasValueByKey(t){return this.uniforms[t]!==void 0}hasValue(t){return this.hasValueByKey(`f${this.id}_${t}`)}setValue(t,e){let n=`f${this.id}_${t}`;this.hasValueByKey(n)&&e!==void 0&&(this.uniforms[n].value=e)}getNode(t){let e=`f${this.id}_${t}`;if(this.hasValueByKey(e))return this.uniforms[e]}getValue(t){let e=`f${this.id}_${t}`;if(this.hasValueByKey(e))return this.uniforms[e].value}getName(t){let n=/f\d+_(.*)/.exec(t);if(n&&n.length>1)return n[1];console.log(`Layer.getName: error ${t}`)}getNames(){let t=[];for(let e in this.uniforms){let n=this.getName(e);n&&t.push(n)}return t}},et=class extends Fr{constructor(e,n,o,i,a,s,l){super(e,n,o,i);this.color=a;this.mode=s;this.alpha=l}},Ia=class extends Fr{constructor(e,n,o,i,a){super(e,n,o,i);this.position=a}},Rr=class extends Fr{constructor(e,n,o,i,a){super(e,n,o,a);this.data=o;this.node=i}static createLigherLayer(e,n,o,i){let a,s=new J(o.alpha),l=new Te(o.mode),u;if(o.category==="lambert"){a=new ba;let c=new Ne(i.color(o.emissive)??0);u={emissive:c},a.emissive=c}else if(o.category==="phong"){a=new wl;let c=new J(o.shininess??30),p=new Ne(i.color(o.specular)??1118481);u={shininess:c,specular:p},a.shininess=c,a.specular=p}else if(o.category==="toon"){a=new wa;let c=new J(o.shininess??30),p=new Ne(i.color(o.specular)??1118481);u={shininess:c,specular:p},a.shininess=c,a.specular=p}else if(o.category==="physical"){a=new Sa;let c=new J(o.roughness??.3),p=new J(o.metalness??0),f=new J(o.reflectivity??.5);u={roughness:c,metalness:p,reflectivity:f},a.roughness=c,a.metalness=p,a.reflectivity=f}else a=new eo,u={};return a.alpha=new J(1),a.shadingAlpha=s,a.shadingBlend=l,u.alpha=a.shadingAlpha,u.mode=a.shadingBlend,new Rr(e,n,o,a,u)}};function _g(r){let t=r instanceof Fr?r.type:r;return t==="texture"||t==="displace_map"||t==="matcap"}function S_(r,t,e,n){switch(r.type){case"color":{let o=new Ne(n.color??5855577),i=new J(n.alpha??1),a=new Ie("alpha / clamp(alpha + accumAlpha, 0.00001, 1.0 )","f");a.keywords.alpha=i;let s=new Te(n.mode??0);return o.alpha=i,new et(t,e,r,{color:o,alpha:i,mode:s},o,s,a)}case"fresnel":{let o=new Ne(n.color??16777215),i=new J(n.bias??.1),a=new J(n.scale??1),s=new J(n.intensity??2),l=new J(n.factor??1),u=new J(n.alpha??1),c=new Te(n.mode??0),p=new ca(o,i,a,s,l,u,c),f=new Ie(p.calpha,"f");return new et(t,e,r,{color:o,bias:i,scale:a,intensity:s,factor:l,alpha:u,mode:c},p,c,f)}case"rainbow":{let o=new J(n.filmThickness??30),i=new J(n.movement??0),a=new ft(n.wavelengths??new Br(0,0,0)),s=new J(n.noiseStrength??0),l=new J(n.noiseScale??1),u=new ft(n.offset??new Br(0,0,0)),c=new J(n.alpha??1),p=new ua(o,i,a,s,l,u,c),f=new Ie(p.calpha,"f"),d=new Te(n.mode??0);return new et(t,e,r,{filmThickness:o,movement:i,wavelengths:a,noiseStrength:s,noiseScale:l,offset:u,alpha:c,mode:d},p,d,f)}case"transmission":{let o=new J(n.thickness??10),i=new J(n.ior??1.5),a=new J(n.roughness??.5),s=dt.transmissionSize,l=dt.transmissionRenderTarget,u=dt.transmissionRenderTargetDepth,c=window.innerWidth,p=window.innerHeight,f=c>=p?new st(p/c,1):new st(1,c/p),d=new J(n.alpha??1),h=new fa(o,i,a,s,l,u,f,d),m=new Ie(h.calpha,"f"),g=new Te(n.mode??0);return new et(t,e,r,{thickness:o,ior:i,roughness:a,aspectRatio:f,alpha:d,mode:g},h,g,m)}case"toon":{let o=new Te(n.positioning??0),i;n.colors?i=new ar(n.colors.length,n.colors):(i=new ar(10,new fi(0,0,0,1)),i.value[1]=new fi(1,1,1,1));let a;n.steps?a=new ir(n.steps.length,n.steps):(a=new ir(10,1),a.value[0]=0);let s=new ft(n.source??new Br(0,0,0)),l=new In(n.isWorldSpace??!0),u=new J(n.noiseStrength??0),c=new J(n.noiseScale??1),p=new $t(n.shadowColor),f=new ft(n.offset??new Br(0,0,0)),d=new J(n.alpha??1),h=new Oa(o,i,a,s,l,u,c,p,f,d),m=new Ie(h.calpha,"f"),g=new Te(n.mode??0);return new et(t,e,r,{positioning:o,colors:i,steps:a,source:s,isWorldSpace:l,noiseStrength:u,noiseScale:c,shadowColor:p,offset:f,alpha:d,mode:g},h,g,m)}case"outline":{let o=new Ne(n.outlineColor??16777215),i=new Ne(n.contourColor??16777215),a=new J(n.outlineWidth??.1),s=new J(n.contourWidth??.1),l=new J(n.outlineThreshold??.1),u=new J(n.contourThreshold??.1),c=new J(n.outlineSmoothing??.1),p=new J(n.contourFrequency??.1),f=new ft(n.contourDirections??new Br(0,1,0)),d=new In(n.positionalLines??!1),h=new In(n.compensation??!0),m=dt.normalRenderTarget,g=dt.normalRenderTargetDepth,v=dt.pixelRatioNode,x=dt.resolution,S=new J(n.alpha??1),w=new pa(o,i,a,s,l,u,c,p,f,d,h,x,m,g,v,S),b=new Ie(w.calpha,"f"),_=new Te(n.mode??0);return new et(t,e,r,{outlineColor:o,contourColor:i,outlineWidth:a,contourWidth:s,outlineThreshold:l,contourThreshold:u,outlineSmoothing:c,contourFrequency:p,contourDirection:f,positionalLines:d,compensation:h,alpha:S,mode:_},w,_,b)}case"depth":{let o=new Te(n.gradientType??0),i=new In(n.smooth??!1),a=new J(n.near??50),s=new J(n.far??200),l=new J(n.isVector??1),u=new J(n.isWorldSpace??0),c=new ft(n.origin??new Br),p=new ft(n.direction??new Br),f;n.colors?f=new ar(n.colors.length,n.colors):(f=new ar(2,new fi(0,0,0,1)),f.value[1]=new fi(1,1,1,1));let d;n.steps?d=new ir(n.steps.length,n.steps):(d=new ir(2,1),d.value[0]=0);let h=new J(n.alpha??1),m=new Te(n.mode??0),g=new da(o,i,a,s,l,u,c,p,f,d,h),v=new Ie(g.calpha,"f");return new et(t,e,r,{gradientType:o,smooth:i,near:a,far:s,isVector:l,isWorldSpace:u,origin:c,direction:p,colors:f,steps:d,alpha:h,mode:m},g,m,v)}case"noise":{let o=new J(n.scale??1),i=new ft(n.size??new Br(100,100,100)),a=new J(n.move??1),s=new st(n.fA??new ro(1.7,9.2)),l=new st(n.fB??new ro(8.3,2.8)),u=new st(n.distortion??new ro(1,1)),c=new $t(n.colorA),p=new $t(n.colorB),f=new $t(n.colorC),d=new $t(n.colorD),h=new J(n.alpha??1),m=new Te(n.mode??0),g=new Te(n.noiseType??0),v=new la(o,i,a,s,l,u,c,p,f,d,h,g),x=new Ie(v.calpha,"f");return new et(t,e,r,{scale:o,size:i,move:a,fA:s,fB:l,distortion:u,colorA:c,colorB:p,colorC:f,colorD:d,alpha:h,mode:m,noiseType:g},v,m,x)}case"normal":{let o=new ft(n.cnormal??new Br(1,1,1)),i=new J(n.alpha??1),a=new Te(n.mode??0),s=new xa(o,i),l=new Ie("alpha / clamp(alpha + accumAlpha, 0.00001, 1.0 )","f");return l.keywords.alpha=i,new et(t,e,r,{cnormal:o,alpha:i,mode:a},s,a,l)}case"gradient":{let o=new Te(n.gradientType??0),i=new In(n.smooth??!1),a;n.colors?a=new ar(n.colors.length,n.colors):(a=new ar(10,new fi(0,0,0,1)),a.value[1]=new fi(1,1,1,1));let s;n.steps?s=new ir(n.steps.length,n.steps):(s=new ir(10,1),s.value[0]=0);let l=new st(n.offset??new ro(0,0)),u=new st(n.morph??new ro(0,0)),c=new J(n.angle??0),p=new J(n.alpha??1),f=new Te(n.mode??0),d=new ga(o,i,a,s,l,u,c,p),h=new Ie(d.calpha,"f");return new et(t,e,r,{gradientType:o,smooth:i,colors:a,steps:s,offset:l,morph:u,angle:c,alpha:p,mode:f},d,f,h)}default:{let o=new Ne(1,0,0,1),i=new J(1),a=new Ie("alpha / clamp(alpha + accumAlpha, 0.00001, 1.0 )","f");a.keywords.alpha=i;let s=new Te(0);return o.alpha=i,new et(t,e,r,{color:o,alpha:i,mode:s},o,s,a)}}}function w_(r,t,e,n){let o=Sg(e,n);return S_(e,r,t,o)}function Gu(r,t,e){if(e.type==="displace"&&(r==="intensity"||r==="visible")){let n=t.uniforms[`f${t.id}_intensity`];return n?(n.value=e.intensity*(e.visible?1:0),n):void 0}if(e.type!=="displace"&&(r==="alpha"||r==="visible")){let n=t.uniforms[`f${t.id}_alpha`];if(!n)return;if(n.value=e.alpha*(e.visible?1:0),e.type==="outline"&&r=="visible"){let o=t.uniforms[`f${t.id}_compensation`];o&&(o.value=e.compensation&&e.visible)}return n}}var Ft=class extends C_{constructor(e,n){super(void 0);this.data=e;this.layerIdGen=0;this.type="NodeMaterial";this.uniformsBackup={};this.fog=!0,this.updaters=[],this.dithering=!0,this.vertexColors=!0,this.onBeforeCompile=this._onBeforeCompile,this.transparent=!0,this.reset(e,n)}get fragment(){return this.lightLayer.node}get category(){return this.lightLayer.data.category}reset(e,n){let o=e.layers??Dt.defaultTwoLayerData("phong").layers;this.layers=o.map(i=>Fr.create(this.layerIdGen++,i.id,i.data,n)),this.layers.reverse(),this.name=e.name??"Untitled Material",this.onUpdate(n)}getLayersOfType(e){return this.layers.filter(n=>n.type===e)}getLayerByUuid(e){return this.layers.find(n=>n.uuid===e)}onUpdate(e){this.lightLayer=this.layers.find(n=>n instanceof Rr),this.lightLayer===void 0&&(this.lightLayer=new Rr(0,"",dn.defaultData("light","basic"),new eo,{})),this.dispose(),this.needsUpdate=!0,this.blendColors(),this.blendAfterColors(),this.blendPositions()}updateByOp(e,n,o){if(this.data=n,e.path[0]==="layers"){let i=e.path[1];if(i===void 0){if(this.layers.reverse(),e.type===4){let a=Fr.create(this.layerIdGen++,e.id,e.data,o);this.layers.splice(e.localIndex,0,a)}else if(e.type===5)this.layers.splice(e.localIndex,1)[0].dispose();else if(e.type===6){let a=this.layers.findIndex(l=>l.uuid===e.id),s=this.layers[a];this.layers.splice(a,1),this.layers.splice(e.localIndex,0,s)}this.layers.reverse(),this.onUpdate(o)}else{let a=this.layers.find(s=>s.uuid===i);if(a){let s=n.layers.data(i);if(a.updateByOp({...e,path:e.path.slice(2)},s,o)){let u=Fr.create(this.layerIdGen++,i,s,o);this.layers.splice(this.layers.findIndex(c=>c.uuid===i),1,u),this.onUpdate(o)}}}}}blendColors(){let e=this.layers.findIndex(o=>o instanceof et),n=this.layers.findIndex(o=>o instanceof Rr);if(e!==-1&&e<n){let o=this.layers[e].color;for(let i=e+1;i<n;++i){let a=this.layers[i];a instanceof et&&(o=new ha(o,a.color,a.alpha,a.mode))}this.fragment.color=o}else this.fragment.color=void 0}blendAfterColors(){let e=new Ie("outgoingLight","f"),n=this.layers.findIndex(o=>o instanceof Rr);if(this.layers.length>n+1){for(let o=n+1;o<this.layers.length;++o){let i=this.layers[o];i instanceof et&&(e=new ha(e,i.color,i.alpha,i.mode))}this.fragment.afterColor=e}else this.fragment.afterColor=void 0}blendPositions(){let e=this.layers.filter(n=>n instanceof Ia);if(e.length>0){let n=e[0].position;for(let o=1;o<e.length;++o)e[o]&&(n=new Lt(n,e[o].position,Lt.ADD),n=new Lt(n,new J(.5).setReadonly(!0),Lt.MUL));this.fragment.position=n}else this.fragment.position=void 0}getDefines(){return this.defines}getUniforms(){return this.uniforms}getVertexShader(){return this.vertexShader}getFragmentShader(){return this.fragmentShader}_onBeforeCompile(e,n){this.build({renderer:n}),e.defines=this.defines,e.uniforms=this.uniforms,e.vertexShader=this.vertexShader,e.fragmentShader=this.fragmentShader,e.extensionDerivatives=this.extensions.derivatives===!0,e.extensionFragDepth=this.extensions.fragDepth===!0,e.extensionDrawBuffers=this.extensions.drawBuffers===!0,e.extensionShaderTextureLOD=this.extensions.shaderTextureLOD===!0}clampUniformsForPreview(e,n){let o=(i,a,s)=>Math.min(Math.max(i,a),s);for(let i of this.layers)if(i.type==="displace"){this.uniformsBackup[`f${i.id}_intensity`]=i.uniforms[`f${i.id}_intensity`].value;let a=o(i.uniforms[`f${i.id}_intensity`].value,e,n);i.uniforms[`f${i.id}_intensity`].value=a}}restoreClampedUniforms(){for(let e of this.layers)e.type==="displace"&&(e.uniforms[`f${e.id}_intensity`].value=this.uniformsBackup[`f${e.id}_intensity`])}customProgramCacheKey(){let e="[";for(let{data:n}of this.data.layers)if(n.type==="light")e+=`"${n.category.toUpperCase()}",`;else{let o=(Fu[n.type]??[]).map(s=>n[s]),i=(Ru[n.type]??[]).map(s=>n[s]?.length??0),a=[...o,...i];a.length?e+=`["${n.type}", "${a.join('","')}"],`:e+=`"${n.type}",`}return e=e.slice(0,-1)+"]",e}updateFrame(e){for(let n=0;n<this.updaters.length;++n)e.updateNode(this.updaters[n])}build(e){e=e??{};let n=e.builder??new Sl;return this.lights=this.lightLayer.data.category!=="basic",n.setMaterial(this,e.renderer),n.build(this.fragment,this.fragment),this.vertexShader=n.getCode("vertex"),this.fragmentShader=n.getCode("fragment"),this.defines=n.defines,this.uniforms=n.uniforms,this.extensions=n.extensions,this.updaters=n.updaters,this.transparent=n.requires.transparent||this.blending>T_,this}dispose(){this.layers.forEach(e=>e.dispose()),super.dispose()}getHash(){let e="{";return e+='"fragment":'+this.fragment.getHash(),e+="}",e}};Object.defineProperties(Ft.prototype,{properties:{get:function(){return this.fragment.properties}},needsUpdate:{set:function(r){r===!0&&this.version++,this.needsCompile=r},get:function(){return this.needsCompile}}});import{MathUtils as zu,BufferAttribute as A_,Vector3 as ju,Float32BufferAttribute as Og}from"three";function __(r){if(r.geometry.attributes.extrudeNormal||!r.geometry.attributes.position)return;let t=new Map,e=r.geometry.attributes.position.array,n=r.geometry.attributes.normal.array,o=new Float32Array(e.length);for(let i=0;i<e.length;i+=3){let a=`${e[i]}_${e[i+1]}_${e[i+2]}`,s=new ju(n[i],n[i+1],n[i+2]);t.has(a)?t.get(a)?.normals.push(s):t.set(a,{normals:[s],result:new ju})}t.forEach((i,a)=>{for(let s of i.normals)i.result.add(s);i.result.divideScalar(i.normals.length)});for(let i=0;i<e.length;i+=3){let a=`${e[i]}_${e[i+1]}_${e[i+2]}`,s=t.get(a)?.result;s&&(o[i]=s.x,o[i+1]=s.y,o[i+2]=s.z)}r.geometry.setAttribute("extrudeNormal",new Og(o,3))}function O_(r){if(r.geometry.attributes.extrudeNormals||!r.geometry.attributes.position)return;let t=r.geometry.attributes.position.array,e=new Float32Array(t.length),n=new ju;for(let o=0;o<t.length;o+=3)n.set(t[o],t[o+1],t[o+2]).normalize(),e[o]=n.x,e[o+1]=n.y,e[o+2]=n.z;r.geometry.setAttribute("extrudeNormal",new Og(e,3))}function kr(r){if(Array.isArray(r.material)){for(let t of r.material)if(t.getLayersOfType("outline").length===0)return}else if(!(r.material instanceof Ft)||r.material.getLayersOfType("outline").length===0)return;r.objectType==="Mesh2D"||r.objectType==="TextFrame"&&r.data?.geometry?.depth===0?O_(r):__(r)}function Gr(r){if(!r.geometry.attributes.position)return;let t=r.geometry.attributes.position.array,e=new Float32Array(t.length),n=parseInt(r.uuid.replace(/\D/g,"")),o=[zu.seededRandom(n),zu.seededRandom(n+1e4),zu.seededRandom(n+2e4)];for(let i=0;i<t.length;i++)e[i]=o[i%3];r.geometry.setAttribute("randomColor",new A_(e,3))}var ct=class extends Yt(I_){constructor(e,n){super(e,n);this.isAbstractMesh=!0;this.booleanMeshSetAddress=-1;this.booleanWasTransformed=!1;this.booleanMatrixInvOld=new L_;this.booleanExclude=null;Array.isArray(n)&&e.groups.length===0&&e.addGroup(0,e.getAttribute("position").count,0)}get isGroup(){return this._cloner?.parameters.hideBase===!0}get isMesh(){return!this.isGroup}set isMesh(e){}get cloner(){return this._cloner}set cloner(e){this._cloner&&this.remove(this._cloner),e&&this.add(e),this._cloner=e}updateGeometry(e,n){let o=this.geometry,i=bu[o.userData.type],a=this.objectType==="NonParametric"?Object.assign({},o.userData,{geometry:o}):o.userData,s=i.build(i.normalizeInputs(e,a)),l=o.uuid;this.geometry.dispose(),this.geometry=s,this.geometry.uuid=l,this.geometry.computeBoundingSphere(),kr(this),o.getAttribute("randomColor")&&Gr(this)}clone(e){let n=this.objectType==="NonParametric"?Object.assign({},this.geometry.userData,{geometry:this.geometry.clone()}):this.geometry.userData,o=na(n),i=this.material;return new this.constructor(o,i).copy(this,e)}copy(e,n=!0){return super.copy(e,n),e.cloner&&(this.cloner=new Kn(e,e.cloner.parameters),this.add(this.cloner)),this}setFromClonerState(e){e===null?this.cloner=void 0:(this.cloner===void 0&&(this.cloner=new Kn(this)),this.cloner.fromClonerState(e))}fromState(e,n){return super.fromState(e),e.type==="Mesh"&&(this.setFromClonerState(e.cloner),this.castShadow=e.castShadow??!0,this.receiveShadow=e.receiveShadow??!0,this.booleanExclude=e.booleanExclude??null),this}freeBooleanPointer(){this.booleanMeshSetAddress!==-1&&(rr.freeMeshSet(this.booleanMeshSetAddress),this.booleanMeshSetAddress=-1)}invalidateDownstreamBooleanData(e=!1){return e?this.booleanWasTransformed=!0:this.freeBooleanPointer(),Ir(this.parent)?this.parent.invalidateDownstreamBooleanData():this}invalidateUpstreamBooleanData(){this.freeBooleanPointer();for(let e of this.children)Or(e)&&(e.freeBooleanPointer(),Ir(e)&&e.invalidateUpstreamBooleanData())}};var M_=new Hu(0,0,1),Ig=new Hu,Lg=new Hu,Ng=new P_,di=class extends ct{constructor(e=pt.create({}),n){super(e,n);this.recursiveSelection=!1;this.objectType="VectorObject";this.eventDispatcher=new N_;this._onShapeUpdate=()=>{this.updateGeometry({}),this.geometry.computeBoundingSphere(),this.geometry.computeBoundingBox()};this.castShadow=!0,this.receiveShadow=!0,this.forceComputeSize=!0,this.shape=e.userData.shape,this.shape.eventDispatcher?.addEventListener("update",this._onShapeUpdate)}fromState(e){return super.fromState(e),this.shape.update(),this}setHelperVisibility(){}updateGeometry(e,n){if(super.updateGeometry(e,n),"userData"in this.geometry){let o=this.geometry.userData.parameters;this.eventDispatcher.dispatchEvent({type:"geometryUpdate",parameters:o})}}setShape(e){this.shape&&this.shape.eventDispatcher?.removeEventListener("update",this._onShapeUpdate),this.shape=e,this.shape.eventDispatcher?.addEventListener("update",this._onShapeUpdate)}updateWorldMatrix(e,n){super.updateWorldMatrix(e,n),Ng.getNormalMatrix(this.matrixWorld),Ig.copy(M_).applyMatrix3(Ng).normalize(),Lg.setFromMatrixPosition(this.matrixWorld),this.shape.plane.setFromNormalAndCoplanarPoint(Ig,Lg)}clone(e){let n=this.shape.clone(),o=this.material,i=this.geometry.userData,a=pt.create(Object.assign({},i,{shape:n})),s=new di(a,o).copy(this,e);return s.shape=n,n.update(),s}raycast(e,n){ct.prototype.raycast.call(this,e,n)}};var Ur=(r,t)=>class extends r{constructor(){super(...arguments);this.objectHelper=new t(this)}get geometryHelper(){return t.geometryHelper}raycast(o,i){this.objectHelper.raycast(o,i)}fromLightState(o,i){if(this.objectType==="LightDirectional"||this.objectType==="LightPoint"||this.objectType==="LightSpot"){let a=this;o.color!==void 0&&(a.color=it(o.color,i)),o.intensity!==void 0&&(a.intensity=o.intensity),o.depth!==void 0&&(a.shadow.camera.far=o.depth,a.shadow.needsUpdate=!0),o.shadows!==void 0&&(this.castShadow=o.shadows)}return this}};var hi=new sr,Wu=new sr,nn=class extends Ur(Yt(E_),Zs){constructor(e=window.innerWidth,n=window.innerHeight,o=45,i,a=1e5){super();this.objectType="CombinedCamera";this._cameraType="OrthographicCamera";this.targetOffset=Wn.DefaultTargetOffset;this.isUpVectorFlipped=!1;this.angleOffsetFromUp=0;this.width=e,this.height=n,this.orthoCamera=new D_(e*-.5,e*.5,n*.5,n*-.5,i??-5e4,a),this.perspCamera=new B_(o,e/n,i??50,a),this.left=this.orthoCamera.left,this.right=this.orthoCamera.right,this.top=this.orthoCamera.top,this.bottom=this.orthoCamera.bottom,this.far=this.orthoCamera.far,this.view=this.orthoCamera.view,this.aspect=this.perspCamera.aspect,this.fov=this.perspCamera.fov,this.focus=this.perspCamera.focus,this.filmGauge=this.perspCamera.filmGauge,this.filmOffset=this.perspCamera.filmOffset,this.toOrthographic()}static createFromState(e,n){let o=new nn().fromState(n);return o.objectHelper.update(),o.uuid=e,o}get isPerspectiveCamera(){return this.cameraType==="PerspectiveCamera"}get isOrthographicCamera(){return!this.isPerspectiveCamera}get cameraType(){return this._cameraType}setNear(e,n){e==="PerspectiveCamera"?this.perspCamera.near=n:this.orthoCamera.near=n}setZoom(e,n){n>=0&&(e==="PerspectiveCamera"?this.perspCamera.zoom=n:this.orthoCamera.zoom=n)}set cameraType(e){e==="PerspectiveCamera"?this.toPerspective():e==="OrthographicCamera"&&this.toOrthographic()}get near(){return this._cameraType==="PerspectiveCamera"?this.perspCamera.near:this.orthoCamera.near}set near(e){this._cameraType==="PerspectiveCamera"?this.perspCamera.near=e:this.orthoCamera.near=e}get zoom(){return this._cameraType==="PerspectiveCamera"?this.perspCamera.zoom:this.orthoCamera.zoom}set zoom(e){e>=0&&(this._cameraType==="PerspectiveCamera"?this.perspCamera.zoom=e:this.orthoCamera.zoom=e)}lookAt(e){super.lookAt(e),this.getWorldPosition(hi),this.targetOffset=hi.distanceTo(e)}getTarget(e=new sr){return this.getWorldDirection(Wu),this.getWorldPosition(hi),Wu.multiplyScalar(this.targetOffset),e.copy(hi).add(Wu),e}getDistanceToTarget(){let e=this.getTarget();return this.getWorldPosition(hi),hi.distanceTo(e)}updateUp(){let e=this.getWorldQuaternion(new F_),n=new sr(0,0,1).applyQuaternion(e),o=new sr().copy(Pg.DefaultUp);this.isUpVectorFlipped&&o.negate(),o.applyQuaternion(e);let i=new sr().copy(Pg.DefaultUp).projectOnPlane(n),a=new sr().crossVectors(i,o).dot(n)>=0?1:-1;this.angleOffsetFromUp=i.angleTo(o)*a}getViewFrontToObject(e){let n=e.getWorldPosition(new sr),i=e.getWorldDirection(new sr).multiplyScalar(this.targetOffset);return{position:n.clone().add(i),target:n}}getViewToObject(e){let n=e.getWorldPosition(new sr),i=this.getWorldDirection(new sr).multiplyScalar(this.targetOffset);return{position:n.clone().sub(i),target:n}}setViewplaneSize(e,n){this.left=-e*.5,this.right=e*.5,this.top=n*.5,this.bottom=-n*.5,this.aspect=e/n,this.updateProjectionMatrix()}toOrthographic(){this.orthoCamera.left=this.left,this.orthoCamera.right=this.right,this.orthoCamera.top=this.top,this.orthoCamera.bottom=this.bottom,this.orthoCamera.view=this.view,this.orthoCamera.far=this.far,this.orthoCamera.updateProjectionMatrix(),this.projectionMatrix=this.orthoCamera.projectionMatrix,this.projectionMatrixInverse=this.orthoCamera.projectionMatrixInverse,this._cameraType="OrthographicCamera",this.objectHelper&&this.objectHelper.update()}toPerspective(){this.perspCamera.aspect=this.aspect,this.perspCamera.fov=this.fov,this.perspCamera.view=this.view,this.perspCamera.far=this.far,this.perspCamera.updateProjectionMatrix(),this.projectionMatrix=this.perspCamera.projectionMatrix,this.projectionMatrixInverse=this.perspCamera.projectionMatrixInverse,this._cameraType="PerspectiveCamera",this.objectHelper&&this.objectHelper.update()}setFocalLength(e){this.perspCamera.setFocalLength(e),this.toPerspective()}getFocalLength(){return this.perspCamera.getFocalLength()}getEffectiveFOV(){return this.perspCamera.getEffectiveFOV()}getFilmWidth(){return this.perspCamera.getFilmWidth()}getFilmHeight(){return this.perspCamera.getFilmHeight()}setViewOffset(e,n,o,i,a,s){this._cameraType==="PerspectiveCamera"?this.perspCamera.setViewOffset(e,n,o,i,a,s):this.orthoCamera.setViewOffset(e,n,o,i,a,s)}clearViewOffset(){this._cameraType==="PerspectiveCamera"?(this.perspCamera.clearViewOffset(),this.toPerspective()):(this.orthoCamera.clearViewOffset(),this.toOrthographic())}updateProjectionMatrix(){this._cameraType==="PerspectiveCamera"?this.toPerspective():this._cameraType==="OrthographicCamera"&&this.toOrthographic()}updateMatrixWorld(e){super.updateMatrixWorld(e),this.matrixWorldInverse.copy(this.matrixWorld).invert()}updateWorldMatrix(e,n){super.updateWorldMatrix(e,n),this.matrixWorldInverse.copy(this.matrixWorld).invert()}copy(e,n){return super.copy(e,n),this.orthoCamera.copy(e.orthoCamera),this.perspCamera.copy(e.perspCamera),this.left=e.left,this.right=e.right,this.top=e.top,this.bottom=e.bottom,this.far=e.far,this.view=e.view===null?null:Object.assign({},e.view),this._cameraType=e._cameraType,this.aspect=e.aspect,this.fov=e.fov,this.focus=e.focus,this.filmGauge=e.filmGauge,this.filmOffset=e.filmOffset,this.targetOffset=e.targetOffset,this.updateProjectionMatrix(),this}toCameraState(e=[]){let n={type:this.cameraType,far:this.far,orthographic:{near:this.orthoCamera.near,zoom:this.orthoCamera.zoom},perspective:{near:this.perspCamera.near,fov:this.perspCamera.fov,zoom:this.perspCamera.zoom},up:this.up.toArray(),targetOffset:this.targetOffset,isUpVectorFlipped:this.isUpVectorFlipped};return ko(n,e)}fromCameraState(e){let{orthographic:n,perspective:o}=e;return e.type!==void 0&&(this.cameraType=e.type),e.far!==void 0&&(this.far=e.far),n!==void 0&&(n.near!==void 0&&(this.orthoCamera.near=n.near),n.zoom!==void 0&&(this.orthoCamera.zoom=n.zoom)),o!==void 0&&(o.near!==void 0&&(this.perspCamera.near=o.near),o.fov!==void 0&&(this.perspCamera.fov=o.fov),o.zoom!==void 0&&(this.perspCamera.zoom=o.zoom)),e.type==="PerspectiveCamera"?(this.zoom=this.perspCamera.zoom,this.fov=this.perspCamera.fov,this.near=this.perspCamera.near):(this.near=this.orthoCamera.near,this.zoom=this.orthoCamera.zoom),e.up!==void 0&&this.up.fromArray(e.up),e.targetOffset!==void 0&&(this.targetOffset=e.targetOffset),e.isUpVectorFlipped!==void 0&&(this.isUpVectorFlipped=e.isUpVectorFlipped),this.updateProjectionMatrix(),this}toState(e){return{...super.toState(e),...this.toCameraState(e),type:this.cameraType}}fromState(e){return super.fromState(e),this.fromCameraState(e),this}};import{BufferGeometry as Mg,Matrix4 as R_}from"three";var Eg=new R_;var _l=class extends ct{constructor(e=new Mg,n){super(e,n);this.booleanOp=2;this.phongAngle=35;this.meshSetAddresses=[];this.needsTransformForDownstream=!1;this.objectType="BooleanObject",this.castShadow=!0,this.receiveShadow=!0,this.geometry.userData.parameters={width:0,height:0,depth:0},this.onAfterRender=this.recomputeBoolean.bind(this)}reInit(){this.objectType="BooleanObject",this.meshSetAddresses=[],this.needsTransformForDownstream=!1,this.geometry.userData.parameters={width:0,height:0,depth:0},this.onAfterRender=this.recomputeBoolean.bind(this)}recomputeBoolean(e,n=!0){if(this.booleanMeshSetAddress!==-1)return;for(let i=0;i<this.children.length;i++){let a=this.children[i];Ir(a)&&a.recomputeBoolean(e===!0,n)}this.meshSetAddresses=[];for(let i=0;i<this.children.length;i++){let a=this.children[i];if(pg(a)&&a.booleanExclude===!1&&a.geometry.attributes.position?.count>0&&a.geometry.drawRange.count>0){if(a.booleanMeshSetAddress===-1){if((a.geometry.index??a.geometry.getAttribute("position")).count/3<15e5&&(a.booleanMeshSetAddress=rr.getMeshSet(a.geometry,e===!0,n)),a.booleanMeshSetAddress===-1)return;rr.transformMeshSet(a.booleanMeshSetAddress,a.matrix),a.booleanMatrixInvOld.copy(a.matrix).invert(),a.booleanWasTransformed=!1}else Ir(a)&&a.needsTransformForDownstream===!0?(rr.transformMeshSet(a.booleanMeshSetAddress,a.matrix),a.needsTransformForDownstream=!1):a.booleanWasTransformed===!0&&(Eg.multiplyMatrices(a.matrix,a.booleanMatrixInvOld),rr.transformMeshSet(a.booleanMeshSetAddress,Eg),a.booleanMatrixInvOld.copy(a.matrix).invert(),a.booleanWasTransformed=!1);this.meshSetAddresses.push(a.booleanMeshSetAddress)}}if(this.meshSetAddresses.length===0){this.geometry.setDrawRange(0,0);return}if(e===!0)return rr.calcBooleanTopological(this.meshSetAddresses,this.booleanOp);let o=this.geometry;o.dispose(),this.geometry=new Mg,this.geometry.userData=o.userData,this.geometry.boundingSphere=o.boundingSphere;try{this.booleanMeshSetAddress=rr.calcBoolean(this.meshSetAddresses,this.booleanOp,this.geometry,this.phongAngle)}catch(i){this.booleanMeshSetAddress=0,console.error(i)}this.booleanMatrixInvOld.copy(this.matrix).invert(),this.needsTransformForDownstream=!0,kr(this),Gr(this)}updateGeometry(e,n){let o=e.parameters;o.operation!==void 0&&(this.booleanOp=o.operation),o.phongAngle!==void 0&&(this.phongAngle=o.phongAngle),this.invalidateDownstreamBooleanData().recomputeBoolean()}};import{Group as k_}from"three";var no=class extends Ur(Yt(k_),zo){constructor(){super(...arguments);this.objectType="EmptyObject"}static createFromState(e,n){let o=new no().fromState(n);return o.uuid=e,o.objectHelper.update(),o}};import{DirectionalLight as G_,CameraHelper as Ol}from"three";var mi=class extends Ur(Yt(G_),Vo){constructor(...e){super(...e);this.objectType="LightDirectional";this._gizmos={};this.castShadow=!0,this.shadow.mapSize.width=2048,this.shadow.mapSize.height=2048,this.shadow.normalBias=1,this.layers.enable(3);let o=this.shadow.camera;o.top=1250,o.bottom=-1250,o.right=1250,o.left=-1250,o.near=-1e4,o.far=2500;let i=new Ol(this.shadow.camera);i.visible=!1,this._gizmos.shadowmap=i,this.update()}static createFromState(e,n,o){let i=new mi().fromState(n,o);return i.uuid=e,i}get gizmos(){return this._gizmos}showGizmos(){for(let e in this._gizmos){let n=this._gizmos[e];n instanceof Ol&&(n.visible=!0)}}hideGizmos(){for(let e in this._gizmos){let n=this._gizmos[e];n instanceof Ol&&(n.visible=!1)}}update(){this.shadow.camera.updateProjectionMatrix();for(let e in this._gizmos){let n=this._gizmos[e];n instanceof Ol&&n.update()}}updateMatrixWorld(e){super.updateMatrixWorld(e),this.objectHelper&&this.objectHelper.update()}fromDirectionalLightState(e,n){let o=e.depth!==void 0&&e.depth!==this.shadow.camera.far||e.size!==void 0&&e.size/2!==this.shadow.camera.right;return super.fromLightState(e,n),e.size!==void 0&&ag(this,e.size),e.shadowRadius!==void 0&&(this.shadow.radius=e.shadowRadius),e.shadowResolution!==void 0&&(this.shadow.mapSize.set(e.shadowResolution,e.shadowResolution),this.shadow.map&&(this.shadow.map.dispose(),this.shadow.map=null)),o&&this.update(),this}fromState(e,n){return super.fromState(e),this.fromDirectionalLightState(e,n),this}};import{PointLight as U_,Vector3 as Il,Box3 as V_,Box3Helper as Ll,Color as z_}from"three";var gi=class extends Ur(Yt(U_),jo){constructor(...e){super(...e);this.objectType="LightPoint";this._gizmos={};this.castShadow=!0,this.shadow.mapSize.width=1024,this.shadow.mapSize.height=1024,this.shadow.normalBias=1,this.layers.enable(3);let o=this.shadow.camera;o.fov=90,o.aspect=1,o.near=100,o.far=2500;let i=new Il(-o.far+this.position.x,-o.far+this.position.y,-o.far+this.position.z),a=new Il(o.far+this.position.x,o.far+this.position.y,o.far+this.position.z),s=new V_(i,a),l=new Ll(s,new z_(16755200));l.visible=!1,this._gizmos.shadowmap=l,this.update()}static createFromState(e,n,o){let i=new gi().fromState(n,o);return i.uuid=e,i}get gizmos(){return this._gizmos}showGizmos(){for(let e in this._gizmos){let n=this._gizmos[e];n instanceof Ll&&(n.visible=!0)}}hideGizmos(){for(let e in this._gizmos){let n=this._gizmos[e];n instanceof Ll&&(n.visible=!1)}}update(){if(this.shadow&&(this.shadow.camera.updateProjectionMatrix(),this._gizmos))for(let e in this._gizmos){let n=this._gizmos[e];if(n instanceof Ll){let o=this.shadow.camera,i=new Il(-o.far+this.position.x,-o.far+this.position.y,-o.far+this.position.z),a=new Il(o.far+this.position.x,o.far+this.position.y,o.far+this.position.z);n.box.set(i,a),n.updateMatrixWorld(!0)}}}updateMatrixWorld(e){super.updateMatrixWorld(e),this.objectHelper&&this.objectHelper.update()}fromPointLightState(e,n){return super.fromLightState(e,n),e.distance!==void 0&&(this.distance=e.distance),e.decay!==void 0&&(this.decay=e.decay),e.shadowRadius!==void 0&&(this.shadow.radius=e.shadowRadius),e.shadowResolution!==void 0&&(this.shadow.mapSize.set(e.shadowResolution,e.shadowResolution),this.shadow.map&&(this.shadow.map.dispose(),this.shadow.map=null)),this}fromState(e,n){return super.fromState(e),this.fromPointLightState(e,n),this}};import{SpotLight as j_,CameraHelper as Nl,MathUtils as H_,Vector3 as Rg,Quaternion as W_}from"three";var Dg=new Rg,Bg=new Rg,Fg=new W_,yi=class extends Ur(Yt(j_),Wi){constructor(...e){super(...e);this.objectType="LightSpot";this._gizmos={};this.castShadow=!0,this.shadow.mapSize.width=1024,this.shadow.mapSize.height=1024,this.shadow.normalBias=1,this.layers.enable(3);let o=this.shadow.camera;o.fov=H_.RAD2DEG*2*this.angle,o.aspect=1,o.near=100,o.far=2500;let i=new Nl(this.shadow.camera);i.visible=!1,this._gizmos.shadowmap=i,this.update()}static createFromState(e,n,o){let i=new yi().fromState(n,o);return i.uuid=e,i}get gizmos(){return this._gizmos}showGizmos(){for(let e in this._gizmos){let n=this._gizmos[e];n instanceof Nl&&(n.visible=!0)}}hideGizmos(){for(let e in this._gizmos){let n=this._gizmos[e];n instanceof Nl&&(n.visible=!1)}}update(){this.shadow.camera.updateProjectionMatrix();for(let e in this._gizmos){let n=this._gizmos[e];n instanceof Nl&&n.update()}}updateMatrixWorld(e){super.updateMatrixWorld(e),Bg.setFromMatrixPosition(this.matrixWorld),Fg.setFromRotationMatrix(this.matrixWorld),Dg.copy(this.up).applyQuaternion(Fg).negate().multiplyScalar(this.distance),this.target.position.copy(Bg).add(Dg),this.target.updateMatrixWorld(),this.objectHelper&&this.objectHelper.update()}fromSpotLightState(e,n){return super.fromLightState(e,n),e.distance!==void 0&&(this.distance=e.distance),e.decay!==void 0&&(this.decay=e.decay),e.angle!==void 0&&(this.angle=e.angle),e.penumbra!==void 0&&(this.penumbra=e.penumbra),e.shadowRadius!==void 0&&(this.shadow.radius=e.shadowRadius),e.shadowResolution!==void 0&&(this.shadow.mapSize.set(e.shadowResolution,e.shadowResolution),this.shadow.map&&(this.shadow.map.dispose(),this.shadow.map=null)),this}fromState(e,n){return super.fromState(e),this.fromSpotLightState(e,n),this}};var kg=r=>r.tagName==="VIDEO",vi=class{static resize(t,e,n){let o=t/e,i;if(!n.image)return;let a=n.image;kg(a)?i=a.videoWidth/a.videoHeight:i=a.width/a.height,o>i&&(n.imageType=="WEBCAM"?n.repeat.set(-1,1*i/o):n.repeat.set(1,1*i/o)),o<i&&(n.imageType=="WEBCAM"?n.repeat.set(1*o/i*-1,1):n.repeat.set(1*o/i,1)),o==i&&(n.imageType=="WEBCAM"?n.repeat.set(-1,1):n.repeat.set(1,1))}static resizeTextureLayer(t,e,n){let o=t/e,i=n.image!==void 0?n.image.width/n.image.height:1,a;o>i?a={x:1,y:i/o}:o<i?a={x:o/i,y:1}:a={x:1,y:1},n.repeat.set(a.x,a.y),n.updateMatrix()}static resizeTextureLayers(t,e,n){let o=n.layers;for(let i=0;i<o.length;i++){let a=o[i];_g(a)&&vi.resizeTextureLayer(t,e,a.uniforms[`f${a.id}_texture`].value)}}static resizeComplex(t,e,n,o){let i=t/e,a,s=n.image;kg(s)?a=s.videoWidth/s.videoHeight:a=s.width/s.height,o.geometry.type.includes("Shape")?(i>a&&(n.imageType=="WEBCAM"?n.repeat.set(1/t*-1,1/e*a/i):n.repeat.set(1/t,1/e*a/i)),i<a&&(n.imageType=="WEBCAM"?n.repeat.set(1/t*i/a*-1,1/e):n.repeat.set(1/t*i/a,1/e)),i==a&&(n.imageType=="WEBCAM"?n.repeat.set(1/t*-1,1/e):n.repeat.set(1/t,1/e))):(i>a&&(n.imageType=="WEBCAM"?n.repeat.set(-1,1*a/i):n.repeat.set(1,1*a/i)),i<a&&(n.imageType=="WEBCAM"?n.repeat.set(1*i/a*-1,1):n.repeat.set(1*i/a,1)),i==a&&(n.imageType=="WEBCAM"?n.repeat.set(-1,1):n.repeat.set(1,1)))}};var Pl=class extends ct{constructor(e,n){super(e,n);this.objectType="Mesh2D";this.castShadow=!0,this.receiveShadow=!0}updateGeometry(e,n){super.updateGeometry(e,n),this.material.layers&&vi.resizeTextureLayers(this.geometry.userData.parameters.width,this.geometry.userData.parameters.height,this.material)}};var xi=class extends ct{constructor(e,n){super(e,n);this.objectType="Mesh3D";this.castShadow=!0,this.receiveShadow=!0}};var Ml=class extends xi{constructor(e,n){super(e,n);this.objectType="NonParametric"}};String.prototype.codePointAt||function(){var r=function(){try{var e={},n=Object.defineProperty,o=n(e,e,e)&&n}catch{}return o}(),t=function(e){if(this==null)throw TypeError();var n=String(this),o=n.length,i=e?Number(e):0;if(i!=i&&(i=0),!(i<0||i>=o)){var a=n.charCodeAt(i),s;return a>=55296&&a<=56319&&o>i+1&&(s=n.charCodeAt(i+1),s>=56320&&s<=57343)?(a-55296)*1024+s-56320+65536:a}};r?r(String.prototype,"codePointAt",{value:t,configurable:!0,writable:!0}):String.prototype.codePointAt=t}();var pp=0,Cy=-3;function Ma(){this.table=new Uint16Array(16),this.trans=new Uint16Array(288)}function q_(r,t){this.source=r,this.sourceIndex=0,this.tag=0,this.bitcount=0,this.dest=t,this.destLen=0,this.ltree=new Ma,this.dtree=new Ma}var Ay=new Ma,_y=new Ma,fp=new Uint8Array(30),dp=new Uint16Array(30),Oy=new Uint8Array(30),Iy=new Uint16Array(30),X_=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),Gg=new Ma,Vr=new Uint8Array(288+32);function Ly(r,t,e,n){var o,i;for(o=0;o<e;++o)r[o]=0;for(o=0;o<30-e;++o)r[o+e]=o/e|0;for(i=n,o=0;o<30;++o)t[o]=i,i+=1<<r[o]}function Y_(r,t){var e;for(e=0;e<7;++e)r.table[e]=0;for(r.table[7]=24,r.table[8]=152,r.table[9]=112,e=0;e<24;++e)r.trans[e]=256+e;for(e=0;e<144;++e)r.trans[24+e]=e;for(e=0;e<8;++e)r.trans[24+144+e]=280+e;for(e=0;e<112;++e)r.trans[24+144+8+e]=144+e;for(e=0;e<5;++e)t.table[e]=0;for(t.table[5]=32,e=0;e<32;++e)t.trans[e]=e}var Ug=new Uint16Array(16);function Xu(r,t,e,n){var o,i;for(o=0;o<16;++o)r.table[o]=0;for(o=0;o<n;++o)r.table[t[e+o]]++;for(r.table[0]=0,i=0,o=0;o<16;++o)Ug[o]=i,i+=r.table[o];for(o=0;o<n;++o)t[e+o]&&(r.trans[Ug[t[e+o]]++]=o)}function $_(r){r.bitcount--||(r.tag=r.source[r.sourceIndex++],r.bitcount=7);var t=r.tag&1;return r.tag>>>=1,t}function zr(r,t,e){if(!t)return e;for(;r.bitcount<24;)r.tag|=r.source[r.sourceIndex++]<<r.bitcount,r.bitcount+=8;var n=r.tag&65535>>>16-t;return r.tag>>>=t,r.bitcount-=t,n+e}function rp(r,t){for(;r.bitcount<24;)r.tag|=r.source[r.sourceIndex++]<<r.bitcount,r.bitcount+=8;var e=0,n=0,o=0,i=r.tag;do n=2*n+(i&1),i>>>=1,++o,e+=t.table[o],n-=t.table[o];while(n>=0);return r.tag=i,r.bitcount-=o,t.trans[e+n]}function K_(r,t,e){var n,o,i,a,s,l;for(n=zr(r,5,257),o=zr(r,5,1),i=zr(r,4,4),a=0;a<19;++a)Vr[a]=0;for(a=0;a<i;++a){var u=zr(r,3,0);Vr[X_[a]]=u}for(Xu(Gg,Vr,0,19),s=0;s<n+o;){var c=rp(r,Gg);switch(c){case 16:var p=Vr[s-1];for(l=zr(r,2,3);l;--l)Vr[s++]=p;break;case 17:for(l=zr(r,3,3);l;--l)Vr[s++]=0;break;case 18:for(l=zr(r,7,11);l;--l)Vr[s++]=0;break;default:Vr[s++]=c;break}}Xu(t,Vr,0,n),Xu(e,Vr,n,o)}function Vg(r,t,e){for(;;){var n=rp(r,t);if(n===256)return pp;if(n<256)r.dest[r.destLen++]=n;else{var o,i,a,s;for(n-=257,o=zr(r,fp[n],dp[n]),i=rp(r,e),a=r.destLen-zr(r,Oy[i],Iy[i]),s=a;s<a+o;++s)r.dest[r.destLen++]=r.dest[s]}}}function Z_(r){for(var t,e,n;r.bitcount>8;)r.sourceIndex--,r.bitcount-=8;if(t=r.source[r.sourceIndex+1],t=256*t+r.source[r.sourceIndex],e=r.source[r.sourceIndex+3],e=256*e+r.source[r.sourceIndex+2],t!==(~e&65535))return Cy;for(r.sourceIndex+=4,n=t;n;--n)r.dest[r.destLen++]=r.source[r.sourceIndex++];return r.bitcount=0,pp}function Q_(r,t){var e=new q_(r,t),n,o,i;do{switch(n=$_(e),o=zr(e,2,0),o){case 0:i=Z_(e);break;case 1:i=Vg(e,Ay,_y);break;case 2:K_(e,e.ltree,e.dtree),i=Vg(e,e.ltree,e.dtree);break;default:i=Cy}if(i!==pp)throw new Error("Data error")}while(!n);return e.destLen<e.dest.length?typeof e.dest.slice=="function"?e.dest.slice(0,e.destLen):e.dest.subarray(0,e.destLen):e.dest}Y_(Ay,_y);Ly(fp,dp,4,3);Ly(Oy,Iy,2,1);fp[28]=0;dp[28]=258;var J_=Q_;function bi(r,t,e,n,o){return Math.pow(1-o,3)*r+3*Math.pow(1-o,2)*o*t+3*(1-o)*Math.pow(o,2)*e+Math.pow(o,3)*n}function Rn(){this.x1=Number.NaN,this.y1=Number.NaN,this.x2=Number.NaN,this.y2=Number.NaN}Rn.prototype.isEmpty=function(){return isNaN(this.x1)||isNaN(this.y1)||isNaN(this.x2)||isNaN(this.y2)};Rn.prototype.addPoint=function(r,t){typeof r=="number"&&((isNaN(this.x1)||isNaN(this.x2))&&(this.x1=r,this.x2=r),r<this.x1&&(this.x1=r),r>this.x2&&(this.x2=r)),typeof t=="number"&&((isNaN(this.y1)||isNaN(this.y2))&&(this.y1=t,this.y2=t),t<this.y1&&(this.y1=t),t>this.y2&&(this.y2=t))};Rn.prototype.addX=function(r){this.addPoint(r,null)};Rn.prototype.addY=function(r){this.addPoint(null,r)};Rn.prototype.addBezier=function(r,t,e,n,o,i,a,s){var l=[r,t],u=[e,n],c=[o,i],p=[a,s];this.addPoint(r,t),this.addPoint(a,s);for(var f=0;f<=1;f++){var d=6*l[f]-12*u[f]+6*c[f],h=-3*l[f]+9*u[f]-9*c[f]+3*p[f],m=3*u[f]-3*l[f];if(h===0){if(d===0)continue;var g=-m/d;0<g&&g<1&&(f===0&&this.addX(bi(l[f],u[f],c[f],p[f],g)),f===1&&this.addY(bi(l[f],u[f],c[f],p[f],g)));continue}var v=Math.pow(d,2)-4*m*h;if(!(v<0)){var x=(-d+Math.sqrt(v))/(2*h);0<x&&x<1&&(f===0&&this.addX(bi(l[f],u[f],c[f],p[f],x)),f===1&&this.addY(bi(l[f],u[f],c[f],p[f],x)));var S=(-d-Math.sqrt(v))/(2*h);0<S&&S<1&&(f===0&&this.addX(bi(l[f],u[f],c[f],p[f],S)),f===1&&this.addY(bi(l[f],u[f],c[f],p[f],S)))}}};Rn.prototype.addQuad=function(r,t,e,n,o,i){var a=r+.6666666666666666*(e-r),s=t+2/3*(n-t),l=a+1/3*(o-r),u=s+1/3*(i-t);this.addBezier(r,t,a,s,l,u,o,i)};function tt(){this.commands=[],this.fill="black",this.stroke=null,this.strokeWidth=1}tt.prototype.moveTo=function(r,t){this.commands.push({type:"M",x:r,y:t})};tt.prototype.lineTo=function(r,t){this.commands.push({type:"L",x:r,y:t})};tt.prototype.curveTo=tt.prototype.bezierCurveTo=function(r,t,e,n,o,i){this.commands.push({type:"C",x1:r,y1:t,x2:e,y2:n,x:o,y:i})};tt.prototype.quadTo=tt.prototype.quadraticCurveTo=function(r,t,e,n){this.commands.push({type:"Q",x1:r,y1:t,x:e,y:n})};tt.prototype.close=tt.prototype.closePath=function(){this.commands.push({type:"Z"})};tt.prototype.extend=function(r){if(r.commands)r=r.commands;else if(r instanceof Rn){var t=r;this.moveTo(t.x1,t.y1),this.lineTo(t.x2,t.y1),this.lineTo(t.x2,t.y2),this.lineTo(t.x1,t.y2),this.close();return}Array.prototype.push.apply(this.commands,r)};tt.prototype.getBoundingBox=function(){for(var r=new Rn,t=0,e=0,n=0,o=0,i=0;i<this.commands.length;i++){var a=this.commands[i];switch(a.type){case"M":r.addPoint(a.x,a.y),t=n=a.x,e=o=a.y;break;case"L":r.addPoint(a.x,a.y),n=a.x,o=a.y;break;case"Q":r.addQuad(n,o,a.x1,a.y1,a.x,a.y),n=a.x,o=a.y;break;case"C":r.addBezier(n,o,a.x1,a.y1,a.x2,a.y2,a.x,a.y),n=a.x,o=a.y;break;case"Z":n=t,o=e;break;default:throw new Error("Unexpected path command "+a.type)}}return r.isEmpty()&&r.addPoint(0,0),r};tt.prototype.draw=function(r){r.beginPath();for(var t=0;t<this.commands.length;t+=1){var e=this.commands[t];e.type==="M"?r.moveTo(e.x,e.y):e.type==="L"?r.lineTo(e.x,e.y):e.type==="C"?r.bezierCurveTo(e.x1,e.y1,e.x2,e.y2,e.x,e.y):e.type==="Q"?r.quadraticCurveTo(e.x1,e.y1,e.x,e.y):e.type==="Z"&&r.closePath()}this.fill&&(r.fillStyle=this.fill,r.fill()),this.stroke&&(r.strokeStyle=this.stroke,r.lineWidth=this.strokeWidth,r.stroke())};tt.prototype.toPathData=function(r){r=r!==void 0?r:2;function t(a){return Math.round(a)===a?""+Math.round(a):a.toFixed(r)}function e(){for(var a=arguments,s="",l=0;l<arguments.length;l+=1){var u=a[l];u>=0&&l>0&&(s+=" "),s+=t(u)}return s}for(var n="",o=0;o<this.commands.length;o+=1){var i=this.commands[o];i.type==="M"?n+="M"+e(i.x,i.y):i.type==="L"?n+="L"+e(i.x,i.y):i.type==="C"?n+="C"+e(i.x1,i.y1,i.x2,i.y2,i.x,i.y):i.type==="Q"?n+="Q"+e(i.x1,i.y1,i.x,i.y):i.type==="Z"&&(n+="Z")}return n};tt.prototype.toSVG=function(r){var t='<path d="';return t+=this.toPathData(r),t+='"',this.fill&&this.fill!=="black"&&(this.fill===null?t+=' fill="none"':t+=' fill="'+this.fill+'"'),this.stroke&&(t+=' stroke="'+this.stroke+'" stroke-width="'+this.strokeWidth+'"'),t+="/>",t};tt.prototype.toDOMElement=function(r){var t=this.toPathData(r),e=document.createElementNS("http://www.w3.org/2000/svg","path");return e.setAttribute("d",t),e};function Ny(r){throw new Error(r)}function zg(r,t){r||Ny(t)}var ve={fail:Ny,argument:zg,assert:zg},jg=32768,Hg=2147483648,wi={},te={},xe={};function pr(r){return function(){return r}}te.BYTE=function(r){return ve.argument(r>=0&&r<=255,"Byte value should be between 0 and 255."),[r]};xe.BYTE=pr(1);te.CHAR=function(r){return[r.charCodeAt(0)]};xe.CHAR=pr(1);te.CHARARRAY=function(r){typeof r>"u"&&(r="",console.warn("Undefined CHARARRAY encountered and treated as an empty string. This is probably caused by a missing glyph name."));for(var t=[],e=0;e<r.length;e+=1)t[e]=r.charCodeAt(e);return t};xe.CHARARRAY=function(r){return typeof r>"u"?0:r.length};te.USHORT=function(r){return[r>>8&255,r&255]};xe.USHORT=pr(2);te.SHORT=function(r){return r>=jg&&(r=-(2*jg-r)),[r>>8&255,r&255]};xe.SHORT=pr(2);te.UINT24=function(r){return[r>>16&255,r>>8&255,r&255]};xe.UINT24=pr(3);te.ULONG=function(r){return[r>>24&255,r>>16&255,r>>8&255,r&255]};xe.ULONG=pr(4);te.LONG=function(r){return r>=Hg&&(r=-(2*Hg-r)),[r>>24&255,r>>16&255,r>>8&255,r&255]};xe.LONG=pr(4);te.FIXED=te.ULONG;xe.FIXED=xe.ULONG;te.FWORD=te.SHORT;xe.FWORD=xe.SHORT;te.UFWORD=te.USHORT;xe.UFWORD=xe.USHORT;te.LONGDATETIME=function(r){return[0,0,0,0,r>>24&255,r>>16&255,r>>8&255,r&255]};xe.LONGDATETIME=pr(8);te.TAG=function(r){return ve.argument(r.length===4,"Tag should be exactly 4 ASCII characters."),[r.charCodeAt(0),r.charCodeAt(1),r.charCodeAt(2),r.charCodeAt(3)]};xe.TAG=pr(4);te.Card8=te.BYTE;xe.Card8=xe.BYTE;te.Card16=te.USHORT;xe.Card16=xe.USHORT;te.OffSize=te.BYTE;xe.OffSize=xe.BYTE;te.SID=te.USHORT;xe.SID=xe.USHORT;te.NUMBER=function(r){return r>=-107&&r<=107?[r+139]:r>=108&&r<=1131?(r=r-108,[(r>>8)+247,r&255]):r>=-1131&&r<=-108?(r=-r-108,[(r>>8)+251,r&255]):r>=-32768&&r<=32767?te.NUMBER16(r):te.NUMBER32(r)};xe.NUMBER=function(r){return te.NUMBER(r).length};te.NUMBER16=function(r){return[28,r>>8&255,r&255]};xe.NUMBER16=pr(3);te.NUMBER32=function(r){return[29,r>>24&255,r>>16&255,r>>8&255,r&255]};xe.NUMBER32=pr(5);te.REAL=function(r){var t=r.toString(),e=/\.(\d*?)(?:9{5,20}|0{5,20})\d{0,2}(?:e(.+)|$)/.exec(t);if(e){var n=parseFloat("1e"+((e[2]?+e[2]:0)+e[1].length));t=(Math.round(r*n)/n).toString()}for(var o="",i=0,a=t.length;i<a;i+=1){var s=t[i];s==="e"?o+=t[++i]==="-"?"c":"b":s==="."?o+="a":s==="-"?o+="e":o+=s}o+=o.length&1?"f":"ff";for(var l=[30],u=0,c=o.length;u<c;u+=2)l.push(parseInt(o.substr(u,2),16));return l};xe.REAL=function(r){return te.REAL(r).length};te.NAME=te.CHARARRAY;xe.NAME=xe.CHARARRAY;te.STRING=te.CHARARRAY;xe.STRING=xe.CHARARRAY;wi.UTF8=function(r,t,e){for(var n=[],o=e,i=0;i<o;i++,t+=1)n[i]=r.getUint8(t);return String.fromCharCode.apply(null,n)};wi.UTF16=function(r,t,e){for(var n=[],o=e/2,i=0;i<o;i++,t+=2)n[i]=r.getUint16(t);return String.fromCharCode.apply(null,n)};te.UTF16=function(r){for(var t=[],e=0;e<r.length;e+=1){var n=r.charCodeAt(e);t[t.length]=n>>8&255,t[t.length]=n&255}return t};xe.UTF16=function(r){return r.length*2};var np={"x-mac-croatian":"\xC4\xC5\xC7\xC9\xD1\xD6\xDC\xE1\xE0\xE2\xE4\xE3\xE5\xE7\xE9\xE8\xEA\xEB\xED\xEC\xEE\xEF\xF1\xF3\xF2\xF4\xF6\xF5\xFA\xF9\xFB\xFC\u2020\xB0\xA2\xA3\xA7\u2022\xB6\xDF\xAE\u0160\u2122\xB4\xA8\u2260\u017D\xD8\u221E\xB1\u2264\u2265\u2206\xB5\u2202\u2211\u220F\u0161\u222B\xAA\xBA\u03A9\u017E\xF8\xBF\xA1\xAC\u221A\u0192\u2248\u0106\xAB\u010C\u2026\xA0\xC0\xC3\xD5\u0152\u0153\u0110\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\uF8FF\xA9\u2044\u20AC\u2039\u203A\xC6\xBB\u2013\xB7\u201A\u201E\u2030\xC2\u0107\xC1\u010D\xC8\xCD\xCE\xCF\xCC\xD3\xD4\u0111\xD2\xDA\xDB\xD9\u0131\u02C6\u02DC\xAF\u03C0\xCB\u02DA\xB8\xCA\xE6\u02C7","x-mac-cyrillic":"\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u2020\xB0\u0490\xA3\xA7\u2022\xB6\u0406\xAE\xA9\u2122\u0402\u0452\u2260\u0403\u0453\u221E\xB1\u2264\u2265\u0456\xB5\u0491\u0408\u0404\u0454\u0407\u0457\u0409\u0459\u040A\u045A\u0458\u0405\xAC\u221A\u0192\u2248\u2206\xAB\xBB\u2026\xA0\u040B\u045B\u040C\u045C\u0455\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u201E\u040E\u045E\u040F\u045F\u2116\u0401\u0451\u044F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E","x-mac-gaelic":"\xC4\xC5\xC7\xC9\xD1\xD6\xDC\xE1\xE0\xE2\xE4\xE3\xE5\xE7\xE9\xE8\xEA\xEB\xED\xEC\xEE\xEF\xF1\xF3\xF2\xF4\xF6\xF5\xFA\xF9\xFB\xFC\u2020\xB0\xA2\xA3\xA7\u2022\xB6\xDF\xAE\xA9\u2122\xB4\xA8\u2260\xC6\xD8\u1E02\xB1\u2264\u2265\u1E03\u010A\u010B\u1E0A\u1E0B\u1E1E\u1E1F\u0120\u0121\u1E40\xE6\xF8\u1E41\u1E56\u1E57\u027C\u0192\u017F\u1E60\xAB\xBB\u2026\xA0\xC0\xC3\xD5\u0152\u0153\u2013\u2014\u201C\u201D\u2018\u2019\u1E61\u1E9B\xFF\u0178\u1E6A\u20AC\u2039\u203A\u0176\u0177\u1E6B\xB7\u1EF2\u1EF3\u204A\xC2\xCA\xC1\xCB\xC8\xCD\xCE\xCF\xCC\xD3\xD4\u2663\xD2\xDA\xDB\xD9\u0131\xDD\xFD\u0174\u0175\u1E84\u1E85\u1E80\u1E81\u1E82\u1E83","x-mac-greek":"\xC4\xB9\xB2\xC9\xB3\xD6\xDC\u0385\xE0\xE2\xE4\u0384\xA8\xE7\xE9\xE8\xEA\xEB\xA3\u2122\xEE\xEF\u2022\xBD\u2030\xF4\xF6\xA6\u20AC\xF9\xFB\xFC\u2020\u0393\u0394\u0398\u039B\u039E\u03A0\xDF\xAE\xA9\u03A3\u03AA\xA7\u2260\xB0\xB7\u0391\xB1\u2264\u2265\xA5\u0392\u0395\u0396\u0397\u0399\u039A\u039C\u03A6\u03AB\u03A8\u03A9\u03AC\u039D\xAC\u039F\u03A1\u2248\u03A4\xAB\xBB\u2026\xA0\u03A5\u03A7\u0386\u0388\u0153\u2013\u2015\u201C\u201D\u2018\u2019\xF7\u0389\u038A\u038C\u038E\u03AD\u03AE\u03AF\u03CC\u038F\u03CD\u03B1\u03B2\u03C8\u03B4\u03B5\u03C6\u03B3\u03B7\u03B9\u03BE\u03BA\u03BB\u03BC\u03BD\u03BF\u03C0\u03CE\u03C1\u03C3\u03C4\u03B8\u03C9\u03C2\u03C7\u03C5\u03B6\u03CA\u03CB\u0390\u03B0\xAD","x-mac-icelandic":"\xC4\xC5\xC7\xC9\xD1\xD6\xDC\xE1\xE0\xE2\xE4\xE3\xE5\xE7\xE9\xE8\xEA\xEB\xED\xEC\xEE\xEF\xF1\xF3\xF2\xF4\xF6\xF5\xFA\xF9\xFB\xFC\xDD\xB0\xA2\xA3\xA7\u2022\xB6\xDF\xAE\xA9\u2122\xB4\xA8\u2260\xC6\xD8\u221E\xB1\u2264\u2265\xA5\xB5\u2202\u2211\u220F\u03C0\u222B\xAA\xBA\u03A9\xE6\xF8\xBF\xA1\xAC\u221A\u0192\u2248\u2206\xAB\xBB\u2026\xA0\xC0\xC3\xD5\u0152\u0153\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\xFF\u0178\u2044\u20AC\xD0\xF0\xDE\xFE\xFD\xB7\u201A\u201E\u2030\xC2\xCA\xC1\xCB\xC8\xCD\xCE\xCF\xCC\xD3\xD4\uF8FF\xD2\xDA\xDB\xD9\u0131\u02C6\u02DC\xAF\u02D8\u02D9\u02DA\xB8\u02DD\u02DB\u02C7","x-mac-inuit":"\u1403\u1404\u1405\u1406\u140A\u140B\u1431\u1432\u1433\u1434\u1438\u1439\u1449\u144E\u144F\u1450\u1451\u1455\u1456\u1466\u146D\u146E\u146F\u1470\u1472\u1473\u1483\u148B\u148C\u148D\u148E\u1490\u1491\xB0\u14A1\u14A5\u14A6\u2022\xB6\u14A7\xAE\xA9\u2122\u14A8\u14AA\u14AB\u14BB\u14C2\u14C3\u14C4\u14C5\u14C7\u14C8\u14D0\u14EF\u14F0\u14F1\u14F2\u14F4\u14F5\u1505\u14D5\u14D6\u14D7\u14D8\u14DA\u14DB\u14EA\u1528\u1529\u152A\u152B\u152D\u2026\xA0\u152E\u153E\u1555\u1556\u1557\u2013\u2014\u201C\u201D\u2018\u2019\u1558\u1559\u155A\u155D\u1546\u1547\u1548\u1549\u154B\u154C\u1550\u157F\u1580\u1581\u1582\u1583\u1584\u1585\u158F\u1590\u1591\u1592\u1593\u1594\u1595\u1671\u1672\u1673\u1674\u1675\u1676\u1596\u15A0\u15A1\u15A2\u15A3\u15A4\u15A5\u15A6\u157C\u0141\u0142","x-mac-ce":"\xC4\u0100\u0101\xC9\u0104\xD6\xDC\xE1\u0105\u010C\xE4\u010D\u0106\u0107\xE9\u0179\u017A\u010E\xED\u010F\u0112\u0113\u0116\xF3\u0117\xF4\xF6\xF5\xFA\u011A\u011B\xFC\u2020\xB0\u0118\xA3\xA7\u2022\xB6\xDF\xAE\xA9\u2122\u0119\xA8\u2260\u0123\u012E\u012F\u012A\u2264\u2265\u012B\u0136\u2202\u2211\u0142\u013B\u013C\u013D\u013E\u0139\u013A\u0145\u0146\u0143\xAC\u221A\u0144\u0147\u2206\xAB\xBB\u2026\xA0\u0148\u0150\xD5\u0151\u014C\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\u014D\u0154\u0155\u0158\u2039\u203A\u0159\u0156\u0157\u0160\u201A\u201E\u0161\u015A\u015B\xC1\u0164\u0165\xCD\u017D\u017E\u016A\xD3\xD4\u016B\u016E\xDA\u016F\u0170\u0171\u0172\u0173\xDD\xFD\u0137\u017B\u0141\u017C\u0122\u02C7",macintosh:"\xC4\xC5\xC7\xC9\xD1\xD6\xDC\xE1\xE0\xE2\xE4\xE3\xE5\xE7\xE9\xE8\xEA\xEB\xED\xEC\xEE\xEF\xF1\xF3\xF2\xF4\xF6\xF5\xFA\xF9\xFB\xFC\u2020\xB0\xA2\xA3\xA7\u2022\xB6\xDF\xAE\xA9\u2122\xB4\xA8\u2260\xC6\xD8\u221E\xB1\u2264\u2265\xA5\xB5\u2202\u2211\u220F\u03C0\u222B\xAA\xBA\u03A9\xE6\xF8\xBF\xA1\xAC\u221A\u0192\u2248\u2206\xAB\xBB\u2026\xA0\xC0\xC3\xD5\u0152\u0153\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\xFF\u0178\u2044\u20AC\u2039\u203A\uFB01\uFB02\u2021\xB7\u201A\u201E\u2030\xC2\xCA\xC1\xCB\xC8\xCD\xCE\xCF\xCC\xD3\xD4\uF8FF\xD2\xDA\xDB\xD9\u0131\u02C6\u02DC\xAF\u02D8\u02D9\u02DA\xB8\u02DD\u02DB\u02C7","x-mac-romanian":"\xC4\xC5\xC7\xC9\xD1\xD6\xDC\xE1\xE0\xE2\xE4\xE3\xE5\xE7\xE9\xE8\xEA\xEB\xED\xEC\xEE\xEF\xF1\xF3\xF2\xF4\xF6\xF5\xFA\xF9\xFB\xFC\u2020\xB0\xA2\xA3\xA7\u2022\xB6\xDF\xAE\xA9\u2122\xB4\xA8\u2260\u0102\u0218\u221E\xB1\u2264\u2265\xA5\xB5\u2202\u2211\u220F\u03C0\u222B\xAA\xBA\u03A9\u0103\u0219\xBF\xA1\xAC\u221A\u0192\u2248\u2206\xAB\xBB\u2026\xA0\xC0\xC3\xD5\u0152\u0153\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\xFF\u0178\u2044\u20AC\u2039\u203A\u021A\u021B\u2021\xB7\u201A\u201E\u2030\xC2\xCA\xC1\xCB\xC8\xCD\xCE\xCF\xCC\xD3\xD4\uF8FF\xD2\xDA\xDB\xD9\u0131\u02C6\u02DC\xAF\u02D8\u02D9\u02DA\xB8\u02DD\u02DB\u02C7","x-mac-turkish":"\xC4\xC5\xC7\xC9\xD1\xD6\xDC\xE1\xE0\xE2\xE4\xE3\xE5\xE7\xE9\xE8\xEA\xEB\xED\xEC\xEE\xEF\xF1\xF3\xF2\xF4\xF6\xF5\xFA\xF9\xFB\xFC\u2020\xB0\xA2\xA3\xA7\u2022\xB6\xDF\xAE\xA9\u2122\xB4\xA8\u2260\xC6\xD8\u221E\xB1\u2264\u2265\xA5\xB5\u2202\u2211\u220F\u03C0\u222B\xAA\xBA\u03A9\xE6\xF8\xBF\xA1\xAC\u221A\u0192\u2248\u2206\xAB\xBB\u2026\xA0\xC0\xC3\xD5\u0152\u0153\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\xFF\u0178\u011E\u011F\u0130\u0131\u015E\u015F\u2021\xB7\u201A\u201E\u2030\xC2\xCA\xC1\xCB\xC8\xCD\xCE\xCF\xCC\xD3\xD4\uF8FF\xD2\xDA\xDB\xD9\uF8A0\u02C6\u02DC\xAF\u02D8\u02D9\u02DA\xB8\u02DD\u02DB\u02C7"};wi.MACSTRING=function(r,t,e,n){var o=np[n];if(o!==void 0){for(var i="",a=0;a<e;a++){var s=r.getUint8(t+a);s<=127?i+=String.fromCharCode(s):i+=o[s&127]}return i}};var El=typeof WeakMap=="function"&&new WeakMap,Dl,e2=function(r){if(!Dl){Dl={};for(var t in np)Dl[t]=new String(t)}var e=Dl[r];if(e!==void 0){if(El){var n=El.get(e);if(n!==void 0)return n}var o=np[r];if(o!==void 0){for(var i={},a=0;a<o.length;a++)i[o.charCodeAt(a)]=a+128;return El&&El.set(e,i),i}}};te.MACSTRING=function(r,t){var e=e2(t);if(e!==void 0){for(var n=[],o=0;o<r.length;o++){var i=r.charCodeAt(o);if(i>=128&&(i=e[i],i===void 0))return;n[o]=i}return n}};xe.MACSTRING=function(r,t){var e=te.MACSTRING(r,t);return e!==void 0?e.length:0};function op(r){return r>=-128&&r<=127}function t2(r,t,e){for(var n=0,o=r.length;t<o&&n<64&&r[t]===0;)++t,++n;return e.push(128|n-1),t}function r2(r,t,e){for(var n=0,o=r.length,i=t;i<o&&n<64;){var a=r[i];if(!op(a)||a===0&&i+1<o&&r[i+1]===0)break;++i,++n}e.push(n-1);for(var s=t;s<i;++s)e.push(r[s]+256&255);return i}function n2(r,t,e){for(var n=0,o=r.length,i=t;i<o&&n<64;){var a=r[i];if(a===0||op(a)&&i+1<o&&op(r[i+1]))break;++i,++n}e.push(64|n-1);for(var s=t;s<i;++s){var l=r[s];e.push(l+65536>>8&255,l+256&255)}return i}te.VARDELTAS=function(r){for(var t=0,e=[];t<r.length;){var n=r[t];n===0?t=t2(r,t,e):n>=-128&&n<=127?t=r2(r,t,e):t=n2(r,t,e)}return e};te.INDEX=function(r){for(var t=1,e=[t],n=[],o=0;o<r.length;o+=1){var i=te.OBJECT(r[o]);Array.prototype.push.apply(n,i),t+=i.length,e.push(t)}if(n.length===0)return[0,0];for(var a=[],s=1+Math.floor(Math.log(t)/Math.log(2))/8|0,l=[void 0,te.BYTE,te.USHORT,te.UINT24,te.ULONG][s],u=0;u<e.length;u+=1){var c=l(e[u]);Array.prototype.push.apply(a,c)}return Array.prototype.concat(te.Card16(r.length),te.OffSize(s),a,n)};xe.INDEX=function(r){return te.INDEX(r).length};te.DICT=function(r){for(var t=[],e=Object.keys(r),n=e.length,o=0;o<n;o+=1){var i=parseInt(e[o],0),a=r[i];t=t.concat(te.OPERAND(a.value,a.type)),t=t.concat(te.OPERATOR(i))}return t};xe.DICT=function(r){return te.DICT(r).length};te.OPERATOR=function(r){return r<1200?[r]:[12,r-1200]};te.OPERAND=function(r,t){var e=[];if(Array.isArray(t))for(var n=0;n<t.length;n+=1)ve.argument(r.length===t.length,"Not enough arguments given for type"+t),e=e.concat(te.OPERAND(r[n],t[n]));else if(t==="SID")e=e.concat(te.NUMBER(r));else if(t==="offset")e=e.concat(te.NUMBER32(r));else if(t==="number")e=e.concat(te.NUMBER(r));else if(t==="real")e=e.concat(te.REAL(r));else throw new Error("Unknown operand type "+t);return e};te.OP=te.BYTE;xe.OP=xe.BYTE;var Bl=typeof WeakMap=="function"&&new WeakMap;te.CHARSTRING=function(r){if(Bl){var t=Bl.get(r);if(t!==void 0)return t}for(var e=[],n=r.length,o=0;o<n;o+=1){var i=r[o];e=e.concat(te[i.type](i.value))}return Bl&&Bl.set(r,e),e};xe.CHARSTRING=function(r){return te.CHARSTRING(r).length};te.OBJECT=function(r){var t=te[r.type];return ve.argument(t!==void 0,"No encoding function for type "+r.type),t(r.value)};xe.OBJECT=function(r){var t=xe[r.type];return ve.argument(t!==void 0,"No sizeOf function for type "+r.type),t(r.value)};te.TABLE=function(r){for(var t=[],e=r.fields.length,n=[],o=[],i=0;i<e;i+=1){var a=r.fields[i],s=te[a.type];ve.argument(s!==void 0,"No encoding function for field type "+a.type+" ("+a.name+")");var l=r[a.name];l===void 0&&(l=a.value);var u=s(l);a.type==="TABLE"?(o.push(t.length),t=t.concat([0,0]),n.push(u)):t=t.concat(u)}for(var c=0;c<n.length;c+=1){var p=o[c],f=t.length;ve.argument(f<65536,"Table "+r.tableName+" too big."),t[p]=f>>8,t[p+1]=f&255,t=t.concat(n[c])}return t};xe.TABLE=function(r){for(var t=0,e=r.fields.length,n=0;n<e;n+=1){var o=r.fields[n],i=xe[o.type];ve.argument(i!==void 0,"No sizeOf function for field type "+o.type+" ("+o.name+")");var a=r[o.name];a===void 0&&(a=o.value),t+=i(a),o.type==="TABLE"&&(t+=2)}return t};te.RECORD=te.TABLE;xe.RECORD=xe.TABLE;te.LITERAL=function(r){return r};xe.LITERAL=function(r){return r.length};function ut(r,t,e){if(t.length&&(t[0].name!=="coverageFormat"||t[0].value===1))for(var n=0;n<t.length;n+=1){var o=t[n];this[o.name]=o.value}if(this.tableName=r,this.fields=t,e)for(var i=Object.keys(e),a=0;a<i.length;a+=1){var s=i[a],l=e[s];this[s]!==void 0&&(this[s]=l)}}ut.prototype.encode=function(){return te.TABLE(this)};ut.prototype.sizeOf=function(){return xe.TABLE(this)};function Ea(r,t,e){e===void 0&&(e=t.length);var n=new Array(t.length+1);n[0]={name:r+"Count",type:"USHORT",value:e};for(var o=0;o<t.length;o++)n[o+1]={name:r+o,type:"USHORT",value:t[o]};return n}function ip(r,t,e){var n=t.length,o=new Array(n+1);o[0]={name:r+"Count",type:"USHORT",value:n};for(var i=0;i<n;i++)o[i+1]={name:r+i,type:"TABLE",value:e(t[i],i)};return o}function Da(r,t,e){var n=t.length,o=[];o[0]={name:r+"Count",type:"USHORT",value:n};for(var i=0;i<n;i++)o=o.concat(e(t[i],i));return o}function Ul(r){r.format===1?ut.call(this,"coverageTable",[{name:"coverageFormat",type:"USHORT",value:1}].concat(Ea("glyph",r.glyphs))):r.format===2?ut.call(this,"coverageTable",[{name:"coverageFormat",type:"USHORT",value:2}].concat(Da("rangeRecord",r.ranges,function(t){return[{name:"startGlyphID",type:"USHORT",value:t.start},{name:"endGlyphID",type:"USHORT",value:t.end},{name:"startCoverageIndex",type:"USHORT",value:t.index}]}))):ve.assert(!1,"Coverage format must be 1 or 2.")}Ul.prototype=Object.create(ut.prototype);Ul.prototype.constructor=Ul;function Vl(r){ut.call(this,"scriptListTable",Da("scriptRecord",r,function(t,e){var n=t.script,o=n.defaultLangSys;return ve.assert(!!o,"Unable to write GSUB: script "+t.tag+" has no default language system."),[{name:"scriptTag"+e,type:"TAG",value:t.tag},{name:"script"+e,type:"TABLE",value:new ut("scriptTable",[{name:"defaultLangSys",type:"TABLE",value:new ut("defaultLangSys",[{name:"lookupOrder",type:"USHORT",value:0},{name:"reqFeatureIndex",type:"USHORT",value:o.reqFeatureIndex}].concat(Ea("featureIndex",o.featureIndexes)))}].concat(Da("langSys",n.langSysRecords,function(i,a){var s=i.langSys;return[{name:"langSysTag"+a,type:"TAG",value:i.tag},{name:"langSys"+a,type:"TABLE",value:new ut("langSys",[{name:"lookupOrder",type:"USHORT",value:0},{name:"reqFeatureIndex",type:"USHORT",value:s.reqFeatureIndex}].concat(Ea("featureIndex",s.featureIndexes)))}]})))}]}))}Vl.prototype=Object.create(ut.prototype);Vl.prototype.constructor=Vl;function zl(r){ut.call(this,"featureListTable",Da("featureRecord",r,function(t,e){var n=t.feature;return[{name:"featureTag"+e,type:"TAG",value:t.tag},{name:"feature"+e,type:"TABLE",value:new ut("featureTable",[{name:"featureParams",type:"USHORT",value:n.featureParams}].concat(Ea("lookupListIndex",n.lookupListIndexes)))}]}))}zl.prototype=Object.create(ut.prototype);zl.prototype.constructor=zl;function jl(r,t){ut.call(this,"lookupListTable",ip("lookup",r,function(e){var n=t[e.lookupType];return ve.assert(!!n,"Unable to write GSUB lookup type "+e.lookupType+" tables."),new ut("lookupTable",[{name:"lookupType",type:"USHORT",value:e.lookupType},{name:"lookupFlag",type:"USHORT",value:e.lookupFlag}].concat(ip("subtable",e.subtables,n)))}))}jl.prototype=Object.create(ut.prototype);jl.prototype.constructor=jl;var le={Table:ut,Record:ut,Coverage:Ul,ScriptList:Vl,FeatureList:zl,LookupList:jl,ushortList:Ea,tableList:ip,recordList:Da};function Wg(r,t){return r.getUint8(t)}function Hl(r,t){return r.getUint16(t,!1)}function o2(r,t){return r.getInt16(t,!1)}function hp(r,t){return r.getUint32(t,!1)}function Py(r,t){var e=r.getInt16(t,!1),n=r.getUint16(t+2,!1);return e+n/65535}function i2(r,t){for(var e="",n=t;n<t+4;n+=1)e+=String.fromCharCode(r.getInt8(n));return e}function a2(r,t,e){for(var n=0,o=0;o<e;o+=1)n<<=8,n+=r.getUint8(t+o);return n}function s2(r,t,e){for(var n=[],o=t;o<e;o+=1)n.push(r.getUint8(o));return n}function l2(r){for(var t="",e=0;e<r.length;e+=1)t+=String.fromCharCode(r[e]);return t}var c2={byte:1,uShort:2,short:2,uLong:4,fixed:4,longDateTime:8,tag:4};function E(r,t){this.data=r,this.offset=t,this.relativeOffset=0}E.prototype.parseByte=function(){var r=this.data.getUint8(this.offset+this.relativeOffset);return this.relativeOffset+=1,r};E.prototype.parseChar=function(){var r=this.data.getInt8(this.offset+this.relativeOffset);return this.relativeOffset+=1,r};E.prototype.parseCard8=E.prototype.parseByte;E.prototype.parseUShort=function(){var r=this.data.getUint16(this.offset+this.relativeOffset);return this.relativeOffset+=2,r};E.prototype.parseCard16=E.prototype.parseUShort;E.prototype.parseSID=E.prototype.parseUShort;E.prototype.parseOffset16=E.prototype.parseUShort;E.prototype.parseShort=function(){var r=this.data.getInt16(this.offset+this.relativeOffset);return this.relativeOffset+=2,r};E.prototype.parseF2Dot14=function(){var r=this.data.getInt16(this.offset+this.relativeOffset)/16384;return this.relativeOffset+=2,r};E.prototype.parseULong=function(){var r=hp(this.data,this.offset+this.relativeOffset);return this.relativeOffset+=4,r};E.prototype.parseOffset32=E.prototype.parseULong;E.prototype.parseFixed=function(){var r=Py(this.data,this.offset+this.relativeOffset);return this.relativeOffset+=4,r};E.prototype.parseString=function(r){var t=this.data,e=this.offset+this.relativeOffset,n="";this.relativeOffset+=r;for(var o=0;o<r;o++)n+=String.fromCharCode(t.getUint8(e+o));return n};E.prototype.parseTag=function(){return this.parseString(4)};E.prototype.parseLongDateTime=function(){var r=hp(this.data,this.offset+this.relativeOffset+4);return r-=2082844800,this.relativeOffset+=8,r};E.prototype.parseVersion=function(r){var t=Hl(this.data,this.offset+this.relativeOffset),e=Hl(this.data,this.offset+this.relativeOffset+2);return this.relativeOffset+=4,r===void 0&&(r=4096),t+e/r/10};E.prototype.skip=function(r,t){t===void 0&&(t=1),this.relativeOffset+=c2[r]*t};E.prototype.parseULongList=function(r){r===void 0&&(r=this.parseULong());for(var t=new Array(r),e=this.data,n=this.offset+this.relativeOffset,o=0;o<r;o++)t[o]=e.getUint32(n),n+=4;return this.relativeOffset+=r*4,t};E.prototype.parseOffset16List=E.prototype.parseUShortList=function(r){r===void 0&&(r=this.parseUShort());for(var t=new Array(r),e=this.data,n=this.offset+this.relativeOffset,o=0;o<r;o++)t[o]=e.getUint16(n),n+=2;return this.relativeOffset+=r*2,t};E.prototype.parseShortList=function(r){for(var t=new Array(r),e=this.data,n=this.offset+this.relativeOffset,o=0;o<r;o++)t[o]=e.getInt16(n),n+=2;return this.relativeOffset+=r*2,t};E.prototype.parseByteList=function(r){for(var t=new Array(r),e=this.data,n=this.offset+this.relativeOffset,o=0;o<r;o++)t[o]=e.getUint8(n++);return this.relativeOffset+=r,t};E.prototype.parseList=function(r,t){t||(t=r,r=this.parseUShort());for(var e=new Array(r),n=0;n<r;n++)e[n]=t.call(this);return e};E.prototype.parseList32=function(r,t){t||(t=r,r=this.parseULong());for(var e=new Array(r),n=0;n<r;n++)e[n]=t.call(this);return e};E.prototype.parseRecordList=function(r,t){t||(t=r,r=this.parseUShort());for(var e=new Array(r),n=Object.keys(t),o=0;o<r;o++){for(var i={},a=0;a<n.length;a++){var s=n[a],l=t[s];i[s]=l.call(this)}e[o]=i}return e};E.prototype.parseRecordList32=function(r,t){t||(t=r,r=this.parseULong());for(var e=new Array(r),n=Object.keys(t),o=0;o<r;o++){for(var i={},a=0;a<n.length;a++){var s=n[a],l=t[s];i[s]=l.call(this)}e[o]=i}return e};E.prototype.parseStruct=function(r){if(typeof r=="function")return r.call(this);for(var t=Object.keys(r),e={},n=0;n<t.length;n++){var o=t[n],i=r[o];e[o]=i.call(this)}return e};E.prototype.parseValueRecord=function(r){if(r===void 0&&(r=this.parseUShort()),r!==0){var t={};return r&1&&(t.xPlacement=this.parseShort()),r&2&&(t.yPlacement=this.parseShort()),r&4&&(t.xAdvance=this.parseShort()),r&8&&(t.yAdvance=this.parseShort()),r&16&&(t.xPlaDevice=void 0,this.parseShort()),r&32&&(t.yPlaDevice=void 0,this.parseShort()),r&64&&(t.xAdvDevice=void 0,this.parseShort()),r&128&&(t.yAdvDevice=void 0,this.parseShort()),t}};E.prototype.parseValueRecordList=function(){for(var r=this.parseUShort(),t=this.parseUShort(),e=new Array(t),n=0;n<t;n++)e[n]=this.parseValueRecord(r);return e};E.prototype.parsePointer=function(r){var t=this.parseOffset16();if(t>0)return new E(this.data,this.offset+t).parseStruct(r)};E.prototype.parsePointer32=function(r){var t=this.parseOffset32();if(t>0)return new E(this.data,this.offset+t).parseStruct(r)};E.prototype.parseListOfLists=function(r){for(var t=this.parseOffset16List(),e=t.length,n=this.relativeOffset,o=new Array(e),i=0;i<e;i++){var a=t[i];if(a===0){o[i]=void 0;continue}if(this.relativeOffset=a,r){for(var s=this.parseOffset16List(),l=new Array(s.length),u=0;u<s.length;u++)this.relativeOffset=a+s[u],l[u]=r.call(this);o[i]=l}else o[i]=this.parseUShortList()}return this.relativeOffset=n,o};E.prototype.parseCoverage=function(){var r=this.offset+this.relativeOffset,t=this.parseUShort(),e=this.parseUShort();if(t===1)return{format:1,glyphs:this.parseUShortList(e)};if(t===2){for(var n=new Array(e),o=0;o<e;o++)n[o]={start:this.parseUShort(),end:this.parseUShort(),index:this.parseUShort()};return{format:2,ranges:n}}throw new Error("0x"+r.toString(16)+": Coverage format must be 1 or 2.")};E.prototype.parseClassDef=function(){var r=this.offset+this.relativeOffset,t=this.parseUShort();if(t===1)return{format:1,startGlyph:this.parseUShort(),classes:this.parseUShortList()};if(t===2)return{format:2,ranges:this.parseRecordList({start:E.uShort,end:E.uShort,classId:E.uShort})};throw new Error("0x"+r.toString(16)+": ClassDef format must be 1 or 2.")};E.list=function(r,t){return function(){return this.parseList(r,t)}};E.list32=function(r,t){return function(){return this.parseList32(r,t)}};E.recordList=function(r,t){return function(){return this.parseRecordList(r,t)}};E.recordList32=function(r,t){return function(){return this.parseRecordList32(r,t)}};E.pointer=function(r){return function(){return this.parsePointer(r)}};E.pointer32=function(r){return function(){return this.parsePointer32(r)}};E.tag=E.prototype.parseTag;E.byte=E.prototype.parseByte;E.uShort=E.offset16=E.prototype.parseUShort;E.uShortList=E.prototype.parseUShortList;E.uLong=E.offset32=E.prototype.parseULong;E.uLongList=E.prototype.parseULongList;E.struct=E.prototype.parseStruct;E.coverage=E.prototype.parseCoverage;E.classDef=E.prototype.parseClassDef;var qg={reserved:E.uShort,reqFeatureIndex:E.uShort,featureIndexes:E.uShortList};E.prototype.parseScriptList=function(){return this.parsePointer(E.recordList({tag:E.tag,script:E.pointer({defaultLangSys:E.pointer(qg),langSysRecords:E.recordList({tag:E.tag,langSys:E.pointer(qg)})})}))||[]};E.prototype.parseFeatureList=function(){return this.parsePointer(E.recordList({tag:E.tag,feature:E.pointer({featureParams:E.offset16,lookupListIndexes:E.uShortList})}))||[]};E.prototype.parseLookupList=function(r){return this.parsePointer(E.list(E.pointer(function(){var t=this.parseUShort();ve.argument(1<=t&&t<=9,"GPOS/GSUB lookup type "+t+" unknown.");var e=this.parseUShort(),n=e&16;return{lookupType:t,lookupFlag:e,subtables:this.parseList(E.pointer(r[t])),markFilteringSet:n?this.parseUShort():void 0}})))||[]};E.prototype.parseFeatureVariationsList=function(){return this.parsePointer32(function(){var r=this.parseUShort(),t=this.parseUShort();ve.argument(r===1&&t<1,"GPOS/GSUB feature variations table unknown.");var e=this.parseRecordList32({conditionSetOffset:E.offset32,featureTableSubstitutionOffset:E.offset32});return e})||[]};var ue={getByte:Wg,getCard8:Wg,getUShort:Hl,getCard16:Hl,getShort:o2,getULong:hp,getFixed:Py,getTag:i2,getOffset:a2,getBytes:s2,bytesToString:l2,Parser:E};function u2(r,t){t.parseUShort(),r.length=t.parseULong(),r.language=t.parseULong();var e;r.groupCount=e=t.parseULong(),r.glyphIndexMap={};for(var n=0;n<e;n+=1)for(var o=t.parseULong(),i=t.parseULong(),a=t.parseULong(),s=o;s<=i;s+=1)r.glyphIndexMap[s]=a,a++}function p2(r,t,e,n,o){r.length=t.parseUShort(),r.language=t.parseUShort();var i;r.segCount=i=t.parseUShort()>>1,t.skip("uShort",3),r.glyphIndexMap={};for(var a=new ue.Parser(e,n+o+14),s=new ue.Parser(e,n+o+16+i*2),l=new ue.Parser(e,n+o+16+i*4),u=new ue.Parser(e,n+o+16+i*6),c=n+o+16+i*8,p=0;p<i-1;p+=1)for(var f=void 0,d=a.parseUShort(),h=s.parseUShort(),m=l.parseShort(),g=u.parseUShort(),v=h;v<=d;v+=1)g!==0?(c=u.offset+u.relativeOffset-2,c+=g,c+=(v-h)*2,f=ue.getUShort(e,c),f!==0&&(f=f+m&65535)):f=v+m&65535,r.glyphIndexMap[v]=f}function f2(r,t){var e={};e.version=ue.getUShort(r,t),ve.argument(e.version===0,"cmap table version should be 0."),e.numTables=ue.getUShort(r,t+2);for(var n=-1,o=e.numTables-1;o>=0;o-=1){var i=ue.getUShort(r,t+4+o*8),a=ue.getUShort(r,t+4+o*8+2);if(i===3&&(a===0||a===1||a===10)||i===0&&(a===0||a===1||a===2||a===3||a===4)){n=ue.getULong(r,t+4+o*8+4);break}}if(n===-1)throw new Error("No valid cmap sub-tables found.");var s=new ue.Parser(r,t+n);if(e.format=s.parseUShort(),e.format===12)u2(e,s);else if(e.format===4)p2(e,s,r,t,n);else throw new Error("Only format 4 and 12 cmap tables are supported (found format "+e.format+").");return e}function d2(r,t,e){r.segments.push({end:t,start:t,delta:-(t-e),offset:0,glyphIndex:e})}function h2(r){r.segments.push({end:65535,start:65535,delta:1,offset:0})}function m2(r){var t=!0,e;for(e=r.length-1;e>0;e-=1){var n=r.get(e);if(n.unicode>65535){console.log("Adding CMAP format 12 (needed!)"),t=!1;break}}var o=[{name:"version",type:"USHORT",value:0},{name:"numTables",type:"USHORT",value:t?1:2},{name:"platformID",type:"USHORT",value:3},{name:"encodingID",type:"USHORT",value:1},{name:"offset",type:"ULONG",value:t?12:12+8}];t||(o=o.concat([{name:"cmap12PlatformID",type:"USHORT",value:3},{name:"cmap12EncodingID",type:"USHORT",value:10},{name:"cmap12Offset",type:"ULONG",value:0}])),o=o.concat([{name:"format",type:"USHORT",value:4},{name:"cmap4Length",type:"USHORT",value:0},{name:"language",type:"USHORT",value:0},{name:"segCountX2",type:"USHORT",value:0},{name:"searchRange",type:"USHORT",value:0},{name:"entrySelector",type:"USHORT",value:0},{name:"rangeShift",type:"USHORT",value:0}]);var i=new le.Table("cmap",o);for(i.segments=[],e=0;e<r.length;e+=1){for(var a=r.get(e),s=0;s<a.unicodes.length;s+=1)d2(i,a.unicodes[s],e);i.segments=i.segments.sort(function(x,S){return x.start-S.start})}h2(i);var l=i.segments.length,u=0,c=[],p=[],f=[],d=[],h=[],m=[];for(e=0;e<l;e+=1){var g=i.segments[e];g.end<=65535&&g.start<=65535?(c=c.concat({name:"end_"+e,type:"USHORT",value:g.end}),p=p.concat({name:"start_"+e,type:"USHORT",value:g.start}),f=f.concat({name:"idDelta_"+e,type:"SHORT",value:g.delta}),d=d.concat({name:"idRangeOffset_"+e,type:"USHORT",value:g.offset}),g.glyphId!==void 0&&(h=h.concat({name:"glyph_"+e,type:"USHORT",value:g.glyphId}))):u+=1,!t&&g.glyphIndex!==void 0&&(m=m.concat({name:"cmap12Start_"+e,type:"ULONG",value:g.start}),m=m.concat({name:"cmap12End_"+e,type:"ULONG",value:g.end}),m=m.concat({name:"cmap12Glyph_"+e,type:"ULONG",value:g.glyphIndex}))}if(i.segCountX2=(l-u)*2,i.searchRange=Math.pow(2,Math.floor(Math.log(l-u)/Math.log(2)))*2,i.entrySelector=Math.log(i.searchRange/2)/Math.log(2),i.rangeShift=i.segCountX2-i.searchRange,i.fields=i.fields.concat(c),i.fields.push({name:"reservedPad",type:"USHORT",value:0}),i.fields=i.fields.concat(p),i.fields=i.fields.concat(f),i.fields=i.fields.concat(d),i.fields=i.fields.concat(h),i.cmap4Length=14+c.length*2+2+p.length*2+f.length*2+d.length*2+h.length*2,!t){var v=16+m.length*4;i.cmap12Offset=12+2*2+4+i.cmap4Length,i.fields=i.fields.concat([{name:"cmap12Format",type:"USHORT",value:12},{name:"cmap12Reserved",type:"USHORT",value:0},{name:"cmap12Length",type:"ULONG",value:v},{name:"cmap12Language",type:"ULONG",value:0},{name:"cmap12nGroups",type:"ULONG",value:m.length/3}]),i.fields=i.fields.concat(m)}return i}var My={parse:f2,make:m2},kl=[".notdef","space","exclam","quotedbl","numbersign","dollar","percent","ampersand","quoteright","parenleft","parenright","asterisk","plus","comma","hyphen","period","slash","zero","one","two","three","four","five","six","seven","eight","nine","colon","semicolon","less","equal","greater","question","at","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","bracketleft","backslash","bracketright","asciicircum","underscore","quoteleft","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","braceleft","bar","braceright","asciitilde","exclamdown","cent","sterling","fraction","yen","florin","section","currency","quotesingle","quotedblleft","guillemotleft","guilsinglleft","guilsinglright","fi","fl","endash","dagger","daggerdbl","periodcentered","paragraph","bullet","quotesinglbase","quotedblbase","quotedblright","guillemotright","ellipsis","perthousand","questiondown","grave","acute","circumflex","tilde","macron","breve","dotaccent","dieresis","ring","cedilla","hungarumlaut","ogonek","caron","emdash","AE","ordfeminine","Lslash","Oslash","OE","ordmasculine","ae","dotlessi","lslash","oslash","oe","germandbls","onesuperior","logicalnot","mu","trademark","Eth","onehalf","plusminus","Thorn","onequarter","divide","brokenbar","degree","thorn","threequarters","twosuperior","registered","minus","eth","multiply","threesuperior","copyright","Aacute","Acircumflex","Adieresis","Agrave","Aring","Atilde","Ccedilla","Eacute","Ecircumflex","Edieresis","Egrave","Iacute","Icircumflex","Idieresis","Igrave","Ntilde","Oacute","Ocircumflex","Odieresis","Ograve","Otilde","Scaron","Uacute","Ucircumflex","Udieresis","Ugrave","Yacute","Ydieresis","Zcaron","aacute","acircumflex","adieresis","agrave","aring","atilde","ccedilla","eacute","ecircumflex","edieresis","egrave","iacute","icircumflex","idieresis","igrave","ntilde","oacute","ocircumflex","odieresis","ograve","otilde","scaron","uacute","ucircumflex","udieresis","ugrave","yacute","ydieresis","zcaron","exclamsmall","Hungarumlautsmall","dollaroldstyle","dollarsuperior","ampersandsmall","Acutesmall","parenleftsuperior","parenrightsuperior","266 ff","onedotenleader","zerooldstyle","oneoldstyle","twooldstyle","threeoldstyle","fouroldstyle","fiveoldstyle","sixoldstyle","sevenoldstyle","eightoldstyle","nineoldstyle","commasuperior","threequartersemdash","periodsuperior","questionsmall","asuperior","bsuperior","centsuperior","dsuperior","esuperior","isuperior","lsuperior","msuperior","nsuperior","osuperior","rsuperior","ssuperior","tsuperior","ff","ffi","ffl","parenleftinferior","parenrightinferior","Circumflexsmall","hyphensuperior","Gravesmall","Asmall","Bsmall","Csmall","Dsmall","Esmall","Fsmall","Gsmall","Hsmall","Ismall","Jsmall","Ksmall","Lsmall","Msmall","Nsmall","Osmall","Psmall","Qsmall","Rsmall","Ssmall","Tsmall","Usmall","Vsmall","Wsmall","Xsmall","Ysmall","Zsmall","colonmonetary","onefitted","rupiah","Tildesmall","exclamdownsmall","centoldstyle","Lslashsmall","Scaronsmall","Zcaronsmall","Dieresissmall","Brevesmall","Caronsmall","Dotaccentsmall","Macronsmall","figuredash","hypheninferior","Ogoneksmall","Ringsmall","Cedillasmall","questiondownsmall","oneeighth","threeeighths","fiveeighths","seveneighths","onethird","twothirds","zerosuperior","foursuperior","fivesuperior","sixsuperior","sevensuperior","eightsuperior","ninesuperior","zeroinferior","oneinferior","twoinferior","threeinferior","fourinferior","fiveinferior","sixinferior","seveninferior","eightinferior","nineinferior","centinferior","dollarinferior","periodinferior","commainferior","Agravesmall","Aacutesmall","Acircumflexsmall","Atildesmall","Adieresissmall","Aringsmall","AEsmall","Ccedillasmall","Egravesmall","Eacutesmall","Ecircumflexsmall","Edieresissmall","Igravesmall","Iacutesmall","Icircumflexsmall","Idieresissmall","Ethsmall","Ntildesmall","Ogravesmall","Oacutesmall","Ocircumflexsmall","Otildesmall","Odieresissmall","OEsmall","Oslashsmall","Ugravesmall","Uacutesmall","Ucircumflexsmall","Udieresissmall","Yacutesmall","Thornsmall","Ydieresissmall","001.000","001.001","001.002","001.003","Black","Bold","Book","Light","Medium","Regular","Roman","Semibold"],g2=["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","space","exclam","quotedbl","numbersign","dollar","percent","ampersand","quoteright","parenleft","parenright","asterisk","plus","comma","hyphen","period","slash","zero","one","two","three","four","five","six","seven","eight","nine","colon","semicolon","less","equal","greater","question","at","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","bracketleft","backslash","bracketright","asciicircum","underscore","quoteleft","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","braceleft","bar","braceright","asciitilde","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","exclamdown","cent","sterling","fraction","yen","florin","section","currency","quotesingle","quotedblleft","guillemotleft","guilsinglleft","guilsinglright","fi","fl","","endash","dagger","daggerdbl","periodcentered","","paragraph","bullet","quotesinglbase","quotedblbase","quotedblright","guillemotright","ellipsis","perthousand","","questiondown","","grave","acute","circumflex","tilde","macron","breve","dotaccent","dieresis","","ring","cedilla","","hungarumlaut","ogonek","caron","emdash","","","","","","","","","","","","","","","","","AE","","ordfeminine","","","","","Lslash","Oslash","OE","ordmasculine","","","","","","ae","","","","dotlessi","","","lslash","oslash","oe","germandbls"],y2=["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","space","exclamsmall","Hungarumlautsmall","","dollaroldstyle","dollarsuperior","ampersandsmall","Acutesmall","parenleftsuperior","parenrightsuperior","twodotenleader","onedotenleader","comma","hyphen","period","fraction","zerooldstyle","oneoldstyle","twooldstyle","threeoldstyle","fouroldstyle","fiveoldstyle","sixoldstyle","sevenoldstyle","eightoldstyle","nineoldstyle","colon","semicolon","commasuperior","threequartersemdash","periodsuperior","questionsmall","","asuperior","bsuperior","centsuperior","dsuperior","esuperior","","","isuperior","","","lsuperior","msuperior","nsuperior","osuperior","","","rsuperior","ssuperior","tsuperior","","ff","fi","fl","ffi","ffl","parenleftinferior","","parenrightinferior","Circumflexsmall","hyphensuperior","Gravesmall","Asmall","Bsmall","Csmall","Dsmall","Esmall","Fsmall","Gsmall","Hsmall","Ismall","Jsmall","Ksmall","Lsmall","Msmall","Nsmall","Osmall","Psmall","Qsmall","Rsmall","Ssmall","Tsmall","Usmall","Vsmall","Wsmall","Xsmall","Ysmall","Zsmall","colonmonetary","onefitted","rupiah","Tildesmall","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","exclamdownsmall","centoldstyle","Lslashsmall","","","Scaronsmall","Zcaronsmall","Dieresissmall","Brevesmall","Caronsmall","","Dotaccentsmall","","","Macronsmall","","","figuredash","hypheninferior","","","Ogoneksmall","Ringsmall","Cedillasmall","","","","onequarter","onehalf","threequarters","questiondownsmall","oneeighth","threeeighths","fiveeighths","seveneighths","onethird","twothirds","","","zerosuperior","onesuperior","twosuperior","threesuperior","foursuperior","fivesuperior","sixsuperior","sevensuperior","eightsuperior","ninesuperior","zeroinferior","oneinferior","twoinferior","threeinferior","fourinferior","fiveinferior","sixinferior","seveninferior","eightinferior","nineinferior","centinferior","dollarinferior","periodinferior","commainferior","Agravesmall","Aacutesmall","Acircumflexsmall","Atildesmall","Adieresissmall","Aringsmall","AEsmall","Ccedillasmall","Egravesmall","Eacutesmall","Ecircumflexsmall","Edieresissmall","Igravesmall","Iacutesmall","Icircumflexsmall","Idieresissmall","Ethsmall","Ntildesmall","Ogravesmall","Oacutesmall","Ocircumflexsmall","Otildesmall","Odieresissmall","OEsmall","Oslashsmall","Ugravesmall","Uacutesmall","Ucircumflexsmall","Udieresissmall","Yacutesmall","Thornsmall","Ydieresissmall"],io=[".notdef",".null","nonmarkingreturn","space","exclam","quotedbl","numbersign","dollar","percent","ampersand","quotesingle","parenleft","parenright","asterisk","plus","comma","hyphen","period","slash","zero","one","two","three","four","five","six","seven","eight","nine","colon","semicolon","less","equal","greater","question","at","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","bracketleft","backslash","bracketright","asciicircum","underscore","grave","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","braceleft","bar","braceright","asciitilde","Adieresis","Aring","Ccedilla","Eacute","Ntilde","Odieresis","Udieresis","aacute","agrave","acircumflex","adieresis","atilde","aring","ccedilla","eacute","egrave","ecircumflex","edieresis","iacute","igrave","icircumflex","idieresis","ntilde","oacute","ograve","ocircumflex","odieresis","otilde","uacute","ugrave","ucircumflex","udieresis","dagger","degree","cent","sterling","section","bullet","paragraph","germandbls","registered","copyright","trademark","acute","dieresis","notequal","AE","Oslash","infinity","plusminus","lessequal","greaterequal","yen","mu","partialdiff","summation","product","pi","integral","ordfeminine","ordmasculine","Omega","ae","oslash","questiondown","exclamdown","logicalnot","radical","florin","approxequal","Delta","guillemotleft","guillemotright","ellipsis","nonbreakingspace","Agrave","Atilde","Otilde","OE","oe","endash","emdash","quotedblleft","quotedblright","quoteleft","quoteright","divide","lozenge","ydieresis","Ydieresis","fraction","currency","guilsinglleft","guilsinglright","fi","fl","daggerdbl","periodcentered","quotesinglbase","quotedblbase","perthousand","Acircumflex","Ecircumflex","Aacute","Edieresis","Egrave","Iacute","Icircumflex","Idieresis","Igrave","Oacute","Ocircumflex","apple","Ograve","Uacute","Ucircumflex","Ugrave","dotlessi","circumflex","tilde","macron","breve","dotaccent","ring","cedilla","hungarumlaut","ogonek","caron","Lslash","lslash","Scaron","scaron","Zcaron","zcaron","brokenbar","Eth","eth","Yacute","yacute","Thorn","thorn","minus","multiply","onesuperior","twosuperior","threesuperior","onehalf","onequarter","threequarters","franc","Gbreve","gbreve","Idotaccent","Scedilla","scedilla","Cacute","cacute","Ccaron","ccaron","dcroat"];function Ey(r){this.font=r}Ey.prototype.charToGlyphIndex=function(r){var t=r.codePointAt(0),e=this.font.glyphs;if(e){for(var n=0;n<e.length;n+=1)for(var o=e.get(n),i=0;i<o.unicodes.length;i+=1)if(o.unicodes[i]===t)return n}return null};function Dy(r){this.cmap=r}Dy.prototype.charToGlyphIndex=function(r){return this.cmap.glyphIndexMap[r.codePointAt(0)]||0};function Wl(r,t){this.encoding=r,this.charset=t}Wl.prototype.charToGlyphIndex=function(r){var t=r.codePointAt(0),e=this.encoding[t];return this.charset.indexOf(e)};function mp(r){switch(r.version){case 1:this.names=io.slice();break;case 2:this.names=new Array(r.numberOfGlyphs);for(var t=0;t<r.numberOfGlyphs;t++)r.glyphNameIndex[t]<io.length?this.names[t]=io[r.glyphNameIndex[t]]:this.names[t]=r.names[r.glyphNameIndex[t]-io.length];break;case 2.5:this.names=new Array(r.numberOfGlyphs);for(var e=0;e<r.numberOfGlyphs;e++)this.names[e]=io[e+r.glyphNameIndex[e]];break;case 3:this.names=[];break;default:this.names=[];break}}mp.prototype.nameToGlyphIndex=function(r){return this.names.indexOf(r)};mp.prototype.glyphIndexToName=function(r){return this.names[r]};function v2(r){for(var t,e=r.tables.cmap.glyphIndexMap,n=Object.keys(e),o=0;o<n.length;o+=1){var i=n[o],a=e[i];t=r.glyphs.get(a),t.addUnicode(parseInt(i))}for(var s=0;s<r.glyphs.length;s+=1)t=r.glyphs.get(s),r.cffEncoding?r.isCIDFont?t.name="gid"+s:t.name=r.cffEncoding.charset[s]:r.glyphNames.names&&(t.name=r.glyphNames.glyphIndexToName(s))}function x2(r){r._IndexToUnicodeMap={};for(var t=r.tables.cmap.glyphIndexMap,e=Object.keys(t),n=0;n<e.length;n+=1){var o=e[n],i=t[o];r._IndexToUnicodeMap[i]===void 0?r._IndexToUnicodeMap[i]={unicodes:[parseInt(o)]}:r._IndexToUnicodeMap[i].unicodes.push(parseInt(o))}}function b2(r,t){t.lowMemory?x2(r):v2(r)}function S2(r,t,e,n,o){r.beginPath(),r.moveTo(t,e),r.lineTo(n,o),r.stroke()}var oo={line:S2};function w2(r,t){var e=t||new tt;return{configurable:!0,get:function(){return typeof e=="function"&&(e=e()),e},set:function(n){e=n}}}function Kt(r){this.bindConstructorValues(r)}Kt.prototype.bindConstructorValues=function(r){this.index=r.index||0,this.name=r.name||null,this.unicode=r.unicode||void 0,this.unicodes=r.unicodes||r.unicode!==void 0?[r.unicode]:[],"xMin"in r&&(this.xMin=r.xMin),"yMin"in r&&(this.yMin=r.yMin),"xMax"in r&&(this.xMax=r.xMax),"yMax"in r&&(this.yMax=r.yMax),"advanceWidth"in r&&(this.advanceWidth=r.advanceWidth),Object.defineProperty(this,"path",w2(this,r.path))};Kt.prototype.addUnicode=function(r){this.unicodes.length===0&&(this.unicode=r),this.unicodes.push(r)};Kt.prototype.getBoundingBox=function(){return this.path.getBoundingBox()};Kt.prototype.getPath=function(r,t,e,n,o){r=r!==void 0?r:0,t=t!==void 0?t:0,e=e!==void 0?e:72;var i,a;n||(n={});var s=n.xScale,l=n.yScale;if(n.hinting&&o&&o.hinting&&(a=this.path&&o.hinting.exec(this,e)),a)i=o.hinting.getCommands(a),r=Math.round(r),t=Math.round(t),s=l=1;else{i=this.path.commands;var u=1/(this.path.unitsPerEm||1e3)*e;s===void 0&&(s=u),l===void 0&&(l=u)}for(var c=new tt,p=0;p<i.length;p+=1){var f=i[p];f.type==="M"?c.moveTo(r+f.x*s,t+-f.y*l):f.type==="L"?c.lineTo(r+f.x*s,t+-f.y*l):f.type==="Q"?c.quadraticCurveTo(r+f.x1*s,t+-f.y1*l,r+f.x*s,t+-f.y*l):f.type==="C"?c.curveTo(r+f.x1*s,t+-f.y1*l,r+f.x2*s,t+-f.y2*l,r+f.x*s,t+-f.y*l):f.type==="Z"&&c.closePath()}return c};Kt.prototype.getContours=function(){if(this.points===void 0)return[];for(var r=[],t=[],e=0;e<this.points.length;e+=1){var n=this.points[e];t.push(n),n.lastPointOfContour&&(r.push(t),t=[])}return ve.argument(t.length===0,"There are still points left in the current contour."),r};Kt.prototype.getMetrics=function(){for(var r=this.path.commands,t=[],e=[],n=0;n<r.length;n+=1){var o=r[n];o.type!=="Z"&&(t.push(o.x),e.push(o.y)),(o.type==="Q"||o.type==="C")&&(t.push(o.x1),e.push(o.y1)),o.type==="C"&&(t.push(o.x2),e.push(o.y2))}var i={xMin:Math.min.apply(null,t),yMin:Math.min.apply(null,e),xMax:Math.max.apply(null,t),yMax:Math.max.apply(null,e),leftSideBearing:this.leftSideBearing};return isFinite(i.xMin)||(i.xMin=0),isFinite(i.xMax)||(i.xMax=this.advanceWidth),isFinite(i.yMin)||(i.yMin=0),isFinite(i.yMax)||(i.yMax=0),i.rightSideBearing=this.advanceWidth-i.leftSideBearing-(i.xMax-i.xMin),i};Kt.prototype.draw=function(r,t,e,n,o){this.getPath(t,e,n,o).draw(r)};Kt.prototype.drawPoints=function(r,t,e,n){function o(p,f,d,h){r.beginPath();for(var m=0;m<p.length;m+=1)r.moveTo(f+p[m].x*h,d+p[m].y*h),r.arc(f+p[m].x*h,d+p[m].y*h,2,0,Math.PI*2,!1);r.closePath(),r.fill()}t=t!==void 0?t:0,e=e!==void 0?e:0,n=n!==void 0?n:24;for(var i=1/this.path.unitsPerEm*n,a=[],s=[],l=this.path,u=0;u<l.commands.length;u+=1){var c=l.commands[u];c.x!==void 0&&a.push({x:c.x,y:-c.y}),c.x1!==void 0&&s.push({x:c.x1,y:-c.y1}),c.x2!==void 0&&s.push({x:c.x2,y:-c.y2})}r.fillStyle="blue",o(a,t,e,i),r.fillStyle="red",o(s,t,e,i)};Kt.prototype.drawMetrics=function(r,t,e,n){var o;t=t!==void 0?t:0,e=e!==void 0?e:0,n=n!==void 0?n:24,o=1/this.path.unitsPerEm*n,r.lineWidth=1,r.strokeStyle="black",oo.line(r,t,-1e4,t,1e4),oo.line(r,-1e4,e,1e4,e);var i=this.xMin||0,a=this.yMin||0,s=this.xMax||0,l=this.yMax||0,u=this.advanceWidth||0;r.strokeStyle="blue",oo.line(r,t+i*o,-1e4,t+i*o,1e4),oo.line(r,t+s*o,-1e4,t+s*o,1e4),oo.line(r,-1e4,e+-a*o,1e4,e+-a*o),oo.line(r,-1e4,e+-l*o,1e4,e+-l*o),r.strokeStyle="green",oo.line(r,t+u*o,-1e4,t+u*o,1e4)};function Fl(r,t,e){Object.defineProperty(r,t,{get:function(){return r.path,r[e]},set:function(n){r[e]=n},enumerable:!0,configurable:!0})}function gp(r,t){if(this.font=r,this.glyphs={},Array.isArray(t))for(var e=0;e<t.length;e++){var n=t[e];n.path.unitsPerEm=r.unitsPerEm,this.glyphs[e]=n}this.length=t&&t.length||0}gp.prototype.get=function(r){if(this.glyphs[r]===void 0){this.font._push(r),typeof this.glyphs[r]=="function"&&(this.glyphs[r]=this.glyphs[r]());var t=this.glyphs[r],e=this.font._IndexToUnicodeMap[r];if(e)for(var n=0;n<e.unicodes.length;n++)t.addUnicode(e.unicodes[n]);this.font.cffEncoding?this.font.isCIDFont?t.name="gid"+r:t.name=this.font.cffEncoding.charset[r]:this.font.glyphNames.names&&(t.name=this.font.glyphNames.glyphIndexToName(r)),this.glyphs[r].advanceWidth=this.font._hmtxTableData[r].advanceWidth,this.glyphs[r].leftSideBearing=this.font._hmtxTableData[r].leftSideBearing}else typeof this.glyphs[r]=="function"&&(this.glyphs[r]=this.glyphs[r]());return this.glyphs[r]};gp.prototype.push=function(r,t){this.glyphs[r]=t,this.length++};function T2(r,t){return new Kt({index:t,font:r})}function C2(r,t,e,n,o,i){return function(){var a=new Kt({index:t,font:r});return a.path=function(){e(a,n,o);var s=i(r.glyphs,a);return s.unitsPerEm=r.unitsPerEm,s},Fl(a,"xMin","_xMin"),Fl(a,"xMax","_xMax"),Fl(a,"yMin","_yMin"),Fl(a,"yMax","_yMax"),a}}function A2(r,t,e,n){return function(){var o=new Kt({index:t,font:r});return o.path=function(){var i=e(r,o,n);return i.unitsPerEm=r.unitsPerEm,i},o}}var Hr={GlyphSet:gp,glyphLoader:T2,ttfGlyphLoader:C2,cffGlyphLoader:A2};function By(r,t){if(r===t)return!0;if(Array.isArray(r)&&Array.isArray(t)){if(r.length!==t.length)return!1;for(var e=0;e<r.length;e+=1)if(!By(r[e],t[e]))return!1;return!0}else return!1}function ap(r){var t;return r.length<1240?t=107:r.length<33900?t=1131:t=32768,t}function En(r,t,e){var n=[],o=[],i=ue.getCard16(r,t),a,s;if(i!==0){var l=ue.getByte(r,t+2);a=t+(i+1)*l+2;for(var u=t+3,c=0;c<i+1;c+=1)n.push(ue.getOffset(r,u,l)),u+=l;s=a+n[i]}else s=t+2;for(var p=0;p<n.length-1;p+=1){var f=ue.getBytes(r,a+n[p],a+n[p+1]);e&&(f=e(f)),o.push(f)}return{objects:o,startOffset:t,endOffset:s}}function _2(r,t){var e=[],n=ue.getCard16(r,t),o,i;if(n!==0){var a=ue.getByte(r,t+2);o=t+(n+1)*a+2;for(var s=t+3,l=0;l<n+1;l+=1)e.push(ue.getOffset(r,s,a)),s+=a;i=o+e[n]}else i=t+2;return{offsets:e,startOffset:t,endOffset:i}}function O2(r,t,e,n,o){var i=ue.getCard16(e,n),a=0;if(i!==0){var s=ue.getByte(e,n+2);a=n+(i+1)*s+2}var l=ue.getBytes(e,a+t[r],a+t[r+1]);return o&&(l=o(l)),l}function I2(r){for(var t="",e=15,n=["0","1","2","3","4","5","6","7","8","9",".","E","E-",null,"-"];;){var o=r.parseByte(),i=o>>4,a=o&15;if(i===e||(t+=n[i],a===e))break;t+=n[a]}return parseFloat(t)}function L2(r,t){var e,n,o,i;if(t===28)return e=r.parseByte(),n=r.parseByte(),e<<8|n;if(t===29)return e=r.parseByte(),n=r.parseByte(),o=r.parseByte(),i=r.parseByte(),e<<24|n<<16|o<<8|i;if(t===30)return I2(r);if(t>=32&&t<=246)return t-139;if(t>=247&&t<=250)return e=r.parseByte(),(t-247)*256+e+108;if(t>=251&&t<=254)return e=r.parseByte(),-(t-251)*256-e-108;throw new Error("Invalid b0 "+t)}function N2(r){for(var t={},e=0;e<r.length;e+=1){var n=r[e][0],o=r[e][1],i=void 0;if(o.length===1?i=o[0]:i=o,t.hasOwnProperty(n)&&!isNaN(t[n]))throw new Error("Object "+t+" already has key "+n);t[n]=i}return t}function Fy(r,t,e){t=t!==void 0?t:0;var n=new ue.Parser(r,t),o=[],i=[];for(e=e!==void 0?e:r.length;n.relativeOffset<e;){var a=n.parseByte();a<=21?(a===12&&(a=1200+n.parseByte()),o.push([a,i]),i=[]):i.push(L2(n,a))}return N2(o)}function Pa(r,t){return t<=390?t=kl[t]:t=r[t-391],t}function Ry(r,t,e){for(var n={},o,i=0;i<t.length;i+=1){var a=t[i];if(Array.isArray(a.type)){var s=[];s.length=a.type.length;for(var l=0;l<a.type.length;l++)o=r[a.op]!==void 0?r[a.op][l]:void 0,o===void 0&&(o=a.value!==void 0&&a.value[l]!==void 0?a.value[l]:null),a.type[l]==="SID"&&(o=Pa(e,o)),s[l]=o;n[a.name]=s}else o=r[a.op],o===void 0&&(o=a.value!==void 0?a.value:null),a.type==="SID"&&(o=Pa(e,o)),n[a.name]=o}return n}function P2(r,t){var e={};return e.formatMajor=ue.getCard8(r,t),e.formatMinor=ue.getCard8(r,t+1),e.size=ue.getCard8(r,t+2),e.offsetSize=ue.getCard8(r,t+3),e.startOffset=t,e.endOffset=t+4,e}var ky=[{name:"version",op:0,type:"SID"},{name:"notice",op:1,type:"SID"},{name:"copyright",op:1200,type:"SID"},{name:"fullName",op:2,type:"SID"},{name:"familyName",op:3,type:"SID"},{name:"weight",op:4,type:"SID"},{name:"isFixedPitch",op:1201,type:"number",value:0},{name:"italicAngle",op:1202,type:"number",value:0},{name:"underlinePosition",op:1203,type:"number",value:-100},{name:"underlineThickness",op:1204,type:"number",value:50},{name:"paintType",op:1205,type:"number",value:0},{name:"charstringType",op:1206,type:"number",value:2},{name:"fontMatrix",op:1207,type:["real","real","real","real","real","real"],value:[.001,0,0,.001,0,0]},{name:"uniqueId",op:13,type:"number"},{name:"fontBBox",op:5,type:["number","number","number","number"],value:[0,0,0,0]},{name:"strokeWidth",op:1208,type:"number",value:0},{name:"xuid",op:14,type:[],value:null},{name:"charset",op:15,type:"offset",value:0},{name:"encoding",op:16,type:"offset",value:0},{name:"charStrings",op:17,type:"offset",value:0},{name:"private",op:18,type:["number","offset"],value:[0,0]},{name:"ros",op:1230,type:["SID","SID","number"]},{name:"cidFontVersion",op:1231,type:"number",value:0},{name:"cidFontRevision",op:1232,type:"number",value:0},{name:"cidFontType",op:1233,type:"number",value:0},{name:"cidCount",op:1234,type:"number",value:8720},{name:"uidBase",op:1235,type:"number"},{name:"fdArray",op:1236,type:"offset"},{name:"fdSelect",op:1237,type:"offset"},{name:"fontName",op:1238,type:"SID"}],Gy=[{name:"subrs",op:19,type:"offset",value:0},{name:"defaultWidthX",op:20,type:"number",value:0},{name:"nominalWidthX",op:21,type:"number",value:0}];function M2(r,t){var e=Fy(r,0,r.byteLength);return Ry(e,ky,t)}function Uy(r,t,e,n){var o=Fy(r,t,e);return Ry(o,Gy,n)}function Xg(r,t,e,n){for(var o=[],i=0;i<e.length;i+=1){var a=new DataView(new Uint8Array(e[i]).buffer),s=M2(a,n);s._subrs=[],s._subrsBias=0,s._defaultWidthX=0,s._nominalWidthX=0;var l=s.private[0],u=s.private[1];if(l!==0&&u!==0){var c=Uy(r,u+t,l,n);if(s._defaultWidthX=c.defaultWidthX,s._nominalWidthX=c.nominalWidthX,c.subrs!==0){var p=u+c.subrs,f=En(r,p+t);s._subrs=f.objects,s._subrsBias=ap(s._subrs)}s._privateDict=c}o.push(s)}return o}function E2(r,t,e,n){var o,i,a=new ue.Parser(r,t);e-=1;var s=[".notdef"],l=a.parseCard8();if(l===0)for(var u=0;u<e;u+=1)o=a.parseSID(),s.push(Pa(n,o));else if(l===1)for(;s.length<=e;){o=a.parseSID(),i=a.parseCard8();for(var c=0;c<=i;c+=1)s.push(Pa(n,o)),o+=1}else if(l===2)for(;s.length<=e;){o=a.parseSID(),i=a.parseCard16();for(var p=0;p<=i;p+=1)s.push(Pa(n,o)),o+=1}else throw new Error("Unknown charset format "+l);return s}function D2(r,t,e){var n,o={},i=new ue.Parser(r,t),a=i.parseCard8();if(a===0)for(var s=i.parseCard8(),l=0;l<s;l+=1)n=i.parseCard8(),o[n]=l;else if(a===1){var u=i.parseCard8();n=1;for(var c=0;c<u;c+=1)for(var p=i.parseCard8(),f=i.parseCard8(),d=p;d<=p+f;d+=1)o[d]=n,n+=1}else throw new Error("Unknown encoding format "+a);return new Wl(o,e)}function Yg(r,t,e){var n,o,i,a,s=new tt,l=[],u=0,c=!1,p=!1,f=0,d=0,h,m,g,v;if(r.isCIDFont){var x=r.tables.cff.topDict._fdSelect[t.index],S=r.tables.cff.topDict._fdArray[x];h=S._subrs,m=S._subrsBias,g=S._defaultWidthX,v=S._nominalWidthX}else h=r.tables.cff.topDict._subrs,m=r.tables.cff.topDict._subrsBias,g=r.tables.cff.topDict._defaultWidthX,v=r.tables.cff.topDict._nominalWidthX;var w=g;function b(y,O){p&&s.closePath(),s.moveTo(y,O),p=!0}function _(){var y;y=l.length%2!==0,y&&!c&&(w=l.shift()+v),u+=l.length>>1,l.length=0,c=!0}function T(y){for(var O,A,I,C,N,P,G,$,Y,ie,j,H,V=0;V<y.length;){var R=y[V];switch(V+=1,R){case 1:_();break;case 3:_();break;case 4:l.length>1&&!c&&(w=l.shift()+v,c=!0),d+=l.pop(),b(f,d);break;case 5:for(;l.length>0;)f+=l.shift(),d+=l.shift(),s.lineTo(f,d);break;case 6:for(;l.length>0&&(f+=l.shift(),s.lineTo(f,d),l.length!==0);)d+=l.shift(),s.lineTo(f,d);break;case 7:for(;l.length>0&&(d+=l.shift(),s.lineTo(f,d),l.length!==0);)f+=l.shift(),s.lineTo(f,d);break;case 8:for(;l.length>0;)n=f+l.shift(),o=d+l.shift(),i=n+l.shift(),a=o+l.shift(),f=i+l.shift(),d=a+l.shift(),s.curveTo(n,o,i,a,f,d);break;case 10:N=l.pop()+m,P=h[N],P&&T(P);break;case 11:return;case 12:switch(R=y[V],V+=1,R){case 35:n=f+l.shift(),o=d+l.shift(),i=n+l.shift(),a=o+l.shift(),G=i+l.shift(),$=a+l.shift(),Y=G+l.shift(),ie=$+l.shift(),j=Y+l.shift(),H=ie+l.shift(),f=j+l.shift(),d=H+l.shift(),l.shift(),s.curveTo(n,o,i,a,G,$),s.curveTo(Y,ie,j,H,f,d);break;case 34:n=f+l.shift(),o=d,i=n+l.shift(),a=o+l.shift(),G=i+l.shift(),$=a,Y=G+l.shift(),ie=a,j=Y+l.shift(),H=d,f=j+l.shift(),s.curveTo(n,o,i,a,G,$),s.curveTo(Y,ie,j,H,f,d);break;case 36:n=f+l.shift(),o=d+l.shift(),i=n+l.shift(),a=o+l.shift(),G=i+l.shift(),$=a,Y=G+l.shift(),ie=a,j=Y+l.shift(),H=ie+l.shift(),f=j+l.shift(),s.curveTo(n,o,i,a,G,$),s.curveTo(Y,ie,j,H,f,d);break;case 37:n=f+l.shift(),o=d+l.shift(),i=n+l.shift(),a=o+l.shift(),G=i+l.shift(),$=a+l.shift(),Y=G+l.shift(),ie=$+l.shift(),j=Y+l.shift(),H=ie+l.shift(),Math.abs(j-f)>Math.abs(H-d)?f=j+l.shift():d=H+l.shift(),s.curveTo(n,o,i,a,G,$),s.curveTo(Y,ie,j,H,f,d);break;default:console.log("Glyph "+t.index+": unknown operator "+1200+R),l.length=0}break;case 14:l.length>0&&!c&&(w=l.shift()+v,c=!0),p&&(s.closePath(),p=!1);break;case 18:_();break;case 19:case 20:_(),V+=u+7>>3;break;case 21:l.length>2&&!c&&(w=l.shift()+v,c=!0),d+=l.pop(),f+=l.pop(),b(f,d);break;case 22:l.length>1&&!c&&(w=l.shift()+v,c=!0),f+=l.pop(),b(f,d);break;case 23:_();break;case 24:for(;l.length>2;)n=f+l.shift(),o=d+l.shift(),i=n+l.shift(),a=o+l.shift(),f=i+l.shift(),d=a+l.shift(),s.curveTo(n,o,i,a,f,d);f+=l.shift(),d+=l.shift(),s.lineTo(f,d);break;case 25:for(;l.length>6;)f+=l.shift(),d+=l.shift(),s.lineTo(f,d);n=f+l.shift(),o=d+l.shift(),i=n+l.shift(),a=o+l.shift(),f=i+l.shift(),d=a+l.shift(),s.curveTo(n,o,i,a,f,d);break;case 26:for(l.length%2&&(f+=l.shift());l.length>0;)n=f,o=d+l.shift(),i=n+l.shift(),a=o+l.shift(),f=i,d=a+l.shift(),s.curveTo(n,o,i,a,f,d);break;case 27:for(l.length%2&&(d+=l.shift());l.length>0;)n=f+l.shift(),o=d,i=n+l.shift(),a=o+l.shift(),f=i+l.shift(),d=a,s.curveTo(n,o,i,a,f,d);break;case 28:O=y[V],A=y[V+1],l.push((O<<24|A<<16)>>16),V+=2;break;case 29:N=l.pop()+r.gsubrsBias,P=r.gsubrs[N],P&&T(P);break;case 30:for(;l.length>0&&(n=f,o=d+l.shift(),i=n+l.shift(),a=o+l.shift(),f=i+l.shift(),d=a+(l.length===1?l.shift():0),s.curveTo(n,o,i,a,f,d),l.length!==0);)n=f+l.shift(),o=d,i=n+l.shift(),a=o+l.shift(),d=a+l.shift(),f=i+(l.length===1?l.shift():0),s.curveTo(n,o,i,a,f,d);break;case 31:for(;l.length>0&&(n=f+l.shift(),o=d,i=n+l.shift(),a=o+l.shift(),d=a+l.shift(),f=i+(l.length===1?l.shift():0),s.curveTo(n,o,i,a,f,d),l.length!==0);)n=f,o=d+l.shift(),i=n+l.shift(),a=o+l.shift(),f=i+l.shift(),d=a+(l.length===1?l.shift():0),s.curveTo(n,o,i,a,f,d);break;default:R<32?console.log("Glyph "+t.index+": unknown operator "+R):R<247?l.push(R-139):R<251?(O=y[V],V+=1,l.push((R-247)*256+O+108)):R<255?(O=y[V],V+=1,l.push(-(R-251)*256-O-108)):(O=y[V],A=y[V+1],I=y[V+2],C=y[V+3],V+=4,l.push((O<<24|A<<16|I<<8|C)/65536))}}}return T(e),t.advanceWidth=w,s}function B2(r,t,e,n){var o=[],i,a=new ue.Parser(r,t),s=a.parseCard8();if(s===0)for(var l=0;l<e;l++){if(i=a.parseCard8(),i>=n)throw new Error("CFF table CID Font FDSelect has bad FD index value "+i+" (FD count "+n+")");o.push(i)}else if(s===3){var u=a.parseCard16(),c=a.parseCard16();if(c!==0)throw new Error("CFF Table CID Font FDSelect format 3 range has bad initial GID "+c);for(var p,f=0;f<u;f++){if(i=a.parseCard8(),p=a.parseCard16(),i>=n)throw new Error("CFF table CID Font FDSelect has bad FD index value "+i+" (FD count "+n+")");if(p>e)throw new Error("CFF Table CID Font FDSelect format 3 range has bad GID "+p);for(;c<p;c++)o.push(i);c=p}if(p!==e)throw new Error("CFF Table CID Font FDSelect format 3 range has bad final GID "+p)}else throw new Error("CFF Table CID Font FDSelect table has unsupported format "+s);return o}function F2(r,t,e,n){e.tables.cff={};var o=P2(r,t),i=En(r,o.endOffset,ue.bytesToString),a=En(r,i.endOffset),s=En(r,a.endOffset,ue.bytesToString),l=En(r,s.endOffset);e.gsubrs=l.objects,e.gsubrsBias=ap(e.gsubrs);var u=Xg(r,t,a.objects,s.objects);if(u.length!==1)throw new Error("CFF table has too many fonts in 'FontSet' - count of fonts NameIndex.length = "+u.length);var c=u[0];if(e.tables.cff.topDict=c,c._privateDict&&(e.defaultWidthX=c._privateDict.defaultWidthX,e.nominalWidthX=c._privateDict.nominalWidthX),c.ros[0]!==void 0&&c.ros[1]!==void 0&&(e.isCIDFont=!0),e.isCIDFont){var p=c.fdArray,f=c.fdSelect;if(p===0||f===0)throw new Error("Font is marked as a CID font, but FDArray and/or FDSelect information is missing");p+=t;var d=En(r,p),h=Xg(r,t,d.objects,s.objects);c._fdArray=h,f+=t,c._fdSelect=B2(r,f,e.numGlyphs,h.length)}var m=t+c.private[1],g=Uy(r,m,c.private[0],s.objects);if(e.defaultWidthX=g.defaultWidthX,e.nominalWidthX=g.nominalWidthX,g.subrs!==0){var v=m+g.subrs,x=En(r,v);e.subrs=x.objects,e.subrsBias=ap(e.subrs)}else e.subrs=[],e.subrsBias=0;var S;n.lowMemory?(S=_2(r,t+c.charStrings),e.nGlyphs=S.offsets.length):(S=En(r,t+c.charStrings),e.nGlyphs=S.objects.length);var w=E2(r,t+c.charset,e.nGlyphs,s.objects);if(c.encoding===0?e.cffEncoding=new Wl(g2,w):c.encoding===1?e.cffEncoding=new Wl(y2,w):e.cffEncoding=D2(r,t+c.encoding,w),e.encoding=e.encoding||e.cffEncoding,e.glyphs=new Hr.GlyphSet(e),n.lowMemory)e._push=function(T){var y=O2(T,S.offsets,r,t+c.charStrings);e.glyphs.push(T,Hr.cffGlyphLoader(e,T,Yg,y))};else for(var b=0;b<e.nGlyphs;b+=1){var _=S.objects[b];e.glyphs.push(b,Hr.cffGlyphLoader(e,b,Yg,_))}}function Vy(r,t){var e,n=kl.indexOf(r);return n>=0&&(e=n),n=t.indexOf(r),n>=0?e=n+kl.length:(e=kl.length+t.length,t.push(r)),e}function R2(){return new le.Record("Header",[{name:"major",type:"Card8",value:1},{name:"minor",type:"Card8",value:0},{name:"hdrSize",type:"Card8",value:4},{name:"major",type:"Card8",value:1}])}function k2(r){var t=new le.Record("Name INDEX",[{name:"names",type:"INDEX",value:[]}]);t.names=[];for(var e=0;e<r.length;e+=1)t.names.push({name:"name_"+e,type:"NAME",value:r[e]});return t}function zy(r,t,e){for(var n={},o=0;o<r.length;o+=1){var i=r[o],a=t[i.name];a!==void 0&&!By(a,i.value)&&(i.type==="SID"&&(a=Vy(a,e)),n[i.op]={name:i.name,type:i.type,value:a})}return n}function $g(r,t){var e=new le.Record("Top DICT",[{name:"dict",type:"DICT",value:{}}]);return e.dict=zy(ky,r,t),e}function Kg(r){var t=new le.Record("Top DICT INDEX",[{name:"topDicts",type:"INDEX",value:[]}]);return t.topDicts=[{name:"topDict_0",type:"TABLE",value:r}],t}function G2(r){var t=new le.Record("String INDEX",[{name:"strings",type:"INDEX",value:[]}]);t.strings=[];for(var e=0;e<r.length;e+=1)t.strings.push({name:"string_"+e,type:"STRING",value:r[e]});return t}function U2(){return new le.Record("Global Subr INDEX",[{name:"subrs",type:"INDEX",value:[]}])}function V2(r,t){for(var e=new le.Record("Charsets",[{name:"format",type:"Card8",value:0}]),n=0;n<r.length;n+=1){var o=r[n],i=Vy(o,t);e.fields.push({name:"glyph_"+n,type:"SID",value:i})}return e}function z2(r){var t=[],e=r.path;t.push({name:"width",type:"NUMBER",value:r.advanceWidth});for(var n=0,o=0,i=0;i<e.commands.length;i+=1){var a=void 0,s=void 0,l=e.commands[i];if(l.type==="Q"){var u=.3333333333333333,c=2/3;l={type:"C",x:l.x,y:l.y,x1:Math.round(u*n+c*l.x1),y1:Math.round(u*o+c*l.y1),x2:Math.round(u*l.x+c*l.x1),y2:Math.round(u*l.y+c*l.y1)}}if(l.type==="M")a=Math.round(l.x-n),s=Math.round(l.y-o),t.push({name:"dx",type:"NUMBER",value:a}),t.push({name:"dy",type:"NUMBER",value:s}),t.push({name:"rmoveto",type:"OP",value:21}),n=Math.round(l.x),o=Math.round(l.y);else if(l.type==="L")a=Math.round(l.x-n),s=Math.round(l.y-o),t.push({name:"dx",type:"NUMBER",value:a}),t.push({name:"dy",type:"NUMBER",value:s}),t.push({name:"rlineto",type:"OP",value:5}),n=Math.round(l.x),o=Math.round(l.y);else if(l.type==="C"){var p=Math.round(l.x1-n),f=Math.round(l.y1-o),d=Math.round(l.x2-l.x1),h=Math.round(l.y2-l.y1);a=Math.round(l.x-l.x2),s=Math.round(l.y-l.y2),t.push({name:"dx1",type:"NUMBER",value:p}),t.push({name:"dy1",type:"NUMBER",value:f}),t.push({name:"dx2",type:"NUMBER",value:d}),t.push({name:"dy2",type:"NUMBER",value:h}),t.push({name:"dx",type:"NUMBER",value:a}),t.push({name:"dy",type:"NUMBER",value:s}),t.push({name:"rrcurveto",type:"OP",value:8}),n=Math.round(l.x),o=Math.round(l.y)}}return t.push({name:"endchar",type:"OP",value:14}),t}function j2(r){for(var t=new le.Record("CharStrings INDEX",[{name:"charStrings",type:"INDEX",value:[]}]),e=0;e<r.length;e+=1){var n=r.get(e),o=z2(n);t.charStrings.push({name:n.name,type:"CHARSTRING",value:o})}return t}function H2(r,t){var e=new le.Record("Private DICT",[{name:"dict",type:"DICT",value:{}}]);return e.dict=zy(Gy,r,t),e}function W2(r,t){for(var e=new le.Table("CFF ",[{name:"header",type:"RECORD"},{name:"nameIndex",type:"RECORD"},{name:"topDictIndex",type:"RECORD"},{name:"stringIndex",type:"RECORD"},{name:"globalSubrIndex",type:"RECORD"},{name:"charsets",type:"RECORD"},{name:"charStringsIndex",type:"RECORD"},{name:"privateDict",type:"RECORD"}]),n=1/t.unitsPerEm,o={version:t.version,fullName:t.fullName,familyName:t.familyName,weight:t.weightName,fontBBox:t.fontBBox||[0,0,0,0],fontMatrix:[n,0,0,n,0,0],charset:999,encoding:0,charStrings:999,private:[0,999]},i={},a=[],s,l=1;l<r.length;l+=1)s=r.get(l),a.push(s.name);var u=[];e.header=R2(),e.nameIndex=k2([t.postScriptName]);var c=$g(o,u);e.topDictIndex=Kg(c),e.globalSubrIndex=U2(),e.charsets=V2(a,u),e.charStringsIndex=j2(r),e.privateDict=H2(i,u),e.stringIndex=G2(u);var p=e.header.sizeOf()+e.nameIndex.sizeOf()+e.topDictIndex.sizeOf()+e.stringIndex.sizeOf()+e.globalSubrIndex.sizeOf();return o.charset=p,o.encoding=0,o.charStrings=o.charset+e.charsets.sizeOf(),o.private[1]=o.charStrings+e.charStringsIndex.sizeOf(),c=$g(o,u),e.topDictIndex=Kg(c),e}var jy={parse:F2,make:W2};function q2(r,t){var e={},n=new ue.Parser(r,t);return e.version=n.parseVersion(),e.fontRevision=Math.round(n.parseFixed()*1e3)/1e3,e.checkSumAdjustment=n.parseULong(),e.magicNumber=n.parseULong(),ve.argument(e.magicNumber===1594834165,"Font header has wrong magic number."),e.flags=n.parseUShort(),e.unitsPerEm=n.parseUShort(),e.created=n.parseLongDateTime(),e.modified=n.parseLongDateTime(),e.xMin=n.parseShort(),e.yMin=n.parseShort(),e.xMax=n.parseShort(),e.yMax=n.parseShort(),e.macStyle=n.parseUShort(),e.lowestRecPPEM=n.parseUShort(),e.fontDirectionHint=n.parseShort(),e.indexToLocFormat=n.parseShort(),e.glyphDataFormat=n.parseShort(),e}function X2(r){var t=Math.round(new Date().getTime()/1e3)+2082844800,e=t;return r.createdTimestamp&&(e=r.createdTimestamp+2082844800),new le.Table("head",[{name:"version",type:"FIXED",value:65536},{name:"fontRevision",type:"FIXED",value:65536},{name:"checkSumAdjustment",type:"ULONG",value:0},{name:"magicNumber",type:"ULONG",value:1594834165},{name:"flags",type:"USHORT",value:0},{name:"unitsPerEm",type:"USHORT",value:1e3},{name:"created",type:"LONGDATETIME",value:e},{name:"modified",type:"LONGDATETIME",value:t},{name:"xMin",type:"SHORT",value:0},{name:"yMin",type:"SHORT",value:0},{name:"xMax",type:"SHORT",value:0},{name:"yMax",type:"SHORT",value:0},{name:"macStyle",type:"USHORT",value:0},{name:"lowestRecPPEM",type:"USHORT",value:0},{name:"fontDirectionHint",type:"SHORT",value:2},{name:"indexToLocFormat",type:"SHORT",value:0},{name:"glyphDataFormat",type:"SHORT",value:0}],r)}var Hy={parse:q2,make:X2};function Y2(r,t){var e={},n=new ue.Parser(r,t);return e.version=n.parseVersion(),e.ascender=n.parseShort(),e.descender=n.parseShort(),e.lineGap=n.parseShort(),e.advanceWidthMax=n.parseUShort(),e.minLeftSideBearing=n.parseShort(),e.minRightSideBearing=n.parseShort(),e.xMaxExtent=n.parseShort(),e.caretSlopeRise=n.parseShort(),e.caretSlopeRun=n.parseShort(),e.caretOffset=n.parseShort(),n.relativeOffset+=8,e.metricDataFormat=n.parseShort(),e.numberOfHMetrics=n.parseUShort(),e}function $2(r){return new le.Table("hhea",[{name:"version",type:"FIXED",value:65536},{name:"ascender",type:"FWORD",value:0},{name:"descender",type:"FWORD",value:0},{name:"lineGap",type:"FWORD",value:0},{name:"advanceWidthMax",type:"UFWORD",value:0},{name:"minLeftSideBearing",type:"FWORD",value:0},{name:"minRightSideBearing",type:"FWORD",value:0},{name:"xMaxExtent",type:"FWORD",value:0},{name:"caretSlopeRise",type:"SHORT",value:1},{name:"caretSlopeRun",type:"SHORT",value:0},{name:"caretOffset",type:"SHORT",value:0},{name:"reserved1",type:"SHORT",value:0},{name:"reserved2",type:"SHORT",value:0},{name:"reserved3",type:"SHORT",value:0},{name:"reserved4",type:"SHORT",value:0},{name:"metricDataFormat",type:"SHORT",value:0},{name:"numberOfHMetrics",type:"USHORT",value:0}],r)}var Wy={parse:Y2,make:$2};function K2(r,t,e,n,o){for(var i,a,s=new ue.Parser(r,t),l=0;l<n;l+=1){l<e&&(i=s.parseUShort(),a=s.parseShort());var u=o.get(l);u.advanceWidth=i,u.leftSideBearing=a}}function Z2(r,t,e,n,o){r._hmtxTableData={};for(var i,a,s=new ue.Parser(t,e),l=0;l<o;l+=1)l<n&&(i=s.parseUShort(),a=s.parseShort()),r._hmtxTableData[l]={advanceWidth:i,leftSideBearing:a}}function Q2(r,t,e,n,o,i,a){a.lowMemory?Z2(r,t,e,n,o):K2(t,e,n,o,i)}function J2(r){for(var t=new le.Table("hmtx",[]),e=0;e<r.length;e+=1){var n=r.get(e),o=n.advanceWidth||0,i=n.leftSideBearing||0;t.fields.push({name:"advanceWidth_"+e,type:"USHORT",value:o}),t.fields.push({name:"leftSideBearing_"+e,type:"SHORT",value:i})}return t}var qy={parse:Q2,make:J2};function eO(r){for(var t=new le.Table("ltag",[{name:"version",type:"ULONG",value:1},{name:"flags",type:"ULONG",value:0},{name:"numTags",type:"ULONG",value:r.length}]),e="",n=12+r.length*4,o=0;o<r.length;++o){var i=e.indexOf(r[o]);i<0&&(i=e.length,e+=r[o]),t.fields.push({name:"offset "+o,type:"USHORT",value:n+i}),t.fields.push({name:"length "+o,type:"USHORT",value:r[o].length})}return t.fields.push({name:"stringPool",type:"CHARARRAY",value:e}),t}function tO(r,t){var e=new ue.Parser(r,t),n=e.parseULong();ve.argument(n===1,"Unsupported ltag table version."),e.skip("uLong",1);for(var o=e.parseULong(),i=[],a=0;a<o;a++){for(var s="",l=t+e.parseUShort(),u=e.parseUShort(),c=l;c<l+u;++c)s+=String.fromCharCode(r.getInt8(c));i.push(s)}return i}var Xy={make:eO,parse:tO};function rO(r,t){var e={},n=new ue.Parser(r,t);return e.version=n.parseVersion(),e.numGlyphs=n.parseUShort(),e.version===1&&(e.maxPoints=n.parseUShort(),e.maxContours=n.parseUShort(),e.maxCompositePoints=n.parseUShort(),e.maxCompositeContours=n.parseUShort(),e.maxZones=n.parseUShort(),e.maxTwilightPoints=n.parseUShort(),e.maxStorage=n.parseUShort(),e.maxFunctionDefs=n.parseUShort(),e.maxInstructionDefs=n.parseUShort(),e.maxStackElements=n.parseUShort(),e.maxSizeOfInstructions=n.parseUShort(),e.maxComponentElements=n.parseUShort(),e.maxComponentDepth=n.parseUShort()),e}function nO(r){return new le.Table("maxp",[{name:"version",type:"FIXED",value:20480},{name:"numGlyphs",type:"USHORT",value:r}])}var Yy={parse:rO,make:nO},$y=["copyright","fontFamily","fontSubfamily","uniqueID","fullName","version","postScriptName","trademark","manufacturer","designer","description","manufacturerURL","designerURL","license","licenseURL","reserved","preferredFamily","preferredSubfamily","compatibleFullName","sampleText","postScriptFindFontName","wwsFamily","wwsSubfamily"],Ky={0:"en",1:"fr",2:"de",3:"it",4:"nl",5:"sv",6:"es",7:"da",8:"pt",9:"no",10:"he",11:"ja",12:"ar",13:"fi",14:"el",15:"is",16:"mt",17:"tr",18:"hr",19:"zh-Hant",20:"ur",21:"hi",22:"th",23:"ko",24:"lt",25:"pl",26:"hu",27:"es",28:"lv",29:"se",30:"fo",31:"fa",32:"ru",33:"zh",34:"nl-BE",35:"ga",36:"sq",37:"ro",38:"cz",39:"sk",40:"si",41:"yi",42:"sr",43:"mk",44:"bg",45:"uk",46:"be",47:"uz",48:"kk",49:"az-Cyrl",50:"az-Arab",51:"hy",52:"ka",53:"mo",54:"ky",55:"tg",56:"tk",57:"mn-CN",58:"mn",59:"ps",60:"ks",61:"ku",62:"sd",63:"bo",64:"ne",65:"sa",66:"mr",67:"bn",68:"as",69:"gu",70:"pa",71:"or",72:"ml",73:"kn",74:"ta",75:"te",76:"si",77:"my",78:"km",79:"lo",80:"vi",81:"id",82:"tl",83:"ms",84:"ms-Arab",85:"am",86:"ti",87:"om",88:"so",89:"sw",90:"rw",91:"rn",92:"ny",93:"mg",94:"eo",128:"cy",129:"eu",130:"ca",131:"la",132:"qu",133:"gn",134:"ay",135:"tt",136:"ug",137:"dz",138:"jv",139:"su",140:"gl",141:"af",142:"br",143:"iu",144:"gd",145:"gv",146:"ga",147:"to",148:"el-polyton",149:"kl",150:"az",151:"nn"},oO={0:0,1:0,2:0,3:0,4:0,5:0,6:0,7:0,8:0,9:0,10:5,11:1,12:4,13:0,14:6,15:0,16:0,17:0,18:0,19:2,20:4,21:9,22:21,23:3,24:29,25:29,26:29,27:29,28:29,29:0,30:0,31:4,32:7,33:25,34:0,35:0,36:0,37:0,38:29,39:29,40:0,41:5,42:7,43:7,44:7,45:7,46:7,47:7,48:7,49:7,50:4,51:24,52:23,53:7,54:7,55:7,56:7,57:27,58:7,59:4,60:4,61:4,62:4,63:26,64:9,65:9,66:9,67:13,68:13,69:11,70:10,71:12,72:17,73:16,74:14,75:15,76:18,77:19,78:20,79:22,80:30,81:0,82:0,83:0,84:4,85:28,86:28,87:28,88:0,89:0,90:0,91:0,92:0,93:0,94:0,128:0,129:0,130:0,131:0,132:0,133:0,134:0,135:7,136:4,137:26,138:0,139:0,140:0,141:0,142:0,143:28,144:0,145:0,146:0,147:0,148:6,149:0,150:0,151:0},Zy={1078:"af",1052:"sq",1156:"gsw",1118:"am",5121:"ar-DZ",15361:"ar-BH",3073:"ar",2049:"ar-IQ",11265:"ar-JO",13313:"ar-KW",12289:"ar-LB",4097:"ar-LY",6145:"ary",8193:"ar-OM",16385:"ar-QA",1025:"ar-SA",10241:"ar-SY",7169:"aeb",14337:"ar-AE",9217:"ar-YE",1067:"hy",1101:"as",2092:"az-Cyrl",1068:"az",1133:"ba",1069:"eu",1059:"be",2117:"bn",1093:"bn-IN",8218:"bs-Cyrl",5146:"bs",1150:"br",1026:"bg",1027:"ca",3076:"zh-HK",5124:"zh-MO",2052:"zh",4100:"zh-SG",1028:"zh-TW",1155:"co",1050:"hr",4122:"hr-BA",1029:"cs",1030:"da",1164:"prs",1125:"dv",2067:"nl-BE",1043:"nl",3081:"en-AU",10249:"en-BZ",4105:"en-CA",9225:"en-029",16393:"en-IN",6153:"en-IE",8201:"en-JM",17417:"en-MY",5129:"en-NZ",13321:"en-PH",18441:"en-SG",7177:"en-ZA",11273:"en-TT",2057:"en-GB",1033:"en",12297:"en-ZW",1061:"et",1080:"fo",1124:"fil",1035:"fi",2060:"fr-BE",3084:"fr-CA",1036:"fr",5132:"fr-LU",6156:"fr-MC",4108:"fr-CH",1122:"fy",1110:"gl",1079:"ka",3079:"de-AT",1031:"de",5127:"de-LI",4103:"de-LU",2055:"de-CH",1032:"el",1135:"kl",1095:"gu",1128:"ha",1037:"he",1081:"hi",1038:"hu",1039:"is",1136:"ig",1057:"id",1117:"iu",2141:"iu-Latn",2108:"ga",1076:"xh",1077:"zu",1040:"it",2064:"it-CH",1041:"ja",1099:"kn",1087:"kk",1107:"km",1158:"quc",1159:"rw",1089:"sw",1111:"kok",1042:"ko",1088:"ky",1108:"lo",1062:"lv",1063:"lt",2094:"dsb",1134:"lb",1071:"mk",2110:"ms-BN",1086:"ms",1100:"ml",1082:"mt",1153:"mi",1146:"arn",1102:"mr",1148:"moh",1104:"mn",2128:"mn-CN",1121:"ne",1044:"nb",2068:"nn",1154:"oc",1096:"or",1123:"ps",1045:"pl",1046:"pt",2070:"pt-PT",1094:"pa",1131:"qu-BO",2155:"qu-EC",3179:"qu",1048:"ro",1047:"rm",1049:"ru",9275:"smn",4155:"smj-NO",5179:"smj",3131:"se-FI",1083:"se",2107:"se-SE",8251:"sms",6203:"sma-NO",7227:"sms",1103:"sa",7194:"sr-Cyrl-BA",3098:"sr",6170:"sr-Latn-BA",2074:"sr-Latn",1132:"nso",1074:"tn",1115:"si",1051:"sk",1060:"sl",11274:"es-AR",16394:"es-BO",13322:"es-CL",9226:"es-CO",5130:"es-CR",7178:"es-DO",12298:"es-EC",17418:"es-SV",4106:"es-GT",18442:"es-HN",2058:"es-MX",19466:"es-NI",6154:"es-PA",15370:"es-PY",10250:"es-PE",20490:"es-PR",3082:"es",1034:"es",21514:"es-US",14346:"es-UY",8202:"es-VE",2077:"sv-FI",1053:"sv",1114:"syr",1064:"tg",2143:"tzm",1097:"ta",1092:"tt",1098:"te",1054:"th",1105:"bo",1055:"tr",1090:"tk",1152:"ug",1058:"uk",1070:"hsb",1056:"ur",2115:"uz-Cyrl",1091:"uz",1066:"vi",1106:"cy",1160:"wo",1157:"sah",1144:"ii",1130:"yo"};function iO(r,t,e){switch(r){case 0:if(t===65535)return"und";if(e)return e[t];break;case 1:return Ky[t];case 3:return Zy[t]}}var sp="utf-16",aO={0:"macintosh",1:"x-mac-japanese",2:"x-mac-chinesetrad",3:"x-mac-korean",6:"x-mac-greek",7:"x-mac-cyrillic",9:"x-mac-devanagai",10:"x-mac-gurmukhi",11:"x-mac-gujarati",12:"x-mac-oriya",13:"x-mac-bengali",14:"x-mac-tamil",15:"x-mac-telugu",16:"x-mac-kannada",17:"x-mac-malayalam",18:"x-mac-sinhalese",19:"x-mac-burmese",20:"x-mac-khmer",21:"x-mac-thai",22:"x-mac-lao",23:"x-mac-georgian",24:"x-mac-armenian",25:"x-mac-chinesesimp",26:"x-mac-tibetan",27:"x-mac-mongolian",28:"x-mac-ethiopic",29:"x-mac-ce",30:"x-mac-vietnamese",31:"x-mac-extarabic"},sO={15:"x-mac-icelandic",17:"x-mac-turkish",18:"x-mac-croatian",24:"x-mac-ce",25:"x-mac-ce",26:"x-mac-ce",27:"x-mac-ce",28:"x-mac-ce",30:"x-mac-icelandic",37:"x-mac-romanian",38:"x-mac-ce",39:"x-mac-ce",40:"x-mac-ce",143:"x-mac-inuit",146:"x-mac-gaelic"};function Qy(r,t,e){switch(r){case 0:return sp;case 1:return sO[e]||aO[t];case 3:if(t===1||t===10)return sp;break}}function lO(r,t,e){for(var n={},o=new ue.Parser(r,t),i=o.parseUShort(),a=o.parseUShort(),s=o.offset+o.parseUShort(),l=0;l<a;l++){var u=o.parseUShort(),c=o.parseUShort(),p=o.parseUShort(),f=o.parseUShort(),d=$y[f]||f,h=o.parseUShort(),m=o.parseUShort(),g=iO(u,p,e),v=Qy(u,c,p);if(v!==void 0&&g!==void 0){var x=void 0;if(v===sp?x=wi.UTF16(r,s+m,h):x=wi.MACSTRING(r,s+m,h,v),x){var S=n[d];S===void 0&&(S=n[d]={}),S[g]=x}}}var w=0;return i===1&&(w=o.parseUShort()),n}function Yu(r){var t={};for(var e in r)t[r[e]]=parseInt(e);return t}function Zg(r,t,e,n,o,i){return new le.Record("NameRecord",[{name:"platformID",type:"USHORT",value:r},{name:"encodingID",type:"USHORT",value:t},{name:"languageID",type:"USHORT",value:e},{name:"nameID",type:"USHORT",value:n},{name:"length",type:"USHORT",value:o},{name:"offset",type:"USHORT",value:i}])}function cO(r,t){var e=r.length,n=t.length-e+1;e:for(var o=0;o<n;o++)for(;o<n;o++){for(var i=0;i<e;i++)if(t[o+i]!==r[i])continue e;return o}return-1}function Qg(r,t){var e=cO(r,t);if(e<0){e=t.length;for(var n=0,o=r.length;n<o;++n)t.push(r[n])}return e}function uO(r,t){var e,n=[],o={},i=Yu($y);for(var a in r){var s=i[a];if(s===void 0&&(s=a),e=parseInt(s),isNaN(e))throw new Error('Name table entry "'+a+'" does not exist, see nameTableNames for complete list.');o[e]=r[a],n.push(e)}for(var l=Yu(Ky),u=Yu(Zy),c=[],p=[],f=0;f<n.length;f++){e=n[f];var d=o[e];for(var h in d){var m=d[h],g=1,v=l[h],x=oO[v],S=Qy(g,x,v),w=te.MACSTRING(m,S);w===void 0&&(g=0,v=t.indexOf(h),v<0&&(v=t.length,t.push(h)),x=4,w=te.UTF16(m));var b=Qg(w,p);c.push(Zg(g,x,v,e,w.length,b));var _=u[h];if(_!==void 0){var T=te.UTF16(m),y=Qg(T,p);c.push(Zg(3,1,_,e,T.length,y))}}}c.sort(function(I,C){return I.platformID-C.platformID||I.encodingID-C.encodingID||I.languageID-C.languageID||I.nameID-C.nameID});for(var O=new le.Table("name",[{name:"format",type:"USHORT",value:0},{name:"count",type:"USHORT",value:c.length},{name:"stringOffset",type:"USHORT",value:6+c.length*12}]),A=0;A<c.length;A++)O.fields.push({name:"record_"+A,type:"RECORD",value:c[A]});return O.fields.push({name:"strings",type:"LITERAL",value:p}),O}var Jy={parse:lO,make:uO},lp=[{begin:0,end:127},{begin:128,end:255},{begin:256,end:383},{begin:384,end:591},{begin:592,end:687},{begin:688,end:767},{begin:768,end:879},{begin:880,end:1023},{begin:11392,end:11519},{begin:1024,end:1279},{begin:1328,end:1423},{begin:1424,end:1535},{begin:42240,end:42559},{begin:1536,end:1791},{begin:1984,end:2047},{begin:2304,end:2431},{begin:2432,end:2559},{begin:2560,end:2687},{begin:2688,end:2815},{begin:2816,end:2943},{begin:2944,end:3071},{begin:3072,end:3199},{begin:3200,end:3327},{begin:3328,end:3455},{begin:3584,end:3711},{begin:3712,end:3839},{begin:4256,end:4351},{begin:6912,end:7039},{begin:4352,end:4607},{begin:7680,end:7935},{begin:7936,end:8191},{begin:8192,end:8303},{begin:8304,end:8351},{begin:8352,end:8399},{begin:8400,end:8447},{begin:8448,end:8527},{begin:8528,end:8591},{begin:8592,end:8703},{begin:8704,end:8959},{begin:8960,end:9215},{begin:9216,end:9279},{begin:9280,end:9311},{begin:9312,end:9471},{begin:9472,end:9599},{begin:9600,end:9631},{begin:9632,end:9727},{begin:9728,end:9983},{begin:9984,end:10175},{begin:12288,end:12351},{begin:12352,end:12447},{begin:12448,end:12543},{begin:12544,end:12591},{begin:12592,end:12687},{begin:43072,end:43135},{begin:12800,end:13055},{begin:13056,end:13311},{begin:44032,end:55215},{begin:55296,end:57343},{begin:67840,end:67871},{begin:19968,end:40959},{begin:57344,end:63743},{begin:12736,end:12783},{begin:64256,end:64335},{begin:64336,end:65023},{begin:65056,end:65071},{begin:65040,end:65055},{begin:65104,end:65135},{begin:65136,end:65279},{begin:65280,end:65519},{begin:65520,end:65535},{begin:3840,end:4095},{begin:1792,end:1871},{begin:1920,end:1983},{begin:3456,end:3583},{begin:4096,end:4255},{begin:4608,end:4991},{begin:5024,end:5119},{begin:5120,end:5759},{begin:5760,end:5791},{begin:5792,end:5887},{begin:6016,end:6143},{begin:6144,end:6319},{begin:10240,end:10495},{begin:40960,end:42127},{begin:5888,end:5919},{begin:66304,end:66351},{begin:66352,end:66383},{begin:66560,end:66639},{begin:118784,end:119039},{begin:119808,end:120831},{begin:1044480,end:1048573},{begin:65024,end:65039},{begin:917504,end:917631},{begin:6400,end:6479},{begin:6480,end:6527},{begin:6528,end:6623},{begin:6656,end:6687},{begin:11264,end:11359},{begin:11568,end:11647},{begin:19904,end:19967},{begin:43008,end:43055},{begin:65536,end:65663},{begin:65856,end:65935},{begin:66432,end:66463},{begin:66464,end:66527},{begin:66640,end:66687},{begin:66688,end:66735},{begin:67584,end:67647},{begin:68096,end:68191},{begin:119552,end:119647},{begin:73728,end:74751},{begin:119648,end:119679},{begin:7040,end:7103},{begin:7168,end:7247},{begin:7248,end:7295},{begin:43136,end:43231},{begin:43264,end:43311},{begin:43312,end:43359},{begin:43520,end:43615},{begin:65936,end:65999},{begin:66e3,end:66047},{begin:66208,end:66271},{begin:127024,end:127135}];function pO(r){for(var t=0;t<lp.length;t+=1){var e=lp[t];if(r>=e.begin&&r<e.end)return t}return-1}function fO(r,t){var e={},n=new ue.Parser(r,t);e.version=n.parseUShort(),e.xAvgCharWidth=n.parseShort(),e.usWeightClass=n.parseUShort(),e.usWidthClass=n.parseUShort(),e.fsType=n.parseUShort(),e.ySubscriptXSize=n.parseShort(),e.ySubscriptYSize=n.parseShort(),e.ySubscriptXOffset=n.parseShort(),e.ySubscriptYOffset=n.parseShort(),e.ySuperscriptXSize=n.parseShort(),e.ySuperscriptYSize=n.parseShort(),e.ySuperscriptXOffset=n.parseShort(),e.ySuperscriptYOffset=n.parseShort(),e.yStrikeoutSize=n.parseShort(),e.yStrikeoutPosition=n.parseShort(),e.sFamilyClass=n.parseShort(),e.panose=[];for(var o=0;o<10;o++)e.panose[o]=n.parseByte();return e.ulUnicodeRange1=n.parseULong(),e.ulUnicodeRange2=n.parseULong(),e.ulUnicodeRange3=n.parseULong(),e.ulUnicodeRange4=n.parseULong(),e.achVendID=String.fromCharCode(n.parseByte(),n.parseByte(),n.parseByte(),n.parseByte()),e.fsSelection=n.parseUShort(),e.usFirstCharIndex=n.parseUShort(),e.usLastCharIndex=n.parseUShort(),e.sTypoAscender=n.parseShort(),e.sTypoDescender=n.parseShort(),e.sTypoLineGap=n.parseShort(),e.usWinAscent=n.parseUShort(),e.usWinDescent=n.parseUShort(),e.version>=1&&(e.ulCodePageRange1=n.parseULong(),e.ulCodePageRange2=n.parseULong()),e.version>=2&&(e.sxHeight=n.parseShort(),e.sCapHeight=n.parseShort(),e.usDefaultChar=n.parseUShort(),e.usBreakChar=n.parseUShort(),e.usMaxContent=n.parseUShort()),e}function dO(r){return new le.Table("OS/2",[{name:"version",type:"USHORT",value:3},{name:"xAvgCharWidth",type:"SHORT",value:0},{name:"usWeightClass",type:"USHORT",value:0},{name:"usWidthClass",type:"USHORT",value:0},{name:"fsType",type:"USHORT",value:0},{name:"ySubscriptXSize",type:"SHORT",value:650},{name:"ySubscriptYSize",type:"SHORT",value:699},{name:"ySubscriptXOffset",type:"SHORT",value:0},{name:"ySubscriptYOffset",type:"SHORT",value:140},{name:"ySuperscriptXSize",type:"SHORT",value:650},{name:"ySuperscriptYSize",type:"SHORT",value:699},{name:"ySuperscriptXOffset",type:"SHORT",value:0},{name:"ySuperscriptYOffset",type:"SHORT",value:479},{name:"yStrikeoutSize",type:"SHORT",value:49},{name:"yStrikeoutPosition",type:"SHORT",value:258},{name:"sFamilyClass",type:"SHORT",value:0},{name:"bFamilyType",type:"BYTE",value:0},{name:"bSerifStyle",type:"BYTE",value:0},{name:"bWeight",type:"BYTE",value:0},{name:"bProportion",type:"BYTE",value:0},{name:"bContrast",type:"BYTE",value:0},{name:"bStrokeVariation",type:"BYTE",value:0},{name:"bArmStyle",type:"BYTE",value:0},{name:"bLetterform",type:"BYTE",value:0},{name:"bMidline",type:"BYTE",value:0},{name:"bXHeight",type:"BYTE",value:0},{name:"ulUnicodeRange1",type:"ULONG",value:0},{name:"ulUnicodeRange2",type:"ULONG",value:0},{name:"ulUnicodeRange3",type:"ULONG",value:0},{name:"ulUnicodeRange4",type:"ULONG",value:0},{name:"achVendID",type:"CHARARRAY",value:"XXXX"},{name:"fsSelection",type:"USHORT",value:0},{name:"usFirstCharIndex",type:"USHORT",value:0},{name:"usLastCharIndex",type:"USHORT",value:0},{name:"sTypoAscender",type:"SHORT",value:0},{name:"sTypoDescender",type:"SHORT",value:0},{name:"sTypoLineGap",type:"SHORT",value:0},{name:"usWinAscent",type:"USHORT",value:0},{name:"usWinDescent",type:"USHORT",value:0},{name:"ulCodePageRange1",type:"ULONG",value:0},{name:"ulCodePageRange2",type:"ULONG",value:0},{name:"sxHeight",type:"SHORT",value:0},{name:"sCapHeight",type:"SHORT",value:0},{name:"usDefaultChar",type:"USHORT",value:0},{name:"usBreakChar",type:"USHORT",value:0},{name:"usMaxContext",type:"USHORT",value:0}],r)}var cp={parse:fO,make:dO,unicodeRanges:lp,getUnicodeRange:pO};function hO(r,t){var e={},n=new ue.Parser(r,t);switch(e.version=n.parseVersion(),e.italicAngle=n.parseFixed(),e.underlinePosition=n.parseShort(),e.underlineThickness=n.parseShort(),e.isFixedPitch=n.parseULong(),e.minMemType42=n.parseULong(),e.maxMemType42=n.parseULong(),e.minMemType1=n.parseULong(),e.maxMemType1=n.parseULong(),e.version){case 1:e.names=io.slice();break;case 2:e.numberOfGlyphs=n.parseUShort(),e.glyphNameIndex=new Array(e.numberOfGlyphs);for(var o=0;o<e.numberOfGlyphs;o++)e.glyphNameIndex[o]=n.parseUShort();e.names=[];for(var i=0;i<e.numberOfGlyphs;i++)if(e.glyphNameIndex[i]>=io.length){var a=n.parseChar();e.names.push(n.parseString(a))}break;case 2.5:e.numberOfGlyphs=n.parseUShort(),e.offset=new Array(e.numberOfGlyphs);for(var s=0;s<e.numberOfGlyphs;s++)e.offset[s]=n.parseChar();break}return e}function mO(){return new le.Table("post",[{name:"version",type:"FIXED",value:196608},{name:"italicAngle",type:"FIXED",value:0},{name:"underlinePosition",type:"FWORD",value:0},{name:"underlineThickness",type:"FWORD",value:0},{name:"isFixedPitch",type:"ULONG",value:0},{name:"minMemType42",type:"ULONG",value:0},{name:"maxMemType42",type:"ULONG",value:0},{name:"minMemType1",type:"ULONG",value:0},{name:"maxMemType1",type:"ULONG",value:0}])}var e0={parse:hO,make:mO},lr=new Array(9);lr[1]=function(){var t=this.offset+this.relativeOffset,e=this.parseUShort();if(e===1)return{substFormat:1,coverage:this.parsePointer(E.coverage),deltaGlyphId:this.parseUShort()};if(e===2)return{substFormat:2,coverage:this.parsePointer(E.coverage),substitute:this.parseOffset16List()};ve.assert(!1,"0x"+t.toString(16)+": lookup type 1 format must be 1 or 2.")};lr[2]=function(){var t=this.parseUShort();return ve.argument(t===1,"GSUB Multiple Substitution Subtable identifier-format must be 1"),{substFormat:t,coverage:this.parsePointer(E.coverage),sequences:this.parseListOfLists()}};lr[3]=function(){var t=this.parseUShort();return ve.argument(t===1,"GSUB Alternate Substitution Subtable identifier-format must be 1"),{substFormat:t,coverage:this.parsePointer(E.coverage),alternateSets:this.parseListOfLists()}};lr[4]=function(){var t=this.parseUShort();return ve.argument(t===1,"GSUB ligature table identifier-format must be 1"),{substFormat:t,coverage:this.parsePointer(E.coverage),ligatureSets:this.parseListOfLists(function(){return{ligGlyph:this.parseUShort(),components:this.parseUShortList(this.parseUShort()-1)}})}};var Si={sequenceIndex:E.uShort,lookupListIndex:E.uShort};lr[5]=function(){var t=this.offset+this.relativeOffset,e=this.parseUShort();if(e===1)return{substFormat:e,coverage:this.parsePointer(E.coverage),ruleSets:this.parseListOfLists(function(){var i=this.parseUShort(),a=this.parseUShort();return{input:this.parseUShortList(i-1),lookupRecords:this.parseRecordList(a,Si)}})};if(e===2)return{substFormat:e,coverage:this.parsePointer(E.coverage),classDef:this.parsePointer(E.classDef),classSets:this.parseListOfLists(function(){var i=this.parseUShort(),a=this.parseUShort();return{classes:this.parseUShortList(i-1),lookupRecords:this.parseRecordList(a,Si)}})};if(e===3){var n=this.parseUShort(),o=this.parseUShort();return{substFormat:e,coverages:this.parseList(n,E.pointer(E.coverage)),lookupRecords:this.parseRecordList(o,Si)}}ve.assert(!1,"0x"+t.toString(16)+": lookup type 5 format must be 1, 2 or 3.")};lr[6]=function(){var t=this.offset+this.relativeOffset,e=this.parseUShort();if(e===1)return{substFormat:1,coverage:this.parsePointer(E.coverage),chainRuleSets:this.parseListOfLists(function(){return{backtrack:this.parseUShortList(),input:this.parseUShortList(this.parseShort()-1),lookahead:this.parseUShortList(),lookupRecords:this.parseRecordList(Si)}})};if(e===2)return{substFormat:2,coverage:this.parsePointer(E.coverage),backtrackClassDef:this.parsePointer(E.classDef),inputClassDef:this.parsePointer(E.classDef),lookaheadClassDef:this.parsePointer(E.classDef),chainClassSet:this.parseListOfLists(function(){return{backtrack:this.parseUShortList(),input:this.parseUShortList(this.parseShort()-1),lookahead:this.parseUShortList(),lookupRecords:this.parseRecordList(Si)}})};if(e===3)return{substFormat:3,backtrackCoverage:this.parseList(E.pointer(E.coverage)),inputCoverage:this.parseList(E.pointer(E.coverage)),lookaheadCoverage:this.parseList(E.pointer(E.coverage)),lookupRecords:this.parseRecordList(Si)};ve.assert(!1,"0x"+t.toString(16)+": lookup type 6 format must be 1, 2 or 3.")};lr[7]=function(){var t=this.parseUShort();ve.argument(t===1,"GSUB Extension Substitution subtable identifier-format must be 1");var e=this.parseUShort(),n=new E(this.data,this.offset+this.parseULong());return{substFormat:1,lookupType:e,extension:lr[e].call(n)}};lr[8]=function(){var t=this.parseUShort();return ve.argument(t===1,"GSUB Reverse Chaining Contextual Single Substitution Subtable identifier-format must be 1"),{substFormat:t,coverage:this.parsePointer(E.coverage),backtrackCoverage:this.parseList(E.pointer(E.coverage)),lookaheadCoverage:this.parseList(E.pointer(E.coverage)),substitutes:this.parseUShortList()}};function gO(r,t){t=t||0;var e=new E(r,t),n=e.parseVersion(1);return ve.argument(n===1||n===1.1,"Unsupported GSUB table version."),n===1?{version:n,scripts:e.parseScriptList(),features:e.parseFeatureList(),lookups:e.parseLookupList(lr)}:{version:n,scripts:e.parseScriptList(),features:e.parseFeatureList(),lookups:e.parseLookupList(lr),variations:e.parseFeatureVariationsList()}}var Ti=new Array(9);Ti[1]=function(t){return t.substFormat===1?new le.Table("substitutionTable",[{name:"substFormat",type:"USHORT",value:1},{name:"coverage",type:"TABLE",value:new le.Coverage(t.coverage)},{name:"deltaGlyphID",type:"USHORT",value:t.deltaGlyphId}]):new le.Table("substitutionTable",[{name:"substFormat",type:"USHORT",value:2},{name:"coverage",type:"TABLE",value:new le.Coverage(t.coverage)}].concat(le.ushortList("substitute",t.substitute)))};Ti[2]=function(t){return ve.assert(t.substFormat===1,"Lookup type 2 substFormat must be 1."),new le.Table("substitutionTable",[{name:"substFormat",type:"USHORT",value:1},{name:"coverage",type:"TABLE",value:new le.Coverage(t.coverage)}].concat(le.tableList("seqSet",t.sequences,function(e){return new le.Table("sequenceSetTable",le.ushortList("sequence",e))})))};Ti[3]=function(t){return ve.assert(t.substFormat===1,"Lookup type 3 substFormat must be 1."),new le.Table("substitutionTable",[{name:"substFormat",type:"USHORT",value:1},{name:"coverage",type:"TABLE",value:new le.Coverage(t.coverage)}].concat(le.tableList("altSet",t.alternateSets,function(e){return new le.Table("alternateSetTable",le.ushortList("alternate",e))})))};Ti[4]=function(t){return ve.assert(t.substFormat===1,"Lookup type 4 substFormat must be 1."),new le.Table("substitutionTable",[{name:"substFormat",type:"USHORT",value:1},{name:"coverage",type:"TABLE",value:new le.Coverage(t.coverage)}].concat(le.tableList("ligSet",t.ligatureSets,function(e){return new le.Table("ligatureSetTable",le.tableList("ligature",e,function(n){return new le.Table("ligatureTable",[{name:"ligGlyph",type:"USHORT",value:n.ligGlyph}].concat(le.ushortList("component",n.components,n.components.length+1)))}))})))};Ti[6]=function(t){if(t.substFormat===1){var e=new le.Table("chainContextTable",[{name:"substFormat",type:"USHORT",value:t.substFormat},{name:"coverage",type:"TABLE",value:new le.Coverage(t.coverage)}].concat(le.tableList("chainRuleSet",t.chainRuleSets,function(i){return new le.Table("chainRuleSetTable",le.tableList("chainRule",i,function(a){var s=le.ushortList("backtrackGlyph",a.backtrack,a.backtrack.length).concat(le.ushortList("inputGlyph",a.input,a.input.length+1)).concat(le.ushortList("lookaheadGlyph",a.lookahead,a.lookahead.length)).concat(le.ushortList("substitution",[],a.lookupRecords.length));return a.lookupRecords.forEach(function(l,u){s=s.concat({name:"sequenceIndex"+u,type:"USHORT",value:l.sequenceIndex}).concat({name:"lookupListIndex"+u,type:"USHORT",value:l.lookupListIndex})}),new le.Table("chainRuleTable",s)}))})));return e}else if(t.substFormat===2)ve.assert(!1,"lookup type 6 format 2 is not yet supported.");else if(t.substFormat===3){var n=[{name:"substFormat",type:"USHORT",value:t.substFormat}];n.push({name:"backtrackGlyphCount",type:"USHORT",value:t.backtrackCoverage.length}),t.backtrackCoverage.forEach(function(i,a){n.push({name:"backtrackCoverage"+a,type:"TABLE",value:new le.Coverage(i)})}),n.push({name:"inputGlyphCount",type:"USHORT",value:t.inputCoverage.length}),t.inputCoverage.forEach(function(i,a){n.push({name:"inputCoverage"+a,type:"TABLE",value:new le.Coverage(i)})}),n.push({name:"lookaheadGlyphCount",type:"USHORT",value:t.lookaheadCoverage.length}),t.lookaheadCoverage.forEach(function(i,a){n.push({name:"lookaheadCoverage"+a,type:"TABLE",value:new le.Coverage(i)})}),n.push({name:"substitutionCount",type:"USHORT",value:t.lookupRecords.length}),t.lookupRecords.forEach(function(i,a){n=n.concat({name:"sequenceIndex"+a,type:"USHORT",value:i.sequenceIndex}).concat({name:"lookupListIndex"+a,type:"USHORT",value:i.lookupListIndex})});var o=new le.Table("chainContextTable",n);return o}ve.assert(!1,"lookup type 6 format must be 1, 2 or 3.")};function yO(r){return new le.Table("GSUB",[{name:"version",type:"ULONG",value:65536},{name:"scripts",type:"TABLE",value:new le.ScriptList(r.scripts)},{name:"features",type:"TABLE",value:new le.FeatureList(r.features)},{name:"lookups",type:"TABLE",value:new le.LookupList(r.lookups,Ti)}])}var t0={parse:gO,make:yO};function vO(r,t){var e=new ue.Parser(r,t),n=e.parseULong();ve.argument(n===1,"Unsupported META table version."),e.parseULong(),e.parseULong();for(var o=e.parseULong(),i={},a=0;a<o;a++){var s=e.parseTag(),l=e.parseULong(),u=e.parseULong(),c=wi.UTF8(r,t+l,u);i[s]=c}return i}function xO(r){var t=Object.keys(r).length,e="",n=16+t*12,o=new le.Table("meta",[{name:"version",type:"ULONG",value:1},{name:"flags",type:"ULONG",value:0},{name:"offset",type:"ULONG",value:n},{name:"numTags",type:"ULONG",value:t}]);for(var i in r){var a=e.length;e+=r[i],o.fields.push({name:"tag "+i,type:"TAG",value:i}),o.fields.push({name:"offset "+i,type:"ULONG",value:n+a}),o.fields.push({name:"length "+i,type:"ULONG",value:r[i].length})}return o.fields.push({name:"stringPool",type:"CHARARRAY",value:e}),o}var r0={parse:vO,make:xO};function Jg(r){return Math.log(r)/Math.log(2)|0}function yp(r){for(;r.length%4!==0;)r.push(0);for(var t=0,e=0;e<r.length;e+=4)t+=(r[e]<<24)+(r[e+1]<<16)+(r[e+2]<<8)+r[e+3];return t%=Math.pow(2,32),t}function ey(r,t,e,n){return new le.Record("Table Record",[{name:"tag",type:"TAG",value:r!==void 0?r:""},{name:"checkSum",type:"ULONG",value:t!==void 0?t:0},{name:"offset",type:"ULONG",value:e!==void 0?e:0},{name:"length",type:"ULONG",value:n!==void 0?n:0}])}function n0(r){var t=new le.Table("sfnt",[{name:"version",type:"TAG",value:"OTTO"},{name:"numTables",type:"USHORT",value:0},{name:"searchRange",type:"USHORT",value:0},{name:"entrySelector",type:"USHORT",value:0},{name:"rangeShift",type:"USHORT",value:0}]);t.tables=r,t.numTables=r.length;var e=Math.pow(2,Jg(t.numTables));t.searchRange=16*e,t.entrySelector=Jg(e),t.rangeShift=t.numTables*16-t.searchRange;for(var n=[],o=[],i=t.sizeOf()+ey().sizeOf()*t.numTables;i%4!==0;)i+=1,o.push({name:"padding",type:"BYTE",value:0});for(var a=0;a<r.length;a+=1){var s=r[a];ve.argument(s.tableName.length===4,"Table name"+s.tableName+" is invalid.");var l=s.sizeOf(),u=ey(s.tableName,yp(s.encode()),i,l);for(n.push({name:u.tag+" Table Record",type:"RECORD",value:u}),o.push({name:s.tableName+" table",type:"RECORD",value:s}),i+=l,ve.argument(!isNaN(i),"Something went wrong calculating the offset.");i%4!==0;)i+=1,o.push({name:"padding",type:"BYTE",value:0})}return n.sort(function(c,p){return c.value.tag>p.value.tag?1:-1}),t.fields=t.fields.concat(n),t.fields=t.fields.concat(o),t}function ty(r,t,e){for(var n=0;n<t.length;n+=1){var o=r.charToGlyphIndex(t[n]);if(o>0){var i=r.glyphs.get(o);return i.getMetrics()}}return e}function bO(r){for(var t=0,e=0;e<r.length;e+=1)t+=r[e];return t/r.length}function SO(r){for(var t=[],e=[],n=[],o=[],i=[],a=[],s=[],l,u=0,c=0,p=0,f=0,d=0,h=0;h<r.glyphs.length;h+=1){var m=r.glyphs.get(h),g=m.unicode|0;if(isNaN(m.advanceWidth))throw new Error("Glyph "+m.name+" ("+h+"): advanceWidth is not a number.");(l>g||l===void 0)&&g>0&&(l=g),u<g&&(u=g);var v=cp.getUnicodeRange(g);if(v<32)c|=1<<v;else if(v<64)p|=1<<v-32;else if(v<96)f|=1<<v-64;else if(v<123)d|=1<<v-96;else throw new Error("Unicode ranges bits > 123 are reserved for internal usage");if(m.name!==".notdef"){var x=m.getMetrics();t.push(x.xMin),e.push(x.yMin),n.push(x.xMax),o.push(x.yMax),a.push(x.leftSideBearing),s.push(x.rightSideBearing),i.push(m.advanceWidth)}}var S={xMin:Math.min.apply(null,t),yMin:Math.min.apply(null,e),xMax:Math.max.apply(null,n),yMax:Math.max.apply(null,o),advanceWidthMax:Math.max.apply(null,i),advanceWidthAvg:bO(i),minLeftSideBearing:Math.min.apply(null,a),maxLeftSideBearing:Math.max.apply(null,a),minRightSideBearing:Math.min.apply(null,s)};S.ascender=r.ascender,S.descender=r.descender;var w=Hy.make({flags:3,unitsPerEm:r.unitsPerEm,xMin:S.xMin,yMin:S.yMin,xMax:S.xMax,yMax:S.yMax,lowestRecPPEM:3,createdTimestamp:r.createdTimestamp}),b=Wy.make({ascender:S.ascender,descender:S.descender,advanceWidthMax:S.advanceWidthMax,minLeftSideBearing:S.minLeftSideBearing,minRightSideBearing:S.minRightSideBearing,xMaxExtent:S.maxLeftSideBearing+(S.xMax-S.xMin),numberOfHMetrics:r.glyphs.length}),_=Yy.make(r.glyphs.length),T=cp.make(Object.assign({xAvgCharWidth:Math.round(S.advanceWidthAvg),usFirstCharIndex:l,usLastCharIndex:u,ulUnicodeRange1:c,ulUnicodeRange2:p,ulUnicodeRange3:f,ulUnicodeRange4:d,sTypoAscender:S.ascender,sTypoDescender:S.descender,sTypoLineGap:0,usWinAscent:S.yMax,usWinDescent:Math.abs(S.yMin),ulCodePageRange1:1,sxHeight:ty(r,"xyvw",{yMax:Math.round(S.ascender/2)}).yMax,sCapHeight:ty(r,"HIKLEFJMNTZBDPRAGOQSUVWXY",S).yMax,usDefaultChar:r.hasChar(" ")?32:0,usBreakChar:r.hasChar(" ")?32:0},r.tables.os2)),y=qy.make(r.glyphs),O=My.make(r.glyphs),A=r.getEnglishName("fontFamily"),I=r.getEnglishName("fontSubfamily"),C=A+" "+I,N=r.getEnglishName("postScriptName");N||(N=A.replace(/\s/g,"")+"-"+I);var P={};for(var G in r.names)P[G]=r.names[G];P.uniqueID||(P.uniqueID={en:r.getEnglishName("manufacturer")+":"+C}),P.postScriptName||(P.postScriptName={en:N}),P.preferredFamily||(P.preferredFamily=r.names.fontFamily),P.preferredSubfamily||(P.preferredSubfamily=r.names.fontSubfamily);var $=[],Y=Jy.make(P,$),ie=$.length>0?Xy.make($):void 0,j=e0.make(),H=jy.make(r.glyphs,{version:r.getEnglishName("version"),fullName:C,familyName:A,weightName:I,postScriptName:N,unitsPerEm:r.unitsPerEm,fontBBox:[0,S.yMin,S.ascender,S.advanceWidthMax]}),V=r.metas&&Object.keys(r.metas).length>0?r0.make(r.metas):void 0,R=[w,b,_,T,Y,O,j,H,y];ie&&R.push(ie),r.tables.gsub&&R.push(t0.make(r.tables.gsub)),V&&R.push(V);for(var D=n0(R),F=D.encode(),B=yp(F),X=D.fields,K=!1,q=0;q<X.length;q+=1)if(X[q].name==="head table"){X[q].value.checkSumAdjustment=2981146554-B,K=!0;break}if(!K)throw new Error("Could not find head table with checkSum to adjust.");return D}var wO={make:n0,fontToTable:SO,computeCheckSum:yp};function $u(r,t){for(var e=0,n=r.length-1;e<=n;){var o=e+n>>>1,i=r[o].tag;if(i===t)return o;i<t?e=o+1:n=o-1}return-e-1}function ry(r,t){for(var e=0,n=r.length-1;e<=n;){var o=e+n>>>1,i=r[o];if(i===t)return o;i<t?e=o+1:n=o-1}return-e-1}function ny(r,t){for(var e,n=0,o=r.length-1;n<=o;){var i=n+o>>>1;e=r[i];var a=e.start;if(a===t)return e;a<t?n=i+1:o=i-1}if(n>0)return e=r[n-1],t>e.end?0:e}function Fa(r,t){this.font=r,this.tableName=t}Fa.prototype={searchTag:$u,binSearch:ry,getTable:function(r){var t=this.font.tables[this.tableName];return!t&&r&&(t=this.font.tables[this.tableName]=this.createDefaultTable()),t},getScriptNames:function(){var r=this.getTable();return r?r.scripts.map(function(t){return t.tag}):[]},getDefaultScriptName:function(){var r=this.getTable();if(!!r){for(var t=!1,e=0;e<r.scripts.length;e++){var n=r.scripts[e].tag;if(n==="DFLT")return n;n==="latn"&&(t=!0)}if(t)return"latn"}},getScriptTable:function(r,t){var e=this.getTable(t);if(e){r=r||"DFLT";var n=e.scripts,o=$u(e.scripts,r);if(o>=0)return n[o].script;if(t){var i={tag:r,script:{defaultLangSys:{reserved:0,reqFeatureIndex:65535,featureIndexes:[]},langSysRecords:[]}};return n.splice(-1-o,0,i),i.script}}},getLangSysTable:function(r,t,e){var n=this.getScriptTable(r,e);if(n){if(!t||t==="dflt"||t==="DFLT")return n.defaultLangSys;var o=$u(n.langSysRecords,t);if(o>=0)return n.langSysRecords[o].langSys;if(e){var i={tag:t,langSys:{reserved:0,reqFeatureIndex:65535,featureIndexes:[]}};return n.langSysRecords.splice(-1-o,0,i),i.langSys}}},getFeatureTable:function(r,t,e,n){var o=this.getLangSysTable(r,t,n);if(o){for(var i,a=o.featureIndexes,s=this.font.tables[this.tableName].features,l=0;l<a.length;l++)if(i=s[a[l]],i.tag===e)return i.feature;if(n){var u=s.length;return ve.assert(u===0||e>=s[u-1].tag,"Features must be added in alphabetical order."),i={tag:e,feature:{params:0,lookupListIndexes:[]}},s.push(i),a.push(u),i.feature}}},getLookupTables:function(r,t,e,n,o){var i=this.getFeatureTable(r,t,e,o),a=[];if(i){for(var s,l=i.lookupListIndexes,u=this.font.tables[this.tableName].lookups,c=0;c<l.length;c++)s=u[l[c]],s.lookupType===n&&a.push(s);if(a.length===0&&o){s={lookupType:n,lookupFlag:0,subtables:[],markFilteringSet:void 0};var p=u.length;return u.push(s),l.push(p),[s]}}return a},getGlyphClass:function(r,t){switch(r.format){case 1:return r.startGlyph<=t&&t<r.startGlyph+r.classes.length?r.classes[t-r.startGlyph]:0;case 2:var e=ny(r.ranges,t);return e?e.classId:0}},getCoverageIndex:function(r,t){switch(r.format){case 1:var e=ry(r.glyphs,t);return e>=0?e:-1;case 2:var n=ny(r.ranges,t);return n?n.index+t-n.start:-1}},expandCoverage:function(r){if(r.format===1)return r.glyphs;for(var t=[],e=r.ranges,n=0;n<e.length;n++)for(var o=e[n],i=o.start,a=o.end,s=i;s<=a;s++)t.push(s);return t}};function Ra(r){Fa.call(this,r,"gpos")}Ra.prototype=Fa.prototype;Ra.prototype.init=function(){var r=this.getDefaultScriptName();this.defaultKerningTables=this.getKerningTables(r)};Ra.prototype.getKerningValue=function(r,t,e){for(var n=0;n<r.length;n++)for(var o=r[n].subtables,i=0;i<o.length;i++){var a=o[i],s=this.getCoverageIndex(a.coverage,t);if(!(s<0))switch(a.posFormat){case 1:for(var l=a.pairSets[s],u=0;u<l.length;u++){var c=l[u];if(c.secondGlyph===e)return c.value1&&c.value1.xAdvance||0}break;case 2:var p=this.getGlyphClass(a.classDef1,t),f=this.getGlyphClass(a.classDef2,e),d=a.classRecords[p][f];return d.value1&&d.value1.xAdvance||0}}return 0};Ra.prototype.getKerningTables=function(r,t){if(this.font.tables.gpos)return this.getLookupTables(r,t,"kern",2)};function Rt(r){Fa.call(this,r,"gsub")}function TO(r,t){var e=r.length;if(e!==t.length)return!1;for(var n=0;n<e;n++)if(r[n]!==t[n])return!1;return!0}function vp(r,t,e){for(var n=r.subtables,o=0;o<n.length;o++){var i=n[o];if(i.substFormat===t)return i}if(e)return n.push(e),e}Rt.prototype=Fa.prototype;Rt.prototype.createDefaultTable=function(){return{version:1,scripts:[{tag:"DFLT",script:{defaultLangSys:{reserved:0,reqFeatureIndex:65535,featureIndexes:[]},langSysRecords:[]}}],features:[],lookups:[]}};Rt.prototype.getSingle=function(r,t,e){for(var n=[],o=this.getLookupTables(t,e,r,1),i=0;i<o.length;i++)for(var a=o[i].subtables,s=0;s<a.length;s++){var l=a[s],u=this.expandCoverage(l.coverage),c=void 0;if(l.substFormat===1){var p=l.deltaGlyphId;for(c=0;c<u.length;c++){var f=u[c];n.push({sub:f,by:f+p})}}else{var d=l.substitute;for(c=0;c<u.length;c++)n.push({sub:u[c],by:d[c]})}}return n};Rt.prototype.getMultiple=function(r,t,e){for(var n=[],o=this.getLookupTables(t,e,r,2),i=0;i<o.length;i++)for(var a=o[i].subtables,s=0;s<a.length;s++){var l=a[s],u=this.expandCoverage(l.coverage),c=void 0;for(c=0;c<u.length;c++){var p=u[c],f=l.sequences[c];n.push({sub:p,by:f})}}return n};Rt.prototype.getAlternates=function(r,t,e){for(var n=[],o=this.getLookupTables(t,e,r,3),i=0;i<o.length;i++)for(var a=o[i].subtables,s=0;s<a.length;s++)for(var l=a[s],u=this.expandCoverage(l.coverage),c=l.alternateSets,p=0;p<u.length;p++)n.push({sub:u[p],by:c[p]});return n};Rt.prototype.getLigatures=function(r,t,e){for(var n=[],o=this.getLookupTables(t,e,r,4),i=0;i<o.length;i++)for(var a=o[i].subtables,s=0;s<a.length;s++)for(var l=a[s],u=this.expandCoverage(l.coverage),c=l.ligatureSets,p=0;p<u.length;p++)for(var f=u[p],d=c[p],h=0;h<d.length;h++){var m=d[h];n.push({sub:[f].concat(m.components),by:m.ligGlyph})}return n};Rt.prototype.addSingle=function(r,t,e,n){var o=this.getLookupTables(e,n,r,1,!0)[0],i=vp(o,2,{substFormat:2,coverage:{format:1,glyphs:[]},substitute:[]});ve.assert(i.coverage.format===1,"Single: unable to modify coverage table format "+i.coverage.format);var a=t.sub,s=this.binSearch(i.coverage.glyphs,a);s<0&&(s=-1-s,i.coverage.glyphs.splice(s,0,a),i.substitute.splice(s,0,0)),i.substitute[s]=t.by};Rt.prototype.addMultiple=function(r,t,e,n){ve.assert(t.by instanceof Array&&t.by.length>1,'Multiple: "by" must be an array of two or more ids');var o=this.getLookupTables(e,n,r,2,!0)[0],i=vp(o,1,{substFormat:1,coverage:{format:1,glyphs:[]},sequences:[]});ve.assert(i.coverage.format===1,"Multiple: unable to modify coverage table format "+i.coverage.format);var a=t.sub,s=this.binSearch(i.coverage.glyphs,a);s<0&&(s=-1-s,i.coverage.glyphs.splice(s,0,a),i.sequences.splice(s,0,0)),i.sequences[s]=t.by};Rt.prototype.addAlternate=function(r,t,e,n){var o=this.getLookupTables(e,n,r,3,!0)[0],i=vp(o,1,{substFormat:1,coverage:{format:1,glyphs:[]},alternateSets:[]});ve.assert(i.coverage.format===1,"Alternate: unable to modify coverage table format "+i.coverage.format);var a=t.sub,s=this.binSearch(i.coverage.glyphs,a);s<0&&(s=-1-s,i.coverage.glyphs.splice(s,0,a),i.alternateSets.splice(s,0,0)),i.alternateSets[s]=t.by};Rt.prototype.addLigature=function(r,t,e,n){var o=this.getLookupTables(e,n,r,4,!0)[0],i=o.subtables[0];i||(i={substFormat:1,coverage:{format:1,glyphs:[]},ligatureSets:[]},o.subtables[0]=i),ve.assert(i.coverage.format===1,"Ligature: unable to modify coverage table format "+i.coverage.format);var a=t.sub[0],s=t.sub.slice(1),l={ligGlyph:t.by,components:s},u=this.binSearch(i.coverage.glyphs,a);if(u>=0){for(var c=i.ligatureSets[u],p=0;p<c.length;p++)if(TO(c[p].components,s))return;c.push(l)}else u=-1-u,i.coverage.glyphs.splice(u,0,a),i.ligatureSets.splice(u,0,[l])};Rt.prototype.getFeature=function(r,t,e){if(/ss\d\d/.test(r))return this.getSingle(r,t,e);switch(r){case"aalt":case"salt":return this.getSingle(r,t,e).concat(this.getAlternates(r,t,e));case"dlig":case"liga":case"rlig":return this.getLigatures(r,t,e);case"ccmp":return this.getMultiple(r,t,e).concat(this.getLigatures(r,t,e));case"stch":return this.getMultiple(r,t,e)}};Rt.prototype.add=function(r,t,e,n){if(/ss\d\d/.test(r))return this.addSingle(r,t,e,n);switch(r){case"aalt":case"salt":return typeof t.by=="number"?this.addSingle(r,t,e,n):this.addAlternate(r,t,e,n);case"dlig":case"liga":case"rlig":return this.addLigature(r,t,e,n);case"ccmp":return t.by instanceof Array?this.addMultiple(r,t,e,n):this.addLigature(r,t,e,n)}};function CO(){return typeof window<"u"}function AO(r){for(var t=new ArrayBuffer(r.length),e=new Uint8Array(t),n=0;n<r.length;++n)e[n]=r[n];return t}function _O(r){for(var t=new Buffer(r.byteLength),e=new Uint8Array(r),n=0;n<t.length;++n)t[n]=e[n];return t}function Na(r,t){if(!r)throw t}function oy(r,t,e,n,o){var i;return(t&n)>0?(i=r.parseByte(),(t&o)===0&&(i=-i),i=e+i):(t&o)>0?i=e:i=e+r.parseShort(),i}function o0(r,t,e){var n=new ue.Parser(t,e);r.numberOfContours=n.parseShort(),r._xMin=n.parseShort(),r._yMin=n.parseShort(),r._xMax=n.parseShort(),r._yMax=n.parseShort();var o,i;if(r.numberOfContours>0){for(var a=r.endPointIndices=[],s=0;s<r.numberOfContours;s+=1)a.push(n.parseUShort());r.instructionLength=n.parseUShort(),r.instructions=[];for(var l=0;l<r.instructionLength;l+=1)r.instructions.push(n.parseByte());var u=a[a.length-1]+1;o=[];for(var c=0;c<u;c+=1)if(i=n.parseByte(),o.push(i),(i&8)>0)for(var p=n.parseByte(),f=0;f<p;f+=1)o.push(i),c+=1;if(ve.argument(o.length===u,"Bad flags."),a.length>0){var d=[],h;if(u>0){for(var m=0;m<u;m+=1)i=o[m],h={},h.onCurve=!!(i&1),h.lastPointOfContour=a.indexOf(m)>=0,d.push(h);for(var g=0,v=0;v<u;v+=1)i=o[v],h=d[v],h.x=oy(n,i,g,2,16),g=h.x;for(var x=0,S=0;S<u;S+=1)i=o[S],h=d[S],h.y=oy(n,i,x,4,32),x=h.y}r.points=d}else r.points=[]}else if(r.numberOfContours===0)r.points=[];else{r.isComposite=!0,r.points=[],r.components=[];for(var w=!0;w;){o=n.parseUShort();var b={glyphIndex:n.parseUShort(),xScale:1,scale01:0,scale10:0,yScale:1,dx:0,dy:0};(o&1)>0?(o&2)>0?(b.dx=n.parseShort(),b.dy=n.parseShort()):b.matchedPoints=[n.parseUShort(),n.parseUShort()]:(o&2)>0?(b.dx=n.parseChar(),b.dy=n.parseChar()):b.matchedPoints=[n.parseByte(),n.parseByte()],(o&8)>0?b.xScale=b.yScale=n.parseF2Dot14():(o&64)>0?(b.xScale=n.parseF2Dot14(),b.yScale=n.parseF2Dot14()):(o&128)>0&&(b.xScale=n.parseF2Dot14(),b.scale01=n.parseF2Dot14(),b.scale10=n.parseF2Dot14(),b.yScale=n.parseF2Dot14()),r.components.push(b),w=!!(o&32)}if(o&256){r.instructionLength=n.parseUShort(),r.instructions=[];for(var _=0;_<r.instructionLength;_+=1)r.instructions.push(n.parseByte())}}}function Ku(r,t){for(var e=[],n=0;n<r.length;n+=1){var o=r[n],i={x:t.xScale*o.x+t.scale01*o.y+t.dx,y:t.scale10*o.x+t.yScale*o.y+t.dy,onCurve:o.onCurve,lastPointOfContour:o.lastPointOfContour};e.push(i)}return e}function OO(r){for(var t=[],e=[],n=0;n<r.length;n+=1){var o=r[n];e.push(o),o.lastPointOfContour&&(t.push(e),e=[])}return ve.argument(e.length===0,"There are still points left in the current contour."),t}function i0(r){var t=new tt;if(!r)return t;for(var e=OO(r),n=0;n<e.length;++n){var o=e[n],i=null,a=o[o.length-1],s=o[0];if(a.onCurve)t.moveTo(a.x,a.y);else if(s.onCurve)t.moveTo(s.x,s.y);else{var l={x:(a.x+s.x)*.5,y:(a.y+s.y)*.5};t.moveTo(l.x,l.y)}for(var u=0;u<o.length;++u)if(i=a,a=s,s=o[(u+1)%o.length],a.onCurve)t.lineTo(a.x,a.y);else{var c=i,p=s;i.onCurve||(c={x:(a.x+i.x)*.5,y:(a.y+i.y)*.5}),s.onCurve||(p={x:(a.x+s.x)*.5,y:(a.y+s.y)*.5}),t.quadraticCurveTo(a.x,a.y,p.x,p.y)}t.closePath()}return t}function a0(r,t){if(t.isComposite)for(var e=0;e<t.components.length;e+=1){var n=t.components[e],o=r.get(n.glyphIndex);if(o.getPath(),o.points){var i=void 0;if(n.matchedPoints===void 0)i=Ku(o.points,n);else{if(n.matchedPoints[0]>t.points.length-1||n.matchedPoints[1]>o.points.length-1)throw Error("Matched points out of range in "+t.name);var a=t.points[n.matchedPoints[0]],s=o.points[n.matchedPoints[1]],l={xScale:n.xScale,scale01:n.scale01,scale10:n.scale10,yScale:n.yScale,dx:0,dy:0};s=Ku([s],l)[0],l.dx=a.x-s.x,l.dy=a.y-s.y,i=Ku(o.points,l)}t.points=t.points.concat(i)}}return i0(t.points)}function IO(r,t,e,n){for(var o=new Hr.GlyphSet(n),i=0;i<e.length-1;i+=1){var a=e[i],s=e[i+1];a!==s?o.push(i,Hr.ttfGlyphLoader(n,i,o0,r,t+a,a0)):o.push(i,Hr.glyphLoader(n,i))}return o}function LO(r,t,e,n){var o=new Hr.GlyphSet(n);return n._push=function(i){var a=e[i],s=e[i+1];a!==s?o.push(i,Hr.ttfGlyphLoader(n,i,o0,r,t+a,a0)):o.push(i,Hr.glyphLoader(n,i))},o}function NO(r,t,e,n,o){return o.lowMemory?LO(r,t,e,n):IO(r,t,e,n)}var s0={getPath:i0,parse:NO},l0,so,c0,up;function u0(r){this.font=r,this.getCommands=function(t){return s0.getPath(t).commands},this._fpgmState=this._prepState=void 0,this._errorState=0}function PO(r){return r}function p0(r){return Math.sign(r)*Math.round(Math.abs(r))}function MO(r){return Math.sign(r)*Math.round(Math.abs(r*2))/2}function EO(r){return Math.sign(r)*(Math.round(Math.abs(r)+.5)-.5)}function DO(r){return Math.sign(r)*Math.ceil(Math.abs(r))}function BO(r){return Math.sign(r)*Math.floor(Math.abs(r))}var f0=function(r){var t=this.srPeriod,e=this.srPhase,n=this.srThreshold,o=1;return r<0&&(r=-r,o=-1),r+=n-e,r=Math.trunc(r/t)*t,r+=e,r<0?e*o:r*o},jr={x:1,y:0,axis:"x",distance:function(r,t,e,n){return(e?r.xo:r.x)-(n?t.xo:t.x)},interpolate:function(r,t,e,n){var o,i,a,s,l,u,c;if(!n||n===this){if(o=r.xo-t.xo,i=r.xo-e.xo,l=t.x-t.xo,u=e.x-e.xo,a=Math.abs(o),s=Math.abs(i),c=a+s,c===0){r.x=r.xo+(l+u)/2;return}r.x=r.xo+(l*s+u*a)/c;return}if(o=n.distance(r,t,!0,!0),i=n.distance(r,e,!0,!0),l=n.distance(t,t,!1,!0),u=n.distance(e,e,!1,!0),a=Math.abs(o),s=Math.abs(i),c=a+s,c===0){jr.setRelative(r,r,(l+u)/2,n,!0);return}jr.setRelative(r,r,(l*s+u*a)/c,n,!0)},normalSlope:Number.NEGATIVE_INFINITY,setRelative:function(r,t,e,n,o){if(!n||n===this){r.x=(o?t.xo:t.x)+e;return}var i=o?t.xo:t.x,a=o?t.yo:t.y,s=i+e*n.x,l=a+e*n.y;r.x=s+(r.y-l)/n.normalSlope},slope:0,touch:function(r){r.xTouched=!0},touched:function(r){return r.xTouched},untouch:function(r){r.xTouched=!1}},on={x:0,y:1,axis:"y",distance:function(r,t,e,n){return(e?r.yo:r.y)-(n?t.yo:t.y)},interpolate:function(r,t,e,n){var o,i,a,s,l,u,c;if(!n||n===this){if(o=r.yo-t.yo,i=r.yo-e.yo,l=t.y-t.yo,u=e.y-e.yo,a=Math.abs(o),s=Math.abs(i),c=a+s,c===0){r.y=r.yo+(l+u)/2;return}r.y=r.yo+(l*s+u*a)/c;return}if(o=n.distance(r,t,!0,!0),i=n.distance(r,e,!0,!0),l=n.distance(t,t,!1,!0),u=n.distance(e,e,!1,!0),a=Math.abs(o),s=Math.abs(i),c=a+s,c===0){on.setRelative(r,r,(l+u)/2,n,!0);return}on.setRelative(r,r,(l*s+u*a)/c,n,!0)},normalSlope:0,setRelative:function(r,t,e,n,o){if(!n||n===this){r.y=(o?t.yo:t.y)+e;return}var i=o?t.xo:t.x,a=o?t.yo:t.y,s=i+e*n.x,l=a+e*n.y;r.y=l+n.normalSlope*(r.x-s)},slope:Number.POSITIVE_INFINITY,touch:function(r){r.yTouched=!0},touched:function(r){return r.yTouched},untouch:function(r){r.yTouched=!1}};Object.freeze(jr);Object.freeze(on);function ka(r,t){this.x=r,this.y=t,this.axis=void 0,this.slope=t/r,this.normalSlope=-r/t,Object.freeze(this)}ka.prototype.distance=function(r,t,e,n){return this.x*jr.distance(r,t,e,n)+this.y*on.distance(r,t,e,n)};ka.prototype.interpolate=function(r,t,e,n){var o,i,a,s,l,u,c;if(a=n.distance(r,t,!0,!0),s=n.distance(r,e,!0,!0),o=n.distance(t,t,!1,!0),i=n.distance(e,e,!1,!0),l=Math.abs(a),u=Math.abs(s),c=l+u,c===0){this.setRelative(r,r,(o+i)/2,n,!0);return}this.setRelative(r,r,(o*u+i*l)/c,n,!0)};ka.prototype.setRelative=function(r,t,e,n,o){n=n||this;var i=o?t.xo:t.x,a=o?t.yo:t.y,s=i+e*n.x,l=a+e*n.y,u=n.normalSlope,c=this.slope,p=r.x,f=r.y;r.x=(c*p-u*s+l-f)/(c-u),r.y=c*(r.x-p)+f};ka.prototype.touch=function(r){r.xTouched=!0,r.yTouched=!0};function Ga(r,t){var e=Math.sqrt(r*r+t*t);return r/=e,t/=e,r===1&&t===0?jr:r===0&&t===1?on:new ka(r,t)}function an(r,t,e,n){this.x=this.xo=Math.round(r*64)/64,this.y=this.yo=Math.round(t*64)/64,this.lastPointOfContour=e,this.onCurve=n,this.prevPointOnContour=void 0,this.nextPointOnContour=void 0,this.xTouched=!1,this.yTouched=!1,Object.preventExtensions(this)}an.prototype.nextTouched=function(r){for(var t=this.nextPointOnContour;!r.touched(t)&&t!==this;)t=t.nextPointOnContour;return t};an.prototype.prevTouched=function(r){for(var t=this.prevPointOnContour;!r.touched(t)&&t!==this;)t=t.prevPointOnContour;return t};var Ba=Object.freeze(new an(0,0)),FO={cvCutIn:17/16,deltaBase:9,deltaShift:.125,loop:1,minDis:1,autoFlip:!0};function Dn(r,t){switch(this.env=r,this.stack=[],this.prog=t,r){case"glyf":this.zp0=this.zp1=this.zp2=1,this.rp0=this.rp1=this.rp2=0;case"prep":this.fv=this.pv=this.dpv=jr,this.round=p0}}u0.prototype.exec=function(r,t){if(typeof t!="number")throw new Error("Point size is not a number!");if(!(this._errorState>2)){var e=this.font,n=this._prepState;if(!n||n.ppem!==t){var o=this._fpgmState;if(!o){Dn.prototype=FO,o=this._fpgmState=new Dn("fpgm",e.tables.fpgm),o.funcs=[],o.font=e,exports.DEBUG&&(console.log("---EXEC FPGM---"),o.step=-1);try{so(o)}catch(u){console.log("Hinting error in FPGM:"+u),this._errorState=3;return}}Dn.prototype=o,n=this._prepState=new Dn("prep",e.tables.prep),n.ppem=t;var i=e.tables.cvt;if(i)for(var a=n.cvt=new Array(i.length),s=t/e.unitsPerEm,l=0;l<i.length;l++)a[l]=i[l]*s;else n.cvt=[];exports.DEBUG&&(console.log("---EXEC PREP---"),n.step=-1);try{so(n)}catch(u){this._errorState<2&&console.log("Hinting error in PREP:"+u),this._errorState=2}}if(!(this._errorState>1))try{return c0(r,n)}catch(u){this._errorState<1&&(console.log("Hinting error:"+u),console.log("Note: further hinting errors are silenced")),this._errorState=1;return}}};c0=function(r,t){var e=t.ppem/t.font.unitsPerEm,n=e,o=r.components,i,a,s;if(Dn.prototype=t,!o)s=new Dn("glyf",r.instructions),exports.DEBUG&&(console.log("---EXEC GLYPH---"),s.step=-1),up(r,s,e,n),a=s.gZone;else{var l=t.font;a=[],i=[];for(var u=0;u<o.length;u++){var c=o[u],p=l.glyphs.get(c.glyphIndex);s=new Dn("glyf",p.instructions),exports.DEBUG&&(console.log("---EXEC COMP "+u+"---"),s.step=-1),up(p,s,e,n);for(var f=Math.round(c.dx*e),d=Math.round(c.dy*n),h=s.gZone,m=s.contours,g=0;g<h.length;g++){var v=h[g];v.xTouched=v.yTouched=!1,v.xo=v.x=v.x+f,v.yo=v.y=v.y+d}var x=a.length;a.push.apply(a,h);for(var S=0;S<m.length;S++)i.push(m[S]+x)}r.instructions&&!s.inhibitGridFit&&(s=new Dn("glyf",r.instructions),s.gZone=s.z0=s.z1=s.z2=a,s.contours=i,a.push(new an(0,0),new an(Math.round(r.advanceWidth*e),0)),exports.DEBUG&&(console.log("---EXEC COMPOSITE---"),s.step=-1),so(s),a.length-=2)}return a};up=function(r,t,e,n){for(var o=r.points||[],i=o.length,a=t.gZone=t.z0=t.z1=t.z2=[],s=t.contours=[],l,u=0;u<i;u++)l=o[u],a[u]=new an(l.x*e,l.y*n,l.lastPointOfContour,l.onCurve);for(var c,p,f=0;f<i;f++)l=a[f],c||(c=l,s.push(f)),l.lastPointOfContour?(l.nextPointOnContour=c,c.prevPointOnContour=l,c=void 0):(p=a[f+1],l.nextPointOnContour=p,p.prevPointOnContour=l);if(!t.inhibitGridFit){if(exports.DEBUG){console.log("PROCESSING GLYPH",t.stack);for(var d=0;d<i;d++)console.log(d,a[d].x,a[d].y)}if(a.push(new an(0,0),new an(Math.round(r.advanceWidth*e),0)),so(t),a.length-=2,exports.DEBUG){console.log("FINISHED GLYPH",t.stack);for(var h=0;h<i;h++)console.log(h,a[h].x,a[h].y)}}};so=function(r){var t=r.prog;if(!!t){var e=t.length,n;for(r.ip=0;r.ip<e;r.ip++){if(exports.DEBUG&&r.step++,n=l0[t[r.ip]],!n)throw new Error("unknown instruction: 0x"+Number(t[r.ip]).toString(16));n(r)}}};function ql(r){for(var t=r.tZone=new Array(r.gZone.length),e=0;e<t.length;e++)t[e]=new an(0,0)}function d0(r,t){var e=r.prog,n=r.ip,o=1,i;do if(i=e[++n],i===88)o++;else if(i===89)o--;else if(i===64)n+=e[n+1]+1;else if(i===65)n+=2*e[n+1]+1;else if(i>=176&&i<=183)n+=i-176+1;else if(i>=184&&i<=191)n+=(i-184+1)*2;else if(t&&o===1&&i===27)break;while(o>0);r.ip=n}function iy(r,t){exports.DEBUG&&console.log(t.step,"SVTCA["+r.axis+"]"),t.fv=t.pv=t.dpv=r}function ay(r,t){exports.DEBUG&&console.log(t.step,"SPVTCA["+r.axis+"]"),t.pv=t.dpv=r}function sy(r,t){exports.DEBUG&&console.log(t.step,"SFVTCA["+r.axis+"]"),t.fv=r}function ly(r,t){var e=t.stack,n=e.pop(),o=e.pop(),i=t.z2[n],a=t.z1[o];exports.DEBUG&&console.log("SPVTL["+r+"]",n,o);var s,l;r?(s=i.y-a.y,l=a.x-i.x):(s=a.x-i.x,l=a.y-i.y),t.pv=t.dpv=Ga(s,l)}function cy(r,t){var e=t.stack,n=e.pop(),o=e.pop(),i=t.z2[n],a=t.z1[o];exports.DEBUG&&console.log("SFVTL["+r+"]",n,o);var s,l;r?(s=i.y-a.y,l=a.x-i.x):(s=a.x-i.x,l=a.y-i.y),t.fv=Ga(s,l)}function RO(r){var t=r.stack,e=t.pop(),n=t.pop();exports.DEBUG&&console.log(r.step,"SPVFS[]",e,n),r.pv=r.dpv=Ga(n,e)}function kO(r){var t=r.stack,e=t.pop(),n=t.pop();exports.DEBUG&&console.log(r.step,"SPVFS[]",e,n),r.fv=Ga(n,e)}function GO(r){var t=r.stack,e=r.pv;exports.DEBUG&&console.log(r.step,"GPV[]"),t.push(e.x*16384),t.push(e.y*16384)}function UO(r){var t=r.stack,e=r.fv;exports.DEBUG&&console.log(r.step,"GFV[]"),t.push(e.x*16384),t.push(e.y*16384)}function VO(r){r.fv=r.pv,exports.DEBUG&&console.log(r.step,"SFVTPV[]")}function zO(r){var t=r.stack,e=t.pop(),n=t.pop(),o=t.pop(),i=t.pop(),a=t.pop(),s=r.z0,l=r.z1,u=s[e],c=s[n],p=l[o],f=l[i],d=r.z2[a];exports.DEBUG&&console.log("ISECT[], ",e,n,o,i,a);var h=u.x,m=u.y,g=c.x,v=c.y,x=p.x,S=p.y,w=f.x,b=f.y,_=(h-g)*(S-b)-(m-v)*(x-w),T=h*v-m*g,y=x*b-S*w;d.x=(T*(x-w)-y*(h-g))/_,d.y=(T*(S-b)-y*(m-v))/_}function jO(r){r.rp0=r.stack.pop(),exports.DEBUG&&console.log(r.step,"SRP0[]",r.rp0)}function HO(r){r.rp1=r.stack.pop(),exports.DEBUG&&console.log(r.step,"SRP1[]",r.rp1)}function WO(r){r.rp2=r.stack.pop(),exports.DEBUG&&console.log(r.step,"SRP2[]",r.rp2)}function qO(r){var t=r.stack.pop();switch(exports.DEBUG&&console.log(r.step,"SZP0[]",t),r.zp0=t,t){case 0:r.tZone||ql(r),r.z0=r.tZone;break;case 1:r.z0=r.gZone;break;default:throw new Error("Invalid zone pointer")}}function XO(r){var t=r.stack.pop();switch(exports.DEBUG&&console.log(r.step,"SZP1[]",t),r.zp1=t,t){case 0:r.tZone||ql(r),r.z1=r.tZone;break;case 1:r.z1=r.gZone;break;default:throw new Error("Invalid zone pointer")}}function YO(r){var t=r.stack.pop();switch(exports.DEBUG&&console.log(r.step,"SZP2[]",t),r.zp2=t,t){case 0:r.tZone||ql(r),r.z2=r.tZone;break;case 1:r.z2=r.gZone;break;default:throw new Error("Invalid zone pointer")}}function $O(r){var t=r.stack.pop();switch(exports.DEBUG&&console.log(r.step,"SZPS[]",t),r.zp0=r.zp1=r.zp2=t,t){case 0:r.tZone||ql(r),r.z0=r.z1=r.z2=r.tZone;break;case 1:r.z0=r.z1=r.z2=r.gZone;break;default:throw new Error("Invalid zone pointer")}}function KO(r){r.loop=r.stack.pop(),exports.DEBUG&&console.log(r.step,"SLOOP[]",r.loop)}function ZO(r){exports.DEBUG&&console.log(r.step,"RTG[]"),r.round=p0}function QO(r){exports.DEBUG&&console.log(r.step,"RTHG[]"),r.round=EO}function JO(r){var t=r.stack.pop();exports.DEBUG&&console.log(r.step,"SMD[]",t),r.minDis=t/64}function eI(r){exports.DEBUG&&console.log(r.step,"ELSE[]"),d0(r,!1)}function tI(r){var t=r.stack.pop();exports.DEBUG&&console.log(r.step,"JMPR[]",t),r.ip+=t-1}function rI(r){var t=r.stack.pop();exports.DEBUG&&console.log(r.step,"SCVTCI[]",t),r.cvCutIn=t/64}function nI(r){var t=r.stack;exports.DEBUG&&console.log(r.step,"DUP[]"),t.push(t[t.length-1])}function Zu(r){exports.DEBUG&&console.log(r.step,"POP[]"),r.stack.pop()}function oI(r){exports.DEBUG&&console.log(r.step,"CLEAR[]"),r.stack.length=0}function iI(r){var t=r.stack,e=t.pop(),n=t.pop();exports.DEBUG&&console.log(r.step,"SWAP[]"),t.push(e),t.push(n)}function aI(r){var t=r.stack;exports.DEBUG&&console.log(r.step,"DEPTH[]"),t.push(t.length)}function sI(r){var t=r.stack,e=t.pop(),n=t.pop();exports.DEBUG&&console.log(r.step,"LOOPCALL[]",e,n);var o=r.ip,i=r.prog;r.prog=r.funcs[e];for(var a=0;a<n;a++)so(r),exports.DEBUG&&console.log(++r.step,a+1<n?"next loopcall":"done loopcall",a);r.ip=o,r.prog=i}function lI(r){var t=r.stack.pop();exports.DEBUG&&console.log(r.step,"CALL[]",t);var e=r.ip,n=r.prog;r.prog=r.funcs[t],so(r),r.ip=e,r.prog=n,exports.DEBUG&&console.log(++r.step,"returning from",t)}function cI(r){var t=r.stack,e=t.pop();exports.DEBUG&&console.log(r.step,"CINDEX[]",e),t.push(t[t.length-e])}function uI(r){var t=r.stack,e=t.pop();exports.DEBUG&&console.log(r.step,"MINDEX[]",e),t.push(t.splice(t.length-e,1)[0])}function pI(r){if(r.env!=="fpgm")throw new Error("FDEF not allowed here");var t=r.stack,e=r.prog,n=r.ip,o=t.pop(),i=n;for(exports.DEBUG&&console.log(r.step,"FDEF[]",o);e[++n]!==45;);r.ip=n,r.funcs[o]=e.slice(i+1,n)}function uy(r,t){var e=t.stack.pop(),n=t.z0[e],o=t.fv,i=t.pv;exports.DEBUG&&console.log(t.step,"MDAP["+r+"]",e);var a=i.distance(n,Ba);r&&(a=t.round(a)),o.setRelative(n,Ba,a,i),o.touch(n),t.rp0=t.rp1=e}function py(r,t){var e=t.z2,n=e.length-2,o,i,a;exports.DEBUG&&console.log(t.step,"IUP["+r.axis+"]");for(var s=0;s<n;s++)o=e[s],!r.touched(o)&&(i=o.prevTouched(r),i!==o&&(a=o.nextTouched(r),i===a&&r.setRelative(o,o,r.distance(i,i,!1,!0),r,!0),r.interpolate(o,i,a,r)))}function fy(r,t){for(var e=t.stack,n=r?t.rp1:t.rp2,o=(r?t.z0:t.z1)[n],i=t.fv,a=t.pv,s=t.loop,l=t.z2;s--;){var u=e.pop(),c=l[u],p=a.distance(o,o,!1,!0);i.setRelative(c,c,p,a),i.touch(c),exports.DEBUG&&console.log(t.step,(t.loop>1?"loop "+(t.loop-s)+": ":"")+"SHP["+(r?"rp1":"rp2")+"]",u)}t.loop=1}function dy(r,t){var e=t.stack,n=r?t.rp1:t.rp2,o=(r?t.z0:t.z1)[n],i=t.fv,a=t.pv,s=e.pop(),l=t.z2[t.contours[s]],u=l;exports.DEBUG&&console.log(t.step,"SHC["+r+"]",s);var c=a.distance(o,o,!1,!0);do u!==o&&i.setRelative(u,u,c,a),u=u.nextPointOnContour;while(u!==l)}function hy(r,t){var e=t.stack,n=r?t.rp1:t.rp2,o=(r?t.z0:t.z1)[n],i=t.fv,a=t.pv,s=e.pop();exports.DEBUG&&console.log(t.step,"SHZ["+r+"]",s);var l;switch(s){case 0:l=t.tZone;break;case 1:l=t.gZone;break;default:throw new Error("Invalid zone")}for(var u,c=a.distance(o,o,!1,!0),p=l.length-2,f=0;f<p;f++)u=l[f],i.setRelative(u,u,c,a)}function fI(r){for(var t=r.stack,e=r.loop,n=r.fv,o=t.pop()/64,i=r.z2;e--;){var a=t.pop(),s=i[a];exports.DEBUG&&console.log(r.step,(r.loop>1?"loop "+(r.loop-e)+": ":"")+"SHPIX[]",a,o),n.setRelative(s,s,o),n.touch(s)}r.loop=1}function dI(r){for(var t=r.stack,e=r.rp1,n=r.rp2,o=r.loop,i=r.z0[e],a=r.z1[n],s=r.fv,l=r.dpv,u=r.z2;o--;){var c=t.pop(),p=u[c];exports.DEBUG&&console.log(r.step,(r.loop>1?"loop "+(r.loop-o)+": ":"")+"IP[]",c,e,"<->",n),s.interpolate(p,i,a,l),s.touch(p)}r.loop=1}function my(r,t){var e=t.stack,n=e.pop()/64,o=e.pop(),i=t.z1[o],a=t.z0[t.rp0],s=t.fv,l=t.pv;s.setRelative(i,a,n,l),s.touch(i),exports.DEBUG&&console.log(t.step,"MSIRP["+r+"]",n,o),t.rp1=t.rp0,t.rp2=o,r&&(t.rp0=o)}function hI(r){for(var t=r.stack,e=r.rp0,n=r.z0[e],o=r.loop,i=r.fv,a=r.pv,s=r.z1;o--;){var l=t.pop(),u=s[l];exports.DEBUG&&console.log(r.step,(r.loop>1?"loop "+(r.loop-o)+": ":"")+"ALIGNRP[]",l),i.setRelative(u,n,0,a),i.touch(u)}r.loop=1}function mI(r){exports.DEBUG&&console.log(r.step,"RTDG[]"),r.round=MO}function gy(r,t){var e=t.stack,n=e.pop(),o=e.pop(),i=t.z0[o],a=t.fv,s=t.pv,l=t.cvt[n];exports.DEBUG&&console.log(t.step,"MIAP["+r+"]",n,"(",l,")",o);var u=s.distance(i,Ba);r&&(Math.abs(u-l)<t.cvCutIn&&(u=l),u=t.round(u)),a.setRelative(i,Ba,u,s),t.zp0===0&&(i.xo=i.x,i.yo=i.y),a.touch(i),t.rp0=t.rp1=o}function gI(r){var t=r.prog,e=r.ip,n=r.stack,o=t[++e];exports.DEBUG&&console.log(r.step,"NPUSHB[]",o);for(var i=0;i<o;i++)n.push(t[++e]);r.ip=e}function yI(r){var t=r.ip,e=r.prog,n=r.stack,o=e[++t];exports.DEBUG&&console.log(r.step,"NPUSHW[]",o);for(var i=0;i<o;i++){var a=e[++t]<<8|e[++t];a&32768&&(a=-((a^65535)+1)),n.push(a)}r.ip=t}function vI(r){var t=r.stack,e=r.store;e||(e=r.store=[]);var n=t.pop(),o=t.pop();exports.DEBUG&&console.log(r.step,"WS",n,o),e[o]=n}function xI(r){var t=r.stack,e=r.store,n=t.pop();exports.DEBUG&&console.log(r.step,"RS",n);var o=e&&e[n]||0;t.push(o)}function bI(r){var t=r.stack,e=t.pop(),n=t.pop();exports.DEBUG&&console.log(r.step,"WCVTP",e,n),r.cvt[n]=e/64}function SI(r){var t=r.stack,e=t.pop();exports.DEBUG&&console.log(r.step,"RCVT",e),t.push(r.cvt[e]*64)}function yy(r,t){var e=t.stack,n=e.pop(),o=t.z2[n];exports.DEBUG&&console.log(t.step,"GC["+r+"]",n),e.push(t.dpv.distance(o,Ba,r,!1)*64)}function vy(r,t){var e=t.stack,n=e.pop(),o=e.pop(),i=t.z1[n],a=t.z0[o],s=t.dpv.distance(a,i,r,r);exports.DEBUG&&console.log(t.step,"MD["+r+"]",n,o,"->",s),t.stack.push(Math.round(s*64))}function wI(r){exports.DEBUG&&console.log(r.step,"MPPEM[]"),r.stack.push(r.ppem)}function TI(r){exports.DEBUG&&console.log(r.step,"FLIPON[]"),r.autoFlip=!0}function CI(r){var t=r.stack,e=t.pop(),n=t.pop();exports.DEBUG&&console.log(r.step,"LT[]",e,n),t.push(n<e?1:0)}function AI(r){var t=r.stack,e=t.pop(),n=t.pop();exports.DEBUG&&console.log(r.step,"LTEQ[]",e,n),t.push(n<=e?1:0)}function _I(r){var t=r.stack,e=t.pop(),n=t.pop();exports.DEBUG&&console.log(r.step,"GT[]",e,n),t.push(n>e?1:0)}function OI(r){var t=r.stack,e=t.pop(),n=t.pop();exports.DEBUG&&console.log(r.step,"GTEQ[]",e,n),t.push(n>=e?1:0)}function II(r){var t=r.stack,e=t.pop(),n=t.pop();exports.DEBUG&&console.log(r.step,"EQ[]",e,n),t.push(e===n?1:0)}function LI(r){var t=r.stack,e=t.pop(),n=t.pop();exports.DEBUG&&console.log(r.step,"NEQ[]",e,n),t.push(e!==n?1:0)}function NI(r){var t=r.stack,e=t.pop();exports.DEBUG&&console.log(r.step,"ODD[]",e),t.push(Math.trunc(e)%2?1:0)}function PI(r){var t=r.stack,e=t.pop();exports.DEBUG&&console.log(r.step,"EVEN[]",e),t.push(Math.trunc(e)%2?0:1)}function MI(r){var t=r.stack.pop();exports.DEBUG&&console.log(r.step,"IF[]",t),t||(d0(r,!0),exports.DEBUG&&console.log(r.step,"EIF[]"))}function EI(r){exports.DEBUG&&console.log(r.step,"EIF[]")}function DI(r){var t=r.stack,e=t.pop(),n=t.pop();exports.DEBUG&&console.log(r.step,"AND[]",e,n),t.push(e&&n?1:0)}function BI(r){var t=r.stack,e=t.pop(),n=t.pop();exports.DEBUG&&console.log(r.step,"OR[]",e,n),t.push(e||n?1:0)}function FI(r){var t=r.stack,e=t.pop();exports.DEBUG&&console.log(r.step,"NOT[]",e),t.push(e?0:1)}function Qu(r,t){var e=t.stack,n=e.pop(),o=t.fv,i=t.pv,a=t.ppem,s=t.deltaBase+(r-1)*16,l=t.deltaShift,u=t.z0;exports.DEBUG&&console.log(t.step,"DELTAP["+r+"]",n,e);for(var c=0;c<n;c++){var p=e.pop(),f=e.pop(),d=s+((f&240)>>4);if(d===a){var h=(f&15)-8;h>=0&&h++,exports.DEBUG&&console.log(t.step,"DELTAPFIX",p,"by",h*l);var m=u[p];o.setRelative(m,m,h*l,i)}}}function RI(r){var t=r.stack,e=t.pop();exports.DEBUG&&console.log(r.step,"SDB[]",e),r.deltaBase=e}function kI(r){var t=r.stack,e=t.pop();exports.DEBUG&&console.log(r.step,"SDS[]",e),r.deltaShift=Math.pow(.5,e)}function GI(r){var t=r.stack,e=t.pop(),n=t.pop();exports.DEBUG&&console.log(r.step,"ADD[]",e,n),t.push(n+e)}function UI(r){var t=r.stack,e=t.pop(),n=t.pop();exports.DEBUG&&console.log(r.step,"SUB[]",e,n),t.push(n-e)}function VI(r){var t=r.stack,e=t.pop(),n=t.pop();exports.DEBUG&&console.log(r.step,"DIV[]",e,n),t.push(n*64/e)}function zI(r){var t=r.stack,e=t.pop(),n=t.pop();exports.DEBUG&&console.log(r.step,"MUL[]",e,n),t.push(n*e/64)}function jI(r){var t=r.stack,e=t.pop();exports.DEBUG&&console.log(r.step,"ABS[]",e),t.push(Math.abs(e))}function HI(r){var t=r.stack,e=t.pop();exports.DEBUG&&console.log(r.step,"NEG[]",e),t.push(-e)}function WI(r){var t=r.stack,e=t.pop();exports.DEBUG&&console.log(r.step,"FLOOR[]",e),t.push(Math.floor(e/64)*64)}function qI(r){var t=r.stack,e=t.pop();exports.DEBUG&&console.log(r.step,"CEILING[]",e),t.push(Math.ceil(e/64)*64)}function Rl(r,t){var e=t.stack,n=e.pop();exports.DEBUG&&console.log(t.step,"ROUND[]"),e.push(t.round(n/64)*64)}function XI(r){var t=r.stack,e=t.pop(),n=t.pop();exports.DEBUG&&console.log(r.step,"WCVTF[]",e,n),r.cvt[n]=e*r.ppem/r.font.unitsPerEm}function Ju(r,t){var e=t.stack,n=e.pop(),o=t.ppem,i=t.deltaBase+(r-1)*16,a=t.deltaShift;exports.DEBUG&&console.log(t.step,"DELTAC["+r+"]",n,e);for(var s=0;s<n;s++){var l=e.pop(),u=e.pop(),c=i+((u&240)>>4);if(c===o){var p=(u&15)-8;p>=0&&p++;var f=p*a;exports.DEBUG&&console.log(t.step,"DELTACFIX",l,"by",f),t.cvt[l]+=f}}}function YI(r){var t=r.stack.pop();exports.DEBUG&&console.log(r.step,"SROUND[]",t),r.round=f0;var e;switch(t&192){case 0:e=.5;break;case 64:e=1;break;case 128:e=2;break;default:throw new Error("invalid SROUND value")}switch(r.srPeriod=e,t&48){case 0:r.srPhase=0;break;case 16:r.srPhase=.25*e;break;case 32:r.srPhase=.5*e;break;case 48:r.srPhase=.75*e;break;default:throw new Error("invalid SROUND value")}t&=15,t===0?r.srThreshold=0:r.srThreshold=(t/8-.5)*e}function $I(r){var t=r.stack.pop();exports.DEBUG&&console.log(r.step,"S45ROUND[]",t),r.round=f0;var e;switch(t&192){case 0:e=Math.sqrt(2)/2;break;case 64:e=Math.sqrt(2);break;case 128:e=2*Math.sqrt(2);break;default:throw new Error("invalid S45ROUND value")}switch(r.srPeriod=e,t&48){case 0:r.srPhase=0;break;case 16:r.srPhase=.25*e;break;case 32:r.srPhase=.5*e;break;case 48:r.srPhase=.75*e;break;default:throw new Error("invalid S45ROUND value")}t&=15,t===0?r.srThreshold=0:r.srThreshold=(t/8-.5)*e}function KI(r){exports.DEBUG&&console.log(r.step,"ROFF[]"),r.round=PO}function ZI(r){exports.DEBUG&&console.log(r.step,"RUTG[]"),r.round=DO}function QI(r){exports.DEBUG&&console.log(r.step,"RDTG[]"),r.round=BO}function JI(r){var t=r.stack.pop();exports.DEBUG&&console.log(r.step,"SCANCTRL[]",t)}function xy(r,t){var e=t.stack,n=e.pop(),o=e.pop(),i=t.z2[n],a=t.z1[o];exports.DEBUG&&console.log(t.step,"SDPVTL["+r+"]",n,o);var s,l;r?(s=i.y-a.y,l=a.x-i.x):(s=a.x-i.x,l=a.y-i.y),t.dpv=Ga(s,l)}function eL(r){var t=r.stack,e=t.pop(),n=0;exports.DEBUG&&console.log(r.step,"GETINFO[]",e),e&1&&(n=35),e&32&&(n|=4096),t.push(n)}function tL(r){var t=r.stack,e=t.pop(),n=t.pop(),o=t.pop();exports.DEBUG&&console.log(r.step,"ROLL[]"),t.push(n),t.push(e),t.push(o)}function rL(r){var t=r.stack,e=t.pop(),n=t.pop();exports.DEBUG&&console.log(r.step,"MAX[]",e,n),t.push(Math.max(n,e))}function nL(r){var t=r.stack,e=t.pop(),n=t.pop();exports.DEBUG&&console.log(r.step,"MIN[]",e,n),t.push(Math.min(n,e))}function oL(r){var t=r.stack.pop();exports.DEBUG&&console.log(r.step,"SCANTYPE[]",t)}function iL(r){var t=r.stack.pop(),e=r.stack.pop();switch(exports.DEBUG&&console.log(r.step,"INSTCTRL[]",t,e),t){case 1:r.inhibitGridFit=!!e;return;case 2:r.ignoreCvt=!!e;return;default:throw new Error("invalid INSTCTRL[] selector")}}function Pn(r,t){var e=t.stack,n=t.prog,o=t.ip;exports.DEBUG&&console.log(t.step,"PUSHB["+r+"]");for(var i=0;i<r;i++)e.push(n[++o]);t.ip=o}function Mn(r,t){var e=t.ip,n=t.prog,o=t.stack;exports.DEBUG&&console.log(t.ip,"PUSHW["+r+"]");for(var i=0;i<r;i++){var a=n[++e]<<8|n[++e];a&32768&&(a=-((a^65535)+1)),o.push(a)}t.ip=e}function ce(r,t,e,n,o,i){var a=i.stack,s=r&&a.pop(),l=a.pop(),u=i.rp0,c=i.z0[u],p=i.z1[l],f=i.minDis,d=i.fv,h=i.dpv,m,g,v,x;g=m=h.distance(p,c,!0,!0),v=g>=0?1:-1,g=Math.abs(g),r&&(x=i.cvt[s],n&&Math.abs(g-x)<i.cvCutIn&&(g=x)),e&&g<f&&(g=f),n&&(g=i.round(g)),d.setRelative(p,c,v*g,h),d.touch(p),exports.DEBUG&&console.log(i.step,(r?"MIRP[":"MDRP[")+(t?"M":"m")+(e?">":"_")+(n?"R":"_")+(o===0?"Gr":o===1?"Bl":o===2?"Wh":"")+"]",r?s+"("+i.cvt[s]+","+x+")":"",l,"(d =",m,"->",v*g,")"),i.rp1=i.rp0,i.rp2=l,t&&(i.rp0=l)}l0=[iy.bind(void 0,on),iy.bind(void 0,jr),ay.bind(void 0,on),ay.bind(void 0,jr),sy.bind(void 0,on),sy.bind(void 0,jr),ly.bind(void 0,0),ly.bind(void 0,1),cy.bind(void 0,0),cy.bind(void 0,1),RO,kO,GO,UO,VO,zO,jO,HO,WO,qO,XO,YO,$O,KO,ZO,QO,JO,eI,tI,rI,void 0,void 0,nI,Zu,oI,iI,aI,cI,uI,void 0,void 0,void 0,sI,lI,pI,void 0,uy.bind(void 0,0),uy.bind(void 0,1),py.bind(void 0,on),py.bind(void 0,jr),fy.bind(void 0,0),fy.bind(void 0,1),dy.bind(void 0,0),dy.bind(void 0,1),hy.bind(void 0,0),hy.bind(void 0,1),fI,dI,my.bind(void 0,0),my.bind(void 0,1),hI,mI,gy.bind(void 0,0),gy.bind(void 0,1),gI,yI,vI,xI,bI,SI,yy.bind(void 0,0),yy.bind(void 0,1),void 0,vy.bind(void 0,0),vy.bind(void 0,1),wI,void 0,TI,void 0,void 0,CI,AI,_I,OI,II,LI,NI,PI,MI,EI,DI,BI,FI,Qu.bind(void 0,1),RI,kI,GI,UI,VI,zI,jI,HI,WI,qI,Rl.bind(void 0,0),Rl.bind(void 0,1),Rl.bind(void 0,2),Rl.bind(void 0,3),void 0,void 0,void 0,void 0,XI,Qu.bind(void 0,2),Qu.bind(void 0,3),Ju.bind(void 0,1),Ju.bind(void 0,2),Ju.bind(void 0,3),YI,$I,void 0,void 0,KI,void 0,ZI,QI,Zu,Zu,void 0,void 0,void 0,void 0,void 0,JI,xy.bind(void 0,0),xy.bind(void 0,1),eL,void 0,tL,rL,nL,oL,iL,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,Pn.bind(void 0,1),Pn.bind(void 0,2),Pn.bind(void 0,3),Pn.bind(void 0,4),Pn.bind(void 0,5),Pn.bind(void 0,6),Pn.bind(void 0,7),Pn.bind(void 0,8),Mn.bind(void 0,1),Mn.bind(void 0,2),Mn.bind(void 0,3),Mn.bind(void 0,4),Mn.bind(void 0,5),Mn.bind(void 0,6),Mn.bind(void 0,7),Mn.bind(void 0,8),ce.bind(void 0,0,0,0,0,0),ce.bind(void 0,0,0,0,0,1),ce.bind(void 0,0,0,0,0,2),ce.bind(void 0,0,0,0,0,3),ce.bind(void 0,0,0,0,1,0),ce.bind(void 0,0,0,0,1,1),ce.bind(void 0,0,0,0,1,2),ce.bind(void 0,0,0,0,1,3),ce.bind(void 0,0,0,1,0,0),ce.bind(void 0,0,0,1,0,1),ce.bind(void 0,0,0,1,0,2),ce.bind(void 0,0,0,1,0,3),ce.bind(void 0,0,0,1,1,0),ce.bind(void 0,0,0,1,1,1),ce.bind(void 0,0,0,1,1,2),ce.bind(void 0,0,0,1,1,3),ce.bind(void 0,0,1,0,0,0),ce.bind(void 0,0,1,0,0,1),ce.bind(void 0,0,1,0,0,2),ce.bind(void 0,0,1,0,0,3),ce.bind(void 0,0,1,0,1,0),ce.bind(void 0,0,1,0,1,1),ce.bind(void 0,0,1,0,1,2),ce.bind(void 0,0,1,0,1,3),ce.bind(void 0,0,1,1,0,0),ce.bind(void 0,0,1,1,0,1),ce.bind(void 0,0,1,1,0,2),ce.bind(void 0,0,1,1,0,3),ce.bind(void 0,0,1,1,1,0),ce.bind(void 0,0,1,1,1,1),ce.bind(void 0,0,1,1,1,2),ce.bind(void 0,0,1,1,1,3),ce.bind(void 0,1,0,0,0,0),ce.bind(void 0,1,0,0,0,1),ce.bind(void 0,1,0,0,0,2),ce.bind(void 0,1,0,0,0,3),ce.bind(void 0,1,0,0,1,0),ce.bind(void 0,1,0,0,1,1),ce.bind(void 0,1,0,0,1,2),ce.bind(void 0,1,0,0,1,3),ce.bind(void 0,1,0,1,0,0),ce.bind(void 0,1,0,1,0,1),ce.bind(void 0,1,0,1,0,2),ce.bind(void 0,1,0,1,0,3),ce.bind(void 0,1,0,1,1,0),ce.bind(void 0,1,0,1,1,1),ce.bind(void 0,1,0,1,1,2),ce.bind(void 0,1,0,1,1,3),ce.bind(void 0,1,1,0,0,0),ce.bind(void 0,1,1,0,0,1),ce.bind(void 0,1,1,0,0,2),ce.bind(void 0,1,1,0,0,3),ce.bind(void 0,1,1,0,1,0),ce.bind(void 0,1,1,0,1,1),ce.bind(void 0,1,1,0,1,2),ce.bind(void 0,1,1,0,1,3),ce.bind(void 0,1,1,1,0,0),ce.bind(void 0,1,1,1,0,1),ce.bind(void 0,1,1,1,0,2),ce.bind(void 0,1,1,1,0,3),ce.bind(void 0,1,1,1,1,0),ce.bind(void 0,1,1,1,1,1),ce.bind(void 0,1,1,1,1,2),ce.bind(void 0,1,1,1,1,3)];function Ci(r){this.char=r,this.state={},this.activeState=null}function xp(r,t,e){this.contextName=e,this.startIndex=r,this.endOffset=t}function aL(r,t,e){this.contextName=r,this.openRange=null,this.ranges=[],this.checkStart=t,this.checkEnd=e}function cr(r,t){this.context=r,this.index=t,this.length=r.length,this.current=r[t],this.backtrack=r.slice(0,t),this.lookahead=r.slice(t+1)}function Xl(r){this.eventId=r,this.subscribers=[]}function sL(r){var t=this,e=["start","end","next","newToken","contextStart","contextEnd","insertToken","removeToken","removeRange","replaceToken","replaceRange","composeRUD","updateContextsRanges"];e.forEach(function(o){Object.defineProperty(t.events,o,{value:new Xl(o)})}),r&&e.forEach(function(o){var i=r[o];typeof i=="function"&&t.events[o].subscribe(i)});var n=["insertToken","removeToken","removeRange","replaceToken","replaceRange","composeRUD"];n.forEach(function(o){t.events[o].subscribe(t.updateContextsRanges)})}function je(r){this.tokens=[],this.registeredContexts={},this.contextCheckers=[],this.events={},this.registeredModifiers=[],sL.call(this,r)}Ci.prototype.setState=function(r,t){return this.state[r]=t,this.activeState={key:r,value:this.state[r]},this.activeState};Ci.prototype.getState=function(r){return this.state[r]||null};je.prototype.inboundIndex=function(r){return r>=0&&r<this.tokens.length};je.prototype.composeRUD=function(r){var t=this,e=!0,n=r.map(function(i){return t[i[0]].apply(t,i.slice(1).concat(e))}),o=function(i){return typeof i=="object"&&i.hasOwnProperty("FAIL")};if(n.every(o))return{FAIL:"composeRUD: one or more operations hasn't completed successfully",report:n.filter(o)};this.dispatch("composeRUD",[n.filter(function(i){return!o(i)})])};je.prototype.replaceRange=function(r,t,e,n){t=t!==null?t:this.tokens.length;var o=e.every(function(a){return a instanceof Ci});if(!isNaN(r)&&this.inboundIndex(r)&&o){var i=this.tokens.splice.apply(this.tokens,[r,t].concat(e));return n||this.dispatch("replaceToken",[r,t,e]),[i,e]}else return{FAIL:"replaceRange: invalid tokens or startIndex."}};je.prototype.replaceToken=function(r,t,e){if(!isNaN(r)&&this.inboundIndex(r)&&t instanceof Ci){var n=this.tokens.splice(r,1,t);return e||this.dispatch("replaceToken",[r,t]),[n[0],t]}else return{FAIL:"replaceToken: invalid token or index."}};je.prototype.removeRange=function(r,t,e){t=isNaN(t)?this.tokens.length:t;var n=this.tokens.splice(r,t);return e||this.dispatch("removeRange",[n,r,t]),n};je.prototype.removeToken=function(r,t){if(!isNaN(r)&&this.inboundIndex(r)){var e=this.tokens.splice(r,1);return t||this.dispatch("removeToken",[e,r]),e}else return{FAIL:"removeToken: invalid token index."}};je.prototype.insertToken=function(r,t,e){var n=r.every(function(o){return o instanceof Ci});return n?(this.tokens.splice.apply(this.tokens,[t,0].concat(r)),e||this.dispatch("insertToken",[r,t]),r):{FAIL:"insertToken: invalid token(s)."}};je.prototype.registerModifier=function(r,t,e){this.events.newToken.subscribe(function(n,o){var i=[n,o],a=t===null||t.apply(this,i)===!0,s=[n,o];if(a){var l=e.apply(this,s);n.setState(r,l)}}),this.registeredModifiers.push(r)};Xl.prototype.subscribe=function(r){return typeof r=="function"?this.subscribers.push(r)-1:{FAIL:"invalid '"+this.eventId+"' event handler"}};Xl.prototype.unsubscribe=function(r){this.subscribers.splice(r,1)};cr.prototype.setCurrentIndex=function(r){this.index=r,this.current=this.context[r],this.backtrack=this.context.slice(0,r),this.lookahead=this.context.slice(r+1)};cr.prototype.get=function(r){switch(!0){case r===0:return this.current;case(r<0&&Math.abs(r)<=this.backtrack.length):return this.backtrack.slice(r)[0];case(r>0&&r<=this.lookahead.length):return this.lookahead[r-1];default:return null}};je.prototype.rangeToText=function(r){if(r instanceof xp)return this.getRangeTokens(r).map(function(t){return t.char}).join("")};je.prototype.getText=function(){return this.tokens.map(function(r){return r.char}).join("")};je.prototype.getContext=function(r){var t=this.registeredContexts[r];return t||null};je.prototype.on=function(r,t){var e=this.events[r];return e?e.subscribe(t):null};je.prototype.dispatch=function(r,t){var e=this,n=this.events[r];n instanceof Xl&&n.subscribers.forEach(function(o){o.apply(e,t||[])})};je.prototype.registerContextChecker=function(r,t,e){if(this.getContext(r))return{FAIL:"context name '"+r+"' is already registered."};if(typeof t!="function")return{FAIL:"missing context start check."};if(typeof e!="function")return{FAIL:"missing context end check."};var n=new aL(r,t,e);return this.registeredContexts[r]=n,this.contextCheckers.push(n),n};je.prototype.getRangeTokens=function(r){var t=r.startIndex+r.endOffset;return[].concat(this.tokens.slice(r.startIndex,t))};je.prototype.getContextRanges=function(r){var t=this.getContext(r);return t?t.ranges:{FAIL:"context checker '"+r+"' is not registered."}};je.prototype.resetContextsRanges=function(){var r=this.registeredContexts;for(var t in r)if(r.hasOwnProperty(t)){var e=r[t];e.ranges=[]}};je.prototype.updateContextsRanges=function(){this.resetContextsRanges();for(var r=this.tokens.map(function(n){return n.char}),t=0;t<r.length;t++){var e=new cr(r,t);this.runContextCheck(e)}this.dispatch("updateContextsRanges",[this.registeredContexts])};je.prototype.setEndOffset=function(r,t){var e=this.getContext(t).openRange.startIndex,n=new xp(e,r,t),o=this.getContext(t).ranges;return n.rangeId=t+"."+o.length,o.push(n),this.getContext(t).openRange=null,n};je.prototype.runContextCheck=function(r){var t=this,e=r.index;this.contextCheckers.forEach(function(n){var o=n.contextName,i=t.getContext(o).openRange;if(!i&&n.checkStart(r)&&(i=new xp(e,null,o),t.getContext(o).openRange=i,t.dispatch("contextStart",[o,e])),!!i&&n.checkEnd(r)){var a=e-i.startIndex+1,s=t.setEndOffset(a,o);t.dispatch("contextEnd",[o,s])}})};je.prototype.tokenize=function(r){this.tokens=[],this.resetContextsRanges();var t=Array.from(r);this.dispatch("start");for(var e=0;e<t.length;e++){var n=t[e],o=new cr(t,e);this.dispatch("next",[o]),this.runContextCheck(o);var i=new Ci(n);this.tokens.push(i),this.dispatch("newToken",[i,o])}return this.dispatch("end",[this.tokens]),this.tokens};function Bn(r){return/[\u0600-\u065F\u066A-\u06D2\u06FA-\u06FF]/.test(r)}function h0(r){return/[\u0630\u0690\u0621\u0631\u0661\u0671\u0622\u0632\u0672\u0692\u06C2\u0623\u0673\u0693\u06C3\u0624\u0694\u06C4\u0625\u0675\u0695\u06C5\u06E5\u0676\u0696\u06C6\u0627\u0677\u0697\u06C7\u0648\u0688\u0698\u06C8\u0689\u0699\u06C9\u068A\u06CA\u066B\u068B\u06CB\u068C\u068D\u06CD\u06FD\u068E\u06EE\u06FE\u062F\u068F\u06CF\u06EF]/.test(r)}function Fn(r){return/[\u0600-\u0605\u060C-\u060E\u0610-\u061B\u061E\u064B-\u065F\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED]/.test(r)}function Gl(r){return/[A-z]/.test(r)}function lL(r){return/\s/.test(r)}function kt(r){this.font=r,this.features={}}function ao(r){this.id=r.id,this.tag=r.tag,this.substitution=r.substitution}function Ua(r,t){if(!r)return-1;switch(t.format){case 1:return t.glyphs.indexOf(r);case 2:for(var e=t.ranges,n=0;n<e.length;n++){var o=e[n];if(r>=o.start&&r<=o.end){var i=r-o.start;return o.index+i}}break;default:return-1}return-1}function cL(r,t){var e=Ua(r,t.coverage);return e===-1?null:r+t.deltaGlyphId}function uL(r,t){var e=Ua(r,t.coverage);return e===-1?null:t.substitute[e]}function ep(r,t){for(var e=[],n=0;n<r.length;n++){var o=r[n],i=t.current;i=Array.isArray(i)?i[0]:i;var a=Ua(i,o);a!==-1&&e.push(a)}return e.length!==r.length?-1:e}function pL(r,t){var e=t.inputCoverage.length+t.lookaheadCoverage.length+t.backtrackCoverage.length;if(r.context.length<e)return[];var n=ep(t.inputCoverage,r);if(n===-1)return[];var o=t.inputCoverage.length-1;if(r.lookahead.length<t.lookaheadCoverage.length)return[];for(var i=r.lookahead.slice(o);i.length&&Fn(i[0].char);)i.shift();var a=new cr(i,0),s=ep(t.lookaheadCoverage,a),l=[].concat(r.backtrack);for(l.reverse();l.length&&Fn(l[0].char);)l.shift();if(l.length<t.backtrackCoverage.length)return[];var u=new cr(l,0),c=ep(t.backtrackCoverage,u),p=n.length===t.inputCoverage.length&&s.length===t.lookaheadCoverage.length&&c.length===t.backtrackCoverage.length,f=[];if(p)for(var d=0;d<t.lookupRecords.length;d++)for(var h=t.lookupRecords[d],m=h.lookupListIndex,g=this.getLookupByIndex(m),v=0;v<g.subtables.length;v++){var x=g.subtables[v],S=this.getLookupMethod(g,x),w=this.getSubstitutionType(g,x);if(w==="12")for(var b=0;b<n.length;b++){var _=r.get(b),T=S(_);T&&f.push(T)}}return f}function fL(r,t){var e=r.current,n=Ua(e,t.coverage);if(n===-1)return null;for(var o,i=t.ligatureSets[n],a=0;a<i.length;a++){o=i[a];for(var s=0;s<o.components.length;s++){var l=r.lookahead[s],u=o.components[s];if(l!==u)break;if(s===o.components.length-1)return o}}return null}function dL(r,t){var e=Ua(r,t.coverage);return e===-1?null:t.sequences[e]}kt.prototype.getDefaultScriptFeaturesIndexes=function(){for(var r=this.font.tables.gsub.scripts,t=0;t<r.length;t++){var e=r[t];if(e.tag==="DFLT")return e.script.defaultLangSys.featureIndexes}return[]};kt.prototype.getScriptFeaturesIndexes=function(r){var t=this.font.tables;if(!t.gsub)return[];if(!r)return this.getDefaultScriptFeaturesIndexes();for(var e=this.font.tables.gsub.scripts,n=0;n<e.length;n++){var o=e[n];if(o.tag===r&&o.script.defaultLangSys)return o.script.defaultLangSys.featureIndexes;var i=o.langSysRecords;if(i)for(var a=0;a<i.length;a++){var s=i[a];if(s.tag===r){var l=s.langSys;return l.featureIndexes}}}return this.getDefaultScriptFeaturesIndexes()};kt.prototype.mapTagsToFeatures=function(r,t){for(var e={},n=0;n<r.length;n++){var o=r[n].tag,i=r[n].feature;e[o]=i}this.features[t].tags=e};kt.prototype.getScriptFeatures=function(r){var t=this.features[r];if(this.features.hasOwnProperty(r))return t;var e=this.getScriptFeaturesIndexes(r);if(!e)return null;var n=this.font.tables.gsub;return t=e.map(function(o){return n.features[o]}),this.features[r]=t,this.mapTagsToFeatures(t,r),t};kt.prototype.getSubstitutionType=function(r,t){var e=r.lookupType.toString(),n=t.substFormat.toString();return e+n};kt.prototype.getLookupMethod=function(r,t){var e=this,n=this.getSubstitutionType(r,t);switch(n){case"11":return function(o){return cL.apply(e,[o,t])};case"12":return function(o){return uL.apply(e,[o,t])};case"63":return function(o){return pL.apply(e,[o,t])};case"41":return function(o){return fL.apply(e,[o,t])};case"21":return function(o){return dL.apply(e,[o,t])};default:throw new Error("lookupType: "+r.lookupType+" - substFormat: "+t.substFormat+" is not yet supported")}};kt.prototype.lookupFeature=function(r){var t=r.contextParams,e=t.index,n=this.getFeature({tag:r.tag,script:r.script});if(!n)return new Error("font '"+this.font.names.fullName.en+"' doesn't support feature '"+r.tag+"' for script '"+r.script+"'.");for(var o=this.getFeatureLookups(n),i=[].concat(t.context),a=0;a<o.length;a++)for(var s=o[a],l=this.getLookupSubtables(s),u=0;u<l.length;u++){var c=l[u],p=this.getSubstitutionType(s,c),f=this.getLookupMethod(s,c),d=void 0;switch(p){case"11":d=f(t.current),d&&i.splice(e,1,new ao({id:11,tag:r.tag,substitution:d}));break;case"12":d=f(t.current),d&&i.splice(e,1,new ao({id:12,tag:r.tag,substitution:d}));break;case"63":d=f(t),Array.isArray(d)&&d.length&&i.splice(e,1,new ao({id:63,tag:r.tag,substitution:d}));break;case"41":d=f(t),d&&i.splice(e,1,new ao({id:41,tag:r.tag,substitution:d}));break;case"21":d=f(t.current),d&&i.splice(e,1,new ao({id:21,tag:r.tag,substitution:d}));break}t=new cr(i,e),!(Array.isArray(d)&&!d.length)&&(d=null)}return i.length?i:null};kt.prototype.supports=function(r){if(!r.script)return!1;this.getScriptFeatures(r.script);var t=this.features.hasOwnProperty(r.script);if(!r.tag)return t;var e=this.features[r.script].some(function(n){return n.tag===r.tag});return t&&e};kt.prototype.getLookupSubtables=function(r){return r.subtables||null};kt.prototype.getLookupByIndex=function(r){var t=this.font.tables.gsub.lookups;return t[r]||null};kt.prototype.getFeatureLookups=function(r){return r.lookupListIndexes.map(this.getLookupByIndex.bind(this))};kt.prototype.getFeature=function(t){if(!this.font)return{FAIL:"No font was found"};this.features.hasOwnProperty(t.script)||this.getScriptFeatures(t.script);var e=this.features[t.script];return e?e.tags[t.tag]?this.features[t.script].tags[t.tag]:null:{FAIL:"No feature for script "+t.script}};function hL(r){var t=r.current,e=r.get(-1);return e===null&&Bn(t)||!Bn(e)&&Bn(t)}function mL(r){var t=r.get(1);return t===null||!Bn(t)}var gL={startCheck:hL,endCheck:mL};function yL(r){var t=r.current,e=r.get(-1);return(Bn(t)||Fn(t))&&!Bn(e)}function vL(r){var t=r.get(1);switch(!0){case t===null:return!0;case(!Bn(t)&&!Fn(t)):var e=lL(t);if(!e)return!0;if(e){var n=!1;if(n=r.lookahead.some(function(o){return Bn(o)||Fn(o)}),!n)return!0}break;default:return!1}}var xL={startCheck:yL,endCheck:vL};function bL(r,t,e){t[e].setState(r.tag,r.substitution)}function SL(r,t,e){t[e].setState(r.tag,r.substitution)}function wL(r,t,e){r.substitution.forEach(function(n,o){var i=t[e+o];i.setState(r.tag,n)})}function TL(r,t,e){var n=t[e];n.setState(r.tag,r.substitution.ligGlyph);for(var o=r.substitution.components.length,i=0;i<o;i++)n=t[e+i+1],n.setState("deleted",!0)}var by={11:bL,12:SL,63:wL,41:TL};function bp(r,t,e){r instanceof ao&&by[r.id]&&by[r.id](r,t,e)}function CL(r){for(var t=[].concat(r.backtrack),e=t.length-1;e>=0;e--){var n=t[e],o=h0(n),i=Fn(n);if(!o&&!i)return!0;if(o)return!1}return!1}function AL(r){if(h0(r.current))return!1;for(var t=0;t<r.lookahead.length;t++){var e=r.lookahead[t],n=Fn(e);if(!n)return!0}return!1}function _L(r){var t=this,e="arab",n=this.featuresTags[e],o=this.tokenizer.getRangeTokens(r);if(o.length!==1){var i=new cr(o.map(function(s){return s.getState("glyphIndex")}),0),a=new cr(o.map(function(s){return s.char}),0);o.forEach(function(s,l){if(!Fn(s.char)){i.setCurrentIndex(l),a.setCurrentIndex(l);var u=0;CL(a)&&(u|=1),AL(a)&&(u|=2);var c;switch(u){case 1:c="fina";break;case 2:c="init";break;case 3:c="medi";break}if(n.indexOf(c)!==-1){var p=t.query.lookupFeature({tag:c,script:e,contextParams:i});if(p instanceof Error)return console.info(p.message);p.forEach(function(f,d){f instanceof ao&&(bp(f,o,d),i.context[d]=f.substitution)})}}})}}function Sy(r,t){var e=r.map(function(n){return n.activeState.value});return new cr(e,t||0)}function OL(r){var t=this,e="arab",n=this.tokenizer.getRangeTokens(r),o=Sy(n);o.context.forEach(function(i,a){o.setCurrentIndex(a);var s=t.query.lookupFeature({tag:"rlig",script:e,contextParams:o});s.length&&(s.forEach(function(l){return bp(l,n,a)}),o=Sy(n))})}function IL(r){var t=r.current,e=r.get(-1);return e===null&&Gl(t)||!Gl(e)&&Gl(t)}function LL(r){var t=r.get(1);return t===null||!Gl(t)}var NL={startCheck:IL,endCheck:LL};function wy(r,t){var e=r.map(function(n){return n.activeState.value});return new cr(e,t||0)}function PL(r){var t=this,e="latn",n=this.tokenizer.getRangeTokens(r),o=wy(n);o.context.forEach(function(i,a){o.setCurrentIndex(a);var s=t.query.lookupFeature({tag:"liga",script:e,contextParams:o});s.length&&(s.forEach(function(l){return bp(l,n,a)}),o=wy(n))})}function fr(r){this.baseDir=r||"ltr",this.tokenizer=new je,this.featuresTags={}}fr.prototype.setText=function(r){this.text=r};fr.prototype.contextChecks={latinWordCheck:NL,arabicWordCheck:gL,arabicSentenceCheck:xL};function tp(r){var t=this.contextChecks[r+"Check"];return this.tokenizer.registerContextChecker(r,t.startCheck,t.endCheck)}function ML(){return tp.call(this,"latinWord"),tp.call(this,"arabicWord"),tp.call(this,"arabicSentence"),this.tokenizer.tokenize(this.text)}function EL(){var r=this,t=this.tokenizer.getContextRanges("arabicSentence");t.forEach(function(e){var n=r.tokenizer.getRangeTokens(e);r.tokenizer.replaceRange(e.startIndex,e.endOffset,n.reverse())})}fr.prototype.registerFeatures=function(r,t){var e=this,n=t.filter(function(o){return e.query.supports({script:r,tag:o})});this.featuresTags.hasOwnProperty(r)?this.featuresTags[r]=this.featuresTags[r].concat(n):this.featuresTags[r]=n};fr.prototype.applyFeatures=function(r,t){if(!r)throw new Error("No valid font was provided to apply features");this.query||(this.query=new kt(r));for(var e=0;e<t.length;e++){var n=t[e];!this.query.supports({script:n.script})||this.registerFeatures(n.script,n.tags)}};fr.prototype.registerModifier=function(r,t,e){this.tokenizer.registerModifier(r,t,e)};function Sp(){if(this.tokenizer.registeredModifiers.indexOf("glyphIndex")===-1)throw new Error("glyphIndex modifier is required to apply arabic presentation features.")}function DL(){var r=this,t="arab";if(!!this.featuresTags.hasOwnProperty(t)){Sp.call(this);var e=this.tokenizer.getContextRanges("arabicWord");e.forEach(function(n){_L.call(r,n)})}}function BL(){var r=this,t="arab";if(!!this.featuresTags.hasOwnProperty(t)){var e=this.featuresTags[t];if(e.indexOf("rlig")!==-1){Sp.call(this);var n=this.tokenizer.getContextRanges("arabicWord");n.forEach(function(o){OL.call(r,o)})}}}function FL(){var r=this,t="latn";if(!!this.featuresTags.hasOwnProperty(t)){var e=this.featuresTags[t];if(e.indexOf("liga")!==-1){Sp.call(this);var n=this.tokenizer.getContextRanges("latinWord");n.forEach(function(o){PL.call(r,o)})}}}fr.prototype.checkContextReady=function(r){return!!this.tokenizer.getContext(r)};fr.prototype.applyFeaturesToContexts=function(){this.checkContextReady("arabicWord")&&(DL.call(this),BL.call(this)),this.checkContextReady("latinWord")&&FL.call(this),this.checkContextReady("arabicSentence")&&EL.call(this)};fr.prototype.processText=function(r){(!this.text||this.text!==r)&&(this.setText(r),ML.call(this),this.applyFeaturesToContexts())};fr.prototype.getBidiText=function(r){return this.processText(r),this.tokenizer.getText()};fr.prototype.getTextGlyphs=function(r){this.processText(r);for(var t=[],e=0;e<this.tokenizer.tokens.length;e++){var n=this.tokenizer.tokens[e];if(!n.state.deleted){var o=n.activeState.value;t.push(Array.isArray(o)?o[0]:o)}}return t};function Re(r){r=r||{},r.tables=r.tables||{},r.empty||(Na(r.familyName,"When creating a new Font object, familyName is required."),Na(r.styleName,"When creating a new Font object, styleName is required."),Na(r.unitsPerEm,"When creating a new Font object, unitsPerEm is required."),Na(r.ascender,"When creating a new Font object, ascender is required."),Na(r.descender<=0,"When creating a new Font object, negative descender value is required."),this.names={fontFamily:{en:r.familyName||" "},fontSubfamily:{en:r.styleName||" "},fullName:{en:r.fullName||r.familyName+" "+r.styleName},postScriptName:{en:r.postScriptName||(r.familyName+r.styleName).replace(/\s/g,"")},designer:{en:r.designer||" "},designerURL:{en:r.designerURL||" "},manufacturer:{en:r.manufacturer||" "},manufacturerURL:{en:r.manufacturerURL||" "},license:{en:r.license||" "},licenseURL:{en:r.licenseURL||" "},version:{en:r.version||"Version 0.1"},description:{en:r.description||" "},copyright:{en:r.copyright||" "},trademark:{en:r.trademark||" "}},this.unitsPerEm=r.unitsPerEm||1e3,this.ascender=r.ascender,this.descender=r.descender,this.createdTimestamp=r.createdTimestamp,this.tables=Object.assign(r.tables,{os2:Object.assign({usWeightClass:r.weightClass||this.usWeightClasses.MEDIUM,usWidthClass:r.widthClass||this.usWidthClasses.MEDIUM,fsSelection:r.fsSelection||this.fsSelectionValues.REGULAR},r.tables.os2)})),this.supported=!0,this.glyphs=new Hr.GlyphSet(this,r.glyphs||[]),this.encoding=new Ey(this),this.position=new Ra(this),this.substitution=new Rt(this),this.tables=this.tables||{},this._push=null,this._hmtxTableData={},Object.defineProperty(this,"hinting",{get:function(){if(this._hinting)return this._hinting;if(this.outlinesFormat==="truetype")return this._hinting=new u0(this)}})}Re.prototype.hasChar=function(r){return this.encoding.charToGlyphIndex(r)!==null};Re.prototype.charToGlyphIndex=function(r){return this.encoding.charToGlyphIndex(r)};Re.prototype.charToGlyph=function(r){var t=this.charToGlyphIndex(r),e=this.glyphs.get(t);return e||(e=this.glyphs.get(0)),e};Re.prototype.updateFeatures=function(r){return this.defaultRenderOptions.features.map(function(t){return t.script==="latn"?{script:"latn",tags:t.tags.filter(function(e){return r[e]})}:t})};Re.prototype.stringToGlyphs=function(r,t){var e=this,n=new fr,o=function(p){return e.charToGlyphIndex(p.char)};n.registerModifier("glyphIndex",null,o);var i=t?this.updateFeatures(t.features):this.defaultRenderOptions.features;n.applyFeatures(this,i);for(var a=n.getTextGlyphs(r),s=a.length,l=new Array(s),u=this.glyphs.get(0),c=0;c<s;c+=1)l[c]=this.glyphs.get(a[c])||u;return l};Re.prototype.nameToGlyphIndex=function(r){return this.glyphNames.nameToGlyphIndex(r)};Re.prototype.nameToGlyph=function(r){var t=this.nameToGlyphIndex(r),e=this.glyphs.get(t);return e||(e=this.glyphs.get(0)),e};Re.prototype.glyphIndexToName=function(r){return this.glyphNames.glyphIndexToName?this.glyphNames.glyphIndexToName(r):""};Re.prototype.getKerningValue=function(r,t){r=r.index||r,t=t.index||t;var e=this.position.defaultKerningTables;return e?this.position.getKerningValue(e,r,t):this.kerningPairs[r+","+t]||0};Re.prototype.defaultRenderOptions={kerning:!0,features:[{script:"arab",tags:["init","medi","fina","rlig"]},{script:"latn",tags:["liga","rlig"]}]};Re.prototype.forEachGlyph=function(r,t,e,n,o,i){t=t!==void 0?t:0,e=e!==void 0?e:0,n=n!==void 0?n:72,o=Object.assign({},this.defaultRenderOptions,o);var a=1/this.unitsPerEm*n,s=this.stringToGlyphs(r,o),l;if(o.kerning){var u=o.script||this.position.getDefaultScriptName();l=this.position.getKerningTables(u,o.language)}for(var c=0;c<s.length;c+=1){var p=s[c];if(i.call(this,p,t,e,n,o),p.advanceWidth&&(t+=p.advanceWidth*a),o.kerning&&c<s.length-1){var f=l?this.position.getKerningValue(l,p.index,s[c+1].index):this.getKerningValue(p,s[c+1]);t+=f*a}o.letterSpacing?t+=o.letterSpacing*n:o.tracking&&(t+=o.tracking/1e3*n)}return t};Re.prototype.getPath=function(r,t,e,n,o){var i=new tt;return this.forEachGlyph(r,t,e,n,o,function(a,s,l,u){var c=a.getPath(s,l,u,o,this);i.extend(c)}),i};Re.prototype.getPaths=function(r,t,e,n,o){var i=[];return this.forEachGlyph(r,t,e,n,o,function(a,s,l,u){var c=a.getPath(s,l,u,o,this);i.push(c)}),i};Re.prototype.getAdvanceWidth=function(r,t,e){return this.forEachGlyph(r,0,0,t,e,function(){})};Re.prototype.draw=function(r,t,e,n,o,i){this.getPath(t,e,n,o,i).draw(r)};Re.prototype.drawPoints=function(r,t,e,n,o,i){this.forEachGlyph(t,e,n,o,i,function(a,s,l,u){a.drawPoints(r,s,l,u)})};Re.prototype.drawMetrics=function(r,t,e,n,o,i){this.forEachGlyph(t,e,n,o,i,function(a,s,l,u){a.drawMetrics(r,s,l,u)})};Re.prototype.getEnglishName=function(r){var t=this.names[r];if(t)return t.en};Re.prototype.validate=function(){var r=this;function t(n,o){}function e(n){var o=r.getEnglishName(n);o&&o.trim().length>0}e("fontFamily"),e("weightName"),e("manufacturer"),e("copyright"),e("version"),this.unitsPerEm>0};Re.prototype.toTables=function(){return wO.fontToTable(this)};Re.prototype.toBuffer=function(){return console.warn("Font.toBuffer is deprecated. Use Font.toArrayBuffer instead."),this.toArrayBuffer()};Re.prototype.toArrayBuffer=function(){for(var r=this.toTables(),t=r.encode(),e=new ArrayBuffer(t.length),n=new Uint8Array(e),o=0;o<t.length;o++)n[o]=t[o];return e};Re.prototype.download=function(r){var t=this.getEnglishName("fontFamily"),e=this.getEnglishName("fontSubfamily");r=r||t.replace(/\s/g,"")+"-"+e+".otf";var n=this.toArrayBuffer();if(CO())if(window.URL=window.URL||window.webkitURL,window.URL){var o=new DataView(n),i=new Blob([o],{type:"font/opentype"}),a=document.createElement("a");a.href=window.URL.createObjectURL(i),a.download=r;var s=document.createEvent("MouseEvents");s.initEvent("click",!0,!1),a.dispatchEvent(s)}else console.warn("Font file could not be downloaded. Try using a different browser.");else{var l=qu(),u=_O(n);l.writeFileSync(r,u)}};Re.prototype.fsSelectionValues={ITALIC:1,UNDERSCORE:2,NEGATIVE:4,OUTLINED:8,STRIKEOUT:16,BOLD:32,REGULAR:64,USER_TYPO_METRICS:128,WWS:256,OBLIQUE:512};Re.prototype.usWidthClasses={ULTRA_CONDENSED:1,EXTRA_CONDENSED:2,CONDENSED:3,SEMI_CONDENSED:4,MEDIUM:5,SEMI_EXPANDED:6,EXPANDED:7,EXTRA_EXPANDED:8,ULTRA_EXPANDED:9};Re.prototype.usWeightClasses={THIN:100,EXTRA_LIGHT:200,LIGHT:300,NORMAL:400,MEDIUM:500,SEMI_BOLD:600,BOLD:700,EXTRA_BOLD:800,BLACK:900};function m0(r,t){var e=JSON.stringify(r),n=256;for(var o in t){var i=parseInt(o);if(!(!i||i<256)){if(JSON.stringify(t[o])===e)return i;n<=i&&(n=i+1)}}return t[n]=r,n}function RL(r,t,e){var n=m0(t.name,e);return[{name:"tag_"+r,type:"TAG",value:t.tag},{name:"minValue_"+r,type:"FIXED",value:t.minValue<<16},{name:"defaultValue_"+r,type:"FIXED",value:t.defaultValue<<16},{name:"maxValue_"+r,type:"FIXED",value:t.maxValue<<16},{name:"flags_"+r,type:"USHORT",value:0},{name:"nameID_"+r,type:"USHORT",value:n}]}function kL(r,t,e){var n={},o=new ue.Parser(r,t);return n.tag=o.parseTag(),n.minValue=o.parseFixed(),n.defaultValue=o.parseFixed(),n.maxValue=o.parseFixed(),o.skip("uShort",1),n.name=e[o.parseUShort()]||{},n}function GL(r,t,e,n){for(var o=m0(t.name,n),i=[{name:"nameID_"+r,type:"USHORT",value:o},{name:"flags_"+r,type:"USHORT",value:0}],a=0;a<e.length;++a){var s=e[a].tag;i.push({name:"axis_"+r+" "+s,type:"FIXED",value:t.coordinates[s]<<16})}return i}function UL(r,t,e,n){var o={},i=new ue.Parser(r,t);o.name=n[i.parseUShort()]||{},i.skip("uShort",1),o.coordinates={};for(var a=0;a<e.length;++a)o.coordinates[e[a].tag]=i.parseFixed();return o}function VL(r,t){var e=new le.Table("fvar",[{name:"version",type:"ULONG",value:65536},{name:"offsetToData",type:"USHORT",value:0},{name:"countSizePairs",type:"USHORT",value:2},{name:"axisCount",type:"USHORT",value:r.axes.length},{name:"axisSize",type:"USHORT",value:20},{name:"instanceCount",type:"USHORT",value:r.instances.length},{name:"instanceSize",type:"USHORT",value:4+r.axes.length*4}]);e.offsetToData=e.sizeOf();for(var n=0;n<r.axes.length;n++)e.fields=e.fields.concat(RL(n,r.axes[n],t));for(var o=0;o<r.instances.length;o++)e.fields=e.fields.concat(GL(o,r.instances[o],r.axes,t));return e}function zL(r,t,e){var n=new ue.Parser(r,t),o=n.parseULong();ve.argument(o===65536,"Unsupported fvar table version.");var i=n.parseOffset16();n.skip("uShort",1);for(var a=n.parseUShort(),s=n.parseUShort(),l=n.parseUShort(),u=n.parseUShort(),c=[],p=0;p<a;p++)c.push(kL(r,t+i+p*s,e));for(var f=[],d=t+i+a*s,h=0;h<l;h++)f.push(UL(r,d+h*u,c,e));return{axes:c,instances:f}}var jL={make:VL,parse:zL},HL=function(){return{coverage:this.parsePointer(E.coverage),attachPoints:this.parseList(E.pointer(E.uShortList))}},WL=function(){var r=this.parseUShort();if(ve.argument(r===1||r===2||r===3,"Unsupported CaretValue table version."),r===1)return{coordinate:this.parseShort()};if(r===2)return{pointindex:this.parseShort()};if(r===3)return{coordinate:this.parseShort()}},qL=function(){return this.parseList(E.pointer(WL))},XL=function(){return{coverage:this.parsePointer(E.coverage),ligGlyphs:this.parseList(E.pointer(qL))}},YL=function(){return this.parseUShort(),this.parseList(E.pointer(E.coverage))};function $L(r,t){t=t||0;var e=new E(r,t),n=e.parseVersion(1);ve.argument(n===1||n===1.2||n===1.3,"Unsupported GDEF table version.");var o={version:n,classDef:e.parsePointer(E.classDef),attachList:e.parsePointer(HL),ligCaretList:e.parsePointer(XL),markAttachClassDef:e.parsePointer(E.classDef)};return n>=1.2&&(o.markGlyphSets=e.parsePointer(YL)),o}var KL={parse:$L},ur=new Array(10);ur[1]=function(){var t=this.offset+this.relativeOffset,e=this.parseUShort();if(e===1)return{posFormat:1,coverage:this.parsePointer(E.coverage),value:this.parseValueRecord()};if(e===2)return{posFormat:2,coverage:this.parsePointer(E.coverage),values:this.parseValueRecordList()};ve.assert(!1,"0x"+t.toString(16)+": GPOS lookup type 1 format must be 1 or 2.")};ur[2]=function(){var t=this.offset+this.relativeOffset,e=this.parseUShort();ve.assert(e===1||e===2,"0x"+t.toString(16)+": GPOS lookup type 2 format must be 1 or 2.");var n=this.parsePointer(E.coverage),o=this.parseUShort(),i=this.parseUShort();if(e===1)return{posFormat:e,coverage:n,valueFormat1:o,valueFormat2:i,pairSets:this.parseList(E.pointer(E.list(function(){return{secondGlyph:this.parseUShort(),value1:this.parseValueRecord(o),value2:this.parseValueRecord(i)}})))};if(e===2){var a=this.parsePointer(E.classDef),s=this.parsePointer(E.classDef),l=this.parseUShort(),u=this.parseUShort();return{posFormat:e,coverage:n,valueFormat1:o,valueFormat2:i,classDef1:a,classDef2:s,class1Count:l,class2Count:u,classRecords:this.parseList(l,E.list(u,function(){return{value1:this.parseValueRecord(o),value2:this.parseValueRecord(i)}}))}}};ur[3]=function(){return{error:"GPOS Lookup 3 not supported"}};ur[4]=function(){return{error:"GPOS Lookup 4 not supported"}};ur[5]=function(){return{error:"GPOS Lookup 5 not supported"}};ur[6]=function(){return{error:"GPOS Lookup 6 not supported"}};ur[7]=function(){return{error:"GPOS Lookup 7 not supported"}};ur[8]=function(){return{error:"GPOS Lookup 8 not supported"}};ur[9]=function(){return{error:"GPOS Lookup 9 not supported"}};function ZL(r,t){t=t||0;var e=new E(r,t),n=e.parseVersion(1);return ve.argument(n===1||n===1.1,"Unsupported GPOS table version "+n),n===1?{version:n,scripts:e.parseScriptList(),features:e.parseFeatureList(),lookups:e.parseLookupList(ur)}:{version:n,scripts:e.parseScriptList(),features:e.parseFeatureList(),lookups:e.parseLookupList(ur),variations:e.parseFeatureVariationsList()}}var QL=new Array(10);function JL(r){return new le.Table("GPOS",[{name:"version",type:"ULONG",value:65536},{name:"scripts",type:"TABLE",value:new le.ScriptList(r.scripts)},{name:"features",type:"TABLE",value:new le.FeatureList(r.features)},{name:"lookups",type:"TABLE",value:new le.LookupList(r.lookups,QL)}])}var eN={parse:ZL,make:JL};function tN(r){var t={};r.skip("uShort");var e=r.parseUShort();ve.argument(e===0,"Unsupported kern sub-table version."),r.skip("uShort",2);var n=r.parseUShort();r.skip("uShort",3);for(var o=0;o<n;o+=1){var i=r.parseUShort(),a=r.parseUShort(),s=r.parseShort();t[i+","+a]=s}return t}function rN(r){var t={};r.skip("uShort");var e=r.parseULong();e>1&&console.warn("Only the first kern subtable is supported."),r.skip("uLong");var n=r.parseUShort(),o=n&255;if(r.skip("uShort"),o===0){var i=r.parseUShort();r.skip("uShort",3);for(var a=0;a<i;a+=1){var s=r.parseUShort(),l=r.parseUShort(),u=r.parseShort();t[s+","+l]=u}}return t}function nN(r,t){var e=new ue.Parser(r,t),n=e.parseUShort();if(n===0)return tN(e);if(n===1)return rN(e);throw new Error("Unsupported kern table version ("+n+").")}var oN={parse:nN};function iN(r,t,e,n){for(var o=new ue.Parser(r,t),i=n?o.parseUShort:o.parseULong,a=[],s=0;s<e+1;s+=1){var l=i.call(o);n&&(l*=2),a.push(l)}return a}var aN={parse:iN};function sN(r,t){var e=qu();e.readFile(r,function(n,o){if(n)return t(n.message);t(null,AO(o))})}function lN(r,t){var e=new XMLHttpRequest;e.open("get",r,!0),e.responseType="arraybuffer",e.onload=function(){return e.response?t(null,e.response):t("Font could not be loaded: "+e.statusText)},e.onerror=function(){t("Font could not be loaded")},e.send()}function Ty(r,t){for(var e=[],n=12,o=0;o<t;o+=1){var i=ue.getTag(r,n),a=ue.getULong(r,n+4),s=ue.getULong(r,n+8),l=ue.getULong(r,n+12);e.push({tag:i,checksum:a,offset:s,length:l,compression:!1}),n+=16}return e}function cN(r,t){for(var e=[],n=44,o=0;o<t;o+=1){var i=ue.getTag(r,n),a=ue.getULong(r,n+4),s=ue.getULong(r,n+8),l=ue.getULong(r,n+12),u=void 0;s<l?u="WOFF":u=!1,e.push({tag:i,offset:a,compression:u,compressedLength:s,length:l}),n+=20}return e}function Xe(r,t){if(t.compression==="WOFF"){var e=new Uint8Array(r.buffer,t.offset+2,t.compressedLength-2),n=new Uint8Array(t.length);if(J_(e,n),n.byteLength!==t.length)throw new Error("Decompression error: "+t.tag+" decompressed length doesn't match recorded length");var o=new DataView(n.buffer,0);return{data:o,offset:0}}else return{data:r,offset:t.offset}}function wp(r,t){t=t??{};var e,n,o=new Re({empty:!0}),i=new DataView(r,0),a,s=[],l=ue.getTag(i,0);if(l===String.fromCharCode(0,1,0,0)||l==="true"||l==="typ1")o.outlinesFormat="truetype",a=ue.getUShort(i,4),s=Ty(i,a);else if(l==="OTTO")o.outlinesFormat="cff",a=ue.getUShort(i,4),s=Ty(i,a);else if(l==="wOFF"){var u=ue.getTag(i,4);if(u===String.fromCharCode(0,1,0,0))o.outlinesFormat="truetype";else if(u==="OTTO")o.outlinesFormat="cff";else throw new Error("Unsupported OpenType flavor "+l);a=ue.getUShort(i,12),s=cN(i,a)}else throw new Error("Unsupported OpenType signature "+l);for(var c,p,f,d,h,m,g,v,x,S,w,b,_=0;_<a;_+=1){var T=s[_],y=void 0;switch(T.tag){case"cmap":y=Xe(i,T),o.tables.cmap=My.parse(y.data,y.offset),o.encoding=new Dy(o.tables.cmap);break;case"cvt ":y=Xe(i,T),b=new ue.Parser(y.data,y.offset),o.tables.cvt=b.parseShortList(T.length/2);break;case"fvar":p=T;break;case"fpgm":y=Xe(i,T),b=new ue.Parser(y.data,y.offset),o.tables.fpgm=b.parseByteList(T.length);break;case"head":y=Xe(i,T),o.tables.head=Hy.parse(y.data,y.offset),o.unitsPerEm=o.tables.head.unitsPerEm,e=o.tables.head.indexToLocFormat;break;case"hhea":y=Xe(i,T),o.tables.hhea=Wy.parse(y.data,y.offset),o.ascender=o.tables.hhea.ascender,o.descender=o.tables.hhea.descender,o.numberOfHMetrics=o.tables.hhea.numberOfHMetrics;break;case"hmtx":g=T;break;case"ltag":y=Xe(i,T),n=Xy.parse(y.data,y.offset);break;case"maxp":y=Xe(i,T),o.tables.maxp=Yy.parse(y.data,y.offset),o.numGlyphs=o.tables.maxp.numGlyphs;break;case"name":S=T;break;case"OS/2":y=Xe(i,T),o.tables.os2=cp.parse(y.data,y.offset);break;case"post":y=Xe(i,T),o.tables.post=e0.parse(y.data,y.offset),o.glyphNames=new mp(o.tables.post);break;case"prep":y=Xe(i,T),b=new ue.Parser(y.data,y.offset),o.tables.prep=b.parseByteList(T.length);break;case"glyf":f=T;break;case"loca":x=T;break;case"CFF ":c=T;break;case"kern":v=T;break;case"GDEF":d=T;break;case"GPOS":h=T;break;case"GSUB":m=T;break;case"meta":w=T;break}}var O=Xe(i,S);if(o.tables.name=Jy.parse(O.data,O.offset,n),o.names=o.tables.name,f&&x){var A=e===0,I=Xe(i,x),C=aN.parse(I.data,I.offset,o.numGlyphs,A),N=Xe(i,f);o.glyphs=s0.parse(N.data,N.offset,C,o,t)}else if(c){var P=Xe(i,c);jy.parse(P.data,P.offset,o,t)}else throw new Error("Font doesn't contain TrueType or CFF outlines.");var G=Xe(i,g);if(qy.parse(o,G.data,G.offset,o.numberOfHMetrics,o.numGlyphs,o.glyphs,t),b2(o,t),v){var $=Xe(i,v);o.kerningPairs=oN.parse($.data,$.offset)}else o.kerningPairs={};if(d){var Y=Xe(i,d);o.tables.gdef=KL.parse(Y.data,Y.offset)}if(h){var ie=Xe(i,h);o.tables.gpos=eN.parse(ie.data,ie.offset),o.position.init()}if(m){var j=Xe(i,m);o.tables.gsub=t0.parse(j.data,j.offset)}if(p){var H=Xe(i,p);o.tables.fvar=jL.parse(H.data,H.offset,o.names)}if(w){var V=Xe(i,w);o.tables.meta=r0.parse(V.data,V.offset),o.metas=o.tables.meta}return o}function g0(r,t,e){e=e??{};var n=typeof window>"u",o=n&&!e.isUrl?sN:lN;return new Promise(function(i,a){o(r,function(s,l){if(s){if(t)return t(s);a(s)}var u;try{u=wp(l,e)}catch(c){if(t)return t(c,null);a(c)}if(t)return t(null,u);i(u)})})}var Va=class{load(t,e,n=()=>{}){g0(t,(o,i)=>{o||!i?n(o??"Something went wrong"):e(i)})}parse(t){try{return wp(t)}catch(e){console.error(e)}}};async function uN(r){return await(await fetch(r)).arrayBuffer()}var pN=new Va;async function Tp(r){let t,e,n=!1;if(r.url?(t=await uN(r.url),e=r.url,n=r.url.startsWith("/")):r.data&&(t=r.data.buffer),t){let o=pN.parse(t);if(o)return{font:o,url:e,intercepted:n,arr:t}}}import{Vector3 as fN,Matrix4 as dN,Ray as hN}from"three";var y0=new fN,v0=new dN,x0=new hN,Yl=class extends ct{constructor(e,n,o){super(new ei(n.geometry,o),o.material(n.material));this.data=n;this.objectType="TextFrame";this.wrappedText=[""];this.charWidths=[];this.charCoords=[];this.castShadow=n.castShadow,this.receiveShadow=n.receiveShadow,this.name=n.name,this.uuid=e,this.updateState(n,o)}async updateGeometry(e,n){let o=e.parameters,i=this.geometry.getAttribute("randomColor"),a={...this.geometry.userData.parameters,...o};this.geometry.userData={parameters:a,type:"TextGeometry"},n&&(o.font||!this.geometry.font&&n.getFont(a.font))&&await this.geometry.updateFont(o.font??a.font,n),await this.geometry.update(a),kr(this),i&&Gr(this);let{wrappedText:s,charCoords:l,charWidths:u}=this.geometry;this.wrappedText=s,this.charWidths=u,this.charCoords=l,this.resetBBoxNeedsUpdate()}updateState(e,n){this.data=e,this.material=n.material(e.material),this.fromState(e,n),this.updateGeometry({parameters:e.geometry},n)}get font(){return this.geometry.font}get initialOffsetY(){return this.font?.getLineInitialOffsetY(this.lineHeight,this.wrappedText.length,this.geometry.userData.parameters.height,this.fontScale,this.geometry.userData.parameters.verticalAlign)??0}get fontScale(){return this.font?this.geometry.userData.parameters.fontSize/this.font.unitsPerEm:1}get AD(){return Math.abs(this.ascender-this.descender)}get ascender(){return(this.font?.ascender??1)*this.fontScale}get descender(){return(this.font?.descender??1)*this.fontScale}get lineHeight(){return this.geometry.userData.parameters.fontSize*this.geometry.userData.parameters.lineHeight}raycast(e,n){let{matrixWorld:o}=this;if(v0.copy(o).invert(),x0.copy(e.ray).applyMatrix4(v0),x0.intersectBox(this.singleBBox,y0)){let i=y0.applyMatrix4(o),a=e.ray.origin.distanceTo(i);n.push({distance:a,point:i.clone(),object:this})}}};import{Box3 as mN,Matrix4 as lo,Sphere as w0,Vector3 as gN}from"three";var C0=Dp(S0());var Cp;dl.then(r=>{Cp=r});var A0=new lo,yN=new lo,vN=new lo,dr=new mN,kn=new gN,xN=new lo,bN=new lo,Ai=class extends ct{constructor(e,n,o,i){super(o??n,i);this.subdivPointer=e;this.originalGeometry=n;this.subdividedGeometry=o;this.objectType="SubdivObject";this.hiddenMatrixOld=new lo;this.smoothShading=!0;this.phongAngle=35;this.matrixWorldRigid=new lo;this.castShadow=!0,this.receiveShadow=!0,this.forceComputeSize=!1}static createFromState(e,n,o){let{subdivPointer:i,originalGeometry:a,subdividedGeometry:s}=qt.build(n.geometry,void 0,void 0,!n.flatShading),l=o.material(n.material),u=new Ai(i,a,s||void 0,l);return n.geometry.phongAngle!==void 0&&(u.phongAngle=n.geometry.phongAngle),u.calcBoundingBox(),u.freeSubdivPointer(),u.uuid=e,u.fromState(n),u}buildFromStore(e,n){let{originalGeometry:o,subdividedGeometry:i,subdivPointer:a}=qt.build(e,n,this.subdivPointer,this.smoothShading,this.shearScale);e.phongAngle!==void 0&&(this.phongAngle=e.phongAngle),this.subdivPointer=a,o!==void 0&&(this.originalGeometry?.dispose(),this.originalGeometry=o),i!==void 0&&(this.subdividedGeometry?.dispose(),this.subdividedGeometry=i??void 0),this.geometry=this.subdividedGeometry??this.originalGeometry,kr(this),Gr(this),e.width&&(this.geometry.userData.parameters={width:e.width,height:e.height,depth:e.depth})}updateMesh(e=!1){qt.buildLevel(this.subdivPointer,!0,this.smoothShading?this.phongAngle:-1,this.originalGeometry,e?this.shearScaleInv:void 0),this.subdividedGeometry&&qt.buildLevel(this.subdivPointer,!1,this.smoothShading?this.phongAngle:-1,this.subdividedGeometry,e?this.shearScaleInv:void 0)}updateTopology(){this.originalGeometry.dispose(),this.originalGeometry=qt.buildLevel(this.subdivPointer,!0,this.smoothShading?this.phongAngle:-1),this.subdividedGeometry&&(this.subdividedGeometry.dispose(),this.subdividedGeometry=qt.buildLevel(this.subdivPointer,!1,this.smoothShading?this.phongAngle:-1)),this.geometry=this.subdividedGeometry??this.originalGeometry}raycast(e,n){this.geometry=this.originalGeometry,ct.prototype.raycast.call(this,e,n),this.geometry=this.subdividedGeometry??this.originalGeometry}updateMatrixWorldSVD(){let e=this.matrixWorld.elements,n=[[e[0],e[4],e[8]],[e[1],e[5],e[9]],[e[2],e[6],e[10]]],{u:o,v:i,q:a}=(0,C0.SVD)(n),s=A0.set(o[0][0],o[0][1],o[0][2],0,o[1][0],o[1][1],o[1][2],0,o[2][0],o[2][1],o[2][2],0,0,0,0,1),l=yN.set(i[0][0],i[0][1],i[0][2],0,i[1][0],i[1][1],i[1][2],0,i[2][0],i[2][1],i[2][2],0,0,0,0,1),u=vN.copy(l).transpose();this.shearScale=xN.makeScale(a[0],a[1],a[2]).multiply(u).premultiply(l),this.shearScaleInv=bN.copy(this.shearScale).invert(),this.matrixWorldRigid.multiplyMatrices(s,u),a.every(c=>Math.abs(a[0]-c)<.01)&&(this.shearScale=void 0,this.shearScaleInv=void 0)}activateSVDCompensation(){this.shearScale!==void 0&&(this.matrixAutoUpdate=!1,this.matrix.copy(this.matrixWorldRigid).copyPosition(this.matrixWorld),this.hiddenMatrixOld.copy(this.hiddenMatrix),this.hiddenMatrix.copy(this.parent.matrixWorld).invert())}deactivateSVDCompensation(){this.shearScale!==void 0&&(this.shearScale=void 0,this.shearScaleInv=void 0,this.matrixAutoUpdate=!0,this.hiddenMatrix.copy(this.hiddenMatrixOld))}calcBoundingBox(){let e=this.originalGeometry;e.boundingSphere===null&&(e.boundingSphere=new w0);let n=e.attributes.position,o=e.boundingSphere.center;dr.setFromBufferAttribute(n),dr.getCenter(o),e.boundingSphere.radius=o.distanceTo(dr.max),isNaN(e.boundingSphere.radius)&&console.error('THREE.BufferGeometry.computeBoundingSphere(): Computed radius is NaN. The "position" attribute is likely to have NaN values.',this),dr.getSize(kn);let i={width:kn.x,height:kn.y,depth:kn.z};return this.geometry.userData.parameters=i,i}updateBoundingBox(e){let n=this.originalGeometry;dr.min.set(e[0],e[2],e[4]),dr.max.set(e[1],e[3],e[5]),this.shearScaleInv&&(dr.min.applyMatrix4(this.shearScaleInv),dr.max.applyMatrix4(this.shearScaleInv)),n.boundingSphere===null&&(n.boundingSphere=new w0);let o=n.boundingSphere.center;dr.getCenter(o),n.boundingSphere.radius=o.distanceTo(dr.max),isNaN(n.boundingSphere.radius)&&console.error('THREE.BufferGeometry.computeBoundingSphere(): Computed radius is NaN. The "position" attribute is likely to have NaN values.',this),dr.getSize(kn);let i={width:kn.x,height:kn.y,depth:kn.z};return this.geometry.userData.parameters=i,i}freeSubdivPointer(){this.subdivPointer&&(Cp.free_bvh(this.subdivPointer),Cp.free_subdivision_surface(this.subdivPointer),this.subdivPointer=0)}updateGeometry(e,n){this.geometry.userData.scale||(this.geometry.userData.scale=Array(3)),this.geometry.userData.scale[0]=this.geometry.userData.parameters.width===0?1:e.parameters.width/this.geometry.userData.parameters.width,this.geometry.userData.scale[1]=this.geometry.userData.parameters.height===0?1:e.parameters.height/this.geometry.userData.parameters.height,this.geometry.userData.scale[2]=this.geometry.userData.parameters.depth===0?1:e.parameters.depth/this.geometry.userData.parameters.depth,T0(this.originalGeometry.attributes,...this.geometry.userData.scale),this.originalGeometry.attributes.position.needsUpdate=!0,this.originalGeometry.attributes.normal.needsUpdate=!0,this.subdividedGeometry&&(T0(this.subdividedGeometry.attributes,...this.subdividedGeometry.userData.scale),this.subdividedGeometry.attributes.position.needsUpdate=!0,this.subdividedGeometry.attributes.normal.needsUpdate=!0),this.geometry.userData.parameters={...e.parameters}}};function T0(r,t,e,n){let o=r.position.array,i=r.normal.array,a=A0.makeScale(t,e,n).invert().elements,s,l,u;for(var c=0,p=o.length;c<p;c+=3)o[c]*=t,o[c+1]*=e,o[c+2]*=n,s=i[c],l=i[c+1],u=i[c+2],i[c]=a[0]*s+a[4]*l+a[8]*u,i[c+1]=a[1]*s+a[5]*l+a[9]*u,i[c+2]=a[2]*s+a[6]*l+a[10]*u}import{BackSide as SN,BufferGeometry as wN,DoubleSide as TN,FrontSide as CN}from"three";function _0(r,t){t.flatShading!==void 0&&(r.flatShading=t.flatShading,r.needsUpdate=!0),t.wireframe!==void 0&&(r.wireframe=t.wireframe),t.side!==void 0&&(t.side===0?r.side=CN:t.side===1?r.side=SN:r.side=TN)}function AN(r,t){if(Array.isArray(r.material))for(let e of r.material)_0(e,t);else{let e=r.material;_0(e,t)}r.objectType==="SubdivObject"&&t.flatShading!==void 0&&(r.material.flatShading=!1,r.smoothShading=!t.flatShading,r.updateMesh())}function O0(r,t,e){let n;if(t.geometry.type==="SubdivGeometry")n=Ai.createFromState(r,t,e);else{let o=t.geometry.type==="BooleanGeometry"?new wN:hl(t.geometry,e),i="materials"in t?t.materials.map(a=>e.material(a)):e.material(t.material);ms.is2DParametricMesh(o.userData.type)?n=new Pl(o,i):o?.userData.type==="VectorGeometry"?n=new di(o,i):t.geometry.type==="NonParametricGeometry"?n=new Ml(o,i):t.geometry.type==="BooleanGeometry"?(n=new _l(void 0,i),n.booleanOp=t.geometry.operation,t.geometry.phongAngle!==void 0&&(n.phongAngle=t.geometry.phongAngle)):n=new xi(o,i),n.uuid=r,n.fromState(t,e)}return AN(n,t),n}function I0(r,t,e){return t.type==="Mesh"?t.geometry.type==="TextGeometry"?new Yl(r,t,e):O0(r,t,e):t.type==="Empty"?no.createFromState(r,t):t.type==="PointLight"?gi.createFromState(r,t,e):t.type==="SpotLight"?yi.createFromState(r,t,e):t.type==="DirectionalLight"?mi.createFromState(r,t,e):yo.is(t.type)?nn.createFromState(r,t):(console.error(t),new no)}var co=class extends Ft{};import{Mesh as P0,Ray as ON,Matrix4 as IN,Raycaster as LN}from"three";function L0(r,t){let e=!1,n=t.getLayersOfType("transmission"),o=t.getLayersOfType("outline");return o.length>0&&(r.layers.set(8),n.length>0&&r.layers.enable(3),e=!0,Gr(r),kr(r)),n.length===0&&o.length===0&&r.layers.set(0),e}function N0(r,t){if(!t.layers)return!1;let e=!1,n=t.getLayersOfType("transmission"),o=t.getLayersOfType("outline");return n.length>0&&(r.layers.set(3),o.length>0&&r.layers.enable(8),e=!0),n.length===0&&o.length===0&&r.layers.set(0),e}function M0(r){let t=!1;return r.traverseEntity(e=>{if(e instanceof P0)if(Array.isArray(e.material))for(let n=0;n<e.material.length;n++)L0(e,e.material[n])&&(t=!0);else L0(e,e.material)&&(t=!0)}),t}function E0(r){let t=!1;return r.traverseEntity(e=>{if(e instanceof P0)if(Array.isArray(e.material))for(let n=0;n<e.material.length;n++)N0(e,e.material[n])&&(t=!0);else N0(e,e.material)&&(t=!0)}),t}function D0(r){"material"in r&&NN(r.material),"geometry"in r&&r.geometry.dispose()}function NN(r){Ph(r).forEach(t=>{t instanceof co||t.dispose()})}var PN=new LN,MN=new IN,EN=new ON;function B0(r,t,e){let n=r.cloner;if(n)for(let o of n.children){let i=MN.copy(o.matrixWorld).invert(),a=EN.copy(t.ray).applyMatrix4(i),s=r.matrixWorld;a.applyMatrix4(s);let l=PN;l.set(a.origin,a.direction),l.near=t.near,l.far=t.far,l.intersectObject(r,!1).length>0&&e.push({object:r})}}var F0=new FN,Ap=class extends vl(BN){constructor(e,n){super();this.objectType="Scene";this.backupFog=new RN(16777215,.1,2e3);this.fogUseBGColor=!1;this.enableHelpers=!1;this.wireframeState=!1;this.needsTransmissionDirty=!0;this.needsNormalDirty=!0;this._needsTransmission=!1;this._needsNormal=!1;this.bgColor=new Je(1,1,1,1);this.entityByUuid={};this.ambientLight=new DN(13882323,8553090,.75),this.ambientLight.name="Default Ambient Light",this.ambientLight.layers.enable(3),this.personalCamera=this.createPersonalCamera(),this.activeCamera=this.personalCamera,this.postprocessing=e.postprocessing,this.init(e,n),this.matrixAutoUpdate=!1}needsTransmission(){return this.needsTransmissionDirty&&(this._needsTransmission=E0(this),this.needsTransmissionDirty=!1),this._needsTransmission}needsNormal(){return this.needsNormalDirty&&(this._needsNormal=M0(this),this.needsNormalDirty=!1),this._needsNormal}find(e){if(e===""||e===void 0)return;let n=this.entityByUuid[e];return n===void 0?this.getObjectByProperty("uuid",e):n}get enableFog(){return this.fog!==null}set enableFog(e){this.fog=e===!0?this.backupFog:null}init(e,n){if(this.createChildrenObjects(e.objects,this,n),this.personalCamera.removeFromParent(),this.add(this.personalCamera),this.ambientLight.removeFromParent(),this.add(this.ambientLight),this.setBackgroundColor(it(e.backgroundColor,n)),this.updateFog(e.fog,n),this.updateAmbientLight(e.environment.ambientLight,n),this.activeCamera=this.personalCamera,e.publish.playCamera!==null){let o=this.find(e.publish.playCamera);o instanceof nn&&this.switchActiveCamera(o)}this.traverse(o=>{Ir(o)&&o.recomputeBoolean()})}clearScene(){this.traverseEntity(e=>{D0(e)});for(let e of this.children)Nr(e)&&e.removeFromParent()}resetAfterClear(e,n){this.init(e,n)}createPersonalCamera(){let e=nn.createFromState(Ap.PERSONAL_CAMERA_ID,{...js.defaultData,name:"Personal Camera"});return e.objectHelper.visible=!1,delete e.isEntity,this.registerObjectCreatedInLegacy(e),e}raycast(e){let n=[],o=i=>{for(let a of i.children)Nr(a)&&!a.raycastLock&&a.visible&&((Or(a)||yl(a)&&this.enableHelpers&&a.objectHelper.visible)&&(e.intersectObject(a,!1,n),B0(a,e,n)),o(a))};return o(this),n}traverseEntity(e){for(let n of this.children)Nr(n)&&n.traverseEntity(e)}traverseVisibleEntity(e){for(let n of this.children)Nr(n)&&n.visible&&n.traverseVisibleEntity(e)}updateFog(e,n){this.enableFog=e.enabled,this.fogUseBGColor=e.useBackgroundColor,e.useBackgroundColor?this.backupFog.color.set(this.bgColor):this.backupFog.color=it(e.color,n),this.backupFog.near=e.near,this.backupFog.far=e.far}dispose(){this.clearScene()}updateAmbientLight(e,n){ig(this.ambientLight,e,n),e.groundColor!==void 0&&(this.ambientLight.groundColor=it(e.groundColor,n)),e.enabled!==void 0&&(this.ambientLight.visible=e.enabled)}switchActiveCamera(e){this.activeCamera!==this.personalCamera&&(this.activeCamera.objectHelper.visible=!0),this.activeCamera=e,e.objectHelper.visible=!1}setBackgroundColor(e){this.bgColor=e,this.fogUseBGColor===!0&&(this.backupFog.color=e)}createChildrenObjects(e,n,o){for(let i of e)this.createChildObject(i.id,i.data,i.children,n,o)}registerObjectCreatedInLegacy(e){this.entityByUuid[e.uuid]=e}unregisterObject(e){delete this.entityByUuid[e.uuid];for(let n of e.children)this.unregisterObject(n)}createChildObject(e,n,o,i,a){let s=I0(e,n,a);return s&&(this.entityByUuid[e]=s,i.add(s),Ir(i)&&Or(s)&&(s.prevBooleanObjectParent=i),this.createChildrenObjects(o,s,a)),s}getCenter(e){let n=[];for(let i=0,a=e.length;i<a;++i){let{id:s,recursive:l}=e[i],u=this.find(s),c=l?u.recursiveBBox:u.singleBBox;n.push(...c.vertices)}let o=new kN;return o.setFromPoints(n),o.getCenter(F0),F0}copyMatrixWorld(e,n){if(e===null){n.identity();return}let o=this.find(e);o?n.copy(o.matrixWorld):n.identity()}copyParentMatrixWorld(e,n){if(e===null){n.identity();return}let o=this.find(e)?.parent;o?n.copy(o.matrixWorld):n.identity()}traverseMaterial(e){this.traverseEntity(n=>{if(n instanceof ct)if(Array.isArray(n.material))for(let o=0;o<n.material.length;o++)n.material[o]instanceof Ft&&e(n.material[o]);else n.material instanceof Ft&&e(n.material)})}updateCanvasSize(e,n){this.activeCamera.setViewplaneSize(e,n);let o,i;e>=n?(o=n/e,i=1):(o=1,i=e/n),this.traverseMaterial(a=>{a.getLayersOfType("transmission").forEach(l=>{l.uniforms[`f${l.id}_aspectRatio`].value.x=o,l.uniforms[`f${l.id}_aspectRatio`].value.y=i})})}},za=Ap;za.PERSONAL_CAMERA_ID="f23858d0-4a3b-4bd8-8173-66ed0af7f6fb-personalCamera";var U0=Dp(R0());var k0=new Map;function G0(r){if(typeof r=="string")return r;let t=k0.get(r);return t||(t={url:URL.createObjectURL(new Blob([r]))},k0.set(r,t)),t.url}var _i=class{constructor({src:t,volume:e,delay:n,loop:o}){this._volume=1;this.delay=0;this._loop=1;this.loopsRemaining=0;this._status="stopped";this.onEnd=()=>{this.loopsRemaining===1/0?this.replay():this.loopsRemaining>1?(this.replay(),this.loopsRemaining--):(this._status="stopped",this.loopsRemaining=this._loop)};let i;typeof t=="string"?i={src:t}:i={src:G0(t),format:"wav"},this.sound=new U0.Howl(i),this.sound.on("end",this.onEnd),this.src=t,e!==void 0&&(this.volume=e),n!==void 0&&(this.delay=n),o!==void 0&&(this.loop=o)}get status(){return this._status}get volume(){return this._volume}set volume(t){this._volume=t,this.sound.volume(t)}get loop(){return this._loop}set loop(t){this._loop=t,this.loopsRemaining=t}replay(){this.clearDelay(),this.delayTimerId=window.setTimeout(()=>{this.sound.play(),this.clearDelay()},this.delay)}fade(t,e=1e3){t?(this.sound.volume(this._volume),this.clearFade(),this.fadeTimerId=window.setTimeout(()=>{this.sound.fade(this._volume,0,e),this.clearFade()},t)):this.sound.fade(this._volume,0,e)}on(t,e,n){this.sound.on(t,e,n)}off(t,e,n){this.sound.off(t,e,n)}play(){this._status==="playing"||this.sound.playing()||(this._status==="paused"?(this.sound.seek()===0?this.replay():this.sound.play(),this._status="playing"):this._status==="stopped"&&(this.replay(),this._status="playing"))}pause(){this._status==="playing"&&(this.sound.pause(),this.clearFade(),this.clearDelay(),this._status="paused")}stop(){this.sound.stop(),this.loopsRemaining=this._loop,this.clearFade(),this.clearDelay(),this._status="stopped"}clearFade(){this.fadeTimerId&&(clearTimeout(this.fadeTimerId),delete this.fadeTimerId)}clearDelay(){this.delayTimerId&&(clearTimeout(this.delayTimerId),delete this.delayTimerId)}dispose(t=!1){this.off(),this.stop(),this.clearFade(),this.clearDelay()}};function Oi(r){this.char=r,this.state={},this.activeState=null}function _p(r,t,e){this.contextName=e,this.startIndex=r,this.endOffset=t}function GN(r,t,e){this.contextName=r,this.openRange=null,this.ranges=[],this.checkStart=t,this.checkEnd=e}function St(r,t){this.context=r,this.index=t,this.length=r.length,this.current=r[t],this.backtrack=r.slice(0,t),this.lookahead=r.slice(t+1)}function Zl(r){this.eventId=r,this.subscribers=[]}function UN(r){let t=["start","end","next","newToken","contextStart","contextEnd","insertToken","removeToken","removeRange","replaceToken","replaceRange","composeRUD","updateContextsRanges"];t.forEach(n=>{Object.defineProperty(this.events,n,{value:new Zl(n)})}),r&&t.forEach(n=>{let o=r[n];typeof o=="function"&&this.events[n].subscribe(o)}),["insertToken","removeToken","removeRange","replaceToken","replaceRange","composeRUD"].forEach(n=>{this.events[n].subscribe(this.updateContextsRanges)})}function He(r){this.tokens=[],this.registeredContexts={},this.contextCheckers=[],this.events={},this.registeredModifiers=[],UN.call(this,r)}Oi.prototype.setState=function(r,t){return this.state[r]=t,this.activeState={key:r,value:this.state[r]},this.activeState};Oi.prototype.getState=function(r){return this.state[r]||null};He.prototype.inboundIndex=function(r){return r>=0&&r<this.tokens.length};He.prototype.composeRUD=function(r){let e=r.map(o=>this[o[0]].apply(this,o.slice(1).concat(!0))),n=o=>typeof o=="object"&&o.hasOwnProperty("FAIL");if(e.every(n))return{FAIL:"composeRUD: one or more operations hasn't completed successfully",report:e.filter(n)};this.dispatch("composeRUD",[e.filter(o=>!n(o))])};He.prototype.replaceRange=function(r,t,e,n){t=t!==null?t:this.tokens.length;let o=e.every(i=>i instanceof Oi);if(!isNaN(r)&&this.inboundIndex(r)&&o){let i=this.tokens.splice.apply(this.tokens,[r,t].concat(e));return n||this.dispatch("replaceToken",[r,t,e]),[i,e]}else return{FAIL:"replaceRange: invalid tokens or startIndex."}};He.prototype.replaceToken=function(r,t,e){if(!isNaN(r)&&this.inboundIndex(r)&&t instanceof Oi){let n=this.tokens.splice(r,1,t);return e||this.dispatch("replaceToken",[r,t]),[n[0],t]}else return{FAIL:"replaceToken: invalid token or index."}};He.prototype.removeRange=function(r,t,e){t=isNaN(t)?this.tokens.length:t;let n=this.tokens.splice(r,t);return e||this.dispatch("removeRange",[n,r,t]),n};He.prototype.removeToken=function(r,t){if(!isNaN(r)&&this.inboundIndex(r)){let e=this.tokens.splice(r,1);return t||this.dispatch("removeToken",[e,r]),e}else return{FAIL:"removeToken: invalid token index."}};He.prototype.insertToken=function(r,t,e){return r.every(o=>o instanceof Oi)?(this.tokens.splice.apply(this.tokens,[t,0].concat(r)),e||this.dispatch("insertToken",[r,t]),r):{FAIL:"insertToken: invalid token(s)."}};He.prototype.registerModifier=function(r,t,e){this.events.newToken.subscribe(function(n,o){let i=[n,o],a=t===null||t.apply(this,i)===!0,s=[n,o];if(a){let l=e.apply(this,s);n.setState(r,l)}}),this.registeredModifiers.push(r)};Zl.prototype.subscribe=function(r){return typeof r=="function"?this.subscribers.push(r)-1:{FAIL:`invalid '${this.eventId}' event handler`}};Zl.prototype.unsubscribe=function(r){this.subscribers.splice(r,1)};St.prototype.setCurrentIndex=function(r){this.index=r,this.current=this.context[r],this.backtrack=this.context.slice(0,r),this.lookahead=this.context.slice(r+1)};St.prototype.get=function(r){switch(!0){case r===0:return this.current;case(r<0&&Math.abs(r)<=this.backtrack.length):return this.backtrack.slice(r)[0];case(r>0&&r<=this.lookahead.length):return this.lookahead[r-1];default:return null}};He.prototype.rangeToText=function(r){if(r instanceof _p)return this.getRangeTokens(r).map(t=>t.char).join("")};He.prototype.getText=function(){return this.tokens.map(r=>r.char).join("")};He.prototype.getContext=function(r){let t=this.registeredContexts[r];return t||null};He.prototype.on=function(r,t){let e=this.events[r];return e?e.subscribe(t):null};He.prototype.dispatch=function(r,t){let e=this.events[r];e instanceof Zl&&e.subscribers.forEach(n=>{n.apply(this,t||[])})};He.prototype.registerContextChecker=function(r,t,e){if(this.getContext(r))return{FAIL:`context name '${r}' is already registered.`};if(typeof t!="function")return{FAIL:"missing context start check."};if(typeof e!="function")return{FAIL:"missing context end check."};let n=new GN(r,t,e);return this.registeredContexts[r]=n,this.contextCheckers.push(n),n};He.prototype.getRangeTokens=function(r){let t=r.startIndex+r.endOffset;return[].concat(this.tokens.slice(r.startIndex,t))};He.prototype.getContextRanges=function(r){let t=this.getContext(r);return t?t.ranges:{FAIL:`context checker '${r}' is not registered.`}};He.prototype.resetContextsRanges=function(){let r=this.registeredContexts;for(let t in r)if(r.hasOwnProperty(t)){let e=r[t];e.ranges=[]}};He.prototype.updateContextsRanges=function(){this.resetContextsRanges();let r=this.tokens.map(t=>t.char);for(let t=0;t<r.length;t++){let e=new St(r,t);this.runContextCheck(e)}this.dispatch("updateContextsRanges",[this.registeredContexts])};He.prototype.setEndOffset=function(r,t){let e=this.getContext(t).openRange.startIndex,n=new _p(e,r,t),o=this.getContext(t).ranges;return n.rangeId=`${t}.${o.length}`,o.push(n),this.getContext(t).openRange=null,n};He.prototype.runContextCheck=function(r){let t=r.index;this.contextCheckers.forEach(e=>{let n=e.contextName,o=this.getContext(n).openRange;if(!o&&e.checkStart(r)&&(o=new _p(t,null,n),this.getContext(n).openRange=o,this.dispatch("contextStart",[n,t])),!!o&&e.checkEnd(r)){let i=t-o.startIndex+1,a=this.setEndOffset(i,n);this.dispatch("contextEnd",[n,a])}})};He.prototype.tokenize=function(r){this.tokens=[],this.resetContextsRanges();let t=Array.from(r);this.dispatch("start");for(let e=0;e<t.length;e++){let n=t[e],o=new St(t,e);this.dispatch("next",[o]),this.runContextCheck(o);let i=new Oi(n);this.tokens.push(i),this.dispatch("newToken",[i,o])}return this.dispatch("end",[this.tokens]),this.tokens};var V0=He;function Wr(r){return/[\u0600-\u065F\u066A-\u06D2\u06FA-\u06FF]/.test(r)}function Op(r){return/[\u0630\u0690\u0621\u0631\u0661\u0671\u0622\u0632\u0672\u0692\u06C2\u0623\u0673\u0693\u06C3\u0624\u0694\u06C4\u0625\u0675\u0695\u06C5\u06E5\u0676\u0696\u06C6\u0627\u0677\u0697\u06C7\u0648\u0688\u0698\u06C8\u0689\u0699\u06C9\u068A\u06CA\u066B\u068B\u06CB\u068C\u068D\u06CD\u06FD\u068E\u06EE\u06FE\u062F\u068F\u06CF\u06EF]/.test(r)}function hr(r){return/[\u0600-\u0605\u060C-\u060E\u0610-\u061B\u061E\u064B-\u065F\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED]/.test(r)}function ja(r){return/[A-z]/.test(r)}function z0(r){return/\s/.test(r)}function Gt(r){this.font=r,this.features={}}function sn(r){this.id=r.id,this.tag=r.tag,this.substitution=r.substitution}function Ha(r,t){if(!r)return-1;switch(t.format){case 1:return t.glyphs.indexOf(r);case 2:let e=t.ranges;for(let n=0;n<e.length;n++){let o=e[n];if(r>=o.start&&r<=o.end){let i=r-o.start;return o.index+i}}break;default:return-1}return-1}function VN(r,t){return Ha(r,t.coverage)===-1?null:r+t.deltaGlyphId}function zN(r,t){let e=Ha(r,t.coverage);return e===-1?null:t.substitute[e]}function Ip(r,t){let e=[];for(let n=0;n<r.length;n++){let o=r[n],i=t.current;i=Array.isArray(i)?i[0]:i;let a=Ha(i,o);a!==-1&&e.push(a)}return e.length!==r.length?-1:e}function jN(r,t){let e=t.inputCoverage.length+t.lookaheadCoverage.length+t.backtrackCoverage.length;if(r.context.length<e)return[];let n=Ip(t.inputCoverage,r);if(n===-1)return[];let o=t.inputCoverage.length-1;if(r.lookahead.length<t.lookaheadCoverage.length)return[];let i=r.lookahead.slice(o);for(;i.length&&hr(i[0].char);)i.shift();let a=new St(i,0),s=Ip(t.lookaheadCoverage,a),l=[].concat(r.backtrack);for(l.reverse();l.length&&hr(l[0].char);)l.shift();if(l.length<t.backtrackCoverage.length)return[];let u=new St(l,0),c=Ip(t.backtrackCoverage,u),p=n.length===t.inputCoverage.length&&s.length===t.lookaheadCoverage.length&&c.length===t.backtrackCoverage.length,f=[];if(p)for(let d=0;d<t.lookupRecords.length;d++){let m=t.lookupRecords[d].lookupListIndex,g=this.getLookupByIndex(m);for(let v=0;v<g.subtables.length;v++){let x=g.subtables[v],S=this.getLookupMethod(g,x);if(this.getSubstitutionType(g,x)==="12")for(let b=0;b<n.length;b++){let _=r.get(b),T=S(_);T&&f.push(T)}}}return f}function HN(r,t){let e=r.current,n=Ha(e,t.coverage);if(n===-1)return null;let o,i=t.ligatureSets[n];for(let a=0;a<i.length;a++){o=i[a];for(let s=0;s<o.components.length;s++){let l=r.lookahead[s],u=o.components[s];if(l!==u)break;if(s===o.components.length-1)return o}}return null}function WN(r,t){let e=Ha(r,t.coverage);return e===-1?null:t.sequences[e]}Gt.prototype.getDefaultScriptFeaturesIndexes=function(){let r=this.font.tables.gsub.scripts;for(let t=0;t<r.length;t++){let e=r[t];if(e.tag==="DFLT")return e.script.defaultLangSys.featureIndexes}return[]};Gt.prototype.getScriptFeaturesIndexes=function(r){if(!this.font.tables.gsub)return[];if(!r)return this.getDefaultScriptFeaturesIndexes();let e=this.font.tables.gsub.scripts;for(let n=0;n<e.length;n++){let o=e[n];if(o.tag===r&&o.script.defaultLangSys)return o.script.defaultLangSys.featureIndexes;{let i=o.langSysRecords;if(i)for(let a=0;a<i.length;a++){let s=i[a];if(s.tag===r)return s.langSys.featureIndexes}}}return this.getDefaultScriptFeaturesIndexes()};Gt.prototype.mapTagsToFeatures=function(r,t){let e={};for(let n=0;n<r.length;n++){let o=r[n].tag,i=r[n].feature;e[o]=i}this.features[t].tags=e};Gt.prototype.getScriptFeatures=function(r){let t=this.features[r];if(this.features.hasOwnProperty(r))return t;let e=this.getScriptFeaturesIndexes(r);if(!e)return null;let n=this.font.tables.gsub;return t=e.map(o=>n.features[o]),this.features[r]=t,this.mapTagsToFeatures(t,r),t};Gt.prototype.getSubstitutionType=function(r,t){let e=r.lookupType.toString(),n=t.substFormat.toString();return e+n};Gt.prototype.getLookupMethod=function(r,t){switch(this.getSubstitutionType(r,t)){case"11":return n=>VN.apply(this,[n,t]);case"12":return n=>zN.apply(this,[n,t]);case"63":return n=>jN.apply(this,[n,t]);case"41":return n=>HN.apply(this,[n,t]);case"21":return n=>WN.apply(this,[n,t]);default:throw new Error(`lookupType: ${r.lookupType} - substFormat: ${t.substFormat} is not yet supported`)}};Gt.prototype.lookupFeature=function(r){let t=r.contextParams,e=t.index,n=this.getFeature({tag:r.tag,script:r.script});if(!n)return new Error(`font '${this.font.names.fullName.en}' doesn't support feature '${r.tag}' for script '${r.script}'.`);let o=this.getFeatureLookups(n),i=[].concat(t.context);for(let a=0;a<o.length;a++){let s=o[a],l=this.getLookupSubtables(s);for(let u=0;u<l.length;u++){let c=l[u],p=this.getSubstitutionType(s,c),f=this.getLookupMethod(s,c),d;switch(p){case"11":d=f(t.current),d&&i.splice(e,1,new sn({id:11,tag:r.tag,substitution:d}));break;case"12":d=f(t.current),d&&i.splice(e,1,new sn({id:12,tag:r.tag,substitution:d}));break;case"63":d=f(t),Array.isArray(d)&&d.length&&i.splice(e,1,new sn({id:63,tag:r.tag,substitution:d}));break;case"41":d=f(t),d&&i.splice(e,1,new sn({id:41,tag:r.tag,substitution:d}));break;case"21":d=f(t.current),d&&i.splice(e,1,new sn({id:21,tag:r.tag,substitution:d}));break}t=new St(i,e),!(Array.isArray(d)&&!d.length)&&(d=null)}}return i.length?i:null};Gt.prototype.supports=function(r){if(!r.script)return!1;this.getScriptFeatures(r.script);let t=this.features.hasOwnProperty(r.script);if(!r.tag)return t;let e=this.features[r.script].some(n=>n.tag===r.tag);return t&&e};Gt.prototype.getLookupSubtables=function(r){return r.subtables||null};Gt.prototype.getLookupByIndex=function(r){return this.font.tables.gsub.lookups[r]||null};Gt.prototype.getFeatureLookups=function(r){return r.lookupListIndexes.map(this.getLookupByIndex.bind(this))};Gt.prototype.getFeature=function(t){if(!this.font)return{FAIL:"No font was found"};this.features.hasOwnProperty(t.script)||this.getScriptFeatures(t.script);let e=this.features[t.script];return e?e.tags[t.tag]?this.features[t.script].tags[t.tag]:null:{FAIL:`No feature for script ${t.script}`}};var j0=Gt;function qN(r){let t=r.current,e=r.get(-1);return e===null&&Wr(t)||!Wr(e)&&Wr(t)}function XN(r){let t=r.get(1);return t===null||!Wr(t)}var H0={startCheck:qN,endCheck:XN};function YN(r){let t=r.current,e=r.get(-1);return(Wr(t)||hr(t))&&!Wr(e)}function $N(r){let t=r.get(1);switch(!0){case t===null:return!0;case(!Wr(t)&&!hr(t)):let e=z0(t);if(!e)return!0;if(e){let n=!1;if(n=r.lookahead.some(o=>Wr(o)||hr(o)),!n)return!0}break;default:return!1}}var W0={startCheck:YN,endCheck:$N};function KN(r,t,e){t[e].setState(r.tag,r.substitution)}function ZN(r,t,e){t[e].setState(r.tag,r.substitution)}function QN(r,t,e){r.substitution.forEach((n,o)=>{t[e+o].setState(r.tag,n)})}function JN(r,t,e){let n=t[e];n.setState(r.tag,r.substitution.ligGlyph);let o=r.substitution.components.length;for(let i=0;i<o;i++)n=t[e+i+1],n.setState("deleted",!0)}var q0={11:KN,12:ZN,63:QN,41:JN};function eP(r,t,e){r instanceof sn&&q0[r.id]&&q0[r.id](r,t,e)}var Ii=eP;function tP(r){let t=[].concat(r.backtrack);for(let e=t.length-1;e>=0;e--){let n=t[e],o=Op(n),i=hr(n);if(!o&&!i)return!0;if(o)return!1}return!1}function rP(r){if(Op(r.current))return!1;for(let t=0;t<r.lookahead.length;t++){let e=r.lookahead[t];if(!hr(e))return!0}return!1}function nP(r){let t="arab",e=this.featuresTags[t],n=this.tokenizer.getRangeTokens(r);if(n.length===1)return;let o=new St(n.map(a=>a.getState("glyphIndex")),0),i=new St(n.map(a=>a.char),0);n.forEach((a,s)=>{if(hr(a.char))return;o.setCurrentIndex(s),i.setCurrentIndex(s);let l=0;tP(i)&&(l|=1),rP(i)&&(l|=2);let u;switch(l){case 1:u="fina";break;case 2:u="init";break;case 3:u="medi";break}if(e.indexOf(u)===-1)return;let c=this.query.lookupFeature({tag:u,script:t,contextParams:o});if(c instanceof Error)return console.info(c.message);c.forEach((p,f)=>{p instanceof sn&&(Ii(p,n,f),o.context[f]=p.substitution)})})}var X0=nP;function Y0(r,t){let e=r.map(n=>n.activeState.value);return new St(e,t||0)}function oP(r){let t="arab",e=this.tokenizer.getRangeTokens(r),n=Y0(e);n.context.forEach((o,i)=>{n.setCurrentIndex(i);let a=this.query.lookupFeature({tag:"rlig",script:t,contextParams:n});a.length&&(a.forEach(s=>Ii(s,e,i)),n=Y0(e))})}var $0=oP;function iP(r){let t=r.current,e=r.get(-1);return e===null&&ja(t)||!ja(e)&&ja(t)}function aP(r){let t=r.get(1);return t===null||!ja(t)}var K0={startCheck:iP,endCheck:aP};function Z0(r,t){let e=r.map(n=>n.activeState.value);return new St(e,t||0)}function sP(r){let t="latn",e=this.tokenizer.getRangeTokens(r),n=Z0(e);n.context.forEach((o,i)=>{n.setCurrentIndex(i);let a=this.query.lookupFeature({tag:"liga",script:t,contextParams:n});a.length&&(a.forEach(s=>Ii(s,e,i)),n=Z0(e))})}var Q0=sP;function mr(r){this.baseDir=r||"ltr",this.tokenizer=new V0,this.featuresTags={}}mr.prototype.setText=function(r){this.text=r};mr.prototype.contextChecks={latinWordCheck:K0,arabicWordCheck:H0,arabicSentenceCheck:W0};function Lp(r){let t=this.contextChecks[`${r}Check`];return this.tokenizer.registerContextChecker(r,t.startCheck,t.endCheck)}function lP(){return Lp.call(this,"latinWord"),Lp.call(this,"arabicWord"),Lp.call(this,"arabicSentence"),this.tokenizer.tokenize(this.text)}function cP(){this.tokenizer.getContextRanges("arabicSentence").forEach(t=>{let e=this.tokenizer.getRangeTokens(t);this.tokenizer.replaceRange(t.startIndex,t.endOffset,e.reverse())})}mr.prototype.registerFeatures=function(r,t){let e=t.filter(n=>this.query.supports({script:r,tag:n}));this.featuresTags.hasOwnProperty(r)?this.featuresTags[r]=this.featuresTags[r].concat(e):this.featuresTags[r]=e};mr.prototype.applyFeatures=function(r,t){if(!r)throw new Error("No valid font was provided to apply features");this.query||(this.query=new j0(r));for(let e=0;e<t.length;e++){let n=t[e];!this.query.supports({script:n.script})||this.registerFeatures(n.script,n.tags)}};mr.prototype.registerModifier=function(r,t,e){this.tokenizer.registerModifier(r,t,e)};function Np(){if(this.tokenizer.registeredModifiers.indexOf("glyphIndex")===-1)throw new Error("glyphIndex modifier is required to apply arabic presentation features.")}function uP(){let r="arab";if(!this.featuresTags.hasOwnProperty(r))return;Np.call(this),this.tokenizer.getContextRanges("arabicWord").forEach(e=>{X0.call(this,e)})}function pP(){let r="arab";if(!this.featuresTags.hasOwnProperty(r)||this.featuresTags[r].indexOf("rlig")===-1)return;Np.call(this),this.tokenizer.getContextRanges("arabicWord").forEach(n=>{$0.call(this,n)})}function fP(){let r="latn";if(!this.featuresTags.hasOwnProperty(r)||this.featuresTags[r].indexOf("liga")===-1)return;Np.call(this),this.tokenizer.getContextRanges("latinWord").forEach(n=>{Q0.call(this,n)})}mr.prototype.checkContextReady=function(r){return!!this.tokenizer.getContext(r)};mr.prototype.applyFeaturesToContexts=function(){this.checkContextReady("arabicWord")&&(uP.call(this),pP.call(this)),this.checkContextReady("latinWord")&&fP.call(this),this.checkContextReady("arabicSentence")&&cP.call(this)};mr.prototype.processText=function(r){(!this.text||this.text!==r)&&(this.setText(r),lP.call(this),this.applyFeaturesToContexts())};mr.prototype.getBidiText=function(r){return this.processText(r),this.tokenizer.getText()};mr.prototype.getTextGlyphs=function(r){this.processText(r);let t=[];for(let e=0;e<this.tokenizer.tokens.length;e++){let n=this.tokenizer.tokens[e];if(n.state.deleted)continue;let o=n.activeState.value;t.push(Array.isArray(o)?o[0]:o)}return t};var J0=mr;import{Box2 as dP,Vector2 as uo,Path as ev,Shape as hP,ShapeUtils as mP,Color as gP}from"three";var Ql=class{constructor(){this.type="ShapePath";this.color=new gP;this.subPaths=[];this.currentPath=null}moveTo(t,e){return this.currentPath=new ev,this.subPaths.push(this.currentPath),this.currentPath.moveTo(t,e),this}lineTo(t,e){return this.currentPath?.lineTo(t,e),this}quadraticCurveTo(t,e,n,o){return this.currentPath?.quadraticCurveTo(t,e,n,o),this}bezierCurveTo(t,e,n,o,i,a){return this.currentPath?.bezierCurveTo(t,e,n,o,i,a),this}splineThru(t){return this.currentPath?.splineThru(t),this}toShapes(){let e={ORIGIN:0,DESTINATION:1,BETWEEN:2,LEFT:3,RIGHT:4,BEHIND:5,BEYOND:6},n={loc:e.ORIGIN,t:0};function o(m,g,v,x){let S=m.x,w=g.x,b=v.x,_=x.x,T=m.y,y=g.y,O=v.y,A=x.y,I=(_-b)*(T-O)-(A-O)*(S-b),C=(w-S)*(T-O)-(y-T)*(S-b),N=(A-O)*(w-S)-(_-b)*(y-T),P=I/N,G=C/N;if(N===0&&I!==0||P<=0||P>=1||G<0||G>1)return null;if(I===0&&N===0){for(let $=0;$<2;$++)if(i($===0?v:x,m,g),n.loc===e.ORIGIN){let Y=$===0?v:x;return{x:Y.x,y:Y.y,t:n.t}}else if(n.loc===e.BETWEEN){let Y=+(S+n.t*(w-S)).toPrecision(10),ie=+(T+n.t*(y-T)).toPrecision(10);return{x:Y,y:ie,t:n.t}}return null}else{for(let ie=0;ie<2;ie++)if(i(ie===0?v:x,m,g),n.loc===e.ORIGIN){let j=ie===0?v:x;return{x:j.x,y:j.y,t:n.t}}let $=+(S+P*(w-S)).toPrecision(10),Y=+(T+P*(y-T)).toPrecision(10);return{x:$,y:Y,t:P}}}function i(m,g,v){let x=v.x-g.x,S=v.y-g.y,w=m.x-g.x,b=m.y-g.y,_=x*b-w*S;if(m.x===g.x&&m.y===g.y){n.loc=e.ORIGIN,n.t=0;return}if(m.x===v.x&&m.y===v.y){n.loc=e.DESTINATION,n.t=1;return}if(_<-Number.EPSILON){n.loc=e.LEFT;return}if(_>Number.EPSILON){n.loc=e.RIGHT;return}if(x*w<0||S*b<0){n.loc=e.BEHIND;return}if(Math.sqrt(x*x+S*S)<Math.sqrt(w*w+b*b)){n.loc=e.BEYOND;return}let T;x!==0?T=w/x:T=b/S,n.loc=e.BETWEEN,n.t=T}function a(m,g){let v=[],x=[];for(let S=1;S<m.length;S++){let w=m[S-1],b=m[S];for(let _=1;_<g.length;_++){let T=g[_-1],y=g[_],O=o(w,b,T,y);O!==null&&v.find(A=>A.t<=O.t+Number.EPSILON&&A.t>=O.t-Number.EPSILON)===void 0&&(v.push(O),x.push(new uo(O.x,O.y)))}}return x}function s(m,g,v){let x=new uo;g.getCenter(x);let S=[];return v.forEach(w=>{w.boundingBox.containsPoint(x)&&a(m,w.points).forEach(_=>{S.push({identifier:w.identifier,isCW:w.isCW,point:_})})}),S.sort((w,b)=>w.point.x-b.point.x),S}function l(m,g,v,x,S){(S==null||S==="")&&(S="nonzero");let w=new uo;m.boundingBox.getCenter(w);let b=[new uo(v,w.y),new uo(x,w.y)],_=s(b,m.boundingBox,g);_.sort((C,N)=>C.point.x-N.point.x);let T=[],y=[];_.forEach(C=>{C.identifier===m.identifier?T.push(C):y.push(C)});let O=T[0].point.x,A=[],I=0;for(;I<y.length&&y[I].point.x<O;)A.length>0&&A[A.length-1]===y[I].identifier?A.pop():A.push(y[I].identifier),I++;if(A.push(m.identifier),S==="evenodd"){let C=A.length%2===0,N=A[A.length-2];return{identifier:m.identifier,isHole:C,for:N}}else if(S==="nonzero"){let C=!0,N=null,P=null;for(let G=0;G<A.length;G++){let $=A[G];g[$]&&(C?(P=g[$].isCW,C=!1,N=$):P!==g[$].isCW&&(P=g[$].isCW,C=!0))}return{identifier:m.identifier,isHole:C,for:N}}else console.warn('fill-rule: "'+S+'" is currently not implemented.')}let u=0,c=999999999,p=-999999999,f=[];this.subPaths.forEach(m=>{let g=m.getPoints(),v=-999999999,x=999999999,S=-999999999,w=999999999;for(let b=0;b<g.length;b++){let _=g[b];_.y>v&&(v=_.y),_.y<x&&(x=_.y),_.x>S&&(S=_.x),_.x<w&&(w=_.x)}p<=S&&(p=S+1),c>=w&&(c=w-1),g.length&&f.push({curves:m.curves,points:g,isCW:mP.isClockWise(g),identifier:u++,boundingBox:new dP(new uo(w,x),new uo(S,v))})});let d=f.map(m=>l(m,f,c,p,this.userData?.style.fillRule)),h=[];return f.forEach(m=>{let g=d[m.identifier];if(g&&!g.isHole){let v=new hP;v.curves=m.curves,d.filter(S=>S?.isHole&&S.for===m.identifier).forEach(S=>{if(S){let w=f[S.identifier],b=new ev;b.curves=w.curves,v.holes.push(b)}}),h.push(v)}}),h}};function yP(r,t){return t.state.glyphIndex===r||t.state.fina===r||t.state.medi===r||t.state.init===r}var Jl=class{constructor(t,e){this._arrayBuffer=new ArrayBuffer(1);this._isLoaded=!1;this._intercepted=!1;this._isUserFont=t.isUserFont??!1,this._loadingPromise=Tp(t).then(n=>{n&&(this._arrayBuffer=n.arr,this._url=n.url,this.font=n.font,this._intercepted=n.intercepted,this._isLoaded=!0,e())})}update(t,e){this._isLoaded=!1,this._isUserFont=t.isUserFont??!1,this._loadingPromise=Tp(t).then(n=>{n&&(this._arrayBuffer=n.arr,this._url=n.url,this.font=n.font,this._intercepted=n.intercepted,this._isLoaded=!0,e())})}get url(){return this._url}get intercepted(){return this._intercepted}get isLoaded(){return this._isLoaded}get loadingPromise(){return this._loadingPromise}reverseLigaturesTable(t,e,n){let o=new J0,i=c=>t.charToGlyphIndex(c.char);o.registerModifier("glyphIndex",null,i),o.applyFeatures(t,t.defaultRenderOptions.features),o.getTextGlyphs(e);let a=o.tokenizer.tokens,s=[],l=0,u=n.length===a.length;for(let c=0;c<n.length;c++){let p=n[c].index,f=String.fromCharCode(n[c].unicode),d=a[l];if(yP(p,d)||u)s.push({char:f,index:p,replacements:[d.state.glyphIndex],replacementChars:[d.char]}),l++;else{let h=d.char,m="",g=[d.state.glyphIndex],v=[],x=!1;for(;!x;)l++,m=e.charAt(l),h+=m,g.push(t.charToGlyphIndex(m)),v=t.stringToGlyphs(h),v.length===1&&v[0].index===p&&(x=!0),l>e.length&&(x=!0);s.push({char:f,index:p,replacements:g,replacementChars:Array.from(h)}),l++}}return s}async generateShapes(t,e){await this._loadingPromise;let n=this.font,o=e.fontSize/this.unitsPerEm,i=e.fontSize*e.lineHeight,a=t.map(v=>this.getTextWidth(v,e)),s=e.width,l=this.getLineInitialOffsetX(a[0],s,e.horizontalAlign),u=this.getLineInitialOffsetY(i,t.length,e.height,o,e.verticalAlign),c=this.computeSpaceWidthForLine(t,0,e),p=this.getCharWidth(`
1335
1335
  `,e),f=[],d=t.map(v=>[]),h=t.map(v=>[]),m;for(let v=0;v<t.length;v++){let x=t[v],S={features:{liga:!0}},w=[];try{w=n.stringToGlyphs(x,S)}catch(_){console.warn(_)}l=this.getLineInitialOffsetX(a[v],s,e.horizontalAlign);let b=[];try{b=this.reverseLigaturesTable(n,x,w)}catch(_){console.warn(_)}c=this.computeSpaceWidthForLine(t,v,e);for(let _=0;_<w.length;_++){let T=w[_],y=T.index===0?`
1336
- `:T.unicode?String.fromCharCode(T.unicode):void 0,I=b[_],A=0,O=0;_===0&&e.horizontalAlign===2&&T.leftSideBearing!==void 0&&(O=-T.leftSideBearing*o),m&&(A=n.getKerningValue(T,m)*o),l+=O+A;let C=0;if(y===`
1337
- `)C=p;else if(y===" ")C=c;else{let N=this.createPath(T,o,l,u,e);N&&(C=N.offsetX-(A+O),f.push(N.path))}if(I.replacements.length===1)h[v].push([l,u]),d[v].push(C);else{let N=I.replacements.map(Y=>(n.glyphs.get(Y).advanceWidth??0)*o),P=N.reduce((Y,ie)=>Y+=ie,0),G=N.map(Y=>Y/P),$=l;for(let Y=0;Y<G.length;Y++){let ie=C*G[Y];h[v].push([$,u]),d[v].push(ie),$+=ie}}l+=C,m=T}u-=i}let g=[];for(let v=0,x=f.length;v<x;v++)g.push(...f[v].toShapes());return{shapes:g,charWidths:d,lineWidths:a,charCoords:h}}get isUserFont(){return this._isUserFont}get arrayBuffer(){return this._arrayBuffer}get ascender(){return this.font?.ascender??0}get descender(){return this.font?.descender??0}get familyName(){return this.font?.names.fontFamily??""}get subfamilyName(){return this.font?.names.fontSubfamily??""}get unitsPerEm(){return this.font?.unitsPerEm??1}getLineInitialOffsetX(t,e,n){return n===3?e*.5-t*.5:n===2?e-t:0}getLineInitialOffsetY(t,e,n,o,i){let a=e*t,s=Math.abs(this.ascender-this.descender)*o,l=t-s,u=-this.ascender*o-l/2;return i===3?-(n-a-u):i===2?-(n*.5-a*.5-u):u}createPath(t,e,n,o,i){let a=t.getPath(n,-o,i.fontSize,{kerning:!1,letterSpacing:i.letterSpacing});if(!a){console.error('THREE.Font: character "'+t+'" does not exists in font family '+this.familyName+".");return}let s=new $l,l=(t.advanceWidth??1)*e;if(t)for(let u of a.commands){let c=s.currentPath?.currentPoint;if(!(c&&u.type!=="Z"&&c.x===u.x&&-c.y===u.y))switch(u.type){case"M":s.moveTo(u.x,-u.y);break;case"L":s.lineTo(u.x,-u.y);break;case"Q":s.quadraticCurveTo(u.x1,-u.y1,u.x,-u.y);break;case"C":s.bezierCurveTo(u.x1,-u.y1,u.x2,-u.y2,u.x,-u.y);break}}return{offsetX:l+i.fontSize*i.letterSpacing,path:s}}getCharWidth(t,e){return this.font?.getAdvanceWidth(t,e.fontSize,{kerning:!0,letterSpacing:e.letterSpacing})??0}getTextWidth(t,e){return this.font?.getAdvanceWidth(t,e.fontSize,{kerning:!0,letterSpacing:e.letterSpacing})??0}computeSpaceWidthForLine(t,e,n){let o=this.getCharWidth(" ",n),i=t[e];if(i){let a=this.countSpaces(i.trimEnd());if(n.horizontalAlign===4&&e<t.length-1&&a){let s=n.width,l=this.getTextWidth(i,n);return(s-(l-a*o))/a}}return o}countSpaces(t){return(t.match(/ /g)||[]).length}};var Wa=class{constructor(t,e={}){this.deletedMaterial=new uo(Bt.defaultTwoLayerData("basic"),this);this.deletedImage=new ro(qs.emptyImage);this.materials={};this.images={};this.colors={};this.audios={};this.fonts={};this.penumbraSize=[];this.onImageLoad=()=>{this._onImageLoad&&this._onImageLoad()};this.onFontLoad=()=>{this._onFontLoad&&this._onFontLoad()};if(e.images)for(let[n,o]of Object.entries(e.images))this.addImage(n,o);if(e.audios)for(let[n,o]of Object.entries(e.audios))this.addAudio(n,o.data);this.reset(t)}setOnImageLoad(t){this._onImageLoad=t}setOnFontLoad(t){this._onFontLoad=t}reset(t){for(let[e,n]of Object.entries(t.images))this.addImage(e,n);for(let[e,n]of Object.entries(t.colors))this.addColor(e,n);for(let[e,n]of Object.entries(t.materials))this.addMaterial(e,new uo(n,this));for(let[e,n]of Object.entries(t.audios))this.addAudio(e,n.data);for(let[e,n]of Object.entries(t.fonts))this.addFont(e,n);this.penumbraSize=t.penumbraSize}addMaterial(t,e){e.uuid=t,this.materials[t]=e}deleteMaterial(t){this.materials[t]&&(this.materials[t].dispose(),delete this.materials[t])}getMaterial(t){let e=this.materials[t];return e}getMaterialOrDeletedPlaceholder(t){return this.materials[t]??this.deletedMaterial}material(t){return typeof t=="string"?this.getMaterialOrDeletedPlaceholder(t):new Ft(t,this)}getMaterials(){return this.materials}addImage(t,e){return this.images[t]?(this.images[t].updateSrc(e.data),!0):(this.images[t]=new ro(e,this.onImageLoad),!1)}deleteImage(t){this.images[t]&&delete this.images[t]}getDefaultImage(){return this.images.image_0}getImage(t){return this.images[t]??this.deletedImage}image(t){return typeof t=="string"?this.getImage(t):new ci(t,this.onImageLoad)}getImages(){return this.images}addColor(t,e){return this.colors[t]?("a"in e?this.colors[t].setRGBA(e.r,e.g,e.b,e.a):this.colors[t].setRGBA(e.r,e.g,e.b,1),!0):("a"in e?this.colors[t]=new Ln(e.r,e.g,e.b,e.a):this.colors[t]=new Ln(e.r,e.g,e.b,1),!1)}updateColor(t,e){if(this.colors[t]){let n=this.colors[t];return this.colors[t].r=e.r??n.r,this.colors[t].g=e.g??n.g,this.colors[t].b=e.b??n.b,this.colors[t].a=e.a??n.a,!0}return!1}deleteColor(t){this.colors[t]&&delete this.colors[t]}getColor(t){return this.colors[t]}color(t){let e;if(typeof t=="string"){let n=this.getColor(t);n?e=n:(console.warn("Tried to create color layer params with a color key that does not exist in the assets manager"),e=new Je(0,0,0,0))}else return"a"in t?new Je(t.r,t.g,t.b,t.a):new Je(t.r,t.g,t.b,1);return e}addAudio(t,e){this.audios[t]=e}getAudio(t){let e=this.audios[t];if(e instanceof Ai)return e;{let n=new Ai({src:e});return this.audios[t]=n,n}}deleteAudio(t){this.audios[t]&&delete this.audios[t]}addFont(t,e){this.fonts[t]=new Ql(e,t,this.onFontLoad)}getFont(t){return this.fonts[t]}deleteFont(t){this.fonts[t]&&delete this.fonts[t]}dispose(){Object.keys(this.materials).forEach(e=>this.deleteMaterial(e)),this._onImageLoad=void 0,Object.values(this.audios).forEach(e=>{e instanceof Ai&&e.dispose()}),this.audios={}}},UK=new Wa(Ws.emptyData());import{DRACOLoader as TP}from"three/examples/jsm/loaders/DRACOLoader.js";var Gn;function CP(){return Gn||(Gn=new TP,Gn.setDecoderPath("https://www.gstatic.com/draco/versioned/decoders/1.5.2/").preload()),Gn.decoderPending}async function AP(r){if(Gn){let t={attributeIDs:Gn.defaultAttributeIDs,attributeTypes:Gn.defaultAttributeTypes,useUniqueIDs:!1},e;try{e=await Gn.decodeGeometry(new Int8Array(r).buffer,t)}catch(n){console.error(n)}if(e)return{index:e.index?{array:e.index.array}:void 0,attributes:Object.entries(e.attributes).map(([n,o])=>({name:n,itemSize:o.itemSize,array:o.array}))}}return null}async function rv(r,t){let[e,n]=fc(ks.deserialize(new Uint8Array(r)));Rh(e);let o=[];e.scene.objects.traverse((i,a)=>{a.type==="Mesh"&&a.geometry.type==="NonParametricGeometry"&&a.geometry.data.draco!==void 0&&o.push(a)}),o.length&&await CP();for(let i of o){let a=await AP(_t(i.geometry.data.draco));if(a){a.index&&(i.geometry.data.index={array:a.index.array,itemSize:1,normalized:!1,type:"Uint32Array"});let s={};a.attributes.forEach(({name:l,array:u,itemSize:c})=>{s[l]={array:u,itemSize:c,type:"Float32Array",normalized:!1}}),i.geometry.data.attributes=s,i.geometry.data.draco=void 0}}return t&&t(e),n.result().data}import{Mesh as QK}from"three";import{mergeBufferGeometries as tZ}from"three/examples/jsm/utils/BufferGeometryUtils.js";function nv(r){let t;if(!!r.index)for(let e=0;e<r.index.array.length;e+=3)t=r.index.array[e],r.index.array[e]=r.index.array[e+2],r.index.array[e+2]=t}import{Color as ov,ShaderLib as _P}from"three";function iv(r){let t=new Set;return r.traverse(e=>{if(Or(e))if(Ue(e.material))e.material.forEach(n=>{let o=n;t.has(o)||t.add(o)});else{let n=e.material;t.has(n)||t.add(n)}}),t.forEach(e=>{if(e instanceof Array)return;let n=e.onBeforeCompile.bind(e);if(IP(e)){Object.assign(e,{isMeshStandardMaterial:!0,isMeshPhysicalMaterial:!0,transmission:1,attenuationColor:new ov,specularColor:new ov});let o=0;e.onBeforeCompile=(i,a)=>{n&&n(i,a),i.uniforms=Object.assign({},_P.physical.uniforms,i.uniforms),e.getLayersOfType("transmission").forEach(s=>{if(i.uniforms.transmissionSamplerMap.value){let l=s.color;l&&(l.transmissionSamplerMap.value=i.uniforms.transmissionSamplerMap.value,l.transmissionSamplerSize.value=i.uniforms.transmissionSamplerSize.value)}else o++,o<2&&(e.needsUpdate=!0)})}}else OP(e)||(e.onBeforeCompile=(o,i)=>{n&&n(o,i),e.transparent=!1})}),r}function IP(r){return r.getLayersOfType("transmission").length>0}function OP(r){let t=0;return r.layers.forEach(e=>{if(e.type!=="light"&&e.type!=="fresnel"){let n=e.uniforms["f"+e.id+"_alpha"];n&&(t+=(1-t)*n.value)}}),t<1}function av(r){return r.traverse(t=>{if(t.type==="Camera"){let e=t;e.type=e.cameraType}}),r}function sv(r){let t=[],e=(n,o=0)=>{let i=o>0?n+o:n;return t.includes(i)?e(n,o+1):i};return r.traverse(n=>{if(t.includes(n.name)){let o=n.name,i=e(n.name);if(n.name=i,n.isMesh){let a=n;a.material instanceof Array?a.material.forEach(s=>{s.name=s.name.replace(o,i)}):a.material.isAsset||(a.material.name=a.material.name.replace(o,i))}}t.push(n.name)}),r}import{mergeBufferGeometries as LP}from"three/examples/jsm/utils/BufferGeometryUtils.js";function lv(r){let t=[];return r.traverse(e=>{e instanceof Kn&&t.push(e)}),t.forEach(e=>{let n=e.object,i=e.children.map(s=>{s.updateMatrix();let l=s.geometry.clone().applyMatrix4(s.matrix);return s.matrix.determinant()<0&&nv(l),l}),a=LP(e.parameters.hideBase?i:[n.geometry,...i]);n.geometry=a,n.remove(e),n.cloner=void 0}),r}function cv(r){return r.traverse(t=>{t.matrixAutoUpdate=!0}),r}function uv(r){Object.values(r.shared.materials).forEach(t=>{Pp(t)}),r.scene.objects.traverse((t,e)=>{"material"in e?Pp(e.material):"materials"in e&&e.materials.forEach(n=>{Pp(n)})})}function Pp(r){if(typeof r=="string")return;let t=[];r.layers.forEach((e,n)=>{e.type==="outline"&&t.push(n)}),t.reverse().forEach(e=>{r.layers.delete(e)}),t.length&&console.warn("The Spline Loader currently does not support the outline layer.")}var pv="The SplineLoader only accepts .splinecode files that are generated from Spline export panel.",Mp=class extends PP{load(t,e,n,o=console.error){let i=new NP(this.manager);i.setPath(this.path),i.setResponseType("arraybuffer"),i.setRequestHeader(this.requestHeader),i.setWithCredentials(this.withCredentials),t.endsWith(".spline")?console.warn(pv+" The .spline files are only meant to be used by the Editor."):t.endsWith(".splinecode")||console.warn(pv),i.load(t,async a=>{try{if(typeof a=="string")throw new Error("The .spline file is not binary!");let s=await this.parse(a);e(s)}catch(s){o(s)}},n,o)}async parse(t){let e=await rv(t,uv),n=new Wa(e.shared);Object.values(n.getMaterials()).forEach(a=>Object.assign(a,{isAsset:!0}));let o=new za(e.scene,n);o.remove(o.personalCamera),e.scene.environment.ambientLight.enabled||o.remove(o.ambientLight);let i=e.scene.publish.playCamera;if(i){let a=o.find(i);a&&rg(a)&&Object.assign(a,{makeDefault:!0})}return o=lv(o),o=iv(o),o=av(o),o=sv(o),o=cv(o),o}};export{Mp as default};
1336
+ `:T.unicode?String.fromCharCode(T.unicode):void 0,O=b[_],A=0,I=0;_===0&&e.horizontalAlign===2&&T.leftSideBearing!==void 0&&(I=-T.leftSideBearing*o),m&&(A=n.getKerningValue(T,m)*o),l+=I+A;let C=0;if(y===`
1337
+ `)C=p;else if(y===" ")C=c;else{let N=this.createPath(T,o,l,u,e);N&&(C=N.offsetX-(A+I),f.push(N.path))}if(O.replacements.length===1)h[v].push([l,u]),d[v].push(C);else{let N=O.replacements.map(Y=>(n.glyphs.get(Y).advanceWidth??0)*o),P=N.reduce((Y,ie)=>Y+=ie,0),G=N.map(Y=>Y/P),$=l;for(let Y=0;Y<G.length;Y++){let ie=C*G[Y];h[v].push([$,u]),d[v].push(ie),$+=ie}}l+=C,m=T}u-=i}let g=[];for(let v=0,x=f.length;v<x;v++)g.push(...f[v].toShapes());return{shapes:g,charWidths:d,lineWidths:a,charCoords:h}}get isUserFont(){return this._isUserFont}get arrayBuffer(){return this._arrayBuffer}get ascender(){return this.font?.ascender??0}get descender(){return this.font?.descender??0}get familyName(){return this.font?.names.fontFamily??""}get subfamilyName(){return this.font?.names.fontSubfamily??""}get unitsPerEm(){return this.font?.unitsPerEm??1}getLineInitialOffsetX(t,e,n){return n===3?e*.5-t*.5:n===2?e-t:0}getLineInitialOffsetY(t,e,n,o,i){let a=e*t,s=Math.abs(this.ascender-this.descender)*o,l=t-s,u=-this.ascender*o-l/2;return i===3?-(n-a-u):i===2?-(n*.5-a*.5-u):u}createPath(t,e,n,o,i){let a=t.getPath(n,-o,i.fontSize,{kerning:!1,letterSpacing:i.letterSpacing});if(!a){console.error('THREE.Font: character "'+t+'" does not exists in font family '+this.familyName+".");return}let s=new Ql,l=(t.advanceWidth??1)*e;if(t)for(let u of a.commands){let c=s.currentPath?.currentPoint;if(!(c&&u.type!=="Z"&&c.x===u.x&&-c.y===u.y))switch(u.type){case"M":s.moveTo(u.x,-u.y);break;case"L":s.lineTo(u.x,-u.y);break;case"Q":s.quadraticCurveTo(u.x1,-u.y1,u.x,-u.y);break;case"C":s.bezierCurveTo(u.x1,-u.y1,u.x2,-u.y2,u.x,-u.y);break}}return{offsetX:l+i.fontSize*i.letterSpacing,path:s}}getCharWidth(t,e){return this.font?.getAdvanceWidth(t,e.fontSize,{kerning:!0,letterSpacing:e.letterSpacing})??0}getTextWidth(t,e){return this.font?.getAdvanceWidth(t,e.fontSize,{kerning:!0,letterSpacing:e.letterSpacing})??0}computeSpaceWidthForLine(t,e,n){let o=this.getCharWidth(" ",n),i=t[e];if(i){let a=this.countSpaces(i.trimEnd());if(n.horizontalAlign===4&&e<t.length-1&&a){let s=n.width,l=this.getTextWidth(i,n);return(s-(l-a*o))/a}}return o}countSpaces(t){return(t.match(/ /g)||[]).length}};var Wa=class{constructor(t,e={}){this.deletedMaterial=new co(Dt.defaultTwoLayerData("basic"),this);this.deletedImage=new to(Xs.emptyImage);this.materials={};this.images={};this.colors={};this.audios={};this.fonts={};this.penumbraSize=[];this.onImageLoad=()=>{this._onImageLoad&&this._onImageLoad()};this.onFontLoad=()=>{this._onFontLoad&&this._onFontLoad()};if(e.images)for(let[n,o]of Object.entries(e.images))this.addImage(n,o);if(e.audios)for(let[n,o]of Object.entries(e.audios))this.addAudio(n,o.data);this.reset(t)}setOnImageLoad(t){this._onImageLoad=t}setOnFontLoad(t){this._onFontLoad=t}reset(t){for(let[e,n]of Object.entries(t.images))this.addImage(e,n);for(let[e,n]of Object.entries(t.colors))this.addColor(e,n);for(let[e,n]of Object.entries(t.materials))this.addMaterial(e,new co(n,this));for(let[e,n]of Object.entries(t.audios))this.addAudio(e,n.data);for(let[e,n]of Object.entries(t.fonts))this.addFont(e,n);this.penumbraSize=t.penumbraSize}addMaterial(t,e){e.uuid=t,this.materials[t]=e}deleteMaterial(t){this.materials[t]&&(this.materials[t].dispose(),delete this.materials[t])}getMaterial(t){let e=this.materials[t];return e}getMaterialOrDeletedPlaceholder(t){return this.materials[t]??this.deletedMaterial}material(t){return typeof t=="string"?this.getMaterialOrDeletedPlaceholder(t):new Ft(t,this)}getMaterials(){return this.materials}addImage(t,e){return this.images[t]?(this.images[t].updateSrc(e.data),!0):(this.images[t]=new to(e,this.onImageLoad),!1)}deleteImage(t){this.images[t]&&delete this.images[t]}getDefaultImage(){return this.images.image_0}getImage(t){return this.images[t]??this.deletedImage}image(t){return typeof t=="string"?this.getImage(t):new pi(t,this.onImageLoad)}getImages(){return this.images}addColor(t,e){return this.colors[t]?("a"in e?this.colors[t].setRGBA(e.r,e.g,e.b,e.a):this.colors[t].setRGBA(e.r,e.g,e.b,1),!0):("a"in e?this.colors[t]=new Ln(e.r,e.g,e.b,e.a):this.colors[t]=new Ln(e.r,e.g,e.b,1),!1)}updateColor(t,e){if(this.colors[t]){let n=this.colors[t];return this.colors[t].r=e.r??n.r,this.colors[t].g=e.g??n.g,this.colors[t].b=e.b??n.b,this.colors[t].a=e.a??n.a,!0}return!1}deleteColor(t){this.colors[t]&&delete this.colors[t]}getColor(t){return this.colors[t]}color(t){let e;if(typeof t=="string"){let n=this.getColor(t);n?e=n:(console.warn("Tried to create color layer params with a color key that does not exist in the assets manager"),e=new Je(0,0,0,0))}else return"a"in t?new Je(t.r,t.g,t.b,t.a):new Je(t.r,t.g,t.b,1);return e}addAudio(t,e){this.audios[t]=e}getAudio(t){let e=this.audios[t];if(e instanceof _i)return e;{let n=new _i({src:e});return this.audios[t]=n,n}}deleteAudio(t){this.audios[t]&&delete this.audios[t]}addFont(t,e){this.fonts[t]=new Jl(e,this.onFontLoad)}getFont(t){return this.fonts[t]}deleteFont(t){this.fonts[t]&&delete this.fonts[t]}dispose(){Object.keys(this.materials).forEach(e=>this.deleteMaterial(e)),this._onImageLoad=void 0,Object.values(this.audios).forEach(e=>{e instanceof _i&&e.dispose()}),this.audios={}}},kK=new Wa(Ws.emptyData());import{DRACOLoader as vP}from"three/examples/jsm/loaders/DRACOLoader.js";var Gn;function xP(){return Gn||(Gn=new vP,Gn.setDecoderPath("https://www.gstatic.com/draco/versioned/decoders/1.5.2/").preload()),Gn.decoderPending}async function bP(r){if(Gn){let t={attributeIDs:Gn.defaultAttributeIDs,attributeTypes:Gn.defaultAttributeTypes,useUniqueIDs:!1},e;try{e=await Gn.decodeGeometry(new Int8Array(r).buffer,t)}catch(n){console.error(n)}if(e)return{index:e.index?{array:e.index.array}:void 0,attributes:Object.entries(e.attributes).map(([n,o])=>({name:n,itemSize:o.itemSize,array:o.array}))}}return null}async function tv(r,t){let[e,n]=sc(cs.deserialize(new Uint8Array(r)));Rh(e);let o=[];e.scene.objects.traverse((i,a)=>{a.type==="Mesh"&&a.geometry.type==="NonParametricGeometry"&&a.geometry.data.draco!==void 0&&o.push(a)}),o.length&&await xP();for(let i of o){let a=await bP(Ct(i.geometry.data.draco));if(a){a.index&&(i.geometry.data.index={array:a.index.array,itemSize:1,normalized:!1,type:"Uint32Array"});let s={};a.attributes.forEach(({name:l,array:u,itemSize:c})=>{s[l]={array:u,itemSize:c,type:"Float32Array",normalized:!1}}),i.geometry.data.attributes=s,i.geometry.data.draco=void 0}}return t&&t(e),n.result().data}import{Mesh as KK}from"three";import{mergeBufferGeometries as JK}from"three/examples/jsm/utils/BufferGeometryUtils.js";function rv(r){let t;if(!!r.index)for(let e=0;e<r.index.array.length;e+=3)t=r.index.array[e],r.index.array[e]=r.index.array[e+2],r.index.array[e+2]=t}import{Color as nv,ShaderLib as SP}from"three";function ov(r){let t=new Set;return r.traverse(e=>{if(Or(e))if(ze(e.material))e.material.forEach(n=>{let o=n;t.has(o)||t.add(o)});else{let n=e.material;t.has(n)||t.add(n)}}),t.forEach(e=>{if(e instanceof Array)return;let n=e.onBeforeCompile.bind(e);if(wP(e)){Object.assign(e,{isMeshStandardMaterial:!0,isMeshPhysicalMaterial:!0,transmission:1,attenuationColor:new nv,specularColor:new nv});let o=0;e.onBeforeCompile=(i,a)=>{n&&n(i,a),i.uniforms=Object.assign({},SP.physical.uniforms,i.uniforms),e.getLayersOfType("transmission").forEach(s=>{if(i.uniforms.transmissionSamplerMap.value){let l=s.color;l&&(l.transmissionSamplerMap.value=i.uniforms.transmissionSamplerMap.value,l.transmissionSamplerSize.value=i.uniforms.transmissionSamplerSize.value)}else o++,o<2&&(e.needsUpdate=!0)})}}else TP(e)||(e.onBeforeCompile=(o,i)=>{n&&n(o,i),e.transparent=!1})}),r}function wP(r){return r.getLayersOfType("transmission").length>0}function TP(r){let t=0;return r.layers.forEach(e=>{if(e.type!=="light"&&e.type!=="fresnel"){let n=e.uniforms["f"+e.id+"_alpha"];n&&(t+=(1-t)*n.value)}}),t<1}function iv(r){return r.traverse(t=>{if(t.type==="Camera"){let e=t;e.type=e.cameraType}}),r}function av(r){let t=[],e=(n,o=0)=>{let i=o>0?n+o:n;return t.includes(i)?e(n,o+1):i};return r.traverse(n=>{if(t.includes(n.name)){let o=n.name,i=e(n.name);if(n.name=i,n.isMesh){let a=n;a.material instanceof Array?a.material.forEach(s=>{s.name=s.name.replace(o,i)}):a.material.isAsset||(a.material.name=a.material.name.replace(o,i))}}t.push(n.name)}),r}import{mergeBufferGeometries as CP}from"three/examples/jsm/utils/BufferGeometryUtils.js";function sv(r){let t=[];return r.traverse(e=>{e instanceof Kn&&t.push(e)}),t.forEach(e=>{let n=e.object,i=e.children.map(s=>{s.updateMatrix();let l=s.geometry.clone().applyMatrix4(s.matrix);return s.matrix.determinant()<0&&rv(l),l}),a=CP(e.parameters.hideBase?i:[n.geometry,...i]);n.geometry=a,n.remove(e),n.cloner=void 0}),r}function lv(r){return r.traverse(t=>{t.matrixAutoUpdate=!0}),r}function cv(r){Object.values(r.shared.materials).forEach(t=>{Pp(t)}),r.scene.objects.traverse((t,e)=>{"material"in e?Pp(e.material):"materials"in e&&e.materials.forEach(n=>{Pp(n)})})}function Pp(r){if(typeof r=="string")return;let t=[];r.layers.forEach((e,n)=>{e.type==="outline"&&t.push(n)}),t.reverse().forEach(e=>{r.layers.delete(e)}),t.length&&console.warn("The Spline Loader currently does not support the outline layer.")}var uv="The SplineLoader only accepts .splinecode files that are generated from Spline export panel.",Mp=class extends _P{load(t,e,n,o=console.error){let i=new AP(this.manager);i.setPath(this.path),i.setResponseType("arraybuffer"),i.setRequestHeader(this.requestHeader),i.setWithCredentials(this.withCredentials),t.endsWith(".spline")?console.warn(uv+" The .spline files are only meant to be used by the Editor."):t.endsWith(".splinecode")||console.warn(uv),i.load(t,async a=>{try{if(typeof a=="string")throw new Error("The .spline file is not binary!");let s=await this.parse(a);e(s)}catch(s){o(s)}},n,o)}async parse(t){let e=await tv(t,cv),n=new Wa(e.shared);Object.values(n.getMaterials()).forEach(a=>Object.assign(a,{isAsset:!0}));let o=new za(e.scene,n);o.remove(o.personalCamera),e.scene.environment.ambientLight.enabled||o.remove(o.ambientLight);let i=e.scene.publish.playCamera;if(i){let a=o.find(i);a&&og(a)&&Object.assign(a,{makeDefault:!0})}return o=sv(o),o=ov(o),o=iv(o),o=av(o),o=lv(o),o}};export{Mp as default};