@splinetool/loader 0.9.32 → 0.9.35
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -0
- package/build/SplineLoader.js +139 -139
- package/build/SplineLoader.js.map +7 -0
- package/build/applyCloners.d.ts +2 -0
- package/build/deduplicateNames.d.ts +5 -0
- package/package.json +14 -11
package/build/SplineLoader.js
CHANGED
|
@@ -1,33 +1,33 @@
|
|
|
1
|
-
var B_=Object.create;var ra=Object.defineProperty,G_=Object.defineProperties,j_=Object.getOwnPropertyDescriptor,E_=Object.getOwnPropertyDescriptors,R_=Object.getOwnPropertyNames,og=Object.getOwnPropertySymbols,z_=Object.getPrototypeOf,sg=Object.prototype.hasOwnProperty,F_=Object.prototype.propertyIsEnumerable;var ag=(i,e,t)=>e in i?ra(i,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):i[e]=t,U=(i,e)=>{for(var t in e||(e={}))sg.call(e,t)&&ag(i,t,e[t]);if(og)for(var t of og(e))F_.call(e,t)&&ag(i,t,e[t]);return i},fe=(i,e)=>G_(i,E_(e)),lg=i=>ra(i,"__esModule",{value:!0});var cg=(i,e)=>()=>(e||i((e={exports:{}}).exports,e),e.exports),V_=(i,e)=>{lg(i);for(var t in e)ra(i,t,{get:e[t],enumerable:!0})},U_=(i,e,t)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of R_(e))!sg.call(i,r)&&r!=="default"&&ra(i,r,{get:()=>e[r],enumerable:!(t=j_(e,r))||t.enumerable});return i},ug=i=>U_(lg(ra(i!=null?B_(z_(i)):{},"default",i&&i.__esModule&&"default"in i?{get:()=>i.default,enumerable:!0}:{value:i,enumerable:!0})),i);var eb=cg((Eu,Qv)=>{(function(i,e){typeof Eu=="object"&&typeof Qv!="undefined"?e(Eu):typeof define=="function"&&define.amd?define(["exports"],e):e((i=typeof globalThis!="undefined"?globalThis:i||self).SVDJS={})})(Eu,function(i){"use strict";i.SVD=function(e,t,r,n,s){if(t=t===void 0||t,r=r===void 0||r,s=1e-64/(n=n||Math.pow(2,-52)),!e)throw new TypeError("Matrix a is not defined");var l,c,f,h,d,x,g,w,S,D,C,G,B=e[0].length,P=e.length;if(P<B)throw new TypeError("Invalid matrix: m < n");for(var W=[],M=[],q=[],E=t==="f"?P:B,b=D=g=0;b<P;b++)M[b]=new Array(E).fill(0);for(b=0;b<B;b++)q[b]=new Array(B).fill(0);var R,T=new Array(B).fill(0);for(b=0;b<P;b++)for(l=0;l<B;l++)M[b][l]=e[b][l];for(b=0;b<B;b++){for(W[b]=g,S=0,f=b+1,l=b;l<P;l++)S+=Math.pow(M[l][b],2);if(S<s)g=0;else for(w=(x=M[b][b])*(g=x<0?Math.sqrt(S):-Math.sqrt(S))-S,M[b][b]=x-g,l=f;l<B;l++){for(S=0,c=b;c<P;c++)S+=M[c][b]*M[c][l];for(x=S/w,c=b;c<P;c++)M[c][l]=M[c][l]+x*M[c][b]}for(T[b]=g,S=0,l=f;l<B;l++)S+=Math.pow(M[b][l],2);if(S<s)g=0;else{for(w=(x=M[b][b+1])*(g=x<0?Math.sqrt(S):-Math.sqrt(S))-S,M[b][b+1]=x-g,l=f;l<B;l++)W[l]=M[b][l]/w;for(l=f;l<P;l++){for(S=0,c=f;c<B;c++)S+=M[l][c]*M[b][c];for(c=f;c<B;c++)M[l][c]=M[l][c]+S*W[c]}}D<(C=Math.abs(T[b])+Math.abs(W[b]))&&(D=C)}if(r)for(b=B-1;0<=b;b--){if(g!==0){for(w=M[b][b+1]*g,l=f;l<B;l++)q[l][b]=M[b][l]/w;for(l=f;l<B;l++){for(S=0,c=f;c<B;c++)S+=M[b][c]*q[c][l];for(c=f;c<B;c++)q[c][l]=q[c][l]+S*q[c][b]}}for(l=f;l<B;l++)q[b][l]=0,q[l][b]=0;q[b][b]=1,g=W[b],f=b}if(t){if(t==="f")for(b=B;b<P;b++){for(l=B;l<P;l++)M[b][l]=0;M[b][b]=1}for(b=B-1;0<=b;b--){for(f=b+1,g=T[b],l=f;l<E;l++)M[b][l]=0;if(g!==0){for(w=M[b][b]*g,l=f;l<E;l++){for(S=0,c=f;c<P;c++)S+=M[c][b]*M[c][l];for(x=S/w,c=b;c<P;c++)M[c][l]=M[c][l]+x*M[c][b]}for(l=b;l<P;l++)M[l][b]=M[l][b]/g}else for(l=b;l<P;l++)M[l][b]=0;M[b][b]=M[b][b]+1}}for(n*=D,c=B-1;0<=c;c--)for(var z=0;z<50;z++){for(R=!1,f=c;0<=f;f--){if(Math.abs(W[f])<=n){R=!0;break}if(Math.abs(T[f-1])<=n)break}if(!R){for(d=0,h=f-(S=1),b=f;b<c+1&&(x=S*W[b],W[b]=d*W[b],!(Math.abs(x)<=n));b++)if(g=T[b],T[b]=Math.sqrt(x*x+g*g),d=g/(w=T[b]),S=-x/w,t)for(l=0;l<P;l++)C=M[l][h],G=M[l][b],M[l][h]=C*d+G*S,M[l][b]=-C*S+G*d}if(G=T[c],f===c){if(G<0&&(T[c]=-G,r))for(l=0;l<B;l++)q[l][c]=-q[l][c];break}for(D=T[f],x=(((C=T[c-1])-G)*(C+G)+((g=W[c-1])-(w=W[c]))*(g+w))/(2*w*C),g=Math.sqrt(x*x+1),x=((D-G)*(D+G)+w*(C/(x<0?x-g:x+g)-w))/D,b=f+(S=d=1);b<c+1;b++){if(g=W[b],C=T[b],w=S*g,g*=d,G=Math.sqrt(x*x+w*w),x=D*(d=x/(W[b-1]=G))+g*(S=w/G),g=-D*S+g*d,w=C*S,C*=d,r)for(l=0;l<B;l++)D=q[l][b-1],G=q[l][b],q[l][b-1]=D*d+G*S,q[l][b]=-D*S+G*d;if(G=Math.sqrt(x*x+w*w),x=(d=x/(T[b-1]=G))*g+(S=w/G)*C,D=-S*g+d*C,t)for(l=0;l<P;l++)C=M[l][b-1],G=M[l][b],M[l][b-1]=C*d+G*S,M[l][b]=-C*S+G*d}W[f]=0,W[c]=x,T[c]=D}for(b=0;b<B;b++)T[b]<n&&(T[b]=0);return{u:M,q:T,v:q}},i.VERSION="1.1.1",Object.defineProperty(i,"__esModule",{value:!0})})});var gb=cg((Fs,Xa)=>{(function(){var i,e="4.17.20",t=200,r="Unsupported core-js use. Try https://npms.io/search?q=ponyfill.",n="Expected a function",s="__lodash_hash_undefined__",l=500,c="__lodash_placeholder__",f=1,h=2,d=4,x=1,g=2,w=1,S=2,D=4,C=8,G=16,B=32,P=64,W=128,M=256,q=512,E=30,b="...",R=800,T=16,z=1,A=2,$=3,he=1/0,re=9007199254740991,Ne=17976931348623157e292,ye=0/0,Me=4294967295,Fe=Me-1,k=Me>>>1,H=[["ary",W],["bind",w],["bindKey",S],["curry",C],["curryRight",G],["flip",q],["partial",B],["partialRight",P],["rearg",M]],_="[object Arguments]",J="[object Array]",ee="[object AsyncFunction]",oe="[object Boolean]",se="[object Date]",ce="[object DOMException]",ue="[object Error]",K="[object Function]",ae="[object GeneratorFunction]",ne="[object Map]",Ce="[object Number]",Y="[object Null]",le="[object Object]",pe="[object Promise]",xe="[object Proxy]",_e="[object RegExp]",de="[object Set]",we="[object String]",Ve="[object Symbol]",Ge="[object Undefined]",Qe="[object WeakMap]",bt="[object WeakSet]",Lt="[object ArrayBuffer]",At="[object DataView]",sr="[object Float32Array]",Ur="[object Float64Array]",Ht="[object Int8Array]",kr="[object Int16Array]",wn="[object Int32Array]",Nn="[object Uint8Array]",dt="[object Uint8ClampedArray]",Wt="[object Uint16Array]",ar="[object Uint32Array]",Ao=/\b__p \+= '';/g,Oo=/\b(__p \+=) '' \+/g,Po=/(__e\(.*?\)|\b__t\)) \+\n'';/g,ro=/&(?:amp|lt|gt|quot|#39);/g,no=/[&<>"']/g,Do=RegExp(ro.source),Mr=RegExp(no.source),io=/<%-([\s\S]+?)%>/g,Jt=/<%([\s\S]+?)%>/g,ti=/<%=([\s\S]+?)%>/g,Bo=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Ee=/^\w*$/,Xe=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,He=/[\\^$.*+?()[\]{}|]/g,$e=RegExp(He.source),tt=/^\s+|\s+$/g,at=/^\s+/,mt=/\s+$/,gt=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,ct=/\{\n\/\* \[wrapped with (.+)\] \*/,St=/,? & /,Rt=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,Ar=/\\(\\)?/g,Cn=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,Ln=/\w*$/,Rn=/^[-+]0x[0-9a-f]+$/i,Za=/^0b[01]+$/i,wb=/^\[object .+?Constructor\]$/,Nb=/^0o[0-7]+$/i,Cb=/^(?:0|[1-9]\d*)$/,Lb=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,Ya=/($^)/,_b=/['\n\r\u2028\u2029\\]/g,Qa="\\ud800-\\udfff",Tb="\\u0300-\\u036f",Ib="\\ufe20-\\ufe2f",Mb="\\u20d0-\\u20ff",jp=Tb+Ib+Mb,Ep="\\u2700-\\u27bf",Rp="a-z\\xdf-\\xf6\\xf8-\\xff",Ab="\\xac\\xb1\\xd7\\xf7",Ob="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",Pb="\\u2000-\\u206f",Db=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",zp="A-Z\\xc0-\\xd6\\xd8-\\xde",Fp="\\ufe0e\\ufe0f",Vp=Ab+Ob+Pb+Db,zu="['\u2019]",Bb="["+Qa+"]",Up="["+Vp+"]",el="["+jp+"]",kp="\\d+",Gb="["+Ep+"]",Hp="["+Rp+"]",Wp="[^"+Qa+Vp+kp+Ep+Rp+zp+"]",Fu="\\ud83c[\\udffb-\\udfff]",jb="(?:"+el+"|"+Fu+")",qp="[^"+Qa+"]",Vu="(?:\\ud83c[\\udde6-\\uddff]){2}",Uu="[\\ud800-\\udbff][\\udc00-\\udfff]",Go="["+zp+"]",$p="\\u200d",Jp="(?:"+Hp+"|"+Wp+")",Eb="(?:"+Go+"|"+Wp+")",Kp="(?:"+zu+"(?:d|ll|m|re|s|t|ve))?",Xp="(?:"+zu+"(?:D|LL|M|RE|S|T|VE))?",Zp=jb+"?",Yp="["+Fp+"]?",Rb="(?:"+$p+"(?:"+[qp,Vu,Uu].join("|")+")"+Yp+Zp+")*",zb="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",Fb="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",Qp=Yp+Zp+Rb,Vb="(?:"+[Gb,Vu,Uu].join("|")+")"+Qp,Ub="(?:"+[qp+el+"?",el,Vu,Uu,Bb].join("|")+")",kb=RegExp(zu,"g"),Hb=RegExp(el,"g"),ku=RegExp(Fu+"(?="+Fu+")|"+Ub+Qp,"g"),Wb=RegExp([Go+"?"+Hp+"+"+Kp+"(?="+[Up,Go,"$"].join("|")+")",Eb+"+"+Xp+"(?="+[Up,Go+Jp,"$"].join("|")+")",Go+"?"+Jp+"+"+Kp,Go+"+"+Xp,Fb,zb,kp,Vb].join("|"),"g"),qb=RegExp("["+$p+Qa+jp+Fp+"]"),$b=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,Jb=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],Kb=-1,_t={};_t[sr]=_t[Ur]=_t[Ht]=_t[kr]=_t[wn]=_t[Nn]=_t[dt]=_t[Wt]=_t[ar]=!0,_t[_]=_t[J]=_t[Lt]=_t[oe]=_t[At]=_t[se]=_t[ue]=_t[K]=_t[ne]=_t[Ce]=_t[le]=_t[_e]=_t[de]=_t[we]=_t[Qe]=!1;var wt={};wt[_]=wt[J]=wt[Lt]=wt[At]=wt[oe]=wt[se]=wt[sr]=wt[Ur]=wt[Ht]=wt[kr]=wt[wn]=wt[ne]=wt[Ce]=wt[le]=wt[_e]=wt[de]=wt[we]=wt[Ve]=wt[Nn]=wt[dt]=wt[Wt]=wt[ar]=!0,wt[ue]=wt[K]=wt[Qe]=!1;var Xb={\u00C0:"A",\u00C1:"A",\u00C2:"A",\u00C3:"A",\u00C4:"A",\u00C5:"A",\u00E0:"a",\u00E1:"a",\u00E2:"a",\u00E3:"a",\u00E4:"a",\u00E5:"a",\u00C7:"C",\u00E7:"c",\u00D0:"D",\u00F0:"d",\u00C8:"E",\u00C9:"E",\u00CA:"E",\u00CB:"E",\u00E8:"e",\u00E9:"e",\u00EA:"e",\u00EB:"e",\u00CC:"I",\u00CD:"I",\u00CE:"I",\u00CF:"I",\u00EC:"i",\u00ED:"i",\u00EE:"i",\u00EF:"i",\u00D1:"N",\u00F1:"n",\u00D2:"O",\u00D3:"O",\u00D4:"O",\u00D5:"O",\u00D6:"O",\u00D8:"O",\u00F2:"o",\u00F3:"o",\u00F4:"o",\u00F5:"o",\u00F6:"o",\u00F8:"o",\u00D9:"U",\u00DA:"U",\u00DB:"U",\u00DC:"U",\u00F9:"u",\u00FA:"u",\u00FB:"u",\u00FC:"u",\u00DD:"Y",\u00FD:"y",\u00FF:"y",\u00C6:"Ae",\u00E6:"ae",\u00DE:"Th",\u00FE:"th",\u00DF:"ss",\u0100:"A",\u0102:"A",\u0104:"A",\u0101:"a",\u0103:"a",\u0105:"a",\u0106:"C",\u0108:"C",\u010A:"C",\u010C:"C",\u0107:"c",\u0109:"c",\u010B:"c",\u010D:"c",\u010E:"D",\u0110:"D",\u010F:"d",\u0111:"d",\u0112:"E",\u0114:"E",\u0116:"E",\u0118:"E",\u011A:"E",\u0113:"e",\u0115:"e",\u0117:"e",\u0119:"e",\u011B:"e",\u011C:"G",\u011E:"G",\u0120:"G",\u0122:"G",\u011D:"g",\u011F:"g",\u0121:"g",\u0123:"g",\u0124:"H",\u0126:"H",\u0125:"h",\u0127:"h",\u0128:"I",\u012A:"I",\u012C:"I",\u012E:"I",\u0130:"I",\u0129:"i",\u012B:"i",\u012D:"i",\u012F:"i",\u0131:"i",\u0134:"J",\u0135:"j",\u0136:"K",\u0137:"k",\u0138:"k",\u0139:"L",\u013B:"L",\u013D:"L",\u013F:"L",\u0141:"L",\u013A:"l",\u013C:"l",\u013E:"l",\u0140:"l",\u0142:"l",\u0143:"N",\u0145:"N",\u0147:"N",\u014A:"N",\u0144:"n",\u0146:"n",\u0148:"n",\u014B:"n",\u014C:"O",\u014E:"O",\u0150:"O",\u014D:"o",\u014F:"o",\u0151:"o",\u0154:"R",\u0156:"R",\u0158:"R",\u0155:"r",\u0157:"r",\u0159:"r",\u015A:"S",\u015C:"S",\u015E:"S",\u0160:"S",\u015B:"s",\u015D:"s",\u015F:"s",\u0161:"s",\u0162:"T",\u0164:"T",\u0166:"T",\u0163:"t",\u0165:"t",\u0167:"t",\u0168:"U",\u016A:"U",\u016C:"U",\u016E:"U",\u0170:"U",\u0172:"U",\u0169:"u",\u016B:"u",\u016D:"u",\u016F:"u",\u0171:"u",\u0173:"u",\u0174:"W",\u0175:"w",\u0176:"Y",\u0177:"y",\u0178:"Y",\u0179:"Z",\u017B:"Z",\u017D:"Z",\u017A:"z",\u017C:"z",\u017E:"z",\u0132:"IJ",\u0133:"ij",\u0152:"Oe",\u0153:"oe",\u0149:"'n",\u017F:"s"},Zb={"&":"&","<":"<",">":">",'"':""","'":"'"},Yb={"&":"&","<":"<",">":">",""":'"',"'":"'"},Qb={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},eS=parseFloat,tS=parseInt,ed=typeof global=="object"&&global&&global.Object===Object&&global,rS=typeof self=="object"&&self&&self.Object===Object&&self,rr=ed||rS||Function("return this")(),Hu=typeof Fs=="object"&&Fs&&!Fs.nodeType&&Fs,oo=Hu&&typeof Xa=="object"&&Xa&&!Xa.nodeType&&Xa,td=oo&&oo.exports===Hu,Wu=td&&ed.process,on=function(){try{var O=oo&&oo.require&&oo.require("util").types;return O||Wu&&Wu.binding&&Wu.binding("util")}catch(X){}}(),rd=on&&on.isArrayBuffer,nd=on&&on.isDate,id=on&&on.isMap,od=on&&on.isRegExp,sd=on&&on.isSet,ad=on&&on.isTypedArray;function Hr(O,X,V){switch(V.length){case 0:return O.call(X);case 1:return O.call(X,V[0]);case 2:return O.call(X,V[0],V[1]);case 3:return O.call(X,V[0],V[1],V[2])}return O.apply(X,V)}function nS(O,X,V,be){for(var Ue=-1,lt=O==null?0:O.length;++Ue<lt;){var Kt=O[Ue];X(be,Kt,V(Kt),O)}return be}function sn(O,X){for(var V=-1,be=O==null?0:O.length;++V<be&&X(O[V],V,O)!==!1;);return O}function iS(O,X){for(var V=O==null?0:O.length;V--&&X(O[V],V,O)!==!1;);return O}function ld(O,X){for(var V=-1,be=O==null?0:O.length;++V<be;)if(!X(O[V],V,O))return!1;return!0}function Ci(O,X){for(var V=-1,be=O==null?0:O.length,Ue=0,lt=[];++V<be;){var Kt=O[V];X(Kt,V,O)&&(lt[Ue++]=Kt)}return lt}function tl(O,X){var V=O==null?0:O.length;return!!V&&jo(O,X,0)>-1}function qu(O,X,V){for(var be=-1,Ue=O==null?0:O.length;++be<Ue;)if(V(X,O[be]))return!0;return!1}function Ot(O,X){for(var V=-1,be=O==null?0:O.length,Ue=Array(be);++V<be;)Ue[V]=X(O[V],V,O);return Ue}function Li(O,X){for(var V=-1,be=X.length,Ue=O.length;++V<be;)O[Ue+V]=X[V];return O}function $u(O,X,V,be){var Ue=-1,lt=O==null?0:O.length;for(be&<&&(V=O[++Ue]);++Ue<lt;)V=X(V,O[Ue],Ue,O);return V}function oS(O,X,V,be){var Ue=O==null?0:O.length;for(be&&Ue&&(V=O[--Ue]);Ue--;)V=X(V,O[Ue],Ue,O);return V}function Ju(O,X){for(var V=-1,be=O==null?0:O.length;++V<be;)if(X(O[V],V,O))return!0;return!1}var sS=Ku("length");function aS(O){return O.split("")}function lS(O){return O.match(Rt)||[]}function cd(O,X,V){var be;return V(O,function(Ue,lt,Kt){if(X(Ue,lt,Kt))return be=lt,!1}),be}function rl(O,X,V,be){for(var Ue=O.length,lt=V+(be?1:-1);be?lt--:++lt<Ue;)if(X(O[lt],lt,O))return lt;return-1}function jo(O,X,V){return X===X?bS(O,X,V):rl(O,ud,V)}function cS(O,X,V,be){for(var Ue=V-1,lt=O.length;++Ue<lt;)if(be(O[Ue],X))return Ue;return-1}function ud(O){return O!==O}function fd(O,X){var V=O==null?0:O.length;return V?Zu(O,X)/V:ye}function Ku(O){return function(X){return X==null?i:X[O]}}function Xu(O){return function(X){return O==null?i:O[X]}}function hd(O,X,V,be,Ue){return Ue(O,function(lt,Kt,yt){V=be?(be=!1,lt):X(V,lt,Kt,yt)}),V}function uS(O,X){var V=O.length;for(O.sort(X);V--;)O[V]=O[V].value;return O}function Zu(O,X){for(var V,be=-1,Ue=O.length;++be<Ue;){var lt=X(O[be]);lt!==i&&(V=V===i?lt:V+lt)}return V}function Yu(O,X){for(var V=-1,be=Array(O);++V<O;)be[V]=X(V);return be}function fS(O,X){return Ot(X,function(V){return[V,O[V]]})}function Wr(O){return function(X){return O(X)}}function Qu(O,X){return Ot(X,function(V){return O[V]})}function Vs(O,X){return O.has(X)}function pd(O,X){for(var V=-1,be=O.length;++V<be&&jo(X,O[V],0)>-1;);return V}function dd(O,X){for(var V=O.length;V--&&jo(X,O[V],0)>-1;);return V}function hS(O,X){for(var V=O.length,be=0;V--;)O[V]===X&&++be;return be}var pS=Xu(Xb),dS=Xu(Zb);function mS(O){return"\\"+Qb[O]}function gS(O,X){return O==null?i:O[X]}function Eo(O){return qb.test(O)}function yS(O){return $b.test(O)}function xS(O){for(var X,V=[];!(X=O.next()).done;)V.push(X.value);return V}function ef(O){var X=-1,V=Array(O.size);return O.forEach(function(be,Ue){V[++X]=[Ue,be]}),V}function md(O,X){return function(V){return O(X(V))}}function _i(O,X){for(var V=-1,be=O.length,Ue=0,lt=[];++V<be;){var Kt=O[V];(Kt===X||Kt===c)&&(O[V]=c,lt[Ue++]=V)}return lt}function nl(O){var X=-1,V=Array(O.size);return O.forEach(function(be){V[++X]=be}),V}function vS(O){var X=-1,V=Array(O.size);return O.forEach(function(be){V[++X]=[be,be]}),V}function bS(O,X,V){for(var be=V-1,Ue=O.length;++be<Ue;)if(O[be]===X)return be;return-1}function SS(O,X,V){for(var be=V+1;be--;)if(O[be]===X)return be;return be}function Ro(O){return Eo(O)?NS(O):sS(O)}function _n(O){return Eo(O)?CS(O):aS(O)}var wS=Xu(Yb);function NS(O){for(var X=ku.lastIndex=0;ku.test(O);)++X;return X}function CS(O){return O.match(ku)||[]}function LS(O){return O.match(Wb)||[]}var _S=function O(X){X=X==null?rr:Ti.defaults(rr.Object(),X,Ti.pick(rr,Jb));var V=X.Array,be=X.Date,Ue=X.Error,lt=X.Function,Kt=X.Math,yt=X.Object,tf=X.RegExp,TS=X.String,an=X.TypeError,il=V.prototype,IS=lt.prototype,zo=yt.prototype,ol=X["__core-js_shared__"],sl=IS.toString,pt=zo.hasOwnProperty,MS=0,gd=function(){var o=/[^.]+$/.exec(ol&&ol.keys&&ol.keys.IE_PROTO||"");return o?"Symbol(src)_1."+o:""}(),al=zo.toString,AS=sl.call(yt),OS=rr._,PS=tf("^"+sl.call(pt).replace(He,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),ll=td?X.Buffer:i,Ii=X.Symbol,cl=X.Uint8Array,yd=ll?ll.allocUnsafe:i,ul=md(yt.getPrototypeOf,yt),xd=yt.create,vd=zo.propertyIsEnumerable,fl=il.splice,bd=Ii?Ii.isConcatSpreadable:i,Us=Ii?Ii.iterator:i,so=Ii?Ii.toStringTag:i,hl=function(){try{var o=fo(yt,"defineProperty");return o({},"",{}),o}catch(a){}}(),DS=X.clearTimeout!==rr.clearTimeout&&X.clearTimeout,BS=be&&be.now!==rr.Date.now&&be.now,GS=X.setTimeout!==rr.setTimeout&&X.setTimeout,pl=Kt.ceil,dl=Kt.floor,rf=yt.getOwnPropertySymbols,jS=ll?ll.isBuffer:i,Sd=X.isFinite,ES=il.join,RS=md(yt.keys,yt),Xt=Kt.max,dr=Kt.min,zS=be.now,FS=X.parseInt,wd=Kt.random,VS=il.reverse,nf=fo(X,"DataView"),ks=fo(X,"Map"),of=fo(X,"Promise"),Fo=fo(X,"Set"),Hs=fo(X,"WeakMap"),Ws=fo(yt,"create"),ml=Hs&&new Hs,Vo={},US=ho(nf),kS=ho(ks),HS=ho(of),WS=ho(Fo),qS=ho(Hs),gl=Ii?Ii.prototype:i,qs=gl?gl.valueOf:i,Nd=gl?gl.toString:i;function y(o){if(Gt(o)&&!ke(o)&&!(o instanceof rt)){if(o instanceof ln)return o;if(pt.call(o,"__wrapped__"))return Cm(o)}return new ln(o)}var Uo=function(){function o(){}return function(a){if(!Dt(a))return{};if(xd)return xd(a);o.prototype=a;var u=new o;return o.prototype=i,u}}();function yl(){}function ln(o,a){this.__wrapped__=o,this.__actions__=[],this.__chain__=!!a,this.__index__=0,this.__values__=i}y.templateSettings={escape:io,evaluate:Jt,interpolate:ti,variable:"",imports:{_:y}},y.prototype=yl.prototype,y.prototype.constructor=y,ln.prototype=Uo(yl.prototype),ln.prototype.constructor=ln;function rt(o){this.__wrapped__=o,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=Me,this.__views__=[]}function $S(){var o=new rt(this.__wrapped__);return o.__actions__=Or(this.__actions__),o.__dir__=this.__dir__,o.__filtered__=this.__filtered__,o.__iteratees__=Or(this.__iteratees__),o.__takeCount__=this.__takeCount__,o.__views__=Or(this.__views__),o}function JS(){if(this.__filtered__){var o=new rt(this);o.__dir__=-1,o.__filtered__=!0}else o=this.clone(),o.__dir__*=-1;return o}function KS(){var o=this.__wrapped__.value(),a=this.__dir__,u=ke(o),p=a<0,m=u?o.length:0,v=a1(0,m,this.__views__),N=v.start,L=v.end,I=L-N,Q=p?L:N-1,te=this.__iteratees__,ie=te.length,me=0,Le=dr(I,this.__takeCount__);if(!u||!p&&m==I&&Le==I)return $d(o,this.__actions__);var Re=[];e:for(;I--&&me<Le;){Q+=a;for(var Je=-1,je=o[Q];++Je<ie;){var et=te[Je],nt=et.iteratee,Jr=et.type,wr=nt(je);if(Jr==A)je=wr;else if(!wr){if(Jr==z)continue e;break e}}Re[me++]=je}return Re}rt.prototype=Uo(yl.prototype),rt.prototype.constructor=rt;function ao(o){var a=-1,u=o==null?0:o.length;for(this.clear();++a<u;){var p=o[a];this.set(p[0],p[1])}}function XS(){this.__data__=Ws?Ws(null):{},this.size=0}function ZS(o){var a=this.has(o)&&delete this.__data__[o];return this.size-=a?1:0,a}function YS(o){var a=this.__data__;if(Ws){var u=a[o];return u===s?i:u}return pt.call(a,o)?a[o]:i}function QS(o){var a=this.__data__;return Ws?a[o]!==i:pt.call(a,o)}function ew(o,a){var u=this.__data__;return this.size+=this.has(o)?0:1,u[o]=Ws&&a===i?s:a,this}ao.prototype.clear=XS,ao.prototype.delete=ZS,ao.prototype.get=YS,ao.prototype.has=QS,ao.prototype.set=ew;function ri(o){var a=-1,u=o==null?0:o.length;for(this.clear();++a<u;){var p=o[a];this.set(p[0],p[1])}}function tw(){this.__data__=[],this.size=0}function rw(o){var a=this.__data__,u=xl(a,o);if(u<0)return!1;var p=a.length-1;return u==p?a.pop():fl.call(a,u,1),--this.size,!0}function nw(o){var a=this.__data__,u=xl(a,o);return u<0?i:a[u][1]}function iw(o){return xl(this.__data__,o)>-1}function ow(o,a){var u=this.__data__,p=xl(u,o);return p<0?(++this.size,u.push([o,a])):u[p][1]=a,this}ri.prototype.clear=tw,ri.prototype.delete=rw,ri.prototype.get=nw,ri.prototype.has=iw,ri.prototype.set=ow;function ni(o){var a=-1,u=o==null?0:o.length;for(this.clear();++a<u;){var p=o[a];this.set(p[0],p[1])}}function sw(){this.size=0,this.__data__={hash:new ao,map:new(ks||ri),string:new ao}}function aw(o){var a=Al(this,o).delete(o);return this.size-=a?1:0,a}function lw(o){return Al(this,o).get(o)}function cw(o){return Al(this,o).has(o)}function uw(o,a){var u=Al(this,o),p=u.size;return u.set(o,a),this.size+=u.size==p?0:1,this}ni.prototype.clear=sw,ni.prototype.delete=aw,ni.prototype.get=lw,ni.prototype.has=cw,ni.prototype.set=uw;function lo(o){var a=-1,u=o==null?0:o.length;for(this.__data__=new ni;++a<u;)this.add(o[a])}function fw(o){return this.__data__.set(o,s),this}function hw(o){return this.__data__.has(o)}lo.prototype.add=lo.prototype.push=fw,lo.prototype.has=hw;function Tn(o){var a=this.__data__=new ri(o);this.size=a.size}function pw(){this.__data__=new ri,this.size=0}function dw(o){var a=this.__data__,u=a.delete(o);return this.size=a.size,u}function mw(o){return this.__data__.get(o)}function gw(o){return this.__data__.has(o)}function yw(o,a){var u=this.__data__;if(u instanceof ri){var p=u.__data__;if(!ks||p.length<t-1)return p.push([o,a]),this.size=++u.size,this;u=this.__data__=new ni(p)}return u.set(o,a),this.size=u.size,this}Tn.prototype.clear=pw,Tn.prototype.delete=dw,Tn.prototype.get=mw,Tn.prototype.has=gw,Tn.prototype.set=yw;function Cd(o,a){var u=ke(o),p=!u&&po(o),m=!u&&!p&&Di(o),v=!u&&!p&&!m&&qo(o),N=u||p||m||v,L=N?Yu(o.length,TS):[],I=L.length;for(var Q in o)(a||pt.call(o,Q))&&!(N&&(Q=="length"||m&&(Q=="offset"||Q=="parent")||v&&(Q=="buffer"||Q=="byteLength"||Q=="byteOffset")||ai(Q,I)))&&L.push(Q);return L}function Ld(o){var a=o.length;return a?o[gf(0,a-1)]:i}function xw(o,a){return Ol(Or(o),co(a,0,o.length))}function vw(o){return Ol(Or(o))}function sf(o,a,u){(u!==i&&!In(o[a],u)||u===i&&!(a in o))&&ii(o,a,u)}function $s(o,a,u){var p=o[a];(!(pt.call(o,a)&&In(p,u))||u===i&&!(a in o))&&ii(o,a,u)}function xl(o,a){for(var u=o.length;u--;)if(In(o[u][0],a))return u;return-1}function bw(o,a,u,p){return Mi(o,function(m,v,N){a(p,m,u(m),N)}),p}function _d(o,a){return o&&Fn(a,nr(a),o)}function Sw(o,a){return o&&Fn(a,Dr(a),o)}function ii(o,a,u){a=="__proto__"&&hl?hl(o,a,{configurable:!0,enumerable:!0,value:u,writable:!0}):o[a]=u}function af(o,a){for(var u=-1,p=a.length,m=V(p),v=o==null;++u<p;)m[u]=v?i:Vf(o,a[u]);return m}function co(o,a,u){return o===o&&(u!==i&&(o=o<=u?o:u),a!==i&&(o=o>=a?o:a)),o}function cn(o,a,u,p,m,v){var N,L=a&f,I=a&h,Q=a&d;if(u&&(N=m?u(o,p,m,v):u(o)),N!==i)return N;if(!Dt(o))return o;var te=ke(o);if(te){if(N=c1(o),!L)return Or(o,N)}else{var ie=mr(o),me=ie==K||ie==ae;if(Di(o))return Xd(o,L);if(ie==le||ie==_||me&&!m){if(N=I||me?{}:mm(o),!L)return I?Yw(o,Sw(N,o)):Zw(o,_d(N,o))}else{if(!wt[ie])return m?o:{};N=u1(o,ie,L)}}v||(v=new Tn);var Le=v.get(o);if(Le)return Le;v.set(o,N),Hm(o)?o.forEach(function(je){N.add(cn(je,a,u,je,o,v))}):Um(o)&&o.forEach(function(je,et){N.set(et,cn(je,a,u,et,o,v))});var Re=Q?I?Tf:_f:I?Dr:nr,Je=te?i:Re(o);return sn(Je||o,function(je,et){Je&&(et=je,je=o[et]),$s(N,et,cn(je,a,u,et,o,v))}),N}function ww(o){var a=nr(o);return function(u){return Td(u,o,a)}}function Td(o,a,u){var p=u.length;if(o==null)return!p;for(o=yt(o);p--;){var m=u[p],v=a[m],N=o[m];if(N===i&&!(m in o)||!v(N))return!1}return!0}function Id(o,a,u){if(typeof o!="function")throw new an(n);return ea(function(){o.apply(i,u)},a)}function Js(o,a,u,p){var m=-1,v=tl,N=!0,L=o.length,I=[],Q=a.length;if(!L)return I;u&&(a=Ot(a,Wr(u))),p?(v=qu,N=!1):a.length>=t&&(v=Vs,N=!1,a=new lo(a));e:for(;++m<L;){var te=o[m],ie=u==null?te:u(te);if(te=p||te!==0?te:0,N&&ie===ie){for(var me=Q;me--;)if(a[me]===ie)continue e;I.push(te)}else v(a,ie,p)||I.push(te)}return I}var Mi=tm(zn),Md=tm(cf,!0);function Nw(o,a){var u=!0;return Mi(o,function(p,m,v){return u=!!a(p,m,v),u}),u}function vl(o,a,u){for(var p=-1,m=o.length;++p<m;){var v=o[p],N=a(v);if(N!=null&&(L===i?N===N&&!$r(N):u(N,L)))var L=N,I=v}return I}function Cw(o,a,u,p){var m=o.length;for(u=We(u),u<0&&(u=-u>m?0:m+u),p=p===i||p>m?m:We(p),p<0&&(p+=m),p=u>p?0:qm(p);u<p;)o[u++]=a;return o}function Ad(o,a){var u=[];return Mi(o,function(p,m,v){a(p,m,v)&&u.push(p)}),u}function lr(o,a,u,p,m){var v=-1,N=o.length;for(u||(u=h1),m||(m=[]);++v<N;){var L=o[v];a>0&&u(L)?a>1?lr(L,a-1,u,p,m):Li(m,L):p||(m[m.length]=L)}return m}var lf=rm(),Od=rm(!0);function zn(o,a){return o&&lf(o,a,nr)}function cf(o,a){return o&&Od(o,a,nr)}function bl(o,a){return Ci(a,function(u){return li(o[u])})}function uo(o,a){a=Oi(a,o);for(var u=0,p=a.length;o!=null&&u<p;)o=o[Vn(a[u++])];return u&&u==p?o:i}function Pd(o,a,u){var p=a(o);return ke(o)?p:Li(p,u(o))}function br(o){return o==null?o===i?Ge:Y:so&&so in yt(o)?s1(o):v1(o)}function uf(o,a){return o>a}function Lw(o,a){return o!=null&&pt.call(o,a)}function _w(o,a){return o!=null&&a in yt(o)}function Tw(o,a,u){return o>=dr(a,u)&&o<Xt(a,u)}function ff(o,a,u){for(var p=u?qu:tl,m=o[0].length,v=o.length,N=v,L=V(v),I=1/0,Q=[];N--;){var te=o[N];N&&a&&(te=Ot(te,Wr(a))),I=dr(te.length,I),L[N]=!u&&(a||m>=120&&te.length>=120)?new lo(N&&te):i}te=o[0];var ie=-1,me=L[0];e:for(;++ie<m&&Q.length<I;){var Le=te[ie],Re=a?a(Le):Le;if(Le=u||Le!==0?Le:0,!(me?Vs(me,Re):p(Q,Re,u))){for(N=v;--N;){var Je=L[N];if(!(Je?Vs(Je,Re):p(o[N],Re,u)))continue e}me&&me.push(Re),Q.push(Le)}}return Q}function Iw(o,a,u,p){return zn(o,function(m,v,N){a(p,u(m),v,N)}),p}function Ks(o,a,u){a=Oi(a,o),o=vm(o,a);var p=o==null?o:o[Vn(fn(a))];return p==null?i:Hr(p,o,u)}function Dd(o){return Gt(o)&&br(o)==_}function Mw(o){return Gt(o)&&br(o)==Lt}function Aw(o){return Gt(o)&&br(o)==se}function Xs(o,a,u,p,m){return o===a?!0:o==null||a==null||!Gt(o)&&!Gt(a)?o!==o&&a!==a:Ow(o,a,u,p,Xs,m)}function Ow(o,a,u,p,m,v){var N=ke(o),L=ke(a),I=N?J:mr(o),Q=L?J:mr(a);I=I==_?le:I,Q=Q==_?le:Q;var te=I==le,ie=Q==le,me=I==Q;if(me&&Di(o)){if(!Di(a))return!1;N=!0,te=!1}if(me&&!te)return v||(v=new Tn),N||qo(o)?hm(o,a,u,p,m,v):i1(o,a,I,u,p,m,v);if(!(u&x)){var Le=te&&pt.call(o,"__wrapped__"),Re=ie&&pt.call(a,"__wrapped__");if(Le||Re){var Je=Le?o.value():o,je=Re?a.value():a;return v||(v=new Tn),m(Je,je,u,p,v)}}return me?(v||(v=new Tn),o1(o,a,u,p,m,v)):!1}function Pw(o){return Gt(o)&&mr(o)==ne}function hf(o,a,u,p){var m=u.length,v=m,N=!p;if(o==null)return!v;for(o=yt(o);m--;){var L=u[m];if(N&&L[2]?L[1]!==o[L[0]]:!(L[0]in o))return!1}for(;++m<v;){L=u[m];var I=L[0],Q=o[I],te=L[1];if(N&&L[2]){if(Q===i&&!(I in o))return!1}else{var ie=new Tn;if(p)var me=p(Q,te,I,o,a,ie);if(!(me===i?Xs(te,Q,x|g,p,ie):me))return!1}}return!0}function Bd(o){if(!Dt(o)||d1(o))return!1;var a=li(o)?PS:wb;return a.test(ho(o))}function Dw(o){return Gt(o)&&br(o)==_e}function Bw(o){return Gt(o)&&mr(o)==de}function Gw(o){return Gt(o)&&El(o.length)&&!!_t[br(o)]}function Gd(o){return typeof o=="function"?o:o==null?Br:typeof o=="object"?ke(o)?Rd(o[0],o[1]):Ed(o):ng(o)}function pf(o){if(!Qs(o))return RS(o);var a=[];for(var u in yt(o))pt.call(o,u)&&u!="constructor"&&a.push(u);return a}function jw(o){if(!Dt(o))return x1(o);var a=Qs(o),u=[];for(var p in o)p=="constructor"&&(a||!pt.call(o,p))||u.push(p);return u}function df(o,a){return o<a}function jd(o,a){var u=-1,p=Pr(o)?V(o.length):[];return Mi(o,function(m,v,N){p[++u]=a(m,v,N)}),p}function Ed(o){var a=Mf(o);return a.length==1&&a[0][2]?ym(a[0][0],a[0][1]):function(u){return u===o||hf(u,o,a)}}function Rd(o,a){return Of(o)&&gm(a)?ym(Vn(o),a):function(u){var p=Vf(u,o);return p===i&&p===a?Uf(u,o):Xs(a,p,x|g)}}function Sl(o,a,u,p,m){o!==a&&lf(a,function(v,N){if(m||(m=new Tn),Dt(v))Ew(o,a,N,u,Sl,p,m);else{var L=p?p(Df(o,N),v,N+"",o,a,m):i;L===i&&(L=v),sf(o,N,L)}},Dr)}function Ew(o,a,u,p,m,v,N){var L=Df(o,u),I=Df(a,u),Q=N.get(I);if(Q){sf(o,u,Q);return}var te=v?v(L,I,u+"",o,a,N):i,ie=te===i;if(ie){var me=ke(I),Le=!me&&Di(I),Re=!me&&!Le&&qo(I);te=I,me||Le||Re?ke(L)?te=L:zt(L)?te=Or(L):Le?(ie=!1,te=Xd(I,!0)):Re?(ie=!1,te=Zd(I,!0)):te=[]:ta(I)||po(I)?(te=L,po(L)?te=$m(L):(!Dt(L)||li(L))&&(te=mm(I))):ie=!1}ie&&(N.set(I,te),m(te,I,p,v,N),N.delete(I)),sf(o,u,te)}function zd(o,a){var u=o.length;if(!!u)return a+=a<0?u:0,ai(a,u)?o[a]:i}function Fd(o,a,u){a.length?a=Ot(a,function(v){return ke(v)?function(N){return uo(N,v.length===1?v[0]:v)}:v}):a=[Br];var p=-1;a=Ot(a,Wr(De()));var m=jd(o,function(v,N,L){var I=Ot(a,function(Q){return Q(v)});return{criteria:I,index:++p,value:v}});return uS(m,function(v,N){return Xw(v,N,u)})}function Rw(o,a){return Vd(o,a,function(u,p){return Uf(o,p)})}function Vd(o,a,u){for(var p=-1,m=a.length,v={};++p<m;){var N=a[p],L=uo(o,N);u(L,N)&&Zs(v,Oi(N,o),L)}return v}function zw(o){return function(a){return uo(a,o)}}function mf(o,a,u,p){var m=p?cS:jo,v=-1,N=a.length,L=o;for(o===a&&(a=Or(a)),u&&(L=Ot(o,Wr(u)));++v<N;)for(var I=0,Q=a[v],te=u?u(Q):Q;(I=m(L,te,I,p))>-1;)L!==o&&fl.call(L,I,1),fl.call(o,I,1);return o}function Ud(o,a){for(var u=o?a.length:0,p=u-1;u--;){var m=a[u];if(u==p||m!==v){var v=m;ai(m)?fl.call(o,m,1):vf(o,m)}}return o}function gf(o,a){return o+dl(wd()*(a-o+1))}function Fw(o,a,u,p){for(var m=-1,v=Xt(pl((a-o)/(u||1)),0),N=V(v);v--;)N[p?v:++m]=o,o+=u;return N}function yf(o,a){var u="";if(!o||a<1||a>re)return u;do a%2&&(u+=o),a=dl(a/2),a&&(o+=o);while(a);return u}function Ze(o,a){return Bf(xm(o,a,Br),o+"")}function Vw(o){return Ld($o(o))}function Uw(o,a){var u=$o(o);return Ol(u,co(a,0,u.length))}function Zs(o,a,u,p){if(!Dt(o))return o;a=Oi(a,o);for(var m=-1,v=a.length,N=v-1,L=o;L!=null&&++m<v;){var I=Vn(a[m]),Q=u;if(I==="__proto__"||I==="constructor"||I==="prototype")return o;if(m!=N){var te=L[I];Q=p?p(te,I,L):i,Q===i&&(Q=Dt(te)?te:ai(a[m+1])?[]:{})}$s(L,I,Q),L=L[I]}return o}var kd=ml?function(o,a){return ml.set(o,a),o}:Br,kw=hl?function(o,a){return hl(o,"toString",{configurable:!0,enumerable:!1,value:Hf(a),writable:!0})}:Br;function Hw(o){return Ol($o(o))}function un(o,a,u){var p=-1,m=o.length;a<0&&(a=-a>m?0:m+a),u=u>m?m:u,u<0&&(u+=m),m=a>u?0:u-a>>>0,a>>>=0;for(var v=V(m);++p<m;)v[p]=o[p+a];return v}function Ww(o,a){var u;return Mi(o,function(p,m,v){return u=a(p,m,v),!u}),!!u}function wl(o,a,u){var p=0,m=o==null?p:o.length;if(typeof a=="number"&&a===a&&m<=k){for(;p<m;){var v=p+m>>>1,N=o[v];N!==null&&!$r(N)&&(u?N<=a:N<a)?p=v+1:m=v}return m}return xf(o,a,Br,u)}function xf(o,a,u,p){var m=0,v=o==null?0:o.length;if(v===0)return 0;a=u(a);for(var N=a!==a,L=a===null,I=$r(a),Q=a===i;m<v;){var te=dl((m+v)/2),ie=u(o[te]),me=ie!==i,Le=ie===null,Re=ie===ie,Je=$r(ie);if(N)var je=p||Re;else Q?je=Re&&(p||me):L?je=Re&&me&&(p||!Le):I?je=Re&&me&&!Le&&(p||!Je):Le||Je?je=!1:je=p?ie<=a:ie<a;je?m=te+1:v=te}return dr(v,Fe)}function Hd(o,a){for(var u=-1,p=o.length,m=0,v=[];++u<p;){var N=o[u],L=a?a(N):N;if(!u||!In(L,I)){var I=L;v[m++]=N===0?0:N}}return v}function Wd(o){return typeof o=="number"?o:$r(o)?ye:+o}function qr(o){if(typeof o=="string")return o;if(ke(o))return Ot(o,qr)+"";if($r(o))return Nd?Nd.call(o):"";var a=o+"";return a=="0"&&1/o==-he?"-0":a}function Ai(o,a,u){var p=-1,m=tl,v=o.length,N=!0,L=[],I=L;if(u)N=!1,m=qu;else if(v>=t){var Q=a?null:r1(o);if(Q)return nl(Q);N=!1,m=Vs,I=new lo}else I=a?[]:L;e:for(;++p<v;){var te=o[p],ie=a?a(te):te;if(te=u||te!==0?te:0,N&&ie===ie){for(var me=I.length;me--;)if(I[me]===ie)continue e;a&&I.push(ie),L.push(te)}else m(I,ie,u)||(I!==L&&I.push(ie),L.push(te))}return L}function vf(o,a){return a=Oi(a,o),o=vm(o,a),o==null||delete o[Vn(fn(a))]}function qd(o,a,u,p){return Zs(o,a,u(uo(o,a)),p)}function Nl(o,a,u,p){for(var m=o.length,v=p?m:-1;(p?v--:++v<m)&&a(o[v],v,o););return u?un(o,p?0:v,p?v+1:m):un(o,p?v+1:0,p?m:v)}function $d(o,a){var u=o;return u instanceof rt&&(u=u.value()),$u(a,function(p,m){return m.func.apply(m.thisArg,Li([p],m.args))},u)}function bf(o,a,u){var p=o.length;if(p<2)return p?Ai(o[0]):[];for(var m=-1,v=V(p);++m<p;)for(var N=o[m],L=-1;++L<p;)L!=m&&(v[m]=Js(v[m]||N,o[L],a,u));return Ai(lr(v,1),a,u)}function Jd(o,a,u){for(var p=-1,m=o.length,v=a.length,N={};++p<m;){var L=p<v?a[p]:i;u(N,o[p],L)}return N}function Sf(o){return zt(o)?o:[]}function wf(o){return typeof o=="function"?o:Br}function Oi(o,a){return ke(o)?o:Of(o,a)?[o]:Nm(ut(o))}var qw=Ze;function Pi(o,a,u){var p=o.length;return u=u===i?p:u,!a&&u>=p?o:un(o,a,u)}var Kd=DS||function(o){return rr.clearTimeout(o)};function Xd(o,a){if(a)return o.slice();var u=o.length,p=yd?yd(u):new o.constructor(u);return o.copy(p),p}function Nf(o){var a=new o.constructor(o.byteLength);return new cl(a).set(new cl(o)),a}function $w(o,a){var u=a?Nf(o.buffer):o.buffer;return new o.constructor(u,o.byteOffset,o.byteLength)}function Jw(o){var a=new o.constructor(o.source,Ln.exec(o));return a.lastIndex=o.lastIndex,a}function Kw(o){return qs?yt(qs.call(o)):{}}function Zd(o,a){var u=a?Nf(o.buffer):o.buffer;return new o.constructor(u,o.byteOffset,o.length)}function Yd(o,a){if(o!==a){var u=o!==i,p=o===null,m=o===o,v=$r(o),N=a!==i,L=a===null,I=a===a,Q=$r(a);if(!L&&!Q&&!v&&o>a||v&&N&&I&&!L&&!Q||p&&N&&I||!u&&I||!m)return 1;if(!p&&!v&&!Q&&o<a||Q&&u&&m&&!p&&!v||L&&u&&m||!N&&m||!I)return-1}return 0}function Xw(o,a,u){for(var p=-1,m=o.criteria,v=a.criteria,N=m.length,L=u.length;++p<N;){var I=Yd(m[p],v[p]);if(I){if(p>=L)return I;var Q=u[p];return I*(Q=="desc"?-1:1)}}return o.index-a.index}function Qd(o,a,u,p){for(var m=-1,v=o.length,N=u.length,L=-1,I=a.length,Q=Xt(v-N,0),te=V(I+Q),ie=!p;++L<I;)te[L]=a[L];for(;++m<N;)(ie||m<v)&&(te[u[m]]=o[m]);for(;Q--;)te[L++]=o[m++];return te}function em(o,a,u,p){for(var m=-1,v=o.length,N=-1,L=u.length,I=-1,Q=a.length,te=Xt(v-L,0),ie=V(te+Q),me=!p;++m<te;)ie[m]=o[m];for(var Le=m;++I<Q;)ie[Le+I]=a[I];for(;++N<L;)(me||m<v)&&(ie[Le+u[N]]=o[m++]);return ie}function Or(o,a){var u=-1,p=o.length;for(a||(a=V(p));++u<p;)a[u]=o[u];return a}function Fn(o,a,u,p){var m=!u;u||(u={});for(var v=-1,N=a.length;++v<N;){var L=a[v],I=p?p(u[L],o[L],L,u,o):i;I===i&&(I=o[L]),m?ii(u,L,I):$s(u,L,I)}return u}function Zw(o,a){return Fn(o,Af(o),a)}function Yw(o,a){return Fn(o,pm(o),a)}function Cl(o,a){return function(u,p){var m=ke(u)?nS:bw,v=a?a():{};return m(u,o,De(p,2),v)}}function ko(o){return Ze(function(a,u){var p=-1,m=u.length,v=m>1?u[m-1]:i,N=m>2?u[2]:i;for(v=o.length>3&&typeof v=="function"?(m--,v):i,N&&Sr(u[0],u[1],N)&&(v=m<3?i:v,m=1),a=yt(a);++p<m;){var L=u[p];L&&o(a,L,p,v)}return a})}function tm(o,a){return function(u,p){if(u==null)return u;if(!Pr(u))return o(u,p);for(var m=u.length,v=a?m:-1,N=yt(u);(a?v--:++v<m)&&p(N[v],v,N)!==!1;);return u}}function rm(o){return function(a,u,p){for(var m=-1,v=yt(a),N=p(a),L=N.length;L--;){var I=N[o?L:++m];if(u(v[I],I,v)===!1)break}return a}}function Qw(o,a,u){var p=a&w,m=Ys(o);function v(){var N=this&&this!==rr&&this instanceof v?m:o;return N.apply(p?u:this,arguments)}return v}function nm(o){return function(a){a=ut(a);var u=Eo(a)?_n(a):i,p=u?u[0]:a.charAt(0),m=u?Pi(u,1).join(""):a.slice(1);return p[o]()+m}}function Ho(o){return function(a){return $u(tg(eg(a).replace(kb,"")),o,"")}}function Ys(o){return function(){var a=arguments;switch(a.length){case 0:return new o;case 1:return new o(a[0]);case 2:return new o(a[0],a[1]);case 3:return new o(a[0],a[1],a[2]);case 4:return new o(a[0],a[1],a[2],a[3]);case 5:return new o(a[0],a[1],a[2],a[3],a[4]);case 6:return new o(a[0],a[1],a[2],a[3],a[4],a[5]);case 7:return new o(a[0],a[1],a[2],a[3],a[4],a[5],a[6])}var u=Uo(o.prototype),p=o.apply(u,a);return Dt(p)?p:u}}function e1(o,a,u){var p=Ys(o);function m(){for(var v=arguments.length,N=V(v),L=v,I=Wo(m);L--;)N[L]=arguments[L];var Q=v<3&&N[0]!==I&&N[v-1]!==I?[]:_i(N,I);if(v-=Q.length,v<u)return lm(o,a,Ll,m.placeholder,i,N,Q,i,i,u-v);var te=this&&this!==rr&&this instanceof m?p:o;return Hr(te,this,N)}return m}function im(o){return function(a,u,p){var m=yt(a);if(!Pr(a)){var v=De(u,3);a=nr(a),u=function(L){return v(m[L],L,m)}}var N=o(a,u,p);return N>-1?m[v?a[N]:N]:i}}function om(o){return si(function(a){var u=a.length,p=u,m=ln.prototype.thru;for(o&&a.reverse();p--;){var v=a[p];if(typeof v!="function")throw new an(n);if(m&&!N&&Ml(v)=="wrapper")var N=new ln([],!0)}for(p=N?p:u;++p<u;){v=a[p];var L=Ml(v),I=L=="wrapper"?If(v):i;I&&Pf(I[0])&&I[1]==(W|C|B|M)&&!I[4].length&&I[9]==1?N=N[Ml(I[0])].apply(N,I[3]):N=v.length==1&&Pf(v)?N[L]():N.thru(v)}return function(){var Q=arguments,te=Q[0];if(N&&Q.length==1&&ke(te))return N.plant(te).value();for(var ie=0,me=u?a[ie].apply(this,Q):te;++ie<u;)me=a[ie].call(this,me);return me}})}function Ll(o,a,u,p,m,v,N,L,I,Q){var te=a&W,ie=a&w,me=a&S,Le=a&(C|G),Re=a&q,Je=me?i:Ys(o);function je(){for(var et=arguments.length,nt=V(et),Jr=et;Jr--;)nt[Jr]=arguments[Jr];if(Le)var wr=Wo(je),Kr=hS(nt,wr);if(p&&(nt=Qd(nt,p,m,Le)),v&&(nt=em(nt,v,N,Le)),et-=Kr,Le&&et<Q){var Ft=_i(nt,wr);return lm(o,a,Ll,je.placeholder,u,nt,Ft,L,I,Q-et)}var Mn=ie?u:this,ui=me?Mn[o]:o;return et=nt.length,L?nt=b1(nt,L):Re&&et>1&&nt.reverse(),te&&I<et&&(nt.length=I),this&&this!==rr&&this instanceof je&&(ui=Je||Ys(ui)),ui.apply(Mn,nt)}return je}function sm(o,a){return function(u,p){return Iw(u,o,a(p),{})}}function _l(o,a){return function(u,p){var m;if(u===i&&p===i)return a;if(u!==i&&(m=u),p!==i){if(m===i)return p;typeof u=="string"||typeof p=="string"?(u=qr(u),p=qr(p)):(u=Wd(u),p=Wd(p)),m=o(u,p)}return m}}function Cf(o){return si(function(a){return a=Ot(a,Wr(De())),Ze(function(u){var p=this;return o(a,function(m){return Hr(m,p,u)})})})}function Tl(o,a){a=a===i?" ":qr(a);var u=a.length;if(u<2)return u?yf(a,o):a;var p=yf(a,pl(o/Ro(a)));return Eo(a)?Pi(_n(p),0,o).join(""):p.slice(0,o)}function t1(o,a,u,p){var m=a&w,v=Ys(o);function N(){for(var L=-1,I=arguments.length,Q=-1,te=p.length,ie=V(te+I),me=this&&this!==rr&&this instanceof N?v:o;++Q<te;)ie[Q]=p[Q];for(;I--;)ie[Q++]=arguments[++L];return Hr(me,m?u:this,ie)}return N}function am(o){return function(a,u,p){return p&&typeof p!="number"&&Sr(a,u,p)&&(u=p=i),a=ci(a),u===i?(u=a,a=0):u=ci(u),p=p===i?a<u?1:-1:ci(p),Fw(a,u,p,o)}}function Il(o){return function(a,u){return typeof a=="string"&&typeof u=="string"||(a=hn(a),u=hn(u)),o(a,u)}}function lm(o,a,u,p,m,v,N,L,I,Q){var te=a&C,ie=te?N:i,me=te?i:N,Le=te?v:i,Re=te?i:v;a|=te?B:P,a&=~(te?P:B),a&D||(a&=~(w|S));var Je=[o,a,m,Le,ie,Re,me,L,I,Q],je=u.apply(i,Je);return Pf(o)&&bm(je,Je),je.placeholder=p,Sm(je,o,a)}function Lf(o){var a=Kt[o];return function(u,p){if(u=hn(u),p=p==null?0:dr(We(p),292),p&&Sd(u)){var m=(ut(u)+"e").split("e"),v=a(m[0]+"e"+(+m[1]+p));return m=(ut(v)+"e").split("e"),+(m[0]+"e"+(+m[1]-p))}return a(u)}}var r1=Fo&&1/nl(new Fo([,-0]))[1]==he?function(o){return new Fo(o)}:$f;function cm(o){return function(a){var u=mr(a);return u==ne?ef(a):u==de?vS(a):fS(a,o(a))}}function oi(o,a,u,p,m,v,N,L){var I=a&S;if(!I&&typeof o!="function")throw new an(n);var Q=p?p.length:0;if(Q||(a&=~(B|P),p=m=i),N=N===i?N:Xt(We(N),0),L=L===i?L:We(L),Q-=m?m.length:0,a&P){var te=p,ie=m;p=m=i}var me=I?i:If(o),Le=[o,a,u,p,m,te,ie,v,N,L];if(me&&y1(Le,me),o=Le[0],a=Le[1],u=Le[2],p=Le[3],m=Le[4],L=Le[9]=Le[9]===i?I?0:o.length:Xt(Le[9]-Q,0),!L&&a&(C|G)&&(a&=~(C|G)),!a||a==w)var Re=Qw(o,a,u);else a==C||a==G?Re=e1(o,a,L):(a==B||a==(w|B))&&!m.length?Re=t1(o,a,u,p):Re=Ll.apply(i,Le);var Je=me?kd:bm;return Sm(Je(Re,Le),o,a)}function um(o,a,u,p){return o===i||In(o,zo[u])&&!pt.call(p,u)?a:o}function fm(o,a,u,p,m,v){return Dt(o)&&Dt(a)&&(v.set(a,o),Sl(o,a,i,fm,v),v.delete(a)),o}function n1(o){return ta(o)?i:o}function hm(o,a,u,p,m,v){var N=u&x,L=o.length,I=a.length;if(L!=I&&!(N&&I>L))return!1;var Q=v.get(o),te=v.get(a);if(Q&&te)return Q==a&&te==o;var ie=-1,me=!0,Le=u&g?new lo:i;for(v.set(o,a),v.set(a,o);++ie<L;){var Re=o[ie],Je=a[ie];if(p)var je=N?p(Je,Re,ie,a,o,v):p(Re,Je,ie,o,a,v);if(je!==i){if(je)continue;me=!1;break}if(Le){if(!Ju(a,function(et,nt){if(!Vs(Le,nt)&&(Re===et||m(Re,et,u,p,v)))return Le.push(nt)})){me=!1;break}}else if(!(Re===Je||m(Re,Je,u,p,v))){me=!1;break}}return v.delete(o),v.delete(a),me}function i1(o,a,u,p,m,v,N){switch(u){case At:if(o.byteLength!=a.byteLength||o.byteOffset!=a.byteOffset)return!1;o=o.buffer,a=a.buffer;case Lt:return!(o.byteLength!=a.byteLength||!v(new cl(o),new cl(a)));case oe:case se:case Ce:return In(+o,+a);case ue:return o.name==a.name&&o.message==a.message;case _e:case we:return o==a+"";case ne:var L=ef;case de:var I=p&x;if(L||(L=nl),o.size!=a.size&&!I)return!1;var Q=N.get(o);if(Q)return Q==a;p|=g,N.set(o,a);var te=hm(L(o),L(a),p,m,v,N);return N.delete(o),te;case Ve:if(qs)return qs.call(o)==qs.call(a)}return!1}function o1(o,a,u,p,m,v){var N=u&x,L=_f(o),I=L.length,Q=_f(a),te=Q.length;if(I!=te&&!N)return!1;for(var ie=I;ie--;){var me=L[ie];if(!(N?me in a:pt.call(a,me)))return!1}var Le=v.get(o),Re=v.get(a);if(Le&&Re)return Le==a&&Re==o;var Je=!0;v.set(o,a),v.set(a,o);for(var je=N;++ie<I;){me=L[ie];var et=o[me],nt=a[me];if(p)var Jr=N?p(nt,et,me,a,o,v):p(et,nt,me,o,a,v);if(!(Jr===i?et===nt||m(et,nt,u,p,v):Jr)){Je=!1;break}je||(je=me=="constructor")}if(Je&&!je){var wr=o.constructor,Kr=a.constructor;wr!=Kr&&"constructor"in o&&"constructor"in a&&!(typeof wr=="function"&&wr instanceof wr&&typeof Kr=="function"&&Kr instanceof Kr)&&(Je=!1)}return v.delete(o),v.delete(a),Je}function si(o){return Bf(xm(o,i,Tm),o+"")}function _f(o){return Pd(o,nr,Af)}function Tf(o){return Pd(o,Dr,pm)}var If=ml?function(o){return ml.get(o)}:$f;function Ml(o){for(var a=o.name+"",u=Vo[a],p=pt.call(Vo,a)?u.length:0;p--;){var m=u[p],v=m.func;if(v==null||v==o)return m.name}return a}function Wo(o){var a=pt.call(y,"placeholder")?y:o;return a.placeholder}function De(){var o=y.iteratee||Wf;return o=o===Wf?Gd:o,arguments.length?o(arguments[0],arguments[1]):o}function Al(o,a){var u=o.__data__;return p1(a)?u[typeof a=="string"?"string":"hash"]:u.map}function Mf(o){for(var a=nr(o),u=a.length;u--;){var p=a[u],m=o[p];a[u]=[p,m,gm(m)]}return a}function fo(o,a){var u=gS(o,a);return Bd(u)?u:i}function s1(o){var a=pt.call(o,so),u=o[so];try{o[so]=i;var p=!0}catch(v){}var m=al.call(o);return p&&(a?o[so]=u:delete o[so]),m}var Af=rf?function(o){return o==null?[]:(o=yt(o),Ci(rf(o),function(a){return vd.call(o,a)}))}:Jf,pm=rf?function(o){for(var a=[];o;)Li(a,Af(o)),o=ul(o);return a}:Jf,mr=br;(nf&&mr(new nf(new ArrayBuffer(1)))!=At||ks&&mr(new ks)!=ne||of&&mr(of.resolve())!=pe||Fo&&mr(new Fo)!=de||Hs&&mr(new Hs)!=Qe)&&(mr=function(o){var a=br(o),u=a==le?o.constructor:i,p=u?ho(u):"";if(p)switch(p){case US:return At;case kS:return ne;case HS:return pe;case WS:return de;case qS:return Qe}return a});function a1(o,a,u){for(var p=-1,m=u.length;++p<m;){var v=u[p],N=v.size;switch(v.type){case"drop":o+=N;break;case"dropRight":a-=N;break;case"take":a=dr(a,o+N);break;case"takeRight":o=Xt(o,a-N);break}}return{start:o,end:a}}function l1(o){var a=o.match(ct);return a?a[1].split(St):[]}function dm(o,a,u){a=Oi(a,o);for(var p=-1,m=a.length,v=!1;++p<m;){var N=Vn(a[p]);if(!(v=o!=null&&u(o,N)))break;o=o[N]}return v||++p!=m?v:(m=o==null?0:o.length,!!m&&El(m)&&ai(N,m)&&(ke(o)||po(o)))}function c1(o){var a=o.length,u=new o.constructor(a);return a&&typeof o[0]=="string"&&pt.call(o,"index")&&(u.index=o.index,u.input=o.input),u}function mm(o){return typeof o.constructor=="function"&&!Qs(o)?Uo(ul(o)):{}}function u1(o,a,u){var p=o.constructor;switch(a){case Lt:return Nf(o);case oe:case se:return new p(+o);case At:return $w(o,u);case sr:case Ur:case Ht:case kr:case wn:case Nn:case dt:case Wt:case ar:return Zd(o,u);case ne:return new p;case Ce:case we:return new p(o);case _e:return Jw(o);case de:return new p;case Ve:return Kw(o)}}function f1(o,a){var u=a.length;if(!u)return o;var p=u-1;return a[p]=(u>1?"& ":"")+a[p],a=a.join(u>2?", ":" "),o.replace(gt,`{
|
|
2
|
-
/* [wrapped with `+
|
|
3
|
-
`)}function h1(o){return ke(o)||po(o)||!!(bd&&o&&o[bd])}function ai(o,a){var u=typeof o;return a=a==null?re:a,!!a&&(u=="number"||u!="symbol"&&Cb.test(o))&&o>-1&&o%1==0&&o<a}function Sr(o,a,u){if(!Dt(u))return!1;var p=typeof a;return(p=="number"?Pr(u)&&ai(a,u.length):p=="string"&&a in u)?In(u[a],o):!1}function Of(o,a){if(ke(o))return!1;var u=typeof o;return u=="number"||u=="symbol"||u=="boolean"||o==null||$r(o)?!0:Ee.test(o)||!Bo.test(o)||a!=null&&o in yt(a)}function p1(o){var a=typeof o;return a=="string"||a=="number"||a=="symbol"||a=="boolean"?o!=="__proto__":o===null}function Pf(o){var a=Ml(o),u=y[a];if(typeof u!="function"||!(a in rt.prototype))return!1;if(o===u)return!0;var p=If(u);return!!p&&o===p[0]}function d1(o){return!!gd&&gd in o}var m1=ol?li:Kf;function Qs(o){var a=o&&o.constructor,u=typeof a=="function"&&a.prototype||zo;return o===u}function gm(o){return o===o&&!Dt(o)}function ym(o,a){return function(u){return u==null?!1:u[o]===a&&(a!==i||o in yt(u))}}function g1(o){var a=Gl(o,function(p){return u.size===l&&u.clear(),p}),u=a.cache;return a}function y1(o,a){var u=o[1],p=a[1],m=u|p,v=m<(w|S|W),N=p==W&&u==C||p==W&&u==M&&o[7].length<=a[8]||p==(W|M)&&a[7].length<=a[8]&&u==C;if(!(v||N))return o;p&w&&(o[2]=a[2],m|=u&w?0:D);var L=a[3];if(L){var I=o[3];o[3]=I?Qd(I,L,a[4]):L,o[4]=I?_i(o[3],c):a[4]}return L=a[5],L&&(I=o[5],o[5]=I?em(I,L,a[6]):L,o[6]=I?_i(o[5],c):a[6]),L=a[7],L&&(o[7]=L),p&W&&(o[8]=o[8]==null?a[8]:dr(o[8],a[8])),o[9]==null&&(o[9]=a[9]),o[0]=a[0],o[1]=m,o}function x1(o){var a=[];if(o!=null)for(var u in yt(o))a.push(u);return a}function v1(o){return al.call(o)}function xm(o,a,u){return a=Xt(a===i?o.length-1:a,0),function(){for(var p=arguments,m=-1,v=Xt(p.length-a,0),N=V(v);++m<v;)N[m]=p[a+m];m=-1;for(var L=V(a+1);++m<a;)L[m]=p[m];return L[a]=u(N),Hr(o,this,L)}}function vm(o,a){return a.length<2?o:uo(o,un(a,0,-1))}function b1(o,a){for(var u=o.length,p=dr(a.length,u),m=Or(o);p--;){var v=a[p];o[p]=ai(v,u)?m[v]:i}return o}function Df(o,a){if(!(a==="constructor"&&typeof o[a]=="function")&&a!="__proto__")return o[a]}var bm=wm(kd),ea=GS||function(o,a){return rr.setTimeout(o,a)},Bf=wm(kw);function Sm(o,a,u){var p=a+"";return Bf(o,f1(p,S1(l1(p),u)))}function wm(o){var a=0,u=0;return function(){var p=zS(),m=T-(p-u);if(u=p,m>0){if(++a>=R)return arguments[0]}else a=0;return o.apply(i,arguments)}}function Ol(o,a){var u=-1,p=o.length,m=p-1;for(a=a===i?p:a;++u<a;){var v=gf(u,m),N=o[v];o[v]=o[u],o[u]=N}return o.length=a,o}var Nm=g1(function(o){var a=[];return o.charCodeAt(0)===46&&a.push(""),o.replace(Xe,function(u,p,m,v){a.push(m?v.replace(Ar,"$1"):p||u)}),a});function Vn(o){if(typeof o=="string"||$r(o))return o;var a=o+"";return a=="0"&&1/o==-he?"-0":a}function ho(o){if(o!=null){try{return sl.call(o)}catch(a){}try{return o+""}catch(a){}}return""}function S1(o,a){return sn(H,function(u){var p="_."+u[0];a&u[1]&&!tl(o,p)&&o.push(p)}),o.sort()}function Cm(o){if(o instanceof rt)return o.clone();var a=new ln(o.__wrapped__,o.__chain__);return a.__actions__=Or(o.__actions__),a.__index__=o.__index__,a.__values__=o.__values__,a}function w1(o,a,u){(u?Sr(o,a,u):a===i)?a=1:a=Xt(We(a),0);var p=o==null?0:o.length;if(!p||a<1)return[];for(var m=0,v=0,N=V(pl(p/a));m<p;)N[v++]=un(o,m,m+=a);return N}function N1(o){for(var a=-1,u=o==null?0:o.length,p=0,m=[];++a<u;){var v=o[a];v&&(m[p++]=v)}return m}function C1(){var o=arguments.length;if(!o)return[];for(var a=V(o-1),u=arguments[0],p=o;p--;)a[p-1]=arguments[p];return Li(ke(u)?Or(u):[u],lr(a,1))}var L1=Ze(function(o,a){return zt(o)?Js(o,lr(a,1,zt,!0)):[]}),_1=Ze(function(o,a){var u=fn(a);return zt(u)&&(u=i),zt(o)?Js(o,lr(a,1,zt,!0),De(u,2)):[]}),T1=Ze(function(o,a){var u=fn(a);return zt(u)&&(u=i),zt(o)?Js(o,lr(a,1,zt,!0),i,u):[]});function I1(o,a,u){var p=o==null?0:o.length;return p?(a=u||a===i?1:We(a),un(o,a<0?0:a,p)):[]}function M1(o,a,u){var p=o==null?0:o.length;return p?(a=u||a===i?1:We(a),a=p-a,un(o,0,a<0?0:a)):[]}function A1(o,a){return o&&o.length?Nl(o,De(a,3),!0,!0):[]}function O1(o,a){return o&&o.length?Nl(o,De(a,3),!0):[]}function P1(o,a,u,p){var m=o==null?0:o.length;return m?(u&&typeof u!="number"&&Sr(o,a,u)&&(u=0,p=m),Cw(o,a,u,p)):[]}function Lm(o,a,u){var p=o==null?0:o.length;if(!p)return-1;var m=u==null?0:We(u);return m<0&&(m=Xt(p+m,0)),rl(o,De(a,3),m)}function _m(o,a,u){var p=o==null?0:o.length;if(!p)return-1;var m=p-1;return u!==i&&(m=We(u),m=u<0?Xt(p+m,0):dr(m,p-1)),rl(o,De(a,3),m,!0)}function Tm(o){var a=o==null?0:o.length;return a?lr(o,1):[]}function D1(o){var a=o==null?0:o.length;return a?lr(o,he):[]}function B1(o,a){var u=o==null?0:o.length;return u?(a=a===i?1:We(a),lr(o,a)):[]}function G1(o){for(var a=-1,u=o==null?0:o.length,p={};++a<u;){var m=o[a];p[m[0]]=m[1]}return p}function Im(o){return o&&o.length?o[0]:i}function j1(o,a,u){var p=o==null?0:o.length;if(!p)return-1;var m=u==null?0:We(u);return m<0&&(m=Xt(p+m,0)),jo(o,a,m)}function E1(o){var a=o==null?0:o.length;return a?un(o,0,-1):[]}var R1=Ze(function(o){var a=Ot(o,Sf);return a.length&&a[0]===o[0]?ff(a):[]}),z1=Ze(function(o){var a=fn(o),u=Ot(o,Sf);return a===fn(u)?a=i:u.pop(),u.length&&u[0]===o[0]?ff(u,De(a,2)):[]}),F1=Ze(function(o){var a=fn(o),u=Ot(o,Sf);return a=typeof a=="function"?a:i,a&&u.pop(),u.length&&u[0]===o[0]?ff(u,i,a):[]});function V1(o,a){return o==null?"":ES.call(o,a)}function fn(o){var a=o==null?0:o.length;return a?o[a-1]:i}function U1(o,a,u){var p=o==null?0:o.length;if(!p)return-1;var m=p;return u!==i&&(m=We(u),m=m<0?Xt(p+m,0):dr(m,p-1)),a===a?SS(o,a,m):rl(o,ud,m,!0)}function k1(o,a){return o&&o.length?zd(o,We(a)):i}var H1=Ze(Mm);function Mm(o,a){return o&&o.length&&a&&a.length?mf(o,a):o}function W1(o,a,u){return o&&o.length&&a&&a.length?mf(o,a,De(u,2)):o}function q1(o,a,u){return o&&o.length&&a&&a.length?mf(o,a,i,u):o}var $1=si(function(o,a){var u=o==null?0:o.length,p=af(o,a);return Ud(o,Ot(a,function(m){return ai(m,u)?+m:m}).sort(Yd)),p});function J1(o,a){var u=[];if(!(o&&o.length))return u;var p=-1,m=[],v=o.length;for(a=De(a,3);++p<v;){var N=o[p];a(N,p,o)&&(u.push(N),m.push(p))}return Ud(o,m),u}function Gf(o){return o==null?o:VS.call(o)}function K1(o,a,u){var p=o==null?0:o.length;return p?(u&&typeof u!="number"&&Sr(o,a,u)?(a=0,u=p):(a=a==null?0:We(a),u=u===i?p:We(u)),un(o,a,u)):[]}function X1(o,a){return wl(o,a)}function Z1(o,a,u){return xf(o,a,De(u,2))}function Y1(o,a){var u=o==null?0:o.length;if(u){var p=wl(o,a);if(p<u&&In(o[p],a))return p}return-1}function Q1(o,a){return wl(o,a,!0)}function eN(o,a,u){return xf(o,a,De(u,2),!0)}function tN(o,a){var u=o==null?0:o.length;if(u){var p=wl(o,a,!0)-1;if(In(o[p],a))return p}return-1}function rN(o){return o&&o.length?Hd(o):[]}function nN(o,a){return o&&o.length?Hd(o,De(a,2)):[]}function iN(o){var a=o==null?0:o.length;return a?un(o,1,a):[]}function oN(o,a,u){return o&&o.length?(a=u||a===i?1:We(a),un(o,0,a<0?0:a)):[]}function sN(o,a,u){var p=o==null?0:o.length;return p?(a=u||a===i?1:We(a),a=p-a,un(o,a<0?0:a,p)):[]}function aN(o,a){return o&&o.length?Nl(o,De(a,3),!1,!0):[]}function lN(o,a){return o&&o.length?Nl(o,De(a,3)):[]}var cN=Ze(function(o){return Ai(lr(o,1,zt,!0))}),uN=Ze(function(o){var a=fn(o);return zt(a)&&(a=i),Ai(lr(o,1,zt,!0),De(a,2))}),fN=Ze(function(o){var a=fn(o);return a=typeof a=="function"?a:i,Ai(lr(o,1,zt,!0),i,a)});function hN(o){return o&&o.length?Ai(o):[]}function pN(o,a){return o&&o.length?Ai(o,De(a,2)):[]}function dN(o,a){return a=typeof a=="function"?a:i,o&&o.length?Ai(o,i,a):[]}function jf(o){if(!(o&&o.length))return[];var a=0;return o=Ci(o,function(u){if(zt(u))return a=Xt(u.length,a),!0}),Yu(a,function(u){return Ot(o,Ku(u))})}function Am(o,a){if(!(o&&o.length))return[];var u=jf(o);return a==null?u:Ot(u,function(p){return Hr(a,i,p)})}var mN=Ze(function(o,a){return zt(o)?Js(o,a):[]}),gN=Ze(function(o){return bf(Ci(o,zt))}),yN=Ze(function(o){var a=fn(o);return zt(a)&&(a=i),bf(Ci(o,zt),De(a,2))}),xN=Ze(function(o){var a=fn(o);return a=typeof a=="function"?a:i,bf(Ci(o,zt),i,a)}),vN=Ze(jf);function bN(o,a){return Jd(o||[],a||[],$s)}function SN(o,a){return Jd(o||[],a||[],Zs)}var wN=Ze(function(o){var a=o.length,u=a>1?o[a-1]:i;return u=typeof u=="function"?(o.pop(),u):i,Am(o,u)});function Om(o){var a=y(o);return a.__chain__=!0,a}function NN(o,a){return a(o),o}function Pl(o,a){return a(o)}var CN=si(function(o){var a=o.length,u=a?o[0]:0,p=this.__wrapped__,m=function(v){return af(v,o)};return a>1||this.__actions__.length||!(p instanceof rt)||!ai(u)?this.thru(m):(p=p.slice(u,+u+(a?1:0)),p.__actions__.push({func:Pl,args:[m],thisArg:i}),new ln(p,this.__chain__).thru(function(v){return a&&!v.length&&v.push(i),v}))});function LN(){return Om(this)}function _N(){return new ln(this.value(),this.__chain__)}function TN(){this.__values__===i&&(this.__values__=Wm(this.value()));var o=this.__index__>=this.__values__.length,a=o?i:this.__values__[this.__index__++];return{done:o,value:a}}function IN(){return this}function MN(o){for(var a,u=this;u instanceof yl;){var p=Cm(u);p.__index__=0,p.__values__=i,a?m.__wrapped__=p:a=p;var m=p;u=u.__wrapped__}return m.__wrapped__=o,a}function AN(){var o=this.__wrapped__;if(o instanceof rt){var a=o;return this.__actions__.length&&(a=new rt(this)),a=a.reverse(),a.__actions__.push({func:Pl,args:[Gf],thisArg:i}),new ln(a,this.__chain__)}return this.thru(Gf)}function ON(){return $d(this.__wrapped__,this.__actions__)}var PN=Cl(function(o,a,u){pt.call(o,u)?++o[u]:ii(o,u,1)});function DN(o,a,u){var p=ke(o)?ld:Nw;return u&&Sr(o,a,u)&&(a=i),p(o,De(a,3))}function BN(o,a){var u=ke(o)?Ci:Ad;return u(o,De(a,3))}var GN=im(Lm),jN=im(_m);function EN(o,a){return lr(Dl(o,a),1)}function RN(o,a){return lr(Dl(o,a),he)}function zN(o,a,u){return u=u===i?1:We(u),lr(Dl(o,a),u)}function Pm(o,a){var u=ke(o)?sn:Mi;return u(o,De(a,3))}function Dm(o,a){var u=ke(o)?iS:Md;return u(o,De(a,3))}var FN=Cl(function(o,a,u){pt.call(o,u)?o[u].push(a):ii(o,u,[a])});function VN(o,a,u,p){o=Pr(o)?o:$o(o),u=u&&!p?We(u):0;var m=o.length;return u<0&&(u=Xt(m+u,0)),Rl(o)?u<=m&&o.indexOf(a,u)>-1:!!m&&jo(o,a,u)>-1}var UN=Ze(function(o,a,u){var p=-1,m=typeof a=="function",v=Pr(o)?V(o.length):[];return Mi(o,function(N){v[++p]=m?Hr(a,N,u):Ks(N,a,u)}),v}),kN=Cl(function(o,a,u){ii(o,u,a)});function Dl(o,a){var u=ke(o)?Ot:jd;return u(o,De(a,3))}function HN(o,a,u,p){return o==null?[]:(ke(a)||(a=a==null?[]:[a]),u=p?i:u,ke(u)||(u=u==null?[]:[u]),Fd(o,a,u))}var WN=Cl(function(o,a,u){o[u?0:1].push(a)},function(){return[[],[]]});function qN(o,a,u){var p=ke(o)?$u:hd,m=arguments.length<3;return p(o,De(a,4),u,m,Mi)}function $N(o,a,u){var p=ke(o)?oS:hd,m=arguments.length<3;return p(o,De(a,4),u,m,Md)}function JN(o,a){var u=ke(o)?Ci:Ad;return u(o,jl(De(a,3)))}function KN(o){var a=ke(o)?Ld:Vw;return a(o)}function XN(o,a,u){(u?Sr(o,a,u):a===i)?a=1:a=We(a);var p=ke(o)?xw:Uw;return p(o,a)}function ZN(o){var a=ke(o)?vw:Hw;return a(o)}function YN(o){if(o==null)return 0;if(Pr(o))return Rl(o)?Ro(o):o.length;var a=mr(o);return a==ne||a==de?o.size:pf(o).length}function QN(o,a,u){var p=ke(o)?Ju:Ww;return u&&Sr(o,a,u)&&(a=i),p(o,De(a,3))}var eC=Ze(function(o,a){if(o==null)return[];var u=a.length;return u>1&&Sr(o,a[0],a[1])?a=[]:u>2&&Sr(a[0],a[1],a[2])&&(a=[a[0]]),Fd(o,lr(a,1),[])}),Bl=BS||function(){return rr.Date.now()};function tC(o,a){if(typeof a!="function")throw new an(n);return o=We(o),function(){if(--o<1)return a.apply(this,arguments)}}function Bm(o,a,u){return a=u?i:a,a=o&&a==null?o.length:a,oi(o,W,i,i,i,i,a)}function Gm(o,a){var u;if(typeof a!="function")throw new an(n);return o=We(o),function(){return--o>0&&(u=a.apply(this,arguments)),o<=1&&(a=i),u}}var Ef=Ze(function(o,a,u){var p=w;if(u.length){var m=_i(u,Wo(Ef));p|=B}return oi(o,p,a,u,m)}),jm=Ze(function(o,a,u){var p=w|S;if(u.length){var m=_i(u,Wo(jm));p|=B}return oi(a,p,o,u,m)});function Em(o,a,u){a=u?i:a;var p=oi(o,C,i,i,i,i,i,a);return p.placeholder=Em.placeholder,p}function Rm(o,a,u){a=u?i:a;var p=oi(o,G,i,i,i,i,i,a);return p.placeholder=Rm.placeholder,p}function zm(o,a,u){var p,m,v,N,L,I,Q=0,te=!1,ie=!1,me=!0;if(typeof o!="function")throw new an(n);a=hn(a)||0,Dt(u)&&(te=!!u.leading,ie="maxWait"in u,v=ie?Xt(hn(u.maxWait)||0,a):v,me="trailing"in u?!!u.trailing:me);function Le(Ft){var Mn=p,ui=m;return p=m=i,Q=Ft,N=o.apply(ui,Mn),N}function Re(Ft){return Q=Ft,L=ea(et,a),te?Le(Ft):N}function Je(Ft){var Mn=Ft-I,ui=Ft-Q,ig=a-Mn;return ie?dr(ig,v-ui):ig}function je(Ft){var Mn=Ft-I,ui=Ft-Q;return I===i||Mn>=a||Mn<0||ie&&ui>=v}function et(){var Ft=Bl();if(je(Ft))return nt(Ft);L=ea(et,Je(Ft))}function nt(Ft){return L=i,me&&p?Le(Ft):(p=m=i,N)}function Jr(){L!==i&&Kd(L),Q=0,p=I=m=L=i}function wr(){return L===i?N:nt(Bl())}function Kr(){var Ft=Bl(),Mn=je(Ft);if(p=arguments,m=this,I=Ft,Mn){if(L===i)return Re(I);if(ie)return Kd(L),L=ea(et,a),Le(I)}return L===i&&(L=ea(et,a)),N}return Kr.cancel=Jr,Kr.flush=wr,Kr}var rC=Ze(function(o,a){return Id(o,1,a)}),nC=Ze(function(o,a,u){return Id(o,hn(a)||0,u)});function iC(o){return oi(o,q)}function Gl(o,a){if(typeof o!="function"||a!=null&&typeof a!="function")throw new an(n);var u=function(){var p=arguments,m=a?a.apply(this,p):p[0],v=u.cache;if(v.has(m))return v.get(m);var N=o.apply(this,p);return u.cache=v.set(m,N)||v,N};return u.cache=new(Gl.Cache||ni),u}Gl.Cache=ni;function jl(o){if(typeof o!="function")throw new an(n);return function(){var a=arguments;switch(a.length){case 0:return!o.call(this);case 1:return!o.call(this,a[0]);case 2:return!o.call(this,a[0],a[1]);case 3:return!o.call(this,a[0],a[1],a[2])}return!o.apply(this,a)}}function oC(o){return Gm(2,o)}var sC=qw(function(o,a){a=a.length==1&&ke(a[0])?Ot(a[0],Wr(De())):Ot(lr(a,1),Wr(De()));var u=a.length;return Ze(function(p){for(var m=-1,v=dr(p.length,u);++m<v;)p[m]=a[m].call(this,p[m]);return Hr(o,this,p)})}),Rf=Ze(function(o,a){var u=_i(a,Wo(Rf));return oi(o,B,i,a,u)}),Fm=Ze(function(o,a){var u=_i(a,Wo(Fm));return oi(o,P,i,a,u)}),aC=si(function(o,a){return oi(o,M,i,i,i,a)});function lC(o,a){if(typeof o!="function")throw new an(n);return a=a===i?a:We(a),Ze(o,a)}function cC(o,a){if(typeof o!="function")throw new an(n);return a=a==null?0:Xt(We(a),0),Ze(function(u){var p=u[a],m=Pi(u,0,a);return p&&Li(m,p),Hr(o,this,m)})}function uC(o,a,u){var p=!0,m=!0;if(typeof o!="function")throw new an(n);return Dt(u)&&(p="leading"in u?!!u.leading:p,m="trailing"in u?!!u.trailing:m),zm(o,a,{leading:p,maxWait:a,trailing:m})}function fC(o){return Bm(o,1)}function hC(o,a){return Rf(wf(a),o)}function pC(){if(!arguments.length)return[];var o=arguments[0];return ke(o)?o:[o]}function dC(o){return cn(o,d)}function mC(o,a){return a=typeof a=="function"?a:i,cn(o,d,a)}function gC(o){return cn(o,f|d)}function yC(o,a){return a=typeof a=="function"?a:i,cn(o,f|d,a)}function xC(o,a){return a==null||Td(o,a,nr(a))}function In(o,a){return o===a||o!==o&&a!==a}var vC=Il(uf),bC=Il(function(o,a){return o>=a}),po=Dd(function(){return arguments}())?Dd:function(o){return Gt(o)&&pt.call(o,"callee")&&!vd.call(o,"callee")},ke=V.isArray,SC=rd?Wr(rd):Mw;function Pr(o){return o!=null&&El(o.length)&&!li(o)}function zt(o){return Gt(o)&&Pr(o)}function wC(o){return o===!0||o===!1||Gt(o)&&br(o)==oe}var Di=jS||Kf,NC=nd?Wr(nd):Aw;function CC(o){return Gt(o)&&o.nodeType===1&&!ta(o)}function LC(o){if(o==null)return!0;if(Pr(o)&&(ke(o)||typeof o=="string"||typeof o.splice=="function"||Di(o)||qo(o)||po(o)))return!o.length;var a=mr(o);if(a==ne||a==de)return!o.size;if(Qs(o))return!pf(o).length;for(var u in o)if(pt.call(o,u))return!1;return!0}function _C(o,a){return Xs(o,a)}function TC(o,a,u){u=typeof u=="function"?u:i;var p=u?u(o,a):i;return p===i?Xs(o,a,i,u):!!p}function zf(o){if(!Gt(o))return!1;var a=br(o);return a==ue||a==ce||typeof o.message=="string"&&typeof o.name=="string"&&!ta(o)}function IC(o){return typeof o=="number"&&Sd(o)}function li(o){if(!Dt(o))return!1;var a=br(o);return a==K||a==ae||a==ee||a==xe}function Vm(o){return typeof o=="number"&&o==We(o)}function El(o){return typeof o=="number"&&o>-1&&o%1==0&&o<=re}function Dt(o){var a=typeof o;return o!=null&&(a=="object"||a=="function")}function Gt(o){return o!=null&&typeof o=="object"}var Um=id?Wr(id):Pw;function MC(o,a){return o===a||hf(o,a,Mf(a))}function AC(o,a,u){return u=typeof u=="function"?u:i,hf(o,a,Mf(a),u)}function OC(o){return km(o)&&o!=+o}function PC(o){if(m1(o))throw new Ue(r);return Bd(o)}function DC(o){return o===null}function BC(o){return o==null}function km(o){return typeof o=="number"||Gt(o)&&br(o)==Ce}function ta(o){if(!Gt(o)||br(o)!=le)return!1;var a=ul(o);if(a===null)return!0;var u=pt.call(a,"constructor")&&a.constructor;return typeof u=="function"&&u instanceof u&&sl.call(u)==AS}var Ff=od?Wr(od):Dw;function GC(o){return Vm(o)&&o>=-re&&o<=re}var Hm=sd?Wr(sd):Bw;function Rl(o){return typeof o=="string"||!ke(o)&&Gt(o)&&br(o)==we}function $r(o){return typeof o=="symbol"||Gt(o)&&br(o)==Ve}var qo=ad?Wr(ad):Gw;function jC(o){return o===i}function EC(o){return Gt(o)&&mr(o)==Qe}function RC(o){return Gt(o)&&br(o)==bt}var zC=Il(df),FC=Il(function(o,a){return o<=a});function Wm(o){if(!o)return[];if(Pr(o))return Rl(o)?_n(o):Or(o);if(Us&&o[Us])return xS(o[Us]());var a=mr(o),u=a==ne?ef:a==de?nl:$o;return u(o)}function ci(o){if(!o)return o===0?o:0;if(o=hn(o),o===he||o===-he){var a=o<0?-1:1;return a*Ne}return o===o?o:0}function We(o){var a=ci(o),u=a%1;return a===a?u?a-u:a:0}function qm(o){return o?co(We(o),0,Me):0}function hn(o){if(typeof o=="number")return o;if($r(o))return ye;if(Dt(o)){var a=typeof o.valueOf=="function"?o.valueOf():o;o=Dt(a)?a+"":a}if(typeof o!="string")return o===0?o:+o;o=o.replace(tt,"");var u=Za.test(o);return u||Nb.test(o)?tS(o.slice(2),u?2:8):Rn.test(o)?ye:+o}function $m(o){return Fn(o,Dr(o))}function VC(o){return o?co(We(o),-re,re):o===0?o:0}function ut(o){return o==null?"":qr(o)}var UC=ko(function(o,a){if(Qs(a)||Pr(a)){Fn(a,nr(a),o);return}for(var u in a)pt.call(a,u)&&$s(o,u,a[u])}),Jm=ko(function(o,a){Fn(a,Dr(a),o)}),zl=ko(function(o,a,u,p){Fn(a,Dr(a),o,p)}),kC=ko(function(o,a,u,p){Fn(a,nr(a),o,p)}),HC=si(af);function WC(o,a){var u=Uo(o);return a==null?u:_d(u,a)}var qC=Ze(function(o,a){o=yt(o);var u=-1,p=a.length,m=p>2?a[2]:i;for(m&&Sr(a[0],a[1],m)&&(p=1);++u<p;)for(var v=a[u],N=Dr(v),L=-1,I=N.length;++L<I;){var Q=N[L],te=o[Q];(te===i||In(te,zo[Q])&&!pt.call(o,Q))&&(o[Q]=v[Q])}return o}),$C=Ze(function(o){return o.push(i,fm),Hr(Km,i,o)});function JC(o,a){return cd(o,De(a,3),zn)}function KC(o,a){return cd(o,De(a,3),cf)}function XC(o,a){return o==null?o:lf(o,De(a,3),Dr)}function ZC(o,a){return o==null?o:Od(o,De(a,3),Dr)}function YC(o,a){return o&&zn(o,De(a,3))}function QC(o,a){return o&&cf(o,De(a,3))}function eL(o){return o==null?[]:bl(o,nr(o))}function tL(o){return o==null?[]:bl(o,Dr(o))}function Vf(o,a,u){var p=o==null?i:uo(o,a);return p===i?u:p}function rL(o,a){return o!=null&&dm(o,a,Lw)}function Uf(o,a){return o!=null&&dm(o,a,_w)}var nL=sm(function(o,a,u){a!=null&&typeof a.toString!="function"&&(a=al.call(a)),o[a]=u},Hf(Br)),iL=sm(function(o,a,u){a!=null&&typeof a.toString!="function"&&(a=al.call(a)),pt.call(o,a)?o[a].push(u):o[a]=[u]},De),oL=Ze(Ks);function nr(o){return Pr(o)?Cd(o):pf(o)}function Dr(o){return Pr(o)?Cd(o,!0):jw(o)}function sL(o,a){var u={};return a=De(a,3),zn(o,function(p,m,v){ii(u,a(p,m,v),p)}),u}function aL(o,a){var u={};return a=De(a,3),zn(o,function(p,m,v){ii(u,m,a(p,m,v))}),u}var lL=ko(function(o,a,u){Sl(o,a,u)}),Km=ko(function(o,a,u,p){Sl(o,a,u,p)}),cL=si(function(o,a){var u={};if(o==null)return u;var p=!1;a=Ot(a,function(v){return v=Oi(v,o),p||(p=v.length>1),v}),Fn(o,Tf(o),u),p&&(u=cn(u,f|h|d,n1));for(var m=a.length;m--;)vf(u,a[m]);return u});function uL(o,a){return Xm(o,jl(De(a)))}var fL=si(function(o,a){return o==null?{}:Rw(o,a)});function Xm(o,a){if(o==null)return{};var u=Ot(Tf(o),function(p){return[p]});return a=De(a),Vd(o,u,function(p,m){return a(p,m[0])})}function hL(o,a,u){a=Oi(a,o);var p=-1,m=a.length;for(m||(m=1,o=i);++p<m;){var v=o==null?i:o[Vn(a[p])];v===i&&(p=m,v=u),o=li(v)?v.call(o):v}return o}function pL(o,a,u){return o==null?o:Zs(o,a,u)}function dL(o,a,u,p){return p=typeof p=="function"?p:i,o==null?o:Zs(o,a,u,p)}var Zm=cm(nr),Ym=cm(Dr);function mL(o,a,u){var p=ke(o),m=p||Di(o)||qo(o);if(a=De(a,4),u==null){var v=o&&o.constructor;m?u=p?new v:[]:Dt(o)?u=li(v)?Uo(ul(o)):{}:u={}}return(m?sn:zn)(o,function(N,L,I){return a(u,N,L,I)}),u}function gL(o,a){return o==null?!0:vf(o,a)}function yL(o,a,u){return o==null?o:qd(o,a,wf(u))}function xL(o,a,u,p){return p=typeof p=="function"?p:i,o==null?o:qd(o,a,wf(u),p)}function $o(o){return o==null?[]:Qu(o,nr(o))}function vL(o){return o==null?[]:Qu(o,Dr(o))}function bL(o,a,u){return u===i&&(u=a,a=i),u!==i&&(u=hn(u),u=u===u?u:0),a!==i&&(a=hn(a),a=a===a?a:0),co(hn(o),a,u)}function SL(o,a,u){return a=ci(a),u===i?(u=a,a=0):u=ci(u),o=hn(o),Tw(o,a,u)}function wL(o,a,u){if(u&&typeof u!="boolean"&&Sr(o,a,u)&&(a=u=i),u===i&&(typeof a=="boolean"?(u=a,a=i):typeof o=="boolean"&&(u=o,o=i)),o===i&&a===i?(o=0,a=1):(o=ci(o),a===i?(a=o,o=0):a=ci(a)),o>a){var p=o;o=a,a=p}if(u||o%1||a%1){var m=wd();return dr(o+m*(a-o+eS("1e-"+((m+"").length-1))),a)}return gf(o,a)}var NL=Ho(function(o,a,u){return a=a.toLowerCase(),o+(u?Qm(a):a)});function Qm(o){return kf(ut(o).toLowerCase())}function eg(o){return o=ut(o),o&&o.replace(Lb,pS).replace(Hb,"")}function CL(o,a,u){o=ut(o),a=qr(a);var p=o.length;u=u===i?p:co(We(u),0,p);var m=u;return u-=a.length,u>=0&&o.slice(u,m)==a}function LL(o){return o=ut(o),o&&Mr.test(o)?o.replace(no,dS):o}function _L(o){return o=ut(o),o&&$e.test(o)?o.replace(He,"\\$&"):o}var TL=Ho(function(o,a,u){return o+(u?"-":"")+a.toLowerCase()}),IL=Ho(function(o,a,u){return o+(u?" ":"")+a.toLowerCase()}),ML=nm("toLowerCase");function AL(o,a,u){o=ut(o),a=We(a);var p=a?Ro(o):0;if(!a||p>=a)return o;var m=(a-p)/2;return Tl(dl(m),u)+o+Tl(pl(m),u)}function OL(o,a,u){o=ut(o),a=We(a);var p=a?Ro(o):0;return a&&p<a?o+Tl(a-p,u):o}function PL(o,a,u){o=ut(o),a=We(a);var p=a?Ro(o):0;return a&&p<a?Tl(a-p,u)+o:o}function DL(o,a,u){return u||a==null?a=0:a&&(a=+a),FS(ut(o).replace(at,""),a||0)}function BL(o,a,u){return(u?Sr(o,a,u):a===i)?a=1:a=We(a),yf(ut(o),a)}function GL(){var o=arguments,a=ut(o[0]);return o.length<3?a:a.replace(o[1],o[2])}var jL=Ho(function(o,a,u){return o+(u?"_":"")+a.toLowerCase()});function EL(o,a,u){return u&&typeof u!="number"&&Sr(o,a,u)&&(a=u=i),u=u===i?Me:u>>>0,u?(o=ut(o),o&&(typeof a=="string"||a!=null&&!Ff(a))&&(a=qr(a),!a&&Eo(o))?Pi(_n(o),0,u):o.split(a,u)):[]}var RL=Ho(function(o,a,u){return o+(u?" ":"")+kf(a)});function zL(o,a,u){return o=ut(o),u=u==null?0:co(We(u),0,o.length),a=qr(a),o.slice(u,u+a.length)==a}function FL(o,a,u){var p=y.templateSettings;u&&Sr(o,a,u)&&(a=i),o=ut(o),a=zl({},a,p,um);var m=zl({},a.imports,p.imports,um),v=nr(m),N=Qu(m,v),L,I,Q=0,te=a.interpolate||Ya,ie="__p += '",me=tf((a.escape||Ya).source+"|"+te.source+"|"+(te===ti?Cn:Ya).source+"|"+(a.evaluate||Ya).source+"|$","g"),Le="//# sourceURL="+(pt.call(a,"sourceURL")?(a.sourceURL+"").replace(/\s/g," "):"lodash.templateSources["+ ++Kb+"]")+`
|
|
4
|
-
`;
|
|
5
|
-
__e(`+
|
|
6
|
-
'`),
|
|
7
|
-
`+
|
|
8
|
-
__p += '`),
|
|
9
|
-
((__t = (`+
|
|
10
|
-
'`),
|
|
11
|
-
`;var
|
|
12
|
-
`+
|
|
1
|
+
var gN=Object.create;var $l=Object.defineProperty,yN=Object.defineProperties,xN=Object.getOwnPropertyDescriptor,vN=Object.getOwnPropertyDescriptors,bN=Object.getOwnPropertyNames,Km=Object.getOwnPropertySymbols,SN=Object.getPrototypeOf,Xm=Object.prototype.hasOwnProperty,wN=Object.prototype.propertyIsEnumerable;var Ym=(i,t,e)=>t in i?$l(i,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):i[t]=e,j=(i,t)=>{for(var e in t||(t={}))Xm.call(t,e)&&Ym(i,e,t[e]);if(Km)for(var e of Km(t))wN.call(t,e)&&Ym(i,e,t[e]);return i},ue=(i,t)=>yN(i,vN(t));var Zm=(i,t)=>()=>(t||i((t={exports:{}}).exports,t),t.exports),CN=(i,t)=>{for(var e in t)$l(i,e,{get:t[e],enumerable:!0})},LN=(i,t,e,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of bN(t))!Xm.call(i,n)&&n!==e&&$l(i,n,{get:()=>t[n],enumerable:!(r=xN(t,n))||r.enumerable});return i};var Qm=(i,t,e)=>(e=i!=null?gN(SN(i)):{},LN(t||!i||!i.__esModule?$l(e,"default",{value:i,enumerable:!0}):e,i));var Ev=Zm((Gu,Dv)=>{(function(i,t){typeof Gu=="object"&&typeof Dv<"u"?t(Gu):typeof define=="function"&&define.amd?define(["exports"],t):t((i=typeof globalThis<"u"?globalThis:i||self).SVDJS={})})(Gu,function(i){"use strict";i.SVD=function(t,e,r,n,o){if(e=e===void 0||e,r=r===void 0||r,o=1e-64/(n=n||Math.pow(2,-52)),!t)throw new TypeError("Matrix a is not defined");var a,c,f,h,d,m,x,S,w,B,O,T,M=t[0].length,F=t.length;if(F<M)throw new TypeError("Invalid matrix: m < n");for(var k=[],N=[],te=[],A=e==="f"?F:M,b=B=x=0;b<F;b++)N[b]=new Array(A).fill(0);for(b=0;b<M;b++)te[b]=new Array(M).fill(0);var V,P=new Array(M).fill(0);for(b=0;b<F;b++)for(a=0;a<M;a++)N[b][a]=t[b][a];for(b=0;b<M;b++){for(k[b]=x,w=0,f=b+1,a=b;a<F;a++)w+=Math.pow(N[a][b],2);if(w<o)x=0;else for(S=(m=N[b][b])*(x=m<0?Math.sqrt(w):-Math.sqrt(w))-w,N[b][b]=m-x,a=f;a<M;a++){for(w=0,c=b;c<F;c++)w+=N[c][b]*N[c][a];for(m=w/S,c=b;c<F;c++)N[c][a]=N[c][a]+m*N[c][b]}for(P[b]=x,w=0,a=f;a<M;a++)w+=Math.pow(N[b][a],2);if(w<o)x=0;else{for(S=(m=N[b][b+1])*(x=m<0?Math.sqrt(w):-Math.sqrt(w))-w,N[b][b+1]=m-x,a=f;a<M;a++)k[a]=N[b][a]/S;for(a=f;a<F;a++){for(w=0,c=f;c<M;c++)w+=N[a][c]*N[b][c];for(c=f;c<M;c++)N[a][c]=N[a][c]+w*k[c]}}B<(O=Math.abs(P[b])+Math.abs(k[b]))&&(B=O)}if(r)for(b=M-1;0<=b;b--){if(x!==0){for(S=N[b][b+1]*x,a=f;a<M;a++)te[a][b]=N[b][a]/S;for(a=f;a<M;a++){for(w=0,c=f;c<M;c++)w+=N[b][c]*te[c][a];for(c=f;c<M;c++)te[c][a]=te[c][a]+w*te[c][b]}}for(a=f;a<M;a++)te[b][a]=0,te[a][b]=0;te[b][b]=1,x=k[b],f=b}if(e){if(e==="f")for(b=M;b<F;b++){for(a=M;a<F;a++)N[b][a]=0;N[b][b]=1}for(b=M-1;0<=b;b--){for(f=b+1,x=P[b],a=f;a<A;a++)N[b][a]=0;if(x!==0){for(S=N[b][b]*x,a=f;a<A;a++){for(w=0,c=f;c<F;c++)w+=N[c][b]*N[c][a];for(m=w/S,c=b;c<F;c++)N[c][a]=N[c][a]+m*N[c][b]}for(a=b;a<F;a++)N[a][b]=N[a][b]/x}else for(a=b;a<F;a++)N[a][b]=0;N[b][b]=N[b][b]+1}}for(n*=B,c=M-1;0<=c;c--)for(var R=0;R<50;R++){for(V=!1,f=c;0<=f;f--){if(Math.abs(k[f])<=n){V=!0;break}if(Math.abs(P[f-1])<=n)break}if(!V){for(d=0,h=f-(w=1),b=f;b<c+1&&(m=w*k[b],k[b]=d*k[b],!(Math.abs(m)<=n));b++)if(x=P[b],P[b]=Math.sqrt(m*m+x*x),d=x/(S=P[b]),w=-m/S,e)for(a=0;a<F;a++)O=N[a][h],T=N[a][b],N[a][h]=O*d+T*w,N[a][b]=-O*w+T*d}if(T=P[c],f===c){if(T<0&&(P[c]=-T,r))for(a=0;a<M;a++)te[a][c]=-te[a][c];break}for(B=P[f],m=(((O=P[c-1])-T)*(O+T)+((x=k[c-1])-(S=k[c]))*(x+S))/(2*S*O),x=Math.sqrt(m*m+1),m=((B-T)*(B+T)+S*(O/(m<0?m-x:m+x)-S))/B,b=f+(w=d=1);b<c+1;b++){if(x=k[b],O=P[b],S=w*x,x*=d,T=Math.sqrt(m*m+S*S),m=B*(d=m/(k[b-1]=T))+x*(w=S/T),x=-B*w+x*d,S=O*w,O*=d,r)for(a=0;a<M;a++)B=te[a][b-1],T=te[a][b],te[a][b-1]=B*d+T*w,te[a][b]=-B*w+T*d;if(T=Math.sqrt(m*m+S*S),m=(d=m/(P[b-1]=T))*x+(w=S/T)*O,B=-w*x+d*O,e)for(a=0;a<F;a++)O=N[a][b-1],T=N[a][b],N[a][b-1]=O*d+T*w,N[a][b]=-O*w+T*d}k[f]=0,k[c]=m,P[c]=B}for(b=0;b<M;b++)P[b]<n&&(P[b]=0);return{u:N,q:P,v:te}},i.VERSION="1.1.1",Object.defineProperty(i,"__esModule",{value:!0})})});var Xv=Zm(($s,nl)=>{(function(){var i,t="4.17.20",e=200,r="Unsupported core-js use. Try https://npms.io/search?q=ponyfill.",n="Expected a function",o="__lodash_hash_undefined__",a=500,c="__lodash_placeholder__",f=1,h=2,d=4,m=1,x=2,S=1,w=2,B=4,O=8,T=16,M=32,F=64,k=128,N=256,te=512,A=30,b="...",V=800,P=16,R=1,E=2,G=3,ae=1/0,ne=9007199254740991,xe=17976931348623157e292,_e=0/0,Le=4294967295,Ue=Le-1,se=Le>>>1,$=[["ary",k],["bind",S],["bindKey",w],["curry",O],["curryRight",T],["flip",te],["partial",M],["partialRight",F],["rearg",N]],W="[object Arguments]",J="[object Array]",H="[object AsyncFunction]",K="[object Boolean]",fe="[object Date]",me="[object DOMException]",ie="[object Error]",re="[object Function]",q="[object GeneratorFunction]",ee="[object Map]",Te="[object Number]",ce="[object Null]",le="[object Object]",he="[object Promise]",pe="[object Proxy]",de="[object RegExp]",be="[object Set]",Se="[object String]",Ie="[object Symbol]",ft="[object Undefined]",Ve="[object WeakMap]",Lt="[object WeakSet]",qe="[object ArrayBuffer]",_t="[object DataView]",Wt="[object Float32Array]",Rr="[object Float64Array]",Ut="[object Int8Array]",zr="[object Int16Array]",mn="[object Int32Array]",gn="[object Uint8Array]",pt="[object Uint8ClampedArray]",jt="[object Uint16Array]",ir="[object Uint32Array]",Lo=/\b__p \+= '';/g,To=/\b(__p \+=) '' \+/g,No=/(__e\(.*?\)|\b__t\)) \+\n'';/g,Ki=/&(?:amp|lt|gt|quot|#39);/g,Yi=/[&<>"']/g,_o=RegExp(Ki.source),Nr=RegExp(Yi.source),Xi=/<%-([\s\S]+?)%>/g,qt=/<%([\s\S]+?)%>/g,Kn=/<%=([\s\S]+?)%>/g,Io=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Re=/^\w*$/,Ye=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,He=/[\\^$.*+?()[\]{}|]/g,$e=RegExp(He.source),Qe=/^\s+|\s+$/g,ot=/^\s+/,dt=/\s+$/,mt=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,at=/\{\n\/\* \[wrapped with (.+)\] \*/,vt=/,? & /,Bt=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,_r=/\\(\\)?/g,yn=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,xn=/\w*$/,Pn=/^[-+]0x[0-9a-f]+$/i,il=/^0b[01]+$/i,ib=/^\[object .+?Constructor\]$/,ob=/^0o[0-7]+$/i,sb=/^(?:0|[1-9]\d*)$/,ab=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,ol=/($^)/,lb=/['\n\r\u2028\u2029\\]/g,sl="\\ud800-\\udfff",cb="\\u0300-\\u036f",ub="\\ufe20-\\ufe2f",fb="\\u20d0-\\u20ff",Np=cb+ub+fb,_p="\\u2700-\\u27bf",Ip="a-z\\xdf-\\xf6\\xf8-\\xff",hb="\\xac\\xb1\\xd7\\xf7",pb="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",db="\\u2000-\\u206f",mb=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",Op="A-Z\\xc0-\\xd6\\xd8-\\xde",Mp="\\ufe0e\\ufe0f",Pp=hb+pb+db+mb,Fu="['\u2019]",gb="["+sl+"]",Ap="["+Pp+"]",al="["+Np+"]",Dp="\\d+",yb="["+_p+"]",Ep="["+Ip+"]",Bp="[^"+sl+Pp+Dp+_p+Ip+Op+"]",Vu="\\ud83c[\\udffb-\\udfff]",xb="(?:"+al+"|"+Vu+")",Gp="[^"+sl+"]",Uu="(?:\\ud83c[\\udde6-\\uddff]){2}",ju="[\\ud800-\\udbff][\\udc00-\\udfff]",Oo="["+Op+"]",Rp="\\u200d",zp="(?:"+Ep+"|"+Bp+")",vb="(?:"+Oo+"|"+Bp+")",Fp="(?:"+Fu+"(?:d|ll|m|re|s|t|ve))?",Vp="(?:"+Fu+"(?:D|LL|M|RE|S|T|VE))?",Up=xb+"?",jp="["+Mp+"]?",bb="(?:"+Rp+"(?:"+[Gp,Uu,ju].join("|")+")"+jp+Up+")*",Sb="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",wb="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",kp=jp+Up+bb,Cb="(?:"+[yb,Uu,ju].join("|")+")"+kp,Lb="(?:"+[Gp+al+"?",al,Uu,ju,gb].join("|")+")",Tb=RegExp(Fu,"g"),Nb=RegExp(al,"g"),ku=RegExp(Vu+"(?="+Vu+")|"+Lb+kp,"g"),_b=RegExp([Oo+"?"+Ep+"+"+Fp+"(?="+[Ap,Oo,"$"].join("|")+")",vb+"+"+Vp+"(?="+[Ap,Oo+zp,"$"].join("|")+")",Oo+"?"+zp+"+"+Fp,Oo+"+"+Vp,wb,Sb,Dp,Cb].join("|"),"g"),Ib=RegExp("["+Rp+sl+Np+Mp+"]"),Ob=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,Mb=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],Pb=-1,Tt={};Tt[Wt]=Tt[Rr]=Tt[Ut]=Tt[zr]=Tt[mn]=Tt[gn]=Tt[pt]=Tt[jt]=Tt[ir]=!0,Tt[W]=Tt[J]=Tt[qe]=Tt[K]=Tt[_t]=Tt[fe]=Tt[ie]=Tt[re]=Tt[ee]=Tt[Te]=Tt[le]=Tt[de]=Tt[be]=Tt[Se]=Tt[Ve]=!1;var bt={};bt[W]=bt[J]=bt[qe]=bt[_t]=bt[K]=bt[fe]=bt[Wt]=bt[Rr]=bt[Ut]=bt[zr]=bt[mn]=bt[ee]=bt[Te]=bt[le]=bt[de]=bt[be]=bt[Se]=bt[Ie]=bt[gn]=bt[pt]=bt[jt]=bt[ir]=!0,bt[ie]=bt[re]=bt[Ve]=!1;var Ab={\u00C0:"A",\u00C1:"A",\u00C2:"A",\u00C3:"A",\u00C4:"A",\u00C5:"A",\u00E0:"a",\u00E1:"a",\u00E2:"a",\u00E3:"a",\u00E4:"a",\u00E5:"a",\u00C7:"C",\u00E7:"c",\u00D0:"D",\u00F0:"d",\u00C8:"E",\u00C9:"E",\u00CA:"E",\u00CB:"E",\u00E8:"e",\u00E9:"e",\u00EA:"e",\u00EB:"e",\u00CC:"I",\u00CD:"I",\u00CE:"I",\u00CF:"I",\u00EC:"i",\u00ED:"i",\u00EE:"i",\u00EF:"i",\u00D1:"N",\u00F1:"n",\u00D2:"O",\u00D3:"O",\u00D4:"O",\u00D5:"O",\u00D6:"O",\u00D8:"O",\u00F2:"o",\u00F3:"o",\u00F4:"o",\u00F5:"o",\u00F6:"o",\u00F8:"o",\u00D9:"U",\u00DA:"U",\u00DB:"U",\u00DC:"U",\u00F9:"u",\u00FA:"u",\u00FB:"u",\u00FC:"u",\u00DD:"Y",\u00FD:"y",\u00FF:"y",\u00C6:"Ae",\u00E6:"ae",\u00DE:"Th",\u00FE:"th",\u00DF:"ss",\u0100:"A",\u0102:"A",\u0104:"A",\u0101:"a",\u0103:"a",\u0105:"a",\u0106:"C",\u0108:"C",\u010A:"C",\u010C:"C",\u0107:"c",\u0109:"c",\u010B:"c",\u010D:"c",\u010E:"D",\u0110:"D",\u010F:"d",\u0111:"d",\u0112:"E",\u0114:"E",\u0116:"E",\u0118:"E",\u011A:"E",\u0113:"e",\u0115:"e",\u0117:"e",\u0119:"e",\u011B:"e",\u011C:"G",\u011E:"G",\u0120:"G",\u0122:"G",\u011D:"g",\u011F:"g",\u0121:"g",\u0123:"g",\u0124:"H",\u0126:"H",\u0125:"h",\u0127:"h",\u0128:"I",\u012A:"I",\u012C:"I",\u012E:"I",\u0130:"I",\u0129:"i",\u012B:"i",\u012D:"i",\u012F:"i",\u0131:"i",\u0134:"J",\u0135:"j",\u0136:"K",\u0137:"k",\u0138:"k",\u0139:"L",\u013B:"L",\u013D:"L",\u013F:"L",\u0141:"L",\u013A:"l",\u013C:"l",\u013E:"l",\u0140:"l",\u0142:"l",\u0143:"N",\u0145:"N",\u0147:"N",\u014A:"N",\u0144:"n",\u0146:"n",\u0148:"n",\u014B:"n",\u014C:"O",\u014E:"O",\u0150:"O",\u014D:"o",\u014F:"o",\u0151:"o",\u0154:"R",\u0156:"R",\u0158:"R",\u0155:"r",\u0157:"r",\u0159:"r",\u015A:"S",\u015C:"S",\u015E:"S",\u0160:"S",\u015B:"s",\u015D:"s",\u015F:"s",\u0161:"s",\u0162:"T",\u0164:"T",\u0166:"T",\u0163:"t",\u0165:"t",\u0167:"t",\u0168:"U",\u016A:"U",\u016C:"U",\u016E:"U",\u0170:"U",\u0172:"U",\u0169:"u",\u016B:"u",\u016D:"u",\u016F:"u",\u0171:"u",\u0173:"u",\u0174:"W",\u0175:"w",\u0176:"Y",\u0177:"y",\u0178:"Y",\u0179:"Z",\u017B:"Z",\u017D:"Z",\u017A:"z",\u017C:"z",\u017E:"z",\u0132:"IJ",\u0133:"ij",\u0152:"Oe",\u0153:"oe",\u0149:"'n",\u017F:"s"},Db={"&":"&","<":"<",">":">",'"':""","'":"'"},Eb={"&":"&","<":"<",">":">",""":'"',"'":"'"},Bb={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},Gb=parseFloat,Rb=parseInt,Hp=typeof global=="object"&&global&&global.Object===Object&&global,zb=typeof self=="object"&&self&&self.Object===Object&&self,Zt=Hp||zb||Function("return this")(),Hu=typeof $s=="object"&&$s&&!$s.nodeType&&$s,Zi=Hu&&typeof nl=="object"&&nl&&!nl.nodeType&&nl,Wp=Zi&&Zi.exports===Hu,Wu=Wp&&Hp.process,Zr=function(){try{var I=Zi&&Zi.require&&Zi.require("util").types;return I||Wu&&Wu.binding&&Wu.binding("util")}catch{}}(),qp=Zr&&Zr.isArrayBuffer,$p=Zr&&Zr.isDate,Jp=Zr&&Zr.isMap,Kp=Zr&&Zr.isRegExp,Yp=Zr&&Zr.isSet,Xp=Zr&&Zr.isTypedArray;function Fr(I,Y,U){switch(U.length){case 0:return I.call(Y);case 1:return I.call(Y,U[0]);case 2:return I.call(Y,U[0],U[1]);case 3:return I.call(Y,U[0],U[1],U[2])}return I.apply(Y,U)}function Fb(I,Y,U,Ce){for(var je=-1,st=I==null?0:I.length;++je<st;){var $t=I[je];Y(Ce,$t,U($t),I)}return Ce}function Qr(I,Y){for(var U=-1,Ce=I==null?0:I.length;++U<Ce&&Y(I[U],U,I)!==!1;);return I}function Vb(I,Y){for(var U=I==null?0:I.length;U--&&Y(I[U],U,I)!==!1;);return I}function Zp(I,Y){for(var U=-1,Ce=I==null?0:I.length;++U<Ce;)if(!Y(I[U],U,I))return!1;return!0}function yi(I,Y){for(var U=-1,Ce=I==null?0:I.length,je=0,st=[];++U<Ce;){var $t=I[U];Y($t,U,I)&&(st[je++]=$t)}return st}function ll(I,Y){var U=I==null?0:I.length;return!!U&&Mo(I,Y,0)>-1}function qu(I,Y,U){for(var Ce=-1,je=I==null?0:I.length;++Ce<je;)if(U(Y,I[Ce]))return!0;return!1}function It(I,Y){for(var U=-1,Ce=I==null?0:I.length,je=Array(Ce);++U<Ce;)je[U]=Y(I[U],U,I);return je}function xi(I,Y){for(var U=-1,Ce=Y.length,je=I.length;++U<Ce;)I[je+U]=Y[U];return I}function $u(I,Y,U,Ce){var je=-1,st=I==null?0:I.length;for(Ce&&st&&(U=I[++je]);++je<st;)U=Y(U,I[je],je,I);return U}function Ub(I,Y,U,Ce){var je=I==null?0:I.length;for(Ce&&je&&(U=I[--je]);je--;)U=Y(U,I[je],je,I);return U}function Ju(I,Y){for(var U=-1,Ce=I==null?0:I.length;++U<Ce;)if(Y(I[U],U,I))return!0;return!1}var jb=Ku("length");function kb(I){return I.split("")}function Hb(I){return I.match(Bt)||[]}function Qp(I,Y,U){var Ce;return U(I,function(je,st,$t){if(Y(je,st,$t))return Ce=st,!1}),Ce}function cl(I,Y,U,Ce){for(var je=I.length,st=U+(Ce?1:-1);Ce?st--:++st<je;)if(Y(I[st],st,I))return st;return-1}function Mo(I,Y,U){return Y===Y?rS(I,Y,U):cl(I,ed,U)}function Wb(I,Y,U,Ce){for(var je=U-1,st=I.length;++je<st;)if(Ce(I[je],Y))return je;return-1}function ed(I){return I!==I}function td(I,Y){var U=I==null?0:I.length;return U?Xu(I,Y)/U:_e}function Ku(I){return function(Y){return Y==null?i:Y[I]}}function Yu(I){return function(Y){return I==null?i:I[Y]}}function rd(I,Y,U,Ce,je){return je(I,function(st,$t,xt){U=Ce?(Ce=!1,st):Y(U,st,$t,xt)}),U}function qb(I,Y){var U=I.length;for(I.sort(Y);U--;)I[U]=I[U].value;return I}function Xu(I,Y){for(var U,Ce=-1,je=I.length;++Ce<je;){var st=Y(I[Ce]);st!==i&&(U=U===i?st:U+st)}return U}function Zu(I,Y){for(var U=-1,Ce=Array(I);++U<I;)Ce[U]=Y(U);return Ce}function $b(I,Y){return It(Y,function(U){return[U,I[U]]})}function Vr(I){return function(Y){return I(Y)}}function Qu(I,Y){return It(Y,function(U){return I[U]})}function Js(I,Y){return I.has(Y)}function nd(I,Y){for(var U=-1,Ce=I.length;++U<Ce&&Mo(Y,I[U],0)>-1;);return U}function id(I,Y){for(var U=I.length;U--&&Mo(Y,I[U],0)>-1;);return U}function Jb(I,Y){for(var U=I.length,Ce=0;U--;)I[U]===Y&&++Ce;return Ce}var Kb=Yu(Ab),Yb=Yu(Db);function Xb(I){return"\\"+Bb[I]}function Zb(I,Y){return I==null?i:I[Y]}function Po(I){return Ib.test(I)}function Qb(I){return Ob.test(I)}function eS(I){for(var Y,U=[];!(Y=I.next()).done;)U.push(Y.value);return U}function ef(I){var Y=-1,U=Array(I.size);return I.forEach(function(Ce,je){U[++Y]=[je,Ce]}),U}function od(I,Y){return function(U){return I(Y(U))}}function vi(I,Y){for(var U=-1,Ce=I.length,je=0,st=[];++U<Ce;){var $t=I[U];($t===Y||$t===c)&&(I[U]=c,st[je++]=U)}return st}function ul(I){var Y=-1,U=Array(I.size);return I.forEach(function(Ce){U[++Y]=Ce}),U}function tS(I){var Y=-1,U=Array(I.size);return I.forEach(function(Ce){U[++Y]=[Ce,Ce]}),U}function rS(I,Y,U){for(var Ce=U-1,je=I.length;++Ce<je;)if(I[Ce]===Y)return Ce;return-1}function nS(I,Y,U){for(var Ce=U+1;Ce--;)if(I[Ce]===Y)return Ce;return Ce}function Ao(I){return Po(I)?oS(I):jb(I)}function vn(I){return Po(I)?sS(I):kb(I)}var iS=Yu(Eb);function oS(I){for(var Y=ku.lastIndex=0;ku.test(I);)++Y;return Y}function sS(I){return I.match(ku)||[]}function aS(I){return I.match(_b)||[]}var lS=function I(Y){Y=Y==null?Zt:bi.defaults(Zt.Object(),Y,bi.pick(Zt,Mb));var U=Y.Array,Ce=Y.Date,je=Y.Error,st=Y.Function,$t=Y.Math,xt=Y.Object,tf=Y.RegExp,cS=Y.String,en=Y.TypeError,fl=U.prototype,uS=st.prototype,Do=xt.prototype,hl=Y["__core-js_shared__"],pl=uS.toString,ht=Do.hasOwnProperty,fS=0,sd=function(){var s=/[^.]+$/.exec(hl&&hl.keys&&hl.keys.IE_PROTO||"");return s?"Symbol(src)_1."+s:""}(),dl=Do.toString,hS=pl.call(xt),pS=Zt._,dS=tf("^"+pl.call(ht).replace(He,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),ml=Wp?Y.Buffer:i,Si=Y.Symbol,gl=Y.Uint8Array,ad=ml?ml.allocUnsafe:i,yl=od(xt.getPrototypeOf,xt),ld=xt.create,cd=Do.propertyIsEnumerable,xl=fl.splice,ud=Si?Si.isConcatSpreadable:i,Ks=Si?Si.iterator:i,Qi=Si?Si.toStringTag:i,vl=function(){try{var s=io(xt,"defineProperty");return s({},"",{}),s}catch{}}(),mS=Y.clearTimeout!==Zt.clearTimeout&&Y.clearTimeout,gS=Ce&&Ce.now!==Zt.Date.now&&Ce.now,yS=Y.setTimeout!==Zt.setTimeout&&Y.setTimeout,bl=$t.ceil,Sl=$t.floor,rf=xt.getOwnPropertySymbols,xS=ml?ml.isBuffer:i,fd=Y.isFinite,vS=fl.join,bS=od(xt.keys,xt),Jt=$t.max,fr=$t.min,SS=Ce.now,wS=Y.parseInt,hd=$t.random,CS=fl.reverse,nf=io(Y,"DataView"),Ys=io(Y,"Map"),of=io(Y,"Promise"),Eo=io(Y,"Set"),Xs=io(Y,"WeakMap"),Zs=io(xt,"create"),wl=Xs&&new Xs,Bo={},LS=oo(nf),TS=oo(Ys),NS=oo(of),_S=oo(Eo),IS=oo(Xs),Cl=Si?Si.prototype:i,Qs=Cl?Cl.valueOf:i,pd=Cl?Cl.toString:i;function y(s){if(Dt(s)&&!ke(s)&&!(s instanceof et)){if(s instanceof tn)return s;if(ht.call(s,"__wrapped__"))return dm(s)}return new tn(s)}var Go=function(){function s(){}return function(l){if(!Pt(l))return{};if(ld)return ld(l);s.prototype=l;var u=new s;return s.prototype=i,u}}();function Ll(){}function tn(s,l){this.__wrapped__=s,this.__actions__=[],this.__chain__=!!l,this.__index__=0,this.__values__=i}y.templateSettings={escape:Xi,evaluate:qt,interpolate:Kn,variable:"",imports:{_:y}},y.prototype=Ll.prototype,y.prototype.constructor=y,tn.prototype=Go(Ll.prototype),tn.prototype.constructor=tn;function et(s){this.__wrapped__=s,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=Le,this.__views__=[]}function OS(){var s=new et(this.__wrapped__);return s.__actions__=Ir(this.__actions__),s.__dir__=this.__dir__,s.__filtered__=this.__filtered__,s.__iteratees__=Ir(this.__iteratees__),s.__takeCount__=this.__takeCount__,s.__views__=Ir(this.__views__),s}function MS(){if(this.__filtered__){var s=new et(this);s.__dir__=-1,s.__filtered__=!0}else s=this.clone(),s.__dir__*=-1;return s}function PS(){var s=this.__wrapped__.value(),l=this.__dir__,u=ke(s),p=l<0,g=u?s.length:0,v=k1(0,g,this.__views__),C=v.start,L=v.end,_=L-C,Z=p?L:C-1,Q=this.__iteratees__,oe=Q.length,ge=0,Ne=fr(_,this.__takeCount__);if(!u||!p&&g==_&&Ne==_)return Rd(s,this.__actions__);var ze=[];e:for(;_--&&ge<Ne;){Z+=l;for(var Je=-1,Ge=s[Z];++Je<oe;){var Ze=Q[Je],tt=Ze.iteratee,kr=Ze.type,br=tt(Ge);if(kr==E)Ge=br;else if(!br){if(kr==R)continue e;break e}}ze[ge++]=Ge}return ze}et.prototype=Go(Ll.prototype),et.prototype.constructor=et;function eo(s){var l=-1,u=s==null?0:s.length;for(this.clear();++l<u;){var p=s[l];this.set(p[0],p[1])}}function AS(){this.__data__=Zs?Zs(null):{},this.size=0}function DS(s){var l=this.has(s)&&delete this.__data__[s];return this.size-=l?1:0,l}function ES(s){var l=this.__data__;if(Zs){var u=l[s];return u===o?i:u}return ht.call(l,s)?l[s]:i}function BS(s){var l=this.__data__;return Zs?l[s]!==i:ht.call(l,s)}function GS(s,l){var u=this.__data__;return this.size+=this.has(s)?0:1,u[s]=Zs&&l===i?o:l,this}eo.prototype.clear=AS,eo.prototype.delete=DS,eo.prototype.get=ES,eo.prototype.has=BS,eo.prototype.set=GS;function Yn(s){var l=-1,u=s==null?0:s.length;for(this.clear();++l<u;){var p=s[l];this.set(p[0],p[1])}}function RS(){this.__data__=[],this.size=0}function zS(s){var l=this.__data__,u=Tl(l,s);if(u<0)return!1;var p=l.length-1;return u==p?l.pop():xl.call(l,u,1),--this.size,!0}function FS(s){var l=this.__data__,u=Tl(l,s);return u<0?i:l[u][1]}function VS(s){return Tl(this.__data__,s)>-1}function US(s,l){var u=this.__data__,p=Tl(u,s);return p<0?(++this.size,u.push([s,l])):u[p][1]=l,this}Yn.prototype.clear=RS,Yn.prototype.delete=zS,Yn.prototype.get=FS,Yn.prototype.has=VS,Yn.prototype.set=US;function Xn(s){var l=-1,u=s==null?0:s.length;for(this.clear();++l<u;){var p=s[l];this.set(p[0],p[1])}}function jS(){this.size=0,this.__data__={hash:new eo,map:new(Ys||Yn),string:new eo}}function kS(s){var l=Rl(this,s).delete(s);return this.size-=l?1:0,l}function HS(s){return Rl(this,s).get(s)}function WS(s){return Rl(this,s).has(s)}function qS(s,l){var u=Rl(this,s),p=u.size;return u.set(s,l),this.size+=u.size==p?0:1,this}Xn.prototype.clear=jS,Xn.prototype.delete=kS,Xn.prototype.get=HS,Xn.prototype.has=WS,Xn.prototype.set=qS;function to(s){var l=-1,u=s==null?0:s.length;for(this.__data__=new Xn;++l<u;)this.add(s[l])}function $S(s){return this.__data__.set(s,o),this}function JS(s){return this.__data__.has(s)}to.prototype.add=to.prototype.push=$S,to.prototype.has=JS;function bn(s){var l=this.__data__=new Yn(s);this.size=l.size}function KS(){this.__data__=new Yn,this.size=0}function YS(s){var l=this.__data__,u=l.delete(s);return this.size=l.size,u}function XS(s){return this.__data__.get(s)}function ZS(s){return this.__data__.has(s)}function QS(s,l){var u=this.__data__;if(u instanceof Yn){var p=u.__data__;if(!Ys||p.length<e-1)return p.push([s,l]),this.size=++u.size,this;u=this.__data__=new Xn(p)}return u.set(s,l),this.size=u.size,this}bn.prototype.clear=KS,bn.prototype.delete=YS,bn.prototype.get=XS,bn.prototype.has=ZS,bn.prototype.set=QS;function dd(s,l){var u=ke(s),p=!u&&so(s),g=!u&&!p&&Ni(s),v=!u&&!p&&!g&&Vo(s),C=u||p||g||v,L=C?Zu(s.length,cS):[],_=L.length;for(var Z in s)(l||ht.call(s,Z))&&!(C&&(Z=="length"||g&&(Z=="offset"||Z=="parent")||v&&(Z=="buffer"||Z=="byteLength"||Z=="byteOffset")||ti(Z,_)))&&L.push(Z);return L}function md(s){var l=s.length;return l?s[gf(0,l-1)]:i}function e1(s,l){return zl(Ir(s),ro(l,0,s.length))}function t1(s){return zl(Ir(s))}function sf(s,l,u){(u!==i&&!Sn(s[l],u)||u===i&&!(l in s))&&Zn(s,l,u)}function ea(s,l,u){var p=s[l];(!(ht.call(s,l)&&Sn(p,u))||u===i&&!(l in s))&&Zn(s,l,u)}function Tl(s,l){for(var u=s.length;u--;)if(Sn(s[u][0],l))return u;return-1}function r1(s,l,u,p){return wi(s,function(g,v,C){l(p,g,u(g),C)}),p}function gd(s,l){return s&&Dn(l,Qt(l),s)}function n1(s,l){return s&&Dn(l,Mr(l),s)}function Zn(s,l,u){l=="__proto__"&&vl?vl(s,l,{configurable:!0,enumerable:!0,value:u,writable:!0}):s[l]=u}function af(s,l){for(var u=-1,p=l.length,g=U(p),v=s==null;++u<p;)g[u]=v?i:Uf(s,l[u]);return g}function ro(s,l,u){return s===s&&(u!==i&&(s=s<=u?s:u),l!==i&&(s=s>=l?s:l)),s}function rn(s,l,u,p,g,v){var C,L=l&f,_=l&h,Z=l&d;if(u&&(C=g?u(s,p,g,v):u(s)),C!==i)return C;if(!Pt(s))return s;var Q=ke(s);if(Q){if(C=W1(s),!L)return Ir(s,C)}else{var oe=hr(s),ge=oe==re||oe==q;if(Ni(s))return Vd(s,L);if(oe==le||oe==W||ge&&!g){if(C=_||ge?{}:om(s),!L)return _?E1(s,n1(C,s)):D1(s,gd(C,s))}else{if(!bt[oe])return g?s:{};C=q1(s,oe,L)}}v||(v=new bn);var Ne=v.get(s);if(Ne)return Ne;v.set(s,C),Em(s)?s.forEach(function(Ge){C.add(rn(Ge,l,u,Ge,s,v))}):Am(s)&&s.forEach(function(Ge,Ze){C.set(Ze,rn(Ge,l,u,Ze,s,v))});var ze=Z?_?_f:Nf:_?Mr:Qt,Je=Q?i:ze(s);return Qr(Je||s,function(Ge,Ze){Je&&(Ze=Ge,Ge=s[Ze]),ea(C,Ze,rn(Ge,l,u,Ze,s,v))}),C}function i1(s){var l=Qt(s);return function(u){return yd(u,s,l)}}function yd(s,l,u){var p=u.length;if(s==null)return!p;for(s=xt(s);p--;){var g=u[p],v=l[g],C=s[g];if(C===i&&!(g in s)||!v(C))return!1}return!0}function xd(s,l,u){if(typeof s!="function")throw new en(n);return aa(function(){s.apply(i,u)},l)}function ta(s,l,u,p){var g=-1,v=ll,C=!0,L=s.length,_=[],Z=l.length;if(!L)return _;u&&(l=It(l,Vr(u))),p?(v=qu,C=!1):l.length>=e&&(v=Js,C=!1,l=new to(l));e:for(;++g<L;){var Q=s[g],oe=u==null?Q:u(Q);if(Q=p||Q!==0?Q:0,C&&oe===oe){for(var ge=Z;ge--;)if(l[ge]===oe)continue e;_.push(Q)}else v(l,oe,p)||_.push(Q)}return _}var wi=Wd(An),vd=Wd(cf,!0);function o1(s,l){var u=!0;return wi(s,function(p,g,v){return u=!!l(p,g,v),u}),u}function Nl(s,l,u){for(var p=-1,g=s.length;++p<g;){var v=s[p],C=l(v);if(C!=null&&(L===i?C===C&&!jr(C):u(C,L)))var L=C,_=v}return _}function s1(s,l,u,p){var g=s.length;for(u=We(u),u<0&&(u=-u>g?0:g+u),p=p===i||p>g?g:We(p),p<0&&(p+=g),p=u>p?0:Gm(p);u<p;)s[u++]=l;return s}function bd(s,l){var u=[];return wi(s,function(p,g,v){l(p,g,v)&&u.push(p)}),u}function or(s,l,u,p,g){var v=-1,C=s.length;for(u||(u=J1),g||(g=[]);++v<C;){var L=s[v];l>0&&u(L)?l>1?or(L,l-1,u,p,g):xi(g,L):p||(g[g.length]=L)}return g}var lf=qd(),Sd=qd(!0);function An(s,l){return s&&lf(s,l,Qt)}function cf(s,l){return s&&Sd(s,l,Qt)}function _l(s,l){return yi(l,function(u){return ri(s[u])})}function no(s,l){l=Li(l,s);for(var u=0,p=l.length;s!=null&&u<p;)s=s[En(l[u++])];return u&&u==p?s:i}function wd(s,l,u){var p=l(s);return ke(s)?p:xi(p,u(s))}function xr(s){return s==null?s===i?ft:ce:Qi&&Qi in xt(s)?j1(s):tw(s)}function uf(s,l){return s>l}function a1(s,l){return s!=null&&ht.call(s,l)}function l1(s,l){return s!=null&&l in xt(s)}function c1(s,l,u){return s>=fr(l,u)&&s<Jt(l,u)}function ff(s,l,u){for(var p=u?qu:ll,g=s[0].length,v=s.length,C=v,L=U(v),_=1/0,Z=[];C--;){var Q=s[C];C&&l&&(Q=It(Q,Vr(l))),_=fr(Q.length,_),L[C]=!u&&(l||g>=120&&Q.length>=120)?new to(C&&Q):i}Q=s[0];var oe=-1,ge=L[0];e:for(;++oe<g&&Z.length<_;){var Ne=Q[oe],ze=l?l(Ne):Ne;if(Ne=u||Ne!==0?Ne:0,!(ge?Js(ge,ze):p(Z,ze,u))){for(C=v;--C;){var Je=L[C];if(!(Je?Js(Je,ze):p(s[C],ze,u)))continue e}ge&&ge.push(ze),Z.push(Ne)}}return Z}function u1(s,l,u,p){return An(s,function(g,v,C){l(p,u(g),v,C)}),p}function ra(s,l,u){l=Li(l,s),s=cm(s,l);var p=s==null?s:s[En(on(l))];return p==null?i:Fr(p,s,u)}function Cd(s){return Dt(s)&&xr(s)==W}function f1(s){return Dt(s)&&xr(s)==qe}function h1(s){return Dt(s)&&xr(s)==fe}function na(s,l,u,p,g){return s===l?!0:s==null||l==null||!Dt(s)&&!Dt(l)?s!==s&&l!==l:p1(s,l,u,p,na,g)}function p1(s,l,u,p,g,v){var C=ke(s),L=ke(l),_=C?J:hr(s),Z=L?J:hr(l);_=_==W?le:_,Z=Z==W?le:Z;var Q=_==le,oe=Z==le,ge=_==Z;if(ge&&Ni(s)){if(!Ni(l))return!1;C=!0,Q=!1}if(ge&&!Q)return v||(v=new bn),C||Vo(s)?rm(s,l,u,p,g,v):V1(s,l,_,u,p,g,v);if(!(u&m)){var Ne=Q&&ht.call(s,"__wrapped__"),ze=oe&&ht.call(l,"__wrapped__");if(Ne||ze){var Je=Ne?s.value():s,Ge=ze?l.value():l;return v||(v=new bn),g(Je,Ge,u,p,v)}}return ge?(v||(v=new bn),U1(s,l,u,p,g,v)):!1}function d1(s){return Dt(s)&&hr(s)==ee}function hf(s,l,u,p){var g=u.length,v=g,C=!p;if(s==null)return!v;for(s=xt(s);g--;){var L=u[g];if(C&&L[2]?L[1]!==s[L[0]]:!(L[0]in s))return!1}for(;++g<v;){L=u[g];var _=L[0],Z=s[_],Q=L[1];if(C&&L[2]){if(Z===i&&!(_ in s))return!1}else{var oe=new bn;if(p)var ge=p(Z,Q,_,s,l,oe);if(!(ge===i?na(Q,Z,m|x,p,oe):ge))return!1}}return!0}function Ld(s){if(!Pt(s)||Y1(s))return!1;var l=ri(s)?dS:ib;return l.test(oo(s))}function m1(s){return Dt(s)&&xr(s)==de}function g1(s){return Dt(s)&&hr(s)==be}function y1(s){return Dt(s)&&Hl(s.length)&&!!Tt[xr(s)]}function Td(s){return typeof s=="function"?s:s==null?Pr:typeof s=="object"?ke(s)?Id(s[0],s[1]):_d(s):$m(s)}function pf(s){if(!sa(s))return bS(s);var l=[];for(var u in xt(s))ht.call(s,u)&&u!="constructor"&&l.push(u);return l}function x1(s){if(!Pt(s))return ew(s);var l=sa(s),u=[];for(var p in s)p=="constructor"&&(l||!ht.call(s,p))||u.push(p);return u}function df(s,l){return s<l}function Nd(s,l){var u=-1,p=Or(s)?U(s.length):[];return wi(s,function(g,v,C){p[++u]=l(g,v,C)}),p}function _d(s){var l=Of(s);return l.length==1&&l[0][2]?am(l[0][0],l[0][1]):function(u){return u===s||hf(u,s,l)}}function Id(s,l){return Pf(s)&&sm(l)?am(En(s),l):function(u){var p=Uf(u,s);return p===i&&p===l?jf(u,s):na(l,p,m|x)}}function Il(s,l,u,p,g){s!==l&&lf(l,function(v,C){if(g||(g=new bn),Pt(v))v1(s,l,C,u,Il,p,g);else{var L=p?p(Df(s,C),v,C+"",s,l,g):i;L===i&&(L=v),sf(s,C,L)}},Mr)}function v1(s,l,u,p,g,v,C){var L=Df(s,u),_=Df(l,u),Z=C.get(_);if(Z){sf(s,u,Z);return}var Q=v?v(L,_,u+"",s,l,C):i,oe=Q===i;if(oe){var ge=ke(_),Ne=!ge&&Ni(_),ze=!ge&&!Ne&&Vo(_);Q=_,ge||Ne||ze?ke(L)?Q=L:Gt(L)?Q=Ir(L):Ne?(oe=!1,Q=Vd(_,!0)):ze?(oe=!1,Q=Ud(_,!0)):Q=[]:la(_)||so(_)?(Q=L,so(L)?Q=Rm(L):(!Pt(L)||ri(L))&&(Q=om(_))):oe=!1}oe&&(C.set(_,Q),g(Q,_,p,v,C),C.delete(_)),sf(s,u,Q)}function Od(s,l){var u=s.length;if(!!u)return l+=l<0?u:0,ti(l,u)?s[l]:i}function Md(s,l,u){l.length?l=It(l,function(v){return ke(v)?function(C){return no(C,v.length===1?v[0]:v)}:v}):l=[Pr];var p=-1;l=It(l,Vr(Be()));var g=Nd(s,function(v,C,L){var _=It(l,function(Z){return Z(v)});return{criteria:_,index:++p,value:v}});return qb(g,function(v,C){return A1(v,C,u)})}function b1(s,l){return Pd(s,l,function(u,p){return jf(s,p)})}function Pd(s,l,u){for(var p=-1,g=l.length,v={};++p<g;){var C=l[p],L=no(s,C);u(L,C)&&ia(v,Li(C,s),L)}return v}function S1(s){return function(l){return no(l,s)}}function mf(s,l,u,p){var g=p?Wb:Mo,v=-1,C=l.length,L=s;for(s===l&&(l=Ir(l)),u&&(L=It(s,Vr(u)));++v<C;)for(var _=0,Z=l[v],Q=u?u(Z):Z;(_=g(L,Q,_,p))>-1;)L!==s&&xl.call(L,_,1),xl.call(s,_,1);return s}function Ad(s,l){for(var u=s?l.length:0,p=u-1;u--;){var g=l[u];if(u==p||g!==v){var v=g;ti(g)?xl.call(s,g,1):vf(s,g)}}return s}function gf(s,l){return s+Sl(hd()*(l-s+1))}function w1(s,l,u,p){for(var g=-1,v=Jt(bl((l-s)/(u||1)),0),C=U(v);v--;)C[p?v:++g]=s,s+=u;return C}function yf(s,l){var u="";if(!s||l<1||l>ne)return u;do l%2&&(u+=s),l=Sl(l/2),l&&(s+=s);while(l);return u}function Xe(s,l){return Ef(lm(s,l,Pr),s+"")}function C1(s){return md(Uo(s))}function L1(s,l){var u=Uo(s);return zl(u,ro(l,0,u.length))}function ia(s,l,u,p){if(!Pt(s))return s;l=Li(l,s);for(var g=-1,v=l.length,C=v-1,L=s;L!=null&&++g<v;){var _=En(l[g]),Z=u;if(_==="__proto__"||_==="constructor"||_==="prototype")return s;if(g!=C){var Q=L[_];Z=p?p(Q,_,L):i,Z===i&&(Z=Pt(Q)?Q:ti(l[g+1])?[]:{})}ea(L,_,Z),L=L[_]}return s}var Dd=wl?function(s,l){return wl.set(s,l),s}:Pr,T1=vl?function(s,l){return vl(s,"toString",{configurable:!0,enumerable:!1,value:Hf(l),writable:!0})}:Pr;function N1(s){return zl(Uo(s))}function nn(s,l,u){var p=-1,g=s.length;l<0&&(l=-l>g?0:g+l),u=u>g?g:u,u<0&&(u+=g),g=l>u?0:u-l>>>0,l>>>=0;for(var v=U(g);++p<g;)v[p]=s[p+l];return v}function _1(s,l){var u;return wi(s,function(p,g,v){return u=l(p,g,v),!u}),!!u}function Ol(s,l,u){var p=0,g=s==null?p:s.length;if(typeof l=="number"&&l===l&&g<=se){for(;p<g;){var v=p+g>>>1,C=s[v];C!==null&&!jr(C)&&(u?C<=l:C<l)?p=v+1:g=v}return g}return xf(s,l,Pr,u)}function xf(s,l,u,p){var g=0,v=s==null?0:s.length;if(v===0)return 0;l=u(l);for(var C=l!==l,L=l===null,_=jr(l),Z=l===i;g<v;){var Q=Sl((g+v)/2),oe=u(s[Q]),ge=oe!==i,Ne=oe===null,ze=oe===oe,Je=jr(oe);if(C)var Ge=p||ze;else Z?Ge=ze&&(p||ge):L?Ge=ze&&ge&&(p||!Ne):_?Ge=ze&&ge&&!Ne&&(p||!Je):Ne||Je?Ge=!1:Ge=p?oe<=l:oe<l;Ge?g=Q+1:v=Q}return fr(v,Ue)}function Ed(s,l){for(var u=-1,p=s.length,g=0,v=[];++u<p;){var C=s[u],L=l?l(C):C;if(!u||!Sn(L,_)){var _=L;v[g++]=C===0?0:C}}return v}function Bd(s){return typeof s=="number"?s:jr(s)?_e:+s}function Ur(s){if(typeof s=="string")return s;if(ke(s))return It(s,Ur)+"";if(jr(s))return pd?pd.call(s):"";var l=s+"";return l=="0"&&1/s==-ae?"-0":l}function Ci(s,l,u){var p=-1,g=ll,v=s.length,C=!0,L=[],_=L;if(u)C=!1,g=qu;else if(v>=e){var Z=l?null:z1(s);if(Z)return ul(Z);C=!1,g=Js,_=new to}else _=l?[]:L;e:for(;++p<v;){var Q=s[p],oe=l?l(Q):Q;if(Q=u||Q!==0?Q:0,C&&oe===oe){for(var ge=_.length;ge--;)if(_[ge]===oe)continue e;l&&_.push(oe),L.push(Q)}else g(_,oe,u)||(_!==L&&_.push(oe),L.push(Q))}return L}function vf(s,l){return l=Li(l,s),s=cm(s,l),s==null||delete s[En(on(l))]}function Gd(s,l,u,p){return ia(s,l,u(no(s,l)),p)}function Ml(s,l,u,p){for(var g=s.length,v=p?g:-1;(p?v--:++v<g)&&l(s[v],v,s););return u?nn(s,p?0:v,p?v+1:g):nn(s,p?v+1:0,p?g:v)}function Rd(s,l){var u=s;return u instanceof et&&(u=u.value()),$u(l,function(p,g){return g.func.apply(g.thisArg,xi([p],g.args))},u)}function bf(s,l,u){var p=s.length;if(p<2)return p?Ci(s[0]):[];for(var g=-1,v=U(p);++g<p;)for(var C=s[g],L=-1;++L<p;)L!=g&&(v[g]=ta(v[g]||C,s[L],l,u));return Ci(or(v,1),l,u)}function zd(s,l,u){for(var p=-1,g=s.length,v=l.length,C={};++p<g;){var L=p<v?l[p]:i;u(C,s[p],L)}return C}function Sf(s){return Gt(s)?s:[]}function wf(s){return typeof s=="function"?s:Pr}function Li(s,l){return ke(s)?s:Pf(s,l)?[s]:pm(lt(s))}var I1=Xe;function Ti(s,l,u){var p=s.length;return u=u===i?p:u,!l&&u>=p?s:nn(s,l,u)}var Fd=mS||function(s){return Zt.clearTimeout(s)};function Vd(s,l){if(l)return s.slice();var u=s.length,p=ad?ad(u):new s.constructor(u);return s.copy(p),p}function Cf(s){var l=new s.constructor(s.byteLength);return new gl(l).set(new gl(s)),l}function O1(s,l){var u=l?Cf(s.buffer):s.buffer;return new s.constructor(u,s.byteOffset,s.byteLength)}function M1(s){var l=new s.constructor(s.source,xn.exec(s));return l.lastIndex=s.lastIndex,l}function P1(s){return Qs?xt(Qs.call(s)):{}}function Ud(s,l){var u=l?Cf(s.buffer):s.buffer;return new s.constructor(u,s.byteOffset,s.length)}function jd(s,l){if(s!==l){var u=s!==i,p=s===null,g=s===s,v=jr(s),C=l!==i,L=l===null,_=l===l,Z=jr(l);if(!L&&!Z&&!v&&s>l||v&&C&&_&&!L&&!Z||p&&C&&_||!u&&_||!g)return 1;if(!p&&!v&&!Z&&s<l||Z&&u&&g&&!p&&!v||L&&u&&g||!C&&g||!_)return-1}return 0}function A1(s,l,u){for(var p=-1,g=s.criteria,v=l.criteria,C=g.length,L=u.length;++p<C;){var _=jd(g[p],v[p]);if(_){if(p>=L)return _;var Z=u[p];return _*(Z=="desc"?-1:1)}}return s.index-l.index}function kd(s,l,u,p){for(var g=-1,v=s.length,C=u.length,L=-1,_=l.length,Z=Jt(v-C,0),Q=U(_+Z),oe=!p;++L<_;)Q[L]=l[L];for(;++g<C;)(oe||g<v)&&(Q[u[g]]=s[g]);for(;Z--;)Q[L++]=s[g++];return Q}function Hd(s,l,u,p){for(var g=-1,v=s.length,C=-1,L=u.length,_=-1,Z=l.length,Q=Jt(v-L,0),oe=U(Q+Z),ge=!p;++g<Q;)oe[g]=s[g];for(var Ne=g;++_<Z;)oe[Ne+_]=l[_];for(;++C<L;)(ge||g<v)&&(oe[Ne+u[C]]=s[g++]);return oe}function Ir(s,l){var u=-1,p=s.length;for(l||(l=U(p));++u<p;)l[u]=s[u];return l}function Dn(s,l,u,p){var g=!u;u||(u={});for(var v=-1,C=l.length;++v<C;){var L=l[v],_=p?p(u[L],s[L],L,u,s):i;_===i&&(_=s[L]),g?Zn(u,L,_):ea(u,L,_)}return u}function D1(s,l){return Dn(s,Mf(s),l)}function E1(s,l){return Dn(s,nm(s),l)}function Pl(s,l){return function(u,p){var g=ke(u)?Fb:r1,v=l?l():{};return g(u,s,Be(p,2),v)}}function Ro(s){return Xe(function(l,u){var p=-1,g=u.length,v=g>1?u[g-1]:i,C=g>2?u[2]:i;for(v=s.length>3&&typeof v=="function"?(g--,v):i,C&&vr(u[0],u[1],C)&&(v=g<3?i:v,g=1),l=xt(l);++p<g;){var L=u[p];L&&s(l,L,p,v)}return l})}function Wd(s,l){return function(u,p){if(u==null)return u;if(!Or(u))return s(u,p);for(var g=u.length,v=l?g:-1,C=xt(u);(l?v--:++v<g)&&p(C[v],v,C)!==!1;);return u}}function qd(s){return function(l,u,p){for(var g=-1,v=xt(l),C=p(l),L=C.length;L--;){var _=C[s?L:++g];if(u(v[_],_,v)===!1)break}return l}}function B1(s,l,u){var p=l&S,g=oa(s);function v(){var C=this&&this!==Zt&&this instanceof v?g:s;return C.apply(p?u:this,arguments)}return v}function $d(s){return function(l){l=lt(l);var u=Po(l)?vn(l):i,p=u?u[0]:l.charAt(0),g=u?Ti(u,1).join(""):l.slice(1);return p[s]()+g}}function zo(s){return function(l){return $u(Wm(Hm(l).replace(Tb,"")),s,"")}}function oa(s){return function(){var l=arguments;switch(l.length){case 0:return new s;case 1:return new s(l[0]);case 2:return new s(l[0],l[1]);case 3:return new s(l[0],l[1],l[2]);case 4:return new s(l[0],l[1],l[2],l[3]);case 5:return new s(l[0],l[1],l[2],l[3],l[4]);case 6:return new s(l[0],l[1],l[2],l[3],l[4],l[5]);case 7:return new s(l[0],l[1],l[2],l[3],l[4],l[5],l[6])}var u=Go(s.prototype),p=s.apply(u,l);return Pt(p)?p:u}}function G1(s,l,u){var p=oa(s);function g(){for(var v=arguments.length,C=U(v),L=v,_=Fo(g);L--;)C[L]=arguments[L];var Z=v<3&&C[0]!==_&&C[v-1]!==_?[]:vi(C,_);if(v-=Z.length,v<u)return Zd(s,l,Al,g.placeholder,i,C,Z,i,i,u-v);var Q=this&&this!==Zt&&this instanceof g?p:s;return Fr(Q,this,C)}return g}function Jd(s){return function(l,u,p){var g=xt(l);if(!Or(l)){var v=Be(u,3);l=Qt(l),u=function(L){return v(g[L],L,g)}}var C=s(l,u,p);return C>-1?g[v?l[C]:C]:i}}function Kd(s){return ei(function(l){var u=l.length,p=u,g=tn.prototype.thru;for(s&&l.reverse();p--;){var v=l[p];if(typeof v!="function")throw new en(n);if(g&&!C&&Gl(v)=="wrapper")var C=new tn([],!0)}for(p=C?p:u;++p<u;){v=l[p];var L=Gl(v),_=L=="wrapper"?If(v):i;_&&Af(_[0])&&_[1]==(k|O|M|N)&&!_[4].length&&_[9]==1?C=C[Gl(_[0])].apply(C,_[3]):C=v.length==1&&Af(v)?C[L]():C.thru(v)}return function(){var Z=arguments,Q=Z[0];if(C&&Z.length==1&&ke(Q))return C.plant(Q).value();for(var oe=0,ge=u?l[oe].apply(this,Z):Q;++oe<u;)ge=l[oe].call(this,ge);return ge}})}function Al(s,l,u,p,g,v,C,L,_,Z){var Q=l&k,oe=l&S,ge=l&w,Ne=l&(O|T),ze=l&te,Je=ge?i:oa(s);function Ge(){for(var Ze=arguments.length,tt=U(Ze),kr=Ze;kr--;)tt[kr]=arguments[kr];if(Ne)var br=Fo(Ge),Hr=Jb(tt,br);if(p&&(tt=kd(tt,p,g,Ne)),v&&(tt=Hd(tt,v,C,Ne)),Ze-=Hr,Ne&&Ze<Z){var Rt=vi(tt,br);return Zd(s,l,Al,Ge.placeholder,u,tt,Rt,L,_,Z-Ze)}var wn=oe?u:this,ii=ge?wn[s]:s;return Ze=tt.length,L?tt=rw(tt,L):ze&&Ze>1&&tt.reverse(),Q&&_<Ze&&(tt.length=_),this&&this!==Zt&&this instanceof Ge&&(ii=Je||oa(ii)),ii.apply(wn,tt)}return Ge}function Yd(s,l){return function(u,p){return u1(u,s,l(p),{})}}function Dl(s,l){return function(u,p){var g;if(u===i&&p===i)return l;if(u!==i&&(g=u),p!==i){if(g===i)return p;typeof u=="string"||typeof p=="string"?(u=Ur(u),p=Ur(p)):(u=Bd(u),p=Bd(p)),g=s(u,p)}return g}}function Lf(s){return ei(function(l){return l=It(l,Vr(Be())),Xe(function(u){var p=this;return s(l,function(g){return Fr(g,p,u)})})})}function El(s,l){l=l===i?" ":Ur(l);var u=l.length;if(u<2)return u?yf(l,s):l;var p=yf(l,bl(s/Ao(l)));return Po(l)?Ti(vn(p),0,s).join(""):p.slice(0,s)}function R1(s,l,u,p){var g=l&S,v=oa(s);function C(){for(var L=-1,_=arguments.length,Z=-1,Q=p.length,oe=U(Q+_),ge=this&&this!==Zt&&this instanceof C?v:s;++Z<Q;)oe[Z]=p[Z];for(;_--;)oe[Z++]=arguments[++L];return Fr(ge,g?u:this,oe)}return C}function Xd(s){return function(l,u,p){return p&&typeof p!="number"&&vr(l,u,p)&&(u=p=i),l=ni(l),u===i?(u=l,l=0):u=ni(u),p=p===i?l<u?1:-1:ni(p),w1(l,u,p,s)}}function Bl(s){return function(l,u){return typeof l=="string"&&typeof u=="string"||(l=sn(l),u=sn(u)),s(l,u)}}function Zd(s,l,u,p,g,v,C,L,_,Z){var Q=l&O,oe=Q?C:i,ge=Q?i:C,Ne=Q?v:i,ze=Q?i:v;l|=Q?M:F,l&=~(Q?F:M),l&B||(l&=~(S|w));var Je=[s,l,g,Ne,oe,ze,ge,L,_,Z],Ge=u.apply(i,Je);return Af(s)&&um(Ge,Je),Ge.placeholder=p,fm(Ge,s,l)}function Tf(s){var l=$t[s];return function(u,p){if(u=sn(u),p=p==null?0:fr(We(p),292),p&&fd(u)){var g=(lt(u)+"e").split("e"),v=l(g[0]+"e"+(+g[1]+p));return g=(lt(v)+"e").split("e"),+(g[0]+"e"+(+g[1]-p))}return l(u)}}var z1=Eo&&1/ul(new Eo([,-0]))[1]==ae?function(s){return new Eo(s)}:$f;function Qd(s){return function(l){var u=hr(l);return u==ee?ef(l):u==be?tS(l):$b(l,s(l))}}function Qn(s,l,u,p,g,v,C,L){var _=l&w;if(!_&&typeof s!="function")throw new en(n);var Z=p?p.length:0;if(Z||(l&=~(M|F),p=g=i),C=C===i?C:Jt(We(C),0),L=L===i?L:We(L),Z-=g?g.length:0,l&F){var Q=p,oe=g;p=g=i}var ge=_?i:If(s),Ne=[s,l,u,p,g,Q,oe,v,C,L];if(ge&&Q1(Ne,ge),s=Ne[0],l=Ne[1],u=Ne[2],p=Ne[3],g=Ne[4],L=Ne[9]=Ne[9]===i?_?0:s.length:Jt(Ne[9]-Z,0),!L&&l&(O|T)&&(l&=~(O|T)),!l||l==S)var ze=B1(s,l,u);else l==O||l==T?ze=G1(s,l,L):(l==M||l==(S|M))&&!g.length?ze=R1(s,l,u,p):ze=Al.apply(i,Ne);var Je=ge?Dd:um;return fm(Je(ze,Ne),s,l)}function em(s,l,u,p){return s===i||Sn(s,Do[u])&&!ht.call(p,u)?l:s}function tm(s,l,u,p,g,v){return Pt(s)&&Pt(l)&&(v.set(l,s),Il(s,l,i,tm,v),v.delete(l)),s}function F1(s){return la(s)?i:s}function rm(s,l,u,p,g,v){var C=u&m,L=s.length,_=l.length;if(L!=_&&!(C&&_>L))return!1;var Z=v.get(s),Q=v.get(l);if(Z&&Q)return Z==l&&Q==s;var oe=-1,ge=!0,Ne=u&x?new to:i;for(v.set(s,l),v.set(l,s);++oe<L;){var ze=s[oe],Je=l[oe];if(p)var Ge=C?p(Je,ze,oe,l,s,v):p(ze,Je,oe,s,l,v);if(Ge!==i){if(Ge)continue;ge=!1;break}if(Ne){if(!Ju(l,function(Ze,tt){if(!Js(Ne,tt)&&(ze===Ze||g(ze,Ze,u,p,v)))return Ne.push(tt)})){ge=!1;break}}else if(!(ze===Je||g(ze,Je,u,p,v))){ge=!1;break}}return v.delete(s),v.delete(l),ge}function V1(s,l,u,p,g,v,C){switch(u){case _t:if(s.byteLength!=l.byteLength||s.byteOffset!=l.byteOffset)return!1;s=s.buffer,l=l.buffer;case qe:return!(s.byteLength!=l.byteLength||!v(new gl(s),new gl(l)));case K:case fe:case Te:return Sn(+s,+l);case ie:return s.name==l.name&&s.message==l.message;case de:case Se:return s==l+"";case ee:var L=ef;case be:var _=p&m;if(L||(L=ul),s.size!=l.size&&!_)return!1;var Z=C.get(s);if(Z)return Z==l;p|=x,C.set(s,l);var Q=rm(L(s),L(l),p,g,v,C);return C.delete(s),Q;case Ie:if(Qs)return Qs.call(s)==Qs.call(l)}return!1}function U1(s,l,u,p,g,v){var C=u&m,L=Nf(s),_=L.length,Z=Nf(l),Q=Z.length;if(_!=Q&&!C)return!1;for(var oe=_;oe--;){var ge=L[oe];if(!(C?ge in l:ht.call(l,ge)))return!1}var Ne=v.get(s),ze=v.get(l);if(Ne&&ze)return Ne==l&&ze==s;var Je=!0;v.set(s,l),v.set(l,s);for(var Ge=C;++oe<_;){ge=L[oe];var Ze=s[ge],tt=l[ge];if(p)var kr=C?p(tt,Ze,ge,l,s,v):p(Ze,tt,ge,s,l,v);if(!(kr===i?Ze===tt||g(Ze,tt,u,p,v):kr)){Je=!1;break}Ge||(Ge=ge=="constructor")}if(Je&&!Ge){var br=s.constructor,Hr=l.constructor;br!=Hr&&"constructor"in s&&"constructor"in l&&!(typeof br=="function"&&br instanceof br&&typeof Hr=="function"&&Hr instanceof Hr)&&(Je=!1)}return v.delete(s),v.delete(l),Je}function ei(s){return Ef(lm(s,i,ym),s+"")}function Nf(s){return wd(s,Qt,Mf)}function _f(s){return wd(s,Mr,nm)}var If=wl?function(s){return wl.get(s)}:$f;function Gl(s){for(var l=s.name+"",u=Bo[l],p=ht.call(Bo,l)?u.length:0;p--;){var g=u[p],v=g.func;if(v==null||v==s)return g.name}return l}function Fo(s){var l=ht.call(y,"placeholder")?y:s;return l.placeholder}function Be(){var s=y.iteratee||Wf;return s=s===Wf?Td:s,arguments.length?s(arguments[0],arguments[1]):s}function Rl(s,l){var u=s.__data__;return K1(l)?u[typeof l=="string"?"string":"hash"]:u.map}function Of(s){for(var l=Qt(s),u=l.length;u--;){var p=l[u],g=s[p];l[u]=[p,g,sm(g)]}return l}function io(s,l){var u=Zb(s,l);return Ld(u)?u:i}function j1(s){var l=ht.call(s,Qi),u=s[Qi];try{s[Qi]=i;var p=!0}catch{}var g=dl.call(s);return p&&(l?s[Qi]=u:delete s[Qi]),g}var Mf=rf?function(s){return s==null?[]:(s=xt(s),yi(rf(s),function(l){return cd.call(s,l)}))}:Jf,nm=rf?function(s){for(var l=[];s;)xi(l,Mf(s)),s=yl(s);return l}:Jf,hr=xr;(nf&&hr(new nf(new ArrayBuffer(1)))!=_t||Ys&&hr(new Ys)!=ee||of&&hr(of.resolve())!=he||Eo&&hr(new Eo)!=be||Xs&&hr(new Xs)!=Ve)&&(hr=function(s){var l=xr(s),u=l==le?s.constructor:i,p=u?oo(u):"";if(p)switch(p){case LS:return _t;case TS:return ee;case NS:return he;case _S:return be;case IS:return Ve}return l});function k1(s,l,u){for(var p=-1,g=u.length;++p<g;){var v=u[p],C=v.size;switch(v.type){case"drop":s+=C;break;case"dropRight":l-=C;break;case"take":l=fr(l,s+C);break;case"takeRight":s=Jt(s,l-C);break}}return{start:s,end:l}}function H1(s){var l=s.match(at);return l?l[1].split(vt):[]}function im(s,l,u){l=Li(l,s);for(var p=-1,g=l.length,v=!1;++p<g;){var C=En(l[p]);if(!(v=s!=null&&u(s,C)))break;s=s[C]}return v||++p!=g?v:(g=s==null?0:s.length,!!g&&Hl(g)&&ti(C,g)&&(ke(s)||so(s)))}function W1(s){var l=s.length,u=new s.constructor(l);return l&&typeof s[0]=="string"&&ht.call(s,"index")&&(u.index=s.index,u.input=s.input),u}function om(s){return typeof s.constructor=="function"&&!sa(s)?Go(yl(s)):{}}function q1(s,l,u){var p=s.constructor;switch(l){case qe:return Cf(s);case K:case fe:return new p(+s);case _t:return O1(s,u);case Wt:case Rr:case Ut:case zr:case mn:case gn:case pt:case jt:case ir:return Ud(s,u);case ee:return new p;case Te:case Se:return new p(s);case de:return M1(s);case be:return new p;case Ie:return P1(s)}}function $1(s,l){var u=l.length;if(!u)return s;var p=u-1;return l[p]=(u>1?"& ":"")+l[p],l=l.join(u>2?", ":" "),s.replace(mt,`{
|
|
2
|
+
/* [wrapped with `+l+`] */
|
|
3
|
+
`)}function J1(s){return ke(s)||so(s)||!!(ud&&s&&s[ud])}function ti(s,l){var u=typeof s;return l=l==null?ne:l,!!l&&(u=="number"||u!="symbol"&&sb.test(s))&&s>-1&&s%1==0&&s<l}function vr(s,l,u){if(!Pt(u))return!1;var p=typeof l;return(p=="number"?Or(u)&&ti(l,u.length):p=="string"&&l in u)?Sn(u[l],s):!1}function Pf(s,l){if(ke(s))return!1;var u=typeof s;return u=="number"||u=="symbol"||u=="boolean"||s==null||jr(s)?!0:Re.test(s)||!Io.test(s)||l!=null&&s in xt(l)}function K1(s){var l=typeof s;return l=="string"||l=="number"||l=="symbol"||l=="boolean"?s!=="__proto__":s===null}function Af(s){var l=Gl(s),u=y[l];if(typeof u!="function"||!(l in et.prototype))return!1;if(s===u)return!0;var p=If(u);return!!p&&s===p[0]}function Y1(s){return!!sd&&sd in s}var X1=hl?ri:Kf;function sa(s){var l=s&&s.constructor,u=typeof l=="function"&&l.prototype||Do;return s===u}function sm(s){return s===s&&!Pt(s)}function am(s,l){return function(u){return u==null?!1:u[s]===l&&(l!==i||s in xt(u))}}function Z1(s){var l=jl(s,function(p){return u.size===a&&u.clear(),p}),u=l.cache;return l}function Q1(s,l){var u=s[1],p=l[1],g=u|p,v=g<(S|w|k),C=p==k&&u==O||p==k&&u==N&&s[7].length<=l[8]||p==(k|N)&&l[7].length<=l[8]&&u==O;if(!(v||C))return s;p&S&&(s[2]=l[2],g|=u&S?0:B);var L=l[3];if(L){var _=s[3];s[3]=_?kd(_,L,l[4]):L,s[4]=_?vi(s[3],c):l[4]}return L=l[5],L&&(_=s[5],s[5]=_?Hd(_,L,l[6]):L,s[6]=_?vi(s[5],c):l[6]),L=l[7],L&&(s[7]=L),p&k&&(s[8]=s[8]==null?l[8]:fr(s[8],l[8])),s[9]==null&&(s[9]=l[9]),s[0]=l[0],s[1]=g,s}function ew(s){var l=[];if(s!=null)for(var u in xt(s))l.push(u);return l}function tw(s){return dl.call(s)}function lm(s,l,u){return l=Jt(l===i?s.length-1:l,0),function(){for(var p=arguments,g=-1,v=Jt(p.length-l,0),C=U(v);++g<v;)C[g]=p[l+g];g=-1;for(var L=U(l+1);++g<l;)L[g]=p[g];return L[l]=u(C),Fr(s,this,L)}}function cm(s,l){return l.length<2?s:no(s,nn(l,0,-1))}function rw(s,l){for(var u=s.length,p=fr(l.length,u),g=Ir(s);p--;){var v=l[p];s[p]=ti(v,u)?g[v]:i}return s}function Df(s,l){if(!(l==="constructor"&&typeof s[l]=="function")&&l!="__proto__")return s[l]}var um=hm(Dd),aa=yS||function(s,l){return Zt.setTimeout(s,l)},Ef=hm(T1);function fm(s,l,u){var p=l+"";return Ef(s,$1(p,nw(H1(p),u)))}function hm(s){var l=0,u=0;return function(){var p=SS(),g=P-(p-u);if(u=p,g>0){if(++l>=V)return arguments[0]}else l=0;return s.apply(i,arguments)}}function zl(s,l){var u=-1,p=s.length,g=p-1;for(l=l===i?p:l;++u<l;){var v=gf(u,g),C=s[v];s[v]=s[u],s[u]=C}return s.length=l,s}var pm=Z1(function(s){var l=[];return s.charCodeAt(0)===46&&l.push(""),s.replace(Ye,function(u,p,g,v){l.push(g?v.replace(_r,"$1"):p||u)}),l});function En(s){if(typeof s=="string"||jr(s))return s;var l=s+"";return l=="0"&&1/s==-ae?"-0":l}function oo(s){if(s!=null){try{return pl.call(s)}catch{}try{return s+""}catch{}}return""}function nw(s,l){return Qr($,function(u){var p="_."+u[0];l&u[1]&&!ll(s,p)&&s.push(p)}),s.sort()}function dm(s){if(s instanceof et)return s.clone();var l=new tn(s.__wrapped__,s.__chain__);return l.__actions__=Ir(s.__actions__),l.__index__=s.__index__,l.__values__=s.__values__,l}function iw(s,l,u){(u?vr(s,l,u):l===i)?l=1:l=Jt(We(l),0);var p=s==null?0:s.length;if(!p||l<1)return[];for(var g=0,v=0,C=U(bl(p/l));g<p;)C[v++]=nn(s,g,g+=l);return C}function ow(s){for(var l=-1,u=s==null?0:s.length,p=0,g=[];++l<u;){var v=s[l];v&&(g[p++]=v)}return g}function sw(){var s=arguments.length;if(!s)return[];for(var l=U(s-1),u=arguments[0],p=s;p--;)l[p-1]=arguments[p];return xi(ke(u)?Ir(u):[u],or(l,1))}var aw=Xe(function(s,l){return Gt(s)?ta(s,or(l,1,Gt,!0)):[]}),lw=Xe(function(s,l){var u=on(l);return Gt(u)&&(u=i),Gt(s)?ta(s,or(l,1,Gt,!0),Be(u,2)):[]}),cw=Xe(function(s,l){var u=on(l);return Gt(u)&&(u=i),Gt(s)?ta(s,or(l,1,Gt,!0),i,u):[]});function uw(s,l,u){var p=s==null?0:s.length;return p?(l=u||l===i?1:We(l),nn(s,l<0?0:l,p)):[]}function fw(s,l,u){var p=s==null?0:s.length;return p?(l=u||l===i?1:We(l),l=p-l,nn(s,0,l<0?0:l)):[]}function hw(s,l){return s&&s.length?Ml(s,Be(l,3),!0,!0):[]}function pw(s,l){return s&&s.length?Ml(s,Be(l,3),!0):[]}function dw(s,l,u,p){var g=s==null?0:s.length;return g?(u&&typeof u!="number"&&vr(s,l,u)&&(u=0,p=g),s1(s,l,u,p)):[]}function mm(s,l,u){var p=s==null?0:s.length;if(!p)return-1;var g=u==null?0:We(u);return g<0&&(g=Jt(p+g,0)),cl(s,Be(l,3),g)}function gm(s,l,u){var p=s==null?0:s.length;if(!p)return-1;var g=p-1;return u!==i&&(g=We(u),g=u<0?Jt(p+g,0):fr(g,p-1)),cl(s,Be(l,3),g,!0)}function ym(s){var l=s==null?0:s.length;return l?or(s,1):[]}function mw(s){var l=s==null?0:s.length;return l?or(s,ae):[]}function gw(s,l){var u=s==null?0:s.length;return u?(l=l===i?1:We(l),or(s,l)):[]}function yw(s){for(var l=-1,u=s==null?0:s.length,p={};++l<u;){var g=s[l];p[g[0]]=g[1]}return p}function xm(s){return s&&s.length?s[0]:i}function xw(s,l,u){var p=s==null?0:s.length;if(!p)return-1;var g=u==null?0:We(u);return g<0&&(g=Jt(p+g,0)),Mo(s,l,g)}function vw(s){var l=s==null?0:s.length;return l?nn(s,0,-1):[]}var bw=Xe(function(s){var l=It(s,Sf);return l.length&&l[0]===s[0]?ff(l):[]}),Sw=Xe(function(s){var l=on(s),u=It(s,Sf);return l===on(u)?l=i:u.pop(),u.length&&u[0]===s[0]?ff(u,Be(l,2)):[]}),ww=Xe(function(s){var l=on(s),u=It(s,Sf);return l=typeof l=="function"?l:i,l&&u.pop(),u.length&&u[0]===s[0]?ff(u,i,l):[]});function Cw(s,l){return s==null?"":vS.call(s,l)}function on(s){var l=s==null?0:s.length;return l?s[l-1]:i}function Lw(s,l,u){var p=s==null?0:s.length;if(!p)return-1;var g=p;return u!==i&&(g=We(u),g=g<0?Jt(p+g,0):fr(g,p-1)),l===l?nS(s,l,g):cl(s,ed,g,!0)}function Tw(s,l){return s&&s.length?Od(s,We(l)):i}var Nw=Xe(vm);function vm(s,l){return s&&s.length&&l&&l.length?mf(s,l):s}function _w(s,l,u){return s&&s.length&&l&&l.length?mf(s,l,Be(u,2)):s}function Iw(s,l,u){return s&&s.length&&l&&l.length?mf(s,l,i,u):s}var Ow=ei(function(s,l){var u=s==null?0:s.length,p=af(s,l);return Ad(s,It(l,function(g){return ti(g,u)?+g:g}).sort(jd)),p});function Mw(s,l){var u=[];if(!(s&&s.length))return u;var p=-1,g=[],v=s.length;for(l=Be(l,3);++p<v;){var C=s[p];l(C,p,s)&&(u.push(C),g.push(p))}return Ad(s,g),u}function Bf(s){return s==null?s:CS.call(s)}function Pw(s,l,u){var p=s==null?0:s.length;return p?(u&&typeof u!="number"&&vr(s,l,u)?(l=0,u=p):(l=l==null?0:We(l),u=u===i?p:We(u)),nn(s,l,u)):[]}function Aw(s,l){return Ol(s,l)}function Dw(s,l,u){return xf(s,l,Be(u,2))}function Ew(s,l){var u=s==null?0:s.length;if(u){var p=Ol(s,l);if(p<u&&Sn(s[p],l))return p}return-1}function Bw(s,l){return Ol(s,l,!0)}function Gw(s,l,u){return xf(s,l,Be(u,2),!0)}function Rw(s,l){var u=s==null?0:s.length;if(u){var p=Ol(s,l,!0)-1;if(Sn(s[p],l))return p}return-1}function zw(s){return s&&s.length?Ed(s):[]}function Fw(s,l){return s&&s.length?Ed(s,Be(l,2)):[]}function Vw(s){var l=s==null?0:s.length;return l?nn(s,1,l):[]}function Uw(s,l,u){return s&&s.length?(l=u||l===i?1:We(l),nn(s,0,l<0?0:l)):[]}function jw(s,l,u){var p=s==null?0:s.length;return p?(l=u||l===i?1:We(l),l=p-l,nn(s,l<0?0:l,p)):[]}function kw(s,l){return s&&s.length?Ml(s,Be(l,3),!1,!0):[]}function Hw(s,l){return s&&s.length?Ml(s,Be(l,3)):[]}var Ww=Xe(function(s){return Ci(or(s,1,Gt,!0))}),qw=Xe(function(s){var l=on(s);return Gt(l)&&(l=i),Ci(or(s,1,Gt,!0),Be(l,2))}),$w=Xe(function(s){var l=on(s);return l=typeof l=="function"?l:i,Ci(or(s,1,Gt,!0),i,l)});function Jw(s){return s&&s.length?Ci(s):[]}function Kw(s,l){return s&&s.length?Ci(s,Be(l,2)):[]}function Yw(s,l){return l=typeof l=="function"?l:i,s&&s.length?Ci(s,i,l):[]}function Gf(s){if(!(s&&s.length))return[];var l=0;return s=yi(s,function(u){if(Gt(u))return l=Jt(u.length,l),!0}),Zu(l,function(u){return It(s,Ku(u))})}function bm(s,l){if(!(s&&s.length))return[];var u=Gf(s);return l==null?u:It(u,function(p){return Fr(l,i,p)})}var Xw=Xe(function(s,l){return Gt(s)?ta(s,l):[]}),Zw=Xe(function(s){return bf(yi(s,Gt))}),Qw=Xe(function(s){var l=on(s);return Gt(l)&&(l=i),bf(yi(s,Gt),Be(l,2))}),eC=Xe(function(s){var l=on(s);return l=typeof l=="function"?l:i,bf(yi(s,Gt),i,l)}),tC=Xe(Gf);function rC(s,l){return zd(s||[],l||[],ea)}function nC(s,l){return zd(s||[],l||[],ia)}var iC=Xe(function(s){var l=s.length,u=l>1?s[l-1]:i;return u=typeof u=="function"?(s.pop(),u):i,bm(s,u)});function Sm(s){var l=y(s);return l.__chain__=!0,l}function oC(s,l){return l(s),s}function Fl(s,l){return l(s)}var sC=ei(function(s){var l=s.length,u=l?s[0]:0,p=this.__wrapped__,g=function(v){return af(v,s)};return l>1||this.__actions__.length||!(p instanceof et)||!ti(u)?this.thru(g):(p=p.slice(u,+u+(l?1:0)),p.__actions__.push({func:Fl,args:[g],thisArg:i}),new tn(p,this.__chain__).thru(function(v){return l&&!v.length&&v.push(i),v}))});function aC(){return Sm(this)}function lC(){return new tn(this.value(),this.__chain__)}function cC(){this.__values__===i&&(this.__values__=Bm(this.value()));var s=this.__index__>=this.__values__.length,l=s?i:this.__values__[this.__index__++];return{done:s,value:l}}function uC(){return this}function fC(s){for(var l,u=this;u instanceof Ll;){var p=dm(u);p.__index__=0,p.__values__=i,l?g.__wrapped__=p:l=p;var g=p;u=u.__wrapped__}return g.__wrapped__=s,l}function hC(){var s=this.__wrapped__;if(s instanceof et){var l=s;return this.__actions__.length&&(l=new et(this)),l=l.reverse(),l.__actions__.push({func:Fl,args:[Bf],thisArg:i}),new tn(l,this.__chain__)}return this.thru(Bf)}function pC(){return Rd(this.__wrapped__,this.__actions__)}var dC=Pl(function(s,l,u){ht.call(s,u)?++s[u]:Zn(s,u,1)});function mC(s,l,u){var p=ke(s)?Zp:o1;return u&&vr(s,l,u)&&(l=i),p(s,Be(l,3))}function gC(s,l){var u=ke(s)?yi:bd;return u(s,Be(l,3))}var yC=Jd(mm),xC=Jd(gm);function vC(s,l){return or(Vl(s,l),1)}function bC(s,l){return or(Vl(s,l),ae)}function SC(s,l,u){return u=u===i?1:We(u),or(Vl(s,l),u)}function wm(s,l){var u=ke(s)?Qr:wi;return u(s,Be(l,3))}function Cm(s,l){var u=ke(s)?Vb:vd;return u(s,Be(l,3))}var wC=Pl(function(s,l,u){ht.call(s,u)?s[u].push(l):Zn(s,u,[l])});function CC(s,l,u,p){s=Or(s)?s:Uo(s),u=u&&!p?We(u):0;var g=s.length;return u<0&&(u=Jt(g+u,0)),Wl(s)?u<=g&&s.indexOf(l,u)>-1:!!g&&Mo(s,l,u)>-1}var LC=Xe(function(s,l,u){var p=-1,g=typeof l=="function",v=Or(s)?U(s.length):[];return wi(s,function(C){v[++p]=g?Fr(l,C,u):ra(C,l,u)}),v}),TC=Pl(function(s,l,u){Zn(s,u,l)});function Vl(s,l){var u=ke(s)?It:Nd;return u(s,Be(l,3))}function NC(s,l,u,p){return s==null?[]:(ke(l)||(l=l==null?[]:[l]),u=p?i:u,ke(u)||(u=u==null?[]:[u]),Md(s,l,u))}var _C=Pl(function(s,l,u){s[u?0:1].push(l)},function(){return[[],[]]});function IC(s,l,u){var p=ke(s)?$u:rd,g=arguments.length<3;return p(s,Be(l,4),u,g,wi)}function OC(s,l,u){var p=ke(s)?Ub:rd,g=arguments.length<3;return p(s,Be(l,4),u,g,vd)}function MC(s,l){var u=ke(s)?yi:bd;return u(s,kl(Be(l,3)))}function PC(s){var l=ke(s)?md:C1;return l(s)}function AC(s,l,u){(u?vr(s,l,u):l===i)?l=1:l=We(l);var p=ke(s)?e1:L1;return p(s,l)}function DC(s){var l=ke(s)?t1:N1;return l(s)}function EC(s){if(s==null)return 0;if(Or(s))return Wl(s)?Ao(s):s.length;var l=hr(s);return l==ee||l==be?s.size:pf(s).length}function BC(s,l,u){var p=ke(s)?Ju:_1;return u&&vr(s,l,u)&&(l=i),p(s,Be(l,3))}var GC=Xe(function(s,l){if(s==null)return[];var u=l.length;return u>1&&vr(s,l[0],l[1])?l=[]:u>2&&vr(l[0],l[1],l[2])&&(l=[l[0]]),Md(s,or(l,1),[])}),Ul=gS||function(){return Zt.Date.now()};function RC(s,l){if(typeof l!="function")throw new en(n);return s=We(s),function(){if(--s<1)return l.apply(this,arguments)}}function Lm(s,l,u){return l=u?i:l,l=s&&l==null?s.length:l,Qn(s,k,i,i,i,i,l)}function Tm(s,l){var u;if(typeof l!="function")throw new en(n);return s=We(s),function(){return--s>0&&(u=l.apply(this,arguments)),s<=1&&(l=i),u}}var Rf=Xe(function(s,l,u){var p=S;if(u.length){var g=vi(u,Fo(Rf));p|=M}return Qn(s,p,l,u,g)}),Nm=Xe(function(s,l,u){var p=S|w;if(u.length){var g=vi(u,Fo(Nm));p|=M}return Qn(l,p,s,u,g)});function _m(s,l,u){l=u?i:l;var p=Qn(s,O,i,i,i,i,i,l);return p.placeholder=_m.placeholder,p}function Im(s,l,u){l=u?i:l;var p=Qn(s,T,i,i,i,i,i,l);return p.placeholder=Im.placeholder,p}function Om(s,l,u){var p,g,v,C,L,_,Z=0,Q=!1,oe=!1,ge=!0;if(typeof s!="function")throw new en(n);l=sn(l)||0,Pt(u)&&(Q=!!u.leading,oe="maxWait"in u,v=oe?Jt(sn(u.maxWait)||0,l):v,ge="trailing"in u?!!u.trailing:ge);function Ne(Rt){var wn=p,ii=g;return p=g=i,Z=Rt,C=s.apply(ii,wn),C}function ze(Rt){return Z=Rt,L=aa(Ze,l),Q?Ne(Rt):C}function Je(Rt){var wn=Rt-_,ii=Rt-Z,Jm=l-wn;return oe?fr(Jm,v-ii):Jm}function Ge(Rt){var wn=Rt-_,ii=Rt-Z;return _===i||wn>=l||wn<0||oe&&ii>=v}function Ze(){var Rt=Ul();if(Ge(Rt))return tt(Rt);L=aa(Ze,Je(Rt))}function tt(Rt){return L=i,ge&&p?Ne(Rt):(p=g=i,C)}function kr(){L!==i&&Fd(L),Z=0,p=_=g=L=i}function br(){return L===i?C:tt(Ul())}function Hr(){var Rt=Ul(),wn=Ge(Rt);if(p=arguments,g=this,_=Rt,wn){if(L===i)return ze(_);if(oe)return Fd(L),L=aa(Ze,l),Ne(_)}return L===i&&(L=aa(Ze,l)),C}return Hr.cancel=kr,Hr.flush=br,Hr}var zC=Xe(function(s,l){return xd(s,1,l)}),FC=Xe(function(s,l,u){return xd(s,sn(l)||0,u)});function VC(s){return Qn(s,te)}function jl(s,l){if(typeof s!="function"||l!=null&&typeof l!="function")throw new en(n);var u=function(){var p=arguments,g=l?l.apply(this,p):p[0],v=u.cache;if(v.has(g))return v.get(g);var C=s.apply(this,p);return u.cache=v.set(g,C)||v,C};return u.cache=new(jl.Cache||Xn),u}jl.Cache=Xn;function kl(s){if(typeof s!="function")throw new en(n);return function(){var l=arguments;switch(l.length){case 0:return!s.call(this);case 1:return!s.call(this,l[0]);case 2:return!s.call(this,l[0],l[1]);case 3:return!s.call(this,l[0],l[1],l[2])}return!s.apply(this,l)}}function UC(s){return Tm(2,s)}var jC=I1(function(s,l){l=l.length==1&&ke(l[0])?It(l[0],Vr(Be())):It(or(l,1),Vr(Be()));var u=l.length;return Xe(function(p){for(var g=-1,v=fr(p.length,u);++g<v;)p[g]=l[g].call(this,p[g]);return Fr(s,this,p)})}),zf=Xe(function(s,l){var u=vi(l,Fo(zf));return Qn(s,M,i,l,u)}),Mm=Xe(function(s,l){var u=vi(l,Fo(Mm));return Qn(s,F,i,l,u)}),kC=ei(function(s,l){return Qn(s,N,i,i,i,l)});function HC(s,l){if(typeof s!="function")throw new en(n);return l=l===i?l:We(l),Xe(s,l)}function WC(s,l){if(typeof s!="function")throw new en(n);return l=l==null?0:Jt(We(l),0),Xe(function(u){var p=u[l],g=Ti(u,0,l);return p&&xi(g,p),Fr(s,this,g)})}function qC(s,l,u){var p=!0,g=!0;if(typeof s!="function")throw new en(n);return Pt(u)&&(p="leading"in u?!!u.leading:p,g="trailing"in u?!!u.trailing:g),Om(s,l,{leading:p,maxWait:l,trailing:g})}function $C(s){return Lm(s,1)}function JC(s,l){return zf(wf(l),s)}function KC(){if(!arguments.length)return[];var s=arguments[0];return ke(s)?s:[s]}function YC(s){return rn(s,d)}function XC(s,l){return l=typeof l=="function"?l:i,rn(s,d,l)}function ZC(s){return rn(s,f|d)}function QC(s,l){return l=typeof l=="function"?l:i,rn(s,f|d,l)}function eL(s,l){return l==null||yd(s,l,Qt(l))}function Sn(s,l){return s===l||s!==s&&l!==l}var tL=Bl(uf),rL=Bl(function(s,l){return s>=l}),so=Cd(function(){return arguments}())?Cd:function(s){return Dt(s)&&ht.call(s,"callee")&&!cd.call(s,"callee")},ke=U.isArray,nL=qp?Vr(qp):f1;function Or(s){return s!=null&&Hl(s.length)&&!ri(s)}function Gt(s){return Dt(s)&&Or(s)}function iL(s){return s===!0||s===!1||Dt(s)&&xr(s)==K}var Ni=xS||Kf,oL=$p?Vr($p):h1;function sL(s){return Dt(s)&&s.nodeType===1&&!la(s)}function aL(s){if(s==null)return!0;if(Or(s)&&(ke(s)||typeof s=="string"||typeof s.splice=="function"||Ni(s)||Vo(s)||so(s)))return!s.length;var l=hr(s);if(l==ee||l==be)return!s.size;if(sa(s))return!pf(s).length;for(var u in s)if(ht.call(s,u))return!1;return!0}function lL(s,l){return na(s,l)}function cL(s,l,u){u=typeof u=="function"?u:i;var p=u?u(s,l):i;return p===i?na(s,l,i,u):!!p}function Ff(s){if(!Dt(s))return!1;var l=xr(s);return l==ie||l==me||typeof s.message=="string"&&typeof s.name=="string"&&!la(s)}function uL(s){return typeof s=="number"&&fd(s)}function ri(s){if(!Pt(s))return!1;var l=xr(s);return l==re||l==q||l==H||l==pe}function Pm(s){return typeof s=="number"&&s==We(s)}function Hl(s){return typeof s=="number"&&s>-1&&s%1==0&&s<=ne}function Pt(s){var l=typeof s;return s!=null&&(l=="object"||l=="function")}function Dt(s){return s!=null&&typeof s=="object"}var Am=Jp?Vr(Jp):d1;function fL(s,l){return s===l||hf(s,l,Of(l))}function hL(s,l,u){return u=typeof u=="function"?u:i,hf(s,l,Of(l),u)}function pL(s){return Dm(s)&&s!=+s}function dL(s){if(X1(s))throw new je(r);return Ld(s)}function mL(s){return s===null}function gL(s){return s==null}function Dm(s){return typeof s=="number"||Dt(s)&&xr(s)==Te}function la(s){if(!Dt(s)||xr(s)!=le)return!1;var l=yl(s);if(l===null)return!0;var u=ht.call(l,"constructor")&&l.constructor;return typeof u=="function"&&u instanceof u&&pl.call(u)==hS}var Vf=Kp?Vr(Kp):m1;function yL(s){return Pm(s)&&s>=-ne&&s<=ne}var Em=Yp?Vr(Yp):g1;function Wl(s){return typeof s=="string"||!ke(s)&&Dt(s)&&xr(s)==Se}function jr(s){return typeof s=="symbol"||Dt(s)&&xr(s)==Ie}var Vo=Xp?Vr(Xp):y1;function xL(s){return s===i}function vL(s){return Dt(s)&&hr(s)==Ve}function bL(s){return Dt(s)&&xr(s)==Lt}var SL=Bl(df),wL=Bl(function(s,l){return s<=l});function Bm(s){if(!s)return[];if(Or(s))return Wl(s)?vn(s):Ir(s);if(Ks&&s[Ks])return eS(s[Ks]());var l=hr(s),u=l==ee?ef:l==be?ul:Uo;return u(s)}function ni(s){if(!s)return s===0?s:0;if(s=sn(s),s===ae||s===-ae){var l=s<0?-1:1;return l*xe}return s===s?s:0}function We(s){var l=ni(s),u=l%1;return l===l?u?l-u:l:0}function Gm(s){return s?ro(We(s),0,Le):0}function sn(s){if(typeof s=="number")return s;if(jr(s))return _e;if(Pt(s)){var l=typeof s.valueOf=="function"?s.valueOf():s;s=Pt(l)?l+"":l}if(typeof s!="string")return s===0?s:+s;s=s.replace(Qe,"");var u=il.test(s);return u||ob.test(s)?Rb(s.slice(2),u?2:8):Pn.test(s)?_e:+s}function Rm(s){return Dn(s,Mr(s))}function CL(s){return s?ro(We(s),-ne,ne):s===0?s:0}function lt(s){return s==null?"":Ur(s)}var LL=Ro(function(s,l){if(sa(l)||Or(l)){Dn(l,Qt(l),s);return}for(var u in l)ht.call(l,u)&&ea(s,u,l[u])}),zm=Ro(function(s,l){Dn(l,Mr(l),s)}),ql=Ro(function(s,l,u,p){Dn(l,Mr(l),s,p)}),TL=Ro(function(s,l,u,p){Dn(l,Qt(l),s,p)}),NL=ei(af);function _L(s,l){var u=Go(s);return l==null?u:gd(u,l)}var IL=Xe(function(s,l){s=xt(s);var u=-1,p=l.length,g=p>2?l[2]:i;for(g&&vr(l[0],l[1],g)&&(p=1);++u<p;)for(var v=l[u],C=Mr(v),L=-1,_=C.length;++L<_;){var Z=C[L],Q=s[Z];(Q===i||Sn(Q,Do[Z])&&!ht.call(s,Z))&&(s[Z]=v[Z])}return s}),OL=Xe(function(s){return s.push(i,tm),Fr(Fm,i,s)});function ML(s,l){return Qp(s,Be(l,3),An)}function PL(s,l){return Qp(s,Be(l,3),cf)}function AL(s,l){return s==null?s:lf(s,Be(l,3),Mr)}function DL(s,l){return s==null?s:Sd(s,Be(l,3),Mr)}function EL(s,l){return s&&An(s,Be(l,3))}function BL(s,l){return s&&cf(s,Be(l,3))}function GL(s){return s==null?[]:_l(s,Qt(s))}function RL(s){return s==null?[]:_l(s,Mr(s))}function Uf(s,l,u){var p=s==null?i:no(s,l);return p===i?u:p}function zL(s,l){return s!=null&&im(s,l,a1)}function jf(s,l){return s!=null&&im(s,l,l1)}var FL=Yd(function(s,l,u){l!=null&&typeof l.toString!="function"&&(l=dl.call(l)),s[l]=u},Hf(Pr)),VL=Yd(function(s,l,u){l!=null&&typeof l.toString!="function"&&(l=dl.call(l)),ht.call(s,l)?s[l].push(u):s[l]=[u]},Be),UL=Xe(ra);function Qt(s){return Or(s)?dd(s):pf(s)}function Mr(s){return Or(s)?dd(s,!0):x1(s)}function jL(s,l){var u={};return l=Be(l,3),An(s,function(p,g,v){Zn(u,l(p,g,v),p)}),u}function kL(s,l){var u={};return l=Be(l,3),An(s,function(p,g,v){Zn(u,g,l(p,g,v))}),u}var HL=Ro(function(s,l,u){Il(s,l,u)}),Fm=Ro(function(s,l,u,p){Il(s,l,u,p)}),WL=ei(function(s,l){var u={};if(s==null)return u;var p=!1;l=It(l,function(v){return v=Li(v,s),p||(p=v.length>1),v}),Dn(s,_f(s),u),p&&(u=rn(u,f|h|d,F1));for(var g=l.length;g--;)vf(u,l[g]);return u});function qL(s,l){return Vm(s,kl(Be(l)))}var $L=ei(function(s,l){return s==null?{}:b1(s,l)});function Vm(s,l){if(s==null)return{};var u=It(_f(s),function(p){return[p]});return l=Be(l),Pd(s,u,function(p,g){return l(p,g[0])})}function JL(s,l,u){l=Li(l,s);var p=-1,g=l.length;for(g||(g=1,s=i);++p<g;){var v=s==null?i:s[En(l[p])];v===i&&(p=g,v=u),s=ri(v)?v.call(s):v}return s}function KL(s,l,u){return s==null?s:ia(s,l,u)}function YL(s,l,u,p){return p=typeof p=="function"?p:i,s==null?s:ia(s,l,u,p)}var Um=Qd(Qt),jm=Qd(Mr);function XL(s,l,u){var p=ke(s),g=p||Ni(s)||Vo(s);if(l=Be(l,4),u==null){var v=s&&s.constructor;g?u=p?new v:[]:Pt(s)?u=ri(v)?Go(yl(s)):{}:u={}}return(g?Qr:An)(s,function(C,L,_){return l(u,C,L,_)}),u}function ZL(s,l){return s==null?!0:vf(s,l)}function QL(s,l,u){return s==null?s:Gd(s,l,wf(u))}function eT(s,l,u,p){return p=typeof p=="function"?p:i,s==null?s:Gd(s,l,wf(u),p)}function Uo(s){return s==null?[]:Qu(s,Qt(s))}function tT(s){return s==null?[]:Qu(s,Mr(s))}function rT(s,l,u){return u===i&&(u=l,l=i),u!==i&&(u=sn(u),u=u===u?u:0),l!==i&&(l=sn(l),l=l===l?l:0),ro(sn(s),l,u)}function nT(s,l,u){return l=ni(l),u===i?(u=l,l=0):u=ni(u),s=sn(s),c1(s,l,u)}function iT(s,l,u){if(u&&typeof u!="boolean"&&vr(s,l,u)&&(l=u=i),u===i&&(typeof l=="boolean"?(u=l,l=i):typeof s=="boolean"&&(u=s,s=i)),s===i&&l===i?(s=0,l=1):(s=ni(s),l===i?(l=s,s=0):l=ni(l)),s>l){var p=s;s=l,l=p}if(u||s%1||l%1){var g=hd();return fr(s+g*(l-s+Gb("1e-"+((g+"").length-1))),l)}return gf(s,l)}var oT=zo(function(s,l,u){return l=l.toLowerCase(),s+(u?km(l):l)});function km(s){return kf(lt(s).toLowerCase())}function Hm(s){return s=lt(s),s&&s.replace(ab,Kb).replace(Nb,"")}function sT(s,l,u){s=lt(s),l=Ur(l);var p=s.length;u=u===i?p:ro(We(u),0,p);var g=u;return u-=l.length,u>=0&&s.slice(u,g)==l}function aT(s){return s=lt(s),s&&Nr.test(s)?s.replace(Yi,Yb):s}function lT(s){return s=lt(s),s&&$e.test(s)?s.replace(He,"\\$&"):s}var cT=zo(function(s,l,u){return s+(u?"-":"")+l.toLowerCase()}),uT=zo(function(s,l,u){return s+(u?" ":"")+l.toLowerCase()}),fT=$d("toLowerCase");function hT(s,l,u){s=lt(s),l=We(l);var p=l?Ao(s):0;if(!l||p>=l)return s;var g=(l-p)/2;return El(Sl(g),u)+s+El(bl(g),u)}function pT(s,l,u){s=lt(s),l=We(l);var p=l?Ao(s):0;return l&&p<l?s+El(l-p,u):s}function dT(s,l,u){s=lt(s),l=We(l);var p=l?Ao(s):0;return l&&p<l?El(l-p,u)+s:s}function mT(s,l,u){return u||l==null?l=0:l&&(l=+l),wS(lt(s).replace(ot,""),l||0)}function gT(s,l,u){return(u?vr(s,l,u):l===i)?l=1:l=We(l),yf(lt(s),l)}function yT(){var s=arguments,l=lt(s[0]);return s.length<3?l:l.replace(s[1],s[2])}var xT=zo(function(s,l,u){return s+(u?"_":"")+l.toLowerCase()});function vT(s,l,u){return u&&typeof u!="number"&&vr(s,l,u)&&(l=u=i),u=u===i?Le:u>>>0,u?(s=lt(s),s&&(typeof l=="string"||l!=null&&!Vf(l))&&(l=Ur(l),!l&&Po(s))?Ti(vn(s),0,u):s.split(l,u)):[]}var bT=zo(function(s,l,u){return s+(u?" ":"")+kf(l)});function ST(s,l,u){return s=lt(s),u=u==null?0:ro(We(u),0,s.length),l=Ur(l),s.slice(u,u+l.length)==l}function wT(s,l,u){var p=y.templateSettings;u&&vr(s,l,u)&&(l=i),s=lt(s),l=ql({},l,p,em);var g=ql({},l.imports,p.imports,em),v=Qt(g),C=Qu(g,v),L,_,Z=0,Q=l.interpolate||ol,oe="__p += '",ge=tf((l.escape||ol).source+"|"+Q.source+"|"+(Q===Kn?yn:ol).source+"|"+(l.evaluate||ol).source+"|$","g"),Ne="//# sourceURL="+(ht.call(l,"sourceURL")?(l.sourceURL+"").replace(/\s/g," "):"lodash.templateSources["+ ++Pb+"]")+`
|
|
4
|
+
`;s.replace(ge,function(Ge,Ze,tt,kr,br,Hr){return tt||(tt=kr),oe+=s.slice(Z,Hr).replace(lb,Xb),Ze&&(L=!0,oe+=`' +
|
|
5
|
+
__e(`+Ze+`) +
|
|
6
|
+
'`),br&&(_=!0,oe+=`';
|
|
7
|
+
`+br+`;
|
|
8
|
+
__p += '`),tt&&(oe+=`' +
|
|
9
|
+
((__t = (`+tt+`)) == null ? '' : __t) +
|
|
10
|
+
'`),Z=Hr+Ge.length,Ge}),oe+=`';
|
|
11
|
+
`;var ze=ht.call(l,"variable")&&l.variable;ze||(oe=`with (obj) {
|
|
12
|
+
`+oe+`
|
|
13
13
|
}
|
|
14
|
-
`),
|
|
15
|
-
`+(
|
|
16
|
-
`)+"var __t, __p = ''"+(L?", __e = _.escape":"")+(
|
|
14
|
+
`),oe=(_?oe.replace(Lo,""):oe).replace(To,"$1").replace(No,"$1;"),oe="function("+(ze||"obj")+`) {
|
|
15
|
+
`+(ze?"":`obj || (obj = {});
|
|
16
|
+
`)+"var __t, __p = ''"+(L?", __e = _.escape":"")+(_?`, __j = Array.prototype.join;
|
|
17
17
|
function print() { __p += __j.call(arguments, '') }
|
|
18
18
|
`:`;
|
|
19
|
-
`)+
|
|
20
|
-
}`;var Je=rg(function(){return lt(v,Le+"return "+ie).apply(i,N)});if(Je.source=ie,zf(Je))throw Je;return Je}function VL(o){return ut(o).toLowerCase()}function UL(o){return ut(o).toUpperCase()}function kL(o,a,u){if(o=ut(o),o&&(u||a===i))return o.replace(tt,"");if(!o||!(a=qr(a)))return o;var p=_n(o),m=_n(a),v=pd(p,m),N=dd(p,m)+1;return Pi(p,v,N).join("")}function HL(o,a,u){if(o=ut(o),o&&(u||a===i))return o.replace(mt,"");if(!o||!(a=qr(a)))return o;var p=_n(o),m=dd(p,_n(a))+1;return Pi(p,0,m).join("")}function WL(o,a,u){if(o=ut(o),o&&(u||a===i))return o.replace(at,"");if(!o||!(a=qr(a)))return o;var p=_n(o),m=pd(p,_n(a));return Pi(p,m).join("")}function qL(o,a){var u=E,p=b;if(Dt(a)){var m="separator"in a?a.separator:m;u="length"in a?We(a.length):u,p="omission"in a?qr(a.omission):p}o=ut(o);var v=o.length;if(Eo(o)){var N=_n(o);v=N.length}if(u>=v)return o;var L=u-Ro(p);if(L<1)return p;var I=N?Pi(N,0,L).join(""):o.slice(0,L);if(m===i)return I+p;if(N&&(L+=I.length-L),Ff(m)){if(o.slice(L).search(m)){var Q,te=I;for(m.global||(m=tf(m.source,ut(Ln.exec(m))+"g")),m.lastIndex=0;Q=m.exec(te);)var ie=Q.index;I=I.slice(0,ie===i?L:ie)}}else if(o.indexOf(qr(m),L)!=L){var me=I.lastIndexOf(m);me>-1&&(I=I.slice(0,me))}return I+p}function $L(o){return o=ut(o),o&&Do.test(o)?o.replace(ro,wS):o}var JL=Ho(function(o,a,u){return o+(u?" ":"")+a.toUpperCase()}),kf=nm("toUpperCase");function tg(o,a,u){return o=ut(o),a=u?i:a,a===i?yS(o)?LS(o):lS(o):o.match(a)||[]}var rg=Ze(function(o,a){try{return Hr(o,i,a)}catch(u){return zf(u)?u:new Ue(u)}}),KL=si(function(o,a){return sn(a,function(u){u=Vn(u),ii(o,u,Ef(o[u],o))}),o});function XL(o){var a=o==null?0:o.length,u=De();return o=a?Ot(o,function(p){if(typeof p[1]!="function")throw new an(n);return[u(p[0]),p[1]]}):[],Ze(function(p){for(var m=-1;++m<a;){var v=o[m];if(Hr(v[0],this,p))return Hr(v[1],this,p)}})}function ZL(o){return ww(cn(o,f))}function Hf(o){return function(){return o}}function YL(o,a){return o==null||o!==o?a:o}var QL=om(),e_=om(!0);function Br(o){return o}function Wf(o){return Gd(typeof o=="function"?o:cn(o,f))}function t_(o){return Ed(cn(o,f))}function r_(o,a){return Rd(o,cn(a,f))}var n_=Ze(function(o,a){return function(u){return Ks(u,o,a)}}),i_=Ze(function(o,a){return function(u){return Ks(o,u,a)}});function qf(o,a,u){var p=nr(a),m=bl(a,p);u==null&&!(Dt(a)&&(m.length||!p.length))&&(u=a,a=o,o=this,m=bl(a,nr(a)));var v=!(Dt(u)&&"chain"in u)||!!u.chain,N=li(o);return sn(m,function(L){var I=a[L];o[L]=I,N&&(o.prototype[L]=function(){var Q=this.__chain__;if(v||Q){var te=o(this.__wrapped__),ie=te.__actions__=Or(this.__actions__);return ie.push({func:I,args:arguments,thisArg:o}),te.__chain__=Q,te}return I.apply(o,Li([this.value()],arguments))})}),o}function o_(){return rr._===this&&(rr._=OS),this}function $f(){}function s_(o){return o=We(o),Ze(function(a){return zd(a,o)})}var a_=Cf(Ot),l_=Cf(ld),c_=Cf(Ju);function ng(o){return Of(o)?Ku(Vn(o)):zw(o)}function u_(o){return function(a){return o==null?i:uo(o,a)}}var f_=am(),h_=am(!0);function Jf(){return[]}function Kf(){return!1}function p_(){return{}}function d_(){return""}function m_(){return!0}function g_(o,a){if(o=We(o),o<1||o>re)return[];var u=Me,p=dr(o,Me);a=De(a),o-=Me;for(var m=Yu(p,a);++u<o;)a(u);return m}function y_(o){return ke(o)?Ot(o,Vn):$r(o)?[o]:Or(Nm(ut(o)))}function x_(o){var a=++MS;return ut(o)+a}var v_=_l(function(o,a){return o+a},0),b_=Lf("ceil"),S_=_l(function(o,a){return o/a},1),w_=Lf("floor");function N_(o){return o&&o.length?vl(o,Br,uf):i}function C_(o,a){return o&&o.length?vl(o,De(a,2),uf):i}function L_(o){return fd(o,Br)}function __(o,a){return fd(o,De(a,2))}function T_(o){return o&&o.length?vl(o,Br,df):i}function I_(o,a){return o&&o.length?vl(o,De(a,2),df):i}var M_=_l(function(o,a){return o*a},1),A_=Lf("round"),O_=_l(function(o,a){return o-a},0);function P_(o){return o&&o.length?Zu(o,Br):0}function D_(o,a){return o&&o.length?Zu(o,De(a,2)):0}return y.after=tC,y.ary=Bm,y.assign=UC,y.assignIn=Jm,y.assignInWith=zl,y.assignWith=kC,y.at=HC,y.before=Gm,y.bind=Ef,y.bindAll=KL,y.bindKey=jm,y.castArray=pC,y.chain=Om,y.chunk=w1,y.compact=N1,y.concat=C1,y.cond=XL,y.conforms=ZL,y.constant=Hf,y.countBy=PN,y.create=WC,y.curry=Em,y.curryRight=Rm,y.debounce=zm,y.defaults=qC,y.defaultsDeep=$C,y.defer=rC,y.delay=nC,y.difference=L1,y.differenceBy=_1,y.differenceWith=T1,y.drop=I1,y.dropRight=M1,y.dropRightWhile=A1,y.dropWhile=O1,y.fill=P1,y.filter=BN,y.flatMap=EN,y.flatMapDeep=RN,y.flatMapDepth=zN,y.flatten=Tm,y.flattenDeep=D1,y.flattenDepth=B1,y.flip=iC,y.flow=QL,y.flowRight=e_,y.fromPairs=G1,y.functions=eL,y.functionsIn=tL,y.groupBy=FN,y.initial=E1,y.intersection=R1,y.intersectionBy=z1,y.intersectionWith=F1,y.invert=nL,y.invertBy=iL,y.invokeMap=UN,y.iteratee=Wf,y.keyBy=kN,y.keys=nr,y.keysIn=Dr,y.map=Dl,y.mapKeys=sL,y.mapValues=aL,y.matches=t_,y.matchesProperty=r_,y.memoize=Gl,y.merge=lL,y.mergeWith=Km,y.method=n_,y.methodOf=i_,y.mixin=qf,y.negate=jl,y.nthArg=s_,y.omit=cL,y.omitBy=uL,y.once=oC,y.orderBy=HN,y.over=a_,y.overArgs=sC,y.overEvery=l_,y.overSome=c_,y.partial=Rf,y.partialRight=Fm,y.partition=WN,y.pick=fL,y.pickBy=Xm,y.property=ng,y.propertyOf=u_,y.pull=H1,y.pullAll=Mm,y.pullAllBy=W1,y.pullAllWith=q1,y.pullAt=$1,y.range=f_,y.rangeRight=h_,y.rearg=aC,y.reject=JN,y.remove=J1,y.rest=lC,y.reverse=Gf,y.sampleSize=XN,y.set=pL,y.setWith=dL,y.shuffle=ZN,y.slice=K1,y.sortBy=eC,y.sortedUniq=rN,y.sortedUniqBy=nN,y.split=EL,y.spread=cC,y.tail=iN,y.take=oN,y.takeRight=sN,y.takeRightWhile=aN,y.takeWhile=lN,y.tap=NN,y.throttle=uC,y.thru=Pl,y.toArray=Wm,y.toPairs=Zm,y.toPairsIn=Ym,y.toPath=y_,y.toPlainObject=$m,y.transform=mL,y.unary=fC,y.union=cN,y.unionBy=uN,y.unionWith=fN,y.uniq=hN,y.uniqBy=pN,y.uniqWith=dN,y.unset=gL,y.unzip=jf,y.unzipWith=Am,y.update=yL,y.updateWith=xL,y.values=$o,y.valuesIn=vL,y.without=mN,y.words=tg,y.wrap=hC,y.xor=gN,y.xorBy=yN,y.xorWith=xN,y.zip=vN,y.zipObject=bN,y.zipObjectDeep=SN,y.zipWith=wN,y.entries=Zm,y.entriesIn=Ym,y.extend=Jm,y.extendWith=zl,qf(y,y),y.add=v_,y.attempt=rg,y.camelCase=NL,y.capitalize=Qm,y.ceil=b_,y.clamp=bL,y.clone=dC,y.cloneDeep=gC,y.cloneDeepWith=yC,y.cloneWith=mC,y.conformsTo=xC,y.deburr=eg,y.defaultTo=YL,y.divide=S_,y.endsWith=CL,y.eq=In,y.escape=LL,y.escapeRegExp=_L,y.every=DN,y.find=GN,y.findIndex=Lm,y.findKey=JC,y.findLast=jN,y.findLastIndex=_m,y.findLastKey=KC,y.floor=w_,y.forEach=Pm,y.forEachRight=Dm,y.forIn=XC,y.forInRight=ZC,y.forOwn=YC,y.forOwnRight=QC,y.get=Vf,y.gt=vC,y.gte=bC,y.has=rL,y.hasIn=Uf,y.head=Im,y.identity=Br,y.includes=VN,y.indexOf=j1,y.inRange=SL,y.invoke=oL,y.isArguments=po,y.isArray=ke,y.isArrayBuffer=SC,y.isArrayLike=Pr,y.isArrayLikeObject=zt,y.isBoolean=wC,y.isBuffer=Di,y.isDate=NC,y.isElement=CC,y.isEmpty=LC,y.isEqual=_C,y.isEqualWith=TC,y.isError=zf,y.isFinite=IC,y.isFunction=li,y.isInteger=Vm,y.isLength=El,y.isMap=Um,y.isMatch=MC,y.isMatchWith=AC,y.isNaN=OC,y.isNative=PC,y.isNil=BC,y.isNull=DC,y.isNumber=km,y.isObject=Dt,y.isObjectLike=Gt,y.isPlainObject=ta,y.isRegExp=Ff,y.isSafeInteger=GC,y.isSet=Hm,y.isString=Rl,y.isSymbol=$r,y.isTypedArray=qo,y.isUndefined=jC,y.isWeakMap=EC,y.isWeakSet=RC,y.join=V1,y.kebabCase=TL,y.last=fn,y.lastIndexOf=U1,y.lowerCase=IL,y.lowerFirst=ML,y.lt=zC,y.lte=FC,y.max=N_,y.maxBy=C_,y.mean=L_,y.meanBy=__,y.min=T_,y.minBy=I_,y.stubArray=Jf,y.stubFalse=Kf,y.stubObject=p_,y.stubString=d_,y.stubTrue=m_,y.multiply=M_,y.nth=k1,y.noConflict=o_,y.noop=$f,y.now=Bl,y.pad=AL,y.padEnd=OL,y.padStart=PL,y.parseInt=DL,y.random=wL,y.reduce=qN,y.reduceRight=$N,y.repeat=BL,y.replace=GL,y.result=hL,y.round=A_,y.runInContext=O,y.sample=KN,y.size=YN,y.snakeCase=jL,y.some=QN,y.sortedIndex=X1,y.sortedIndexBy=Z1,y.sortedIndexOf=Y1,y.sortedLastIndex=Q1,y.sortedLastIndexBy=eN,y.sortedLastIndexOf=tN,y.startCase=RL,y.startsWith=zL,y.subtract=O_,y.sum=P_,y.sumBy=D_,y.template=FL,y.times=g_,y.toFinite=ci,y.toInteger=We,y.toLength=qm,y.toLower=VL,y.toNumber=hn,y.toSafeInteger=VC,y.toString=ut,y.toUpper=UL,y.trim=kL,y.trimEnd=HL,y.trimStart=WL,y.truncate=qL,y.unescape=$L,y.uniqueId=x_,y.upperCase=JL,y.upperFirst=kf,y.each=Pm,y.eachRight=Dm,y.first=Im,qf(y,function(){var o={};return zn(y,function(a,u){pt.call(y.prototype,u)||(o[u]=a)}),o}(),{chain:!1}),y.VERSION=e,sn(["bind","bindKey","curry","curryRight","partial","partialRight"],function(o){y[o].placeholder=y}),sn(["drop","take"],function(o,a){rt.prototype[o]=function(u){u=u===i?1:Xt(We(u),0);var p=this.__filtered__&&!a?new rt(this):this.clone();return p.__filtered__?p.__takeCount__=dr(u,p.__takeCount__):p.__views__.push({size:dr(u,Me),type:o+(p.__dir__<0?"Right":"")}),p},rt.prototype[o+"Right"]=function(u){return this.reverse()[o](u).reverse()}}),sn(["filter","map","takeWhile"],function(o,a){var u=a+1,p=u==z||u==$;rt.prototype[o]=function(m){var v=this.clone();return v.__iteratees__.push({iteratee:De(m,3),type:u}),v.__filtered__=v.__filtered__||p,v}}),sn(["head","last"],function(o,a){var u="take"+(a?"Right":"");rt.prototype[o]=function(){return this[u](1).value()[0]}}),sn(["initial","tail"],function(o,a){var u="drop"+(a?"":"Right");rt.prototype[o]=function(){return this.__filtered__?new rt(this):this[u](1)}}),rt.prototype.compact=function(){return this.filter(Br)},rt.prototype.find=function(o){return this.filter(o).head()},rt.prototype.findLast=function(o){return this.reverse().find(o)},rt.prototype.invokeMap=Ze(function(o,a){return typeof o=="function"?new rt(this):this.map(function(u){return Ks(u,o,a)})}),rt.prototype.reject=function(o){return this.filter(jl(De(o)))},rt.prototype.slice=function(o,a){o=We(o);var u=this;return u.__filtered__&&(o>0||a<0)?new rt(u):(o<0?u=u.takeRight(-o):o&&(u=u.drop(o)),a!==i&&(a=We(a),u=a<0?u.dropRight(-a):u.take(a-o)),u)},rt.prototype.takeRightWhile=function(o){return this.reverse().takeWhile(o).reverse()},rt.prototype.toArray=function(){return this.take(Me)},zn(rt.prototype,function(o,a){var u=/^(?:filter|find|map|reject)|While$/.test(a),p=/^(?:head|last)$/.test(a),m=y[p?"take"+(a=="last"?"Right":""):a],v=p||/^find/.test(a);!m||(y.prototype[a]=function(){var N=this.__wrapped__,L=p?[1]:arguments,I=N instanceof rt,Q=L[0],te=I||ke(N),ie=function(et){var nt=m.apply(y,Li([et],L));return p&&me?nt[0]:nt};te&&u&&typeof Q=="function"&&Q.length!=1&&(I=te=!1);var me=this.__chain__,Le=!!this.__actions__.length,Re=v&&!me,Je=I&&!Le;if(!v&&te){N=Je?N:new rt(this);var je=o.apply(N,L);return je.__actions__.push({func:Pl,args:[ie],thisArg:i}),new ln(je,me)}return Re&&Je?o.apply(this,L):(je=this.thru(ie),Re?p?je.value()[0]:je.value():je)})}),sn(["pop","push","shift","sort","splice","unshift"],function(o){var a=il[o],u=/^(?:push|sort|unshift)$/.test(o)?"tap":"thru",p=/^(?:pop|shift)$/.test(o);y.prototype[o]=function(){var m=arguments;if(p&&!this.__chain__){var v=this.value();return a.apply(ke(v)?v:[],m)}return this[u](function(N){return a.apply(ke(N)?N:[],m)})}}),zn(rt.prototype,function(o,a){var u=y[a];if(u){var p=u.name+"";pt.call(Vo,p)||(Vo[p]=[]),Vo[p].push({name:a,func:u})}}),Vo[Ll(i,S).name]=[{name:"wrapper",func:i}],rt.prototype.clone=$S,rt.prototype.reverse=JS,rt.prototype.value=KS,y.prototype.at=CN,y.prototype.chain=LN,y.prototype.commit=_N,y.prototype.next=TN,y.prototype.plant=MN,y.prototype.reverse=AN,y.prototype.toJSON=y.prototype.valueOf=y.prototype.value=ON,y.prototype.first=y.prototype.head,Us&&(y.prototype[Us]=IN),y},Ti=_S();typeof define=="function"&&typeof define.amd=="object"&&define.amd?(rr._=Ti,define(function(){return Ti})):oo?((oo.exports=Ti)._=Ti,Hu._=Ti):rr._=Ti}).call(Fs)});import{FileLoader as rB,Loader as nB}from"three";function fg(i){return Array.isArray(i)?i:[i]}var k_=typeof global=="object"&&global&&global.Object===Object&&global,Fl=k_;var H_=typeof self=="object"&&self&&self.Object===Object&&self,W_=Fl||H_||Function("return this")(),qt=W_;var q_=qt.Symbol,Nr=q_;var hg=Object.prototype,$_=hg.hasOwnProperty,J_=hg.toString,na=Nr?Nr.toStringTag:void 0;function K_(i){var e=$_.call(i,na),t=i[na];try{i[na]=void 0;var r=!0}catch(s){}var n=J_.call(i);return r&&(e?i[na]=t:delete i[na]),n}var pg=K_;var X_=Object.prototype,Z_=X_.toString;function Y_(i){return Z_.call(i)}var dg=Y_;var Q_="[object Null]",eT="[object Undefined]",mg=Nr?Nr.toStringTag:void 0;function tT(i){return i==null?i===void 0?eT:Q_:mg&&mg in Object(i)?pg(i):dg(i)}var Xr=tT;function rT(i){return i!=null&&typeof i=="object"}var gr=rT;var nT="[object Symbol]";function iT(i){return typeof i=="symbol"||gr(i)&&Xr(i)==nT}var Jo=iT;function oT(i,e){for(var t=-1,r=i==null?0:i.length,n=Array(r);++t<r;)n[t]=e(i[t],t,i);return n}var Vl=oT;var sT=Array.isArray,cr=sT;var aT=1/0,gg=Nr?Nr.prototype:void 0,yg=gg?gg.toString:void 0;function xg(i){if(typeof i=="string")return i;if(cr(i))return Vl(i,xg)+"";if(Jo(i))return yg?yg.call(i):"";var e=i+"";return e=="0"&&1/i==-aT?"-0":e}var vg=xg;function lT(i){var e=typeof i;return i!=null&&(e=="object"||e=="function")}var yr=lT;function cT(i){return i}var Ul=cT;var uT="[object AsyncFunction]",fT="[object Function]",hT="[object GeneratorFunction]",pT="[object Proxy]";function dT(i){if(!yr(i))return!1;var e=Xr(i);return e==fT||e==hT||e==uT||e==pT}var Ko=dT;var mT=qt["__core-js_shared__"],kl=mT;var bg=function(){var i=/[^.]+$/.exec(kl&&kl.keys&&kl.keys.IE_PROTO||"");return i?"Symbol(src)_1."+i:""}();function gT(i){return!!bg&&bg in i}var Sg=gT;var yT=Function.prototype,xT=yT.toString;function vT(i){if(i!=null){try{return xT.call(i)}catch(e){}try{return i+""}catch(e){}}return""}var fi=vT;var bT=/[\\^$.*+?()[\]{}|]/g,ST=/^\[object .+?Constructor\]$/,wT=Function.prototype,NT=Object.prototype,CT=wT.toString,LT=NT.hasOwnProperty,_T=RegExp("^"+CT.call(LT).replace(bT,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function TT(i){if(!yr(i)||Sg(i))return!1;var e=Ko(i)?_T:ST;return e.test(fi(i))}var wg=TT;function IT(i,e){return i==null?void 0:i[e]}var Ng=IT;function MT(i,e){var t=Ng(i,e);return wg(t)?t:void 0}var Gr=MT;var AT=Gr(qt,"WeakMap"),Hl=AT;var Cg=Object.create,OT=function(){function i(){}return function(e){if(!yr(e))return{};if(Cg)return Cg(e);i.prototype=e;var t=new i;return i.prototype=void 0,t}}(),Lg=OT;function PT(i,e,t){switch(t.length){case 0:return i.call(e);case 1:return i.call(e,t[0]);case 2:return i.call(e,t[0],t[1]);case 3:return i.call(e,t[0],t[1],t[2])}return i.apply(e,t)}var _g=PT;function DT(i,e){var t=-1,r=i.length;for(e||(e=Array(r));++t<r;)e[t]=i[t];return e}var Wl=DT;var BT=800,GT=16,jT=Date.now;function ET(i){var e=0,t=0;return function(){var r=jT(),n=GT-(r-t);if(t=r,n>0){if(++e>=BT)return arguments[0]}else e=0;return i.apply(void 0,arguments)}}var Tg=ET;function RT(i){return function(){return i}}var Ig=RT;var zT=function(){try{var i=Gr(Object,"defineProperty");return i({},"",{}),i}catch(e){}}(),Xo=zT;var FT=Xo?function(i,e){return Xo(i,"toString",{configurable:!0,enumerable:!1,value:Ig(e),writable:!0})}:Ul,Mg=FT;var VT=Tg(Mg),ql=VT;function UT(i,e){for(var t=-1,r=i==null?0:i.length;++t<r&&e(i[t],t,i)!==!1;);return i}var Ag=UT;var kT=9007199254740991,HT=/^(?:0|[1-9]\d*)$/;function WT(i,e){var t=typeof i;return e=e==null?kT:e,!!e&&(t=="number"||t!="symbol"&&HT.test(i))&&i>-1&&i%1==0&&i<e}var $l=WT;function qT(i,e,t){e=="__proto__"&&Xo?Xo(i,e,{configurable:!0,enumerable:!0,value:t,writable:!0}):i[e]=t}var Zo=qT;function $T(i,e){return i===e||i!==i&&e!==e}var Bi=$T;var JT=Object.prototype,KT=JT.hasOwnProperty;function XT(i,e,t){var r=i[e];(!(KT.call(i,e)&&Bi(r,t))||t===void 0&&!(e in i))&&Zo(i,e,t)}var Jl=XT;function ZT(i,e,t,r){var n=!t;t||(t={});for(var s=-1,l=e.length;++s<l;){var c=e[s],f=r?r(t[c],i[c],c,t,i):void 0;f===void 0&&(f=i[c]),n?Zo(t,c,f):Jl(t,c,f)}return t}var pn=ZT;var Og=Math.max;function YT(i,e,t){return e=Og(e===void 0?i.length-1:e,0),function(){for(var r=arguments,n=-1,s=Og(r.length-e,0),l=Array(s);++n<s;)l[n]=r[e+n];n=-1;for(var c=Array(e+1);++n<e;)c[n]=r[n];return c[e]=t(l),_g(i,this,c)}}var Kl=YT;function QT(i,e){return ql(Kl(i,e,Ul),i+"")}var Pg=QT;var eI=9007199254740991;function tI(i){return typeof i=="number"&&i>-1&&i%1==0&&i<=eI}var Xl=tI;function rI(i){return i!=null&&Xl(i.length)&&!Ko(i)}var Gi=rI;function nI(i,e,t){if(!yr(t))return!1;var r=typeof e;return(r=="number"?Gi(t)&&$l(e,t.length):r=="string"&&e in t)?Bi(t[e],i):!1}var Dg=nI;function iI(i){return Pg(function(e,t){var r=-1,n=t.length,s=n>1?t[n-1]:void 0,l=n>2?t[2]:void 0;for(s=i.length>3&&typeof s=="function"?(n--,s):void 0,l&&Dg(t[0],t[1],l)&&(s=n<3?void 0:s,n=1),e=Object(e);++r<n;){var c=t[r];c&&i(e,c,r,s)}return e})}var Bg=iI;var oI=Object.prototype;function sI(i){var e=i&&i.constructor,t=typeof e=="function"&&e.prototype||oI;return i===t}var Yo=sI;function aI(i,e){for(var t=-1,r=Array(i);++t<i;)r[t]=e(t);return r}var Gg=aI;var lI="[object Arguments]";function cI(i){return gr(i)&&Xr(i)==lI}var Xf=cI;var jg=Object.prototype,uI=jg.hasOwnProperty,fI=jg.propertyIsEnumerable,hI=Xf(function(){return arguments}())?Xf:function(i){return gr(i)&&uI.call(i,"callee")&&!fI.call(i,"callee")},mo=hI;function pI(){return!1}var Eg=pI;var Rg=typeof exports=="object"&&exports&&!exports.nodeType&&exports,zg=Rg&&typeof module=="object"&&module&&!module.nodeType&&module,dI=zg&&zg.exports===Rg,Fg=dI?qt.Buffer:void 0,mI=Fg?Fg.isBuffer:void 0,gI=mI||Eg,Qo=gI;var yI="[object Arguments]",xI="[object Array]",vI="[object Boolean]",bI="[object Date]",SI="[object Error]",wI="[object Function]",NI="[object Map]",CI="[object Number]",LI="[object Object]",_I="[object RegExp]",TI="[object Set]",II="[object String]",MI="[object WeakMap]",AI="[object ArrayBuffer]",OI="[object DataView]",PI="[object Float32Array]",DI="[object Float64Array]",BI="[object Int8Array]",GI="[object Int16Array]",jI="[object Int32Array]",EI="[object Uint8Array]",RI="[object Uint8ClampedArray]",zI="[object Uint16Array]",FI="[object Uint32Array]",Tt={};Tt[PI]=Tt[DI]=Tt[BI]=Tt[GI]=Tt[jI]=Tt[EI]=Tt[RI]=Tt[zI]=Tt[FI]=!0;Tt[yI]=Tt[xI]=Tt[AI]=Tt[vI]=Tt[OI]=Tt[bI]=Tt[SI]=Tt[wI]=Tt[NI]=Tt[CI]=Tt[LI]=Tt[_I]=Tt[TI]=Tt[II]=Tt[MI]=!1;function VI(i){return gr(i)&&Xl(i.length)&&!!Tt[Xr(i)]}var Vg=VI;function UI(i){return function(e){return i(e)}}var es=UI;var Ug=typeof exports=="object"&&exports&&!exports.nodeType&&exports,ia=Ug&&typeof module=="object"&&module&&!module.nodeType&&module,kI=ia&&ia.exports===Ug,Zf=kI&&Fl.process,HI=function(){try{var i=ia&&ia.require&&ia.require("util").types;return i||Zf&&Zf.binding&&Zf.binding("util")}catch(e){}}(),hi=HI;var kg=hi&&hi.isTypedArray,WI=kg?es(kg):Vg,Zl=WI;var qI=Object.prototype,$I=qI.hasOwnProperty;function JI(i,e){var t=cr(i),r=!t&&mo(i),n=!t&&!r&&Qo(i),s=!t&&!r&&!n&&Zl(i),l=t||r||n||s,c=l?Gg(i.length,String):[],f=c.length;for(var h in i)(e||$I.call(i,h))&&!(l&&(h=="length"||n&&(h=="offset"||h=="parent")||s&&(h=="buffer"||h=="byteLength"||h=="byteOffset")||$l(h,f)))&&c.push(h);return c}var Yl=JI;function KI(i,e){return function(t){return i(e(t))}}var Ql=KI;var XI=Ql(Object.keys,Object),Hg=XI;var ZI=Object.prototype,YI=ZI.hasOwnProperty;function QI(i){if(!Yo(i))return Hg(i);var e=[];for(var t in Object(i))YI.call(i,t)&&t!="constructor"&&e.push(t);return e}var Wg=QI;function eM(i){return Gi(i)?Yl(i):Wg(i)}var ts=eM;function tM(i){var e=[];if(i!=null)for(var t in Object(i))e.push(t);return e}var qg=tM;var rM=Object.prototype,nM=rM.hasOwnProperty;function iM(i){if(!yr(i))return qg(i);var e=Yo(i),t=[];for(var r in i)r=="constructor"&&(e||!nM.call(i,r))||t.push(r);return t}var $g=iM;function oM(i){return Gi(i)?Yl(i,!0):$g(i)}var Un=oM;var sM=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,aM=/^\w*$/;function lM(i,e){if(cr(i))return!1;var t=typeof i;return t=="number"||t=="symbol"||t=="boolean"||i==null||Jo(i)?!0:aM.test(i)||!sM.test(i)||e!=null&&i in Object(e)}var Jg=lM;var cM=Gr(Object,"create"),pi=cM;function uM(){this.__data__=pi?pi(null):{},this.size=0}var Kg=uM;function fM(i){var e=this.has(i)&&delete this.__data__[i];return this.size-=e?1:0,e}var Xg=fM;var hM="__lodash_hash_undefined__",pM=Object.prototype,dM=pM.hasOwnProperty;function mM(i){var e=this.__data__;if(pi){var t=e[i];return t===hM?void 0:t}return dM.call(e,i)?e[i]:void 0}var Zg=mM;var gM=Object.prototype,yM=gM.hasOwnProperty;function xM(i){var e=this.__data__;return pi?e[i]!==void 0:yM.call(e,i)}var Yg=xM;var vM="__lodash_hash_undefined__";function bM(i,e){var t=this.__data__;return this.size+=this.has(i)?0:1,t[i]=pi&&e===void 0?vM:e,this}var Qg=bM;function rs(i){var e=-1,t=i==null?0:i.length;for(this.clear();++e<t;){var r=i[e];this.set(r[0],r[1])}}rs.prototype.clear=Kg;rs.prototype.delete=Xg;rs.prototype.get=Zg;rs.prototype.has=Yg;rs.prototype.set=Qg;var Yf=rs;function SM(){this.__data__=[],this.size=0}var ey=SM;function wM(i,e){for(var t=i.length;t--;)if(Bi(i[t][0],e))return t;return-1}var ji=wM;var NM=Array.prototype,CM=NM.splice;function LM(i){var e=this.__data__,t=ji(e,i);if(t<0)return!1;var r=e.length-1;return t==r?e.pop():CM.call(e,t,1),--this.size,!0}var ty=LM;function _M(i){var e=this.__data__,t=ji(e,i);return t<0?void 0:e[t][1]}var ry=_M;function TM(i){return ji(this.__data__,i)>-1}var ny=TM;function IM(i,e){var t=this.__data__,r=ji(t,i);return r<0?(++this.size,t.push([i,e])):t[r][1]=e,this}var iy=IM;function ns(i){var e=-1,t=i==null?0:i.length;for(this.clear();++e<t;){var r=i[e];this.set(r[0],r[1])}}ns.prototype.clear=ey;ns.prototype.delete=ty;ns.prototype.get=ry;ns.prototype.has=ny;ns.prototype.set=iy;var Ei=ns;var MM=Gr(qt,"Map"),Ri=MM;function AM(){this.size=0,this.__data__={hash:new Yf,map:new(Ri||Ei),string:new Yf}}var oy=AM;function OM(i){var e=typeof i;return e=="string"||e=="number"||e=="symbol"||e=="boolean"?i!=="__proto__":i===null}var sy=OM;function PM(i,e){var t=i.__data__;return sy(e)?t[typeof e=="string"?"string":"hash"]:t.map}var zi=PM;function DM(i){var e=zi(this,i).delete(i);return this.size-=e?1:0,e}var ay=DM;function BM(i){return zi(this,i).get(i)}var ly=BM;function GM(i){return zi(this,i).has(i)}var cy=GM;function jM(i,e){var t=zi(this,i),r=t.size;return t.set(i,e),this.size+=t.size==r?0:1,this}var uy=jM;function is(i){var e=-1,t=i==null?0:i.length;for(this.clear();++e<t;){var r=i[e];this.set(r[0],r[1])}}is.prototype.clear=oy;is.prototype.delete=ay;is.prototype.get=ly;is.prototype.has=cy;is.prototype.set=uy;var oa=is;var EM="Expected a function";function Qf(i,e){if(typeof i!="function"||e!=null&&typeof e!="function")throw new TypeError(EM);var t=function(){var r=arguments,n=e?e.apply(this,r):r[0],s=t.cache;if(s.has(n))return s.get(n);var l=i.apply(this,r);return t.cache=s.set(n,l)||s,l};return t.cache=new(Qf.Cache||oa),t}Qf.Cache=oa;var fy=Qf;var RM=500;function zM(i){var e=fy(i,function(r){return t.size===RM&&t.clear(),r}),t=e.cache;return e}var hy=zM;var FM=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,VM=/\\(\\)?/g,UM=hy(function(i){var e=[];return i.charCodeAt(0)===46&&e.push(""),i.replace(FM,function(t,r,n,s){e.push(n?s.replace(VM,"$1"):r||t)}),e}),py=UM;function kM(i){return i==null?"":vg(i)}var dy=kM;function HM(i,e){return cr(i)?i:Jg(i,e)?[i]:py(dy(i))}var os=HM;var WM=1/0;function qM(i){if(typeof i=="string"||Jo(i))return i;var e=i+"";return e=="0"&&1/i==-WM?"-0":e}var ec=qM;function $M(i,e){e=os(e,i);for(var t=0,r=e.length;i!=null&&t<r;)i=i[ec(e[t++])];return t&&t==r?i:void 0}var my=$M;function JM(i,e){for(var t=-1,r=e.length,n=i.length;++t<r;)i[n+t]=e[t];return i}var ss=JM;var gy=Nr?Nr.isConcatSpreadable:void 0;function KM(i){return cr(i)||mo(i)||!!(gy&&i&&i[gy])}var yy=KM;function xy(i,e,t,r,n){var s=-1,l=i.length;for(t||(t=yy),n||(n=[]);++s<l;){var c=i[s];e>0&&t(c)?e>1?xy(c,e-1,t,r,n):ss(n,c):r||(n[n.length]=c)}return n}var vy=xy;function XM(i){var e=i==null?0:i.length;return e?vy(i,1):[]}var by=XM;function ZM(i){return ql(Kl(i,void 0,by),i+"")}var Sy=ZM;var YM=Ql(Object.getPrototypeOf,Object),as=YM;var QM="[object Object]",eA=Function.prototype,tA=Object.prototype,wy=eA.toString,rA=tA.hasOwnProperty,nA=wy.call(Object);function iA(i){if(!gr(i)||Xr(i)!=QM)return!1;var e=as(i);if(e===null)return!0;var t=rA.call(e,"constructor")&&e.constructor;return typeof t=="function"&&t instanceof t&&wy.call(t)==nA}var tc=iA;function oA(i,e,t){var r=-1,n=i.length;e<0&&(e=-e>n?0:n+e),t=t>n?n:t,t<0&&(t+=n),n=e>t?0:t-e>>>0,e>>>=0;for(var s=Array(n);++r<n;)s[r]=i[r+e];return s}var Ny=oA;function sA(){this.__data__=new Ei,this.size=0}var Cy=sA;function aA(i){var e=this.__data__,t=e.delete(i);return this.size=e.size,t}var Ly=aA;function lA(i){return this.__data__.get(i)}var _y=lA;function cA(i){return this.__data__.has(i)}var Ty=cA;var uA=200;function fA(i,e){var t=this.__data__;if(t instanceof Ei){var r=t.__data__;if(!Ri||r.length<uA-1)return r.push([i,e]),this.size=++t.size,this;t=this.__data__=new oa(r)}return t.set(i,e),this.size=t.size,this}var Iy=fA;function ls(i){var e=this.__data__=new Ei(i);this.size=e.size}ls.prototype.clear=Cy;ls.prototype.delete=Ly;ls.prototype.get=_y;ls.prototype.has=Ty;ls.prototype.set=Iy;var rc=ls;function hA(i,e){return i&&pn(e,ts(e),i)}var My=hA;function pA(i,e){return i&&pn(e,Un(e),i)}var Ay=pA;var Oy=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Py=Oy&&typeof module=="object"&&module&&!module.nodeType&&module,dA=Py&&Py.exports===Oy,Dy=dA?qt.Buffer:void 0,By=Dy?Dy.allocUnsafe:void 0;function mA(i,e){if(e)return i.slice();var t=i.length,r=By?By(t):new i.constructor(t);return i.copy(r),r}var nc=mA;function gA(i,e){for(var t=-1,r=i==null?0:i.length,n=0,s=[];++t<r;){var l=i[t];e(l,t,i)&&(s[n++]=l)}return s}var Gy=gA;function yA(){return[]}var ic=yA;var xA=Object.prototype,vA=xA.propertyIsEnumerable,jy=Object.getOwnPropertySymbols,bA=jy?function(i){return i==null?[]:(i=Object(i),Gy(jy(i),function(e){return vA.call(i,e)}))}:ic,cs=bA;function SA(i,e){return pn(i,cs(i),e)}var Ey=SA;var wA=Object.getOwnPropertySymbols,NA=wA?function(i){for(var e=[];i;)ss(e,cs(i)),i=as(i);return e}:ic,oc=NA;function CA(i,e){return pn(i,oc(i),e)}var Ry=CA;function LA(i,e,t){var r=e(i);return cr(i)?r:ss(r,t(i))}var sc=LA;function _A(i){return sc(i,ts,cs)}var zy=_A;function TA(i){return sc(i,Un,oc)}var ac=TA;var IA=Gr(qt,"DataView"),lc=IA;var MA=Gr(qt,"Promise"),cc=MA;var AA=Gr(qt,"Set"),uc=AA;var Fy="[object Map]",OA="[object Object]",Vy="[object Promise]",Uy="[object Set]",ky="[object WeakMap]",Hy="[object DataView]",PA=fi(lc),DA=fi(Ri),BA=fi(cc),GA=fi(uc),jA=fi(Hl),go=Xr;(lc&&go(new lc(new ArrayBuffer(1)))!=Hy||Ri&&go(new Ri)!=Fy||cc&&go(cc.resolve())!=Vy||uc&&go(new uc)!=Uy||Hl&&go(new Hl)!=ky)&&(go=function(i){var e=Xr(i),t=e==OA?i.constructor:void 0,r=t?fi(t):"";if(r)switch(r){case PA:return Hy;case DA:return Fy;case BA:return Vy;case GA:return Uy;case jA:return ky}return e});var us=go;var EA=Object.prototype,RA=EA.hasOwnProperty;function zA(i){var e=i.length,t=new i.constructor(e);return e&&typeof i[0]=="string"&&RA.call(i,"index")&&(t.index=i.index,t.input=i.input),t}var Wy=zA;var FA=qt.Uint8Array,eh=FA;function VA(i){var e=new i.constructor(i.byteLength);return new eh(e).set(new eh(i)),e}var fs=VA;function UA(i,e){var t=e?fs(i.buffer):i.buffer;return new i.constructor(t,i.byteOffset,i.byteLength)}var qy=UA;var kA=/\w*$/;function HA(i){var e=new i.constructor(i.source,kA.exec(i));return e.lastIndex=i.lastIndex,e}var $y=HA;var Jy=Nr?Nr.prototype:void 0,Ky=Jy?Jy.valueOf:void 0;function WA(i){return Ky?Object(Ky.call(i)):{}}var Xy=WA;function qA(i,e){var t=e?fs(i.buffer):i.buffer;return new i.constructor(t,i.byteOffset,i.length)}var fc=qA;var $A="[object Boolean]",JA="[object Date]",KA="[object Map]",XA="[object Number]",ZA="[object RegExp]",YA="[object Set]",QA="[object String]",eO="[object Symbol]",tO="[object ArrayBuffer]",rO="[object DataView]",nO="[object Float32Array]",iO="[object Float64Array]",oO="[object Int8Array]",sO="[object Int16Array]",aO="[object Int32Array]",lO="[object Uint8Array]",cO="[object Uint8ClampedArray]",uO="[object Uint16Array]",fO="[object Uint32Array]";function hO(i,e,t){var r=i.constructor;switch(e){case tO:return fs(i);case $A:case JA:return new r(+i);case rO:return qy(i,t);case nO:case iO:case oO:case sO:case aO:case lO:case cO:case uO:case fO:return fc(i,t);case KA:return new r;case XA:case QA:return new r(i);case ZA:return $y(i);case YA:return new r;case eO:return Xy(i)}}var Zy=hO;function pO(i){return typeof i.constructor=="function"&&!Yo(i)?Lg(as(i)):{}}var hc=pO;var dO="[object Map]";function mO(i){return gr(i)&&us(i)==dO}var Yy=mO;var Qy=hi&&hi.isMap,gO=Qy?es(Qy):Yy,ex=gO;var yO="[object Set]";function xO(i){return gr(i)&&us(i)==yO}var tx=xO;var rx=hi&&hi.isSet,vO=rx?es(rx):tx,nx=vO;var bO=1,SO=2,wO=4,ix="[object Arguments]",NO="[object Array]",CO="[object Boolean]",LO="[object Date]",_O="[object Error]",ox="[object Function]",TO="[object GeneratorFunction]",IO="[object Map]",MO="[object Number]",sx="[object Object]",AO="[object RegExp]",OO="[object Set]",PO="[object String]",DO="[object Symbol]",BO="[object WeakMap]",GO="[object ArrayBuffer]",jO="[object DataView]",EO="[object Float32Array]",RO="[object Float64Array]",zO="[object Int8Array]",FO="[object Int16Array]",VO="[object Int32Array]",UO="[object Uint8Array]",kO="[object Uint8ClampedArray]",HO="[object Uint16Array]",WO="[object Uint32Array]",Nt={};Nt[ix]=Nt[NO]=Nt[GO]=Nt[jO]=Nt[CO]=Nt[LO]=Nt[EO]=Nt[RO]=Nt[zO]=Nt[FO]=Nt[VO]=Nt[IO]=Nt[MO]=Nt[sx]=Nt[AO]=Nt[OO]=Nt[PO]=Nt[DO]=Nt[UO]=Nt[kO]=Nt[HO]=Nt[WO]=!0;Nt[_O]=Nt[ox]=Nt[BO]=!1;function pc(i,e,t,r,n,s){var l,c=e&bO,f=e&SO,h=e&wO;if(t&&(l=n?t(i,r,n,s):t(i)),l!==void 0)return l;if(!yr(i))return i;var d=cr(i);if(d){if(l=Wy(i),!c)return Wl(i,l)}else{var x=us(i),g=x==ox||x==TO;if(Qo(i))return nc(i,c);if(x==sx||x==ix||g&&!n){if(l=f||g?{}:hc(i),!c)return f?Ry(i,Ay(l,i)):Ey(i,My(l,i))}else{if(!Nt[x])return n?i:{};l=Zy(i,x,c)}}s||(s=new rc);var w=s.get(i);if(w)return w;s.set(i,l),nx(i)?i.forEach(function(C){l.add(pc(C,e,t,C,i,s))}):ex(i)&&i.forEach(function(C,G){l.set(G,pc(C,e,t,G,i,s))});var S=h?f?ac:zy:f?Un:ts,D=d?void 0:S(i);return Ag(D||i,function(C,G){D&&(G=C,C=i[G]),Jl(l,G,pc(C,e,t,G,i,s))}),l}var dc=pc;var qO=1,$O=4;function JO(i){return dc(i,qO|$O)}var sa=JO;function KO(i){return function(e,t,r){for(var n=-1,s=Object(e),l=r(e),c=l.length;c--;){var f=l[i?c:++n];if(t(s[f],f,s)===!1)break}return e}}var ax=KO;var XO=ax(),lx=XO;function ZO(i,e,t){(t!==void 0&&!Bi(i[e],t)||t===void 0&&!(e in i))&&Zo(i,e,t)}var aa=ZO;function YO(i){return gr(i)&&Gi(i)}var cx=YO;function QO(i,e){if(!(e==="constructor"&&typeof i[e]=="function")&&e!="__proto__")return i[e]}var la=QO;function eP(i){return pn(i,Un(i))}var ux=eP;function tP(i,e,t,r,n,s,l){var c=la(i,t),f=la(e,t),h=l.get(f);if(h){aa(i,t,h);return}var d=s?s(c,f,t+"",i,e,l):void 0,x=d===void 0;if(x){var g=cr(f),w=!g&&Qo(f),S=!g&&!w&&Zl(f);d=f,g||w||S?cr(c)?d=c:cx(c)?d=Wl(c):w?(x=!1,d=nc(f,!0)):S?(x=!1,d=fc(f,!0)):d=[]:tc(f)||mo(f)?(d=c,mo(c)?d=ux(c):(!yr(c)||Ko(c))&&(d=hc(f))):x=!1}x&&(l.set(f,d),n(d,f,r,s,l),l.delete(f)),aa(i,t,d)}var fx=tP;function hx(i,e,t,r,n){i!==e&&lx(e,function(s,l){if(n||(n=new rc),yr(s))fx(i,e,l,t,hx,r,n);else{var c=r?r(la(i,l),s,l+"",i,e,n):void 0;c===void 0&&(c=s),aa(i,l,c)}},Un)}var px=hx;function rP(i){var e=i==null?0:i.length;return e?i[e-1]:void 0}var dx=rP;function nP(i,e){return e.length<2?i:my(i,Ny(e,0,-1))}var mx=nP;var iP=Bg(function(i,e,t){px(i,e,t)}),yo=iP;function oP(i,e){return e=os(e,i),i=mx(i,e),i==null||delete i[ec(dx(e))]}var gx=oP;function sP(i){return tc(i)?void 0:i}var yx=sP;var aP=1,lP=2,cP=4,uP=Sy(function(i,e){var t={};if(i==null)return t;var r=!1;e=Vl(e,function(s){return s=os(s,i),r||(r=s.length>1),s}),pn(i,ac(i),t),r&&(t=dc(t,aP|lP|cP,yx));for(var n=e.length;n--;)gx(t,e[n]);return t}),hs=uP;var ps;(function(t){t.all=["PerspectiveCamera","OrthographicCamera"];function e(r){return t.all.includes(r)}t.is=e})(ps||(ps={}));var xo;(function(n){n.DefaultUp=[0,1,0],n.DefaultTargetOffset=1e3,n.defaultData={far:1e5,type:"OrthographicCamera",perspective:{near:5,fov:45,zoom:1},orthographic:{near:-1e5,zoom:1},up:n.DefaultUp,isUpVectorFlipped:!1,targetOffset:n.DefaultTargetOffset};function r(s){return s.type==="PerspectiveCamera"?s.perspective.zoom:s.orthographic.zoom}n.getZoom=r})(xo||(xo={}));var ds;(function(r){r.x="x",r.y="y",r.z="z"})(ds||(ds={}));var xx;(function(s){s.Top="top",s.Right="right",s.Bottom="bottom",s.Left="left",s.Center="center"})(xx||(xx={}));var vx;(function(t){function i(r,n){return r[0]===n[0]&&r[1]===n[1]}t.isEqual=i;function e(r,n,s){return[r[0]+(n[0]-r[0])*s,r[1]+(n[1]-r[1])*s]}t.lerp=e})(vx||(vx={}));var ms;(function(n){function i(s,l){return s[0]===l[0]&&s[1]===l[1]&&s[2]===l[2]}n.isEqual=i;function e(s,l){return[s[0]+l[0],s[1]+l[1],s[2]+l[2]]}n.add=e;function t(s,l){return[s[0]-l[0],s[1]-l[1],s[2]-l[2]]}n.sub=t;function r(s,l,c){return[s[0]+(l[0]-s[0])*c,s[1]+(l[1]-s[1])*c,s[2]+(l[2]-s[2])*c]}n.lerp=r})(ms||(ms={}));var bx;(function(t){function i(r,n){return r[0]===n[0]&&r[1]===n[1]&&r[2]===n[2]&&r[3]===n[3]}t.isEqual=i;function e(r,n,s){return[r[0]+(n[0]-r[0])*s,r[1]+(n[1]-r[1])*s,r[2]+(n[2]-r[2])*s,r[3]+(n[3]-r[3])*s]}t.lerp=e})(bx||(bx={}));var Fi;(function(s){s.identity=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1];function e(l,c){for(let f=0;f<16;f++)if(l[f]!==c[f])return!1;return!0}s.isEqual=e;function t(l){return l!=null?l:s.identity}s.simplify=t;function r(l,c){let f=c.slice(0);for(var h=0,d=c.length;h<d;h+=3){let x=1/(l[3]*c[h]+l[7]*c[h+1]+l[11]*c[h+2]+l[15]);f[h]=(l[0]*c[h]+l[4]*c[h+1]+l[8]*c[h+2]+l[12])*x,f[h+1]=(l[1]*c[h]+l[5]*c[h+1]+l[9]*c[h+2]+l[13])*x,f[h+2]=(l[2]*c[h]+l[6]*c[h+1]+l[10]*c[h+2]+l[14])*x}return f}s.applyMatrix4=r;function n(l,c){let f=c.slice(0);for(var h=0,d=c.length;h<d;h+=3)f[h]=l[0]*c[h]+l[4]*c[h+1]+l[8]*c[h+2],f[h+1]=l[1]*c[h]+l[5]*c[h+1]+l[9]*c[h+2],f[h+2]=l[2]*c[h]+l[6]*c[h+1]+l[10]*c[h+2];return f}s.applyMatrix3Components=n})(Fi||(Fi={}));var Zr;(function(f){f.white={r:1,g:1,b:1},f.red={r:1,g:0,b:0},f.black={r:0,g:0,b:0};function r(h){return{r:Math.round(h.r*255),g:Math.round(h.g*255),b:Math.round(h.b*255),a:1}}f.toRgb255a1=r;function n(h){return{r:h.r,g:h.g,b:h.b}}f.clone=n;function s(h){return h=Math.floor(h),{r:(h>>16&255)/255,g:(h>>8&255)/255,b:(h&255)/255}}f.fromHex=s;function l(h,d){return h.r===d.r&&h.g===d.g&&h.b===d.b}f.equals=l;function c(h,d,x){return{r:h.r+(d.r-h.r)*x,g:h.g+(d.g-h.g)*x,b:h.b+(d.b-h.b)*x}}f.lerp=c})(Zr||(Zr={}));var kn;(function(l){l.white=fe(U({},Zr.white),{a:1});function e(c){return{r:c[0],g:c[1],b:c[2],a:c[3]}}l.from0to1=e;function t(c,f){return fe(U({},Zr.fromHex(c)),{a:f})}l.fromHexAndA=t;function r(c){return{r:Math.round(c.r*255),g:Math.round(c.g*255),b:Math.round(c.b*255),a:c.a}}l.toRgb255a1=r;function n(c,f){return Zr.equals(c,f)&&c.a===f.a}l.equals=n;function s(c,f,h){return{r:c.r+(f.r-c.r)*h,g:c.g+(f.g-c.g)*h,b:c.b+(f.b-c.b)*h,a:c.a+(f.a-c.a)*h}}l.lerp=s})(kn||(kn={}));var mc;(function(e){e.identity={position:[0,0,0],rotation:[0,0,0],scale:[1,1,1]}})(mc||(mc={}));var Sx;(function(P){P[P.SKIP=0]="SKIP",P[P.ADD=1]="ADD",P[P.ALPHA=2]="ALPHA",P[P.AVERAGE=3]="AVERAGE",P[P.COLOR_BURN=4]="COLOR_BURN",P[P.COLOR_DODGE=5]="COLOR_DODGE",P[P.DARKEN=6]="DARKEN",P[P.DIFFERENCE=7]="DIFFERENCE",P[P.EXCLUSION=8]="EXCLUSION",P[P.LIGHTEN=9]="LIGHTEN",P[P.MULTIPLY=10]="MULTIPLY",P[P.DIVIDE=11]="DIVIDE",P[P.NEGATION=12]="NEGATION",P[P.NORMAL=13]="NORMAL",P[P.OVERLAY=14]="OVERLAY",P[P.REFLECT=15]="REFLECT",P[P.SCREEN=16]="SCREEN",P[P.SOFT_LIGHT=17]="SOFT_LIGHT",P[P.SUBTRACT=18]="SUBTRACT"})(Sx||(Sx={}));var wx;(function(c){c[c.LINEAR=0]="LINEAR",c[c.EASE=1]="EASE",c[c.EASE_IN=2]="EASE_IN",c[c.EASE_OUT=3]="EASE_OUT",c[c.EASE_IN_OUT=4]="EASE_IN_OUT",c[c.CUBIC=5]="CUBIC",c[c.SPRING=6]="SPRING"})(wx||(wx={}));var Nx;(function(e){e.defaultData={mass:1,stiffness:80,damping:10,velocity:0}})(Nx||(Nx={}));var Cx;(function(e){e.defaultData={control1:[.5,.05],control2:[.1,.3]}})(Cx||(Cx={}));var gc;(function(e){function i(t,r=.1){return{type:"radial",hideBase:!1,count:3,radial:{radius:Math.max(t[0],t[1])*2,start:0,end:360,alignment:!1,axis:ds.y,scale:[0,0,0],rotation:[0,0,0],position:[0,0,0]},linear:{scale:[0,0,0],rotation:[0,0,0],position:[t[0]+t[0]*r,0,0]},grid:{count:[2,2,2],size:t.map(n=>n*(1+r)),useCenter:!0}}}e.defaultData=i})(gc||(gc={}));var Hn;(function(e){e[e.Update=0]="Update"})(Hn||(Hn={}));var dn;(function(r){r[r.Add=1]="Add",r[r.Delete=2]="Delete",r[r.Unlink=3]="Unlink"})(dn||(dn={}));var Yr;(function(r){r[r.Add=4]="Add",r[r.Delete=5]="Delete",r[r.Move=6]="Move"})(Yr||(Yr={}));var jr;(function(r){r[r.Add=7]="Add",r[r.Delete=8]="Delete",r[r.Move=9]="Move"})(jr||(jr={}));var An=class{modifyById(e,t){let r=this;if(r[e]===void 0)throw new Error("not expected");{let s=fe(U({},r),{[e]:t});return Object.setPrototypeOf(s,An.prototype),s}}add(e,t){var n;let r=this.runOp({type:dn.Add,id:e,data:t});return(n=r==null?void 0:r.data)!=null?n:this}runOp(e){let t=this;if(e.type===dn.Add){let r=t[e.id],n;r===void 0?n={type:dn.Delete,id:e.id}:n={type:dn.Add,id:e.id,data:r};let{id:s,data:l}=e,c=fe(U({},t),{[s]:l});return Object.setPrototypeOf(c,An.prototype),{data:c,actual:e,reverse:n}}else if(e.type===dn.Delete){let{id:r}=e,n=t[r];if(n===void 0)return null;{let s=U({},t);return Object.setPrototypeOf(s,An.prototype),delete s[r],{data:s,actual:e,reverse:{type:dn.Add,id:r,data:n}}}}throw new Error("illegal arg")}};function ca(i){if(i.deepFreeze!==void 0){i.deepFreeze(i);return}let e=Object.getOwnPropertyNames(i);for(let t of e){let r=i[t];r&&typeof r=="object"&&ca(r)}return Object.freeze(i)}function Lx(i,e){let t=0;for(;t<i.length&&t<e.length;){if(i[t]<e[t])return-1;if(i[t]>e[t])return 1;t+=1}return t!==e.length?-1:t!==i.length?1:0}var th=class extends Error{};function Wn(i,e,t){if(i===void 0?e===void 0?(i=0,e=10):i=e-10:e===void 0&&(e=i+10),i>e){let s=i;i=e,e=s}let r=[],n=1/(t+1);for(let s=0;s<t;s++){let l=i+(e-i)*(s+.75+Math.random()*.5)*n;r.push(l)}return r}function _x(i){return i instanceof Uint8Array||i instanceof Uint16Array||i instanceof Uint32Array||i instanceof Int8Array||i instanceof Int16Array||i instanceof Int32Array||i instanceof Float32Array||i instanceof Float64Array}function Tx(){return typeof process!="undefined"}function Ix(i,e){for(let t of i)e(t.id,t.data),Ix(t.children,e)}function Mx(i,e){e(i.id,i.data);for(let t of i.children)Mx(t,e)}var On=class extends Array{constructor(...e){super(...e);Object.setPrototypeOf(this,On.prototype)}deepFreeze(){let e=0;for(;e<this.length;)ca(this[e]),e++}fillCaches0(e,t){var r;if((r=this.objCaches)==null?void 0:r.has(e.id))throw new Error("duplicated item");this.objCaches.set(e.id,e),this.parentCaches.set(e.id,t);for(let n of e.children)this.fillCaches0(n,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,t){for(;e;){let r=this.parent(e);if(r===t)return!0;e=r}return!1}data(e){var t;return(t=this.get(e))==null?void 0:t.data}has(e){return this.childrenOf(e)!==void 0}get(e){return this.fillCaches(),this.objCaches.get(e)}childrenOf(e){var t;return e===null?this:(t=this.get(e))==null?void 0:t.children}traverseFrom(e,t){if(e===null)this.traverse(t);else{let r=this.get(e);r&&Mx(r,t)}}traverse(e){Ix(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,t){if(this.get(e)===void 0)throw new Error("not expected");{let n=this.parent(e),s=this.childrenArray(n),l=s.findIndex(h=>h.id===e);if(l<0)throw new Error("not expected");let c=s[l];return s=[...s],s[l]=fe(U({},c),{data:t}),this.modifyArrayBy(n,s)}}modifyArrayBy(e,t){let r=e,n=t;for(;r!==null;){let l=n,c=r;if(r=this.parent(r),r===void 0)throw new Error;n=this.childrenArray(r);let f=n.findIndex(h=>h.id===c);if(f<0)throw new Error;n=[...n],n[f]=fe(U({},n[f]),{children:l})}Object.setPrototypeOf(n,On.prototype);let s=n;return s.fillCaches(),s}runOp(e){switch(e.type){case jr.Add:return this.addOp(e);case jr.Delete:return this.deleteOp(e);case jr.Move:return this.moveOp(e)}}addOp(e){let{parent:t,fi:r,id:n,data:s,children:l}=e;if(t!==null&&this.get(t)===void 0)return null;if(this.get(n)!==void 0)return null;{let c=t,f=this.childrenArray(c),h={fi:r,id:n,data:s,children:l};return f=[...f,h],f.sort((x,g)=>x.fi-g.fi),e.localIndex=f.indexOf(h),{data:this.modifyArrayBy(c,f),actual:e,reverse:{type:jr.Delete,id:n}}}}deleteOp(e){let{id:t}=e;if(this.get(t)===null)return null;{let r=this.parent(t);if(r===void 0)return null;let n=this.childrenArray(r),s=n.findIndex(f=>f.id===t);e.localIndex=s,n=[...n];let l=n.splice(s,1)[0];return{data:this.modifyArrayBy(r,n),actual:e,reverse:fe(U({type:jr.Add},l),{parent:r})}}}moveOp(e){let{parent:t,fi:r,id:n}=e;if(t!==null&&this.get(t)===void 0)return this.deleteOp({type:jr.Delete,id:n});if(t!==null){let g=t;for(;g!==null;){if(g===void 0)throw new Error;if(g===n)throw new th("cyclic tree");g=this.parent(g)}}let s=this.parent(n);if(s===void 0)return null;let l=s,c=this.childrenArray(s),f=c.findIndex(g=>g.id===n);c=[...c];let h=c.splice(f,1)[0],d=this.modifyArrayBy(s,c);s=t,c=d.childrenArray(s);let x=h.fi;return h=fe(U({},h),{fi:r}),c=[...c,h],c.sort((g,w)=>g.fi-w.fi),e.localIndex=c.indexOf(h),d=d.modifyArrayBy(s,c),{data:d,actual:e,reverse:{type:jr.Move,parent:l,fi:x,id:n}}}previous(e,t){if(t===null){let n=this.childrenArray(e);return n.length===0?null:n[n.length-1].id}let r=null;for(let n of this.childrenArray(e)){if(n.id===t)return r;r=n.id}return null}traverseSortNext(e){let t=this.parent(e);if(t!==void 0){let r=this.childrenArray(t),n=r.findIndex(s=>s.id===e)+1;if(n<r.length)return r[n].id;if(t)return this.traverseSortNext(t)}}sortNext(e){let t=this.childrenArray(e);return t.length>0?t[0].id:this.traverseSortNext(e)}traverseSortPrevious(e){let t=this.childrenArray(e);return t.length>0?this.traverseSortPrevious(t[t.length-1].id):e}sortPrevious(e){let t=this.parent(e);if(t!==void 0){let r=this.childrenArray(t),n=r.findIndex(s=>s.id===e)-1;return n>=0?this.traverseSortPrevious(r[n].id):t}}getAllSorted(e){let t=[];for(let r of e){let n=this.getWithSortKey(r.id);n!==void 0&&t.push(U(U({},r),n))}t.sort((r,n)=>Lx(r.sortKey,n.sortKey));for(let r of t)delete r.sortKey;return t}getWithSortKey(e){var t=e;let r=[],n=this.get(t),s=n;if(n!==void 0){for(;t;)r.splice(0,0,n.fi),t=this.parent(t),t!==null&&(n=this.get(t));return fe(U({},s),{sortKey:r})}}insertBeforeHelper(e,t,r){return this.insertAfterHelper(e,this.previous(e,t),r)}insertAfterHelper(e,t,r){let n=this.childrenArray(e);if(t===null){if(n.length===0)return Wn(0,r,r);{let s=n[0].fi;return Wn(s-r,s,r)}}else{let s=this.get(t);if(s===void 0||this.parent(t)!==e)throw new Error("illegal args");let l=n.find(c=>c.fi>s.fi);if(l===void 0){let c=n[n.length-1].fi;return Wn(c,c+r,r)}else return Wn(s.fi,l.fi,r)}}};var yc;(function(e){function i(t,r){if(Array.isArray(t)){let n=r.props,s={},l=[...t],c=!1;if(n)for(let f of Object.keys(n)){let h=parseInt(f);if(isNaN(h))throw new Error("wrong index");s[f]=l[h],l[h]=n[f],c=!0}return c?{data:l,actual:r,reverse:{type:Hn.Update,props:s}}:null}else{let n=r.props,s={},l=U({},t),c=!1;if(n)for(let f of Object.keys(n)){s[f]=l[f];let h=n[f];h===void 0?delete l[f]:l[f]=h,c=!0}return c?{data:l,actual:r,reverse:{type:Hn.Update,props:s}}:null}}e.runOp=i})(yc||(yc={}));var jt=class extends Array{constructor(...e){super(...e);Object.setPrototypeOf(this,jt.prototype)}deepFreeze(){let e=0;for(;e<this.length;)ca(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){var t;return(t=this.get(e))==null?void 0:t.data}get(e){return this.fillCaches(),this.objCaches.get(e)}modifyById(e,t){if(this.get(e)===void 0)throw new Error("not expected");{let n=this,s=n.findIndex(f=>f.id===e);if(s<0)throw new Error("not expected");let l=n[s];return n=[...n],n[s]=fe(U({},l),{data:t}),this.modifyArrayBy(n)}}modifyArrayBy(e){Object.setPrototypeOf(e,jt.prototype);let t=e;return Tx()||t.fillCaches(),t}runOp(e){switch(e.type){case Yr.Add:return this.addOp(e);case Yr.Delete:return this.deleteOp(e);case Yr.Move:return this.moveOp(e)}}addOp(e){let{fi:t,id:r,data:n}=e,s=this,l={fi:t,id:r,data:n};return s=[...s,l],s.sort((f,h)=>f.fi-h.fi),e.localIndex=s.indexOf(l),{data:this.modifyArrayBy(s),actual:e,reverse:{type:Yr.Delete,id:r}}}deleteOp(e){let{id:t}=e,r=this,n=r.findIndex(c=>c.id===t);if(n===-1)return null;e.localIndex=n,r=[...r];let s=r.splice(n,1)[0];return{data:this.modifyArrayBy(r),actual:e,reverse:U({type:Yr.Add},s)}}moveOp(e){let{fi:t,id:r}=e,n=this;n=[...n];let s=n.findIndex(h=>h.id===r);if(s===-1)return null;let l=n[s].fi,c=fe(U({},n[s]),{fi:t});return n[s]=c,n.sort((h,d)=>h.fi-d.fi),e.localIndex=n.indexOf(c),{data:this.modifyArrayBy(n),actual:e,reverse:{type:Yr.Move,fi:l,id:r}}}previous(e){if(e===null)return this.length===0?null:this[this.length-1].id;let t=null;for(let r of this){if(r.id===e)return t;t=r.id}return null}insertBeforeHelper(e,t){return this.insertAfterHelper(this.previous(e),t)}insertAfterHelper(e,t){let r=this;if(e===null){if(r.length===0)return Wn(0,t,t);{let n=r[0].fi;return Wn(n-t,n,t)}}else{let n=this.get(e);if(n===void 0)throw new Error("illegal args");let s=r.find(l=>l.fi>n.fi);if(s===void 0){let l=r[r.length-1].fi;return Wn(l,l+t,t)}else return Wn(n.fi,s.fi,t)}}};var Ax=Symbol(),xc=Symbol(),ua=class{reportOp(e,t){let r=this;if(t===null)return;r._current=t.data;let n=[];for(;!(r instanceof nh);){let s=r._path,l=r._current;if(s!==""&&n.splice(0,0,s),r=r._parent,r===null)return;r.update(s,l)}r.push(n,e,t.actual,t.reverse)}deleteChildren(e){if(this._children){let t=this._children[e];if(t){let r=t[xc];r&&r(),delete this._children[e]}}}},Ox=class extends ua{constructor(e,t,r){super();this._parent=e,this._path=t,this._current=r}update(e,t){if(Array.isArray(this._current)){if(typeof e=="string"&&(e=parseInt(e),isNaN(e)))throw new Error("Invalid path");this._current=[...this._current],this._current[e]=t}else this._current=fe(U({},this._current),{[e]:t})}runOp(e){this.reportOp(e,yc.runOp(this._current,e))}},Px=class extends ua{constructor(e,t,r){super();this._parent=e,this._path=t,this._current=r}update(e,t){this._current=fe(U({},this._current),{[e]:t}),Object.setPrototypeOf(this._current,An.prototype)}runOp(e){this.reportOp(e,this._current.runOp(e))}},Dx={get(i,e){if(e===xc)return()=>{i._parent=null};if(e===Ax)return i._current;let{_current:t,_children:r}=i;if(e==="push"&&Array.isArray(t))throw new Error("not supported to expand array");let n=r===void 0?void 0:r[e];if(n!==void 0)return n;let s=t[e],l=vc(i,e,s);return l!==s?(r===void 0&&(r={},i._children=r),r[e]=l,l):s},has(i,e){return e in i._current},ownKeys(i){return Reflect.ownKeys(i._current)},defineProperty(){throw Error("not supported")},getPrototypeOf(i){return Object.getPrototypeOf(i._current)},setPrototypeOf(){throw Error("not supported")},getOwnPropertyDescriptor(i,e){let t=i._current,r=Reflect.getOwnPropertyDescriptor(t,e);return r&&{writable:!0,configurable:!0,enumerable:r.enumerable,value:t[e]}}},fP=fe(U({},Dx),{set(i,e,t){var n;let r={type:Hn.Update,props:{[e]:(n=sh(t))!=null?n:t}};return i.deleteChildren(e),i.runOp(r),!0},deleteProperty(i,e){let t={type:Hn.Update,props:{[e]:void 0}};return i.deleteChildren(e),i.runOp(t),!0}}),hP=fe(U({},Dx),{set(i,e,t){return t===void 0?this.deleteProperty(i,e):(i.deleteChildren(e),i.runOp({type:dn.Add,id:e,data:t})),!0},deleteProperty(i,e){return i.runOp({type:dn.Delete,id:e}),!0}}),fa=class extends ua{constructor(e,t,r){super();this._children={},this._parent=e,this._path=t,this._current=r,this[xc]=()=>{this._parent=null}}unproxy(){return this._current}update(e,t){this._current=this._current.modifyById(e,t)}runOp(e){this.reportOp(e,this._current.runOp(e))}randomId(){return this._current.randomId()}isDescendantOf(e,t){return this._current.isDescendantOf(e,t)}childrenOf(e){return this._current.childrenOf(e)}traverse(e){return this._current.traverse(e)}get(e){return this._current.get(e)}parent(e){return this._current.parent(e)}traverse(e){this._current.traverse((t,r)=>{e(t,this.data(t))})}data(e){var c;let{_current:t,_children:r}=this,n=r===void 0?void 0:r[e];if(n!==void 0)return n;let s=(c=t.get(e))==null?void 0:c.data,l=vc(this,e,s);return l!==s?(r===void 0&&(r={},this._children=r),r[e]=l,l):s}add(e,t,r,n,s){this.runOp({type:jr.Add,parent:e,fi:t,id:r,data:n,children:s})}move(e,t,r){this.runOp({type:jr.Move,parent:e,fi:t,id:r})}insertAfter(e,t,r){let n=this._current.insertAfterHelper(e,t,r.length);for(let s=0;s<r.length;s++){let l=r[s];this.add(e,n[s],l.id,l.data,l.children)}}insertBefore(e,t,r){let n=this._current.insertBeforeHelper(e,t,r.length);for(let s=0;s<r.length;s++){let l=r[s];this.add(e,n[s],l.id,l.data,l.children)}}moveAfter(e,t,r){let n=this._current.insertAfterHelper(e,t,r.length);for(let s=0;s<r.length;s++){let l=r[s];this.move(e,n[s],l)}}moveBefore(e,t,r){let n=this._current.insertBeforeHelper(e,t,r.length);for(let s=0;s<r.length;s++){let l=r[s];this.move(e,n[s],l)}}delete(e){this.deleteChildren(e),this.runOp({type:jr.Delete,id:e})}sortNext(e){return this._current.sortNext(e)}sortPrevious(e){return this._current.sortPrevious(e)}getAllSorted(e){return this._current.getAllSorted(e)}},ha=class extends ua{constructor(e,t,r){super();this._children={},this._parent=e,this._path=t,this._current=r,this[xc]=()=>{this._parent=null}}unproxy(){return this._current}get length(){return this._current.length}forEach(e){let t=this.length;for(let r=0;r<t;r++){let n=this._current[r].id;e(this.data(this._current[r].id),n)}}update(e,t){this._current=this._current.modifyById(e,t)}randomId(){return this._current.randomId()}get(e){return fe(U({},this._current.get(e)),{data:this.data(e)})}data(e){var c;let{_current:t,_children:r}=this,n=r===void 0?void 0:r[e];if(n!==void 0)return n;let s=(c=t.get(e))==null?void 0:c.data,l=vc(this,e,s);return l!==s?(r===void 0&&(r={},this._children=r),r[e]=l,l):s}runOp(e){this.reportOp(e,this._current.runOp(e))}add(e,t,r){this.runOp({type:Yr.Add,fi:e,id:t,data:r})}move(e,t){this.runOp({type:Yr.Move,fi:e,id:t})}insertAfter(e,t){let r=this._current.insertAfterHelper(e,t.length);for(let n=0;n<t.length;n++){let s=t[n];this.add(r[n],s.id,s.data)}}insertBefore(e,t){let r=this._current.insertBeforeHelper(e,t.length);for(let n=0;n<t.length;n++){let s=t[n];this.add(r[n],s.id,s.data)}}moveAfter(e,t){let r=this._current.insertAfterHelper(e,t.length);for(let n=0;n<t.length;n++){let s=t[n];this.move(r[n],s)}}moveBefore(e,t){let r=this._current.insertBeforeHelper(e,t.length);for(let n=0;n<t.length;n++){let s=t[n];this.move(r[n],s)}}delete(e){this.deleteChildren(e),this.runOp({type:Yr.Delete,id:e})}};function rh(i,e,t){if(i.length>0){let r=i[i.length-1];if(r.type===Hn.Update&&e.type===Hn.Update&&bc.equal(r.path,t)){Object.assign(r.props,e.props);return}}i.push(fe(U({},e),{path:t}))}var nh=class{constructor(e){this.ts=[],this.actual=[],this.reverse=[],this._current=e}update(e,t){if(e!=="")throw new Error("");this._current=t}push(e,t,r,n){rh(this.ts,t,e),rh(this.actual,r,e),rh(this.reverse,n,e)}result(){return{data:this._current,ts:this.ts,actual:this.actual,reverse:this.reverse.reverse()}}};function vc(i,e,t){return t instanceof On?new fa(i,e,t):t instanceof jt?new ha(i,e,t):t instanceof An?new Proxy(new Px(i,e,t),hP):t!==null&&typeof t=="object"?_x(t)?t:new Proxy(new Ox(i,e,t),fP):t}function ih(i){let e=new nh(i);return[vc(e,"",i),e]}function oh(i,e){let[t,r]=ih(i);return e(t),r.result()}function sh(i){return i instanceof fa||i instanceof ha?i._current:i!==null&&typeof i=="object"?i[Ax]:i}var bc;(function(r){function i(n,s){if(s.length===n.length)for(var l=0;l<n.length;){if(n[l]!==s[l])return!1;l+=1}else return!1;return!0}r.equal=i;function e(n,s,l){let c=t(l,n);if(c!==void 0&&typeof c=="object"&&c!==null){let f=U({},s);return Object.keys(c).forEach(h=>{delete f[h]}),f}else return s}r.removeOverridden=e;function t(n,s,l=0){if(s.length<=l)return n;if((n instanceof On||n instanceof fa)&&typeof s[l]=="string")return t(n.data(s[l]),s,l+1);if((n instanceof jt||n instanceof ha)&&typeof s[l]=="string")return t(n.data(s[l]),s,l+1);if(typeof s[l]=="number"&&Array.isArray(n))return t(n[s[l]],s,l+1);if(typeof s[l]=="string"&&typeof n=="object")return t(n[s[l]],s,l+1)}r.zoom=t})(bc||(bc={}));var ah=class{},Sc=class extends ah{constructor(e){super();this.id=e}},wc=class extends ah{constructor(e){super();this.data=e}};"use strict";var lh;try{lh=new TextDecoder}catch(i){}var ge,Vi,j=0;var Bx=[],ch=Bx,uh=0,Er={},ot,Ui,mn=0,qn=0,Qr,di,Cr=[],ft,Gx={useRecords:!1,mapsAsObjects:!0},Nc=class{},fh=new Nc;fh.name="MessagePack 0xC1";var gs=!1,mi=class{constructor(e){e&&(e.useRecords===!1&&e.mapsAsObjects===void 0&&(e.mapsAsObjects=!0),e.structures?e.structures.sharedLength=e.structures.length:e.getStructures&&((e.structures=[]).uninitialized=!0,e.structures.sharedLength=0)),Object.assign(this,e)}unpack(e,t){if(ge)return qx(()=>(_c(),this?this.unpack(e,t):mi.prototype.unpack.call(Gx,e,t)));Vi=t>-1?t:e.length,j=0,uh=0,qn=0,Ui=null,ch=Bx,Qr=null,ge=e;try{ft=e.dataView||(e.dataView=new DataView(e.buffer,e.byteOffset,e.byteLength))}catch(r){throw ge=null,e instanceof Uint8Array?r:new Error("Source must be a Uint8Array or Buffer but was a "+(e&&typeof e=="object"?e.constructor.name:typeof e))}if(this instanceof mi){if(Er=this,this.structures)return ot=this.structures,Cc();(!ot||ot.length>0)&&(ot=[])}else Er=Gx,(!ot||ot.length>0)&&(ot=[]);return Cc()}unpackMultiple(e,t){let r,n=0;try{gs=!0;let s=e.length,l=this?this.unpack(e,s):Ic.unpack(e,s);if(t){for(t(l);j<s;)if(n=j,t(Cc())===!1)return}else{for(r=[l];j<s;)n=j,r.push(Cc());return r}}catch(s){throw s.lastPosition=n,s.values=r,s}finally{gs=!1,_c()}}_mergeStructures(e,t){e=e||[];for(let r=0,n=e.length;r<n;r++){let s=e[r];s&&(s.isShared=!0,r>=32&&(s.highByte=r-32>>5))}e.sharedLength=e.length;for(let r in t||[])if(r>=0){let n=e[r],s=t[r];s&&(n&&((e.restoreStructures||(e.restoreStructures=[]))[r]=n),e[r]=s)}return this.structures=e}decode(e,t){return this.unpack(e,t)}};function Cc(){try{if(!Er.trusted&&!gs){let e=ot.sharedLength||0;e<ot.length&&(ot.length=e)}let i=Et();if(j==Vi)ot.restoreStructures&&jx(),ot=null,ge=null,di&&(di=null);else if(j>Vi){let e=new Error("Unexpected end of MessagePack data");throw e.incomplete=!0,e}else if(!gs)throw new Error("Data read, but end of buffer not reached");return i}catch(i){throw ot.restoreStructures&&jx(),_c(),(i instanceof RangeError||i.message.startsWith("Unexpected end of buffer"))&&(i.incomplete=!0),i}}function jx(){for(let i in ot.restoreStructures)ot[i]=ot.restoreStructures[i];ot.restoreStructures=null}function Et(){let i=ge[j++];if(i<160)if(i<128){if(i<64)return i;{let e=ot[i&63]||Er.getStructures&&Rx()[i&63];return e?(e.read||(e.read=hh(e,i&63)),e.read()):i}}else if(i<144)if(i-=128,Er.mapsAsObjects){let e={};for(let t=0;t<i;t++)e[kx()]=Et();return e}else{let e=new Map;for(let t=0;t<i;t++)e.set(Et(),Et());return e}else{i-=144;let e=new Array(i);for(let t=0;t<i;t++)e[t]=Et();return e}else if(i<192){let e=i-160;if(qn>=j)return Ui.slice(j-mn,(j+=e)-mn);if(qn==0&&Vi<140){let t=e<16?dh(e):Vx(e);if(t!=null)return t}return ph(e)}else{let e;switch(i){case 192:return null;case 193:return Qr?(e=Et(),e>0?Qr[1].slice(Qr.position1,Qr.position1+=e):Qr[0].slice(Qr.position0,Qr.position0-=e)):fh;case 194:return!1;case 195:return!0;case 196:return mh(ge[j++]);case 197:return e=ft.getUint16(j),j+=2,mh(e);case 198:return e=ft.getUint32(j),j+=4,mh(e);case 199:return vo(ge[j++]);case 200:return e=ft.getUint16(j),j+=2,vo(e);case 201:return e=ft.getUint32(j),j+=4,vo(e);case 202:if(e=ft.getFloat32(j),Er.useFloat32>2){let t=Tc[(ge[j]&127)<<1|ge[j+1]>>7];return j+=4,(t*e+(e>0?.5:-.5)>>0)/t}return j+=4,e;case 203:return e=ft.getFloat64(j),j+=8,e;case 204:return ge[j++];case 205:return e=ft.getUint16(j),j+=2,e;case 206:return e=ft.getUint32(j),j+=4,e;case 207:return Er.int64AsNumber?(e=ft.getUint32(j)*4294967296,e+=ft.getUint32(j+4)):e=ft.getBigUint64(j),j+=8,e;case 208:return ft.getInt8(j++);case 209:return e=ft.getInt16(j),j+=2,e;case 210:return e=ft.getInt32(j),j+=4,e;case 211:return Er.int64AsNumber?(e=ft.getInt32(j)*4294967296,e+=ft.getUint32(j+4)):e=ft.getBigInt64(j),j+=8,e;case 212:if(e=ge[j++],e==114)return Hx(ge[j++]&63);{let t=Cr[e];if(t)return t.read?(j++,t.read(Et())):t.noBuffer?(j++,t()):t(ge.subarray(j,++j));throw new Error("Unknown extension "+e)}case 213:return e=ge[j],e==114?(j++,Hx(ge[j++]&63,ge[j++])):vo(2);case 214:return vo(4);case 215:return vo(8);case 216:return vo(16);case 217:return e=ge[j++],qn>=j?Ui.slice(j-mn,(j+=e)-mn):dP(e);case 218:return e=ft.getUint16(j),j+=2,qn>=j?Ui.slice(j-mn,(j+=e)-mn):mP(e);case 219:return e=ft.getUint32(j),j+=4,qn>=j?Ui.slice(j-mn,(j+=e)-mn):gP(e);case 220:return e=ft.getUint16(j),j+=2,zx(e);case 221:return e=ft.getUint32(j),j+=4,zx(e);case 222:return e=ft.getUint16(j),j+=2,Fx(e);case 223:return e=ft.getUint32(j),j+=4,Fx(e);default:if(i>=224)return i-256;if(i===void 0){let t=new Error("Unexpected end of MessagePack data");throw t.incomplete=!0,t}throw new Error("Unknown MessagePack token "+i)}}}var pP=/^[a-zA-Z_$][a-zA-Z\d_$]*$/;function hh(i,e){function t(){if(t.count++>2){let n=i.read=new Function("r","return function(){return {"+i.map(s=>pP.test(s)?s+":r()":"["+JSON.stringify(s)+"]:r()").join(",")+"}}")(Et);return i.highByte===0&&(i.read=Ex(e,i.read)),n()}let r={};for(let n=0,s=i.length;n<s;n++){let l=i[n];r[l]=Et()}return r}return t.count=0,i.highByte===0?Ex(e,t):t}var Ex=(i,e)=>function(){let t=ge[j++];if(t===0)return e();let r=i<32?-(i+(t<<5)):i+(t<<5),n=ot[r]||Rx()[r];if(!n)throw new Error("Record id is not defined for "+r);return n.read||(n.read=hh(n,i)),n.read()};function Rx(){let i=qx(()=>(ge=null,Er.getStructures()));return ot=Er._mergeStructures(i,ot)}var ph=Lc,dP=Lc,mP=Lc,gP=Lc;function Lc(i){let e;if(i<16&&(e=dh(i)))return e;if(i>64&&lh)return lh.decode(ge.subarray(j,j+=i));let t=j+i,r=[];for(e="";j<t;){let n=ge[j++];if((n&128)==0)r.push(n);else if((n&224)==192){let s=ge[j++]&63;r.push((n&31)<<6|s)}else if((n&240)==224){let s=ge[j++]&63,l=ge[j++]&63;r.push((n&31)<<12|s<<6|l)}else if((n&248)==240){let s=ge[j++]&63,l=ge[j++]&63,c=ge[j++]&63,f=(n&7)<<18|s<<12|l<<6|c;f>65535&&(f-=65536,r.push(f>>>10&1023|55296),f=56320|f&1023),r.push(f)}else r.push(n);r.length>=4096&&(e+=ir.apply(String,r),r.length=0)}return r.length>0&&(e+=ir.apply(String,r)),e}function zx(i){let e=new Array(i);for(let t=0;t<i;t++)e[t]=Et();return e}function Fx(i){if(Er.mapsAsObjects){let e={};for(let t=0;t<i;t++)e[kx()]=Et();return e}else{let e=new Map;for(let t=0;t<i;t++)e.set(Et(),Et());return e}}var ir=String.fromCharCode;function Vx(i){let e=j,t=new Array(i);for(let r=0;r<i;r++){let n=ge[j++];if((n&128)>0){j=e;return}t[r]=n}return ir.apply(String,t)}function dh(i){if(i<4)if(i<2){if(i===0)return"";{let e=ge[j++];if((e&128)>1){j-=1;return}return ir(e)}}else{let e=ge[j++],t=ge[j++];if((e&128)>0||(t&128)>0){j-=2;return}if(i<3)return ir(e,t);let r=ge[j++];if((r&128)>0){j-=3;return}return ir(e,t,r)}else{let e=ge[j++],t=ge[j++],r=ge[j++],n=ge[j++];if((e&128)>0||(t&128)>0||(r&128)>0||(n&128)>0){j-=4;return}if(i<6){if(i===4)return ir(e,t,r,n);{let s=ge[j++];if((s&128)>0){j-=5;return}return ir(e,t,r,n,s)}}else if(i<8){let s=ge[j++],l=ge[j++];if((s&128)>0||(l&128)>0){j-=6;return}if(i<7)return ir(e,t,r,n,s,l);let c=ge[j++];if((c&128)>0){j-=7;return}return ir(e,t,r,n,s,l,c)}else{let s=ge[j++],l=ge[j++],c=ge[j++],f=ge[j++];if((s&128)>0||(l&128)>0||(c&128)>0||(f&128)>0){j-=8;return}if(i<10){if(i===8)return ir(e,t,r,n,s,l,c,f);{let h=ge[j++];if((h&128)>0){j-=9;return}return ir(e,t,r,n,s,l,c,f,h)}}else if(i<12){let h=ge[j++],d=ge[j++];if((h&128)>0||(d&128)>0){j-=10;return}if(i<11)return ir(e,t,r,n,s,l,c,f,h,d);let x=ge[j++];if((x&128)>0){j-=11;return}return ir(e,t,r,n,s,l,c,f,h,d,x)}else{let h=ge[j++],d=ge[j++],x=ge[j++],g=ge[j++];if((h&128)>0||(d&128)>0||(x&128)>0||(g&128)>0){j-=12;return}if(i<14){if(i===12)return ir(e,t,r,n,s,l,c,f,h,d,x,g);{let w=ge[j++];if((w&128)>0){j-=13;return}return ir(e,t,r,n,s,l,c,f,h,d,x,g,w)}}else{let w=ge[j++],S=ge[j++];if((w&128)>0||(S&128)>0){j-=14;return}if(i<15)return ir(e,t,r,n,s,l,c,f,h,d,x,g,w,S);let D=ge[j++];if((D&128)>0){j-=15;return}return ir(e,t,r,n,s,l,c,f,h,d,x,g,w,S,D)}}}}}function mh(i){return Er.copyBuffers?Uint8Array.prototype.slice.call(ge,j,j+=i):ge.subarray(j,j+=i)}function vo(i){let e=ge[j++];if(Cr[e])return Cr[e](ge.subarray(j,j+=i));throw new Error("Unknown extension type "+e)}var Ux=new Array(4096);function kx(){let i=ge[j++];if(i>=160&&i<192){if(i=i-160,qn>=j)return Ui.slice(j-mn,(j+=i)-mn);if(!(qn==0&&Vi<180))return ph(i)}else return j--,Et();let e=(i<<5^(i>1?ft.getUint16(j):i>0?ge[j]:0))&4095,t=Ux[e],r=j,n=j+i-3,s,l=0;if(t&&t.bytes==i){for(;r<n;){if(s=ft.getUint32(r),s!=t[l++]){r=1879048192;break}r+=4}for(n+=3;r<n;)if(s=ge[r++],s!=t[l++]){r=1879048192;break}if(r===n)return j=r,t.string;n-=3,r=j}for(t=[],Ux[e]=t,t.bytes=i;r<n;)s=ft.getUint32(r),t.push(s),r+=4;for(n+=3;r<n;)s=ge[r++],t.push(s);let c=i<16?dh(i):Vx(i);return c!=null?t.string=c:t.string=ph(i)}var Hx=(i,e)=>{var t=Et();let r=i;e!==void 0&&(i=i<32?-((e<<5)+i):(e<<5)+i,t.highByte=e);let n=ot[i];return n&&n.isShared&&((ot.restoreStructures||(ot.restoreStructures=[]))[i]=n),ot[i]=t,t.read=hh(t,r),t.read()},Wx=typeof self=="object"?self:global;Cr[0]=()=>{};Cr[0].noBuffer=!0;Cr[101]=()=>{let i=Et();return(Wx[i[0]]||Error)(i[1])};Cr[105]=i=>{let e=ft.getUint32(j-4);di||(di=new Map);let t=ge[j],r;t>=144&&t<160||t==220||t==221?r=[]:r={};let n={target:r};di.set(e,n);let s=Et();return n.used?Object.assign(r,s):(n.target=s,s)};Cr[112]=i=>{let e=ft.getUint32(j-4),t=di.get(e);return t.used=!0,t.target};Cr[115]=()=>new Set(Et());var gh=["Int8","Uint8","Uint8Clamped","Int16","Uint16","Int32","Uint32","Float32","Float64","BigInt64","BigUint64"].map(i=>i+"Array");Cr[116]=i=>{let e=i[0],t=gh[e];if(!t)throw new Error("Could not find typed array for code "+e);return new Wx[t](Uint8Array.prototype.slice.call(i,1).buffer)};Cr[120]=()=>{let i=Et();return new RegExp(i[0],i[1])};Cr[98]=i=>{let e=(i[0]<<24)+(i[1]<<16)+(i[2]<<8)+i[3],t=j;j+=e-4,Qr=[Et(),Et()],Qr.position0=0,Qr.position1=0;let r=j;j=t;try{return Et()}finally{j=r}};Cr[255]=i=>i.length==4?new Date((i[0]*16777216+(i[1]<<16)+(i[2]<<8)+i[3])*1e3):i.length==8?new Date(((i[0]<<22)+(i[1]<<14)+(i[2]<<6)+(i[3]>>2))/1e6+((i[3]&3)*4294967296+i[4]*16777216+(i[5]<<16)+(i[6]<<8)+i[7])*1e3):i.length==12?new Date(((i[0]<<24)+(i[1]<<16)+(i[2]<<8)+i[3])/1e6+((i[4]&128?-281474976710656:0)+i[6]*1099511627776+i[7]*4294967296+i[8]*16777216+(i[9]<<16)+(i[10]<<8)+i[11])*1e3):new Date("invalid");function qx(i){let e=Vi,t=j,r=uh,n=mn,s=qn,l=Ui,c=ch,f=di,h=Qr,d=new Uint8Array(ge.slice(0,Vi)),x=ot,g=ot.slice(0,ot.length),w=Er,S=gs,D=i();return Vi=e,j=t,uh=r,mn=n,qn=s,Ui=l,ch=c,di=f,Qr=h,ge=d,gs=S,ot=x,ot.splice(0,ot.length,...g),Er=w,ft=new DataView(ge.buffer,ge.byteOffset,ge.byteLength),D}function _c(){ge=null,di=null,ot=null}function $x(i){i.unpack?Cr[i.type]=i.unpack:Cr[i.type]=i}var Tc=new Array(147);for(let i=0;i<256;i++)Tc[i]=+("1e"+Math.floor(45.15-i*.30103));var Ic=new mi({useRecords:!1}),yP=Ic.unpack,xP=Ic.unpackMultiple,vP=Ic.unpack;var bP=new Float32Array(1),FU=new Uint8Array(bP.buffer,0,4);"use strict";var Mc;try{Mc=new TextEncoder}catch(i){}var Ac,yh,Oc=typeof Buffer!="undefined",xh=Oc?Buffer.allocUnsafeSlow:Uint8Array,Kx=Oc?Buffer:Uint8Array,Xx=Oc?4294967296:2144337920,Z,Vt,F=0,$n,Jn=null,SP=/[\u0080-\uFFFF]/,pa=Symbol("record-id"),ys=class extends mi{constructor(e){super(e);this.offset=0;let t,r,n,s,l,c,f=0,h=Kx.prototype.utf8Write?function(b,R,T){return Z.utf8Write(b,R,T)}:Mc&&Mc.encodeInto?function(b,R){return Mc.encodeInto(b,Z.subarray(R)).written}:!1,d=this;e||(e={});let x=e&&e.sequential,g=e.structures||e.saveStructures,w=e.maxSharedStructures;if(w==null&&(w=g?32:0),w>8160)throw new Error("Maximum maxSharedStructure is 8160");let S=e.maxOwnStructures;S==null&&(S=g?32:64),x&&!e.saveStructures&&(this.structures=[]);let D=w>32||S+w>64,C=w+64,G=w+S+64;if(G>8256)throw new Error("Maximum maxSharedStructure + maxOwnStructure is 8192");let B=[],P=0,W=0;this.pack=this.encode=function(b,R){if(Z||(Z=new xh(8192),Vt=new DataView(Z.buffer,0,8192),F=0),$n=Z.length-10,$n-F<2048?(Z=new xh(Z.length),Vt=new DataView(Z.buffer,0,Z.length),$n=Z.length-10,F=0):F=F+7&2147483640,r=F,c=d.structuredClone?new Map:null,d.bundleStrings?(Jn=["",""],Z[F++]=214,Z[F++]=98,Jn.position=F-r,F+=4):Jn=null,n=d.structures,n){n.uninitialized&&(n=d._mergeStructures(d.getStructures()));let T=n.sharedLength||0;if(T>w)throw new Error("Shared structures is larger than maximum shared structures, try increasing maxSharedStructures to "+n.sharedLength);if(!n.transitions){n.transitions=Object.create(null);for(let z=0;z<T;z++){let A=n[z];if(!A)continue;let $,he=n.transitions;for(let re=0,Ne=A.length;re<Ne;re++){let ye=A[re];$=he[ye],$||($=he[ye]=Object.create(null)),he=$}he[pa]=z+64}f=T}x||(n.nextId=T+64)}s&&(s=!1),l=n||[];try{if(M(b),Jn){Vt.setUint32(Jn.position+r,F-Jn.position-r);let T=Jn;Jn=null,M(T[0]),M(T[1])}if(d.offset=F,c&&c.idsToInsert){F+=c.idsToInsert.length*6,F>$n&&E(F),d.offset=F;let T=NP(Z.subarray(r,F),c.idsToInsert);return c=null,T}return R&e0?(Z.start=r,Z.end=F,Z):Z.subarray(r,F)}finally{if(n){if(W<10&&W++,P>1e4)n.transitions=null,W=0,P=0,B.length>0&&(B=[]);else if(B.length>0&&!x){for(let T=0,z=B.length;T<z;T++)B[T][pa]=0;B=[]}if(s&&d.saveStructures){let T=n.sharedLength||w;n.length>T&&(n=n.slice(0,T));let z=Z.subarray(r,F);return d.saveStructures(n,f)===!1?(d._mergeStructures(d.getStructures()),d.pack(b)):(f=T,z)}}R&_P&&(F=r)}};let M=b=>{F>$n&&(Z=E(F));var R=typeof b,T;if(R==="string"){let z=b.length;if(Jn&&z>=8&&z<4096){let he=SP.test(b);Jn[he?0:1]+=b,Z[F++]=193,M(he?-z:z);return}let A;z<32?A=1:z<256?A=2:z<65536?A=3:A=5;let $=z*3;if(F+$>$n&&(Z=E(F+$)),z<64||!h){let he,re,Ne,ye=F+A;for(he=0;he<z;he++)re=b.charCodeAt(he),re<128?Z[ye++]=re:re<2048?(Z[ye++]=re>>6|192,Z[ye++]=re&63|128):(re&64512)==55296&&((Ne=b.charCodeAt(he+1))&64512)==56320?(re=65536+((re&1023)<<10)+(Ne&1023),he++,Z[ye++]=re>>18|240,Z[ye++]=re>>12&63|128,Z[ye++]=re>>6&63|128,Z[ye++]=re&63|128):(Z[ye++]=re>>12|224,Z[ye++]=re>>6&63|128,Z[ye++]=re&63|128);T=ye-F-A}else T=h(b,F+A,$);T<32?Z[F++]=160|T:T<256?(A<2&&Z.copyWithin(F+2,F+1,F+1+T),Z[F++]=217,Z[F++]=T):T<65536?(A<3&&Z.copyWithin(F+3,F+2,F+2+T),Z[F++]=218,Z[F++]=T>>8,Z[F++]=T&255):(A<5&&Z.copyWithin(F+5,F+3,F+3+T),Z[F++]=219,Vt.setUint32(F,T),F+=4),F+=T}else if(R==="number")if(b>>>0===b)b<64?Z[F++]=b:b<256?(Z[F++]=204,Z[F++]=b):b<65536?(Z[F++]=205,Z[F++]=b>>8,Z[F++]=b&255):(Z[F++]=206,Vt.setUint32(F,b),F+=4);else if(b>>0===b)b>=-32?Z[F++]=256+b:b>=-128?(Z[F++]=208,Z[F++]=b+256):b>=-32768?(Z[F++]=209,Vt.setInt16(F,b),F+=2):(Z[F++]=210,Vt.setInt32(F,b),F+=4);else{let z;if((z=this.useFloat32)>0&&b<4294967296&&b>=-2147483648){Z[F++]=202,Vt.setFloat32(F,b);let A;if(z<4||(A=b*Tc[(Z[F]&127)<<1|Z[F+1]>>7])>>0===A){F+=4;return}else F--}Z[F++]=203,Vt.setFloat64(F,b),F+=8}else if(R==="object")if(!b)Z[F++]=192;else{if(c){let A=c.get(b);if(A){if(!A.id){let $=c.idsToInsert||(c.idsToInsert=[]);A.id=$.push(A)}Z[F++]=214,Z[F++]=112,Vt.setUint32(F,A.id),F+=4;return}else c.set(b,{offset:F-r})}let z=b.constructor;if(z===Object)q(b,!0);else if(z===Array){T=b.length,T<16?Z[F++]=144|T:T<65536?(Z[F++]=220,Z[F++]=T>>8,Z[F++]=T&255):(Z[F++]=221,Vt.setUint32(F,T),F+=4);for(let A=0;A<T;A++)M(b[A])}else if(z===Map){T=b.size,T<16?Z[F++]=128|T:T<65536?(Z[F++]=222,Z[F++]=T>>8,Z[F++]=T&255):(Z[F++]=223,Vt.setUint32(F,T),F+=4);for(let[A,$]of b)M(A),M($)}else{for(let A=0,$=Ac.length;A<$;A++){let he=yh[A];if(b instanceof he){let re=Ac[A];if(re.write){re.type&&(Z[F++]=212,Z[F++]=re.type,Z[F++]=0),M(re.write.call(this,b));return}let Ne=Z,ye=Vt,Me=F;Z=null;let Fe;try{Fe=re.pack.call(this,b,k=>(Z=Ne,Ne=null,F+=k,F>$n&&E(F),{target:Z,targetView:Vt,position:F-k}),M)}finally{Ne&&(Z=Ne,Vt=ye,F=Me,$n=Z.length-10)}Fe&&(Fe.length+F>$n&&E(Fe.length+F),F=wP(Fe,Z,F,re.type));return}}q(b,!b.hasOwnProperty)}}else if(R==="boolean")Z[F++]=b?195:194;else if(R==="bigint"){if(b<BigInt(1)<<BigInt(63)&&b>=-(BigInt(1)<<BigInt(63)))Z[F++]=211,Vt.setBigInt64(F,b);else if(b<BigInt(1)<<BigInt(64)&&b>0)Z[F++]=207,Vt.setBigUint64(F,b);else if(this.largeBigIntToFloat)Z[F++]=203,Vt.setFloat64(F,Number(b));else throw new RangeError(b+" was too large to fit in MessagePack 64-bit integer format, set largeBigIntToFloat to convert to float-64");F+=8}else if(R==="undefined")this.encodeUndefinedAsNil?Z[F++]=192:(Z[F++]=212,Z[F++]=0,Z[F++]=0);else if(R==="function")M(this.writeFunction&&this.writeFunction());else throw new Error("Unknown type: "+R)},q=this.useRecords===!1?this.variableMapSize?b=>{let R=Object.keys(b),T=R.length;T<16?Z[F++]=128|T:T<65536?(Z[F++]=222,Z[F++]=T>>8,Z[F++]=T&255):(Z[F++]=223,Vt.setUint32(F,T),F+=4);let z;for(let A=0;A<T;A++)M(z=R[A]),M(b[z])}:(b,R)=>{Z[F++]=222;let T=F-r;F+=2;let z=0;for(let A in b)(R||b.hasOwnProperty(A))&&(M(A),M(b[A]),z++);Z[T+++r]=z>>8,Z[T+r]=z&255}:b=>{let R=Object.keys(b),T,z=l.transitions||(l.transitions=Object.create(null)),A=0;for(let he=0,re=R.length;he<re;he++){let Ne=R[he];T=z[Ne],T||(T=z[Ne]=Object.create(null),A++),z=T}let $=z[pa];if($)$>=96&&D?(Z[F++]=(($-=96)&31)+96,Z[F++]=$>>5):Z[F++]=$;else{$=l.nextId,$||($=64),$<C&&this.shouldShareStructure&&!this.shouldShareStructure(R)?($=l.nextOwnId,$<G||($=C),l.nextOwnId=$+1):($>=G&&($=C),l.nextId=$+1);let he=R.highByte=$>=96&&D?$-96>>5:-1;z[pa]=$,l[$-64]=R,$<C?(R.isShared=!0,l.sharedLength=$-63,s=!0,he>=0?(Z[F++]=($&31)+96,Z[F++]=he):Z[F++]=$):(he>=0?(Z[F++]=213,Z[F++]=114,Z[F++]=($&31)+96,Z[F++]=he):(Z[F++]=212,Z[F++]=114,Z[F++]=$),A&&(P+=W*A),B.length>=S&&(B.shift()[pa]=0),B.push(z),M(R))}for(let he=0,re=R.length;he<re;he++)M(b[R[he]])},E=b=>{let R;if(b>16777216){if(b-r>Xx)throw new Error("Packed buffer would be larger than maximum buffer size");R=Math.min(Xx,Math.round(Math.max((b-r)*(b>67108864?1.25:2),4194304)/4096)*4096)}else R=(Math.max(b-r<<2,Z.length-1)>>12)+1<<12;let T=new xh(R);return Vt=new DataView(T.buffer,0,R),Z.copy?Z.copy(T,0,r,b):T.set(Z.slice(r,b)),F-=r,r=0,$n=T.length-10,Z=T}}useBuffer(e){Z=e,Vt=new DataView(Z.buffer,Z.byteOffset,Z.byteLength),F=0}};yh=[Date,Set,Error,RegExp,ArrayBuffer,Object.getPrototypeOf(Uint8Array.prototype).constructor,Nc];Ac=[{pack(i,e,t){let r=i.getTime()/1e3;if((this.useTimestamp32||i.getMilliseconds()===0)&&r>=0&&r<4294967296){let{target:n,targetView:s,position:l}=e(6);n[l++]=214,n[l++]=255,s.setUint32(l,r)}else if(r>0&&r<17179869184){let{target:n,targetView:s,position:l}=e(10);n[l++]=215,n[l++]=255,s.setUint32(l,i.getMilliseconds()*4e6+(r/1e3/4294967296>>0)),s.setUint32(l+4,r)}else if(isNaN(r)){if(this.onInvalidDate)return e(0),t(this.onInvalidDate());let{target:n,targetView:s,position:l}=e(3);n[l++]=212,n[l++]=255,n[l++]=255}else{let{target:n,targetView:s,position:l}=e(15);n[l++]=199,n[l++]=12,n[l++]=255,s.setUint32(l,i.getMilliseconds()*1e6),s.setBigInt64(l+4,BigInt(Math.floor(r)))}}},{pack(i,e,t){let r=Array.from(i),{target:n,position:s}=e(this.structuredClone?3:0);this.structuredClone&&(n[s++]=212,n[s++]=115,n[s++]=0),t(r)}},{pack(i,e,t){let{target:r,position:n}=e(this.structuredClone?3:0);this.structuredClone&&(r[n++]=212,r[n++]=101,r[n++]=0),t([i.name,i.message])}},{pack(i,e,t){let{target:r,position:n}=e(this.structuredClone?3:0);this.structuredClone&&(r[n++]=212,r[n++]=120,r[n++]=0),t([i.source,i.flags])}},{pack(i,e){this.structuredClone?Zx(i,16,e):Yx(Oc?Buffer.from(i):new Uint8Array(i),e)}},{pack(i,e){let t=i.constructor;t!==Kx&&this.structuredClone?Zx(i,gh.indexOf(t.name),e):Yx(i,e)}},{pack(i,e){let{target:t,position:r}=e(1);t[r]=193}}];function Zx(i,e,t,r){let n=i.byteLength;if(n+1<256){var{target:s,position:l}=t(4+n);s[l++]=199,s[l++]=n+1}else if(n+1<65536){var{target:s,position:l}=t(5+n);s[l++]=200,s[l++]=n+1>>8,s[l++]=n+1&255}else{var{target:s,position:l,targetView:c}=t(7+n);s[l++]=201,c.setUint32(l,n+1),l+=4}s[l++]=116,s[l++]=e,s.set(new Uint8Array(i.buffer,i.byteOffset,i.byteLength),l)}function Yx(i,e){let t=i.byteLength;var r,n;if(t<256){var{target:r,position:n}=e(t+2);r[n++]=196,r[n++]=t}else if(t<65536){var{target:r,position:n}=e(t+3);r[n++]=197,r[n++]=t>>8,r[n++]=t&255}else{var{target:r,position:n,targetView:s}=e(t+5);r[n++]=198,s.setUint32(n,t),n+=4}r.set(i,n)}function wP(i,e,t,r){let n=i.length;switch(n){case 1:e[t++]=212;break;case 2:e[t++]=213;break;case 4:e[t++]=214;break;case 8:e[t++]=215;break;case 16:e[t++]=216;break;default:n<256?(e[t++]=199,e[t++]=n):n<65536?(e[t++]=200,e[t++]=n>>8,e[t++]=n&255):(e[t++]=201,e[t++]=n>>24,e[t++]=n>>16&255,e[t++]=n>>8&255,e[t++]=n&255)}return e[t++]=r,e.set(i,t),t+=n,t}function NP(i,e){let t,r=e.length*6,n=i.length-r;for(e.sort((s,l)=>s.offset>l.offset?1:-1);t=e.pop();){let s=t.offset,l=t.id;i.copyWithin(s+r,s,n),r-=6;let c=s+r;i[c++]=214,i[c++]=105,i[c++]=l>>24,i[c++]=l>>16&255,i[c++]=l>>8&255,i[c++]=l&255,n=s}return i}function bo(i){if(i.Class){if(!i.pack&&!i.write)throw new Error("Extension has no pack or write function");if(i.pack&&!i.type)throw new Error("Extension has no type (numeric code to identify the extension)");yh.unshift(i.Class),Ac.unshift(i)}$x(i)}var Qx=new ys({useRecords:!1}),CP=Qx.pack,LP=Qx.pack;var e0=512,_P=1024;var t0=new ys({structuredClone:!0});bo({Class:An.prototype.constructor,type:1,write(i){return U({},i)},read(i){return Object.setPrototypeOf(i,An.prototype),i}});bo({Class:jt.prototype.constructor,type:2,write(i){return[...i]},read(i){return Object.setPrototypeOf(i,jt.prototype),i}});bo({Class:On.prototype.constructor,type:3,write(i){return[...i]},read(i){return Object.setPrototypeOf(i,On.prototype),i}});bo({Class:Sc.prototype.constructor,type:4,write(i){return i.id},read(i){return new Sc(i)}});bo({Class:wc.prototype.constructor,type:5,write(i){return i.data},read(i){return new wc(i)}});function TP(i){var e=0;if(i.length===0)return e;for(let t=0;t<i.length;t++){let r=i[t];e=(e<<5)-e+r,e=e&e}return e}var Pc;(function(r){function i(n){return t0.pack(n)}r.serialize=i;function e(n){return t0.unpack(n)}r.deserialize=e;function t(n){return TP(i(n)).toString()}r.checksum=t})(Pc||(Pc={}));var Dc;(function(t){t.all=["PointLight","SpotLight","DirectionalLight","HemisphereLight"];function e(r){return t.all.includes(r)}t.is=e})(Dc||(Dc={}));var Bc;(function(t){function i(r){return e(r)}t.defaultData=i;function e(r){if(r==="PointLight")return{type:r,color:kn.white,intensity:1,distance:2e3,decay:1,shadows:!0,shadowResolution:1024,shadowRadius:1,depth:2500,helper:!0};if(r==="SpotLight")return{type:r,color:kn.white,intensity:1,distance:2e3,decay:1,shadows:!0,penumbra:0,angle:30/180*Math.PI,depth:2500,helper:!0};if(r==="DirectionalLight")return{type:r,color:kn.white,intensity:1,shadows:!0,size:2500,depth:2500,helper:!0};throw new Error("not implemented")}})(Bc||(Bc={}));var xs;(function(r){r[r.Front=0]="Front",r[r.Back=1]="Back",r[r.Double=2]="Double"})(xs||(xs={}));var vh;(function(t){t.defaultData={castShadow:!0,receiveShadow:!0};function e(r,n){return r.castShadow===n.castShadow&&r.receiveShadow===n.receiveShadow}t.equals=e})(vh||(vh={}));var bh;(function(t){t.defaultData={flatShading:!1,wireframe:!1,side:0};function e(r,n){return r.flatShading===n.flatShading&&r.side===n.side&&r.wireframe===n.wireframe}t.equals=e})(bh||(bh={}));var Gc;(function(e){e.defaultData=fe(U(U({},bh.defaultData),vh.defaultData),{cloner:null})})(Gc||(Gc={}));var Lr;(function(n){n[n.Left=1]="Left",n[n.Right=2]="Right",n[n.Center=3]="Center",n[n.Justify=4]="Justify"})(Lr||(Lr={}));var gi;(function(r){r[r.Top=1]="Top",r[r.Center=2]="Center",r[r.Bottom=3]="Bottom"})(gi||(gi={}));var ki;(function(r){r[r.None=1]="None",r[r.Upper=2]="Upper",r[r.Lower=3]="Lower"})(ki||(ki={}));var jc;(function(e){e.defaultData={width:100,height:100,horizontalAlign:1,verticalAlign:1,fontSize:16,lineHeight:1.5,letterSpacing:1,text:"",textTransform:1,color:kn.fromHexAndA(6974058,1),alpha:1,font:"roboto_regular"}})(jc||(jc={}));var Zt;(function(n){n[n.Normal=0]="Normal",n[n.Multiply=1]="Multiply",n[n.Screen=2]="Screen",n[n.Overlay=3]="Overlay"})(Zt||(Zt={}));var vs;(function(r){r[r.Linear=0]="Linear",r[r.Radial=1]="Radial",r[r.Polar=2]="Polar"})(vs||(vs={}));var Ec;(function(r){r[r.RepeatWrapping=1e3]="RepeatWrapping",r[r.ClampToEdgeWrapping=1001]="ClampToEdgeWrapping",r[r.MirroredRepeatWrapping=1002]="MirroredRepeatWrapping"})(Ec||(Ec={}));var Rc;(function(n){n[n.UV=0]="UV",n[n.Planar=1]="Planar",n[n.Spherical=2]="Spherical",n[n.Cylindrical=3]="Cylindrical"})(Rc||(Rc={}));var zc;(function(s){s[s.Simplex=0]="Simplex",s[s.SimplexFractal=1]="SimplexFractal",s[s.Ashima=2]="Ashima",s[s.Fbm=3]="Fbm",s[s.Perlin=4]="Perlin"})(zc||(zc={}));var bs;(function(r){function i(n,s){return n==="light"&&s?e(s):t(n)}r.defaultData=i;function e(n){switch(n){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:.2,g:.2,b:.2,a:1},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 t(n){switch(n){case"texture":return{alpha:1,visible:!0,size:[128,128],mode:0,axis:ds.x,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:Zr.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],[0,0,0,1],[0,0,0,1],[0,0,0,1],[0,0,0,1],[0,0,0,1],[0,0,0,1],[0,0,0,1],[0,0,0,1]],steps:[0,1,1,1,1,1,1,1,1,1],num:2,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:fe(U({},Zr.fromHex(6710886)),{a:1}),colorB:fe(U({},Zr.fromHex(6710886)),{a:1}),colorC:fe(U({},Zr.fromHex(16777215)),{a:1}),colorD:fe(U({},Zr.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:kn.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"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}}}})(bs||(bs={}));var Ss;(function(c){function i(f){return!f.layers.some(d=>{if(d.data.type==="texture"&&d.data.projection!==0||d.data.type==="depth"&&!d.data.isWorldSpace||d.data.type==="noise"||d.data.type==="displace")return!0})&&!t(f)}c.isMergable=i;function e(f){let h="";return f.layers.forEach(d=>{Object.entries(d.data).forEach(([x,g])=>{h+=`${x}${g}`,Array.isArray(g)?g.forEach(w=>h+=`${w}`):typeof g=="object"?Object.values(g).forEach(w=>{typeof w=="number"?h+=`${w.toFixed(4)}`:h+=`${w}`}):h+=`${g}`})}),h}c.getHash=e;function t(f){let h=0;for(let d of f.layers)"alpha"in d.data&&d.data.type!=="light"&&d.data.type!=="fresnel"&&(h+=(1-h)*d.data.alpha);return h<1}c.isTransparent=t;function r(){return{layers:new jt}}c.defaultEmptyData=r;function n(f="layer1",h="layer2"){return s("phong",f,h)}c.defaultData=n;function s(f,h="layer1",d="layer2"){let x=new jt;return x.push({fi:0,data:bs.defaultData("light",f),id:h}),x.push({fi:1,data:bs.defaultData("color"),id:d}),{layers:x}}c.defaultTwoLayerData=s;function l(f,h="basic",d="layer1",x="layer2"){let g=bs.defaultData("texture");Object.assign(g.texture,{image:f});let w=new jt;return w.push({fi:0,data:g,id:d}),w.push({fi:1,data:bs.defaultData("light",h),id:x}),{layers:w}}c.defaultTwoLayerTextureData=l})(Ss||(Ss={}));var ws;(function(r){function i(){return{points:new jt,roundness:0,shapeHoles:[],isClosed:!1}}r.defaultData=i;function e(n,s){let{points:l}=s;if(l){for(let c of l)if(c.data.position[0]===n[0]&&c.data.position[1]===n[1])return!0}return!1}r.isOverlappingExistingPoint=e;function t(n,s){let l=n.controlNext,c=s.controlPrevious;return n.position[0]===l.position[0]&&n.position[1]===l.position[1]&&s.position[0]===c.position[0]&&s.position[1]===c.position[1]}r.isStraightLine=t})(ws||(ws={}));var Fc;(function(e){function i(t){return t==="PolygonGeometry"||t==="RectangleGeometry"||t==="StarGeometry"||t==="TriangleGeometry"||t==="EllipseGeometry"}e.is2DParametricMesh=i})(Fc||(Fc={}));var Vc;(function(e){function i(t){if(t==="RectangleGeometry")return{width:320,height:320,type:t,cornerRadius:[0,0,0,0],cornerType:0,depth:0,extrudeBevelSize:0,extrudeBevelSegments:1,surfaceMaxCount:1};if(t==="VectorGeometry")return{width:100,height:100,type:t,subdivisions:12,shape:ws.defaultData(),depth:0,extrudeBevelSize:0,extrudeBevelSegments:1,surfaceMaxCount:1};throw new Error("not implemented")}e.defaultData=i})(Vc||(Vc={}));var da;(function(n){n.identity=fe(U({},mc.identity),{hiddenMatrix:Fi.identity});function e(s){return{position:s.position,rotation:s.rotation,scale:s.scale,hiddenMatrix:s.hiddenMatrix}}n.fromObject=e;function t(s,l){return{position:(l==null?void 0:l.position)||s.position,rotation:(l==null?void 0:l.rotation)||s.rotation,scale:(l==null?void 0:l.scale)||s.scale,hiddenMatrix:(l==null?void 0:l.hiddenMatrix)||s.hiddenMatrix}}n.merge=t;function r(s,l){return{position:ms.isEqual(s.position,l.position)?null:l.position,rotation:ms.isEqual(s.rotation,l.rotation)?null:l.rotation,scale:ms.isEqual(s.scale,l.scale)?null:l.scale,hiddenMatrix:Fi.isEqual(s.hiddenMatrix,l.hiddenMatrix)?null:l.hiddenMatrix}}n.diff=r})(da||(da={}));var Hi;(function(e){e.defaultData=U({states:new jt,events:new jt,visible:!0,raycastLock:!1},da.identity)})(Hi||(Hi={}));var r0;(function(e){e.defaultData=U({type:"Empty"},Hi.defaultData)})(r0||(r0={}));var Sh;(function(e){e.defaultData=U(U({type:"Mesh"},Hi.defaultData),Gc.defaultData)})(Sh||(Sh={}));var n0;(function(e){e.defaultData=U(U({type:"TextFrame"},Hi.defaultData),jc.defaultData)})(n0||(n0={}));var Uc;(function(e){e.defaultData=U(U(U({},Hi.defaultData),da.identity),xo.defaultData)})(Uc||(Uc={}));var i0;(function(e){function i(t){return U(U({},Hi.defaultData),Bc.defaultData(t))}e.defaultData=i})(i0||(i0={}));var o0;(function(t){t.defaultCamera=U({position:[0,0,1e3],scale:[1,1,1],rotation:[0,0,0],hiddenMatrix:Fi.identity,name:"Play Camera",visible:!0,raycastLock:!1,states:new jt,events:new jt},xo.defaultData),t.defaultMeshObject=fe(U(U({name:"Rectangle"},Hi.defaultData),Sh.defaultData),{geometry:Vc.defaultData("RectangleGeometry"),material:Ss.defaultTwoLayerData("basic","layer1","layer2")})})(o0||(o0={}));var s0;(function(t){function i(r,n){if(n===void 0)return r;let s=U({},r);return"material"in s&&"material"in n&&n.material&&(s.material=oh(s.material,l=>{if(typeof l!="string")for(let[c,f]of Object.entries(n.material.layers)){let h=l.layers.data(c);h&&yo(h,f)}}).data),s.materials&&n.materials&&(s.materials=oh(s.materials,l=>{var c,f;for(let h=0;h<s.materials.length;h++){let d=n.materials[h];if(typeof d!="string")for(let[x,g]of Object.entries(d.layers)){let w=(f=(c=l[h])==null?void 0:c.layers)==null?void 0:f.data(x);w&&yo(w,g)}}}).data),s}t.patchMaterialState=i;function e(r,n){var l,c;if(n===void 0)return r;let s=U({},r);if(Object.assign(s,da.merge(s,n)),ps.is(r.type)){s.orthographic=U({},s.orthographic),s.perspective=U({},s.perspective);let f=n;((l=f.orthographic)==null?void 0:l.zoom)!==void 0&&(s.orthographic.zoom=f.orthographic.zoom),((c=f.perspective)==null?void 0:c.zoom)!==void 0&&(s.perspective.zoom=f.perspective.zoom)}else if(r.type==="Mesh")s.geometry=U({},s.geometry),Object.assign(s.geometry,n.geometry),s=i(s,n);else if(Dc.is(r.type)){let f=n;s.intensity!==void 0&&(s.intensity=f.intensity),f.color!==void 0&&(typeof f.color=="string"?s.color=f.color:s.color=Zr.clone(f.color))}return s}t.patch=e})(s0||(s0={}));var Yt=5855577;var a0=2857471;var wh=15711266;import{DoubleSide as IP,Mesh as MP,MeshBasicMaterial as AP,ShapeBufferGeometry as OP,Vector2 as PP,Vector3 as DP}from"three";import{FontLoader as BP}from"three/examples/jsm/loaders/FontLoader.js";var Ut=class extends MP{constructor({char:e,originalChar:t,fontFamily:r,letterSpacing:n,fontSize:s,LOD:l=16},c=new AP({color:0,opacity:1,visible:!0,transparent:!0,side:IP})){let f=Ut.loadChar(e,r,l);super(f.geometry,c);this.char=e,this.originalChar=t!=null?t:e,this.fontFamily=r,this.letterSpacing=n,this.fontSize=s,this.LOD=l,this.resolution=f.resolution,this.glyphsHa=f.glyphsHa,this.localPosition=new PP,this.charSize=0,this.geometry.userData={type:"CharacterGeometry",parameters:{char:this.char,fontFamily:this.fontFamily,letterSpacing:this.letterSpacing,fontSize:this.fontSize,lod:this.LOD,resolution:this.resolution,charSize:this.charSize,localPosition:this.localPosition}},this.updateFontSize(this.fontSize)}static get FONTS_PATH(){return Ut._fontPath}static set FONTS_PATH(e){Ut._fontPath=e}updatePosition(e,t){this.localPosition.copy(e);let r=new DP(this.localPosition.x,-this.localPosition.y,0);this.position.copy(r).add(t)}updateFontSize(e){let t=e/this.resolution;this.fontSize=e,this.scale.set(this.fontSize,this.fontSize,1),this.charSize=this.glyphsHa*t*this.letterSpacing}updateFontFamily(e){if(this.fontFamily===e)return;this.fontFamily=e;let t=Ut.loadChar(this.char,e,this.LOD);this.geometry=t.geometry,this.resolution=t.resolution,this.glyphsHa=t.glyphsHa,this.geometry.userData={type:"CharacterGeometry",parameters:{char:this.char,fontFamily:this.fontFamily,letterSpacing:this.letterSpacing,fontSize:this.fontSize,lod:this.LOD,resolution:this.resolution,charSize:this.charSize,localPosition:this.localPosition}},this.updateFontSize(this.fontSize)}updateChar(e){if(this.char===e)return;this.char=e;let t=Ut.loadChar(e,this.fontFamily,this.LOD);this.geometry=t.geometry,this.resolution=t.resolution,this.glyphsHa=t.glyphsHa,this.geometry.userData={type:"CharacterGeometry",parameters:{char:this.char,fontFamily:this.fontFamily,letterSpacing:this.letterSpacing,fontSize:this.fontSize,lod:this.LOD,resolution:this.resolution,charSize:this.charSize,localPosition:this.localPosition}},this.updateFontSize(this.fontSize)}updateLetterSpacing(e){this.letterSpacing!==e&&(this.letterSpacing=e,this.updateFontSize(this.fontSize))}updateLOD(e){if(this.LOD===e)return;this.LOD=e;let t=Ut.loadChar(this.char,this.fontFamily,this.LOD);this.geometry=t.geometry,this.resolution=t.resolution,this.glyphsHa=t.glyphsHa,this.geometry.userData={type:"CharacterGeometry",parameters:{char:this.char,fontFamily:this.fontFamily,letterSpacing:this.letterSpacing,fontSize:this.fontSize,lod:this.LOD,resolution:this.resolution,charSize:this.charSize,localPosition:this.localPosition}},this.updateFontSize(this.fontSize)}clone(){let e={char:this.char,originalChar:this.originalChar,fontFamily:this.fontFamily,letterSpacing:this.letterSpacing,fontSize:this.fontSize,LOD:this.LOD};return new Ut(e).copy(this)}static loadFont(e){return new Promise(function(t,r){Ut.fontCache[e]?t(Ut.fontCache[e]):new BP().load(Ut.FONTS_PATH+e+".json",s=>{Ut.fontCache[e]=s,t(s)},void 0,r)})}static loadChar(e,t,r){if(Ut.charCache[e]){if(Ut.charCache[e][r]&&Ut.charCache[e][r].fontFamily===t)return Ut.charCache[e][r]}else Ut.charCache[e]={};let n=Ut.fontCache[t],s=n.generateShapes(e,1);return Ut.charCache[e][r]={geometry:new OP(s,r),fontFamily:t,resolution:n.data.resolution,glyphsHa:n.data.glyphs[e].ha},Ut.charCache[e][r]}},Rr=Ut;Rr.charCache={},Rr.fontCache={},Rr._fontPath="/_assets/_fonts/";import{DoubleSide as ju,MeshBasicMaterial as Xv,Vector3 as Zv,Object3D as _3}from"three";import{Mesh as nD}from"three";import{BufferGeometry as ck,ConeBufferGeometry as EP,Float32BufferAttribute as uk,Vector2 as fk,Vector3 as hk}from"three";import{BufferGeometry as GP,CylinderBufferGeometry as jP,Float32BufferAttribute as Nh,Vector2 as Pn,Vector3 as kc}from"three";var l0=class{static create(i){return this.build(this.normalizeInputs(i))}static normalizeInputs(i,e){var l,c,f,h,d;let t=Object.assign({},(l=e==null?void 0:e.parameters)!=null?l:{width:100,radialSegments:64,heightSegments:1,openEnded:!1,thetaStart:0,thetaLength:360,cornerRadius:0,cornerSegments:8,hollow:0},i.parameters),r=t.width/2,n=(c=t.radiusTop)!=null?c:r,s=(f=t.radiusBottom)!=null?f:r;return n===s?(n=r,s=r):n>s?(n=r,s=s*r/n):(n=n*r/s,s=r),{parameters:Object.assign(t,{width:Math.abs(t.width),height:Math.abs((h=t.height)!=null?h:t.width),depth:Math.abs((d=t.depth)!=null?d:t.width),radiusTop:n,radiusBottom:s})}}static build(i){let{width:e,depth:t,height:r,radialSegments:n,heightSegments:s,openEnded:l,thetaStart:c,thetaLength:f,radiusTop:h,radiusBottom:d,cornerRadius:x,cornerSegments:g,hollow:w}=i.parameters,S;return x||w?S=new Hc(h,d,r,n,s,l,c,f*Math.PI/180,x,x,g,w):S=new jP(h,d,r,n,s,l,c,f*Math.PI/180),S.scale(1,1,t/e),Object.assign(S,{userData:fe(U({},i),{type:"CylinderGeometry"})})}};function Wi(i,e,t){t.x=i.x*e.x,t.y=i.y,t.z=i.x*e.y}function c0(i){return new Pn(i.y,-i.x)}var Hc=class extends GP{constructor(e,t,r,n,s,l,c,f,h,d,x,g,w=!1){super();this.type="RoundedCylinderBufferGeometry",e=e!==void 0?e:1,t=t!==void 0?t:1,r=r||1,n=Math.floor(n)||8,s=Math.floor(s)||1,l=l!==void 0?l:!1,c=c!==void 0?c:0,f=f!==void 0?f:Math.PI*2,l&&(h=0,d=0);let S=[],D=[],C=[],G=[],B=0,P=r/2,W=new kc,M=new kc;w&&e==0&&(e=h),w&&t==0&&(t=d);let q=new Pn(e,P),E=new Pn(t,-P),b=null,R=null,T=null,z=null,A=q.clone().sub(E),$=0,he=0,re=0;g>0&&($=Math.min(e,t)*(1-g),he=e-$,re=t-$);let Ne=q.clone();Ne.x-=$;let ye=Math.PI-A.angle(),Me=A.angle(),Fe=Math.tan(Me/2),k=Math.tan(ye/2),H=Fe+k,_=g?H:k,J=g?H:Fe;if(h=Math.min(h,(e-he)/_,A.length()/H),d=Math.min(d,(t-re)/J,A.length()/H),h>0){let K=h/Fe;b=q.clone().sub(new Pn(K,h)),g&&(T=b.clone(),T.x-=$-H*h),q.sub(A.clone().setLength(K))}if(d>0){let K=d/k;R=E.clone().sub(new Pn(K,-d)),E.add(A.clone().setLength(K)),g&&(z=R.clone(),z.x-=$-H*d,Ne.sub(A.clone().setLength(K)))}A=q.clone().sub(E);let ee=A.length()<.5,oe=[];for(let K=0;K<=n;K++){let ae=[],ne=K/n,Ce=ne*f+c,Y=new Pn(Math.sin(Ce),Math.cos(Ce));z&&R?(se(ae,ne,Y,ye,d,z,-1,!0),se(ae,ne,Y,Me,d,R,-1,!1)):R?(ce(ae,Y,R.x,0,-1),se(ae,ne,Y,Me,d,R,-1,!1)):l||ce(ae,Y,t,re,-1);let le=c0(A).normalize();if(Wi(le,Y,W),!ee)for(let pe=0;pe<=s;pe++){let xe=pe/s,_e=A.clone().multiplyScalar(xe).add(E);Wi(_e,Y,M),D.push(M.x,M.y,M.z),C.push(W.x,W.y,W.z),G.push(ne,.5+M.y/r),ae.push(B++)}if(T&&b?(se(ae,ne,Y,ye,h,b,1,!1),se(ae,ne,Y,Me,h,T,1,!0)):b?(se(ae,ne,Y,ye,h,b,1,!1),ce(ae,Y,b.x,0,1)):l||ce(ae,Y,e,he,1),g&&!ee){let pe=c0(A).multiplyScalar(-1).normalize();Wi(pe,Y,W);for(let xe=0;xe<=s;xe++){let _e=xe/s,de=A.clone().multiplyScalar(-_e).add(Ne);Wi(de,Y,M),D.push(M.x,M.y,M.z),C.push(W.x,W.y,W.z),G.push(ne,.5+M.y/r),ae.push(B++)}}g&&!l&&ae.push(ae[0]),oe.push(ae)}for(let K=0;K<oe.length-1;K++)for(let ae=0;ae<oe[0].length-1;ae++){if(l&&g&&ae==s)continue;let ne=oe[K][ae],Ce=oe[K+1][ae],Y=oe[K+1][ae+1],le=oe[K][ae+1],pe=D[Y*3+0],xe=D[Y*3+2];S.push(ne,Ce,le),(pe!=0||xe!=0)&&S.push(Ce,Y,le)}f<Math.PI*2&&(ue(-1,oe[0],c),ue(1,oe[oe.length-1],c+f)),this.setIndex(S),this.setAttribute("position",new Nh(D,3)),this.setAttribute("normal",new Nh(C,3)),this.setAttribute("uv",new Nh(G,2));function se(K,ae,ne,Ce,Y,le,pe,xe){for(let _e=0;_e<x+1;_e++){let de=_e/x,we=pe<0?de:1-de;xe&&(we-=1),we*=Ce;let Ve=new Pn(Math.sin(we),Math.cos(we)*pe),Ge=Ve.clone().multiplyScalar(Y).add(le);Wi(Ge,ne,M),D.push(M.x,M.y,M.z),Wi(Ve,ne,W),C.push(W.x,W.y,W.z),G.push(ae,.5+M.y/r),K.push(B++)}}function ce(K,ae,ne,Ce,Y){let le=new kc,pe=new Pn,xe=[ne,Ce];Y<0&&xe.reverse();for(let _e of xe)pe.set(_e,P*Y),Wi(pe,ae,le),D.push(le.x,le.y,le.z),C.push(0,Y,0),G.push(.5,.5),K.push(B++)}function ue(K,ae,ne){let Ce=new Pn(Math.sin(ne),Math.cos(ne)),Y=new Pn(-Math.cos(ne),Math.sin(ne)),le=new kc,pe=K<0?(de,we,Ve)=>S.push(de,we,Ve):(de,we,Ve)=>S.push(de,Ve,we),xe=new Pn((e+t+he+re)/4,0);Wi(xe,Ce,le),D.push(le.x,le.y,le.z),C.push(Y.x,0,Y.y),G.push(.5,.5);let _e=B++;for(let de of ae){let we=D.slice(de*3,de*3+3);D.push(...we),C.push(Y.x,0,Y.y);let Ve=G.slice(de*2,de*2+2);G.push(...Ve),B++}for(let de=_e+1;de<B-1;de++)pe(_e,de,de+1);pe(_e,B-1,_e+1)}}};var u0=class{static create(i){return this.build(this.normalizeInputs(i))}static normalizeInputs(i,e){var r,n,s;let t=Object.assign({},(r=e==null?void 0:e.parameters)!=null?r:{width:100,radialSegments:32,heightSegments:8,openEnded:!1,thetaStart:0,thetaLength:360,cornerRadiusTop:0,cornerRadiusBottom:0,cornerSegments:8},i.parameters);return{parameters:Object.assign(t,{width:Math.abs(t.width),height:Math.abs((n=t.height)!=null?n:t.width),depth:Math.abs((s=t.depth)!=null?s:t.width)})}}static build(i){let{width:e,depth:t,height:r,radialSegments:n,heightSegments:s,openEnded:l,thetaStart:c,thetaLength:f,cornerRadiusTop:h,cornerRadiusBottom:d,cornerSegments:x}=i.parameters,g;return h>0||d>0||f<360?g=new Hc(0,e/2,r,n,s,l,c,f*Math.PI/180,h,d,x,0,!0):g=new EP(e/2,r,n,s,l),g.scale(1,1,t/e),Object.assign(g,{userData:fe(U({},i),{type:"ConeGeometry"})})}};import{BoxBufferGeometry as RP,BufferGeometry as zP,Float32BufferAttribute as Ch,Vector3 as ma}from"three";var f0=class{static create(i){return this.build(this.normalizeInputs(i))}static normalizeInputs(i,e){var r,n,s;let t=Object.assign({},(r=e==null?void 0:e.parameters)!=null?r:{width:100,widthSegments:1,heightSegments:1,depthSegments:1,cornerRadius:0,cornerSegments:8},i.parameters);return{parameters:Object.assign(t,{width:Math.abs(t.width),height:Math.abs((n=t.height)!=null?n:t.width),depth:Math.abs((s=t.depth)!=null?s:t.width)})}}static build(i){let{width:e,height:t,depth:r,widthSegments:n,heightSegments:s,depthSegments:l,cornerRadius:c,cornerSegments:f}=i.parameters,h;return c==0?h=new RP(e,t,r,n,s,l):h=new h0(e,t,r,n,s,l,c,f),Object.assign(h,{userData:fe(U({},i),{type:"CubeGeometry"})})}},Lh=Math.PI/2,h0=class extends zP{constructor(e=1,t=1,r=1,n=1,s=1,l=1,c=0,f=4){super();this.type="BoxBufferGeometry";let h=this;n=Math.floor(n),s=Math.floor(s),l=Math.floor(l),f=Math.floor(f),c=Math.min(c,e/2,t/2,r/2);let d=[],x=[],g=[],w=[],S=0,D=0;C("z","y","x",-1,-1,r,t,e,l,s,0),C("z","y","x",1,-1,r,t,-e,l,s,1),C("x","z","y",1,1,e,r,t,n,l,2),C("x","z","y",1,-1,e,r,-t,n,l,3),C("x","y","z",1,-1,e,t,r,n,s,4),C("x","y","z",-1,-1,e,t,-r,n,s,5),c>0&&(G("z","y","x",-1,-1,1,r,t,e,l,0),G("z","y","x",1,-1,-1,r,t,e,l,1),G("z","y","x",-1,1,-1,r,t,e,l,1),G("z","y","x",1,1,1,r,t,e,l,0),G("x","y","z",-1,-1,-1,e,t,r,n,0),G("x","y","z",1,-1,1,e,t,r,n,1),G("x","y","z",-1,1,1,e,t,r,n,0),G("x","y","z",1,1,-1,e,t,r,n,1),G("y","x","z",-1,-1,1,t,e,r,s,0),G("y","x","z",1,-1,-1,t,e,r,s,1),G("y","x","z",1,1,1,t,e,r,s,1),G("y","x","z",-1,1,-1,t,e,r,s,0),B(1,1,1),B(-1,1,1),B(1,-1,1),B(-1,-1,1),B(1,1,-1),B(-1,1,-1),B(1,-1,-1),B(-1,-1,-1)),this.setIndex(d),this.setAttribute("position",new Ch(x,3)),this.setAttribute("normal",new Ch(g,3)),this.setAttribute("uv",new Ch(w,2));function C(P,W,M,q,E,b,R,T,z,A,$){let he=(b-2*c)/z,re=(R-2*c)/A,Ne=b/2-c,ye=R/2-c,Me=T/2,Fe=z+1,k=A+1,H=0,_=0,J=new ma;for(let ee=0;ee<k;ee++){let oe=ee*re-ye;for(let se=0;se<Fe;se++){let ce=se*he-Ne;J[P]=ce*q,J[W]=oe*E,J[M]=Me,x.push(J.x,J.y,J.z),J[P]=0,J[W]=0,J[M]=T>0?1:-1,g.push(J.x,J.y,J.z),w.push(se/z),w.push(1-ee/A),H+=1}}for(let ee=0;ee<A;ee++)for(let oe=0;oe<z;oe++){let se=S+oe+Fe*ee,ce=S+oe+Fe*(ee+1),ue=S+(oe+1)+Fe*(ee+1),K=S+(oe+1)+Fe*ee;d.push(se,ce,K),d.push(ce,ue,K),_+=6}h.addGroup(D,_,$),D+=_,S+=H}function G(P,W,M,q,E,b,R,T,z,A,$){let he=(R-2*c)/A,re=R/2-c,Ne=T/2-c,ye=z/2,Me=A+1,Fe=0,k=0,H=new ma,_=new ma;for(let J=0;J<f+1;J++){let ee=J/f*Lh,oe=Math.sin(ee)*c,se=(1-Math.cos(ee))*c,ce=Math.sin(ee),ue=Math.cos(ee);H[W]=(Ne+oe)*E,H[M]=(ye-se)*b,_[P]=0,_[W]=ce*Math.sign(H[W]),_[M]=ue*Math.sign(H[M]);for(let K=0;K<Me;K++){let ae=K*he-re;H[P]=ae*q,x.push(H.x,H.y,H.z),g.push(_.x,_.y,_.z),w.push(K/A),w.push(0),Fe+=1}}for(let J=0;J<f;J++)for(let ee=0;ee<A;ee++){let oe=S+ee+Me*J,se=S+ee+Me*(J+1),ce=S+(ee+1)+Me*(J+1),ue=S+(ee+1)+Me*J;d.push(oe,se,ue),d.push(se,ce,ue),k+=6}h.addGroup(D,k,$),D+=k,S+=Fe}function B(P,W,M){let q=new ma,E=new ma(e/2,t/2,r/2);E.subScalar(c);let b=[],R=P*W*M>0?(z,A,$)=>d.push(z,A,$):(z,A,$)=>d.push(z,$,A);for(let z=0;z<=f;z++){let A=[],$=Lh*(1-z/f),he=Math.cos($),re=Math.sin($),Ne=0;for(let ye=0;ye<=z;ye++){let Me=Math.cos(Ne),Fe=Math.sin(Ne);q.x=he*Me,q.y=re,q.z=he*Fe;let k=E.clone().addScaledVector(q,c);x.push(P*k.x,W*k.y,M*k.z),g.push(P*q.x,W*q.y,M*q.z),w.push(0,0),A.push(S++),Ne+=Lh/z}b.push(A)}let T=b.length-1;for(let z=0;z<T;z++){let A=b[z],$=b[z+1],he=A.length-1;R(A[0],$[1],$[0]);for(let re=1;re<=he;re++)R(A[re-1],A[re],$[re]),R(A[re],$[re+1],$[re])}}}};import{BufferGeometry as FP,Float32BufferAttribute as _h,Triangle as VP,Vector3 as yi,Vector2 as Th}from"three";var So=class extends FP{constructor(e=[],t=[],r="",n=1,s=.2,l=4){super();this.type="PolyhedronGeometryRound";let c=[],f=[],h=[];d(),x(),this.setAttribute("position",new _h(c,3)),this.setAttribute("normal",new _h(h,3)),this.setAttribute("uv",new _h(f,2));return;function d(){var Fe;s=Math.min(1-1e-5,s),s==0&&(l=0);let w={IcosahedronGeometry:5,DodecahedronGeometry:3,HexahedronGeometry:3,OctahedronGeometry:4,TetrahedronGeometry:3}[r],S=new yi,D=S.clone(),C=new VP,G=s*n,B=n-G,P=l+1,W=new yi,M=(k,H)=>W.subVectors(k,H).normalize(),q=(k,H)=>Array(k).fill(void 0).map(H),E=q(e.length/3,(k,H)=>new yi().fromArray(e,H*3).setLength(n)),b=[],R=1e6;for(let k=0;k<E.length;k++){let H=E[k],_=[],J,ee,oe,se=1e10,ce=-1;for(;(ce=t.indexOf(k,ce+1))!=-1;){let ne=ce-ce%3;J=t[ne+(ce+1)%3],ee=t[ne+(ce+2)%3],oe=H.distanceToSquared(E[J]),se=Math.min(se,oe),_.push([J,ee,oe])}se+=1e-6;let ue=[],K=0,ae=_.length;for(let ne=0;ne<ae;ne++){[J,ee,oe]=_[K];let Ce=((Fe=b[J])==null?void 0:Fe.includes(k))==!0;oe<=se&&ue.push(J+ +Ce*R),K=_.findIndex(Y=>Y[0]==ee)}b.push(ue)}let T=[];{let k=0,H=0,_,J,ee=w==3;for(let oe=0;oe<=l;oe++){_=oe*(oe+1)/2,J=(oe+1)*(oe+2)/2;for(let se=0;se<l-oe;se++)[k,H]=[_+se+oe+2,J+se+oe+3],T.push(_,J,...ee?[H,_]:[k,J],H,k),[_,J]=[k,H];T.push(_,J,_+l+2)}}let z=S.clone(),A=S.clone(),$=S.clone(),he=S.clone(),re=S.clone(),Ne=[],ye=q(E.length,()=>q(w,()=>S.clone()));for(let k=0;k<E.length;k++){S.copy(E[k]).normalize(),z.copy(S).multiplyScalar(B);let H=b[k];for(let ue=0;ue<H.length;ue++){let K=H[ue],ae=H[(ue+1)%w];C.setFromPointsAndIndices(E,k,K%R,ae%R),C.b.sub(C.a).setLength(1e10).add(C.a),C.c.sub(C.a).setLength(1e10).add(C.a),C.closestPointToPoint(z,ye[k][ue])}let _=[],J=[],ee=[],oe=new yi;l==0&&[...ye[k]].reduce((ue,K)=>ue.add(K),oe).multiplyScalar(1/w);for(let ue=0;ue<w;ue++){let K=[],ae=(ue-1+w)%w,ne=ye[k][ae],Ce=ye[k][ue];S.copy(ne).sub(z),D.copy(Ce).sub(z);let Y=z.angleTo(S),le=S.angleTo(D),pe=Math.cos(Y)*G;l==0?A.copy(oe):A.copy(z).setLength(B+pe),J.push(pe);let xe=[A,ne,Ce];for(let _e=0;_e<2;_e++){let de=xe[_e],we=xe[_e+1];he.subVectors(de,z),re.subVectors(we,z),$.crossVectors(he,re).normalize();for(let Ve=0;Ve<P;Ve++){let Ge=[Y,le][_e]*Ve/P;S.copy(he).applyAxisAngle($,Ge).add(z),_.push(S.clone()),_e&&(M(S,z),K.push([Ve==0?de:S.clone(),W.clone()]))}_e&&(M(we,z),K.push([we,W.clone()]))}ee.push(K)}Ne.push(ee);let se=2*P,ce=2;for(let ue=0;ue<w;ue++){let K=se*ue,ae=se*((ue+1)%w),ne=[_[K]];for(let Y=1;Y<P;Y++){he=_[K+Y],re=_[ae+Y],ne.push(he);for(let le=1,pe=Y-ce+1;le<=pe;le++)S.lerpVectors(he,re,le/(pe+1)),S.sub(z).setLength(J[ue]).add(z),ne.push(S.clone());ne.push(re)}for(let Y=0;Y<P;Y++)ne.push(_[Y+P+K]);ne.push(_[ae+P]);let Ce=T.map(Y=>ne[Y]);c.push(...Ce.map(Y=>[Y.x,Y.y,Y.z]).flat()),h.push(...Ce.map(Y=>(M(Y,z),[W.x,W.y,W.z])).flat())}}let Me=[];for(let k=0;k<b.length;k++)for(let H=0;H<w;H++){let _=b[k][H];if(_<R){let J=b[_].findIndex(se=>se%R==k),ee=Ne[k][H],oe=Ne[_][J];for(let se=0;se<P;se++){let ce=ee[se],ue=oe[P-se],K=ee[se+1],ae=oe[P-(se+1)];[ce,ue,K,K,ue,ae].forEach(ne=>{c.push(ne[0].x,ne[0].y,ne[0].z),h.push(ne[1].x,ne[1].y,ne[1].z)})}Me.push(ee[0][0],oe[P][0],ee[P][0],oe[0][0])}}for(;Me.length;){let k,H,_,J;[k,H]=Me.splice(0,2);let ee=[k];for(;k!=H;)ee.push(H),_=Me.indexOf(H),J=_%2,H=Me.splice(_-J,2)[1-J];W.subVectors(ee[0],ee[1]).cross(S.subVectors(ee[0],ee[2])).normalize();let oe=W.dot(ee[0])<0;oe&&W.negate();for(let se=1;se<=ee.length-2;se++)[ee[se+ +oe],ee[se+1-+oe],ee[0]].forEach(ce=>{c.push(ce.x,ce.y,ce.z),h.push(W.x,W.y,W.z)})}}function x(){let g=new yi;for(let E=0;E<c.length;E+=3){g.x=c[E+0],g.y=c[E+1],g.z=c[E+2];let b=M(g)/2/Math.PI+.5,R=q(g)/Math.PI+.5;f.push(b,1-R)}let w=new yi,S=new yi,D=new yi,C=new yi,G=new Th,B=new Th,P=new Th,W=(E,b,R,T)=>{T<0&&E.x===1&&(f[b]=E.x-1),R.x===0&&R.z===0&&(f[b]=T/2/Math.PI+.5)};for(let E=0,b=0;E<c.length;E+=9,b+=6){w.set(c[E+0],c[E+1],c[E+2]),S.set(c[E+3],c[E+4],c[E+5]),D.set(c[E+6],c[E+7],c[E+8]),G.set(f[b+0],f[b+1]),B.set(f[b+2],f[b+3]),P.set(f[b+4],f[b+5]),C.copy(w).add(S).add(D).divideScalar(3);let R=M(C);W(G,b+0,w,R),W(B,b+2,S,R),W(P,b+4,D,R)}for(let E=0;E<f.length;E+=6){let b=f[E+0],R=f[E+2],T=f[E+4],z=Math.max(b,R,T),A=Math.min(b,R,T);z>.9&&A<.1&&(b<.2&&(f[E+0]+=1),R<.2&&(f[E+2]+=1),T<.2&&(f[E+4]+=1))}function M(E){return Math.atan2(E.z,-E.x)}function q(E){return Math.atan2(-E.y,Math.sqrt(E.x*E.x+E.z*E.z))}}}static fromJSON(e){return new So(e.vertices,e.indices,e.radius,e.corner,e.cornerSides)}};import{DodecahedronBufferGeometry as UP}from"three";var p0=class{static create(i){return this.build(this.normalizeInputs(i))}static normalizeInputs(i,e){var r,n,s;let t=Object.assign({},(r=e==null?void 0:e.parameters)!=null?r:{width:100,detail:0,corner:0,cornerSides:4},i.parameters);return{parameters:Object.assign(t,{width:Math.abs(t.width),height:Math.abs((n=t.height)!=null?n:t.width),depth:Math.abs((s=t.depth)!=null?s:t.width)})}}static build(i){let{width:e,height:t,depth:r,detail:n,corner:s,cornerSides:l}=i.parameters,c=n===0&&s!==0?new Wc(e*.5,s,l):new UP(e*.5,n);return c.scale(1,t/e,r/e),Object.assign(c,{userData:fe(U({},i),{type:"DodecahedronGeometry"})})}},Wc=class extends So{constructor(e=1,t=.2,r=4){let n=(1+Math.sqrt(5))/2,s=1/n,l=[-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,-s,-n,0,-s,n,0,s,-n,0,s,n,-s,-n,0,-s,n,0,s,-n,0,s,n,0,-n,0,-s,n,0,-s,-n,0,s,n,0,s],c=[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],f="DodecahedronGeometry";super(l,c,f,e,t,r);this.type=f}static fromJSON(e){return new Wc(e.radius,e.corner,e.cornerSides)}};import{EventDispatcher as QP,Plane as e2,Shape as L0,Vector2 as xi,Vector3 as t2,MathUtils as Bh,LineCurve as Gh,QuadraticBezierCurve as _0,CubicBezierCurve as Jc}from"three";import{CubicBezierCurve as qc,EllipseCurve as kP,LineCurve as $c,LineCurve3 as HP,MathUtils as WP,QuadraticBezierCurve as Ih,SplineCurve as qP,Vector2 as Dn,Vector3 as d0}from"three";var ga=1e-12,ya=class{constructor(e){this.position=new Dn;this.startPosition=new Dn;this.uuid=WP.generateUUID();this.position=e.clone()}start(){this.reset()}reset(){this.startPosition.copy(this.position)}applyOffset(e){this.position.copy(this.startPosition).add(e)}copy(e){return this.position.copy(e.position),this.startPosition.copy(e.startPosition),this}clone(){return new ya(this.position).copy(this)}toJSON(){return[this.position.x,this.position.y]}},xa=class extends ya{constructor(e){super(e.position);this.parent=e}copy(e){return super.copy(e),this}clone(){return new xa(this.parent).copy(this)}},Kn=class extends ya{constructor(e,t){super(t);this.controls=[];this.roundness=0;this.areControlsDirectionsMirrored=!0;this.uuid=e,this.controls.push(new xa(this),new xa(this))}static create(e,t){let r=new Kn(e,new Dn(...t.position));return r.controls[0].position.set(...t.controlPrevious.position),r.controls[1].position.set(...t.controlNext.position),r.roundness=t.roundness,r.areControlsDirectionsMirrored=t.areControlsDirectionsMirrored,r}getOppositeControl(e){let t=this.controls.indexOf(e);return t===0?this.controls[1]:t===1?this.controls[0]:null}applyOffsetToControls(e,t=1){for(let r=0,n=this.controls.length;r<n;r++){let s=this.controls[r];this.position.distanceTo(s.position)<=t?s.position.copy(this.position):s.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 Kn(this.uuid,this.position).copy(this)}toJSON(){return super.toJSON().concat(this.controls[0].toJSON(),this.controls[1].toJSON(),[this.roundness])}},Mh=i=>i,va=new Dn,Ah=new Dn,$P=new Dn,JP=new Dn,KP=new Dn,XP=new Dn,m0=new d0,g0=new d0;function y0(i){let e=new Dn;e.addVectors(i.v0,va.subVectors(i.v1,i.v0).multiplyScalar(2/3));let t=new Dn;return t.addVectors(i.v2,Ah.subVectors(i.v1,i.v2).multiplyScalar(2/3)),new qc(i.v0,e,t,i.v2)}function ba(i,e,t=Number.EPSILON){return Math.abs(i-e)<t}function ZP(i,e,t=Number.EPSILON){return i.distanceTo(e)<t}function YP(i,e,t=Number.EPSILON){return i.distanceTo(e)<t}function Oh(i,e,t){let r=Math.sqrt(Math.pow(e.x-i.x,2)+Math.pow(e.y-i.y,2)),n=Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2)),s=Math.sqrt(Math.pow(t.x-i.x,2)+Math.pow(t.y-i.y,2));return Math.acos((n*n+r*r-s*s)/(2*n*r))}function x0(i,e,t,r,n){let s=Math.sqrt(Math.pow(e.x-i.x,2)+Math.pow(e.y-i.y,2)),l=(i.y+e.y)/2,c=(i.x+e.x)/2,f=Math.sqrt(Math.pow(t,2)-Math.pow(s/2,2))*(i.y-e.y)/s,h=Math.sqrt(Math.pow(t,2)-Math.pow(s/2,2))*(e.x-i.x)/s;return r.set(c+f,l+h),n.set(c-f,l-h),[r,n]}function v0(i,e,t){let r=i.distanceTo(t),n=e.distanceTo(t);return r<n?e:i}function b0(i,e,t,r,n,s){let l=e.x-i.x,c=e.y-i.y,f=t.x-i.x,h=t.y-i.y,d=Math.sqrt((l+f)*(l+f)+(c+h)*(c+h)),x;return Oh(e,i,t)>Math.PI&&(d*=-1),ba(h,c)?x=(c+h)*(r/d-.5)*8/3/(l-f):x=(l+f)*(r/d-.5)*8/3/(h-c),n.set(e.x-x*c,e.y+x*l),s.set(t.x+x*h,t.y-x*f),[n,s]}function Ph(i,e){return i.position.equals(i.controls[1].position)&&e.position.equals(e.controls[0].position)}function S0(i,e,t,r,n=.5){let s=va.subVectors(e,i).multiplyScalar(n).add(i),l=Ah.subVectors(t,e).multiplyScalar(n).add(e),c=$P.subVectors(r,t).multiplyScalar(n).add(t),f=s,h=JP.subVectors(l,s).multiplyScalar(n).add(s),d=KP.subVectors(c,l).multiplyScalar(n).add(l),x=c,g=XP.subVectors(d,h).multiplyScalar(n).add(h);return[i.x,i.y,f.x,f.y,h.x,h.y,g.x,g.y,d.x,d.y,x.x,x.y,r.x,r.y]}function w0(i,e,t=12,r=!0){let n=g0.set(0,0,0),s,l=0,c=[];for(let f=0;f<e.length;f++){let h=Mh(e[f]),d=va,x=qi(h,t);c.push(x);for(let g=0;g<=x;g++)if(h instanceof qc||h instanceof Ih||h instanceof $c){if(h.getPoint(g/x,d),n.set(d.x,d.y,0),s!==void 0&&YP(s,n))continue;s===void 0&&(s=m0),s.copy(n),i.setXYZ(l,n.x,n.y,n.z),l++}}return r&&l>1&&!(i.getX(l-1)===i.getX(0)&&i.getY(l-1)===i.getY(0)&&i.getZ(l-1)===i.getZ(0))&&(i.setXYZ(l,i.getX(0),i.getY(0),i.getZ(0)),l++),i}function N0(i,e,t,r=12,n=!0){let s=g0.set(0,0,0),l=0,c=[];for(let f=0;f<e.length;f++){if(t[f]===!1)continue;let h,d=Mh(e[f]),x=va,g=qi(d,r);c.push(g);for(let w=0;w<=g;w++)if(d instanceof qc||d instanceof Ih||d instanceof $c){if(d.getPoint(w/g,x),s.set(x.x,x.y,0),h==null?void 0:h.equals(s))continue;h===void 0?h=m0:(i.setXYZ(l,h.x,h.y,h.z),l++,i.setXYZ(l,s.x,s.y,s.z),l++),h.copy(s)}}return n&&l>1&&!(i.getX(l-1)===i.getX(0)&&i.getY(l-1)===i.getY(0)&&i.getZ(l-1)===i.getZ(0))&&(i.setXYZ(l,i.getX(0),i.getY(0),i.getZ(0)),l++),c}function Dh(i,e=12,t=!1){let r=[];for(let n=0,s=i.length;n<s;n++){let l=i[n],c=0;if(t&&l.roundedCurveCorner!==void 0){let f=qi(l.roundedCurveCorner,e)*.5;n>0&&(r[n-1]+=f),c+=f}l.curveAfter!==void 0&&(c+=qi(l.curveAfter,e)),r.push(c)}return i.length>0&&t&&i[0].roundedCurveCorner!==void 0&&(r[i.length-1]+=qi(i[0].roundedCurveCorner,e)*.5),r}function qi(i,e=12){return i&&i instanceof kP?e*2:i&&(i instanceof $c||i instanceof HP)?1:i&&i instanceof qP?e*i.points.length:e}function C0(i,e,t=12,r=!0){let n,s=0;for(let l=0;l<e.length;l++){let c=Mh(e[l]),f=qi(c,t),h=va;for(let d=0;d<=f;d++)if(c instanceof qc||c instanceof Ih||c instanceof $c){if(c.getPoint(d/f,h),n!==void 0&&ZP(n,h,ga))continue;n===void 0&&(n=Ah),n.copy(h),i.push(h.x,h.y),s++}}return ba(i[0],i[i.length-2],ga)&&ba(i[1],i[i.length-1],ga)&&(i.pop(),i.pop()),r&&s>1&&!(ba(i[s-1],i[1],ga)&&ba(i[s-2],i[0],ga))&&(i.push(i[0],i[1]),s++),i}var jh=new xi,r2=new xi,n2=new xi,i2=new xi,o2=new xi,s2=new xi,st=class extends L0{constructor(e=100,t=100){super();this.points=[];this.shapeHoles=[];this.eventDispatcher=new QP;this.plane=new e2(new t2(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=Bh.generateUUID();this.needsUpdate=!1;this.roundedCurves=[];this._width=e,this._height=t}static createFromState(e,t,r){let n=new st;return n.isClosed=e.isClosed,n.points=e.points.map(s=>Kn.create(s.id,s.data)),typeof e.roundness=="number"&&(n.roundness=e.roundness),n.shapeHoles=e.shapeHoles.map(s=>st.createFromState(s)),t!==void 0&&r!==void 0&&n.applySize(t,r),n.update(),n}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 t=0,r=this.points.length;t<r;t++)this.points[t].roundness=e;this.needsUpdate=!0}}getPointsIndexesByIds(e){return e.map(t=>this.getPointIndexById(t)).filter(t=>t>=0)}getPointIndexById(e){return this.points.findIndex(t=>t.uuid===e)}getLineIndexById(e){return this.getPointIndexById(e)}getBezierPoint(e){if(e<=this.points.length-1)return this.points[e];if(this.shapeHoles.length>0)for(let t=0,r=this.shapeHoles.length;t<r;t++){let n=this.shapeHoles[t],s=e-this.points.length;if(s<=n.points.length-1)return n.points[s]}throw new Error("This shape does not have a point for this index: "+e)}getBezierPointIndex(e){let t=this.points.indexOf(e);if(t>=0)return t;if(t=this.points.length,this.shapeHoles.length>0)for(let r=0,n=this.shapeHoles.length;r<n;r++){let s=this.shapeHoles[r],l=s.points.indexOf(e);if(l>=0)return t+l;t+=s.points.length}return-1}getAllPoints(){let e=[].concat(...this.shapeHoles.map(t=>t.points));return[...this.points,...e]}applySize(e,t){e===0&&(e=.001),t===0&&(t=.001),this._width=e,this._height=t}applyScale(e,t){let r=jh.set(e,t);for(let n=0,s=this.points.length;n<s;n++){let l=this.points[n];l.position.multiply(r),l.controls[0].position.multiply(r),l.controls[1].position.multiply(r)}for(let n=0,s=this.shapeHoles.length;n<s;n++)this.shapeHoles[n].applyScale(e,t);this._update(!1)}createPoint(e,t=0,r=Bh.generateUUID()){let n;e instanceof xi?n=e:n=new xi(e,t);let s=new Kn(r,n);return s.roundness=this.roundness,s}addPoint(e){this.points.push(e),this.needsUpdate=!0}addPointAt(e,t){this.points.splice(t,0,e),this.needsUpdate=!0}getPointByUuid(e){for(let t=0,r=this.points.length;t<r;t++){let n=this.points[t];if(n.uuid===e)return n}}getFirstPoint(){return this.points[0]}getLastPoint(){return this.points[this.points.length-1]}removePoint(e){let t=this.points.indexOf(e);t>=0&&this.points.splice(t,1),this.needsUpdate=!0}removePointById(e){let t=this.points.find(r=>r.uuid===e);t&&this.removePoint(t)}update(e=!0){for(let t=0,r=this.shapeHoles.length;t<r;t++)this.shapeHoles[t].update(!1);this._update(e)}extractShapePointsToBuffer(e,t=12,r=!1){this.subdivision=t,this.curveDivisions===void 0&&this.computeCurveDivisions(t);let n=r?this.roundedCurveDivisions:this.curveDivisions;return w0(e,r?this.roundedCurves:this.curves,t,this.autoClose),n.reduce((s,l)=>s+l,0)+1}computeCurveDivisions(e=12){return this.curveDivisions=Dh(this.points,e,!1),this.roundedCurveDivisions=Dh(this.points,e,!0),this.curveDivisions}extractFilteredShapePointsToBuffer(e,t,r=12){return N0(e,this.curves,t,r,this.autoClose).reduce((s,l)=>s+l,0)*2}extractShapePointsToFlatArray(e,t=12){return this.subdivision=t,this.curveDivisions===void 0&&this.computeCurveDivisions(t),C0(e,this.roundedCurves,t,this.autoClose)}getCurveIndexFromVertexId(e,t=!1){let r=0;this.curveDivisions===void 0&&this.computeCurveDivisions(this.subdivision);let n=t?this.roundedCurveDivisions:this.curveDivisions,s=0;t&&this.points[0].roundedCurveCorner!==void 0&&(s=qi(this.points[0].roundedCurveCorner,this.subdivision)*.5);let l=e-s;l<0&&(l+=n.reduce((c,f)=>c+f,0));for(let c=0,f=n.length;c<f;c++){let h=n[c];if(l<r+h)return[c,(l-r+1)/h];r+=h}return[0,1]}getCurveT(e,t,r){let n=this.points[e],s=this.points[e>=this.points.length-1?0:e+1],l=this.curveDivisions,c=l[e];if(Ph(n,s)){let d=n.position.distanceTo(s.position);return n.position.distanceTo(jh.set(r.x,r.y))/d}let f=0;for(let d=0;d<e;d++)f+=l[d];return(t-f)/c}dispose(){this.eventDispatcher=null}_applyCurveForPoint(e,t){Ph(t,e)?this.lineTo(e.position.x,e.position.y):this.bezierCurveTo(t.controls[1].position.x,t.controls[1].position.y,e.controls[0].position.x,e.controls[0].position.y,e.position.x,e.position.y);let r=this.curves[this.curves.length-1];e.curveBefore=r,t.curveAfter=r;let n=r.clone();e.roundedCurveBefore=n,t.roundedCurveAfter=n,e.roundedCurveCorner=void 0,this.roundedCurves.push(n)}_update(e=!0){var r;if(this.curves=[],this.roundedCurves=[],!this.points.length)return;for(let n=0,s=this.points.length;n<s;n++){let l=this.points[n];if(n===0)this.moveTo(l.position.x,l.position.y);else{let c=this.points[n-1];this._applyCurveForPoint(l,c)}}let t=this.getLastPoint();if((t==null?void 0:t.curveAfter)&&(t.curveAfter=void 0),this.isClosed){let n=this.points[0],s=this.points[this.points.length-1];this._applyCurveForPoint(n,s)}if(this.points.length>2){let n=0;for(let s=0,l=this.points.length;s<l;s++){let c=this.points[s],f=c.roundness;if(!c.controlsMoved()&&f>0){let h=c.curveBefore,d=c.curveAfter;if(h===void 0||d===void 0)continue;let x=c.roundedCurveBefore,g=c.roundedCurveAfter,w=h.getLength(),S=d.getLength(),D=Math.min(f,w*.499),C=Math.min(f,S*.499),G=Math.min(D,C),B=1-G/w,P=G/S,W=h.getPointAt(B,jh),M=d.getPointAt(P,r2);this._subSplitCurve(h,x,B,W,void 0),this._subSplitCurve(d,g,P,void 0,M);let q;if(this.useCubicForRoundedCorners){let E=Oh(W,c.position,M)/2,b=Math.tan(E)*W.distanceTo(c.position),[R,T]=x0(W,M,b,n2,i2),z=v0(R,T,c.position),[A,$]=b0(z,W,M,b,o2,s2);q=new Jc(W.clone(),A.clone(),$.clone(),M.clone())}else q=new _0(W.clone(),c.position.clone(),M.clone());c.roundedCurveCorner=q,this.roundedCurves.splice(s+n,0,q),n++}}}e&&((r=this.eventDispatcher)==null||r.dispatchEvent({type:"update"}))}_subSplitCurve(e,t,r,n,s){if(e instanceof Gh)n!==void 0&&t.v2.copy(n),s!==void 0&&t.v1.copy(s);else{let l=e,c=t,f=l.getUtoTmapping(r,0),h=S0(l.v0,l.v1,l.v2,l.v3,f);return n!==void 0&&(c.v0.set(h[0],h[1]),c.v1.set(h[2],h[3]),c.v2.set(h[4],h[5]),c.v3.set(h[6],h[7])),s!==void 0&&(c.v0.set(h[6],h[7]),c.v1.set(h[8],h[9]),c.v2.set(h[10],h[11]),c.v3.set(h[12],h[13])),c}return t}clone(){let e=new st(this._width,this._height);return e.points=this.points.map(t=>t.clone()),e.isClosed=this.isClosed,e.roundness=this.roundness,e.isMesh2D=this.isMesh2D,e.shapeHoles=this.shapeHoles.map(t=>t.clone()),e}toJSON(){return{points:this.points.reduce((e,t)=>e.concat(t.toJSON()),[]),shapeHoles:this.shapeHoles.map(e=>e.toJSON()),isClosed:this.isClosed,roundness:this.roundness}}fromJSON(e){var r;this.points=[],this.pointIDs=0;let t=e.points.length/7;for(let n=0;n<t;n++){let s=n*7,l=e.points[s+0],c=e.points[s+1],f=e.points[s+2],h=e.points[s+3],d=e.points[s+4],x=e.points[s+5],g=e.points[s+6],w=new Kn(Bh.generateUUID(),new xi(l,c));w.controls[0].position.set(f,h),w.controls[1].position.set(d,x),w.roundness=g,this.points.push(w)}return this.shapeHoles=((r=e.shapeHoles)==null?void 0:r.length)?e.shapeHoles.map(n=>{let s=new st;return s.fromJSON(n),s}):[],this.isClosed=e.isClosed,this._roundness=e.roundness,this._update(),this}fromShape(e){let t=(n,s)=>{s instanceof Jc&&s.v3.equals(n.position)&&n.controls[0].position.copy(s.v2)},r=n=>{let s=[],l,c;for(l=0,c=n.length;l<c;l++)n[l]instanceof _0&&(n[l]=y0(n[l]));for(l=0,c=n.length;l<c;l++){let d=n[l],x=l>0?n[l-1]:null,g;d instanceof Jc?(g=this.createPoint(d.v0),g.controls[1].position.copy(d.v1)):d instanceof Gh&&(g=this.createPoint(d.v1)),g!==void 0&&(x!==null&&t(g,x),s.push(g))}let f=n[n.length-1],h=!1;return f instanceof Jc?f.v3.equals(s[0].position)&&(s[0].controls[0].position.copy(f.v2),h=!0):f instanceof Gh&&f.v2.equals(s[0].position)&&(h=!0),this.isClosed=h,s};return this.points=r(e.curves),e instanceof L0&&(this.shapeHoles=e.holes.map(n=>{let s=new st;return s.fromShape(n),s})),this.update(),this}};var Eh=Math.PI*2;function Rh({x:i,y:e},t,r,n,s){return{x:i*t+n,y:e*r+s}}function a2(i,e){let t=e===1.5707963267948966?.551915024494:e===-1.5707963267948966?-.551915024494:4/3*Math.tan(e/4),r=Math.cos(i),n=Math.sin(i),s=Math.cos(i+e),l=Math.sin(i+e);return[{x:r-n*t,y:n+r*t},{x:s+l*t,y:l-s*t},{x:s,y:l}]}function T0(i,e,t,r){let n=i*r-e*t<0?-1:1,s=Math.min(1,Math.max(-1,i*t+e*r));return n*Math.acos(s)}function l2(i,e,t,r,n,s,l,c,f,h){let d=Math.pow(n,2),x=Math.pow(s,2),g=Math.pow(l,2),w=Math.pow(c,2),S=d*x-d*w-x*g;S<0&&(S=0),S/=d*w+x*g,S=Math.sqrt(S)*(f===h?-1:1);let D=S*n/s*c,C=S*-s/n*l,G=D+(i+t)/2,B=C+(e+r)/2,P=(l-D)/n,W=(c-C)/s,M=(-l-D)/n,q=(-c-C)/s,E=T0(1,0,P,W),b=T0(P,W,M,q);return!h&&b>0&&(b-=Eh),h&&b<0&&(b+=Eh),{centerx:G,centery:B,ang1:E,ang2:b}}function I0({px:i,py:e,cx:t,cy:r,rx:n,ry:s,largeArcFlag:l,sweepFlag:c}){let f=[];if(n===0||s===0)return[];let h=(i-t)/2,d=(e-r)/2;if(h===0&&d===0)return[];n=Math.abs(n),s=Math.abs(s);let x=Math.pow(h,2)/Math.pow(n,2)+Math.pow(d,2)/Math.pow(s,2);x>1&&(n*=Math.sqrt(x),s*=Math.sqrt(x));let g=l2(i,e,t,r,n,s,h,d,l,c),{ang1:w,ang2:S}=g,{centerx:D,centery:C}=g,G=Math.abs(S)/(Eh/4);Math.abs(1-G)<1e-7&&(G=1);let B=Math.max(Math.ceil(G),1);S/=B;for(let P=0;P<B;P++)f.push(a2(w,S)),w+=S;return f.map(P=>{let{x:W,y:M}=Rh(P[0],n,s,D,C),{x:q,y:E}=Rh(P[1],n,s,D,C),{x:b,y:R}=Rh(P[2],n,s,D,C);return{x1:W,y1:M,x2:q,y2:E,x:b,y:R}})}import{BufferAttribute as Xc,BufferGeometry as p2}from"three";var Pt;(function(i){i[i.ODD=0]="ODD",i[i.NONZERO=1]="NONZERO",i[i.POSITIVE=2]="POSITIVE",i[i.NEGATIVE=3]="NEGATIVE",i[i.ABS_GEQ_TWO=4]="ABS_GEQ_TWO"})(Pt||(Pt={}));var Qt;(function(i){i[i.POLYGONS=0]="POLYGONS",i[i.CONNECTED_POLYGONS=1]="CONNECTED_POLYGONS",i[i.BOUNDARY_CONTOURS=2]="BOUNDARY_CONTOURS"})(Qt||(Qt={}));function Ae(i,e){if(!i)throw e||"Assertion Failed!"}var Te=function(){function i(){}return i.vertEq=function(e,t){return e.s===t.s&&e.t===t.t},i.vertLeq=function(e,t){return e.s<t.s||e.s===t.s&&e.t<=t.t},i.transLeq=function(e,t){return e.t<t.t||e.t===t.t&&e.s<=t.s},i.edgeGoesLeft=function(e){return i.vertLeq(e.Dst,e.Org)},i.edgeGoesRight=function(e){return i.vertLeq(e.Org,e.Dst)},i.vertL1dist=function(e,t){return Math.abs(e.s-t.s)+Math.abs(e.t-t.t)},i.edgeEval=function(e,t,r){Ae(i.vertLeq(e,t)&&i.vertLeq(t,r));var n=t.s-e.s,s=r.s-t.s;return n+s>0?n<s?t.t-e.t+(e.t-r.t)*(n/(n+s)):t.t-r.t+(r.t-e.t)*(s/(n+s)):0},i.edgeSign=function(e,t,r){Ae(i.vertLeq(e,t)&&i.vertLeq(t,r));var n=t.s-e.s,s=r.s-t.s;return n+s>0?(t.t-r.t)*n+(t.t-e.t)*s:0},i.transEval=function(e,t,r){Ae(i.transLeq(e,t)&&i.transLeq(t,r));var n=t.t-e.t,s=r.t-t.t;return n+s>0?n<s?t.s-e.s+(e.s-r.s)*(n/(n+s)):t.s-r.s+(r.s-e.s)*(s/(n+s)):0},i.transSign=function(e,t,r){Ae(i.transLeq(e,t)&&i.transLeq(t,r));var n=t.t-e.t,s=r.t-t.t;return n+s>0?(t.s-r.s)*n+(t.s-e.s)*s:0},i.vertCCW=function(e,t,r){return e.s*(t.t-r.t)+t.s*(r.t-e.t)+r.s*(e.t-t.t)>=0},i.interpolate=function(e,t,r,n){return e=e<0?0:e,r=r<0?0:r,e<=r?r===0?(t+n)/2:t+(n-t)*(e/(e+r)):n+(t-n)*(r/(e+r))},i.intersect=function(e,t,r,n,s){var l,c,f;i.vertLeq(e,t)||(f=e,e=t,t=f),i.vertLeq(r,n)||(f=r,r=n,n=f),i.vertLeq(e,r)||(f=e,e=r,r=f,f=t,t=n,n=f),i.vertLeq(r,t)?i.vertLeq(t,n)?(l=i.edgeEval(e,r,t),c=i.edgeEval(r,t,n),l+c<0&&(l=-l,c=-c),s.s=i.interpolate(l,r.s,c,t.s)):(l=i.edgeSign(e,r,t),c=-i.edgeSign(e,n,t),l+c<0&&(l=-l,c=-c),s.s=i.interpolate(l,r.s,c,n.s)):s.s=(r.s+t.s)/2,i.transLeq(e,t)||(f=e,e=t,t=f),i.transLeq(r,n)||(f=r,r=n,n=f),i.transLeq(e,r)||(f=e,e=r,r=f,f=t,t=n,n=f),i.transLeq(r,t)?i.transLeq(t,n)?(l=i.transEval(e,r,t),c=i.transEval(r,t,n),l+c<0&&(l=-l,c=-c),s.t=i.interpolate(l,r.t,c,t.t)):(l=i.transSign(e,r,t),c=-i.transSign(e,n,t),l+c<0&&(l=-l,c=-c),s.t=i.interpolate(l,r.t,c,n.t)):s.t=(r.t+t.t)/2},i}(),Sa=function(){function i(){this.next=null,this.prev=null,this.anEdge=null,this.trail=null,this.n=0,this.marked=!1,this.inside=!1}return i}(),Kc=function(){function i(e){this.side=e,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(i.prototype,"Rface",{get:function(){return this.Sym.Lface},set:function(e){this.Sym.Lface=e},enumerable:!0,configurable:!0}),Object.defineProperty(i.prototype,"Dst",{get:function(){return this.Sym.Org},set:function(e){this.Sym.Org=e},enumerable:!0,configurable:!0}),Object.defineProperty(i.prototype,"Oprev",{get:function(){return this.Sym.Lnext},set:function(e){this.Sym.Lnext=e},enumerable:!0,configurable:!0}),Object.defineProperty(i.prototype,"Lprev",{get:function(){return this.Onext.Sym},set:function(e){this.Onext.Sym=e},enumerable:!0,configurable:!0}),Object.defineProperty(i.prototype,"Dprev",{get:function(){return this.Lnext.Sym},set:function(e){this.Lnext.Sym=e},enumerable:!0,configurable:!0}),Object.defineProperty(i.prototype,"Rprev",{get:function(){return this.Sym.Onext},set:function(e){this.Sym.Onext=e},enumerable:!0,configurable:!0}),Object.defineProperty(i.prototype,"Dnext",{get:function(){return this.Sym.Onext.Sym},set:function(e){this.Sym.Onext.Sym=e},enumerable:!0,configurable:!0}),Object.defineProperty(i.prototype,"Rnext",{get:function(){return this.Sym.Lnext.Sym},set:function(e){this.Sym.Lnext.Sym=e},enumerable:!0,configurable:!0}),i}(),Ns=function(){function i(){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 i}(),M0=function(){function i(){var e=new Ns,t=new Sa,r=new Kc(0),n=new Kc(1);e.next=e.prev=e,e.anEdge=null,t.next=t.prev=t,r.next=r,r.Sym=n,n.next=n,n.Sym=r,this.vHead=e,this.fHead=t,this.eHead=r,this.eHeadSym=n}return i.prototype.makeEdge_=function(e){var t=new Kc(0),r=new Kc(1);e.Sym.side<e.side&&(e=e.Sym);var n=e.Sym.next;return r.next=n,n.Sym.next=t,t.next=e,e.Sym.next=r,t.Sym=r,t.Onext=t,t.Lnext=r,t.Org=null,t.Lface=null,t.winding=0,t.activeRegion=null,r.Sym=t,r.Onext=r,r.Lnext=t,r.Org=null,r.Lface=null,r.winding=0,r.activeRegion=null,t},i.prototype.splice_=function(e,t){var r=e.Onext,n=t.Onext;r.Sym.Lnext=t,n.Sym.Lnext=e,e.Onext=n,t.Onext=r},i.prototype.makeVertex_=function(e,t,r){var n=e;Ae(n,"Vertex can't be null!");var s=r.prev;n.prev=s,s.next=n,n.next=r,r.prev=n,n.anEdge=t;var l=t;do l.Org=n,l=l.Onext;while(l!==t)},i.prototype.makeFace_=function(e,t,r){var n=e;Ae(n,"Face can't be null");var s=r.prev;n.prev=s,s.next=n,n.next=r,r.prev=n,n.anEdge=t,n.trail=null,n.marked=!1,n.inside=r.inside;var l=t;do l.Lface=n,l=l.Lnext;while(l!==t)},i.prototype.killEdge_=function(e){e.Sym.side<e.side&&(e=e.Sym);var t=e.next,r=e.Sym.next;t.Sym.next=r,r.Sym.next=t},i.prototype.killVertex_=function(e,t){var r=e.anEdge,n=r;do n.Org=t,n=n.Onext;while(n!==r);var s=e.prev,l=e.next;l.prev=s,s.next=l},i.prototype.killFace_=function(e,t){var r=e.anEdge,n=r;do n.Lface=t,n=n.Lnext;while(n!==r);var s=e.prev,l=e.next;l.prev=s,s.next=l},i.prototype.makeEdge=function(){var e=new Ns,t=new Ns,r=new Sa,n=this.makeEdge_(this.eHead);return this.makeVertex_(e,n,this.vHead),this.makeVertex_(t,n.Sym,this.vHead),this.makeFace_(r,n,this.fHead),n},i.prototype.splice=function(e,t){var r=!1,n=!1;if(e!==t){if(t.Org!==e.Org&&(n=!0,this.killVertex_(t.Org,e.Org)),t.Lface!==e.Lface&&(r=!0,this.killFace_(t.Lface,e.Lface)),this.splice_(t,e),!n){var s=new Ns;this.makeVertex_(s,t,e.Org),e.Org.anEdge=e}if(!r){var l=new Sa;this.makeFace_(l,t,e.Lface),e.Lface.anEdge=e}}},i.prototype.delete=function(e){var t=e.Sym,r=!1;if(e.Lface!==e.Rface&&(r=!0,this.killFace_(e.Lface,e.Rface)),e.Onext===e)this.killVertex_(e.Org,null);else if(e.Rface.anEdge=e.Oprev,e.Org.anEdge=e.Onext,this.splice_(e,e.Oprev),!r){var n=new Sa;this.makeFace_(n,e,e.Lface)}t.Onext===t?(this.killVertex_(t.Org,null),this.killFace_(t.Lface,null)):(e.Lface.anEdge=t.Oprev,t.Org.anEdge=t.Onext,this.splice_(t,t.Oprev)),this.killEdge_(e)},i.prototype.addEdgeVertex=function(e){var t=this.makeEdge_(e),r=t.Sym;this.splice_(t,e.Lnext),t.Org=e.Dst;var n=new Ns;return this.makeVertex_(n,r,t.Org),t.Lface=r.Lface=e.Lface,t},i.prototype.splitEdge=function(e){var t=this.addEdgeVertex(e),r=t.Sym;return this.splice_(e.Sym,e.Sym.Oprev),this.splice_(e.Sym,r),e.Dst=r.Org,r.Dst.anEdge=r.Sym,r.Rface=e.Rface,r.winding=e.winding,r.Sym.winding=e.Sym.winding,r.idx=e.idx,r.Sym.idx=e.Sym.idx,r},i.prototype.connect=function(e,t){var r=!1,n=this.makeEdge_(e),s=n.Sym;if(t.Lface!==e.Lface&&(r=!0,this.killFace_(t.Lface,e.Lface)),this.splice_(n,e.Lnext),this.splice_(s,t),n.Org=e.Dst,s.Org=t.Org,n.Lface=s.Lface=e.Lface,e.Lface.anEdge=s,!r){var l=new Sa;this.makeFace_(l,n,e.Lface)}return n},i.prototype.zapFace=function(e){var t=e.anEdge,r,n,s,l,c;n=t.Lnext;do r=n,n=r.Lnext,r.Lface=null,r.Rface===null&&(r.Onext===r?this.killVertex_(r.Org,null):(r.Org.anEdge=r.Onext,this.splice_(r,r.Oprev)),s=r.Sym,s.Onext===s?this.killVertex_(s.Org,null):(s.Org.anEdge=s.Onext,this.splice_(s,s.Oprev)),this.killEdge_(r));while(r!=t);l=e.prev,c=e.next,c.prev=l,l.next=c},i.prototype.countFaceVerts_=function(e){var t=e.anEdge,r=0;do r++,t=t.Lnext;while(t!==e.anEdge);return r},i.prototype.mergeConvexFaces=function(e){var t,r,n,s,l,c,f;for(t=this.fHead.next;t!==this.fHead;t=t.next)if(!!t.inside)for(r=t.anEdge,l=r.Org;n=r.Lnext,s=r.Sym,s&&s.Lface&&s.Lface.inside&&(c=this.countFaceVerts_(t),f=this.countFaceVerts_(s.Lface),c+f-2<=e&&Te.vertCCW(r.Lprev.Org,r.Org,s.Lnext.Lnext.Org)&&Te.vertCCW(s.Lprev.Org,s.Org,r.Lnext.Lnext.Org)&&(n=s.Lnext,this.delete(s),r=null,s=null)),!(r&&r.Lnext.Org===l);)r=n;return!0},i.prototype.check=function(){var e=this.fHead,t=this.vHead,r=this.eHead,n,s,l,c,f,h;for(s=e,s=e;(n=s.next)!==e;s=n){Ae(n.prev===s),f=n.anEdge;do Ae(f.Sym!==f),Ae(f.Sym.Sym===f),Ae(f.Lnext.Onext.Sym===f),Ae(f.Onext.Sym.Lnext===f),Ae(f.Lface===n),f=f.Lnext;while(f!==n.anEdge)}for(Ae(n.prev===s&&n.anEdge===null),c=t,c=t;(l=c.next)!==t;c=l){Ae(l.prev===c),f=l.anEdge;do Ae(f.Sym!==f),Ae(f.Sym.Sym===f),Ae(f.Lnext.Onext.Sym===f),Ae(f.Onext.Sym.Lnext===f),Ae(f.Org===l),f=f.Onext;while(f!==l.anEdge)}for(Ae(l.prev===c&&l.anEdge===null),h=r,h=r;(f=h.next)!==r;h=f)Ae(f.Sym.next===h.Sym),Ae(f.Sym!==f),Ae(f.Sym.Sym===f),Ae(f.Org!==null),Ae(f.Dst!==null),Ae(f.Lnext.Onext.Sym===f),Ae(f.Onext.Sym.Lnext===f);Ae(f.Sym.next===h.Sym&&f.Sym===this.eHeadSym&&f.Sym.Sym===f&&f.Org===null&&f.Dst===null&&f.Lface===null&&f.Rface===null)},i}(),A0=function(){function i(){this.handle=null}return i}(),O0=function(){function i(){this.key=null,this.node=0}return i}(),c2=function(){function i(e,t){this.leq=t,this.max=0,this.nodes=[],this.handles=[],this.initialized=!1,this.freeList=0,this.size=0,this.max=e,this.nodes=[],this.handles=[];for(var r=0;r<e+1;r++)this.nodes[r]=new A0,this.handles[r]=new O0;this.initialized=!1,this.nodes[1].handle=1,this.handles[1].key=null}return i.prototype.floatDown_=function(e){var t=this.nodes,r=this.handles,n,s,l;for(n=t[e].handle;;){if(l=e<<1,l<this.size&&this.leq(r[t[l+1].handle].key,r[t[l].handle].key)&&++l,Ae(l<=this.max),s=t[l].handle,l>this.size||this.leq(r[n].key,r[s].key)){t[e].handle=n,r[n].node=e;break}t[e].handle=s,r[s].node=e,e=l}},i.prototype.floatUp_=function(e){var t=this.nodes,r=this.handles,n,s,l;for(n=t[e].handle;;){if(l=e>>1,s=t[l].handle,l===0||this.leq(r[s].key,r[n].key)){t[e].handle=n,r[n].node=e;break}t[e].handle=s,r[s].node=e,e=l}},i.prototype.init=function(){for(var e=this.size;e>=1;--e)this.floatDown_(e);this.initialized=!0},i.prototype.min=function(){return this.handles[this.nodes[1].handle].key},i.prototype.insert=function(e){var t,r;if(t=++this.size,t*2>this.max){this.max*=2;var n,s;for(s=this.nodes.length,this.nodes.length=this.max+1,n=s;n<this.nodes.length;n++)this.nodes[n]=new A0;for(s=this.handles.length,this.handles.length=this.max+1,n=s;n<this.handles.length;n++)this.handles[n]=new O0}return this.freeList===0?r=t:(r=this.freeList,this.freeList=this.handles[r].node),this.nodes[t].handle=r,this.handles[r].node=t,this.handles[r].key=e,this.initialized&&this.floatUp_(t),r},i.prototype.extractMin=function(){var e=this.nodes,t=this.handles,r=e[1].handle,n=t[r].key;return this.size>0&&(e[1].handle=e[this.size].handle,t[e[1].handle].node=1,t[r].key=null,t[r].node=this.freeList,this.freeList=r,--this.size,this.size>0&&this.floatDown_(1)),n},i.prototype.delete=function(e){var t=this.nodes,r=this.handles,n;Ae(e>=1&&e<=this.max&&r[e].key!==null),n=r[e].node,t[n].handle=t[this.size].handle,r[t[n].handle].node=n,--this.size,n<=this.size&&(n<=1||this.leq(r[t[n>>1].handle].key,r[t[n].handle].key)?this.floatDown_(n):this.floatUp_(n)),r[e].key=null,r[e].node=this.freeList,this.freeList=e},i}(),zh=function(){function i(){this.eUp=null,this.nodeUp=null,this.windingNumber=0,this.inside=!1,this.sentinel=!1,this.dirty=!1,this.fixUpperEdge=!1}return i}(),P0=function(){function i(){this.key=null,this.next=null,this.prev=null}return i}(),u2=function(){function i(e,t){this.frame=e,this.leq=t,this.head=new P0,this.head.next=this.head,this.head.prev=this.head}return i.prototype.min=function(){return this.head.next},i.prototype.max=function(){return this.head.prev},i.prototype.insert=function(e){return this.insertBefore(this.head,e)},i.prototype.search=function(e){var t=this.head;do t=t.next;while(t.key!==null&&!this.leq(this.frame,e,t.key));return t},i.prototype.insertBefore=function(e,t){do e=e.prev;while(e.key!==null&&!this.leq(this.frame,e.key,t));var r=new P0;return r.key=t,r.next=e.next,e.next.prev=r,r.prev=e,e.next=r,r},i.prototype.delete=function(e){e.next.prev=e.prev,e.prev.next=e.next},i}(),f2=function(){function i(){}return i.regionBelow=function(e){return e.nodeUp.prev.key},i.regionAbove=function(e){return e.nodeUp.next.key},i.debugEvent=function(e){},i.addWinding=function(e,t){e.winding+=t.winding,e.Sym.winding+=t.Sym.winding},i.edgeLeq=function(e,t,r){var n=e.event,s=t.eUp,l=r.eUp;if(s.Dst===n)return l.Dst===n?Te.vertLeq(s.Org,l.Org)?Te.edgeSign(l.Dst,s.Org,l.Org)<=0:Te.edgeSign(s.Dst,l.Org,s.Org)>=0:Te.edgeSign(l.Dst,n,l.Org)<=0;if(l.Dst===n)return Te.edgeSign(s.Dst,n,s.Org)>=0;var c=Te.edgeEval(s.Dst,n,s.Org),f=Te.edgeEval(l.Dst,n,l.Org);return c>=f},i.deleteRegion=function(e,t){t.fixUpperEdge&&Ae(t.eUp.winding===0),t.eUp.activeRegion=null,e.dict.delete(t.nodeUp)},i.fixUpperEdge=function(e,t,r){Ae(t.fixUpperEdge),e.mesh.delete(t.eUp),t.fixUpperEdge=!1,t.eUp=r,r.activeRegion=t},i.topLeftRegion=function(e,t){var r=t.eUp.Org,n;do t=i.regionAbove(t);while(t.eUp.Org===r);if(t.fixUpperEdge){if(n=e.mesh.connect(i.regionBelow(t).eUp.Sym,t.eUp.Lnext),n===null)return null;i.fixUpperEdge(e,t,n),t=i.regionAbove(t)}return t},i.topRightRegion=function(e){var t=e.eUp.Dst;do e=i.regionAbove(e);while(e.eUp.Dst===t);return e},i.addRegionBelow=function(e,t,r){var n=new zh;return n.eUp=r,n.nodeUp=e.dict.insertBefore(t.nodeUp,n),n.fixUpperEdge=!1,n.sentinel=!1,n.dirty=!1,r.activeRegion=n,n},i.isWindingInside=function(e,t){switch(e.windingRule){case Pt.ODD:return(t&1)!=0;case Pt.NONZERO:return t!==0;case Pt.POSITIVE:return t>0;case Pt.NEGATIVE:return t<0;case Pt.ABS_GEQ_TWO:return t>=2||t<=-2}throw new Error("Invalid winding rulle")},i.computeWinding=function(e,t){t.windingNumber=i.regionAbove(t).windingNumber+t.eUp.winding,t.inside=i.isWindingInside(e,t.windingNumber)},i.finishRegion=function(e,t){var r=t.eUp,n=r.Lface;n.inside=t.inside,n.anEdge=r,i.deleteRegion(e,t)},i.finishLeftRegions=function(e,t,r){for(var n,s=null,l=t,c=t.eUp;l!==r;){if(l.fixUpperEdge=!1,s=i.regionBelow(l),n=s.eUp,n.Org!=c.Org){if(!s.fixUpperEdge){i.finishRegion(e,l);break}n=e.mesh.connect(c.Lprev,n.Sym),i.fixUpperEdge(e,s,n)}c.Onext!==n&&(e.mesh.splice(n.Oprev,n),e.mesh.splice(c,n)),i.finishRegion(e,l),c=s.eUp,l=s}return c},i.addRightEdges=function(e,t,r,n,s,l){var c,f,h,d,x=!0;h=r;do Ae(Te.vertLeq(h.Org,h.Dst)),i.addRegionBelow(e,t,h.Sym),h=h.Onext;while(h!==n);for(s===null&&(s=i.regionBelow(t).eUp.Rprev),f=t,d=s;c=i.regionBelow(f),h=c.eUp.Sym,h.Org===d.Org;)h.Onext!==d&&(e.mesh.splice(h.Oprev,h),e.mesh.splice(d.Oprev,h)),c.windingNumber=f.windingNumber-h.winding,c.inside=i.isWindingInside(e,c.windingNumber),f.dirty=!0,!x&&i.checkForRightSplice(e,f)&&(i.addWinding(h,d),i.deleteRegion(e,f),e.mesh.delete(d)),x=!1,f=c,d=h;f.dirty=!0,Ae(f.windingNumber-h.winding===c.windingNumber),l&&i.walkDirtyRegions(e,f)},i.spliceMergeVertices=function(e,t,r){e.mesh.splice(t,r)},i.vertexWeights=function(e,t,r){var n=Te.vertL1dist(t,e),s=Te.vertL1dist(r,e),l=.5*s/(n+s),c=.5*n/(n+s);e.coords[0]+=l*t.coords[0]+c*r.coords[0],e.coords[1]+=l*t.coords[1]+c*r.coords[1],e.coords[2]+=l*t.coords[2]+c*r.coords[2]},i.getIntersectData=function(e,t,r,n,s,l){t.coords[0]=t.coords[1]=t.coords[2]=0,t.idx=-1,i.vertexWeights(t,r,n),i.vertexWeights(t,s,l)},i.checkForRightSplice=function(e,t){var r=i.regionBelow(t),n=t.eUp,s=r.eUp;if(Te.vertLeq(n.Org,s.Org)){if(Te.edgeSign(s.Dst,n.Org,s.Org)>0)return!1;Te.vertEq(n.Org,s.Org)?n.Org!==s.Org&&(e.pq.delete(n.Org.pqHandle),i.spliceMergeVertices(e,s.Oprev,n)):(e.mesh.splitEdge(s.Sym),e.mesh.splice(n,s.Oprev),t.dirty=r.dirty=!0)}else{if(Te.edgeSign(n.Dst,s.Org,n.Org)<0)return!1;i.regionAbove(t).dirty=t.dirty=!0,e.mesh.splitEdge(n.Sym),e.mesh.splice(s.Oprev,n)}return!0},i.checkForLeftSplice=function(e,t){var r=i.regionBelow(t),n=t.eUp,s=r.eUp,l;if(Ae(!Te.vertEq(n.Dst,s.Dst)),Te.vertLeq(n.Dst,s.Dst)){if(Te.edgeSign(n.Dst,s.Dst,n.Org)<0)return!1;i.regionAbove(t).dirty=t.dirty=!0,l=e.mesh.splitEdge(n),e.mesh.splice(s.Sym,l),l.Lface.inside=t.inside}else{if(Te.edgeSign(s.Dst,n.Dst,s.Org)>0)return!1;t.dirty=r.dirty=!0,l=e.mesh.splitEdge(s),e.mesh.splice(n.Lnext,s.Sym),l.Rface.inside=t.inside}return!0},i.checkForIntersect=function(e,t){var r=i.regionBelow(t),n=t.eUp,s=r.eUp,l=n.Org,c=s.Org,f=n.Dst,h=s.Dst,d,x,g=new Ns,w,S;if(Ae(!Te.vertEq(h,f)),Ae(Te.edgeSign(f,e.event,l)<=0),Ae(Te.edgeSign(h,e.event,c)>=0),Ae(l!==e.event&&c!==e.event),Ae(!t.fixUpperEdge&&!r.fixUpperEdge),l===c||(d=Math.min(l.t,f.t),x=Math.max(c.t,h.t),d>x))return!1;if(Te.vertLeq(l,c)){if(Te.edgeSign(h,l,c)>0)return!1}else if(Te.edgeSign(f,c,l)<0)return!1;return i.debugEvent(e),Te.intersect(f,l,h,c,g),Ae(Math.min(l.t,f.t)<=g.t),Ae(g.t<=Math.max(c.t,h.t)),Ae(Math.min(h.s,f.s)<=g.s),Ae(g.s<=Math.max(c.s,l.s)),Te.vertLeq(g,e.event)&&(g.s=e.event.s,g.t=e.event.t),w=Te.vertLeq(l,c)?l:c,Te.vertLeq(w,g)&&(g.s=w.s,g.t=w.t),Te.vertEq(g,l)||Te.vertEq(g,c)?(i.checkForRightSplice(e,t),!1):!Te.vertEq(f,e.event)&&Te.edgeSign(f,e.event,g)>=0||!Te.vertEq(h,e.event)&&Te.edgeSign(h,e.event,g)<=0?h===e.event?(e.mesh.splitEdge(n.Sym),e.mesh.splice(s.Sym,n),t=i.topLeftRegion(e,t),n=i.regionBelow(t).eUp,i.finishLeftRegions(e,i.regionBelow(t),r),i.addRightEdges(e,t,n.Oprev,n,n,!0),!0):f===e.event?(e.mesh.splitEdge(s.Sym),e.mesh.splice(n.Lnext,s.Oprev),r=t,t=i.topRightRegion(t),S=i.regionBelow(t).eUp.Rprev,r.eUp=s.Oprev,s=i.finishLeftRegions(e,r,null),i.addRightEdges(e,t,s.Onext,n.Rprev,S,!0),!0):(Te.edgeSign(f,e.event,g)>=0&&(i.regionAbove(t).dirty=t.dirty=!0,e.mesh.splitEdge(n.Sym),n.Org.s=e.event.s,n.Org.t=e.event.t),Te.edgeSign(h,e.event,g)<=0&&(t.dirty=r.dirty=!0,e.mesh.splitEdge(s.Sym),s.Org.s=e.event.s,s.Org.t=e.event.t),!1):(e.mesh.splitEdge(n.Sym),e.mesh.splitEdge(s.Sym),e.mesh.splice(s.Oprev,n),n.Org.s=g.s,n.Org.t=g.t,n.Org.pqHandle=e.pq.insert(n.Org),i.getIntersectData(e,n.Org,l,f,c,h),i.regionAbove(t).dirty=t.dirty=r.dirty=!0,!1)},i.walkDirtyRegions=function(e,t){for(var r=i.regionBelow(t),n,s;;){for(;r.dirty;)t=r,r=i.regionBelow(r);if(!t.dirty&&(r=t,t=i.regionAbove(t),t===null||!t.dirty))return;if(t.dirty=!1,n=t.eUp,s=r.eUp,n.Dst!==s.Dst&&i.checkForLeftSplice(e,t)&&(r.fixUpperEdge?(i.deleteRegion(e,r),e.mesh.delete(s),r=i.regionBelow(t),s=r.eUp):t.fixUpperEdge&&(i.deleteRegion(e,t),e.mesh.delete(n),t=i.regionAbove(r),n=t.eUp)),n.Org!==s.Org)if(n.Dst!==s.Dst&&!t.fixUpperEdge&&!r.fixUpperEdge&&(n.Dst===e.event||s.Dst===e.event)){if(i.checkForIntersect(e,t))return}else i.checkForRightSplice(e,t);n.Org===s.Org&&n.Dst===s.Dst&&(i.addWinding(s,n),i.deleteRegion(e,t),e.mesh.delete(n),t=i.regionAbove(r))}},i.connectRightVertex=function(e,t,r){var n,s=r.Onext,l=i.regionBelow(t),c=t.eUp,f=l.eUp,h=!1;if(c.Dst!==f.Dst&&i.checkForIntersect(e,t),Te.vertEq(c.Org,e.event)&&(e.mesh.splice(s.Oprev,c),t=i.topLeftRegion(e,t),s=i.regionBelow(t).eUp,i.finishLeftRegions(e,i.regionBelow(t),l),h=!0),Te.vertEq(f.Org,e.event)&&(e.mesh.splice(r,f.Oprev),r=i.finishLeftRegions(e,l,null),h=!0),h){i.addRightEdges(e,t,r.Onext,s,s,!0);return}Te.vertLeq(f.Org,c.Org)?n=f.Oprev:n=c,n=e.mesh.connect(r.Lprev,n),i.addRightEdges(e,t,n,n.Onext,n.Onext,!1),n.Sym.activeRegion.fixUpperEdge=!0,i.walkDirtyRegions(e,t)},i.connectLeftDegenerate=function(e,t,r){var n,s,l,c,f;if(n=t.eUp,Te.vertEq(n.Org,r)){Ae(!1),i.spliceMergeVertices(e,n,r.anEdge);return}if(!Te.vertEq(n.Dst,r)){e.mesh.splitEdge(n.Sym),t.fixUpperEdge&&(e.mesh.delete(n.Onext),t.fixUpperEdge=!1),e.mesh.splice(r.anEdge,n),i.sweepEvent(e,r);return}Ae(!1),t=i.topRightRegion(t),f=i.regionBelow(t),l=f.eUp.Sym,s=c=l.Onext,f.fixUpperEdge&&(Ae(s!==l),i.deleteRegion(e,f),e.mesh.delete(l),l=s.Oprev),e.mesh.splice(r.anEdge,l),Te.edgeGoesLeft(s)||(s=null),i.addRightEdges(e,t,l.Onext,c,s,!0)},i.connectLeftVertex=function(e,t){var r,n,s,l,c,f,h=new zh;if(h.eUp=t.anEdge.Sym,r=e.dict.search(h).key,n=i.regionBelow(r),!!n){if(l=r.eUp,c=n.eUp,Te.edgeSign(l.Dst,t,l.Org)===0){i.connectLeftDegenerate(e,r,t);return}if(s=Te.vertLeq(c.Dst,l.Dst)?r:n,r.inside||s.fixUpperEdge){if(s===r)f=e.mesh.connect(t.anEdge.Sym,l.Lnext);else{var d=e.mesh.connect(c.Dnext,t.anEdge);f=d.Sym}s.fixUpperEdge?i.fixUpperEdge(e,s,f):i.computeWinding(e,i.addRegionBelow(e,r,f)),i.sweepEvent(e,t)}else i.addRightEdges(e,r,t.anEdge,t.anEdge,null,!0)}},i.sweepEvent=function(e,t){e.event=t,i.debugEvent(e);for(var r=t.anEdge;r.activeRegion===null;)if(r=r.Onext,r===t.anEdge){i.connectLeftVertex(e,t);return}var n=i.topLeftRegion(e,r.activeRegion);Ae(n!==null);var s=i.regionBelow(n),l=s.eUp,c=i.finishLeftRegions(e,s,null);c.Onext===l?i.connectRightVertex(e,n,c):i.addRightEdges(e,n,c.Onext,l,l,!0)},i.addSentinel=function(e,t,r,n){var s=new zh,l=e.mesh.makeEdge();l.Org.s=r,l.Org.t=n,l.Dst.s=t,l.Dst.t=n,e.event=l.Dst,s.eUp=l,s.windingNumber=0,s.inside=!1,s.fixUpperEdge=!1,s.sentinel=!0,s.dirty=!1,s.nodeUp=e.dict.insert(s)},i.initEdgeDict=function(e){e.dict=new u2(e,i.edgeLeq);var t=e.bmax[0]-e.bmin[0],r=e.bmax[1]-e.bmin[1],n=e.bmin[0]-t,s=e.bmax[0]+t,l=e.bmin[1]-r,c=e.bmax[1]+r;i.addSentinel(e,n,s,l),i.addSentinel(e,n,s,c)},i.doneEdgeDict=function(e){for(var t,r=0;(t=e.dict.min().key)!==null;)t.sentinel||(Ae(t.fixUpperEdge),Ae(++r==1)),Ae(t.windingNumber===0),i.deleteRegion(e,t)},i.removeDegenerateEdges=function(e){var t,r,n,s=e.mesh.eHead;for(t=s.next;t!==s;t=r)r=t.next,n=t.Lnext,Te.vertEq(t.Org,t.Dst)&&t.Lnext.Lnext!==t&&(i.spliceMergeVertices(e,n,t),e.mesh.delete(t),t=n,n=t.Lnext),n.Lnext===t&&(n!==t&&((n===r||n===r.Sym)&&(r=r.next),e.mesh.delete(n)),(t===r||t===r.Sym)&&(r=r.next),e.mesh.delete(t))},i.initPriorityQ=function(e){var t,r,n,s=0;for(n=e.mesh.vHead,r=n.next;r!==n;r=r.next)s++;for(s+=8,t=e.pq=new c2(s,Te.vertLeq),n=e.mesh.vHead,r=n.next;r!==n;r=r.next)r.pqHandle=t.insert(r);return r!==n?!1:(t.init(),!0)},i.donePriorityQ=function(e){e.pq=null},i.removeDegenerateFaces=function(e,t){var r,n,s;for(r=t.fHead.next;r!==t.fHead;r=n)n=r.next,s=r.anEdge,Ae(s.Lnext!==s),s.Lnext.Lnext===s&&(i.addWinding(s.Onext,s),e.mesh.delete(s));return!0},i.computeInterior=function(e,t){t===void 0&&(t=!0);var r,n;if(i.removeDegenerateEdges(e),!i.initPriorityQ(e))return!1;for(i.initEdgeDict(e);(r=e.pq.extractMin())!==null;){for(;n=e.pq.min(),!(n===null||!Te.vertEq(n,r));)n=e.pq.extractMin(),i.spliceMergeVertices(e,r.anEdge,n.anEdge);i.sweepEvent(e,r)}return e.event=e.dict.min().key.eUp.Org,i.debugEvent(e),i.doneEdgeDict(e),i.donePriorityQ(e),i.removeDegenerateFaces(e,e.mesh)?(t&&e.mesh.check(),!0):!1},i}(),h2=function(){function i(){this.mesh=new M0,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=Pt.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 i.prototype.dot_=function(e,t){return e[0]*t[0]+e[1]*t[1]+e[2]*t[2]},i.prototype.normalize_=function(e){var t=e[0]*e[0]+e[1]*e[1]+e[2]*e[2];if(!t)throw"Zero-size vector!";t=Math.sqrt(t),e[0]/=t,e[1]/=t,e[2]/=t},i.prototype.longAxis_=function(e){var t=0;return Math.abs(e[1])>Math.abs(e[0])&&(t=1),Math.abs(e[2])>Math.abs(e[t])&&(t=2),t},i.prototype.computeNormal_=function(e){var t,r,n,s,l,c,f=[0,0,0],h=[0,0,0],d=[0,0,0],x=[0,0,0],g=[0,0,0],w=[null,null,null],S=[null,null,null],D=this.mesh.vHead;t=D.next;for(var C=0;C<3;++C)s=t.coords[C],h[C]=s,S[C]=t,f[C]=s,w[C]=t;for(t=D.next;t!==D;t=t.next)for(var G=0;G<3;++G)s=t.coords[G],s<h[G]&&(h[G]=s,S[G]=t),s>f[G]&&(f[G]=s,w[G]=t);var B=0;if(f[1]-h[1]>f[0]-h[0]&&(B=1),f[2]-h[2]>f[B]-h[B]&&(B=2),h[B]>=f[B]){e[0]=0,e[1]=0,e[2]=1;return}for(c=0,r=S[B],n=w[B],d[0]=r.coords[0]-n.coords[0],d[1]=r.coords[1]-n.coords[1],d[2]=r.coords[2]-n.coords[2],t=D.next;t!==D;t=t.next)x[0]=t.coords[0]-n.coords[0],x[1]=t.coords[1]-n.coords[1],x[2]=t.coords[2]-n.coords[2],g[0]=d[1]*x[2]-d[2]*x[1],g[1]=d[2]*x[0]-d[0]*x[2],g[2]=d[0]*x[1]-d[1]*x[0],l=g[0]*g[0]+g[1]*g[1]+g[2]*g[2],l>c&&(c=l,e[0]=g[0],e[1]=g[1],e[2]=g[2]);c<=0&&(e[0]=e[1]=e[2]=0,e[this.longAxis_(d)]=1)},i.prototype.checkOrientation_=function(){for(var e=this.mesh.fHead,t,r=this.mesh.vHead,n,s=0,l=e.next;l!==e;l=l.next)if(n=l.anEdge,!(n.winding<=0))do s+=(n.Org.s-n.Dst.s)*(n.Org.t+n.Dst.t),n=n.Lnext;while(n!==l.anEdge);if(s<0){for(t=r.next;t!==r;t=t.next)t.t=-t.t;this.tUnit[0]=-this.tUnit[0],this.tUnit[1]=-this.tUnit[1],this.tUnit[2]=-this.tUnit[2]}},i.prototype.projectPolygon_=function(){var e=this.mesh.vHead,t=[0,0,0],r,n,s=!1;t[0]=this.normal[0],t[1]=this.normal[1],t[2]=this.normal[2],!t[0]&&!t[1]&&!t[2]&&(this.computeNormal_(t),s=!0),r=this.sUnit,n=this.tUnit;var l=this.longAxis_(t);r[l]=0,r[(l+1)%3]=1,r[(l+2)%3]=0,n[l]=0,n[(l+1)%3]=0,n[(l+2)%3]=t[l]>0?1:-1;for(var c=e.next;c!==e;c=c.next)c.s=this.dot_(c.coords,r),c.t=this.dot_(c.coords,n);s&&this.checkOrientation_();for(var f=!0,h=e.next;h!==e;h=h.next)f?(this.bmin[0]=this.bmax[0]=h.s,this.bmin[1]=this.bmax[1]=h.t,f=!1):(h.s<this.bmin[0]&&(this.bmin[0]=h.s),h.s>this.bmax[0]&&(this.bmax[0]=h.s),h.t<this.bmin[1]&&(this.bmin[1]=h.t),h.t>this.bmax[1]&&(this.bmax[1]=h.t))},i.prototype.addWinding_=function(e,t){e.winding+=t.winding,e.Sym.winding+=t.Sym.winding},i.prototype.tessellateMonoRegion_=function(e,t){var r,n;if(r=t.anEdge,!(r.Lnext!==r&&r.Lnext.Lnext!==r))throw"Mono region invalid";for(;Te.vertLeq(r.Dst,r.Org);r=r.Lprev);for(;Te.vertLeq(r.Org,r.Dst);r=r.Lnext);n=r.Lprev;for(var s=void 0;r.Lnext!==n;)if(Te.vertLeq(r.Dst,n.Org)){for(;n.Lnext!==r&&(Te.edgeGoesLeft(n.Lnext)||Te.edgeSign(n.Org,n.Dst,n.Lnext.Dst)<=0);)s=e.connect(n.Lnext,n),n=s.Sym;n=n.Lprev}else{for(;n.Lnext!==r&&(Te.edgeGoesRight(r.Lprev)||Te.edgeSign(r.Dst,r.Org,r.Lprev.Org)>=0);)s=e.connect(r,r.Lprev),r=s.Sym;r=r.Lnext}if(n.Lnext===r)throw"Mono region invalid";for(;n.Lnext.Lnext!==r;)s=e.connect(n.Lnext,n),n=s.Sym;return!0},i.prototype.tessellateInterior_=function(e){for(var t,r=e.fHead.next;r!==e.fHead;r=t)if(t=r.next,r.inside&&!this.tessellateMonoRegion_(e,r))return!1;return!0},i.prototype.discardExterior_=function(e){for(var t,r=e.fHead.next;r!==e.fHead;r=t)t=r.next,r.inside||e.zapFace(r)},i.prototype.setWindingNumber_=function(e,t,r){for(var n,s=e.eHead.next;s!==e.eHead;s=n)n=s.next,s.Rface.inside!==s.Lface.inside?s.winding=s.Lface.inside?t:-t:r?e.delete(s):s.winding=0},i.prototype.getNeighbourFace_=function(e){return!e.Rface||!e.Rface.inside?-1:e.Rface.n},i.prototype.outputPolymesh_=function(e,t,r,n){var s,l=0,c=0,f;r>3&&e.mergeConvexFaces(r);for(var h=e.vHead.next;h!==e.vHead;h=h.next)h.n=-1;for(var d=e.fHead.next;d!==e.fHead;d=d.next)if(d.n=-1,!!d.inside){s=d.anEdge,f=0;do{var h=s.Org;h.n===-1&&(h.n=c,c++),f++,s=s.Lnext}while(s!==d.anEdge);if(f>r)throw"Face vertex greater that support polygon";d.n=l,++l}this.elementCount=l,t===Qt.CONNECTED_POLYGONS&&(l*=2),this.elements=[],this.elements.length=l*r,this.vertexCount=c,this.vertices=[],this.vertices.length=c*n,this.vertexIndices=[],this.vertexIndices.length=c;for(var h=e.vHead.next;h!==e.vHead;h=h.next)if(h.n!==-1){var x=h.n*n;this.vertices[x+0]=h.coords[0],this.vertices[x+1]=h.coords[1],n>2&&(this.vertices[x+2]=h.coords[2]),this.vertexIndices[h.n]=h.idx}for(var g=0,d=e.fHead.next;d!==e.fHead;d=d.next)if(!!d.inside){s=d.anEdge,f=0;do{var h=s.Org;this.elements[g++]=h.n,f++,s=s.Lnext}while(s!==d.anEdge);for(var w=f;w<r;++w)this.elements[g++]=-1;if(t===Qt.CONNECTED_POLYGONS){s=d.anEdge;do this.elements[g++]=this.getNeighbourFace_(s),s=s.Lnext;while(s!==d.anEdge);for(var S=f;S<r;++S)this.elements[g++]=-1}}},i.prototype.outputContours_=function(e,t){var r,n,s=0,l=0;this.vertexCount=0,this.elementCount=0;for(var c=e.fHead.next;c!==e.fHead;c=c.next)if(!!c.inside){n=r=c.anEdge;do this.vertexCount++,r=r.Lnext;while(r!==n);this.elementCount++}this.elements=[],this.elements.length=this.elementCount*2,this.vertices=[],this.vertices.length=this.vertexCount*t,this.vertexIndices=[],this.vertexIndices.length=this.vertexCount;var f=0,h=0,d=0;s=0;for(var c=e.fHead.next;c!==e.fHead;c=c.next)if(!!c.inside){l=0,n=r=c.anEdge;do this.vertices[f++]=r.Org.coords[0],this.vertices[f++]=r.Org.coords[1],t>2&&(this.vertices[f++]=r.Org.coords[2]),this.vertexIndices[h++]=this.vertexIdCallback?this.vertexIdCallback(r):r.Org.idx,l++,r=r.Lnext;while(r!==n);this.elements[d++]=s,this.elements[d++]=l,s+=l}},i.prototype.addContour=function(e,t){this.mesh===null&&(this.mesh=new M0),e<2&&(e=2),e>3&&(e=3);for(var r=null,n=0;n<t.length;n+=e)r===null?(r=this.mesh.makeEdge(),this.mesh.splice(r,r.Sym)):(this.mesh.splitEdge(r),r=r.Lnext),r.Org.coords[0]=t[n+0],r.Org.coords[1]=t[n+1],e>2?r.Org.coords[2]=t[n+2]:r.Org.coords[2]=0,r.Org.idx=this.vertexIndexCounter++,this.edgeCreateCallback&&this.edgeCreateCallback(r),r.winding=1,r.Sym.winding=-1},i.prototype.tesselate=function(e,t,r,n,s,l){if(e===void 0&&(e=Pt.ODD),t===void 0&&(t=Qt.POLYGONS),l===void 0&&(l=!0),this.vertices=[],this.elements=[],this.vertexIndices=[],this.vertexIndexCounter=0,s&&(this.normal[0]=s[0],this.normal[1]=s[1],this.normal[2]=s[2]),this.windingRule=e,n<2&&(n=2),n>3&&(n=3),!this.mesh)return!1;this.projectPolygon_(),f2.computeInterior(this,l);var c=this.mesh;return t===Qt.BOUNDARY_CONTOURS?this.setWindingNumber_(c,1,!0):this.tessellateInterior_(c),l&&c.check(),t===Qt.BOUNDARY_CONTOURS?this.outputContours_(c,n):this.outputPolymesh_(c,t,r,n),!0},i}();function wo(i){var e=i.windingRule,t=e===void 0?Pt.ODD:e,r=i.elementType,n=r===void 0?Qt.POLYGONS:r,s=i.polySize,l=s===void 0?3:s,c=i.vertexSize,f=c===void 0?2:c,h=i.normal,d=h===void 0?[0,0,1]:h,x=i.contours,g=x===void 0?[]:x,w=i.strict,S=w===void 0?!0:w,D=i.debug,C=D===void 0?!1:D;if(!g&&S)throw new Error("Contours can't be empty");if(!!g){var G=new h2;i.edgeCreateCallback&&(G.edgeCreateCallback=i.edgeCreateCallback),i.vertexIdCallback&&(G.vertexIdCallback=i.vertexIdCallback);for(var B=0;B<g.length;B++)G.addContour(f||2,g[B]);return G.tesselate(t,n,l,f,d,S),{vertices:G.vertices,vertexIndices:G.vertexIndices,vertexCount:G.vertexCount,elements:G.elements,elementCount:G.elementCount,mesh:C?G.mesh:void 0}}}var Dk=Pt.ODD,Bk=Pt.NONZERO,Gk=Pt.POSITIVE,jk=Pt.NEGATIVE,Ek=Pt.ABS_GEQ_TWO,Rk=Qt.POLYGONS,zk=Qt.CONNECTED_POLYGONS,Fk=Qt.BOUNDARY_CONTOURS;var No=class extends p2{constructor(e,t=12,r=100,n={}){super();this.type="ShapeGeometry";this.windingRule=Pt.ODD;this.elementType=Qt.POLYGONS;this.polySize=3;this.vertexSize=2;this.strict=!0;this._drawCount=0,this._shape=e,this._curveSegments=t,this._maxCount=r,this._maxDrawCount=r*3,this._triangulationOptions=Object.assign({windingRule:Pt.ODD,elementType:Qt.POLYGONS,polySize:3,vertexSize:2,strict:!0},n),this._positionAttribute=new Xc(new Float32Array(r*3),3),this._normalAttribute=new Xc(new Float32Array(r*3),3),this._uvAttribute=new Xc(new Float32Array(r*2),2),this._indexAttribute=new Xc(new Uint32Array(r*3),1),this.setAttribute("position",this._positionAttribute),this.setAttribute("normal",this._normalAttribute),this.setAttribute("uv",this._uvAttribute),this.setIndex(this._indexAttribute),this.updateFromShape()}copy(e){return this._drawCount=e.drawCount,this._maxDrawCount=e._maxDrawCount,this._maxCount=e.maxCount,super.copy(e)}get curveSegments(){return this._curveSegments}set curveSegments(e){this._curveSegments=e,this.updateFromShape()}get drawCount(){return this._drawCount}get maxDrawCount(){return this._maxDrawCount}get maxCount(){return this._maxCount}updateFromShape(){let e=this._shape.extractShapePointsToFlatArray([],this._curveSegments),t=this._shape.shapeHoles.map(f=>f.extractShapePointsToFlatArray([],this._curveSegments)),r,n=!0,s=!0,l,c;for(let f=0,h=e.length/2;f<h;f++){let d=f*2,x=e[d+0],g=e[d+1];if(l!==void 0&&x!==l&&(n=!1),c!==void 0&&g!==c&&(s=!1),l=x,c=g,!n&&!s)break}if(!n&&!s&&(r=wo({contours:[e,...t],windingRule:this._triangulationOptions.windingRule,elementType:this._triangulationOptions.elementType,polySize:this._triangulationOptions.polySize,vertexSize:this._triangulationOptions.vertexSize,strict:this._triangulationOptions.strict})),this._positionAttribute.array.fill(0),this._normalAttribute.array.fill(0),this._uvAttribute.array.fill(0),this._indexAttribute.array.fill(0),this._drawCount=0,r){let f=1/0,h=-1/0,d=1/0,x=-1/0;for(let S=0,D=r.vertexCount;S<D;S++){let C=S*2,G=r.vertices[C+0],B=r.vertices[C+1];G<f&&(f=G),G>h&&(h=G),B<d&&(d=B),B>x&&(x=B)}let g=h-f,w=x-d;for(let S=0,D=r.vertexCount;S<D;S++){let C=S*2,G=r.vertices[C+0],B=r.vertices[C+1],P=(G-f)/g,W=(B-d)/w;this._positionAttribute.setXYZ(S,G,B,0),this._normalAttribute.setXYZ(S,0,0,1),this._uvAttribute.setXY(S,P,W)}for(let S=0,D=r.elementCount;S<D;S++){let C=S*3,G=r.elements[C+0],B=r.elements[C+1],P=r.elements[C+2];this._indexAttribute.setX(C+0,G),this._indexAttribute.setX(C+1,B),this._indexAttribute.setX(C+2,P),this._drawCount+=3}}return this._positionAttribute.needsUpdate=!0,this._normalAttribute.needsUpdate=!0,this._uvAttribute.needsUpdate=!0,this._indexAttribute.needsUpdate=!0,this.setDrawRange(0,this._drawCount),this._drawCount>this._maxDrawCount}clone(){let e=new No(this._shape,this._curveSegments,this._maxCount);return e.userData=sa(this.userData),e}};import{BufferAttribute as Qc,BufferGeometry as d2}from"three";var Yc=class{constructor(e=256,t=!1){this.capacity=e,this.size=0,this.debug=t,this.debug&&console.log(`allocating with cap ${e}`);let r=e*Yc.eSize;this.buffer=new ArrayBuffer(r);let n=Float32Array.BYTES_PER_ELEMENT,s=0;this.positions=new Float32Array(this.buffer,s*n,3*e),s+=3*e,this.normals=new Float32Array(this.buffer,s*n,3*e),s+=3*e,this.uvs=new Float32Array(this.buffer,s*n,2*e)}realloc(e,t=!1){if(e<this.size)throw Error("cannot shrink buffer");if(e<=this.capacity&&!t)return;this.debug&&console.log(`resizing from ${this.capacity} \u2192 ${e}`);let r=e*Yc.eSize,n=new ArrayBuffer(r),s=Float32Array.BYTES_PER_ELEMENT,l=0,c=new Float32Array(n,l*s,3*e);l+=3*e;let f=new Float32Array(n,l*s,3*e);l+=3*e;let h=new Float32Array(n,l*s,2*e);c.set(this.positions.slice(0,this.size*3)),f.set(this.normals.slice(0,this.size*3)),h.set(this.uvs.slice(0,this.size*2)),this.buffer=n,this.positions=c,this.normals=f,this.uvs=h,this.capacity=e}get(e=1){let t=this.size+e;if(t>this.capacity){let n=this.capacity;for(;t>n;)n*=2;this.realloc(n)}let r=this.size;return this.size=t,r}reserve(e){let t=this.size+e;t>this.capacity&&this.realloc(t)}shrink(){this.debug&&console.log(`shrinking ${this.capacity} \u2192 ${this.size}`),this.realloc(this.size,!0)}},Zc=Yc;Zc.eSize=(3+3+2)*Float32Array.BYTES_PER_ELEMENT;var Fh=(i,e)=>([t,r])=>(r<t&&(r+=e),(i>=t?i:i+e)<=r),wa=class extends d2{constructor(e,t,r=0,n=12,s=3){super();this.type="ShapeGeometry";this.vertexCache={};this._shape=e,this._depth=t,this._bevel=r,this._curveSegments=n,this._bevelSegmentsInput=s,r<=0?(this._bevelSize=0,this._bevelSegments=0):(this._bevelSize=Math.min(r,t/2-1e-12),this._bevelSegments=Math.floor(s));let l=this._shape.extractShapePointsToFlatArray([],n),c=this._shape.shapeHoles.map(q=>{let E=q.extractShapePointsToFlatArray([],n),b=[];for(let R=E.length-1;R>=1;R-=2){let T=E[R-1],z=E[R-0];b.push(T,z)}return b}),f=wo({windingRule:Pt.ODD,elementType:Qt.BOUNDARY_CONTOURS,vertexSize:2,strict:!0,contours:[l]}),h=wo({windingRule:Pt.ODD,elementType:Qt.BOUNDARY_CONTOURS,vertexSize:2,strict:!0,contours:[...c]});if(!f)throw new Error("error generating geometry");let d=f.elementCount;if(h){f.elementCount+=h.elementCount;for(let q=0;q<h.elements.length;q++){let E=h.elements[q],b=q%2==0?f.vertexCount:0;f.elements.push(E+b)}for(let q=0;q<h.vertexIndices.length;q++){let E=h.vertexIndices[q],b=f.vertexCount;f.vertexIndices.push(E+b)}for(let q=0;q<h.vertices.length;q++){let E=h.vertices[q];f.vertices.push(E)}}let x=1/0,g=-1/0,w=1/0,S=-1/0;for(let q=0,E=f.vertexCount;q<E;q++){let b=q*2,R=f.vertices[b+0],T=f.vertices[b+1];R<x&&(x=R),R>g&&(g=R),T<w&&(w=T),T>S&&(S=T)}this._minX=x,this._minY=w,this._width=g-x,this._height=S-w;let D=f.vertexCount*2*(2+this._bevelSegments);this._buffer=new Zc(D);let C=[],G=[];for(let q=f.elementCount-1;q>=0;q--){let E=q>=d,b=q*2,R=f.elements[b+0],T=f.elements[b+1],z=R+T,A={start:R,count:T,normals:[],continuous:[],concave:[]},$=R,he=z-1,re=R+1,Ne=this._shape.roundedCurves.length;do{let k=$-R,H=f.vertices[he*2+0],_=f.vertices[he*2+1],J=f.vertices[$*2+0],ee=f.vertices[$*2+1],oe=f.vertices[re*2+0],se=f.vertices[re*2+1],ce=J-H,ue=ee-_,K=Math.sqrt(ce*ce+ue*ue);ce/=K,ue/=K;let ae=J-oe,ne=ee-se,Ce=Math.sqrt(ae*ae+ne*ne);ae/=Ce,ne/=Ce,A.normals[k*2+0]=-ne,A.normals[k*2+1]=ae,A.concave[k]=ce*ne-ue*ae>0;let Y=f.vertexIndices[$];if(Array.isArray(Y))A.continuous[k]=!1;else{let[le,pe]=this._shape.getCurveIndexFromVertexId(Y-1,!0);if(pe>0&&pe<1)A.continuous[k]=!0;else{let xe=pe===1?le+1:le-1;xe=(xe+Ne)%Ne;let _e=pe===1?0:1,de=this._shape.roundedCurves[le].getTangent(pe),we=this._shape.roundedCurves[xe].getTangent(_e);A.continuous[k]=de.dot(we)>.95}}E&&(A.normals[k*2+0]*=-1,A.normals[k*2+1]*=-1),[he,$,re]=[$,re,re+1],re>=z&&(re-=T)}while(re!==R+1);let ye=[];ye.push({bevelI:0,angle:0,size:0,boundary:{vertices:f.vertices.slice(R*2,z*2),vertexCount:T,vertexIndices:new Array(T).fill(!0).map((k,H)=>[H,H]),elements:[0,T],elementCount:1,mesh:null},reverseMap:[],insetPoints:f.vertices.slice(R*2,z*2)});for(let k=1;k<=this._bevelSegments;k++){let H=k/this._bevelSegments*Math.PI/2,_=(1-Math.cos(H))*this._bevelSize,J=[],ee=[],oe=[],se=[],ce=0;for(let K=0;K<T;K++){let ae=K*2,ne=(K-1+T)%T*2,Ce=f.vertices[A.start*2+ae+0],Y=f.vertices[A.start*2+ae+1],le=-A.normals[ne+0]*_,pe=-A.normals[ne+1]*_,xe=-A.normals[ae+0]*_,_e=-A.normals[ae+1]*_;if(A.concave[K]||!A.concave[K]&&E){let de=Math.atan2(pe,le),we=Math.atan2(_e,xe);we>de&&(we-=Math.PI*2);let Ve=we-de;if(A.continuous[K]||E){let Ge=de+Ve/2,Qe=Math.cos(Ge)*_,bt=Math.sin(Ge)*_;J[2*ce+0]=Ce+Qe*(E?-1:1),J[2*ce+1]=Y+bt*(E?-1:1),se[ce]=K,ce++}else{let Ge=Math.max(1,Math.floor(n/4*Math.abs(Ve)/Math.PI));for(let Qe=0;Qe<=Ge;Qe++){let bt=de+Ve*(Qe/Ge),Lt=Math.cos(bt)*_,At=Math.sin(bt)*_;J[2*ce+0]=Ce+Lt,J[2*ce+1]=Y+At,se[ce]=K,ce++}}}else J[2*ce+0]=Ce+le,J[2*ce+1]=Y+pe,se[ce]=K,ee[K]=ce,ce++,J[2*ce+0]=Ce,J[2*ce+1]=Y,se[ce]=K,ce++,J[2*ce+0]=Ce+xe,J[2*ce+1]=Y+_e,se[ce]=K,oe[K]=ce,ce++}let ue=wo({windingRule:Pt.POSITIVE,elementType:Qt.BOUNDARY_CONTOURS,vertexSize:2,strict:!0,contours:[J],edgeCreateCallback:K=>{let ne=K.Org.idx,Ce=se[ne],Y=se[(ne+1)%se.length];K.idx=[Ce,Y],K.Sym.idx=[Y,Ce]},vertexIdCallback:K=>{let ae=K.Lprev.idx;return[ae?ae[1]:0,K.idx[0]]}});if(!ue)throw console.log("Error"),new Error(`error generating bevel geometry for ${k}'th loop`);if(!ue.vertexCount)break;for(let K=0;K<ue.vertexIndices.length;K++){let[ae,ne]=ue.vertexIndices[K];if(ae===ne)continue;let Ce=ne;ne<ae&&(Ce+=T);for(let Y=ae;Y<Ce;Y++){let le=Y%T,pe=(Y+1)%T;if(!A.continuous[le]||!A.continuous[pe]){ue.vertexIndices[K]=[ae,le],ue.vertexIndices.splice(K+1,0,[pe,ne]),ue.vertices.splice((K+1)*2,0,ue.vertices[K*2],ue.vertices[K*2+1]);break}}}ye.push({bevelI:k,angle:H,size:_,boundary:ue,reverseMap:se,insetPoints:J})}let Me=(k,H,_)=>{let J=0,ee=k.boundary.vertexIndices.length;for(;J<ee&&_(k.boundary.vertexIndices[H]);)H=(H+1)%ee,J++;return J},Fe=C.length;for(let k=1;k<ye.length;k++){let H=ye[k-1],_=ye[k],J=H.boundary.vertexIndices.length,ee=_.boundary.vertexIndices.length;if(!J||!ee)break;let oe=A.concave.length,se=0,ce=Fh(se,T);for(;!H.boundary.vertexIndices.filter(ce).length||!_.boundary.vertexIndices.filter(ce).length;)se++,ce=Fh(se,T);let ue=H.boundary.vertexIndices.findIndex(ce),K=_.boundary.vertexIndices.findIndex(ce);do ue=(ue+1)%J;while(ce(H.boundary.vertexIndices[ue]));do K=(K+1)%ee;while(ce(_.boundary.vertexIndices[K]));se=(se+1)%T;let ae=se,ne=this.buildBevelVert(A,H,(ue-1+J)%J),Ce=this.buildBevelVert(A,_,(K-1+ee)%ee),Y=ne,le=Ce,pe,xe,_e=!1;do{ce=Fh(se,T);let de=Me(H,ue,ce),we=Me(_,K,ce),Ve=_e;if(_e=!1,de&&!we){for(let Ge=0;Ge<de;Ge++)pe=this.buildBevelVert(A,H,(ue+Ge)%J,Ge/(de-1)),C.push(Y.topN,pe.topP,le.topN),C.push(pe.bottomP,Y.bottomN,le.bottomN),Y=pe;_e=!0}else if(!de&&we)for(let Ge=0;Ge<we;Ge++)xe=this.buildBevelVert(A,_,(K+Ge)%ee,Ge/(we-1)),C.push(le.topN,Y.topP,xe.topP),C.push(Y.bottomP,le.bottomN,xe.bottomP),le=xe;else if(de&&we)if(pe=this.buildBevelVert(A,H,ue,0),xe=this.buildBevelVert(A,_,K,0),Ve?(C.push(Y.topN,xe.topP,le.topN),C.push(Y.topN,pe.topP,xe.topP),C.push(xe.bottomP,Y.bottomN,le.bottomN),C.push(pe.bottomP,Y.bottomN,xe.bottomP)):(C.push(Y.topN,pe.topP,le.topN),C.push(le.topN,pe.topP,xe.topP),C.push(pe.bottomP,Y.bottomN,le.bottomN),C.push(pe.bottomP,le.bottomN,xe.bottomP)),Y=pe,le=xe,de===we)for(let Ge=1;Ge<de;Ge++)pe=this.buildBevelVert(A,H,(ue+Ge)%J,Ge/(de-1)),xe=this.buildBevelVert(A,_,(K+Ge)%ee,Ge/(we-1)),C.push(Y.topN,pe.topP,le.topN),C.push(le.topN,pe.topP,xe.topP),C.push(pe.bottomP,Y.bottomN,le.bottomN),C.push(pe.bottomP,le.bottomN,xe.bottomP),Y=pe,le=xe;else if(de>we){let Ge=de/we,Qe=0;for(let bt=1;bt<de;bt++)pe=this.buildBevelVert(A,H,(ue+bt)%J,bt/(de-1)),C.push(Y.topN,pe.topP,le.topN),C.push(pe.bottomP,Y.bottomN,le.bottomN),Y=pe,bt>(Qe+1)*Ge&&(Qe++,xe=this.buildBevelVert(A,_,(K+Qe)%ee,Qe/(we-1)),C.push(le.topN,pe.topP,xe.topP),C.push(pe.bottomP,le.bottomN,xe.bottomP),le=xe)}else{let Ge=we/de,Qe=0;for(let bt=1;bt<we;bt++)xe=this.buildBevelVert(A,_,(K+bt)%ee,bt/(we-1)),C.push(le.topN,pe.topP,xe.topP),C.push(pe.bottomP,le.bottomN,xe.bottomP),le=xe,bt>(Qe+1)*Ge&&(Qe++,pe=this.buildBevelVert(A,H,(ue+Qe)%J,Qe/(de-1)),C.push(Y.topN,pe.topP,le.topN),C.push(pe.bottomP,Y.bottomN,le.bottomN),Y=pe)}ue=(ue+de)%J,K=(K+we)%ee,se=(se+1)%oe}while(se!==ae)}{let k=ye[0];for(let H=0,_=k.boundary.vertexCount;H<_;H++){let J=this.buildBevelVert(A,k,H),ee=this.buildBevelVert(A,k,(H+1)%_);C.push(ee.topP,J.topN,J.bottomN),C.push(ee.topP,J.bottomN,ee.bottomP)}}if(E){let k=[];for(let H=C.length-1;H>=Fe+2;H-=3){let _=C[H-2],J=C[H-1],ee=C[H-0];k.push(ee,J,_)}C.splice(Fe,C.length-Fe,...k)}if(E){let k=[];for(let H=ye[ye.length-1].boundary.vertices.length-1;H>=1;H-=2){let _=ye[ye.length-1].boundary.vertices[H-1],J=ye[ye.length-1].boundary.vertices[H-0];k.push(_,J)}G.push(k)}if(!E){let k=ye[ye.length-1],H=wo({windingRule:ye.length>1?Pt.POSITIVE:Pt.ODD,elementType:Qt.POLYGONS,vertexSize:2,strict:!0,contours:[k.insetPoints,...G]});if(!H)throw new Error("Error generating geometry for surface");for(let _=0;_<H.elementCount*3;_+=3){let J=this.buildSurfaceVert(H,H.elements[_+0]),ee=this.buildSurfaceVert(H,H.elements[_+1]),oe=this.buildSurfaceVert(H,H.elements[_+2]);C.push(J.top,ee.top,oe.top),C.push(oe.bottom,ee.bottom,J.bottom)}}this.vertexCache={}}this._buffer.shrink();let B=new Qc(Uint32Array.from(C),1),P=new Qc(this._buffer.positions,3),W=new Qc(this._buffer.normals,3),M=new Qc(this._buffer.uvs,2);P.needsUpdate=!0,W.needsUpdate=!0,M.needsUpdate=!0,B.needsUpdate=!0,this.setAttribute("position",P),this.setAttribute("normal",W),this.setAttribute("uv",M),this.setIndex(B)}buildSurfaceVert(e,t){let r=t.toString();if(r in this.vertexCache)return this.vertexCache[r];let n=e.vertices[t*2+0],s=e.vertices[t*2+1],l=(n-this._minX)/this._width,c=(s-this._minY)/this._height,f=this._buffer.get(2),h=f*3,d=f*2,x={top:f+0,bottom:f+1};return this._buffer.positions[h+0]=n,this._buffer.positions[h+1]=s,this._buffer.positions[h+2]=this._depth,this._buffer.normals[h+0]=0,this._buffer.normals[h+1]=0,this._buffer.normals[h+2]=1,this._buffer.uvs[d+0]=l,this._buffer.uvs[d+1]=c,this._buffer.positions[h+3]=n,this._buffer.positions[h+4]=s,this._buffer.positions[h+5]=0,this._buffer.normals[h+3]=0,this._buffer.normals[h+4]=0,this._buffer.normals[h+5]=-1,this._buffer.uvs[d+2]=l,this._buffer.uvs[d+3]=c,this.vertexCache[r]=x,x}buildBevelVert(e,t,r,n=1){let s=`${t.bevelI}:${r}`;if(s in this.vertexCache)return this.vertexCache[s];let[l,c]=t.boundary.vertexIndices[r],f,h,d,x;l!==c?(h=l,f=c,x=!1,d=e.continuous[h]&&e.continuous[f]):(f=l,h=(f-1+e.count)%e.count,x=e.concave[f]&&t.bevelI>0,d=e.continuous[f]||x);let g=Math.cos(t.angle),w=Math.sin(t.angle),S=r*2,D=f*2,C=h*2,G=t.boundary.vertices[S+0],B=t.boundary.vertices[S+1],P=(1-w)*this._bevelSize,W=(G-this._minX)/this._width,M=(B-this._minY)/this._height,q=e.normals[D+0],E=e.normals[D+1],b=e.normals[C+0],R=e.normals[C+1];if(x){let he=b-q,re=R-E;q=q+he*(1-n),E=E+re*(1-n);let Ne=Math.sqrt(q*q+E*E);q/=Ne,E/=Ne}let T=this._buffer.get(d?2:4),z=T*3,A=T*2,$={i:r,fi:f,topP:T+0,topN:T+0,bottomP:T+1,bottomN:T+1};return this._buffer.positions[z+0]=G,this._buffer.positions[z+1]=B,this._buffer.positions[z+2]=this._depth-P,this._buffer.normals[z+0]=q*g,this._buffer.normals[z+1]=E*g,this._buffer.normals[z+2]=w,this._buffer.uvs[A+0]=W,this._buffer.uvs[A+1]=M,this._buffer.positions[z+3]=G,this._buffer.positions[z+4]=B,this._buffer.positions[z+5]=P,this._buffer.normals[z+3]=q*g,this._buffer.normals[z+4]=E*g,this._buffer.normals[z+5]=-w,this._buffer.uvs[A+2]=M,this._buffer.uvs[A+3]=W,d||(T+=2,z+=6,A+=4,$.topP=T+0,$.bottomP=T+1,this._buffer.positions[z+0]=G,this._buffer.positions[z+1]=B,this._buffer.positions[z+2]=this._depth-P,this._buffer.normals[z+0]=b*g,this._buffer.normals[z+1]=R*g,this._buffer.normals[z+2]=w,this._buffer.uvs[A+0]=W,this._buffer.uvs[A+1]=M,this._buffer.positions[z+3]=G,this._buffer.positions[z+4]=B,this._buffer.positions[z+5]=P,this._buffer.normals[z+3]=b*g,this._buffer.normals[z+4]=R*g,this._buffer.normals[z+5]=-w,this._buffer.uvs[A+2]=M,this._buffer.uvs[A+3]=W),this.vertexCache[s]=$,$}clone(){let e=new wa(this._shape,this._depth,this._bevel,this._curveSegments,this._bevelSegmentsInput);return e.userData=sa(this.userData),e}};var ur=class{static create(i){return this.build(this.normalizeInputs(i))}static normalizeInputs(i,e){var h,d,x,g,w,S,D;let t=Object.assign({},(h=e==null?void 0:e.parameters)!=null?h:{width:100,subdivisions:40,roundness:0,extrudeDepth:0,surfaceMaxCount:100,extrudeBevelSize:0,extrudeBevelSegments:3},i.parameters),r=Math.abs(t.width),n=Math.abs((d=t.height)!=null?d:t.width),s=Math.abs(t.depth!==void 0&&t.depth===0&&t.extrudeDepth>0?t.extrudeDepth:(x=t.depth)!=null?x:0),l=(g=i.shape)!=null?g:e==null?void 0:e.shape,c=(w=l==null?void 0:l.roundness)!=null?w:t.roundness;l!==void 0&&(l instanceof st?(l.width!==r||l.height!==n)&&l.applySize(r,n):l=new st(r,n).fromJSON(l),((S=i.parameters)==null?void 0:S.roundness)!==void 0&&((D=i.parameters)==null?void 0:D.roundness)>0&&l.update(!1));let f=l!=null?l:new st(r,n);return{parameters:Object.assign(t,{width:r,height:n,depth:s,extrudeDepth:s,roundness:c}),shape:f}}static build(i){let{extrudeDepth:e,extrudeBevelSize:t,extrudeBevelSegments:r,subdivisions:n,roundness:s,surfaceMaxCount:l}=i.parameters;i.shape.roundness=s;let c;return e<=0?c=new No(i.shape,n,l):c=new wa(i.shape,e,t,n,r),Object.assign(c,{userData:fe(U({},i),{type:"VectorGeometry"})})}};import{MathUtils as D0,Vector2 as B0}from"three";var G0=Math.PI*2,j0=class{static create(i){return this.build(this.normalizeInputs(i))}static normalizeInputs(i,e){var n,s,l;let t=Object.assign({},(n=e==null?void 0:e.parameters)!=null?n:{width:100,depth:0,spikes:64,angle:360,innerRadius:0,extrudeDepth:0,extrudeBevelSize:0,extrudeBevelSegments:1,surfaceMaxCount:1e3},i.parameters);return{shape:i.shape&&i.shape instanceof st?i.shape:new st,parameters:Object.assign(t,{width:Math.abs(t.width),height:Math.abs((s=t.height)!=null?s:t.width),depth:Math.abs(t.depth!==void 0&&t.depth===0&&t.extrudeDepth>0?t.extrudeDepth:(l=t.depth)!=null?l:0)})}}static build(i){let{width:e,height:t,spikes:r,angle:n,innerRadius:s,depth:l,extrudeBevelSize:c,extrudeBevelSegments:f,surfaceMaxCount:h}=i.parameters,d=i.shape,x=e*.5,g=t*.5,w=m2(d,x,g,n*Math.PI/180,r,s);d.isClosed=!0,d.update();let S=ur.create({shape:d,parameters:{subdivisions:w,surfaceMaxCount:h,depth:l,extrudeBevelSize:c,extrudeBevelSegments:f}});return Object.assign(S,{userData:fe(U({},i),{type:"EllipseGeometry"})})}};function m2(i,e,t,r,n,s){if(r>=G0)return n>30||n%4==0?(y2(i,e,t,s),Math.round(n/4)):E0(i,r,n,e,t,s);let l={x:0,y:t},c=r+Math.PI*.5,f={x:Math.cos(c)*e,y:Math.sin(c)*t},h=I0({px:l.x,py:l.y,cx:f.x,cy:f.y,rx:e,ry:t,largeArcFlag:r>Math.PI,sweepFlag:!0});return n>30||n%h.length==0?g2(i,l.x,l.y,h,n,e,t,s):E0(i,r,n,e,t,s)}function g2(i,e,t,r,n,s,l,c){let f=Math.round(n/r.length);i.addPoint(Cs(e,t));for(let h=0,d=r.length;h<d;h++){let x=r[h],g=i.points[h],w=Cs(x.x,x.y);g.controls[1].position.set(x.x1,x.y1),w.controls[0].position.set(x.x2,x.y2),i.addPoint(w)}return c>0?R0(i,s,l,c):i.addPoint(Cs(0,0)),f}function E0(i,e,t,r,n,s){let l=-e/t;for(let c=0;c<=t;c++){let f=l*c,h=Math.sin(f)*r,d=Math.cos(f)*n;i.addPoint(Cs(h,d))}return e<G0?s>0?R0(i,r,n,s):i.addPoint(Cs(0,0)):(i.removePoint(i.points[i.points.length-1]),s>0&&z0(i,r,n,s)),1}function y2(i,e,t,r=0,n=0,s=0){let l=.5522847498,c=e*l,f=t*l;i.addPoint(eu(n-e,s,n-e,s-f,n-e,s+f)),i.addPoint(eu(n,s+t,n-c,s+t,n+c,s+t)),i.addPoint(eu(n+e,s,n+e,s+f,n+e,s-f)),i.addPoint(eu(n,s-t,n+c,s-t,n-c,s-t)),r>0&&z0(i,e,t,r)}function Cs(i,e){return new Kn(D0.generateUUID(),new B0(i,e))}function eu(i,e,t,r,n,s){let l=Cs(i,e);return l.controls[0].position.set(t,r),l.controls[1].position.set(n,s),l}function R0(i,e,t,r){F0(i,e,t,r).forEach(s=>i.addPoint(s))}function z0(i,e,t,r){let n=F0(i,e,t,r),s=new st;n.forEach(l=>s.addPoint(l)),s.isClosed=!0,i.shapeHoles.push(s)}function F0(i,e,t,r){let n=r*e/100,s=n*(Math.abs(t)/Math.abs(e)),l=new B0(n/e,s/t),c=i.points.map(f=>{let h=f.clone();return h.uuid=D0.generateUUID(),h}).reverse();return c.forEach(f=>{f.position.multiply(l);let h=f.controls[0].position.clone().multiply(l),d=f.controls[1].position.clone().multiply(l);f.controls[0].position.copy(d),f.controls[1].position.copy(h)}),c}import{BufferGeometry as x2,Float32BufferAttribute as Vh,Vector3 as V0}from"three";var U0=class{static create(i){return this.build(this.normalizeInputs(i))}static normalizeInputs(i,e){var c,f,h;let t=Object.assign({},(c=e==null?void 0:e.parameters)!=null?c:{width:100,revolutions:2,segments:40,pathRadius:10,pathType:0,pathSegments:30,cornerRadius:30,cornerSegments:4},i.parameters),r=Math.abs(t.width),n=Math.abs((f=t.height)!=null?f:r),s=Math.abs((h=t.depth)!=null?h:r),l=Math.abs(Math.min(r,s))/2;return{parameters:Object.assign(t,{width:r,height:n,depth:s,radius:l,segments:Math.round(t.segments),pathSegments:Math.round(t.pathSegments),cornerSegments:Math.round(t.cornerSegments)})}}static build(i){let{width:e,height:t,depth:r,radius:n,revolutions:s,segments:l,pathRadius:c,pathType:f,pathSegments:h,cornerRadius:d,cornerSegments:x}=i.parameters,g=new tu(!1,e,t,r,n,s,l,c,f,h,d,x);return Object.assign(g,{userData:fe(U({},i),{type:"HelixGeometry"})})}},tu=class extends x2{constructor(e=!0,t=1,r=1,n=1,s=1,l=1,c=1,f=1,h=1,d=1,x=1,g=1){super();let w=e&&l===1;w&&(g=0),x>100&&(x=100);let S=()=>new V0,D=new V0,C=S(),G=S(),B=S(),P,W,M,q,E,b,R,T,z=S(),A=S(),$=S(),he=S(),re=S(),Ne=S(),ye=S(),Me=S(),Fe=r-2*f+.001,k=Fe/l,H=Math.ceil(c*l),_=H+1,J=Fe/H,ee=-Fe/2,oe=d+1,se=2*Math.PI/d,ce=Math.PI/2/g,ue=.01,K=Math.min((1-x/100)*f,f-ue),ae=f-K,ne=0,Ce=2,Y=g*Ce+Ce,le=oe*Y/Ce,pe=le+oe*_,xe=oe*(_+Y),[_e,de,we]=[3,3,2].map(dt=>Array(xe*dt).fill(0)),Ve=[],Ge=s-f;function Qe(dt,Wt){let ar=Math.PI/2;b=Wt*J,T=2*Math.PI*(b%k)/k+ar,b+=ee,R=Math.sin(T)*Ge,E=Math.cos(T)*Ge,e?dt.set(E,R,b):dt.set(E,b,R)}Qe(D,-1e-10),Qe(C,0),z.copy(D),Qe(D,1);let bt=D.distanceTo(C),Lt=ae+K,At=bt*H+2*Lt,sr=K,Ur=At-Lt;for(let dt=0;dt<=H;dt++){Qe(G,dt),Me.subVectors(G,z).normalize(),z.copy(G),Ne.copy(G).setComponent(+e+1,0).normalize(),ye.crossVectors(Me,Ne).normalize();let Wt=dt===0,ar=dt===H,Ao=Wt?3*Math.PI/2:ce,Oo=Wt?sr:Ur,Po=Wt?oe:pe,ro=Wt?0:xe-oe,no=Me.clone().multiplyScalar(Wt?-ae:ae).add(G),Do=Me.clone().multiplyScalar(Wt?-1:1).normalize();for(let Mr=0;Mr<oe;Mr++){let io=Mr*se;if(A.addVectors(D.copy(Ne).multiplyScalar(f*Math.cos(io)),C.copy(ye).multiplyScalar(f*Math.sin(io))),$.copy(A).normalize(),Wt||ar){w||(ne=ro+Mr,[0,1,2].forEach(Jt=>{_e[ne*3+Jt]=no.getComponent(Jt),de[ne*3+Jt]=Do.getComponent(Jt)}),we[ne*2]=+ar,we[ne*2+1]=Mr/d),C.copy($).multiplyScalar(K),B.addVectors(G,C);for(let Jt=0;Jt<g;Jt++){let ti=Jt*ce+Ao;he.addVectors(D.copy(Me).multiplyScalar(ae*Math.sin(ti)),C.copy($).multiplyScalar(ae*Math.cos(ti))),re.copy(he).normalize(),C.addVectors(B,he),he.normalize(),ne=Po+Jt*oe+Mr,[0,1,2].forEach(Ee=>{_e[ne*3+Ee]=C.getComponent(Ee),de[ne*3+Ee]=re.getComponent(Ee)});let Bo=+Wt+Math.sin(ti);we[ne*2]=(Oo+ae*Bo)/At,we[ne*2+1]=Mr/d}}C.addVectors(G,A),ne=le+dt*oe+Mr,[0,1,2].forEach(Jt=>{_e[ne*3+Jt]=C.getComponent(Jt),de[ne*3+Jt]=$.getComponent(Jt)}),we[ne*2]=(Lt+dt*bt)/At,we[ne*2+1]=Mr/d}}let Ht=_+2*g+Ce,kr=1,[wn,Nn]=w?[kr,kr+_-1]:[0,Ht-1];for(let dt=wn;dt<=Nn-1;dt++){let Wt=w&&dt===Nn-1;for(let ar=0;ar<oe-1;ar++)P=dt*oe+ar,W=P+1,M=(Wt?ar:P)+oe,q=(Wt?ar+1:W)+oe,dt===0?Ve.push(W,q,M):dt===Ht-2?Ve.push(P,W,M):Ve.push(P,W,M,W,q,M)}this.setIndex(Ve),this.setAttribute("position",new Vh(_e,3)),this.setAttribute("normal",new Vh(de,3)),this.setAttribute("uv",new Vh(we,2))}};import{IcosahedronBufferGeometry as v2}from"three";var k0=class{static create(i){return this.build(this.normalizeInputs(i))}static normalizeInputs(i,e){var r,n,s;let t=Object.assign({},(r=e==null?void 0:e.parameters)!=null?r:{width:100,detail:0,corner:0,cornerSides:4},i.parameters);return{parameters:Object.assign(t,{width:Math.abs(t.width),height:Math.abs((n=t.height)!=null?n:t.width),depth:Math.abs((s=t.depth)!=null?s:t.width)})}}static build(i){let{width:e,height:t,depth:r,detail:n,corner:s,cornerSides:l}=i.parameters,c=n===0&&s!==0?new ru(e*.5,s,l):new v2(e*.5,n);return c.scale(1,t/e,r/e),Object.assign(c,{userData:fe(U({},i),{type:"IcosahedronGeometry"})})}},ru=class extends So{constructor(e=1,t=.2,r=4){let n=(1+Math.sqrt(5))/2,s=[-1,n,0,1,n,0,-1,-n,0,1,-n,0,0,-1,n,0,1,n,0,-1,-n,0,1,-n,n,0,-1,n,0,1,-n,0,-1,-n,0,1],l=[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],c="IcosahedronGeometry";super(s,l,c,e,t,r);this.type=c}static fromJSON(e){return new ru(e.radius,e.corner,e.cornerSides)}};import{LatheBufferGeometry as b2,Shape as S2}from"three";var H0=class{static create(i){return this.build(this.normalizeInputs(i))}static normalizeInputs(i,e){var r,n,s,l,c;((n=(r=i.parameters)==null?void 0:r.points)!=null?n:[]).forEach(f=>{Array.isArray(f)&&(f.x=f[0],f.y=f[1])});let t=Object.assign({},(s=e==null?void 0:e.parameters)!=null?s:{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}]},i.parameters);return{parameters:Object.assign(t,{width:Math.abs(t.width),height:Math.abs((l=t.height)!=null?l:t.width),depth:Math.abs((c=t.depth)!=null?c:t.width)})}}static build(i){let{points:e,segments:t,verticalSegments:r}=i.parameters,n=new S2;n.moveTo(e[0].x,e[0].y),n.bezierCurveTo(e[1].x,e[1].y,e[2].x,e[2].y,e[3].x,e[3].y);let s=new b2(n.extractPoints(r).shape,t);return s.rotateZ(Math.PI),Object.assign(s,{userData:fe(U({},i),{type:"LatheGeometry"})})}};import{BufferGeometry as q0,BufferGeometryLoader as I2,Vector3 as M2,BoxBufferGeometry as $0}from"three";import{BufferGeometry as w2,Vector2 as Uh,Vector3 as W0}from"three";import{Geometry as N2,Face3 as C2}from"three/examples/jsm/deprecated/Geometry.js";var L2=["a","b","c"];function _2(i,e){switch(e){case"c":return i.c;case"b":return i.b;case"a":default:return i.a}}function kh(i,e,t){let r=Math.min(i,e),n=Math.max(i,e),s=r+"_"+n;return t.get(s)}function Hh(i,e,t,r,n,s){let l=Math.min(i,e),c=Math.max(i,e),f=l+"_"+c,h;if(r.has(f))h=r.get(f);else{let d=t[l],x=t[c];h={a:d,b:x,newEdge:null,faces:[]},r.set(f,h)}h.faces.push(n),s[i].edges.push(h),s[e].edges.push(h)}function T2(i,e,t,r){let n,s,l;for(n=0,s=i.length;n<s;n++)t[n]={edges:[]};for(n=0,s=e.length;n<s;n++)l=e[n],Hh(l.a,l.b,i,r,l,t),Hh(l.b,l.c,i,r,l,t),Hh(l.c,l.a,i,r,l,t)}function nu(i,e,t,r,n){i.push(new C2(e,t,r,void 0,void 0,n))}function Ls(i,e){return Math.abs(e-i)/2+Math.min(i,e)}function iu(i,e,t,r){i.push([e.clone(),t.clone(),r.clone()])}var Wh=class{constructor(e=1){this.subdivisions=e}modify(e){e instanceof w2?e=new N2().fromBufferGeometry(e):e=e.clone(),e.mergeVertices();let t=this.subdivisions;for(;t-- >0;)this._smooth(e);return e.computeFaceNormals(),e.computeVertexNormals(),e}_smooth(e){let t=new W0,r,n,s,l,c,f=e.vertices,h=e.faces,d=e.faceVertexUvs[0],x=d!==void 0&&d.length>0,g=[],w=new Map;T2(f,h,g,w);let S=[],D,C,G,B,P,W,M;for(let ue of Array.from(w.keys())){for(C=w.get(ue),G=new W0,P=3/8,W=1/8,M=C.faces.length,M!=2&&(P=.5,W=0,M!=1),G.addVectors(C.a,C.b).multiplyScalar(P),t.set(0,0,0),l=0;l<M;l++){for(B=C.faces[l],c=0;c<3&&(D=f[_2(B,L2[c])],!(D!==C.a&&D!==C.b));c++);D&&t.add(D)}t.multiplyScalar(W),G.add(t),C.newEdge=S.length,S.push(G)}let q,E,b,R,T,z,A,$=[];for(n=0,s=f.length;n<s;n++){for(z=f[n],T=g[n].edges,r=T.length,r==3?q=3/16:r>3&&(q=3/(8*r)),E=1-r*Number(q),b=q,r<=2&&(r==2?(E=3/4,b=1/8):r==1||r==0),A=z.clone().multiplyScalar(E),t.set(0,0,0),l=0;l<r;l++)R=T[l],D=R.a!==z?R.a:R.b,t.add(D);t.multiplyScalar(Number(b)),A.add(t),$.push(A)}let he=$.concat(S),re=$.length,Ne,ye,Me,Fe=[],k=[],H,_,J,ee,oe=new Uh,se=new Uh,ce=new Uh;for(n=0,s=h.length;n<s;n++)B=h[n],Ne=Number(kh(B.a,B.b,w).newEdge)+re,ye=Number(kh(B.b,B.c,w).newEdge)+re,Me=Number(kh(B.c,B.a,w).newEdge)+re,nu(Fe,Ne,ye,Me,B.materialIndex),nu(Fe,B.a,Ne,Me,B.materialIndex),nu(Fe,B.b,ye,Ne,B.materialIndex),nu(Fe,B.c,Me,ye,B.materialIndex),x&&(H=d[n],_=H[0],J=H[1],ee=H[2],oe.set(Ls(_.x,J.x),Ls(_.y,J.y)),se.set(Ls(J.x,ee.x),Ls(J.y,ee.y)),ce.set(Ls(_.x,ee.x),Ls(_.y,ee.y)),iu(k,oe,se,ce),iu(k,_,oe,ce),iu(k,J,se,oe),iu(k,ee,ce,se));e.vertices=he,e.faces=Fe,x&&(e.faceVertexUvs[0]=k)}};var er=new M2,J0=class{static create(i){return this.build(this.normalizeInputs(i))}static normalizeInputs(i,e){var s,l;let t=(l=(s=i.geometry)!=null?s:e==null?void 0:e.geometry)!=null?l:new q0().copy(new $0(100,100,100)),r;e===void 0?(t.computeBoundingBox(),t.boundingBox.getSize(er),r={width:er.x,height:er.y,depth:er.z,subdivisions:0}):r=e.parameters;let n=U(U({},r),i.parameters);return{parameters:{width:Math.abs(n.width),height:Math.abs(n.height),depth:Math.abs(n.depth),subdivisions:Math.abs(n.subdivisions)},geometry:t}}static build(i){var f;let{width:e,height:t,depth:r,subdivisions:n}=i.parameters,s=(f=i.geometry)!=null?f:new q0().copy(new $0(100,100,100)),l=s.userData.parameters;l===void 0?(s.computeBoundingBox(),s.boundingBox.getSize(er)):er.set(l.width,l.height,l.depth),(e!==er.x||t!==er.y||r!==er.z)&&s.scale(er.x===0?1:e/er.x,er.y===0?1:t/er.y,er.z===0?1:r/er.z);let c=s.originalGeometry;return n>0?(c===void 0||(l==null?void 0:l.subdivisions)!==n)&&(c===void 0&&(c=s),s=new Wh(n).modify(c).toBufferGeometry()):(c!==void 0&&(s=c),c=void 0,s.getAttribute("normal")===void 0&&s.computeVertexNormals()),c!==void 0&&Object.assign(s,{originalGeometry:c}),delete i.geometry,Object.assign(s,{userData:fe(U({},i),{type:"NonParametricGeometry"})})}static loadFromUrl(i,e,t){new I2(t).load(i,n=>{let s=this.normalizeInputs({geometry:n});n.boundingBox.getSize(er);let l=100/er.x;Object.assign(s.parameters,{width:100,height:er.y*l,depth:er.z*l}),e(this.build(s))})}};var K0=class{static create(i){return this.build(this.normalizeInputs(i))}static normalizeInputs(i,e){var n,s,l,c;let t=Object.assign({},(n=e==null?void 0:e.parameters)!=null?n:{width:100,depth:0,spikes:5,cornerRadius:0,extrudeDepth:0,extrudeBevelSize:0,extrudeBevelSegments:3},i.parameters);return{shape:i.shape&&i.shape instanceof st?i.shape:new st,parameters:Object.assign(t,{surfaceMaxCount:((s=t.surfaceMaxCount)!=null?s:t.cornerRadius>0)?1e3:100,width:Math.abs(t.width),height:Math.abs((l=t.height)!=null?l:t.width),depth:Math.abs(t.depth!==void 0&&t.depth===0&&t.extrudeDepth>0?t.extrudeDepth:(c=t.depth)!=null?c:0)})}}static build(i){let{width:e,height:t,spikes:r,cornerRadius:n,depth:s,extrudeBevelSize:l,extrudeBevelSegments:c,surfaceMaxCount:f}=i.parameters,h=i.shape,d=e*.5,x=t*.5,g=0,w=0,S=2*Math.PI/r;for(let C=0;C<r;C++){let G=S*C,B=g+Math.sin(G)*d,P=w+Math.cos(G)*x;h.addPoint(h.createPoint(B,P))}h.isClosed=!0;for(let C=0,G=h.points.length;C<G;C++)h.points[C].roundness=n;h.roundness=n,h.update();let D=ur.create({shape:h,parameters:{surfaceMaxCount:f,roundness:n,depth:s,extrudeBevelSize:l,extrudeBevelSegments:c}});return Object.assign(D,{userData:fe(U({},i),{type:"PolygonGeometry"})})}};import{BufferGeometry as A2,Float32BufferAttribute as qh,Vector2 as Xn,Vector3 as or}from"three";var X0=class{static create(i){return this.build(this.normalizeInputs(i))}static normalizeInputs(i,e){var r,n,s;let t=Object.assign({},(r=e==null?void 0:e.parameters)!=null?r:{width:100,radialSegments:4,heightSegments:1,cornerRadius:0,cornerSegments:8,openEnded:!1},i.parameters);return{parameters:Object.assign(t,{width:Math.abs(t.width),height:Math.abs((n=t.height)!=null?n:t.width),depth:Math.abs((s=t.depth)!=null?s:t.width)})}}static build(i){let{width:e,height:t,depth:r,radialSegments:n,heightSegments:s,openEnded:l,cornerRadius:c,cornerSegments:f}=i.parameters,h=new Z0(e*.5,t,n,s,l,c,f);return h.scale(1,1,r/e),Object.assign(h,{userData:fe(U({},i),{type:"PyramidGeometry"})})}};function Na(i,e,t){t.x=i.x*e.x,t.y=i.y,t.z=i.x*e.y}function $h(i,e,t,r,n,s){let l=e.clone().sub(i),c=t.clone().sub(i),f=l.angleTo(c);if(l.normalize(),c.normalize(),r===n){let h=l.add(c).normalize();s.copy(i).addScaledVector(h,r/Math.sin(f/2))}else{let h=l.angleTo(c);s.copy(i),s.addScaledVector(l,n/Math.sin(h)),s.addScaledVector(c,r/Math.sin(h))}}function O2(i,e,t){let r=i.clone().sub(e),n=t.clone().sub(e);return r.projectOnVector(n),r.add(e)}var Z0=class extends A2{constructor(e=.5,t=1,r=4,n=1,s=!1,l=0,c=4){super();r=Math.floor(Math.max(3,r)),n=Math.floor(n),c=Math.floor(c);let f=[],h=[],d=[],x=[],g=0,w=t/2,S=Math.PI/r,D=e*Math.cos(Math.PI/r),C=2*Math.PI/r,G=(r-2)*Math.PI/r,B=Math.PI-G,P=new or(0,-w,0),W=new or(0,w,0),M=new Xn(e,-w),q=new Xn(D,-w),E=new Xn(0,W.y).sub(q),b=new Xn(0,W.y).sub(M),R=new Xn(E.y,-E.x).normalize(),T=new Xn(b.y,-b.x).normalize(),A=e*Math.cos(Math.PI/r)*Math.tan((Math.PI-E.angle())/2)-1e-8;l=Math.min(l,A);let $;{let k=new or(R.x,R.y,0),H=new or(Math.cos(C)*k.x,k.y,Math.sin(C)*k.x);$=k.angleTo(H)}let he=l/Math.tan((Math.PI-E.angle())/2),re=l/Math.tan((Math.PI-$)/2),Ne=new or;if(!s){h.push(P.x,P.y,P.z),d.push(0,-1,0),x.push(0,0);let k=g++,H=[],_=M.clone(),J=he/Math.cos(Math.PI/r);_.x-=J;for(let ee=0;ee<r;ee++){let oe=ee/r*Math.PI*2+S,se=new Xn(Math.sin(oe),Math.cos(oe));Na(_,se,Ne),h.push(Ne.x,Ne.y,Ne.z),d.push(0,-1,0),x.push(0,0),H.push(g++)}for(let ee=0;ee<H.length;ee++)f.push(H[ee],k,H[(ee+1)%H.length])}let ye=[];{let k=new or,H=new or,_=new or,J=new or,ee=new or,oe=new or;for(let se=0;se<r;se++){let ce=se/r*Math.PI*2+S,ue=(se+.5)/r*Math.PI*2+S,K=(se+1)/r*Math.PI*2+S,ae=new Xn(Math.sin(ce),Math.cos(ce)),ne=new Xn(Math.sin(ue),Math.cos(ue)),Ce=new Xn(Math.sin(K),Math.cos(K));Na(M,ae,H),Na(M,Ce,_),Na(R,ne,k),$h(W,H,_,re,re,J),h.push(J.x,J.y,J.z),$h(H,W,_,re,he,ee),h.push(ee.x,ee.y,ee.z),$h(_,H,W,he,re,oe),h.push(oe.x,oe.y,oe.z),d.push(k.x,k.y,k.z),d.push(k.x,k.y,k.z),d.push(k.x,k.y,k.z),x.push(0,0),x.push(0,0),x.push(0,0);let Y=g++,le=g++,pe=g++;if(f.push(Y,le,pe),l>0){{let de=H.clone().add(_).multiplyScalar(.5),we=W.clone().sub(de).normalize(),Ge=P.clone().sub(de).normalize().add(we).normalize().multiplyScalar(-1),Qe=oe.clone().sub(ee);Me(de,Qe,Ge,E.angle())}let xe,_e;{let de=new or;Na(T,Ce,de);let we=oe.clone().add(J).multiplyScalar(.5);we=O2(we,_,W);let Ve=oe.clone().sub(J);[xe,_e]=Me(we,Ve,de,$,J.y)}{let de=xe,we=de.clone().setY(0).normalize(),Ve=new or(0,-1,0),Ge=we.clone().cross(Ve);Fe(de,we,Ve,Ge)}ye.concat(_e);{let de=E.angle(),we=Math.PI-de,Ve=W.clone();Ve.y-=l/Math.sin(de-Math.PI/2);let Ge=new or,Qe=[];for(let Lt=0;Lt<c;Lt++){let At=[],sr=Math.PI/2-we*Lt/c,Ur=Math.cos(sr),Ht=Math.sin(sr),kr=ue;for(let wn=0;wn<=Lt;wn++){let Nn=Math.cos(kr),dt=Math.sin(kr);k.x=Ur*dt,k.y=Ht,k.z=Ur*Nn,Ge.copy(Ve).addScaledVector(k,l),h.push(Ge.x,Ge.y,Ge.z),d.push(k.x,k.y,k.z),x.push(0,0),At.push(g++),kr+=Math.PI*2/Lt/r}Qe.push(At)}_e.reverse(),Qe.push(_e);let bt=Qe.length-1;for(let Lt=0;Lt<bt;Lt++){let At=Qe[Lt],sr=Qe[Lt+1],Ur=At.length-1;f.push(sr[1],At[0],sr[0]);for(let Ht=1;Ht<=Ur;Ht++)f.push(At[Ht],At[Ht-1],sr[Ht]),f.push(sr[Ht+1],At[Ht],sr[Ht])}}}}}this.setIndex(f),this.setAttribute("position",new qh(h,3)),this.setAttribute("normal",new qh(d,3)),this.setAttribute("uv",new qh(x,2));function Me(k,H,_,J,ee){let oe=-J/2,se=(Math.PI-J)/2,ce=H.clone().normalize().cross(_);k.addScaledVector(_,-l/Math.sin(se));let ue=new or,K=new or,ae=1,ne=g,Ce=[];for(let Y=0;Y<=c;Y++){let le=oe+Y/c*J;K.set(0,0,0),K.addScaledVector(ce,Math.sin(le)),K.addScaledVector(_,Math.cos(le));for(let pe=0;pe<=ae;pe++){let xe=pe/ae-.5;if(ue.copy(k),ue.addScaledVector(H,xe),ue.addScaledVector(K,l),ee!=null){let _e=Math.max(0,ue.y-ee);ue.addScaledVector(H,-_e/H.y)}h.push(ue.x,ue.y,ue.z),d.push(K.x,K.y,K.z),x.push(0,0),pe===0&&Ce.push(g),g++}}for(let Y=0;Y<c;Y++)for(let le=0;le<ae;le++){let pe=ne+le+(ae+1)*Y,xe=pe+(ae+1),_e=xe+1,de=pe+1;f.push(pe,xe,de),f.push(xe,_e,de)}return[k.clone().addScaledVector(H,.5),Ce]}function Fe(k,H,_,J){let ee=Math.PI/2,oe=b.angle()-ee,se=[],ce=new or,ue=new or;for(let ae=0;ae<=c;ae++){let ne=[],Ce=ae/c;for(let Y=0;Y<=ae;Y++){let pe=((ae?Y/ae:0)-.5)*B,xe=Math.cos(pe),_e=Math.sin(pe),de=Math.atan(Math.tan(oe)*xe),we=(ee+de)*Ce,Ve=Math.cos(we),Ge=Math.sin(we);ce.set(0,0,0),ce.addScaledVector(H,Ge*xe),ce.addScaledVector(_,Ve),ce.addScaledVector(J,Ge*_e),ue.copy(k).addScaledVector(ce,l),h.push(ue.x,ue.y,ue.z),d.push(ce.x,ce.y,ce.z),x.push(0,0),ne.push(g++)}se.push(ne)}let K=se.length-1;for(let ae=0;ae<K;ae++){let ne=se[ae],Ce=se[ae+1],Y=ne.length-1;f.push(ne[0],Ce[1],Ce[0]);for(let le=1;le<=Y;le++)f.push(ne[le-1],ne[le],Ce[le]),f.push(ne[le],Ce[le+1],Ce[le])}}}};var ou=class{static create(i){return this.build(this.normalizeInputs(i))}static normalizeInputs(i,e){var l,c,f,h,d;let t=Object.assign({},(l=e==null?void 0:e.parameters)!=null?l:{width:100,depth:0,cornerRadius:[0,0,0,0],cornerType:1,extrudeDepth:0,extrudeBevelSize:0,extrudeBevelSegments:1},i.parameters),r=Object.assign((c=e==null?void 0:e.ui)!=null?c:{enabledIndieCorners:!1},i.ui),n=t.cornerRadius.reduce((x,g)=>x+g,0);return{shape:i.shape&&i.shape instanceof st?i.shape:new st,parameters:Object.assign(t,{surfaceMaxCount:((f=t.surfaceMaxCount)!=null?f:n>0)?1e3:100,width:Math.abs(t.width),height:Math.abs((h=t.height)!=null?h:t.width),depth:Math.abs(t.depth!==void 0&&t.depth===0&&t.extrudeDepth>0?t.extrudeDepth:(d=t.depth)!=null?d:0)}),ui:r}}static build(i){let e=i.shape,{width:t,height:r,cornerRadius:n,cornerType:s,depth:l,extrudeBevelSize:c,extrudeBevelSegments:f,surfaceMaxCount:h}=i.parameters,d={x:t*.5,y:r*.5},x={x:-d.x,y:-d.y},g={x:d.x,y:d.y};function w(M,q,E){return q>t&&E>r?Math.min(M*t/q,M*r/E):q>t?M*t/q:E>r?M*r/E:M}let S=[];S[0]=n[0]===0?0:w(n[0],n[0]+n[3],n[0]+n[1]),S[1]=n[1]===0?0:w(n[1],n[1]+n[2],n[1]+n[0]),S[2]=n[2]===0?0:w(n[2],n[2]+n[1],n[2]+n[3]),S[3]=n[3]===0?0:w(n[3],n[3]+n[0],n[3]+n[2]);let D=x.x,C=g.x,G=g.y,B=x.y;e.addPoint(e.createPoint(D,G)),e.addPoint(e.createPoint(C,G)),e.addPoint(e.createPoint(C,B)),e.addPoint(e.createPoint(D,B)),e.isClosed=!0;let P=!0;for(let M=0,q=e.points.length;M<q;M++)e.points[M].roundness=S[M],M>0&&S[M]!==S[M-1]&&(P=!1);P&&(e.roundness=S[0]),e.useCubicForRoundedCorners=s!==1,e.update();let W=ur.create({shape:e,parameters:{surfaceMaxCount:h,depth:l,extrudeBevelSize:c,extrudeBevelSegments:f}});return Object.assign(W,{userData:fe(U({},i),{type:"RectangleGeometry"})})}};import{SphereBufferGeometry as P2}from"three";var Y0=class{static create(i){return this.build(this.normalizeInputs(i))}static normalizeInputs(i,e){var r,n,s;let t=Object.assign({},(r=e==null?void 0:e.parameters)!=null?r:{width:100,widthSegments:64,heightSegments:64,phiStart:0,phiLength:2*Math.PI,thetaStart:0,thetaLength:Math.PI},i.parameters);return{parameters:Object.assign(t,{width:Math.abs(t.width),height:Math.abs((n=t.height)!=null?n:t.width),depth:Math.abs((s=t.depth)!=null?s:t.width)})}}static build(i){let{width:e=100,height:t=e,depth:r=e,widthSegments:n=64,heightSegments:s=64,phiStart:l,phiLength:c,thetaStart:f,thetaLength:h}=i.parameters,d=new P2(.5*e,n,s,l,c,f,h);return d.scale(1,t/e,r/e),Object.assign(d,{userData:fe(U({},i),{type:"SphereGeometry"})})}};import{PlaneBufferGeometry as D2}from"three";var Q0=class{static create(i){return this.build(this.normalizeInputs(i))}static normalizeInputs(i,e){var r,n;let t=Object.assign({},(r=e==null?void 0:e.parameters)!=null?r:{width:100,depth:0,widthSegments:8,heightSegments:8},i.parameters);return{parameters:Object.assign(t,{width:Math.abs(t.width),height:Math.abs((n=t.height)!=null?n:t.width),depth:0})}}static build(i){let{width:e=100,height:t=e,widthSegments:r=8,heightSegments:n=8}=i.parameters,s=new D2(e,t,r,n);return s.scale(1,1,1),Object.assign(s,{userData:fe(U({},i),{type:"PlaneGeometry"})})}};var ev=class{static create(i){return this.build(this.normalizeInputs(i))}static normalizeInputs(i,e){var n,s,l,c;let t=Object.assign({},(n=e==null?void 0:e.parameters)!=null?n:{width:100,depth:0,innerRadiusPercent:38.19,spikes:5,cornerRadius:0,angle:360,extrudeDepth:0,extrudeBevelSize:0,extrudeBevelSegments:1},i.parameters);return{shape:i.shape&&i.shape instanceof st?i.shape:new st,parameters:Object.assign(t,{surfaceMaxCount:((s=t.surfaceMaxCount)!=null?s:t.cornerRadius>0)?1e3:100,width:Math.abs(t.width),height:Math.abs((l=t.height)!=null?l:t.width),depth:Math.abs(t.depth!==void 0&&t.depth===0&&t.extrudeDepth>0?t.extrudeDepth:(c=t.depth)!=null?c:0)})}}static build(i){let{width:e,height:t,innerRadiusPercent:r,spikes:n,cornerRadius:s,angle:l,depth:c,extrudeBevelSize:f,extrudeBevelSegments:h,surfaceMaxCount:d}=i.parameters,x=i.shape,g=e*.5,w=t*.5,S=0,D=0,C=l*Math.PI/360/n,G=Math.PI/2*3*-1,B=g*r/100,P=w*r/100;if(n==3&&r==50){C=2*Math.PI/n;for(let M=0;M<n;M++){let q=C*M,E=S+Math.sin(q)*g,b=D+Math.cos(q)*w;x.addPoint(x.createPoint(E,b))}}else for(let M=0;M<n;M++){let q=S+Math.cos(G)*g,E=D+Math.sin(G)*w;x.addPoint(x.createPoint(q,E)),G+=C,q=S+Math.cos(G)*B,E=D+Math.sin(G)*P,M<=n,x.addPoint(x.createPoint(q,E)),G+=C}x.isClosed=!0;for(let M=0,q=x.points.length;M<q;M++)x.points[M].roundness=s;x.roundness=s,x.update();let W=ur.create({shape:x,parameters:{surfaceMaxCount:d,roundness:s,depth:c,extrudeBevelSize:f,extrudeBevelSegments:h}});return Object.assign(W,{userData:fe(U({},i),{type:"StarGeometry"})})}};import{PlaneBufferGeometry as B2}from"three";var su=class{static create(i){return this.build(this.normalizeInputs(i))}static normalizeInputs(i,e){var r,n,s;let t=Object.assign({},(r=e==null?void 0:e.parameters)!=null?r:{width:100,depth:0},i.parameters);return{parameters:Object.assign(t,{width:Math.abs(t.width),height:Math.abs((n=t.height)!=null?n:t.width),depth:Math.abs((s=t.depth)!=null?s:0)})}}static build(i){let{width:e,height:t}=i.parameters,r=new B2(e,t);return Object.assign(r,{userData:fe(U({},i),{type:"TextFrameGeometry"})})}};var tv=class{static create(i){return this.build(this.normalizeInputs(i))}static normalizeInputs(i,e){var l,c,f;let t=Object.assign({},(l=e==null?void 0:e.parameters)!=null?l:{width:100,radialSegments:32,tubularSegments:64,arc:Math.PI*2,cornerRadius:30,cornerSegments:8},i.parameters),r=Math.abs(t.width),n=Math.abs((c=t.height)!=null?c:t.width),s=Math.abs((f=t.depth)!=null?f:t.width*.25);return{parameters:Object.assign(t,{width:r,height:n,depth:s})}}static build(i){let{width:e,height:t,depth:r,radialSegments:n,tubularSegments:s,arc:l,cornerRadius:c,cornerSegments:f}=i.parameters,h=G2(e,t,r,e*.5,l,s,0,0,n,c,f);return h.scale(1,t/e,1),Object.assign(h,{userData:fe(U({},i),{type:"TorusGeometry"})})}};function G2(i,e,t,r,n,s,l,c,f,h,d){return[e,t]=[t,e],l=e/2,n/=2*Math.PI,n==1&&(h=0),new tu(!0,i,e,t,r,n,s,l,c,f,h,d)}import{TorusKnotBufferGeometry as j2}from"three";var rv=class{static create(i){return this.build(this.normalizeInputs(i))}static normalizeInputs(i,e){var r,n,s,l;let t=Object.assign({},(r=e==null?void 0:e.parameters)!=null?r:{width:100,tubularSegments:64,radialSegments:32,p:2,q:3},i.parameters);return{parameters:Object.assign(t,{width:Math.abs(t.width),height:Math.abs((n=t.height)!=null?n:t.width),depth:Math.abs((s=t.depth)!=null?s:t.width),tube:(l=t.tube)!=null?l:t.width*.125})}}static build(i){let{width:e,tube:t,tubularSegments:r,radialSegments:n,p:s,q:l}=i.parameters,c=e*.5;c!==t&&(c-=t);let f=new j2(c,t,r,n,s,l);return Object.assign(f,{userData:fe(U({},i),{type:"TorusKnotGeometry"})})}};var nv=class{static create(i){return this.build(this.normalizeInputs(i))}static normalizeInputs(i,e){var n,s,l,c;let t=Object.assign({},(n=e==null?void 0:e.parameters)!=null?n:{width:100,depth:0,spikes:5,cornerRadius:0,extrudeDepth:0,extrudeBevelSize:0,extrudeBevelSegments:1,isRect:!1},i.parameters);return{shape:i.shape&&i.shape instanceof st?i.shape:new st,parameters:Object.assign(t,{surfaceMaxCount:((s=t.surfaceMaxCount)!=null?s:t.cornerRadius>0)?1e3:100,width:Math.abs(t.width),height:Math.abs((l=t.height)!=null?l:t.width*(t.isRect?1:Math.sqrt(3)/2)),depth:Math.abs(t.depth!==void 0&&t.depth===0&&t.extrudeDepth>0?t.extrudeDepth:(c=t.depth)!=null?c:0)})}}static build(i){let{width:e=100,height:t,cornerRadius:r,depth:n,extrudeBevelSize:s,extrudeBevelSegments:l,isRect:c,surfaceMaxCount:f}=i.parameters,h=i.shape,d=e*.5,x=t*.5;c?(h.addPoint(h.createPoint(-d,x)),h.addPoint(h.createPoint(d,-x)),h.addPoint(h.createPoint(-d,-x))):(h.addPoint(h.createPoint(0,x)),h.addPoint(h.createPoint(d,-x)),h.addPoint(h.createPoint(-d,-x))),h.isClosed=!0;for(let w=0,S=h.points.length;w<S;w++)h.points[w].roundness=r;h.roundness=r,h.update();let g=ur.create({shape:h,parameters:{surfaceMaxCount:f,roundness:r,depth:n,extrudeBevelSize:s,extrudeBevelSegments:l}});return Object.assign(g,{userData:fe(U({},i),{type:"TriangleGeometry"})})}};var Ca={};V_(Ca,{addBarycentricAttribute:()=>V2,fixUvs:()=>k2,loadFromUrl:()=>U2,resizeGeometry:()=>F2,roundShapePolygon:()=>z2});import{BufferGeometryLoader as E2,Float32BufferAttribute as R2,Vector3 as Jh}from"three";var iv=function(i,e){let t=e.x-i.x,r=e.y-i.y,n=Math.sqrt(t*t+r*r),s=t/n,l=r/n,c=Math.atan2(l,s);return{x:t,y:r,len:n,nx:s,ny:l,ang:c}},z2=(i,e,t)=>{let r,n,s,l,c,f,h,d,x,g,w,S,D,C,G=e.length;for(l=e[G-2],i.curves=[],r=1;r<G-1;r++){c=e[r%G],f=e[(r+1)%G];let B=iv(c,l),P=iv(c,f);h=B.nx*P.ny-B.ny*P.nx,d=B.nx*P.nx-B.ny*-P.ny,w=Math.asin(h),x=1,g=!1,d<0?w<0?w=Math.PI+w:(w=Math.PI-w,x=-1,g=!0):w>0&&(x=-1,g=!0),S=w/2,C=Math.abs(Math.cos(S)*t/Math.sin(S)),C>Math.min(B.len/2,P.len/2)?(C=Math.min(B.len/2,P.len/2),D=Math.abs(C*Math.sin(S)/Math.cos(S))):D=t,n=c.x+P.nx*C,s=c.y+P.ny*C,n+=-P.ny*D*x,s+=P.nx*D*x,i.absarc(n,s,D,B.ang+Math.PI/2*x,P.ang-Math.PI/2*x,g),l=c,c=f}i.closePath()},F2=(i,{width:e,height:t,depth:r})=>{e=Math.abs(e),t=Math.abs(t),r=Math.abs(r);let n=i.userData.parameters,s,l,c;e===0?(e=n.width,s=1):s=e/n.width,t===0?(t=n.height,l=1):l=t/n.height,r===0?(r=n.depth,c=1):c=r/n.depth,i.scale(s,l,c),n.width=e,n.height=t,n.depth=r},V2=(i,e)=>{let t=[new Jh(1,0,0),new Jh(0,1,0),new Jh(0,0,1)],r=i.attributes.position,n=new Float32Array(r.count*3);for(let s=0,l=r.count;s<l;s++)t[s%3].toArray(n,s*3);i.setAttribute(e,new R2(n,3))},U2=i=>new Promise(e=>{new E2().load(i,r=>e(r))}),k2=(i,e,t)=>{let r=i.getAttribute("uv");if(r)for(let n=0;n<r.count;n++){let s=r.getX(n),l=r.getY(n);r.setXY(n,(s+e/2)/e,1-(l-t/2)/t*-1)}};import{BufferGeometry as ov,BufferAttribute as sv,Uint32BufferAttribute as Kh,Float32BufferAttribute as Xh,Matrix4 as W2}from"three";import{mergeVertices as q2}from"three/examples/jsm/utils/BufferGeometryUtils.js";var H2,au=new Promise(i=>{H2=i});var Oe;au.then(i=>{Oe=i});var av=new Float32Array([10,10,0,-10,10,0,-10,-10,0,10,-10,0]),lv=new Uint32Array([0,1,2,3]),cv=new Uint8Array([4]),en=class{static build(i,e,t,r,n){let s,l,c;if(i===void 0)s=en.allocate(n,t),Oe.set_destination_refinement_level(s,0),l=en.buildLevel(s,!0,r);else if(i.positionWASM!==void 0){e&&e!==0&&(Oe.free_bvh(e),Oe.free_subdivision_surface(e));try{s=en.allocate(n,void 0,i)}catch(f){console.error(f,i),s=en.allocate(n,void 0,{positionWASM:av,indexWASM:lv,verticesPerFaceWASM:cv})}Oe.set_destination_refinement_level(s,0),l=en.buildLevel(s,!0,r)}else s=e;if(i!==void 0&&i.subdivisions!==void 0){let f=$2(i.subdivisions,i.positionWASM.length);Oe.set_destination_refinement_level(s,f),f>0?c=en.buildLevel(s,!1,r):c=null}return{subdivPointer:s,originalGeometry:l,subdividedGeometry:c}}static allocate(i,e,t){var M;let r,n,s,l=[],c=[];if(t)t.positionWASM&&t.positionWASM.length>0?(r=t.positionWASM,n=t.indexWASM,s=t.verticesPerFaceWASM):(r=av,n=lv,s=cv);else{e.deleteAttribute("normal"),e.deleteAttribute("uv");let q=q2(e);r=q.attributes.position.array;let E=q.getIndex().array,b=E.length;switch(e.userData.type==="TorusGeometry"&&(e==null?void 0:e.userData.parameters.arc)===Math.PI*2&&(e.userData.type="ClosedTorusGeometry"),e.userData.type){case"ClosedTorusGeometry":case"PlaneGeometry":case"TorusKnotGeometry":case"CubeGeometry":n=new Uint32Array(b/3*2),s=new Uint8Array(b/6).fill(4);for(let re=0,Ne=0;re<b;re+=6)n[Ne++]=E[re],n[Ne++]=E[re+1],n[Ne++]=E[re+4],n[Ne++]=E[re+5];break;case"TorusGeometry":case"SphereGeometry":case"HelixGeometry":case"CylinderGeometry":case"ConeGeometry":let R,T,z;if(e.userData.type==="SphereGeometry")T=e.parameters.heightSegments,R=e.parameters.widthSegments,e.parameters.thetaLength!==Math.PI&&(z=!0);else if(e.userData.type==="CylinderGeometry")T=e.parameters.heightSegments+2,R=e.parameters.radialSegments;else if(e.userData.type==="ConeGeometry")T=e.parameters.heightSegments+1,R=e.parameters.radialSegments;else if(e.userData.type==="TorusGeometry"){let re=e.userData.parameters;T=Math.ceil(re.tubularSegments*re.arc/(2*Math.PI))+2,R=re.radialSegments}else{let{pathSegments:re,segments:Ne,revolutions:ye}=e.userData.parameters;T=Math.ceil(Ne*ye)+2,R=re}z?(n=new Uint32Array(1*R*3+(T-1)*R*4),s=new Uint8Array(1*R+(T-1)*R)):(n=new Uint32Array(2*R*3+(T-2)*R*4),s=new Uint8Array(2*R+(T-2)*R));let A=0,$=0,he=0;if(e.userData.type==="SphereGeometry"||e.userData.type==="HelixGeometry"||e.userData.type==="TorusGeometry"){for(;$<3*R;)n[$++]=E[A++],n[$++]=E[A++],n[$++]=E[A++],s[he++]=3;let re=z?n.length:3*R+4*(T-2)*R;for(;$<re;A+=6)n[$++]=E[A],n[$++]=E[A+1],n[$++]=E[A+4],n[$++]=E[A+5],s[he++]=4}else for(;$<4*(T-2)*R;A+=6)n[$++]=E[A],n[$++]=E[A+1],n[$++]=E[A+4],n[$++]=E[A+5],s[he++]=4;for(;$<n.length;)n[$++]=E[A++],n[$++]=E[A++],n[$++]=E[A++],s[he++]=3;break;default:n=E,s=new Uint8Array(b/3).fill(3);break}}let f=r.length,h=n.length,d=s.length,x=r.length+l.length+c.length,g=n.length+s.length,w=x*Float32Array.BYTES_PER_ELEMENT+g*Uint32Array.BYTES_PER_ELEMENT,S=x*Float32Array.BYTES_PER_ELEMENT,D=g*Uint32Array.BYTES_PER_ELEMENT,C=Oe._malloc(w),G=new Float32Array(Oe.HEAPF32.buffer,C,x),B=new Uint32Array(Oe.HEAPU32.buffer,C+S,g);G.set(r,0),G.set(l,r.length),G.set(c,r.length+l.length),B.set(n,0),B.set(s,n.length);let P;((M=t==null?void 0:t.scaleBaked)==null?void 0:M.some(q=>q!==1))&&(P=new W2().makeScale(...t.scaleBaked)),i&&(P?P.premultiply(i):P=i);let W=P?Oe.alloc_subdivision_surface2(C,f,C+S,h,C+S+n.length*Uint32Array.BYTES_PER_ELEMENT,d,P.elements):Oe.alloc_subdivision_surface(C,f,C+S,h,C+S+n.length*Uint32Array.BYTES_PER_ELEMENT,d);return Oe._free(C),W}static buildLevel(i,e,t,r,n){let s=n?Oe.get_mesh_data2(i,e?Oe.Level.CONTROL:Oe.Level.REFINED,t!=null?t:!e,n.elements):Oe.get_mesh_data(i,e?Oe.Level.CONTROL:Oe.Level.REFINED,t!=null?t:!e),l=8,c=Oe.HEAPU32.subarray(s>>2,(s>>2)+l),f=c.subarray(4,4+4),h=0,d=Oe.HEAPU32[c[h]>>2],x=Oe.HEAPF32.subarray(d>>2,(d>>2)+f[h]);h++;let g=Oe.HEAPU32[c[h]>>2],w=Oe.HEAPF32.subarray(g>>2,(g>>2)+f[h]);h++;let S=Oe.HEAPU32[c[h]>>2],D=Oe.HEAPU32.subarray(S>>2,(S>>2)+f[h]);h++;let C=Oe.HEAPU32[c[h]>>2],G=Oe.HEAPU32.subarray(C>>2,(C>>2)+f[h]);if(h++,r===void 0){let B=new ov;if(B.setIndex(new Kh(G,1)),B.setAttribute("position",new Xh(x,3)),B.setAttribute("normal",new Xh(w,3)),e){B.setAttribute("faceMap",new Kh(D,1));let P=new Float32Array(w.length/3*4).fill(0);B.setAttribute("color",new sv(P,4))}return Oe.free_mesh_data(s),B.userData.type="SubdivGeometry",B}r.getAttribute("position").copyArray(x),r.getAttribute("normal").copyArray(w),r.attributes.position.needsUpdate=!0,r.attributes.normal.needsUpdate=!0,Oe.free_mesh_data(s)}static buildControlCageWireframe(i,e,t){let r=Oe.get_wireframe_data_for_base_level(i),n=4,s=Oe.HEAPU32.subarray(r>>2,(r>>2)+n),l=s.subarray(2,2+2),c=0,f=Oe.HEAPU32[s[c]>>2],h=Oe.HEAPF32.subarray(f>>2,(f>>2)+l[c]);c++;let d=Oe.HEAPU32[s[c]>>2],x=Oe.HEAPU32.subarray(d>>2,(d>>2)+l[c]);if(e===void 0){let g=new ov;g.setAttribute("position",new Xh(h,3));let w=new Float32Array(h.length);for(let S=0,D=h.length;S<D;)w[S++]=t.r,w[S++]=t.g,w[S++]=t.b;return g.setAttribute("color",new sv(w,3)),g.setIndex(new Kh(x,1)),Oe.free_wireframe_data_for_base_level(r),g}e.getAttribute("position").copyArray(h),e.attributes.position.needsUpdate=!0,Oe.free_wireframe_data_for_base_level(r)}static updateCollabMesh(i,e,t){e||Oe.set_destination_refinement_level(i,1);let r=t?Oe.get_topological_data2(i,e?Oe.Level.CONTROL:Oe.Level.REFINED,t.elements):Oe.get_topological_data(i,e?Oe.Level.CONTROL:Oe.Level.REFINED),n=6,s=Oe.HEAPU32.subarray(r>>2,(r>>2)+n),l=s.subarray(3,3+3),c=0,f=Oe.HEAPU32[s[c]>>2],h=new Float32Array(Oe.HEAPF32.subarray(f>>2,(f>>2)+l[c]));c++;let d=Oe.HEAPU32[s[c]>>2],x=new Uint32Array(Oe.HEAPU32.subarray(d>>2,(d>>2)+l[c]));c++;let g=Oe.HEAPU32[s[c]>>2],w=new Uint8Array(Oe.HEAPU32.subarray(g>>2,(g>>2)+l[c]));return Oe.free_topological_data(r),{positions:h,indices:x,verticesPerFace:w}}};function $2(i,e){let t=i;return t=Math.min(t,3-Math.ceil(Math.log(e/172e3)/Math.log(4))),Math.max(t,0)}var Zh={ConeGeometry:u0,CubeGeometry:f0,CylinderGeometry:l0,DodecahedronGeometry:p0,EllipseGeometry:j0,HelixGeometry:U0,IcosahedronGeometry:k0,LatheGeometry:H0,NonParametricGeometry:J0,PolygonGeometry:K0,PyramidGeometry:X0,RectangleGeometry:ou,SphereGeometry:Y0,PlaneGeometry:Q0,StarGeometry:ev,TextFrameGeometry:su,TorusGeometry:tv,TorusKnotGeometry:rv,TriangleGeometry:nv,VectorGeometry:ur},La=i=>Zh[i.type].create(i);import{Matrix4 as Qh}from"three";import{Box3 as pv,Line3 as gn,Matrix4 as Yh,Vector3 as Ct}from"three";import{HemisphereLight as uv}from"three";import{Color as J2}from"three";var tn=class extends J2{constructor(e,t,r,n){super(e,t,r);this.isColorA=!0;this.a=n}setRGBA(e,t,r,n){super.setRGB(e,t,r),this.a=n}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}};function kt(i,e){let t;if(typeof i=="string"){let r=e==null?void 0:e.getColor(i);r?t=r:(console.warn("Tried to create color layer params with a color key that does not exist in the assets manager"),t=new tn(0,0,0,0))}else return"a"in i?new tn(i.r,i.g,i.b,i.a):new tn(i.r,i.g,i.b,1);return t}var lu=i=>"isEntity"in i,_s=i=>"isAbstractMesh"in i;var vi=i=>"objectHelper"in i;function K2(i,e){var r;let t=!1;e.position&&(i.position.fromArray(e.position),t=!0),e.rotation&&(i.rotation.fromArray(e.rotation),t=!0),e.scale&&(t=!0,i.scale.fromArray(e.scale)),e.hiddenMatrix!==void 0&&"hiddenMatrix"in i&&(t=!0,i.hiddenMatrix.fromArray((r=e.hiddenMatrix)!=null?r:Fi.identity)),t&&i.updateMatrix(),e.position&&e.rotation&&e.scale&&e.hiddenMatrix!==void 0&&i.updateWorldMatrix(!1,!0),i.objectType==="CombinedCamera"&&(e.isUpVectorFlipped!==void 0&&(i.isUpVectorFlipped=e.isUpVectorFlipped),i.updateUp())}function X2(i,e){K2(i,e),e.name!==void 0&&(i.name=e.name),e.visible!==void 0&&(i.isEntity?i.visibility=e.visible:i.visible=e.visible)}function fv(i,e,t){X2(i,e),e.color!==void 0&&(i.color=kt(e.color,t)),e.intensity!==void 0&&(i.intensity=e.intensity),e.shadows!==void 0&&!(i instanceof uv)&&(i.castShadow=e.shadows),i.shadow&&!(i instanceof uv)&&e.depth!==void 0&&(i.shadow.camera.far=e.depth,i.shadow.needsUpdate=!0),e.helper!==void 0&&vi(i)&&(i.enableHelper=e.helper,i.gizmos.shadowmap.visible=e.helper)}function hv(i,e){i.shadow.camera.right=e/2,i.shadow.camera.left=-e/2,i.shadow.camera.top=e/2,i.shadow.camera.bottom=-e/2,i.shadow.needsUpdate=!0}var Ts=new pv,fr=new Ct,Ie=new Ct,$t=new Yh;function Z2(i,e,t=0,r=e.count){let n=1/0,s=1/0,l=1/0,c=-1/0,f=-1/0,h=-1/0;for(let d=t;d<r;d++){let x=e.getX(d),g=e.getY(d),w=e.getZ(d);x<n&&(n=x),g<s&&(s=g),w<l&&(l=w),x>c&&(c=x),g>f&&(f=g),w>h&&(h=w)}return i.min.set(n,s,l),i.max.set(c,f,h),i}var dv=(i,e,t,r)=>{var n;if(_s(i)){let s=i.geometry.userData.parameters,l=i.geometry.getAttribute("position");i.geometry.userData.type==="SubdivGeometry"?fr.copy(i.originalGeometry.boundingSphere.center):(Z2(Ts,l,i.geometry.drawRange.start,i.geometry.drawRange.count<1/0?i.geometry.drawRange.count:l.count),Ts.getCenter(fr)),i.forceComputeSize?Ts.getSize(Ie).multiplyScalar(.5):Ie.set(s.width,s.height,(n=s.depth)!=null?n:0).multiplyScalar(.5)}else if(vi(i)&&r===!0){let s=i.geometryHelper.getAttribute("position");Ts.setFromArray(s.array),Ts.getCenter(fr),Ts.getSize(Ie).multiplyScalar(.5)}else fr.setScalar(0),Ie.setScalar(0);$t.copy(e).multiply(i.matrixWorld),Ie.x===0&&Ie.y===0&&Ie.z===0?t.push(new Ct(fr.x,fr.y,fr.z).applyMatrix4($t)):t.push(new Ct(-Ie.x,Ie.y,Ie.z).add(fr).applyMatrix4($t),new Ct(-Ie.x,-Ie.y,Ie.z).add(fr).applyMatrix4($t),new Ct(Ie.x,-Ie.y,Ie.z).add(fr).applyMatrix4($t),new Ct(Ie.x,Ie.y,Ie.z).add(fr).applyMatrix4($t),new Ct(-Ie.x,Ie.y,-Ie.z).add(fr).applyMatrix4($t),new Ct(-Ie.x,-Ie.y,-Ie.z).add(fr).applyMatrix4($t),new Ct(Ie.x,-Ie.y,-Ie.z).add(fr).applyMatrix4($t),new Ct(Ie.x,Ie.y,-Ie.z).add(fr).applyMatrix4($t))},cu=class extends pv{constructor(){super(...arguments);this.matrix=new Yh;this.vertices=[];this.faces=[];this.edges=[];this.centerEdges=[]}copy(e){return super.copy(e),this.matrix.copy(e.matrix),this.vertices=e.vertices.map(t=>t.clone()),this.faces=e.faces.map(t=>t.clone()),this.edges=e.edges.map(t=>t.clone()),this.centerEdges=e.centerEdges.map(t=>t.clone()),this}setFromObjectSize(e,t=!1){e.updateWorldMatrix(!1,t),this.makeEmpty(),this.matrix.copy(e.matrixWorld);let r=new Yh().copy(e.matrixWorld).invert();return this.expandByObjectSize(e,r,t)}expandByObjectSize(e,t,r=!1){let n=[];return r===!0?e.traverseEntity(s=>dv(s,t,n,e.enableHelper===!0)):dv(e,t,n,e.enableHelper===!0),this.setFromPoints(n)}getCenter(e){return e=super.getCenter(e),e.applyMatrix4(this.matrix),e}getPositionToCenter(e){return e=super.getCenter(e),e.applyMatrix4($t.copy(this.matrix).setPosition(0,0,0)),e}computeVertices(){this.getSize(Ie).multiplyScalar(.5),this.getCenter(fr),$t.copy(this.matrix).setPosition(fr),this.vertices=[new Ct(-Ie.x,Ie.y,Ie.z).applyMatrix4($t),new Ct(-Ie.x,-Ie.y,Ie.z).applyMatrix4($t),new Ct(Ie.x,-Ie.y,Ie.z).applyMatrix4($t),new Ct(Ie.x,Ie.y,Ie.z).applyMatrix4($t),new Ct(-Ie.x,Ie.y,-Ie.z).applyMatrix4($t),new Ct(-Ie.x,-Ie.y,-Ie.z).applyMatrix4($t),new Ct(Ie.x,-Ie.y,-Ie.z).applyMatrix4($t),new Ct(Ie.x,Ie.y,-Ie.z).applyMatrix4($t)]}computeEdges(){this.vertices.length>0&&this.computeVertices(),this.edges=[new gn(this.vertices[0],this.vertices[3]),new gn(this.vertices[1],this.vertices[2]),new gn(this.vertices[5],this.vertices[6]),new gn(this.vertices[4],this.vertices[7]),new gn(this.vertices[0],this.vertices[1]),new gn(this.vertices[3],this.vertices[2]),new gn(this.vertices[7],this.vertices[6]),new gn(this.vertices[4],this.vertices[5]),new gn(this.vertices[0],this.vertices[4]),new gn(this.vertices[1],this.vertices[5]),new gn(this.vertices[2],this.vertices[6]),new gn(this.vertices[3],this.vertices[7])],this.centerEdges=this.edges.map(e=>e.getCenter(new Ct))}computeFaces(){this.vertices.length>0&&this.computeVertices(),this.faces=[new Ct().copy(this.vertices[0]).sub(this.vertices[2]).multiplyScalar(.5).add(this.vertices[2]),new Ct().copy(this.vertices[7]).sub(this.vertices[5]).multiplyScalar(.5).add(this.vertices[5]),new Ct().copy(this.vertices[4]).sub(this.vertices[1]).multiplyScalar(.5).add(this.vertices[1]),new Ct().copy(this.vertices[3]).sub(this.vertices[6]).multiplyScalar(.5).add(this.vertices[6]),new Ct().copy(this.vertices[4]).sub(this.vertices[3]).multiplyScalar(.5).add(this.vertices[3]),new Ct().copy(this.vertices[1]).sub(this.vertices[6]).multiplyScalar(.5).add(this.vertices[6])]}};import{Object3D as Y2,Matrix4 as Q2,Light as eD}from"three";function _a(i){let e=[];for(let t in i){let r=i[t];delete r.metadata,e.push(r)}return e}function tD(i){let e=[];for(let t in i)e.push(i[t]);return e}var uu=i=>class extends i{hasEntityChild(){return this.children.some(t=>lu(t))}isDescendantOf(t){t instanceof Y2&&(t=t.uuid);let r=this;for(;r.parent;){if(r.parent.uuid===t)return!0;r=r.parent}return!1}attach(t,r){this.updateWorldMatrix(!0,!1);let n=new Q2().copy(this.matrixWorld).invert();return t.parent!==null&&(t.parent.updateWorldMatrix(!0,!1),n.multiply(t.parent.matrixWorld)),lu(t)?t.hiddenMatrix.premultiply(n):t.applyMatrix4(n),t.updateWorldMatrix(!1,!1),this.add(t),r!==void 0&&(this.children.pop(),this.children.splice(r,0,t)),this}copy(t,r=!0){if(this.name=t.name,this.up.copy(t.up),this.position.copy(t.position),this.rotation.order=t.rotation.order,this.quaternion.copy(t.quaternion),this.scale.copy(t.scale),this.matrix.copy(t.matrix),this.matrixWorld.copy(t.matrixWorld),this.matrixAutoUpdate=t.matrixAutoUpdate,this.matrixWorldNeedsUpdate=t.matrixWorldNeedsUpdate,this.layers.mask=t.layers.mask,this.visible=t.visible,this.castShadow=t.castShadow,this.receiveShadow=t.receiveShadow,this.frustumCulled=t.frustumCulled,this.renderOrder=t.renderOrder,this.userData=JSON.parse(JSON.stringify(t.userData)),r===!0)for(let n=0;n<t.children.length;n++){let s=t.children[n];this.add(s.clone())}return this}toJSON(t){let r=t===void 0,n={object:{uuid:"",objectType:""}};t===void 0&&(t={geometries:{},materials:{},textures:{},images:{},interactionStates:{},nodes:{}},n.metadata={version:1.5,type:"Object",generator:"Object3D.toJSON"});let s={uuid:this.uuid,objectType:this.type};if(this.name!==""&&(s.name=this.name),s.matrix=this.matrix.toArray(),this.castShadow===!0&&(s.castShadow=!0),this.receiveShadow===!0&&(s.receiveShadow=!0),this.visible===!1&&(s.visible=!1),this.frustumCulled===!1&&(s.frustumCulled=!1),this.renderOrder!==0&&(s.renderOrder=this.renderOrder),s.layers=this.layers.mask,JSON.stringify(this.userData)!=="{}"&&(s.userData=this.userData),this.children.length>0){s.children=[];for(let l of this.children)(lu(l)||l instanceof eD)&&s.children.push(l.toJSON(t).object)}if(r){let l=_a(t.geometries),c=_a(t.materials),f=_a(t.textures),h=_a(t.images),d=_a(t.interactionStates),x=tD(t.nodes);l.length>0&&(n.geometries=l),c.length>0&&(n.materials=c),f.length>0&&(n.textures=f),h.length>0&&(n.images=h),d.length>0&&(n.interactionStates=d),x.length>0&&(n.nodes=x)}return n.object=s,n}fromJSON(t){return this.uuid=t.uuid,t.name!==void 0&&(this.name=t.name),t.matrix!==void 0?(this.matrix.fromArray(t.matrix),t.matrixAutoUpdate!==void 0&&(this.matrixAutoUpdate=t.matrixAutoUpdate),this.matrixAutoUpdate&&this.matrix.decompose(this.position,this.quaternion,this.scale)):(t.position!==void 0&&this.position.fromArray(t.position),t.rotation!==void 0&&this.rotation.fromArray(t.rotation),t.quaternion!==void 0&&this.quaternion.fromArray(t.quaternion),t.scale!==void 0&&this.scale.fromArray(t.scale)),this.castShadow=t.castShadow!==void 0,this.receiveShadow=t.receiveShadow!==void 0,t.visible!==void 0&&(this.visible=t.visible),t.frustumCulled!==void 0&&(this.frustumCulled=t.frustumCulled),t.renderOrder!==void 0&&(this.renderOrder=t.renderOrder),t.layers!==void 0&&(this.layers.mask=t.layers),t.userData!==void 0&&(this.userData=t.userData),this}};var yn=i=>"isEntity"in i;var xn=i=>class extends uu(i){constructor(){super(...arguments);this.objectType="";this.isEntity=!0;this.raycastLock=!1;this.scaleLock=!1;this.hiddenMatrix=new Qh;this._singleBBox=new cu;this._recursiveBBox=new cu;this.singleBBoxNeedsUpdate=!0;this.recursiveBBoxNeedsUpdate=!0;this.forceComputeSize=!1}set visibility(t){this.visible=t;for(let r of this.children)yn(r)&&r.traverseEntity(n=>{vi(n)&&n.visible&&(n.objectHelper.visible=t)})}get visibility(){return this.visible}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(t=>{yn(t)&&(t.singleBBoxNeedsUpdate=!0,t.recursiveBBoxNeedsUpdate=!0)}),this.traverseEntity(t=>{t.singleBBoxNeedsUpdate=!0,t.recursiveBBoxNeedsUpdate=!0})}traverseEntity(t){t(this);for(let r of this.children)yn(r)&&r.traverseEntity(t)}updateMatrixWorld(t){this.matrixAutoUpdate&&this.updateMatrix(),(this.matrixWorldNeedsUpdate||t)&&(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,t=!0);for(let r of this.children)r.updateMatrixWorld(t)}updateWorldMatrix(t,r){let n=this.parent;if(t&&n!==null&&n.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)),r)for(let s of this.children)s.updateWorldMatrix(!1,!0)}shallowClone(t){return new this.constructor().shallowCopy(this,t)}shallowCopy(t,r=!0){if(super.copy(t,!1),this.raycastLock=t.raycastLock,this.scaleLock=t.scaleLock,this.hiddenMatrix.copy(t.hiddenMatrix),r===!0)for(let n of t.children)yn(n)&&this.add(n.shallowClone());return this}clone(t){return new this.constructor().copy(this,t)}copy(t,r=!0){if(super.copy(t,!1),this.raycastLock=t.raycastLock,this.scaleLock=t.scaleLock,this.hiddenMatrix.copy(t.hiddenMatrix),r===!0)for(let n of t.children)yn(n)&&this.add(n.clone());return this}keepChildrenMatrixWorld(){let t=new Qh,r=this.matrixWorld.clone();this.updateWorldMatrix(!1,!1),t.copy(this.matrixWorld).invert(),t.multiply(r);for(let n of this.children)yn(n)&&n.hiddenMatrix.premultiply(t)}toJSON(t){let r=super.toJSON(t),n=r.object;return this.raycastLock===!0&&(n.raycastLock=!0),this.scaleLock===!0&&(n.scaleLock=!0),n.hiddenMatrix=this.hiddenMatrix.toArray(),r}fromJSON(t){return super.fromJSON(t),t.raycastLock!==void 0&&(this.raycastLock=t.raycastLock),t.scaleLock!==void 0&&(this.scaleLock=t.scaleLock),this.hiddenMatrix.fromArray(t.hiddenMatrix),this}fromObject3D(t){let r=t.children;return t.children=[],Object.assign(t,{raycastLock:!1,scaleLock:!1,hiddenMatrix:new Qh}),this.copy(t),t.children=r,this}toObjectTransformState(t=[]){this.updateWorldMatrix(!0,!1);let r={position:this.position.toArray(),rotation:[this.rotation.x,this.rotation.y,this.rotation.z],scale:this.scale.toArray(),hiddenMatrix:this.hiddenMatrix.toArray()};return hs(r,t)}fromObjectTransformState(t){return t.position&&this.position.fromArray(t.position),t.rotation&&this.rotation.fromArray(t.rotation),t.scale&&this.scale.fromArray(t.scale),t.hiddenMatrix&&this.hiddenMatrix.fromArray(t.hiddenMatrix),this.updateMatrix(),this}toState(t=[]){let r=U({name:this.name,visible:this.visible,raycastLock:this.raycastLock},this.toObjectTransformState(t));return hs(r,t)}fromState(t,r){return t.name&&(this.name=t.name),t.raycastLock!==void 0&&(this.raycastLock=t.raycastLock),t.type!=="OrthographicCamera"&&t.type!=="PerspectiveCamera"&&(this.matrixAutoUpdate=!1),t.visible!==void 0&&(this.visibility=t.visible),this.fromObjectTransformState(t),this}};import{Object3D as rD,Vector3 as Ta,Euler as mv,MathUtils as $i}from"three";var fu=class extends rD{constructor(e,t={}){super();this.object=e;let r=e.recursiveBBox.getSize(new Ta),n=.1;this.parameters=gc.defaultData(r.toArray(),n),yo(this.parameters,t),this.update(),this.setHideBase(this.parameters.hideBase)}refreshMaterial(){if("material"in this.object)for(let e of this.children)e.material=this.object.material}setHideBase(e){if("material"in this.object){if(Array.isArray(this.object.material)){if(this.children.length>0){for(let t of this.object.material)t.visible=!0;if(e){let t=this.object.material.map(r=>r.clone());for(let r of this.children)r.material=t}else for(let t of this.children)t.material=this.object.material}for(let t of this.object.material)t.visible=!e}else{if(this.children.length>0)if(this.object.material.visible=!0,e){let t=this.object.material.clone();for(let r of this.children)r.material=t}else for(let t of this.children)t.material=this.object.material;this.object.material.visible=!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 t=0,r=e-this.children.length;t<r;++t){let n=this.object.shallowClone(!1);n.visible=!0,this.add(n),this.parameters.hideBase&&this.setHideBase(!0)}else for(let t=0,r=this.children.length-e;t<r;++t)this.remove(this.children[0])}_updateRadial(e){let t=e.radial,r=t.start*$i.DEG2RAD,n=t.end*$i.DEG2RAD,s=r-n,l=new mv(t.rotation[0]*$i.DEG2RAD,t.rotation[1]*$i.DEG2RAD,t.rotation[2]*$i.DEG2RAD),c;switch(t.axis){case"z":c=new Ta(0,0,1);break;case"y":c=new Ta(0,1,0);break;default:case"x":c=new Ta(1,0,0);break}for(let[f,h]of this.children.entries()){h.hiddenMatrix.identity(),h.scale.x=t.scale[0]+1,h.scale.y=t.scale[1]+1,h.scale.z=t.scale[2]+1,h.position.setScalar(0);let d=s/e.count*f-r;switch(t.axis){case"x":h.rotation.set(0,d,0);break;case"y":h.rotation.set(0,0,d);break;case"z":h.rotation.set(d,0,0);break}h.translateOnAxis(c,t.radius),h.position.x+=t.position[0],h.position.y+=t.position[1],h.position.z+=t.position[2],t.alignment===!0?(h.rotation.x+=l.x,h.rotation.y+=l.y,h.rotation.z+=l.z):h.rotation.copy(l)}}_updateLinear(e){if(e.type!=="linear")throw new Error;let t=e.linear,r=new mv(t.rotation[0]*$i.DEG2RAD,t.rotation[1]*$i.DEG2RAD,t.rotation[2]*$i.DEG2RAD);for(let[n,s]of this.children.entries())s.hiddenMatrix.identity(),s.scale.x=t.scale[0]*n+1,s.scale.y=t.scale[1]*n+1,s.scale.z=t.scale[2]*n+1,s.rotation.x=r.x*n,s.rotation.y=r.y*n,s.rotation.z=r.z*n,s.position.x=t.position[0]*n,s.position.y=t.position[1]*n,s.position.z=t.position[2]*n}_updateGrid(e){let t=0,r=e.grid;if(r.useCenter===!0){let n={x:r.count[0]%2==0?2:1,y:r.count[1]%2==0?2:1,z:r.count[2]%2==0?2:1},s=new Ta(r.size[0]*(r.count[0]-n.x)*.5,r.size[1]*(r.count[1]-n.y)*.5,r.size[2]*(r.count[2]-n.z)*.5);for(let l=0;l<r.count[0];l++)for(let c=0;c<r.count[1];c++)for(let f=0;f<r.count[2];f++){let h=this.children[t++];h.hiddenMatrix.identity(),h.scale.setScalar(1),h.rotation.set(0,0,0),h.position.x=r.size[0]*l-s.x,h.position.y=r.size[1]*c-s.y,h.position.z=r.size[2]*f-s.z}}else for(let n=0;n<r.count[0];n++)for(let s=0;s<r.count[1];s++)for(let l=0;l<r.count[2];l++){let c=this.children[t++];c.hiddenMatrix.identity(),c.scale.setScalar(1),c.rotation.set(0,0,0),c.position.x=r.size[0]*n,c.position.y=-r.size[1]*s,c.position.z=-r.size[2]*l}}fromJSON(e){return this}toJSON(){return{}}fromClonerState(e){return e.hideBase!==void 0&&this.setHideBase(e.hideBase),yo(this.parameters,e),this.update(),this}};var hr=class extends xn(nD){constructor(e,t){super(e,t);this.isAbstractMesh=!0;Array.isArray(t)&&(this.selectedMaterial=0,e.groups.length===0&&e.addGroup(0,e.getAttribute("position").count,0))}get cloner(){return this._cloner}set cloner(e){this._cloner&&this.remove(this._cloner),e&&this.add(e),this._cloner=e}getSelectedMaterial(e){return Array.isArray(this.material)?(this.selectedMaterial===void 0&&(this.selectedMaterial=e!=null?e:0),this.material[e!=null?e:this.selectedMaterial]):this.material}setSelectedMaterial(e,t){Array.isArray(this.material)?(this.selectedMaterial===void 0&&(this.selectedMaterial=t!=null?t:0),t=t!=null?t:this.selectedMaterial,this.material[t].dispose(),this.material[t]=e):(this.material.dispose(),this.material=e)}updateGeometry(e){let t=this.geometry,r=Zh[t.userData.type],n=this.objectType==="NonParametric"?Object.assign({},t.userData,{geometry:t}):t.userData,s=r.build(r.normalizeInputs(e,n)),l=t.uuid;if(this.geometry.dispose(),this.geometry=s,this.geometry.uuid=l,this.geometry.computeBoundingSphere(),this.cloner)for(let c of this.cloner.children)c.geometry=this.geometry}resizeGeometry(e,t,r){Ca.resizeGeometry(this.geometry,{width:e,height:t,depth:r})}shallowClone(e){return new this.constructor(this.geometry,this.material).shallowCopy(this,e)}clone(e){let t=this.objectType==="NonParametric"?Object.assign({},this.geometry.userData,{geometry:this.geometry.clone()}):this.geometry.userData,r=La(t),n=Array.isArray(this.material)?this.material.map(s=>s.clone()):this.material.clone();return new this.constructor(r,n).copy(this,e)}copy(e,t=!0){return super.copy(e,t),e.cloner&&(this.cloner=new fu(e,e.cloner.parameters),this.add(this.cloner)),this}setFromClonerState(e){e===null?this.cloner=void 0:(this.cloner===void 0&&(this.cloner=new fu(this)),this.cloner.fromClonerState(e))}fromState(e,t){var r,n;return super.fromState(e),e.type==="Mesh"&&(this.setFromClonerState(e.cloner),this.castShadow=(r=e.castShadow)!=null?r:!0,this.receiveShadow=(n=e.receiveShadow)!=null?n:!0),this}};import{NormalBlending as LD,ShaderMaterial as _D,FrontSide as TD}from"three";import{CubeReflectionMapping as mD,CubeRefractionMapping as gD,CubeUVReflectionMapping as yD,CubeUVRefractionMapping as xD,LinearEncoding as Sv,sRGBEncoding as vD}from"three";var hu=class{constructor(e){e=e!=null?e:{},this.name=e.name,this.type=e.type,this.node=e.node,this.size=e.size,this.needsUpdate=e.needsUpdate}get value(){return this.node.value}set value(e){this.node.value=e}};import{MathUtils as iD}from"three";var Pe=class{constructor(e){this.hashProperties=void 0;this.isNode=!0;this.shortcuts={};this.uuid=iD.generateUUID(),this.type=e,this.name="",this.userData={}}analyze(e,t){t=t!=null?t:{},e.analyzing=!0,this.build(e.addFlow(t.slot,t.cache,t.context),"v4"),e.clearVertexNodeCode(),e.clearFragmentNodeCode(),e.removeFlow(),e.analyzing=!1}analyzeAndFlow(e,t,r){return r=r!=null?r:{},this.analyze(e,r),this.flow(e,t,r)}flow(e,t,r){r=r!=null?r:{},e.addFlow(r.slot,r.cache,r.context);let n={result:this.build(e,t),code:e.clearNodeCode(),extra:e.context.extra};return e.removeFlow(),n}build(e,t,r){t=t!=null?t:this.getType(e,t);let n=e.getNodeData(r!=null?r:this);return e.analyzing&&this.appendDepsNode(e,n,t),e.nodes.indexOf(this)===-1&&e.nodes.push(this),this.updateFrame!==void 0&&e.updaters.indexOf(this)===-1&&e.updaters.push(this),this.generate(e,t,r)}updateFrame(e){}generateReadonly(e,t,r,n,s,l){return""}generate(e,t,r,n,s){return""}parse(e,t,r,n){}appendDepsNode(e,t,r){t.deps=(t.deps||0)+1;let n=e.getTypeLength(r);(n>(t.outputMax||0)||this.getType(e,r))&&(t.outputMax=n,t.output=r)}setName(e){this.name=e}getName(){return this.name}getType(e,t){return t==="sampler2D"||t==="samplerCube"?t:this.type}getJSONNode(e){if((e==null?void 0:e.materials)&&(e==null?void 0:e.materials[this.uuid])!==void 0)return e.materials[this.uuid]}getHash(){let e="{",t,r;for(t in this)r=this[t],r instanceof Pe&&(e+='"'+t+'":'+r.getHash()+",");if(this.hashProperties)for(let n=0;n<this.hashProperties.length;n++)t=this.hashProperties[n],r=this[t],e+='"'+t+'":"'+String(r)+'",';return e+='"id":"'+this.uuid+'"}',e}copy(e){return this.name=e.name,e.type&&(this.type=e.type),e.frameId&&(this.frameId=e.frameId),e.hashProperties&&(this.hashProperties=e.hashProperties.map(t=>t)),this.userData=JSON.parse(JSON.stringify(e.userData)),this.shortcuts=JSON.parse(JSON.stringify(e.shortcuts)),this}clone(){return new this.constructor().copy(this)}createJSONNode(e){let t=e===void 0||typeof e=="string";if(typeof this.type!="string")throw new Error("Node does not allow serialization.");let r={};return r.uuid=this.uuid,r.type=this.type,this.name!==""&&(r.name=this.name),JSON.stringify(this.userData)!=="{}"&&(r.userData=this.userData),!t&&e&&(e.nodes[this.uuid]=r),r}toJSON(e){var t;return(t=this.getJSONNode(e))!=null?t:this.createJSONNode(e)}fromJSON(e,t){return this.uuid=e.uuid,this.type=e.type,e.name&&(this.name=e.name),e.userData&&(this.userData=e.userData),this}};var gv=class{constructor(){this.nodes={};this.keywords={}}add(e){this.nodes[e.name]=e}addKeyword(e,t,r){r=r!==void 0?r:!0,this.keywords[e]={callback:t,cache:r}}remove(e){delete this.nodes[e.name]}removeKeyword(e){delete this.keywords[e]}get(e){return this.nodes[e]}getKeyword(e,t){return this.keywords[e].callback(t)}getKeywordData(e){return this.keywords[e]}contains(e){return this.nodes[e]!==void 0}containsKeyword(e){return this.keywords[e]!==void 0}},tr=new gv;import{Vector2 as yv}from"three";import{MathUtils as oD}from"three";var Be=class extends Pe{constructor(e,t){super(e);this.scope="";t=t!=null?t:{},this.shared=t.shared!==void 0?t.shared:!0,this.unique=t.unique!==void 0?t.unique:!1}build(e,t,r,n){if(t=t!=null?t:this.getType(e),this.getShared(e,t)){let s=this.getUnique(e,t);s&&this.uuid===void 0&&(this.uuid=oD.generateUUID()),r=e.getUUID(r!=null?r:this.getUUID(),!s);let l=e.getNodeData(r),c=l.output||this.getType(e);if(e.analyzing)return(l.deps||0)>0||this.getLabel()?(this.appendDepsNode(e,l,t),this.generate(e,t,r)):super.build(e,t,r);if(s)return l.name=l.name||super.build(e,t,r),l.name;if(!this.getLabel()&&(!this.getShared(e,c)||e.context.ignoreCache||l.deps===1))return super.build(e,t,r);r=this.getUUID(!1);let f=this.getTemp(e,r);if(f)return e.format(f,c,t);{f=super.generate(e,t,r,l.output,n);let h=this.generate(e,c,r);return e.addNodeCode(f+" = "+h+";"),e.format(f,c,t)}}return super.build(e,t,r)}getShared(e,t){return t!=="sampler2D"&&t!=="samplerCube"&&this.shared}getUnique(e,t){return this.unique}setLabel(e){return this.label=e,this}getLabel(){return this.label}getUUID(e){let t=this.uuid;return typeof this.scope=="string"&&(t=this.scope+"-"+t),t}getTemp(e,t){t=t||this.uuid;let r=e.getVars()[t];return r?r.name:void 0}generate(e,t,r,n,s){return this.getShared(e,t)||console.error("TempNode is not shared"),r=r!=null?r:this.uuid,e.getTempVar(r,n!=null?n:this.getType(e),s,this.getLabel()).name}};var It=class extends Be{constructor(e,t){t=t!=null?t:{},t.shared=t.shared!==void 0?t.shared:!1;super(e,t);this.readonly=!1}setReadonly(e){return this.readonly=e,this.hashProperties=this.readonly?["value"]:void 0,this}getReadonly(){return this.readonly}createJSONNode(e){let t=super.createJSONNode(e);return this.readonly===!0&&(t.readonly=this.readonly),t}fromJSON(e,t){return super.fromJSON(e,t),e.readonly!==void 0&&this.setReadonly(e.readonly),this}generate(e,t,r,n,s,l){r=e.getUUID(r!=null?r:this.getUUID()),n=n!=null?n:this.getType(e);let c=e.getNodeData(r);return this.getReadonly()&&this.generateReadonly!==void 0?this.generateReadonly(e,t,r,n,s,l):e.isShader("vertex")?(c.vertex||(c.vertex=e.createVertexUniform(n,this,s,l,this.getLabel())),e.format(c.vertex.name,n,t)):(c.fragment||(c.fragment=e.createFragmentUniform(n,this,s,l,this.getLabel())),e.format(c.fragment.name,n,t))}copy(e){return super.copy(e),this.readonly=e.readonly,this}};var _r=class extends It{constructor(e=0,t){super("v2");this.nodeType="Vector2";this.value=e instanceof yv?e:new yv(e,t)}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,t,r,n,s,l){return e.format("vec2("+this.value.x+", "+this.value.y+")",n,t)}copy(e){return super.copy(e),this.value.copy(e.value),this}};import{Vector3 as xv}from"three";var Tr=class extends It{constructor(e=0,t,r){super("v3");this.nodeType="Vector3";this.value=e instanceof xv?e:new xv(e,t,r)}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,t,r,n,s,l){return e.format("vec3("+this.value.x+", "+this.value.y+", "+this.value.z+")",n,t)}copy(e){return super.copy(e),this.value.copy(e.value),this}};var Ji=class extends It{constructor(e){super("v4");this.nodeType="Vector4";this.value=e instanceof tn?e:new tn(e.r,e.g,e.b,e.a)}generateReadonly(e,t,r,n,s,l){return e.format("vec4("+this.value.r+", "+this.value.g+", "+this.value.b+", "+this.value.a+")",n,t)}copy(e){return super.copy(e),this.value.copy(e.value),this}};var sD=/^\s*([a-z_0-9]+)\s([a-z_0-9]+)\s*\((.*?)\)/i,vv=/[a-z_0-9]+/gi,Se=class extends Be{constructor(e,t,r,n,s){super(s);this.src="";this.nodeType="Function";this.useKeywords=!0;this.includes=[];this.extensions={};this.keywords={};this.isMethod=s===void 0,this.isInterface=!1,this.parse(e,t,r,n)}getShared(e,t){return!this.isMethod}getType(e){return e.getTypeByFormat(this.type)}getInputByName(e){if(this.inputs){let t=this.inputs.length;for(;t--;)if(this.inputs[t].name===e)return this.inputs[t]}}getIncludeByName(e){if(this.includes){let t=this.includes.length;for(;t--;)if(this.includes[t].name===e)return this.includes[t]}}generate(e,t,r,n,s){let l,c=0,f=this.src;if(this.includes)for(let d=0;d<this.includes.length;d++)e.include(this.includes[d],this);for(let d in this.extensions)e.extensions[d]=!0;let h=[];for(;l=vv.exec(this.src);)h.push(l);for(let d=0;d<h.length;d++){let x=h[d],g=x[0],w=this.isMethod?!this.getInputByName(g):!0,S=g;if(this.keywords[g]||this.useKeywords&&w&&tr.containsKeyword(g)){let D=this.keywords[g];if(!D){let C=tr.getKeywordData(g);C.cache&&(D=e.keywords[g]),D=D||tr.getKeyword(g,e),C.cache&&(e.keywords[g]=D)}S=D.build(e)}g!==S&&(f=f.substring(0,x.index+c)+S+f.substring(x.index+g.length+c),c+=S.length-g.length),this.getIncludeByName(S)===void 0&&tr.contains(S)&&e.include(tr.get(S))}return t==="source"?f:this.isMethod?(this.isInterface||e.include(this,void 0,f),this.name):e.format("( "+f+" )",this.getType(e),t)}parse(e,t,r,n){if(this.src=e||"",this.includes=t!=null?t:[],this.extensions=r!=null?r:{},this.keywords=n!=null?n:{},this.isMethod){let s=sD.exec(this.src);if(this.inputs=[],s&&s.length==4){this.type=s[1],this.name=s[2];let l=s[3].match(vv);if(l){let c=0;for(;c<l.length;){let f=l[c++],h;f==="in"||f==="out"||f==="inout"?h=l[c++]:(h=f,f="");let d=l[c++];this.inputs.push({name:d,type:h,qualifier:f})}}this.isInterface=this.src.indexOf("{")===-1}else this.type="",this.name=""}}copy(e){return super.copy(e),this.isMethod=e.isMethod,this.useKeywords=e.useKeywords,e.type!==void 0&&(this.type=e.type),this.parse(e.src,e.includes,e.extensions,e.keywords),this}toJSON(e){var r;let t=this.getJSONNode(e);if(!t){t=this.createJSONNode(e),t.src=this.src,t.isMethod=this.isMethod,t.useKeywords=this.useKeywords,this.isMethod||(t.type=this.type),t.extensions=JSON.parse(JSON.stringify(this.extensions));let n={};for(let s in this.keywords)n[s]=this.keywords[s].toJSON(e).uuid;if(t.keywords=n,(r=this.includes)==null?void 0:r.length){let s=[];for(let l=0;l<this.includes.length;l++)s.push(this.includes[l].toJSON(e).uuid);t.includes=s}t.isMethod=this.isMethod,t.inputs=this.inputs}return t.nodeType=this.nodeType,t}fromJSON(e,t){if(super.fromJSON(e,t),e.inputs!==void 0&&(this.inputs=e.inputs),e.isMethod!==void 0&&(this.isMethod=e.isMethod),e.src&&(this.src=e.src),e.isMethod&&(this.isMethod=e.isMethod),e.useKeywords&&(this.useKeywords=e.useKeywords),e.type&&(this.type=e.type),e.extensions&&(this.extensions=e.extensions),e.keywords&&t){this.keywords={};for(let r in e.keywords)this.keywords[r]=t.getNode(e.keywords[r])}return e.includes&&t&&(this.includes=e.includes.map(r=>t.getNode(r))),this}};var aD=/^([a-z_0-9]+)\s([a-z_0-9]+)\s?\=?\s?(.*?)(\;|$)/i,ep=class extends Be{constructor(e="",t){super();this.src="";this.useDefine=!1;this.nodeType="Const";this.parse(e||ep.PI,void 0,void 0,void 0,t)}getType(e){return e.getTypeByFormat(this.type)}parse(e,t,r,n,s){this.src=e||"";let l,c,f="",h=aD.exec(e);this.useDefine=s!=null?s:this.src.charAt(0)==="#",h&&h.length>1?(c=h[1],l=h[2],f=h[3]):(l=this.src,c="f"),this.name=l,this.type=c,this.value=f}build(e,t){if(t==="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),t)}generate(e,t,r,n,s){return e.format(this.name,this.getType(e),t)}copy(e){return super.copy(e),this.parse(e.src,void 0,void 0,void 0,e.useDefine),this}},it=ep;it.PI="PI",it.PI2="PI2",it.RECIPROCAL_PI="RECIPROCAL_PI",it.RECIPROCAL_PI2="RECIPROCAL_PI2",it.LOG2="LOG2",it.EPSILON="EPSILON";var lD=new RegExp(`^structs*([a-z_0-9]+)s*{s*((.|
|
|
21
|
-
)*?)}`,"gim"),
|
|
22
|
-
`)),sRGBToLinear:new
|
|
23
|
-
`)),LinearTosRGB:new
|
|
24
|
-
`))},zr.LINEAR_TO_LINEAR="LinearToLinear",zr.SRGB_TO_LINEAR="sRGBToLinear",zr.LINEAR_TO_SRGB="LinearTosRGB";var xt=class extends Se{constructor(e="",t,r,n,s){super(e,s,n,r,t);this.nodeType="Expression"}};import{Texture as hD}from"three";var bi=class extends hD{toJSON(e){let t=super.toJSON(e),r=e===void 0||typeof e=="string";if(this.image!==void 0&&!r){let n=this.image;if(Array.isArray(n)){e.images[n.uuid].url=[];for(let s=0;s<n.length;s++)e.images[n.uuid].url[s]=bv(n[s])}else e.images[n.uuid].url=bv(n)}return t}};function bv(i){return typeof HTMLImageElement!="undefined"&&i instanceof HTMLImageElement||typeof HTMLCanvasElement!="undefined"&&i instanceof HTMLCanvasElement||typeof ImageBitmap!="undefined"&&i instanceof ImageBitmap?pD(i):(console.warn("THREE.Texture: Unable to serialize Texture."),"")}var Is;function pD(i){if(/^data:/i.test(i.src))return i.src;let e;if(i instanceof HTMLCanvasElement)e=i;else{Is===void 0&&(Is=document.createElement("canvas")),Is.width=i.width,Is.height=i.height;let r=Is.getContext("2d");i instanceof ImageData?r.putImageData(i,0,0):r.drawImage(i,0,0,i.width,i.height),e=Is}let t=i.src.startsWith("blob:")?i.fileName:i.src;return/\.jpe?g$/i.test(t)?e.toDataURL("image/jpeg",.6):e.toDataURL("image/png")}var Fr=class extends It{constructor(e=new bi,t,r,n){super("v4",{shared:!0});this.nodeType="Texture";this.value=e,this.uv=t!=null?t:new Ma,this.bias=r,this.project=n!==void 0?n:!1}getTexture(e,t){return super.generate(e,t,this.value.uuid,"t")}generate(e,t){var d;if(t==="sampler2D")return this.getTexture(e,t);let r=this.getTexture(e,t),n=this.uv.build(e,this.project?"v4":"v2"),s=this.bias?this.bias.build(e,"f"):void 0;s===void 0&&e.context.bias&&(s=e.context.bias.setTexture(this).build(e,"f"));let l,c;this.project?l="texture2DProj":l=s?"tex2DBias":"tex2D",s?c=l+"( "+r+", "+n+", "+s+" )":c=l+"( "+r+", "+n+" )";let f={include:e.isShader("vertex"),ignoreCache:!0},h=this.getType(e);return e.addContext(f),this.colorSpace=(d=this.colorSpace)!=null?d:new zr(new xt("",h)),this.colorSpace.fromDecoding(e.getTextureEncodingFromMap(this.value)),this.colorSpace.input.parse(c),c=this.colorSpace.build(e,h),e.removeContext(),e.format(c,h,t)}copy(e){return super.copy(e),e.value.isRenderTargetTexture?this.value=e.value:this.value.copy(e.value),this.uv.copy(e.uv),e.bias?this.bias?this.bias.copy(e.bias):this.bias=e.bias.clone():this.bias=void 0,e.colorSpace?this.colorSpace?this.colorSpace.copy(e.colorSpace):this.colorSpace=e.colorSpace.clone():this.colorSpace=void 0,this.project=e.project,e.value.isRenderTargetTexture||(this.value.updateMatrix(),this.value.needsUpdate=!0),this}};var ve=class extends It{constructor(e){super("f");this.nodeType="Float";this.value=e!=null?e:0}generateReadonly(e,t,r,n,s,l){return e.format(this.value+(this.value%1?"":".0"),n,t)}copy(e){return super.copy(e),this.value=e.value,this}};var pu=class extends Be{constructor(e,t){super();this.inputs=[];this.nodeType="FunctionCall";this.value=e,this.inputs=t!=null?t:[]}getFunction(){return this.value}getType(e){return this.value.getType(e)}generate(e,t,r,n,s){n=this.getType(e);let l=this.value,c=l.build(e,t)+"( ",f=[];if(l.inputs){for(let h=0;h<l.inputs.length;h++){let d=l.inputs[h],x=this.inputs[h]||this.inputs[d.name];f.push(x.build(e,e.getTypeByFormat(d.type)))}c+=f.join(", ")+" )"}return e.format(c,n,t)}copy(e){return super.copy(e),this.value.copy(e.value),this.inputs=e.inputs.map(t=>t.clone()),this}toJSON(e){var r;let t=this.getJSONNode(e);if(!t){let n=this.value;if(t=this.createJSONNode(e),t.value=this.value.toJSON(e).uuid,(r=n.inputs)==null?void 0:r.length){t.inputs={};for(let s=0;s<n.inputs.length;s++){let l=n.inputs[s],c=this.inputs[s];t.inputs[l.name]=c.toJSON(e).uuid}}}return t}};var Ms;(function(n){n.ADD="+",n.SUB="-",n.MUL="*",n.DIV="/"})(Ms||(Ms={}));var tp=class extends Be{constructor(e=new Pe,t=new Pe,r=tp.ADD){super();this.nodeType="Operator";this.type=e.type,this.a=e,this.b=t,this.op=r}getType(e){let t=this.a.getType(e),r=this.b.getType(e);return e.isTypeMatrix(t)?"v4":e.getTypeLength(r)>e.getTypeLength(t)?r:t}generate(e,t){let r=this.getType(e);this.type=r;let n=this.a.build(e,r),s=this.b.build(e,r);return e.format("( "+n+" "+this.op+" "+s+" )",r,t)}copy(e){return super.copy(e),this.a.copy(e.a),this.b.copy(e.b),this.op=e.op,this}},rn=tp;rn.ADD=Ms.ADD,rn.SUB=Ms.SUB,rn.MUL=Ms.MUL,rn.DIV=Ms.DIV;var Ke;(function(_){_.RAD="radians",_.DEG="degrees",_.EXP="exp",_.EXP2="exp2",_.LOG="log",_.LOG2="log2",_.SQRT="sqrt",_.INV_SQRT="inversesqrt",_.FLOOR="floor",_.CEIL="ceil",_.NORMALIZE="normalize",_.FRACT="fract",_.SATURATE="saturate",_.SIN="sin",_.COS="cos",_.TAN="tan",_.ASIN="asin",_.ACOS="acos",_.ARCTAN="atan",_.ABS="abs",_.SIGN="sign",_.LENGTH="length",_.NEGATE="negate",_.INVERT="invert",_.MIN="min",_.MAX="max",_.MOD="mod",_.STEP="step",_.REFLECT="reflect",_.DISTANCE="distance",_.DOT="dot",_.CROSS="cross",_.POW="pow",_.MIX="mix",_.CLAMP="clamp",_.REFRACT="refract",_.SMOOTHSTEP="smoothstep",_.FACEFORWARD="faceforward"})(Ke||(Ke={}));var ht=class extends Be{constructor(e=new Pe,t=ht.ABS,r,n){super();this.nodeType="Math";this.a=e,typeof t!="string"?this.b=t:n=t,typeof r!="string"?this.c=r:n=r,this.method=n,this.hashProperties=["method"]}getNumInputs(e){switch(this.method){case ht.MIX:case ht.CLAMP:case ht.REFRACT:case ht.SMOOTHSTEP:case ht.FACEFORWARD:return 3;case ht.MIN:case ht.MAX:case ht.MOD:case ht.STEP:case ht.REFLECT:case ht.DISTANCE:case ht.DOT:case ht.CROSS:case ht.POW:return 2;default:return 1}}getInputType(e){let t=e.getTypeLength(this.a.getType(e)),r=this.b?e.getTypeLength(this.b.getType(e)):0,n=this.c?e.getTypeLength(this.c.getType(e)):0;return t>r&&t>n?this.a.getType(e):r>n?this.b.getType(e):this.c.getType(e)}getType(e){switch(this.method){case ht.LENGTH:case ht.DISTANCE:case ht.DOT:return"f";case ht.CROSS:return"v3"}return this.getInputType(e)}generate(e,t){let r,n,s,l=this.a?e.getTypeLength(this.a.getType(e)):0,c=this.b?e.getTypeLength(this.b.getType(e)):0,f=this.c?e.getTypeLength(this.c.getType(e)):0,h=this.getInputType(e),d=this.getType(e);switch(this.type=d,this.method){case ht.NEGATE:return e.format("( -"+this.a.build(e,h)+" )",h,t);case ht.INVERT:return e.format("( 1.0 - "+this.a.build(e,h)+" )",h,t);case ht.CROSS:r=this.a.build(e,"v3"),n=this.b.build(e,"v3");break;case ht.STEP:r=this.a.build(e,l===1?"f":h),n=this.b.build(e,h);break;case ht.MIN:case ht.MAX:case ht.MOD:r=this.a.build(e,h),n=this.b.build(e,c===1?"f":h);break;case ht.REFRACT:r=this.a.build(e,h),n=this.b.build(e,h),s=this.c.build(e,"f");break;case ht.MIX:r=this.a.build(e,h),n=this.b.build(e,h),s=this.c.build(e,f===1?"f":h);break;default:r=this.a.build(e,h),this.b&&(n=this.b.build(e,h)),this.c&&(s=this.c.build(e,h));break}let x=[];x.push(r),n&&x.push(n),s&&x.push(s);let g=this.getNumInputs(e);if(x.length!==g)throw Error(`Arguments not match used in "${this.method}". Require ${g}, currently ${x.length}.`);return e.format(this.method+"( "+x.join(", ")+" )",d,t)}copy(e){return super.copy(e),this.a.copy(e.a),this.b=e.b instanceof Pe?e.b.clone():e.b,this.c=e.c instanceof Pe?e.c.clone():e.c,this.method=e.method,this}},ze=ht;ze.RAD=Ke.RAD,ze.DEG=Ke.DEG,ze.EXP=Ke.EXP,ze.EXP2=Ke.EXP2,ze.LOG=Ke.LOG,ze.LOG2=Ke.LOG2,ze.SQRT=Ke.SQRT,ze.INV_SQRT=Ke.INV_SQRT,ze.FLOOR=Ke.FLOOR,ze.CEIL=Ke.CEIL,ze.NORMALIZE=Ke.NORMALIZE,ze.FRACT=Ke.FRACT,ze.SATURATE=Ke.SATURATE,ze.SIN=Ke.SIN,ze.COS=Ke.COS,ze.TAN=Ke.TAN,ze.ASIN=Ke.ASIN,ze.ACOS=Ke.ACOS,ze.ARCTAN=Ke.ARCTAN,ze.ABS=Ke.ABS,ze.SIGN=Ke.SIGN,ze.LENGTH=Ke.LENGTH,ze.NEGATE=Ke.NEGATE,ze.INVERT=Ke.INVERT,ze.MIN=Ke.MIN,ze.MAX=Ke.MAX,ze.MOD=Ke.MOD,ze.STEP=Ke.STEP,ze.REFLECT=Ke.REFLECT,ze.DISTANCE=Ke.DISTANCE,ze.DOT=Ke.DOT,ze.CROSS=Ke.CROSS,ze.POW=Ke.POW,ze.MIX=Ke.MIX,ze.CLAMP=Ke.CLAMP,ze.REFRACT=Ke.REFRACT,ze.SMOOTHSTEP=Ke.SMOOTHSTEP,ze.FACEFORWARD=Ke.FACEFORWARD;var As=class extends Be{constructor(e=new Pe,t=new Pe,r=new Pe){super("v4");this.nodeType="TextureCubeUV";this.value=e,this.uv=t,this.bias=r}bilinearCubeUV(e,t,r,n){var f,h,d,x;let s=new pu(As.Nodes.bilinearCubeUV,[t,r,n]);this.colorSpaceTL=(f=this.colorSpaceTL)!=null?f:new zr(new xt("","v4")),this.colorSpaceTL.fromDecoding(e.getTextureEncodingFromMap(this.value.value)),this.colorSpaceTL.input.parse(s.build(e)+".tl"),this.colorSpaceTR=(h=this.colorSpaceTR)!=null?h:new zr(new xt("","v4")),this.colorSpaceTR.fromDecoding(e.getTextureEncodingFromMap(this.value.value)),this.colorSpaceTR.input.parse(s.build(e)+".tr"),this.colorSpaceBL=(d=this.colorSpaceBL)!=null?d:new zr(new xt("","v4")),this.colorSpaceBL.fromDecoding(e.getTextureEncodingFromMap(this.value.value)),this.colorSpaceBL.input.parse(s.build(e)+".bl"),this.colorSpaceBR=(x=this.colorSpaceBR)!=null?x:new zr(new xt("","v4")),this.colorSpaceBR.fromDecoding(e.getTextureEncodingFromMap(this.value.value)),this.colorSpaceBR.input.parse(s.build(e)+".br");let l={include:e.isShader("vertex"),ignoreCache:!0};e.addContext(l),this.colorSpaceTLExp=new xt(this.colorSpaceTL.build(e,"v4"),"v4"),this.colorSpaceTRExp=new xt(this.colorSpaceTR.build(e,"v4"),"v4"),this.colorSpaceBLExp=new xt(this.colorSpaceBL.build(e,"v4"),"v4"),this.colorSpaceBRExp=new xt(this.colorSpaceBR.build(e,"v4"),"v4"),e.removeContext();let c=new xt("mix( mix( cubeUV_TL, cubeUV_TR, cubeUV.f.x ), mix( cubeUV_BL, cubeUV_BR, cubeUV.f.x ), cubeUV.f.y )","v4");return c.keywords.cubeUV_TL=this.colorSpaceTLExp,c.keywords.cubeUV_TR=this.colorSpaceTRExp,c.keywords.cubeUV_BL=this.colorSpaceBLExp,c.keywords.cubeUV_BR=this.colorSpaceBRExp,c.keywords.cubeUV=s,c}generate(e,t){if(e.isShader("fragment")){let r=this.uv,n=this.bias||e.context.roughness,s=new pu(As.Nodes.roughnessToMip,[n]),l=new ze(s,As.Nodes.m0,As.Nodes.cubeUV_maxMipLevel,ze.CLAMP),c=new ze(l,ze.FLOOR),f=new ze(l,ze.FRACT),h=this.bilinearCubeUV(e,this.value,r,c),d=this.bilinearCubeUV(e,this.value,r,new rn(c,new ve(1).setReadonly(!0),rn.ADD)),x=new ze(h,d,f,ze.MIX);return e.format(x.build(e),"v4",t)}else return console.warn("TextureCubeUVNode is not compatible with "+e.shader+" shader."),e.format("vec4( 0.0 )",this.getType(e),t)}copy(e){return super.copy(e),this.uv.copy(e.uv),this.bias.copy(e.bias),this.value.copy(e.value),e.colorSpaceTL?this.colorSpaceTL?this.colorSpaceTL.copy(e.colorSpaceTL):this.colorSpaceTL=e.colorSpaceTL.clone():this.colorSpaceTL=void 0,e.colorSpaceTR?this.colorSpaceTR?this.colorSpaceTR.copy(e.colorSpaceTR):this.colorSpaceTR=e.colorSpaceTR.clone():this.colorSpaceTR=void 0,e.colorSpaceBL?this.colorSpaceBL?this.colorSpaceBL.copy(e.colorSpaceBL):this.colorSpaceBL=e.colorSpaceBL.clone():this.colorSpaceBL=void 0,e.colorSpaceBR?this.colorSpaceBR?this.colorSpaceBR.copy(e.colorSpaceBR):this.colorSpaceBR=e.colorSpaceBR.clone():this.colorSpaceBR=void 0,e.colorSpaceTLExp?this.colorSpaceTLExp?this.colorSpaceTLExp.copy(e.colorSpaceTLExp):this.colorSpaceTLExp=e.colorSpaceTLExp.clone():this.colorSpaceTLExp=void 0,e.colorSpaceTRExp?this.colorSpaceTRExp?this.colorSpaceTRExp.copy(e.colorSpaceTRExp):this.colorSpaceTRExp=e.colorSpaceTRExp.clone():this.colorSpaceTRExp=void 0,e.colorSpaceBLExp?this.colorSpaceBLExp?this.colorSpaceBLExp.copy(e.colorSpaceBLExp):this.colorSpaceBLExp=e.colorSpaceBLExp.clone():this.colorSpaceBLExp=void 0,e.colorSpaceBRExp?this.colorSpaceBRExp?this.colorSpaceBRExp.copy(e.colorSpaceBRExp):this.colorSpaceBRExp=e.colorSpaceBRExp.clone():this.colorSpaceBRExp=void 0,this}},Aa=As;Aa.Nodes=function(){let e=new Ia(`struct TextureCubeUVData {
|
|
19
|
+
`)+oe+`return __p
|
|
20
|
+
}`;var Je=qm(function(){return st(v,Ne+"return "+oe).apply(i,C)});if(Je.source=oe,Ff(Je))throw Je;return Je}function CT(s){return lt(s).toLowerCase()}function LT(s){return lt(s).toUpperCase()}function TT(s,l,u){if(s=lt(s),s&&(u||l===i))return s.replace(Qe,"");if(!s||!(l=Ur(l)))return s;var p=vn(s),g=vn(l),v=nd(p,g),C=id(p,g)+1;return Ti(p,v,C).join("")}function NT(s,l,u){if(s=lt(s),s&&(u||l===i))return s.replace(dt,"");if(!s||!(l=Ur(l)))return s;var p=vn(s),g=id(p,vn(l))+1;return Ti(p,0,g).join("")}function _T(s,l,u){if(s=lt(s),s&&(u||l===i))return s.replace(ot,"");if(!s||!(l=Ur(l)))return s;var p=vn(s),g=nd(p,vn(l));return Ti(p,g).join("")}function IT(s,l){var u=A,p=b;if(Pt(l)){var g="separator"in l?l.separator:g;u="length"in l?We(l.length):u,p="omission"in l?Ur(l.omission):p}s=lt(s);var v=s.length;if(Po(s)){var C=vn(s);v=C.length}if(u>=v)return s;var L=u-Ao(p);if(L<1)return p;var _=C?Ti(C,0,L).join(""):s.slice(0,L);if(g===i)return _+p;if(C&&(L+=_.length-L),Vf(g)){if(s.slice(L).search(g)){var Z,Q=_;for(g.global||(g=tf(g.source,lt(xn.exec(g))+"g")),g.lastIndex=0;Z=g.exec(Q);)var oe=Z.index;_=_.slice(0,oe===i?L:oe)}}else if(s.indexOf(Ur(g),L)!=L){var ge=_.lastIndexOf(g);ge>-1&&(_=_.slice(0,ge))}return _+p}function OT(s){return s=lt(s),s&&_o.test(s)?s.replace(Ki,iS):s}var MT=zo(function(s,l,u){return s+(u?" ":"")+l.toUpperCase()}),kf=$d("toUpperCase");function Wm(s,l,u){return s=lt(s),l=u?i:l,l===i?Qb(s)?aS(s):Hb(s):s.match(l)||[]}var qm=Xe(function(s,l){try{return Fr(s,i,l)}catch(u){return Ff(u)?u:new je(u)}}),PT=ei(function(s,l){return Qr(l,function(u){u=En(u),Zn(s,u,Rf(s[u],s))}),s});function AT(s){var l=s==null?0:s.length,u=Be();return s=l?It(s,function(p){if(typeof p[1]!="function")throw new en(n);return[u(p[0]),p[1]]}):[],Xe(function(p){for(var g=-1;++g<l;){var v=s[g];if(Fr(v[0],this,p))return Fr(v[1],this,p)}})}function DT(s){return i1(rn(s,f))}function Hf(s){return function(){return s}}function ET(s,l){return s==null||s!==s?l:s}var BT=Kd(),GT=Kd(!0);function Pr(s){return s}function Wf(s){return Td(typeof s=="function"?s:rn(s,f))}function RT(s){return _d(rn(s,f))}function zT(s,l){return Id(s,rn(l,f))}var FT=Xe(function(s,l){return function(u){return ra(u,s,l)}}),VT=Xe(function(s,l){return function(u){return ra(s,u,l)}});function qf(s,l,u){var p=Qt(l),g=_l(l,p);u==null&&!(Pt(l)&&(g.length||!p.length))&&(u=l,l=s,s=this,g=_l(l,Qt(l)));var v=!(Pt(u)&&"chain"in u)||!!u.chain,C=ri(s);return Qr(g,function(L){var _=l[L];s[L]=_,C&&(s.prototype[L]=function(){var Z=this.__chain__;if(v||Z){var Q=s(this.__wrapped__),oe=Q.__actions__=Ir(this.__actions__);return oe.push({func:_,args:arguments,thisArg:s}),Q.__chain__=Z,Q}return _.apply(s,xi([this.value()],arguments))})}),s}function UT(){return Zt._===this&&(Zt._=pS),this}function $f(){}function jT(s){return s=We(s),Xe(function(l){return Od(l,s)})}var kT=Lf(It),HT=Lf(Zp),WT=Lf(Ju);function $m(s){return Pf(s)?Ku(En(s)):S1(s)}function qT(s){return function(l){return s==null?i:no(s,l)}}var $T=Xd(),JT=Xd(!0);function Jf(){return[]}function Kf(){return!1}function KT(){return{}}function YT(){return""}function XT(){return!0}function ZT(s,l){if(s=We(s),s<1||s>ne)return[];var u=Le,p=fr(s,Le);l=Be(l),s-=Le;for(var g=Zu(p,l);++u<s;)l(u);return g}function QT(s){return ke(s)?It(s,En):jr(s)?[s]:Ir(pm(lt(s)))}function eN(s){var l=++fS;return lt(s)+l}var tN=Dl(function(s,l){return s+l},0),rN=Tf("ceil"),nN=Dl(function(s,l){return s/l},1),iN=Tf("floor");function oN(s){return s&&s.length?Nl(s,Pr,uf):i}function sN(s,l){return s&&s.length?Nl(s,Be(l,2),uf):i}function aN(s){return td(s,Pr)}function lN(s,l){return td(s,Be(l,2))}function cN(s){return s&&s.length?Nl(s,Pr,df):i}function uN(s,l){return s&&s.length?Nl(s,Be(l,2),df):i}var fN=Dl(function(s,l){return s*l},1),hN=Tf("round"),pN=Dl(function(s,l){return s-l},0);function dN(s){return s&&s.length?Xu(s,Pr):0}function mN(s,l){return s&&s.length?Xu(s,Be(l,2)):0}return y.after=RC,y.ary=Lm,y.assign=LL,y.assignIn=zm,y.assignInWith=ql,y.assignWith=TL,y.at=NL,y.before=Tm,y.bind=Rf,y.bindAll=PT,y.bindKey=Nm,y.castArray=KC,y.chain=Sm,y.chunk=iw,y.compact=ow,y.concat=sw,y.cond=AT,y.conforms=DT,y.constant=Hf,y.countBy=dC,y.create=_L,y.curry=_m,y.curryRight=Im,y.debounce=Om,y.defaults=IL,y.defaultsDeep=OL,y.defer=zC,y.delay=FC,y.difference=aw,y.differenceBy=lw,y.differenceWith=cw,y.drop=uw,y.dropRight=fw,y.dropRightWhile=hw,y.dropWhile=pw,y.fill=dw,y.filter=gC,y.flatMap=vC,y.flatMapDeep=bC,y.flatMapDepth=SC,y.flatten=ym,y.flattenDeep=mw,y.flattenDepth=gw,y.flip=VC,y.flow=BT,y.flowRight=GT,y.fromPairs=yw,y.functions=GL,y.functionsIn=RL,y.groupBy=wC,y.initial=vw,y.intersection=bw,y.intersectionBy=Sw,y.intersectionWith=ww,y.invert=FL,y.invertBy=VL,y.invokeMap=LC,y.iteratee=Wf,y.keyBy=TC,y.keys=Qt,y.keysIn=Mr,y.map=Vl,y.mapKeys=jL,y.mapValues=kL,y.matches=RT,y.matchesProperty=zT,y.memoize=jl,y.merge=HL,y.mergeWith=Fm,y.method=FT,y.methodOf=VT,y.mixin=qf,y.negate=kl,y.nthArg=jT,y.omit=WL,y.omitBy=qL,y.once=UC,y.orderBy=NC,y.over=kT,y.overArgs=jC,y.overEvery=HT,y.overSome=WT,y.partial=zf,y.partialRight=Mm,y.partition=_C,y.pick=$L,y.pickBy=Vm,y.property=$m,y.propertyOf=qT,y.pull=Nw,y.pullAll=vm,y.pullAllBy=_w,y.pullAllWith=Iw,y.pullAt=Ow,y.range=$T,y.rangeRight=JT,y.rearg=kC,y.reject=MC,y.remove=Mw,y.rest=HC,y.reverse=Bf,y.sampleSize=AC,y.set=KL,y.setWith=YL,y.shuffle=DC,y.slice=Pw,y.sortBy=GC,y.sortedUniq=zw,y.sortedUniqBy=Fw,y.split=vT,y.spread=WC,y.tail=Vw,y.take=Uw,y.takeRight=jw,y.takeRightWhile=kw,y.takeWhile=Hw,y.tap=oC,y.throttle=qC,y.thru=Fl,y.toArray=Bm,y.toPairs=Um,y.toPairsIn=jm,y.toPath=QT,y.toPlainObject=Rm,y.transform=XL,y.unary=$C,y.union=Ww,y.unionBy=qw,y.unionWith=$w,y.uniq=Jw,y.uniqBy=Kw,y.uniqWith=Yw,y.unset=ZL,y.unzip=Gf,y.unzipWith=bm,y.update=QL,y.updateWith=eT,y.values=Uo,y.valuesIn=tT,y.without=Xw,y.words=Wm,y.wrap=JC,y.xor=Zw,y.xorBy=Qw,y.xorWith=eC,y.zip=tC,y.zipObject=rC,y.zipObjectDeep=nC,y.zipWith=iC,y.entries=Um,y.entriesIn=jm,y.extend=zm,y.extendWith=ql,qf(y,y),y.add=tN,y.attempt=qm,y.camelCase=oT,y.capitalize=km,y.ceil=rN,y.clamp=rT,y.clone=YC,y.cloneDeep=ZC,y.cloneDeepWith=QC,y.cloneWith=XC,y.conformsTo=eL,y.deburr=Hm,y.defaultTo=ET,y.divide=nN,y.endsWith=sT,y.eq=Sn,y.escape=aT,y.escapeRegExp=lT,y.every=mC,y.find=yC,y.findIndex=mm,y.findKey=ML,y.findLast=xC,y.findLastIndex=gm,y.findLastKey=PL,y.floor=iN,y.forEach=wm,y.forEachRight=Cm,y.forIn=AL,y.forInRight=DL,y.forOwn=EL,y.forOwnRight=BL,y.get=Uf,y.gt=tL,y.gte=rL,y.has=zL,y.hasIn=jf,y.head=xm,y.identity=Pr,y.includes=CC,y.indexOf=xw,y.inRange=nT,y.invoke=UL,y.isArguments=so,y.isArray=ke,y.isArrayBuffer=nL,y.isArrayLike=Or,y.isArrayLikeObject=Gt,y.isBoolean=iL,y.isBuffer=Ni,y.isDate=oL,y.isElement=sL,y.isEmpty=aL,y.isEqual=lL,y.isEqualWith=cL,y.isError=Ff,y.isFinite=uL,y.isFunction=ri,y.isInteger=Pm,y.isLength=Hl,y.isMap=Am,y.isMatch=fL,y.isMatchWith=hL,y.isNaN=pL,y.isNative=dL,y.isNil=gL,y.isNull=mL,y.isNumber=Dm,y.isObject=Pt,y.isObjectLike=Dt,y.isPlainObject=la,y.isRegExp=Vf,y.isSafeInteger=yL,y.isSet=Em,y.isString=Wl,y.isSymbol=jr,y.isTypedArray=Vo,y.isUndefined=xL,y.isWeakMap=vL,y.isWeakSet=bL,y.join=Cw,y.kebabCase=cT,y.last=on,y.lastIndexOf=Lw,y.lowerCase=uT,y.lowerFirst=fT,y.lt=SL,y.lte=wL,y.max=oN,y.maxBy=sN,y.mean=aN,y.meanBy=lN,y.min=cN,y.minBy=uN,y.stubArray=Jf,y.stubFalse=Kf,y.stubObject=KT,y.stubString=YT,y.stubTrue=XT,y.multiply=fN,y.nth=Tw,y.noConflict=UT,y.noop=$f,y.now=Ul,y.pad=hT,y.padEnd=pT,y.padStart=dT,y.parseInt=mT,y.random=iT,y.reduce=IC,y.reduceRight=OC,y.repeat=gT,y.replace=yT,y.result=JL,y.round=hN,y.runInContext=I,y.sample=PC,y.size=EC,y.snakeCase=xT,y.some=BC,y.sortedIndex=Aw,y.sortedIndexBy=Dw,y.sortedIndexOf=Ew,y.sortedLastIndex=Bw,y.sortedLastIndexBy=Gw,y.sortedLastIndexOf=Rw,y.startCase=bT,y.startsWith=ST,y.subtract=pN,y.sum=dN,y.sumBy=mN,y.template=wT,y.times=ZT,y.toFinite=ni,y.toInteger=We,y.toLength=Gm,y.toLower=CT,y.toNumber=sn,y.toSafeInteger=CL,y.toString=lt,y.toUpper=LT,y.trim=TT,y.trimEnd=NT,y.trimStart=_T,y.truncate=IT,y.unescape=OT,y.uniqueId=eN,y.upperCase=MT,y.upperFirst=kf,y.each=wm,y.eachRight=Cm,y.first=xm,qf(y,function(){var s={};return An(y,function(l,u){ht.call(y.prototype,u)||(s[u]=l)}),s}(),{chain:!1}),y.VERSION=t,Qr(["bind","bindKey","curry","curryRight","partial","partialRight"],function(s){y[s].placeholder=y}),Qr(["drop","take"],function(s,l){et.prototype[s]=function(u){u=u===i?1:Jt(We(u),0);var p=this.__filtered__&&!l?new et(this):this.clone();return p.__filtered__?p.__takeCount__=fr(u,p.__takeCount__):p.__views__.push({size:fr(u,Le),type:s+(p.__dir__<0?"Right":"")}),p},et.prototype[s+"Right"]=function(u){return this.reverse()[s](u).reverse()}}),Qr(["filter","map","takeWhile"],function(s,l){var u=l+1,p=u==R||u==G;et.prototype[s]=function(g){var v=this.clone();return v.__iteratees__.push({iteratee:Be(g,3),type:u}),v.__filtered__=v.__filtered__||p,v}}),Qr(["head","last"],function(s,l){var u="take"+(l?"Right":"");et.prototype[s]=function(){return this[u](1).value()[0]}}),Qr(["initial","tail"],function(s,l){var u="drop"+(l?"":"Right");et.prototype[s]=function(){return this.__filtered__?new et(this):this[u](1)}}),et.prototype.compact=function(){return this.filter(Pr)},et.prototype.find=function(s){return this.filter(s).head()},et.prototype.findLast=function(s){return this.reverse().find(s)},et.prototype.invokeMap=Xe(function(s,l){return typeof s=="function"?new et(this):this.map(function(u){return ra(u,s,l)})}),et.prototype.reject=function(s){return this.filter(kl(Be(s)))},et.prototype.slice=function(s,l){s=We(s);var u=this;return u.__filtered__&&(s>0||l<0)?new et(u):(s<0?u=u.takeRight(-s):s&&(u=u.drop(s)),l!==i&&(l=We(l),u=l<0?u.dropRight(-l):u.take(l-s)),u)},et.prototype.takeRightWhile=function(s){return this.reverse().takeWhile(s).reverse()},et.prototype.toArray=function(){return this.take(Le)},An(et.prototype,function(s,l){var u=/^(?:filter|find|map|reject)|While$/.test(l),p=/^(?:head|last)$/.test(l),g=y[p?"take"+(l=="last"?"Right":""):l],v=p||/^find/.test(l);!g||(y.prototype[l]=function(){var C=this.__wrapped__,L=p?[1]:arguments,_=C instanceof et,Z=L[0],Q=_||ke(C),oe=function(Ze){var tt=g.apply(y,xi([Ze],L));return p&&ge?tt[0]:tt};Q&&u&&typeof Z=="function"&&Z.length!=1&&(_=Q=!1);var ge=this.__chain__,Ne=!!this.__actions__.length,ze=v&&!ge,Je=_&&!Ne;if(!v&&Q){C=Je?C:new et(this);var Ge=s.apply(C,L);return Ge.__actions__.push({func:Fl,args:[oe],thisArg:i}),new tn(Ge,ge)}return ze&&Je?s.apply(this,L):(Ge=this.thru(oe),ze?p?Ge.value()[0]:Ge.value():Ge)})}),Qr(["pop","push","shift","sort","splice","unshift"],function(s){var l=fl[s],u=/^(?:push|sort|unshift)$/.test(s)?"tap":"thru",p=/^(?:pop|shift)$/.test(s);y.prototype[s]=function(){var g=arguments;if(p&&!this.__chain__){var v=this.value();return l.apply(ke(v)?v:[],g)}return this[u](function(C){return l.apply(ke(C)?C:[],g)})}}),An(et.prototype,function(s,l){var u=y[l];if(u){var p=u.name+"";ht.call(Bo,p)||(Bo[p]=[]),Bo[p].push({name:l,func:u})}}),Bo[Al(i,w).name]=[{name:"wrapper",func:i}],et.prototype.clone=OS,et.prototype.reverse=MS,et.prototype.value=PS,y.prototype.at=sC,y.prototype.chain=aC,y.prototype.commit=lC,y.prototype.next=cC,y.prototype.plant=fC,y.prototype.reverse=hC,y.prototype.toJSON=y.prototype.valueOf=y.prototype.value=pC,y.prototype.first=y.prototype.head,Ks&&(y.prototype[Ks]=uC),y},bi=lS();typeof define=="function"&&typeof define.amd=="object"&&define.amd?(Zt._=bi,define(function(){return bi})):Zi?((Zi.exports=bi)._=bi,Hu._=bi):Zt._=bi}).call($s)});import{FileLoader as k3,Loader as H3}from"three";function eg(i){return Array.isArray(i)?i:[i]}var TN=typeof global=="object"&&global&&global.Object===Object&&global,Jl=TN;var NN=typeof self=="object"&&self&&self.Object===Object&&self,_N=Jl||NN||Function("return this")(),kt=_N;var IN=kt.Symbol,Sr=IN;var tg=Object.prototype,ON=tg.hasOwnProperty,MN=tg.toString,ca=Sr?Sr.toStringTag:void 0;function PN(i){var t=ON.call(i,ca),e=i[ca];try{i[ca]=void 0;var r=!0}catch{}var n=MN.call(i);return r&&(t?i[ca]=e:delete i[ca]),n}var rg=PN;var AN=Object.prototype,DN=AN.toString;function EN(i){return DN.call(i)}var ng=EN;var BN="[object Null]",GN="[object Undefined]",ig=Sr?Sr.toStringTag:void 0;function RN(i){return i==null?i===void 0?GN:BN:ig&&ig in Object(i)?rg(i):ng(i)}var Wr=RN;function zN(i){return i!=null&&typeof i=="object"}var pr=zN;var FN="[object Symbol]";function VN(i){return typeof i=="symbol"||pr(i)&&Wr(i)==FN}var jo=VN;function UN(i,t){for(var e=-1,r=i==null?0:i.length,n=Array(r);++e<r;)n[e]=t(i[e],e,i);return n}var Kl=UN;var jN=Array.isArray,sr=jN;var kN=1/0,og=Sr?Sr.prototype:void 0,sg=og?og.toString:void 0;function ag(i){if(typeof i=="string")return i;if(sr(i))return Kl(i,ag)+"";if(jo(i))return sg?sg.call(i):"";var t=i+"";return t=="0"&&1/i==-kN?"-0":t}var lg=ag;function HN(i){var t=typeof i;return i!=null&&(t=="object"||t=="function")}var dr=HN;function WN(i){return i}var Yl=WN;var qN="[object AsyncFunction]",$N="[object Function]",JN="[object GeneratorFunction]",KN="[object Proxy]";function YN(i){if(!dr(i))return!1;var t=Wr(i);return t==$N||t==JN||t==qN||t==KN}var ko=YN;var XN=kt["__core-js_shared__"],Xl=XN;var cg=function(){var i=/[^.]+$/.exec(Xl&&Xl.keys&&Xl.keys.IE_PROTO||"");return i?"Symbol(src)_1."+i:""}();function ZN(i){return!!cg&&cg in i}var ug=ZN;var QN=Function.prototype,e_=QN.toString;function t_(i){if(i!=null){try{return e_.call(i)}catch{}try{return i+""}catch{}}return""}var oi=t_;var r_=/[\\^$.*+?()[\]{}|]/g,n_=/^\[object .+?Constructor\]$/,i_=Function.prototype,o_=Object.prototype,s_=i_.toString,a_=o_.hasOwnProperty,l_=RegExp("^"+s_.call(a_).replace(r_,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function c_(i){if(!dr(i)||ug(i))return!1;var t=ko(i)?l_:n_;return t.test(oi(i))}var fg=c_;function u_(i,t){return i==null?void 0:i[t]}var hg=u_;function f_(i,t){var e=hg(i,t);return fg(e)?e:void 0}var Ar=f_;var h_=Ar(kt,"WeakMap"),Zl=h_;var pg=Object.create,p_=function(){function i(){}return function(t){if(!dr(t))return{};if(pg)return pg(t);i.prototype=t;var e=new i;return i.prototype=void 0,e}}(),dg=p_;function d_(i,t,e){switch(e.length){case 0:return i.call(t);case 1:return i.call(t,e[0]);case 2:return i.call(t,e[0],e[1]);case 3:return i.call(t,e[0],e[1],e[2])}return i.apply(t,e)}var mg=d_;function m_(i,t){var e=-1,r=i.length;for(t||(t=Array(r));++e<r;)t[e]=i[e];return t}var Ql=m_;var g_=800,y_=16,x_=Date.now;function v_(i){var t=0,e=0;return function(){var r=x_(),n=y_-(r-e);if(e=r,n>0){if(++t>=g_)return arguments[0]}else t=0;return i.apply(void 0,arguments)}}var gg=v_;function b_(i){return function(){return i}}var yg=b_;var S_=function(){try{var i=Ar(Object,"defineProperty");return i({},"",{}),i}catch{}}(),Ho=S_;var w_=Ho?function(i,t){return Ho(i,"toString",{configurable:!0,enumerable:!1,value:yg(t),writable:!0})}:Yl,xg=w_;var C_=gg(xg),ec=C_;function L_(i,t){for(var e=-1,r=i==null?0:i.length;++e<r&&t(i[e],e,i)!==!1;);return i}var vg=L_;var T_=9007199254740991,N_=/^(?:0|[1-9]\d*)$/;function __(i,t){var e=typeof i;return t=t==null?T_:t,!!t&&(e=="number"||e!="symbol"&&N_.test(i))&&i>-1&&i%1==0&&i<t}var tc=__;function I_(i,t,e){t=="__proto__"&&Ho?Ho(i,t,{configurable:!0,enumerable:!0,value:e,writable:!0}):i[t]=e}var Wo=I_;function O_(i,t){return i===t||i!==i&&t!==t}var _i=O_;var M_=Object.prototype,P_=M_.hasOwnProperty;function A_(i,t,e){var r=i[t];(!(P_.call(i,t)&&_i(r,e))||e===void 0&&!(t in i))&&Wo(i,t,e)}var rc=A_;function D_(i,t,e,r){var n=!e;e||(e={});for(var o=-1,a=t.length;++o<a;){var c=t[o],f=r?r(e[c],i[c],c,e,i):void 0;f===void 0&&(f=i[c]),n?Wo(e,c,f):rc(e,c,f)}return e}var an=D_;var bg=Math.max;function E_(i,t,e){return t=bg(t===void 0?i.length-1:t,0),function(){for(var r=arguments,n=-1,o=bg(r.length-t,0),a=Array(o);++n<o;)a[n]=r[t+n];n=-1;for(var c=Array(t+1);++n<t;)c[n]=r[n];return c[t]=e(a),mg(i,this,c)}}var nc=E_;function B_(i,t){return ec(nc(i,t,Yl),i+"")}var Sg=B_;var G_=9007199254740991;function R_(i){return typeof i=="number"&&i>-1&&i%1==0&&i<=G_}var ic=R_;function z_(i){return i!=null&&ic(i.length)&&!ko(i)}var Ii=z_;function F_(i,t,e){if(!dr(e))return!1;var r=typeof t;return(r=="number"?Ii(e)&&tc(t,e.length):r=="string"&&t in e)?_i(e[t],i):!1}var wg=F_;function V_(i){return Sg(function(t,e){var r=-1,n=e.length,o=n>1?e[n-1]:void 0,a=n>2?e[2]:void 0;for(o=i.length>3&&typeof o=="function"?(n--,o):void 0,a&&wg(e[0],e[1],a)&&(o=n<3?void 0:o,n=1),t=Object(t);++r<n;){var c=e[r];c&&i(t,c,r,o)}return t})}var Cg=V_;var U_=Object.prototype;function j_(i){var t=i&&i.constructor,e=typeof t=="function"&&t.prototype||U_;return i===e}var qo=j_;function k_(i,t){for(var e=-1,r=Array(i);++e<i;)r[e]=t(e);return r}var Lg=k_;var H_="[object Arguments]";function W_(i){return pr(i)&&Wr(i)==H_}var Yf=W_;var Tg=Object.prototype,q_=Tg.hasOwnProperty,$_=Tg.propertyIsEnumerable,J_=Yf(function(){return arguments}())?Yf:function(i){return pr(i)&&q_.call(i,"callee")&&!$_.call(i,"callee")},ao=J_;function K_(){return!1}var Ng=K_;var Og=typeof exports=="object"&&exports&&!exports.nodeType&&exports,_g=Og&&typeof module=="object"&&module&&!module.nodeType&&module,Y_=_g&&_g.exports===Og,Ig=Y_?kt.Buffer:void 0,X_=Ig?Ig.isBuffer:void 0,Z_=X_||Ng,$o=Z_;var Q_="[object Arguments]",eI="[object Array]",tI="[object Boolean]",rI="[object Date]",nI="[object Error]",iI="[object Function]",oI="[object Map]",sI="[object Number]",aI="[object Object]",lI="[object RegExp]",cI="[object Set]",uI="[object String]",fI="[object WeakMap]",hI="[object ArrayBuffer]",pI="[object DataView]",dI="[object Float32Array]",mI="[object Float64Array]",gI="[object Int8Array]",yI="[object Int16Array]",xI="[object Int32Array]",vI="[object Uint8Array]",bI="[object Uint8ClampedArray]",SI="[object Uint16Array]",wI="[object Uint32Array]",Nt={};Nt[dI]=Nt[mI]=Nt[gI]=Nt[yI]=Nt[xI]=Nt[vI]=Nt[bI]=Nt[SI]=Nt[wI]=!0;Nt[Q_]=Nt[eI]=Nt[hI]=Nt[tI]=Nt[pI]=Nt[rI]=Nt[nI]=Nt[iI]=Nt[oI]=Nt[sI]=Nt[aI]=Nt[lI]=Nt[cI]=Nt[uI]=Nt[fI]=!1;function CI(i){return pr(i)&&ic(i.length)&&!!Nt[Wr(i)]}var Mg=CI;function LI(i){return function(t){return i(t)}}var Jo=LI;var Pg=typeof exports=="object"&&exports&&!exports.nodeType&&exports,ua=Pg&&typeof module=="object"&&module&&!module.nodeType&&module,TI=ua&&ua.exports===Pg,Xf=TI&&Jl.process,NI=function(){try{var i=ua&&ua.require&&ua.require("util").types;return i||Xf&&Xf.binding&&Xf.binding("util")}catch{}}(),si=NI;var Ag=si&&si.isTypedArray,_I=Ag?Jo(Ag):Mg,oc=_I;var II=Object.prototype,OI=II.hasOwnProperty;function MI(i,t){var e=sr(i),r=!e&&ao(i),n=!e&&!r&&$o(i),o=!e&&!r&&!n&&oc(i),a=e||r||n||o,c=a?Lg(i.length,String):[],f=c.length;for(var h in i)(t||OI.call(i,h))&&!(a&&(h=="length"||n&&(h=="offset"||h=="parent")||o&&(h=="buffer"||h=="byteLength"||h=="byteOffset")||tc(h,f)))&&c.push(h);return c}var sc=MI;function PI(i,t){return function(e){return i(t(e))}}var ac=PI;var AI=ac(Object.keys,Object),Dg=AI;var DI=Object.prototype,EI=DI.hasOwnProperty;function BI(i){if(!qo(i))return Dg(i);var t=[];for(var e in Object(i))EI.call(i,e)&&e!="constructor"&&t.push(e);return t}var Eg=BI;function GI(i){return Ii(i)?sc(i):Eg(i)}var Ko=GI;function RI(i){var t=[];if(i!=null)for(var e in Object(i))t.push(e);return t}var Bg=RI;var zI=Object.prototype,FI=zI.hasOwnProperty;function VI(i){if(!dr(i))return Bg(i);var t=qo(i),e=[];for(var r in i)r=="constructor"&&(t||!FI.call(i,r))||e.push(r);return e}var Gg=VI;function UI(i){return Ii(i)?sc(i,!0):Gg(i)}var Bn=UI;var jI=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,kI=/^\w*$/;function HI(i,t){if(sr(i))return!1;var e=typeof i;return e=="number"||e=="symbol"||e=="boolean"||i==null||jo(i)?!0:kI.test(i)||!jI.test(i)||t!=null&&i in Object(t)}var Rg=HI;var WI=Ar(Object,"create"),ai=WI;function qI(){this.__data__=ai?ai(null):{},this.size=0}var zg=qI;function $I(i){var t=this.has(i)&&delete this.__data__[i];return this.size-=t?1:0,t}var Fg=$I;var JI="__lodash_hash_undefined__",KI=Object.prototype,YI=KI.hasOwnProperty;function XI(i){var t=this.__data__;if(ai){var e=t[i];return e===JI?void 0:e}return YI.call(t,i)?t[i]:void 0}var Vg=XI;var ZI=Object.prototype,QI=ZI.hasOwnProperty;function eO(i){var t=this.__data__;return ai?t[i]!==void 0:QI.call(t,i)}var Ug=eO;var tO="__lodash_hash_undefined__";function rO(i,t){var e=this.__data__;return this.size+=this.has(i)?0:1,e[i]=ai&&t===void 0?tO:t,this}var jg=rO;function Yo(i){var t=-1,e=i==null?0:i.length;for(this.clear();++t<e;){var r=i[t];this.set(r[0],r[1])}}Yo.prototype.clear=zg;Yo.prototype.delete=Fg;Yo.prototype.get=Vg;Yo.prototype.has=Ug;Yo.prototype.set=jg;var Zf=Yo;function nO(){this.__data__=[],this.size=0}var kg=nO;function iO(i,t){for(var e=i.length;e--;)if(_i(i[e][0],t))return e;return-1}var Oi=iO;var oO=Array.prototype,sO=oO.splice;function aO(i){var t=this.__data__,e=Oi(t,i);if(e<0)return!1;var r=t.length-1;return e==r?t.pop():sO.call(t,e,1),--this.size,!0}var Hg=aO;function lO(i){var t=this.__data__,e=Oi(t,i);return e<0?void 0:t[e][1]}var Wg=lO;function cO(i){return Oi(this.__data__,i)>-1}var qg=cO;function uO(i,t){var e=this.__data__,r=Oi(e,i);return r<0?(++this.size,e.push([i,t])):e[r][1]=t,this}var $g=uO;function Xo(i){var t=-1,e=i==null?0:i.length;for(this.clear();++t<e;){var r=i[t];this.set(r[0],r[1])}}Xo.prototype.clear=kg;Xo.prototype.delete=Hg;Xo.prototype.get=Wg;Xo.prototype.has=qg;Xo.prototype.set=$g;var Mi=Xo;var fO=Ar(kt,"Map"),Pi=fO;function hO(){this.size=0,this.__data__={hash:new Zf,map:new(Pi||Mi),string:new Zf}}var Jg=hO;function pO(i){var t=typeof i;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?i!=="__proto__":i===null}var Kg=pO;function dO(i,t){var e=i.__data__;return Kg(t)?e[typeof t=="string"?"string":"hash"]:e.map}var Ai=dO;function mO(i){var t=Ai(this,i).delete(i);return this.size-=t?1:0,t}var Yg=mO;function gO(i){return Ai(this,i).get(i)}var Xg=gO;function yO(i){return Ai(this,i).has(i)}var Zg=yO;function xO(i,t){var e=Ai(this,i),r=e.size;return e.set(i,t),this.size+=e.size==r?0:1,this}var Qg=xO;function Zo(i){var t=-1,e=i==null?0:i.length;for(this.clear();++t<e;){var r=i[t];this.set(r[0],r[1])}}Zo.prototype.clear=Jg;Zo.prototype.delete=Yg;Zo.prototype.get=Xg;Zo.prototype.has=Zg;Zo.prototype.set=Qg;var fa=Zo;var vO="Expected a function";function Qf(i,t){if(typeof i!="function"||t!=null&&typeof t!="function")throw new TypeError(vO);var e=function(){var r=arguments,n=t?t.apply(this,r):r[0],o=e.cache;if(o.has(n))return o.get(n);var a=i.apply(this,r);return e.cache=o.set(n,a)||o,a};return e.cache=new(Qf.Cache||fa),e}Qf.Cache=fa;var ey=Qf;var bO=500;function SO(i){var t=ey(i,function(r){return e.size===bO&&e.clear(),r}),e=t.cache;return t}var ty=SO;var wO=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,CO=/\\(\\)?/g,LO=ty(function(i){var t=[];return i.charCodeAt(0)===46&&t.push(""),i.replace(wO,function(e,r,n,o){t.push(n?o.replace(CO,"$1"):r||e)}),t}),ry=LO;function TO(i){return i==null?"":lg(i)}var ny=TO;function NO(i,t){return sr(i)?i:Rg(i,t)?[i]:ry(ny(i))}var Qo=NO;var _O=1/0;function IO(i){if(typeof i=="string"||jo(i))return i;var t=i+"";return t=="0"&&1/i==-_O?"-0":t}var lc=IO;function OO(i,t){t=Qo(t,i);for(var e=0,r=t.length;i!=null&&e<r;)i=i[lc(t[e++])];return e&&e==r?i:void 0}var iy=OO;function MO(i,t){for(var e=-1,r=t.length,n=i.length;++e<r;)i[n+e]=t[e];return i}var es=MO;var oy=Sr?Sr.isConcatSpreadable:void 0;function PO(i){return sr(i)||ao(i)||!!(oy&&i&&i[oy])}var sy=PO;function ay(i,t,e,r,n){var o=-1,a=i.length;for(e||(e=sy),n||(n=[]);++o<a;){var c=i[o];t>0&&e(c)?t>1?ay(c,t-1,e,r,n):es(n,c):r||(n[n.length]=c)}return n}var ly=ay;function AO(i){var t=i==null?0:i.length;return t?ly(i,1):[]}var cy=AO;function DO(i){return ec(nc(i,void 0,cy),i+"")}var uy=DO;var EO=ac(Object.getPrototypeOf,Object),ts=EO;var BO="[object Object]",GO=Function.prototype,RO=Object.prototype,fy=GO.toString,zO=RO.hasOwnProperty,FO=fy.call(Object);function VO(i){if(!pr(i)||Wr(i)!=BO)return!1;var t=ts(i);if(t===null)return!0;var e=zO.call(t,"constructor")&&t.constructor;return typeof e=="function"&&e instanceof e&&fy.call(e)==FO}var cc=VO;function UO(i,t,e){var r=-1,n=i.length;t<0&&(t=-t>n?0:n+t),e=e>n?n:e,e<0&&(e+=n),n=t>e?0:e-t>>>0,t>>>=0;for(var o=Array(n);++r<n;)o[r]=i[r+t];return o}var hy=UO;function jO(){this.__data__=new Mi,this.size=0}var py=jO;function kO(i){var t=this.__data__,e=t.delete(i);return this.size=t.size,e}var dy=kO;function HO(i){return this.__data__.get(i)}var my=HO;function WO(i){return this.__data__.has(i)}var gy=WO;var qO=200;function $O(i,t){var e=this.__data__;if(e instanceof Mi){var r=e.__data__;if(!Pi||r.length<qO-1)return r.push([i,t]),this.size=++e.size,this;e=this.__data__=new fa(r)}return e.set(i,t),this.size=e.size,this}var yy=$O;function rs(i){var t=this.__data__=new Mi(i);this.size=t.size}rs.prototype.clear=py;rs.prototype.delete=dy;rs.prototype.get=my;rs.prototype.has=gy;rs.prototype.set=yy;var uc=rs;function JO(i,t){return i&&an(t,Ko(t),i)}var xy=JO;function KO(i,t){return i&&an(t,Bn(t),i)}var vy=KO;var Cy=typeof exports=="object"&&exports&&!exports.nodeType&&exports,by=Cy&&typeof module=="object"&&module&&!module.nodeType&&module,YO=by&&by.exports===Cy,Sy=YO?kt.Buffer:void 0,wy=Sy?Sy.allocUnsafe:void 0;function XO(i,t){if(t)return i.slice();var e=i.length,r=wy?wy(e):new i.constructor(e);return i.copy(r),r}var fc=XO;function ZO(i,t){for(var e=-1,r=i==null?0:i.length,n=0,o=[];++e<r;){var a=i[e];t(a,e,i)&&(o[n++]=a)}return o}var Ly=ZO;function QO(){return[]}var hc=QO;var eM=Object.prototype,tM=eM.propertyIsEnumerable,Ty=Object.getOwnPropertySymbols,rM=Ty?function(i){return i==null?[]:(i=Object(i),Ly(Ty(i),function(t){return tM.call(i,t)}))}:hc,ns=rM;function nM(i,t){return an(i,ns(i),t)}var Ny=nM;var iM=Object.getOwnPropertySymbols,oM=iM?function(i){for(var t=[];i;)es(t,ns(i)),i=ts(i);return t}:hc,pc=oM;function sM(i,t){return an(i,pc(i),t)}var _y=sM;function aM(i,t,e){var r=t(i);return sr(i)?r:es(r,e(i))}var dc=aM;function lM(i){return dc(i,Ko,ns)}var Iy=lM;function cM(i){return dc(i,Bn,pc)}var mc=cM;var uM=Ar(kt,"DataView"),gc=uM;var fM=Ar(kt,"Promise"),yc=fM;var hM=Ar(kt,"Set"),xc=hM;var Oy="[object Map]",pM="[object Object]",My="[object Promise]",Py="[object Set]",Ay="[object WeakMap]",Dy="[object DataView]",dM=oi(gc),mM=oi(Pi),gM=oi(yc),yM=oi(xc),xM=oi(Zl),lo=Wr;(gc&&lo(new gc(new ArrayBuffer(1)))!=Dy||Pi&&lo(new Pi)!=Oy||yc&&lo(yc.resolve())!=My||xc&&lo(new xc)!=Py||Zl&&lo(new Zl)!=Ay)&&(lo=function(i){var t=Wr(i),e=t==pM?i.constructor:void 0,r=e?oi(e):"";if(r)switch(r){case dM:return Dy;case mM:return Oy;case gM:return My;case yM:return Py;case xM:return Ay}return t});var is=lo;var vM=Object.prototype,bM=vM.hasOwnProperty;function SM(i){var t=i.length,e=new i.constructor(t);return t&&typeof i[0]=="string"&&bM.call(i,"index")&&(e.index=i.index,e.input=i.input),e}var Ey=SM;var wM=kt.Uint8Array,eh=wM;function CM(i){var t=new i.constructor(i.byteLength);return new eh(t).set(new eh(i)),t}var os=CM;function LM(i,t){var e=t?os(i.buffer):i.buffer;return new i.constructor(e,i.byteOffset,i.byteLength)}var By=LM;var TM=/\w*$/;function NM(i){var t=new i.constructor(i.source,TM.exec(i));return t.lastIndex=i.lastIndex,t}var Gy=NM;var Ry=Sr?Sr.prototype:void 0,zy=Ry?Ry.valueOf:void 0;function _M(i){return zy?Object(zy.call(i)):{}}var Fy=_M;function IM(i,t){var e=t?os(i.buffer):i.buffer;return new i.constructor(e,i.byteOffset,i.length)}var vc=IM;var OM="[object Boolean]",MM="[object Date]",PM="[object Map]",AM="[object Number]",DM="[object RegExp]",EM="[object Set]",BM="[object String]",GM="[object Symbol]",RM="[object ArrayBuffer]",zM="[object DataView]",FM="[object Float32Array]",VM="[object Float64Array]",UM="[object Int8Array]",jM="[object Int16Array]",kM="[object Int32Array]",HM="[object Uint8Array]",WM="[object Uint8ClampedArray]",qM="[object Uint16Array]",$M="[object Uint32Array]";function JM(i,t,e){var r=i.constructor;switch(t){case RM:return os(i);case OM:case MM:return new r(+i);case zM:return By(i,e);case FM:case VM:case UM:case jM:case kM:case HM:case WM:case qM:case $M:return vc(i,e);case PM:return new r;case AM:case BM:return new r(i);case DM:return Gy(i);case EM:return new r;case GM:return Fy(i)}}var Vy=JM;function KM(i){return typeof i.constructor=="function"&&!qo(i)?dg(ts(i)):{}}var bc=KM;var YM="[object Map]";function XM(i){return pr(i)&&is(i)==YM}var Uy=XM;var jy=si&&si.isMap,ZM=jy?Jo(jy):Uy,ky=ZM;var QM="[object Set]";function eP(i){return pr(i)&&is(i)==QM}var Hy=eP;var Wy=si&&si.isSet,tP=Wy?Jo(Wy):Hy,qy=tP;var rP=1,nP=2,iP=4,$y="[object Arguments]",oP="[object Array]",sP="[object Boolean]",aP="[object Date]",lP="[object Error]",Jy="[object Function]",cP="[object GeneratorFunction]",uP="[object Map]",fP="[object Number]",Ky="[object Object]",hP="[object RegExp]",pP="[object Set]",dP="[object String]",mP="[object Symbol]",gP="[object WeakMap]",yP="[object ArrayBuffer]",xP="[object DataView]",vP="[object Float32Array]",bP="[object Float64Array]",SP="[object Int8Array]",wP="[object Int16Array]",CP="[object Int32Array]",LP="[object Uint8Array]",TP="[object Uint8ClampedArray]",NP="[object Uint16Array]",_P="[object Uint32Array]",St={};St[$y]=St[oP]=St[yP]=St[xP]=St[sP]=St[aP]=St[vP]=St[bP]=St[SP]=St[wP]=St[CP]=St[uP]=St[fP]=St[Ky]=St[hP]=St[pP]=St[dP]=St[mP]=St[LP]=St[TP]=St[NP]=St[_P]=!0;St[lP]=St[Jy]=St[gP]=!1;function Sc(i,t,e,r,n,o){var a,c=t&rP,f=t&nP,h=t&iP;if(e&&(a=n?e(i,r,n,o):e(i)),a!==void 0)return a;if(!dr(i))return i;var d=sr(i);if(d){if(a=Ey(i),!c)return Ql(i,a)}else{var m=is(i),x=m==Jy||m==cP;if($o(i))return fc(i,c);if(m==Ky||m==$y||x&&!n){if(a=f||x?{}:bc(i),!c)return f?_y(i,vy(a,i)):Ny(i,xy(a,i))}else{if(!St[m])return n?i:{};a=Vy(i,m,c)}}o||(o=new uc);var S=o.get(i);if(S)return S;o.set(i,a),qy(i)?i.forEach(function(O){a.add(Sc(O,t,e,O,i,o))}):ky(i)&&i.forEach(function(O,T){a.set(T,Sc(O,t,e,T,i,o))});var w=h?f?mc:Iy:f?Bn:Ko,B=d?void 0:w(i);return vg(B||i,function(O,T){B&&(T=O,O=i[T]),rc(a,T,Sc(O,t,e,T,i,o))}),a}var wc=Sc;var IP=1,OP=4;function MP(i){return wc(i,IP|OP)}var ha=MP;function PP(i){return function(t,e,r){for(var n=-1,o=Object(t),a=r(t),c=a.length;c--;){var f=a[i?c:++n];if(e(o[f],f,o)===!1)break}return t}}var Yy=PP;var AP=Yy(),Xy=AP;function DP(i,t,e){(e!==void 0&&!_i(i[t],e)||e===void 0&&!(t in i))&&Wo(i,t,e)}var pa=DP;function EP(i){return pr(i)&&Ii(i)}var Zy=EP;function BP(i,t){if(!(t==="constructor"&&typeof i[t]=="function")&&t!="__proto__")return i[t]}var da=BP;function GP(i){return an(i,Bn(i))}var Qy=GP;function RP(i,t,e,r,n,o,a){var c=da(i,e),f=da(t,e),h=a.get(f);if(h){pa(i,e,h);return}var d=o?o(c,f,e+"",i,t,a):void 0,m=d===void 0;if(m){var x=sr(f),S=!x&&$o(f),w=!x&&!S&&oc(f);d=f,x||S||w?sr(c)?d=c:Zy(c)?d=Ql(c):S?(m=!1,d=fc(f,!0)):w?(m=!1,d=vc(f,!0)):d=[]:cc(f)||ao(f)?(d=c,ao(c)?d=Qy(c):(!dr(c)||ko(c))&&(d=bc(f))):m=!1}m&&(a.set(f,d),n(d,f,r,o,a),a.delete(f)),pa(i,e,d)}var ex=RP;function tx(i,t,e,r,n){i!==t&&Xy(t,function(o,a){if(n||(n=new uc),dr(o))ex(i,t,a,e,tx,r,n);else{var c=r?r(da(i,a),o,a+"",i,t,n):void 0;c===void 0&&(c=o),pa(i,a,c)}},Bn)}var rx=tx;function zP(i){var t=i==null?0:i.length;return t?i[t-1]:void 0}var nx=zP;function FP(i,t){return t.length<2?i:iy(i,hy(t,0,-1))}var ix=FP;var VP=Cg(function(i,t,e){rx(i,t,e)}),co=VP;function UP(i,t){return t=Qo(t,i),i=ix(i,t),i==null||delete i[lc(nx(t))]}var ox=UP;function jP(i){return cc(i)?void 0:i}var sx=jP;var kP=1,HP=2,WP=4,qP=uy(function(i,t){var e={};if(i==null)return e;var r=!1;t=Kl(t,function(o){return o=Qo(o,i),r||(r=o.length>1),o}),an(i,mc(i),e),r&&(e=wc(e,kP|HP|WP,sx));for(var n=t.length;n--;)ox(e,t[n]);return e}),ss=qP;var as;(e=>{e.all=["PerspectiveCamera","OrthographicCamera"];function t(r){return e.all.includes(r)}e.is=t})(as||(as={}));var uo;(n=>{n.DefaultUp=[0,1,0],n.DefaultTargetOffset=1e3,n.defaultData={far:1e5,type:"OrthographicCamera",perspective:{near:5,fov:45,zoom:1},orthographic:{near:-1e5,zoom:1},up:n.DefaultUp,isUpVectorFlipped:!1,targetOffset:n.DefaultTargetOffset};function r(o){return o.type==="PerspectiveCamera"?o.perspective.zoom:o.orthographic.zoom}n.getZoom=r})(uo||(uo={}));var ax;(e=>{function i(r,n){return r[0]===n[0]&&r[1]===n[1]}e.isEqual=i;function t(r,n,o){return[r[0]+(n[0]-r[0])*o,r[1]+(n[1]-r[1])*o]}e.lerp=t})(ax||(ax={}));var ls;(n=>{function i(o,a){return o[0]===a[0]&&o[1]===a[1]&&o[2]===a[2]}n.isEqual=i;function t(o,a){return[o[0]+a[0],o[1]+a[1],o[2]+a[2]]}n.add=t;function e(o,a){return[o[0]-a[0],o[1]-a[1],o[2]-a[2]]}n.sub=e;function r(o,a,c){return[o[0]+(a[0]-o[0])*c,o[1]+(a[1]-o[1])*c,o[2]+(a[2]-o[2])*c]}n.lerp=r})(ls||(ls={}));var lx;(e=>{function i(r,n){return r[0]===n[0]&&r[1]===n[1]&&r[2]===n[2]&&r[3]===n[3]}e.isEqual=i;function t(r,n,o){return[r[0]+(n[0]-r[0])*o,r[1]+(n[1]-r[1])*o,r[2]+(n[2]-r[2])*o,r[3]+(n[3]-r[3])*o]}e.lerp=t})(lx||(lx={}));var Di;(o=>{o.identity=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1];function t(a,c){for(let f=0;f<16;f++)if(a[f]!==c[f])return!1;return!0}o.isEqual=t;function e(a){return a!=null?a:o.identity}o.simplify=e;function r(a,c){let f=c.slice(0);for(var h=0,d=c.length;h<d;h+=3){let m=1/(a[3]*c[h]+a[7]*c[h+1]+a[11]*c[h+2]+a[15]);f[h]=(a[0]*c[h]+a[4]*c[h+1]+a[8]*c[h+2]+a[12])*m,f[h+1]=(a[1]*c[h]+a[5]*c[h+1]+a[9]*c[h+2]+a[13])*m,f[h+2]=(a[2]*c[h]+a[6]*c[h+1]+a[10]*c[h+2]+a[14])*m}return f}o.applyMatrix4=r;function n(a,c){let f=c.slice(0);for(var h=0,d=c.length;h<d;h+=3)f[h]=a[0]*c[h]+a[4]*c[h+1]+a[8]*c[h+2],f[h+1]=a[1]*c[h]+a[5]*c[h+1]+a[9]*c[h+2],f[h+2]=a[2]*c[h]+a[6]*c[h+1]+a[10]*c[h+2];return f}o.applyMatrix3Components=n})(Di||(Di={}));var qr;(f=>{f.white={r:1,g:1,b:1},f.red={r:1,g:0,b:0},f.black={r:0,g:0,b:0};function r(h){return{r:Math.round(h.r*255),g:Math.round(h.g*255),b:Math.round(h.b*255),a:1}}f.toRgb255a1=r;function n(h){return{r:h.r,g:h.g,b:h.b}}f.clone=n;function o(h){return h=Math.floor(h),{r:(h>>16&255)/255,g:(h>>8&255)/255,b:(h&255)/255}}f.fromHex=o;function a(h,d){return h.r===d.r&&h.g===d.g&&h.b===d.b}f.equals=a;function c(h,d,m){return{r:h.r+(d.r-h.r)*m,g:h.g+(d.g-h.g)*m,b:h.b+(d.b-h.b)*m}}f.lerp=c})(qr||(qr={}));var Gn;(a=>{a.white=ue(j({},qr.white),{a:1});function t(c){return{r:c[0],g:c[1],b:c[2],a:c[3]}}a.from0to1=t;function e(c,f){return ue(j({},qr.fromHex(c)),{a:f})}a.fromHexAndA=e;function r(c){return{r:Math.round(c.r*255),g:Math.round(c.g*255),b:Math.round(c.b*255),a:c.a}}a.toRgb255a1=r;function n(c,f){return qr.equals(c,f)&&c.a===f.a}a.equals=n;function o(c,f,h){return{r:c.r+(f.r-c.r)*h,g:c.g+(f.g-c.g)*h,b:c.b+(f.b-c.b)*h,a:c.a+(f.a-c.a)*h}}a.lerp=o})(Gn||(Gn={}));var Cc;(t=>t.identity={position:[0,0,0],rotation:[0,0,0],scale:[1,1,1]})(Cc||(Cc={}));var cx;(t=>t.defaultData={mass:1,stiffness:80,damping:10,velocity:0})(cx||(cx={}));var ux;(t=>t.defaultData={control1:[.5,.05],control2:[.1,.3]})(ux||(ux={}));var Lc;(t=>{function i(e,r=.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]*r,0,0]},grid:{count:[2,2,2],size:e.map(n=>n*(1+r)),useCenter:!0}}}t.defaultData=i})(Lc||(Lc={}));var ln=class{modifyById(t,e){let r=this;if(r[t]===void 0)throw new Error("not expected");{let o=ue(j({},r),{[t]:e});return Object.setPrototypeOf(o,ln.prototype),o}}add(t,e){var n;let r=this.runOp({type:1,id:t,data:e});return(n=r==null?void 0:r.data)!=null?n:this}runOp(t){let e=this;if(t.type===1){let r=e[t.id],n;r===void 0?n={type:2,id:t.id}:n={type:1,id:t.id,data:r};let{id:o,data:a}=t,c=ue(j({},e),{[o]:a});return Object.setPrototypeOf(c,ln.prototype),{data:c,actual:t,reverse:n}}else if(t.type===2){let{id:r}=t,n=e[r];if(n===void 0)return null;{let o=j({},e);return Object.setPrototypeOf(o,ln.prototype),delete o[r],{data:o,actual:t,reverse:{type:1,id:r,data:n}}}}throw new Error("illegal arg")}};function ma(i){if(i.deepFreeze!==void 0){i.deepFreeze(i);return}let t=Object.getOwnPropertyNames(i);for(let e of t){let r=i[e];r&&typeof r=="object"&&ma(r)}return Object.freeze(i)}function fx(i,t){let e=0;for(;e<i.length&&e<t.length;){if(i[e]<t[e])return-1;if(i[e]>t[e])return 1;e+=1}return e!==t.length?-1:e!==i.length?1:0}var Tc=class extends Error{};function Rn(i,t,e){if(i===void 0?t===void 0?(i=0,t=10):i=t-10:t===void 0&&(t=i+10),i>t){let o=i;i=t,t=o}let r=[],n=1/(e+1);for(let o=0;o<e;o++){let a=i+(t-i)*(o+.75+Math.random()*.5)*n;r.push(a)}return r}function hx(i){return i instanceof Uint8Array||i instanceof Uint16Array||i instanceof Uint32Array||i instanceof Int8Array||i instanceof Int16Array||i instanceof Int32Array||i instanceof Float32Array||i instanceof Float64Array}function px(){return typeof process<"u"}function dx(i,t){for(let e of i)t(e.id,e.data),dx(e.children,t)}function mx(i,t){t(i.id,i.data);for(let e of i.children)mx(e,t)}var cn=class extends Array{constructor(...e){super(...e);Object.setPrototypeOf(this,cn.prototype)}deepFreeze(){let e=0;for(;e<this.length;)ma(this[e]),e++}fillCaches0(e,r){var n;if((n=this.objCaches)!=null&&n.has(e.id))throw new Error("duplicated item");this.objCaches.set(e.id,e),this.parentCaches.set(e.id,r);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,r){for(;e;){let n=this.parent(e);if(n===r)return!0;e=n}return!1}data(e){var r;return(r=this.get(e))==null?void 0:r.data}has(e){return this.childrenOf(e)!==void 0}get(e){return this.fillCaches(),this.objCaches.get(e)}childrenOf(e){var r;return e===null?this:(r=this.get(e))==null?void 0:r.children}traverseFrom(e,r){if(e===null)this.traverse(r);else{let n=this.get(e);n&&mx(n,r)}}traverse(e){dx(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,r){if(this.get(e)===void 0)throw new Error("not expected");{let o=this.parent(e),a=this.childrenArray(o),c=a.findIndex(d=>d.id===e);if(c<0)throw new Error("not expected");let f=a[c];return a=[...a],a[c]=ue(j({},f),{data:r}),this.modifyArrayBy(o,a)}}modifyArrayBy(e,r){let n=e,o=r;for(;n!==null;){let c=o,f=n;if(n=this.parent(n),n===void 0)throw new Error;o=this.childrenArray(n);let h=o.findIndex(d=>d.id===f);if(h<0)throw new Error;o=[...o],o[h]=ue(j({},o[h]),{children:c})}Object.setPrototypeOf(o,cn.prototype);let a=o;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)}}addOp(e){let{parent:r,fi:n,id:o,data:a,children:c}=e;if(r!==null&&this.get(r)===void 0)return null;if(this.get(o)!==void 0)return null;{let f=r,h=this.childrenArray(f),d={fi:n,id:o,data:a,children:c};return h=[...h,d],h.sort((x,S)=>x.fi-S.fi),e.localIndex=h.indexOf(d),{data:this.modifyArrayBy(f,h),actual:e,reverse:{type:8,id:o}}}}deleteOp(e){let{id:r}=e;if(this.get(r)===null)return null;{let n=this.parent(r);if(n===void 0)return null;let o=this.childrenArray(n),a=o.findIndex(h=>h.id===r);e.localIndex=a,o=[...o];let c=o.splice(a,1)[0];return{data:this.modifyArrayBy(n,o),actual:e,reverse:ue(j({type:7},c),{parent:n})}}}moveOp(e){let{parent:r,fi:n,id:o}=e;if(r!==null&&this.get(r)===void 0)return this.deleteOp({type:8,id:o});if(r!==null){let S=r;for(;S!==null;){if(S===void 0)throw new Error;if(S===o)throw new Tc("cyclic tree");S=this.parent(S)}}let a=this.parent(o);if(a===void 0)return null;let c=a,f=this.childrenArray(a),h=f.findIndex(S=>S.id===o);f=[...f];let d=f.splice(h,1)[0],m=this.modifyArrayBy(a,f);a=r,f=m.childrenArray(a);let x=d.fi;return d=ue(j({},d),{fi:n}),f=[...f,d],f.sort((S,w)=>S.fi-w.fi),e.localIndex=f.indexOf(d),m=m.modifyArrayBy(a,f),{data:m,actual:e,reverse:{type:9,parent:c,fi:x,id:o}}}previous(e,r){if(r===null){let o=this.childrenArray(e);return o.length===0?null:o[o.length-1].id}let n=null;for(let o of this.childrenArray(e)){if(o.id===r)return n;n=o.id}return null}traverseSortNext(e){let r=this.parent(e);if(r!==void 0){let n=this.childrenArray(r),o=n.findIndex(a=>a.id===e)+1;if(o<n.length)return n[o].id;if(r)return this.traverseSortNext(r)}}sortNext(e){let r=this.childrenArray(e);return r.length>0?r[0].id:this.traverseSortNext(e)}traverseSortPrevious(e){let r=this.childrenArray(e);return r.length>0?this.traverseSortPrevious(r[r.length-1].id):e}sortPrevious(e){let r=this.parent(e);if(r!==void 0){let n=this.childrenArray(r),o=n.findIndex(a=>a.id===e)-1;return o>=0?this.traverseSortPrevious(n[o].id):r}}getAllSorted(e){let r=[];for(let n of e){let o=this.getWithSortKey(n.id);o!==void 0&&r.push(j(j({},n),o))}r.sort((n,o)=>fx(n.sortKey,o.sortKey));for(let n of r)delete n.sortKey;return r}getWithSortKey(e){var r=e;let n=[],o=this.get(r),a=o;if(o!==void 0){for(;r;)n.splice(0,0,o.fi),r=this.parent(r),r!==null&&(o=this.get(r));return ue(j({},a),{sortKey:n})}}insertBeforeHelper(e,r,n){return this.insertAfterHelper(e,this.previous(e,r),n)}insertAfterHelper(e,r,n){let o=this.childrenArray(e);if(r===null){if(o.length===0)return Rn(0,n,n);{let a=o[0].fi;return Rn(a-n,a,n)}}else{let a=this.get(r);if(a===void 0||this.parent(r)!==e)throw new Error("illegal args");let c=o.find(f=>f.fi>a.fi);if(c===void 0){let f=o[o.length-1].fi;return Rn(f,f+n,n)}else return Rn(a.fi,c.fi,n)}}};var Nc;(t=>{function i(e,r){if(Array.isArray(e)){let n=r.props,o={},a=[...e],c=!1;if(n)for(let f of Object.keys(n)){let h=parseInt(f);if(isNaN(h))throw new Error("wrong index");o[f]=a[h],a[h]=n[f],c=!0}return c?{data:a,actual:r,reverse:{type:0,props:o}}:null}else{let n=r.props,o={},a=j({},e),c=!1;if(n)for(let f of Object.keys(n)){o[f]=a[f];let h=n[f];h===void 0?delete a[f]:a[f]=h,c=!0}return c?{data:a,actual:r,reverse:{type:0,props:o}}:null}}t.runOp=i})(Nc||(Nc={}));var At=class extends Array{constructor(...e){super(...e);Object.setPrototypeOf(this,At.prototype)}deepFreeze(){let e=0;for(;e<this.length;)ma(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){var r;return(r=this.get(e))==null?void 0:r.data}get(e){return this.fillCaches(),this.objCaches.get(e)}modifyById(e,r){if(this.get(e)===void 0)throw new Error("not expected");{let o=this,a=o.findIndex(h=>h.id===e);if(a<0)throw new Error("not expected");let c=o[a];return o=[...o],o[a]=ue(j({},c),{data:r}),this.modifyArrayBy(o)}}modifyArrayBy(e){Object.setPrototypeOf(e,At.prototype);let r=e;return px()||r.fillCaches(),r}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:r,id:n,data:o}=e,a=this,c={fi:r,id:n,data:o};return a=[...a,c],a.sort((h,d)=>h.fi-d.fi),e.localIndex=a.indexOf(c),{data:this.modifyArrayBy(a),actual:e,reverse:{type:5,id:n}}}deleteOp(e){let{id:r}=e,n=this,o=n.findIndex(f=>f.id===r);if(o===-1)return null;e.localIndex=o,n=[...n];let a=n.splice(o,1)[0];return{data:this.modifyArrayBy(n),actual:e,reverse:j({type:4},a)}}moveOp(e){let{fi:r,id:n}=e,o=this;o=[...o];let a=o.findIndex(d=>d.id===n);if(a===-1)return null;let c=o[a].fi,f=ue(j({},o[a]),{fi:r});return o[a]=f,o.sort((d,m)=>d.fi-m.fi),e.localIndex=o.indexOf(f),{data:this.modifyArrayBy(o),actual:e,reverse:{type:6,fi:c,id:n}}}previous(e){if(e===null)return this.length===0?null:this[this.length-1].id;let r=null;for(let n of this){if(n.id===e)return r;r=n.id}return null}insertBeforeHelper(e,r){return this.insertAfterHelper(this.previous(e),r)}insertAfterHelper(e,r){let n=this;if(e===null){if(n.length===0)return Rn(0,r,r);{let o=n[0].fi;return Rn(o-r,o,r)}}else{let o=this.get(e);if(o===void 0)throw new Error("illegal args");let a=n.find(c=>c.fi>o.fi);if(a===void 0){let c=n[n.length-1].fi;return Rn(c,c+r,r)}else return Rn(o.fi,a.fi,r)}}};var gx=Symbol(),Ic=Symbol(),cs=class{reportOp(t,e){let r=this;if(e===null)return;r._current=e.data;let n=[];for(;!(r instanceof _c);){let o=r._path,a=r._current;if(o!==""&&n.splice(0,0,o),r=r._parent,r===null)return;r.update(o,a)}r.push(n,t,e.actual,e.reverse)}deleteChildren(t){if(this._children){let e=this._children[t];if(e){let r=e[Ic];r&&r(),delete this._children[t]}}}},rh=class extends cs{constructor(t,e,r){super(),this._parent=t,this._path=e,this._current=r}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=ue(j({},this._current),{[t]:e})}runOp(t){this.reportOp(t,Nc.runOp(this._current,t))}},nh=class extends cs{constructor(t,e,r){super(),this._parent=t,this._path=e,this._current=r}update(t,e){this._current=ue(j({},this._current),{[t]:e}),Object.setPrototypeOf(this._current,ln.prototype)}runOp(t){this.reportOp(t,this._current.runOp(t))}},yx={get(i,t){if(t===Ic)return()=>{i._parent=null};if(t===gx)return i._current;let{_current:e,_children:r}=i;if(t==="push"&&Array.isArray(e))throw new Error("not supported to expand array");let n=r===void 0?void 0:r[t];if(n!==void 0)return n;let o=e[t],a=Oc(i,t,o);return a!==o?(r===void 0&&(r={},i._children=r),r[t]=a,a):o},has(i,t){return t in i._current},ownKeys(i){return Reflect.ownKeys(i._current)},defineProperty(){throw Error("not supported")},getPrototypeOf(i){return Object.getPrototypeOf(i._current)},setPrototypeOf(){throw Error("not supported")},getOwnPropertyDescriptor(i,t){let e=i._current,r=Reflect.getOwnPropertyDescriptor(e,t);return r&&{writable:!0,configurable:!0,enumerable:r.enumerable,value:e[t]}}},$P=ue(j({},yx),{set(i,t,e){var n;let r={type:0,props:{[t]:(n=sh(e))!=null?n:e}};return i.deleteChildren(t),i.runOp(r),!0},deleteProperty(i,t){let e={type:0,props:{[t]:void 0}};return i.deleteChildren(t),i.runOp(e),!0}}),JP=ue(j({},yx),{set(i,t,e){return e===void 0?this.deleteProperty(i,t):(i.deleteChildren(t),i.runOp({type:1,id:t,data:e})),!0},deleteProperty(i,t){return i.runOp({type:2,id:t}),!0}}),us=class extends cs{constructor(t,e,r){super(),this._children={},this._parent=t,this._path=e,this._current=r,this[Ic]=()=>{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,r)=>{t(e,this.data(e))})}data(t){var c;let{_current:e,_children:r}=this,n=r===void 0?void 0:r[t];if(n!==void 0)return n;let o=(c=e.get(t))==null?void 0:c.data,a=Oc(this,t,o);return a!==o?(r===void 0&&(r={},this._children=r),r[t]=a,a):o}add(t,e,r,n,o){this.runOp({type:7,parent:t,fi:e,id:r,data:n,children:o})}move(t,e,r){this.runOp({type:9,parent:t,fi:e,id:r})}insertAfter(t,e,r){let n=this._current.insertAfterHelper(t,e,r.length);for(let o=0;o<r.length;o++){let a=r[o];this.add(t,n[o],a.id,a.data,a.children)}}insertBefore(t,e,r){let n=this._current.insertBeforeHelper(t,e,r.length);for(let o=0;o<r.length;o++){let a=r[o];this.add(t,n[o],a.id,a.data,a.children)}}moveAfter(t,e,r){let n=this._current.insertAfterHelper(t,e,r.length);for(let o=0;o<r.length;o++){let a=r[o];this.move(t,n[o],a)}}moveBefore(t,e,r){let n=this._current.insertBeforeHelper(t,e,r.length);for(let o=0;o<r.length;o++){let a=r[o];this.move(t,n[o],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)}},fs=class extends cs{constructor(t,e,r){super(),this._children={},this._parent=t,this._path=e,this._current=r,this[Ic]=()=>{this._parent=null}}unproxy(){return this._current}get length(){return this._current.length}forEach(t){let e=this.length;for(let r=0;r<e;r++){let n=this._current[r].id;t(this.data(this._current[r].id),n)}}update(t,e){this._current=this._current.modifyById(t,e)}randomId(){return this._current.randomId()}get(t){return ue(j({},this._current.get(t)),{data:this.data(t)})}data(t){var c;let{_current:e,_children:r}=this,n=r===void 0?void 0:r[t];if(n!==void 0)return n;let o=(c=e.get(t))==null?void 0:c.data,a=Oc(this,t,o);return a!==o?(r===void 0&&(r={},this._children=r),r[t]=a,a):o}runOp(t){this.reportOp(t,this._current.runOp(t))}add(t,e,r){this.runOp({type:4,fi:t,id:e,data:r})}move(t,e){this.runOp({type:6,fi:t,id:e})}insertAfter(t,e){let r=this._current.insertAfterHelper(t,e.length);for(let n=0;n<e.length;n++){let o=e[n];this.add(r[n],o.id,o.data)}}insertBefore(t,e){let r=this._current.insertBeforeHelper(t,e.length);for(let n=0;n<e.length;n++){let o=e[n];this.add(r[n],o.id,o.data)}}moveAfter(t,e){let r=this._current.insertAfterHelper(t,e.length);for(let n=0;n<e.length;n++){let o=e[n];this.move(r[n],o)}}moveBefore(t,e){let r=this._current.insertBeforeHelper(t,e.length);for(let n=0;n<e.length;n++){let o=e[n];this.move(r[n],o)}}delete(t){this.deleteChildren(t),this.runOp({type:5,id:t})}};function th(i,t,e){if(i.length>0){let r=i[i.length-1];if(r.type===0&&t.type===0&&Mc.equal(r.path,e)){Object.assign(r.props,t.props);return}}i.push(ue(j({},t),{path:e}))}var _c=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,r,n){th(this.ts,e,t),th(this.actual,r,t),th(this.reverse,n,t)}result(){return{data:this._current,ts:this.ts,actual:this.actual,reverse:this.reverse.reverse()}}};function Oc(i,t,e){return e instanceof cn?new us(i,t,e):e instanceof At?new fs(i,t,e):e instanceof ln?new Proxy(new nh(i,t,e),JP):e!==null&&typeof e=="object"?hx(e)?e:new Proxy(new rh(i,t,e),$P):e}function ih(i){let t=new _c(i);return[Oc(t,"",i),t]}function oh(i,t){let[e,r]=ih(i);return t(e),r.result()}function sh(i){return i instanceof us||i instanceof fs?i._current:i!==null&&typeof i=="object"?i[gx]:i}var Mc;(r=>{function i(n,o){if(o.length===n.length)for(var a=0;a<n.length;){if(n[a]!==o[a])return!1;a+=1}else return!1;return!0}r.equal=i;function t(n,o,a){let c=e(a,n);if(c!==void 0&&typeof c=="object"&&c!==null){let f=j({},o);return Object.keys(c).forEach(h=>{delete f[h]}),f}else return o}r.removeOverridden=t;function e(n,o,a=0){if(o.length<=a)return n;if((n instanceof cn||n instanceof us)&&typeof o[a]=="string")return e(n.data(o[a]),o,a+1);if((n instanceof At||n instanceof fs)&&typeof o[a]=="string")return e(n.data(o[a]),o,a+1);if(typeof o[a]=="number"&&Array.isArray(n))return e(n[o[a]],o,a+1);if(typeof o[a]=="string"&&typeof n=="object")return e(n[o[a]],o,a+1)}r.zoom=e})(Mc||(Mc={}));var Pc=class{},ga=class extends Pc{constructor(e){super();this.id=e}},ya=class extends Pc{constructor(e){super();this.data=e}};var lh;try{lh=new TextDecoder}catch{}var ye,Bi,D=0;var Tx=[],ch=Tx,uh=0,Dr={},it,Ei,un=0,zn=0,$r,li,wr=[],ct,xx={useRecords:!1,mapsAsObjects:!0},xa=class{},hh=new xa;hh.name="MessagePack 0xC1";var hs=!1,Fn=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(ye)return Mx(()=>(Dc(),this?this.unpack(t,e):Fn.prototype.unpack.call(xx,t,e)));Bi=e>-1?e:t.length,D=0,uh=0,zn=0,Ei=null,ch=Tx,$r=null,ye=t;try{ct=t.dataView||(t.dataView=new DataView(t.buffer,t.byteOffset,t.byteLength))}catch(r){throw ye=null,t instanceof Uint8Array?r:new Error("Source must be a Uint8Array or Buffer but was a "+(t&&typeof t=="object"?t.constructor.name:typeof t))}if(this instanceof Fn){if(Dr=this,this.structures)return it=this.structures,Ac();(!it||it.length>0)&&(it=[])}else Dr=xx,(!it||it.length>0)&&(it=[]);return Ac()}unpackMultiple(t,e){let r,n=0;try{hs=!0;let o=t.length,a=this?this.unpack(t,o):Gc.unpack(t,o);if(e){for(e(a);D<o;)if(n=D,e(Ac())===!1)return}else{for(r=[a];D<o;)n=D,r.push(Ac());return r}}catch(o){throw o.lastPosition=n,o.values=r,o}finally{hs=!1,Dc()}}_mergeStructures(t,e){t=t||[];for(let r=0,n=t.length;r<n;r++){let o=t[r];o&&(o.isShared=!0,r>=32&&(o.highByte=r-32>>5))}t.sharedLength=t.length;for(let r in e||[])if(r>=0){let n=t[r],o=e[r];o&&(n&&((t.restoreStructures||(t.restoreStructures=[]))[r]=n),t[r]=o)}return this.structures=t}decode(t,e){return this.unpack(t,e)}};function Ac(){try{if(!Dr.trusted&&!hs){let t=it.sharedLength||0;t<it.length&&(it.length=t)}let i=Et();if(D==Bi)it.restoreStructures&&vx(),it=null,ye=null,li&&(li=null);else if(D>Bi){let t=new Error("Unexpected end of MessagePack data");throw t.incomplete=!0,t}else if(!hs)throw new Error("Data read, but end of buffer not reached");return i}catch(i){throw it.restoreStructures&&vx(),Dc(),(i instanceof RangeError||i.message.startsWith("Unexpected end of buffer"))&&(i.incomplete=!0),i}}function vx(){for(let i in it.restoreStructures)it[i]=it.restoreStructures[i];it.restoreStructures=null}function Et(){let i=ye[D++];if(i<160)if(i<128){if(i<64)return i;{let t=it[i&63]||Dr.getStructures&&Nx()[i&63];return t?(t.read||(t.read=ph(t,i&63)),t.read()):i}}else if(i<144)if(i-=128,Dr.mapsAsObjects){let t={};for(let e=0;e<i;e++)t[Ix()]=Et();return t}else{let t=new Map;for(let e=0;e<i;e++)t.set(Et(),Et());return t}else{i-=144;let t=new Array(i);for(let e=0;e<i;e++)t[e]=Et();return t}else if(i<192){let t=i-160;if(zn>=D)return Ei.slice(D-un,(D+=t)-un);if(zn==0&&Bi<140){let e=t<16?dh(t):_x(t);if(e!=null)return e}return fh(t)}else{let t;switch(i){case 192:return null;case 193:return $r?(t=Et(),t>0?$r[1].slice($r.position1,$r.position1+=t):$r[0].slice($r.position0,$r.position0-=t)):hh;case 194:return!1;case 195:return!0;case 196:return ah(ye[D++]);case 197:return t=ct.getUint16(D),D+=2,ah(t);case 198:return t=ct.getUint32(D),D+=4,ah(t);case 199:return fo(ye[D++]);case 200:return t=ct.getUint16(D),D+=2,fo(t);case 201:return t=ct.getUint32(D),D+=4,fo(t);case 202:if(t=ct.getFloat32(D),Dr.useFloat32>2){let e=Bc[(ye[D]&127)<<1|ye[D+1]>>7];return D+=4,(e*t+(t>0?.5:-.5)>>0)/e}return D+=4,t;case 203:return t=ct.getFloat64(D),D+=8,t;case 204:return ye[D++];case 205:return t=ct.getUint16(D),D+=2,t;case 206:return t=ct.getUint32(D),D+=4,t;case 207:return Dr.int64AsNumber?(t=ct.getUint32(D)*4294967296,t+=ct.getUint32(D+4)):t=ct.getBigUint64(D),D+=8,t;case 208:return ct.getInt8(D++);case 209:return t=ct.getInt16(D),D+=2,t;case 210:return t=ct.getInt32(D),D+=4,t;case 211:return Dr.int64AsNumber?(t=ct.getInt32(D)*4294967296,t+=ct.getUint32(D+4)):t=ct.getBigInt64(D),D+=8,t;case 212:if(t=ye[D++],t==114)return Lx(ye[D++]&63);{let e=wr[t];if(e)return e.read?(D++,e.read(Et())):e.noBuffer?(D++,e()):e(ye.subarray(D,++D));throw new Error("Unknown extension "+t)}case 213:return t=ye[D],t==114?(D++,Lx(ye[D++]&63,ye[D++])):fo(2);case 214:return fo(4);case 215:return fo(8);case 216:return fo(16);case 217:return t=ye[D++],zn>=D?Ei.slice(D-un,(D+=t)-un):YP(t);case 218:return t=ct.getUint16(D),D+=2,zn>=D?Ei.slice(D-un,(D+=t)-un):XP(t);case 219:return t=ct.getUint32(D),D+=4,zn>=D?Ei.slice(D-un,(D+=t)-un):ZP(t);case 220:return t=ct.getUint16(D),D+=2,Sx(t);case 221:return t=ct.getUint32(D),D+=4,Sx(t);case 222:return t=ct.getUint16(D),D+=2,wx(t);case 223:return t=ct.getUint32(D),D+=4,wx(t);default:if(i>=224)return i-256;if(i===void 0){let e=new Error("Unexpected end of MessagePack data");throw e.incomplete=!0,e}throw new Error("Unknown MessagePack token "+i)}}}var KP=/^[a-zA-Z_$][a-zA-Z\d_$]*$/;function ph(i,t){function e(){if(e.count++>2){let n=i.read=new Function("r","return function(){return {"+i.map(o=>KP.test(o)?o+":r()":"["+JSON.stringify(o)+"]:r()").join(",")+"}}")(Et);return i.highByte===0&&(i.read=bx(t,i.read)),n()}let r={};for(let n=0,o=i.length;n<o;n++){let a=i[n];r[a]=Et()}return r}return e.count=0,i.highByte===0?bx(t,e):e}var bx=(i,t)=>function(){let e=ye[D++];if(e===0)return t();let r=i<32?-(i+(e<<5)):i+(e<<5),n=it[r]||Nx()[r];if(!n)throw new Error("Record id is not defined for "+r);return n.read||(n.read=ph(n,i)),n.read()};function Nx(){let i=Mx(()=>(ye=null,Dr.getStructures()));return it=Dr._mergeStructures(i,it)}var fh=Ec,YP=Ec,XP=Ec,ZP=Ec;function Ec(i){let t;if(i<16&&(t=dh(i)))return t;if(i>64&&lh)return lh.decode(ye.subarray(D,D+=i));let e=D+i,r=[];for(t="";D<e;){let n=ye[D++];if((n&128)===0)r.push(n);else if((n&224)===192){let o=ye[D++]&63;r.push((n&31)<<6|o)}else if((n&240)===224){let o=ye[D++]&63,a=ye[D++]&63;r.push((n&31)<<12|o<<6|a)}else if((n&248)===240){let o=ye[D++]&63,a=ye[D++]&63,c=ye[D++]&63,f=(n&7)<<18|o<<12|a<<6|c;f>65535&&(f-=65536,r.push(f>>>10&1023|55296),f=56320|f&1023),r.push(f)}else r.push(n);r.length>=4096&&(t+=er.apply(String,r),r.length=0)}return r.length>0&&(t+=er.apply(String,r)),t}function Sx(i){let t=new Array(i);for(let e=0;e<i;e++)t[e]=Et();return t}function wx(i){if(Dr.mapsAsObjects){let t={};for(let e=0;e<i;e++)t[Ix()]=Et();return t}else{let t=new Map;for(let e=0;e<i;e++)t.set(Et(),Et());return t}}var er=String.fromCharCode;function _x(i){let t=D,e=new Array(i);for(let r=0;r<i;r++){let n=ye[D++];if((n&128)>0){D=t;return}e[r]=n}return er.apply(String,e)}function dh(i){if(i<4)if(i<2){if(i===0)return"";{let t=ye[D++];if((t&128)>1){D-=1;return}return er(t)}}else{let t=ye[D++],e=ye[D++];if((t&128)>0||(e&128)>0){D-=2;return}if(i<3)return er(t,e);let r=ye[D++];if((r&128)>0){D-=3;return}return er(t,e,r)}else{let t=ye[D++],e=ye[D++],r=ye[D++],n=ye[D++];if((t&128)>0||(e&128)>0||(r&128)>0||(n&128)>0){D-=4;return}if(i<6){if(i===4)return er(t,e,r,n);{let o=ye[D++];if((o&128)>0){D-=5;return}return er(t,e,r,n,o)}}else if(i<8){let o=ye[D++],a=ye[D++];if((o&128)>0||(a&128)>0){D-=6;return}if(i<7)return er(t,e,r,n,o,a);let c=ye[D++];if((c&128)>0){D-=7;return}return er(t,e,r,n,o,a,c)}else{let o=ye[D++],a=ye[D++],c=ye[D++],f=ye[D++];if((o&128)>0||(a&128)>0||(c&128)>0||(f&128)>0){D-=8;return}if(i<10){if(i===8)return er(t,e,r,n,o,a,c,f);{let h=ye[D++];if((h&128)>0){D-=9;return}return er(t,e,r,n,o,a,c,f,h)}}else if(i<12){let h=ye[D++],d=ye[D++];if((h&128)>0||(d&128)>0){D-=10;return}if(i<11)return er(t,e,r,n,o,a,c,f,h,d);let m=ye[D++];if((m&128)>0){D-=11;return}return er(t,e,r,n,o,a,c,f,h,d,m)}else{let h=ye[D++],d=ye[D++],m=ye[D++],x=ye[D++];if((h&128)>0||(d&128)>0||(m&128)>0||(x&128)>0){D-=12;return}if(i<14){if(i===12)return er(t,e,r,n,o,a,c,f,h,d,m,x);{let S=ye[D++];if((S&128)>0){D-=13;return}return er(t,e,r,n,o,a,c,f,h,d,m,x,S)}}else{let S=ye[D++],w=ye[D++];if((S&128)>0||(w&128)>0){D-=14;return}if(i<15)return er(t,e,r,n,o,a,c,f,h,d,m,x,S,w);let B=ye[D++];if((B&128)>0){D-=15;return}return er(t,e,r,n,o,a,c,f,h,d,m,x,S,w,B)}}}}}function ah(i){return Dr.copyBuffers?Uint8Array.prototype.slice.call(ye,D,D+=i):ye.subarray(D,D+=i)}function fo(i){let t=ye[D++];if(wr[t])return wr[t](ye.subarray(D,D+=i));throw new Error("Unknown extension type "+t)}var Cx=new Array(4096);function Ix(){let i=ye[D++];if(i>=160&&i<192){if(i=i-160,zn>=D)return Ei.slice(D-un,(D+=i)-un);if(!(zn==0&&Bi<180))return fh(i)}else return D--,Et();let t=(i<<5^(i>1?ct.getUint16(D):i>0?ye[D]:0))&4095,e=Cx[t],r=D,n=D+i-3,o,a=0;if(e&&e.bytes==i){for(;r<n;){if(o=ct.getUint32(r),o!=e[a++]){r=1879048192;break}r+=4}for(n+=3;r<n;)if(o=ye[r++],o!=e[a++]){r=1879048192;break}if(r===n)return D=r,e.string;n-=3,r=D}for(e=[],Cx[t]=e,e.bytes=i;r<n;)o=ct.getUint32(r),e.push(o),r+=4;for(n+=3;r<n;)o=ye[r++],e.push(o);let c=i<16?dh(i):_x(i);return c!=null?e.string=c:e.string=fh(i)}var Lx=(i,t)=>{var e=Et();let r=i;t!==void 0&&(i=i<32?-((t<<5)+i):(t<<5)+i,e.highByte=t);let n=it[i];return n&&n.isShared&&((it.restoreStructures||(it.restoreStructures=[]))[i]=n),it[i]=e,e.read=ph(e,r),e.read()},Ox=typeof self=="object"?self:global;wr[0]=()=>{};wr[0].noBuffer=!0;wr[101]=()=>{let i=Et();return(Ox[i[0]]||Error)(i[1])};wr[105]=i=>{let t=ct.getUint32(D-4);li||(li=new Map);let e=ye[D],r;e>=144&&e<160||e==220||e==221?r=[]:r={};let n={target:r};li.set(t,n);let o=Et();return n.used?Object.assign(r,o):(n.target=o,o)};wr[112]=i=>{let t=ct.getUint32(D-4),e=li.get(t);return e.used=!0,e.target};wr[115]=()=>new Set(Et());var mh=["Int8","Uint8","Uint8Clamped","Int16","Uint16","Int32","Uint32","Float32","Float64","BigInt64","BigUint64"].map(i=>i+"Array");wr[116]=i=>{let t=i[0],e=mh[t];if(!e)throw new Error("Could not find typed array for code "+t);return new Ox[e](Uint8Array.prototype.slice.call(i,1).buffer)};wr[120]=()=>{let i=Et();return new RegExp(i[0],i[1])};wr[98]=i=>{let t=(i[0]<<24)+(i[1]<<16)+(i[2]<<8)+i[3],e=D;D+=t-4,$r=[Et(),Et()],$r.position0=0,$r.position1=0;let r=D;D=e;try{return Et()}finally{D=r}};wr[255]=i=>i.length==4?new Date((i[0]*16777216+(i[1]<<16)+(i[2]<<8)+i[3])*1e3):i.length==8?new Date(((i[0]<<22)+(i[1]<<14)+(i[2]<<6)+(i[3]>>2))/1e6+((i[3]&3)*4294967296+i[4]*16777216+(i[5]<<16)+(i[6]<<8)+i[7])*1e3):i.length==12?new Date(((i[0]<<24)+(i[1]<<16)+(i[2]<<8)+i[3])/1e6+((i[4]&128?-281474976710656:0)+i[6]*1099511627776+i[7]*4294967296+i[8]*16777216+(i[9]<<16)+(i[10]<<8)+i[11])*1e3):new Date("invalid");function Mx(i){let t=Bi,e=D,r=uh,n=un,o=zn,a=Ei,c=ch,f=li,h=$r,d=new Uint8Array(ye.slice(0,Bi)),m=it,x=it.slice(0,it.length),S=Dr,w=hs,B=i();return Bi=t,D=e,uh=r,un=n,zn=o,Ei=a,ch=c,li=f,$r=h,ye=d,hs=w,it=m,it.splice(0,it.length,...x),Dr=S,ct=new DataView(ye.buffer,ye.byteOffset,ye.byteLength),B}function Dc(){ye=null,li=null,it=null}function Px(i){i.unpack?wr[i.type]=i.unpack:wr[i.type]=i}var Bc=new Array(147);for(let i=0;i<256;i++)Bc[i]=+("1e"+Math.floor(45.15-i*.30103));var Gc=new Fn({useRecords:!1}),QP=Gc.unpack,eA=Gc.unpackMultiple,tA=Gc.unpack,Rc={NEVER:0,ALWAYS:1,DECIMAL_ROUND:3,DECIMAL_FIT:4},rA=new Float32Array(1),v4=new Uint8Array(rA.buffer,0,4);var zc;try{zc=new TextEncoder}catch{}var Fc,yh,Vc=typeof Buffer<"u",gh=Vc?Buffer.allocUnsafeSlow:Uint8Array,Bx=Vc?Buffer:Uint8Array,Ax=Vc?4294967296:2144337920,X,zt,z=0,Vn,Un=null,nA=/[\u0080-\uFFFF]/,va=Symbol("record-id"),ho=class extends Fn{constructor(t){super(t),this.offset=0;let e,r,n,o,a,c,f=0,h=Bx.prototype.utf8Write?function(b,V,P){return X.utf8Write(b,V,P)}:zc&&zc.encodeInto?function(b,V){return zc.encodeInto(b,X.subarray(V)).written}:!1,d=this;t||(t={});let m=t&&t.sequential,x=t.structures||t.saveStructures,S=t.maxSharedStructures;if(S==null&&(S=x?32:0),S>8160)throw new Error("Maximum maxSharedStructure is 8160");let w=t.maxOwnStructures;w==null&&(w=x?32:64),m&&!t.saveStructures&&(this.structures=[]);let B=S>32||w+S>64,O=S+64,T=S+w+64;if(T>8256)throw new Error("Maximum maxSharedStructure + maxOwnStructure is 8192");let M=[],F=0,k=0;this.pack=this.encode=function(b,V){if(X||(X=new gh(8192),zt=new DataView(X.buffer,0,8192),z=0),Vn=X.length-10,Vn-z<2048?(X=new gh(X.length),zt=new DataView(X.buffer,0,X.length),Vn=X.length-10,z=0):z=z+7&2147483640,r=z,c=d.structuredClone?new Map:null,d.bundleStrings?(Un=["",""],X[z++]=214,X[z++]=98,Un.position=z-r,z+=4):Un=null,n=d.structures,n){n.uninitialized&&(n=d._mergeStructures(d.getStructures()));let P=n.sharedLength||0;if(P>S)throw new Error("Shared structures is larger than maximum shared structures, try increasing maxSharedStructures to "+n.sharedLength);if(!n.transitions){n.transitions=Object.create(null);for(let R=0;R<P;R++){let E=n[R];if(!E)continue;let G,ae=n.transitions;for(let ne=0,xe=E.length;ne<xe;ne++){let _e=E[ne];G=ae[_e],G||(G=ae[_e]=Object.create(null)),ae=G}ae[va]=R+64}f=P}m||(n.nextId=P+64)}o&&(o=!1),a=n||[];try{if(N(b),Un){zt.setUint32(Un.position+r,z-Un.position-r);let P=Un;Un=null,N(P[0]),N(P[1])}if(d.offset=z,c&&c.idsToInsert){z+=c.idsToInsert.length*6,z>Vn&&A(z),d.offset=z;let P=oA(X.subarray(r,z),c.idsToInsert);return c=null,P}return V&Rx?(X.start=r,X.end=z,X):X.subarray(r,z)}finally{if(n){if(k<10&&k++,F>1e4)n.transitions=null,k=0,F=0,M.length>0&&(M=[]);else if(M.length>0&&!m){for(let P=0,R=M.length;P<R;P++)M[P][va]=0;M=[]}if(o&&d.saveStructures){let P=n.sharedLength||S;n.length>P&&(n=n.slice(0,P));let R=X.subarray(r,z);return d.saveStructures(n,f)===!1?(d._mergeStructures(d.getStructures()),d.pack(b)):(f=P,R)}}V&hA&&(z=r)}};let N=b=>{z>Vn&&(X=A(z));var V=typeof b,P;if(V==="string"){let R=b.length;if(Un&&R>=8&&R<4096){let ae=nA.test(b);Un[ae?0:1]+=b,X[z++]=193,N(ae?-R:R);return}let E;R<32?E=1:R<256?E=2:R<65536?E=3:E=5;let G=R*3;if(z+G>Vn&&(X=A(z+G)),R<64||!h){let ae,ne,xe,_e=z+E;for(ae=0;ae<R;ae++)ne=b.charCodeAt(ae),ne<128?X[_e++]=ne:ne<2048?(X[_e++]=ne>>6|192,X[_e++]=ne&63|128):(ne&64512)===55296&&((xe=b.charCodeAt(ae+1))&64512)===56320?(ne=65536+((ne&1023)<<10)+(xe&1023),ae++,X[_e++]=ne>>18|240,X[_e++]=ne>>12&63|128,X[_e++]=ne>>6&63|128,X[_e++]=ne&63|128):(X[_e++]=ne>>12|224,X[_e++]=ne>>6&63|128,X[_e++]=ne&63|128);P=_e-z-E}else P=h(b,z+E,G);P<32?X[z++]=160|P:P<256?(E<2&&X.copyWithin(z+2,z+1,z+1+P),X[z++]=217,X[z++]=P):P<65536?(E<3&&X.copyWithin(z+3,z+2,z+2+P),X[z++]=218,X[z++]=P>>8,X[z++]=P&255):(E<5&&X.copyWithin(z+5,z+3,z+3+P),X[z++]=219,zt.setUint32(z,P),z+=4),z+=P}else if(V==="number")if(b>>>0===b)b<64?X[z++]=b:b<256?(X[z++]=204,X[z++]=b):b<65536?(X[z++]=205,X[z++]=b>>8,X[z++]=b&255):(X[z++]=206,zt.setUint32(z,b),z+=4);else if(b>>0===b)b>=-32?X[z++]=256+b:b>=-128?(X[z++]=208,X[z++]=b+256):b>=-32768?(X[z++]=209,zt.setInt16(z,b),z+=2):(X[z++]=210,zt.setInt32(z,b),z+=4);else{let R;if((R=this.useFloat32)>0&&b<4294967296&&b>=-2147483648){X[z++]=202,zt.setFloat32(z,b);let E;if(R<4||(E=b*Bc[(X[z]&127)<<1|X[z+1]>>7])>>0===E){z+=4;return}else z--}X[z++]=203,zt.setFloat64(z,b),z+=8}else if(V==="object")if(!b)X[z++]=192;else{if(c){let E=c.get(b);if(E){if(!E.id){let G=c.idsToInsert||(c.idsToInsert=[]);E.id=G.push(E)}X[z++]=214,X[z++]=112,zt.setUint32(z,E.id),z+=4;return}else c.set(b,{offset:z-r})}let R=b.constructor;if(R===Object)te(b,!0);else if(R===Array){P=b.length,P<16?X[z++]=144|P:P<65536?(X[z++]=220,X[z++]=P>>8,X[z++]=P&255):(X[z++]=221,zt.setUint32(z,P),z+=4);for(let E=0;E<P;E++)N(b[E])}else if(R===Map){P=b.size,P<16?X[z++]=128|P:P<65536?(X[z++]=222,X[z++]=P>>8,X[z++]=P&255):(X[z++]=223,zt.setUint32(z,P),z+=4);for(let[E,G]of b)N(E),N(G)}else{for(let E=0,G=Fc.length;E<G;E++){let ae=yh[E];if(b instanceof ae){let ne=Fc[E];if(ne.write){ne.type&&(X[z++]=212,X[z++]=ne.type,X[z++]=0),N(ne.write.call(this,b));return}let xe=X,_e=zt,Le=z;X=null;let Ue;try{Ue=ne.pack.call(this,b,se=>(X=xe,xe=null,z+=se,z>Vn&&A(z),{target:X,targetView:zt,position:z-se}),N)}finally{xe&&(X=xe,zt=_e,z=Le,Vn=X.length-10)}Ue&&(Ue.length+z>Vn&&A(Ue.length+z),z=iA(Ue,X,z,ne.type));return}}te(b,!b.hasOwnProperty)}}else if(V==="boolean")X[z++]=b?195:194;else if(V==="bigint"){if(b<BigInt(1)<<BigInt(63)&&b>=-(BigInt(1)<<BigInt(63)))X[z++]=211,zt.setBigInt64(z,b);else if(b<BigInt(1)<<BigInt(64)&&b>0)X[z++]=207,zt.setBigUint64(z,b);else if(this.largeBigIntToFloat)X[z++]=203,zt.setFloat64(z,Number(b));else throw new RangeError(b+" was too large to fit in MessagePack 64-bit integer format, set largeBigIntToFloat to convert to float-64");z+=8}else if(V==="undefined")this.encodeUndefinedAsNil?X[z++]=192:(X[z++]=212,X[z++]=0,X[z++]=0);else if(V==="function")N(this.writeFunction&&this.writeFunction());else throw new Error("Unknown type: "+V)},te=this.useRecords===!1?this.variableMapSize?b=>{let V=Object.keys(b),P=V.length;P<16?X[z++]=128|P:P<65536?(X[z++]=222,X[z++]=P>>8,X[z++]=P&255):(X[z++]=223,zt.setUint32(z,P),z+=4);let R;for(let E=0;E<P;E++)N(R=V[E]),N(b[R])}:(b,V)=>{X[z++]=222;let P=z-r;z+=2;let R=0;for(let E in b)(V||b.hasOwnProperty(E))&&(N(E),N(b[E]),R++);X[P+++r]=R>>8,X[P+r]=R&255}:b=>{let V=Object.keys(b),P,R=a.transitions||(a.transitions=Object.create(null)),E=0;for(let ae=0,ne=V.length;ae<ne;ae++){let xe=V[ae];P=R[xe],P||(P=R[xe]=Object.create(null),E++),R=P}let G=R[va];if(G)G>=96&&B?(X[z++]=((G-=96)&31)+96,X[z++]=G>>5):X[z++]=G;else{G=a.nextId,G||(G=64),G<O&&this.shouldShareStructure&&!this.shouldShareStructure(V)?(G=a.nextOwnId,G<T||(G=O),a.nextOwnId=G+1):(G>=T&&(G=O),a.nextId=G+1);let ae=V.highByte=G>=96&&B?G-96>>5:-1;R[va]=G,a[G-64]=V,G<O?(V.isShared=!0,a.sharedLength=G-63,o=!0,ae>=0?(X[z++]=(G&31)+96,X[z++]=ae):X[z++]=G):(ae>=0?(X[z++]=213,X[z++]=114,X[z++]=(G&31)+96,X[z++]=ae):(X[z++]=212,X[z++]=114,X[z++]=G),E&&(F+=k*E),M.length>=w&&(M.shift()[va]=0),M.push(R),N(V))}for(let ae=0,ne=V.length;ae<ne;ae++)N(b[V[ae]])},A=b=>{let V;if(b>16777216){if(b-r>Ax)throw new Error("Packed buffer would be larger than maximum buffer size");V=Math.min(Ax,Math.round(Math.max((b-r)*(b>67108864?1.25:2),4194304)/4096)*4096)}else V=(Math.max(b-r<<2,X.length-1)>>12)+1<<12;let P=new gh(V);return zt=new DataView(P.buffer,0,V),X.copy?X.copy(P,0,r,b):P.set(X.slice(r,b)),z-=r,r=0,Vn=P.length-10,X=P}}useBuffer(t){X=t,zt=new DataView(X.buffer,X.byteOffset,X.byteLength),z=0}};yh=[Date,Set,Error,RegExp,ArrayBuffer,Object.getPrototypeOf(Uint8Array.prototype).constructor,xa];Fc=[{pack(i,t,e){let r=i.getTime()/1e3;if((this.useTimestamp32||i.getMilliseconds()===0)&&r>=0&&r<4294967296){let{target:n,targetView:o,position:a}=t(6);n[a++]=214,n[a++]=255,o.setUint32(a,r)}else if(r>0&&r<17179869184){let{target:n,targetView:o,position:a}=t(10);n[a++]=215,n[a++]=255,o.setUint32(a,i.getMilliseconds()*4e6+(r/1e3/4294967296>>0)),o.setUint32(a+4,r)}else if(isNaN(r)){if(this.onInvalidDate)return t(0),e(this.onInvalidDate());let{target:n,targetView:o,position:a}=t(3);n[a++]=212,n[a++]=255,n[a++]=255}else{let{target:n,targetView:o,position:a}=t(15);n[a++]=199,n[a++]=12,n[a++]=255,o.setUint32(a,i.getMilliseconds()*1e6),o.setBigInt64(a+4,BigInt(Math.floor(r)))}}},{pack(i,t,e){let r=Array.from(i),{target:n,position:o}=t(this.structuredClone?3:0);this.structuredClone&&(n[o++]=212,n[o++]=115,n[o++]=0),e(r)}},{pack(i,t,e){let{target:r,position:n}=t(this.structuredClone?3:0);this.structuredClone&&(r[n++]=212,r[n++]=101,r[n++]=0),e([i.name,i.message])}},{pack(i,t,e){let{target:r,position:n}=t(this.structuredClone?3:0);this.structuredClone&&(r[n++]=212,r[n++]=120,r[n++]=0),e([i.source,i.flags])}},{pack(i,t){this.structuredClone?Dx(i,16,t):Ex(Vc?Buffer.from(i):new Uint8Array(i),t)}},{pack(i,t){let e=i.constructor;e!==Bx&&this.structuredClone?Dx(i,mh.indexOf(e.name),t):Ex(i,t)}},{pack(i,t){let{target:e,position:r}=t(1);e[r]=193}}];function Dx(i,t,e,r){let n=i.byteLength;if(n+1<256){var{target:o,position:a}=e(4+n);o[a++]=199,o[a++]=n+1}else if(n+1<65536){var{target:o,position:a}=e(5+n);o[a++]=200,o[a++]=n+1>>8,o[a++]=n+1&255}else{var{target:o,position:a,targetView:c}=e(7+n);o[a++]=201,c.setUint32(a,n+1),a+=4}o[a++]=116,o[a++]=t,o.set(new Uint8Array(i.buffer,i.byteOffset,i.byteLength),a)}function Ex(i,t){let e=i.byteLength;var r,n;if(e<256){var{target:r,position:n}=t(e+2);r[n++]=196,r[n++]=e}else if(e<65536){var{target:r,position:n}=t(e+3);r[n++]=197,r[n++]=e>>8,r[n++]=e&255}else{var{target:r,position:n,targetView:o}=t(e+5);r[n++]=198,o.setUint32(n,e),n+=4}r.set(i,n)}function iA(i,t,e,r){let n=i.length;switch(n){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:n<256?(t[e++]=199,t[e++]=n):n<65536?(t[e++]=200,t[e++]=n>>8,t[e++]=n&255):(t[e++]=201,t[e++]=n>>24,t[e++]=n>>16&255,t[e++]=n>>8&255,t[e++]=n&255)}return t[e++]=r,t.set(i,e),e+=n,e}function oA(i,t){let e,r=t.length*6,n=i.length-r;for(t.sort((o,a)=>o.offset>a.offset?1:-1);e=t.pop();){let o=e.offset,a=e.id;i.copyWithin(o+r,o,n),r-=6;let c=o+r;i[c++]=214,i[c++]=105,i[c++]=a>>24,i[c++]=a>>16&255,i[c++]=a>>8&255,i[c++]=a&255,n=o}return i}function po(i){if(i.Class){if(!i.pack&&!i.write)throw new Error("Extension has no pack or write function");if(i.pack&&!i.type)throw new Error("Extension has no type (numeric code to identify the extension)");yh.unshift(i.Class),Fc.unshift(i)}Px(i)}var Gx=new ho({useRecords:!1}),sA=Gx.pack,aA=Gx.pack;var{NEVER:lA,ALWAYS:cA,DECIMAL_ROUND:uA,DECIMAL_FIT:fA}=Rc,Rx=512,hA=1024;var zx=new ho({structuredClone:!0});po({Class:ln.prototype.constructor,type:1,write(i){return j({},i)},read(i){return Object.setPrototypeOf(i,ln.prototype),i}});po({Class:At.prototype.constructor,type:2,write(i){return[...i]},read(i){return Object.setPrototypeOf(i,At.prototype),i}});po({Class:cn.prototype.constructor,type:3,write(i){return[...i]},read(i){return Object.setPrototypeOf(i,cn.prototype),i}});po({Class:ga.prototype.constructor,type:4,write(i){return i.id},read(i){return new ga(i)}});po({Class:ya.prototype.constructor,type:5,write(i){return i.data},read(i){return new ya(i)}});function pA(i){var t=0;if(i.length===0)return t;for(let e=0;e<i.length;e++){let r=i[e];t=(t<<5)-t+r,t=t&t}return t}var Uc;(r=>{function i(n){return zx.pack(n)}r.serialize=i;function t(n){return zx.unpack(n)}r.deserialize=t;function e(n){return pA(i(n)).toString()}r.checksum=e})(Uc||(Uc={}));var jc;(e=>{e.all=["PointLight","SpotLight","DirectionalLight","HemisphereLight"];function t(r){return e.all.includes(r)}e.is=t})(jc||(jc={}));var kc;(e=>{function i(r){return t(r)}e.defaultData=i;function t(r){if(r==="PointLight")return{type:r,color:Gn.white,intensity:1,distance:2e3,decay:1,shadows:!0,shadowResolution:1024,shadowRadius:1,depth:2500,helper:!0};if(r==="SpotLight")return{type:r,color:Gn.white,intensity:1,distance:2e3,decay:1,shadows:!0,penumbra:0,angle:30/180*Math.PI,depth:2500,helper:!0};if(r==="DirectionalLight")return{type:r,color:Gn.white,intensity:1,shadows:!0,size:2500,depth:2500,helper:!0};throw new Error("not implemented")}})(kc||(kc={}));var xh;(e=>{e.defaultData={castShadow:!0,receiveShadow:!0};function t(r,n){return r.castShadow===n.castShadow&&r.receiveShadow===n.receiveShadow}e.equals=t})(xh||(xh={}));var vh;(e=>{e.defaultData={flatShading:!1,wireframe:!1,side:0};function t(r,n){return r.flatShading===n.flatShading&&r.side===n.side&&r.wireframe===n.wireframe}e.equals=t})(vh||(vh={}));var Hc;(t=>t.defaultData=ue(j(j({},vh.defaultData),xh.defaultData),{cloner:null}))(Hc||(Hc={}));var bh=(n=>(n[n.Left=1]="Left",n[n.Right=2]="Right",n[n.Center=3]="Center",n[n.Justify=4]="Justify",n))(bh||{}),Sh=(r=>(r[r.Top=1]="Top",r[r.Center=2]="Center",r[r.Bottom=3]="Bottom",r))(Sh||{}),wh=(r=>(r[r.None=1]="None",r[r.Upper=2]="Upper",r[r.Lower=3]="Lower",r))(wh||{}),Wc;(t=>t.defaultData={width:100,height:100,horizontalAlign:1,verticalAlign:1,fontSize:16,lineHeight:1.5,letterSpacing:1,text:"",textTransform:1,color:Gn.fromHexAndA(6974058,1),alpha:1,font:"roboto_regular"})(Wc||(Wc={}));var ps;(r=>{function i(n,o){return n==="light"&&o?t(o):e(n)}r.defaultData=i;function t(n){switch(n){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,a:1},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(n){switch(n){case"texture":return{alpha:1,visible:!0,size:[128,128],mode:0,axis:"x",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:qr.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],[0,0,0,1],[0,0,0,1],[0,0,0,1],[0,0,0,1],[0,0,0,1],[0,0,0,1],[0,0,0,1],[0,0,0,1]],steps:[0,1,1,1,1,1,1,1,1,1],num:2,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:ue(j({},qr.fromHex(6710886)),{a:1}),colorB:ue(j({},qr.fromHex(6710886)),{a:1}),colorC:ue(j({},qr.fromHex(16777215)),{a:1}),colorD:ue(j({},qr.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:Gn.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"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}}}})(ps||(ps={}));var ds;(c=>{function i(f){return!f.layers.some(d=>{if(d.data.type==="texture"&&d.data.projection!==0||d.data.type==="depth"&&!d.data.isWorldSpace||d.data.type==="noise"||d.data.type==="displace")return!0})&&!e(f)}c.isMergable=i;function t(f){let h="";return f.layers.forEach(d=>{Object.entries(d.data).forEach(([m,x])=>{h+=`${m}${x}`,Array.isArray(x)?x.forEach(S=>h+=`${S}`):typeof x=="object"?Object.values(x).forEach(S=>{typeof S=="number"?h+=`${S.toFixed(4)}`:h+=`${S}`}):h+=`${x}`})}),h}c.getHash=t;function e(f){let h=0;for(let d of f.layers)"alpha"in d.data&&d.data.type!=="light"&&d.data.type!=="fresnel"&&(h+=(1-h)*d.data.alpha);return h<1}c.isTransparent=e;function r(){return{layers:new At}}c.defaultEmptyData=r;function n(f="layer1",h="layer2"){return o("phong",f,h)}c.defaultData=n;function o(f,h="layer1",d="layer2"){let m=new At;return m.push({fi:0,data:ps.defaultData("light",f),id:h}),m.push({fi:1,data:ps.defaultData("color"),id:d}),{layers:m}}c.defaultTwoLayerData=o;function a(f,h="basic",d="layer1",m="layer2"){let x=ps.defaultData("texture");Object.assign(x.texture,{image:f});let S=new At;return S.push({fi:0,data:x,id:d}),S.push({fi:1,data:ps.defaultData("light",h),id:m}),{layers:S}}c.defaultTwoLayerTextureData=a})(ds||(ds={}));var ms;(r=>{function i(){return{points:new At,roundness:0,shapeHoles:[],isClosed:!1}}r.defaultData=i;function t(n,o){let{points:a}=o;if(a){for(let c of a)if(c.data.position[0]===n[0]&&c.data.position[1]===n[1])return!0}return!1}r.isOverlappingExistingPoint=t;function e(n,o){let a=n.controlNext,c=o.controlPrevious;return n.position[0]===a.position[0]&&n.position[1]===a.position[1]&&o.position[0]===c.position[0]&&o.position[1]===c.position[1]}r.isStraightLine=e})(ms||(ms={}));var qc;(t=>{function i(e){return e==="PolygonGeometry"||e==="RectangleGeometry"||e==="StarGeometry"||e==="TriangleGeometry"||e==="EllipseGeometry"}t.is2DParametricMesh=i})(qc||(qc={}));var $c;(t=>{function i(e){if(e==="RectangleGeometry")return{width:320,height:320,type:e,cornerRadius:[0,0,0,0],cornerType:0,depth:0,extrudeBevelSize:0,extrudeBevelSegments:1,surfaceMaxCount:1};if(e==="VectorGeometry")return{width:100,height:100,type:e,subdivisions:12,shape:ms.defaultData(),depth:0,extrudeBevelSize:0,extrudeBevelSegments:1,surfaceMaxCount:1};throw new Error("not implemented")}t.defaultData=i})($c||($c={}));var ba;(n=>{n.identity=ue(j({},Cc.identity),{hiddenMatrix:Di.identity});function t(o){return{position:o.position,rotation:o.rotation,scale:o.scale,hiddenMatrix:o.hiddenMatrix}}n.fromObject=t;function e(o,a){return{position:(a==null?void 0:a.position)||o.position,rotation:(a==null?void 0:a.rotation)||o.rotation,scale:(a==null?void 0:a.scale)||o.scale,hiddenMatrix:(a==null?void 0:a.hiddenMatrix)||o.hiddenMatrix}}n.merge=e;function r(o,a){return{position:ls.isEqual(o.position,a.position)?null:a.position,rotation:ls.isEqual(o.rotation,a.rotation)?null:a.rotation,scale:ls.isEqual(o.scale,a.scale)?null:a.scale,hiddenMatrix:Di.isEqual(o.hiddenMatrix,a.hiddenMatrix)?null:a.hiddenMatrix}}n.diff=r})(ba||(ba={}));var Gi;(t=>t.defaultData=j({states:new At,events:new At,visible:!0,raycastLock:!1},ba.identity))(Gi||(Gi={}));var Fx;(t=>t.defaultData=j({type:"Empty"},Gi.defaultData))(Fx||(Fx={}));var Ch;(t=>t.defaultData=j(j({type:"Mesh"},Gi.defaultData),Hc.defaultData))(Ch||(Ch={}));var Vx;(t=>t.defaultData=j(j({type:"TextFrame"},Gi.defaultData),Wc.defaultData))(Vx||(Vx={}));var Jc;(t=>t.defaultData=j(j(j({},Gi.defaultData),ba.identity),uo.defaultData))(Jc||(Jc={}));var Ux;(t=>{function i(e){return j(j({},Gi.defaultData),kc.defaultData(e))}t.defaultData=i})(Ux||(Ux={}));var jx;(e=>(e.defaultCamera=j({position:[0,0,1e3],scale:[1,1,1],rotation:[0,0,0],hiddenMatrix:Di.identity,name:"Play Camera",visible:!0,raycastLock:!1,states:new At,events:new At},uo.defaultData),e.defaultMeshObject=ue(j(j({name:"Rectangle"},Gi.defaultData),Ch.defaultData),{geometry:$c.defaultData("RectangleGeometry"),material:ds.defaultTwoLayerData("basic","layer1","layer2")})))(jx||(jx={}));var kx;(e=>{function i(r,n){if(n===void 0)return r;let o=j({},r);return"material"in o&&"material"in n&&n.material&&(o.material=oh(o.material,a=>{if(typeof a!="string")for(let[c,f]of Object.entries(n.material.layers)){let h=a.layers.data(c);h&&co(h,f)}}).data),o.materials&&n.materials&&(o.materials=oh(o.materials,a=>{var c,f;for(let h=0;h<o.materials.length;h++){let d=n.materials[h];if(typeof d!="string")for(let[m,x]of Object.entries(d.layers)){let S=(f=(c=a[h])==null?void 0:c.layers)==null?void 0:f.data(m);S&&co(S,x)}}}).data),o}e.patchMaterialState=i;function t(r,n){var a,c;if(n===void 0)return r;let o=j({},r);if(Object.assign(o,ba.merge(o,n)),as.is(r.type)){o.orthographic=j({},o.orthographic),o.perspective=j({},o.perspective);let f=n;((a=f.orthographic)==null?void 0:a.zoom)!==void 0&&(o.orthographic.zoom=f.orthographic.zoom),((c=f.perspective)==null?void 0:c.zoom)!==void 0&&(o.perspective.zoom=f.perspective.zoom)}else if(r.type==="Mesh")o.geometry=j({},o.geometry),Object.assign(o.geometry,n.geometry),o=i(o,n);else if(jc.is(r.type)){let f=n;o.intensity!==void 0&&(o.intensity=f.intensity),f.color!==void 0&&(typeof f.color=="string"?o.color=f.color:o.color=qr.clone(f.color))}return o}e.patch=t})(kx||(kx={}));import{BufferGeometry as Ej,ConeBufferGeometry as gA,Float32BufferAttribute as Bj,Vector2 as Gj,Vector3 as Rj}from"three";import{BufferGeometry as dA,CylinderBufferGeometry as mA,Float32BufferAttribute as Lh,Vector2 as Cn,Vector3 as Kc}from"three";var Wx=class{static create(i){return this.build(this.normalizeInputs(i))}static normalizeInputs(i,t){var a,c,f,h,d;let e=Object.assign({},(a=t==null?void 0:t.parameters)!=null?a:{width:100,radialSegments:64,heightSegments:1,openEnded:!1,thetaStart:0,thetaLength:360,cornerRadius:0,cornerSegments:8,hollow:0},i.parameters),r=e.width/2,n=(c=e.radiusTop)!=null?c:r,o=(f=e.radiusBottom)!=null?f:r;return n===o?(n=r,o=r):n>o?(n=r,o=o*r/n):(n=n*r/o,o=r),{parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs((h=e.height)!=null?h:e.width),depth:Math.abs((d=e.depth)!=null?d:e.width),radiusTop:n,radiusBottom:o})}}static build(i){let{width:t,depth:e,height:r,radialSegments:n,heightSegments:o,openEnded:a,thetaStart:c,thetaLength:f,radiusTop:h,radiusBottom:d,cornerRadius:m,cornerSegments:x,hollow:S}=i.parameters,w;return m||S?w=new Sa(h,d,r,n,o,a,c,f*Math.PI/180,m,m,x,S):w=new mA(h,d,r,n,o,a,c,f*Math.PI/180),w.scale(1,1,e/t),Object.assign(w,{userData:ue(j({},i),{type:"CylinderGeometry"})})}};function Ri(i,t,e){e.x=i.x*t.x,e.y=i.y,e.z=i.x*t.y}function Hx(i){return new Cn(i.y,-i.x)}var Sa=class extends dA{constructor(t,e,r,n,o,a,c,f,h,d,m,x,S=!1){super(),this.type="RoundedCylinderBufferGeometry",t=t!==void 0?t:1,e=e!==void 0?e:1,r=r||1,n=Math.floor(n)||8,o=Math.floor(o)||1,a=a!==void 0?a:!1,c=c!==void 0?c:0,f=f!==void 0?f:Math.PI*2,a&&(h=0,d=0);let w=[],B=[],O=[],T=[],M=0,F=r/2,k=new Kc,N=new Kc;S&&t==0&&(t=h),S&&e==0&&(e=d);let te=new Cn(t,F),A=new Cn(e,-F),b=null,V=null,P=null,R=null,E=te.clone().sub(A),G=0,ae=0,ne=0;x>0&&(G=Math.min(t,e)*(1-x),ae=t-G,ne=e-G);let xe=te.clone();xe.x-=G;let _e=Math.PI-E.angle(),Le=E.angle(),Ue=Math.tan(Le/2),se=Math.tan(_e/2),$=Ue+se,W=x?$:se,J=x?$:Ue;if(h=Math.min(h,(t-ae)/W,E.length()/$),d=Math.min(d,(e-ne)/J,E.length()/$),h>0){let re=h/Ue;b=te.clone().sub(new Cn(re,h)),x&&(P=b.clone(),P.x-=G-$*h),te.sub(E.clone().setLength(re))}if(d>0){let re=d/se;V=A.clone().sub(new Cn(re,-d)),A.add(E.clone().setLength(re)),x&&(R=V.clone(),R.x-=G-$*d,xe.sub(E.clone().setLength(re)))}E=te.clone().sub(A);let H=E.length()<.5,K=[];for(let re=0;re<=n;re++){let q=[],ee=re/n,Te=ee*f+c,ce=new Cn(Math.sin(Te),Math.cos(Te));R&&V?(fe(q,ee,ce,_e,d,R,-1,!0),fe(q,ee,ce,Le,d,V,-1,!1)):V?(me(q,ce,V.x,0,-1),fe(q,ee,ce,Le,d,V,-1,!1)):a||me(q,ce,e,ne,-1);let le=Hx(E).normalize();if(Ri(le,ce,k),!H)for(let he=0;he<=o;he++){let pe=he/o,de=E.clone().multiplyScalar(pe).add(A);Ri(de,ce,N),B.push(N.x,N.y,N.z),O.push(k.x,k.y,k.z),T.push(ee,.5+N.y/r),q.push(M++)}if(P&&b?(fe(q,ee,ce,_e,h,b,1,!1),fe(q,ee,ce,Le,h,P,1,!0)):b?(fe(q,ee,ce,_e,h,b,1,!1),me(q,ce,b.x,0,1)):a||me(q,ce,t,ae,1),x&&!H){let he=Hx(E).multiplyScalar(-1).normalize();Ri(he,ce,k);for(let pe=0;pe<=o;pe++){let de=pe/o,be=E.clone().multiplyScalar(-de).add(xe);Ri(be,ce,N),B.push(N.x,N.y,N.z),O.push(k.x,k.y,k.z),T.push(ee,.5+N.y/r),q.push(M++)}}x&&!a&&q.push(q[0]),K.push(q)}for(let re=0;re<K.length-1;re++)for(let q=0;q<K[0].length-1;q++){if(a&&x&&q==o)continue;let ee=K[re][q],Te=K[re+1][q],ce=K[re+1][q+1],le=K[re][q+1],he=B[ce*3+0],pe=B[ce*3+2];w.push(ee,Te,le),(he!=0||pe!=0)&&w.push(Te,ce,le)}f<Math.PI*2&&(ie(-1,K[0],c),ie(1,K[K.length-1],c+f)),this.setIndex(w),this.setAttribute("position",new Lh(B,3)),this.setAttribute("normal",new Lh(O,3)),this.setAttribute("uv",new Lh(T,2));function fe(re,q,ee,Te,ce,le,he,pe){for(let de=0;de<m+1;de++){let be=de/m,Se=he<0?be:1-be;pe&&(Se-=1),Se*=Te;let Ie=new Cn(Math.sin(Se),Math.cos(Se)*he),ft=Ie.clone().multiplyScalar(ce).add(le);Ri(ft,ee,N),B.push(N.x,N.y,N.z),Ri(Ie,ee,k),O.push(k.x,k.y,k.z),T.push(q,.5+N.y/r),re.push(M++)}}function me(re,q,ee,Te,ce){let le=new Kc,he=new Cn,pe=[ee,Te];ce<0&&pe.reverse();for(let de of pe)he.set(de,F*ce),Ri(he,q,le),B.push(le.x,le.y,le.z),O.push(0,ce,0),T.push(.5,.5),re.push(M++)}function ie(re,q,ee){let Te=new Cn(Math.sin(ee),Math.cos(ee)),ce=new Cn(-Math.cos(ee),Math.sin(ee)),le=new Kc,he=re<0?(be,Se,Ie)=>w.push(be,Se,Ie):(be,Se,Ie)=>w.push(be,Ie,Se),pe=new Cn((t+e+ae+ne)/4,0);Ri(pe,Te,le),B.push(le.x,le.y,le.z),O.push(ce.x,0,ce.y),T.push(.5,.5);let de=M++;for(let be of q){let Se=B.slice(be*3,be*3+3);B.push(...Se),O.push(ce.x,0,ce.y);let Ie=T.slice(be*2,be*2+2);T.push(...Ie),M++}for(let be=de+1;be<M-1;be++)he(de,be,be+1);he(de,M-1,de+1)}}};var qx=class{static create(i){return this.build(this.normalizeInputs(i))}static normalizeInputs(i,t){var r,n,o;let e=Object.assign({},(r=t==null?void 0:t.parameters)!=null?r:{width:100,radialSegments:32,heightSegments:8,openEnded:!1,thetaStart:0,thetaLength:360,cornerRadiusTop:0,cornerRadiusBottom:0,cornerSegments:8},i.parameters);return{parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs((n=e.height)!=null?n:e.width),depth:Math.abs((o=e.depth)!=null?o:e.width)})}}static build(i){let{width:t,depth:e,height:r,radialSegments:n,heightSegments:o,openEnded:a,thetaStart:c,thetaLength:f,cornerRadiusTop:h,cornerRadiusBottom:d,cornerSegments:m}=i.parameters,x;return h>0||d>0||f<360?x=new Sa(0,t/2,r,n,o,a,c,f*Math.PI/180,h,d,m,0,!0):x=new gA(t/2,r,n,o,a),x.scale(1,1,e/t),Object.assign(x,{userData:ue(j({},i),{type:"ConeGeometry"})})}};import{BoxBufferGeometry as yA,BufferGeometry as xA,Float32BufferAttribute as Th,Vector3 as wa}from"three";var $x=class{static create(i){return this.build(this.normalizeInputs(i))}static normalizeInputs(i,t){var r,n,o;let e=Object.assign({},(r=t==null?void 0:t.parameters)!=null?r:{width:100,widthSegments:1,heightSegments:1,depthSegments:1,cornerRadius:0,cornerSegments:8},i.parameters);return{parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs((n=e.height)!=null?n:e.width),depth:Math.abs((o=e.depth)!=null?o:e.width)})}}static build(i){let{width:t,height:e,depth:r,widthSegments:n,heightSegments:o,depthSegments:a,cornerRadius:c,cornerSegments:f}=i.parameters,h;return c==0?h=new yA(t,e,r,n,o,a):h=new _h(t,e,r,n,o,a,c,f),Object.assign(h,{userData:ue(j({},i),{type:"CubeGeometry"})})}},Nh=Math.PI/2,_h=class extends xA{constructor(t=1,e=1,r=1,n=1,o=1,a=1,c=0,f=4){super(),this.type="BoxBufferGeometry";let h=this;n=Math.floor(n),o=Math.floor(o),a=Math.floor(a),f=Math.floor(f),c=Math.min(c,t/2,e/2,r/2);let d=[],m=[],x=[],S=[],w=0,B=0;O("z","y","x",-1,-1,r,e,t,a,o,0),O("z","y","x",1,-1,r,e,-t,a,o,1),O("x","z","y",1,1,t,r,e,n,a,2),O("x","z","y",1,-1,t,r,-e,n,a,3),O("x","y","z",1,-1,t,e,r,n,o,4),O("x","y","z",-1,-1,t,e,-r,n,o,5),c>0&&(T("z","y","x",-1,-1,1,r,e,t,a,0),T("z","y","x",1,-1,-1,r,e,t,a,1),T("z","y","x",-1,1,-1,r,e,t,a,1),T("z","y","x",1,1,1,r,e,t,a,0),T("x","y","z",-1,-1,-1,t,e,r,n,0),T("x","y","z",1,-1,1,t,e,r,n,1),T("x","y","z",-1,1,1,t,e,r,n,0),T("x","y","z",1,1,-1,t,e,r,n,1),T("y","x","z",-1,-1,1,e,t,r,o,0),T("y","x","z",1,-1,-1,e,t,r,o,1),T("y","x","z",1,1,1,e,t,r,o,1),T("y","x","z",-1,1,-1,e,t,r,o,0),M(1,1,1),M(-1,1,1),M(1,-1,1),M(-1,-1,1),M(1,1,-1),M(-1,1,-1),M(1,-1,-1),M(-1,-1,-1)),this.setIndex(d),this.setAttribute("position",new Th(m,3)),this.setAttribute("normal",new Th(x,3)),this.setAttribute("uv",new Th(S,2));function O(F,k,N,te,A,b,V,P,R,E,G){let ae=(b-2*c)/R,ne=(V-2*c)/E,xe=b/2-c,_e=V/2-c,Le=P/2,Ue=R+1,se=E+1,$=0,W=0,J=new wa;for(let H=0;H<se;H++){let K=H*ne-_e;for(let fe=0;fe<Ue;fe++){let me=fe*ae-xe;J[F]=me*te,J[k]=K*A,J[N]=Le,m.push(J.x,J.y,J.z),J[F]=0,J[k]=0,J[N]=P>0?1:-1,x.push(J.x,J.y,J.z),S.push(fe/R),S.push(1-H/E),$+=1}}for(let H=0;H<E;H++)for(let K=0;K<R;K++){let fe=w+K+Ue*H,me=w+K+Ue*(H+1),ie=w+(K+1)+Ue*(H+1),re=w+(K+1)+Ue*H;d.push(fe,me,re),d.push(me,ie,re),W+=6}h.addGroup(B,W,G),B+=W,w+=$}function T(F,k,N,te,A,b,V,P,R,E,G){let ae=(V-2*c)/E,ne=V/2-c,xe=P/2-c,_e=R/2,Le=E+1,Ue=0,se=0,$=new wa,W=new wa;for(let J=0;J<f+1;J++){let H=J/f*Nh,K=Math.sin(H)*c,fe=(1-Math.cos(H))*c,me=Math.sin(H),ie=Math.cos(H);$[k]=(xe+K)*A,$[N]=(_e-fe)*b,W[F]=0,W[k]=me*Math.sign($[k]),W[N]=ie*Math.sign($[N]);for(let re=0;re<Le;re++){let q=re*ae-ne;$[F]=q*te,m.push($.x,$.y,$.z),x.push(W.x,W.y,W.z),S.push(re/E),S.push(0),Ue+=1}}for(let J=0;J<f;J++)for(let H=0;H<E;H++){let K=w+H+Le*J,fe=w+H+Le*(J+1),me=w+(H+1)+Le*(J+1),ie=w+(H+1)+Le*J;d.push(K,fe,ie),d.push(fe,me,ie),se+=6}h.addGroup(B,se,G),B+=se,w+=Ue}function M(F,k,N){let te=new wa,A=new wa(t/2,e/2,r/2);A.subScalar(c);let b=[],V=F*k*N>0?(R,E,G)=>d.push(R,E,G):(R,E,G)=>d.push(R,G,E);for(let R=0;R<=f;R++){let E=[],G=Nh*(1-R/f),ae=Math.cos(G),ne=Math.sin(G),xe=0;for(let _e=0;_e<=R;_e++){let Le=Math.cos(xe),Ue=Math.sin(xe);te.x=ae*Le,te.y=ne,te.z=ae*Ue;let se=A.clone().addScaledVector(te,c);m.push(F*se.x,k*se.y,N*se.z),x.push(F*te.x,k*te.y,N*te.z),S.push(0,0),E.push(w++),xe+=Nh/R}b.push(E)}let P=b.length-1;for(let R=0;R<P;R++){let E=b[R],G=b[R+1],ae=E.length-1;V(E[0],G[1],G[0]);for(let ne=1;ne<=ae;ne++)V(E[ne-1],E[ne],G[ne]),V(E[ne],G[ne+1],G[ne])}}}};import{BufferGeometry as vA,Float32BufferAttribute as Ih,Triangle as bA,Vector3 as ci,Vector2 as Oh}from"three";var zi=class extends vA{constructor(t=[],e=[],r="",n=1,o=.2,a=4){super(),this.type="PolyhedronGeometryRound";let c=[],f=[],h=[];d(),m(),this.setAttribute("position",new Ih(c,3)),this.setAttribute("normal",new Ih(h,3)),this.setAttribute("uv",new Ih(f,2));return;function d(){var Ue;o=Math.min(1-1e-5,o),o==0&&(a=0);let S={IcosahedronGeometry:5,DodecahedronGeometry:3,HexahedronGeometry:3,OctahedronGeometry:4,TetrahedronGeometry:3}[r],w=new ci,B=w.clone(),O=new bA,T=o*n,M=n-T,F=a+1,k=new ci,N=(se,$)=>k.subVectors(se,$).normalize(),te=(se,$)=>Array(se).fill(void 0).map($),A=te(t.length/3,(se,$)=>new ci().fromArray(t,$*3).setLength(n)),b=[],V=1e6;for(let se=0;se<A.length;se++){let $=A[se],W=[],J,H,K,fe=1e10,me=-1;for(;(me=e.indexOf(se,me+1))!=-1;){let ee=me-me%3;J=e[ee+(me+1)%3],H=e[ee+(me+2)%3],K=$.distanceToSquared(A[J]),fe=Math.min(fe,K),W.push([J,H,K])}fe+=1e-6;let ie=[],re=0,q=W.length;for(let ee=0;ee<q;ee++){[J,H,K]=W[re];let Te=((Ue=b[J])==null?void 0:Ue.includes(se))==!0;K<=fe&&ie.push(J+ +Te*V),re=W.findIndex(ce=>ce[0]==H)}b.push(ie)}let P=[];{let se=0,$=0,W,J,H=S==3;for(let K=0;K<=a;K++){W=K*(K+1)/2,J=(K+1)*(K+2)/2;for(let fe=0;fe<a-K;fe++)[se,$]=[W+fe+K+2,J+fe+K+3],P.push(W,J,...H?[$,W]:[se,J],$,se),[W,J]=[se,$];P.push(W,J,W+a+2)}}let R=w.clone(),E=w.clone(),G=w.clone(),ae=w.clone(),ne=w.clone(),xe=[],_e=te(A.length,()=>te(S,()=>w.clone()));for(let se=0;se<A.length;se++){w.copy(A[se]).normalize(),R.copy(w).multiplyScalar(M);let $=b[se];for(let ie=0;ie<$.length;ie++){let re=$[ie],q=$[(ie+1)%S];O.setFromPointsAndIndices(A,se,re%V,q%V),O.b.sub(O.a).setLength(1e10).add(O.a),O.c.sub(O.a).setLength(1e10).add(O.a),O.closestPointToPoint(R,_e[se][ie])}let W=[],J=[],H=[],K=new ci;a==0&&[..._e[se]].reduce((ie,re)=>ie.add(re),K).multiplyScalar(1/S);for(let ie=0;ie<S;ie++){let re=[],q=(ie-1+S)%S,ee=_e[se][q],Te=_e[se][ie];w.copy(ee).sub(R),B.copy(Te).sub(R);let ce=R.angleTo(w),le=w.angleTo(B),he=Math.cos(ce)*T;a==0?E.copy(K):E.copy(R).setLength(M+he),J.push(he);let pe=[E,ee,Te];for(let de=0;de<2;de++){let be=pe[de],Se=pe[de+1];ae.subVectors(be,R),ne.subVectors(Se,R),G.crossVectors(ae,ne).normalize();for(let Ie=0;Ie<F;Ie++){let ft=[ce,le][de]*Ie/F;w.copy(ae).applyAxisAngle(G,ft).add(R),W.push(w.clone()),de&&(N(w,R),re.push([Ie==0?be:w.clone(),k.clone()]))}de&&(N(Se,R),re.push([Se,k.clone()]))}H.push(re)}xe.push(H);let fe=2*F,me=2;for(let ie=0;ie<S;ie++){let re=fe*ie,q=fe*((ie+1)%S),ee=[W[re]];for(let ce=1;ce<F;ce++){ae=W[re+ce],ne=W[q+ce],ee.push(ae);for(let le=1,he=ce-me+1;le<=he;le++)w.lerpVectors(ae,ne,le/(he+1)),w.sub(R).setLength(J[ie]).add(R),ee.push(w.clone());ee.push(ne)}for(let ce=0;ce<F;ce++)ee.push(W[ce+F+re]);ee.push(W[q+F]);let Te=P.map(ce=>ee[ce]);c.push(...Te.map(ce=>[ce.x,ce.y,ce.z]).flat()),h.push(...Te.map(ce=>(N(ce,R),[k.x,k.y,k.z])).flat())}}let Le=[];for(let se=0;se<b.length;se++)for(let $=0;$<S;$++){let W=b[se][$];if(W<V){let J=b[W].findIndex(fe=>fe%V==se),H=xe[se][$],K=xe[W][J];for(let fe=0;fe<F;fe++){let me=H[fe],ie=K[F-fe],re=H[fe+1],q=K[F-(fe+1)];[me,ie,re,re,ie,q].forEach(ee=>{c.push(ee[0].x,ee[0].y,ee[0].z),h.push(ee[1].x,ee[1].y,ee[1].z)})}Le.push(H[0][0],K[F][0],H[F][0],K[0][0])}}for(;Le.length;){let se,$,W,J;[se,$]=Le.splice(0,2);let H=[se];for(;se!=$;)H.push($),W=Le.indexOf($),J=W%2,$=Le.splice(W-J,2)[1-J];k.subVectors(H[0],H[1]).cross(w.subVectors(H[0],H[2])).normalize();let K=k.dot(H[0])<0;K&&k.negate();for(let fe=1;fe<=H.length-2;fe++)[H[fe+ +K],H[fe+1-+K],H[0]].forEach(me=>{c.push(me.x,me.y,me.z),h.push(k.x,k.y,k.z)})}}function m(){let x=new ci;for(let A=0;A<c.length;A+=3){x.x=c[A+0],x.y=c[A+1],x.z=c[A+2];let b=N(x)/2/Math.PI+.5,V=te(x)/Math.PI+.5;f.push(b,1-V)}let S=new ci,w=new ci,B=new ci,O=new ci,T=new Oh,M=new Oh,F=new Oh,k=(A,b,V,P)=>{P<0&&A.x===1&&(f[b]=A.x-1),V.x===0&&V.z===0&&(f[b]=P/2/Math.PI+.5)};for(let A=0,b=0;A<c.length;A+=9,b+=6){S.set(c[A+0],c[A+1],c[A+2]),w.set(c[A+3],c[A+4],c[A+5]),B.set(c[A+6],c[A+7],c[A+8]),T.set(f[b+0],f[b+1]),M.set(f[b+2],f[b+3]),F.set(f[b+4],f[b+5]),O.copy(S).add(w).add(B).divideScalar(3);let V=N(O);k(T,b+0,S,V),k(M,b+2,w,V),k(F,b+4,B,V)}for(let A=0;A<f.length;A+=6){let b=f[A+0],V=f[A+2],P=f[A+4],R=Math.max(b,V,P),E=Math.min(b,V,P);R>.9&&E<.1&&(b<.2&&(f[A+0]+=1),V<.2&&(f[A+2]+=1),P<.2&&(f[A+4]+=1))}function N(A){return Math.atan2(A.z,-A.x)}function te(A){return Math.atan2(-A.y,Math.sqrt(A.x*A.x+A.z*A.z))}}}static fromJSON(t){return new zi(t.vertices,t.indices,t.radius,t.corner,t.cornerSides)}};import{DodecahedronBufferGeometry as SA}from"three";var Jx=class{static create(i){return this.build(this.normalizeInputs(i))}static normalizeInputs(i,t){var r,n,o;let e=Object.assign({},(r=t==null?void 0:t.parameters)!=null?r:{width:100,detail:0,corner:0,cornerSides:4},i.parameters);return{parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs((n=e.height)!=null?n:e.width),depth:Math.abs((o=e.depth)!=null?o:e.width)})}}static build(i){let{width:t,height:e,depth:r,detail:n,corner:o,cornerSides:a}=i.parameters,c=n===0&&o!==0?new Ca(t*.5,o,a):new SA(t*.5,n);return c.scale(1,e/t,r/t),Object.assign(c,{userData:ue(j({},i),{type:"DodecahedronGeometry"})})}},Ca=class extends zi{constructor(t=1,e=.2,r=4){let n=(1+Math.sqrt(5))/2,o=1/n,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,-o,-n,0,-o,n,0,o,-n,0,o,n,-o,-n,0,-o,n,0,o,-n,0,o,n,0,-n,0,-o,n,0,-o,-n,0,o,n,0,o],c=[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],f="DodecahedronGeometry";super(a,c,f,t,e,r),this.type=f}static fromJSON(t){return new Ca(t.radius,t.corner,t.cornerSides)}};import{EventDispatcher as AA,Plane as DA,Shape as s0,Vector2 as ui,Vector3 as EA,MathUtils as Gh,LineCurve as Rh,QuadraticBezierCurve as a0,CubicBezierCurve as Zc}from"three";import{CubicBezierCurve as Yc,EllipseCurve as wA,LineCurve as Xc,LineCurve3 as CA,MathUtils as LA,QuadraticBezierCurve as Mh,SplineCurve as TA,Vector2 as Ln,Vector3 as Kx}from"three";var La=1e-12,gs=class{constructor(t){this.position=new Ln;this.startPosition=new Ln;this.uuid=LA.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 gs(this.position).copy(this)}toJSON(){return[this.position.x,this.position.y]}},ys=class extends gs{constructor(e){super(e.position);this.parent=e}copy(e){return super.copy(e),this}clone(){return new ys(this.parent).copy(this)}},Tn=class extends gs{constructor(e,r){super(r);this.controls=[];this.roundness=0;this.areControlsDirectionsMirrored=!0;this.uuid=e,this.controls.push(new ys(this),new ys(this))}static create(e,r){let n=new Tn(e,new Ln(...r.position));return n.controls[0].position.set(...r.controlPrevious.position),n.controls[1].position.set(...r.controlNext.position),n.roundness=r.roundness,n.areControlsDirectionsMirrored=r.areControlsDirectionsMirrored,n}getOppositeControl(e){let r=this.controls.indexOf(e);return r===0?this.controls[1]:r===1?this.controls[0]:null}applyOffsetToControls(e,r=1){for(let n=0,o=this.controls.length;n<o;n++){let a=this.controls[n];this.position.distanceTo(a.position)<=r?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 Tn(this.uuid,this.position).copy(this)}toJSON(){return super.toJSON().concat(this.controls[0].toJSON(),this.controls[1].toJSON(),[this.roundness])}},Ph=i=>i,Na=new Ln,Ah=new Ln,NA=new Ln,_A=new Ln,IA=new Ln,OA=new Ln,Yx=new Kx,Xx=new Kx;function Zx(i){let t=new Ln;t.addVectors(i.v0,Na.subVectors(i.v1,i.v0).multiplyScalar(2/3));let e=new Ln;return e.addVectors(i.v2,Ah.subVectors(i.v1,i.v2).multiplyScalar(2/3)),new Yc(i.v0,t,e,i.v2)}function Ta(i,t,e=Number.EPSILON){return Math.abs(i-t)<e}function MA(i,t,e=Number.EPSILON){return i.distanceTo(t)<e}function PA(i,t,e=Number.EPSILON){return i.distanceTo(t)<e}function Dh(i,t,e){let r=Math.sqrt(Math.pow(t.x-i.x,2)+Math.pow(t.y-i.y,2)),n=Math.sqrt(Math.pow(t.x-e.x,2)+Math.pow(t.y-e.y,2)),o=Math.sqrt(Math.pow(e.x-i.x,2)+Math.pow(e.y-i.y,2));return Math.acos((n*n+r*r-o*o)/(2*n*r))}function Qx(i,t,e,r,n){let o=Math.sqrt(Math.pow(t.x-i.x,2)+Math.pow(t.y-i.y,2)),a=(i.y+t.y)/2,c=(i.x+t.x)/2,f=Math.sqrt(Math.pow(e,2)-Math.pow(o/2,2))*(i.y-t.y)/o,h=Math.sqrt(Math.pow(e,2)-Math.pow(o/2,2))*(t.x-i.x)/o;return r.set(c+f,a+h),n.set(c-f,a-h),[r,n]}function e0(i,t,e){let r=i.distanceTo(e),n=t.distanceTo(e);return r<n?t:i}function t0(i,t,e,r,n,o){let a=t.x-i.x,c=t.y-i.y,f=e.x-i.x,h=e.y-i.y,d=Math.sqrt((a+f)*(a+f)+(c+h)*(c+h)),m;return Dh(t,i,e)>Math.PI&&(d*=-1),Ta(h,c)?m=(c+h)*(r/d-.5)*8/3/(a-f):m=(a+f)*(r/d-.5)*8/3/(h-c),n.set(t.x-m*c,t.y+m*a),o.set(e.x+m*h,e.y-m*f),[n,o]}function Eh(i,t){return i.position.equals(i.controls[1].position)&&t.position.equals(t.controls[0].position)}function r0(i,t,e,r,n=.5){let o=Na.subVectors(t,i).multiplyScalar(n).add(i),a=Ah.subVectors(e,t).multiplyScalar(n).add(t),c=NA.subVectors(r,e).multiplyScalar(n).add(e),f=o,h=_A.subVectors(a,o).multiplyScalar(n).add(o),d=IA.subVectors(c,a).multiplyScalar(n).add(a),m=c,x=OA.subVectors(d,h).multiplyScalar(n).add(h);return[i.x,i.y,f.x,f.y,h.x,h.y,x.x,x.y,d.x,d.y,m.x,m.y,r.x,r.y]}function n0(i,t,e=12,r=!0){let n=Xx.set(0,0,0),o,a=0,c=[];for(let f=0;f<t.length;f++){let h=Ph(t[f]),d=Na,m=Fi(h,e);c.push(m);for(let x=0;x<=m;x++)if(h instanceof Yc||h instanceof Mh||h instanceof Xc){if(h.getPoint(x/m,d),n.set(d.x,d.y,0),o!==void 0&&PA(o,n))continue;o===void 0&&(o=Yx),o.copy(n),i.setXYZ(a,n.x,n.y,n.z),a++}}return r&&a>1&&!(i.getX(a-1)===i.getX(0)&&i.getY(a-1)===i.getY(0)&&i.getZ(a-1)===i.getZ(0))&&(i.setXYZ(a,i.getX(0),i.getY(0),i.getZ(0)),a++),i}function i0(i,t,e,r=12,n=!0){let o=Xx.set(0,0,0),a=0,c=[];for(let f=0;f<t.length;f++){if(e[f]===!1)continue;let h,d=Ph(t[f]),m=Na,x=Fi(d,r);c.push(x);for(let S=0;S<=x;S++)if(d instanceof Yc||d instanceof Mh||d instanceof Xc){if(d.getPoint(S/x,m),o.set(m.x,m.y,0),h!=null&&h.equals(o))continue;h===void 0?h=Yx:(i.setXYZ(a,h.x,h.y,h.z),a++,i.setXYZ(a,o.x,o.y,o.z),a++),h.copy(o)}}return n&&a>1&&!(i.getX(a-1)===i.getX(0)&&i.getY(a-1)===i.getY(0)&&i.getZ(a-1)===i.getZ(0))&&(i.setXYZ(a,i.getX(0),i.getY(0),i.getZ(0)),a++),c}function Bh(i,t=12,e=!1){let r=[];for(let n=0,o=i.length;n<o;n++){let a=i[n],c=0;if(e&&a.roundedCurveCorner!==void 0){let f=Fi(a.roundedCurveCorner,t)*.5;n>0&&(r[n-1]+=f),c+=f}a.curveAfter!==void 0&&(c+=Fi(a.curveAfter,t)),r.push(c)}return i.length>0&&e&&i[0].roundedCurveCorner!==void 0&&(r[i.length-1]+=Fi(i[0].roundedCurveCorner,t)*.5),r}function Fi(i,t=12){return i&&i instanceof wA?t*2:i&&(i instanceof Xc||i instanceof CA)?1:i&&i instanceof TA?t*i.points.length:t}function o0(i,t,e=12,r=!0){let n,o=0;for(let a=0;a<t.length;a++){let c=Ph(t[a]),f=Fi(c,e),h=Na;for(let d=0;d<=f;d++)if(c instanceof Yc||c instanceof Mh||c instanceof Xc){if(c.getPoint(d/f,h),n!==void 0&&MA(n,h,La))continue;n===void 0&&(n=Ah),n.copy(h),i.push(h.x,h.y),o++}}return Ta(i[0],i[i.length-2],La)&&Ta(i[1],i[i.length-1],La)&&(i.pop(),i.pop()),r&&o>1&&!(Ta(i[o-1],i[1],La)&&Ta(i[o-2],i[0],La))&&(i.push(i[0],i[1]),o++),i}var zh=new ui,BA=new ui,GA=new ui,RA=new ui,zA=new ui,FA=new ui,nt=class extends s0{constructor(e=100,r=100){super();this.points=[];this.shapeHoles=[];this.eventDispatcher=new AA;this.plane=new DA(new EA(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=Gh.generateUUID();this.needsUpdate=!1;this.roundedCurves=[];this._width=e,this._height=r}static createFromState(e,r,n){let o=new nt;return o.isClosed=e.isClosed,o.points=e.points.map(a=>Tn.create(a.id,a.data)),typeof e.roundness=="number"&&(o.roundness=e.roundness),o.shapeHoles=e.shapeHoles.map(a=>nt.createFromState(a)),r!==void 0&&n!==void 0&&o.applySize(r,n),o.update(),o}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 r=0,n=this.points.length;r<n;r++)this.points[r].roundness=e;this.needsUpdate=!0}}getPointsIndexesByIds(e){return e.map(r=>this.getPointIndexById(r)).filter(r=>r>=0)}getPointIndexById(e){return this.points.findIndex(r=>r.uuid===e)}getLineIndexById(e){return this.getPointIndexById(e)}getBezierPoint(e){if(e<=this.points.length-1)return this.points[e];if(this.shapeHoles.length>0)for(let r=0,n=this.shapeHoles.length;r<n;r++){let o=this.shapeHoles[r],a=e-this.points.length;if(a<=o.points.length-1)return o.points[a]}throw new Error("This shape does not have a point for this index: "+e)}getBezierPointIndex(e){let r=this.points.indexOf(e);if(r>=0)return r;if(r=this.points.length,this.shapeHoles.length>0)for(let n=0,o=this.shapeHoles.length;n<o;n++){let a=this.shapeHoles[n],c=a.points.indexOf(e);if(c>=0)return r+c;r+=a.points.length}return-1}getAllPoints(){let e=[].concat(...this.shapeHoles.map(r=>r.points));return[...this.points,...e]}applySize(e,r){e===0&&(e=.001),r===0&&(r=.001),this._width=e,this._height=r}applyScale(e,r){let n=zh.set(e,r);for(let o=0,a=this.points.length;o<a;o++){let c=this.points[o];c.position.multiply(n),c.controls[0].position.multiply(n),c.controls[1].position.multiply(n)}for(let o=0,a=this.shapeHoles.length;o<a;o++)this.shapeHoles[o].applyScale(e,r);this._update(!1)}createPoint(e,r=0,n=Gh.generateUUID()){let o;e instanceof ui?o=e:o=new ui(e,r);let a=new Tn(n,o);return a.roundness=this.roundness,a}addPoint(e){this.points.push(e),this.needsUpdate=!0}addPointAt(e,r){this.points.splice(r,0,e),this.needsUpdate=!0}getPointByUuid(e){for(let r=0,n=this.points.length;r<n;r++){let o=this.points[r];if(o.uuid===e)return o}}getFirstPoint(){return this.points[0]}getLastPoint(){return this.points[this.points.length-1]}removePoint(e){let r=this.points.indexOf(e);r>=0&&this.points.splice(r,1),this.needsUpdate=!0}removePointById(e){let r=this.points.find(n=>n.uuid===e);r&&this.removePoint(r)}update(e=!0){for(let r=0,n=this.shapeHoles.length;r<n;r++)this.shapeHoles[r].update(!1);this._update(e)}extractShapePointsToBuffer(e,r=12,n=!1){this.subdivision=r,this.curveDivisions===void 0&&this.computeCurveDivisions(r);let o=n?this.roundedCurveDivisions:this.curveDivisions;return n0(e,n?this.roundedCurves:this.curves,r,this.autoClose),o.reduce((a,c)=>a+c,0)+1}computeCurveDivisions(e=12){return this.curveDivisions=Bh(this.points,e,!1),this.roundedCurveDivisions=Bh(this.points,e,!0),this.curveDivisions}extractFilteredShapePointsToBuffer(e,r,n=12){return i0(e,this.curves,r,n,this.autoClose).reduce((a,c)=>a+c,0)*2}extractShapePointsToFlatArray(e,r=12){return this.subdivision=r,this.curveDivisions===void 0&&this.computeCurveDivisions(r),o0(e,this.roundedCurves,r,this.autoClose)}getCurveIndexFromVertexId(e,r=!1){let n=0;this.curveDivisions===void 0&&this.computeCurveDivisions(this.subdivision);let o=r?this.roundedCurveDivisions:this.curveDivisions,a=0;r&&this.points[0].roundedCurveCorner!==void 0&&(a=Fi(this.points[0].roundedCurveCorner,this.subdivision)*.5);let c=e-a;c<0&&(c+=o.reduce((f,h)=>f+h,0));for(let f=0,h=o.length;f<h;f++){let d=o[f];if(c<n+d)return[f,(c-n+1)/d];n+=d}return[0,1]}getCurveT(e,r,n){let o=this.points[e],a=this.points[e>=this.points.length-1?0:e+1],c=this.curveDivisions,f=c[e];if(Eh(o,a)){let m=o.position.distanceTo(a.position);return o.position.distanceTo(zh.set(n.x,n.y))/m}let h=0;for(let m=0;m<e;m++)h+=c[m];return(r-h)/f}dispose(){this.eventDispatcher=null}_applyCurveForPoint(e,r){Eh(r,e)?this.lineTo(e.position.x,e.position.y):this.bezierCurveTo(r.controls[1].position.x,r.controls[1].position.y,e.controls[0].position.x,e.controls[0].position.y,e.position.x,e.position.y);let n=this.curves[this.curves.length-1];e.curveBefore=n,r.curveAfter=n;let o=n.clone();e.roundedCurveBefore=o,r.roundedCurveAfter=o,e.roundedCurveCorner=void 0,this.roundedCurves.push(o)}_update(e=!0){var n;if(this.curves=[],this.roundedCurves=[],!this.points.length)return;for(let o=0,a=this.points.length;o<a;o++){let c=this.points[o];if(o===0)this.moveTo(c.position.x,c.position.y);else{let f=this.points[o-1];this._applyCurveForPoint(c,f)}}let r=this.getLastPoint();if(r!=null&&r.curveAfter&&(r.curveAfter=void 0),this.isClosed){let o=this.points[0],a=this.points[this.points.length-1];this._applyCurveForPoint(o,a)}if(this.points.length>2){let o=0;for(let a=0,c=this.points.length;a<c;a++){let f=this.points[a],h=f.roundness;if(!f.controlsMoved()&&h>0){let d=f.curveBefore,m=f.curveAfter;if(d===void 0||m===void 0)continue;let x=f.roundedCurveBefore,S=f.roundedCurveAfter,w=d.getLength(),B=m.getLength(),O=Math.min(h,w*.499),T=Math.min(h,B*.499),M=Math.min(O,T),F=1-M/w,k=M/B,N=d.getPointAt(F,zh),te=m.getPointAt(k,BA);this._subSplitCurve(d,x,F,N,void 0),this._subSplitCurve(m,S,k,void 0,te);let A;if(this.useCubicForRoundedCorners){let b=Dh(N,f.position,te)/2,V=Math.tan(b)*N.distanceTo(f.position),[P,R]=Qx(N,te,V,GA,RA),E=e0(P,R,f.position),[G,ae]=t0(E,N,te,V,zA,FA);A=new Zc(N.clone(),G.clone(),ae.clone(),te.clone())}else A=new a0(N.clone(),f.position.clone(),te.clone());f.roundedCurveCorner=A,this.roundedCurves.splice(a+o,0,A),o++}}}e&&((n=this.eventDispatcher)==null||n.dispatchEvent({type:"update"}))}_subSplitCurve(e,r,n,o,a){if(e instanceof Rh)o!==void 0&&r.v2.copy(o),a!==void 0&&r.v1.copy(a);else{let c=e,f=r,h=c.getUtoTmapping(n,0),d=r0(c.v0,c.v1,c.v2,c.v3,h);return o!==void 0&&(f.v0.set(d[0],d[1]),f.v1.set(d[2],d[3]),f.v2.set(d[4],d[5]),f.v3.set(d[6],d[7])),a!==void 0&&(f.v0.set(d[6],d[7]),f.v1.set(d[8],d[9]),f.v2.set(d[10],d[11]),f.v3.set(d[12],d[13])),f}return r}clone(){let e=new nt(this._width,this._height);return e.points=this.points.map(r=>r.clone()),e.isClosed=this.isClosed,e.roundness=this.roundness,e.isMesh2D=this.isMesh2D,e.shapeHoles=this.shapeHoles.map(r=>r.clone()),e}toJSON(){return{points:this.points.reduce((e,r)=>e.concat(r.toJSON()),[]),shapeHoles:this.shapeHoles.map(e=>e.toJSON()),isClosed:this.isClosed,roundness:this.roundness}}fromJSON(e){var n;this.points=[],this.pointIDs=0;let r=e.points.length/7;for(let o=0;o<r;o++){let a=o*7,c=e.points[a+0],f=e.points[a+1],h=e.points[a+2],d=e.points[a+3],m=e.points[a+4],x=e.points[a+5],S=e.points[a+6],w=new Tn(Gh.generateUUID(),new ui(c,f));w.controls[0].position.set(h,d),w.controls[1].position.set(m,x),w.roundness=S,this.points.push(w)}return this.shapeHoles=(n=e.shapeHoles)!=null&&n.length?e.shapeHoles.map(o=>{let a=new nt;return a.fromJSON(o),a}):[],this.isClosed=e.isClosed,this._roundness=e.roundness,this._update(),this}fromShape(e){let r=(o,a)=>{a instanceof Zc&&a.v3.equals(o.position)&&o.controls[0].position.copy(a.v2)},n=o=>{let a=[],c,f;for(c=0,f=o.length;c<f;c++)o[c]instanceof a0&&(o[c]=Zx(o[c]));for(c=0,f=o.length;c<f;c++){let m=o[c],x=c>0?o[c-1]:null,S;m instanceof Zc?(S=this.createPoint(m.v0),S.controls[1].position.copy(m.v1)):m instanceof Rh&&(S=this.createPoint(m.v1)),S!==void 0&&(x!==null&&r(S,x),a.push(S))}let h=o[o.length-1],d=!1;return h instanceof Zc?h.v3.equals(a[0].position)&&(a[0].controls[0].position.copy(h.v2),d=!0):h instanceof Rh&&h.v2.equals(a[0].position)&&(d=!0),this.isClosed=d,a};return this.points=n(e.curves),e instanceof s0&&(this.shapeHoles=e.holes.map(o=>{let a=new nt;return a.fromShape(o),a})),this.update(),this}};var Vh=Math.PI*2;function Fh({x:i,y:t},e,r,n,o){return{x:i*e+n,y:t*r+o}}function VA(i,t){let e=t===1.5707963267948966?.551915024494:t===-1.5707963267948966?-.551915024494:1.3333333333333333*Math.tan(t/4),r=Math.cos(i),n=Math.sin(i),o=Math.cos(i+t),a=Math.sin(i+t);return[{x:r-n*e,y:n+r*e},{x:o+a*e,y:a-o*e},{x:o,y:a}]}function l0(i,t,e,r){let n=i*r-t*e<0?-1:1,o=Math.min(1,Math.max(-1,i*e+t*r));return n*Math.acos(o)}function UA(i,t,e,r,n,o,a,c,f,h){let d=Math.pow(n,2),m=Math.pow(o,2),x=Math.pow(a,2),S=Math.pow(c,2),w=d*m-d*S-m*x;w<0&&(w=0),w/=d*S+m*x,w=Math.sqrt(w)*(f===h?-1:1);let B=w*n/o*c,O=w*-o/n*a,T=B+(i+e)/2,M=O+(t+r)/2,F=(a-B)/n,k=(c-O)/o,N=(-a-B)/n,te=(-c-O)/o,A=l0(1,0,F,k),b=l0(F,k,N,te);return!h&&b>0&&(b-=Vh),h&&b<0&&(b+=Vh),{centerx:T,centery:M,ang1:A,ang2:b}}function c0({px:i,py:t,cx:e,cy:r,rx:n,ry:o,largeArcFlag:a,sweepFlag:c}){let f=[];if(n===0||o===0)return[];let h=(i-e)/2,d=(t-r)/2;if(h===0&&d===0)return[];n=Math.abs(n),o=Math.abs(o);let m=Math.pow(h,2)/Math.pow(n,2)+Math.pow(d,2)/Math.pow(o,2);m>1&&(n*=Math.sqrt(m),o*=Math.sqrt(m));let x=UA(i,t,e,r,n,o,h,d,a,c),{ang1:S,ang2:w}=x,{centerx:B,centery:O}=x,T=Math.abs(w)/(Vh/4);Math.abs(1-T)<1e-7&&(T=1);let M=Math.max(Math.ceil(T),1);w/=M;for(let F=0;F<M;F++)f.push(VA(S,w)),S+=w;return f.map(F=>{let{x:k,y:N}=Fh(F[0],n,o,B,O),{x:te,y:A}=Fh(F[1],n,o,B,O),{x:b,y:V}=Fh(F[2],n,o,B,O);return{x1:k,y1:N,x2:te,y2:A,x:b,y:V}})}import{BufferAttribute as eu,BufferGeometry as qA}from"three";var Ot;(function(i){i[i.ODD=0]="ODD",i[i.NONZERO=1]="NONZERO",i[i.POSITIVE=2]="POSITIVE",i[i.NEGATIVE=3]="NEGATIVE",i[i.ABS_GEQ_TWO=4]="ABS_GEQ_TWO"})(Ot||(Ot={}));var Kt;(function(i){i[i.POLYGONS=0]="POLYGONS",i[i.CONNECTED_POLYGONS=1]="CONNECTED_POLYGONS",i[i.BOUNDARY_CONTOURS=2]="BOUNDARY_CONTOURS"})(Kt||(Kt={}));function Ae(i,t){if(!i)throw t||"Assertion Failed!"}var Oe=function(){function i(){}return i.vertEq=function(t,e){return t.s===e.s&&t.t===e.t},i.vertLeq=function(t,e){return t.s<e.s||t.s===e.s&&t.t<=e.t},i.transLeq=function(t,e){return t.t<e.t||t.t===e.t&&t.s<=e.s},i.edgeGoesLeft=function(t){return i.vertLeq(t.Dst,t.Org)},i.edgeGoesRight=function(t){return i.vertLeq(t.Org,t.Dst)},i.vertL1dist=function(t,e){return Math.abs(t.s-e.s)+Math.abs(t.t-e.t)},i.edgeEval=function(t,e,r){Ae(i.vertLeq(t,e)&&i.vertLeq(e,r));var n=e.s-t.s,o=r.s-e.s;return n+o>0?n<o?e.t-t.t+(t.t-r.t)*(n/(n+o)):e.t-r.t+(r.t-t.t)*(o/(n+o)):0},i.edgeSign=function(t,e,r){Ae(i.vertLeq(t,e)&&i.vertLeq(e,r));var n=e.s-t.s,o=r.s-e.s;return n+o>0?(e.t-r.t)*n+(e.t-t.t)*o:0},i.transEval=function(t,e,r){Ae(i.transLeq(t,e)&&i.transLeq(e,r));var n=e.t-t.t,o=r.t-e.t;return n+o>0?n<o?e.s-t.s+(t.s-r.s)*(n/(n+o)):e.s-r.s+(r.s-t.s)*(o/(n+o)):0},i.transSign=function(t,e,r){Ae(i.transLeq(t,e)&&i.transLeq(e,r));var n=e.t-t.t,o=r.t-e.t;return n+o>0?(e.s-r.s)*n+(e.s-t.s)*o:0},i.vertCCW=function(t,e,r){return t.s*(e.t-r.t)+e.s*(r.t-t.t)+r.s*(t.t-e.t)>=0},i.interpolate=function(t,e,r,n){return t=t<0?0:t,r=r<0?0:r,t<=r?r===0?(e+n)/2:e+(n-e)*(t/(t+r)):n+(e-n)*(r/(t+r))},i.intersect=function(t,e,r,n,o){var a,c,f;i.vertLeq(t,e)||(f=t,t=e,e=f),i.vertLeq(r,n)||(f=r,r=n,n=f),i.vertLeq(t,r)||(f=t,t=r,r=f,f=e,e=n,n=f),i.vertLeq(r,e)?i.vertLeq(e,n)?(a=i.edgeEval(t,r,e),c=i.edgeEval(r,e,n),a+c<0&&(a=-a,c=-c),o.s=i.interpolate(a,r.s,c,e.s)):(a=i.edgeSign(t,r,e),c=-i.edgeSign(t,n,e),a+c<0&&(a=-a,c=-c),o.s=i.interpolate(a,r.s,c,n.s)):o.s=(r.s+e.s)/2,i.transLeq(t,e)||(f=t,t=e,e=f),i.transLeq(r,n)||(f=r,r=n,n=f),i.transLeq(t,r)||(f=t,t=r,r=f,f=e,e=n,n=f),i.transLeq(r,e)?i.transLeq(e,n)?(a=i.transEval(t,r,e),c=i.transEval(r,e,n),a+c<0&&(a=-a,c=-c),o.t=i.interpolate(a,r.t,c,e.t)):(a=i.transSign(t,r,e),c=-i.transSign(t,n,e),a+c<0&&(a=-a,c=-c),o.t=i.interpolate(a,r.t,c,n.t)):o.t=(r.t+e.t)/2},i}(),_a=function(){function i(){this.next=null,this.prev=null,this.anEdge=null,this.trail=null,this.n=0,this.marked=!1,this.inside=!1}return i}(),Qc=function(){function i(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(i.prototype,"Rface",{get:function(){return this.Sym.Lface},set:function(t){this.Sym.Lface=t},enumerable:!0,configurable:!0}),Object.defineProperty(i.prototype,"Dst",{get:function(){return this.Sym.Org},set:function(t){this.Sym.Org=t},enumerable:!0,configurable:!0}),Object.defineProperty(i.prototype,"Oprev",{get:function(){return this.Sym.Lnext},set:function(t){this.Sym.Lnext=t},enumerable:!0,configurable:!0}),Object.defineProperty(i.prototype,"Lprev",{get:function(){return this.Onext.Sym},set:function(t){this.Onext.Sym=t},enumerable:!0,configurable:!0}),Object.defineProperty(i.prototype,"Dprev",{get:function(){return this.Lnext.Sym},set:function(t){this.Lnext.Sym=t},enumerable:!0,configurable:!0}),Object.defineProperty(i.prototype,"Rprev",{get:function(){return this.Sym.Onext},set:function(t){this.Sym.Onext=t},enumerable:!0,configurable:!0}),Object.defineProperty(i.prototype,"Dnext",{get:function(){return this.Sym.Onext.Sym},set:function(t){this.Sym.Onext.Sym=t},enumerable:!0,configurable:!0}),Object.defineProperty(i.prototype,"Rnext",{get:function(){return this.Sym.Lnext.Sym},set:function(t){this.Sym.Lnext.Sym=t},enumerable:!0,configurable:!0}),i}(),xs=function(){function i(){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 i}(),u0=function(){function i(){var t=new xs,e=new _a,r=new Qc(0),n=new Qc(1);t.next=t.prev=t,t.anEdge=null,e.next=e.prev=e,r.next=r,r.Sym=n,n.next=n,n.Sym=r,this.vHead=t,this.fHead=e,this.eHead=r,this.eHeadSym=n}return i.prototype.makeEdge_=function(t){var e=new Qc(0),r=new Qc(1);t.Sym.side<t.side&&(t=t.Sym);var n=t.Sym.next;return r.next=n,n.Sym.next=e,e.next=t,t.Sym.next=r,e.Sym=r,e.Onext=e,e.Lnext=r,e.Org=null,e.Lface=null,e.winding=0,e.activeRegion=null,r.Sym=e,r.Onext=r,r.Lnext=e,r.Org=null,r.Lface=null,r.winding=0,r.activeRegion=null,e},i.prototype.splice_=function(t,e){var r=t.Onext,n=e.Onext;r.Sym.Lnext=e,n.Sym.Lnext=t,t.Onext=n,e.Onext=r},i.prototype.makeVertex_=function(t,e,r){var n=t;Ae(n,"Vertex can't be null!");var o=r.prev;n.prev=o,o.next=n,n.next=r,r.prev=n,n.anEdge=e;var a=e;do a.Org=n,a=a.Onext;while(a!==e)},i.prototype.makeFace_=function(t,e,r){var n=t;Ae(n,"Face can't be null");var o=r.prev;n.prev=o,o.next=n,n.next=r,r.prev=n,n.anEdge=e,n.trail=null,n.marked=!1,n.inside=r.inside;var a=e;do a.Lface=n,a=a.Lnext;while(a!==e)},i.prototype.killEdge_=function(t){t.Sym.side<t.side&&(t=t.Sym);var e=t.next,r=t.Sym.next;e.Sym.next=r,r.Sym.next=e},i.prototype.killVertex_=function(t,e){var r=t.anEdge,n=r;do n.Org=e,n=n.Onext;while(n!==r);var o=t.prev,a=t.next;a.prev=o,o.next=a},i.prototype.killFace_=function(t,e){var r=t.anEdge,n=r;do n.Lface=e,n=n.Lnext;while(n!==r);var o=t.prev,a=t.next;a.prev=o,o.next=a},i.prototype.makeEdge=function(){var t=new xs,e=new xs,r=new _a,n=this.makeEdge_(this.eHead);return this.makeVertex_(t,n,this.vHead),this.makeVertex_(e,n.Sym,this.vHead),this.makeFace_(r,n,this.fHead),n},i.prototype.splice=function(t,e){var r=!1,n=!1;if(t!==e){if(e.Org!==t.Org&&(n=!0,this.killVertex_(e.Org,t.Org)),e.Lface!==t.Lface&&(r=!0,this.killFace_(e.Lface,t.Lface)),this.splice_(e,t),!n){var o=new xs;this.makeVertex_(o,e,t.Org),t.Org.anEdge=t}if(!r){var a=new _a;this.makeFace_(a,e,t.Lface),t.Lface.anEdge=t}}},i.prototype.delete=function(t){var e=t.Sym,r=!1;if(t.Lface!==t.Rface&&(r=!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),!r){var n=new _a;this.makeFace_(n,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)},i.prototype.addEdgeVertex=function(t){var e=this.makeEdge_(t),r=e.Sym;this.splice_(e,t.Lnext),e.Org=t.Dst;var n=new xs;return this.makeVertex_(n,r,e.Org),e.Lface=r.Lface=t.Lface,e},i.prototype.splitEdge=function(t){var e=this.addEdgeVertex(t),r=e.Sym;return this.splice_(t.Sym,t.Sym.Oprev),this.splice_(t.Sym,r),t.Dst=r.Org,r.Dst.anEdge=r.Sym,r.Rface=t.Rface,r.winding=t.winding,r.Sym.winding=t.Sym.winding,r.idx=t.idx,r.Sym.idx=t.Sym.idx,r},i.prototype.connect=function(t,e){var r=!1,n=this.makeEdge_(t),o=n.Sym;if(e.Lface!==t.Lface&&(r=!0,this.killFace_(e.Lface,t.Lface)),this.splice_(n,t.Lnext),this.splice_(o,e),n.Org=t.Dst,o.Org=e.Org,n.Lface=o.Lface=t.Lface,t.Lface.anEdge=o,!r){var a=new _a;this.makeFace_(a,n,t.Lface)}return n},i.prototype.zapFace=function(t){var e=t.anEdge,r,n,o,a,c;n=e.Lnext;do r=n,n=r.Lnext,r.Lface=null,r.Rface===null&&(r.Onext===r?this.killVertex_(r.Org,null):(r.Org.anEdge=r.Onext,this.splice_(r,r.Oprev)),o=r.Sym,o.Onext===o?this.killVertex_(o.Org,null):(o.Org.anEdge=o.Onext,this.splice_(o,o.Oprev)),this.killEdge_(r));while(r!=e);a=t.prev,c=t.next,c.prev=a,a.next=c},i.prototype.countFaceVerts_=function(t){var e=t.anEdge,r=0;do r++,e=e.Lnext;while(e!==t.anEdge);return r},i.prototype.mergeConvexFaces=function(t){var e,r,n,o,a,c,f;for(e=this.fHead.next;e!==this.fHead;e=e.next)if(!!e.inside)for(r=e.anEdge,a=r.Org;n=r.Lnext,o=r.Sym,o&&o.Lface&&o.Lface.inside&&(c=this.countFaceVerts_(e),f=this.countFaceVerts_(o.Lface),c+f-2<=t&&Oe.vertCCW(r.Lprev.Org,r.Org,o.Lnext.Lnext.Org)&&Oe.vertCCW(o.Lprev.Org,o.Org,r.Lnext.Lnext.Org)&&(n=o.Lnext,this.delete(o),r=null,o=null)),!(r&&r.Lnext.Org===a);)r=n;return!0},i.prototype.check=function(){var t=this.fHead,e=this.vHead,r=this.eHead,n,o,a,c,f,h;for(o=t,o=t;(n=o.next)!==t;o=n){Ae(n.prev===o),f=n.anEdge;do Ae(f.Sym!==f),Ae(f.Sym.Sym===f),Ae(f.Lnext.Onext.Sym===f),Ae(f.Onext.Sym.Lnext===f),Ae(f.Lface===n),f=f.Lnext;while(f!==n.anEdge)}for(Ae(n.prev===o&&n.anEdge===null),c=e,c=e;(a=c.next)!==e;c=a){Ae(a.prev===c),f=a.anEdge;do Ae(f.Sym!==f),Ae(f.Sym.Sym===f),Ae(f.Lnext.Onext.Sym===f),Ae(f.Onext.Sym.Lnext===f),Ae(f.Org===a),f=f.Onext;while(f!==a.anEdge)}for(Ae(a.prev===c&&a.anEdge===null),h=r,h=r;(f=h.next)!==r;h=f)Ae(f.Sym.next===h.Sym),Ae(f.Sym!==f),Ae(f.Sym.Sym===f),Ae(f.Org!==null),Ae(f.Dst!==null),Ae(f.Lnext.Onext.Sym===f),Ae(f.Onext.Sym.Lnext===f);Ae(f.Sym.next===h.Sym&&f.Sym===this.eHeadSym&&f.Sym.Sym===f&&f.Org===null&&f.Dst===null&&f.Lface===null&&f.Rface===null)},i}(),f0=function(){function i(){this.handle=null}return i}(),h0=function(){function i(){this.key=null,this.node=0}return i}(),jA=function(){function i(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 r=0;r<t+1;r++)this.nodes[r]=new f0,this.handles[r]=new h0;this.initialized=!1,this.nodes[1].handle=1,this.handles[1].key=null}return i.prototype.floatDown_=function(t){var e=this.nodes,r=this.handles,n,o,a;for(n=e[t].handle;;){if(a=t<<1,a<this.size&&this.leq(r[e[a+1].handle].key,r[e[a].handle].key)&&++a,Ae(a<=this.max),o=e[a].handle,a>this.size||this.leq(r[n].key,r[o].key)){e[t].handle=n,r[n].node=t;break}e[t].handle=o,r[o].node=t,t=a}},i.prototype.floatUp_=function(t){var e=this.nodes,r=this.handles,n,o,a;for(n=e[t].handle;;){if(a=t>>1,o=e[a].handle,a===0||this.leq(r[o].key,r[n].key)){e[t].handle=n,r[n].node=t;break}e[t].handle=o,r[o].node=t,t=a}},i.prototype.init=function(){for(var t=this.size;t>=1;--t)this.floatDown_(t);this.initialized=!0},i.prototype.min=function(){return this.handles[this.nodes[1].handle].key},i.prototype.insert=function(t){var e,r;if(e=++this.size,e*2>this.max){this.max*=2;var n,o;for(o=this.nodes.length,this.nodes.length=this.max+1,n=o;n<this.nodes.length;n++)this.nodes[n]=new f0;for(o=this.handles.length,this.handles.length=this.max+1,n=o;n<this.handles.length;n++)this.handles[n]=new h0}return this.freeList===0?r=e:(r=this.freeList,this.freeList=this.handles[r].node),this.nodes[e].handle=r,this.handles[r].node=e,this.handles[r].key=t,this.initialized&&this.floatUp_(e),r},i.prototype.extractMin=function(){var t=this.nodes,e=this.handles,r=t[1].handle,n=e[r].key;return this.size>0&&(t[1].handle=t[this.size].handle,e[t[1].handle].node=1,e[r].key=null,e[r].node=this.freeList,this.freeList=r,--this.size,this.size>0&&this.floatDown_(1)),n},i.prototype.delete=function(t){var e=this.nodes,r=this.handles,n;Ae(t>=1&&t<=this.max&&r[t].key!==null),n=r[t].node,e[n].handle=e[this.size].handle,r[e[n].handle].node=n,--this.size,n<=this.size&&(n<=1||this.leq(r[e[n>>1].handle].key,r[e[n].handle].key)?this.floatDown_(n):this.floatUp_(n)),r[t].key=null,r[t].node=this.freeList,this.freeList=t},i}(),Uh=function(){function i(){this.eUp=null,this.nodeUp=null,this.windingNumber=0,this.inside=!1,this.sentinel=!1,this.dirty=!1,this.fixUpperEdge=!1}return i}(),p0=function(){function i(){this.key=null,this.next=null,this.prev=null}return i}(),kA=function(){function i(t,e){this.frame=t,this.leq=e,this.head=new p0,this.head.next=this.head,this.head.prev=this.head}return i.prototype.min=function(){return this.head.next},i.prototype.max=function(){return this.head.prev},i.prototype.insert=function(t){return this.insertBefore(this.head,t)},i.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},i.prototype.insertBefore=function(t,e){do t=t.prev;while(t.key!==null&&!this.leq(this.frame,t.key,e));var r=new p0;return r.key=e,r.next=t.next,t.next.prev=r,r.prev=t,t.next=r,r},i.prototype.delete=function(t){t.next.prev=t.prev,t.prev.next=t.next},i}(),HA=function(){function i(){}return i.regionBelow=function(t){return t.nodeUp.prev.key},i.regionAbove=function(t){return t.nodeUp.next.key},i.debugEvent=function(t){},i.addWinding=function(t,e){t.winding+=e.winding,t.Sym.winding+=e.Sym.winding},i.edgeLeq=function(t,e,r){var n=t.event,o=e.eUp,a=r.eUp;if(o.Dst===n)return a.Dst===n?Oe.vertLeq(o.Org,a.Org)?Oe.edgeSign(a.Dst,o.Org,a.Org)<=0:Oe.edgeSign(o.Dst,a.Org,o.Org)>=0:Oe.edgeSign(a.Dst,n,a.Org)<=0;if(a.Dst===n)return Oe.edgeSign(o.Dst,n,o.Org)>=0;var c=Oe.edgeEval(o.Dst,n,o.Org),f=Oe.edgeEval(a.Dst,n,a.Org);return c>=f},i.deleteRegion=function(t,e){e.fixUpperEdge&&Ae(e.eUp.winding===0),e.eUp.activeRegion=null,t.dict.delete(e.nodeUp)},i.fixUpperEdge=function(t,e,r){Ae(e.fixUpperEdge),t.mesh.delete(e.eUp),e.fixUpperEdge=!1,e.eUp=r,r.activeRegion=e},i.topLeftRegion=function(t,e){var r=e.eUp.Org,n;do e=i.regionAbove(e);while(e.eUp.Org===r);if(e.fixUpperEdge){if(n=t.mesh.connect(i.regionBelow(e).eUp.Sym,e.eUp.Lnext),n===null)return null;i.fixUpperEdge(t,e,n),e=i.regionAbove(e)}return e},i.topRightRegion=function(t){var e=t.eUp.Dst;do t=i.regionAbove(t);while(t.eUp.Dst===e);return t},i.addRegionBelow=function(t,e,r){var n=new Uh;return n.eUp=r,n.nodeUp=t.dict.insertBefore(e.nodeUp,n),n.fixUpperEdge=!1,n.sentinel=!1,n.dirty=!1,r.activeRegion=n,n},i.isWindingInside=function(t,e){switch(t.windingRule){case Ot.ODD:return(e&1)!==0;case Ot.NONZERO:return e!==0;case Ot.POSITIVE:return e>0;case Ot.NEGATIVE:return e<0;case Ot.ABS_GEQ_TWO:return e>=2||e<=-2}throw new Error("Invalid winding rulle")},i.computeWinding=function(t,e){e.windingNumber=i.regionAbove(e).windingNumber+e.eUp.winding,e.inside=i.isWindingInside(t,e.windingNumber)},i.finishRegion=function(t,e){var r=e.eUp,n=r.Lface;n.inside=e.inside,n.anEdge=r,i.deleteRegion(t,e)},i.finishLeftRegions=function(t,e,r){for(var n,o=null,a=e,c=e.eUp;a!==r;){if(a.fixUpperEdge=!1,o=i.regionBelow(a),n=o.eUp,n.Org!=c.Org){if(!o.fixUpperEdge){i.finishRegion(t,a);break}n=t.mesh.connect(c.Lprev,n.Sym),i.fixUpperEdge(t,o,n)}c.Onext!==n&&(t.mesh.splice(n.Oprev,n),t.mesh.splice(c,n)),i.finishRegion(t,a),c=o.eUp,a=o}return c},i.addRightEdges=function(t,e,r,n,o,a){var c,f,h,d,m=!0;h=r;do Ae(Oe.vertLeq(h.Org,h.Dst)),i.addRegionBelow(t,e,h.Sym),h=h.Onext;while(h!==n);for(o===null&&(o=i.regionBelow(e).eUp.Rprev),f=e,d=o;c=i.regionBelow(f),h=c.eUp.Sym,h.Org===d.Org;)h.Onext!==d&&(t.mesh.splice(h.Oprev,h),t.mesh.splice(d.Oprev,h)),c.windingNumber=f.windingNumber-h.winding,c.inside=i.isWindingInside(t,c.windingNumber),f.dirty=!0,!m&&i.checkForRightSplice(t,f)&&(i.addWinding(h,d),i.deleteRegion(t,f),t.mesh.delete(d)),m=!1,f=c,d=h;f.dirty=!0,Ae(f.windingNumber-h.winding===c.windingNumber),a&&i.walkDirtyRegions(t,f)},i.spliceMergeVertices=function(t,e,r){t.mesh.splice(e,r)},i.vertexWeights=function(t,e,r){var n=Oe.vertL1dist(e,t),o=Oe.vertL1dist(r,t),a=.5*o/(n+o),c=.5*n/(n+o);t.coords[0]+=a*e.coords[0]+c*r.coords[0],t.coords[1]+=a*e.coords[1]+c*r.coords[1],t.coords[2]+=a*e.coords[2]+c*r.coords[2]},i.getIntersectData=function(t,e,r,n,o,a){e.coords[0]=e.coords[1]=e.coords[2]=0,e.idx=-1,i.vertexWeights(e,r,n),i.vertexWeights(e,o,a)},i.checkForRightSplice=function(t,e){var r=i.regionBelow(e),n=e.eUp,o=r.eUp;if(Oe.vertLeq(n.Org,o.Org)){if(Oe.edgeSign(o.Dst,n.Org,o.Org)>0)return!1;Oe.vertEq(n.Org,o.Org)?n.Org!==o.Org&&(t.pq.delete(n.Org.pqHandle),i.spliceMergeVertices(t,o.Oprev,n)):(t.mesh.splitEdge(o.Sym),t.mesh.splice(n,o.Oprev),e.dirty=r.dirty=!0)}else{if(Oe.edgeSign(n.Dst,o.Org,n.Org)<0)return!1;i.regionAbove(e).dirty=e.dirty=!0,t.mesh.splitEdge(n.Sym),t.mesh.splice(o.Oprev,n)}return!0},i.checkForLeftSplice=function(t,e){var r=i.regionBelow(e),n=e.eUp,o=r.eUp,a;if(Ae(!Oe.vertEq(n.Dst,o.Dst)),Oe.vertLeq(n.Dst,o.Dst)){if(Oe.edgeSign(n.Dst,o.Dst,n.Org)<0)return!1;i.regionAbove(e).dirty=e.dirty=!0,a=t.mesh.splitEdge(n),t.mesh.splice(o.Sym,a),a.Lface.inside=e.inside}else{if(Oe.edgeSign(o.Dst,n.Dst,o.Org)>0)return!1;e.dirty=r.dirty=!0,a=t.mesh.splitEdge(o),t.mesh.splice(n.Lnext,o.Sym),a.Rface.inside=e.inside}return!0},i.checkForIntersect=function(t,e){var r=i.regionBelow(e),n=e.eUp,o=r.eUp,a=n.Org,c=o.Org,f=n.Dst,h=o.Dst,d,m,x=new xs,S,w;if(Ae(!Oe.vertEq(h,f)),Ae(Oe.edgeSign(f,t.event,a)<=0),Ae(Oe.edgeSign(h,t.event,c)>=0),Ae(a!==t.event&&c!==t.event),Ae(!e.fixUpperEdge&&!r.fixUpperEdge),a===c||(d=Math.min(a.t,f.t),m=Math.max(c.t,h.t),d>m))return!1;if(Oe.vertLeq(a,c)){if(Oe.edgeSign(h,a,c)>0)return!1}else if(Oe.edgeSign(f,c,a)<0)return!1;return i.debugEvent(t),Oe.intersect(f,a,h,c,x),Ae(Math.min(a.t,f.t)<=x.t),Ae(x.t<=Math.max(c.t,h.t)),Ae(Math.min(h.s,f.s)<=x.s),Ae(x.s<=Math.max(c.s,a.s)),Oe.vertLeq(x,t.event)&&(x.s=t.event.s,x.t=t.event.t),S=Oe.vertLeq(a,c)?a:c,Oe.vertLeq(S,x)&&(x.s=S.s,x.t=S.t),Oe.vertEq(x,a)||Oe.vertEq(x,c)?(i.checkForRightSplice(t,e),!1):!Oe.vertEq(f,t.event)&&Oe.edgeSign(f,t.event,x)>=0||!Oe.vertEq(h,t.event)&&Oe.edgeSign(h,t.event,x)<=0?h===t.event?(t.mesh.splitEdge(n.Sym),t.mesh.splice(o.Sym,n),e=i.topLeftRegion(t,e),n=i.regionBelow(e).eUp,i.finishLeftRegions(t,i.regionBelow(e),r),i.addRightEdges(t,e,n.Oprev,n,n,!0),!0):f===t.event?(t.mesh.splitEdge(o.Sym),t.mesh.splice(n.Lnext,o.Oprev),r=e,e=i.topRightRegion(e),w=i.regionBelow(e).eUp.Rprev,r.eUp=o.Oprev,o=i.finishLeftRegions(t,r,null),i.addRightEdges(t,e,o.Onext,n.Rprev,w,!0),!0):(Oe.edgeSign(f,t.event,x)>=0&&(i.regionAbove(e).dirty=e.dirty=!0,t.mesh.splitEdge(n.Sym),n.Org.s=t.event.s,n.Org.t=t.event.t),Oe.edgeSign(h,t.event,x)<=0&&(e.dirty=r.dirty=!0,t.mesh.splitEdge(o.Sym),o.Org.s=t.event.s,o.Org.t=t.event.t),!1):(t.mesh.splitEdge(n.Sym),t.mesh.splitEdge(o.Sym),t.mesh.splice(o.Oprev,n),n.Org.s=x.s,n.Org.t=x.t,n.Org.pqHandle=t.pq.insert(n.Org),i.getIntersectData(t,n.Org,a,f,c,h),i.regionAbove(e).dirty=e.dirty=r.dirty=!0,!1)},i.walkDirtyRegions=function(t,e){for(var r=i.regionBelow(e),n,o;;){for(;r.dirty;)e=r,r=i.regionBelow(r);if(!e.dirty&&(r=e,e=i.regionAbove(e),e===null||!e.dirty))return;if(e.dirty=!1,n=e.eUp,o=r.eUp,n.Dst!==o.Dst&&i.checkForLeftSplice(t,e)&&(r.fixUpperEdge?(i.deleteRegion(t,r),t.mesh.delete(o),r=i.regionBelow(e),o=r.eUp):e.fixUpperEdge&&(i.deleteRegion(t,e),t.mesh.delete(n),e=i.regionAbove(r),n=e.eUp)),n.Org!==o.Org)if(n.Dst!==o.Dst&&!e.fixUpperEdge&&!r.fixUpperEdge&&(n.Dst===t.event||o.Dst===t.event)){if(i.checkForIntersect(t,e))return}else i.checkForRightSplice(t,e);n.Org===o.Org&&n.Dst===o.Dst&&(i.addWinding(o,n),i.deleteRegion(t,e),t.mesh.delete(n),e=i.regionAbove(r))}},i.connectRightVertex=function(t,e,r){var n,o=r.Onext,a=i.regionBelow(e),c=e.eUp,f=a.eUp,h=!1;if(c.Dst!==f.Dst&&i.checkForIntersect(t,e),Oe.vertEq(c.Org,t.event)&&(t.mesh.splice(o.Oprev,c),e=i.topLeftRegion(t,e),o=i.regionBelow(e).eUp,i.finishLeftRegions(t,i.regionBelow(e),a),h=!0),Oe.vertEq(f.Org,t.event)&&(t.mesh.splice(r,f.Oprev),r=i.finishLeftRegions(t,a,null),h=!0),h){i.addRightEdges(t,e,r.Onext,o,o,!0);return}Oe.vertLeq(f.Org,c.Org)?n=f.Oprev:n=c,n=t.mesh.connect(r.Lprev,n),i.addRightEdges(t,e,n,n.Onext,n.Onext,!1),n.Sym.activeRegion.fixUpperEdge=!0,i.walkDirtyRegions(t,e)},i.connectLeftDegenerate=function(t,e,r){var n,o,a,c,f;if(n=e.eUp,Oe.vertEq(n.Org,r)){Ae(!1),i.spliceMergeVertices(t,n,r.anEdge);return}if(!Oe.vertEq(n.Dst,r)){t.mesh.splitEdge(n.Sym),e.fixUpperEdge&&(t.mesh.delete(n.Onext),e.fixUpperEdge=!1),t.mesh.splice(r.anEdge,n),i.sweepEvent(t,r);return}Ae(!1),e=i.topRightRegion(e),f=i.regionBelow(e),a=f.eUp.Sym,o=c=a.Onext,f.fixUpperEdge&&(Ae(o!==a),i.deleteRegion(t,f),t.mesh.delete(a),a=o.Oprev),t.mesh.splice(r.anEdge,a),Oe.edgeGoesLeft(o)||(o=null),i.addRightEdges(t,e,a.Onext,c,o,!0)},i.connectLeftVertex=function(t,e){var r,n,o,a,c,f,h=new Uh;if(h.eUp=e.anEdge.Sym,r=t.dict.search(h).key,n=i.regionBelow(r),!!n){if(a=r.eUp,c=n.eUp,Oe.edgeSign(a.Dst,e,a.Org)===0){i.connectLeftDegenerate(t,r,e);return}if(o=Oe.vertLeq(c.Dst,a.Dst)?r:n,r.inside||o.fixUpperEdge){if(o===r)f=t.mesh.connect(e.anEdge.Sym,a.Lnext);else{var d=t.mesh.connect(c.Dnext,e.anEdge);f=d.Sym}o.fixUpperEdge?i.fixUpperEdge(t,o,f):i.computeWinding(t,i.addRegionBelow(t,r,f)),i.sweepEvent(t,e)}else i.addRightEdges(t,r,e.anEdge,e.anEdge,null,!0)}},i.sweepEvent=function(t,e){t.event=e,i.debugEvent(t);for(var r=e.anEdge;r.activeRegion===null;)if(r=r.Onext,r===e.anEdge){i.connectLeftVertex(t,e);return}var n=i.topLeftRegion(t,r.activeRegion);Ae(n!==null);var o=i.regionBelow(n),a=o.eUp,c=i.finishLeftRegions(t,o,null);c.Onext===a?i.connectRightVertex(t,n,c):i.addRightEdges(t,n,c.Onext,a,a,!0)},i.addSentinel=function(t,e,r,n){var o=new Uh,a=t.mesh.makeEdge();a.Org.s=r,a.Org.t=n,a.Dst.s=e,a.Dst.t=n,t.event=a.Dst,o.eUp=a,o.windingNumber=0,o.inside=!1,o.fixUpperEdge=!1,o.sentinel=!0,o.dirty=!1,o.nodeUp=t.dict.insert(o)},i.initEdgeDict=function(t){t.dict=new kA(t,i.edgeLeq);var e=t.bmax[0]-t.bmin[0],r=t.bmax[1]-t.bmin[1],n=t.bmin[0]-e,o=t.bmax[0]+e,a=t.bmin[1]-r,c=t.bmax[1]+r;i.addSentinel(t,n,o,a),i.addSentinel(t,n,o,c)},i.doneEdgeDict=function(t){for(var e,r=0;(e=t.dict.min().key)!==null;)e.sentinel||(Ae(e.fixUpperEdge),Ae(++r===1)),Ae(e.windingNumber===0),i.deleteRegion(t,e)},i.removeDegenerateEdges=function(t){var e,r,n,o=t.mesh.eHead;for(e=o.next;e!==o;e=r)r=e.next,n=e.Lnext,Oe.vertEq(e.Org,e.Dst)&&e.Lnext.Lnext!==e&&(i.spliceMergeVertices(t,n,e),t.mesh.delete(e),e=n,n=e.Lnext),n.Lnext===e&&(n!==e&&((n===r||n===r.Sym)&&(r=r.next),t.mesh.delete(n)),(e===r||e===r.Sym)&&(r=r.next),t.mesh.delete(e))},i.initPriorityQ=function(t){var e,r,n,o=0;for(n=t.mesh.vHead,r=n.next;r!==n;r=r.next)o++;for(o+=8,e=t.pq=new jA(o,Oe.vertLeq),n=t.mesh.vHead,r=n.next;r!==n;r=r.next)r.pqHandle=e.insert(r);return r!==n?!1:(e.init(),!0)},i.donePriorityQ=function(t){t.pq=null},i.removeDegenerateFaces=function(t,e){var r,n,o;for(r=e.fHead.next;r!==e.fHead;r=n)n=r.next,o=r.anEdge,Ae(o.Lnext!==o),o.Lnext.Lnext===o&&(i.addWinding(o.Onext,o),t.mesh.delete(o));return!0},i.computeInterior=function(t,e){e===void 0&&(e=!0);var r,n;if(i.removeDegenerateEdges(t),!i.initPriorityQ(t))return!1;for(i.initEdgeDict(t);(r=t.pq.extractMin())!==null;){for(;n=t.pq.min(),!(n===null||!Oe.vertEq(n,r));)n=t.pq.extractMin(),i.spliceMergeVertices(t,r.anEdge,n.anEdge);i.sweepEvent(t,r)}return t.event=t.dict.min().key.eUp.Org,i.debugEvent(t),i.doneEdgeDict(t),i.donePriorityQ(t),i.removeDegenerateFaces(t,t.mesh)?(e&&t.mesh.check(),!0):!1},i}(),WA=function(){function i(){this.mesh=new u0,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=Ot.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 i.prototype.dot_=function(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]},i.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},i.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},i.prototype.computeNormal_=function(t){var e,r,n,o,a,c,f=[0,0,0],h=[0,0,0],d=[0,0,0],m=[0,0,0],x=[0,0,0],S=[null,null,null],w=[null,null,null],B=this.mesh.vHead;e=B.next;for(var O=0;O<3;++O)o=e.coords[O],h[O]=o,w[O]=e,f[O]=o,S[O]=e;for(e=B.next;e!==B;e=e.next)for(var T=0;T<3;++T)o=e.coords[T],o<h[T]&&(h[T]=o,w[T]=e),o>f[T]&&(f[T]=o,S[T]=e);var M=0;if(f[1]-h[1]>f[0]-h[0]&&(M=1),f[2]-h[2]>f[M]-h[M]&&(M=2),h[M]>=f[M]){t[0]=0,t[1]=0,t[2]=1;return}for(c=0,r=w[M],n=S[M],d[0]=r.coords[0]-n.coords[0],d[1]=r.coords[1]-n.coords[1],d[2]=r.coords[2]-n.coords[2],e=B.next;e!==B;e=e.next)m[0]=e.coords[0]-n.coords[0],m[1]=e.coords[1]-n.coords[1],m[2]=e.coords[2]-n.coords[2],x[0]=d[1]*m[2]-d[2]*m[1],x[1]=d[2]*m[0]-d[0]*m[2],x[2]=d[0]*m[1]-d[1]*m[0],a=x[0]*x[0]+x[1]*x[1]+x[2]*x[2],a>c&&(c=a,t[0]=x[0],t[1]=x[1],t[2]=x[2]);c<=0&&(t[0]=t[1]=t[2]=0,t[this.longAxis_(d)]=1)},i.prototype.checkOrientation_=function(){for(var t=this.mesh.fHead,e,r=this.mesh.vHead,n,o=0,a=t.next;a!==t;a=a.next)if(n=a.anEdge,!(n.winding<=0))do o+=(n.Org.s-n.Dst.s)*(n.Org.t+n.Dst.t),n=n.Lnext;while(n!==a.anEdge);if(o<0){for(e=r.next;e!==r;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]}},i.prototype.projectPolygon_=function(){var t=this.mesh.vHead,e=[0,0,0],r,n,o=!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),o=!0),r=this.sUnit,n=this.tUnit;var a=this.longAxis_(e);r[a]=0,r[(a+1)%3]=1,r[(a+2)%3]=0,n[a]=0,n[(a+1)%3]=0,n[(a+2)%3]=e[a]>0?1:-1;for(var c=t.next;c!==t;c=c.next)c.s=this.dot_(c.coords,r),c.t=this.dot_(c.coords,n);o&&this.checkOrientation_();for(var f=!0,h=t.next;h!==t;h=h.next)f?(this.bmin[0]=this.bmax[0]=h.s,this.bmin[1]=this.bmax[1]=h.t,f=!1):(h.s<this.bmin[0]&&(this.bmin[0]=h.s),h.s>this.bmax[0]&&(this.bmax[0]=h.s),h.t<this.bmin[1]&&(this.bmin[1]=h.t),h.t>this.bmax[1]&&(this.bmax[1]=h.t))},i.prototype.addWinding_=function(t,e){t.winding+=e.winding,t.Sym.winding+=e.Sym.winding},i.prototype.tessellateMonoRegion_=function(t,e){var r,n;if(r=e.anEdge,!(r.Lnext!==r&&r.Lnext.Lnext!==r))throw"Mono region invalid";for(;Oe.vertLeq(r.Dst,r.Org);r=r.Lprev);for(;Oe.vertLeq(r.Org,r.Dst);r=r.Lnext);n=r.Lprev;for(var o=void 0;r.Lnext!==n;)if(Oe.vertLeq(r.Dst,n.Org)){for(;n.Lnext!==r&&(Oe.edgeGoesLeft(n.Lnext)||Oe.edgeSign(n.Org,n.Dst,n.Lnext.Dst)<=0);)o=t.connect(n.Lnext,n),n=o.Sym;n=n.Lprev}else{for(;n.Lnext!==r&&(Oe.edgeGoesRight(r.Lprev)||Oe.edgeSign(r.Dst,r.Org,r.Lprev.Org)>=0);)o=t.connect(r,r.Lprev),r=o.Sym;r=r.Lnext}if(n.Lnext===r)throw"Mono region invalid";for(;n.Lnext.Lnext!==r;)o=t.connect(n.Lnext,n),n=o.Sym;return!0},i.prototype.tessellateInterior_=function(t){for(var e,r=t.fHead.next;r!==t.fHead;r=e)if(e=r.next,r.inside&&!this.tessellateMonoRegion_(t,r))return!1;return!0},i.prototype.discardExterior_=function(t){for(var e,r=t.fHead.next;r!==t.fHead;r=e)e=r.next,r.inside||t.zapFace(r)},i.prototype.setWindingNumber_=function(t,e,r){for(var n,o=t.eHead.next;o!==t.eHead;o=n)n=o.next,o.Rface.inside!==o.Lface.inside?o.winding=o.Lface.inside?e:-e:r?t.delete(o):o.winding=0},i.prototype.getNeighbourFace_=function(t){return!t.Rface||!t.Rface.inside?-1:t.Rface.n},i.prototype.outputPolymesh_=function(t,e,r,n){var o,a=0,c=0,f;r>3&&t.mergeConvexFaces(r);for(var h=t.vHead.next;h!==t.vHead;h=h.next)h.n=-1;for(var d=t.fHead.next;d!==t.fHead;d=d.next)if(d.n=-1,!!d.inside){o=d.anEdge,f=0;do{var h=o.Org;h.n===-1&&(h.n=c,c++),f++,o=o.Lnext}while(o!==d.anEdge);if(f>r)throw"Face vertex greater that support polygon";d.n=a,++a}this.elementCount=a,e===Kt.CONNECTED_POLYGONS&&(a*=2),this.elements=[],this.elements.length=a*r,this.vertexCount=c,this.vertices=[],this.vertices.length=c*n,this.vertexIndices=[],this.vertexIndices.length=c;for(var h=t.vHead.next;h!==t.vHead;h=h.next)if(h.n!==-1){var m=h.n*n;this.vertices[m+0]=h.coords[0],this.vertices[m+1]=h.coords[1],n>2&&(this.vertices[m+2]=h.coords[2]),this.vertexIndices[h.n]=h.idx}for(var x=0,d=t.fHead.next;d!==t.fHead;d=d.next)if(!!d.inside){o=d.anEdge,f=0;do{var h=o.Org;this.elements[x++]=h.n,f++,o=o.Lnext}while(o!==d.anEdge);for(var S=f;S<r;++S)this.elements[x++]=-1;if(e===Kt.CONNECTED_POLYGONS){o=d.anEdge;do this.elements[x++]=this.getNeighbourFace_(o),o=o.Lnext;while(o!==d.anEdge);for(var w=f;w<r;++w)this.elements[x++]=-1}}},i.prototype.outputContours_=function(t,e){var r,n,o=0,a=0;this.vertexCount=0,this.elementCount=0;for(var c=t.fHead.next;c!==t.fHead;c=c.next)if(!!c.inside){n=r=c.anEdge;do this.vertexCount++,r=r.Lnext;while(r!==n);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 f=0,h=0,d=0;o=0;for(var c=t.fHead.next;c!==t.fHead;c=c.next)if(!!c.inside){a=0,n=r=c.anEdge;do this.vertices[f++]=r.Org.coords[0],this.vertices[f++]=r.Org.coords[1],e>2&&(this.vertices[f++]=r.Org.coords[2]),this.vertexIndices[h++]=this.vertexIdCallback?this.vertexIdCallback(r):r.Org.idx,a++,r=r.Lnext;while(r!==n);this.elements[d++]=o,this.elements[d++]=a,o+=a}},i.prototype.addContour=function(t,e){this.mesh===null&&(this.mesh=new u0),t<2&&(t=2),t>3&&(t=3);for(var r=null,n=0;n<e.length;n+=t)r===null?(r=this.mesh.makeEdge(),this.mesh.splice(r,r.Sym)):(this.mesh.splitEdge(r),r=r.Lnext),r.Org.coords[0]=e[n+0],r.Org.coords[1]=e[n+1],t>2?r.Org.coords[2]=e[n+2]:r.Org.coords[2]=0,r.Org.idx=this.vertexIndexCounter++,this.edgeCreateCallback&&this.edgeCreateCallback(r),r.winding=1,r.Sym.winding=-1},i.prototype.tesselate=function(t,e,r,n,o,a){if(t===void 0&&(t=Ot.ODD),e===void 0&&(e=Kt.POLYGONS),a===void 0&&(a=!0),this.vertices=[],this.elements=[],this.vertexIndices=[],this.vertexIndexCounter=0,o&&(this.normal[0]=o[0],this.normal[1]=o[1],this.normal[2]=o[2]),this.windingRule=t,n<2&&(n=2),n>3&&(n=3),!this.mesh)return!1;this.projectPolygon_(),HA.computeInterior(this,a);var c=this.mesh;return e===Kt.BOUNDARY_CONTOURS?this.setWindingNumber_(c,1,!0):this.tessellateInterior_(c),a&&c.check(),e===Kt.BOUNDARY_CONTOURS?this.outputContours_(c,n):this.outputPolymesh_(c,e,r,n),!0},i}();function mo(i){var t=i.windingRule,e=t===void 0?Ot.ODD:t,r=i.elementType,n=r===void 0?Kt.POLYGONS:r,o=i.polySize,a=o===void 0?3:o,c=i.vertexSize,f=c===void 0?2:c,h=i.normal,d=h===void 0?[0,0,1]:h,m=i.contours,x=m===void 0?[]:m,S=i.strict,w=S===void 0?!0:S,B=i.debug,O=B===void 0?!1:B;if(!x&&w)throw new Error("Contours can't be empty");if(!!x){var T=new WA;i.edgeCreateCallback&&(T.edgeCreateCallback=i.edgeCreateCallback),i.vertexIdCallback&&(T.vertexIdCallback=i.vertexIdCallback);for(var M=0;M<x.length;M++)T.addContour(f||2,x[M]);return T.tesselate(e,n,a,f,d,w),{vertices:T.vertices,vertexIndices:T.vertexIndices,vertexCount:T.vertexCount,elements:T.elements,elementCount:T.elementCount,mesh:O?T.mesh:void 0}}}var ak=Ot.ODD,lk=Ot.NONZERO,ck=Ot.POSITIVE,uk=Ot.NEGATIVE,fk=Ot.ABS_GEQ_TWO,hk=Kt.POLYGONS,pk=Kt.CONNECTED_POLYGONS,dk=Kt.BOUNDARY_CONTOURS;var Vi=class extends qA{constructor(e,r=12,n=100,o={}){super();this.type="ShapeGeometry";this.windingRule=Ot.ODD;this.elementType=Kt.POLYGONS;this.polySize=3;this.vertexSize=2;this.strict=!0;this._drawCount=0,this._shape=e,this._curveSegments=r,this._maxCount=n,this._maxDrawCount=n*3,this._triangulationOptions=Object.assign({windingRule:Ot.ODD,elementType:Kt.POLYGONS,polySize:3,vertexSize:2,strict:!0},o),this._positionAttribute=new eu(new Float32Array(n*3),3),this._normalAttribute=new eu(new Float32Array(n*3),3),this._uvAttribute=new eu(new Float32Array(n*2),2),this._indexAttribute=new eu(new Uint32Array(n*3),1),this.setAttribute("position",this._positionAttribute),this.setAttribute("normal",this._normalAttribute),this.setAttribute("uv",this._uvAttribute),this.setIndex(this._indexAttribute),this.updateFromShape()}copy(e){return this._drawCount=e.drawCount,this._maxDrawCount=e._maxDrawCount,this._maxCount=e.maxCount,super.copy(e)}get curveSegments(){return this._curveSegments}set curveSegments(e){this._curveSegments=e,this.updateFromShape()}get drawCount(){return this._drawCount}get maxDrawCount(){return this._maxDrawCount}get maxCount(){return this._maxCount}updateFromShape(){let e=this._shape.extractShapePointsToFlatArray([],this._curveSegments),r=this._shape.shapeHoles.map(h=>h.extractShapePointsToFlatArray([],this._curveSegments)),n,o=!0,a=!0,c,f;for(let h=0,d=e.length/2;h<d;h++){let m=h*2,x=e[m+0],S=e[m+1];if(c!==void 0&&x!==c&&(o=!1),f!==void 0&&S!==f&&(a=!1),c=x,f=S,!o&&!a)break}if(!o&&!a&&(n=mo({contours:[e,...r],windingRule:this._triangulationOptions.windingRule,elementType:this._triangulationOptions.elementType,polySize:this._triangulationOptions.polySize,vertexSize:this._triangulationOptions.vertexSize,strict:this._triangulationOptions.strict})),this._positionAttribute.array.fill(0),this._normalAttribute.array.fill(0),this._uvAttribute.array.fill(0),this._indexAttribute.array.fill(0),this._drawCount=0,n){let h=1/0,d=-1/0,m=1/0,x=-1/0;for(let B=0,O=n.vertexCount;B<O;B++){let T=B*2,M=n.vertices[T+0],F=n.vertices[T+1];M<h&&(h=M),M>d&&(d=M),F<m&&(m=F),F>x&&(x=F)}let S=d-h,w=x-m;for(let B=0,O=n.vertexCount;B<O;B++){let T=B*2,M=n.vertices[T+0],F=n.vertices[T+1],k=(M-h)/S,N=(F-m)/w;this._positionAttribute.setXYZ(B,M,F,0),this._normalAttribute.setXYZ(B,0,0,1),this._uvAttribute.setXY(B,k,N)}for(let B=0,O=n.elementCount;B<O;B++){let T=B*3,M=n.elements[T+0],F=n.elements[T+1],k=n.elements[T+2];this._indexAttribute.setX(T+0,M),this._indexAttribute.setX(T+1,F),this._indexAttribute.setX(T+2,k),this._drawCount+=3}}return this._positionAttribute.needsUpdate=!0,this._normalAttribute.needsUpdate=!0,this._uvAttribute.needsUpdate=!0,this._indexAttribute.needsUpdate=!0,this.setDrawRange(0,this._drawCount),this._drawCount>this._maxDrawCount}clone(){let e=new Vi(this._shape,this._curveSegments,this._maxCount);return e.userData=ha(this.userData),e}};import{BufferAttribute as ru,BufferGeometry as $A}from"three";var tu=class{constructor(t=256,e=!1){this.capacity=t,this.size=0,this.debug=e,this.debug&&console.log(`allocating with cap ${t}`);let r=t*tu.eSize;this.buffer=new ArrayBuffer(r);let n=Float32Array.BYTES_PER_ELEMENT,o=0;this.positions=new Float32Array(this.buffer,o*n,3*t),o+=3*t,this.normals=new Float32Array(this.buffer,o*n,3*t),o+=3*t,this.uvs=new Float32Array(this.buffer,o*n,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 r=t*tu.eSize,n=new ArrayBuffer(r),o=Float32Array.BYTES_PER_ELEMENT,a=0,c=new Float32Array(n,a*o,3*t);a+=3*t;let f=new Float32Array(n,a*o,3*t);a+=3*t;let h=new Float32Array(n,a*o,2*t);c.set(this.positions.slice(0,this.size*3)),f.set(this.normals.slice(0,this.size*3)),h.set(this.uvs.slice(0,this.size*2)),this.buffer=n,this.positions=c,this.normals=f,this.uvs=h,this.capacity=t}get(t=1){let e=this.size+t;if(e>this.capacity){let n=this.capacity;for(;e>n;)n*=2;this.realloc(n)}let r=this.size;return this.size=e,r}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)}},Ia=tu;Ia.eSize=(3+3+2)*Float32Array.BYTES_PER_ELEMENT;var jh=(i,t)=>([e,r])=>(r<e&&(r+=t),(i>=e?i:i+t)<=r),vs=class extends $A{constructor(e,r,n=0,o=12,a=3){super();this.type="ShapeGeometry";this.vertexCache={};this._shape=e,this._depth=r,this._bevel=n,this._curveSegments=o,this._bevelSegmentsInput=a,n<=0?(this._bevelSize=0,this._bevelSegments=0):(this._bevelSize=Math.min(n,r/2-1e-12),this._bevelSegments=Math.floor(a));let c=this._shape.extractShapePointsToFlatArray([],o),f=this._shape.shapeHoles.map(A=>{let b=A.extractShapePointsToFlatArray([],o),V=[];for(let P=b.length-1;P>=1;P-=2){let R=b[P-1],E=b[P-0];V.push(R,E)}return V}),h=mo({windingRule:Ot.ODD,elementType:Kt.BOUNDARY_CONTOURS,vertexSize:2,strict:!0,contours:[c]}),d=mo({windingRule:Ot.ODD,elementType:Kt.BOUNDARY_CONTOURS,vertexSize:2,strict:!0,contours:[...f]});if(!h)throw new Error("error generating geometry");let m=h.elementCount;if(d){h.elementCount+=d.elementCount;for(let A=0;A<d.elements.length;A++){let b=d.elements[A],V=A%2===0?h.vertexCount:0;h.elements.push(b+V)}for(let A=0;A<d.vertexIndices.length;A++){let b=d.vertexIndices[A],V=h.vertexCount;h.vertexIndices.push(b+V)}for(let A=0;A<d.vertices.length;A++){let b=d.vertices[A];h.vertices.push(b)}}let x=1/0,S=-1/0,w=1/0,B=-1/0;for(let A=0,b=h.vertexCount;A<b;A++){let V=A*2,P=h.vertices[V+0],R=h.vertices[V+1];P<x&&(x=P),P>S&&(S=P),R<w&&(w=R),R>B&&(B=R)}this._minX=x,this._minY=w,this._width=S-x,this._height=B-w;let O=h.vertexCount*2*(2+this._bevelSegments);this._buffer=new Ia(O);let T=[],M=[];for(let A=h.elementCount-1;A>=0;A--){let b=A>=m,V=A*2,P=h.elements[V+0],R=h.elements[V+1],E=P+R,G={start:P,count:R,normals:[],continuous:[],concave:[]},ae=P,ne=E-1,xe=P+1,_e=this._shape.roundedCurves.length;do{let $=ae-P,W=h.vertices[ne*2+0],J=h.vertices[ne*2+1],H=h.vertices[ae*2+0],K=h.vertices[ae*2+1],fe=h.vertices[xe*2+0],me=h.vertices[xe*2+1],ie=H-W,re=K-J,q=Math.sqrt(ie*ie+re*re);ie/=q,re/=q;let ee=H-fe,Te=K-me,ce=Math.sqrt(ee*ee+Te*Te);ee/=ce,Te/=ce,G.normals[$*2+0]=-Te,G.normals[$*2+1]=ee,G.concave[$]=ie*Te-re*ee>0;let le=h.vertexIndices[ae];if(Array.isArray(le))G.continuous[$]=!1;else{let[he,pe]=this._shape.getCurveIndexFromVertexId(le-1,!0);if(pe>0&&pe<1)G.continuous[$]=!0;else{let de=pe===1?he+1:he-1;de=(de+_e)%_e;let be=pe===1?0:1,Se=this._shape.roundedCurves[he].getTangent(pe),Ie=this._shape.roundedCurves[de].getTangent(be);G.continuous[$]=Se.dot(Ie)>.95}}b&&(G.normals[$*2+0]*=-1,G.normals[$*2+1]*=-1),[ne,ae,xe]=[ae,xe,xe+1],xe>=E&&(xe-=R)}while(xe!==P+1);let Le=[];Le.push({bevelI:0,angle:0,size:0,boundary:{vertices:h.vertices.slice(P*2,E*2),vertexCount:R,vertexIndices:new Array(R).fill(!0).map(($,W)=>[W,W]),elements:[0,R],elementCount:1,mesh:null},reverseMap:[],insetPoints:h.vertices.slice(P*2,E*2)});for(let $=1;$<=this._bevelSegments;$++){let W=$/this._bevelSegments*Math.PI/2,J=(1-Math.cos(W))*this._bevelSize,H=[],K=[],fe=[],me=[],ie=0;for(let q=0;q<R;q++){let ee=q*2,Te=(q-1+R)%R*2,ce=h.vertices[G.start*2+ee+0],le=h.vertices[G.start*2+ee+1],he=-G.normals[Te+0]*J,pe=-G.normals[Te+1]*J,de=-G.normals[ee+0]*J,be=-G.normals[ee+1]*J;if(G.concave[q]||!G.concave[q]&&b){let Se=Math.atan2(pe,he),Ie=Math.atan2(be,de);Ie>Se&&(Ie-=Math.PI*2);let ft=Ie-Se;if(G.continuous[q]||b){let Ve=Se+ft/2,Lt=Math.cos(Ve)*J,qe=Math.sin(Ve)*J;H[2*ie+0]=ce+Lt*(b?-1:1),H[2*ie+1]=le+qe*(b?-1:1),me[ie]=q,ie++}else{let Ve=Math.max(1,Math.floor(o/4*Math.abs(ft)/Math.PI));for(let Lt=0;Lt<=Ve;Lt++){let qe=Se+ft*(Lt/Ve),_t=Math.cos(qe)*J,Wt=Math.sin(qe)*J;H[2*ie+0]=ce+_t,H[2*ie+1]=le+Wt,me[ie]=q,ie++}}}else H[2*ie+0]=ce+he,H[2*ie+1]=le+pe,me[ie]=q,K[q]=ie,ie++,H[2*ie+0]=ce,H[2*ie+1]=le,me[ie]=q,ie++,H[2*ie+0]=ce+de,H[2*ie+1]=le+be,me[ie]=q,fe[q]=ie,ie++}let re=mo({windingRule:Ot.POSITIVE,elementType:Kt.BOUNDARY_CONTOURS,vertexSize:2,strict:!0,contours:[H],edgeCreateCallback:q=>{let Te=q.Org.idx,ce=me[Te],le=me[(Te+1)%me.length];q.idx=[ce,le],q.Sym.idx=[le,ce]},vertexIdCallback:q=>{let ee=q.Lprev.idx;return[ee?ee[1]:0,q.idx[0]]}});if(!re)throw console.log("Error"),new Error(`error generating bevel geometry for ${$}'th loop`);if(!re.vertexCount)break;for(let q=0;q<re.vertexIndices.length;q++){let[ee,Te]=re.vertexIndices[q];if(ee===Te)continue;let ce=Te;Te<ee&&(ce+=R);for(let le=ee;le<ce;le++){let he=le%R,pe=(le+1)%R;if(!G.continuous[he]||!G.continuous[pe]){re.vertexIndices[q]=[ee,he],re.vertexIndices.splice(q+1,0,[pe,Te]),re.vertices.splice((q+1)*2,0,re.vertices[q*2],re.vertices[q*2+1]);break}}}Le.push({bevelI:$,angle:W,size:J,boundary:re,reverseMap:me,insetPoints:H})}let Ue=($,W,J)=>{let H=0,K=$.boundary.vertexIndices.length;for(;H<K&&J($.boundary.vertexIndices[W]);)W=(W+1)%K,H++;return H},se=T.length;for(let $=1;$<Le.length;$++){let W=Le[$-1],J=Le[$],H=W.boundary.vertexIndices.length,K=J.boundary.vertexIndices.length;if(!H||!K)break;let fe=G.concave.length,me=0,ie=jh(me,R);for(;!W.boundary.vertexIndices.filter(ie).length||!J.boundary.vertexIndices.filter(ie).length;)me++,ie=jh(me,R);let re=W.boundary.vertexIndices.findIndex(ie),q=J.boundary.vertexIndices.findIndex(ie);do re=(re+1)%H;while(ie(W.boundary.vertexIndices[re]));do q=(q+1)%K;while(ie(J.boundary.vertexIndices[q]));me=(me+1)%R;let ee=me,Te=this.buildBevelVert(G,W,(re-1+H)%H),ce=this.buildBevelVert(G,J,(q-1+K)%K),le=Te,he=ce,pe,de,be=!1;do{ie=jh(me,R);let Se=Ue(W,re,ie),Ie=Ue(J,q,ie),ft=be;if(be=!1,Se&&!Ie){for(let Ve=0;Ve<Se;Ve++)pe=this.buildBevelVert(G,W,(re+Ve)%H,Ve/(Se-1)),T.push(le.topN,pe.topP,he.topN),T.push(pe.bottomP,le.bottomN,he.bottomN),le=pe;be=!0}else if(!Se&&Ie)for(let Ve=0;Ve<Ie;Ve++)de=this.buildBevelVert(G,J,(q+Ve)%K,Ve/(Ie-1)),T.push(he.topN,le.topP,de.topP),T.push(le.bottomP,he.bottomN,de.bottomP),he=de;else if(Se&&Ie)if(pe=this.buildBevelVert(G,W,re,0),de=this.buildBevelVert(G,J,q,0),ft?(T.push(le.topN,de.topP,he.topN),T.push(le.topN,pe.topP,de.topP),T.push(de.bottomP,le.bottomN,he.bottomN),T.push(pe.bottomP,le.bottomN,de.bottomP)):(T.push(le.topN,pe.topP,he.topN),T.push(he.topN,pe.topP,de.topP),T.push(pe.bottomP,le.bottomN,he.bottomN),T.push(pe.bottomP,he.bottomN,de.bottomP)),le=pe,he=de,Se===Ie)for(let Ve=1;Ve<Se;Ve++)pe=this.buildBevelVert(G,W,(re+Ve)%H,Ve/(Se-1)),de=this.buildBevelVert(G,J,(q+Ve)%K,Ve/(Ie-1)),T.push(le.topN,pe.topP,he.topN),T.push(he.topN,pe.topP,de.topP),T.push(pe.bottomP,le.bottomN,he.bottomN),T.push(pe.bottomP,he.bottomN,de.bottomP),le=pe,he=de;else if(Se>Ie){let Ve=Se/Ie,Lt=0;for(let qe=1;qe<Se;qe++)pe=this.buildBevelVert(G,W,(re+qe)%H,qe/(Se-1)),T.push(le.topN,pe.topP,he.topN),T.push(pe.bottomP,le.bottomN,he.bottomN),le=pe,qe>(Lt+1)*Ve&&(Lt++,de=this.buildBevelVert(G,J,(q+Lt)%K,Lt/(Ie-1)),T.push(he.topN,pe.topP,de.topP),T.push(pe.bottomP,he.bottomN,de.bottomP),he=de)}else{let Ve=Ie/Se,Lt=0;for(let qe=1;qe<Ie;qe++)de=this.buildBevelVert(G,J,(q+qe)%K,qe/(Ie-1)),T.push(he.topN,pe.topP,de.topP),T.push(pe.bottomP,he.bottomN,de.bottomP),he=de,qe>(Lt+1)*Ve&&(Lt++,pe=this.buildBevelVert(G,W,(re+Lt)%H,Lt/(Se-1)),T.push(le.topN,pe.topP,he.topN),T.push(pe.bottomP,le.bottomN,he.bottomN),le=pe)}re=(re+Se)%H,q=(q+Ie)%K,me=(me+1)%fe}while(me!==ee)}{let $=Le[0];for(let W=0,J=$.boundary.vertexCount;W<J;W++){let H=this.buildBevelVert(G,$,W),K=this.buildBevelVert(G,$,(W+1)%J);T.push(K.topP,H.topN,H.bottomN),T.push(K.topP,H.bottomN,K.bottomP)}}if(b){let $=[];for(let W=T.length-1;W>=se+2;W-=3){let J=T[W-2],H=T[W-1],K=T[W-0];$.push(K,H,J)}T.splice(se,T.length-se,...$)}if(b){let $=[];for(let W=Le[Le.length-1].boundary.vertices.length-1;W>=1;W-=2){let J=Le[Le.length-1].boundary.vertices[W-1],H=Le[Le.length-1].boundary.vertices[W-0];$.push(J,H)}M.push($)}if(!b){let $=Le[Le.length-1],W=mo({windingRule:Le.length>1?Ot.POSITIVE:Ot.ODD,elementType:Kt.POLYGONS,vertexSize:2,strict:!0,contours:[$.insetPoints,...M]});if(!W)throw new Error("Error generating geometry for surface");for(let J=0;J<W.elementCount*3;J+=3){let H=this.buildSurfaceVert(W,W.elements[J+0]),K=this.buildSurfaceVert(W,W.elements[J+1]),fe=this.buildSurfaceVert(W,W.elements[J+2]);T.push(H.top,K.top,fe.top),T.push(fe.bottom,K.bottom,H.bottom)}}this.vertexCache={}}this._buffer.shrink();let F=new ru(Uint32Array.from(T),1),k=new ru(this._buffer.positions,3),N=new ru(this._buffer.normals,3),te=new ru(this._buffer.uvs,2);k.needsUpdate=!0,N.needsUpdate=!0,te.needsUpdate=!0,F.needsUpdate=!0,this.setAttribute("position",k),this.setAttribute("normal",N),this.setAttribute("uv",te),this.setIndex(F)}buildSurfaceVert(e,r){let n=r.toString();if(n in this.vertexCache)return this.vertexCache[n];let o=e.vertices[r*2+0],a=e.vertices[r*2+1],c=(o-this._minX)/this._width,f=(a-this._minY)/this._height,h=this._buffer.get(2),d=h*3,m=h*2,x={top:h+0,bottom:h+1};return this._buffer.positions[d+0]=o,this._buffer.positions[d+1]=a,this._buffer.positions[d+2]=this._depth,this._buffer.normals[d+0]=0,this._buffer.normals[d+1]=0,this._buffer.normals[d+2]=1,this._buffer.uvs[m+0]=c,this._buffer.uvs[m+1]=f,this._buffer.positions[d+3]=o,this._buffer.positions[d+4]=a,this._buffer.positions[d+5]=0,this._buffer.normals[d+3]=0,this._buffer.normals[d+4]=0,this._buffer.normals[d+5]=-1,this._buffer.uvs[m+2]=c,this._buffer.uvs[m+3]=f,this.vertexCache[n]=x,x}buildBevelVert(e,r,n,o=1){let a=`${r.bevelI}:${n}`;if(a in this.vertexCache)return this.vertexCache[a];let[c,f]=r.boundary.vertexIndices[n],h,d,m,x;c!==f?(d=c,h=f,x=!1,m=e.continuous[d]&&e.continuous[h]):(h=c,d=(h-1+e.count)%e.count,x=e.concave[h]&&r.bevelI>0,m=e.continuous[h]||x);let S=Math.cos(r.angle),w=Math.sin(r.angle),B=n*2,O=h*2,T=d*2,M=r.boundary.vertices[B+0],F=r.boundary.vertices[B+1],k=(1-w)*this._bevelSize,N=(M-this._minX)/this._width,te=(F-this._minY)/this._height,A=e.normals[O+0],b=e.normals[O+1],V=e.normals[T+0],P=e.normals[T+1];if(x){let ne=V-A,xe=P-b;A=A+ne*(1-o),b=b+xe*(1-o);let _e=Math.sqrt(A*A+b*b);A/=_e,b/=_e}let R=this._buffer.get(m?2:4),E=R*3,G=R*2,ae={i:n,fi:h,topP:R+0,topN:R+0,bottomP:R+1,bottomN:R+1};return this._buffer.positions[E+0]=M,this._buffer.positions[E+1]=F,this._buffer.positions[E+2]=this._depth-k,this._buffer.normals[E+0]=A*S,this._buffer.normals[E+1]=b*S,this._buffer.normals[E+2]=w,this._buffer.uvs[G+0]=N,this._buffer.uvs[G+1]=te,this._buffer.positions[E+3]=M,this._buffer.positions[E+4]=F,this._buffer.positions[E+5]=k,this._buffer.normals[E+3]=A*S,this._buffer.normals[E+4]=b*S,this._buffer.normals[E+5]=-w,this._buffer.uvs[G+2]=te,this._buffer.uvs[G+3]=N,m||(R+=2,E+=6,G+=4,ae.topP=R+0,ae.bottomP=R+1,this._buffer.positions[E+0]=M,this._buffer.positions[E+1]=F,this._buffer.positions[E+2]=this._depth-k,this._buffer.normals[E+0]=V*S,this._buffer.normals[E+1]=P*S,this._buffer.normals[E+2]=w,this._buffer.uvs[G+0]=N,this._buffer.uvs[G+1]=te,this._buffer.positions[E+3]=M,this._buffer.positions[E+4]=F,this._buffer.positions[E+5]=k,this._buffer.normals[E+3]=V*S,this._buffer.normals[E+4]=P*S,this._buffer.normals[E+5]=-w,this._buffer.uvs[G+2]=te,this._buffer.uvs[G+3]=N),this.vertexCache[a]=ae,ae}clone(){let e=new vs(this._shape,this._depth,this._bevel,this._curveSegments,this._bevelSegmentsInput);return e.userData=ha(this.userData),e}};var ar=class{static create(i){return this.build(this.normalizeInputs(i))}static normalizeInputs(i,t){var h,d,m,x,S,w,B;let e=Object.assign({},(h=t==null?void 0:t.parameters)!=null?h:{width:100,subdivisions:40,roundness:0,extrudeDepth:0,surfaceMaxCount:100,extrudeBevelSize:0,extrudeBevelSegments:3},i.parameters),r=Math.abs(e.width),n=Math.abs((d=e.height)!=null?d:e.width),o=Math.abs(e.depth!==void 0&&e.depth===0&&e.extrudeDepth>0?e.extrudeDepth:(m=e.depth)!=null?m:0),a=(x=i.shape)!=null?x:t==null?void 0:t.shape,c=(S=a==null?void 0:a.roundness)!=null?S:e.roundness;a!==void 0&&(a instanceof nt?(a.width!==r||a.height!==n)&&a.applySize(r,n):a=new nt(r,n).fromJSON(a),((w=i.parameters)==null?void 0:w.roundness)!==void 0&&((B=i.parameters)==null?void 0:B.roundness)>0&&a.update(!1));let f=a!=null?a:new nt(r,n);return{parameters:Object.assign(e,{width:r,height:n,depth:o,extrudeDepth:o,roundness:c}),shape:f}}static build(i){let{extrudeDepth:t,extrudeBevelSize:e,extrudeBevelSegments:r,subdivisions:n,roundness:o,surfaceMaxCount:a}=i.parameters;i.shape.roundness=o;let c;return t<=0?c=new Vi(i.shape,n,a):c=new vs(i.shape,t,e,n,r),Object.assign(c,{userData:ue(j({},i),{type:"VectorGeometry"})})}};import{MathUtils as m0,Vector2 as g0}from"three";var y0=Math.PI*2,x0=class{static create(i){return this.build(this.normalizeInputs(i))}static normalizeInputs(i,t){var n,o,a;let e=Object.assign({},(n=t==null?void 0:t.parameters)!=null?n:{width:100,depth:0,spikes:64,angle:360,innerRadius:0,extrudeDepth:0,extrudeBevelSize:0,extrudeBevelSegments:1,surfaceMaxCount:1e3},i.parameters);return{shape:i.shape&&i.shape instanceof nt?i.shape:new nt,parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs((o=e.height)!=null?o:e.width),depth:Math.abs(e.depth!==void 0&&e.depth===0&&e.extrudeDepth>0?e.extrudeDepth:(a=e.depth)!=null?a:0)})}}static build(i){let{width:t,height:e,spikes:r,angle:n,innerRadius:o,depth:a,extrudeBevelSize:c,extrudeBevelSegments:f,surfaceMaxCount:h}=i.parameters,d=i.shape,m=t*.5,x=e*.5,S=JA(d,m,x,n*Math.PI/180,r,o);d.isClosed=!0,d.update();let w=ar.create({shape:d,parameters:{subdivisions:S,surfaceMaxCount:h,depth:a,extrudeBevelSize:c,extrudeBevelSegments:f}});return Object.assign(w,{userData:ue(j({},i),{type:"EllipseGeometry"})})}};function JA(i,t,e,r,n,o){if(r>=y0)return n>30||n%4===0?(YA(i,t,e,o),Math.round(n/4)):d0(i,r,n,t,e,o);let a={x:0,y:e},c=r+Math.PI*.5,f={x:Math.cos(c)*t,y:Math.sin(c)*e},h=c0({px:a.x,py:a.y,cx:f.x,cy:f.y,rx:t,ry:e,largeArcFlag:r>Math.PI,sweepFlag:!0});return n>30||n%h.length===0?KA(i,a.x,a.y,h,n,t,e,o):d0(i,r,n,t,e,o)}function KA(i,t,e,r,n,o,a,c){let f=Math.round(n/r.length);i.addPoint(bs(t,e));for(let h=0,d=r.length;h<d;h++){let m=r[h],x=i.points[h],S=bs(m.x,m.y);x.controls[1].position.set(m.x1,m.y1),S.controls[0].position.set(m.x2,m.y2),i.addPoint(S)}return c>0?v0(i,o,a,c):i.addPoint(bs(0,0)),f}function d0(i,t,e,r,n,o){let a=-t/e;for(let c=0;c<=e;c++){let f=a*c,h=Math.sin(f)*r,d=Math.cos(f)*n;i.addPoint(bs(h,d))}return t<y0?o>0?v0(i,r,n,o):i.addPoint(bs(0,0)):(i.removePoint(i.points[i.points.length-1]),o>0&&b0(i,r,n,o)),1}function YA(i,t,e,r=0,n=0,o=0){let a=.5522847498,c=t*a,f=e*a;i.addPoint(nu(n-t,o,n-t,o-f,n-t,o+f)),i.addPoint(nu(n,o+e,n-c,o+e,n+c,o+e)),i.addPoint(nu(n+t,o,n+t,o+f,n+t,o-f)),i.addPoint(nu(n,o-e,n+c,o-e,n-c,o-e)),r>0&&b0(i,t,e,r)}function bs(i,t){return new Tn(m0.generateUUID(),new g0(i,t))}function nu(i,t,e,r,n,o){let a=bs(i,t);return a.controls[0].position.set(e,r),a.controls[1].position.set(n,o),a}function v0(i,t,e,r){S0(i,t,e,r).forEach(o=>i.addPoint(o))}function b0(i,t,e,r){let n=S0(i,t,e,r),o=new nt;n.forEach(a=>o.addPoint(a)),o.isClosed=!0,i.shapeHoles.push(o)}function S0(i,t,e,r){let n=r*t/100,o=n*(Math.abs(e)/Math.abs(t)),a=new g0(n/t,o/e),c=i.points.map(f=>{let h=f.clone();return h.uuid=m0.generateUUID(),h}).reverse();return c.forEach(f=>{f.position.multiply(a);let h=f.controls[0].position.clone().multiply(a),d=f.controls[1].position.clone().multiply(a);f.controls[0].position.copy(d),f.controls[1].position.copy(h)}),c}import{BufferGeometry as XA,Float32BufferAttribute as kh,Vector3 as w0}from"three";var C0=class{static create(i){return this.build(this.normalizeInputs(i))}static normalizeInputs(i,t){var c,f,h;let e=Object.assign({},(c=t==null?void 0:t.parameters)!=null?c:{width:100,revolutions:2,segments:40,pathRadius:10,pathType:0,pathSegments:30,cornerRadius:30,cornerSegments:4},i.parameters),r=Math.abs(e.width),n=Math.abs((f=e.height)!=null?f:r),o=Math.abs((h=e.depth)!=null?h:r),a=Math.abs(Math.min(r,o))/2;return{parameters:Object.assign(e,{width:r,height:n,depth:o,radius:a,segments:Math.round(e.segments),pathSegments:Math.round(e.pathSegments),cornerSegments:Math.round(e.cornerSegments)})}}static build(i){let{width:t,height:e,depth:r,radius:n,revolutions:o,segments:a,pathRadius:c,pathType:f,pathSegments:h,cornerRadius:d,cornerSegments:m}=i.parameters,x=new Oa(!1,t,e,r,n,o,a,c,f,h,d,m);return Object.assign(x,{userData:ue(j({},i),{type:"HelixGeometry"})})}},Oa=class extends XA{constructor(t=!0,e=1,r=1,n=1,o=1,a=1,c=1,f=1,h=1,d=1,m=1,x=1){super();let S=t&&a===1;S&&(x=0),m>100&&(m=100);let w=()=>new w0,B=new w0,O=w(),T=w(),M=w(),F,k,N,te,A,b,V,P,R=w(),E=w(),G=w(),ae=w(),ne=w(),xe=w(),_e=w(),Le=w(),Ue=r-2*f+.001,se=Ue/a,$=Math.ceil(c*a),W=$+1,J=Ue/$,H=-Ue/2,K=d+1,fe=2*Math.PI/d,me=Math.PI/2/x,ie=.01,re=Math.min((1-m/100)*f,f-ie),q=f-re,ee=0,Te=2,ce=x*Te+Te,le=K*ce/Te,he=le+K*W,pe=K*(W+ce),[de,be,Se]=[3,3,2].map(pt=>Array(pe*pt).fill(0)),Ie=[],ft=o-f;function Ve(pt,jt){let ir=Math.PI/2;b=jt*J,P=2*Math.PI*(b%se)/se+ir,b+=H,V=Math.sin(P)*ft,A=Math.cos(P)*ft,t?pt.set(A,V,b):pt.set(A,b,V)}Ve(B,-1e-10),Ve(O,0),R.copy(B),Ve(B,1);let Lt=B.distanceTo(O),qe=q+re,_t=Lt*$+2*qe,Wt=re,Rr=_t-qe;for(let pt=0;pt<=$;pt++){Ve(T,pt),Le.subVectors(T,R).normalize(),R.copy(T),xe.copy(T).setComponent(+t+1,0).normalize(),_e.crossVectors(Le,xe).normalize();let jt=pt===0,ir=pt===$,Lo=jt?3*Math.PI/2:me,To=jt?Wt:Rr,No=jt?K:he,Ki=jt?0:pe-K,Yi=Le.clone().multiplyScalar(jt?-q:q).add(T),_o=Le.clone().multiplyScalar(jt?-1:1).normalize();for(let Nr=0;Nr<K;Nr++){let Xi=Nr*fe;if(E.addVectors(B.copy(xe).multiplyScalar(f*Math.cos(Xi)),O.copy(_e).multiplyScalar(f*Math.sin(Xi))),G.copy(E).normalize(),jt||ir){S||(ee=Ki+Nr,[0,1,2].forEach(qt=>{de[ee*3+qt]=Yi.getComponent(qt),be[ee*3+qt]=_o.getComponent(qt)}),Se[ee*2]=+ir,Se[ee*2+1]=Nr/d),O.copy(G).multiplyScalar(re),M.addVectors(T,O);for(let qt=0;qt<x;qt++){let Kn=qt*me+Lo;ae.addVectors(B.copy(Le).multiplyScalar(q*Math.sin(Kn)),O.copy(G).multiplyScalar(q*Math.cos(Kn))),ne.copy(ae).normalize(),O.addVectors(M,ae),ae.normalize(),ee=No+qt*K+Nr,[0,1,2].forEach(Re=>{de[ee*3+Re]=O.getComponent(Re),be[ee*3+Re]=ne.getComponent(Re)});let Io=+jt+Math.sin(Kn);Se[ee*2]=(To+q*Io)/_t,Se[ee*2+1]=Nr/d}}O.addVectors(T,E),ee=le+pt*K+Nr,[0,1,2].forEach(qt=>{de[ee*3+qt]=O.getComponent(qt),be[ee*3+qt]=G.getComponent(qt)}),Se[ee*2]=(qe+pt*Lt)/_t,Se[ee*2+1]=Nr/d}}let Ut=W+2*x+Te,zr=1,[mn,gn]=S?[zr,zr+W-1]:[0,Ut-1];for(let pt=mn;pt<=gn-1;pt++){let jt=S&&pt===gn-1;for(let ir=0;ir<K-1;ir++)F=pt*K+ir,k=F+1,N=(jt?ir:F)+K,te=(jt?ir+1:k)+K,pt===0?Ie.push(k,te,N):pt===Ut-2?Ie.push(F,k,N):Ie.push(F,k,N,k,te,N)}this.setIndex(Ie),this.setAttribute("position",new kh(de,3)),this.setAttribute("normal",new kh(be,3)),this.setAttribute("uv",new kh(Se,2))}};import{IcosahedronBufferGeometry as ZA}from"three";var L0=class{static create(i){return this.build(this.normalizeInputs(i))}static normalizeInputs(i,t){var r,n,o;let e=Object.assign({},(r=t==null?void 0:t.parameters)!=null?r:{width:100,detail:0,corner:0,cornerSides:4},i.parameters);return{parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs((n=e.height)!=null?n:e.width),depth:Math.abs((o=e.depth)!=null?o:e.width)})}}static build(i){let{width:t,height:e,depth:r,detail:n,corner:o,cornerSides:a}=i.parameters,c=n===0&&o!==0?new Ma(t*.5,o,a):new ZA(t*.5,n);return c.scale(1,e/t,r/t),Object.assign(c,{userData:ue(j({},i),{type:"IcosahedronGeometry"})})}},Ma=class extends zi{constructor(t=1,e=.2,r=4){let n=(1+Math.sqrt(5))/2,o=[-1,n,0,1,n,0,-1,-n,0,1,-n,0,0,-1,n,0,1,n,0,-1,-n,0,1,-n,n,0,-1,n,0,1,-n,0,-1,-n,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],c="IcosahedronGeometry";super(o,a,c,t,e,r),this.type=c}static fromJSON(t){return new Ma(t.radius,t.corner,t.cornerSides)}};import{LatheBufferGeometry as QA,Shape as e2}from"three";var T0=class{static create(i){return this.build(this.normalizeInputs(i))}static normalizeInputs(i,t){var r,n,o,a,c;((n=(r=i.parameters)==null?void 0:r.points)!=null?n:[]).forEach(f=>{Array.isArray(f)&&(f.x=f[0],f.y=f[1])});let e=Object.assign({},(o=t==null?void 0:t.parameters)!=null?o:{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}]},i.parameters);return{parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs((a=e.height)!=null?a:e.width),depth:Math.abs((c=e.depth)!=null?c:e.width)})}}static build(i){let{points:t,segments:e,verticalSegments:r}=i.parameters,n=new e2;n.moveTo(t[0].x,t[0].y),n.bezierCurveTo(t[1].x,t[1].y,t[2].x,t[2].y,t[3].x,t[3].y);let o=new QA(n.extractPoints(r).shape,e);return o.rotateZ(Math.PI),Object.assign(o,{userData:ue(j({},i),{type:"LatheGeometry"})})}};import{BufferGeometry as _0,BufferGeometryLoader as a2,Vector3 as l2,BoxBufferGeometry as I0}from"three";import{BufferGeometry as t2,Vector2 as Hh,Vector3 as N0}from"three";import{Geometry as r2,Face3 as n2}from"three/examples/jsm/deprecated/Geometry.js";var i2=["a","b","c"];function o2(i,t){switch(t){case"c":return i.c;case"b":return i.b;case"a":default:return i.a}}function Wh(i,t,e){let r=Math.min(i,t),n=Math.max(i,t),o=r+"_"+n;return e.get(o)}function qh(i,t,e,r,n,o){let a=Math.min(i,t),c=Math.max(i,t),f=a+"_"+c,h;if(r.has(f))h=r.get(f);else{let d=e[a],m=e[c];h={a:d,b:m,newEdge:null,faces:[]},r.set(f,h)}h.faces.push(n),o[i].edges.push(h),o[t].edges.push(h)}function s2(i,t,e,r){let n,o,a;for(n=0,o=i.length;n<o;n++)e[n]={edges:[]};for(n=0,o=t.length;n<o;n++)a=t[n],qh(a.a,a.b,i,r,a,e),qh(a.b,a.c,i,r,a,e),qh(a.c,a.a,i,r,a,e)}function iu(i,t,e,r,n){i.push(new n2(t,e,r,void 0,void 0,n))}function Ss(i,t){return Math.abs(t-i)/2+Math.min(i,t)}function ou(i,t,e,r){i.push([t.clone(),e.clone(),r.clone()])}var su=class{constructor(t=1){this.subdivisions=t}modify(t){t instanceof t2?t=new r2().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 N0,r,n,o,a,c,f=t.vertices,h=t.faces,d=t.faceVertexUvs[0],m=d!==void 0&&d.length>0,x=[],S=new Map;s2(f,h,x,S);let w=[],B,O,T,M,F,k,N;for(let ie of Array.from(S.keys())){for(O=S.get(ie),T=new N0,F=3/8,k=1/8,N=O.faces.length,N!=2&&(F=.5,k=0,N!=1),T.addVectors(O.a,O.b).multiplyScalar(F),e.set(0,0,0),a=0;a<N;a++){for(M=O.faces[a],c=0;c<3&&(B=f[o2(M,i2[c])],!(B!==O.a&&B!==O.b));c++);B&&e.add(B)}e.multiplyScalar(k),T.add(e),O.newEdge=w.length,w.push(T)}let te,A,b,V,P,R,E,G=[];for(n=0,o=f.length;n<o;n++){for(R=f[n],P=x[n].edges,r=P.length,r==3?te=3/16:r>3&&(te=3/(8*r)),A=1-r*Number(te),b=te,r<=2&&(r==2?(A=3/4,b=1/8):r==1||r==0),E=R.clone().multiplyScalar(A),e.set(0,0,0),a=0;a<r;a++)V=P[a],B=V.a!==R?V.a:V.b,e.add(B);e.multiplyScalar(Number(b)),E.add(e),G.push(E)}let ae=G.concat(w),ne=G.length,xe,_e,Le,Ue=[],se=[],$,W,J,H,K=new Hh,fe=new Hh,me=new Hh;for(n=0,o=h.length;n<o;n++)M=h[n],xe=Number(Wh(M.a,M.b,S).newEdge)+ne,_e=Number(Wh(M.b,M.c,S).newEdge)+ne,Le=Number(Wh(M.c,M.a,S).newEdge)+ne,iu(Ue,xe,_e,Le,M.materialIndex),iu(Ue,M.a,xe,Le,M.materialIndex),iu(Ue,M.b,_e,xe,M.materialIndex),iu(Ue,M.c,Le,_e,M.materialIndex),m&&($=d[n],W=$[0],J=$[1],H=$[2],K.set(Ss(W.x,J.x),Ss(W.y,J.y)),fe.set(Ss(J.x,H.x),Ss(J.y,H.y)),me.set(Ss(W.x,H.x),Ss(W.y,H.y)),ou(se,K,fe,me),ou(se,W,K,me),ou(se,J,fe,K),ou(se,H,me,fe));t.vertices=ae,t.faces=Ue,m&&(t.faceVertexUvs[0]=se)}};var Yt=new l2,O0=class{static create(i){return this.build(this.normalizeInputs(i))}static normalizeInputs(i,t){var o,a;let e=(a=(o=i.geometry)!=null?o:t==null?void 0:t.geometry)!=null?a:new _0().copy(new I0(100,100,100)),r;t===void 0?(e.computeBoundingBox(),e.boundingBox.getSize(Yt),r={width:Yt.x,height:Yt.y,depth:Yt.z,subdivisions:0}):r=t.parameters;let n=j(j({},r),i.parameters);return{parameters:{width:Math.abs(n.width),height:Math.abs(n.height),depth:Math.abs(n.depth),subdivisions:Math.abs(n.subdivisions)},geometry:e}}static build(i){var f;let{width:t,height:e,depth:r,subdivisions:n}=i.parameters,o=(f=i.geometry)!=null?f:new _0().copy(new I0(100,100,100)),a=o.userData.parameters;a===void 0?(o.computeBoundingBox(),o.boundingBox.getSize(Yt)):Yt.set(a.width,a.height,a.depth),(t!==Yt.x||e!==Yt.y||r!==Yt.z)&&o.scale(Yt.x===0?1:t/Yt.x,Yt.y===0?1:e/Yt.y,Yt.z===0?1:r/Yt.z);let c=o.originalGeometry;return n>0?(c===void 0||(a==null?void 0:a.subdivisions)!==n)&&(c===void 0&&(c=o),o=new su(n).modify(c).toBufferGeometry()):(c!==void 0&&(o=c),c=void 0,o.getAttribute("normal")===void 0&&o.computeVertexNormals()),c!==void 0&&Object.assign(o,{originalGeometry:c}),delete i.geometry,Object.assign(o,{userData:ue(j({},i),{type:"NonParametricGeometry"})})}static loadFromUrl(i,t,e){new a2(e).load(i,n=>{let o=this.normalizeInputs({geometry:n});n.boundingBox.getSize(Yt);let a=100/Yt.x;Object.assign(o.parameters,{width:100,height:Yt.y*a,depth:Yt.z*a}),t(this.build(o))})}};var M0=class{static create(i){return this.build(this.normalizeInputs(i))}static normalizeInputs(i,t){var n,o,a,c;let e=Object.assign({},(n=t==null?void 0:t.parameters)!=null?n:{width:100,depth:0,spikes:5,cornerRadius:0,extrudeDepth:0,extrudeBevelSize:0,extrudeBevelSegments:3},i.parameters);return{shape:i.shape&&i.shape instanceof nt?i.shape:new nt,parameters:Object.assign(e,{surfaceMaxCount:((o=e.surfaceMaxCount)!=null?o:e.cornerRadius>0)?1e3:100,width:Math.abs(e.width),height:Math.abs((a=e.height)!=null?a:e.width),depth:Math.abs(e.depth!==void 0&&e.depth===0&&e.extrudeDepth>0?e.extrudeDepth:(c=e.depth)!=null?c:0)})}}static build(i){let{width:t,height:e,spikes:r,cornerRadius:n,depth:o,extrudeBevelSize:a,extrudeBevelSegments:c,surfaceMaxCount:f}=i.parameters,h=i.shape,d=t*.5,m=e*.5,x=0,S=0,w=2*Math.PI/r;for(let O=0;O<r;O++){let T=w*O,M=x+Math.sin(T)*d,F=S+Math.cos(T)*m;h.addPoint(h.createPoint(M,F))}h.isClosed=!0;for(let O=0,T=h.points.length;O<T;O++)h.points[O].roundness=n;h.roundness=n,h.update();let B=ar.create({shape:h,parameters:{surfaceMaxCount:f,roundness:n,depth:o,extrudeBevelSize:a,extrudeBevelSegments:c}});return Object.assign(B,{userData:ue(j({},i),{type:"PolygonGeometry"})})}};import{BufferGeometry as c2,Float32BufferAttribute as $h,Vector2 as jn,Vector3 as tr}from"three";var P0=class{static create(i){return this.build(this.normalizeInputs(i))}static normalizeInputs(i,t){var r,n,o;let e=Object.assign({},(r=t==null?void 0:t.parameters)!=null?r:{width:100,radialSegments:4,heightSegments:1,cornerRadius:0,cornerSegments:8,openEnded:!1},i.parameters);return{parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs((n=e.height)!=null?n:e.width),depth:Math.abs((o=e.depth)!=null?o:e.width)})}}static build(i){let{width:t,height:e,depth:r,radialSegments:n,heightSegments:o,openEnded:a,cornerRadius:c,cornerSegments:f}=i.parameters,h=new Kh(t*.5,e,n,o,a,c,f);return h.scale(1,1,r/t),Object.assign(h,{userData:ue(j({},i),{type:"PyramidGeometry"})})}};function Pa(i,t,e){e.x=i.x*t.x,e.y=i.y,e.z=i.x*t.y}function Jh(i,t,e,r,n,o){let a=t.clone().sub(i),c=e.clone().sub(i),f=a.angleTo(c);if(a.normalize(),c.normalize(),r===n){let h=a.add(c).normalize();o.copy(i).addScaledVector(h,r/Math.sin(f/2))}else{let h=a.angleTo(c);o.copy(i),o.addScaledVector(a,n/Math.sin(h)),o.addScaledVector(c,r/Math.sin(h))}}function u2(i,t,e){let r=i.clone().sub(t),n=e.clone().sub(t);return r.projectOnVector(n),r.add(t)}var Kh=class extends c2{constructor(t=.5,e=1,r=4,n=1,o=!1,a=0,c=4){super(),r=Math.floor(Math.max(3,r)),n=Math.floor(n),c=Math.floor(c);let f=[],h=[],d=[],m=[],x=0,S=e/2,w=Math.PI/r,B=t*Math.cos(Math.PI/r),O=2*Math.PI/r,T=(r-2)*Math.PI/r,M=Math.PI-T,F=new tr(0,-S,0),k=new tr(0,S,0),N=new jn(t,-S),te=new jn(B,-S),A=new jn(0,k.y).sub(te),b=new jn(0,k.y).sub(N),V=new jn(A.y,-A.x).normalize(),P=new jn(b.y,-b.x).normalize(),E=t*Math.cos(Math.PI/r)*Math.tan((Math.PI-A.angle())/2)-1e-8;a=Math.min(a,E);let G;{let se=new tr(V.x,V.y,0),$=new tr(Math.cos(O)*se.x,se.y,Math.sin(O)*se.x);G=se.angleTo($)}let ae=a/Math.tan((Math.PI-A.angle())/2),ne=a/Math.tan((Math.PI-G)/2),xe=new tr;if(!o){h.push(F.x,F.y,F.z),d.push(0,-1,0),m.push(0,0);let se=x++,$=[],W=N.clone(),J=ae/Math.cos(Math.PI/r);W.x-=J;for(let H=0;H<r;H++){let K=H/r*Math.PI*2+w,fe=new jn(Math.sin(K),Math.cos(K));Pa(W,fe,xe),h.push(xe.x,xe.y,xe.z),d.push(0,-1,0),m.push(0,0),$.push(x++)}for(let H=0;H<$.length;H++)f.push($[H],se,$[(H+1)%$.length])}let _e=[];{let se=new tr,$=new tr,W=new tr,J=new tr,H=new tr,K=new tr;for(let fe=0;fe<r;fe++){let me=fe/r*Math.PI*2+w,ie=(fe+.5)/r*Math.PI*2+w,re=(fe+1)/r*Math.PI*2+w,q=new jn(Math.sin(me),Math.cos(me)),ee=new jn(Math.sin(ie),Math.cos(ie)),Te=new jn(Math.sin(re),Math.cos(re));Pa(N,q,$),Pa(N,Te,W),Pa(V,ee,se),Jh(k,$,W,ne,ne,J),h.push(J.x,J.y,J.z),Jh($,k,W,ne,ae,H),h.push(H.x,H.y,H.z),Jh(W,$,k,ae,ne,K),h.push(K.x,K.y,K.z),d.push(se.x,se.y,se.z),d.push(se.x,se.y,se.z),d.push(se.x,se.y,se.z),m.push(0,0),m.push(0,0),m.push(0,0);let ce=x++,le=x++,he=x++;if(f.push(ce,le,he),a>0){{let be=$.clone().add(W).multiplyScalar(.5),Se=k.clone().sub(be).normalize(),ft=F.clone().sub(be).normalize().add(Se).normalize().multiplyScalar(-1),Ve=K.clone().sub(H);Le(be,Ve,ft,A.angle())}let pe,de;{let be=new tr;Pa(P,Te,be);let Se=K.clone().add(J).multiplyScalar(.5);Se=u2(Se,W,k);let Ie=K.clone().sub(J);[pe,de]=Le(Se,Ie,be,G,J.y)}{let be=pe,Se=be.clone().setY(0).normalize(),Ie=new tr(0,-1,0),ft=Se.clone().cross(Ie);Ue(be,Se,Ie,ft)}_e.concat(de);{let be=A.angle(),Se=Math.PI-be,Ie=k.clone();Ie.y-=a/Math.sin(be-Math.PI/2);let ft=new tr,Ve=[];for(let qe=0;qe<c;qe++){let _t=[],Wt=Math.PI/2-Se*qe/c,Rr=Math.cos(Wt),Ut=Math.sin(Wt),zr=ie;for(let mn=0;mn<=qe;mn++){let gn=Math.cos(zr),pt=Math.sin(zr);se.x=Rr*pt,se.y=Ut,se.z=Rr*gn,ft.copy(Ie).addScaledVector(se,a),h.push(ft.x,ft.y,ft.z),d.push(se.x,se.y,se.z),m.push(0,0),_t.push(x++),zr+=Math.PI*2/qe/r}Ve.push(_t)}de.reverse(),Ve.push(de);let Lt=Ve.length-1;for(let qe=0;qe<Lt;qe++){let _t=Ve[qe],Wt=Ve[qe+1],Rr=_t.length-1;f.push(Wt[1],_t[0],Wt[0]);for(let Ut=1;Ut<=Rr;Ut++)f.push(_t[Ut],_t[Ut-1],Wt[Ut]),f.push(Wt[Ut+1],_t[Ut],Wt[Ut])}}}}}this.setIndex(f),this.setAttribute("position",new $h(h,3)),this.setAttribute("normal",new $h(d,3)),this.setAttribute("uv",new $h(m,2));function Le(se,$,W,J,H){let K=-J/2,fe=(Math.PI-J)/2,me=$.clone().normalize().cross(W);se.addScaledVector(W,-a/Math.sin(fe));let ie=new tr,re=new tr,q=1,ee=x,Te=[];for(let ce=0;ce<=c;ce++){let le=K+ce/c*J;re.set(0,0,0),re.addScaledVector(me,Math.sin(le)),re.addScaledVector(W,Math.cos(le));for(let he=0;he<=q;he++){let pe=he/q-.5;if(ie.copy(se),ie.addScaledVector($,pe),ie.addScaledVector(re,a),H!=null){let de=Math.max(0,ie.y-H);ie.addScaledVector($,-de/$.y)}h.push(ie.x,ie.y,ie.z),d.push(re.x,re.y,re.z),m.push(0,0),he===0&&Te.push(x),x++}}for(let ce=0;ce<c;ce++)for(let le=0;le<q;le++){let he=ee+le+(q+1)*ce,pe=he+(q+1),de=pe+1,be=he+1;f.push(he,pe,be),f.push(pe,de,be)}return[se.clone().addScaledVector($,.5),Te]}function Ue(se,$,W,J){let H=Math.PI/2,K=b.angle()-H,fe=[],me=new tr,ie=new tr;for(let q=0;q<=c;q++){let ee=[],Te=q/c;for(let ce=0;ce<=q;ce++){let he=((q?ce/q:0)-.5)*M,pe=Math.cos(he),de=Math.sin(he),be=Math.atan(Math.tan(K)*pe),Se=(H+be)*Te,Ie=Math.cos(Se),ft=Math.sin(Se);me.set(0,0,0),me.addScaledVector($,ft*pe),me.addScaledVector(W,Ie),me.addScaledVector(J,ft*de),ie.copy(se).addScaledVector(me,a),h.push(ie.x,ie.y,ie.z),d.push(me.x,me.y,me.z),m.push(0,0),ee.push(x++)}fe.push(ee)}let re=fe.length-1;for(let q=0;q<re;q++){let ee=fe[q],Te=fe[q+1],ce=ee.length-1;f.push(ee[0],Te[1],Te[0]);for(let le=1;le<=ce;le++)f.push(ee[le-1],ee[le],Te[le]),f.push(ee[le],Te[le+1],Te[le])}}}};var au=class{static create(i){return this.build(this.normalizeInputs(i))}static normalizeInputs(i,t){var a,c,f,h,d;let e=Object.assign({},(a=t==null?void 0:t.parameters)!=null?a:{width:100,depth:0,cornerRadius:[0,0,0,0],cornerType:1,extrudeDepth:0,extrudeBevelSize:0,extrudeBevelSegments:1},i.parameters),r=Object.assign((c=t==null?void 0:t.ui)!=null?c:{enabledIndieCorners:!1},i.ui),n=e.cornerRadius.reduce((m,x)=>m+x,0);return{shape:i.shape&&i.shape instanceof nt?i.shape:new nt,parameters:Object.assign(e,{surfaceMaxCount:((f=e.surfaceMaxCount)!=null?f:n>0)?1e3:100,width:Math.abs(e.width),height:Math.abs((h=e.height)!=null?h:e.width),depth:Math.abs(e.depth!==void 0&&e.depth===0&&e.extrudeDepth>0?e.extrudeDepth:(d=e.depth)!=null?d:0)}),ui:r}}static build(i){let t=i.shape,{width:e,height:r,cornerRadius:n,cornerType:o,depth:a,extrudeBevelSize:c,extrudeBevelSegments:f,surfaceMaxCount:h}=i.parameters,d={x:e*.5,y:r*.5},m={x:-d.x,y:-d.y},x={x:d.x,y:d.y};function S(N,te,A){return te>e&&A>r?Math.min(N*e/te,N*r/A):te>e?N*e/te:A>r?N*r/A:N}let w=[];w[0]=n[0]===0?0:S(n[0],n[0]+n[3],n[0]+n[1]),w[1]=n[1]===0?0:S(n[1],n[1]+n[2],n[1]+n[0]),w[2]=n[2]===0?0:S(n[2],n[2]+n[1],n[2]+n[3]),w[3]=n[3]===0?0:S(n[3],n[3]+n[0],n[3]+n[2]);let B=m.x,O=x.x,T=x.y,M=m.y;t.addPoint(t.createPoint(B,T)),t.addPoint(t.createPoint(O,T)),t.addPoint(t.createPoint(O,M)),t.addPoint(t.createPoint(B,M)),t.isClosed=!0;let F=!0;for(let N=0,te=t.points.length;N<te;N++)t.points[N].roundness=w[N],N>0&&w[N]!==w[N-1]&&(F=!1);F&&(t.roundness=w[0]),t.useCubicForRoundedCorners=o!==1,t.update();let k=ar.create({shape:t,parameters:{surfaceMaxCount:h,depth:a,extrudeBevelSize:c,extrudeBevelSegments:f}});return Object.assign(k,{userData:ue(j({},i),{type:"RectangleGeometry"})})}};import{SphereBufferGeometry as f2}from"three";var A0=class{static create(i){return this.build(this.normalizeInputs(i))}static normalizeInputs(i,t){var r,n,o;let e=Object.assign({},(r=t==null?void 0:t.parameters)!=null?r:{width:100,widthSegments:64,heightSegments:64,phiStart:0,phiLength:2*Math.PI,thetaStart:0,thetaLength:Math.PI},i.parameters);return{parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs((n=e.height)!=null?n:e.width),depth:Math.abs((o=e.depth)!=null?o:e.width)})}}static build(i){let{width:t=100,height:e=t,depth:r=t,widthSegments:n=64,heightSegments:o=64,phiStart:a,phiLength:c,thetaStart:f,thetaLength:h}=i.parameters,d=new f2(.5*t,n,o,a,c,f,h);return d.scale(1,e/t,r/t),Object.assign(d,{userData:ue(j({},i),{type:"SphereGeometry"})})}};import{PlaneBufferGeometry as h2}from"three";var D0=class{static create(i){return this.build(this.normalizeInputs(i))}static normalizeInputs(i,t){var r,n;let e=Object.assign({},(r=t==null?void 0:t.parameters)!=null?r:{width:100,depth:0,widthSegments:8,heightSegments:8},i.parameters);return{parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs((n=e.height)!=null?n:e.width),depth:0})}}static build(i){let{width:t=100,height:e=t,widthSegments:r=8,heightSegments:n=8}=i.parameters,o=new h2(t,e,r,n);return o.scale(1,1,1),Object.assign(o,{userData:ue(j({},i),{type:"PlaneGeometry"})})}};var E0=class{static create(i){return this.build(this.normalizeInputs(i))}static normalizeInputs(i,t){var n,o,a,c;let e=Object.assign({},(n=t==null?void 0:t.parameters)!=null?n:{width:100,depth:0,innerRadiusPercent:38.19,spikes:5,cornerRadius:0,angle:360,extrudeDepth:0,extrudeBevelSize:0,extrudeBevelSegments:1},i.parameters);return{shape:i.shape&&i.shape instanceof nt?i.shape:new nt,parameters:Object.assign(e,{surfaceMaxCount:((o=e.surfaceMaxCount)!=null?o:e.cornerRadius>0)?1e3:100,width:Math.abs(e.width),height:Math.abs((a=e.height)!=null?a:e.width),depth:Math.abs(e.depth!==void 0&&e.depth===0&&e.extrudeDepth>0?e.extrudeDepth:(c=e.depth)!=null?c:0)})}}static build(i){let{width:t,height:e,innerRadiusPercent:r,spikes:n,cornerRadius:o,angle:a,depth:c,extrudeBevelSize:f,extrudeBevelSegments:h,surfaceMaxCount:d}=i.parameters,m=i.shape,x=t*.5,S=e*.5,w=0,B=0,O=a*Math.PI/360/n,T=Math.PI/2*3*-1,M=x*r/100,F=S*r/100;if(n==3&&r==50){O=2*Math.PI/n;for(let N=0;N<n;N++){let te=O*N,A=w+Math.sin(te)*x,b=B+Math.cos(te)*S;m.addPoint(m.createPoint(A,b))}}else for(let N=0;N<n;N++){let te=w+Math.cos(T)*x,A=B+Math.sin(T)*S;m.addPoint(m.createPoint(te,A)),T+=O,te=w+Math.cos(T)*M,A=B+Math.sin(T)*F,N<=n,m.addPoint(m.createPoint(te,A)),T+=O}m.isClosed=!0;for(let N=0,te=m.points.length;N<te;N++)m.points[N].roundness=o;m.roundness=o,m.update();let k=ar.create({shape:m,parameters:{surfaceMaxCount:d,roundness:o,depth:c,extrudeBevelSize:f,extrudeBevelSegments:h}});return Object.assign(k,{userData:ue(j({},i),{type:"StarGeometry"})})}};import{PlaneBufferGeometry as p2}from"three";var lu=class{static create(i){return this.build(this.normalizeInputs(i))}static normalizeInputs(i,t){var r,n,o;let e=Object.assign({},(r=t==null?void 0:t.parameters)!=null?r:{width:100,depth:0},i.parameters);return{parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs((n=e.height)!=null?n:e.width),depth:Math.abs((o=e.depth)!=null?o:0)})}}static build(i){let{width:t,height:e}=i.parameters,r=new p2(t,e);return Object.assign(r,{userData:ue(j({},i),{type:"TextFrameGeometry"})})}};var B0=class{static create(i){return this.build(this.normalizeInputs(i))}static normalizeInputs(i,t){var a,c,f;let e=Object.assign({},(a=t==null?void 0:t.parameters)!=null?a:{width:100,radialSegments:32,tubularSegments:64,arc:Math.PI*2,cornerRadius:30,cornerSegments:8},i.parameters),r=Math.abs(e.width),n=Math.abs((c=e.height)!=null?c:e.width),o=Math.abs((f=e.depth)!=null?f:e.width*.25);return{parameters:Object.assign(e,{width:r,height:n,depth:o})}}static build(i){let{width:t,height:e,depth:r,radialSegments:n,tubularSegments:o,arc:a,cornerRadius:c,cornerSegments:f}=i.parameters,h=d2(t,e,r,t*.5,a,o,0,0,n,c,f);return h.scale(1,e/t,1),Object.assign(h,{userData:ue(j({},i),{type:"TorusGeometry"})})}};function d2(i,t,e,r,n,o,a,c,f,h,d){return[t,e]=[e,t],a=t/2,n/=2*Math.PI,n==1&&(h=0),new Oa(!0,i,t,e,r,n,o,a,c,f,h,d)}import{TorusKnotBufferGeometry as m2}from"three";var G0=class{static create(i){return this.build(this.normalizeInputs(i))}static normalizeInputs(i,t){var r,n,o,a;let e=Object.assign({},(r=t==null?void 0:t.parameters)!=null?r:{width:100,tubularSegments:64,radialSegments:32,p:2,q:3},i.parameters);return{parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs((n=e.height)!=null?n:e.width),depth:Math.abs((o=e.depth)!=null?o:e.width),tube:(a=e.tube)!=null?a:e.width*.125})}}static build(i){let{width:t,tube:e,tubularSegments:r,radialSegments:n,p:o,q:a}=i.parameters,c=t*.5;c!==e&&(c-=e);let f=new m2(c,e,r,n,o,a);return Object.assign(f,{userData:ue(j({},i),{type:"TorusKnotGeometry"})})}};var R0=class{static create(i){return this.build(this.normalizeInputs(i))}static normalizeInputs(i,t){var n,o,a,c;let e=Object.assign({},(n=t==null?void 0:t.parameters)!=null?n:{width:100,depth:0,spikes:5,cornerRadius:0,extrudeDepth:0,extrudeBevelSize:0,extrudeBevelSegments:1,isRect:!1},i.parameters);return{shape:i.shape&&i.shape instanceof nt?i.shape:new nt,parameters:Object.assign(e,{surfaceMaxCount:((o=e.surfaceMaxCount)!=null?o:e.cornerRadius>0)?1e3:100,width:Math.abs(e.width),height:Math.abs((a=e.height)!=null?a:e.width*(e.isRect?1:Math.sqrt(3)/2)),depth:Math.abs(e.depth!==void 0&&e.depth===0&&e.extrudeDepth>0?e.extrudeDepth:(c=e.depth)!=null?c:0)})}}static build(i){let{width:t=100,height:e,cornerRadius:r,depth:n,extrudeBevelSize:o,extrudeBevelSegments:a,isRect:c,surfaceMaxCount:f}=i.parameters,h=i.shape,d=t*.5,m=e*.5;c?(h.addPoint(h.createPoint(-d,m)),h.addPoint(h.createPoint(d,-m)),h.addPoint(h.createPoint(-d,-m))):(h.addPoint(h.createPoint(0,m)),h.addPoint(h.createPoint(d,-m)),h.addPoint(h.createPoint(-d,-m))),h.isClosed=!0;for(let S=0,w=h.points.length;S<w;S++)h.points[S].roundness=r;h.roundness=r,h.update();let x=ar.create({shape:h,parameters:{surfaceMaxCount:f,roundness:r,depth:n,extrudeBevelSize:o,extrudeBevelSegments:a}});return Object.assign(x,{userData:ue(j({},i),{type:"TriangleGeometry"})})}};var Aa={};CN(Aa,{addBarycentricAttribute:()=>b2,fixUvs:()=>w2,loadFromUrl:()=>S2,resizeGeometry:()=>v2,roundShapePolygon:()=>x2});import{BufferGeometryLoader as g2,Float32BufferAttribute as y2,Vector3 as Yh}from"three";var z0=function(i,t){let e=t.x-i.x,r=t.y-i.y,n=Math.sqrt(e*e+r*r),o=e/n,a=r/n,c=Math.atan2(a,o);return{x:e,y:r,len:n,nx:o,ny:a,ang:c}},x2=(i,t,e)=>{let r,n,o,a,c,f,h,d,m,x,S,w,B,O,T=t.length;for(a=t[T-2],i.curves=[],r=1;r<T-1;r++){c=t[r%T],f=t[(r+1)%T];let M=z0(c,a),F=z0(c,f);h=M.nx*F.ny-M.ny*F.nx,d=M.nx*F.nx-M.ny*-F.ny,S=Math.asin(h),m=1,x=!1,d<0?S<0?S=Math.PI+S:(S=Math.PI-S,m=-1,x=!0):S>0&&(m=-1,x=!0),w=S/2,O=Math.abs(Math.cos(w)*e/Math.sin(w)),O>Math.min(M.len/2,F.len/2)?(O=Math.min(M.len/2,F.len/2),B=Math.abs(O*Math.sin(w)/Math.cos(w))):B=e,n=c.x+F.nx*O,o=c.y+F.ny*O,n+=-F.ny*B*m,o+=F.nx*B*m,i.absarc(n,o,B,M.ang+Math.PI/2*m,F.ang-Math.PI/2*m,x),a=c,c=f}i.closePath()},v2=(i,{width:t,height:e,depth:r})=>{t=Math.abs(t),e=Math.abs(e),r=Math.abs(r);let n=i.userData.parameters,o,a,c;t===0?(t=n.width,o=1):o=t/n.width,e===0?(e=n.height,a=1):a=e/n.height,r===0?(r=n.depth,c=1):c=r/n.depth,i.scale(o,a,c),n.width=t,n.height=e,n.depth=r},b2=(i,t)=>{let e=[new Yh(1,0,0),new Yh(0,1,0),new Yh(0,0,1)],r=i.attributes.position,n=new Float32Array(r.count*3);for(let o=0,a=r.count;o<a;o++)e[o%3].toArray(n,o*3);i.setAttribute(t,new y2(n,3))},S2=i=>new Promise(t=>{new g2().load(i,r=>t(r))}),w2=(i,t,e)=>{let r=i.getAttribute("uv");if(r)for(let n=0;n<r.count;n++){let o=r.getX(n),a=r.getY(n);r.setXY(n,(o+t/2)/t,1-(a-e/2)/e*-1)}};import{BufferGeometry as F0,BufferAttribute as V0,Uint32BufferAttribute as Xh,Float32BufferAttribute as Zh,Matrix4 as L2}from"three";import{mergeVertices as T2}from"three/examples/jsm/utils/BufferGeometryUtils.js";var C2,cu=new Promise(i=>{C2=i});var De;cu.then(i=>{De=i});var U0=new Float32Array([10,10,0,-10,10,0,-10,-10,0,10,-10,0]),j0=new Uint32Array([0,1,2,3]),k0=new Uint8Array([4]),Jr=class{static build(i,t,e,r,n){let o,a,c;if(i===void 0)o=Jr.allocate(n,e),De.set_destination_refinement_level(o,0),a=Jr.buildLevel(o,!0,r);else if(i.positionWASM!==void 0){t&&t!==0&&(De.free_bvh(t),De.free_subdivision_surface(t));try{o=Jr.allocate(n,void 0,i)}catch(f){console.error(f,i),o=Jr.allocate(n,void 0,{positionWASM:U0,indexWASM:j0,verticesPerFaceWASM:k0})}De.set_destination_refinement_level(o,0),a=Jr.buildLevel(o,!0,r)}else o=t;if(i!==void 0&&i.subdivisions!==void 0){let f=N2(i.subdivisions,i.positionWASM.length);De.set_destination_refinement_level(o,f),f>0?c=Jr.buildLevel(o,!1,r):c=null}return{subdivPointer:o,originalGeometry:a,subdividedGeometry:c}}static allocate(i,t,e){var N;let r,n,o,a=[],c=[];if(e)e.positionWASM&&e.positionWASM.length>0?(r=e.positionWASM,n=e.indexWASM,o=e.verticesPerFaceWASM):(r=U0,n=j0,o=k0);else{t.deleteAttribute("normal"),t.deleteAttribute("uv");let te=T2(t);r=te.attributes.position.array;let A=te.getIndex().array,b=A.length;switch(t.userData.type==="TorusGeometry"&&(t==null?void 0:t.userData.parameters.arc)===Math.PI*2&&(t.userData.type="ClosedTorusGeometry"),t.userData.type){case"ClosedTorusGeometry":case"PlaneGeometry":case"TorusKnotGeometry":case"CubeGeometry":n=new Uint32Array(b/3*2),o=new Uint8Array(b/6).fill(4);for(let ne=0,xe=0;ne<b;ne+=6)n[xe++]=A[ne],n[xe++]=A[ne+1],n[xe++]=A[ne+4],n[xe++]=A[ne+5];break;case"TorusGeometry":case"SphereGeometry":case"HelixGeometry":case"CylinderGeometry":case"ConeGeometry":let V,P,R;if(t.userData.type==="SphereGeometry")P=t.parameters.heightSegments,V=t.parameters.widthSegments,t.parameters.thetaLength!==Math.PI&&(R=!0);else if(t.userData.type==="CylinderGeometry")P=t.parameters.heightSegments+2,V=t.parameters.radialSegments;else if(t.userData.type==="ConeGeometry")P=t.parameters.heightSegments+1,V=t.parameters.radialSegments;else if(t.userData.type==="TorusGeometry"){let ne=t.userData.parameters;P=Math.ceil(ne.tubularSegments*ne.arc/(2*Math.PI))+2,V=ne.radialSegments}else{let{pathSegments:ne,segments:xe,revolutions:_e}=t.userData.parameters;P=Math.ceil(xe*_e)+2,V=ne}R?(n=new Uint32Array(1*V*3+(P-1)*V*4),o=new Uint8Array(1*V+(P-1)*V)):(n=new Uint32Array(2*V*3+(P-2)*V*4),o=new Uint8Array(2*V+(P-2)*V));let E=0,G=0,ae=0;if(t.userData.type==="SphereGeometry"||t.userData.type==="HelixGeometry"||t.userData.type==="TorusGeometry"){for(;G<3*V;)n[G++]=A[E++],n[G++]=A[E++],n[G++]=A[E++],o[ae++]=3;let ne=R?n.length:3*V+4*(P-2)*V;for(;G<ne;E+=6)n[G++]=A[E],n[G++]=A[E+1],n[G++]=A[E+4],n[G++]=A[E+5],o[ae++]=4}else for(;G<4*(P-2)*V;E+=6)n[G++]=A[E],n[G++]=A[E+1],n[G++]=A[E+4],n[G++]=A[E+5],o[ae++]=4;for(;G<n.length;)n[G++]=A[E++],n[G++]=A[E++],n[G++]=A[E++],o[ae++]=3;break;default:n=A,o=new Uint8Array(b/3).fill(3);break}}let f=r.length,h=n.length,d=o.length,m=r.length+a.length+c.length,x=n.length+o.length,S=m*Float32Array.BYTES_PER_ELEMENT+x*Uint32Array.BYTES_PER_ELEMENT,w=m*Float32Array.BYTES_PER_ELEMENT,B=x*Uint32Array.BYTES_PER_ELEMENT,O=De._malloc(S),T=new Float32Array(De.HEAPF32.buffer,O,m),M=new Uint32Array(De.HEAPU32.buffer,O+w,x);T.set(r,0),T.set(a,r.length),T.set(c,r.length+a.length),M.set(n,0),M.set(o,n.length);let F;(N=e==null?void 0:e.scaleBaked)!=null&&N.some(te=>te!==1)&&(F=new L2().makeScale(...e.scaleBaked)),i&&(F?F.premultiply(i):F=i);let k=F?De.alloc_subdivision_surface2(O,f,O+w,h,O+w+n.length*Uint32Array.BYTES_PER_ELEMENT,d,F.elements):De.alloc_subdivision_surface(O,f,O+w,h,O+w+n.length*Uint32Array.BYTES_PER_ELEMENT,d);return De._free(O),k}static buildLevel(i,t,e,r,n){let o=n?De.get_mesh_data2(i,t?De.Level.CONTROL:De.Level.REFINED,e!=null?e:!t,n.elements):De.get_mesh_data(i,t?De.Level.CONTROL:De.Level.REFINED,e!=null?e:!t),a=8,c=De.HEAPU32.subarray(o>>2,(o>>2)+a),f=c.subarray(4,4+4),h=0,d=De.HEAPU32[c[h]>>2],m=De.HEAPF32.subarray(d>>2,(d>>2)+f[h]);h++;let x=De.HEAPU32[c[h]>>2],S=De.HEAPF32.subarray(x>>2,(x>>2)+f[h]);h++;let w=De.HEAPU32[c[h]>>2],B=De.HEAPU32.subarray(w>>2,(w>>2)+f[h]);h++;let O=De.HEAPU32[c[h]>>2],T=De.HEAPU32.subarray(O>>2,(O>>2)+f[h]);if(h++,r===void 0){let M=new F0;if(M.setIndex(new Xh(T,1)),M.setAttribute("position",new Zh(m,3)),M.setAttribute("normal",new Zh(S,3)),t){M.setAttribute("faceMap",new Xh(B,1));let F=new Float32Array(S.length/3*4).fill(0);M.setAttribute("color",new V0(F,4))}return De.free_mesh_data(o),M.userData.type="SubdivGeometry",M}r.getAttribute("position").copyArray(m),r.getAttribute("normal").copyArray(S),r.attributes.position.needsUpdate=!0,r.attributes.normal.needsUpdate=!0,De.free_mesh_data(o)}static buildControlCageWireframe(i,t,e){let r=De.get_wireframe_data_for_base_level(i),n=4,o=De.HEAPU32.subarray(r>>2,(r>>2)+n),a=o.subarray(2,2+2),c=0,f=De.HEAPU32[o[c]>>2],h=De.HEAPF32.subarray(f>>2,(f>>2)+a[c]);c++;let d=De.HEAPU32[o[c]>>2],m=De.HEAPU32.subarray(d>>2,(d>>2)+a[c]);if(t===void 0){let x=new F0;x.setAttribute("position",new Zh(h,3));let S=new Float32Array(h.length);for(let w=0,B=h.length;w<B;)S[w++]=e.r,S[w++]=e.g,S[w++]=e.b;return x.setAttribute("color",new V0(S,3)),x.setIndex(new Xh(m,1)),De.free_wireframe_data_for_base_level(r),x}t.getAttribute("position").copyArray(h),t.attributes.position.needsUpdate=!0,De.free_wireframe_data_for_base_level(r)}static updateCollabMesh(i,t,e){t||De.set_destination_refinement_level(i,1);let r=e?De.get_topological_data2(i,t?De.Level.CONTROL:De.Level.REFINED,e.elements):De.get_topological_data(i,t?De.Level.CONTROL:De.Level.REFINED),n=6,o=De.HEAPU32.subarray(r>>2,(r>>2)+n),a=o.subarray(3,3+3),c=0,f=De.HEAPU32[o[c]>>2],h=new Float32Array(De.HEAPF32.subarray(f>>2,(f>>2)+a[c]));c++;let d=De.HEAPU32[o[c]>>2],m=new Uint32Array(De.HEAPU32.subarray(d>>2,(d>>2)+a[c]));c++;let x=De.HEAPU32[o[c]>>2],S=new Uint8Array(De.HEAPU32.subarray(x>>2,(x>>2)+a[c]));return De.free_topological_data(r),{positions:h,indices:m,verticesPerFace:S}}};function N2(i,t){let e=i;return e=Math.min(e,3-Math.ceil(Math.log(t/172e3)/Math.log(4))),Math.max(e,0)}var Qh={ConeGeometry:qx,CubeGeometry:$x,CylinderGeometry:Wx,DodecahedronGeometry:Jx,EllipseGeometry:x0,HelixGeometry:C0,IcosahedronGeometry:L0,LatheGeometry:T0,NonParametricGeometry:O0,PolygonGeometry:M0,PyramidGeometry:P0,RectangleGeometry:au,SphereGeometry:A0,PlaneGeometry:D0,StarGeometry:E0,TextFrameGeometry:lu,TorusGeometry:B0,TorusKnotGeometry:G0,TriangleGeometry:R0,VectorGeometry:ar},Da=i=>Qh[i.type].create(i);import{HemisphereLight as H0}from"three";import{Color as _2}from"three";var Er=class extends _2{constructor(e,r,n,o){super(e,r,n);this.isColorA=!0;this.a=o}setRGBA(e,r,n,o){super.setRGB(e,r,n),this.a=o}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}};function Ft(i,t){let e;if(typeof i=="string"){let r=t==null?void 0:t.getColor(i);r?e=r:(console.warn("Tried to create color layer params with a color key that does not exist in the assets manager"),e=new Er(0,0,0,0))}else return"a"in i?new Er(i.r,i.g,i.b,i.a):new Er(i.r,i.g,i.b,1);return e}var uu=i=>"isEntity"in i,ws=i=>"isAbstractMesh"in i,W0=i=>i.objectType==="CombinedCamera";var fi=i=>"objectHelper"in i;function I2(i,t){var r;let e=!1;t.position&&(i.position.fromArray(t.position),e=!0),t.rotation&&(i.rotation.fromArray(t.rotation),e=!0),t.scale&&(e=!0,i.scale.fromArray(t.scale)),t.hiddenMatrix!==void 0&&"hiddenMatrix"in i&&(e=!0,i.hiddenMatrix.fromArray((r=t.hiddenMatrix)!=null?r:Di.identity)),e&&i.updateMatrix(),t.position&&t.rotation&&t.scale&&t.hiddenMatrix!==void 0&&i.updateWorldMatrix(!1,!0),i.objectType==="CombinedCamera"&&(t.isUpVectorFlipped!==void 0&&(i.isUpVectorFlipped=t.isUpVectorFlipped),i.updateUp())}function O2(i,t){I2(i,t),t.name!==void 0&&(i.name=t.name),t.visible!==void 0&&(i.isEntity?i.visibility=t.visible:i.visible=t.visible)}function q0(i,t,e){O2(i,t),t.color!==void 0&&(i.color=Ft(t.color,e)),t.intensity!==void 0&&(i.intensity=t.intensity),t.shadows!==void 0&&!(i instanceof H0)&&(i.castShadow=t.shadows),i.shadow&&!(i instanceof H0)&&t.depth!==void 0&&(i.shadow.camera.far=t.depth,i.shadow.needsUpdate=!0),t.helper!==void 0&&fi(i)&&(i.enableHelper=t.helper,i.gizmos.shadowmap.visible=t.helper)}function $0(i,t){i.shadow.camera.right=t/2,i.shadow.camera.left=-t/2,i.shadow.camera.top=t/2,i.shadow.camera.bottom=-t/2,i.shadow.needsUpdate=!0}import{VideoTexture as _D}from"three";import{Mesh as G2}from"three";import{Matrix4 as tp}from"three";import{Box3 as K0,Line3 as fn,Matrix4 as ep,Vector3 as wt}from"three";var Cs=new K0,lr=new wt,Me=new wt,Ht=new ep;function M2(i,t,e=0,r=t.count){let n=1/0,o=1/0,a=1/0,c=-1/0,f=-1/0,h=-1/0;for(let d=e;d<r;d++){let m=t.getX(d),x=t.getY(d),S=t.getZ(d);m<n&&(n=m),x<o&&(o=x),S<a&&(a=S),m>c&&(c=m),x>f&&(f=x),S>h&&(h=S)}return i.min.set(n,o,a),i.max.set(c,f,h),i}var J0=(i,t,e,r)=>{var n;if(ws(i)){let o=i.geometry.userData.parameters,a=i.geometry.getAttribute("position");i.geometry.userData.type==="SubdivGeometry"?lr.copy(i.originalGeometry.boundingSphere.center):(M2(Cs,a,i.geometry.drawRange.start,i.geometry.drawRange.count<1/0?i.geometry.drawRange.count:a.count),Cs.getCenter(lr)),i.forceComputeSize?Cs.getSize(Me).multiplyScalar(.5):Me.set(o.width,o.height,(n=o.depth)!=null?n:0).multiplyScalar(.5)}else if(fi(i)&&r===!0){let o=i.geometryHelper.getAttribute("position");Cs.setFromArray(o.array),Cs.getCenter(lr),Cs.getSize(Me).multiplyScalar(.5)}else lr.setScalar(0),Me.setScalar(0);Ht.copy(t).multiply(i.matrixWorld),Me.x===0&&Me.y===0&&Me.z===0?e.push(new wt(lr.x,lr.y,lr.z).applyMatrix4(Ht)):e.push(new wt(-Me.x,Me.y,Me.z).add(lr).applyMatrix4(Ht),new wt(-Me.x,-Me.y,Me.z).add(lr).applyMatrix4(Ht),new wt(Me.x,-Me.y,Me.z).add(lr).applyMatrix4(Ht),new wt(Me.x,Me.y,Me.z).add(lr).applyMatrix4(Ht),new wt(-Me.x,Me.y,-Me.z).add(lr).applyMatrix4(Ht),new wt(-Me.x,-Me.y,-Me.z).add(lr).applyMatrix4(Ht),new wt(Me.x,-Me.y,-Me.z).add(lr).applyMatrix4(Ht),new wt(Me.x,Me.y,-Me.z).add(lr).applyMatrix4(Ht))},Ea=class extends K0{constructor(){super(...arguments);this.matrix=new ep;this.vertices=[];this.faces=[];this.edges=[];this.centerEdges=[]}copy(e){return super.copy(e),this.matrix.copy(e.matrix),this.vertices=e.vertices.map(r=>r.clone()),this.faces=e.faces.map(r=>r.clone()),this.edges=e.edges.map(r=>r.clone()),this.centerEdges=e.centerEdges.map(r=>r.clone()),this}setFromObjectSize(e,r=!1){e.updateWorldMatrix(!1,r),this.makeEmpty(),this.matrix.copy(e.matrixWorld);let n=new ep().copy(e.matrixWorld).invert();return this.expandByObjectSize(e,n,r)}expandByObjectSize(e,r,n=!1){let o=[];return n===!0?e.traverseEntity(a=>J0(a,r,o,e.enableHelper===!0)):J0(e,r,o,e.enableHelper===!0),this.setFromPoints(o)}getCenter(e){return e=super.getCenter(e),e.applyMatrix4(this.matrix),e}getPositionToCenter(e){return e=super.getCenter(e),e.applyMatrix4(Ht.copy(this.matrix).setPosition(0,0,0)),e}computeVertices(){this.getSize(Me).multiplyScalar(.5),this.getCenter(lr),Ht.copy(this.matrix).setPosition(lr),this.vertices=[new wt(-Me.x,Me.y,Me.z).applyMatrix4(Ht),new wt(-Me.x,-Me.y,Me.z).applyMatrix4(Ht),new wt(Me.x,-Me.y,Me.z).applyMatrix4(Ht),new wt(Me.x,Me.y,Me.z).applyMatrix4(Ht),new wt(-Me.x,Me.y,-Me.z).applyMatrix4(Ht),new wt(-Me.x,-Me.y,-Me.z).applyMatrix4(Ht),new wt(Me.x,-Me.y,-Me.z).applyMatrix4(Ht),new wt(Me.x,Me.y,-Me.z).applyMatrix4(Ht)]}computeEdges(){this.vertices.length>0&&this.computeVertices(),this.edges=[new fn(this.vertices[0],this.vertices[3]),new fn(this.vertices[1],this.vertices[2]),new fn(this.vertices[5],this.vertices[6]),new fn(this.vertices[4],this.vertices[7]),new fn(this.vertices[0],this.vertices[1]),new fn(this.vertices[3],this.vertices[2]),new fn(this.vertices[7],this.vertices[6]),new fn(this.vertices[4],this.vertices[5]),new fn(this.vertices[0],this.vertices[4]),new fn(this.vertices[1],this.vertices[5]),new fn(this.vertices[2],this.vertices[6]),new fn(this.vertices[3],this.vertices[7])],this.centerEdges=this.edges.map(e=>e.getCenter(new wt))}computeFaces(){this.vertices.length>0&&this.computeVertices(),this.faces=[new wt().copy(this.vertices[0]).sub(this.vertices[2]).multiplyScalar(.5).add(this.vertices[2]),new wt().copy(this.vertices[7]).sub(this.vertices[5]).multiplyScalar(.5).add(this.vertices[5]),new wt().copy(this.vertices[4]).sub(this.vertices[1]).multiplyScalar(.5).add(this.vertices[1]),new wt().copy(this.vertices[3]).sub(this.vertices[6]).multiplyScalar(.5).add(this.vertices[6]),new wt().copy(this.vertices[4]).sub(this.vertices[3]).multiplyScalar(.5).add(this.vertices[3]),new wt().copy(this.vertices[1]).sub(this.vertices[6]).multiplyScalar(.5).add(this.vertices[6])]}};import{Object3D as P2,Matrix4 as A2,Light as D2}from"three";function Ba(i){let t=[];for(let e in i){let r=i[e];delete r.metadata,t.push(r)}return t}function E2(i){let t=[];for(let e in i)t.push(i[e]);return t}var fu=i=>class extends i{hasEntityChild(){return this.children.some(e=>uu(e))}isDescendantOf(e){e instanceof P2&&(e=e.uuid);let r=this;for(;r.parent;){if(r.parent.uuid===e)return!0;r=r.parent}return!1}attach(e,r){this.updateWorldMatrix(!0,!1);let n=new A2().copy(this.matrixWorld).invert();return e.parent!==null&&(e.parent.updateWorldMatrix(!0,!1),n.multiply(e.parent.matrixWorld)),uu(e)?e.hiddenMatrix.premultiply(n):e.applyMatrix4(n),e.updateWorldMatrix(!1,!1),this.add(e),r!==void 0&&(this.children.pop(),this.children.splice(r,0,e)),this}copy(e,r=!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)),r===!0)for(let n=0;n<e.children.length;n++){let o=e.children[n];this.add(o.clone())}return this}toJSON(e){let r=e===void 0,n={object:{uuid:"",objectType:""}};e===void 0&&(e={geometries:{},materials:{},textures:{},images:{},interactionStates:{},nodes:{}},n.metadata={version:1.5,type:"Object",generator:"Object3D.toJSON"});let o={uuid:this.uuid,objectType:this.type};if(this.name!==""&&(o.name=this.name),o.matrix=this.matrix.toArray(),this.castShadow===!0&&(o.castShadow=!0),this.receiveShadow===!0&&(o.receiveShadow=!0),this.visible===!1&&(o.visible=!1),this.frustumCulled===!1&&(o.frustumCulled=!1),this.renderOrder!==0&&(o.renderOrder=this.renderOrder),o.layers=this.layers.mask,JSON.stringify(this.userData)!=="{}"&&(o.userData=this.userData),this.children.length>0){o.children=[];for(let a of this.children)(uu(a)||a instanceof D2)&&o.children.push(a.toJSON(e).object)}if(r){let a=Ba(e.geometries),c=Ba(e.materials),f=Ba(e.textures),h=Ba(e.images),d=Ba(e.interactionStates),m=E2(e.nodes);a.length>0&&(n.geometries=a),c.length>0&&(n.materials=c),f.length>0&&(n.textures=f),h.length>0&&(n.images=h),d.length>0&&(n.interactionStates=d),m.length>0&&(n.nodes=m)}return n.object=o,n}fromJSON(e){return this.uuid=e.uuid,e.name!==void 0&&(this.name=e.name),e.matrix!==void 0?(this.matrix.fromArray(e.matrix),e.matrixAutoUpdate!==void 0&&(this.matrixAutoUpdate=e.matrixAutoUpdate),this.matrixAutoUpdate&&this.matrix.decompose(this.position,this.quaternion,this.scale)):(e.position!==void 0&&this.position.fromArray(e.position),e.rotation!==void 0&&this.rotation.fromArray(e.rotation),e.quaternion!==void 0&&this.quaternion.fromArray(e.quaternion),e.scale!==void 0&&this.scale.fromArray(e.scale)),this.castShadow=e.castShadow!==void 0,this.receiveShadow=e.receiveShadow!==void 0,e.visible!==void 0&&(this.visible=e.visible),e.frustumCulled!==void 0&&(this.frustumCulled=e.frustumCulled),e.renderOrder!==void 0&&(this.renderOrder=e.renderOrder),e.layers!==void 0&&(this.layers.mask=e.layers),e.userData!==void 0&&(this.userData=e.userData),this}};var hn=i=>"isEntity"in i;var pn=i=>class extends fu(i){constructor(){super(...arguments);this.objectType="";this.isEntity=!0;this.raycastLock=!1;this.scaleLock=!1;this.hiddenMatrix=new tp;this._singleBBox=new Ea;this._recursiveBBox=new Ea;this.singleBBoxNeedsUpdate=!0;this.recursiveBBoxNeedsUpdate=!0;this.forceComputeSize=!1}set visibility(r){this.visible=r;for(let n of this.children)hn(n)&&n.traverseEntity(o=>{fi(o)&&o.visible&&(o.objectHelper.visible=r)})}get visibility(){return this.visible}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(r=>{hn(r)&&(r.singleBBoxNeedsUpdate=!0,r.recursiveBBoxNeedsUpdate=!0)}),this.traverseEntity(r=>{r.singleBBoxNeedsUpdate=!0,r.recursiveBBoxNeedsUpdate=!0})}traverseEntity(r){r(this);for(let n of this.children)hn(n)&&n.traverseEntity(r)}updateMatrixWorld(r){this.matrixAutoUpdate&&this.updateMatrix(),(this.matrixWorldNeedsUpdate||r)&&(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,r=!0);for(let n of this.children)n.updateMatrixWorld(r)}updateWorldMatrix(r,n){let o=this.parent;if(r&&o!==null&&o.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)),n)for(let a of this.children)a.updateWorldMatrix(!1,!0)}shallowClone(r){return new this.constructor().shallowCopy(this,r)}shallowCopy(r,n=!0){if(super.copy(r,!1),this.raycastLock=r.raycastLock,this.scaleLock=r.scaleLock,this.hiddenMatrix.copy(r.hiddenMatrix),n===!0)for(let o of r.children)hn(o)&&this.add(o.shallowClone());return this}clone(r){return new this.constructor().copy(this,r)}copy(r,n=!0){if(super.copy(r,!1),this.raycastLock=r.raycastLock,this.scaleLock=r.scaleLock,this.hiddenMatrix.copy(r.hiddenMatrix),n===!0)for(let o of r.children)hn(o)&&this.add(o.clone());return this}keepChildrenMatrixWorld(){let r=new tp,n=this.matrixWorld.clone();this.updateWorldMatrix(!1,!1),r.copy(this.matrixWorld).invert(),r.multiply(n);for(let o of this.children)hn(o)&&o.hiddenMatrix.premultiply(r)}toJSON(r){let n=super.toJSON(r),o=n.object;return this.raycastLock===!0&&(o.raycastLock=!0),this.scaleLock===!0&&(o.scaleLock=!0),o.hiddenMatrix=this.hiddenMatrix.toArray(),n}fromJSON(r){return super.fromJSON(r),r.raycastLock!==void 0&&(this.raycastLock=r.raycastLock),r.scaleLock!==void 0&&(this.scaleLock=r.scaleLock),this.hiddenMatrix.fromArray(r.hiddenMatrix),this}fromObject3D(r){let n=r.children;return r.children=[],Object.assign(r,{raycastLock:!1,scaleLock:!1,hiddenMatrix:new tp}),this.copy(r),r.children=n,this}toObjectTransformState(r=[]){this.updateWorldMatrix(!0,!1);let n={position:this.position.toArray(),rotation:[this.rotation.x,this.rotation.y,this.rotation.z],scale:this.scale.toArray(),hiddenMatrix:this.hiddenMatrix.toArray()};return ss(n,r)}fromObjectTransformState(r){return r.position&&this.position.fromArray(r.position),r.rotation&&this.rotation.fromArray(r.rotation),r.scale&&this.scale.fromArray(r.scale),r.hiddenMatrix&&this.hiddenMatrix.fromArray(r.hiddenMatrix),this.updateMatrix(),this}toState(r=[]){let n=j({name:this.name,visible:this.visible,raycastLock:this.raycastLock},this.toObjectTransformState(r));return ss(n,r)}fromState(r,n){return r.name&&(this.name=r.name),r.raycastLock!==void 0&&(this.raycastLock=r.raycastLock),r.type!=="OrthographicCamera"&&r.type!=="PerspectiveCamera"&&(this.matrixAutoUpdate=!1),r.visible!==void 0&&(this.visibility=r.visible),this.fromObjectTransformState(r),this}};import{Object3D as B2,Vector3 as Ga,Euler as Y0,MathUtils as Ui}from"three";var go=class extends B2{constructor(e,r={}){super();this.object=e;let n=e.recursiveBBox.getSize(new Ga),o=.1;this.parameters=Lc.defaultData(n.toArray(),o),co(this.parameters,r),this.update(),this.setHideBase(this.parameters.hideBase)}refreshMaterial(){if("material"in this.object)for(let e of this.children)e.material=this.object.material}setHideBase(e){if("material"in this.object){if(Array.isArray(this.object.material)){if(this.children.length>0){for(let r of this.object.material)r.visible=!0;if(e){let r=this.object.material.map(n=>n.clone());for(let n of this.children)n.material=r}else for(let r of this.children)r.material=this.object.material}for(let r of this.object.material)r.visible=!e}else{if(this.children.length>0)if(this.object.material.visible=!0,e){let r=this.object.material.clone();for(let n of this.children)n.material=r}else for(let r of this.children)r.material=this.object.material;this.object.material.visible=!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 r=0,n=e-this.children.length;r<n;++r){let o=this.object.shallowClone(!1);o.visible=!0,this.add(o),this.parameters.hideBase&&this.setHideBase(!0)}else for(let r=0,n=this.children.length-e;r<n;++r)this.remove(this.children[0])}_updateRadial(e){let r=e.radial,n=r.start*Ui.DEG2RAD,o=r.end*Ui.DEG2RAD,a=n-o,c=new Y0(r.rotation[0]*Ui.DEG2RAD,r.rotation[1]*Ui.DEG2RAD,r.rotation[2]*Ui.DEG2RAD),f;switch(r.axis){case"z":f=new Ga(0,0,1);break;case"y":f=new Ga(0,1,0);break;default:case"x":f=new Ga(1,0,0);break}for(let[h,d]of this.children.entries()){d.hiddenMatrix.identity(),d.scale.x=r.scale[0],d.scale.y=r.scale[1],d.scale.z=r.scale[2],d.position.setScalar(0);let m=a/e.count*h-n;switch(r.axis){case"x":d.rotation.set(0,m,0);break;case"y":d.rotation.set(0,0,m);break;case"z":d.rotation.set(m,0,0);break}d.translateOnAxis(f,r.radius),d.position.x+=r.position[0],d.position.y+=r.position[1],d.position.z+=r.position[2],r.alignment===!0?(d.rotation.x+=c.x,d.rotation.y+=c.y,d.rotation.z+=c.z):d.rotation.copy(c)}}_updateLinear(e){if(e.type!=="linear")throw new Error;let r=e.linear,n=new Y0(r.rotation[0]*Ui.DEG2RAD,r.rotation[1]*Ui.DEG2RAD,r.rotation[2]*Ui.DEG2RAD);for(let[o,a]of this.children.entries())a.hiddenMatrix.identity(),a.scale.x=1+(r.scale[0]-1)*o,a.scale.y=1+(r.scale[1]-1)*o,a.scale.z=1+(r.scale[2]-1)*o,a.rotation.x=n.x*o,a.rotation.y=n.y*o,a.rotation.z=n.z*o,a.position.x=r.position[0]*o,a.position.y=r.position[1]*o,a.position.z=r.position[2]*o}_updateGrid(e){let r=0,n=e.grid;if(n.useCenter===!0){let o={x:n.count[0]%2===0?2:1,y:n.count[1]%2===0?2:1,z:n.count[2]%2===0?2:1},a=new Ga(n.size[0]*(n.count[0]-o.x)*.5,n.size[1]*(n.count[1]-o.y)*.5,n.size[2]*(n.count[2]-o.z)*.5);for(let c=0;c<n.count[0];c++)for(let f=0;f<n.count[1];f++)for(let h=0;h<n.count[2];h++){let d=this.children[r++];d.hiddenMatrix.identity(),d.scale.setScalar(1),d.rotation.set(0,0,0),d.position.x=n.size[0]*c-a.x,d.position.y=n.size[1]*f-a.y,d.position.z=n.size[2]*h-a.z}}else for(let o=0;o<n.count[0];o++)for(let a=0;a<n.count[1];a++)for(let c=0;c<n.count[2];c++){let f=this.children[r++];f.hiddenMatrix.identity(),f.scale.setScalar(1),f.rotation.set(0,0,0),f.position.x=n.size[0]*o,f.position.y=-n.size[1]*a,f.position.z=-n.size[2]*c}}fromJSON(e){return this}toJSON(){return{}}fromClonerState(e){return e.hideBase!==void 0&&this.setHideBase(e.hideBase),co(this.parameters,e),this.update(),this}};var rr=class extends pn(G2){constructor(e,r){super(e,r);this.isAbstractMesh=!0;Array.isArray(r)&&(this.selectedMaterial=0,e.groups.length===0&&e.addGroup(0,e.getAttribute("position").count,0))}get cloner(){return this._cloner}set cloner(e){this._cloner&&this.remove(this._cloner),e&&this.add(e),this._cloner=e}getSelectedMaterial(e){return Array.isArray(this.material)?(this.selectedMaterial===void 0&&(this.selectedMaterial=e!=null?e:0),this.material[e!=null?e:this.selectedMaterial]):this.material}setSelectedMaterial(e,r){Array.isArray(this.material)?(this.selectedMaterial===void 0&&(this.selectedMaterial=r!=null?r:0),r=r!=null?r:this.selectedMaterial,this.material[r].dispose(),this.material[r]=e):(this.material.dispose(),this.material=e)}updateGeometry(e){let r=this.geometry,n=Qh[r.userData.type],o=this.objectType==="NonParametric"?Object.assign({},r.userData,{geometry:r}):r.userData,a=n.build(n.normalizeInputs(e,o)),c=r.uuid;if(this.geometry.dispose(),this.geometry=a,this.geometry.uuid=c,this.geometry.computeBoundingSphere(),this.cloner)for(let f of this.cloner.children)f.geometry=this.geometry}resizeGeometry(e,r,n){Aa.resizeGeometry(this.geometry,{width:e,height:r,depth:n})}shallowClone(e){return new this.constructor(this.geometry,this.material).shallowCopy(this,e)}clone(e){let r=this.objectType==="NonParametric"?Object.assign({},this.geometry.userData,{geometry:this.geometry.clone()}):this.geometry.userData,n=Da(r),o=Array.isArray(this.material)?this.material.map(a=>a.clone()):this.material.clone();return new this.constructor(n,o).copy(this,e)}copy(e,r=!0){return super.copy(e,r),e.cloner&&(this.cloner=new go(e,e.cloner.parameters),this.add(this.cloner)),this}setFromClonerState(e){e===null?this.cloner=void 0:(this.cloner===void 0&&(this.cloner=new go(this)),this.cloner.fromClonerState(e))}fromState(e,r){var n,o;return super.fromState(e),e.type==="Mesh"&&(this.setFromClonerState(e.cloner),this.castShadow=(n=e.castShadow)!=null?n:!0,this.receiveShadow=(o=e.receiveShadow)!=null?o:!0),this}};import{NormalBlending as nD,ShaderMaterial as iD,FrontSide as oD}from"three";import{CubeReflectionMapping as J2,CubeRefractionMapping as K2,CubeUVReflectionMapping as Y2,LinearEncoding as tv,sRGBEncoding as X2}from"three";var Ra=class{constructor(t){t=t!=null?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 R2}from"three";var Pe=class{constructor(t){this.hashProperties=void 0;this.isNode=!0;this.shortcuts={};this.uuid=R2.generateUUID(),this.type=t,this.name="",this.userData={}}analyze(t,e){e=e!=null?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,r){return r=r!=null?r:{},this.analyze(t,r),this.flow(t,e,r)}flow(t,e,r){r=r!=null?r:{},t.addFlow(r.slot,r.cache,r.context);let n={result:this.build(t,e),code:t.clearNodeCode(),extra:t.context.extra};return t.removeFlow(),n}build(t,e,r){e=e!=null?e:this.getType(t,e);let n=t.getNodeData(r!=null?r:this);return t.analyzing&&this.appendDepsNode(t,n,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,r)}updateFrame(t){}generateReadonly(t,e,r,n,o,a){return""}generate(t,e,r,n,o){return""}parse(t,e,r,n){}appendDepsNode(t,e,r){e.deps=(e.deps||0)+1;let n=t.getTypeLength(r);(n>(e.outputMax||0)||this.getType(t,r))&&(e.outputMax=n,e.output=r)}setName(t){this.name=t}getName(){return this.name}getType(t,e){return e==="sampler2D"||e==="samplerCube"?e:this.type}getJSONNode(t){if((t==null?void 0:t.materials)&&(t==null?void 0:t.materials[this.uuid])!==void 0)return t.materials[this.uuid]}getHash(){let t="{",e,r;for(e in this)r=this[e],r instanceof Pe&&(t+='"'+e+'":'+r.getHash()+",");if(this.hashProperties)for(let n=0;n<this.hashProperties.length;n++)e=this.hashProperties[n],r=this[e],t+='"'+e+'":"'+String(r)+'",';return t+='"id":"'+this.uuid+'"}',t}copy(t){return this.name=t.name,t.type&&(this.type=t.type),t.frameId&&(this.frameId=t.frameId),t.hashProperties&&(this.hashProperties=t.hashProperties.map(e=>e)),this.userData=JSON.parse(JSON.stringify(t.userData)),this.shortcuts=JSON.parse(JSON.stringify(t.shortcuts)),this}clone(){return new this.constructor().copy(this)}createJSONNode(t){let e=t===void 0||typeof t=="string";if(typeof this.type!="string")throw new Error("Node does not allow serialization.");let r={};return r.uuid=this.uuid,r.type=this.type,this.name!==""&&(r.name=this.name),JSON.stringify(this.userData)!=="{}"&&(r.userData=this.userData),!e&&t&&(t.nodes[this.uuid]=r),r}toJSON(t){var e;return(e=this.getJSONNode(t))!=null?e:this.createJSONNode(t)}fromJSON(t,e){return this.uuid=t.uuid,this.type=t.type,t.name&&(this.name=t.name),t.userData&&(this.userData=t.userData),this}};var rp=class{constructor(){this.nodes={};this.keywords={}}add(t){this.nodes[t.name]=t}addKeyword(t,e,r){r=r!==void 0?r:!0,this.keywords[t]={callback:e,cache:r}}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}},Xt=new rp;import{Vector2 as X0}from"three";import{MathUtils as z2}from"three";var Ee=class extends Pe{constructor(e,r){super(e);this.scope="";r=r!=null?r:{},this.shared=r.shared!==void 0?r.shared:!0,this.unique=r.unique!==void 0?r.unique:!1}build(e,r,n,o){if(r=r!=null?r:this.getType(e),this.getShared(e,r)){let a=this.getUnique(e,r);a&&this.uuid===void 0&&(this.uuid=z2.generateUUID()),n=e.getUUID(n!=null?n:this.getUUID(),!a);let c=e.getNodeData(n),f=c.output||this.getType(e);if(e.analyzing)return(c.deps||0)>0||this.getLabel()?(this.appendDepsNode(e,c,r),this.generate(e,r,n)):super.build(e,r,n);if(a)return c.name=c.name||super.build(e,r,n),c.name;if(!this.getLabel()&&(!this.getShared(e,f)||e.context.ignoreCache||c.deps===1))return super.build(e,r,n);n=this.getUUID(!1);let h=this.getTemp(e,n);if(h)return e.format(h,f,r);{h=super.generate(e,r,n,c.output,o);let d=this.generate(e,f,n);return e.addNodeCode(h+" = "+d+";"),e.format(h,f,r)}}return super.build(e,r,n)}getShared(e,r){return r!=="sampler2D"&&r!=="samplerCube"&&this.shared}getUnique(e,r){return this.unique}setLabel(e){return this.label=e,this}getLabel(){return this.label}getUUID(e){let r=this.uuid;return typeof this.scope=="string"&&(r=this.scope+"-"+r),r}getTemp(e,r){r=r||this.uuid;let n=e.getVars()[r];return n?n.name:void 0}generate(e,r,n,o,a){return this.getShared(e,r)||console.error("TempNode is not shared"),n=n!=null?n:this.uuid,e.getTempVar(n,o!=null?o:this.getType(e),a,this.getLabel()).name}};var Ct=class extends Ee{constructor(e,r){r=r!=null?r:{},r.shared=r.shared!==void 0?r.shared:!1;super(e,r);this.readonly=!1}setReadonly(e){return this.readonly=e,this.hashProperties=this.readonly?["value"]:void 0,this}getReadonly(){return this.readonly}createJSONNode(e){let r=super.createJSONNode(e);return this.readonly===!0&&(r.readonly=this.readonly),r}fromJSON(e,r){return super.fromJSON(e,r),e.readonly!==void 0&&this.setReadonly(e.readonly),this}generate(e,r,n,o,a,c){n=e.getUUID(n!=null?n:this.getUUID()),o=o!=null?o:this.getType(e);let f=e.getNodeData(n);return this.getReadonly()&&this.generateReadonly!==void 0?this.generateReadonly(e,r,n,o,a,c):e.isShader("vertex")?(f.vertex||(f.vertex=e.createVertexUniform(o,this,a,c,this.getLabel())),e.format(f.vertex.name,o,r)):(f.fragment||(f.fragment=e.createFragmentUniform(o,this,a,c,this.getLabel())),e.format(f.fragment.name,o,r))}copy(e){return super.copy(e),this.readonly=e.readonly,this}};var mr=class extends Ct{constructor(e=0,r){super("v2");this.nodeType="Vector2";this.value=e instanceof X0?e:new X0(e,r)}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,r,n,o,a,c){return e.format("vec2("+this.value.x+", "+this.value.y+")",o,r)}copy(e){return super.copy(e),this.value.copy(e.value),this}};import{Vector3 as Z0}from"three";var gr=class extends Ct{constructor(e=0,r,n){super("v3");this.nodeType="Vector3";this.value=e instanceof Z0?e:new Z0(e,r,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}get z(){return this.value.z}set z(e){this.value.z=e}generateReadonly(e,r,n,o,a,c){return e.format("vec3("+this.value.x+", "+this.value.y+", "+this.value.z+")",o,r)}copy(e){return super.copy(e),this.value.copy(e.value),this}};var hi=class extends Ct{constructor(e){super("v4");this.nodeType="Vector4";this.value=e instanceof Er?e:new Er(e.r,e.g,e.b,e.a)}generateReadonly(e,r,n,o,a,c){return e.format("vec4("+this.value.r+", "+this.value.g+", "+this.value.b+", "+this.value.a+")",o,r)}copy(e){return super.copy(e),this.value.copy(e.value),this}};var F2=/^\s*([a-z_0-9]+)\s([a-z_0-9]+)\s*\((.*?)\)/i,Q0=/[a-z_0-9]+/gi,we=class extends Ee{constructor(e,r,n,o,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,r,n,o)}getShared(e,r){return!this.isMethod}getType(e){return e.getTypeByFormat(this.type)}getInputByName(e){if(this.inputs){let r=this.inputs.length;for(;r--;)if(this.inputs[r].name===e)return this.inputs[r]}}getIncludeByName(e){if(this.includes){let r=this.includes.length;for(;r--;)if(this.includes[r].name===e)return this.includes[r]}}generate(e,r,n,o,a){let c,f=0,h=this.src;if(this.includes)for(let m=0;m<this.includes.length;m++)e.include(this.includes[m],this);for(let m in this.extensions)e.extensions[m]=!0;let d=[];for(;c=Q0.exec(this.src);)d.push(c);for(let m=0;m<d.length;m++){let x=d[m],S=x[0],w=this.isMethod?!this.getInputByName(S):!0,B=S;if(this.keywords[S]||this.useKeywords&&w&&Xt.containsKeyword(S)){let O=this.keywords[S];if(!O){let T=Xt.getKeywordData(S);T.cache&&(O=e.keywords[S]),O=O||Xt.getKeyword(S,e),T.cache&&(e.keywords[S]=O)}B=O.build(e)}S!==B&&(h=h.substring(0,x.index+f)+B+h.substring(x.index+S.length+f),f+=B.length-S.length),this.getIncludeByName(B)===void 0&&Xt.contains(B)&&e.include(Xt.get(B))}return r==="source"?h:this.isMethod?(this.isInterface||e.include(this,void 0,h),this.name):e.format("( "+h+" )",this.getType(e),r)}parse(e,r,n,o){if(this.src=e||"",this.includes=r!=null?r:[],this.extensions=n!=null?n:{},this.keywords=o!=null?o:{},this.isMethod){let a=F2.exec(this.src);if(this.inputs=[],a&&a.length==4){this.type=a[1],this.name=a[2];let c=a[3].match(Q0);if(c){let f=0;for(;f<c.length;){let h=c[f++],d;h==="in"||h==="out"||h==="inout"?d=c[f++]:(d=h,h="");let m=c[f++];this.inputs.push({name:m,type:d,qualifier:h})}}this.isInterface=this.src.indexOf("{")===-1}else this.type="",this.name=""}}copy(e){return super.copy(e),this.isMethod=e.isMethod,this.useKeywords=e.useKeywords,e.type!==void 0&&(this.type=e.type),this.parse(e.src,e.includes,e.extensions,e.keywords),this}toJSON(e){var n;let r=this.getJSONNode(e);if(!r){r=this.createJSONNode(e),r.src=this.src,r.isMethod=this.isMethod,r.useKeywords=this.useKeywords,this.isMethod||(r.type=this.type),r.extensions=JSON.parse(JSON.stringify(this.extensions));let o={};for(let a in this.keywords)o[a]=this.keywords[a].toJSON(e).uuid;if(r.keywords=o,(n=this.includes)!=null&&n.length){let a=[];for(let c=0;c<this.includes.length;c++)a.push(this.includes[c].toJSON(e).uuid);r.includes=a}r.isMethod=this.isMethod,r.inputs=this.inputs}return r.nodeType=this.nodeType,r}fromJSON(e,r){if(super.fromJSON(e,r),e.inputs!==void 0&&(this.inputs=e.inputs),e.isMethod!==void 0&&(this.isMethod=e.isMethod),e.src&&(this.src=e.src),e.isMethod&&(this.isMethod=e.isMethod),e.useKeywords&&(this.useKeywords=e.useKeywords),e.type&&(this.type=e.type),e.extensions&&(this.extensions=e.extensions),e.keywords&&r){this.keywords={};for(let n in e.keywords)this.keywords[n]=r.getNode(e.keywords[n])}return e.includes&&r&&(this.includes=e.includes.map(n=>r.getNode(n))),this}};var V2=/^([a-z_0-9]+)\s([a-z_0-9]+)\s?\=?\s?(.*?)(\;|$)/i,np=class extends Ee{constructor(e="",r){super();this.src="";this.useDefine=!1;this.nodeType="Const";this.parse(e||np.PI,void 0,void 0,void 0,r)}getType(e){return e.getTypeByFormat(this.type)}parse(e,r,n,o,a){this.src=e||"";let c,f,h="",d=V2.exec(e);this.useDefine=a!=null?a:this.src.charAt(0)==="#",d&&d.length>1?(f=d[1],c=d[2],h=d[3]):(c=this.src,f="f"),this.name=c,this.type=f,this.value=h}build(e,r){if(r==="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),r)}generate(e,r,n,o,a){return e.format(this.name,this.getType(e),r)}copy(e){return super.copy(e),this.parse(e.src,void 0,void 0,void 0,e.useDefine),this}},rt=np;rt.PI="PI",rt.PI2="PI2",rt.RECIPROCAL_PI="RECIPROCAL_PI",rt.RECIPROCAL_PI2="RECIPROCAL_PI2",rt.LOG2="LOG2",rt.EPSILON="EPSILON";var U2=new RegExp(`^structs*([a-z_0-9]+)s*{s*((.|
|
|
21
|
+
)*?)}`,"gim"),j2=new RegExp("s*(w*?)s*(w*?)(=|;)","gim"),Ls=class extends Ee{constructor(e=""){super();this.inputs=[];this.src="";this.nodeType="Struct";this.parse(e)}getType(e){return e.getTypeByFormat(this.name)}getInputByName(e){let r=this.inputs.length;for(;r--;)if(this.inputs[r].name===e)return this.inputs[r]}generate(e,r,n,o,a){return r==="source"?this.src+";":e.format("( "+this.src+" )",this.getType(e),r)}parse(e=""){this.src=e,this.inputs=[];let r=U2.exec(e);if(r){let n=r[2],o;for(;o=j2.exec(n);)this.inputs.push({type:o[1],name:o[2]});this.name=r[1]}else this.name="";this.type=this.name}};var Ts=class extends Ee{constructor(e){super("v2",{shared:!1});this.nodeType="UV";this.index=e!=null?e:0}generate(e,r){e.requires.uv[this.index]=!0;let n=this.index>0?this.index+1:"",o=e.isShader("vertex")?"uv"+n:"vUv"+n;return e.format(o,this.getType(e),r)}copy(e){return super.copy(e),this.index=e.index,this}toJSON(e){let r=this.getJSONNode(e);return r||(r=this.createJSONNode(e),r.index=this.index),r.nodeType=this.nodeType,r}fromJSON(e,r){return super.fromJSON(e,r),e.index&&(this.index=e.index),this}};Xt.addKeyword("uv",function(){return new Ts});Xt.addKeyword("uv2",function(){return new Ts(1)});import{LinearEncoding as k2,sRGBEncoding as H2}from"three";var yo=class extends Ee{constructor(e=new Pe,r){super("v4");this.nodeType="ColorSpace";this.factor=new Pe;this.input=e,this.method=r!=null?r:yo.LINEAR_TO_LINEAR,this.hashProperties=["method"]}static getEncodingComponents(e){switch(e){case k2:return["Linear"];case H2:return["sRGB"];default:return[]}}generate(e,r){var f;let n=this.input.build(e,"v4"),o=this.getType(e),a=yo.Nodes[this.method],c=e.include(a);if(c===yo.LINEAR_TO_LINEAR)return e.format(n,o,r);if(((f=a.inputs)==null?void 0:f.length)===2){let h=this.factor.build(e,"f");return e.format(c+"( "+n+", "+h+" )",o,r)}else return e.format(c+"( "+n+" )",o,r)}fromEncoding(e){let r=yo.getEncodingComponents(e);this.method="LinearTo"+r[0],this.factor=r[1]}fromDecoding(e){let r=yo.getEncodingComponents(e);this.method=r[0]+"ToLinear",this.factor=r[1]}copy(e){return super.copy(e),this.input.copy(e.input),this.method=e.method,this.factor.copy(e.factor),this}},Cr=yo;Cr.Nodes={LinearToLinear:new we(["vec4 LinearToLinear( in vec4 value ) {"," return value;","}"].join(`
|
|
22
|
+
`)),sRGBToLinear:new we(["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(`
|
|
23
|
+
`)),LinearTosRGB:new we(["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(`
|
|
24
|
+
`))},Cr.LINEAR_TO_LINEAR="LinearToLinear",Cr.SRGB_TO_LINEAR="sRGBToLinear",Cr.LINEAR_TO_SRGB="LinearTosRGB";var gt=class extends we{constructor(e="",r,n,o,a){super(e,a,o,n,r);this.nodeType="Expression"}};import{Texture as W2}from"three";var kn=class extends W2{toJSON(t){let e=super.toJSON(t),r=t===void 0||typeof t=="string";if(this.image!==void 0&&!r){let n=this.image;if(Array.isArray(n)){t.images[n.uuid].url=[];for(let o=0;o<n.length;o++)t.images[n.uuid].url[o]=ev(n[o])}else t.images[n.uuid].url=ev(n)}return e}};function ev(i){return typeof HTMLImageElement<"u"&&i instanceof HTMLImageElement||typeof HTMLCanvasElement<"u"&&i instanceof HTMLCanvasElement||typeof ImageBitmap<"u"&&i instanceof ImageBitmap?q2(i):(console.warn("THREE.Texture: Unable to serialize Texture."),"")}var Ns;function q2(i){if(/^data:/i.test(i.src))return i.src;let t;if(i instanceof HTMLCanvasElement)t=i;else{Ns===void 0&&(Ns=document.createElement("canvas")),Ns.width=i.width,Ns.height=i.height;let r=Ns.getContext("2d");i instanceof ImageData?r.putImageData(i,0,0):r.drawImage(i,0,0,i.width,i.height),t=Ns}let e=i.src.startsWith("blob:")?i.fileName:i.src;return/\.jpe?g$/i.test(e)?t.toDataURL("image/jpeg",.6):t.toDataURL("image/png")}var Lr=class extends Ct{constructor(e=new kn,r,n,o){super("v4",{shared:!0});this.nodeType="Texture";this.value=e,this.uv=r!=null?r:new Ts,this.bias=n,this.project=o!==void 0?o:!1}getTexture(e,r){return super.generate(e,r,this.value.uuid,"t")}generate(e,r){var m;if(r==="sampler2D")return this.getTexture(e,r);let n=this.getTexture(e,r),o=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 c,f;this.project?c="texture2DProj":c=a?"tex2DBias":"tex2D",a?f=c+"( "+n+", "+o+", "+a+" )":f=c+"( "+n+", "+o+" )";let h={include:e.isShader("vertex"),ignoreCache:!0},d=this.getType(e);return e.addContext(h),this.colorSpace=(m=this.colorSpace)!=null?m:new Cr(new gt("",d)),this.colorSpace.fromDecoding(e.getTextureEncodingFromMap(this.value)),this.colorSpace.input.parse(f),f=this.colorSpace.build(e,d),e.removeContext(),e.format(f,d,r)}copy(e){return super.copy(e),e.value.isRenderTargetTexture?this.value=e.value:this.value.copy(e.value),this.uv.copy(e.uv),e.bias?this.bias?this.bias.copy(e.bias):this.bias=e.bias.clone():this.bias=void 0,e.colorSpace?this.colorSpace?this.colorSpace.copy(e.colorSpace):this.colorSpace=e.colorSpace.clone():this.colorSpace=void 0,this.project=e.project,e.value.isRenderTargetTexture||(this.value.updateMatrix(),this.value.needsUpdate=!0),this}};var ve=class extends Ct{constructor(e){super("f");this.nodeType="Float";this.value=e!=null?e:0}generateReadonly(e,r,n,o,a,c){return e.format(this.value+(this.value%1?"":".0"),o,r)}copy(e){return super.copy(e),this.value=e.value,this}};var za=class extends Ee{constructor(e,r){super();this.inputs=[];this.nodeType="FunctionCall";this.value=e,this.inputs=r!=null?r:[]}getFunction(){return this.value}getType(e){return this.value.getType(e)}generate(e,r,n,o,a){o=this.getType(e);let c=this.value,f=c.build(e,r)+"( ",h=[];if(c.inputs){for(let d=0;d<c.inputs.length;d++){let m=c.inputs[d],x=this.inputs[d]||this.inputs[m.name];h.push(x.build(e,e.getTypeByFormat(m.type)))}f+=h.join(", ")+" )"}return e.format(f,o,r)}copy(e){return super.copy(e),this.value.copy(e.value),this.inputs=e.inputs.map(r=>r.clone()),this}toJSON(e){var n;let r=this.getJSONNode(e);if(!r){let o=this.value;if(r=this.createJSONNode(e),r.value=this.value.toJSON(e).uuid,(n=o.inputs)!=null&&n.length){r.inputs={};for(let a=0;a<o.inputs.length;a++){let c=o.inputs[a],f=this.inputs[a];r.inputs[c.name]=f.toJSON(e).uuid}}}return r}};var ip=class extends Ee{constructor(e=new Pe,r=new Pe,n=ip.ADD){super();this.nodeType="Operator";this.type=e.type,this.a=e,this.b=r,this.op=n}getType(e){let r=this.a.getType(e),n=this.b.getType(e);return e.isTypeMatrix(r)?"v4":e.getTypeLength(n)>e.getTypeLength(r)?n:r}generate(e,r){let n=this.getType(e);this.type=n;let o=this.a.build(e,n),a=this.b.build(e,n);return e.format("( "+o+" "+this.op+" "+a+" )",n,r)}copy(e){return super.copy(e),this.a.copy(e.a),this.b.copy(e.b),this.op=e.op,this}},Br=ip;Br.ADD="+",Br.SUB="-",Br.MUL="*",Br.DIV="/";var ut=class extends Ee{constructor(e=new Pe,r=ut.ABS,n,o){super();this.nodeType="Math";this.a=e,typeof r!="string"?this.b=r:o=r,typeof n!="string"?this.c=n:o=n,this.method=o,this.hashProperties=["method"]}getNumInputs(e){switch(this.method){case ut.MIX:case ut.CLAMP:case ut.REFRACT:case ut.SMOOTHSTEP:case ut.FACEFORWARD:return 3;case ut.MIN:case ut.MAX:case ut.MOD:case ut.STEP:case ut.REFLECT:case ut.DISTANCE:case ut.DOT:case ut.CROSS:case ut.POW:return 2;default:return 1}}getInputType(e){let r=e.getTypeLength(this.a.getType(e)),n=this.b?e.getTypeLength(this.b.getType(e)):0,o=this.c?e.getTypeLength(this.c.getType(e)):0;return r>n&&r>o?this.a.getType(e):n>o?this.b.getType(e):this.c.getType(e)}getType(e){switch(this.method){case ut.LENGTH:case ut.DISTANCE:case ut.DOT:return"f";case ut.CROSS:return"v3"}return this.getInputType(e)}generate(e,r){let n,o,a,c=this.a?e.getTypeLength(this.a.getType(e)):0,f=this.b?e.getTypeLength(this.b.getType(e)):0,h=this.c?e.getTypeLength(this.c.getType(e)):0,d=this.getInputType(e),m=this.getType(e);switch(this.type=m,this.method){case ut.NEGATE:return e.format("( -"+this.a.build(e,d)+" )",d,r);case ut.INVERT:return e.format("( 1.0 - "+this.a.build(e,d)+" )",d,r);case ut.CROSS:n=this.a.build(e,"v3"),o=this.b.build(e,"v3");break;case ut.STEP:n=this.a.build(e,c===1?"f":d),o=this.b.build(e,d);break;case ut.MIN:case ut.MAX:case ut.MOD:n=this.a.build(e,d),o=this.b.build(e,f===1?"f":d);break;case ut.REFRACT:n=this.a.build(e,d),o=this.b.build(e,d),a=this.c.build(e,"f");break;case ut.MIX:n=this.a.build(e,d),o=this.b.build(e,d),a=this.c.build(e,h===1?"f":d);break;default:n=this.a.build(e,d),this.b&&(o=this.b.build(e,d)),this.c&&(a=this.c.build(e,d));break}let x=[];x.push(n),o&&x.push(o),a&&x.push(a);let S=this.getNumInputs(e);if(x.length!==S)throw Error(`Arguments not match used in "${this.method}". Require ${S}, currently ${x.length}.`);return e.format(this.method+"( "+x.join(", ")+" )",m,r)}copy(e){return super.copy(e),this.a.copy(e.a),this.b=e.b instanceof Pe?e.b.clone():e.b,this.c=e.c instanceof Pe?e.c.clone():e.c,this.method=e.method,this}},Fe=ut;Fe.RAD="radians",Fe.DEG="degrees",Fe.EXP="exp",Fe.EXP2="exp2",Fe.LOG="log",Fe.LOG2="log2",Fe.SQRT="sqrt",Fe.INV_SQRT="inversesqrt",Fe.FLOOR="floor",Fe.CEIL="ceil",Fe.NORMALIZE="normalize",Fe.FRACT="fract",Fe.SATURATE="saturate",Fe.SIN="sin",Fe.COS="cos",Fe.TAN="tan",Fe.ASIN="asin",Fe.ACOS="acos",Fe.ARCTAN="atan",Fe.ABS="abs",Fe.SIGN="sign",Fe.LENGTH="length",Fe.NEGATE="negate",Fe.INVERT="invert",Fe.MIN="min",Fe.MAX="max",Fe.MOD="mod",Fe.STEP="step",Fe.REFLECT="reflect",Fe.DISTANCE="distance",Fe.DOT="dot",Fe.CROSS="cross",Fe.POW="pow",Fe.MIX="mix",Fe.CLAMP="clamp",Fe.REFRACT="refract",Fe.SMOOTHSTEP="smoothstep",Fe.FACEFORWARD="faceforward";var _s=class extends Ee{constructor(e=new Pe,r=new Pe,n=new Pe){super("v4");this.nodeType="TextureCubeUV";this.value=e,this.uv=r,this.bias=n}bilinearCubeUV(e,r,n,o){var h,d,m,x;let a=new za(_s.Nodes.bilinearCubeUV,[r,n,o]);this.colorSpaceTL=(h=this.colorSpaceTL)!=null?h:new Cr(new gt("","v4")),this.colorSpaceTL.fromDecoding(e.getTextureEncodingFromMap(this.value.value)),this.colorSpaceTL.input.parse(a.build(e)+".tl"),this.colorSpaceTR=(d=this.colorSpaceTR)!=null?d:new Cr(new gt("","v4")),this.colorSpaceTR.fromDecoding(e.getTextureEncodingFromMap(this.value.value)),this.colorSpaceTR.input.parse(a.build(e)+".tr"),this.colorSpaceBL=(m=this.colorSpaceBL)!=null?m:new Cr(new gt("","v4")),this.colorSpaceBL.fromDecoding(e.getTextureEncodingFromMap(this.value.value)),this.colorSpaceBL.input.parse(a.build(e)+".bl"),this.colorSpaceBR=(x=this.colorSpaceBR)!=null?x:new Cr(new gt("","v4")),this.colorSpaceBR.fromDecoding(e.getTextureEncodingFromMap(this.value.value)),this.colorSpaceBR.input.parse(a.build(e)+".br");let c={include:e.isShader("vertex"),ignoreCache:!0};e.addContext(c),this.colorSpaceTLExp=new gt(this.colorSpaceTL.build(e,"v4"),"v4"),this.colorSpaceTRExp=new gt(this.colorSpaceTR.build(e,"v4"),"v4"),this.colorSpaceBLExp=new gt(this.colorSpaceBL.build(e,"v4"),"v4"),this.colorSpaceBRExp=new gt(this.colorSpaceBR.build(e,"v4"),"v4"),e.removeContext();let f=new gt("mix( mix( cubeUV_TL, cubeUV_TR, cubeUV.f.x ), mix( cubeUV_BL, cubeUV_BR, cubeUV.f.x ), cubeUV.f.y )","v4");return f.keywords.cubeUV_TL=this.colorSpaceTLExp,f.keywords.cubeUV_TR=this.colorSpaceTRExp,f.keywords.cubeUV_BL=this.colorSpaceBLExp,f.keywords.cubeUV_BR=this.colorSpaceBRExp,f.keywords.cubeUV=a,f}generate(e,r){if(e.isShader("fragment")){let n=this.uv,o=this.bias||e.context.roughness,a=new za(_s.Nodes.roughnessToMip,[o]),c=new Fe(a,_s.Nodes.m0,_s.Nodes.cubeUV_maxMipLevel,Fe.CLAMP),f=new Fe(c,Fe.FLOOR),h=new Fe(c,Fe.FRACT),d=this.bilinearCubeUV(e,this.value,n,f),m=this.bilinearCubeUV(e,this.value,n,new Br(f,new ve(1).setReadonly(!0),Br.ADD)),x=new Fe(d,m,h,Fe.MIX);return e.format(x.build(e),"v4",r)}else return console.warn("TextureCubeUVNode is not compatible with "+e.shader+" shader."),e.format("vec4( 0.0 )",this.getType(e),r)}copy(e){return super.copy(e),this.uv.copy(e.uv),this.bias.copy(e.bias),this.value.copy(e.value),e.colorSpaceTL?this.colorSpaceTL?this.colorSpaceTL.copy(e.colorSpaceTL):this.colorSpaceTL=e.colorSpaceTL.clone():this.colorSpaceTL=void 0,e.colorSpaceTR?this.colorSpaceTR?this.colorSpaceTR.copy(e.colorSpaceTR):this.colorSpaceTR=e.colorSpaceTR.clone():this.colorSpaceTR=void 0,e.colorSpaceBL?this.colorSpaceBL?this.colorSpaceBL.copy(e.colorSpaceBL):this.colorSpaceBL=e.colorSpaceBL.clone():this.colorSpaceBL=void 0,e.colorSpaceBR?this.colorSpaceBR?this.colorSpaceBR.copy(e.colorSpaceBR):this.colorSpaceBR=e.colorSpaceBR.clone():this.colorSpaceBR=void 0,e.colorSpaceTLExp?this.colorSpaceTLExp?this.colorSpaceTLExp.copy(e.colorSpaceTLExp):this.colorSpaceTLExp=e.colorSpaceTLExp.clone():this.colorSpaceTLExp=void 0,e.colorSpaceTRExp?this.colorSpaceTRExp?this.colorSpaceTRExp.copy(e.colorSpaceTRExp):this.colorSpaceTRExp=e.colorSpaceTRExp.clone():this.colorSpaceTRExp=void 0,e.colorSpaceBLExp?this.colorSpaceBLExp?this.colorSpaceBLExp.copy(e.colorSpaceBLExp):this.colorSpaceBLExp=e.colorSpaceBLExp.clone():this.colorSpaceBLExp=void 0,e.colorSpaceBRExp?this.colorSpaceBRExp?this.colorSpaceBRExp.copy(e.colorSpaceBRExp):this.colorSpaceBRExp=e.colorSpaceBRExp.clone():this.colorSpaceBRExp=void 0,this}},Is=_s;Is.Nodes=function(){let e=new Ls(`struct TextureCubeUVData {
|
|
25
25
|
vec4 tl;
|
|
26
26
|
vec4 tr;
|
|
27
27
|
vec4 br;
|
|
28
28
|
vec4 bl;
|
|
29
29
|
vec2 f;
|
|
30
|
-
}`),
|
|
30
|
+
}`),r=new rt("float cubeUV_maxMipLevel 8.0",!0),n=new rt("float cubeUV_minMipLevel 4.0",!0),o=new rt("float cubeUV_maxTileSize 256.0",!0),a=new rt("float cubeUV_minTileSize 16.0",!0),c=new we(`float getFace(vec3 direction) {
|
|
31
31
|
vec3 absDirection = abs(direction);
|
|
32
32
|
float face = -1.0;
|
|
33
33
|
if (absDirection.x > absDirection.z) {
|
|
@@ -42,7 +42,7 @@ function print() { __p += __j.call(arguments, '') }
|
|
|
42
42
|
face = direction.y > 0.0 ? 1.0 : 4.0;
|
|
43
43
|
}
|
|
44
44
|
return face;
|
|
45
|
-
}`);
|
|
45
|
+
}`);c.useKeywords=!1;let f=new we(`vec2 getUV(vec3 direction, float face) {
|
|
46
46
|
vec2 uv;
|
|
47
47
|
if (face == 0.0) {
|
|
48
48
|
uv = vec2(direction.z, direction.y) / abs(direction.x); // pos x
|
|
@@ -58,7 +58,7 @@ function print() { __p += __j.call(arguments, '') }
|
|
|
58
58
|
uv = vec2(direction.x, direction.y) / abs(direction.z); // neg z
|
|
59
59
|
}
|
|
60
60
|
return 0.5 * (uv + 1.0);
|
|
61
|
-
}`);
|
|
61
|
+
}`);f.useKeywords=!1;let h=new we(`TextureCubeUVData bilinearCubeUV(sampler2D envMap, vec3 direction, float mipInt) {
|
|
62
62
|
float face = getFace(direction);
|
|
63
63
|
float filterInt = max(cubeUV_minMipLevel - mipInt, 0.0);
|
|
64
64
|
mipInt = max(mipInt, cubeUV_minMipLevel);
|
|
@@ -86,7 +86,7 @@ function print() { __p += __j.call(arguments, '') }
|
|
|
86
86
|
uv.x -= texelSize;
|
|
87
87
|
vec4 bl = texture2D(envMap, uv);
|
|
88
88
|
return TextureCubeUVData( tl, tr, br, bl, f );
|
|
89
|
-
}`,[e,
|
|
89
|
+
}`,[e,c,f,r,n,o,a]);h.useKeywords=!1;let d=new rt("float r0 1.0",!0),m=new rt("float v0 0.339",!0),x=new rt("float m0 -2.0",!0),S=new rt("float r1 0.8",!0),w=new rt("float v1 0.276",!0),B=new rt("float m1 -1.0",!0),O=new rt("float r4 0.4",!0),T=new rt("float v4 0.046",!0),M=new rt("float m4 2.0",!0),F=new rt("float r5 0.305",!0),k=new rt("float v5 0.016",!0),N=new rt("float m5 3.0",!0),te=new rt("float r6 0.21",!0),A=new rt("float v6 0.0038",!0),b=new rt("float m6 4.0",!0),V=[d,m,x,S,w,B,O,T,M,F,k,N,te,A,b],P=new we(`float roughnessToMip(float roughness) {
|
|
90
90
|
float mip = 0.0;
|
|
91
91
|
if (roughness >= r1) {
|
|
92
92
|
mip = (r0 - roughness) * (m1 - m0) / (r0 - r1) + m0;
|
|
@@ -100,8 +100,8 @@ function print() { __p += __j.call(arguments, '') }
|
|
|
100
100
|
mip = -2.0 * log2(1.16 * roughness);// 1.16 = 1.79^0.25
|
|
101
101
|
}
|
|
102
102
|
return mip;
|
|
103
|
-
}`,
|
|
104
|
-
`);return
|
|
103
|
+
}`,V);return{bilinearCubeUV:h,roughnessToMip:P,m0:x,cubeUV_maxMipLevel:r}}();var xo=class extends Ee{constructor(e){super("v3");this.nodeType="Normal";this.scope=e!=null?e:xo.VIEW}getShared(){return this.scope===xo.WORLD}build(e,r,n,o){let a=e.context[this.scope+"Normal"];return a?a.build(e,r,n,o):super.build(e,r,n)}generate(e,r,n,o,a){let c;switch(this.scope){case xo.VIEW:e.isShader("vertex")?c="transformedNormal":c="geometryNormal";break;case xo.LOCAL:e.isShader("vertex")?c="objectNormal":(e.requires.normal=!0,c="vObjectNormal");break;case xo.WORLD:e.isShader("vertex")?c="inverseTransformDirection( transformedNormal, viewMatrix ).xyz":(e.requires.worldNormal=!0,c="vWNormal");break}return e.format(c,this.getType(e),r)}copy(e){return super.copy(e),this.scope=e.scope,this}toJSON(e){let r=this.getJSONNode(e);return r||(r=this.createJSONNode(e),r.scope=this.scope),r.nodeType=this.nodeType,r}fromJSON(e,r){return super.fromJSON(e,r),e.scope&&(this.scope=e.scope),this}},nr=xo;nr.LOCAL="local",nr.WORLD="world",nr.VIEW="view",nr.NORMAL="normal";Xt.addKeyword("viewNormal",function(){return new nr(nr.VIEW)});Xt.addKeyword("localNormal",function(){return new nr(nr.NORMAL)});Xt.addKeyword("worldNormal",function(){return new nr(nr.WORLD)});var Hn=class extends Ee{constructor(e){super("v3");this.nodeType="Position";this.scope=e!=null?e:Hn.LOCAL}getType(){switch(this.scope){case Hn.PROJECTION:return"v4"}return this.type}getShader(){switch(this.scope){case Hn.LOCAL:case Hn.WORLD:return!1}return!0}generate(e,r,n,o,a){let c;switch(this.scope){case Hn.LOCAL:e.isShader("vertex")?c="transformed":(e.requires.position=!0,c="vPosition");break;case Hn.WORLD:if(e.isShader("vertex"))return"( modelMatrix * vec4( transformed, 1.0 ) ).xyz";e.requires.worldPosition=!0,c="vWPosition";break;case Hn.VIEW:c=e.isShader("vertex")?"-mvPosition.xyz":"vViewPosition";break;case Hn.PROJECTION:c=e.isShader("vertex")?"( projectionMatrix * modelViewMatrix * vec4( position, 1.0 ) )":"vec4( 0.0 )";break}return e.format(c,this.getType(),r)}copy(e){return super.copy(e),this.scope=e.scope,this}toJSON(e){let r=this.getJSONNode(e);return r||(r=this.createJSONNode(e),r.scope=this.scope),r.nodeType=this.nodeType,r}fromJSON(e,r){return super.fromJSON(e,r),e.scope&&(this.scope=e.scope),this}},cr=Hn;cr.LOCAL="local",cr.WORLD="world",cr.VIEW="view",cr.PROJECTION="projection";Xt.addKeyword("position",function(){return new cr});Xt.addKeyword("worldPosition",function(){return new cr(cr.WORLD)});Xt.addKeyword("viewPosition",function(){return new cr(cr.VIEW)});var Nn=class extends Ee{constructor(e){super("v3");this.nodeType="Reflect";this.scope=e!=null?e:Nn.CUBE}getUnique(e){return!e.context.viewNormal}getType(){switch(this.scope){case Nn.SPHERE:return"v2"}return this.type}generate(e,r){let n=this.getUnique(e);if(e.isShader("fragment")){let o;switch(this.scope){case Nn.VECTOR:{let a=new nr(nr.VIEW),c=e.context.roughness,f=a.build(e,"v3"),h=new cr(cr.VIEW).build(e,"v3"),d=c?c.build(e,"f"):void 0,m=`reflect( -normalize( ${h} ), ${f} )`;d&&(m=`normalize( mix( ${m}, ${f}, ${d} * ${d} ) )`);let x=`inverseTransformDirection( ${m}, viewMatrix )`;n?(e.addNodeCode(`vec3 reflectVec = ${x};`),o="reflectVec"):o=x;break}case Nn.CUBE:{let a=new Nn(Nn.VECTOR).build(e,"v3"),c="vec3( -"+a+".x, "+a+".yz )";n?(e.addNodeCode(`vec3 reflectCubeVec = ${c};`),o="reflectCubeVec"):o=c;break}case Nn.SPHERE:{let a=new Nn(Nn.VECTOR).build(e,"v3"),c="normalize( ( viewMatrix * vec4( "+a+", 0.0 ) ).xyz + vec3( 0.0, 0.0, 1.0 ) ).xy * 0.5 + 0.5";n?(e.addNodeCode(`vec2 reflectSphereVec = ${c};`),o="reflectSphereVec"):o=c;break}}return e.format(o,this.getType(),r)}else return console.warn("ReflectNode is not compatible with "+e.shader+" shader."),e.format("vec3( 0.0 )",this.type,r)}copy(e){return super.copy(e),this.scope=e.scope,this}toJSON(e){let r=this.getJSONNode(e);return r||(r=this.createJSONNode(e),r.scope=this.scope),r.nodeType=this.nodeType,r}fromJSON(e,r){return super.fromJSON(e,r),e.scope&&(this.scope=e.scope),this}},Wn=Nn;Wn.CUBE="cube",Wn.SPHERE="sphere",Wn.VECTOR="vector";var hu=class extends Ee{constructor(e=new Lr,r,n){super("v4");this.nodeType="TextureCube";this.value=e,this.radianceNode=new Is(this.value,r!=null?r:new Wn(Wn.VECTOR),n),this.irradianceNode=new Is(this.value,new nr(nr.WORLD),new ve(1).setReadonly(!0))}generate(e,r){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,r)):(console.warn("TextureCubeNode is not compatible with "+e.shader+" shader."),e.format("vec4( 0.0 )",this.getType(e),r))}copy(e){return super.copy(e),this.value.copy(e.value),this.radianceNode.copy(e.radianceNode),this.irradianceNode.copy(e.irradianceNode),this}};import{CubeTexture as $2}from"three";var pu=class extends Ct{constructor(e=new $2,r,n){super("v4",{shared:!0});this.nodeType="CubeTexture";this.value=e,this.uv=r!=null?r:new Wn,this.bias=n}getTexture(e,r){return super.generate(e,r,this.value.uuid,"tc")}generate(e,r){var d,m;if(r==="samplerCube")return this.getTexture(e,r);let n=this.getTexture(e,r),o=(d=this.uv)==null?void 0:d.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 c;a?c="texCubeBias( "+n+", "+o+", "+a+" )":c="texCube( "+n+", "+o+" )";let f={include:e.isShader("vertex"),ignoreCache:!0},h=this.getType(e);return e.addContext(f),this.colorSpace=(m=this.colorSpace)!=null?m:new Cr(new gt("",h)),this.colorSpace.fromDecoding(e.getTextureEncodingFromMap(this.value)),this.colorSpace.input.parse(c),c=this.colorSpace.build(e,h),e.removeContext(),e.format(c,h,r)}copy(e){return super.copy(e),this.value.copy(e.value),e.uv?this.uv?this.uv.copy(e.uv):this.uv=e.uv.clone():this.uv=void 0,e.bias?this.bias?this.bias.copy(e.bias):this.bias=e.bias.clone():this.bias=void 0,this}};var rv=["x","y","z","w"],Z2=["float","vec2","vec3","vec4"],Q2={float:"f",vec2:"v2",vec3:"v3",vec4:"v4",mat4:"v4",int:"i",bool:"b","float[]":"f[]","vec4[]":"v4[]"},eD={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[]"},du=class{constructor(){this.includes={consts:{},functions:{},structs:{}};this.cache="";this.slot="";this.shader="";this.context={};this.getIncludesCode=function(){function t(e,r){return e.deps.length-r.deps.length}return function(r,n){let o=this.getIncludes(r,n);if(!o)return"";let a="";o=o.sort(t);for(let c=0;c<o.length;c++)o[c].src&&(a+=o[c].src+`
|
|
104
|
+
`);return a}}();this.slots=[],this.caches=[],this.contexts=[],this.keywords={},this.nodeData={},this.fragmentVariables={},this.requires={uv:[],color:[],lights:!1,fog:!1,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",`
|
|
105
105
|
// NOTE: Include Spline's blending modes. This could be part of BlendNode
|
|
106
106
|
#define SPE_BLENDING_NORMAL 0
|
|
107
107
|
#define SPE_BLENDING_MULTIPLY 1
|
|
@@ -138,15 +138,15 @@ function print() { __p += __j.call(arguments, '') }
|
|
|
138
138
|
`),fragment:["float accumAlpha = 0.0;",`void accumulateAlpha(float alpha) {
|
|
139
139
|
accumAlpha += (1.0 - accumAlpha) * alpha;
|
|
140
140
|
}`,""].join(`
|
|
141
|
-
`)},this.code={vertex:"",fragment:""},this.nodeCode={vertex:"",fragment:""},this.resultCode={vertex:"",fragment:""},this.finalCode={vertex:"",fragment:""},this.inputs={uniforms:{list:[],vertex:[],fragment:[]},arrayUniforms:{list:[],vertex:[],fragment:[]},vars:{varying:[],vertex:[],fragment:[]}},this.defines={},this.uniforms={},this.extensions={derivatives:!1,fragDepth:!1,drawBuffers:!1,shaderTextureLOD:!1},this.updaters=[],this.nodes=[],this.analyzing=!1}build(e
|
|
142
|
-
`}addVertexNodeCode(
|
|
143
|
-
`}clearNodeCode(
|
|
144
|
-
`}addVertexParsCode(
|
|
145
|
-
`}addVaryCode(
|
|
146
|
-
`)}getVarListCode(e
|
|
147
|
-
`:r+=
|
|
148
|
-
`}return r}getVars(
|
|
149
|
-
`;return e.isShader("vertex")?
|
|
141
|
+
`)},this.code={vertex:"",fragment:""},this.nodeCode={vertex:"",fragment:""},this.resultCode={vertex:"",fragment:""},this.finalCode={vertex:"",fragment:""},this.inputs={uniforms:{list:[],vertex:[],fragment:[]},arrayUniforms:{list:[],vertex:[],fragment:[]},vars:{varying:[],vertex:[],fragment:[]}},this.defines={},this.uniforms={},this.extensions={derivatives:!1,fragDepth:!1,drawBuffers:!1,shaderTextureLOD:!1},this.updaters=[],this.nodes=[],this.analyzing=!1}build(t,e){this.buildShader("vertex",t),this.buildShader("fragment",e);for(let r=0;r<this.requires.uv.length;r++)if(this.requires.uv[r]){let n=r>0?r+1:"";this.addVaryCode("varying vec2 vUv"+n+";"),r>0&&this.addVertexParsCode("attribute vec2 uv"+n+";"),this.addVertexFinalCode("vUv"+n+" = uv"+n+";")}return this.requires.color[0]&&(this.addVaryCode("varying vec4 vColor;"),this.addVertexParsCode("attribute vec4 color;"),this.addVertexFinalCode("vColor = color;")),this.requires.color[1]&&(this.addVaryCode("varying vec4 vColor2;"),this.addVertexParsCode("attribute vec4 color2;"),this.addVertexFinalCode("vColor2 = color2;")),this.requires.position&&(this.addVaryCode("varying vec3 vPosition;"),this.addVertexFinalCode("vPosition = transformed;")),this.requires.worldPosition&&(this.addVaryCode("varying vec3 vWPosition;"),this.addVertexFinalCode("vWPosition = ( modelMatrix * vec4( transformed, 1.0 ) ).xyz;")),this.requires.normal&&(this.addVaryCode("varying vec3 vObjectNormal;"),this.addVertexFinalCode("vObjectNormal = normal;")),this.requires.modelMatrix&&this.addFragmentParsCode("uniform mat4 modelMatrix;"),this.requires.viewMatrix&&this.addFragmentParsCode("uniform mat4 viewMatrix;"),this.requires.projectionMatrix&&this.addFragmentParsCode("uniform mat4 projectionMatrix;"),this.requires.worldNormal&&(this.addVaryCode("varying vec3 vWNormal;"),this.addVertexFinalCode("vWNormal = inverseTransformDirection( transformedNormal, viewMatrix ).xyz;")),this.requires.vWorldViewDir&&(this.addVaryCode("varying vec3 vWorldViewDir;"),this.addVertexFinalCode("vWorldViewDir = isPerspectiveMatrix( projectionMatrix ) ? ( (modelMatrix * vec4(position, 1.0)).xyz - cameraPosition ) : vec3( -viewMatrix[0][2], -viewMatrix[1][2], -viewMatrix[2][2] );")),this}buildShader(t,e){this.resultCode[t]=e.build(this.setShader(t),"v4")}setMaterial(t,e){return this.material=t,this.renderer=e,this.requires.lights=t.lights,this.requires.fog=t.fog,this.mergeDefines(t.defines),this}addFlow(t,e,r){return this.addSlot(t).addCache(e).addContext(r)}removeFlow(){return this.removeSlot().removeCache().removeContext()}addCache(t){return this.cache=t!=null?t:"",this.caches.push(this.cache),this}removeCache(){return this.caches.pop(),this.cache=this.caches[this.caches.length-1]||"",this}addContext(t){return this.context=Object.assign({},this.context,t),this.context.extra=this.context.extra||{},this.contexts.push(this.context),this}removeContext(){return this.contexts.pop(),this.context=this.contexts[this.contexts.length-1]||{},this}addSlot(t){return this.slot=t||"",this.slots.push(this.slot),this}removeSlot(){return this.slots.pop(),this.slot=this.slots[this.slots.length-1]||"",this}addFragmentVariable(t,e){this.fragmentVariables[t]===void 0&&(this.addFragmentCode(`${e} ${t};`),this.fragmentVariables[t]="")}addVertexCode(t){this.addCode(t,"vertex")}addFragmentCode(t){this.addCode(t,"fragment")}addCode(t,e){this.code[e!=null?e:this.shader]+=t+`
|
|
142
|
+
`}addVertexNodeCode(t){this.addNodeCode(t,"vertex")}addFragmentNodeCode(t){this.addNodeCode(t,"fragment")}addNodeCode(t,e){this.nodeCode[e!=null?e:this.shader]+=t+`
|
|
143
|
+
`}clearNodeCode(t){t=t!=null?t:this.shader;let e=this.nodeCode[t];return this.nodeCode[t]="",e}clearVertexNodeCode(){return this.clearNodeCode("vertex")}clearFragmentNodeCode(){return this.clearNodeCode("fragment")}addVertexFinalCode(t){this.addFinalCode(t,"vertex")}addFragmentFinalCode(t){this.addFinalCode(t,"fragment")}addFinalCode(t,e){this.finalCode[e!=null?e:this.shader]+=t+`
|
|
144
|
+
`}addVertexParsCode(t){this.addParsCode(t,"vertex")}addFragmentParsCode(t){this.addParsCode(t,"fragment")}addParsCode(t,e){this.parsCode[e!=null?e:this.shader]+=t+`
|
|
145
|
+
`}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,r,n="varying",o="V",a=""){let c=this.getVars(n),f=c[t];if(!f){let h=c.length;f={name:r||"node"+o+h+(a?"_"+a:""),type:e},c.push(f),c[t]=f}return f}getTempVar(t,e,r,n){return this.getVar(t,e,r,this.shader,"T",n)}getAttribute(t,e){if(!this.attributes[t]){let r=this.getVar(t,e);this.addVertexParsCode("attribute "+e+" "+t+";"),this.addVertexFinalCode(r.name+" = "+t+";"),this.attributes[t]={varying:r,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(`
|
|
146
|
+
`)}getVarListCode(t,e){e=e!=null?e:"";let r="";for(let n=0,o=t.length;n<o;++n){let a=t[n],c=a.type,f=a.name,h=a.size,d=this.getFormatByType(c);if(d===void 0)throw new Error("Node pars "+d+" not found.");d.includes("[]")?r+=e+" "+d.substring(0,d.length-2)+" "+f+`[${h}];
|
|
147
|
+
`:r+=e+" "+d+" "+f+`;
|
|
148
|
+
`}return r}getVars(t){return this.inputs.vars[t!=null?t:this.shader]}getNodeData(t){let e=t instanceof Pe?t.uuid:t;return this.nodeData[e]=this.nodeData[e]||{}}createUniform(t,e,r,n,o,a){if(e.includes("[]")){let c=this.inputs.arrayUniforms,f=c.list.length,h=new Ra({type:e,size:r.size,name:n||"nodeUA"+f+(a?"_"+a:""),node:r,needsUpdate:o});return c.list.push(h),c[t].push(h),c[t][h.name]=h,this.uniforms[h.name]=h,h}else{let c=this.inputs.uniforms,f=c.list.length,h=new Ra({type:e,name:n||"nodeU"+f+(a?"_"+a:""),node:r,needsUpdate:o});return c.list.push(h),c[t].push(h),c[t][h.name]=h,this.uniforms[h.name]=h,h}}createVertexUniform(t,e,r,n,o){return this.createUniform("vertex",t,e,r,n,o)}createFragmentUniform(t,e,r,n,o){return this.createUniform("fragment",t,e,r,n,o)}include(t,e,r){var a;let n;if(t=typeof t=="string"?Xt.get(t):t,this.context.include===!1)return t.name;t instanceof we?n=this.includes.functions:t instanceof rt?n=this.includes.consts:t instanceof Ls&&(n=this.includes.structs);let o=n[this.shader]=n[this.shader]||[];if(t){let c=o[t.name];if(c||(c=o[t.name]={node:t,deps:[]},o.push(c),c.src=t.build(this,"source")),t instanceof we&&e&&o[e.name]&&o[e.name].deps.indexOf(t)===-1&&(o[e.name].deps.push(t),(a=t.includes)!=null&&a.length)){let f=0;do this.include(t.includes[f++],e);while(f<t.includes.length)}return r&&(c.src=r),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 Z2[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 r=t[e];if(r!=null&&r.isNode)return r}}resolve(...t){for(let e=0;e<arguments.length;e++){let r=t[e];if(r!==void 0){if(r.isNode)return r;if(r.isTexture)switch(r.mapping){case J2:case K2:return new pu(r);case Y2:return new hu(new Lr(r));default:return new Lr(r)}else{if(r.isVector2)return new mr(r);if(r.isVector3)return new gr(r);if(r.isVector4)return new hi(r)}}}}format(t,e,r){switch(this.colorToVector(r+" <- "+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 Q2[t]||t}getFormatByType(t){return eD[t]||t}getUUID(t,e){return e=e!==void 0?e:!0,e&&this.cache&&(t=this.cache+"-"+t),t}getElementByIndex(t){return rv[t]}getIndexByElement(t){return rv.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=tv,e===tv&&this.context.gamma&&(e=X2),e}};var Fa=class extends Pe{constructor(e=new Pe){super("v4");this.nodeType="Raw";this.value=e}generate(e){let r=this.value.analyzeAndFlow(e,this.type),n=r.code+`
|
|
149
|
+
`;return e.isShader("vertex")?n+="gl_Position = "+r.result+";":n+="gl_FragColor = "+r.result+";",n}copy(e){return super.copy(e),this.value.copy(e.value),this}};var yt=class extends Ct{constructor(e=0,r,n,o){super("c");this.nodeType="Color";this.value=e instanceof Er?e:new Er(e||0,r,n,o)}setRGBA(e){this.value.setRGBA(e.r,e.g,e.b,e.a)}generate(e,r,n,o,a,c){n=e.getUUID(n!=null?n:this.getUUID()),o=o!=null?o:this.getType(e);let f=e.getNodeData(n),h=this.getReadonly()&&this.generateReadonly!==void 0;if(this.alpha){let d=this.alpha.build(e,"f");e.addFragmentNodeCode(`accumAlpha += ( 1.0 - accumAlpha ) * ${d};`)}return h?this.generateReadonly(e,r,n,o,a,c):e.isShader("vertex")?(f.vertex||(f.vertex=e.createVertexUniform(o,this,a,c,this.getLabel())),e.format(f.vertex.name,o,r)):(f.fragment||(f.fragment=e.createFragmentUniform(o,this,a,c,this.getLabel())),e.format(f.fragment.name,o,r))}generateReadonly(e,r,n,o,a,c){return e.format("vec3("+this.value.r+", "+this.value.g+", "+this.value.b+")",o,r)}};import{MathUtils as pi,Vector2 as ji,Vector3 as ki,Vector4 as mu}from"three";import{Texture as tD}from"three";var Ke=class extends Ct{constructor(e){super("i");this.nodeType="Int";this.value=Math.floor(e!=null?e:0)}generateReadonly(e,r,n,o,a,c){return e.format(this.value.toString(),o,r)}copy(e){return super.copy(e),this.value=e.value,this}};var Mt=class{constructor(t,e,r,n){this.next=void 0;this.uniforms={};this.textures={};this.defines={};if(this.id=t,this.uuid=e,r){this.type=r.type;for(let o in r)o!=="type"&&o!=="calpha"&&(this.uniforms[`f${this.id}_${o}`]=r[o]);for(let o in n)this.defines[o]=n[o]}}copy(t){this.id=t.id,this.type=t.type,this.defines=j({},t.defines);for(let e in t.uniforms)this.getName(e)==="transmissionSamplerMap"||this.getName(e)==="transmissionDepthMap"||(this.uniforms[e]?this.uniforms[e].copy(t.uniforms[e]):this.uniforms[e]=t.uniforms[e].clone());return this}clone(){return new Mt(this.id).copy(this)}fromJSON(t,e){this.id=t.id,this.defines=j({},t.defines);for(let r in t.uniforms)this.uniforms[r]=e.getNode(t.uniforms[r]);if(t.type==="texture"){if(!(`f${this.id}_textureSize`in this.uniforms)){let r=this.uniforms[`f${this.id}_texture`].value.image;this.uniforms[`f${t.id}_textureSize`]=new gr(r.width,r.height)}`f${this.id}_size`in this.uniforms||(this.uniforms[`f${t.id}_size`]=new mr(200,200)),`f${t.id}_axis`in this.uniforms||(this.uniforms[`f${t.id}_axis`]=new Ke(0)),`f${t.id}_projection`in this.uniforms||(this.uniforms[`f${t.id}_projection`]=new Ke(0))}else t.type==="noise"?(`f${t.id}_noiseType`in this.uniforms||(this.uniforms[`f${t.id}_noiseType`]=new Ke(0)),`f${t.id}_size`in this.uniforms||(this.uniforms[`f${t.id}_size`]=new gr(-1,-1,-1))):t.type==="depth"&&(`f${t.id}_isWorldSpace`in this.uniforms||(this.uniforms[`f${t.id}_isWorldSpace`]=new ve(1)));return this}toJSON(t){let e={};for(let n in this.uniforms)e[n]=this.uniforms[n].toJSON(t).uuid;return{id:this.id,type:this.type,defines:JSON.parse(JSON.stringify(this.defines)),uniforms:e,next:this.next==null?void 0:this.next.toJSON(t)}}copyUniforms(t){for(let e in this.uniforms){let r=this.getName(e);r!==void 0&&t.uniforms[`f${t.id}_${r}`]&&r!=="transmissionDepthMap"&&r!=="transmissionSamplerMap"&&this.uniforms[e].copy(t.uniforms[`f${t.id}_${r}`])}return this}hasValueByKey(t){return this.uniforms[t]!==void 0}hasValue(t){return this.hasValueByKey(`f${this.id}_${t}`)}setValue(t,e){let r=`f${this.id}_${t}`;this.hasValueByKey(r)&&e!==void 0&&(this.uniforms[r].value=e)}getValue(t){let e=`f${this.id}_${t}`;if(this.hasValueByKey(e))return this.uniforms[e].value}getValues(){let t={type:this.type};for(let e in this.uniforms){let r=this.getName(e);if(r===void 0)continue;let o=this.uniforms[`f${this.id}_${r}`].value;o!==void 0&&(Array.isArray(o)?t[r]=o.map(a=>a.clone?a.clone():a):t[r]=o.clone?o.clone():o)}return t}getName(t){let r=/f\d+_(.*)/.exec(t);if(r&&r.length>1)return r[1];console.log(`Layer.getName: error ${t}`)}getNames(){let t=[];for(let e in this.uniforms){let r=this.getName(e);r&&t.push(r)}return t}isEqual(t){for(let e in t.uniforms){let r=t.getName(e);if(!r)return!1;let n=this.getValue(r),o=t.uniforms[e].value;if(o.value instanceof tD){if(n.image!==o.image)return!1}else if(Array.isArray(o)){let a=n;for(let c=0,f=a.length;c<f;++c)if(a[c]!==o[c])return!1}else{let a=n;if(a.equals){if(!a.equals(o))return!1}else if(n!==o)return!1}}return!0}dispose(){}};function nv(i){let t=i instanceof Mt?i.type:i;return t==="texture"||t==="displace_map"||t==="matcap"}var Va=class extends Ct{constructor(e){super("b");this.nodeType="Bool";this.value=e!=null?e:!1}generateReadonly(e,r,n,o){return e.format(this.value?"true":"false",o,r)}copy(e){return super.copy(e),this.value=e.value,this}};import{Vector4 as iv}from"three";var vo=class extends Ct{constructor(e=1,r){super("v4[]");this.nodeType="Vector4Array";this.size=e,this.value=Array.isArray(r)?r:r instanceof iv?new Array(e).fill(r):new Array(e).fill(new iv(0))}copy(e){return super.copy(e),this.value=e.value.map(r=>r.clone()),this}};var bo=class extends Ct{constructor(e=1,r){super("f[]");this.nodeType="FloatArray";this.size=e,this.value=Array.isArray(r)?r:typeof r=="number"?new Array(e).fill(r):new Array(e).fill(0)}copy(e){return super.copy(e),this.size=e.size,this.value=[...e.value],this}};import{Matrix3 as rD}from"three";var Os=class extends Ct{constructor(e){super("m3");this.nodeType="Matrix3";this.value=e!=null?e:new rD}generateReadonly(e,r,n,o,a,c){return e.format("mat3("+this.value.elements.join(", ")+")",o,r)}copy(e){return super.copy(e),this.elements=e.elements,this}get elements(){return this.value.elements}set elements(e){this.value.fromArray(e)}};var ja=class extends Ee{constructor(e=new Lr,r,n,o,a,c,f,h){super("v3");this.nodeType="CustomTexture";this.firstTime=!0,this.texture=e,this.textureSize=r,this.crop=n,this.projection=o,this.axis=a,this.size=c,this.mat=new Os(this.texture.value.matrix),this.alpha=f,this.mode=h,this.calpha=`g${this.uuid.toString().replace(/-/g,"")}_calpha`}generate(e,r){e.require("position"),e.require("uv"),e.requires.uv=[!0],e.extensions.shaderTextureLOD=!0,e.extensions.derivatives=!0;let n;switch(this.projection.value){case 3:n=e.include(ja.Nodes.cylindrical);break;case 2:n=e.include(ja.Nodes.spherical);break;case 1:let a=new we(`
|
|
150
150
|
vec3 g${this.uuid.toString().replace(/-/g,"")}_planarTexture(sampler2D tex, vec2 textureSize, float crop, mat3 mat, vec2 size, float alpha, int mode, out float calpha) {
|
|
151
151
|
|
|
152
152
|
vec2 uvs = ( mat * vec3( (g${this.uuid.toString().replace(/-/g,"")}_vCustomUv * 2. - 1.) / (size * .5), 1. ) / 2. + 0.5 ).xy;
|
|
@@ -163,25 +163,25 @@ function print() { __p += __j.call(arguments, '') }
|
|
|
163
163
|
calpha = lalpha / clamp( lalpha + accumAlpha, 0.00001, 1.0 );
|
|
164
164
|
accumAlpha += ( 1.0 - accumAlpha ) * lalpha;
|
|
165
165
|
return col;
|
|
166
|
-
}`);
|
|
167
|
-
vec3 ${
|
|
166
|
+
}`);n=e.include(a);break;default:n=e.include(ja.Nodes.uv);break}if(this.projection.value===1&&this.firstTime){let a=`g${this.uuid.toString().replace(/-/g,"")}`;e.addVertexParsCode(`varying vec2 ${a}_vCustomUv;`),e.addFragmentParsCode(`varying vec2 ${a}_vCustomUv;`),e.addVertexFinalCode(`
|
|
167
|
+
vec3 ${a}_posN = transformed;
|
|
168
168
|
${this.axis.value===0?`
|
|
169
|
-
float ${
|
|
170
|
-
float ${
|
|
169
|
+
float ${a}_u = (1. + (${a}_posN.z)) / 2.;
|
|
170
|
+
float ${a}_v = (1. + (${a}_posN.y)) / 2.;
|
|
171
171
|
`:""}
|
|
172
172
|
|
|
173
173
|
${this.axis.value===1?`
|
|
174
|
-
float ${
|
|
175
|
-
float ${
|
|
174
|
+
float ${a}_u = (1. + (${a}_posN.x)) / 2.;
|
|
175
|
+
float ${a}_v = (1. - (${a}_posN.z)) / 2.;
|
|
176
176
|
`:""}
|
|
177
177
|
|
|
178
178
|
${this.axis.value===2?`
|
|
179
|
-
float ${
|
|
180
|
-
float ${
|
|
179
|
+
float ${a}_u = (1. + (${a}_posN.x)) / 2.;
|
|
180
|
+
float ${a}_v = (1. + (${a}_posN.y)) / 2.;
|
|
181
181
|
`:""}
|
|
182
182
|
|
|
183
|
-
${
|
|
184
|
-
`)}e.addFragmentVariable(this.calpha,"float");let
|
|
183
|
+
${a}_vCustomUv = vec2(${a}_u, ${a}_v);
|
|
184
|
+
`)}e.addFragmentVariable(this.calpha,"float");let o=[];return o.push(this.texture.getTexture(e,"t")),o.push(this.textureSize.build(e,"v2")),o.push(this.crop.build(e,"f")),o.push(this.mat.build(e,"mat3")),o.push(this.size.build(e,"v2")),o.push(this.alpha.build(e,"f")),o.push(this.mode.build(e,"i")),o.push(this.calpha),this.firstTime=!this.firstTime,e.format(n+"("+o.join(",")+")",this.getType(e),r)}copy(e){return super.copy(e),this.texture.copy(e.texture),this.textureSize=e.textureSize.clone(),this.crop=e.crop.clone(),this.projection=e.projection.clone(),this.axis=e.axis.clone(),this.size=e.size.clone(),this.alpha=e.alpha.clone(),this.mode=e.mode.clone(),this}},Ua=ja;Ua.Nodes=function(){let e=new we(`
|
|
185
185
|
vec3 cylindricalTexture(sampler2D tex, vec2 textureSize, float crop, mat3 mat, vec2 size, float alpha, int mode, out float calpha) {
|
|
186
186
|
vec3 posN = normalize(position);
|
|
187
187
|
float u = 0.5 + atan(posN.z, posN.x) / (2.*3.1415);
|
|
@@ -211,7 +211,7 @@ vec3 cylindricalTexture(sampler2D tex, vec2 textureSize, float crop, mat3 mat, v
|
|
|
211
211
|
accumAlpha += ( 1.0 - accumAlpha ) * lalpha;
|
|
212
212
|
return col;
|
|
213
213
|
}
|
|
214
|
-
`),
|
|
214
|
+
`),r=new we(`
|
|
215
215
|
vec3 sphericalTexture(sampler2D tex, vec2 textureSize, float crop, mat3 mat, vec2 size, float alpha, int mode, out float calpha) {
|
|
216
216
|
vec3 posN = normalize(vPosition);
|
|
217
217
|
float u = 0.5 + atan(posN.z, posN.x) / (2.*3.1415);
|
|
@@ -239,7 +239,7 @@ vec3 sphericalTexture(sampler2D tex, vec2 textureSize, float crop, mat3 mat, vec
|
|
|
239
239
|
accumAlpha += ( 1.0 - accumAlpha ) * lalpha;
|
|
240
240
|
return col;
|
|
241
241
|
}
|
|
242
|
-
`),
|
|
242
|
+
`),n=new we(`vec3 uvTexture(sampler2D tex, vec2 textureSize, float crop, mat3 mat, vec2 size, float alpha, int mode, out float calpha) {
|
|
243
243
|
|
|
244
244
|
vec2 uvs = ( mat * vec3( vUv * 2. - 1., 1. ) / 2. + 0.5 ).xy;
|
|
245
245
|
vec4 tmp = texture2D( tex, uvs );
|
|
@@ -255,14 +255,14 @@ vec3 sphericalTexture(sampler2D tex, vec2 textureSize, float crop, mat3 mat, vec
|
|
|
255
255
|
calpha = lalpha / clamp( lalpha + accumAlpha, 0.00001, 1.0 );
|
|
256
256
|
accumAlpha += ( 1.0 - accumAlpha ) * lalpha;
|
|
257
257
|
return col;
|
|
258
|
-
}`);return{cylindrical:e,spherical:
|
|
258
|
+
}`);return{cylindrical:e,spherical:r,uv:n}}();var op=class extends Ee{constructor(e,r,n,o,a,c,f){super("v3");this.nodeType="Fresnel";this.color=e,this.bias=r,this.scale=n,this.intensity=o,this.factor=a,this.alpha=c,this.mode=f,this.calpha=`g${this.uuid.toString().replace(/-/g,"")}_calpha`}generate(e,r){if(e.require("vWorldViewDir"),e.require("worldNormal"),e.isShader("fragment")){e.addFragmentVariable(this.calpha,"float");let n=e.include(op.Nodes.fresnel),o=[];return o.push(this.color.build(e,"c")),o.push(this.bias.build(e,"f")),o.push(this.scale.build(e,"f")),o.push(this.intensity.build(e,"f")),o.push(this.factor.build(e,"f")),o.push(this.alpha.build(e,"f")),o.push(this.mode.build(e,"i")),o.push(this.calpha),e.format(n+"("+o.join(",")+")",this.getType(e),r)}else return console.warn("FresnelNode is not compatible with "+e.shader+" shader."),e.format("vec3( 0.0 )",this.getType(e),r)}copy(e){return super.copy(e),this.color=e.color.clone(),this.bias=e.bias.clone(),this.scale=e.scale.clone(),this.intensity=e.intensity.clone(),this.factor=e.factor.clone(),this.alpha=e.alpha.clone(),this.mode=e.mode.clone(),this.calpha=e.calpha,this}},ka=op;ka.Nodes=function(){return{fresnel:new we(`vec3 fresnel(vec3 color, float bias, float scale, float intensity, float factor, float alpha, int mode, out float calpha) {
|
|
259
259
|
float fresnel = bias + scale * pow( abs( factor + dot( normalize( vWorldViewDir ), normalize( vWNormal ) ) ), intensity );
|
|
260
260
|
|
|
261
261
|
float lalpha = clamp( fresnel, 0.0, 1.0 ) * alpha;
|
|
262
262
|
calpha = lalpha / clamp(lalpha + accumAlpha, 0.001, 1.0);
|
|
263
263
|
accumAlpha += (1.0 - accumAlpha) * lalpha;
|
|
264
264
|
return color;
|
|
265
|
-
}`)}}();var
|
|
265
|
+
}`)}}();var Ha=(o=>(o.SIMPLEX="simplex3d",o.SIMPLEX_FRACTAL="simplex3dFractal",o.ASHIMA="simplexAshima",o.FBM="fbm",o.PERLIN="perlin",o))(Ha||{}),Gr=function(){let t=new we(`vec3 random3(vec3 c) {
|
|
266
266
|
float j = 4096.0*sin(dot(c,vec3(17.0, 59.4, 15.0)));
|
|
267
267
|
vec3 r;
|
|
268
268
|
r.z = fract(512.0*j);
|
|
@@ -271,7 +271,7 @@ vec3 sphericalTexture(sampler2D tex, vec2 textureSize, float crop, mat3 mat, vec
|
|
|
271
271
|
j *= .125;
|
|
272
272
|
r.y = fract(512.0*j);
|
|
273
273
|
return r-0.5;
|
|
274
|
-
}`),
|
|
274
|
+
}`),e=new we(`float simplex3d(vec3 p) {
|
|
275
275
|
vec3 s = floor(p + dot(p, vec3(F3)));
|
|
276
276
|
vec3 x = p - s + dot(s, vec3(G3));
|
|
277
277
|
|
|
@@ -302,7 +302,7 @@ vec3 sphericalTexture(sampler2D tex, vec2 textureSize, float crop, mat3 mat, vec
|
|
|
302
302
|
d *= w;
|
|
303
303
|
|
|
304
304
|
return dot(d, vec4(52.0));
|
|
305
|
-
}`,[
|
|
305
|
+
}`,[t]);e.keywords.F3=new rt("float F3 0.3333333"),e.keywords.G3=new rt("float G3 0.1666667");let r=new we(`float simplex3dFractal(vec3 m) {
|
|
306
306
|
mat3 rot1 = mat3(-0.37, 0.36, 0.85,-0.14,-0.93, 0.34,0.92, 0.01,0.4);
|
|
307
307
|
mat3 rot2 = mat3(-0.55,-0.39, 0.74, 0.33,-0.91,-0.24,0.77, 0.12,0.63);
|
|
308
308
|
mat3 rot3 = mat3(-0.71, 0.52,-0.47,-0.08,-0.72,-0.68,-0.7,-0.45,0.56);
|
|
@@ -310,7 +310,7 @@ vec3 sphericalTexture(sampler2D tex, vec2 textureSize, float crop, mat3 mat, vec
|
|
|
310
310
|
+ 0.2666667 * simplex3d(2.0 * m * rot2)
|
|
311
311
|
+ 0.1333333 * simplex3d(4.0 * m * rot3)
|
|
312
312
|
+ 0.0666667 * simplex3d(8.0 * m);
|
|
313
|
-
}`,[
|
|
313
|
+
}`,[e]),n=new we("vec4 permute(vec4 x){return mod(((x*34.0)+1.0)*x, 289.0);}"),o=new we("vec4 taylorInvSqrt(vec4 r){return 1.79284291400159 - 0.85373472095314 * r;}"),a=new we(`float simplexAshima(vec3 v) {
|
|
314
314
|
const vec2 C = vec2(1.0/6.0, 1.0/3.0) ;
|
|
315
315
|
const vec4 D = vec4(0.0, 0.5, 1.0, 2.0);
|
|
316
316
|
vec3 i = floor(v + dot(v, C.yyy) );
|
|
@@ -355,7 +355,7 @@ vec3 sphericalTexture(sampler2D tex, vec2 textureSize, float crop, mat3 mat, vec
|
|
|
355
355
|
m = m * m;
|
|
356
356
|
return 42.0 * dot( m*m, vec4( dot(p0,x0), dot(p1,x1),
|
|
357
357
|
dot(p2,x2), dot(p3,x3) ) );
|
|
358
|
-
}`,[n,
|
|
358
|
+
}`,[n,o]),c=new we("vec4 mod289(vec4 x){return x - floor(x * (1.0 / 289.0)) * 289.0;}"),f=new we("vec4 perm(vec4 x){return mod289(((x * 34.0) + 1.0) * x);}",[c]),h=new we(`float noise(vec3 p){
|
|
359
359
|
vec3 a = floor(p);
|
|
360
360
|
vec3 d = p - a;
|
|
361
361
|
d = d * d * (3.0 - 2.0 * d);
|
|
@@ -370,7 +370,7 @@ vec3 sphericalTexture(sampler2D tex, vec2 textureSize, float crop, mat3 mat, vec
|
|
|
370
370
|
vec4 o3 = o2 * d.z + o1 * (1.0 - d.z);
|
|
371
371
|
vec2 o4 = o3.yw * d.x + o3.xz * (1.0 - d.x);
|
|
372
372
|
return o4.y * d.y + o4.x * (1.0 - d.y);
|
|
373
|
-
}`,[f]),d=new
|
|
373
|
+
}`,[f]),d=new we(`float fbm(vec3 x) {
|
|
374
374
|
float v = 0.0;
|
|
375
375
|
float a = 0.5;
|
|
376
376
|
vec3 shift = vec3(100);
|
|
@@ -380,7 +380,7 @@ vec3 sphericalTexture(sampler2D tex, vec2 textureSize, float crop, mat3 mat, vec
|
|
|
380
380
|
a *= 0.5;
|
|
381
381
|
}
|
|
382
382
|
return v;
|
|
383
|
-
}`,[h]);d.keywords.NUM_OCTAVES=new
|
|
383
|
+
}`,[h]);d.keywords.NUM_OCTAVES=new rt(`int NUM_OCTAVES ${5}`);let m=new we("vec3 fade(vec3 t) {return t*t*t*(t*(t*6.0-15.0)+10.0);}"),x=new we(`float perlin(vec3 P){
|
|
384
384
|
vec3 Pi0 = floor(P);
|
|
385
385
|
vec3 Pi1 = Pi0 + vec3(1.0);
|
|
386
386
|
Pi0 = mod(Pi0, 289.0);
|
|
@@ -439,7 +439,7 @@ vec3 sphericalTexture(sampler2D tex, vec2 textureSize, float crop, mat3 mat, vec
|
|
|
439
439
|
vec2 n_yz = mix(n_z.xy, n_z.zw, fade_xyz.y);
|
|
440
440
|
float n_xyz = mix(n_yz.x, n_yz.y, fade_xyz.x);
|
|
441
441
|
return 2.2 * n_xyz;
|
|
442
|
-
}`,[n,
|
|
442
|
+
}`,[n,o,m]);return{simplex:e,simplexFractal:r,simplexAshima:a,fbm:d,perlin:x}}();var sp=class extends Ee{constructor(e,r,n,o,a,c,f){super("v3");this.nodeType="Rainbow";this.filmThickness=e,this.movement=r,this.wavelengths=n,this.noiseStrength=o,this.noiseScale=a,this.offset=c,this.alpha=f,this.calpha=`g${this.uuid.toString().replace(/-/g,"")}_calpha`}generate(e,r){if(e.require("vWorldViewDir"),e.require("worldNormal"),e.isShader("fragment")){e.require("uv"),e.requires.uv=[!0],e.addFragmentVariable(this.calpha,"float");let n=e.include(sp.Nodes.rainbow),o=[];return o.push(this.filmThickness.build(e,"f")),o.push(this.movement.build(e,"f")),o.push(this.wavelengths.build(e,"v3")),o.push(this.noiseStrength.build(e,"f")),o.push(this.noiseScale.build(e,"f")),o.push(this.offset.build(e,"v3")),o.push(this.alpha.build(e,"f")),o.push(this.calpha),e.format(n+"("+o.join(",")+")",this.getType(e),r)}else return console.warn("RainbowNode is not compatible with "+e.shader+" shader."),e.format("vec3( 0.0 )",this.getType(e),r)}copy(e){return super.copy(e),this.filmThickness=e.filmThickness.clone(),this.movement=e.movement.clone(),this.wavelengths=e.wavelengths.clone(),this.noiseStrength=e.noiseStrength.clone(),this.noiseScale=e.noiseScale.clone(),this.offset=e.offset.clone(),this.alpha=e.alpha.clone(),this.calpha=e.calpha,this}},Wa=sp;Wa.Nodes=function(){let e=new we(`vec3 attenuation(vec3 wavelengths, float filmThickness, float movement, float noiseStrength, float noiseScale, vec3 offset) {
|
|
443
443
|
vec3 st = position / noiseScale;
|
|
444
444
|
vec3 q = vec3(simplex3d(st),
|
|
445
445
|
simplex3d(st + vec3(1.0)),
|
|
@@ -452,7 +452,7 @@ vec3 sphericalTexture(sampler2D tex, vec2 textureSize, float crop, mat3 mat, vec
|
|
|
452
452
|
float noise = simplex3d(st + r);
|
|
453
453
|
|
|
454
454
|
return .5 + .5 * cos((((filmThickness + (noise * noiseStrength)) / (vec3(wavelengths.r * 1.0, wavelengths.g * 0.8, wavelengths.b * 0.6) + 1.0)) * dot(normalize(vWorldViewDir + (offset * -0.001)), normalize(vWNormal))) + movement);
|
|
455
|
-
}`,[
|
|
455
|
+
}`,[Gr.simplex]);return{rainbow:new we(`vec3 rainbow(float filmThickness, float movement, vec3 wavelengths, float noiseStrength, float noiseScale, vec3 offset, float alpha, out float calpha) {
|
|
456
456
|
vec3 res = clamp(attenuation(wavelengths, filmThickness, movement, noiseStrength, noiseScale, offset), 0.0, 2.0);
|
|
457
457
|
|
|
458
458
|
float rainbowContribution = clamp(res.r + res.g + res.b, 0.0, 1.0);
|
|
@@ -461,11 +461,11 @@ vec3 sphericalTexture(sampler2D tex, vec2 textureSize, float crop, mat3 mat, vec
|
|
|
461
461
|
accumAlpha += ( 1.0 - accumAlpha ) * lalpha;
|
|
462
462
|
|
|
463
463
|
return res;
|
|
464
|
-
}`,[e])}}();var ap=class extends
|
|
464
|
+
}`,[e])}}();var ap=class extends Ee{constructor(e,r,n,o,a,c,f,h){super("v3");this.nodeType="Transmission";this.thickness=e,this.ior=r,this.roughness=n,this.transmissionSamplerSize=o,this.transmissionSamplerMap=a,this.transmissionDepthMap=c,this.aspectRatio=f,this.alpha=h,this.calpha=`g${this.uuid.toString().replace(/-/g,"")}_calpha`}generate(e,r){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 n=e.include(ap.Nodes.transmission),o=[];return o.push(this.thickness.build(e,"f")),o.push(this.ior.build(e,"f")),o.push(this.roughness.build(e,"f")),o.push(this.transmissionSamplerSize.build(e,"v2")),o.push(this.transmissionSamplerMap.getTexture(e,"t")),o.push(this.transmissionDepthMap.getTexture(e,"t")),o.push(this.aspectRatio.build(e,"v2")),o.push("normal"),o.push(this.alpha.build(e,"f")),o.push(this.calpha),e.format(n+"("+o.join(",")+")",this.getType(e),r)}else return console.warn("TransmissionNode is not compatible with "+e.shader+" shader."),e.format("vec3( 0.0 )",this.getType(e),r)}copy(e){return super.copy(this),this.thickness=e.thickness.clone(),this.ior=e.ior.clone(),this.roughness=e.roughness.clone(),this.transmissionSamplerSize=e.transmissionSamplerSize.clone(),this.transmissionSamplerMap=e.transmissionSamplerMap,this.transmissionDepthMap=e.transmissionDepthMap,this.alpha=e.alpha.clone(),this.calpha=e.calpha,this}},qa=ap;qa.Nodes=function(){let e=new we(`
|
|
465
465
|
float gaussian(vec2 i) {
|
|
466
466
|
const float sigma = float(NUM_SAMPLES) * .25;
|
|
467
467
|
return exp( -.5* dot(i/=sigma,i) ) / ( 6.28 * sigma*sigma );
|
|
468
|
-
}`),
|
|
468
|
+
}`),r=new we(`
|
|
469
469
|
vec4 blur(sampler2D sp, vec2 U, vec2 scale, float lod, sampler2D dm, vec2 unrefractedU, vec2 aspectRatio) {
|
|
470
470
|
// Slightly modified version of this:
|
|
471
471
|
// https://www.shadertoy.com/view/ltScRG
|
|
@@ -492,7 +492,7 @@ vec3 sphericalTexture(sampler2D tex, vec2 textureSize, float crop, mat3 mat, vec
|
|
|
492
492
|
#endif
|
|
493
493
|
}
|
|
494
494
|
return O / O.a;
|
|
495
|
-
}`,[e]),
|
|
495
|
+
}`,[e]),n=new we(`
|
|
496
496
|
vec3 getVolumeTransmissionRay( vec3 n, vec3 v, float thickness, float ior, mat4 modelMatrix ) {
|
|
497
497
|
// Direction of refracted light.
|
|
498
498
|
vec3 refractionVector = refract( -v, n, 1.0 / ior );
|
|
@@ -503,18 +503,18 @@ vec3 sphericalTexture(sampler2D tex, vec2 textureSize, float crop, mat3 mat, vec
|
|
|
503
503
|
modelScale.z = length( vec3( modelMatrix[ 2 ].xyz ) );
|
|
504
504
|
// The thickness is specified in local space.
|
|
505
505
|
return normalize( refractionVector ) * thickness * modelScale;
|
|
506
|
-
}`),
|
|
506
|
+
}`),o=new we(`
|
|
507
507
|
float applyIorToRoughness( float roughness, float ior ) {
|
|
508
508
|
// Scale roughness with IOR so that an IOR of 1.0 results in no microfacet refraction and
|
|
509
509
|
// an IOR of 1.5 results in the default amount of microfacet refraction.
|
|
510
510
|
return roughness * clamp( ior * 2.0 - 2.0, 0.0, 1.0 );
|
|
511
|
-
} `),
|
|
511
|
+
} `),a=new we(`
|
|
512
512
|
vec4 getTransmissionSample( vec2 fragCoord, float roughness, float ior, vec2 transmissionSamplerSize, sampler2D transmissionSamplerMap, sampler2D transmissionDepthMap, vec2 unrefractedCoords, vec2 aspectRatio) {
|
|
513
513
|
float framebufferLod = log2( transmissionSamplerSize.x ) * applyIorToRoughness( roughness, ior );
|
|
514
514
|
float lod = applyIorToRoughness(roughness, ior);
|
|
515
515
|
|
|
516
516
|
return blur(transmissionSamplerMap, fragCoord, vec2(lod / (transmissionSamplerSize.x / 2.)), min(framebufferLod / 5.5, 8.5), transmissionDepthMap, unrefractedCoords, aspectRatio);
|
|
517
|
-
}`,[
|
|
517
|
+
}`,[o,r]),c=new we(`
|
|
518
518
|
vec4 getIBLVolumeRefraction( vec3 n, vec3 v, float roughness, vec3 position, mat4 modelMatrix, mat4 viewMatrix, mat4 projMatrix, float ior, float thickness, vec2 transmissionSamplerSize, sampler2D transmissionSamplerMap, sampler2D transmissionDepthMap, vec2 aspectRatio ) {
|
|
519
519
|
vec3 transmissionRay = getVolumeTransmissionRay( n, v, thickness, ior, modelMatrix );
|
|
520
520
|
vec3 refractedRayExit = position + transmissionRay;
|
|
@@ -534,7 +534,7 @@ vec4 getIBLVolumeRefraction( vec3 n, vec3 v, float roughness, vec3 position, mat
|
|
|
534
534
|
vec4 transmittedLight = getTransmissionSample( refractionCoords, roughness, ior, transmissionSamplerSize, transmissionSamplerMap, transmissionDepthMap, unrefractedCoords, aspectRatio );
|
|
535
535
|
// Get the specular component.
|
|
536
536
|
return vec4( ( 1.0 ) * transmittedLight.rgb, transmittedLight.a );
|
|
537
|
-
}`,[
|
|
537
|
+
}`,[a,n]);return{transmission:new we(`
|
|
538
538
|
vec3 transmission(float thickness, float ior, float roughness, vec2 transmissionSamplerSize, sampler2D transmissionSamplerMap, sampler2D transmissionDepthMap, vec2 aspectRatio, vec3 normal, float alpha, out float calpha) {
|
|
539
539
|
vec3 v = vec3(0.);
|
|
540
540
|
if (isOrthographic) {
|
|
@@ -548,14 +548,14 @@ vec4 getIBLVolumeRefraction( vec3 n, vec3 v, float roughness, vec3 position, mat
|
|
|
548
548
|
calpha = lalpha / clamp( lalpha + accumAlpha, 0.00001, 1.0 );
|
|
549
549
|
accumAlpha += ( 1.0 - accumAlpha ) * lalpha;
|
|
550
550
|
return transmission.rgb;
|
|
551
|
-
}`,[
|
|
551
|
+
}`,[c])}}();var lp=class extends Ee{constructor(e,r){super("v3");this.nodeType="CustomNormal";this.cnormal=e,this.alpha=r}generate(e,r){if(e.isShader("fragment")){let n=e.include(lp.Nodes.customNormal),o=[];return o.push(this.cnormal.build(e,"v3")),o.push("normal"),o.push(this.alpha.build(e,"f")),e.format(n+"("+o.join(",")+")",this.getType(e),r)}else return console.warn("CustomNormalNode is not compatible with "+e.shader+" shader."),e.format("vec3( 0.0 )",this.getType(e),r)}copy(e){return super.copy(e),this.cnormal.copy(e.cnormal),this.alpha.copy(e.alpha),this}},$a=lp;$a.Nodes=function(){return{customNormal:new we(`vec3 customNormal(vec3 cnormal, vec3 norm, float alpha) {
|
|
552
552
|
vec3 normal = packNormalToRGB( norm ).rgb;
|
|
553
553
|
normal *= step( vec3(0.5), cnormal );
|
|
554
554
|
|
|
555
555
|
accumAlpha += ( 1.0 - accumAlpha ) * alpha;
|
|
556
556
|
|
|
557
557
|
return normal;
|
|
558
|
-
}`)}}();var cp=class extends
|
|
558
|
+
}`)}}();var cp=class extends Ee{constructor(e,r,n,o,a,c,f,h){super("v3");this.nodeType="Gradient";this.gradientType=e,this.smooth=r,this.colors=n,this.steps=o,this.offset=a,this.morph=c,this.angle=f,this.alpha=h,this.calpha=`g${this.uuid.toString().replace(/-/g,"")}_calpha`}generate(e,r){if(e.isShader("fragment")){e.define("GRAD_MAX",10),e.require("uv"),e.requires.uv=[!0],e.addFragmentVariable(this.calpha,"float");let n=e.include(cp.Nodes.gradient),o=[];return o.push(this.gradientType.build(e,"i")),o.push(this.smooth.build(e,"b")),o.push(this.colors.build(e,"v4[]")),o.push(this.steps.build(e,"f[]")),o.push(this.offset.build(e,"v2")),o.push(this.morph.build(e,"v2")),o.push(this.angle.build(e,"f")),o.push(this.alpha.build(e,"f")),o.push(this.calpha),e.format(n+"("+o.join(",")+")",this.getType(e),r)}else return console.warn("GradientNode is not compatible with "+e.shader+" shader."),e.format("vec3( 0.0 )",this.getType(e),r)}copy(e){return super.copy(e),this.gradientType=e.gradientType.clone(),this.smooth=e.smooth.clone(),this.colors=e.colors.clone(),this.steps=e.steps.clone(),this.offset=e.offset.clone(),this.morph=e.morph.clone(),this.angle=e.angle.clone(),this.alpha=e.alpha.clone(),this.calpha=e.calpha,this}},Ja=cp;Ja.Nodes=function(){return{gradient:new we(`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) {
|
|
559
559
|
vec4 color = colors[0];
|
|
560
560
|
vec2 m = morph / vUv.xy;
|
|
561
561
|
vec2 rot = vec2( 0.5 + m.x, m.y );
|
|
@@ -597,11 +597,11 @@ vec4 getIBLVolumeRefraction( vec3 n, vec3 v, float roughness, vec3 position, mat
|
|
|
597
597
|
accumAlpha += ( 1.0 - accumAlpha ) * lalpha;
|
|
598
598
|
|
|
599
599
|
return color.xyz;
|
|
600
|
-
}`)}}();var
|
|
600
|
+
}`)}}();var up=(e=>(e.NOISE="noise",e.MAP="map",e))(up||{}),fp=class extends Ee{constructor(e=new Ke(0),r,n,o,a,c){super("v3");this.nodeType="VertexDisplacement";this.displacementTypeIndex=e,this.intensity=r,this.movementOrTexture=n,Object.values(up)[this.displacementTypeIndex.value]==="map"&&(this.mat=new Os(this.movementOrTexture.value.matrix)),this.cropOrOffset=o,this.scale=a,this.noiseFunctionIndex=c}generate(e,r){if(e.isShader("vertex")){e.define("USE_LAYER_DISPLACE");let n,o=[];switch(o.push("displaced_position"),o.push("displaced_normal"),Object.values(up)[this.displacementTypeIndex.value]){case"map":{n=e.include(fp.Nodes.map),o.push(this.movementOrTexture.getTexture(e,"t")),o.push("uv"),o.push(this.cropOrOffset.build(e,"f")),this.mat&&o.push(this.mat.build(e,"mat3"));break}case"noise":{let c=Object.values(Ha)[this.noiseFunctionIndex.value],f=new we(`vec3 orthogonal(vec3 v) {
|
|
601
601
|
return normalize(abs(v.x) > abs(v.z) ? vec3(-v.y, v.x, 0.0) : vec3(0.0, -v.z, v.y));
|
|
602
|
-
}`),
|
|
603
|
-
return p + n * ${
|
|
604
|
-
}`,[
|
|
602
|
+
}`),h=new we(`vec3 distorted(vec3 p, vec3 n, float scale, float intensity, vec3 offset, float neighbour_offset, float movement) {
|
|
603
|
+
return p + n * ${c}((p + offset) * scale * 0.001 + neighbour_offset + (movement * 0.1)) * intensity;
|
|
604
|
+
}`,[Gr.simplex,Gr.simplexFractal,Gr.simplexAshima,Gr.fbm,Gr.perlin]),d=new we(`vec3 vertexDisplacementNoise(vec3 position, vec3 normal, float scale, vec3 offset, float movement, float intensity, out vec3 displaced_normal) {
|
|
605
605
|
vec3 displaced_position = distorted(position, normal, scale, intensity, offset, neighbor_offset, movement);
|
|
606
606
|
vec3 tangent1 = orthogonal(normal);
|
|
607
607
|
vec3 tangent2 = normalize(cross(normal, tangent1));
|
|
@@ -617,9 +617,9 @@ vec4 getIBLVolumeRefraction( vec3 n, vec3 v, float roughness, vec3 position, mat
|
|
|
617
617
|
vec3 distorted2 = distorted(nearby2, normal, scale, intensity, offset, neighbor_offset, movement);
|
|
618
618
|
displaced_normal = normalize(cross(distorted1 - displaced_position, distorted2 - displaced_position));
|
|
619
619
|
return displaced_position;
|
|
620
|
-
}`,[f
|
|
620
|
+
}`,[h,f]);n=e.include(d),o.push(this.scale.build(e,"f")),o.push(this.cropOrOffset.build(e,"v3")),o.push(this.movementOrTexture.build(e,"f"));break}}return o.push(this.intensity.build(e,"f")),o.push("displaced_normal"),e.format(n+"("+o.join(",")+")",this.getType(e),r)}else return console.warn("VertexDisplacementNode is not compatible with "+e.shader+" shader."),e.format("vec3( 0.0 )",this.getType(e),r)}copy(e){var r,n;return super.copy(e),this.noiseFunctionIndex=(r=e.noiseFunctionIndex)==null?void 0:r.clone(),this.scale=(n=e.scale)==null?void 0:n.clone(),this.cropOrOffset=e.cropOrOffset.clone(),this.intensity=e.intensity.clone(),this.movementOrTexture=e.movementOrTexture.clone(),this}},Ms=fp;Ms.Nodes=function(){let e=new we(`vec3 orthogonal(vec3 v) {
|
|
621
621
|
return normalize(abs(v.x) > abs(v.z) ? vec3(-v.y, v.x, 0.0) : vec3(0.0, -v.z, v.y));
|
|
622
|
-
}`),
|
|
622
|
+
}`),r=new we(`float displacementMapTexture(sampler2D tex, float crop, vec2 uv, mat3 mat, vec2 offset) {
|
|
623
623
|
vec2 uvs = (mat * vec3(uv * 2.0 - 1.0, 1.0) / 2.0 + 0.5).xy + offset;
|
|
624
624
|
vec4 tmp = texture2D(tex, uvs);
|
|
625
625
|
vec3 col = tmp.rgb;
|
|
@@ -629,7 +629,7 @@ vec4 getIBLVolumeRefraction( vec3 n, vec3 v, float roughness, vec3 position, mat
|
|
|
629
629
|
}
|
|
630
630
|
}
|
|
631
631
|
return col.r;
|
|
632
|
-
}`);return{map:new
|
|
632
|
+
}`);return{map:new we(`vec3 vertexDisplacementMap(vec3 position, vec3 normal, sampler2D tex, vec2 uv, float crop, mat3 mat, float intensity, out vec3 displaced_normal) {
|
|
633
633
|
vec3 displaced_position = position + normal * displacementMapTexture(tex, crop, uv, mat, vec2(0.0)) * intensity;
|
|
634
634
|
vec3 tangent1 = normalize(orthogonal(normal));
|
|
635
635
|
vec3 tangent2 = normalize(cross(normal, tangent1));
|
|
@@ -639,16 +639,16 @@ vec4 getIBLVolumeRefraction( vec3 n, vec3 v, float roughness, vec3 position, mat
|
|
|
639
639
|
vec3 distorted2 = nearby2 + normal * displacementMapTexture(tex, crop, uv, mat, vec2(neighbor_offset)) * intensity;
|
|
640
640
|
displaced_normal = normalize(cross(distorted1 - displaced_position, distorted2 - displaced_position));
|
|
641
641
|
return displaced_position;
|
|
642
|
-
}`,[e,
|
|
642
|
+
}`,[e,r])}}();var Ka=class extends Ee{constructor(e=new Pe,r=new Pe,n=new Pe,o=new Pe,a=new Pe,c=new Pe,f=new Pe,h=new Pe,d=new Pe,m=new Pe,x=new Pe,S=new Pe){super("v3");this.nodeType="Noise";this.scale=e,this.size=r,this.move=n,this.fA=o,this.fB=a,this.distortion=c,this.colorA=f,this.colorB=h,this.colorC=d,this.colorD=m,this.alpha=x,this.noiseType=S,this.calpha=`g${this.uuid.toString().replace(/-/g,"")}_calpha`}generate(e,r,n,o,a){e.require("uv"),e.requires.uv=[!0],e.addFragmentVariable(this.calpha,"float");let c=Object.values(Ha)[this.noiseType.value],f=new we(`vec3 ${c}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) {
|
|
643
643
|
vec3 st = position / size;
|
|
644
644
|
st /= scale;
|
|
645
|
-
vec3 q = vec3(${
|
|
646
|
-
${
|
|
647
|
-
${
|
|
648
|
-
vec3 r = vec3(${
|
|
649
|
-
${
|
|
650
|
-
${
|
|
651
|
-
float f = ${
|
|
645
|
+
vec3 q = vec3(${c}(st),
|
|
646
|
+
${c}(st + vec3(1.0)),
|
|
647
|
+
${c}(st + vec3(1.0)));
|
|
648
|
+
vec3 r = vec3(${c}(st + vec3(distortion, 1.0) * q + vec3(fA, 1.0) + move),
|
|
649
|
+
${c}(st + vec3(distortion, 1.0) * q + vec3(fB, 1.0) + move),
|
|
650
|
+
${c}(st * q));
|
|
651
|
+
float f = ${c}(st + r);
|
|
652
652
|
vec4 color;
|
|
653
653
|
color = mix(colorA, colorB, clamp((f * f) * 4.0, 0.0, 1.0));
|
|
654
654
|
color = mix(color, colorC, clamp(length(q), 0.0, 1.0));
|
|
@@ -659,17 +659,17 @@ vec4 getIBLVolumeRefraction( vec3 n, vec3 v, float roughness, vec3 position, mat
|
|
|
659
659
|
|
|
660
660
|
accumAlpha += ( 1.0 - accumAlpha ) * lalpha;
|
|
661
661
|
return clamp(color, 0.0, 1.0).rgb;
|
|
662
|
-
}`,[
|
|
662
|
+
}`,[Gr.simplex,Gr.simplexFractal,Gr.simplexAshima,Gr.fbm,Gr.perlin]),h=e.include(f),d=[];return d.push(this.scale.build(e,"f")),d.push(this.size.build(e,"v3")),d.push(this.move.build(e,"f")),d.push(this.fA.build(e,"v2")),d.push(this.fB.build(e,"v2")),d.push(this.distortion.build(e,"v2")),d.push(this.colorA.build(e,"v4")),d.push(this.colorB.build(e,"v4")),d.push(this.colorC.build(e,"v4")),d.push(this.colorD.build(e,"v4")),d.push(this.alpha.build(e,"f")),d.push(this.calpha),e.format(h+"("+d.join(",")+")",this.getType(e),r)}copy(e){return super.copy(e),this.scale.copy(e.scale),this.size.copy(e.size),this.move.copy(e.move),this.fA.copy(e.fA),this.fB.copy(e.fB),this.distortion.copy(e.distortion),this.colorA.copy(e.colorA),this.colorB.copy(e.colorB),this.colorC.copy(e.colorC),this.colorD.copy(e.colorD),this.alpha.copy(e.alpha),this.calpha=e.calpha,this.noiseType.copy(e.noiseType),this}};Ka.numOctaves=5;var Ya=class extends Ee{constructor(e=new Pe,r=new Pe,n=new Pe,o=new Pe){super("v3");this.nodeType="Blend";this.a=e,this.b=r,this.alpha=n,this.mode=o}generate(e,r){if(e.isShader("fragment")){let n=[];return n.push(this.a.build(e,"c")),n.push(this.b.build(e,"c")),n.push(this.alpha.build(e,"f")),n.push(this.mode.build(e,"i")),e.format("spe_blend("+n.join(",")+")",this.getType(e),r)}else return console.warn("BlendNode is not compatible with "+e.shader+" shader."),e.format("vec3( 0.0 )",this.getType(e),r)}copy(e){return super.copy(e),this.a.copy(e.a),this.b.copy(e.b),this.alpha.copy(e.alpha),this.mode.copy(e.mode),this}};var Ps=class extends Ee{constructor(e,r,n,o,a,c,f,h,d,m,x,S){super("v3");this.nodeType="Depth";this.gradientType=e,this.smooth=r,this.near=n,this.far=o,this.isVector=a,this.isWorldSpace=c,this.origin=f,this.direction=h,this.colors=d,this.steps=m,this.num=x,this.alpha=S,this.calpha=`g${this.uuid.toString().replace(/-/g,"")}_calpha`}generate(e,r){let n=`g${this.uuid.toString().replace(/-/g,"")}`,o=new we(`vec3 ${n}_sdepth(float near, float far, vec3 origin, vec3 direction, vec4 colors[${n}_MAX_COLORS], float steps[10], float alpha, out float calpha) {
|
|
663
663
|
vec4 color = colors[0];
|
|
664
|
-
#ifdef ${
|
|
665
|
-
#ifdef ${
|
|
666
|
-
#ifdef ${
|
|
664
|
+
#ifdef ${n}_IS_VECTOR
|
|
665
|
+
#ifdef ${n}_LINEAR
|
|
666
|
+
#ifdef ${n}_WORLDSPACE
|
|
667
667
|
float depth = vectorLinearWorldSpaceDepth(direction, origin, near, far);
|
|
668
668
|
#else
|
|
669
669
|
float depth = vectorLinearObjectSpaceDepth(direction, origin, near, far);
|
|
670
670
|
#endif
|
|
671
671
|
#else
|
|
672
|
-
#ifdef ${
|
|
672
|
+
#ifdef ${n}_WORLDSPACE
|
|
673
673
|
float depth = vectorSphericalWorldSpaceDepth(origin, near, far);
|
|
674
674
|
#else
|
|
675
675
|
float depth = vectorSphericalObjectSpaceDepth(origin, near, far);
|
|
@@ -682,13 +682,13 @@ vec4 getIBLVolumeRefraction( vec3 n, vec3 v, float roughness, vec3 position, mat
|
|
|
682
682
|
|
|
683
683
|
|
|
684
684
|
float p;
|
|
685
|
-
#ifdef ${
|
|
686
|
-
for ( int i = 1; i < ${
|
|
685
|
+
#ifdef ${n}_SMOOTH
|
|
686
|
+
for ( int i = 1; i < ${n}_MAX_COLORS; i++ ) {
|
|
687
687
|
p = clamp( ( depth - steps[i-1] ) / ( steps[i] - steps[i-1] ), 0.0, 1.0 );
|
|
688
688
|
color = mix(color, colors[i], smoothstep(0.0, 1.0, p));
|
|
689
689
|
}
|
|
690
690
|
#else
|
|
691
|
-
for ( int i = 1; i < ${
|
|
691
|
+
for ( int i = 1; i < ${n}_MAX_COLORS; i++ ) {
|
|
692
692
|
p = clamp(( depth - steps[i - 1] ) / ( steps[i] - steps[i - 1] ), 0.0, 1.0);
|
|
693
693
|
color = mix(color, colors[i], p);
|
|
694
694
|
}
|
|
@@ -699,21 +699,21 @@ vec4 getIBLVolumeRefraction( vec3 n, vec3 v, float roughness, vec3 position, mat
|
|
|
699
699
|
|
|
700
700
|
accumAlpha += ( 1.0 - accumAlpha ) * lalpha;
|
|
701
701
|
return color.rgb;
|
|
702
|
-
}`,[
|
|
702
|
+
}`,[Ps.Nodes.vectorLinearWorldSpaceDepth,Ps.Nodes.vectorLinearObjectSpaceDepth,Ps.Nodes.vectorSphericalObjectSpaceDepth,Ps.Nodes.vectorSphericalWorldSpaceDepth]);if(e.isShader("fragment")){e.define(`${n}_MAX_COLORS`,this.num.value+1),this.smooth.value&&e.define(`${n}_SMOOTH`),this.isVector.value>.5&&e.define(`${n}_IS_VECTOR`),this.gradientType.value===0&&e.define(`${n}_LINEAR`),this.isWorldSpace.value>.5&&e.define(`${n}_WORLDSPACE`),e.require("worldPosition"),e.addFragmentVariable(this.calpha,"float");let a=e.include(o),c=[];return c.push(this.near.build(e,"f")),c.push(this.far.build(e,"f")),c.push(this.origin.build(e,"v3")),c.push(this.direction.build(e,"v3")),c.push(this.colors.build(e,"v4[]")),c.push(this.steps.build(e,"f[]")),c.push(this.alpha.build(e,"f")),c.push(this.calpha),e.format(a+"("+c.join(",")+")",this.getType(e),r)}else return console.warn("DepthNode is not compatible with "+e.shader+" shader."),e.format("vec3( 0.0 )",this.getType(e),r)}copy(e){return super.copy(e),this.gradientType=e.gradientType.clone(),this.smooth=e.smooth.clone(),this.near=e.near.clone(),this.far=e.far.clone(),this.isVector=e.isVector.clone(),this.isWorldSpace=e.isWorldSpace.clone(),this.origin=e.origin.clone(),this.direction=e.direction.clone(),this.colors=e.colors.clone(),this.steps=e.steps.clone(),this.alpha=e.alpha.clone(),this.calpha=e.calpha,this}},Xa=Ps;Xa.Nodes=function(){let e=new we(`float vectorLinearWorldSpaceDepth(vec3 direction, vec3 origin, float near, float far) {
|
|
703
703
|
vec3 n = normalize(direction);
|
|
704
704
|
float dist = (n.x*(vWPosition.x - origin.x) + n.y*(vWPosition.y - origin.y) + n.z*(vWPosition.z - origin.z));
|
|
705
705
|
return ( dist - near ) / ( far - near );
|
|
706
|
-
}`),
|
|
706
|
+
}`),r=new we(`float vectorLinearObjectSpaceDepth(vec3 direction, vec3 origin, float near, float far) {
|
|
707
707
|
vec3 n = normalize(direction);
|
|
708
708
|
float dist = (n.x*(position.x - origin.x) + n.y*(position.y - origin.y) + n.z*(position.z - origin.z));
|
|
709
709
|
return ( dist - near ) / ( far - near );
|
|
710
|
-
}`),
|
|
710
|
+
}`),n=new we(`float vectorSphericalWorldSpaceDepth(vec3 origin, float near, float far) {
|
|
711
711
|
float dist = length(vWPosition - origin);
|
|
712
712
|
return ( dist - near ) / ( far - near );
|
|
713
|
-
}`),
|
|
713
|
+
}`),o=new we(`float vectorSphericalObjectSpaceDepth(vec3 origin, float near, float far) {
|
|
714
714
|
float dist = length(position - origin);
|
|
715
715
|
return ( dist - near ) / ( far - near );
|
|
716
|
-
}`);return{vectorLinearWorldSpaceDepth:e,vectorLinearObjectSpaceDepth:
|
|
716
|
+
}`);return{vectorLinearWorldSpaceDepth:e,vectorLinearObjectSpaceDepth:r,vectorSphericalWorldSpaceDepth:n,vectorSphericalObjectSpaceDepth:o}}();var hp=class extends Ee{constructor(e,r,n){super("v3");this.nodeType="Matcap";this.texture=e,this.alpha=r,this.mode=n,this.calpha=`g${this.uuid.toString().replace(/-/g,"")}_calpha`}generate(e,r){if(e.isShader("fragment")){e.addFragmentVariable(this.calpha,"float");let n=e.include(hp.Nodes.matcap);e.require("normal"),e.requires.normal=!0;let o=[];return o.push(this.texture.getTexture(e,"t")),o.push("normal"),o.push(this.alpha.build(e,"f")),o.push(this.mode.build(e,"i")),o.push(this.calpha),e.format(n+"("+o.join(",")+")",this.getType(e),r)}else return console.warn("MatcapNode is not compatible with "+e.shader+" shader."),e.format("vec3( 0.0 )",this.getType(e),r)}copy(e){return super.copy(e),this.texture=e.texture.clone(),this.alpha=e.alpha.clone(),this.mode=e.mode.clone(),this.calpha=e.calpha,this}},Za=hp;Za.Nodes=function(){return{matcap:new we(`vec3 matcap(sampler2D matcapTex, vec3 normal, float alpha, int mode, out float calpha) {
|
|
717
717
|
vec3 viewDir = normalize( vViewPosition );
|
|
718
718
|
vec3 x = normalize( vec3( viewDir.z, 0.0, - viewDir.x ) );
|
|
719
719
|
vec3 y = cross( viewDir, x );
|
|
@@ -725,8 +725,8 @@ vec4 getIBLVolumeRefraction( vec3 n, vec3 v, float roughness, vec3 position, mat
|
|
|
725
725
|
|
|
726
726
|
return matcapColor.rgb;
|
|
727
727
|
}
|
|
728
|
-
`)}}();var Ir=class{constructor(e){this.id=2,this.layerCount=2,this.uuid=wi.generateUUID(),this.needsUpdate=!1,this._material=e,this._layerNodes=[];let t=this._createLayer({id:0,type:qe.COLOR});this._material.color=t.color,this._material.alpha===void 0&&(this._material.alpha=new ve(1));let r=new ve(1),n=new Ye(0);"shadingAlpha"in this._material&&"shadingBlend"in this._material&&(this._material.shadingAlpha=r,this._material.shadingBlend=n),this._layerNodes.push({id:0,type:Mt.COLOR,color:t.color,alpha:t.alpha,mode:t.mode}),this._layerNodes.push({id:1,type:Mt.LIGHTING,alpha:r,mode:n}),this.head=t.layer,this.head.next=new Bt(1,void 0,{type:qe.LIGHTING,alpha:r,mode:n}),this.attachLightNodes(this.getLightLayer())}get material(){return this._material}set material(e){var s;this._material=e;let t,r,n=this.head;for(;n!==void 0;){if(n.type===qe.LIGHTING){t=n.uniforms[`f${n.id}_alpha`],r=n.uniforms[`f${n.id}_mode`];break}n=n.next}"shadingAlpha"in this._material&&"shadingBlend"in this._material&&(this._material.shadingAlpha=t,this._material.shadingBlend=r),this.attachLightNodes((s=e.userData.layers)==null?void 0:s.getLightLayer()),this.blendColors(),this.blendAfterColors(),this.blendPositions()}getLayersOfType(e){let t=[],r=this.head;for(;r;)r.type===e&&t.push(r),r=r.next;return t}addLayer(e){var n;if(e.id=(n=e.id)!=null?n:++this.id,this.layerCount++,e.type===qe.LIGHTING){let s=this.createLightLayer(e);return this.uuid=wi.generateUUID(),this.blendColors(),this.blendAfterColors(),this.blendPositions(),s}let t=this._createLayer(e),r=t.layer;if(this.head===void 0)this.head=r;else{let s=this.head;for(;s.next!=null;)s=s.next;s.next=r}return t.color&&this._layerNodes.push({id:r.id,type:Mt.COLOR,color:t.color,alpha:t.alpha,mode:t.mode}),t.position&&this._layerNodes.push({id:r.id,type:Mt.POSITION,position:t.position}),this.uuid=wi.generateUUID(),this.blendColors(),this.blendAfterColors(),this.blendPositions(),r}addLayerBeforeAt(e,t){var c;let r=this.head;e.id=(c=e.id)!=null?c:++this.id,this.layerCount++;let n=this._createLayer(e),s=n.layer;s.next=t;let l=0;if(r===t)this.head=s,n.color&&this._layerNodes.splice(0,0,{id:s.id,type:Mt.COLOR,color:n.color,alpha:n.alpha,mode:n.mode}),n.position&&this._layerNodes.splice(0,0,{id:s.id,type:Mt.POSITION,position:n.position});else{for(l=1;(r==null?void 0:r.next)!==t;)r=r==null?void 0:r.next,l++;r.next=s,n.color&&this._layerNodes.splice(l,0,{id:s.id,type:Mt.COLOR,color:n.color,alpha:n.alpha,mode:n.mode}),n.position&&this._layerNodes.splice(l,0,{id:s.id,type:Mt.POSITION,position:n.position})}return this.uuid=wi.generateUUID(),this.blendColors(),this.blendAfterColors(),this.blendPositions(),s}addLayerAt(e,t){var s;t.id=(s=t.id)!=null?s:++this.id,this.layerCount++;let r=this._createLayer(t),n=r.layer;if(r.color&&this._layerNodes.splice(e,0,{id:n.id,type:Mt.COLOR,color:r.color,alpha:r.alpha,mode:r.mode}),r.position&&this._layerNodes.splice(e,0,{id:n.id,type:Mt.POSITION,position:r.position}),e==0)n.next=this.head,this.head=n;else{let l=this.head,c=this.head.next;for(let f=0;f<e-1;f++)l=c,c=c.next;n.next=c,l.next=n}return this.uuid=wi.generateUUID(),this.blendColors(),this.blendAfterColors(),this.blendPositions(),n}removeLayer(e){let t=this.head,r,n=0;if((t==null?void 0:t.id)==e)this.head=t.next;else for(n=1,r=t,t=t==null?void 0:t.next;t!=null;){if(t.id==e){r.next=t.next;break}n++,r=t,t=t.next}return this.cleanupChangedLayer(t),this.blendColors(),this.blendAfterColors(),this.blendPositions(),this.uuid=wi.generateUUID(),this.layerCount--,n}changeLayer(e,t){let r,n=this.head,s;if((n==null?void 0:n.id)==e){let l=this._createLayer(U({id:e,uuid:n.uuid},t));s=l.layer,s.next=n.next,this.head=s,l.color&&(this._layerNodes[0]={id:s.id,type:Mt.COLOR,color:l.color,alpha:l.alpha,mode:l.mode}),l.position&&(this._layerNodes[0]={id:s.id,type:Mt.POSITION,position:l.position}),s.uniforms[`f${e}_mode`].value=n.uniforms[`f${e}_mode`].value,s.uniforms[`f${e}_alpha`].value=n.uniforms[`f${e}_alpha`].value}else{r=n,n=n.next;let l=1;for(;n!=null;){if(n.id==e){let c=this._createLayer(U({id:e,uuid:n.uuid},t));s=c.layer,r.next=s,s.next=n.next,c.color&&(this._layerNodes[l]={id:e,type:Mt.COLOR,color:c.color,alpha:c.alpha,mode:c.mode}),c.position&&(this._layerNodes[l]={id:e,type:Mt.POSITION,position:c.position}),s.uniforms[`f${e}_mode`].value=n.uniforms[`f${e}_mode`].value,s.uniforms[`f${e}_alpha`].value=n.uniforms[`f${e}_alpha`].value;break}r=n,n=n.next,l++}}return this.uuid=wi.generateUUID(),this.blendColors(),this.blendAfterColors(),this.blendPositions(),s}getLayer(e){let t=this.head;for(;t!=null&&t.id!=e;)t=t.next;return t}getLayerByUuid(e){let t=this.head;for(;t!==void 0;){if(t.uuid===e)return t;t=t.next}}getLayers(){let e=[],t=this.head;for(;t!=null;)e.push(t),t=t.next;return e}getLayerPosition(e){let t=this.head,r=0;for(;t!==void 0&&t.id!=e;)r++,t=t.next;return r}getDefines(){}getBeforeProgram(){}getLightingProgram(){}getAfterProgram(){}getVarPrograms(){}getUniforms(){}moveLayer(e,t){let r,n=this.head,s;if(e==0)r=this.head,this.head=r.next;else{for(let c=0;c<e;c++)s=n,n=n.next;s.next=n.next,r=n}if(n=this.head,s=void 0,t==0)r.next=this.head,this.head=r;else{for(let c=0;c<t-1;c++)n=n.next;r.next=n==null?void 0:n.next,n.next=r}let l=this._layerNodes.splice(e,1)[0];this._layerNodes.splice(t,0,l),this.uuid=wi.generateUUID(),this.blendColors(),this.blendAfterColors()}updateLayerUniform(){this.uuid=wi.generateUUID(),this.blendColors(),this.blendAfterColors()}copy(e){this.needsUpdate=!1,this.layerCount=e.layerCount,this._layerNodes=[],this.layerCount=0,this.head=void 0,this.rebuildLayerNodes(this.head,e.head);let t=e.head,r=this.head;for(;t.next!=null;)this.rebuildLayerNodes(r,t.next),r=r.next,t=t.next;return this.id=e.id,this.uuid=e.uuid,this.blendColors(),this.blendAfterColors(),this.blendPositions(),this}createLightLayer(e){let t=new ve(e.alpha),r=new Ye(e.mode);this._material.shadingAlpha=t,this._material.shadingBlend=r,this._layerNodes.push({id:e.id,type:Mt.LIGHTING,alpha:t,mode:r});let n=new Bt(e.id,void 0,{type:qe.LIGHTING,alpha:t,mode:r});if(this.head===void 0)this.head=n;else{let s=this.head;for(;s.next!=null;)s=s.next;s.next=n}return this.attachLightNodes(this.getLightLayer()),n}rebuildLayerNodes(e,t,r=!1){if(t.type===qe.LIGHTING){let n=r?t.uniforms[`f${t.id}_alpha`]:new ve(t.uniforms[`f${t.id}_alpha`].value),s=r?t.uniforms[`f${t.id}_mode`]:new Ye(t.uniforms[`f${t.id}_mode`].value);this._material.shadingAlpha=n,this._material.shadingBlend=s,this._layerNodes.push({id:t.id,type:Mt.LIGHTING,alpha:n,mode:s}),this.head===void 0?this.head=new Bt(t.id,t.uuid,{type:qe.LIGHTING,alpha:n,mode:s}):e&&(e.next=new Bt(t.id,t.uuid,{type:qe.LIGHTING,alpha:n,mode:s})),this.attachLightNodes(t)}else{let n={type:t.type,id:t.id};for(let s in t.uniforms){let l=t.getName(s);if(!l)continue;let c=`f${t.id}_${l}`;if(Array.isArray(t.uniforms[c].value))n[l]=t.uniforms[c].value.map(f=>f.clone&&!r?f.clone():f);else{let f=t.uniforms[c].value;if(l==="transmissionDepthMap"){n[l]=f;continue}f!=null&&(n[l]=f.clone&&!r&&!f.isRenderTargetTexture?f.clone():f)}}this.addLayer(n)}}attachLightNodes(e){var n,s,l,c,f,h,d,x,g,w,S;let t={},r=this.getLightLayer();switch(this._material.userData.category){case"Lambert":t.emissive=new vt((s=(n=e==null?void 0:e.getValue("emissive"))==null?void 0:n.clone())!=null?s:0);break;case"Phong":t.shininess=new ve((l=e==null?void 0:e.getValue("shininess"))!=null?l:30),t.specular=new vt((f=(c=e==null?void 0:e.getValue("specular"))==null?void 0:c.clone())!=null?f:1118481);break;case"Toon":t.shininess=new ve((h=e==null?void 0:e.getValue("shininess"))!=null?h:30),t.specular=new vt((x=(d=e==null?void 0:e.getValue("specular"))==null?void 0:d.clone())!=null?x:1118481);break;case"Physical":t.roughness=new ve((g=e==null?void 0:e.getValue("roughness"))!=null?g:.3),t.metalness=new ve((w=e==null?void 0:e.getValue("metalness"))!=null?w:0),t.reflectivity=new ve((S=e==null?void 0:e.getValue("reflectivity"))!=null?S:.5);break;default:break}Object.keys(t).forEach(D=>{this._material[D]=t[D],r.uniforms[`f${r.id}_${D}`]=t[D]})}clone(e){return new Ir(e).copy(this)}toJSON(e){return{id:this.id,uuid:this.uuid,head:this.head.toJSON(e)}}fromJSON(e,t,r){let n=new Bt(e.head.id,void 0,{type:e.head.type}).fromJSON(e.head,t),s=e.head.next,l=n;for(;s!=null;)l.next=new Bt(s.id,void 0,{type:s.type}).fromJSON(s,t),s=s.next,l=l.next;this._layerNodes=[],this.head=void 0,this.rebuildLayerNodes(this.head,n,!0);let c=n;for(l=this.head;c.next!=null;)this.rebuildLayerNodes(l,c.next,!0),l=l.next,c=c.next;return this._material=r,this.id=e.id,this.uuid=e.uuid,this.blendColors(),this.blendAfterColors(),this.blendPositions(),this}getLightLayer(){var t;let e=this.head;for(;e!==void 0&&e.type!=="light";)e=(t=e.next)!=null?t:e;return e}dispose(){let e=this.head;for(this._layerNodes=[],this.layerCount=0;e!==void 0;)e.hasOwnProperty("dispose")===!0&&e.dispose(),e=e.next;this.head=void 0}_createLayer(e){var r,n,s,l,c,f,h,d,x,g,w,S,D,C,G,B,P,W,M,q,E,b,R,T,z,A,$,he,re,Ne,ye,Me,Fe,k,H,_,J,ee,oe,se,ce,ue,K,ae,ne,Ce,Y,le,pe,xe,_e,de,we,Ve,Ge,Qe,bt,Lt,At,sr,Ur,Ht,kr,wn,Nn,dt,Wt,ar,Ao,Oo,Po,ro,no,Do,Mr,io,Jt,ti,Bo;let t=e.type;switch(t){case qe.COLOR:{let Ee=new vt((r=e.color)!=null?r:Yt),Xe=new ve((n=e.alpha)!=null?n:1),He=new xt("alpha / clamp(alpha + accumAlpha, 0.00001, 1.0 )","f");He.keywords.alpha=Xe;let $e=new Ye((s=e.mode)!=null?s:0);return Ee.alpha=Xe,{layer:new Bt(e.id,e.uuid,{type:t,color:Ee,alpha:Xe,calpha:He,mode:$e}),color:Ee,alpha:He,mode:$e}}case qe.TEXTURE:{let Ee=(l=e.texture)!=null?l:new bi,Xe=Ee.matrix;e.mat&&Xe.copy(e.mat),Ee.needsUpdate=!0;let He=new ve((c=e.crop)!=null?c:0),$e=new Ye((f=e.projection)!=null?f:0),tt=new Ye((h=e.axis)!=null?h:0),at=new _r(e.size?new Ki(e.size[0],e.size[1]):new Ki(100,100)),mt=new ve((d=e.alpha)!=null?d:1),gt=new Ye((x=e.mode)!=null?x:0),ct=new Fr(Ee),St=new Tr((g=e.textureSize)!=null?g:new Xi(Ee.image?Ee.image.width:0,Ee.image?Ee.image.height:0)),Rt=new gu(ct,St,He,$e,tt,at,mt,gt),Ar=new xt(Rt.calpha,"f");return{layer:new Bt(e.id,e.uuid,{type:t,texture:ct,textureSize:St,crop:He,projection:$e,axis:tt,size:at,mat:Rt.mat,alpha:mt,calpha:Ar,mode:gt}),color:Rt,alpha:Ar,mode:gt}}case qe.MATCAP:{let Ee=(w=e.texture)!=null?w:new bi;Ee.needsUpdate=!0;let Xe=new ve((S=e.alpha)!=null?S:1),He=new Fr(Ee),$e=new Ye((D=e.mode)!=null?D:0),tt=new Lu(He,Xe,$e),at=new xt(tt.calpha,"f");return{layer:new Bt(e.id,e.uuid,{type:t,texture:He,alpha:Xe,calpha:at,mode:$e}),color:tt,alpha:at,mode:$e}}case qe.FRESNEL:{let Ee=new vt((C=e.color)!=null?C:16777215),Xe=new ve((G=e.bias)!=null?G:.1),He=new ve((B=e.scale)!=null?B:1),$e=new ve((P=e.intensity)!=null?P:2),tt=new ve((W=e.factor)!=null?W:1),at=new ve((M=e.alpha)!=null?M:1),mt=new Ye((q=e.mode)!=null?q:0),gt=new yu(Ee,Xe,He,$e,tt,at,mt),ct=new xt(gt.calpha,"f");return{layer:new Bt(e.id,e.uuid,{type:t,color:Ee,bias:Xe,scale:He,intensity:$e,factor:tt,alpha:at,calpha:ct,mode:mt}),color:gt,alpha:ct,mode:mt}}case qe.RAINBOW:{let Ee=new ve((E=e.filmThickness)!=null?E:30),Xe=new ve((b=e.movement)!=null?b:0),He=new Tr((R=e.wavelengths)!=null?R:new Xi(0,0,0)),$e=new ve((T=e.noiseStrength)!=null?T:0),tt=new ve((z=e.noiseScale)!=null?z:1),at=new Tr((A=e.offset)!=null?A:new Xi(0,0,0)),mt=new ve(($=e.alpha)!=null?$:1),gt=new xu(Ee,Xe,He,$e,tt,at,mt),ct=new xt(gt.calpha,"f"),St=new Ye((he=e.mode)!=null?he:0);return{layer:new Bt(e.id,e.uuid,{type:t,filmThickness:Ee,movement:Xe,wavelengths:He,noiseStrength:$e,noiseScale:tt,offset:at,alpha:mt,calpha:ct,mode:St}),color:gt,alpha:ct,mode:St}}case qe.TRANSMISSION:{let Ee=new ve((re=e.thickness)!=null?re:10),Xe=new ve((Ne=e.ior)!=null?Ne:1.5),He=new ve((ye=e.roughness)!=null?ye:.5),$e=new _r((Me=e.transmissionSamplerSize)!=null?Me:new Ki(2048,2048)),tt=(Fe=e.transmissionSamplerMap)!=null?Fe:new bi,at=(k=e.transmissionDepthMap)!=null?k:new bi,mt=new Fr(tt),gt=new Fr(at),ct=window.innerWidth,St=window.innerHeight,Rt=ct>=St?new _r(St/ct,1):new _r(1,ct/St),Ar=new ve((H=e.alpha)!=null?H:1),Cn=new vu(Ee,Xe,He,$e,mt,gt,Rt,Ar),Ln=new xt(Cn.calpha,"f"),Rn=new Ye((_=e.mode)!=null?_:0);return{layer:new Bt(e.id,e.uuid,{type:t,thickness:Ee,ior:Xe,roughness:He,transmissionSamplerSize:$e,transmissionSamplerMap:mt,transmissionDepthMap:gt,aspectRatio:Rt,alpha:Ar,calpha:Ln,mode:Rn}),color:Cn,alpha:Ln,mode:Rn}}case qe.DEPTH:{let Ee=new Ye((J=e.gradientType)!=null?J:0),Xe=new mu((ee=e.smooth)!=null?ee:!1),He=new ve((oe=e.near)!=null?oe:50),$e=new ve((se=e.far)!=null?se:200),tt=new ve((ce=e.isVector)!=null?ce:1),at=new ve((ue=e.isWorldSpace)!=null?ue:0),mt=new Tr((K=e.origin)!=null?K:new Xi),gt=new Tr((ae=e.direction)!=null?ae:new Xi),ct=new Ye((ne=e.num)!=null?ne:0),St;e.colors?St=new Os(ct.value+1,e.colors):(St=new Os(ct.value+1,new _u(0,0,0,1)),St.value[1]=new _u(1,1,1,1));let Rt;e.steps?Rt=new Ps(e.steps.length,e.steps):(Rt=new Ps(10,1),Rt.value[0]=0);let Ar=new ve((Ce=e.alpha)!=null?Ce:1),Cn=new Ye((Y=e.mode)!=null?Y:0),Ln=new Cu(Ee,Xe,He,$e,tt,at,mt,gt,St,Rt,ct,Ar),Rn=new xt(Ln.calpha,"f");return{layer:new Bt(e.id,e.uuid,{type:t,gradientType:Ee,smooth:Xe,near:He,far:$e,isVector:tt,isWorldSpace:at,origin:mt,direction:gt,colors:St,steps:Rt,num:ct,alpha:Ar,calpha:Rn,mode:Cn}),color:Ln,alpha:Rn,mode:Cn}}case qe.NOISE:{let Ee=new ve((le=e.scale)!=null?le:1),Xe=new Tr((pe=e.size)!=null?pe:new Xi(100,100,100)),He=new ve((xe=e.move)!=null?xe:1),$e=new _r((_e=e.fA)!=null?_e:new Ki(1.7,9.2)),tt=new _r((de=e.fB)!=null?de:new Ki(8.3,2.8)),at=new _r((we=e.distortion)!=null?we:new Ki(1,1)),mt=new Ji(e.colorA),gt=new Ji(e.colorB),ct=new Ji(e.colorC),St=new Ji(e.colorD),Rt=new ve((Ve=e.alpha)!=null?Ve:1),Ar=new Ye((Ge=e.mode)!=null?Ge:0),Cn=new Ye((Qe=e.noiseType)!=null?Qe:0),Ln=new wu(Ee,Xe,He,$e,tt,at,mt,gt,ct,St,Rt,Cn),Rn=new xt(Ln.calpha,"f");return{layer:new Bt(e.id,e.uuid,{type:t,scale:Ee,size:Xe,move:He,fA:$e,fB:tt,distortion:at,colorA:mt,colorB:gt,colorC:ct,colorD:St,alpha:Rt,calpha:Rn,mode:Ar,noiseType:Cn}),color:Ln,alpha:Rn,mode:Ar}}case qe.NORMAL:{let Ee=new Tr((bt=e.cnormal)!=null?bt:new Xi(1,1,1)),Xe=new ve((Lt=e.alpha)!=null?Lt:1),He=new Ye((At=e.mode)!=null?At:0),$e=new bu(Ee,Xe),tt=new xt("alpha / clamp(alpha + accumAlpha, 0.00001, 1.0 )","f");return tt.keywords.alpha=Xe,{layer:new Bt(e.id,e.uuid,{type:t,cnormal:Ee,alpha:Xe,calpha:tt,mode:He}),color:$e,alpha:tt,mode:He}}case qe.GRADIENT:{let Ee=new Ye((sr=e.gradientType)!=null?sr:0),Xe=new mu((Ur=e.smooth)!=null?Ur:!1),He;e.colors?He=new Os(e.colors.length,e.colors):(He=new Os(10,new _u(0,0,0,1)),He.value[1]=new _u(1,1,1,1));let $e;e.steps?$e=new Ps(e.steps.length,e.steps):($e=new Ps(10,1),$e.value[0]=0);let tt=new _r((Ht=e.offset)!=null?Ht:new Ki(0,0)),at=new _r((kr=e.morph)!=null?kr:new Ki(0,0)),mt=new ve((wn=e.angle)!=null?wn:0),gt=new ve((Nn=e.alpha)!=null?Nn:1),ct=new Ye((dt=e.mode)!=null?dt:0),St=new Su(Ee,Xe,He,$e,tt,at,mt,gt),Rt=new xt(St.calpha,"f");return{layer:new Bt(e.id,e.uuid,{type:t,gradientType:Ee,smooth:Xe,colors:He,steps:$e,offset:tt,morph:at,angle:mt,alpha:gt,calpha:Rt,mode:ct}),color:St,alpha:Rt,mode:ct}}case qe.DISPLACE:{let Ee=new Ye((Wt=e.displacementType)!=null?Wt:0);if(Ee.value===0){let Xe=new Tr((ar=e.offset)!=null?ar:new Xi(0,0,0)),He=new ve((Ao=e.scale)!=null?Ao:10),$e=new ve((Oo=e.intensity)!=null?Oo:8),tt=new ve((Po=e.movement)!=null?Po:1),at=new ve((ro=e.alpha)!=null?ro:1),mt=new Ye((no=e.mode)!=null?no:0),gt=new Ye((Do=e.noiseType)!=null?Do:0),ct=new Da(Ee,$e,tt,Xe,He,gt);return{layer:new Bt(e.id,e.uuid,{displacementType:Ee,type:t,offset:Xe,scale:He,intensity:$e,movement:tt,alpha:at,mode:mt,noiseType:gt}),position:ct}}else if(Ee.value===1){let Xe=(Mr=e.texture)!=null?Mr:new bi,He=Xe.matrix;e.mat&&He.copy(e.mat),Xe.needsUpdate=!0;let $e=new ve((io=e.intensity)!=null?io:8),tt=new Fr(Xe),at=new ve((Jt=e.crop)!=null?Jt:0),mt=new ve((ti=e.alpha)!=null?ti:1),gt=new Ye((Bo=e.mode)!=null?Bo:0),ct=new Da(Ee,$e,tt,at);return{layer:new Bt(e.id,e.uuid,{displacementType:Ee,type:t,intensity:$e,texture:tt,crop:at,mat:ct.mat,alpha:mt,mode:gt}),position:ct}}return{}}}return{}}blendColors(){let e=this._layerNodes.findIndex(r=>r.type===Mt.COLOR),t=this._layerNodes.findIndex(r=>r.type===Mt.LIGHTING);if(e!==-1&&e<t){let r=this._layerNodes[e].color;for(let n=e+1;n<t;++n){let s=this._layerNodes[n];s.type===Mt.COLOR&&(r=new Nu(r,s.color,s.alpha,s.mode))}this._material.color=r}else this._material.color=void 0}blendAfterColors(){let e=new xt("outgoingLight","f"),t=this._layerNodes.findIndex(r=>r.type===Mt.LIGHTING);if(this._layerNodes.length>t+1){for(let r=t+1;r<this._layerNodes.length;++r){let n=this._layerNodes[r];n.type===Mt.COLOR&&(e=new Nu(e,n.color,n.alpha,n.mode))}"afterColor"in this._material&&(this._material.afterColor=e)}else"afterColor"in this._material&&(this._material.afterColor=void 0)}blendPositions(){let e=this._layerNodes.filter(t=>t.type===Mt.POSITION);if(e.length>0){let t=e[0].position;for(let r=1;r<e.length;++r)e[r]&&(t=new rn(t,e[r].position,rn.ADD),t=new rn(t,new ve(.5).setReadonly(!0),rn.MUL));this._material.position=t}else this._material.position=void 0}cleanupChangedLayer(e){switch(this._layerNodes=this._layerNodes.filter(t=>t.id!==e.id),e.type){case qe.DISPLACE:{this.blendPositions();break}default:{this.blendColors(),this.blendAfterColors();break}}}};var vn=class extends _D{constructor(e,t,r){super(r);this.isNodeMaterial=!0;this.type="NodeMaterial";this.wireframeLinecap="";this.wireframeLinejoin="";this.uniformsBackup={};this.userData={type:"",category:"",nodeType:""};this.fog=!0,this.vertex=e!=null?e:new du(new xr(xr.PROJECTION)),this.fragment=t!=null?t:new du(new vt(Yt)),this.updaters=[],this.isDetached=!0,this.dithering=!0,this.onBeforeCompile=this._onBeforeCompile}getDefines(){return this.defines}getUniforms(){return this.uniforms}getVertexShader(){return this.vertexShader}getFragmentShader(){return this.fragmentShader}_onBeforeCompile(e,t){this.build({renderer:t}),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}_getLayerStack(e){let t=new Ir(this);return e&&(async()=>{for(;e.image===void 0;)await new Promise(r=>requestAnimationFrame(r));t.addLayerAt(1,{type:qe.TEXTURE,texture:e}),this.dispose()})(),t}clampUniformsForPreview(e,t){let r=(n,s,l)=>Math.min(Math.max(n,s),l);if(this.userData.layers){for(let n of this.userData.layers.getLayers())if(n.type==qe.DISPLACE){this.uniformsBackup[`f${n.id}_intensity`]=n.uniforms[`f${n.id}_intensity`].value;let s=r(n.uniforms[`f${n.id}_intensity`].value,e,t);n.uniforms[`f${n.id}_intensity`].value=s}}}restoreClampedUniforms(){if(this.userData.layers)for(let e of this.userData.layers.getLayers())e.type==qe.DISPLACE&&(e.uniforms[`f${e.id}_intensity`].value=this.uniformsBackup[`f${e.id}_intensity`])}customProgramCacheKey(){return this.getHash()}updateFrame(e){for(let t=0;t<this.updaters.length;++t)e.updateNode(this.updaters[t])}build(e){var r;e=e!=null?e:{};let t=(r=e.builder)!=null?r:new ip;return t.setMaterial(this,e.renderer),t.build(this.vertex,this.fragment),this.vertexShader=t.getCode("vertex"),this.fragmentShader=t.getCode("fragment"),this.defines=t.defines,this.uniforms=t.uniforms,this.extensions=t.extensions,this.updaters=t.updaters,this.fog=t.requires.fog,this.lights=t.requires.lights,this.transparent=t.requires.transparent||this.blending>LD,this}getHash(){let e="{";return e+='"vertex":'+this.vertex.getHash()+",",e+='"fragment":'+this.fragment.getHash(),e+="}",e}copy(e){let t=this.uuid;for(let r in e)this[r]=e[r];return this.uuid=t,e.userData!==void 0&&(this.userData=JSON.parse(JSON.stringify(e.userData))),this}toJSON(e){let t=this.userData.layers;this.userData.layers=void 0;let r=super.toJSON(e);return r.type="ShaderMaterial",r.userData={type:this.userData.type,category:this.userData.category,nodeType:this.type,layers:t.toJSON(e)},r.vertex=this.vertex.toJSON(e).uuid,r.fragment=this.fragment.toJSON(e).uuid,delete r.vertexShader,delete r.fragmentShader,delete r.color,delete r.shininess,delete r.specular,delete r.roughness,delete r.metalness,delete r.uniforms,e&&!e.materials[this.uuid]&&(e.materials[this.uuid]=r),this.userData.layers=t,r}fromJSON(e,t){var r;this.defines=(r=e.defines)!=null?r:{},this.depthFunc=e.depthFunc,this.depthWrite=e.depthWrite,this.side=e.side!==void 0?e.side:TD,this.transparent=e.transparent,this.wireframeLinecap=e.wireframeLinecap,this.wireframeLinejoin=e.wireframeLinejoin,this.flatShading=e.flatShading,this.wireframe=e.wireframe,this.userData.layers.fromJSON(e.userData.layers,t,this)}};Object.defineProperties(vn.prototype,{properties:{get:function(){return this.fragment.properties}},needsUpdate:{set:function(i){i===!0&&this.version++,this.needsCompile=i},get:function(){return this.needsCompile}}});import{UniformsLib as ID,UniformsUtils as MD}from"three";var hp=class extends Pe{constructor(){super("basic");this.nodeType="Basic";this.color=new vt(Yt)}generate(e){let t;if(e.isShader("vertex")){let r=this.position?this.position.analyzeAndFlow(e,"v3",{cache:"position"}):void 0;e.mergeUniform(MD.merge([ID.fog])),e.addParsCode(["varying vec3 vViewPosition;","#include <fog_pars_vertex>","#include <normal_pars_vertex>"].join(`
|
|
729
|
-
`));let
|
|
728
|
+
`)}}();var yr=class{constructor(t){this.id=2,this.layerCount=2,this.uuid=pi.generateUUID(),this.needsUpdate=!1,this._material=t,this._layerNodes=[];let e=this._createLayer({id:0,type:"color"});this._material.color=e.color,this._material.alpha===void 0&&(this._material.alpha=new ve(1));let r=new ve(1),n=new Ke(0);"shadingAlpha"in this._material&&"shadingBlend"in this._material&&(this._material.shadingAlpha=r,this._material.shadingBlend=n),this._layerNodes.push({id:0,type:"color",color:e.color,alpha:e.alpha,mode:e.mode}),this._layerNodes.push({id:1,type:"light",alpha:r,mode:n}),this.head=e.layer,this.head.next=new Mt(1,void 0,{type:"light",alpha:r,mode:n}),this.attachLightNodes(this.getLightLayer())}get material(){return this._material}set material(t){var o;this._material=t;let e,r,n=this.head;for(;n!==void 0;){if(n.type==="light"){e=n.uniforms[`f${n.id}_alpha`],r=n.uniforms[`f${n.id}_mode`];break}n=n.next}"shadingAlpha"in this._material&&"shadingBlend"in this._material&&(this._material.shadingAlpha=e,this._material.shadingBlend=r),this.attachLightNodes((o=t.userData.layers)==null?void 0:o.getLightLayer()),this.blendColors(),this.blendAfterColors(),this.blendPositions()}getLayersOfType(t){let e=[],r=this.head;for(;r;)r.type===t&&e.push(r),r=r.next;return e}addLayer(t){var n;if(t.id=(n=t.id)!=null?n:++this.id,this.layerCount++,t.type==="light"){let o=this.createLightLayer(t);return this.uuid=pi.generateUUID(),this.blendColors(),this.blendAfterColors(),this.blendPositions(),o}let e=this._createLayer(t),r=e.layer;if(this.head===void 0)this.head=r;else{let o=this.head;for(;o.next!=null;)o=o.next;o.next=r}return e.color&&this._layerNodes.push({id:r.id,type:"color",color:e.color,alpha:e.alpha,mode:e.mode}),e.position&&this._layerNodes.push({id:r.id,type:"position",position:e.position}),this.uuid=pi.generateUUID(),this.blendColors(),this.blendAfterColors(),this.blendPositions(),r}addLayerBeforeAt(t,e){var c;let r=this.head;t.id=(c=t.id)!=null?c:++this.id,this.layerCount++;let n=this._createLayer(t),o=n.layer;o.next=e;let a=0;if(r===e)this.head=o,n.color&&this._layerNodes.splice(0,0,{id:o.id,type:"color",color:n.color,alpha:n.alpha,mode:n.mode}),n.position&&this._layerNodes.splice(0,0,{id:o.id,type:"position",position:n.position});else{for(a=1;(r==null?void 0:r.next)!==e;)r=r==null?void 0:r.next,a++;r.next=o,n.color&&this._layerNodes.splice(a,0,{id:o.id,type:"color",color:n.color,alpha:n.alpha,mode:n.mode}),n.position&&this._layerNodes.splice(a,0,{id:o.id,type:"position",position:n.position})}return this.uuid=pi.generateUUID(),this.blendColors(),this.blendAfterColors(),this.blendPositions(),o}addLayerAt(t,e){var o;e.id=(o=e.id)!=null?o:++this.id,this.layerCount++;let r=this._createLayer(e),n=r.layer;if(r.color&&this._layerNodes.splice(t,0,{id:n.id,type:"color",color:r.color,alpha:r.alpha,mode:r.mode}),r.position&&this._layerNodes.splice(t,0,{id:n.id,type:"position",position:r.position}),t==0)n.next=this.head,this.head=n;else{let a=this.head,c=this.head.next;for(let f=0;f<t-1;f++)a=c,c=c.next;n.next=c,a.next=n}return this.uuid=pi.generateUUID(),this.blendColors(),this.blendAfterColors(),this.blendPositions(),n}removeLayer(t){let e=this.head,r,n=0;if((e==null?void 0:e.id)==t)this.head=e.next;else for(n=1,r=e,e=e==null?void 0:e.next;e!=null;){if(e.id==t){r.next=e.next;break}n++,r=e,e=e.next}return this.cleanupChangedLayer(e),this.blendColors(),this.blendAfterColors(),this.blendPositions(),this.uuid=pi.generateUUID(),this.layerCount--,n}changeLayer(t,e){let r,n=this.head,o;if((n==null?void 0:n.id)==t){let a=this._createLayer(j({id:t,uuid:n.uuid},e));o=a.layer,o.next=n.next,this.head=o,a.color&&(this._layerNodes[0]={id:o.id,type:"color",color:a.color,alpha:a.alpha,mode:a.mode}),a.position&&(this._layerNodes[0]={id:o.id,type:"position",position:a.position}),o.uniforms[`f${t}_mode`].value=n.uniforms[`f${t}_mode`].value,o.uniforms[`f${t}_alpha`].value=n.uniforms[`f${t}_alpha`].value}else{r=n,n=n.next;let a=1;for(;n!=null;){if(n.id==t){let c=this._createLayer(j({id:t,uuid:n.uuid},e));o=c.layer,r.next=o,o.next=n.next,c.color&&(this._layerNodes[a]={id:t,type:"color",color:c.color,alpha:c.alpha,mode:c.mode}),c.position&&(this._layerNodes[a]={id:t,type:"position",position:c.position}),o.uniforms[`f${t}_mode`].value=n.uniforms[`f${t}_mode`].value,o.uniforms[`f${t}_alpha`].value=n.uniforms[`f${t}_alpha`].value;break}r=n,n=n.next,a++}}return this.uuid=pi.generateUUID(),this.blendColors(),this.blendAfterColors(),this.blendPositions(),o}getLayer(t){let e=this.head;for(;e!=null&&e.id!=t;)e=e.next;return e}getLayerByUuid(t){let e=this.head;for(;e!==void 0;){if(e.uuid===t)return e;e=e.next}}getLayers(){let t=[],e=this.head;for(;e!=null;)t.push(e),e=e.next;return t}getLayerPosition(t){let e=this.head,r=0;for(;e!==void 0&&e.id!=t;)r++,e=e.next;return r}getDefines(){}getBeforeProgram(){}getLightingProgram(){}getAfterProgram(){}getVarPrograms(){}getUniforms(){}moveLayer(t,e){let r,n=this.head,o;if(t==0)r=this.head,this.head=r.next;else{for(let c=0;c<t;c++)o=n,n=n.next;o.next=n.next,r=n}if(n=this.head,o=void 0,e==0)r.next=this.head,this.head=r;else{for(let c=0;c<e-1;c++)n=n.next;r.next=n==null?void 0:n.next,n.next=r}let a=this._layerNodes.splice(t,1)[0];this._layerNodes.splice(e,0,a),this.uuid=pi.generateUUID(),this.blendColors(),this.blendAfterColors()}updateLayerUniform(){this.uuid=pi.generateUUID(),this.blendColors(),this.blendAfterColors()}copy(t){this.needsUpdate=!1,this.layerCount=t.layerCount,this._layerNodes=[],this.layerCount=0,this.head=void 0,this.rebuildLayerNodes(this.head,t.head);let e=t.head,r=this.head;for(;e.next!=null;)this.rebuildLayerNodes(r,e.next),r=r.next,e=e.next;return this.id=t.id,this.uuid=t.uuid,this.blendColors(),this.blendAfterColors(),this.blendPositions(),this}createLightLayer(t){let e=new ve(t.alpha),r=new Ke(t.mode);this._material.shadingAlpha=e,this._material.shadingBlend=r,this._layerNodes.push({id:t.id,type:"light",alpha:e,mode:r});let n=new Mt(t.id,void 0,{type:"light",alpha:e,mode:r});if(this.head===void 0)this.head=n;else{let o=this.head;for(;o.next!=null;)o=o.next;o.next=n}return this.attachLightNodes(this.getLightLayer()),n}rebuildLayerNodes(t,e,r=!1){if(e.type==="light"){let n=r?e.uniforms[`f${e.id}_alpha`]:new ve(e.uniforms[`f${e.id}_alpha`].value),o=r?e.uniforms[`f${e.id}_mode`]:new Ke(e.uniforms[`f${e.id}_mode`].value);this._material.shadingAlpha=n,this._material.shadingBlend=o,this._layerNodes.push({id:e.id,type:"light",alpha:n,mode:o}),this.head===void 0?this.head=new Mt(e.id,e.uuid,{type:"light",alpha:n,mode:o}):t&&(t.next=new Mt(e.id,e.uuid,{type:"light",alpha:n,mode:o})),this.attachLightNodes(e)}else{let n={type:e.type,id:e.id};for(let o in e.uniforms){let a=e.getName(o);if(!a)continue;let c=`f${e.id}_${a}`;if(Array.isArray(e.uniforms[c].value))n[a]=e.uniforms[c].value.map(f=>f.clone&&!r?f.clone():f);else{let f=e.uniforms[c].value;if(a==="transmissionDepthMap"){n[a]=f;continue}f!=null&&(n[a]=f.clone&&!r&&!f.isRenderTargetTexture?f.clone():f)}}this.addLayer(n)}}attachLightNodes(t){var n,o,a,c,f,h,d,m,x,S,w;let e={},r=this.getLightLayer();switch(this._material.userData.category){case"Lambert":e.emissive=new yt((o=(n=t==null?void 0:t.getValue("emissive"))==null?void 0:n.clone())!=null?o:0);break;case"Phong":e.shininess=new ve((a=t==null?void 0:t.getValue("shininess"))!=null?a:30),e.specular=new yt((f=(c=t==null?void 0:t.getValue("specular"))==null?void 0:c.clone())!=null?f:1118481);break;case"Toon":e.shininess=new ve((h=t==null?void 0:t.getValue("shininess"))!=null?h:30),e.specular=new yt((m=(d=t==null?void 0:t.getValue("specular"))==null?void 0:d.clone())!=null?m:1118481);break;case"Physical":e.roughness=new ve((x=t==null?void 0:t.getValue("roughness"))!=null?x:.3),e.metalness=new ve((S=t==null?void 0:t.getValue("metalness"))!=null?S:0),e.reflectivity=new ve((w=t==null?void 0:t.getValue("reflectivity"))!=null?w:.5);break;default:break}Object.keys(e).forEach(B=>{this._material[B]=e[B],r.uniforms[`f${r.id}_${B}`]=e[B]})}clone(t){return new yr(t).copy(this)}toJSON(t){return{id:this.id,uuid:this.uuid,head:this.head.toJSON(t)}}fromJSON(t,e,r){let n=new Mt(t.head.id,void 0,{type:t.head.type}).fromJSON(t.head,e),o=t.head.next,a=n;for(;o!=null;)a.next=new Mt(o.id,void 0,{type:o.type}).fromJSON(o,e),o=o.next,a=a.next;this._layerNodes=[],this.head=void 0,this.rebuildLayerNodes(this.head,n,!0);let c=n;for(a=this.head;c.next!=null;)this.rebuildLayerNodes(a,c.next,!0),a=a.next,c=c.next;return this._material=r,this.id=t.id,this.uuid=t.uuid,this.blendColors(),this.blendAfterColors(),this.blendPositions(),this}getLightLayer(){var e;let t=this.head;for(;t!==void 0&&t.type!=="light";)t=(e=t.next)!=null?e:t;return t}dispose(){let t=this.head;for(this._layerNodes=[],this.layerCount=0;t!==void 0;)t.hasOwnProperty("dispose")===!0&&t.dispose(),t=t.next;this.head=void 0}_createLayer(t){var r,n,o,a,c,f,h,d,m,x,S,w,B,O,T,M,F,k,N,te,A,b,V,P,R,E,G,ae,ne,xe,_e,Le,Ue,se,$,W,J,H,K,fe,me,ie,re,q,ee,Te,ce,le,he,pe,de,be,Se,Ie,ft,Ve,Lt,qe,_t,Wt,Rr,Ut,zr,mn,gn,pt,jt,ir,Lo,To,No,Ki,Yi,_o,Nr,Xi,qt,Kn,Io;let e=t.type;switch(e){case"color":{let Re=new yt((r=t.color)!=null?r:5855577),Ye=new ve((n=t.alpha)!=null?n:1),He=new gt("alpha / clamp(alpha + accumAlpha, 0.00001, 1.0 )","f");He.keywords.alpha=Ye;let $e=new Ke((o=t.mode)!=null?o:0);return Re.alpha=Ye,{layer:new Mt(t.id,t.uuid,{type:e,color:Re,alpha:Ye,calpha:He,mode:$e}),color:Re,alpha:He,mode:$e}}case"texture":{let Re=(a=t.texture)!=null?a:new kn,Ye=Re.matrix;t.mat&&Ye.copy(t.mat),Re.needsUpdate=!0;let He=new ve((c=t.crop)!=null?c:0),$e=new Ke((f=t.projection)!=null?f:0),Qe=new Ke((h=t.axis)!=null?h:0),ot=new mr(t.size?new ji(t.size[0],t.size[1]):new ji(100,100)),dt=new ve((d=t.alpha)!=null?d:1),mt=new Ke((m=t.mode)!=null?m:0),at=new Lr(Re),vt=new gr((x=t.textureSize)!=null?x:new ki(Re.image?Re.image.width:0,Re.image?Re.image.height:0)),Bt=new Ua(at,vt,He,$e,Qe,ot,dt,mt),_r=new gt(Bt.calpha,"f");return{layer:new Mt(t.id,t.uuid,{type:e,texture:at,textureSize:vt,crop:He,projection:$e,axis:Qe,size:ot,mat:Bt.mat,alpha:dt,calpha:_r,mode:mt}),color:Bt,alpha:_r,mode:mt}}case"matcap":{let Re=(S=t.texture)!=null?S:new kn;Re.needsUpdate=!0;let Ye=new ve((w=t.alpha)!=null?w:1),He=new Lr(Re),$e=new Ke((B=t.mode)!=null?B:0),Qe=new Za(He,Ye,$e),ot=new gt(Qe.calpha,"f");return{layer:new Mt(t.id,t.uuid,{type:e,texture:He,alpha:Ye,calpha:ot,mode:$e}),color:Qe,alpha:ot,mode:$e}}case"fresnel":{let Re=new yt((O=t.color)!=null?O:16777215),Ye=new ve((T=t.bias)!=null?T:.1),He=new ve((M=t.scale)!=null?M:1),$e=new ve((F=t.intensity)!=null?F:2),Qe=new ve((k=t.factor)!=null?k:1),ot=new ve((N=t.alpha)!=null?N:1),dt=new Ke((te=t.mode)!=null?te:0),mt=new ka(Re,Ye,He,$e,Qe,ot,dt),at=new gt(mt.calpha,"f");return{layer:new Mt(t.id,t.uuid,{type:e,color:Re,bias:Ye,scale:He,intensity:$e,factor:Qe,alpha:ot,calpha:at,mode:dt}),color:mt,alpha:at,mode:dt}}case"rainbow":{let Re=new ve((A=t.filmThickness)!=null?A:30),Ye=new ve((b=t.movement)!=null?b:0),He=new gr((V=t.wavelengths)!=null?V:new ki(0,0,0)),$e=new ve((P=t.noiseStrength)!=null?P:0),Qe=new ve((R=t.noiseScale)!=null?R:1),ot=new gr((E=t.offset)!=null?E:new ki(0,0,0)),dt=new ve((G=t.alpha)!=null?G:1),mt=new Wa(Re,Ye,He,$e,Qe,ot,dt),at=new gt(mt.calpha,"f"),vt=new Ke((ae=t.mode)!=null?ae:0);return{layer:new Mt(t.id,t.uuid,{type:e,filmThickness:Re,movement:Ye,wavelengths:He,noiseStrength:$e,noiseScale:Qe,offset:ot,alpha:dt,calpha:at,mode:vt}),color:mt,alpha:at,mode:vt}}case"transmission":{let Re=new ve((ne=t.thickness)!=null?ne:10),Ye=new ve((xe=t.ior)!=null?xe:1.5),He=new ve((_e=t.roughness)!=null?_e:.5),$e=new mr((Le=t.transmissionSamplerSize)!=null?Le:new ji(2048,2048)),Qe=(Ue=t.transmissionSamplerMap)!=null?Ue:new kn,ot=(se=t.transmissionDepthMap)!=null?se:new kn,dt=new Lr(Qe),mt=new Lr(ot),at=window.innerWidth,vt=window.innerHeight,Bt=at>=vt?new mr(vt/at,1):new mr(1,at/vt),_r=new ve(($=t.alpha)!=null?$:1),yn=new qa(Re,Ye,He,$e,dt,mt,Bt,_r),xn=new gt(yn.calpha,"f"),Pn=new Ke((W=t.mode)!=null?W:0);return{layer:new Mt(t.id,t.uuid,{type:e,thickness:Re,ior:Ye,roughness:He,transmissionSamplerSize:$e,transmissionSamplerMap:dt,transmissionDepthMap:mt,aspectRatio:Bt,alpha:_r,calpha:xn,mode:Pn}),color:yn,alpha:xn,mode:Pn}}case"depth":{let Re=new Ke((J=t.gradientType)!=null?J:0),Ye=new Va((H=t.smooth)!=null?H:!1),He=new ve((K=t.near)!=null?K:50),$e=new ve((fe=t.far)!=null?fe:200),Qe=new ve((me=t.isVector)!=null?me:1),ot=new ve((ie=t.isWorldSpace)!=null?ie:0),dt=new gr((re=t.origin)!=null?re:new ki),mt=new gr((q=t.direction)!=null?q:new ki),at=new Ke((ee=t.num)!=null?ee:0),vt;t.colors?vt=new vo(at.value+1,t.colors):(vt=new vo(at.value+1,new mu(0,0,0,1)),vt.value[1]=new mu(1,1,1,1));let Bt;t.steps?Bt=new bo(t.steps.length,t.steps):(Bt=new bo(10,1),Bt.value[0]=0);let _r=new ve((Te=t.alpha)!=null?Te:1),yn=new Ke((ce=t.mode)!=null?ce:0),xn=new Xa(Re,Ye,He,$e,Qe,ot,dt,mt,vt,Bt,at,_r),Pn=new gt(xn.calpha,"f");return{layer:new Mt(t.id,t.uuid,{type:e,gradientType:Re,smooth:Ye,near:He,far:$e,isVector:Qe,isWorldSpace:ot,origin:dt,direction:mt,colors:vt,steps:Bt,num:at,alpha:_r,calpha:Pn,mode:yn}),color:xn,alpha:Pn,mode:yn}}case"noise":{let Re=new ve((le=t.scale)!=null?le:1),Ye=new gr((he=t.size)!=null?he:new ki(100,100,100)),He=new ve((pe=t.move)!=null?pe:1),$e=new mr((de=t.fA)!=null?de:new ji(1.7,9.2)),Qe=new mr((be=t.fB)!=null?be:new ji(8.3,2.8)),ot=new mr((Se=t.distortion)!=null?Se:new ji(1,1)),dt=new hi(t.colorA),mt=new hi(t.colorB),at=new hi(t.colorC),vt=new hi(t.colorD),Bt=new ve((Ie=t.alpha)!=null?Ie:1),_r=new Ke((ft=t.mode)!=null?ft:0),yn=new Ke((Ve=t.noiseType)!=null?Ve:0),xn=new Ka(Re,Ye,He,$e,Qe,ot,dt,mt,at,vt,Bt,yn),Pn=new gt(xn.calpha,"f");return{layer:new Mt(t.id,t.uuid,{type:e,scale:Re,size:Ye,move:He,fA:$e,fB:Qe,distortion:ot,colorA:dt,colorB:mt,colorC:at,colorD:vt,alpha:Bt,calpha:Pn,mode:_r,noiseType:yn}),color:xn,alpha:Pn,mode:_r}}case"normal":{let Re=new gr((Lt=t.cnormal)!=null?Lt:new ki(1,1,1)),Ye=new ve((qe=t.alpha)!=null?qe:1),He=new Ke((_t=t.mode)!=null?_t:0),$e=new $a(Re,Ye),Qe=new gt("alpha / clamp(alpha + accumAlpha, 0.00001, 1.0 )","f");return Qe.keywords.alpha=Ye,{layer:new Mt(t.id,t.uuid,{type:e,cnormal:Re,alpha:Ye,calpha:Qe,mode:He}),color:$e,alpha:Qe,mode:He}}case"gradient":{let Re=new Ke((Wt=t.gradientType)!=null?Wt:0),Ye=new Va((Rr=t.smooth)!=null?Rr:!1),He;t.colors?He=new vo(t.colors.length,t.colors):(He=new vo(10,new mu(0,0,0,1)),He.value[1]=new mu(1,1,1,1));let $e;t.steps?$e=new bo(t.steps.length,t.steps):($e=new bo(10,1),$e.value[0]=0);let Qe=new mr((Ut=t.offset)!=null?Ut:new ji(0,0)),ot=new mr((zr=t.morph)!=null?zr:new ji(0,0)),dt=new ve((mn=t.angle)!=null?mn:0),mt=new ve((gn=t.alpha)!=null?gn:1),at=new Ke((pt=t.mode)!=null?pt:0),vt=new Ja(Re,Ye,He,$e,Qe,ot,dt,mt),Bt=new gt(vt.calpha,"f");return{layer:new Mt(t.id,t.uuid,{type:e,gradientType:Re,smooth:Ye,colors:He,steps:$e,offset:Qe,morph:ot,angle:dt,alpha:mt,calpha:Bt,mode:at}),color:vt,alpha:Bt,mode:at}}case"displace":{let Re=new Ke((jt=t.displacementType)!=null?jt:0);if(Re.value===0){let Ye=new gr((ir=t.offset)!=null?ir:new ki(0,0,0)),He=new ve((Lo=t.scale)!=null?Lo:10),$e=new ve((To=t.intensity)!=null?To:8),Qe=new ve((No=t.movement)!=null?No:1),ot=new ve((Ki=t.alpha)!=null?Ki:1),dt=new Ke((Yi=t.mode)!=null?Yi:0),mt=new Ke((_o=t.noiseType)!=null?_o:0),at=new Ms(Re,$e,Qe,Ye,He,mt);return{layer:new Mt(t.id,t.uuid,{displacementType:Re,type:e,offset:Ye,scale:He,intensity:$e,movement:Qe,alpha:ot,mode:dt,noiseType:mt}),position:at}}else if(Re.value===1){let Ye=(Nr=t.texture)!=null?Nr:new kn,He=Ye.matrix;t.mat&&He.copy(t.mat),Ye.needsUpdate=!0;let $e=new ve((Xi=t.intensity)!=null?Xi:8),Qe=new Lr(Ye),ot=new ve((qt=t.crop)!=null?qt:0),dt=new ve((Kn=t.alpha)!=null?Kn:1),mt=new Ke((Io=t.mode)!=null?Io:0),at=new Ms(Re,$e,Qe,ot);return{layer:new Mt(t.id,t.uuid,{displacementType:Re,type:e,intensity:$e,texture:Qe,crop:ot,mat:at.mat,alpha:dt,mode:mt}),position:at}}return{}}}return{}}blendColors(){let t=this._layerNodes.findIndex(r=>r.type==="color"),e=this._layerNodes.findIndex(r=>r.type==="light");if(t!==-1&&t<e){let r=this._layerNodes[t].color;for(let n=t+1;n<e;++n){let o=this._layerNodes[n];o.type==="color"&&(r=new Ya(r,o.color,o.alpha,o.mode))}this._material.color=r}else this._material.color=void 0}blendAfterColors(){let t=new gt("outgoingLight","f"),e=this._layerNodes.findIndex(r=>r.type==="light");if(this._layerNodes.length>e+1){for(let r=e+1;r<this._layerNodes.length;++r){let n=this._layerNodes[r];n.type==="color"&&(t=new Ya(t,n.color,n.alpha,n.mode))}"afterColor"in this._material&&(this._material.afterColor=t)}else"afterColor"in this._material&&(this._material.afterColor=void 0)}blendPositions(){let t=this._layerNodes.filter(e=>e.type==="position");if(t.length>0){let e=t[0].position;for(let r=1;r<t.length;++r)t[r]&&(e=new Br(e,t[r].position,Br.ADD),e=new Br(e,new ve(.5).setReadonly(!0),Br.MUL));this._material.position=e}else this._material.position=void 0}cleanupChangedLayer(t){switch(this._layerNodes=this._layerNodes.filter(e=>e.id!==t.id),t.type){case"displace":{this.blendPositions();break}default:{this.blendColors(),this.blendAfterColors();break}}}};var Kr=class extends iD{constructor(e,r,n){super(n);this.isNodeMaterial=!0;this.type="NodeMaterial";this.wireframeLinecap="";this.wireframeLinejoin="";this.uniformsBackup={};this.userData={type:"",category:"",nodeType:""};this.fog=!0,this.vertex=e!=null?e:new Fa(new cr(cr.PROJECTION)),this.fragment=r!=null?r:new Fa(new yt(5855577)),this.updaters=[],this.isDetached=!0,this.dithering=!0,this.onBeforeCompile=this._onBeforeCompile}getDefines(){return this.defines}getUniforms(){return this.uniforms}getVertexShader(){return this.vertexShader}getFragmentShader(){return this.fragmentShader}_onBeforeCompile(e,r){this.build({renderer:r}),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}_getLayerStack(e){let r=new yr(this);return e&&(async()=>{for(;e.image===void 0;)await new Promise(n=>requestAnimationFrame(n));r.addLayerAt(1,{type:"texture",texture:e}),this.dispose()})(),r}clampUniformsForPreview(e,r){let n=(o,a,c)=>Math.min(Math.max(o,a),c);if(this.userData.layers){for(let o of this.userData.layers.getLayers())if(o.type=="displace"){this.uniformsBackup[`f${o.id}_intensity`]=o.uniforms[`f${o.id}_intensity`].value;let a=n(o.uniforms[`f${o.id}_intensity`].value,e,r);o.uniforms[`f${o.id}_intensity`].value=a}}}restoreClampedUniforms(){if(this.userData.layers)for(let e of this.userData.layers.getLayers())e.type=="displace"&&(e.uniforms[`f${e.id}_intensity`].value=this.uniformsBackup[`f${e.id}_intensity`])}customProgramCacheKey(){return this.getHash()}updateFrame(e){for(let r=0;r<this.updaters.length;++r)e.updateNode(this.updaters[r])}build(e){var n;e=e!=null?e:{};let r=(n=e.builder)!=null?n:new du;return r.setMaterial(this,e.renderer),r.build(this.vertex,this.fragment),this.vertexShader=r.getCode("vertex"),this.fragmentShader=r.getCode("fragment"),this.defines=r.defines,this.uniforms=r.uniforms,this.extensions=r.extensions,this.updaters=r.updaters,this.fog=r.requires.fog,this.lights=r.requires.lights,this.transparent=r.requires.transparent||this.blending>nD,this}getHash(){let e="{";return e+='"vertex":'+this.vertex.getHash()+",",e+='"fragment":'+this.fragment.getHash(),e+="}",e}copy(e){let r=this.uuid;for(let n in e)this[n]=e[n];return this.uuid=r,e.userData!==void 0&&(this.userData=JSON.parse(JSON.stringify(e.userData))),this}toJSON(e){let r=this.userData.layers;this.userData.layers=void 0;let n=super.toJSON(e);return n.type="ShaderMaterial",n.userData={type:this.userData.type,category:this.userData.category,nodeType:this.type,layers:r.toJSON(e)},n.vertex=this.vertex.toJSON(e).uuid,n.fragment=this.fragment.toJSON(e).uuid,delete n.vertexShader,delete n.fragmentShader,delete n.color,delete n.shininess,delete n.specular,delete n.roughness,delete n.metalness,delete n.uniforms,e&&!e.materials[this.uuid]&&(e.materials[this.uuid]=n),this.userData.layers=r,n}fromJSON(e,r){var n;this.defines=(n=e.defines)!=null?n:{},this.depthFunc=e.depthFunc,this.depthWrite=e.depthWrite,this.side=e.side!==void 0?e.side:oD,this.transparent=e.transparent,this.wireframeLinecap=e.wireframeLinecap,this.wireframeLinejoin=e.wireframeLinejoin,this.flatShading=e.flatShading,this.wireframe=e.wireframe,this.userData.layers.fromJSON(e.userData.layers,r,this)}};Object.defineProperties(Kr.prototype,{properties:{get:function(){return this.fragment.properties}},needsUpdate:{set:function(i){i===!0&&this.version++,this.needsCompile=i},get:function(){return this.needsCompile}}});import{UniformsLib as sD,UniformsUtils as aD}from"three";var gu=class extends Pe{constructor(){super("basic");this.nodeType="Basic";this.color=new yt(5855577)}generate(e){let r;if(e.isShader("vertex")){let n=this.position?this.position.analyzeAndFlow(e,"v3",{cache:"position"}):void 0;e.mergeUniform(aD.merge([sD.fog])),e.addParsCode(["varying vec3 vViewPosition;","#include <fog_pars_vertex>","#include <normal_pars_vertex>"].join(`
|
|
729
|
+
`));let o=["#include <beginnormal_vertex>",`
|
|
730
730
|
#if !defined( USE_LAYER_DISPLACE )
|
|
731
731
|
#include <defaultnormal_vertex>
|
|
732
732
|
#endif
|
|
@@ -742,11 +742,11 @@ vec4 getIBLVolumeRefraction( vec3 n, vec3 v, float roughness, vec3 position, mat
|
|
|
742
742
|
#if !defined( USE_LAYER_DISPLACE )
|
|
743
743
|
#include <begin_vertex>
|
|
744
744
|
#endif /* !USE_LAYER_DISPLACE */
|
|
745
|
-
`];
|
|
746
|
-
`)}else{this.color===void 0&&(this.color=new
|
|
747
|
-
`));let
|
|
748
|
-
`)}return
|
|
749
|
-
`));let
|
|
745
|
+
`];n&&o.push(n.code,n.result?"displaced_position = "+n.result+";":""),o.push("transformed = displaced_position;","transformedNormal = normalMatrix * displaced_normal;","#ifndef FLAT_SHADED"," vNormal = transformedNormal;","#endif"),o.push("#include <project_vertex>","#include <fog_vertex>","#include <clipping_planes_vertex>"," vViewPosition = - mvPosition.xyz;","#include <worldpos_vertex>"),r=o.join(`
|
|
746
|
+
`)}else{this.color===void 0&&(this.color=new yt(5855577)),this.color.analyze(e,{slot:"color"}),this.alpha&&this.alpha.analyze(e),this.afterColor&&this.afterColor.analyze(e,{slot:"afterColor"});let n=this.color.flow(e,"c",{slot:"color"}),o=this.alpha?this.alpha.flow(e,"f"):void 0,a=this.afterColor?this.afterColor.flow(e,"c",{slot:"afterColor"}):void 0;e.requires.transparent=o!==void 0,e.addParsCode(["#include <fog_pars_fragment>","#include <dithering_pars_fragment>","varying vec3 vViewPosition;","#include <normal_pars_fragment>"].join(`
|
|
747
|
+
`));let c=["#include <normal_fragment_begin>",n.code];o&&c.push(o.code,"#ifdef ALPHATEST"," if ( "+o.result+" <= ALPHATEST ) discard;","#endif"),a?c.push(a.code,`vec3 outgoingLight = ${n.result};`,`vec3 finalColor = spe_blend(outgoingLight, ${a.result}, 1.0, SPE_BLENDING_NORMAL);`):c.push(`vec3 finalColor = ${n.result};`),o?c.push(`gl_FragColor = vec4( finalColor, accumAlpha * ${o.result} );`):c.push("gl_FragColor = vec4("+n.result+", 1.0 );"),c.push("#include <fog_fragment>","#include <dithering_fragment>"),r=c.join(`
|
|
748
|
+
`)}return r}copy(e){return super.copy(e),e.color&&(this.color=e.color.clone()),e.position&&(this.position=e.position.clone()),e.alpha&&(this.alpha=e.alpha.clone()),e.afterColor&&(this.afterColor=e.afterColor.clone()),e.shadingAlpha&&(this.shadingAlpha=e.shadingAlpha.clone()),e.shadingBlend&&(this.shadingBlend=e.shadingBlend.clone()),this}};var yu=class extends Kr{constructor(e=new gu,r){super(e,e,r);this.type="BasicNodeMaterial",this.fragment=e}get color(){return this.fragment.color}set color(e){this.fragment.color=e}get afterColor(){return this.fragment.afterColor}set afterColor(e){this.fragment.afterColor=e}get alpha(){return this.fragment.alpha}set alpha(e){this.fragment.alpha=e}get shadingAlpha(){return this.fragment.shadingAlpha}set shadingAlpha(e){this.fragment.shadingAlpha=e}get shadingBlend(){return this.fragment.shadingBlend}set shadingBlend(e){this.fragment.shadingBlend=e}get position(){return this.fragment.position}set position(e){this.fragment.position=e}};var ur=class extends yu{constructor(t,e,r){super(e,t),this.userData.type="BasicMaterial",this.userData.category="Basic",this.userData.layers=r!=null?r:this._getLayerStack(t==null?void 0:t.map)}get layersList(){return this.userData.layers}set layersList(t){this.userData.layers=t}equals(t){return this.userData.type===t.userData.type&&this.userData.layers.uuid==t.userData.layers.uuid}copy(t){if(t.userData.layers!==void 0&&t.userData.layers instanceof yr){let e=t.userData.layers,r=t.fragment;super.copy(t);let n=r.clone();this.fragment=n,this.vertex=n;let o=e.clone(this);this.userData.layers=o}else super.copy(t);return this}static fromJSON(t,e,r){let n=r.getNode(e.vertex),o=new ur(void 0,n);return o.fromJSON(e,r),o}static fromMaterial(t){let e=new ur(t.map?{map:t.map}:{}),r=e.fragment;return r.color.value.copy(t.color),r.alpha.value=t.opacity,e}dispose(){super.dispose()}};import{UniformsLib as sv,UniformsUtils as lD}from"three";var xu=class extends Pe{constructor(){super("phong");this.nodeType="Phong";this.color=new yt(5855577),this.specular=new yt(1118481),this.shininess=new ve(30),this.shadingAlpha=new ve(1),this.shadingBlend=new Ke(0)}build(e){let r;if(e.define("PHONG"),e.requires.lights=!0,e.extensions.derivatives=!0,e.isShader("vertex")){let n=this.position?this.position.analyzeAndFlow(e,"v3",{cache:"position"}):void 0;e.mergeUniform(lD.merge([sv.fog,sv.lights])),e.addParsCode(["varying vec3 vViewPosition;","#include <fog_pars_vertex>","#include <normal_pars_vertex>","#include <shadowmap_pars_vertex>","#include <clipping_planes_pars_vertex>"].join(`
|
|
749
|
+
`));let o=["#include <beginnormal_vertex>",`
|
|
750
750
|
#ifndef USE_LAYER_DISPLACE
|
|
751
751
|
#include <defaultnormal_vertex>
|
|
752
752
|
#endif
|
|
@@ -762,9 +762,9 @@ vec4 getIBLVolumeRefraction( vec3 n, vec3 v, float roughness, vec3 position, mat
|
|
|
762
762
|
#ifndef USE_LAYER_DISPLACE
|
|
763
763
|
#include <begin_vertex>
|
|
764
764
|
#endif
|
|
765
|
-
`];
|
|
766
|
-
`)}else{this.color===void 0&&(this.color=new
|
|
767
|
-
`));let
|
|
765
|
+
`];n&&o.push(n.code,n.result?"displaced_position = "+n.result+";":""),o.push("transformed = displaced_position;","transformedNormal = normalMatrix * displaced_normal;","#ifndef FLAT_SHADED"," vNormal = transformedNormal;","#endif"),o.push(" #include <project_vertex>"," #include <clipping_planes_vertex>"," vViewPosition = - mvPosition.xyz;"," #include <worldpos_vertex>"," #include <shadowmap_vertex>"," #include <fog_vertex>"),r=o.join(`
|
|
766
|
+
`)}else{this.color===void 0&&(this.color=new yt(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 n=this.color.flow(e,"c",{slot:"color"}),o=this.specular.flow(e,"c"),a=this.shininess.flow(e,"f"),c=this.shadingAlpha.flow(e,"f"),f=this.shadingBlend.flow(e,"i"),h=this.afterColor?this.afterColor.flow(e,"c",{slot:"afterColor"}):void 0,d=this.alpha?this.alpha.flow(e,"f"):void 0;e.requires.transparent=d!==void 0,e.addParsCode(["uniform vec3 emissive;","#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(`
|
|
767
|
+
`));let m=["#include <normal_fragment_begin>",`
|
|
768
768
|
// NOTE: gl_FrontFacing alternative using face normal estimation.
|
|
769
769
|
vec3 viewdx = dFdx(vViewPosition);
|
|
770
770
|
vec3 viewdy = dFdy(vViewPosition);
|
|
@@ -772,15 +772,15 @@ vec4 getIBLVolumeRefraction( vec3 n, vec3 v, float roughness, vec3 position, mat
|
|
|
772
772
|
if (dot(normal, faceNormal) < 0.0) {
|
|
773
773
|
normal *= -1.0;
|
|
774
774
|
}
|
|
775
|
-
`," BlinnPhongMaterial material;"];
|
|
775
|
+
`," BlinnPhongMaterial material;"];m.push(n.code," vec3 diffuseColor = "+n.result+";"," ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );"," vec3 totalEmissiveRadiance = emissive;",o.code," vec3 specular = "+o.result+";",a.code," float shininess = max( 0.0001, "+a.result+" );"," float specularStrength = 1.0;"),d&&m.push(d.code,"#ifdef ALPHATEST","if ( "+d.result+" <= ALPHATEST ) discard;","#endif"),m.push("material.diffuseColor = diffuseColor;"),m.push("material.specularColor = specular;","material.specularShininess = shininess;","material.specularStrength = specularStrength;","#include <lights_fragment_begin>","#include <lights_fragment_end>"),m.push("vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance;"),m.push(`
|
|
776
776
|
if (outgoingLight != diffuseColor) {
|
|
777
777
|
float lightAccu = clamp( length( reflectedLight.directSpecular + reflectedLight.indirectSpecular ), 0.0, 1.0 );
|
|
778
|
-
accumAlpha += ( 1.0 - accumAlpha ) * ${
|
|
779
|
-
outgoingLight = spe_blend( diffuseColor, outgoingLight, ${
|
|
778
|
+
accumAlpha += ( 1.0 - accumAlpha ) * ${c.result} * lightAccu;
|
|
779
|
+
outgoingLight = spe_blend( diffuseColor, outgoingLight, ${c.result}, ${f.result} );
|
|
780
780
|
}
|
|
781
|
-
`),
|
|
782
|
-
`)}return
|
|
783
|
-
`));let
|
|
781
|
+
`),h&&m.push(h.code,`outgoingLight = spe_blend(outgoingLight, ${h.result}, 1.0, SPE_BLENDING_NORMAL);`),d?m.push(`gl_FragColor = vec4( outgoingLight, accumAlpha * ${d.result} );`):m.push("gl_FragColor = vec4( outgoingLight, 1.0 );"),m.push("#include <encodings_fragment>","#include <fog_fragment>","#include <dithering_fragment>"),r=m.join(`
|
|
782
|
+
`)}return r}copy(e){return super.copy(e),e.color&&(this.color=e.color.clone()),this.specular=e.specular.clone(),this.shininess=e.shininess.clone(),e.position&&(this.position=e.position.clone()),e.afterColor&&(this.afterColor=e.afterColor.clone()),e.alpha&&(this.alpha=e.alpha.clone()),e.shadingAlpha&&(this.shadingAlpha=e.shadingAlpha.clone()),e.shadingBlend&&(this.shadingBlend=e.shadingBlend.clone()),this}};var vu=class extends Kr{constructor(e=new xu,r){super(e,e,r);this.type="PhongNodeMaterial",this.fragment=e}get color(){return this.fragment.color}set color(e){this.fragment.color=e}get afterColor(){return this.fragment.afterColor}set afterColor(e){this.fragment.afterColor=e}get alpha(){return this.fragment.alpha}set alpha(e){this.fragment.alpha=e}get shadingAlpha(){return this.fragment.shadingAlpha}set shadingAlpha(e){this.fragment.shadingAlpha=e}get shadingBlend(){return this.fragment.shadingBlend}set shadingBlend(e){this.fragment.shadingBlend=e}get position(){return this.fragment.position}set position(e){this.fragment.position=e}get specular(){return this.fragment.specular}set specular(e){this.fragment.specular=e}get shininess(){return this.fragment.shininess}set shininess(e){this.fragment.shininess=e}};var Yr=class extends vu{constructor(t,e,r){super(e,t),this.userData.type="PhongMaterial",this.userData.category="Phong",this.userData.layers=r!=null?r:this._getLayerStack(t==null?void 0:t.map)}get layersList(){return this.userData.layers}set layersList(t){this.userData.layers=t}equals(t){return this.userData.type===t.userData.type&&this.userData.layers.uuid==t.userData.layers.uuid}copy(t){if(t.userData.layers!==void 0&&t.userData.layers instanceof yr){let e=t.userData.layers,r=t.fragment;super.copy(t);let n=r.clone();this.fragment=n,this.vertex=n;let o=e.clone(this);this.userData.layers=o,n.shadingAlpha.value=r.shadingAlpha.value,n.shadingBlend.value=r.shadingBlend.value}else super.copy(t);return this}static fromJSON(t,e,r){let n=r.getNode(e.vertex),o=new Yr(void 0,n);return o.fromJSON(e,r),o}static fromMaterial(t){let e=new Yr(t.map?{map:t.map}:{}),r=e.fragment;return r.color.value.copy(t.color),r.alpha.value=t.opacity,e}dispose(){super.dispose()}};import{UniformsLib as av,UniformsUtils as cD}from"three";var bu=class extends Pe{constructor(){super("lambert");this.nodeType="Lambert";this.color=new yt(5855577),this.emissive=new yt(0),this.emissiveIntensity=new ve(1),this.shadingAlpha=new ve(1),this.shadingBlend=new Ke(0)}build(e){let r;if(e.define("LAMBERT"),e.requires.lights=!0,e.extensions.derivatives=!0,e.isShader("vertex")){let n=this.position?this.position.analyzeAndFlow(e,"v3",{cache:"position"}):void 0;e.mergeUniform(cD.merge([av.fog,av.lights])),e.addParsCode(["varying vec3 vViewPosition;","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(`
|
|
783
|
+
`));let o=["#include <beginnormal_vertex>",`
|
|
784
784
|
#ifndef USE_LAYER_DISPLACE
|
|
785
785
|
#include <defaultnormal_vertex>
|
|
786
786
|
#endif
|
|
@@ -796,7 +796,7 @@ vec4 getIBLVolumeRefraction( vec3 n, vec3 v, float roughness, vec3 position, mat
|
|
|
796
796
|
#ifndef USE_LAYER_DISPLACE
|
|
797
797
|
#include <begin_vertex>
|
|
798
798
|
#endif
|
|
799
|
-
`];
|
|
799
|
+
`];n&&o.push(n.code,n.result?"displaced_position = "+n.result+";":""),o.push("transformed = displaced_position;","transformedNormal = normalMatrix * displaced_normal;","#ifndef FLAT_SHADED"," vNormal = transformedNormal;","#endif"),o.push(" #include <project_vertex>"," #include <clipping_planes_vertex>"," vViewPosition = - mvPosition.xyz;"," #include <worldpos_vertex>",`
|
|
800
800
|
vec3 diffuse = vec3( 1.0 );
|
|
801
801
|
GeometricContext geometry;
|
|
802
802
|
geometry.position = mvPosition.xyz;
|
|
@@ -870,23 +870,23 @@ vec4 getIBLVolumeRefraction( vec3 n, vec3 v, float roughness, vec3 position, mat
|
|
|
870
870
|
}
|
|
871
871
|
#pragma unroll_loop_end
|
|
872
872
|
#endif
|
|
873
|
-
`," #include <shadowmap_vertex>"," #include <fog_vertex>"),
|
|
874
|
-
`)}else{this.color===void 0&&(this.color=new
|
|
875
|
-
`));let
|
|
873
|
+
`," #include <shadowmap_vertex>"," #include <fog_vertex>"),r=o.join(`
|
|
874
|
+
`)}else{this.color===void 0&&(this.color=new yt(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 n=this.color.flow(e,"c",{slot:"color"}),o=this.emissive.flow(e,"c",{slot:"emissive"}),a=this.emissiveIntensity.flow(e,"f",{slot:"emissive"}),c=this.shadingAlpha.flow(e,"f"),f=this.shadingBlend.flow(e,"i"),h=this.afterColor?this.afterColor.flow(e,"c",{slot:"afterColor"}):void 0,d=this.alpha?this.alpha.flow(e,"f"):void 0;e.requires.transparent=d!==void 0,e.addParsCode(["varying vec3 vViewPosition;","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(`
|
|
875
|
+
`));let m=["#include <normal_fragment_begin>",`
|
|
876
876
|
// NOTE: gl_FrontFacing alternative using face normal estimation.
|
|
877
877
|
vec3 viewdx = dFdx(vViewPosition);
|
|
878
878
|
vec3 viewdy = dFdy(vViewPosition);
|
|
879
879
|
vec3 faceNormal = normalize(cross(viewdx, viewdy));
|
|
880
880
|
bool isFrontFacing = (dot(normal, faceNormal) >= 0.0);
|
|
881
|
-
`,"#include <clipping_planes_fragment>"];
|
|
881
|
+
`,"#include <clipping_planes_fragment>"];m.push(n.code,"vec3 diffuseColor = "+n.result+";","ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );"),d&&m.push(d.code,"#ifdef ALPHATEST","if ( "+d.result+" <= ALPHATEST ) discard;","#endif"),m.push("#ifdef DOUBLE_SIDED"," reflectedLight.indirectDiffuse += ( isFrontFacing ) ? vIndirectFront : vIndirectBack;","#else"," reflectedLight.indirectDiffuse += vIndirectFront;","#endif","#include <lightmap_fragment>","reflectedLight.indirectDiffuse *= BRDF_Lambert( diffuseColor.rgb );","#ifdef DOUBLE_SIDED"," reflectedLight.directDiffuse = ( isFrontFacing ) ? vLightFront : vLightBack;","#else"," reflectedLight.directDiffuse = vLightFront;","#endif","reflectedLight.directDiffuse *= BRDF_Lambert( diffuseColor.rgb ) * getShadowMask();"),o&&m.push(o.code,"reflectedLight.directDiffuse += "+o.result+" * "+a.result+";"),m.push("vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse;"),m.push(`
|
|
882
882
|
if (outgoingLight != diffuseColor) {
|
|
883
883
|
float lightAccu = clamp( length( reflectedLight.directSpecular + reflectedLight.indirectSpecular ), 0.0, 1.0 );
|
|
884
|
-
accumAlpha += ( 1.0 - accumAlpha ) * ${
|
|
885
|
-
outgoingLight = spe_blend( diffuseColor, outgoingLight, ${
|
|
884
|
+
accumAlpha += ( 1.0 - accumAlpha ) * ${c.result} * lightAccu;
|
|
885
|
+
outgoingLight = spe_blend( diffuseColor, outgoingLight, ${c.result}, ${f.result} );
|
|
886
886
|
}
|
|
887
|
-
`),
|
|
888
|
-
`)}return
|
|
889
|
-
`));let
|
|
887
|
+
`),h&&m.push(h.code,`outgoingLight = spe_blend(outgoingLight, ${h.result}, 1.0, SPE_BLENDING_NORMAL);`),d?m.push(`gl_FragColor = vec4( outgoingLight, accumAlpha * ${d.result} );`):m.push("gl_FragColor = vec4( outgoingLight, 1.0 );"),m.push("#include <encodings_fragment>","#include <fog_fragment>","#include <dithering_fragment>"),r=m.join(`
|
|
888
|
+
`)}return r}copy(e){return super.copy(e),this.emissiveIntensity=e.emissiveIntensity.clone(),e.color&&(this.color=e.color.clone()),e.position&&(this.position=e.position.clone()),e.afterColor&&(this.afterColor=e.afterColor.clone()),e.alpha&&(this.alpha=e.alpha.clone()),e.shadingAlpha&&(this.shadingAlpha=e.shadingAlpha.clone()),e.shadingBlend&&(this.shadingBlend=e.shadingBlend.clone()),e.emissive&&(this.emissive=e.emissive.clone()),this}};var Su=class extends Kr{constructor(e=new bu,r){super(e,e,r);this.type="LambertNodeMaterial",this.fragment=e}get color(){return this.fragment.color}set color(e){this.fragment.color=e}get afterColor(){return this.fragment.afterColor}set afterColor(e){this.fragment.afterColor=e}get alpha(){return this.fragment.alpha}set alpha(e){this.fragment.alpha=e}get shadingAlpha(){return this.fragment.shadingAlpha}set shadingAlpha(e){this.fragment.shadingAlpha=e}get shadingBlend(){return this.fragment.shadingBlend}set shadingBlend(e){this.fragment.shadingBlend=e}get position(){return this.fragment.position}set position(e){this.fragment.position=e}get emissive(){return this.fragment.emissive}set emissive(e){this.fragment.emissive=e}get emissiveIntensity(){return this.fragment.emissiveIntensity}set emissiveIntensity(e){this.fragment.emissiveIntensity=e}};var As=class extends Su{constructor(t,e,r){super(e,t),this.userData.type="LambertMaterial",this.userData.category="Lambert",this.userData.layers=r!=null?r:this._getLayerStack(t==null?void 0:t.map)}get layersList(){return this.userData.layers}set layersList(t){this.userData.layers=t}equals(t){return this.userData.type===t.userData.type&&this.userData.layers.uuid==t.userData.layers.uuid}copy(t){if(t.userData.layers!==void 0&&t.userData.layers instanceof yr){let e=t.userData.layers,r=t.fragment;super.copy(t);let n=r.clone();this.fragment=n,this.vertex=n;let o=e.clone(this);this.userData.layers=o,n.shadingAlpha.value=r.shadingAlpha.value,n.shadingBlend.value=r.shadingBlend.value}else super.copy(t);return this}static fromJSON(t,e,r){let n=r.getNode(e.vertex),o=new As(void 0,n);return o.fromJSON(e,r),o}dispose(){super.dispose()}};import{UniformsLib as lv,UniformsUtils as uD}from"three";var wu=class extends Pe{constructor(){super("toon");this.nodeType="Toon";this.color=new yt(5855577),this.specular=new yt(1118481),this.shininess=new ve(30),this.shadingAlpha=new ve(1),this.shadingBlend=new Ke(0)}build(e){let r;if(e.define("TOON"),e.requires.lights=!0,e.extensions.derivatives=!0,e.isShader("vertex")){let n=this.position?this.position.analyzeAndFlow(e,"v3",{cache:"position"}):void 0;e.mergeUniform(uD.merge([lv.fog,lv.lights])),e.addParsCode(["varying vec3 vViewPosition;","#include <fog_pars_vertex>","#include <normal_pars_vertex>","#include <shadowmap_pars_vertex>","#include <clipping_planes_pars_vertex>"].join(`
|
|
889
|
+
`));let o=["#include <beginnormal_vertex>",`
|
|
890
890
|
#ifndef USE_LAYER_DISPLACE
|
|
891
891
|
#include <defaultnormal_vertex>
|
|
892
892
|
#endif
|
|
@@ -902,8 +902,8 @@ vec4 getIBLVolumeRefraction( vec3 n, vec3 v, float roughness, vec3 position, mat
|
|
|
902
902
|
#ifndef USE_LAYER_DISPLACE
|
|
903
903
|
#include <begin_vertex>
|
|
904
904
|
#endif
|
|
905
|
-
`];
|
|
906
|
-
`)}else{this.color===void 0&&(this.color=new
|
|
905
|
+
`];n&&o.push(n.code,n.result?"displaced_position = "+n.result+";":""),o.push("transformed = displaced_position;","transformedNormal = normalMatrix * displaced_normal;","#ifndef FLAT_SHADED"," vNormal = transformedNormal;","#endif"),o.push(" #include <project_vertex>"," #include <fog_vertex>"," #include <clipping_planes_vertex>"," vViewPosition = - mvPosition.xyz;"," #include <worldpos_vertex>"," #include <shadowmap_vertex>"," #include <fog_vertex>"),r=o.join(`
|
|
906
|
+
`)}else{this.color===void 0&&(this.color=new yt(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 n=this.color.flow(e,"c",{slot:"color"}),o=this.specular.flow(e,"c"),a=this.shininess.flow(e,"f"),c=this.shadingAlpha.flow(e,"f"),f=this.shadingBlend.flow(e,"i"),h=this.afterColor?this.afterColor.flow(e,"c",{slot:"afterColor"}):void 0,d=this.alpha?this.alpha.flow(e,"f"):void 0;e.requires.transparent=d!==void 0,e.addParsCode(["#include <normal_pars_fragment>","#include <gradientmap_pars_fragment>","#include <fog_pars_fragment>","#include <bsdfs>","#include <lights_pars_begin>","#include <dithering_pars_fragment>",`
|
|
907
907
|
varying vec3 vViewPosition;
|
|
908
908
|
struct ToonMaterial {
|
|
909
909
|
vec3 diffuseColor;
|
|
@@ -924,7 +924,7 @@ vec4 getIBLVolumeRefraction( vec3 n, vec3 v, float roughness, vec3 position, mat
|
|
|
924
924
|
#define RE_IndirectDiffuse RE_IndirectDiffuse_Toon
|
|
925
925
|
#define Material_LightProbeLOD( material ) (0)
|
|
926
926
|
`,"#include <shadowmap_pars_fragment>","#include <bumpmap_pars_fragment>","#include <normalmap_pars_fragment>"].join(`
|
|
927
|
-
`));let
|
|
927
|
+
`));let m=["#include <normal_fragment_begin>",`
|
|
928
928
|
// NOTE: gl_FrontFacing alternative using face normal estimation.
|
|
929
929
|
vec3 viewdx = dFdx(vViewPosition);
|
|
930
930
|
vec3 viewdy = dFdy(vViewPosition);
|
|
@@ -932,15 +932,15 @@ vec4 getIBLVolumeRefraction( vec3 n, vec3 v, float roughness, vec3 position, mat
|
|
|
932
932
|
if (dot(normal, faceNormal) < 0.0) {
|
|
933
933
|
normal *= -1.0;
|
|
934
934
|
}
|
|
935
|
-
`," ToonMaterial material;"];
|
|
935
|
+
`," ToonMaterial material;"];m.push(n.code," vec3 diffuseColor = "+n.result+";"," ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );",o.code," vec3 specular = "+o.result+";",a.code," float shininess = max( 0.0001, "+a.result+" );"," float specularStrength = 1.0;"),d&&m.push(d.code,"#ifdef ALPHATEST","if ( "+d.result+" <= ALPHATEST ) discard;","#endif"),m.push("material.diffuseColor = diffuseColor;"),m.push("material.specularColor = specular;","material.specularShininess = shininess;","material.specularStrength = specularStrength;","#include <lights_fragment_begin>","#include <lights_fragment_end>"),m.push("vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular;"),m.push(`
|
|
936
936
|
if (outgoingLight != diffuseColor) {
|
|
937
937
|
float lightAccu = clamp( length( reflectedLight.directSpecular + reflectedLight.indirectSpecular ), 0.0, 1.0 );
|
|
938
|
-
accumAlpha += ( 1.0 - accumAlpha ) * ${
|
|
939
|
-
outgoingLight = spe_blend( diffuseColor, outgoingLight, ${
|
|
938
|
+
accumAlpha += ( 1.0 - accumAlpha ) * ${c.result} * lightAccu;
|
|
939
|
+
outgoingLight = spe_blend( diffuseColor, outgoingLight, ${c.result}, ${f.result} );
|
|
940
940
|
}
|
|
941
|
-
`),
|
|
942
|
-
`)}return
|
|
943
|
-
`));let
|
|
941
|
+
`),h&&m.push(h.code,`outgoingLight = spe_blend(outgoingLight, ${h.result}, 1.0, SPE_BLENDING_NORMAL);`),d?m.push(`gl_FragColor = vec4( outgoingLight, accumAlpha * ${d.result} );`):m.push("gl_FragColor = vec4( outgoingLight, 1.0 );"),m.push("#include <encodings_fragment>","#include <fog_fragment>","#include <dithering_fragment>"),r=m.join(`
|
|
942
|
+
`)}return r}copy(e){return super.copy(e),e.color&&(this.color=e.color.clone()),this.specular=e.specular.clone(),this.shininess=e.shininess.clone(),e.position&&(this.position=e.position.clone()),e.afterColor&&(this.afterColor=e.afterColor.clone()),e.alpha&&(this.alpha=e.alpha.clone()),e.shadingAlpha&&(this.shadingAlpha=e.shadingAlpha.clone()),e.shadingBlend&&(this.shadingBlend=e.shadingBlend.clone()),this}};var Cu=class extends Kr{constructor(e=new wu,r){super(e,e,r);this.type="ToonNodeMaterial",this.fragment=e}get color(){return this.fragment.color}set color(e){this.fragment.color=e}get afterColor(){return this.fragment.afterColor}set afterColor(e){this.fragment.afterColor=e}get alpha(){return this.fragment.alpha}set alpha(e){this.fragment.alpha=e}get shadingAlpha(){return this.fragment.shadingAlpha}set shadingAlpha(e){this.fragment.shadingAlpha=e}get shadingBlend(){return this.fragment.shadingBlend}set shadingBlend(e){this.fragment.shadingBlend=e}get position(){return this.fragment.position}set position(e){this.fragment.position=e}get specular(){return this.fragment.specular}set specular(e){this.fragment.specular=e}get shininess(){return this.fragment.shininess}set shininess(e){this.fragment.shininess=e}};var Ds=class extends Cu{constructor(t,e,r){super(e,t),this.userData.type="ToonMaterial",this.userData.category="Toon",this.userData.layers=r!=null?r:this._getLayerStack(t==null?void 0:t.map)}get layersList(){return this.userData.layers}set layersList(t){this.userData.layers=t}equals(t){return this.userData.type===t.userData.type&&this.userData.layers.uuid==t.userData.layers.uuid}copy(t){if(t.userData.layers!==void 0&&t.userData.layers instanceof yr){let e=t.userData.layers,r=t.fragment;super.copy(t);let n=r.clone();this.fragment=n,this.vertex=n;let o=e.clone(this);this.userData.layers=o,n.shadingAlpha.value=r.shadingAlpha.value,n.shadingBlend.value=r.shadingBlend.value}else super.copy(t);return this}static fromJSON(t,e,r){let n=r.getNode(e.vertex),o=new Ds(void 0,n);return o.fromJSON(e,r),o}dispose(){super.dispose()}};import{UniformsLib as pp,UniformsUtils as fD}from"three";var Lu=class extends Pe{constructor(){super("standard");this.nodeType="Standard";this.color=new yt(5855577),this.roughness=new ve(.3),this.metalness=new ve(0),this.reflectivity=new ve(.5),this.shadingAlpha=new ve(1),this.shadingBlend=new Ke(0)}build(e){let r;if(e.define("STANDARD"),e.requires.lights=!0,e.extensions.derivatives=!0,e.extensions.shaderTextureLOD=!0,e.isShader("vertex")){let n=this.position?this.position.analyzeAndFlow(e,"v3",{cache:"position"}):void 0;e.mergeUniform(fD.merge([pp.fog,pp.lights])),pp.LTC_1&&(e.uniforms.ltc_1={value:void 0},e.uniforms.ltc_2={value:void 0}),e.addParsCode(["varying vec3 vViewPosition;","#include <fog_pars_vertex>","#include <normal_pars_vertex>","#include <shadowmap_pars_vertex>","#include <clipping_planes_pars_vertex>"].join(`
|
|
943
|
+
`));let o=["#include <beginnormal_vertex>",`
|
|
944
944
|
#if !defined( USE_LAYER_DISPLACE )
|
|
945
945
|
#include <defaultnormal_vertex>
|
|
946
946
|
#endif
|
|
@@ -956,9 +956,9 @@ vec4 getIBLVolumeRefraction( vec3 n, vec3 v, float roughness, vec3 position, mat
|
|
|
956
956
|
#if !defined( USE_LAYER_DISPLACE )
|
|
957
957
|
#include <begin_vertex>
|
|
958
958
|
#endif /* !USE_LAYER_DISPLACE */
|
|
959
|
-
`];
|
|
960
|
-
`)}else{let
|
|
961
|
-
`));let
|
|
959
|
+
`];n&&o.push(n.code,n.result?"displaced_position = "+n.result+";":""),o.push("transformed = displaced_position;","transformedNormal = normalMatrix * displaced_normal;","#ifndef FLAT_SHADED"," vNormal = transformedNormal;","#endif"),o.push("#include <project_vertex>","#include <fog_vertex>","#include <clipping_planes_vertex>"," vViewPosition = - mvPosition.xyz;","#include <worldpos_vertex>","#include <shadowmap_vertex>"),r=o.join(`
|
|
960
|
+
`)}else{let n={gamma:!0};this.color===void 0&&(this.color=new yt(5855577)),this.color.analyze(e,{slot:"color",context:n}),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 o=this.color.flow(e,"c",{slot:"color",context:n}),a=this.roughness.flow(e,"f"),c=this.metalness.flow(e,"f"),f=this.shadingAlpha.flow(e,"f"),h=this.shadingBlend.flow(e,"i"),d=this.afterColor?this.afterColor.flow(e,"c",{slot:"afterColor"}):void 0,m=this.alpha?this.alpha.flow(e,"f"):void 0,x=this.reflectivity?this.reflectivity.flow(e,"f"):void 0;e.requires.transparent=m!==void 0,e.addParsCode(["varying vec3 vViewPosition;","#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(`
|
|
961
|
+
`));let S=["#include <clipping_planes_fragment>"," #include <normal_fragment_begin>",`
|
|
962
962
|
// NOTE: gl_FrontFacing alternative using face normal estimation.
|
|
963
963
|
vec3 viewdx = dFdx(vViewPosition);
|
|
964
964
|
vec3 viewdy = dFdy(vViewPosition);
|
|
@@ -966,12 +966,12 @@ vec4 getIBLVolumeRefraction( vec3 n, vec3 v, float roughness, vec3 position, mat
|
|
|
966
966
|
if (dot(normal, faceNormal) < 0.0) {
|
|
967
967
|
normal *= -1.0;
|
|
968
968
|
}
|
|
969
|
-
`," PhysicalMaterial material;"," material.diffuseColor = vec3( 1.0 );"];
|
|
969
|
+
`," PhysicalMaterial material;"," material.diffuseColor = vec3( 1.0 );"];S.push(o.code," vec3 diffuseColor = "+o.result+";"," ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );",a.code," float roughnessFactor = "+a.result+";",c.code," float metalnessFactor = "+c.result+";"),m&&S.push(m.code,"#ifdef ALPHATEST"," if ( "+m.result+" <= ALPHATEST ) discard;","#endif"),S.push("vec3 dxy = max( abs( dFdx( geometryNormal ) ), abs( dFdy( geometryNormal ) ) );","float geometryRoughness = max( max( dxy.x, dxy.y ), dxy.z );"),S.push("material.diffuseColor = diffuseColor * ( 1.0 - metalnessFactor );","material.roughness = max( roughnessFactor, 0.0525 );","material.roughness += geometryRoughness;","material.roughness = min( material.roughness, 1.0 );","material.roughness = clamp( roughnessFactor, 0.04, 1.0 );"),x?S.push(x.code,"material.specularColor = mix( vec3( 0.16 * pow2( "+x.result+" ) ), diffuseColor, metalnessFactor );"):S.push("material.specularColor = mix( vec3( 0.04 ), diffuseColor, metalnessFactor );"),S.push("#include <lights_fragment_begin>"),S.push("#include <lights_fragment_end>"),S.push("vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular;"),S.push(`
|
|
970
970
|
if (outgoingLight != diffuseColor) {
|
|
971
971
|
float lightAccu = clamp( length( reflectedLight.directSpecular + reflectedLight.indirectSpecular ), 0.0, 1.0 );
|
|
972
|
-
accumAlpha += ( 1.0 - accumAlpha ) * ${
|
|
973
|
-
outgoingLight = spe_blend( diffuseColor, outgoingLight, ${
|
|
972
|
+
accumAlpha += ( 1.0 - accumAlpha ) * ${f.result} * lightAccu;
|
|
973
|
+
outgoingLight = spe_blend( diffuseColor, outgoingLight, ${f.result}, ${h.result} );
|
|
974
974
|
}
|
|
975
|
-
`),
|
|
976
|
-
`)}return t}copy(e){return super.copy(e),e.color&&(this.color=e.color.clone()),this.roughness=e.roughness.clone(),this.metalness=e.metalness.clone(),e.position&&(this.position=e.position.clone()),e.afterColor&&(this.afterColor=e.afterColor.clone()),e.alpha&&(this.alpha=e.alpha.clone()),e.reflectivity&&(this.reflectivity=e.reflectivity.clone()),e.shadingAlpha&&(this.shadingAlpha=e.shadingAlpha.clone()),e.shadingBlend&&(this.shadingBlend=e.shadingBlend.clone()),this}};var wp=class extends vn{get color(){return this.fragment.color}set color(e){this.fragment.color=e}get afterColor(){return this.fragment.afterColor}set afterColor(e){this.fragment.afterColor=e}get alpha(){return this.fragment.alpha}set alpha(e){this.fragment.alpha=e}get shadingAlpha(){return this.fragment.shadingAlpha}set shadingAlpha(e){this.fragment.shadingAlpha=e}get shadingBlend(){return this.fragment.shadingBlend}set shadingBlend(e){this.fragment.shadingBlend=e}get position(){return this.fragment.position}set position(e){this.fragment.position=e}get roughness(){return this.fragment.roughness}set roughness(e){this.fragment.roughness=e}get metalness(){return this.fragment.metalness}set metalness(e){this.fragment.metalness=e}get reflectivity(){return this.fragment.reflectivity}set reflectivity(e){this.fragment.reflectivity=e}constructor(e=new Sp,t){super(e,e,t);this.type="StandardNodeMaterial",this.fragment=e}};var ja=class extends wp{constructor(e,t,r){super(t,e);this.userData.type="PhysicalMaterial",this.userData.category="Physical",this.userData.layers=r!=null?r:this._getLayerStack(e==null?void 0:e.map)}get layersList(){return this.userData.layers}set layersList(e){this.userData.layers=e}equals(e){return this.userData.type===e.userData.type&&this.userData.layers.uuid==e.userData.layers.uuid}copy(e){if(e.userData.layers!==void 0&&e.userData.layers instanceof Ir){let t=e.userData.layers,r=e.fragment;super.copy(e);let n=r.clone();this.fragment=n,this.vertex=n;let s=t.clone(this);this.userData.layers=s,n.shadingAlpha.value=r.shadingAlpha.value,n.shadingBlend.value=r.shadingBlend.value}else super.copy(e);return this}static fromJSON(e,t,r){let n=r.getNode(t.vertex),s=new ja(void 0,n);return s.fromJSON(t,r),s}dispose(){super.dispose()}};import{Color as Cp}from"three";import{Matrix3 as Iv,Texture as Np,Vector2 as Ea,Vector3 as Zi,Vector4 as Mv}from"three";function Av(i,e){switch(i.data.type){case"light":return Gn(i);case"fresnel":return GD(i,e);case"gradient":return jD(i);case"depth":return ED(i);case"normal":return RD(i);case"noise":return zD(i,e);case"texture":return FD(i,e);case"rainbow":return VD(i);case"transmission":return UD(i,e);case"matcap":return kD(i,e);case"displace":return HD(i);case"color":default:return BD(i,e)}}function Ov(i){return{type:i.data.type}}function Gn(i){let{alpha:e,mode:t}=i.data;return fe(U({},Ov(i)),{alpha:e,mode:t})}function BD(i,e){return fe(U({},Gn(i)),{color:kt(i.data.color,e)})}function GD(i,e){let{bias:t,scale:r,intensity:n,factor:s,color:l}=i.data;return fe(U({},Gn(i)),{color:kt(l,e),bias:t,scale:r,intensity:n,factor:s})}function jD(i){let{gradientType:e,smooth:t,colors:r,steps:n,angle:s,offset:l,morph:c}=i.data;return fe(U({},Gn(i)),{gradientType:e,smooth:t,colors:r.map(f=>new Mv(f[0],f[1],f[2],f[3])),num:r.length,steps:n,offset:new Ea(...l),morph:new Ea(...c),angle:s})}function ED(i){let{gradientType:e,near:t,far:r,isVector:n,isWorldSpace:s,origin:l,direction:c,colors:f,steps:h,smooth:d,num:x}=i.data;return fe(U({},Gn(i)),{gradientType:e,near:t,far:r,isVector:n,isWorldSpace:s,origin:new Zi(...l),direction:c?new Zi(...c):new Zi(1,0,0),num:x,colors:f.map(g=>new Mv(g[0],g[1],g[2],g[3])),steps:h,smooth:d})}function RD(i){let{cnormal:e}=i.data;return fe(U({},Gn(i)),{cnormal:new Zi(e[0],e[1],e[2])})}function zD(i,e){let{data:t}=i;return fe(U({},Gn(i)),{scale:t.scale,move:t.move,fA:new Ea(...t.fA),fB:new Ea(...t.fB),size:new Zi(...t.size),distortion:new Ea(...t.distortion),colorA:kt(t.colorA,e),colorB:kt(t.colorB,e),colorC:kt(t.colorC,e),colorD:kt(t.colorD,e),noiseType:t.noiseType})}function FD(i,e){let{projection:t,axis:r,crop:n,size:s}=i.data,{image:l,wrapping:c,repeat:f,offset:h}=i.data.texture,d=new Np,x;if(typeof l=="string")x=e==null?void 0:e.getImage(l);else{let g=new Image;g.src=l.data,g.onload=()=>{(e==null?void 0:e.onImageLoad)&&(e==null||e.onImageLoad(l.data))},x=g}return d.image=x,d.repeat.set(f[0],f[1]),d.offset.set(h[0],h[1]),d.wrapS=d.wrapT=c,fe(U({},Gn(i)),{texture:d,mat:new Iv().setUvTransform(h[0],h[1],f[0],f[1],0,0,0),crop:n,projection:t,axis:["x","y","z"].indexOf(r),size:s})}function VD(i){let{data:e}=i;return fe(U({},Gn(i)),{filmThickness:e.filmThickness,movement:e.movement,wavelengths:new Zi(...e.wavelengths),noiseStrength:e.noiseStrength,noiseScale:e.noiseScale,offset:new Zi(...e.offset)})}function UD(i,e){let{data:t}=i;return fe(U({},Gn(i)),{thickness:t.thickness,ior:t.ior,roughness:t.roughness,transmissionSamplerMap:e.transmissionSamplerMap,transmissionDepthMap:e.transmissionDepthMap})}function kD(i,e){let t=new Np,{image:r}=i.data.texture,n;if(typeof r=="string")n=e==null?void 0:e.getImage(r);else{let l=new Image;l.src=r.data,l.onload=()=>{(e==null?void 0:e.onImageLoad)&&(e==null||e.onImageLoad(r.data))},n=l}t.image=n;let s=16777215;return fe(U({},Gn(i)),{color:s,texture:t})}function HD(i){let{data:e}=i,t=fe(U({},Ov(i)),{intensity:e.intensity});if(e.displacementType==="noise")return fe(U({},t),{offset:new Zi(...e.offset),scale:e.scale,movement:e.movement,noiseType:e.noiseType});{let r=new Np,n=new Iv().setUvTransform(0,0,1,1,0,0,0);return fe(U({},t),{texture:r,mat:n,crop:e.crop})}}function Pv(i,e,t){if(t.type==="displace"&&(i==="intensity"||i==="visible")){let r=e.uniforms[`f${e.id}_intensity`];return r?(r.value=t.intensity*(t.visible?1:0),r):void 0}if(t.type!=="displace"&&(i==="alpha"||i==="visible")){let r=e.uniforms[`f${e.id}_alpha`];return r?(r.value=t.alpha*(t.visible?1:0),r):void 0}}import{Color as Dv,Vector4 as WD}from"three";var js;(function(e){function i(t){return new Dv(t.x,t.y,t.z).getHex()}e.getHex=i})(js||(js={}));var Bv;(function(e){function i(t){return new WD(t.r,t.g,t.b,t.a)}e.getThreeVector4=i})(Bv||(Bv={}));var Gv;(function(t){function i(r,n){r.setRGB(n.r,n.g,n.b)}t.setThreeColor=i;function e(r){return new Dv(r.r,r.g,r.b).getHex()}t.getHex=e})(Gv||(Gv={}));function Ra(i,e){return typeof i=="string"?e.getMaterialOrDeletedPlaceholder(i):Lp(i,e)}function jv(i,e){return i.map(t=>Ra(t,e))}function Lp(i,e){var l,c;let t=(l=i.layers)!=null?l:Ss.defaultTwoLayerData("phong").layers,r=qD(t),n;switch(r.category){case"basic":n=new vr;break;case"lambert":{n=new Ba;break}case"toon":{n=new Ga;break}case"physical":n=new ja;break;case"phong":default:{n=new bn;break}}n.name=(c=i.name)!=null?c:"Untitled Material";let s=n.userData.layers;$D(s);for(let f=t.length-1;f>=0;f--)JD(s,t[f],e);switch(r.category){case"basic":break;case"lambert":{let d=n,g=kt(r.emissive,e);g instanceof Cp?d.emissive.value=g:d.emissive.value.setHex(js.getHex(g));break}case"toon":{let d=n,x=r;d.shininess.value=x.shininess;let g=kt(x.specular,e);g instanceof Cp?d.specular.value=g:d.specular.value.setHex(js.getHex(g));break}case"physical":let f=n,h=r;f.metalness.value=h.metalness,f.roughness.value=h.roughness,f.reflectivity.value=h.reflectivity;break;case"phong":default:{let d=n,x=r;d.shininess.value=x.shininess;let g=kt(x.specular,e);g instanceof Cp?d.specular.value=g:d.specular.value.setHex(js.getHex(g));break}}return s.blendColors(),s.blendAfterColors(),s.blendPositions(),n}function qD(i){for(let e of i)if(e.data.type==="light")return e.data;return{type:"light",category:"basic",visible:!0,alpha:1,mode:Zt.Normal}}function $D(i){for(let e of i.getLayers())i.removeLayer(e.id)}function JD(i,e,t){let r=Av(e,t);r.type==="transmission"&&(r.transmissionSamplerMap=t==null?void 0:t.transmissionSamplerMap,r.transmissionDepthMap=t==null?void 0:t.transmissionDepthMap);let n=i.addLayer(r);n.uuid=e.id;for(let s in e.data)Pv(s,n,e.data)}import{Vector2 as Ev}from"three";var Tu=new Ev,To=class{constructor(e,t,r){this.message=[];this.endLine=!0;this.yLinePos=e,this.lineHeight=t,this.maxCharSize=r,this.nextChar3DPos=new Ev(0,this.yLinePos+this.maxCharSize*this.lineHeight),this.align=Lr.Left}addChar3D(e,t,r=this.message.length){this.message.splice(r,0,e),e.fontSize>this.maxCharSize?(this.maxCharSize=e.fontSize,this.nextChar3DPos.y=this.yLinePos+this.maxCharSize*this.lineHeight,this.fullUpdate(t)):(e.updatePosition(this.nextChar3DPos,t),this.nextChar3DPos.x+=e.charSize)}deleteChar3D(e=this.message.length-1){let t=this.message[e];if(t)return this.message.splice(e,1),this.nextChar3DPos.x-=t.charSize,t}isEndLine(e){this.endLine=e}fullUpdate(e,t=0){this.nextChar3DPos.x=0;for(let r=t,n=this.message.length;r<n;r+=1)this.message[r].updatePosition(this.nextChar3DPos,e),this.nextChar3DPos.x+=this.message[r].charSize}checkOverFlow(e){let t,r=this.message.length-1;if(r<=0)return!1;for(;r>=0;){if(this.message[r].char!==" "){t=this.message[r];break}r-=1}return!!(r>=0&&t&&t.localPosition.x+t.charSize>e)}containSpaceOverFlow(e=this.message.length-1){for(let t=e;t>=0;t-=1)if(this.message[t].char===" ")return!0;return!1}containSpace(e=this.message.length-1){if(this.endLine)return!0;for(let t=e;t>=0;t-=1)if(this.message[t].char===" ")return!0;return!1}popWord(e=this.message.length-1){let t=[],r=!0,n;for(n=e;n>=0;n-=1)if(this.message[n].char===" "){r=!1,t.length===0&&(n-=1,t.splice(0,0,this.message[n]));break}else t.splice(0,0,this.message[n]);return r?t=[]:this.message.splice(n+1,t.length),t}getWord(e=0,t=1){let r=[],n=e;for(n=e;;n+=t){if(!this.message[n]||this.message[n].char===" "){r.length===0&&this.message[n]&&(r.push(this.message[n]),this.message.splice(n,1));break}t>0?(r.push(this.message[n]),this.message.splice(n,1),n-=t):(r.splice(0,0,this.message[n]),this.message.splice(n,1))}return r}getWordAtIndex(e){let t=[];for(let r=e;r<this.message.length&&this.message[r].char!==" ";r++)t.push(this.message[r]);for(let r=e-1;r>=0&&this.message[r].char!==" ";r--)t.splice(0,0,this.message[r]);return t}wordSize(e=0,t=-1){let r=0,n=e;for(;n>=0&&n<this.message.length;){if(this.message[n].char===" "){r===0&&(r=this.message[n].charSize);break}r+=this.message[n].charSize,n+=t}return(n<0||n>=this.message.length)&&!this.endLine?this.message[e]?this.message[e].charSize:999999999:r===0?999999999:r}spaceLeft(e){return e-this.nextChar3DPos.x}popChar(e=this.message.length-1){return this.nextChar3DPos.x-=this.message[e].charSize,this.message.splice(e,1)}isEmpty(){return!this.message.length}updateNextCharPosY(){this.nextChar3DPos.y=this.yLinePos+this.maxCharSize*this.lineHeight}updateYLinePos(e){this.yLinePos=e,this.updateNextCharPosY()}updatelineHeight(e){this.lineHeight=e,this.updateNextCharPosY()}updateFontSize(e,t=0,r=this.message.length-1){for(let n=t;n<=r;n+=1)this.message[n].updateFontSize(e);this.maxCharSize=e,this.nextChar3DPos.y=this.yLinePos+this.maxCharSize*this.lineHeight}countSpaces(){let e=0;for(let t=0;t<this.message.length;t++)this.message[t].char===" "&&(e+=1);return e}alignText(e,t,r,n,s){switch(r){case Lr.Left:this.leftAlign(e,s);break;case Lr.Center:this.centerAlign(this.spaceLeft(t),e,s);break;case Lr.Right:this.rightAlign(this.spaceLeft(t),e,s);break;case Lr.Justify:this.justifyAlign(this.spaceLeft(t),e,s);break}}offsetCharacters(e,t,r){Tu.set(t,r);let n=this.message.length;for(let s=0;s<n;s++)this.message[s].updatePosition(this.message[s].localPosition.add(Tu),e)}leftAlign(e,t){this.align=Lr.Left,this.offsetCharacters(e,0,t)}centerAlign(e,t,r){this.align=Lr.Center,this.offsetCharacters(t,e/2,r)}rightAlign(e,t,r){this.align=Lr.Right,this.offsetCharacters(t,e,r)}justifyAlign(e,t,r){if(this.align=Lr.Justify,this.endLine){this.offsetCharacters(t,0,r);return}let n=this.countSpaces();if(n===0){this.offsetCharacters(t,0,r);return}let s=e/n,l=0;for(let c=0;c<this.message.length;c++)this.message[c].char===" "&&(l+=s),Tu.set(l,r),this.message[c].updatePosition(this.message[c].localPosition.add(Tu),t)}clone(){let e=new To(this.yLinePos,this.lineHeight,this.maxCharSize);e.nextChar3DPos=this.nextChar3DPos.clone(),e.align=this.align,e.endLine=this.endLine;for(let t=0;t<this.message.length;t++)e.message.push(this.message[t].clone());return e}};import{DoubleSide as KD,EventDispatcher as XD,Matrix3 as ZD,Vector3 as _p}from"three";var YD=new _p(0,0,1),Rv=new _p,zv=new _p,Fv=new ZD,Io=class extends hr{constructor(e=ur.create({}),t=new vr({side:KD})){super(e,t);this.recursiveSelection=!1;this.objectType="VectorObject";this.eventDispatcher=new XD;this._onShapeUpdate=()=>{if(this.geometry instanceof No){if(this.geometry.updateFromShape()){let e=this.geometry.drawCount,t=this.geometry.userData;this.updateGeometry(Object.assign(this.geometry.userData,{parameters:Object.assign(t.parameters,{surfaceMaxCount:e+1e3})}))}}else this.updateGeometry({});this.geometry.computeBoundingSphere(),this.geometry.computeBoundingBox()};var r;this.castShadow=!0,this.receiveShadow=!0,this.forceComputeSize=!0,this.shape=e.userData.shape,(r=this.shape.eventDispatcher)==null||r.addEventListener("update",this._onShapeUpdate)}toJSON(e){let t=super.toJSON(e);return t.object.objectType="VectorObject",t}fromState(e){return super.fromState(e),this.shape.update(),this}setHelperVisibility(){}updateGeometry(e){if(super.updateGeometry(e),"userData"in this.geometry){let t=this.geometry.userData.parameters;this.eventDispatcher.dispatchEvent({type:"geometryUpdate",parameters:t})}}setShape(e){var t,r;this.shape&&((t=this.shape.eventDispatcher)==null||t.removeEventListener("update",this._onShapeUpdate)),this.shape=e,(r=this.shape.eventDispatcher)==null||r.addEventListener("update",this._onShapeUpdate)}updateWorldMatrix(e,t){super.updateWorldMatrix(e,t),Fv.getNormalMatrix(this.matrixWorld),Rv.copy(YD).applyMatrix3(Fv).normalize(),zv.setFromMatrixPosition(this.matrixWorld),this.shape.plane.setFromNormalAndCoplanarPoint(Rv,zv)}clone(e){let t=this.shape.clone(),r=this.material.clone(),n=this.geometry.userData,s=ur.create(Object.assign({},n,{shape:t})),l=new Io(s,r).copy(this,e);return l.shape=t,t.update(),l}raycast(e,t){hr.prototype.raycast.call(this,e,t)}};import{Camera as p3,OrthographicCamera as d3,PerspectiveCamera as m3,Vector3 as nn,Object3D as Hv,Quaternion as g3}from"three";import{BoxBufferGeometry as QD}from"three";var Yn=i=>{var e;return e=class extends i{constructor(){super(...arguments);this.isObjectHelper=!0}},e.geometryHelper=new QD(30,30,30),e};import{Camera as n3,LineSegments as i3,BufferGeometry as o3,LineBasicMaterial as s3,Color as Ip,Vector3 as a3,Float32BufferAttribute as Uv}from"three";import{Ray as e3,Sphere as t3,Matrix4 as r3,Vector3 as Ni}from"three";var Iu=new e3,Tp=new t3,Vv=new r3,Qn=(i,e,t,r,n=!1)=>{let s=e,l=i.matrixWorld;if(s.boundingSphere===null&&s.computeBoundingSphere(),Tp.copy(s.boundingSphere),Tp.applyMatrix4(l),t.ray.intersectsSphere(Tp)===!1||(Vv.copy(l).invert(),Iu.copy(t.ray).applyMatrix4(Vv),s.boundingBox!==null&&Iu.intersectsBox(s.boundingBox)===!1))return;let c,f,h,d,x=s.index,g=s.attributes.position,w=s.drawRange,S,D;if(n===!1){let G=Math.max(0,w.start),B=Math.min(x.count,w.start+w.count);for(S=G,D=B;S<D;S+=3)if(f=x.getX(S),h=x.getX(S+1),d=x.getX(S+2),c=C(i,t,Iu,g,f,h,d),c){c.faceIndex=Math.floor(S/3),r.push(c);return}}else{let B=s.attributes.position,P=new Ni,W=new Ni,M=new Ni,q=new Ni,E=2,R=1/((i.scale.x+i.scale.y+i.scale.z)/3),T=R*R,z=Math.max(0,w.start),A=Math.min(B.count,w.start+w.count);for(let $=z,he=A-1;$<he;$+=E){if(P.fromBufferAttribute(B,$),W.fromBufferAttribute(B,$+1),Iu.distanceSqToSegment(P,W,q,M)>T)continue;q.applyMatrix4(i.matrixWorld);let Ne=t.ray.origin.distanceTo(q);Ne<t.near||Ne>t.far||r.push({distance:Ne,point:M.clone().applyMatrix4(i.matrixWorld),object:i})}}function C(G,B,P,W,M,q,E){let b=new Ni,R=new Ni,T=new Ni,z=new Ni,A=new Ni;if(b.fromBufferAttribute(W,M),R.fromBufferAttribute(W,q),T.fromBufferAttribute(W,E),P.intersectTriangle(b,R,T,!1,z)===null)return null;A.copy(z),A.applyMatrix4(G.matrixWorld);let he=B.ray.origin.distanceTo(A);return he<B.near||he>B.far?null:{faceIndex:1,distance:he,point:A.clone(),object:G}}};var Mu=new a3,Sn=new n3,kv=class extends i3{constructor(e){let t=new o3,r=new s3({color:16777215,vertexColors:!0,toneMapped:!1}),n=[],s=[],l={},c=new Ip(wh),f=new Ip(wh),h=new Ip(a0);d("n1","n2",c),d("n2","n4",c),d("n4","n3",c),d("n3","n1",c),d("f1","f2",c),d("f2","f4",c),d("f4","f3",c),d("f3","f1",c),d("n1","f1",c),d("n2","f2",c),d("n3","f3",c),d("n4","f4",c),d("p","n1",f),d("p","n2",f),d("p","n3",f),d("p","n4",f),d("u1","u2",h),d("u2","u3",h),d("u3","u1",h);function d(g,w,S){x(g,S),x(w,S)}function x(g,w){n.push(0,0,0),s.push(w.r,w.g,w.b),l[g]===void 0&&(l[g]=[]),l[g].push(n.length/3-1)}t.setAttribute("position",new Uv(n,3)),t.setAttribute("color",new Uv(s,3));super(t,r);this.type="CameraHelper",this.camera=e,this.camera.updateProjectionMatrix&&this.camera.updateProjectionMatrix(),this.matrix=e.matrixWorld,this.matrixAutoUpdate=!1,this.pointMap=l,this.update()}update(){let e=this.geometry,t=this.pointMap,r=!0;Sn.projectionMatrixInverse.elements=[.5112609807824982,-0,-0,-0,-0,.41421356237309503,-0,-0,-0,-0,-0,-.099999,-0,-0,-1.0000000000000002,.100001];let n=1,s=1,l=r?.8:1e-4;jn("n1",t,e,Sn,-n,-s,l),jn("n2",t,e,Sn,n,-s,l),jn("n3",t,e,Sn,-n,s,l),jn("n4",t,e,Sn,n,s,l);let c=l;jn("f1",t,e,Sn,-n,-s,c),jn("f2",t,e,Sn,n,-s,c),jn("f3",t,e,Sn,-n,s,c),jn("f4",t,e,Sn,n,s,c);let f=c,h=.5;jn("u1",t,e,Sn,n*.7*h,s*1.1,f),jn("u2",t,e,Sn,-n*.7*h,s*1.1,f),jn("u3",t,e,Sn,0,s*(1.1+.9*h),f),e.getAttribute("position").needsUpdate=!0}dispose(){this.geometry.dispose(),this.material.dispose()}};function jn(i,e,t,r,n,s,l){Mu.set(n,s,l).unproject(r);let c=e[i];if(c!==void 0){let f=t.getAttribute("position");for(let h=0,d=c.length;h<d;h++)f.setXYZ(c[h],Mu.x,Mu.y,Mu.z)}}var Mp=class extends Yn(kv){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,t){Qn(this.object,this.geometry,e,t,!0)}};import{DirectionalLightHelper as l3}from"three";var za=class extends Yn(l3){constructor(e,t=15,r=10066329){super(e,t,r);this.object=e;this.name=`DirectionalLightHelper: ${e.uuid}`}raycast(e,t){Qn(this.object,za.geometryHelper,e,t)}};import{AxesHelper as c3}from"three";var Fa=class extends Yn(c3){constructor(e,t=15){super(t);this.object=e;this.object.updateMatrixWorld(),this.name=`EmptyObjectHelper: ${e.uuid}`,this.matrix=e.matrixWorld,this.matrixAutoUpdate=!1}raycast(e,t){Qn(this.object,Fa.geometryHelper,e,t)}update(){}};import{PointLightHelper as u3}from"three";var Va=class extends Yn(u3){constructor(e,t=15,r=6710886){super(e,t,r);this.object=e;this.name=`PointLightHelper: ${e.uuid}`}raycast(e,t){Qn(this.object,Va.geometryHelper,e,t)}};import{SpotLightHelper as f3,Vector3 as h3}from"three";var Ou=class extends Yn(f3){constructor(e,t=6710886){super(e,t);this.object=e;this.name=`SpotLightHelper: ${e.uuid}`}raycast(e,t){Qn(this.object,Ou.geometryHelper,e,t)}update(){if(this.object!==void 0){let e=Ou._vector,t=this.object.distance?this.object.distance:1e3,r=t*Math.tan(this.object.angle);this.cone.scale.set(r,r,t),e.setFromMatrixPosition(this.object.target.matrixWorld),this.cone.lookAt(e);let n=this.color!==void 0?this.color:this.light.color;if(this.cone.material instanceof Array)for(let s=0,l=this.cone.material.length;s<l;s++)this.cone.material[s].color.set(n);else this.cone.material.color.set(n)}}},Au=Ou;Au._vector=new h3;var ei=(i,e)=>class extends i{constructor(){super(...arguments);this.objectHelper=new e(this);this.enableHelper=!1}set visibility(r){this.visible=r,this.setHelperVisibility(r),this.setHelperChildrenVisibility(r)}get visibility(){return this.visible}get geometryHelper(){return e.geometryHelper}setHelperVisibility(r){this.objectHelper.visible=r}setHelperChildrenVisibility(r){for(let n of this.children)yn(n)&&n.traverseEntity(s=>{vi(s)&&s.visible&&(s.objectHelper.visible=r)})}raycast(r,n){this.objectHelper.raycast(r,n)}copy(r,n=!0){return super.copy(r,n),r.enableHelper!==void 0&&(this.enableHelper=r.enableHelper),r.objectHelper!==void 0&&(this.objectHelper.visible=r.objectHelper.visible),this}toJSON(r){let n=super.toJSON(r),s=n.object;return s.enableHelper=this.enableHelper,n}fromJSON(r){return super.fromJSON(r),r.enableHelper!==void 0&&(this.enableHelper=!0),this}fromLightState(r,n){if(this.objectType==="LightDirectional"||this.objectType==="LightPoint"||this.objectType==="LightSpot"){let s=this;r.color!==void 0&&(s.color=kt(r.color,n)),r.intensity!==void 0&&(s.intensity=r.intensity),r.depth!==void 0&&(s.shadow.camera.far=r.depth,s.shadow.needsUpdate=!0),r.shadows!==void 0&&(this.castShadow=r.shadows),r.helper!==void 0&&(this.enableHelper=r.helper,s.gizmos.shadowmap.visible=r.helper)}return this}};var Es=new nn,Ap=new nn,Yi=class extends ei(xn(p3),Mp){constructor(e=window.innerWidth,t=window.innerHeight,r=45,n,s=1e5){super();this.objectType="CombinedCamera";this._cameraType="OrthographicCamera";this.targetOffset=xo.DefaultTargetOffset;this.isUpVectorFlipped=!1;this.angleOffsetFromUp=0;this.width=e,this.height=t,this.orthoCamera=new d3(e*-.5,e*.5,t*.5,t*-.5,n!=null?n:-5e4,s),this.perspCamera=new m3(r,e/t,n!=null?n:50,s),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(!0)}static createFromState(e,t){let r=new Yi().fromState(t);return r.enableHelper=!0,r.objectHelper.update(),r.uuid=e,r}get isPerspectiveCamera(){return this.cameraType==="PerspectiveCamera"}get isOrthographicCamera(){return!this.isPerspectiveCamera}get cameraType(){return this._cameraType}setNear(e,t){e==="PerspectiveCamera"?this.perspCamera.near=t:this.orthoCamera.near=t}setZoom(e,t){t>=0&&(e==="PerspectiveCamera"?this.perspCamera.zoom=t:this.orthoCamera.zoom=t)}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(Es),this.targetOffset=Es.distanceTo(e)}getTarget(e=new nn){return this.getWorldDirection(Ap),this.getWorldPosition(Es),Ap.multiplyScalar(this.targetOffset),e.copy(Es).add(Ap),e}getDistanceToTarget(){let e=this.getTarget();return this.getWorldPosition(Es),Es.distanceTo(e)}updateUp(){let e=this.getWorldQuaternion(new g3),t=new nn(0,0,1).applyQuaternion(e),r=new nn().copy(Hv.DefaultUp);this.isUpVectorFlipped&&r.negate(),r.applyQuaternion(e);let n=new nn().copy(Hv.DefaultUp).projectOnPlane(t),s=new nn().crossVectors(n,r).dot(t)>=0?1:-1;this.angleOffsetFromUp=n.angleTo(r)*s}getViewFrontToObject(e){let t=e.getWorldPosition(new nn),n=e.getWorldDirection(new nn).multiplyScalar(this.targetOffset);return{position:t.clone().add(n),target:t}}getViewToObject(e){let t=e.getWorldPosition(new nn),n=this.getWorldDirection(new nn).multiplyScalar(this.targetOffset);return{position:t.clone().sub(n),target:t}}setViewplaneSize(e,t){this.left=-e*.5,this.right=e*.5,this.top=t*.5,this.bottom=-t*.5,this.aspect=e/t,this.updateProjectionMatrix()}toOrthographic(e){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.enableHelper===!0||e===!0)&&this.objectHelper.update()}toPerspective(e){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.enableHelper===!0||e===!0)&&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,t,r,n,s,l){this._cameraType==="PerspectiveCamera"?this.perspCamera.setViewOffset(e,t,r,n,s,l):this.orthoCamera.setViewOffset(e,t,r,n,s,l)}clearViewOffset(){this._cameraType==="PerspectiveCamera"?(this.perspCamera.clearViewOffset(),this.toPerspective()):(this.orthoCamera.clearViewOffset(),this.toOrthographic())}updateProjectionMatrix(e){this._cameraType==="PerspectiveCamera"?this.toPerspective(e):this._cameraType==="OrthographicCamera"&&this.toOrthographic(e)}updateMatrixWorld(e){super.updateMatrixWorld(e),this.matrixWorldInverse.copy(this.matrixWorld).invert()}updateWorldMatrix(e,t){super.updateWorldMatrix(e,t),this.matrixWorldInverse.copy(this.matrixWorld).invert()}copy(e,t){return super.copy(e,t),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}fromCameraRender(e){let t={near:this.orthoCamera.near,far:this.orthoCamera.far},r={near:this.perspCamera.near,far:this.perspCamera.far};return this.copy(e),this.name="",this.enableHelper=!0,this.objectHelper.visible=!0,this.orthoCamera.near=t.near,this.orthoCamera.far=t.far,this.perspCamera.near=r.near,this.perspCamera.far=r.far,this.updateProjectionMatrix(),this}toJSON(e){let t=super.toJSON(e),r=t.object;return r.objectType="CombinedCamera",r.cameraType=this.cameraType,r.targetOffset=this.targetOffset,r.isUpVectorFlipped=this.isUpVectorFlipped,r.angleOffsetFromUp=this.angleOffsetFromUp,r.left=this.left,r.right=this.right,r.top=this.top,r.bottom=this.bottom,this.view!==null&&(r.view=Object.assign({},this.view)),r.zoomOrtho=this.orthoCamera.zoom,r.nearOrtho=this.orthoCamera.near,r.far=this.far,r.aspect=this.aspect,r.fov=this.fov,r.focus=this.focus,r.filmGauge=this.filmGauge,r.filmOffset=this.filmOffset,r.zoomPersp=this.perspCamera.zoom,r.nearPersp=this.perspCamera.near,t}fromJSON(e){var t;if(super.fromJSON(e),this.cameraType=e.cameraType,e.targetOffset!==void 0&&(this.targetOffset=e.targetOffset),e.orbitControlsTarget!==void 0){let r=this.getWorldPosition(new nn),n=new nn().fromArray(e.orbitControlsTarget);this.targetOffset=n.distanceTo(r)}else e.targetOffset!==void 0&&(this.targetOffset=e.targetOffset);return this.isUpVectorFlipped=!1,this.angleOffsetFromUp=(t=e.angleOffsetFromUp)!=null?t:0,e.left!==void 0&&(this.left=e.left),e.right!==void 0&&(this.right=e.right),e.top!==void 0&&(this.top=e.top),e.bottom!==void 0&&(this.bottom=e.bottom),e.view!==void 0&&(this.view=Object.assign({},e.view)),e.zoomOrtho!==void 0&&(this.orthoCamera.zoom=e.zoomOrtho),e.nearOrtho!==void 0&&(this.orthoCamera.near=e.nearOrtho),e.far!==void 0&&(this.far=e.far),e.aspect!==void 0&&(this.aspect=e.aspect),e.fov!==void 0&&(this.fov=e.fov),e.focus!==void 0&&(this.focus=e.focus),e.filmGauge!==void 0&&(this.filmGauge=e.filmGauge),e.filmOffset!==void 0&&(this.filmOffset=e.filmOffset),e.zoomPersp!==void 0&&(this.perspCamera.zoom=e.zoomPersp),e.nearPersp!==void 0&&(this.perspCamera.near=e.nearPersp),this.updateProjectionMatrix(),this}toCameraState(e=[]){let t={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 hs(t,e)}fromCameraState(e){let{orthographic:t,perspective:r}=e;return e.type!==void 0&&(this.cameraType=e.type),e.far!==void 0&&(this.far=e.far),t!==void 0&&(t.near!==void 0&&(this.orthoCamera.near=t.near),t.zoom!==void 0&&(this.orthoCamera.zoom=t.zoom)),r!==void 0&&(r.near!==void 0&&(this.perspCamera.near=r.near),r.fov!==void 0&&(this.perspCamera.fov=r.fov),r.zoom!==void 0&&(this.perspCamera.zoom=r.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 fe(U(U({},super.toState(e)),this.toCameraState(e)),{type:this.cameraType})}fromState(e){return super.fromState(e),this.fromCameraState(e),this}};import{Group as y3}from"three";var Qi=class extends ei(xn(y3),Fa){constructor(){super(...arguments);this.objectType="EmptyObject"}static createFromState(e,t){let r=new Qi().fromState(t);return r.uuid=e,r.enableHelper=!0,r.objectHelper.update(),r}toJSON(e){let t=super.toJSON(e);return t.object.objectType="EmptyObject",t}};import{DirectionalLight as x3,CameraHelper as Pu}from"three";var Ua=class extends ei(xn(x3),za){constructor(...e){super(...e);this.objectType="LightDirectional";this._gizmos={};this.castShadow=!0,this.shadow.mapSize.width=1024,this.shadow.mapSize.height=1024;let r=this.shadow.camera;r.top=1250,r.bottom=-1250,r.right=1250,r.left=-1250,r.near=1,r.far=2500;let n=new Pu(this.shadow.camera);n.visible=!1,this._gizmos.shadowmap=n,this.update()}static createFromState(e,t,r){let n=new Ua().fromState(t,r);return n.uuid=e,n}get gizmos(){return this._gizmos}showGizmos(){for(let e in this._gizmos){let t=this._gizmos[e];t instanceof Pu&&(t.visible=!0)}}hideGizmos(){for(let e in this._gizmos){let t=this._gizmos[e];t instanceof Pu&&(t.visible=!1)}}update(){this.shadow.camera.updateProjectionMatrix();for(let e in this._gizmos){let t=this._gizmos[e];t instanceof Pu&&t.update()}}updateMatrixWorld(e){super.updateMatrixWorld(e),this.enableHelper===!0&&this.objectHelper.visible===!0&&this.objectHelper.update()}copy(e,t=!0){return super.copy(e,t),this.color.copy(e.color),this.intensity=e.intensity,this.target=e.target.clone(),this.shadow=e.shadow.clone(),this}toJSON(e){let t=super.toJSON(e),r=t.object;return r.objectType="LightDirectional",r.color=this.color.getHex(),r.intensity=this.intensity,r.shadow=this.shadow.toJSON(),t}fromJSON(e){var n;super.fromJSON(e),this.color.set(e.color),this.intensity=e.intensity,this.shadow.normalBias=(n=e.shadow.normalBias)!=null?n:0,this.shadow.radius=e.shadow.radius,this.shadow.mapSize.fromArray(e.shadow.mapSize);let t=this.shadow.camera,r=e.shadow.camera;return t.near=r.near,t.far=r.far,t.zoom=r.zoom,t.left=r.left,t.right=r.right,t.top=r.top,t.bottom=r.bottom,r.view!==void 0&&(t.view=Object.assign({},r.view)),this}fromDirectionalLightState(e,t){let r=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,t),e.size!==void 0&&hv(this,e.size),r&&this.update(),this}fromState(e,t){return super.fromState(e),this.fromDirectionalLightState(e,t),this}};import{PointLight as v3,Vector3 as Du,Box3 as b3,Box3Helper as Bu,Color as S3}from"three";var ka=class extends ei(xn(v3),Va){constructor(...e){super(...e);this.objectType="LightPoint";this._gizmos={};this.castShadow=!0,this.shadow.mapSize.width=1024,this.shadow.mapSize.height=1024;let r=this.shadow.camera;r.fov=90,r.aspect=1,r.near=100,r.far=2500;let n=new Du(-r.far+this.position.x,-r.far+this.position.y,-r.far+this.position.z),s=new Du(r.far+this.position.x,r.far+this.position.y,r.far+this.position.z),l=new b3(n,s),c=new Bu(l,new S3(16755200));c.visible=!1,this._gizmos.shadowmap=c,this.update()}static createFromState(e,t,r){let n=new ka().fromState(t,r);return n.uuid=e,n}get gizmos(){return this._gizmos}showGizmos(){for(let e in this._gizmos){let t=this._gizmos[e];t instanceof Bu&&(t.visible=!0)}}hideGizmos(){for(let e in this._gizmos){let t=this._gizmos[e];t instanceof Bu&&(t.visible=!1)}}update(){if(this.shadow&&(this.shadow.camera.updateProjectionMatrix(),this._gizmos))for(let e in this._gizmos){let t=this._gizmos[e];if(t instanceof Bu){let r=this.shadow.camera,n=new Du(-r.far+this.position.x,-r.far+this.position.y,-r.far+this.position.z),s=new Du(r.far+this.position.x,r.far+this.position.y,r.far+this.position.z);t.box.set(n,s),t.updateMatrixWorld(!0)}}}updateMatrixWorld(e){super.updateMatrixWorld(e),this.enableHelper===!0&&this.objectHelper.visible===!0&&this.objectHelper.update()}copy(e,t=!0){return super.copy(e,t),this.color.copy(e.color),this.intensity=e.intensity,this.distance=e.distance,this.decay=e.decay,this.shadow=e.shadow.clone(),this}toJSON(e){let t=super.toJSON(e),r=t.object;return r.objectType="LightPoint",r.color=this.color.getHex(),r.intensity=this.intensity,r.distance=this.distance,r.decay=this.decay,r.shadow=this.shadow.toJSON(),t}fromJSON(e){var n,s;super.fromJSON(e),this.color.set(e.color),this.intensity=e.intensity,this.distance=e.distance,this.decay=e.decay,this.shadow.normalBias=(n=e.shadow.normalBias)!=null?n:0,this.shadow.radius=e.shadow.radius,this.shadow.mapSize.fromArray((s=e.shadow.mapSize)!=null?s:[512,512]),this.shadow.map&&(this.shadow.map.dispose(),this.shadow.map=null);let t=this.shadow.camera,r=e.shadow.camera;return t.near=r.near,t.far=r.far,t.zoom=r.zoom,t.fov=r.fov,t.focus=r.focus,t.aspect=r.aspect,t.filmGauge=r.filmGauge,t.filmOffset=r.filmOffset,r.view!==void 0&&(t.view=Object.assign({},r.view)),this}fromPointLightState(e,t){return super.fromLightState(e,t),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,t){return super.fromState(e),this.fromPointLightState(e,t),this}};import{SpotLight as w3,CameraHelper as Gu,MathUtils as N3,Vector3 as Wv,Quaternion as C3}from"three";var qv=new Wv,$v=new Wv,Jv=new C3,Ha=class extends ei(xn(w3),Au){constructor(...e){super(...e);this.objectType="LightSpot";this._gizmos={};this.castShadow=!0,this.shadow.mapSize.width=1024,this.shadow.mapSize.height=1024;let r=this.shadow.camera;r.fov=N3.RAD2DEG*2*this.angle,r.aspect=1,r.near=100,r.far=2500;let n=new Gu(this.shadow.camera);n.visible=!1,this._gizmos.shadowmap=n,this.update()}static createFromState(e,t,r){let n=new Ha().fromState(t,r);return n.uuid=e,n}get gizmos(){return this._gizmos}showGizmos(){for(let e in this._gizmos){let t=this._gizmos[e];t instanceof Gu&&(t.visible=!0)}}hideGizmos(){for(let e in this._gizmos){let t=this._gizmos[e];t instanceof Gu&&(t.visible=!1)}}update(){this.shadow.camera.updateProjectionMatrix();for(let e in this._gizmos){let t=this._gizmos[e];t instanceof Gu&&t.update()}}updateMatrixWorld(e){super.updateMatrixWorld(e),$v.setFromMatrixPosition(this.matrixWorld),Jv.setFromRotationMatrix(this.matrixWorld),qv.copy(this.up).applyQuaternion(Jv).negate().multiplyScalar(this.distance),this.target.position.copy($v).add(qv),this.target.updateMatrixWorld(),this.enableHelper===!0&&this.objectHelper.visible===!0&&this.objectHelper.update()}copy(e,t=!0){return super.copy(e,t),this.color.copy(e.color),this.intensity=e.intensity,this.distance=e.distance,this.angle=e.angle,this.penumbra=e.penumbra,this.decay=e.decay,this.target=e.target.clone(),this.shadow=e.shadow.clone(),this}toJSON(e){let t=super.toJSON(e),r=t.object;return r.objectType="LightSpot",r.color=this.color.getHex(),r.intensity=this.intensity,r.distance=this.distance,r.angle=this.angle,r.decay=this.decay,r.penumbra=this.penumbra,r.shadow=this.shadow.toJSON(),t}fromJSON(e){var n;super.fromJSON(e),this.color.set(e.color),this.intensity=e.intensity,this.distance=e.distance,this.angle=e.angle,this.decay=e.decay,this.penumbra=e.penumbra,this.shadow.normalBias=(n=e.shadow.normalBias)!=null?n:0,this.shadow.radius=e.shadow.radius,this.shadow.mapSize.fromArray(e.shadow.mapSize);let t=this.shadow.camera,r=e.shadow.camera;return t.near=r.near,t.far=r.far,t.zoom=r.zoom,t.fov=r.fov,t.focus=r.focus,t.aspect=r.aspect,t.filmGauge=r.filmGauge,t.filmOffset=r.filmOffset,r.view!==void 0&&(t.view=Object.assign({},r.view)),this}fromSpotLightState(e,t){return super.fromLightState(e,t),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),this}fromState(e,t){return super.fromState(e),this.fromSpotLightState(e,t),this}};import{VideoTexture as L3}from"three";var Kv=i=>i.tagName==="VIDEO",Rs=class{static resize(e,t,r){let n=e/t,s;if(!r.image)return;let l=r.image;Kv(l)?s=l.videoWidth/l.videoHeight:s=l.width/l.height,n>s&&(r.imageType=="WEBCAM"?r.repeat.set(-1,1*s/n):r.repeat.set(1,1*s/n)),n<s&&(r.imageType=="WEBCAM"?r.repeat.set(1*n/s*-1,1):r.repeat.set(1*n/s,1)),n==s&&(r.imageType=="WEBCAM"?r.repeat.set(-1,1):r.repeat.set(1,1))}static resizeTextureLayer(e,t,r){let n=e/t,s=r.image!==void 0?r.image.width/r.image.height:1,l;n>s?l={x:1,y:s/n}:n<s?l={x:n/s,y:1}:l={x:1,y:1},r.repeat.set(l.x,l.y),r.updateMatrix()}static resizeTextureLayers(e,t,r){let n=r.userData.layers,s=n.getLayers();for(let l=0;l<s.length;l++){let c=s[l];Nv(c)&&(Rs.resizeTextureLayer(e,t,c.uniforms[`f${c.id}_texture`].value),n.updateLayerUniform())}}static resizeComplex(e,t,r,n){let s=e/t,l,c=r.image;Kv(c)?l=c.videoWidth/c.videoHeight:l=c.width/c.height,n.geometry.type.includes("Shape")?(s>l&&(r.imageType=="WEBCAM"?r.repeat.set(1/e*-1,1/t*l/s):r.repeat.set(1/e,1/t*l/s)),s<l&&(r.imageType=="WEBCAM"?r.repeat.set(1/e*s/l*-1,1/t):r.repeat.set(1/e*s/l,1/t)),s==l&&(r.imageType=="WEBCAM"?r.repeat.set(1/e*-1,1/t):r.repeat.set(1/e,1/t))):(s>l&&(r.imageType=="WEBCAM"?r.repeat.set(-1,1*l/s):r.repeat.set(1,1*l/s)),s<l&&(r.imageType=="WEBCAM"?r.repeat.set(1*s/l*-1,1):r.repeat.set(1*s/l,1)),s==l&&(r.imageType=="WEBCAM"?r.repeat.set(-1,1):r.repeat.set(1,1)))}};var Wa=class extends hr{constructor(e,t=new vr){super(e,t);this.objectType="Mesh2D";this.castShadow=!0,this.receiveShadow=!0}updateGeometry(e){super.updateGeometry(e),this.material.userData.layers&&Rs.resizeTextureLayers(this.geometry.userData.parameters.width,this.geometry.userData.parameters.height,this.material)}resizeGeometry(e,t){super.resizeGeometry(e,t,0),this.material.userData.layers&&Rs.resizeTextureLayers(this.geometry.userData.parameters.width,this.geometry.userData.parameters.height,this.material)}toJSON(e){let t=super.toJSON(e);return t.object.objectType="Mesh2D",t}clone(){let e=super.clone();return e.updateGeometry({}),e}static fromTexture(e){let t,r;if(e instanceof L3){let l=e.image;t=l.videoWidth*.5,r=l.videoHeight*.5}else{let l=e.image;t=l.width*.5,r=l.height*.5}let n=ou.create({parameters:{width:t,height:r}}),s=new vr;return s.layersList.changeLayer(0,{type:qe.TEXTURE,texture:e}),s.layersList.moveLayer(0,1),s.dispose(),new Wa(n,s)}};var qa=class extends hr{constructor(e,t=new bn){super(e,t);this.objectType="Mesh3D";this.castShadow=!0,this.receiveShadow=!0}toJSON(e){let t=super.toJSON(e);return t.object.objectType="Mesh3D",t}};var $a=class extends qa{constructor(e,t=new bn){super(e,t);this.objectType="NonParametric"}toJSON(e){let t=super.toJSON(e);return t.object.objectType="NonParametric",t}};var Ja;(function(t){t[t.TO_RIGHT=1]="TO_RIGHT",t[t.TO_LEFT=-1]="TO_LEFT"})(Ja||(Ja={}));var Op=class extends hr{constructor(e,t=new vr({transparent:!0,opacity:1,visible:!1,side:ju})){super(e,t);this.objectType="TextFrame";this.charContainer=new _3,this.add(this.charContainer),this.material.visible=!1,this._geometryUserData=e.userData,this.userData.textFrame={hexColor:null,opacity:1,visible:!0,text:"",fontSize:16,lineHeight:1.5,letterSpacing:1,fontFamily:"roboto_regular",textTransform:ki.None,horizontalAlignment:1,verticalAlignment:gi.Top,LOD:16,maxLineSize:this._geometryUserData.parameters.width,textOrigin:new Zv(this._geometryUserData.parameters.width*-.5,this._geometryUserData.parameters.height*.5,0),textLines:[]},this.createTextLine()}static createFromState(e,t,r){let n=su.create({parameters:{width:t.width,height:t.height}}),s=new Op(n).fromState(t,r);return s.uuid=e,s}async updateText(e){this.clearText();let t=this.userData.textFrame,r=t.fontFamily;await Rr.loadFont(r),t.text=e;let n=t.textOrigin,s=new Xv({visible:t.visible,transparent:!0,side:ju}),l=e.split(`
|
|
977
|
-
`),c=0;this.userData.textFrame.textLines=l.map((f,h)=>{let d=new To(c,t.lineHeight,t.fontSize);return d.message=f.split("").map(x=>{let g={char:x,fontFamily:r,letterSpacing:t.letterSpacing,fontSize:t.fontSize,LOD:16},w=s.clone();w.color=t.hexColor,w.opacity=t.opacity;let S=new Rr(g,w);return d.addChar3D(S,n),this.charContainer.add(S),S}),c+=d.maxCharSize*d.lineHeight,d}),this.textFullUpdate(),this.checkOverFlow()}clearText(){let e=this.userData.textFrame.textLines;for(;this.charContainer.children.length;){let t=this.charContainer.children[0];this.charContainer.remove(t)}for(;e.length;)e.pop()}raycast(e,t){let r=[];if(super.raycast(e,r),r.length>0){t.push(r[0]);return}let n=[];for(let s=0,l=this.charContainer.children.length;s<l;++s)if(this.charContainer.children[s]instanceof Rr&&(e.intersectObject(this.charContainer.children[s],!1,n),n.length>0)){n[0].object=this,t.push(n[0]);return}}updateGeometry(e){var h,d,x,g;let t=this.userData,r=this.geometry.userData,n=r.parameters.width,s=r.parameters.height,l=(d=(h=e.parameters)==null?void 0:h.width)!=null?d:n,c=(g=(x=e.parameters)==null?void 0:x.height)!=null?g:s,f=t.textFrame;super.updateGeometry(e),f.maxLineSize=l,f.textOrigin.set(-.5*l,.5*c,0),c!==s?(this.checkOverFlow(),this.checkCapacity()):l!==n&&(n<l?this.checkCapacity():n>l&&this.checkOverFlow())}checkOverFlow(e=0){let t=this.userData,r=t.textFrame.textOrigin,n=t.textFrame.textLines;for(let s=e;s<n.length;s++){n[s].updateYLinePos(this.getNewLinePosition(s)),n[s].fullUpdate(r);let l=[];for(;n[s].checkOverFlow(t.textFrame.maxLineSize);)n[s].containSpaceOverFlow()?l.unshift(n[s].getWord(n[s].message.length-1,-1)):l.unshift(n[s].popChar());if(l.length>0){n[s+1]===void 0?(n[s].isEndLine(!1),this.createTextLine()):n[s].endLine&&(this.createTextLine(s+1),n[s].isEndLine(!1),n[s+1].isEndLine(!0));let c=0;for(let f=0;f<l.length;f+=1)for(let h=0;h<l[f].length;h+=1)n[s+1].addChar3D(l[f][h],r,c),c+=1;n[s+1].fullUpdate(r)}n[s].fullUpdate(r)}this.textFullUpdate(e)}checkCapacity(e=0){let t=this.userData,r=t.textFrame.textOrigin,n=t.textFrame.maxLineSize,s=t.textFrame.textLines;for(let l=e;l<s.length;l+=1)if(s[l].updateYLinePos(this.getNewLinePosition(l)),s[l].fullUpdate(r),!!s[l-1])for(;!s[l-1].endLine;){let c,f=s[l-1].spaceLeft(n);if(s[l].wordSize(0,1)<=f){s[l].containSpace()?c=s[l].getWord(0,1):c=s[l].popChar(0);for(let h=0;h<c.length;h+=1)c[h]&&s[l-1].addChar3D(c[h],r)}else{s[l].isEmpty()?(s[l].endLine&&s[l-1].isEndLine(!0),s.splice(l,1),l-=1):(s[l].updateYLinePos(this.getNewLinePosition(l)),s[l].fullUpdate(r));break}}this.textFullUpdate(e)}createTextLine(e=this.userData.textFrame.textLines.length){let r=this.userData.textFrame;r.textLines.splice(e,0,new To(this.getNewLinePosition(e),r.lineHeight,r.fontSize))}textFullUpdate(e=0){let r=this.userData.textFrame,n=r.textLines,s=this.getVerticalAlignmentOffSet();for(let l=e;l<n.length;l++)n[l].updateYLinePos(this.getNewLinePosition(l)),n[l].fullUpdate(r.textOrigin),n[l].alignText(r.textOrigin,r.maxLineSize,r.horizontalAlignment,r.verticalAlignment,s)}getVerticalAlignmentOffSet(){switch(this.userData.textFrame.verticalAlignment){case gi.Top:return 0;case gi.Center:return this.getRemainingVerticalSpace()/2;case gi.Bottom:return this.getRemainingVerticalSpace();default:return 0}}getRemainingVerticalSpace(){let t=this.userData.textFrame.textLines;return this.geometry.userData.parameters.height-this.getNewLinePosition(t.length)}getNewLinePosition(e){let r=this.userData.textFrame.textLines,n=0;for(let s=0;s<e;s+=1)n+=r[s].maxCharSize*r[s].lineHeight;return n}updateColor(e){var n;let t=this.userData;t.textFrame.hexColor=e;let r=t.textFrame.textLines;for(let s=0;s<r.length;s++){let l=r[s].message;for(let c=0;c<l.length;c++){let f=l[c].material;((n=f.color)==null?void 0:n.isColor)&&(f.color=e)}}}updateOpacity(e){let t=this.userData;t.textFrame.opacity=e;let r=t.textFrame.textLines;for(let n=0;n<r.length;n++){let s=r[n].message;for(let l=0;l<s.length;l++){let c=s[l].material;c.opacity=e}}}updateVisible(e){let t=this.userData;t.textFrame.visible=e;let r=t.textFrame.textLines;for(let n=0;n<r.length;n++){let s=r[n].message;for(let l=0;l<s.length;l++){let c=s[l].material;c.visible=e}}}async updateFontFamily(e){await Rr.loadFont(e);let r=this.userData.textFrame,n=r.textLines;r.fontFamily=e;for(let s=0;s<n.length;s++){let l=n[s].message;for(let c=0;c<l.length;c++)l[c].updateFontFamily(e)}this.textFullUpdate(),this.checkOverFlow(),this.checkCapacity()}updateFontSize(e){let r=this.userData.textFrame,n=r.textLines,s=r.fontSize;r.fontSize=e;for(let l=0;l<n.length;l++)n[l].updateFontSize(e);this.textFullUpdate(),e>s?this.checkOverFlow():e<s&&this.checkCapacity()}async updateTextTransform(e){let r=this.userData.textFrame;await Rr.loadFont(r.fontFamily);let n=r.textLines;switch(r.textTransform=e,e){case ki.Upper:for(let s=0;s<n.length;s++){let l=n[s].message;for(let c=0;c<l.length;c++)n[s].message[c].updateChar(l[c].char.toUpperCase())}break;case ki.Lower:for(let s=0;s<n.length;s++){let l=n[s].message;for(let c=0;c<l.length;c++)n[s].message[c].updateChar(l[c].char.toLowerCase())}break;default:for(let s=0;s<n.length;s++){let l=n[s].message;for(let c=0;c<l.length;c++)n[s].message[c].updateChar(l[c].originalChar)}}this.textFullUpdate(),this.checkOverFlow(),this.checkCapacity()}updateLetterSpacing(e){let t=this.userData,r=t.textFrame.textLines;t.textFrame.letterSpacing=e;for(let n=0;n<r.length;n++){let s=r[n].message;for(let l=0;l<s.length;l++)s[l].updateLetterSpacing(e)}this.textFullUpdate(),this.checkOverFlow(),this.checkCapacity()}updateLOD(e){let t=this.userData;t.textFrame.LOD=e;let r=t.textFrame.textLines;for(let n=0;n<r.length;n++);this.textFullUpdate(),this.checkOverFlow(),this.checkCapacity()}updateLineHeight(e){let t=this.userData,r=t.textFrame.textLines;t.textFrame.lineHeight=e;for(let n=0;n<r.length;n++)r[n].updatelineHeight(e);this.textFullUpdate()}updateVerticalAlignment(e){let t=this.userData;t.textFrame.verticalAlignment=e,this.textFullUpdate()}updateHorizontalAlignment(e){let t=this.userData;t.textFrame.horizontalAlignment=e,this.textFullUpdate()}toJSON(e){let t=super.toJSON(e),r=t.object;r.objectType="TextFrame";let s=this.userData.textFrame.textLines.map(l=>{let c=l.message.map(f=>({char:f.char,originalChar:f.originalChar,fontFamily:f.fontFamily,letterSpacing:f.letterSpacing,fontSize:f.fontSize,LOD:f.LOD}));return{align:l.align,endLine:l.endLine,lineHeight:l.lineHeight,maxCharSize:l.maxCharSize,yLinePos:l.yLinePos,message:c}});return r.userData.textFrame.textLinesData=s,t}async fromJSONasync(e){if(super.fromJSON(e),e.userData!==void 0){let t=e.userData.textFrame;await Rr.loadFont(t.fontFamily),t.textOrigin=new Zv(t.textOrigin.x,t.textOrigin.y,t.textOrigin.z);let r=new Xv({color:t.hexColor,opacity:t.opacity,visible:t.visible,transparent:!0,side:ju});t.textLinesData&&(t.textLines=t.textLinesData.map((n,s)=>{let l=new To(Number(n.yLinePos),Number(n.lineHeight),Number(n.maxCharSize)),c=n.message.map((f,h)=>{if(f.char===void 0){let g=t.textLines[s].message[h];if("geometries"in g){let w=g.geometries[0].userData.parameters;Object.assign(f,{LOD:w.lod,char:w.char,fontFamily:w.fontFamily,fontSize:w.fontSize,letterSpacing:w.letterSpacing,originalChar:w.char})}}let d={char:f.char,fontFamily:f.fontFamily,letterSpacing:Number(f.letterSpacing),fontSize:Number(f.fontSize),LOD:f.LOD},x=new Rr(d,r.clone());return l.addChar3D(x,t.textOrigin),this.charContainer.add(x),x});return l.message=c,l}),this.userData.textFrame=t),this.textFullUpdate()}return this}fromTextFrameData(e,t){if(e.color!==void 0){let r=kt(e.color,t);this.updateColor(r),this.updateOpacity(r.a)}e.alpha!==void 0&&this.updateOpacity(e.alpha),e.font!==void 0&&this.updateFontFamily(e.font),e.horizontalAlign!==void 0&&this.updateHorizontalAlignment(e.horizontalAlign),e.verticalAlign!==void 0&&this.updateVerticalAlignment(e.verticalAlign),e.textTransform!==void 0&&this.updateTextTransform(e.textTransform),e.fontSize!==void 0&&this.updateFontSize(e.fontSize),e.lineHeight!==void 0&&this.updateLineHeight(e.lineHeight),e.letterSpacing!==void 0&&this.updateLetterSpacing(e.letterSpacing),e.text!==void 0&&e.text!==""&&this.updateText(e.text),(e.width!==void 0||e.height!==void 0)&&this.updateGeometry({parameters:{width:e.width,height:e.height}})}fromState(e,t){return super.fromState(e),this.fromTextFrameData(e,t),this}convertToVector(){let{fontFamily:e,hexColor:t}=this.userData.textFrame,r=new Qi;r.name="Text Shape";let n=Rr.fontCache[e];for(let s of this.charContainer.children)s instanceof Rr&&n.generateShapes(s.char,1).forEach(l=>{let c=new st().fromShape(l);c.applyScale(s.scale.x,s.scale.y);let f=ur.create({shape:c}),h=new vr({side:ju});h.color=t;let d=new Io(f,h);d.name=s.char,d.position.copy(s.position),d.rotation.copy(s.rotation),r.attach(d)});return r}},zs=Op;zs.VerticalAlign=gi,zs.HorizontalAlign=Lr,zs.TextTransform=ki;import{HemisphereLight as V3,Scene as U3,Vector3 as k3,Color as fb,Fog as H3,Box3 as W3}from"three";import{BufferGeometryLoader as T3}from"three";function Yv(i,e){return I3(i)}function I3(i){let e={parameters:i,type:i.type};if(i.type==="VectorGeometry"){let r=st.createFromState(i.shape,i.width,i.height);e.shape=r}else i.type==="NonParametricGeometry"&&(i.data.groups&&i.data.groups.forEach(r=>{var n;return r.materialIndex=Math.max((n=r.materialIndex)!=null?n:0,0)}),e.geometry=new T3().parse(i));let t;try{t=La(e)}catch(r){console.error(r)}if(!t){let r=st.createFromState(ws.defaultData(),100,100);e.shape=r,t=La(e)}return t}import{Box3 as M3,Matrix4 as Mo,Sphere as tb,Vector3 as A3}from"three";var rb=ug(eb());var Pp;au.then(i=>{Pp=i});var nb=new Mo,O3=new Mo,P3=new Mo,En=new M3,eo=new A3,D3=new Mo,B3=new Mo,Ka=class extends hr{constructor(e,t,r,n=new bn){super(r!=null?r:t,n);this.subdivPointer=e;this.originalGeometry=t;this.subdividedGeometry=r;this.objectType="SubdivObject";this.hiddenMatrixOld=new Mo;this.smoothShading=!0;this.matrixWorldRigid=new Mo;this.castShadow=!0,this.receiveShadow=!0,this.forceComputeSize=!1}static createFromState(e,t,r){let{subdivPointer:n,originalGeometry:s,subdividedGeometry:l}=en.build(t.geometry,void 0,void 0,!t.flatShading),c=Ra(t.material,r),f=new Ka(n,s,l||void 0,c);return f.calcBoundingBox(),f.freeSubdivPointer(),f.uuid=e,f.fromState(t),f}shallowClone(e){return new $a(this.geometry,this.material).shallowCopy(this,e)}toJSON(e){let t=super.toJSON(e);return t.object.objectType="SubdivObject",t}buildFromStore(e){var s,l,c;let{originalGeometry:t,subdividedGeometry:r,subdivPointer:n}=en.build(e,this.subdivPointer,void 0,this.smoothShading,this.shearScale);if(this.subdivPointer=n,t!==void 0&&((s=this.originalGeometry)==null||s.dispose(),this.originalGeometry=t),r!==void 0&&((l=this.subdividedGeometry)==null||l.dispose(),this.subdividedGeometry=r!=null?r:void 0),this.geometry=(c=this.subdividedGeometry)!=null?c:this.originalGeometry,this.cloner)for(let f of this.cloner.children)f.geometry=this.geometry;e.width&&(this.geometry.userData.parameters={width:e.width,height:e.height,depth:e.depth})}updateMesh(e=!1){en.buildLevel(this.subdivPointer,!0,this.smoothShading,this.originalGeometry,e?this.shearScaleInv:void 0),this.subdividedGeometry&&en.buildLevel(this.subdivPointer,!1,this.smoothShading,this.subdividedGeometry,e?this.shearScaleInv:void 0)}updateTopology(){var e;this.originalGeometry.dispose(),this.originalGeometry=en.buildLevel(this.subdivPointer,!0,this.smoothShading),this.subdividedGeometry&&(this.subdividedGeometry.dispose(),this.subdividedGeometry=en.buildLevel(this.subdivPointer,!1,this.smoothShading)),this.geometry=(e=this.subdividedGeometry)!=null?e:this.originalGeometry}raycast(e,t){var r;this.geometry=this.originalGeometry,hr.prototype.raycast.call(this,e,t),this.geometry=(r=this.subdividedGeometry)!=null?r:this.originalGeometry}updateMatrixWorldSVD(){let e=this.matrixWorld.elements,t=[[e[0],e[4],e[8]],[e[1],e[5],e[9]],[e[2],e[6],e[10]]],{u:r,v:n,q:s}=(0,rb.SVD)(t),l=nb.set(r[0][0],r[0][1],r[0][2],0,r[1][0],r[1][1],r[1][2],0,r[2][0],r[2][1],r[2][2],0,0,0,0,1),c=O3.set(n[0][0],n[0][1],n[0][2],0,n[1][0],n[1][1],n[1][2],0,n[2][0],n[2][1],n[2][2],0,0,0,0,1),f=P3.copy(c).transpose();this.shearScale=D3.makeScale(s[0],s[1],s[2]).multiply(f).premultiply(c),this.shearScaleInv=B3.copy(this.shearScale).invert(),this.matrixWorldRigid.multiplyMatrices(l,f),s.every(h=>Math.abs(s[0]-h)<.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 tb);let t=e.attributes.position,r=e.boundingSphere.center;En.setFromBufferAttribute(t),En.getCenter(r),e.boundingSphere.radius=r.distanceTo(En.max),isNaN(e.boundingSphere.radius)&&console.error('THREE.BufferGeometry.computeBoundingSphere(): Computed radius is NaN. The "position" attribute is likely to have NaN values.',this),En.getSize(eo);let n={width:eo.x,height:eo.y,depth:eo.z};return this.geometry.userData.parameters=n,n}updateBoundingBox(e){let t=this.originalGeometry;En.min.set(e[0],e[2],e[4]),En.max.set(e[1],e[3],e[5]),this.shearScaleInv&&(En.min.applyMatrix4(this.shearScaleInv),En.max.applyMatrix4(this.shearScaleInv)),t.boundingSphere===null&&(t.boundingSphere=new tb);let r=t.boundingSphere.center;En.getCenter(r),t.boundingSphere.radius=r.distanceTo(En.max),isNaN(t.boundingSphere.radius)&&console.error('THREE.BufferGeometry.computeBoundingSphere(): Computed radius is NaN. The "position" attribute is likely to have NaN values.',this),En.getSize(eo);let n={width:eo.x,height:eo.y,depth:eo.z};return this.geometry.userData.parameters=n,n}freeSubdivPointer(){this.subdivPointer&&(Pp.free_bvh(this.subdivPointer),Pp.free_subdivision_surface(this.subdivPointer),this.subdivPointer=0)}updateGeometry(e){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,ib(this.originalGeometry.attributes,...this.geometry.userData.scale),this.originalGeometry.attributes.position.needsUpdate=!0,this.originalGeometry.attributes.normal.needsUpdate=!0,this.subdividedGeometry&&(ib(this.subdividedGeometry.attributes,...this.subdividedGeometry.userData.scale),this.subdividedGeometry.attributes.position.needsUpdate=!0,this.subdividedGeometry.attributes.normal.needsUpdate=!0),this.geometry.userData.parameters=U({},e.parameters)}};function ib(i,e,t,r){let n=i.position.array,s=i.normal.array,l=nb.makeScale(e,t,r).invert().elements,c,f,h;for(var d=0,x=n.length;d<x;d+=3)n[d]*=e,n[d+1]*=t,n[d+2]*=r,c=s[d],f=s[d+1],h=s[d+2],s[d]=l[0]*c+l[4]*f+l[8]*h,s[d+1]=l[1]*c+l[5]*f+l[9]*h,s[d+2]=l[2]*c+l[6]*f+l[10]*h}import{BackSide as G3,DoubleSide as j3,FrontSide as E3}from"three";function ob(i,e){e.flatShading!==void 0&&(i.flatShading=e.flatShading,i.needsUpdate=!0),e.wireframe!==void 0&&(i.wireframe=e.wireframe),e.side!==void 0&&(e.side===xs.Front?i.side=E3:e.side===xs.Back?i.side=G3:i.side=j3)}function R3(i,e){if(Array.isArray(i.material))for(let t of i.material)ob(t,e);else{let t=i.material;ob(t,e)}i.objectType==="SubdivObject"&&e.flatShading!==void 0&&(i.material.flatShading=!1,i.smoothShading=!e.flatShading,i.updateMesh())}function sb(i,e,t){let r;if(e.geometry.type==="SubdivGeometry")r=Ka.createFromState(i,e,t);else{let n=Yv(e.geometry,t),s="materials"in e?jv(e.materials,t):Ra(e.material,t);Fc.is2DParametricMesh(n.userData.type)?r=new Wa(n,s):(n==null?void 0:n.userData.type)==="VectorGeometry"?r=new Io(n,s):e.geometry.type==="NonParametricGeometry"?r=new $a(n,s):r=new qa(n,s),r.uuid=i,r.fromState(e)}return R3(r,e),r}function ab(i,e,t){return e.type==="Mesh"?sb(i,e,t):e.type==="TextFrame"?zs.createFromState(i,e,t):e.type==="Empty"?Qi.createFromState(i,e):e.type==="PointLight"?ka.createFromState(i,e,t):e.type==="SpotLight"?Ha.createFromState(i,e,t):e.type==="DirectionalLight"?Ua.createFromState(i,e,t):ps.is(e.type)?Yi.createFromState(i,e):(console.error(e),new Qi)}function z3(i,e){e.uniforms[`f${e.id}_transmissionSamplerMap`].value=i.texture,e.uniforms[`f${e.id}_transmissionDepthMap`].value=i.depthTexture}function lb(i,e,t){if(!t.userData.layers)return!1;let r=!1,n=t.userData.layers.getLayersOfType(qe.TRANSMISSION);return n.length>0?(e.layers.set(3),r=!0,i!==void 0&&n.forEach(s=>z3(i,s))):e.layers.set(0),r}function cb(i,e){let t=!1;return e.traverseEntity(r=>{if(r instanceof hr)if(Array.isArray(r.material))for(let n=0;n<r.material.length;n++)lb(i,r,r.material[n])&&(t=!0);else lb(i,r,r.material)&&(t=!0)}),t}function ub(i,e){"material"in i&&F3(i.material,e),"geometry"in i&&i.geometry.dispose()}function F3(i,e){fg(i).forEach(t=>{e.isSharedMaterial(t)||t.dispose()})}var hb=new k3,Dp=class extends uu(U3){constructor(e,t){super();this.objectType="Scene";this.alpha=1;this.backupFog=new H3(16777215,.1,2e3);this.fogUseBGColor=!1;this.wireframeState=!1;this.needsTransmissionDirty=!0;this._needsTransmission=!1;this._color=new fb(1,0,0);this.bgColor=new fb(1,1,1);this.entityByUuid={};this.ambientLight=new V3(13882323,8553090,.75),this.ambientLight.name="Default Ambient Light",this.personalCamera=this.createPersonalCamera(),this.activeCamera=this.personalCamera,this.sharedAssetManager=t,this.init(e,t)}needsTransmission(e){return this.needsTransmissionDirty&&(this._needsTransmission=cb(e,this),e!==void 0&&(this.needsTransmissionDirty=!1)),this._needsTransmission}find(e){if(e===""||e===void 0)return;let t=this.entityByUuid[e];return t===void 0?this.getObjectByProperty("uuid",e):t}get color(){return this._color}set color(e){this.fogUseBGColor===!0&&this.backupFog.color.copy(e),this._color.copy(e)}get enableFog(){return this.fog!==null}set enableFog(e){this.fog=e===!0?this.backupFog:null}init(e,t){if(this.createChildrenObjects(e.objects,this,t),this.personalCamera.removeFromParent(),this.add(this.personalCamera),this.ambientLight.removeFromParent(),this.add(this.ambientLight),this.setBackgroundColor(kt(e.backgroundColor,t)),this.updateFog(e.fog,t),this.updateAmbientLight(e.environment.ambientLight,t),this.activeCamera=this.personalCamera,e.publish.playCamera!==null){let r=this.find(e.publish.playCamera);r instanceof Yi&&this.switchActiveCamera(r)}}clearScene(e){this.traverseEntity(t=>{ub(t,e)});for(let t of this.children)yn(t)&&t.removeFromParent()}resetAfterClear(e,t){this.init(e,t)}createPersonalCamera(){let e=Yi.createFromState(Dp.PERSONAL_CAMERA_ID,fe(U({},Uc.defaultData),{name:"Personal Camera"}));return e.enableHelper=!1,e.objectHelper.visible=!1,delete e.isEntity,this.registerObjectCreatedInLegacy(e),e}raycast(e){let t=[],r=n=>{for(let s of n.children)yn(s)&&!s.raycastLock&&s.visible&&((_s(s)||vi(s)&&s.enableHelper&&s.objectHelper.parent)&&e.intersectObject(s,!1,t),r(s))};return r(this),t}traverseEntity(e){for(let t of this.children)yn(t)&&t.traverseEntity(e)}updateFog(e,t){this.enableFog=e.enabled,this.fogUseBGColor=e.useBackgroundColor,e.useBackgroundColor?this.backupFog.color.set(this.bgColor):this.backupFog.color=kt(e.color,t),this.backupFog.near=e.near,this.backupFog.far=e.far}toJSON(e){return{}}fromJSON(e){return this}dispose(){this.clearScene(this.sharedAssetManager),this.sharedAssetManager.dispose()}updateAmbientLight(e,t){fv(this.ambientLight,e,t),e.groundColor!==void 0&&(this.ambientLight.groundColor=kt(e.groundColor,t)),e.enabled!==void 0&&(this.ambientLight.visible=e.enabled)}switchActiveCamera(e){this.activeCamera!==this.personalCamera&&(this.activeCamera.enableHelper=!0),this.activeCamera=e,e.enableHelper=!1}setBackgroundColor(e){this.bgColor=e,this.alpha=e.a}createChildrenObjects(e,t,r){for(let n of e)this.createChildObject(n.id,n.data,n.children,t,r)}registerObjectCreatedInLegacy(e){this.entityByUuid[e.uuid]=e}unregisterObject(e){delete this.entityByUuid[e.uuid];for(let t of e.children)this.unregisterObject(t)}createChildObject(e,t,r,n,s){let l=ab(e,t,s);return l&&(this.entityByUuid[e]=l,n.add(l),this.createChildrenObjects(r,l,s)),l}getCenter(e){let t=[];for(let n=0,s=e.length;n<s;++n){let{id:l,recursive:c}=e[n],f=this.find(l),h=c?f.recursiveBBox:f.singleBBox;t.push(...h.vertices)}let r=new W3;return r.setFromPoints(t),r.getCenter(hb),hb}copyMatrixWorld(e,t){if(e===null){t.identity();return}let r=this.find(e);r?t.copy(r.matrixWorld):t.identity()}copyParentMatrixWorld(e,t){var n;if(e===null){t.identity();return}let r=(n=this.find(e))==null?void 0:n.parent;r?t.copy(r.matrixWorld):t.identity()}traverseMaterial(e){this.traverseEntity(t=>{if(t instanceof hr)if(Array.isArray(t.material))for(let r=0;r<t.material.length;r++)e(t.material[r]);else e(t.material)})}updateCanvasSize(e,t){this.activeCamera.setViewplaneSize(e,t);let r,n;e>=t?(r=t/e,n=1):(r=1,n=e/t),this.traverseMaterial(s=>{s.layersList.getLayersOfType(qe.TRANSMISSION).forEach(c=>{c.uniforms[`f${c.id}_aspectRatio`].value.x=r,c.uniforms[`f${c.id}_aspectRatio`].value.y=n})})}},Ru=Dp;Ru.PERSONAL_CAMERA_ID="f23858d0-4a3b-4bd8-8173-66ed0af7f6fb-personalCamera";import{DRACOLoader as q3}from"three/examples/jsm/loaders/DRACOLoader.js";var to;function $3(){return to||(to=new q3,to.setDecoderPath("https://www.gstatic.com/draco/versioned/decoders/1.5.2/").preload()),to.decoderPending}async function J3(i){if(to){let e={attributeIDs:to.defaultAttributeIDs,attributeTypes:to.defaultAttributeTypes,useUniqueIDs:!1},t;try{t=await to.decodeGeometry(new Int8Array(i).buffer,e)}catch(r){console.error(r)}if(t)return{index:t.index?{array:t.index.array}:void 0,attributes:Object.entries(t.attributes).map(([r,n])=>({name:r,itemSize:n.itemSize,array:n.array}))}}return null}async function pb(i){let[e,t]=ih(Pc.deserialize(new Uint8Array(i))),r=[];e.scene.objects.traverse((n,s)=>{s.type==="Mesh"&&s.geometry.type==="NonParametricGeometry"&&s.geometry.data.draco!==void 0&&r.push(s)}),r.length&&await $3();for(let n of r){let s=await J3(sh(n.geometry.data.draco));if(s){s.index&&(n.geometry.data.index={array:s.index.array,itemSize:1,normalized:!1,type:"Uint32Array"});let l={};s.attributes.forEach(({name:c,array:f,itemSize:h})=>{l[c]={array:f,itemSize:h,type:"Float32Array",normalized:!1}}),n.geometry.data.attributes=l,n.geometry.data.draco=void 0}}return t.result().data}import{WebGLRenderTarget as K3,LinearMipmapLinearFilter as X3,LinearFilter as Z3,ClampToEdgeWrapping as db,DepthTexture as Y3}from"three";var mb=new vr,Bp=class extends tn{},Gp=class{constructor(e){this.materials={};this.images={};this.colors={};this.transmissionRenderTarget=new K3(2048,2048,{generateMipmaps:!0,minFilter:X3,magFilter:Z3,wrapS:db,wrapT:db}),this.transmissionRenderTarget.depthTexture=new Y3(2048,2048),this.reset(e)}reset(e){for(let[t,r]of Object.entries(e.images))this.addImage(t,r.data);for(let[t,r]of Object.entries(e.colors))this.addColor(t,r);for(let[t,r]of Object.entries(e.materials))this.addMaterial(t,Lp(r,this))}get transmissionSamplerMap(){return this.transmissionRenderTarget.texture}get transmissionDepthMap(){return this.transmissionRenderTarget.depthTexture}addMaterial(e,t){t.uuid=e,this.materials[e]=t}deleteMaterial(e){this.materials[e]&&(this.materials[e].dispose(),delete this.materials[e])}isSharedMaterial(e){return e.uuid in this.materials||e===mb}getMaterial(e){let t=this.materials[e];return t}getMaterialOrDeletedPlaceholder(e){var t;return(t=this.materials[e])!=null?t:mb}getMaterials(){return this.materials}addImage(e,t){if(this.images[e])return this.images[e].onload=()=>{this.onImageLoad&&this.onImageLoad(e)},this.images[e].src=t,!0;{let r=new Image;return r.src=t,r.onload=()=>{this.onImageLoad&&this.onImageLoad(e)},this.images[e]=r,!1}}deleteImage(e){this.images[e]&&delete this.images[e]}getDefaultImage(){return this.images.image_0}getImage(e){return this.images[e]}getImages(){return this.images}addColor(e,t){return this.colors[e]?("a"in t?this.colors[e].setRGBA(t.r,t.g,t.b,t.a):this.colors[e].setRGBA(t.r,t.g,t.b,1),!0):("a"in t?this.colors[e]=new Bp(t.r,t.g,t.b,t.a):this.colors[e]=new Bp(t.r,t.g,t.b,1),!1)}updateColor(e,t){var r,n,s,l;if(this.colors[e]){let c=this.colors[e];return this.colors[e].r=(r=t.r)!=null?r:c.r,this.colors[e].g=(n=t.g)!=null?n:c.g,this.colors[e].b=(s=t.b)!=null?s:c.b,this.colors[e].a=(l=t.a)!=null?l:c.a,!0}return!1}deleteColor(e){this.colors[e]&&delete this.colors[e]}getColor(e){return this.colors[e]}dispose(){Object.keys(this.materials).forEach(t=>this.deleteMaterial(t)),this.transmissionRenderTarget.depthTexture.dispose(),this.transmissionRenderTarget.dispose(),this.onImageLoad=void 0}};import{Color as yb,ShaderLib as Q3}from"three";var xb=ug(gb());function vb(i){let e=new Set;return i.traverse(t=>{if(_s(t))if((0,xb.isArray)(t.material))t.material.forEach(r=>{let n=r;e.has(n)||e.add(n)});else{let r=t.material;e.has(r)||e.add(r)}}),e.forEach(t=>{let r=t.onBeforeCompile.bind(t);eB(t)?(Object.assign(t,{isMeshStandardMaterial:!0,isMeshPhysicalMaterial:!0,transmission:1,attenuationColor:new yb,specularColor:new yb}),t.onBeforeCompile=(n,s)=>{r&&r(n,s),n.uniforms=Object.assign(Q3.physical.uniforms,n.uniforms),t.userData.layers.getLayersOfType(qe.TRANSMISSION).forEach(l=>{n.uniforms.transmissionSamplerMap.value&&(l.uniforms["f"+l.id+"_transmissionSamplerMap"].value=n.uniforms.transmissionSamplerMap.value,l.uniforms["f"+l.id+"_transmissionSamplerSize"].value=n.uniforms.transmissionSamplerSize.value)})}):tB(t)||(t.onBeforeCompile=(n,s)=>{r&&r(n,s),t.transparent=!1})}),i}function eB(i){return i.userData.layers.getLayersOfType(qe.TRANSMISSION).length>0}function tB(i){let e=i.userData.layers.head,t=0;for(;e!==void 0;){if(e.type!==qe.LIGHTING&&e.type!==qe.FRESNEL){let r=e.uniforms["f"+e.id+"_alpha"];r&&(t+=(1-t)*r.value)}e=e.next}return t<1}function bb(i){return i.traverse(e=>{if(e.type==="Camera"){let t=e;t.type=t.cameraType}}),i}var Sb=class extends nB{load(e,t,r,n=console.error){let s=new rB(this.manager);s.setPath(this.path),s.setResponseType("arraybuffer"),s.setRequestHeader(this.requestHeader),s.setWithCredentials(this.withCredentials),s.load(e,async l=>{try{if(typeof l=="string")throw new Error("The .spline file is not binary!");let c=await this.parse(l);t(c)}catch(c){n(c)}},r,n)}async parse(e){let t=await pb(e),r=new Gp(t.shared),n=new Ru(t.scene,r);return bb(vb(n))}};export{Sb as default};
|
|
975
|
+
`),d&&S.push(d.code,`outgoingLight = spe_blend(outgoingLight, ${d.result}, 1.0, SPE_BLENDING_NORMAL);`),m?S.push(`gl_FragColor = vec4( outgoingLight, accumAlpha * ${m.result} );`):S.push("gl_FragColor = vec4( outgoingLight, 1.0 );"),S.push("#include <encodings_fragment>","#include <fog_fragment>","#include <dithering_fragment>"),r=S.join(`
|
|
976
|
+
`)}return r}copy(e){return super.copy(e),e.color&&(this.color=e.color.clone()),this.roughness=e.roughness.clone(),this.metalness=e.metalness.clone(),e.position&&(this.position=e.position.clone()),e.afterColor&&(this.afterColor=e.afterColor.clone()),e.alpha&&(this.alpha=e.alpha.clone()),e.reflectivity&&(this.reflectivity=e.reflectivity.clone()),e.shadingAlpha&&(this.shadingAlpha=e.shadingAlpha.clone()),e.shadingBlend&&(this.shadingBlend=e.shadingBlend.clone()),this}};var Tu=class extends Kr{constructor(e=new Lu,r){super(e,e,r);this.type="StandardNodeMaterial",this.fragment=e}get color(){return this.fragment.color}set color(e){this.fragment.color=e}get afterColor(){return this.fragment.afterColor}set afterColor(e){this.fragment.afterColor=e}get alpha(){return this.fragment.alpha}set alpha(e){this.fragment.alpha=e}get shadingAlpha(){return this.fragment.shadingAlpha}set shadingAlpha(e){this.fragment.shadingAlpha=e}get shadingBlend(){return this.fragment.shadingBlend}set shadingBlend(e){this.fragment.shadingBlend=e}get position(){return this.fragment.position}set position(e){this.fragment.position=e}get roughness(){return this.fragment.roughness}set roughness(e){this.fragment.roughness=e}get metalness(){return this.fragment.metalness}set metalness(e){this.fragment.metalness=e}get reflectivity(){return this.fragment.reflectivity}set reflectivity(e){this.fragment.reflectivity=e}};var Es=class extends Tu{constructor(t,e,r){super(e,t),this.userData.type="PhysicalMaterial",this.userData.category="Physical",this.userData.layers=r!=null?r:this._getLayerStack(t==null?void 0:t.map)}get layersList(){return this.userData.layers}set layersList(t){this.userData.layers=t}equals(t){return this.userData.type===t.userData.type&&this.userData.layers.uuid==t.userData.layers.uuid}copy(t){if(t.userData.layers!==void 0&&t.userData.layers instanceof yr){let e=t.userData.layers,r=t.fragment;super.copy(t);let n=r.clone();this.fragment=n,this.vertex=n;let o=e.clone(this);this.userData.layers=o,n.shadingAlpha.value=r.shadingAlpha.value,n.shadingBlend.value=r.shadingBlend.value}else super.copy(t);return this}static fromJSON(t,e,r){let n=r.getNode(e.vertex),o=new Es(void 0,n);return o.fromJSON(e,r),o}dispose(){super.dispose()}};import{Color as mp}from"three";import{Matrix3 as cv,Texture as dp,Vector2 as Qa,Vector3 as Hi,Vector4 as uv}from"three";function fv(i,t){switch(i.data.type){case"light":return In(i);case"fresnel":return pD(i,t);case"gradient":return dD(i);case"depth":return mD(i);case"normal":return gD(i);case"noise":return yD(i,t);case"texture":return xD(i,t);case"rainbow":return vD(i);case"transmission":return bD(i,t);case"matcap":return SD(i,t);case"displace":return wD(i);case"color":default:return hD(i,t)}}function hv(i){return{type:i.data.type}}function In(i){let{alpha:t,mode:e}=i.data;return ue(j({},hv(i)),{alpha:t,mode:e})}function hD(i,t){return ue(j({},In(i)),{color:Ft(i.data.color,t)})}function pD(i,t){let{bias:e,scale:r,intensity:n,factor:o,color:a}=i.data;return ue(j({},In(i)),{color:Ft(a,t),bias:e,scale:r,intensity:n,factor:o})}function dD(i){let{gradientType:t,smooth:e,colors:r,steps:n,angle:o,offset:a,morph:c}=i.data;return ue(j({},In(i)),{gradientType:t,smooth:e,colors:r.map(f=>new uv(f[0],f[1],f[2],f[3])),num:r.length,steps:n,offset:new Qa(...a),morph:new Qa(...c),angle:o})}function mD(i){let{gradientType:t,near:e,far:r,isVector:n,isWorldSpace:o,origin:a,direction:c,colors:f,steps:h,smooth:d,num:m}=i.data;return ue(j({},In(i)),{gradientType:t,near:e,far:r,isVector:n,isWorldSpace:o,origin:new Hi(...a),direction:c?new Hi(...c):new Hi(1,0,0),num:m,colors:f.map(x=>new uv(x[0],x[1],x[2],x[3])),steps:h,smooth:d})}function gD(i){let{cnormal:t}=i.data;return ue(j({},In(i)),{cnormal:new Hi(t[0],t[1],t[2])})}function yD(i,t){let{data:e}=i;return ue(j({},In(i)),{scale:e.scale,move:e.move,fA:new Qa(...e.fA),fB:new Qa(...e.fB),size:new Hi(...e.size),distortion:new Qa(...e.distortion),colorA:Ft(e.colorA,t),colorB:Ft(e.colorB,t),colorC:Ft(e.colorC,t),colorD:Ft(e.colorD,t),noiseType:e.noiseType})}function xD(i,t){let{projection:e,axis:r,crop:n,size:o}=i.data,{image:a,wrapping:c,repeat:f,offset:h}=i.data.texture,d=new dp,m;if(typeof a=="string")m=t==null?void 0:t.getImage(a);else{let x=new Image;x.src=a.data,x.onload=()=>{t!=null&&t.onImageLoad&&(t==null||t.onImageLoad(a.data))},m=x}return d.image=m,d.repeat.set(f[0],f[1]),d.offset.set(h[0],h[1]),d.wrapS=d.wrapT=c,ue(j({},In(i)),{texture:d,mat:new cv().setUvTransform(h[0],h[1],f[0],f[1],0,0,0),crop:n,projection:e,axis:["x","y","z"].indexOf(r),size:o})}function vD(i){let{data:t}=i;return ue(j({},In(i)),{filmThickness:t.filmThickness,movement:t.movement,wavelengths:new Hi(...t.wavelengths),noiseStrength:t.noiseStrength,noiseScale:t.noiseScale,offset:new Hi(...t.offset)})}function bD(i,t){let{data:e}=i;return ue(j({},In(i)),{thickness:e.thickness,ior:e.ior,roughness:e.roughness,transmissionSamplerMap:t.transmissionSamplerMap,transmissionDepthMap:t.transmissionDepthMap})}function SD(i,t){let e=new dp,{image:r}=i.data.texture,n;if(typeof r=="string")n=t==null?void 0:t.getImage(r);else{let a=new Image;a.src=r.data,a.onload=()=>{t!=null&&t.onImageLoad&&(t==null||t.onImageLoad(r.data))},n=a}e.image=n;let o=16777215;return ue(j({},In(i)),{color:o,texture:e})}function wD(i){let{data:t}=i,e=ue(j({},hv(i)),{intensity:t.intensity});if(t.displacementType==="noise")return ue(j({},e),{offset:new Hi(...t.offset),scale:t.scale,movement:t.movement,noiseType:t.noiseType});{let r=new dp,n=new cv().setUvTransform(0,0,1,1,0,0,0);return ue(j({},e),{texture:r,mat:n,crop:t.crop})}}function pv(i,t,e){if(e.type==="displace"&&(i==="intensity"||i==="visible")){let r=t.uniforms[`f${t.id}_intensity`];return r?(r.value=e.intensity*(e.visible?1:0),r):void 0}if(e.type!=="displace"&&(i==="alpha"||i==="visible")){let r=t.uniforms[`f${t.id}_alpha`];return r?(r.value=e.alpha*(e.visible?1:0),r):void 0}}import{Color as gv,Vector4 as CD}from"three";var Bs;(t=>{function i(e){return new gv(e.x,e.y,e.z).getHex()}t.getHex=i})(Bs||(Bs={}));var dv;(t=>{function i(e){return new CD(e.r,e.g,e.b,e.a)}t.getThreeVector4=i})(dv||(dv={}));var mv;(e=>{function i(r,n){r.setRGB(n.r,n.g,n.b)}e.setThreeColor=i;function t(r){return new gv(r.r,r.g,r.b).getHex()}e.getHex=t})(mv||(mv={}));function el(i,t){return typeof i=="string"?t.getMaterialOrDeletedPlaceholder(i):gp(i,t)}function yv(i,t){return i.map(e=>el(e,t))}function gp(i,t){var a,c;let e=(a=i.layers)!=null?a:ds.defaultTwoLayerData("phong").layers,r=LD(e),n;switch(r.category){case"basic":n=new ur;break;case"lambert":{n=new As;break}case"toon":{n=new Ds;break}case"physical":n=new Es;break;case"phong":default:{n=new Yr;break}}n.name=(c=i.name)!=null?c:"Untitled Material";let o=n.userData.layers;TD(o);for(let f=e.length-1;f>=0;f--)ND(o,e[f],t);switch(r.category){case"basic":break;case"lambert":{let d=n,x=Ft(r.emissive,t);x instanceof mp?d.emissive.value=x:d.emissive.value.setHex(Bs.getHex(x));break}case"toon":{let d=n,m=r;d.shininess.value=m.shininess;let x=Ft(m.specular,t);x instanceof mp?d.specular.value=x:d.specular.value.setHex(Bs.getHex(x));break}case"physical":let f=n,h=r;f.metalness.value=h.metalness,f.roughness.value=h.roughness,f.reflectivity.value=h.reflectivity;break;case"phong":default:{let d=n,m=r;d.shininess.value=m.shininess;let x=Ft(m.specular,t);x instanceof mp?d.specular.value=x:d.specular.value.setHex(Bs.getHex(x));break}}return o.blendColors(),o.blendAfterColors(),o.blendPositions(),n}function LD(i){for(let t of i)if(t.data.type==="light")return t.data;return{type:"light",category:"basic",visible:!0,alpha:1,mode:0}}function TD(i){for(let t of i.getLayers())i.removeLayer(t.id)}function ND(i,t,e){let r=fv(t,e);r.type==="transmission"&&(r.transmissionSamplerMap=e==null?void 0:e.transmissionSamplerMap,r.transmissionDepthMap=e==null?void 0:e.transmissionDepthMap);let n=i.addLayer(r);n.uuid=t.id;for(let o in t.data)pv(o,n,t.data)}var xv=i=>i.tagName==="VIDEO",So=class{static resize(t,e,r){let n=t/e,o;if(!r.image)return;let a=r.image;xv(a)?o=a.videoWidth/a.videoHeight:o=a.width/a.height,n>o&&(r.imageType=="WEBCAM"?r.repeat.set(-1,1*o/n):r.repeat.set(1,1*o/n)),n<o&&(r.imageType=="WEBCAM"?r.repeat.set(1*n/o*-1,1):r.repeat.set(1*n/o,1)),n==o&&(r.imageType=="WEBCAM"?r.repeat.set(-1,1):r.repeat.set(1,1))}static resizeTextureLayer(t,e,r){let n=t/e,o=r.image!==void 0?r.image.width/r.image.height:1,a;n>o?a={x:1,y:o/n}:n<o?a={x:n/o,y:1}:a={x:1,y:1},r.repeat.set(a.x,a.y),r.updateMatrix()}static resizeTextureLayers(t,e,r){let n=r.userData.layers,o=n.getLayers();for(let a=0;a<o.length;a++){let c=o[a];nv(c)&&(So.resizeTextureLayer(t,e,c.uniforms[`f${c.id}_texture`].value),n.updateLayerUniform())}}static resizeComplex(t,e,r,n){let o=t/e,a,c=r.image;xv(c)?a=c.videoWidth/c.videoHeight:a=c.width/c.height,n.geometry.type.includes("Shape")?(o>a&&(r.imageType=="WEBCAM"?r.repeat.set(1/t*-1,1/e*a/o):r.repeat.set(1/t,1/e*a/o)),o<a&&(r.imageType=="WEBCAM"?r.repeat.set(1/t*o/a*-1,1/e):r.repeat.set(1/t*o/a,1/e)),o==a&&(r.imageType=="WEBCAM"?r.repeat.set(1/t*-1,1/e):r.repeat.set(1/t,1/e))):(o>a&&(r.imageType=="WEBCAM"?r.repeat.set(-1,1*a/o):r.repeat.set(1,1*a/o)),o<a&&(r.imageType=="WEBCAM"?r.repeat.set(1*o/a*-1,1):r.repeat.set(1*o/a,1)),o==a&&(r.imageType=="WEBCAM"?r.repeat.set(-1,1):r.repeat.set(1,1)))}};var Gs=class extends rr{constructor(e,r=new ur){super(e,r);this.objectType="Mesh2D";this.castShadow=!0,this.receiveShadow=!0}updateGeometry(e){super.updateGeometry(e),this.material.userData.layers&&So.resizeTextureLayers(this.geometry.userData.parameters.width,this.geometry.userData.parameters.height,this.material)}resizeGeometry(e,r){super.resizeGeometry(e,r,0),this.material.userData.layers&&So.resizeTextureLayers(this.geometry.userData.parameters.width,this.geometry.userData.parameters.height,this.material)}toJSON(e){let r=super.toJSON(e);return r.object.objectType="Mesh2D",r}clone(){let e=super.clone();return e.updateGeometry({}),e}static fromTexture(e){let r,n;if(e instanceof _D){let c=e.image;r=c.videoWidth*.5,n=c.videoHeight*.5}else{let c=e.image;r=c.width*.5,n=c.height*.5}let o=au.create({parameters:{width:r,height:n}}),a=new ur;return a.layersList.changeLayer(0,{type:"texture",texture:e}),a.layersList.moveLayer(0,1),a.dispose(),new Gs(o,a)}};import{DoubleSide as ID,EventDispatcher as OD,Matrix3 as MD,Vector3 as yp}from"three";var PD=new yp(0,0,1),vv=new yp,bv=new yp,Sv=new MD,Wi=class extends rr{constructor(e=ar.create({}),r=new ur({side:ID})){var n;super(e,r);this.recursiveSelection=!1;this.objectType="VectorObject";this.eventDispatcher=new OD;this._onShapeUpdate=()=>{if(this.geometry instanceof Vi){if(this.geometry.updateFromShape()){let e=this.geometry.drawCount,r=this.geometry.userData;this.updateGeometry(Object.assign(this.geometry.userData,{parameters:Object.assign(r.parameters,{surfaceMaxCount:e+1e3})}))}}else this.updateGeometry({});this.geometry.computeBoundingSphere(),this.geometry.computeBoundingBox()};this.castShadow=!0,this.receiveShadow=!0,this.forceComputeSize=!0,this.shape=e.userData.shape,(n=this.shape.eventDispatcher)==null||n.addEventListener("update",this._onShapeUpdate)}toJSON(e){let r=super.toJSON(e);return r.object.objectType="VectorObject",r}fromState(e){return super.fromState(e),this.shape.update(),this}setHelperVisibility(){}updateGeometry(e){if(super.updateGeometry(e),"userData"in this.geometry){let r=this.geometry.userData.parameters;this.eventDispatcher.dispatchEvent({type:"geometryUpdate",parameters:r})}}setShape(e){var r,n;this.shape&&((r=this.shape.eventDispatcher)==null||r.removeEventListener("update",this._onShapeUpdate)),this.shape=e,(n=this.shape.eventDispatcher)==null||n.addEventListener("update",this._onShapeUpdate)}updateWorldMatrix(e,r){super.updateWorldMatrix(e,r),Sv.getNormalMatrix(this.matrixWorld),vv.copy(PD).applyMatrix3(Sv).normalize(),bv.setFromMatrixPosition(this.matrixWorld),this.shape.plane.setFromNormalAndCoplanarPoint(vv,bv)}clone(e){let r=this.shape.clone(),n=this.material.clone(),o=this.geometry.userData,a=ar.create(Object.assign({},o,{shape:r})),c=new Wi(a,n).copy(this,e);return c.shape=r,r.update(),c}raycast(e,r){rr.prototype.raycast.call(this,e,r)}};import{Camera as $D,OrthographicCamera as JD,PerspectiveCamera as KD,Vector3 as Xr,Object3D as Lv,Quaternion as YD}from"three";import{BoxBufferGeometry as AD}from"three";var qn=i=>{var t;return t=class extends i{constructor(){super(...arguments);this.isObjectHelper=!0}},t.geometryHelper=new AD(30,30,30),t};import{Camera as RD,LineSegments as zD,BufferGeometry as FD,LineBasicMaterial as VD,Color as vp,Vector3 as UD,Float32BufferAttribute as Cv}from"three";import{Ray as DD,Sphere as ED,Matrix4 as BD,Vector3 as di}from"three";var Nu=new DD,xp=new ED,wv=new BD,$n=(i,t,e,r,n=!1)=>{let o=t,a=i.matrixWorld;if(o.boundingSphere===null&&o.computeBoundingSphere(),xp.copy(o.boundingSphere),xp.applyMatrix4(a),e.ray.intersectsSphere(xp)===!1||(wv.copy(a).invert(),Nu.copy(e.ray).applyMatrix4(wv),o.boundingBox!==null&&Nu.intersectsBox(o.boundingBox)===!1))return;let c,f,h,d,m=o.index,x=o.attributes.position,S=o.drawRange,w,B;if(n===!1){let T=Math.max(0,S.start),M=Math.min(m.count,S.start+S.count);for(w=T,B=M;w<B;w+=3)if(f=m.getX(w),h=m.getX(w+1),d=m.getX(w+2),c=O(i,e,Nu,x,f,h,d),c){c.faceIndex=Math.floor(w/3),r.push(c);return}}else{let M=o.attributes.position,F=new di,k=new di,N=new di,te=new di,A=2,V=1/((i.scale.x+i.scale.y+i.scale.z)/3),P=V*V,R=Math.max(0,S.start),E=Math.min(M.count,S.start+S.count);for(let G=R,ae=E-1;G<ae;G+=A){if(F.fromBufferAttribute(M,G),k.fromBufferAttribute(M,G+1),Nu.distanceSqToSegment(F,k,te,N)>P)continue;te.applyMatrix4(i.matrixWorld);let xe=e.ray.origin.distanceTo(te);xe<e.near||xe>e.far||r.push({distance:xe,point:N.clone().applyMatrix4(i.matrixWorld),object:i})}}function O(T,M,F,k,N,te,A){let b=new di,V=new di,P=new di,R=new di,E=new di;if(b.fromBufferAttribute(k,N),V.fromBufferAttribute(k,te),P.fromBufferAttribute(k,A),F.intersectTriangle(b,V,P,!1,R)===null)return null;E.copy(R),E.applyMatrix4(T.matrixWorld);let ae=M.ray.origin.distanceTo(E);return ae<M.near||ae>M.far?null:{faceIndex:1,distance:ae,point:E.clone(),object:T}}};var _u=new UD,dn=new RD,bp=class extends zD{constructor(e){let r=new FD,n=new VD({color:16777215,vertexColors:!0,toneMapped:!1}),o=[],a=[],c={},f=new vp(15711266),h=new vp(15711266),d=new vp(2857471);m("n1","n2",f),m("n2","n4",f),m("n4","n3",f),m("n3","n1",f),m("f1","f2",f),m("f2","f4",f),m("f4","f3",f),m("f3","f1",f),m("n1","f1",f),m("n2","f2",f),m("n3","f3",f),m("n4","f4",f),m("p","n1",h),m("p","n2",h),m("p","n3",h),m("p","n4",h),m("u1","u2",d),m("u2","u3",d),m("u3","u1",d);function m(S,w,B){x(S,B),x(w,B)}function x(S,w){o.push(0,0,0),a.push(w.r,w.g,w.b),c[S]===void 0&&(c[S]=[]),c[S].push(o.length/3-1)}r.setAttribute("position",new Cv(o,3)),r.setAttribute("color",new Cv(a,3));super(r,n);this.type="CameraHelper",this.camera=e,this.camera.updateProjectionMatrix&&this.camera.updateProjectionMatrix(),this.matrix=e.matrixWorld,this.matrixAutoUpdate=!1,this.pointMap=c,this.update()}update(){let e=this.geometry,r=this.pointMap,n=!0;dn.projectionMatrixInverse.elements=[.5112609807824982,-0,-0,-0,-0,.41421356237309503,-0,-0,-0,-0,-0,-.099999,-0,-0,-1.0000000000000002,.100001];let o=1,a=1,c=n?.8:1e-4;On("n1",r,e,dn,-o,-a,c),On("n2",r,e,dn,o,-a,c),On("n3",r,e,dn,-o,a,c),On("n4",r,e,dn,o,a,c);let f=c;On("f1",r,e,dn,-o,-a,f),On("f2",r,e,dn,o,-a,f),On("f3",r,e,dn,-o,a,f),On("f4",r,e,dn,o,a,f);let h=f,d=.5;On("u1",r,e,dn,o*.7*d,a*1.1,h),On("u2",r,e,dn,-o*.7*d,a*1.1,h),On("u3",r,e,dn,0,a*(1.1+.9*d),h),e.getAttribute("position").needsUpdate=!0}dispose(){this.geometry.dispose(),this.material.dispose()}};function On(i,t,e,r,n,o,a){_u.set(n,o,a).unproject(r);let c=t[i];if(c!==void 0){let f=e.getAttribute("position");for(let h=0,d=c.length;h<d;h++)f.setXYZ(c[h],_u.x,_u.y,_u.z)}}var Iu=class extends qn(bp){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,r){$n(this.object,this.geometry,e,r,!0)}};import{DirectionalLightHelper as jD}from"three";var Rs=class extends qn(jD){constructor(e,r=15,n=10066329){super(e,r,n);this.object=e;this.name=`DirectionalLightHelper: ${e.uuid}`}raycast(e,r){$n(this.object,Rs.geometryHelper,e,r)}};import{AxesHelper as kD}from"three";var zs=class extends qn(kD){constructor(e,r=15){super(r);this.object=e;this.object.updateMatrixWorld(),this.name=`EmptyObjectHelper: ${e.uuid}`,this.matrix=e.matrixWorld,this.matrixAutoUpdate=!1}raycast(e,r){$n(this.object,zs.geometryHelper,e,r)}update(){}};import{PointLightHelper as HD}from"three";var Fs=class extends qn(HD){constructor(e,r=15,n=6710886){super(e,r,n);this.object=e;this.name=`PointLightHelper: ${e.uuid}`}raycast(e,r){$n(this.object,Fs.geometryHelper,e,r)}};import{SpotLightHelper as WD,Vector3 as qD}from"three";var Ou=class extends qn(WD){constructor(e,r=6710886){super(e,r);this.object=e;this.name=`SpotLightHelper: ${e.uuid}`}raycast(e,r){$n(this.object,Ou.geometryHelper,e,r)}update(){if(this.object!==void 0){let e=Ou._vector,r=this.object.distance?this.object.distance:1e3,n=r*Math.tan(this.object.angle);this.cone.scale.set(n,n,r),e.setFromMatrixPosition(this.object.target.matrixWorld),this.cone.lookAt(e);let o=this.color!==void 0?this.color:this.light.color;if(this.cone.material instanceof Array)for(let a=0,c=this.cone.material.length;a<c;a++)this.cone.material[a].color.set(o);else this.cone.material.color.set(o)}}},tl=Ou;tl._vector=new qD;var Jn=(i,t)=>class extends i{constructor(){super(...arguments);this.objectHelper=new t(this);this.enableHelper=!1}set visibility(n){this.visible=n,this.setHelperVisibility(n),this.setHelperChildrenVisibility(n)}get visibility(){return this.visible}get geometryHelper(){return t.geometryHelper}setHelperVisibility(n){this.objectHelper.visible=n}setHelperChildrenVisibility(n){for(let o of this.children)hn(o)&&o.traverseEntity(a=>{fi(a)&&a.visible&&(a.objectHelper.visible=n)})}raycast(n,o){this.objectHelper.raycast(n,o)}copy(n,o=!0){return super.copy(n,o),n.enableHelper!==void 0&&(this.enableHelper=n.enableHelper),n.objectHelper!==void 0&&(this.objectHelper.visible=n.objectHelper.visible),this}toJSON(n){let o=super.toJSON(n),a=o.object;return a.enableHelper=this.enableHelper,o}fromJSON(n){return super.fromJSON(n),n.enableHelper!==void 0&&(this.enableHelper=!0),this}fromLightState(n,o){if(this.objectType==="LightDirectional"||this.objectType==="LightPoint"||this.objectType==="LightSpot"){let a=this;n.color!==void 0&&(a.color=Ft(n.color,o)),n.intensity!==void 0&&(a.intensity=n.intensity),n.depth!==void 0&&(a.shadow.camera.far=n.depth,a.shadow.needsUpdate=!0),n.shadows!==void 0&&(this.castShadow=n.shadows),n.helper!==void 0&&(this.enableHelper=n.helper,a.gizmos.shadowmap.visible=n.helper)}return this}};var Vs=new Xr,Sp=new Xr,mi=class extends Jn(pn($D),Iu){constructor(e=window.innerWidth,r=window.innerHeight,n=45,o,a=1e5){super();this.objectType="CombinedCamera";this._cameraType="OrthographicCamera";this.targetOffset=uo.DefaultTargetOffset;this.isUpVectorFlipped=!1;this.angleOffsetFromUp=0;this.width=e,this.height=r,this.orthoCamera=new JD(e*-.5,e*.5,r*.5,r*-.5,o!=null?o:-5e4,a),this.perspCamera=new KD(n,e/r,o!=null?o: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(!0)}static createFromState(e,r){let n=new mi().fromState(r);return n.enableHelper=!0,n.objectHelper.update(),n.uuid=e,n}get isPerspectiveCamera(){return this.cameraType==="PerspectiveCamera"}get isOrthographicCamera(){return!this.isPerspectiveCamera}get cameraType(){return this._cameraType}setNear(e,r){e==="PerspectiveCamera"?this.perspCamera.near=r:this.orthoCamera.near=r}setZoom(e,r){r>=0&&(e==="PerspectiveCamera"?this.perspCamera.zoom=r:this.orthoCamera.zoom=r)}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(Vs),this.targetOffset=Vs.distanceTo(e)}getTarget(e=new Xr){return this.getWorldDirection(Sp),this.getWorldPosition(Vs),Sp.multiplyScalar(this.targetOffset),e.copy(Vs).add(Sp),e}getDistanceToTarget(){let e=this.getTarget();return this.getWorldPosition(Vs),Vs.distanceTo(e)}updateUp(){let e=this.getWorldQuaternion(new YD),r=new Xr(0,0,1).applyQuaternion(e),n=new Xr().copy(Lv.DefaultUp);this.isUpVectorFlipped&&n.negate(),n.applyQuaternion(e);let o=new Xr().copy(Lv.DefaultUp).projectOnPlane(r),a=new Xr().crossVectors(o,n).dot(r)>=0?1:-1;this.angleOffsetFromUp=o.angleTo(n)*a}getViewFrontToObject(e){let r=e.getWorldPosition(new Xr),o=e.getWorldDirection(new Xr).multiplyScalar(this.targetOffset);return{position:r.clone().add(o),target:r}}getViewToObject(e){let r=e.getWorldPosition(new Xr),o=this.getWorldDirection(new Xr).multiplyScalar(this.targetOffset);return{position:r.clone().sub(o),target:r}}setViewplaneSize(e,r){this.left=-e*.5,this.right=e*.5,this.top=r*.5,this.bottom=-r*.5,this.aspect=e/r,this.updateProjectionMatrix()}toOrthographic(e){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.enableHelper===!0||e===!0)&&this.objectHelper.update()}toPerspective(e){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.enableHelper===!0||e===!0)&&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,r,n,o,a,c){this._cameraType==="PerspectiveCamera"?this.perspCamera.setViewOffset(e,r,n,o,a,c):this.orthoCamera.setViewOffset(e,r,n,o,a,c)}clearViewOffset(){this._cameraType==="PerspectiveCamera"?(this.perspCamera.clearViewOffset(),this.toPerspective()):(this.orthoCamera.clearViewOffset(),this.toOrthographic())}updateProjectionMatrix(e){this._cameraType==="PerspectiveCamera"?this.toPerspective(e):this._cameraType==="OrthographicCamera"&&this.toOrthographic(e)}updateMatrixWorld(e){super.updateMatrixWorld(e),this.matrixWorldInverse.copy(this.matrixWorld).invert()}updateWorldMatrix(e,r){super.updateWorldMatrix(e,r),this.matrixWorldInverse.copy(this.matrixWorld).invert()}copy(e,r){return super.copy(e,r),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}fromCameraRender(e){let r={near:this.orthoCamera.near,far:this.orthoCamera.far},n={near:this.perspCamera.near,far:this.perspCamera.far};return this.copy(e),this.name="",this.enableHelper=!0,this.objectHelper.visible=!0,this.orthoCamera.near=r.near,this.orthoCamera.far=r.far,this.perspCamera.near=n.near,this.perspCamera.far=n.far,this.updateProjectionMatrix(),this}toJSON(e){let r=super.toJSON(e),n=r.object;return n.objectType="CombinedCamera",n.cameraType=this.cameraType,n.targetOffset=this.targetOffset,n.isUpVectorFlipped=this.isUpVectorFlipped,n.angleOffsetFromUp=this.angleOffsetFromUp,n.left=this.left,n.right=this.right,n.top=this.top,n.bottom=this.bottom,this.view!==null&&(n.view=Object.assign({},this.view)),n.zoomOrtho=this.orthoCamera.zoom,n.nearOrtho=this.orthoCamera.near,n.far=this.far,n.aspect=this.aspect,n.fov=this.fov,n.focus=this.focus,n.filmGauge=this.filmGauge,n.filmOffset=this.filmOffset,n.zoomPersp=this.perspCamera.zoom,n.nearPersp=this.perspCamera.near,r}fromJSON(e){var r;if(super.fromJSON(e),this.cameraType=e.cameraType,e.targetOffset!==void 0&&(this.targetOffset=e.targetOffset),e.orbitControlsTarget!==void 0){let n=this.getWorldPosition(new Xr),o=new Xr().fromArray(e.orbitControlsTarget);this.targetOffset=o.distanceTo(n)}else e.targetOffset!==void 0&&(this.targetOffset=e.targetOffset);return this.isUpVectorFlipped=!1,this.angleOffsetFromUp=(r=e.angleOffsetFromUp)!=null?r:0,e.left!==void 0&&(this.left=e.left),e.right!==void 0&&(this.right=e.right),e.top!==void 0&&(this.top=e.top),e.bottom!==void 0&&(this.bottom=e.bottom),e.view!==void 0&&(this.view=Object.assign({},e.view)),e.zoomOrtho!==void 0&&(this.orthoCamera.zoom=e.zoomOrtho),e.nearOrtho!==void 0&&(this.orthoCamera.near=e.nearOrtho),e.far!==void 0&&(this.far=e.far),e.aspect!==void 0&&(this.aspect=e.aspect),e.fov!==void 0&&(this.fov=e.fov),e.focus!==void 0&&(this.focus=e.focus),e.filmGauge!==void 0&&(this.filmGauge=e.filmGauge),e.filmOffset!==void 0&&(this.filmOffset=e.filmOffset),e.zoomPersp!==void 0&&(this.perspCamera.zoom=e.zoomPersp),e.nearPersp!==void 0&&(this.perspCamera.near=e.nearPersp),this.updateProjectionMatrix(),this}toCameraState(e=[]){let r={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 ss(r,e)}fromCameraState(e){let{orthographic:r,perspective:n}=e;return e.type!==void 0&&(this.cameraType=e.type),e.far!==void 0&&(this.far=e.far),r!==void 0&&(r.near!==void 0&&(this.orthoCamera.near=r.near),r.zoom!==void 0&&(this.orthoCamera.zoom=r.zoom)),n!==void 0&&(n.near!==void 0&&(this.perspCamera.near=n.near),n.fov!==void 0&&(this.perspCamera.fov=n.fov),n.zoom!==void 0&&(this.perspCamera.zoom=n.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 ue(j(j({},super.toState(e)),this.toCameraState(e)),{type:this.cameraType})}fromState(e){return super.fromState(e),this.fromCameraState(e),this}};import{Group as XD}from"three";var gi=class extends Jn(pn(XD),zs){constructor(){super(...arguments);this.objectType="EmptyObject"}static createFromState(e,r){let n=new gi().fromState(r);return n.uuid=e,n.enableHelper=!0,n.objectHelper.update(),n}toJSON(e){let r=super.toJSON(e);return r.object.objectType="EmptyObject",r}};import{DirectionalLight as ZD,CameraHelper as Mu}from"three";var Us=class extends Jn(pn(ZD),Rs){constructor(...e){super(...e);this.objectType="LightDirectional";this._gizmos={};this.castShadow=!0,this.shadow.mapSize.width=1024,this.shadow.mapSize.height=1024;let n=this.shadow.camera;n.top=1250,n.bottom=-1250,n.right=1250,n.left=-1250,n.near=1,n.far=2500;let o=new Mu(this.shadow.camera);o.visible=!1,this._gizmos.shadowmap=o,this.update()}static createFromState(e,r,n){let o=new Us().fromState(r,n);return o.uuid=e,o}get gizmos(){return this._gizmos}showGizmos(){for(let e in this._gizmos){let r=this._gizmos[e];r instanceof Mu&&(r.visible=!0)}}hideGizmos(){for(let e in this._gizmos){let r=this._gizmos[e];r instanceof Mu&&(r.visible=!1)}}update(){this.shadow.camera.updateProjectionMatrix();for(let e in this._gizmos){let r=this._gizmos[e];r instanceof Mu&&r.update()}}updateMatrixWorld(e){super.updateMatrixWorld(e),this.enableHelper===!0&&this.objectHelper.visible===!0&&this.objectHelper.update()}copy(e,r=!0){return super.copy(e,r),this.color.copy(e.color),this.intensity=e.intensity,this.target=e.target.clone(),this.shadow=e.shadow.clone(),this}toJSON(e){let r=super.toJSON(e),n=r.object;return n.objectType="LightDirectional",n.color=this.color.getHex(),n.intensity=this.intensity,n.shadow=this.shadow.toJSON(),r}fromJSON(e){var o;super.fromJSON(e),this.color.set(e.color),this.intensity=e.intensity,this.shadow.normalBias=(o=e.shadow.normalBias)!=null?o:0,this.shadow.radius=e.shadow.radius,this.shadow.mapSize.fromArray(e.shadow.mapSize);let r=this.shadow.camera,n=e.shadow.camera;return r.near=n.near,r.far=n.far,r.zoom=n.zoom,r.left=n.left,r.right=n.right,r.top=n.top,r.bottom=n.bottom,n.view!==void 0&&(r.view=Object.assign({},n.view)),this}fromDirectionalLightState(e,r){let n=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,r),e.size!==void 0&&$0(this,e.size),n&&this.update(),this}fromState(e,r){return super.fromState(e),this.fromDirectionalLightState(e,r),this}};import{PointLight as QD,Vector3 as Pu,Box3 as e3,Box3Helper as Au,Color as t3}from"three";var js=class extends Jn(pn(QD),Fs){constructor(...e){super(...e);this.objectType="LightPoint";this._gizmos={};this.castShadow=!0,this.shadow.mapSize.width=1024,this.shadow.mapSize.height=1024;let n=this.shadow.camera;n.fov=90,n.aspect=1,n.near=100,n.far=2500;let o=new Pu(-n.far+this.position.x,-n.far+this.position.y,-n.far+this.position.z),a=new Pu(n.far+this.position.x,n.far+this.position.y,n.far+this.position.z),c=new e3(o,a),f=new Au(c,new t3(16755200));f.visible=!1,this._gizmos.shadowmap=f,this.update()}static createFromState(e,r,n){let o=new js().fromState(r,n);return o.uuid=e,o}get gizmos(){return this._gizmos}showGizmos(){for(let e in this._gizmos){let r=this._gizmos[e];r instanceof Au&&(r.visible=!0)}}hideGizmos(){for(let e in this._gizmos){let r=this._gizmos[e];r instanceof Au&&(r.visible=!1)}}update(){if(this.shadow&&(this.shadow.camera.updateProjectionMatrix(),this._gizmos))for(let e in this._gizmos){let r=this._gizmos[e];if(r instanceof Au){let n=this.shadow.camera,o=new Pu(-n.far+this.position.x,-n.far+this.position.y,-n.far+this.position.z),a=new Pu(n.far+this.position.x,n.far+this.position.y,n.far+this.position.z);r.box.set(o,a),r.updateMatrixWorld(!0)}}}updateMatrixWorld(e){super.updateMatrixWorld(e),this.enableHelper===!0&&this.objectHelper.visible===!0&&this.objectHelper.update()}copy(e,r=!0){return super.copy(e,r),this.color.copy(e.color),this.intensity=e.intensity,this.distance=e.distance,this.decay=e.decay,this.shadow=e.shadow.clone(),this}toJSON(e){let r=super.toJSON(e),n=r.object;return n.objectType="LightPoint",n.color=this.color.getHex(),n.intensity=this.intensity,n.distance=this.distance,n.decay=this.decay,n.shadow=this.shadow.toJSON(),r}fromJSON(e){var o,a;super.fromJSON(e),this.color.set(e.color),this.intensity=e.intensity,this.distance=e.distance,this.decay=e.decay,this.shadow.normalBias=(o=e.shadow.normalBias)!=null?o:0,this.shadow.radius=e.shadow.radius,this.shadow.mapSize.fromArray((a=e.shadow.mapSize)!=null?a:[512,512]),this.shadow.map&&(this.shadow.map.dispose(),this.shadow.map=null);let r=this.shadow.camera,n=e.shadow.camera;return r.near=n.near,r.far=n.far,r.zoom=n.zoom,r.fov=n.fov,r.focus=n.focus,r.aspect=n.aspect,r.filmGauge=n.filmGauge,r.filmOffset=n.filmOffset,n.view!==void 0&&(r.view=Object.assign({},n.view)),this}fromPointLightState(e,r){return super.fromLightState(e,r),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,r){return super.fromState(e),this.fromPointLightState(e,r),this}};import{SpotLight as r3,CameraHelper as Du,MathUtils as n3,Vector3 as Iv,Quaternion as i3}from"three";var Tv=new Iv,Nv=new Iv,_v=new i3,ks=class extends Jn(pn(r3),tl){constructor(...e){super(...e);this.objectType="LightSpot";this._gizmos={};this.castShadow=!0,this.shadow.mapSize.width=1024,this.shadow.mapSize.height=1024;let n=this.shadow.camera;n.fov=n3.RAD2DEG*2*this.angle,n.aspect=1,n.near=100,n.far=2500;let o=new Du(this.shadow.camera);o.visible=!1,this._gizmos.shadowmap=o,this.update()}static createFromState(e,r,n){let o=new ks().fromState(r,n);return o.uuid=e,o}get gizmos(){return this._gizmos}showGizmos(){for(let e in this._gizmos){let r=this._gizmos[e];r instanceof Du&&(r.visible=!0)}}hideGizmos(){for(let e in this._gizmos){let r=this._gizmos[e];r instanceof Du&&(r.visible=!1)}}update(){this.shadow.camera.updateProjectionMatrix();for(let e in this._gizmos){let r=this._gizmos[e];r instanceof Du&&r.update()}}updateMatrixWorld(e){super.updateMatrixWorld(e),Nv.setFromMatrixPosition(this.matrixWorld),_v.setFromRotationMatrix(this.matrixWorld),Tv.copy(this.up).applyQuaternion(_v).negate().multiplyScalar(this.distance),this.target.position.copy(Nv).add(Tv),this.target.updateMatrixWorld(),this.enableHelper===!0&&this.objectHelper.visible===!0&&this.objectHelper.update()}copy(e,r=!0){return super.copy(e,r),this.color.copy(e.color),this.intensity=e.intensity,this.distance=e.distance,this.angle=e.angle,this.penumbra=e.penumbra,this.decay=e.decay,this.target=e.target.clone(),this.shadow=e.shadow.clone(),this}toJSON(e){let r=super.toJSON(e),n=r.object;return n.objectType="LightSpot",n.color=this.color.getHex(),n.intensity=this.intensity,n.distance=this.distance,n.angle=this.angle,n.decay=this.decay,n.penumbra=this.penumbra,n.shadow=this.shadow.toJSON(),r}fromJSON(e){var o;super.fromJSON(e),this.color.set(e.color),this.intensity=e.intensity,this.distance=e.distance,this.angle=e.angle,this.decay=e.decay,this.penumbra=e.penumbra,this.shadow.normalBias=(o=e.shadow.normalBias)!=null?o:0,this.shadow.radius=e.shadow.radius,this.shadow.mapSize.fromArray(e.shadow.mapSize);let r=this.shadow.camera,n=e.shadow.camera;return r.near=n.near,r.far=n.far,r.zoom=n.zoom,r.fov=n.fov,r.focus=n.focus,r.aspect=n.aspect,r.filmGauge=n.filmGauge,r.filmOffset=n.filmOffset,n.view!==void 0&&(r.view=Object.assign({},n.view)),this}fromSpotLightState(e,r){return super.fromLightState(e,r),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),this}fromState(e,r){return super.fromState(e),this.fromSpotLightState(e,r),this}};var Hs=class extends rr{constructor(e,r=new Yr){super(e,r);this.objectType="Mesh3D";this.castShadow=!0,this.receiveShadow=!0}toJSON(e){let r=super.toJSON(e);return r.object.objectType="Mesh3D",r}};var Ws=class extends Hs{constructor(e,r=new Yr){super(e,r);this.objectType="NonParametric"}toJSON(e){let r=super.toJSON(e);return r.object.objectType="NonParametric",r}};import{DoubleSide as o3,Mesh as s3,MeshBasicMaterial as a3,ShapeBufferGeometry as l3,Vector2 as c3,Vector3 as u3}from"three";import{FontLoader as f3}from"three/examples/jsm/loaders/FontLoader.js";var Vt=class extends s3{constructor({char:e,originalChar:r,fontFamily:n,letterSpacing:o,fontSize:a,LOD:c=16},f=new a3({color:0,opacity:1,visible:!0,transparent:!0,side:o3})){let h=Vt.loadChar(e,n,c);super(h.geometry,f);this.char=e,this.originalChar=r!=null?r:e,this.fontFamily=n,this.letterSpacing=o,this.fontSize=a,this.LOD=c,this.resolution=h.resolution,this.glyphsHa=h.glyphsHa,this.localPosition=new c3,this.charSize=0,this.geometry.userData={type:"CharacterGeometry",parameters:{char:this.char,fontFamily:this.fontFamily,letterSpacing:this.letterSpacing,fontSize:this.fontSize,lod:this.LOD,resolution:this.resolution,charSize:this.charSize,localPosition:this.localPosition}},this.updateFontSize(this.fontSize)}static get FONTS_PATH(){return Vt._fontPath}static set FONTS_PATH(e){Vt._fontPath=e}updatePosition(e,r){this.localPosition.copy(e);let n=new u3(this.localPosition.x,-this.localPosition.y,0);this.position.copy(n).add(r)}updateFontSize(e){let r=e/this.resolution;this.fontSize=e,this.scale.set(this.fontSize,this.fontSize,1),this.charSize=this.glyphsHa*r*this.letterSpacing}updateFontFamily(e){if(this.fontFamily===e)return;this.fontFamily=e;let r=Vt.loadChar(this.char,e,this.LOD);this.geometry=r.geometry,this.resolution=r.resolution,this.glyphsHa=r.glyphsHa,this.geometry.userData={type:"CharacterGeometry",parameters:{char:this.char,fontFamily:this.fontFamily,letterSpacing:this.letterSpacing,fontSize:this.fontSize,lod:this.LOD,resolution:this.resolution,charSize:this.charSize,localPosition:this.localPosition}},this.updateFontSize(this.fontSize)}updateChar(e){if(this.char===e)return;this.char=e;let r=Vt.loadChar(e,this.fontFamily,this.LOD);this.geometry=r.geometry,this.resolution=r.resolution,this.glyphsHa=r.glyphsHa,this.geometry.userData={type:"CharacterGeometry",parameters:{char:this.char,fontFamily:this.fontFamily,letterSpacing:this.letterSpacing,fontSize:this.fontSize,lod:this.LOD,resolution:this.resolution,charSize:this.charSize,localPosition:this.localPosition}},this.updateFontSize(this.fontSize)}updateLetterSpacing(e){this.letterSpacing!==e&&(this.letterSpacing=e,this.updateFontSize(this.fontSize))}updateLOD(e){if(this.LOD===e)return;this.LOD=e;let r=Vt.loadChar(this.char,this.fontFamily,this.LOD);this.geometry=r.geometry,this.resolution=r.resolution,this.glyphsHa=r.glyphsHa,this.geometry.userData={type:"CharacterGeometry",parameters:{char:this.char,fontFamily:this.fontFamily,letterSpacing:this.letterSpacing,fontSize:this.fontSize,lod:this.LOD,resolution:this.resolution,charSize:this.charSize,localPosition:this.localPosition}},this.updateFontSize(this.fontSize)}clone(){let e={char:this.char,originalChar:this.originalChar,fontFamily:this.fontFamily,letterSpacing:this.letterSpacing,fontSize:this.fontSize,LOD:this.LOD};return new Vt(e).copy(this)}static loadFont(e){return new Promise(function(r,n){Vt.fontCache[e]?r(Vt.fontCache[e]):new f3().load(Vt.FONTS_PATH+e+".json",a=>{Vt.fontCache[e]=a,r(a)},void 0,n)})}static loadChar(e,r,n){if(Vt.charCache[e]){if(Vt.charCache[e][n]&&Vt.charCache[e][n].fontFamily===r)return Vt.charCache[e][n]}else Vt.charCache[e]={};let o=Vt.fontCache[r],a=o.generateShapes(e,1);return Vt.charCache[e][n]={geometry:new l3(a,n),fontFamily:r,resolution:o.data.resolution,glyphsHa:o.data.glyphs[e].ha},Vt.charCache[e][n]}},Tr=Vt;Tr.charCache={},Tr.fontCache={},Tr._fontPath="/_assets/_fonts/";import{DoubleSide as Bu,MeshBasicMaterial as Mv,Vector3 as Pv,Object3D as h3}from"three";import{Vector2 as Ov}from"three";var Eu=new Ov,qi=class{constructor(t,e,r){this.message=[];this.endLine=!0;this.yLinePos=t,this.lineHeight=e,this.maxCharSize=r,this.nextChar3DPos=new Ov(0,this.yLinePos+this.maxCharSize*this.lineHeight),this.align=1}addChar3D(t,e,r=this.message.length){this.message.splice(r,0,t),t.fontSize>this.maxCharSize?(this.maxCharSize=t.fontSize,this.nextChar3DPos.y=this.yLinePos+this.maxCharSize*this.lineHeight,this.fullUpdate(e)):(t.updatePosition(this.nextChar3DPos,e),this.nextChar3DPos.x+=t.charSize)}deleteChar3D(t=this.message.length-1){let e=this.message[t];if(e)return this.message.splice(t,1),this.nextChar3DPos.x-=e.charSize,e}isEndLine(t){this.endLine=t}fullUpdate(t,e=0){this.nextChar3DPos.x=0;for(let r=e,n=this.message.length;r<n;r+=1)this.message[r].updatePosition(this.nextChar3DPos,t),this.nextChar3DPos.x+=this.message[r].charSize}checkOverFlow(t){let e,r=this.message.length-1;if(r<=0)return!1;for(;r>=0;){if(this.message[r].char!==" "){e=this.message[r];break}r-=1}return!!(r>=0&&e&&e.localPosition.x+e.charSize>t)}containSpaceOverFlow(t=this.message.length-1){for(let e=t;e>=0;e-=1)if(this.message[e].char===" ")return!0;return!1}containSpace(t=this.message.length-1){if(this.endLine)return!0;for(let e=t;e>=0;e-=1)if(this.message[e].char===" ")return!0;return!1}popWord(t=this.message.length-1){let e=[],r=!0,n;for(n=t;n>=0;n-=1)if(this.message[n].char===" "){r=!1,e.length===0&&(n-=1,e.splice(0,0,this.message[n]));break}else e.splice(0,0,this.message[n]);return r?e=[]:this.message.splice(n+1,e.length),e}getWord(t=0,e=1){let r=[],n=t;for(n=t;;n+=e){if(!this.message[n]||this.message[n].char===" "){r.length===0&&this.message[n]&&(r.push(this.message[n]),this.message.splice(n,1));break}e>0?(r.push(this.message[n]),this.message.splice(n,1),n-=e):(r.splice(0,0,this.message[n]),this.message.splice(n,1))}return r}getWordAtIndex(t){let e=[];for(let r=t;r<this.message.length&&this.message[r].char!==" ";r++)e.push(this.message[r]);for(let r=t-1;r>=0&&this.message[r].char!==" ";r--)e.splice(0,0,this.message[r]);return e}wordSize(t=0,e=-1){let r=0,n=t;for(;n>=0&&n<this.message.length;){if(this.message[n].char===" "){r===0&&(r=this.message[n].charSize);break}r+=this.message[n].charSize,n+=e}return(n<0||n>=this.message.length)&&!this.endLine?this.message[t]?this.message[t].charSize:999999999:r===0?999999999:r}spaceLeft(t){return t-this.nextChar3DPos.x}popChar(t=this.message.length-1){return this.nextChar3DPos.x-=this.message[t].charSize,this.message.splice(t,1)}isEmpty(){return!this.message.length}updateNextCharPosY(){this.nextChar3DPos.y=this.yLinePos+this.maxCharSize*this.lineHeight}updateYLinePos(t){this.yLinePos=t,this.updateNextCharPosY()}updatelineHeight(t){this.lineHeight=t,this.updateNextCharPosY()}updateFontSize(t,e=0,r=this.message.length-1){for(let n=e;n<=r;n+=1)this.message[n].updateFontSize(t);this.maxCharSize=t,this.nextChar3DPos.y=this.yLinePos+this.maxCharSize*this.lineHeight}countSpaces(){let t=0;for(let e=0;e<this.message.length;e++)this.message[e].char===" "&&(t+=1);return t}alignText(t,e,r,n,o){switch(r){case 1:this.leftAlign(t,o);break;case 3:this.centerAlign(this.spaceLeft(e),t,o);break;case 2:this.rightAlign(this.spaceLeft(e),t,o);break;case 4:this.justifyAlign(this.spaceLeft(e),t,o);break}}offsetCharacters(t,e,r){Eu.set(e,r);let n=this.message.length;for(let o=0;o<n;o++)this.message[o].updatePosition(this.message[o].localPosition.add(Eu),t)}leftAlign(t,e){this.align=1,this.offsetCharacters(t,0,e)}centerAlign(t,e,r){this.align=3,this.offsetCharacters(e,t/2,r)}rightAlign(t,e,r){this.align=2,this.offsetCharacters(e,t,r)}justifyAlign(t,e,r){if(this.align=4,this.endLine){this.offsetCharacters(e,0,r);return}let n=this.countSpaces();if(n===0){this.offsetCharacters(e,0,r);return}let o=t/n,a=0;for(let c=0;c<this.message.length;c++)this.message[c].char===" "&&(a+=o),Eu.set(a,r),this.message[c].updatePosition(this.message[c].localPosition.add(Eu),e)}clone(){let t=new qi(this.yLinePos,this.lineHeight,this.maxCharSize);t.nextChar3DPos=this.nextChar3DPos.clone(),t.align=this.align,t.endLine=this.endLine;for(let e=0;e<this.message.length;e++)t.message.push(this.message[e].clone());return t}};var wp=class extends rr{constructor(e,r=new ur({transparent:!0,opacity:1,visible:!1,side:Bu})){super(e,r);this.objectType="TextFrame";this.charContainer=new h3,this.add(this.charContainer),this.material.visible=!1,this._geometryUserData=e.userData,this.userData.textFrame={hexColor:null,opacity:1,visible:!0,text:"",fontSize:16,lineHeight:1.5,letterSpacing:1,fontFamily:"roboto_regular",textTransform:1,horizontalAlignment:1,verticalAlignment:1,LOD:16,maxLineSize:this._geometryUserData.parameters.width,textOrigin:new Pv(this._geometryUserData.parameters.width*-.5,this._geometryUserData.parameters.height*.5,0),textLines:[]},this.createTextLine()}static createFromState(e,r,n){let o=lu.create({parameters:{width:r.width,height:r.height}}),a=new wp(o).fromState(r,n);return a.uuid=e,a}async updateText(e){this.clearText();let r=this.userData.textFrame,n=r.fontFamily;await Tr.loadFont(n),r.text=e;let o=r.textOrigin,a=new Mv({visible:r.visible,transparent:!0,side:Bu}),c=e.split(`
|
|
977
|
+
`),f=0;this.userData.textFrame.textLines=c.map((h,d)=>{let m=new qi(f,r.lineHeight,r.fontSize);return m.message=h.split("").map(x=>{let S={char:x,fontFamily:n,letterSpacing:r.letterSpacing,fontSize:r.fontSize,LOD:16},w=a.clone();w.color=r.hexColor,w.opacity=r.opacity;let B=new Tr(S,w);return m.addChar3D(B,o),this.charContainer.add(B),B}),f+=m.maxCharSize*m.lineHeight,m}),this.textFullUpdate(),this.checkOverFlow()}clearText(){let e=this.userData.textFrame.textLines;for(;this.charContainer.children.length;){let r=this.charContainer.children[0];this.charContainer.remove(r)}for(;e.length;)e.pop()}raycast(e,r){let n=[];if(super.raycast(e,n),n.length>0){r.push(n[0]);return}let o=[];for(let a=0,c=this.charContainer.children.length;a<c;++a)if(this.charContainer.children[a]instanceof Tr&&(e.intersectObject(this.charContainer.children[a],!1,o),o.length>0)){o[0].object=this,r.push(o[0]);return}}updateGeometry(e){var d,m,x,S;let r=this.userData,n=this.geometry.userData,o=n.parameters.width,a=n.parameters.height,c=(m=(d=e.parameters)==null?void 0:d.width)!=null?m:o,f=(S=(x=e.parameters)==null?void 0:x.height)!=null?S:a,h=r.textFrame;super.updateGeometry(e),h.maxLineSize=c,h.textOrigin.set(-.5*c,.5*f,0),f!==a?(this.checkOverFlow(),this.checkCapacity()):c!==o&&(o<c?this.checkCapacity():o>c&&this.checkOverFlow())}checkOverFlow(e=0){let r=this.userData,n=r.textFrame.textOrigin,o=r.textFrame.textLines;for(let a=e;a<o.length;a++){o[a].updateYLinePos(this.getNewLinePosition(a)),o[a].fullUpdate(n);let c=[];for(;o[a].checkOverFlow(r.textFrame.maxLineSize);)o[a].containSpaceOverFlow()?c.unshift(o[a].getWord(o[a].message.length-1,-1)):c.unshift(o[a].popChar());if(c.length>0){o[a+1]===void 0?(o[a].isEndLine(!1),this.createTextLine()):o[a].endLine&&(this.createTextLine(a+1),o[a].isEndLine(!1),o[a+1].isEndLine(!0));let f=0;for(let h=0;h<c.length;h+=1)for(let d=0;d<c[h].length;d+=1)o[a+1].addChar3D(c[h][d],n,f),f+=1;o[a+1].fullUpdate(n)}o[a].fullUpdate(n)}this.textFullUpdate(e)}checkCapacity(e=0){let r=this.userData,n=r.textFrame.textOrigin,o=r.textFrame.maxLineSize,a=r.textFrame.textLines;for(let c=e;c<a.length;c+=1)if(a[c].updateYLinePos(this.getNewLinePosition(c)),a[c].fullUpdate(n),!!a[c-1])for(;!a[c-1].endLine;){let f,h=a[c-1].spaceLeft(o);if(a[c].wordSize(0,1)<=h){a[c].containSpace()?f=a[c].getWord(0,1):f=a[c].popChar(0);for(let d=0;d<f.length;d+=1)f[d]&&a[c-1].addChar3D(f[d],n)}else{a[c].isEmpty()?(a[c].endLine&&a[c-1].isEndLine(!0),a.splice(c,1),c-=1):(a[c].updateYLinePos(this.getNewLinePosition(c)),a[c].fullUpdate(n));break}}this.textFullUpdate(e)}createTextLine(e=this.userData.textFrame.textLines.length){let n=this.userData.textFrame;n.textLines.splice(e,0,new qi(this.getNewLinePosition(e),n.lineHeight,n.fontSize))}textFullUpdate(e=0){let n=this.userData.textFrame,o=n.textLines,a=this.getVerticalAlignmentOffSet();for(let c=e;c<o.length;c++)o[c].updateYLinePos(this.getNewLinePosition(c)),o[c].fullUpdate(n.textOrigin),o[c].alignText(n.textOrigin,n.maxLineSize,n.horizontalAlignment,n.verticalAlignment,a)}getVerticalAlignmentOffSet(){switch(this.userData.textFrame.verticalAlignment){case 1:return 0;case 2:return this.getRemainingVerticalSpace()/2;case 3:return this.getRemainingVerticalSpace();default:return 0}}getRemainingVerticalSpace(){let r=this.userData.textFrame.textLines;return this.geometry.userData.parameters.height-this.getNewLinePosition(r.length)}getNewLinePosition(e){let n=this.userData.textFrame.textLines,o=0;for(let a=0;a<e;a+=1)o+=n[a].maxCharSize*n[a].lineHeight;return o}updateColor(e){var o;let r=this.userData;r.textFrame.hexColor=e;let n=r.textFrame.textLines;for(let a=0;a<n.length;a++){let c=n[a].message;for(let f=0;f<c.length;f++){let h=c[f].material;(o=h.color)!=null&&o.isColor&&(h.color=e)}}}updateOpacity(e){let r=this.userData;r.textFrame.opacity=e;let n=r.textFrame.textLines;for(let o=0;o<n.length;o++){let a=n[o].message;for(let c=0;c<a.length;c++){let f=a[c].material;f.opacity=e}}}updateVisible(e){let r=this.userData;r.textFrame.visible=e;let n=r.textFrame.textLines;for(let o=0;o<n.length;o++){let a=n[o].message;for(let c=0;c<a.length;c++){let f=a[c].material;f.visible=e}}}async updateFontFamily(e){await Tr.loadFont(e);let n=this.userData.textFrame,o=n.textLines;n.fontFamily=e;for(let a=0;a<o.length;a++){let c=o[a].message;for(let f=0;f<c.length;f++)c[f].updateFontFamily(e)}this.textFullUpdate(),this.checkOverFlow(),this.checkCapacity()}updateFontSize(e){let n=this.userData.textFrame,o=n.textLines,a=n.fontSize;n.fontSize=e;for(let c=0;c<o.length;c++)o[c].updateFontSize(e);this.textFullUpdate(),e>a?this.checkOverFlow():e<a&&this.checkCapacity()}async updateTextTransform(e){let n=this.userData.textFrame;await Tr.loadFont(n.fontFamily);let o=n.textLines;switch(n.textTransform=e,e){case 2:for(let a=0;a<o.length;a++){let c=o[a].message;for(let f=0;f<c.length;f++)o[a].message[f].updateChar(c[f].char.toUpperCase())}break;case 3:for(let a=0;a<o.length;a++){let c=o[a].message;for(let f=0;f<c.length;f++)o[a].message[f].updateChar(c[f].char.toLowerCase())}break;default:for(let a=0;a<o.length;a++){let c=o[a].message;for(let f=0;f<c.length;f++)o[a].message[f].updateChar(c[f].originalChar)}}this.textFullUpdate(),this.checkOverFlow(),this.checkCapacity()}updateLetterSpacing(e){let r=this.userData,n=r.textFrame.textLines;r.textFrame.letterSpacing=e;for(let o=0;o<n.length;o++){let a=n[o].message;for(let c=0;c<a.length;c++)a[c].updateLetterSpacing(e)}this.textFullUpdate(),this.checkOverFlow(),this.checkCapacity()}updateLOD(e){let r=this.userData;r.textFrame.LOD=e;let n=r.textFrame.textLines;for(let o=0;o<n.length;o++);this.textFullUpdate(),this.checkOverFlow(),this.checkCapacity()}updateLineHeight(e){let r=this.userData,n=r.textFrame.textLines;r.textFrame.lineHeight=e;for(let o=0;o<n.length;o++)n[o].updatelineHeight(e);this.textFullUpdate()}updateVerticalAlignment(e){let r=this.userData;r.textFrame.verticalAlignment=e,this.textFullUpdate()}updateHorizontalAlignment(e){let r=this.userData;r.textFrame.horizontalAlignment=e,this.textFullUpdate()}toJSON(e){let r=super.toJSON(e),n=r.object;n.objectType="TextFrame";let a=this.userData.textFrame.textLines.map(c=>{let f=c.message.map(h=>({char:h.char,originalChar:h.originalChar,fontFamily:h.fontFamily,letterSpacing:h.letterSpacing,fontSize:h.fontSize,LOD:h.LOD}));return{align:c.align,endLine:c.endLine,lineHeight:c.lineHeight,maxCharSize:c.maxCharSize,yLinePos:c.yLinePos,message:f}});return n.userData.textFrame.textLinesData=a,r}async fromJSONasync(e){if(super.fromJSON(e),e.userData!==void 0){let r=e.userData.textFrame;await Tr.loadFont(r.fontFamily),r.textOrigin=new Pv(r.textOrigin.x,r.textOrigin.y,r.textOrigin.z);let n=new Mv({color:r.hexColor,opacity:r.opacity,visible:r.visible,transparent:!0,side:Bu});r.textLinesData&&(r.textLines=r.textLinesData.map((o,a)=>{let c=new qi(Number(o.yLinePos),Number(o.lineHeight),Number(o.maxCharSize)),f=o.message.map((h,d)=>{if(h.char===void 0){let S=r.textLines[a].message[d];if("geometries"in S){let w=S.geometries[0].userData.parameters;Object.assign(h,{LOD:w.lod,char:w.char,fontFamily:w.fontFamily,fontSize:w.fontSize,letterSpacing:w.letterSpacing,originalChar:w.char})}}let m={char:h.char,fontFamily:h.fontFamily,letterSpacing:Number(h.letterSpacing),fontSize:Number(h.fontSize),LOD:h.LOD},x=new Tr(m,n.clone());return c.addChar3D(x,r.textOrigin),this.charContainer.add(x),x});return c.message=f,c}),this.userData.textFrame=r),this.textFullUpdate()}return this}fromTextFrameData(e,r){if(e.color!==void 0){let n=Ft(e.color,r);this.updateColor(n),this.updateOpacity(n.a)}e.alpha!==void 0&&this.updateOpacity(e.alpha),e.font!==void 0&&this.updateFontFamily(e.font),e.horizontalAlign!==void 0&&this.updateHorizontalAlignment(e.horizontalAlign),e.verticalAlign!==void 0&&this.updateVerticalAlignment(e.verticalAlign),e.textTransform!==void 0&&this.updateTextTransform(e.textTransform),e.fontSize!==void 0&&this.updateFontSize(e.fontSize),e.lineHeight!==void 0&&this.updateLineHeight(e.lineHeight),e.letterSpacing!==void 0&&this.updateLetterSpacing(e.letterSpacing),e.text!==void 0&&e.text!==""&&this.updateText(e.text),(e.width!==void 0||e.height!==void 0)&&this.updateGeometry({parameters:{width:e.width,height:e.height}})}fromState(e,r){return super.fromState(e),this.fromTextFrameData(e,r),this}convertToVector(){let{fontFamily:e,hexColor:r}=this.userData.textFrame,n=new gi;n.name="Text Shape";let o=Tr.fontCache[e];for(let a of this.charContainer.children)a instanceof Tr&&o.generateShapes(a.char,1).forEach(c=>{let f=new nt().fromShape(c);f.applyScale(a.scale.x,a.scale.y);let h=ar.create({shape:f}),d=new ur({side:Bu});d.color=r;let m=new Wi(h,d);m.name=a.char,m.position.copy(a.position),m.rotation.copy(a.rotation),n.attach(m)});return n}},wo=wp;wo.VerticalAlign=Sh,wo.HorizontalAlign=bh,wo.TextTransform=wh;import{HemisphereLight as _3,Scene as I3,Vector3 as O3,Color as Wv,Fog as M3,Box3 as P3}from"three";import{BufferGeometryLoader as p3}from"three";function Av(i,t){return d3(i)}function d3(i){let t={parameters:i,type:i.type};if(i.type==="VectorGeometry"){let r=nt.createFromState(i.shape,i.width,i.height);t.shape=r}else i.type==="NonParametricGeometry"&&(i.data.groups&&i.data.groups.forEach(r=>{var n;return r.materialIndex=Math.max((n=r.materialIndex)!=null?n:0,0)}),t.geometry=new p3().parse(i));let e;try{e=Da(t)}catch(r){console.error(r)}if(!e){let r=nt.createFromState(ms.defaultData(),100,100);t.shape=r,e=Da(t)}return e}import{Box3 as m3,Matrix4 as Co,Sphere as Bv,Vector3 as g3}from"three";var Rv=Qm(Ev());var Cp;cu.then(i=>{Cp=i});var zv=new Co,y3=new Co,x3=new Co,Mn=new m3,$i=new g3,v3=new Co,b3=new Co,qs=class extends rr{constructor(e,r,n,o=new Yr){super(n!=null?n:r,o);this.subdivPointer=e;this.originalGeometry=r;this.subdividedGeometry=n;this.objectType="SubdivObject";this.hiddenMatrixOld=new Co;this.smoothShading=!0;this.matrixWorldRigid=new Co;this.castShadow=!0,this.receiveShadow=!0,this.forceComputeSize=!1}static createFromState(e,r,n){let{subdivPointer:o,originalGeometry:a,subdividedGeometry:c}=Jr.build(r.geometry,void 0,void 0,!r.flatShading),f=el(r.material,n),h=new qs(o,a,c||void 0,f);return h.calcBoundingBox(),h.freeSubdivPointer(),h.uuid=e,h.fromState(r),h}shallowClone(e){return new Ws(this.geometry,this.material).shallowCopy(this,e)}toJSON(e){let r=super.toJSON(e);return r.object.objectType="SubdivObject",r}buildFromStore(e){var a,c,f;let{originalGeometry:r,subdividedGeometry:n,subdivPointer:o}=Jr.build(e,this.subdivPointer,void 0,this.smoothShading,this.shearScale);if(this.subdivPointer=o,r!==void 0&&((a=this.originalGeometry)==null||a.dispose(),this.originalGeometry=r),n!==void 0&&((c=this.subdividedGeometry)==null||c.dispose(),this.subdividedGeometry=n!=null?n:void 0),this.geometry=(f=this.subdividedGeometry)!=null?f:this.originalGeometry,this.cloner)for(let h of this.cloner.children)h.geometry=this.geometry;e.width&&(this.geometry.userData.parameters={width:e.width,height:e.height,depth:e.depth})}updateMesh(e=!1){Jr.buildLevel(this.subdivPointer,!0,this.smoothShading,this.originalGeometry,e?this.shearScaleInv:void 0),this.subdividedGeometry&&Jr.buildLevel(this.subdivPointer,!1,this.smoothShading,this.subdividedGeometry,e?this.shearScaleInv:void 0)}updateTopology(){var e;this.originalGeometry.dispose(),this.originalGeometry=Jr.buildLevel(this.subdivPointer,!0,this.smoothShading),this.subdividedGeometry&&(this.subdividedGeometry.dispose(),this.subdividedGeometry=Jr.buildLevel(this.subdivPointer,!1,this.smoothShading)),this.geometry=(e=this.subdividedGeometry)!=null?e:this.originalGeometry}raycast(e,r){var n;this.geometry=this.originalGeometry,rr.prototype.raycast.call(this,e,r),this.geometry=(n=this.subdividedGeometry)!=null?n:this.originalGeometry}updateMatrixWorldSVD(){let e=this.matrixWorld.elements,r=[[e[0],e[4],e[8]],[e[1],e[5],e[9]],[e[2],e[6],e[10]]],{u:n,v:o,q:a}=(0,Rv.SVD)(r),c=zv.set(n[0][0],n[0][1],n[0][2],0,n[1][0],n[1][1],n[1][2],0,n[2][0],n[2][1],n[2][2],0,0,0,0,1),f=y3.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),h=x3.copy(f).transpose();this.shearScale=v3.makeScale(a[0],a[1],a[2]).multiply(h).premultiply(f),this.shearScaleInv=b3.copy(this.shearScale).invert(),this.matrixWorldRigid.multiplyMatrices(c,h),a.every(d=>Math.abs(a[0]-d)<.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 Bv);let r=e.attributes.position,n=e.boundingSphere.center;Mn.setFromBufferAttribute(r),Mn.getCenter(n),e.boundingSphere.radius=n.distanceTo(Mn.max),isNaN(e.boundingSphere.radius)&&console.error('THREE.BufferGeometry.computeBoundingSphere(): Computed radius is NaN. The "position" attribute is likely to have NaN values.',this),Mn.getSize($i);let o={width:$i.x,height:$i.y,depth:$i.z};return this.geometry.userData.parameters=o,o}updateBoundingBox(e){let r=this.originalGeometry;Mn.min.set(e[0],e[2],e[4]),Mn.max.set(e[1],e[3],e[5]),this.shearScaleInv&&(Mn.min.applyMatrix4(this.shearScaleInv),Mn.max.applyMatrix4(this.shearScaleInv)),r.boundingSphere===null&&(r.boundingSphere=new Bv);let n=r.boundingSphere.center;Mn.getCenter(n),r.boundingSphere.radius=n.distanceTo(Mn.max),isNaN(r.boundingSphere.radius)&&console.error('THREE.BufferGeometry.computeBoundingSphere(): Computed radius is NaN. The "position" attribute is likely to have NaN values.',this),Mn.getSize($i);let o={width:$i.x,height:$i.y,depth:$i.z};return this.geometry.userData.parameters=o,o}freeSubdivPointer(){this.subdivPointer&&(Cp.free_bvh(this.subdivPointer),Cp.free_subdivision_surface(this.subdivPointer),this.subdivPointer=0)}updateGeometry(e){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,Gv(this.originalGeometry.attributes,...this.geometry.userData.scale),this.originalGeometry.attributes.position.needsUpdate=!0,this.originalGeometry.attributes.normal.needsUpdate=!0,this.subdividedGeometry&&(Gv(this.subdividedGeometry.attributes,...this.subdividedGeometry.userData.scale),this.subdividedGeometry.attributes.position.needsUpdate=!0,this.subdividedGeometry.attributes.normal.needsUpdate=!0),this.geometry.userData.parameters=j({},e.parameters)}};function Gv(i,t,e,r){let n=i.position.array,o=i.normal.array,a=zv.makeScale(t,e,r).invert().elements,c,f,h;for(var d=0,m=n.length;d<m;d+=3)n[d]*=t,n[d+1]*=e,n[d+2]*=r,c=o[d],f=o[d+1],h=o[d+2],o[d]=a[0]*c+a[4]*f+a[8]*h,o[d+1]=a[1]*c+a[5]*f+a[9]*h,o[d+2]=a[2]*c+a[6]*f+a[10]*h}import{BackSide as S3,DoubleSide as w3,FrontSide as C3}from"three";function Fv(i,t){t.flatShading!==void 0&&(i.flatShading=t.flatShading,i.needsUpdate=!0),t.wireframe!==void 0&&(i.wireframe=t.wireframe),t.side!==void 0&&(t.side===0?i.side=C3:t.side===1?i.side=S3:i.side=w3)}function L3(i,t){if(Array.isArray(i.material))for(let e of i.material)Fv(e,t);else{let e=i.material;Fv(e,t)}i.objectType==="SubdivObject"&&t.flatShading!==void 0&&(i.material.flatShading=!1,i.smoothShading=!t.flatShading,i.updateMesh())}function Vv(i,t,e){let r;if(t.geometry.type==="SubdivGeometry")r=qs.createFromState(i,t,e);else{let n=Av(t.geometry,e),o="materials"in t?yv(t.materials,e):el(t.material,e);qc.is2DParametricMesh(n.userData.type)?r=new Gs(n,o):(n==null?void 0:n.userData.type)==="VectorGeometry"?r=new Wi(n,o):t.geometry.type==="NonParametricGeometry"?r=new Ws(n,o):r=new Hs(n,o),r.uuid=i,r.fromState(t)}return L3(r,t),r}function Uv(i,t,e){return t.type==="Mesh"?Vv(i,t,e):t.type==="TextFrame"?wo.createFromState(i,t,e):t.type==="Empty"?gi.createFromState(i,t):t.type==="PointLight"?js.createFromState(i,t,e):t.type==="SpotLight"?ks.createFromState(i,t,e):t.type==="DirectionalLight"?Us.createFromState(i,t,e):as.is(t.type)?mi.createFromState(i,t):(console.error(t),new gi)}function T3(i,t){t.uniforms[`f${t.id}_transmissionSamplerMap`].value=i.texture,t.uniforms[`f${t.id}_transmissionDepthMap`].value=i.depthTexture}function jv(i,t,e){if(!e.userData.layers)return!1;let r=!1,n=e.userData.layers.getLayersOfType("transmission");return n.length>0?(t.layers.set(3),r=!0,i!==void 0&&n.forEach(o=>T3(i,o))):t.layers.set(0),r}function kv(i,t){let e=!1;return t.traverseEntity(r=>{if(r instanceof rr)if(Array.isArray(r.material))for(let n=0;n<r.material.length;n++)jv(i,r,r.material[n])&&(e=!0);else jv(i,r,r.material)&&(e=!0)}),e}function Hv(i,t){"material"in i&&N3(i.material,t),"geometry"in i&&i.geometry.dispose()}function N3(i,t){eg(i).forEach(e=>{t.isSharedMaterial(e)||e.dispose()})}var qv=new O3,Lp=class extends fu(I3){constructor(e,r){super();this.objectType="Scene";this.alpha=1;this.backupFog=new M3(16777215,.1,2e3);this.fogUseBGColor=!1;this.wireframeState=!1;this.needsTransmissionDirty=!0;this._needsTransmission=!1;this._color=new Wv(1,0,0);this.bgColor=new Wv(1,1,1);this.entityByUuid={};this.ambientLight=new _3(13882323,8553090,.75),this.ambientLight.name="Default Ambient Light",this.personalCamera=this.createPersonalCamera(),this.activeCamera=this.personalCamera,this.sharedAssetManager=r,this.init(e,r)}needsTransmission(e){return this.needsTransmissionDirty&&(this._needsTransmission=kv(e,this),e!==void 0&&(this.needsTransmissionDirty=!1)),this._needsTransmission}find(e){if(e===""||e===void 0)return;let r=this.entityByUuid[e];return r===void 0?this.getObjectByProperty("uuid",e):r}get color(){return this._color}set color(e){this.fogUseBGColor===!0&&this.backupFog.color.copy(e),this._color.copy(e)}get enableFog(){return this.fog!==null}set enableFog(e){this.fog=e===!0?this.backupFog:null}init(e,r){if(this.createChildrenObjects(e.objects,this,r),this.personalCamera.removeFromParent(),this.add(this.personalCamera),this.ambientLight.removeFromParent(),this.add(this.ambientLight),this.setBackgroundColor(Ft(e.backgroundColor,r)),this.updateFog(e.fog,r),this.updateAmbientLight(e.environment.ambientLight,r),this.activeCamera=this.personalCamera,e.publish.playCamera!==null){let n=this.find(e.publish.playCamera);n instanceof mi&&this.switchActiveCamera(n)}}clearScene(e){this.traverseEntity(r=>{Hv(r,e)});for(let r of this.children)hn(r)&&r.removeFromParent()}resetAfterClear(e,r){this.init(e,r)}createPersonalCamera(){let e=mi.createFromState(Lp.PERSONAL_CAMERA_ID,ue(j({},Jc.defaultData),{name:"Personal Camera"}));return e.enableHelper=!1,e.objectHelper.visible=!1,delete e.isEntity,this.registerObjectCreatedInLegacy(e),e}raycast(e){let r=[],n=o=>{for(let a of o.children)hn(a)&&!a.raycastLock&&a.visible&&((ws(a)||fi(a)&&a.enableHelper&&a.objectHelper.parent)&&e.intersectObject(a,!1,r),n(a))};return n(this),r}traverseEntity(e){for(let r of this.children)hn(r)&&r.traverseEntity(e)}updateFog(e,r){this.enableFog=e.enabled,this.fogUseBGColor=e.useBackgroundColor,e.useBackgroundColor?this.backupFog.color.set(this.bgColor):this.backupFog.color=Ft(e.color,r),this.backupFog.near=e.near,this.backupFog.far=e.far}toJSON(e){return{}}fromJSON(e){return this}dispose(){this.clearScene(this.sharedAssetManager),this.sharedAssetManager.dispose()}updateAmbientLight(e,r){q0(this.ambientLight,e,r),e.groundColor!==void 0&&(this.ambientLight.groundColor=Ft(e.groundColor,r)),e.enabled!==void 0&&(this.ambientLight.visible=e.enabled)}switchActiveCamera(e){this.activeCamera!==this.personalCamera&&(this.activeCamera.enableHelper=!0),this.activeCamera=e,e.enableHelper=!1}setBackgroundColor(e){this.bgColor=e,this.alpha=e.a}createChildrenObjects(e,r,n){for(let o of e)this.createChildObject(o.id,o.data,o.children,r,n)}registerObjectCreatedInLegacy(e){this.entityByUuid[e.uuid]=e}unregisterObject(e){delete this.entityByUuid[e.uuid];for(let r of e.children)this.unregisterObject(r)}createChildObject(e,r,n,o,a){let c=Uv(e,r,a);return c&&(this.entityByUuid[e]=c,o.add(c),this.createChildrenObjects(n,c,a)),c}getCenter(e){let r=[];for(let o=0,a=e.length;o<a;++o){let{id:c,recursive:f}=e[o],h=this.find(c),d=f?h.recursiveBBox:h.singleBBox;r.push(...d.vertices)}let n=new P3;return n.setFromPoints(r),n.getCenter(qv),qv}copyMatrixWorld(e,r){if(e===null){r.identity();return}let n=this.find(e);n?r.copy(n.matrixWorld):r.identity()}copyParentMatrixWorld(e,r){var o;if(e===null){r.identity();return}let n=(o=this.find(e))==null?void 0:o.parent;n?r.copy(n.matrixWorld):r.identity()}traverseMaterial(e){this.traverseEntity(r=>{if(r instanceof rr)if(Array.isArray(r.material))for(let n=0;n<r.material.length;n++)e(r.material[n]);else e(r.material)})}updateCanvasSize(e,r){this.activeCamera.setViewplaneSize(e,r);let n,o;e>=r?(n=r/e,o=1):(n=1,o=e/r),this.traverseMaterial(a=>{a.layersList.getLayersOfType("transmission").forEach(f=>{f.uniforms[`f${f.id}_aspectRatio`].value.x=n,f.uniforms[`f${f.id}_aspectRatio`].value.y=o})})}},rl=Lp;rl.PERSONAL_CAMERA_ID="f23858d0-4a3b-4bd8-8173-66ed0af7f6fb-personalCamera";import{DRACOLoader as A3}from"three/examples/jsm/loaders/DRACOLoader.js";var Ji;function D3(){return Ji||(Ji=new A3,Ji.setDecoderPath("https://www.gstatic.com/draco/versioned/decoders/1.5.2/").preload()),Ji.decoderPending}async function E3(i){if(Ji){let t={attributeIDs:Ji.defaultAttributeIDs,attributeTypes:Ji.defaultAttributeTypes,useUniqueIDs:!1},e;try{e=await Ji.decodeGeometry(new Int8Array(i).buffer,t)}catch(r){console.error(r)}if(e)return{index:e.index?{array:e.index.array}:void 0,attributes:Object.entries(e.attributes).map(([r,n])=>({name:r,itemSize:n.itemSize,array:n.array}))}}return null}async function $v(i){let[t,e]=ih(Uc.deserialize(new Uint8Array(i))),r=[];t.scene.objects.traverse((n,o)=>{o.type==="Mesh"&&o.geometry.type==="NonParametricGeometry"&&o.geometry.data.draco!==void 0&&r.push(o)}),r.length&&await D3();for(let n of r){let o=await E3(sh(n.geometry.data.draco));if(o){o.index&&(n.geometry.data.index={array:o.index.array,itemSize:1,normalized:!1,type:"Uint32Array"});let a={};o.attributes.forEach(({name:c,array:f,itemSize:h})=>{a[c]={array:f,itemSize:h,type:"Float32Array",normalized:!1}}),n.geometry.data.attributes=a,n.geometry.data.draco=void 0}}return e.result().data}import{WebGLRenderTarget as B3,LinearMipmapLinearFilter as G3,LinearFilter as R3,ClampToEdgeWrapping as Jv,DepthTexture as z3}from"three";var Kv=new ur,Ru=class extends Er{},zu=class{constructor(t){this.materials={};this.images={};this.colors={};this.transmissionRenderTarget=new B3(2048,2048,{generateMipmaps:!0,minFilter:G3,magFilter:R3,wrapS:Jv,wrapT:Jv}),this.transmissionRenderTarget.depthTexture=new z3(2048,2048),this.reset(t)}reset(t){for(let[e,r]of Object.entries(t.images))this.addImage(e,r.data);for(let[e,r]of Object.entries(t.colors))this.addColor(e,r);for(let[e,r]of Object.entries(t.materials))this.addMaterial(e,gp(r,this))}get transmissionSamplerMap(){return this.transmissionRenderTarget.texture}get transmissionDepthMap(){return this.transmissionRenderTarget.depthTexture}addMaterial(t,e){e.uuid=t,this.materials[t]=e}deleteMaterial(t){this.materials[t]&&(this.materials[t].dispose(),delete this.materials[t])}isSharedMaterial(t){return t.uuid in this.materials||t===Kv}getMaterial(t){let e=this.materials[t];return e}getMaterialOrDeletedPlaceholder(t){var e;return(e=this.materials[t])!=null?e:Kv}getMaterials(){return this.materials}addImage(t,e){if(this.images[t])return this.images[t].onload=()=>{this.onImageLoad&&this.onImageLoad(t)},this.images[t].src=e,!0;{let r=new Image;return r.src=e,r.onload=()=>{this.onImageLoad&&this.onImageLoad(t)},this.images[t]=r,!1}}deleteImage(t){this.images[t]&&delete this.images[t]}getDefaultImage(){return this.images.image_0}getImage(t){return this.images[t]}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 Ru(e.r,e.g,e.b,e.a):this.colors[t]=new Ru(e.r,e.g,e.b,1),!1)}updateColor(t,e){var r,n,o,a;if(this.colors[t]){let c=this.colors[t];return this.colors[t].r=(r=e.r)!=null?r:c.r,this.colors[t].g=(n=e.g)!=null?n:c.g,this.colors[t].b=(o=e.b)!=null?o:c.b,this.colors[t].a=(a=e.a)!=null?a:c.a,!0}return!1}deleteColor(t){this.colors[t]&&delete this.colors[t]}getColor(t){return this.colors[t]}dispose(){Object.keys(this.materials).forEach(e=>this.deleteMaterial(e)),this.transmissionRenderTarget.depthTexture.dispose(),this.transmissionRenderTarget.dispose(),this.onImageLoad=void 0}};import{Mesh as jX}from"three";import{mergeBufferGeometries as WX}from"three/examples/jsm/utils/BufferGeometryUtils.js";function Yv(i){let t;if(!!i.index)for(let e=0;e<i.index.array.length;e+=3)t=i.index.array[e],i.index.array[e]=i.index.array[e+2],i.index.array[e+2]=t}import{Color as Zv,ShaderLib as F3}from"three";var Qv=Qm(Xv());function eb(i){let t=new Set;return i.traverse(e=>{if(ws(e))if((0,Qv.isArray)(e.material))e.material.forEach(r=>{let n=r;t.has(n)||t.add(n)});else{let r=e.material;t.has(r)||t.add(r)}}),t.forEach(e=>{if(e instanceof Array)return;let r=e.onBeforeCompile.bind(e);V3(e)?(Object.assign(e,{isMeshStandardMaterial:!0,isMeshPhysicalMaterial:!0,transmission:1,attenuationColor:new Zv,specularColor:new Zv}),e.onBeforeCompile=(n,o)=>{r&&r(n,o),n.uniforms=Object.assign(F3.physical.uniforms,n.uniforms),e.userData.layers.getLayersOfType("transmission").forEach(a=>{n.uniforms.transmissionSamplerMap.value&&(a.uniforms["f"+a.id+"_transmissionSamplerMap"].value=n.uniforms.transmissionSamplerMap.value,a.uniforms["f"+a.id+"_transmissionSamplerSize"].value=n.uniforms.transmissionSamplerSize.value)})}):U3(e)||(e.onBeforeCompile=(n,o)=>{r&&r(n,o),e.transparent=!1})}),i}function V3(i){return i.userData.layers.getLayersOfType("transmission").length>0}function U3(i){let t=i.userData.layers.head,e=0;for(;t!==void 0;){if(t.type!=="light"&&t.type!=="fresnel"){let r=t.uniforms["f"+t.id+"_alpha"];r&&(e+=(1-e)*r.value)}t=t.next}return e<1}function tb(i){return i.traverse(t=>{if(t.type==="Camera"){let e=t;e.type=e.cameraType}}),i}function rb(i){let t=[],e=(r,n=0)=>{let o=n>0?r+n:r;return t.includes(o)?e(r,n+1):o};return i.traverse(r=>{if(t.includes(r.name)){let n=r.name,o=e(r.name);if(r.name=o,r.isMesh){let a=r;a.material instanceof Array?a.material.forEach(c=>{c.name=c.name.replace(n,o)}):a.material.isAsset||(a.material.name=a.material.name.replace(n,o))}}t.push(r.name)}),i}import{mergeBufferGeometries as j3}from"three/examples/jsm/utils/BufferGeometryUtils";function nb(i){let t=[];return i.traverse(e=>{e instanceof go&&t.push(e)}),t.forEach(e=>{let r=e.object,n=e.children,o=n.map(c=>{c.updateMatrix();let f=c.geometry.clone().applyMatrix4(c.matrix);return c.matrix.determinant()<0&&Yv(f),f}),a=j3(e.parameters.hideBase?o:[r.geometry,...o]);r.geometry=a,r.material=n[0].material,r.remove(e)}),i}var Tp=class extends H3{load(t,e,r,n=console.error){let o=new k3(this.manager);o.setPath(this.path),o.setResponseType("arraybuffer"),o.setRequestHeader(this.requestHeader),o.setWithCredentials(this.withCredentials),o.load(t,async a=>{try{if(typeof a=="string")throw new Error("The .spline file is not binary!");let c=await this.parse(a);e(c)}catch(c){n(c)}},r,n)}async parse(t){let e=await $v(t),r=new zu(e.shared);Object.values(r.getMaterials()).forEach(a=>Object.assign(a,{isAsset:!0}));let n=new rl(e.scene,r);n.remove(n.personalCamera),e.scene.environment.ambientLight.enabled||n.remove(n.ambientLight);let o=e.scene.publish.playCamera;if(o){let a=n.find(o);a&&W0(a)&&Object.assign(a,{makeDefault:!0})}return n=nb(n),n=eb(n),n=tb(n),n=rb(n),n}};export{Tp as default};
|