{"version":3,"file":"Webgl_Shader_Component.V93KAddg.mjs","names":["t","i","s","a","r","l","c","e","n","h","p","f","m","o","u","d","g","_","x","y","M","S","b","T","w","E","A","C","R","P","L","I","D","U","N","B","O","V","F","z","G","k","H","W","X","j","q","Y","K","Z","J","$","tt","et","nt","it","rt","st","lt","ct","ht","ut","dt","ft","mt","gt","vt","_t","yt","Q","pt","St","bt","wt","ue","pe","useRef","x","THREE.Scene","THREE.OrthographicCamera","THREE.WebGLRenderer","THREE.PlaneGeometry","THREE.TextureLoader","THREE.ShaderMaterial","THREE.Vector3","THREE.Vector4","THREE.Mesh","y","THREE.Clock"],"sources":["https:/ga.jspm.io/npm:three@0.167.1/build/three.module.js","https:/framerusercontent.com/modules/6tj2OZAcXlPErCTcSCDY/RekhsBiS0iszyZdEW86t/ShaderSource.js","https:/framer.com/m/ShaderSource-3JJF.js","https:/framerusercontent.com/modules/5o1D5OCkDxlWHoxWktis/OqE5ghULM3UrdThK9UsF/Webgl_Shader_Component.js"],"sourcesContent":["/**\n * @license\n * Copyright 2010-2024 Three.js Authors\n * SPDX-License-Identifier: MIT\n */\nconst t=\"167\";const e={LEFT:0,MIDDLE:1,RIGHT:2,ROTATE:0,DOLLY:1,PAN:2};const n={ROTATE:0,PAN:1,DOLLY_PAN:2,DOLLY_ROTATE:3};const i=0;const r=1;const s=2;const a=3;const o=0;const l=1;const c=2;const h=3;const u=0;const d=1;const p=2;const f=0;const m=1;const g=2;const _=3;const x=4;const y=5;const M=100;const S=101;const b=102;const T=103;const w=104;const E=200;const A=201;const C=202;const R=203;const P=204;const L=205;const I=206;const U=207;const D=208;const N=209;const B=210;const O=211;const V=212;const F=213;const z=214;const G=0;const k=1;const H=2;const W=3;const X=4;const j=5;const q=6;const Y=7;const K=0;const Z=1;const J=2;const Q=0;const $=1;const tt=2;const et=3;const nt=4;const it=5;const rt=6;const st=7;const at=\"attached\";const ot=\"detached\";const lt=300;const ct=301;const ht=302;const ut=303;const dt=304;const pt=306;const ft=1e3;const mt=1001;const gt=1002;const vt=1003;const _t=1004;const xt=1004;const yt=1005;const Mt=1005;const St=1006;const bt=1007;const Tt=1007;const wt=1008;const Et=1008;const At=1009;const Ct=1010;const Rt=1011;const Pt=1012;const Lt=1013;const It=1014;const Ut=1015;const Dt=1016;const Nt=1017;const Bt=1018;const Ot=1020;const Vt=35902;const Ft=1021;const zt=1022;const Gt=1023;const kt=1024;const Ht=1025;const Wt=1026;const Xt=1027;const jt=1028;const qt=1029;const Yt=1030;const Kt=1031;const Zt=1032;const Jt=1033;const Qt=33776;const $t=33777;const te=33778;const ee=33779;const ne=35840;const ie=35841;const re=35842;const se=35843;const ae=36196;const oe=37492;const le=37496;const ce=37808;const he=37809;const ue=37810;const de=37811;const pe=37812;const fe=37813;const me=37814;const ge=37815;const ve=37816;const _e=37817;const xe=37818;const ye=37819;const Me=37820;const Se=37821;const be=36492;const Te=36494;const we=36495;const Ee=36283;const Ae=36284;const Ce=36285;const Re=36286;const Pe=2200;const Le=2201;const Ie=2202;const Ue=2300;const De=2301;const Ne=2302;const Be=2400;const Oe=2401;const Ve=2402;const Fe=2500;const ze=2501;const Ge=0;const ke=1;const He=2;const We=3200;const Xe=3201;const je=3202;const qe=3203;const Ye=0;const Ke=1;const Ze=\"\";const Je=\"srgb\";const Qe=\"srgb-linear\";const $e=\"display-p3\";const tn=\"display-p3-linear\";const en=\"linear\";const nn=\"srgb\";const rn=\"rec709\";const sn=\"p3\";const an=0;const on=7680;const ln=7681;const cn=7682;const hn=7683;const un=34055;const dn=34056;const pn=5386;const fn=512;const mn=513;const gn=514;const vn=515;const _n=516;const xn=517;const yn=518;const Mn=519;const Sn=512;const bn=513;const Tn=514;const wn=515;const En=516;const An=517;const Cn=518;const Rn=519;const Pn=35044;const Ln=35048;const In=35040;const Un=35045;const Dn=35049;const Nn=35041;const Bn=35046;const On=35050;const Vn=35042;const Fn=\"100\";const zn=\"300 es\";const Gn=2e3;const kn=2001;class EventDispatcher{addEventListener(t,e){this._listeners===void 0&&(this._listeners={});const n=this._listeners;n[t]===void 0&&(n[t]=[]);n[t].indexOf(e)===-1&&n[t].push(e)}hasEventListener(t,e){if(this._listeners===void 0)return false;const n=this._listeners;return n[t]!==void 0&&n[t].indexOf(e)!==-1}removeEventListener(t,e){if(this._listeners===void 0)return;const n=this._listeners;const i=n[t];if(i!==void 0){const t=i.indexOf(e);t!==-1&&i.splice(t,1)}}dispatchEvent(t){if(this._listeners===void 0)return;const e=this._listeners;const n=e[t.type];if(n!==void 0){t.target=this;const e=n.slice(0);for(let n=0,i=e.length;n<i;n++)e[n].call(this,t);t.target=null}}}const Hn=[\"00\",\"01\",\"02\",\"03\",\"04\",\"05\",\"06\",\"07\",\"08\",\"09\",\"0a\",\"0b\",\"0c\",\"0d\",\"0e\",\"0f\",\"10\",\"11\",\"12\",\"13\",\"14\",\"15\",\"16\",\"17\",\"18\",\"19\",\"1a\",\"1b\",\"1c\",\"1d\",\"1e\",\"1f\",\"20\",\"21\",\"22\",\"23\",\"24\",\"25\",\"26\",\"27\",\"28\",\"29\",\"2a\",\"2b\",\"2c\",\"2d\",\"2e\",\"2f\",\"30\",\"31\",\"32\",\"33\",\"34\",\"35\",\"36\",\"37\",\"38\",\"39\",\"3a\",\"3b\",\"3c\",\"3d\",\"3e\",\"3f\",\"40\",\"41\",\"42\",\"43\",\"44\",\"45\",\"46\",\"47\",\"48\",\"49\",\"4a\",\"4b\",\"4c\",\"4d\",\"4e\",\"4f\",\"50\",\"51\",\"52\",\"53\",\"54\",\"55\",\"56\",\"57\",\"58\",\"59\",\"5a\",\"5b\",\"5c\",\"5d\",\"5e\",\"5f\",\"60\",\"61\",\"62\",\"63\",\"64\",\"65\",\"66\",\"67\",\"68\",\"69\",\"6a\",\"6b\",\"6c\",\"6d\",\"6e\",\"6f\",\"70\",\"71\",\"72\",\"73\",\"74\",\"75\",\"76\",\"77\",\"78\",\"79\",\"7a\",\"7b\",\"7c\",\"7d\",\"7e\",\"7f\",\"80\",\"81\",\"82\",\"83\",\"84\",\"85\",\"86\",\"87\",\"88\",\"89\",\"8a\",\"8b\",\"8c\",\"8d\",\"8e\",\"8f\",\"90\",\"91\",\"92\",\"93\",\"94\",\"95\",\"96\",\"97\",\"98\",\"99\",\"9a\",\"9b\",\"9c\",\"9d\",\"9e\",\"9f\",\"a0\",\"a1\",\"a2\",\"a3\",\"a4\",\"a5\",\"a6\",\"a7\",\"a8\",\"a9\",\"aa\",\"ab\",\"ac\",\"ad\",\"ae\",\"af\",\"b0\",\"b1\",\"b2\",\"b3\",\"b4\",\"b5\",\"b6\",\"b7\",\"b8\",\"b9\",\"ba\",\"bb\",\"bc\",\"bd\",\"be\",\"bf\",\"c0\",\"c1\",\"c2\",\"c3\",\"c4\",\"c5\",\"c6\",\"c7\",\"c8\",\"c9\",\"ca\",\"cb\",\"cc\",\"cd\",\"ce\",\"cf\",\"d0\",\"d1\",\"d2\",\"d3\",\"d4\",\"d5\",\"d6\",\"d7\",\"d8\",\"d9\",\"da\",\"db\",\"dc\",\"dd\",\"de\",\"df\",\"e0\",\"e1\",\"e2\",\"e3\",\"e4\",\"e5\",\"e6\",\"e7\",\"e8\",\"e9\",\"ea\",\"eb\",\"ec\",\"ed\",\"ee\",\"ef\",\"f0\",\"f1\",\"f2\",\"f3\",\"f4\",\"f5\",\"f6\",\"f7\",\"f8\",\"f9\",\"fa\",\"fb\",\"fc\",\"fd\",\"fe\",\"ff\"];let Wn=1234567;const Xn=Math.PI/180;const jn=180/Math.PI;function generateUUID(){const t=Math.random()*4294967295|0;const e=Math.random()*4294967295|0;const n=Math.random()*4294967295|0;const i=Math.random()*4294967295|0;const r=Hn[t&255]+Hn[t>>8&255]+Hn[t>>16&255]+Hn[t>>24&255]+\"-\"+Hn[e&255]+Hn[e>>8&255]+\"-\"+Hn[e>>16&15|64]+Hn[e>>24&255]+\"-\"+Hn[n&63|128]+Hn[n>>8&255]+\"-\"+Hn[n>>16&255]+Hn[n>>24&255]+Hn[i&255]+Hn[i>>8&255]+Hn[i>>16&255]+Hn[i>>24&255];return r.toLowerCase()}function clamp(t,e,n){return Math.max(e,Math.min(n,t))}function euclideanModulo(t,e){return(t%e+e)%e}function mapLinear(t,e,n,i,r){return i+(t-e)*(r-i)/(n-e)}function inverseLerp(t,e,n){return t!==e?(n-t)/(e-t):0}function lerp(t,e,n){return(1-n)*t+n*e}function damp(t,e,n,i){return lerp(t,e,1-Math.exp(-n*i))}function pingpong(t,e=1){return e-Math.abs(euclideanModulo(t,e*2)-e)}function smoothstep(t,e,n){if(t<=e)return 0;if(t>=n)return 1;t=(t-e)/(n-e);return t*t*(3-2*t)}function smootherstep(t,e,n){if(t<=e)return 0;if(t>=n)return 1;t=(t-e)/(n-e);return t*t*t*(t*(t*6-15)+10)}function randInt(t,e){return t+Math.floor(Math.random()*(e-t+1))}function randFloat(t,e){return t+Math.random()*(e-t)}function randFloatSpread(t){return t*(.5-Math.random())}function seededRandom(t){t!==void 0&&(Wn=t);let e=Wn+=1831565813;e=Math.imul(e^e>>>15,e|1);e^=e+Math.imul(e^e>>>7,e|61);return((e^e>>>14)>>>0)/4294967296}function degToRad(t){return t*Xn}function radToDeg(t){return t*jn}function isPowerOfTwo(t){return(t&t-1)===0&&t!==0}function ceilPowerOfTwo(t){return Math.pow(2,Math.ceil(Math.log(t)/Math.LN2))}function floorPowerOfTwo(t){return Math.pow(2,Math.floor(Math.log(t)/Math.LN2))}function setQuaternionFromProperEuler(t,e,n,i,r){const s=Math.cos;const a=Math.sin;const o=s(n/2);const l=a(n/2);const c=s((e+i)/2);const h=a((e+i)/2);const u=s((e-i)/2);const d=a((e-i)/2);const p=s((i-e)/2);const f=a((i-e)/2);switch(r){case\"XYX\":t.set(o*h,l*u,l*d,o*c);break;case\"YZY\":t.set(l*d,o*h,l*u,o*c);break;case\"ZXZ\":t.set(l*u,l*d,o*h,o*c);break;case\"XZX\":t.set(o*h,l*f,l*p,o*c);break;case\"YXY\":t.set(l*p,o*h,l*f,o*c);break;case\"ZYZ\":t.set(l*f,l*p,o*h,o*c);break;default:console.warn(\"THREE.MathUtils: .setQuaternionFromProperEuler() encountered an unknown order: \"+r)}}function denormalize(t,e){switch(e.constructor){case Float32Array:return t;case Uint32Array:return t/4294967295;case Uint16Array:return t/65535;case Uint8Array:return t/255;case Int32Array:return Math.max(t/2147483647,-1);case Int16Array:return Math.max(t/32767,-1);case Int8Array:return Math.max(t/127,-1);default:throw new Error(\"Invalid component type.\")}}function normalize(t,e){switch(e.constructor){case Float32Array:return t;case Uint32Array:return Math.round(t*4294967295);case Uint16Array:return Math.round(t*65535);case Uint8Array:return Math.round(t*255);case Int32Array:return Math.round(t*2147483647);case Int16Array:return Math.round(t*32767);case Int8Array:return Math.round(t*127);default:throw new Error(\"Invalid component type.\")}}const qn={DEG2RAD:Xn,RAD2DEG:jn,generateUUID:generateUUID,clamp:clamp,euclideanModulo:euclideanModulo,mapLinear:mapLinear,inverseLerp:inverseLerp,lerp:lerp,damp:damp,pingpong:pingpong,smoothstep:smoothstep,smootherstep:smootherstep,randInt:randInt,randFloat:randFloat,randFloatSpread:randFloatSpread,seededRandom:seededRandom,degToRad:degToRad,radToDeg:radToDeg,isPowerOfTwo:isPowerOfTwo,ceilPowerOfTwo:ceilPowerOfTwo,floorPowerOfTwo:floorPowerOfTwo,setQuaternionFromProperEuler:setQuaternionFromProperEuler,normalize:normalize,denormalize:denormalize};class Vector2{constructor(t=0,e=0){Vector2.prototype.isVector2=true;this.x=t;this.y=e}get width(){return this.x}set width(t){this.x=t}get height(){return this.y}set height(t){this.y=t}set(t,e){this.x=t;this.y=e;return this}setScalar(t){this.x=t;this.y=t;return this}setX(t){this.x=t;return this}setY(t){this.y=t;return this}setComponent(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;default:throw new Error(\"index is out of range: \"+t)}return this}getComponent(t){switch(t){case 0:return this.x;case 1:return this.y;default:throw new Error(\"index is out of range: \"+t)}}clone(){return new this.constructor(this.x,this.y)}copy(t){this.x=t.x;this.y=t.y;return this}add(t){this.x+=t.x;this.y+=t.y;return this}addScalar(t){this.x+=t;this.y+=t;return this}addVectors(t,e){this.x=t.x+e.x;this.y=t.y+e.y;return this}addScaledVector(t,e){this.x+=t.x*e;this.y+=t.y*e;return this}sub(t){this.x-=t.x;this.y-=t.y;return this}subScalar(t){this.x-=t;this.y-=t;return this}subVectors(t,e){this.x=t.x-e.x;this.y=t.y-e.y;return this}multiply(t){this.x*=t.x;this.y*=t.y;return this}multiplyScalar(t){this.x*=t;this.y*=t;return this}divide(t){this.x/=t.x;this.y/=t.y;return this}divideScalar(t){return this.multiplyScalar(1/t)}applyMatrix3(t){const e=this.x,n=this.y;const i=t.elements;this.x=i[0]*e+i[3]*n+i[6];this.y=i[1]*e+i[4]*n+i[7];return this}min(t){this.x=Math.min(this.x,t.x);this.y=Math.min(this.y,t.y);return this}max(t){this.x=Math.max(this.x,t.x);this.y=Math.max(this.y,t.y);return this}clamp(t,e){this.x=Math.max(t.x,Math.min(e.x,this.x));this.y=Math.max(t.y,Math.min(e.y,this.y));return this}clampScalar(t,e){this.x=Math.max(t,Math.min(e,this.x));this.y=Math.max(t,Math.min(e,this.y));return this}clampLength(t,e){const n=this.length();return this.divideScalar(n||1).multiplyScalar(Math.max(t,Math.min(e,n)))}floor(){this.x=Math.floor(this.x);this.y=Math.floor(this.y);return this}ceil(){this.x=Math.ceil(this.x);this.y=Math.ceil(this.y);return this}round(){this.x=Math.round(this.x);this.y=Math.round(this.y);return this}roundToZero(){this.x=Math.trunc(this.x);this.y=Math.trunc(this.y);return this}negate(){this.x=-this.x;this.y=-this.y;return this}dot(t){return this.x*t.x+this.y*t.y}cross(t){return this.x*t.y-this.y*t.x}lengthSq(){return this.x*this.x+this.y*this.y}length(){return Math.sqrt(this.x*this.x+this.y*this.y)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)}normalize(){return this.divideScalar(this.length()||1)}angle(){const t=Math.atan2(-this.y,-this.x)+Math.PI;return t}angleTo(t){const e=Math.sqrt(this.lengthSq()*t.lengthSq());if(e===0)return Math.PI/2;const n=this.dot(t)/e;return Math.acos(clamp(n,-1,1))}distanceTo(t){return Math.sqrt(this.distanceToSquared(t))}distanceToSquared(t){const e=this.x-t.x,n=this.y-t.y;return e*e+n*n}manhattanDistanceTo(t){return Math.abs(this.x-t.x)+Math.abs(this.y-t.y)}setLength(t){return this.normalize().multiplyScalar(t)}lerp(t,e){this.x+=(t.x-this.x)*e;this.y+=(t.y-this.y)*e;return this}lerpVectors(t,e,n){this.x=t.x+(e.x-t.x)*n;this.y=t.y+(e.y-t.y)*n;return this}equals(t){return t.x===this.x&&t.y===this.y}fromArray(t,e=0){this.x=t[e];this.y=t[e+1];return this}toArray(t=[],e=0){t[e]=this.x;t[e+1]=this.y;return t}fromBufferAttribute(t,e){this.x=t.getX(e);this.y=t.getY(e);return this}rotateAround(t,e){const n=Math.cos(e),i=Math.sin(e);const r=this.x-t.x;const s=this.y-t.y;this.x=r*n-s*i+t.x;this.y=r*i+s*n+t.y;return this}random(){this.x=Math.random();this.y=Math.random();return this}*[Symbol.iterator](){yield this.x;yield this.y}}class Matrix3{constructor(t,e,n,i,r,s,a,o,l){Matrix3.prototype.isMatrix3=true;this.elements=[1,0,0,0,1,0,0,0,1];t!==void 0&&this.set(t,e,n,i,r,s,a,o,l)}set(t,e,n,i,r,s,a,o,l){const c=this.elements;c[0]=t;c[1]=i;c[2]=a;c[3]=e;c[4]=r;c[5]=o;c[6]=n;c[7]=s;c[8]=l;return this}identity(){this.set(1,0,0,0,1,0,0,0,1);return this}copy(t){const e=this.elements;const n=t.elements;e[0]=n[0];e[1]=n[1];e[2]=n[2];e[3]=n[3];e[4]=n[4];e[5]=n[5];e[6]=n[6];e[7]=n[7];e[8]=n[8];return this}extractBasis(t,e,n){t.setFromMatrix3Column(this,0);e.setFromMatrix3Column(this,1);n.setFromMatrix3Column(this,2);return this}setFromMatrix4(t){const e=t.elements;this.set(e[0],e[4],e[8],e[1],e[5],e[9],e[2],e[6],e[10]);return this}multiply(t){return this.multiplyMatrices(this,t)}premultiply(t){return this.multiplyMatrices(t,this)}multiplyMatrices(t,e){const n=t.elements;const i=e.elements;const r=this.elements;const s=n[0],a=n[3],o=n[6];const l=n[1],c=n[4],h=n[7];const u=n[2],d=n[5],p=n[8];const f=i[0],m=i[3],g=i[6];const _=i[1],x=i[4],y=i[7];const M=i[2],S=i[5],b=i[8];r[0]=s*f+a*_+o*M;r[3]=s*m+a*x+o*S;r[6]=s*g+a*y+o*b;r[1]=l*f+c*_+h*M;r[4]=l*m+c*x+h*S;r[7]=l*g+c*y+h*b;r[2]=u*f+d*_+p*M;r[5]=u*m+d*x+p*S;r[8]=u*g+d*y+p*b;return this}multiplyScalar(t){const e=this.elements;e[0]*=t;e[3]*=t;e[6]*=t;e[1]*=t;e[4]*=t;e[7]*=t;e[2]*=t;e[5]*=t;e[8]*=t;return this}determinant(){const t=this.elements;const e=t[0],n=t[1],i=t[2],r=t[3],s=t[4],a=t[5],o=t[6],l=t[7],c=t[8];return e*s*c-e*a*l-n*r*c+n*a*o+i*r*l-i*s*o}invert(){const t=this.elements,e=t[0],n=t[1],i=t[2],r=t[3],s=t[4],a=t[5],o=t[6],l=t[7],c=t[8],h=c*s-a*l,u=a*o-c*r,d=l*r-s*o,p=e*h+n*u+i*d;if(p===0)return this.set(0,0,0,0,0,0,0,0,0);const f=1/p;t[0]=h*f;t[1]=(i*l-c*n)*f;t[2]=(a*n-i*s)*f;t[3]=u*f;t[4]=(c*e-i*o)*f;t[5]=(i*r-a*e)*f;t[6]=d*f;t[7]=(n*o-l*e)*f;t[8]=(s*e-n*r)*f;return this}transpose(){let t;const e=this.elements;t=e[1];e[1]=e[3];e[3]=t;t=e[2];e[2]=e[6];e[6]=t;t=e[5];e[5]=e[7];e[7]=t;return this}getNormalMatrix(t){return this.setFromMatrix4(t).invert().transpose()}transposeIntoArray(t){const e=this.elements;t[0]=e[0];t[1]=e[3];t[2]=e[6];t[3]=e[1];t[4]=e[4];t[5]=e[7];t[6]=e[2];t[7]=e[5];t[8]=e[8];return this}setUvTransform(t,e,n,i,r,s,a){const o=Math.cos(r);const l=Math.sin(r);this.set(n*o,n*l,-n*(o*s+l*a)+s+t,-i*l,i*o,-i*(-l*s+o*a)+a+e,0,0,1);return this}scale(t,e){this.premultiply(Yn.makeScale(t,e));return this}rotate(t){this.premultiply(Yn.makeRotation(-t));return this}translate(t,e){this.premultiply(Yn.makeTranslation(t,e));return this}makeTranslation(t,e){t.isVector2?this.set(1,0,t.x,0,1,t.y,0,0,1):this.set(1,0,t,0,1,e,0,0,1);return this}makeRotation(t){const e=Math.cos(t);const n=Math.sin(t);this.set(e,-n,0,n,e,0,0,0,1);return this}makeScale(t,e){this.set(t,0,0,0,e,0,0,0,1);return this}equals(t){const e=this.elements;const n=t.elements;for(let t=0;t<9;t++)if(e[t]!==n[t])return false;return true}fromArray(t,e=0){for(let n=0;n<9;n++)this.elements[n]=t[n+e];return this}toArray(t=[],e=0){const n=this.elements;t[e]=n[0];t[e+1]=n[1];t[e+2]=n[2];t[e+3]=n[3];t[e+4]=n[4];t[e+5]=n[5];t[e+6]=n[6];t[e+7]=n[7];t[e+8]=n[8];return t}clone(){return(new this.constructor).fromArray(this.elements)}}const Yn=new Matrix3;function arrayNeedsUint32(t){for(let e=t.length-1;e>=0;--e)if(t[e]>=65535)return true;return false}const Kn={Int8Array:Int8Array,Uint8Array:Uint8Array,Uint8ClampedArray:Uint8ClampedArray,Int16Array:Int16Array,Uint16Array:Uint16Array,Int32Array:Int32Array,Uint32Array:Uint32Array,Float32Array:Float32Array,Float64Array:Float64Array};function getTypedArray(t,e){return new Kn[t](e)}function createElementNS(t){return document.createElementNS(\"http://www.w3.org/1999/xhtml\",t)}function createCanvasElement(){const t=createElementNS(\"canvas\");t.style.display=\"block\";return t}const Zn={};function warnOnce(t){if(!(t in Zn)){Zn[t]=true;console.warn(t)}}function probeAsync(t,e,n){return new Promise((function(i,r){function probe(){switch(t.clientWaitSync(e,t.SYNC_FLUSH_COMMANDS_BIT,0)){case t.WAIT_FAILED:r();break;case t.TIMEOUT_EXPIRED:setTimeout(probe,n);break;default:i()}}setTimeout(probe,n)}))}const Jn=(new Matrix3).set(.8224621,.177538,0,.0331941,.9668058,0,.0170827,.0723974,.9105199);const Qn=(new Matrix3).set(1.2249401,-.2249404,0,-.0420569,1.0420571,0,-.0196376,-.0786361,1.0982735);const $n={[Qe]:{transfer:en,primaries:rn,luminanceCoefficients:[.2126,.7152,.0722],toReference:t=>t,fromReference:t=>t},[Je]:{transfer:nn,primaries:rn,luminanceCoefficients:[.2126,.7152,.0722],toReference:t=>t.convertSRGBToLinear(),fromReference:t=>t.convertLinearToSRGB()},[tn]:{transfer:en,primaries:sn,luminanceCoefficients:[.2289,.6917,.0793],toReference:t=>t.applyMatrix3(Qn),fromReference:t=>t.applyMatrix3(Jn)},[$e]:{transfer:nn,primaries:sn,luminanceCoefficients:[.2289,.6917,.0793],toReference:t=>t.convertSRGBToLinear().applyMatrix3(Qn),fromReference:t=>t.applyMatrix3(Jn).convertLinearToSRGB()}};const ti=new Set([Qe,tn]);const ei={enabled:true,_workingColorSpace:Qe,get workingColorSpace(){return this._workingColorSpace},set workingColorSpace(t){if(!ti.has(t))throw new Error(`Unsupported working color space, \"${t}\".`);this._workingColorSpace=t},convert:function(t,e,n){if(this.enabled===false||e===n||!e||!n)return t;const i=$n[e].toReference;const r=$n[n].fromReference;return r(i(t))},fromWorkingColorSpace:function(t,e){return this.convert(t,this._workingColorSpace,e)},toWorkingColorSpace:function(t,e){return this.convert(t,e,this._workingColorSpace)},getPrimaries:function(t){return $n[t].primaries},getTransfer:function(t){return t===Ze?en:$n[t].transfer},getLuminanceCoefficients:function(t,e=this._workingColorSpace){return t.fromArray($n[e].luminanceCoefficients)}};function SRGBToLinear(t){return t<.04045?t*.0773993808:Math.pow(t*.9478672986+.0521327014,2.4)}function LinearToSRGB(t){return t<.0031308?t*12.92:1.055*Math.pow(t,.41666)-.055}let ni;class ImageUtils{static getDataURL(t){if(/^data:/i.test(t.src))return t.src;if(typeof HTMLCanvasElement===\"undefined\")return t.src;let e;if(t instanceof HTMLCanvasElement)e=t;else{ni===void 0&&(ni=createElementNS(\"canvas\"));ni.width=t.width;ni.height=t.height;const n=ni.getContext(\"2d\");t instanceof ImageData?n.putImageData(t,0,0):n.drawImage(t,0,0,t.width,t.height);e=ni}if(e.width>2048||e.height>2048){console.warn(\"THREE.ImageUtils.getDataURL: Image converted to jpg for performance reasons\",t);return e.toDataURL(\"image/jpeg\",.6)}return e.toDataURL(\"image/png\")}static sRGBToLinear(t){if(typeof HTMLImageElement!==\"undefined\"&&t instanceof HTMLImageElement||typeof HTMLCanvasElement!==\"undefined\"&&t instanceof HTMLCanvasElement||typeof ImageBitmap!==\"undefined\"&&t instanceof ImageBitmap){const e=createElementNS(\"canvas\");e.width=t.width;e.height=t.height;const n=e.getContext(\"2d\");n.drawImage(t,0,0,t.width,t.height);const i=n.getImageData(0,0,t.width,t.height);const r=i.data;for(let t=0;t<r.length;t++)r[t]=SRGBToLinear(r[t]/255)*255;n.putImageData(i,0,0);return e}if(t.data){const e=t.data.slice(0);for(let t=0;t<e.length;t++)e instanceof Uint8Array||e instanceof Uint8ClampedArray?e[t]=Math.floor(SRGBToLinear(e[t]/255)*255):e[t]=SRGBToLinear(e[t]);return{data:e,width:t.width,height:t.height}}console.warn(\"THREE.ImageUtils.sRGBToLinear(): Unsupported image type. No color space conversion applied.\");return t}}let ii=0;class Source{constructor(t=null){this.isSource=true;Object.defineProperty(this,\"id\",{value:ii++});this.uuid=generateUUID();this.data=t;this.dataReady=true;this.version=0}set needsUpdate(t){t===true&&this.version++}toJSON(t){const e=t===void 0||typeof t===\"string\";if(!e&&t.images[this.uuid]!==void 0)return t.images[this.uuid];const n={uuid:this.uuid,url:\"\"};const i=this.data;if(i!==null){let t;if(Array.isArray(i)){t=[];for(let e=0,n=i.length;e<n;e++)i[e].isDataTexture?t.push(serializeImage(i[e].image)):t.push(serializeImage(i[e]))}else t=serializeImage(i);n.url=t}e||(t.images[this.uuid]=n);return n}}function serializeImage(t){if(typeof HTMLImageElement!==\"undefined\"&&t instanceof HTMLImageElement||typeof HTMLCanvasElement!==\"undefined\"&&t instanceof HTMLCanvasElement||typeof ImageBitmap!==\"undefined\"&&t instanceof ImageBitmap)return ImageUtils.getDataURL(t);if(t.data)return{data:Array.from(t.data),width:t.width,height:t.height,type:t.data.constructor.name};console.warn(\"THREE.Texture: Unable to serialize Texture.\");return{}}let ri=0;class Texture extends EventDispatcher{constructor(t=Texture.DEFAULT_IMAGE,e=Texture.DEFAULT_MAPPING,n=mt,i=mt,r=St,s=wt,a=Gt,o=At,l=Texture.DEFAULT_ANISOTROPY,c=Ze){super();this.isTexture=true;Object.defineProperty(this,\"id\",{value:ri++});this.uuid=generateUUID();this.name=\"\";this.source=new Source(t);this.mipmaps=[];this.mapping=e;this.channel=0;this.wrapS=n;this.wrapT=i;this.magFilter=r;this.minFilter=s;this.anisotropy=l;this.format=a;this.internalFormat=null;this.type=o;this.offset=new Vector2(0,0);this.repeat=new Vector2(1,1);this.center=new Vector2(0,0);this.rotation=0;this.matrixAutoUpdate=true;this.matrix=new Matrix3;this.generateMipmaps=true;this.premultiplyAlpha=false;this.flipY=true;this.unpackAlignment=4;this.colorSpace=c;this.userData={};this.version=0;this.onUpdate=null;this.isRenderTargetTexture=false;this.pmremVersion=0}get image(){return this.source.data}set image(t=null){this.source.data=t}updateMatrix(){this.matrix.setUvTransform(this.offset.x,this.offset.y,this.repeat.x,this.repeat.y,this.rotation,this.center.x,this.center.y)}clone(){return(new this.constructor).copy(this)}copy(t){this.name=t.name;this.source=t.source;this.mipmaps=t.mipmaps.slice(0);this.mapping=t.mapping;this.channel=t.channel;this.wrapS=t.wrapS;this.wrapT=t.wrapT;this.magFilter=t.magFilter;this.minFilter=t.minFilter;this.anisotropy=t.anisotropy;this.format=t.format;this.internalFormat=t.internalFormat;this.type=t.type;this.offset.copy(t.offset);this.repeat.copy(t.repeat);this.center.copy(t.center);this.rotation=t.rotation;this.matrixAutoUpdate=t.matrixAutoUpdate;this.matrix.copy(t.matrix);this.generateMipmaps=t.generateMipmaps;this.premultiplyAlpha=t.premultiplyAlpha;this.flipY=t.flipY;this.unpackAlignment=t.unpackAlignment;this.colorSpace=t.colorSpace;this.userData=JSON.parse(JSON.stringify(t.userData));this.needsUpdate=true;return this}toJSON(t){const e=t===void 0||typeof t===\"string\";if(!e&&t.textures[this.uuid]!==void 0)return t.textures[this.uuid];const n={metadata:{version:4.6,type:\"Texture\",generator:\"Texture.toJSON\"},uuid:this.uuid,name:this.name,image:this.source.toJSON(t).uuid,mapping:this.mapping,channel:this.channel,repeat:[this.repeat.x,this.repeat.y],offset:[this.offset.x,this.offset.y],center:[this.center.x,this.center.y],rotation:this.rotation,wrap:[this.wrapS,this.wrapT],format:this.format,internalFormat:this.internalFormat,type:this.type,colorSpace:this.colorSpace,minFilter:this.minFilter,magFilter:this.magFilter,anisotropy:this.anisotropy,flipY:this.flipY,generateMipmaps:this.generateMipmaps,premultiplyAlpha:this.premultiplyAlpha,unpackAlignment:this.unpackAlignment};Object.keys(this.userData).length>0&&(n.userData=this.userData);e||(t.textures[this.uuid]=n);return n}dispose(){this.dispatchEvent({type:\"dispose\"})}transformUv(t){if(this.mapping!==lt)return t;t.applyMatrix3(this.matrix);if(t.x<0||t.x>1)switch(this.wrapS){case ft:t.x=t.x-Math.floor(t.x);break;case mt:t.x=t.x<0?0:1;break;case gt:Math.abs(Math.floor(t.x)%2)===1?t.x=Math.ceil(t.x)-t.x:t.x=t.x-Math.floor(t.x);break}if(t.y<0||t.y>1)switch(this.wrapT){case ft:t.y=t.y-Math.floor(t.y);break;case mt:t.y=t.y<0?0:1;break;case gt:Math.abs(Math.floor(t.y)%2)===1?t.y=Math.ceil(t.y)-t.y:t.y=t.y-Math.floor(t.y);break}this.flipY&&(t.y=1-t.y);return t}set needsUpdate(t){if(t===true){this.version++;this.source.needsUpdate=true}}set needsPMREMUpdate(t){t===true&&this.pmremVersion++}}Texture.DEFAULT_IMAGE=null;Texture.DEFAULT_MAPPING=lt;Texture.DEFAULT_ANISOTROPY=1;class Vector4{constructor(t=0,e=0,n=0,i=1){Vector4.prototype.isVector4=true;this.x=t;this.y=e;this.z=n;this.w=i}get width(){return this.z}set width(t){this.z=t}get height(){return this.w}set height(t){this.w=t}set(t,e,n,i){this.x=t;this.y=e;this.z=n;this.w=i;return this}setScalar(t){this.x=t;this.y=t;this.z=t;this.w=t;return this}setX(t){this.x=t;return this}setY(t){this.y=t;return this}setZ(t){this.z=t;return this}setW(t){this.w=t;return this}setComponent(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;case 2:this.z=e;break;case 3:this.w=e;break;default:throw new Error(\"index is out of range: \"+t)}return this}getComponent(t){switch(t){case 0:return this.x;case 1:return this.y;case 2:return this.z;case 3:return this.w;default:throw new Error(\"index is out of range: \"+t)}}clone(){return new this.constructor(this.x,this.y,this.z,this.w)}copy(t){this.x=t.x;this.y=t.y;this.z=t.z;this.w=t.w!==void 0?t.w:1;return this}add(t){this.x+=t.x;this.y+=t.y;this.z+=t.z;this.w+=t.w;return this}addScalar(t){this.x+=t;this.y+=t;this.z+=t;this.w+=t;return this}addVectors(t,e){this.x=t.x+e.x;this.y=t.y+e.y;this.z=t.z+e.z;this.w=t.w+e.w;return this}addScaledVector(t,e){this.x+=t.x*e;this.y+=t.y*e;this.z+=t.z*e;this.w+=t.w*e;return this}sub(t){this.x-=t.x;this.y-=t.y;this.z-=t.z;this.w-=t.w;return this}subScalar(t){this.x-=t;this.y-=t;this.z-=t;this.w-=t;return this}subVectors(t,e){this.x=t.x-e.x;this.y=t.y-e.y;this.z=t.z-e.z;this.w=t.w-e.w;return this}multiply(t){this.x*=t.x;this.y*=t.y;this.z*=t.z;this.w*=t.w;return this}multiplyScalar(t){this.x*=t;this.y*=t;this.z*=t;this.w*=t;return this}applyMatrix4(t){const e=this.x,n=this.y,i=this.z,r=this.w;const s=t.elements;this.x=s[0]*e+s[4]*n+s[8]*i+s[12]*r;this.y=s[1]*e+s[5]*n+s[9]*i+s[13]*r;this.z=s[2]*e+s[6]*n+s[10]*i+s[14]*r;this.w=s[3]*e+s[7]*n+s[11]*i+s[15]*r;return this}divideScalar(t){return this.multiplyScalar(1/t)}setAxisAngleFromQuaternion(t){this.w=2*Math.acos(t.w);const e=Math.sqrt(1-t.w*t.w);if(e<1e-4){this.x=1;this.y=0;this.z=0}else{this.x=t.x/e;this.y=t.y/e;this.z=t.z/e}return this}setAxisAngleFromRotationMatrix(t){let e,n,i,r;const s=.01,a=.1,o=t.elements,l=o[0],c=o[4],h=o[8],u=o[1],d=o[5],p=o[9],f=o[2],m=o[6],g=o[10];if(Math.abs(c-u)<s&&Math.abs(h-f)<s&&Math.abs(p-m)<s){if(Math.abs(c+u)<a&&Math.abs(h+f)<a&&Math.abs(p+m)<a&&Math.abs(l+d+g-3)<a){this.set(1,0,0,0);return this}e=Math.PI;const t=(l+1)/2;const o=(d+1)/2;const _=(g+1)/2;const x=(c+u)/4;const y=(h+f)/4;const M=(p+m)/4;if(t>o&&t>_)if(t<s){n=0;i=.707106781;r=.707106781}else{n=Math.sqrt(t);i=x/n;r=y/n}else if(o>_)if(o<s){n=.707106781;i=0;r=.707106781}else{i=Math.sqrt(o);n=x/i;r=M/i}else if(_<s){n=.707106781;i=.707106781;r=0}else{r=Math.sqrt(_);n=y/r;i=M/r}this.set(n,i,r,e);return this}let _=Math.sqrt((m-p)*(m-p)+(h-f)*(h-f)+(u-c)*(u-c));Math.abs(_)<.001&&(_=1);this.x=(m-p)/_;this.y=(h-f)/_;this.z=(u-c)/_;this.w=Math.acos((l+d+g-1)/2);return this}setFromMatrixPosition(t){const e=t.elements;this.x=e[12];this.y=e[13];this.z=e[14];this.w=e[15];return this}min(t){this.x=Math.min(this.x,t.x);this.y=Math.min(this.y,t.y);this.z=Math.min(this.z,t.z);this.w=Math.min(this.w,t.w);return this}max(t){this.x=Math.max(this.x,t.x);this.y=Math.max(this.y,t.y);this.z=Math.max(this.z,t.z);this.w=Math.max(this.w,t.w);return this}clamp(t,e){this.x=Math.max(t.x,Math.min(e.x,this.x));this.y=Math.max(t.y,Math.min(e.y,this.y));this.z=Math.max(t.z,Math.min(e.z,this.z));this.w=Math.max(t.w,Math.min(e.w,this.w));return this}clampScalar(t,e){this.x=Math.max(t,Math.min(e,this.x));this.y=Math.max(t,Math.min(e,this.y));this.z=Math.max(t,Math.min(e,this.z));this.w=Math.max(t,Math.min(e,this.w));return this}clampLength(t,e){const n=this.length();return this.divideScalar(n||1).multiplyScalar(Math.max(t,Math.min(e,n)))}floor(){this.x=Math.floor(this.x);this.y=Math.floor(this.y);this.z=Math.floor(this.z);this.w=Math.floor(this.w);return this}ceil(){this.x=Math.ceil(this.x);this.y=Math.ceil(this.y);this.z=Math.ceil(this.z);this.w=Math.ceil(this.w);return this}round(){this.x=Math.round(this.x);this.y=Math.round(this.y);this.z=Math.round(this.z);this.w=Math.round(this.w);return this}roundToZero(){this.x=Math.trunc(this.x);this.y=Math.trunc(this.y);this.z=Math.trunc(this.z);this.w=Math.trunc(this.w);return this}negate(){this.x=-this.x;this.y=-this.y;this.z=-this.z;this.w=-this.w;return this}dot(t){return this.x*t.x+this.y*t.y+this.z*t.z+this.w*t.w}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)+Math.abs(this.w)}normalize(){return this.divideScalar(this.length()||1)}setLength(t){return this.normalize().multiplyScalar(t)}lerp(t,e){this.x+=(t.x-this.x)*e;this.y+=(t.y-this.y)*e;this.z+=(t.z-this.z)*e;this.w+=(t.w-this.w)*e;return this}lerpVectors(t,e,n){this.x=t.x+(e.x-t.x)*n;this.y=t.y+(e.y-t.y)*n;this.z=t.z+(e.z-t.z)*n;this.w=t.w+(e.w-t.w)*n;return this}equals(t){return t.x===this.x&&t.y===this.y&&t.z===this.z&&t.w===this.w}fromArray(t,e=0){this.x=t[e];this.y=t[e+1];this.z=t[e+2];this.w=t[e+3];return this}toArray(t=[],e=0){t[e]=this.x;t[e+1]=this.y;t[e+2]=this.z;t[e+3]=this.w;return t}fromBufferAttribute(t,e){this.x=t.getX(e);this.y=t.getY(e);this.z=t.getZ(e);this.w=t.getW(e);return this}random(){this.x=Math.random();this.y=Math.random();this.z=Math.random();this.w=Math.random();return this}*[Symbol.iterator](){yield this.x;yield this.y;yield this.z;yield this.w}}class RenderTarget extends EventDispatcher{constructor(t=1,e=1,n={}){super();this.isRenderTarget=true;this.width=t;this.height=e;this.depth=1;this.scissor=new Vector4(0,0,t,e);this.scissorTest=false;this.viewport=new Vector4(0,0,t,e);const i={width:t,height:e,depth:1};n=Object.assign({generateMipmaps:false,internalFormat:null,minFilter:St,depthBuffer:true,stencilBuffer:false,resolveDepthBuffer:true,resolveStencilBuffer:true,depthTexture:null,samples:0,count:1},n);const r=new Texture(i,n.mapping,n.wrapS,n.wrapT,n.magFilter,n.minFilter,n.format,n.type,n.anisotropy,n.colorSpace);r.flipY=false;r.generateMipmaps=n.generateMipmaps;r.internalFormat=n.internalFormat;this.textures=[];const s=n.count;for(let t=0;t<s;t++){this.textures[t]=r.clone();this.textures[t].isRenderTargetTexture=true}this.depthBuffer=n.depthBuffer;this.stencilBuffer=n.stencilBuffer;this.resolveDepthBuffer=n.resolveDepthBuffer;this.resolveStencilBuffer=n.resolveStencilBuffer;this.depthTexture=n.depthTexture;this.samples=n.samples}get texture(){return this.textures[0]}set texture(t){this.textures[0]=t}setSize(t,e,n=1){if(this.width!==t||this.height!==e||this.depth!==n){this.width=t;this.height=e;this.depth=n;for(let i=0,r=this.textures.length;i<r;i++){this.textures[i].image.width=t;this.textures[i].image.height=e;this.textures[i].image.depth=n}this.dispose()}this.viewport.set(0,0,t,e);this.scissor.set(0,0,t,e)}clone(){return(new this.constructor).copy(this)}copy(t){this.width=t.width;this.height=t.height;this.depth=t.depth;this.scissor.copy(t.scissor);this.scissorTest=t.scissorTest;this.viewport.copy(t.viewport);this.textures.length=0;for(let e=0,n=t.textures.length;e<n;e++){this.textures[e]=t.textures[e].clone();this.textures[e].isRenderTargetTexture=true}const e=Object.assign({},t.texture.image);this.texture.source=new Source(e);this.depthBuffer=t.depthBuffer;this.stencilBuffer=t.stencilBuffer;this.resolveDepthBuffer=t.resolveDepthBuffer;this.resolveStencilBuffer=t.resolveStencilBuffer;t.depthTexture!==null&&(this.depthTexture=t.depthTexture.clone());this.samples=t.samples;return this}dispose(){this.dispatchEvent({type:\"dispose\"})}}class WebGLRenderTarget extends RenderTarget{constructor(t=1,e=1,n={}){super(t,e,n);this.isWebGLRenderTarget=true}}class DataArrayTexture extends Texture{constructor(t=null,e=1,n=1,i=1){super(null);this.isDataArrayTexture=true;this.image={data:t,width:e,height:n,depth:i};this.magFilter=vt;this.minFilter=vt;this.wrapR=mt;this.generateMipmaps=false;this.flipY=false;this.unpackAlignment=1;this.layerUpdates=new Set}addLayerUpdate(t){this.layerUpdates.add(t)}clearLayerUpdates(){this.layerUpdates.clear()}}class WebGLArrayRenderTarget extends WebGLRenderTarget{constructor(t=1,e=1,n=1,i={}){super(t,e,i);this.isWebGLArrayRenderTarget=true;this.depth=n;this.texture=new DataArrayTexture(null,t,e,n);this.texture.isRenderTargetTexture=true}}class Data3DTexture extends Texture{constructor(t=null,e=1,n=1,i=1){super(null);this.isData3DTexture=true;this.image={data:t,width:e,height:n,depth:i};this.magFilter=vt;this.minFilter=vt;this.wrapR=mt;this.generateMipmaps=false;this.flipY=false;this.unpackAlignment=1}}class WebGL3DRenderTarget extends WebGLRenderTarget{constructor(t=1,e=1,n=1,i={}){super(t,e,i);this.isWebGL3DRenderTarget=true;this.depth=n;this.texture=new Data3DTexture(null,t,e,n);this.texture.isRenderTargetTexture=true}}class Quaternion{constructor(t=0,e=0,n=0,i=1){this.isQuaternion=true;this._x=t;this._y=e;this._z=n;this._w=i}static slerpFlat(t,e,n,i,r,s,a){let o=n[i+0],l=n[i+1],c=n[i+2],h=n[i+3];const u=r[s+0],d=r[s+1],p=r[s+2],f=r[s+3];if(a!==0)if(a!==1){if(h!==f||o!==u||l!==d||c!==p){let t=1-a;const e=o*u+l*d+c*p+h*f,n=e>=0?1:-1,i=1-e*e;if(i>Number.EPSILON){const r=Math.sqrt(i),s=Math.atan2(r,e*n);t=Math.sin(t*s)/r;a=Math.sin(a*s)/r}const r=a*n;o=o*t+u*r;l=l*t+d*r;c=c*t+p*r;h=h*t+f*r;if(t===1-a){const t=1/Math.sqrt(o*o+l*l+c*c+h*h);o*=t;l*=t;c*=t;h*=t}}t[e]=o;t[e+1]=l;t[e+2]=c;t[e+3]=h}else{t[e+0]=u;t[e+1]=d;t[e+2]=p;t[e+3]=f}else{t[e+0]=o;t[e+1]=l;t[e+2]=c;t[e+3]=h}}static multiplyQuaternionsFlat(t,e,n,i,r,s){const a=n[i];const o=n[i+1];const l=n[i+2];const c=n[i+3];const h=r[s];const u=r[s+1];const d=r[s+2];const p=r[s+3];t[e]=a*p+c*h+o*d-l*u;t[e+1]=o*p+c*u+l*h-a*d;t[e+2]=l*p+c*d+a*u-o*h;t[e+3]=c*p-a*h-o*u-l*d;return t}get x(){return this._x}set x(t){this._x=t;this._onChangeCallback()}get y(){return this._y}set y(t){this._y=t;this._onChangeCallback()}get z(){return this._z}set z(t){this._z=t;this._onChangeCallback()}get w(){return this._w}set w(t){this._w=t;this._onChangeCallback()}set(t,e,n,i){this._x=t;this._y=e;this._z=n;this._w=i;this._onChangeCallback();return this}clone(){return new this.constructor(this._x,this._y,this._z,this._w)}copy(t){this._x=t.x;this._y=t.y;this._z=t.z;this._w=t.w;this._onChangeCallback();return this}setFromEuler(t,e=true){const n=t._x,i=t._y,r=t._z,s=t._order;const a=Math.cos;const o=Math.sin;const l=a(n/2);const c=a(i/2);const h=a(r/2);const u=o(n/2);const d=o(i/2);const p=o(r/2);switch(s){case\"XYZ\":this._x=u*c*h+l*d*p;this._y=l*d*h-u*c*p;this._z=l*c*p+u*d*h;this._w=l*c*h-u*d*p;break;case\"YXZ\":this._x=u*c*h+l*d*p;this._y=l*d*h-u*c*p;this._z=l*c*p-u*d*h;this._w=l*c*h+u*d*p;break;case\"ZXY\":this._x=u*c*h-l*d*p;this._y=l*d*h+u*c*p;this._z=l*c*p+u*d*h;this._w=l*c*h-u*d*p;break;case\"ZYX\":this._x=u*c*h-l*d*p;this._y=l*d*h+u*c*p;this._z=l*c*p-u*d*h;this._w=l*c*h+u*d*p;break;case\"YZX\":this._x=u*c*h+l*d*p;this._y=l*d*h+u*c*p;this._z=l*c*p-u*d*h;this._w=l*c*h-u*d*p;break;case\"XZY\":this._x=u*c*h-l*d*p;this._y=l*d*h-u*c*p;this._z=l*c*p+u*d*h;this._w=l*c*h+u*d*p;break;default:console.warn(\"THREE.Quaternion: .setFromEuler() encountered an unknown order: \"+s)}e===true&&this._onChangeCallback();return this}setFromAxisAngle(t,e){const n=e/2,i=Math.sin(n);this._x=t.x*i;this._y=t.y*i;this._z=t.z*i;this._w=Math.cos(n);this._onChangeCallback();return this}setFromRotationMatrix(t){const e=t.elements,n=e[0],i=e[4],r=e[8],s=e[1],a=e[5],o=e[9],l=e[2],c=e[6],h=e[10],u=n+a+h;if(u>0){const t=.5/Math.sqrt(u+1);this._w=.25/t;this._x=(c-o)*t;this._y=(r-l)*t;this._z=(s-i)*t}else if(n>a&&n>h){const t=2*Math.sqrt(1+n-a-h);this._w=(c-o)/t;this._x=.25*t;this._y=(i+s)/t;this._z=(r+l)/t}else if(a>h){const t=2*Math.sqrt(1+a-n-h);this._w=(r-l)/t;this._x=(i+s)/t;this._y=.25*t;this._z=(o+c)/t}else{const t=2*Math.sqrt(1+h-n-a);this._w=(s-i)/t;this._x=(r+l)/t;this._y=(o+c)/t;this._z=.25*t}this._onChangeCallback();return this}setFromUnitVectors(t,e){let n=t.dot(e)+1;if(n<Number.EPSILON){n=0;if(Math.abs(t.x)>Math.abs(t.z)){this._x=-t.y;this._y=t.x;this._z=0;this._w=n}else{this._x=0;this._y=-t.z;this._z=t.y;this._w=n}}else{this._x=t.y*e.z-t.z*e.y;this._y=t.z*e.x-t.x*e.z;this._z=t.x*e.y-t.y*e.x;this._w=n}return this.normalize()}angleTo(t){return 2*Math.acos(Math.abs(clamp(this.dot(t),-1,1)))}rotateTowards(t,e){const n=this.angleTo(t);if(n===0)return this;const i=Math.min(1,e/n);this.slerp(t,i);return this}identity(){return this.set(0,0,0,1)}invert(){return this.conjugate()}conjugate(){this._x*=-1;this._y*=-1;this._z*=-1;this._onChangeCallback();return this}dot(t){return this._x*t._x+this._y*t._y+this._z*t._z+this._w*t._w}lengthSq(){return this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w}length(){return Math.sqrt(this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w)}normalize(){let t=this.length();if(t===0){this._x=0;this._y=0;this._z=0;this._w=1}else{t=1/t;this._x=this._x*t;this._y=this._y*t;this._z=this._z*t;this._w=this._w*t}this._onChangeCallback();return this}multiply(t){return this.multiplyQuaternions(this,t)}premultiply(t){return this.multiplyQuaternions(t,this)}multiplyQuaternions(t,e){const n=t._x,i=t._y,r=t._z,s=t._w;const a=e._x,o=e._y,l=e._z,c=e._w;this._x=n*c+s*a+i*l-r*o;this._y=i*c+s*o+r*a-n*l;this._z=r*c+s*l+n*o-i*a;this._w=s*c-n*a-i*o-r*l;this._onChangeCallback();return this}slerp(t,e){if(e===0)return this;if(e===1)return this.copy(t);const n=this._x,i=this._y,r=this._z,s=this._w;let a=s*t._w+n*t._x+i*t._y+r*t._z;if(a<0){this._w=-t._w;this._x=-t._x;this._y=-t._y;this._z=-t._z;a=-a}else this.copy(t);if(a>=1){this._w=s;this._x=n;this._y=i;this._z=r;return this}const o=1-a*a;if(o<=Number.EPSILON){const t=1-e;this._w=t*s+e*this._w;this._x=t*n+e*this._x;this._y=t*i+e*this._y;this._z=t*r+e*this._z;this.normalize();return this}const l=Math.sqrt(o);const c=Math.atan2(l,a);const h=Math.sin((1-e)*c)/l,u=Math.sin(e*c)/l;this._w=s*h+this._w*u;this._x=n*h+this._x*u;this._y=i*h+this._y*u;this._z=r*h+this._z*u;this._onChangeCallback();return this}slerpQuaternions(t,e,n){return this.copy(t).slerp(e,n)}random(){const t=2*Math.PI*Math.random();const e=2*Math.PI*Math.random();const n=Math.random();const i=Math.sqrt(1-n);const r=Math.sqrt(n);return this.set(i*Math.sin(t),i*Math.cos(t),r*Math.sin(e),r*Math.cos(e))}equals(t){return t._x===this._x&&t._y===this._y&&t._z===this._z&&t._w===this._w}fromArray(t,e=0){this._x=t[e];this._y=t[e+1];this._z=t[e+2];this._w=t[e+3];this._onChangeCallback();return this}toArray(t=[],e=0){t[e]=this._x;t[e+1]=this._y;t[e+2]=this._z;t[e+3]=this._w;return t}fromBufferAttribute(t,e){this._x=t.getX(e);this._y=t.getY(e);this._z=t.getZ(e);this._w=t.getW(e);this._onChangeCallback();return this}toJSON(){return this.toArray()}_onChange(t){this._onChangeCallback=t;return this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x;yield this._y;yield this._z;yield this._w}}class Vector3{constructor(t=0,e=0,n=0){Vector3.prototype.isVector3=true;this.x=t;this.y=e;this.z=n}set(t,e,n){n===void 0&&(n=this.z);this.x=t;this.y=e;this.z=n;return this}setScalar(t){this.x=t;this.y=t;this.z=t;return this}setX(t){this.x=t;return this}setY(t){this.y=t;return this}setZ(t){this.z=t;return this}setComponent(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;case 2:this.z=e;break;default:throw new Error(\"index is out of range: \"+t)}return this}getComponent(t){switch(t){case 0:return this.x;case 1:return this.y;case 2:return this.z;default:throw new Error(\"index is out of range: \"+t)}}clone(){return new this.constructor(this.x,this.y,this.z)}copy(t){this.x=t.x;this.y=t.y;this.z=t.z;return this}add(t){this.x+=t.x;this.y+=t.y;this.z+=t.z;return this}addScalar(t){this.x+=t;this.y+=t;this.z+=t;return this}addVectors(t,e){this.x=t.x+e.x;this.y=t.y+e.y;this.z=t.z+e.z;return this}addScaledVector(t,e){this.x+=t.x*e;this.y+=t.y*e;this.z+=t.z*e;return this}sub(t){this.x-=t.x;this.y-=t.y;this.z-=t.z;return this}subScalar(t){this.x-=t;this.y-=t;this.z-=t;return this}subVectors(t,e){this.x=t.x-e.x;this.y=t.y-e.y;this.z=t.z-e.z;return this}multiply(t){this.x*=t.x;this.y*=t.y;this.z*=t.z;return this}multiplyScalar(t){this.x*=t;this.y*=t;this.z*=t;return this}multiplyVectors(t,e){this.x=t.x*e.x;this.y=t.y*e.y;this.z=t.z*e.z;return this}applyEuler(t){return this.applyQuaternion(ai.setFromEuler(t))}applyAxisAngle(t,e){return this.applyQuaternion(ai.setFromAxisAngle(t,e))}applyMatrix3(t){const e=this.x,n=this.y,i=this.z;const r=t.elements;this.x=r[0]*e+r[3]*n+r[6]*i;this.y=r[1]*e+r[4]*n+r[7]*i;this.z=r[2]*e+r[5]*n+r[8]*i;return this}applyNormalMatrix(t){return this.applyMatrix3(t).normalize()}applyMatrix4(t){const e=this.x,n=this.y,i=this.z;const r=t.elements;const s=1/(r[3]*e+r[7]*n+r[11]*i+r[15]);this.x=(r[0]*e+r[4]*n+r[8]*i+r[12])*s;this.y=(r[1]*e+r[5]*n+r[9]*i+r[13])*s;this.z=(r[2]*e+r[6]*n+r[10]*i+r[14])*s;return this}applyQuaternion(t){const e=this.x,n=this.y,i=this.z;const r=t.x,s=t.y,a=t.z,o=t.w;const l=2*(s*i-a*n);const c=2*(a*e-r*i);const h=2*(r*n-s*e);this.x=e+o*l+s*h-a*c;this.y=n+o*c+a*l-r*h;this.z=i+o*h+r*c-s*l;return this}project(t){return this.applyMatrix4(t.matrixWorldInverse).applyMatrix4(t.projectionMatrix)}unproject(t){return this.applyMatrix4(t.projectionMatrixInverse).applyMatrix4(t.matrixWorld)}transformDirection(t){const e=this.x,n=this.y,i=this.z;const r=t.elements;this.x=r[0]*e+r[4]*n+r[8]*i;this.y=r[1]*e+r[5]*n+r[9]*i;this.z=r[2]*e+r[6]*n+r[10]*i;return this.normalize()}divide(t){this.x/=t.x;this.y/=t.y;this.z/=t.z;return this}divideScalar(t){return this.multiplyScalar(1/t)}min(t){this.x=Math.min(this.x,t.x);this.y=Math.min(this.y,t.y);this.z=Math.min(this.z,t.z);return this}max(t){this.x=Math.max(this.x,t.x);this.y=Math.max(this.y,t.y);this.z=Math.max(this.z,t.z);return this}clamp(t,e){this.x=Math.max(t.x,Math.min(e.x,this.x));this.y=Math.max(t.y,Math.min(e.y,this.y));this.z=Math.max(t.z,Math.min(e.z,this.z));return this}clampScalar(t,e){this.x=Math.max(t,Math.min(e,this.x));this.y=Math.max(t,Math.min(e,this.y));this.z=Math.max(t,Math.min(e,this.z));return this}clampLength(t,e){const n=this.length();return this.divideScalar(n||1).multiplyScalar(Math.max(t,Math.min(e,n)))}floor(){this.x=Math.floor(this.x);this.y=Math.floor(this.y);this.z=Math.floor(this.z);return this}ceil(){this.x=Math.ceil(this.x);this.y=Math.ceil(this.y);this.z=Math.ceil(this.z);return this}round(){this.x=Math.round(this.x);this.y=Math.round(this.y);this.z=Math.round(this.z);return this}roundToZero(){this.x=Math.trunc(this.x);this.y=Math.trunc(this.y);this.z=Math.trunc(this.z);return this}negate(){this.x=-this.x;this.y=-this.y;this.z=-this.z;return this}dot(t){return this.x*t.x+this.y*t.y+this.z*t.z}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)}normalize(){return this.divideScalar(this.length()||1)}setLength(t){return this.normalize().multiplyScalar(t)}lerp(t,e){this.x+=(t.x-this.x)*e;this.y+=(t.y-this.y)*e;this.z+=(t.z-this.z)*e;return this}lerpVectors(t,e,n){this.x=t.x+(e.x-t.x)*n;this.y=t.y+(e.y-t.y)*n;this.z=t.z+(e.z-t.z)*n;return this}cross(t){return this.crossVectors(this,t)}crossVectors(t,e){const n=t.x,i=t.y,r=t.z;const s=e.x,a=e.y,o=e.z;this.x=i*o-r*a;this.y=r*s-n*o;this.z=n*a-i*s;return this}projectOnVector(t){const e=t.lengthSq();if(e===0)return this.set(0,0,0);const n=t.dot(this)/e;return this.copy(t).multiplyScalar(n)}projectOnPlane(t){si.copy(this).projectOnVector(t);return this.sub(si)}reflect(t){return this.sub(si.copy(t).multiplyScalar(2*this.dot(t)))}angleTo(t){const e=Math.sqrt(this.lengthSq()*t.lengthSq());if(e===0)return Math.PI/2;const n=this.dot(t)/e;return Math.acos(clamp(n,-1,1))}distanceTo(t){return Math.sqrt(this.distanceToSquared(t))}distanceToSquared(t){const e=this.x-t.x,n=this.y-t.y,i=this.z-t.z;return e*e+n*n+i*i}manhattanDistanceTo(t){return Math.abs(this.x-t.x)+Math.abs(this.y-t.y)+Math.abs(this.z-t.z)}setFromSpherical(t){return this.setFromSphericalCoords(t.radius,t.phi,t.theta)}setFromSphericalCoords(t,e,n){const i=Math.sin(e)*t;this.x=i*Math.sin(n);this.y=Math.cos(e)*t;this.z=i*Math.cos(n);return this}setFromCylindrical(t){return this.setFromCylindricalCoords(t.radius,t.theta,t.y)}setFromCylindricalCoords(t,e,n){this.x=t*Math.sin(e);this.y=n;this.z=t*Math.cos(e);return this}setFromMatrixPosition(t){const e=t.elements;this.x=e[12];this.y=e[13];this.z=e[14];return this}setFromMatrixScale(t){const e=this.setFromMatrixColumn(t,0).length();const n=this.setFromMatrixColumn(t,1).length();const i=this.setFromMatrixColumn(t,2).length();this.x=e;this.y=n;this.z=i;return this}setFromMatrixColumn(t,e){return this.fromArray(t.elements,e*4)}setFromMatrix3Column(t,e){return this.fromArray(t.elements,e*3)}setFromEuler(t){this.x=t._x;this.y=t._y;this.z=t._z;return this}setFromColor(t){this.x=t.r;this.y=t.g;this.z=t.b;return this}equals(t){return t.x===this.x&&t.y===this.y&&t.z===this.z}fromArray(t,e=0){this.x=t[e];this.y=t[e+1];this.z=t[e+2];return this}toArray(t=[],e=0){t[e]=this.x;t[e+1]=this.y;t[e+2]=this.z;return t}fromBufferAttribute(t,e){this.x=t.getX(e);this.y=t.getY(e);this.z=t.getZ(e);return this}random(){this.x=Math.random();this.y=Math.random();this.z=Math.random();return this}randomDirection(){const t=Math.random()*Math.PI*2;const e=Math.random()*2-1;const n=Math.sqrt(1-e*e);this.x=n*Math.cos(t);this.y=e;this.z=n*Math.sin(t);return this}*[Symbol.iterator](){yield this.x;yield this.y;yield this.z}}const si=new Vector3;const ai=new Quaternion;class Box3{constructor(t=new Vector3(Infinity,Infinity,Infinity),e=new Vector3(-Infinity,-Infinity,-Infinity)){this.isBox3=true;this.min=t;this.max=e}set(t,e){this.min.copy(t);this.max.copy(e);return this}setFromArray(t){this.makeEmpty();for(let e=0,n=t.length;e<n;e+=3)this.expandByPoint(li.fromArray(t,e));return this}setFromBufferAttribute(t){this.makeEmpty();for(let e=0,n=t.count;e<n;e++)this.expandByPoint(li.fromBufferAttribute(t,e));return this}setFromPoints(t){this.makeEmpty();for(let e=0,n=t.length;e<n;e++)this.expandByPoint(t[e]);return this}setFromCenterAndSize(t,e){const n=li.copy(e).multiplyScalar(.5);this.min.copy(t).sub(n);this.max.copy(t).add(n);return this}setFromObject(t,e=false){this.makeEmpty();return this.expandByObject(t,e)}clone(){return(new this.constructor).copy(this)}copy(t){this.min.copy(t.min);this.max.copy(t.max);return this}makeEmpty(){this.min.x=this.min.y=this.min.z=Infinity;this.max.x=this.max.y=this.max.z=-Infinity;return this}isEmpty(){return this.max.x<this.min.x||this.max.y<this.min.y||this.max.z<this.min.z}getCenter(t){return this.isEmpty()?t.set(0,0,0):t.addVectors(this.min,this.max).multiplyScalar(.5)}getSize(t){return this.isEmpty()?t.set(0,0,0):t.subVectors(this.max,this.min)}expandByPoint(t){this.min.min(t);this.max.max(t);return this}expandByVector(t){this.min.sub(t);this.max.add(t);return this}expandByScalar(t){this.min.addScalar(-t);this.max.addScalar(t);return this}expandByObject(t,e=false){t.updateWorldMatrix(false,false);const n=t.geometry;if(n!==void 0){const i=n.getAttribute(\"position\");if(e===true&&i!==void 0&&t.isInstancedMesh!==true)for(let e=0,n=i.count;e<n;e++){t.isMesh===true?t.getVertexPosition(e,li):li.fromBufferAttribute(i,e);li.applyMatrix4(t.matrixWorld);this.expandByPoint(li)}else{if(t.boundingBox!==void 0){t.boundingBox===null&&t.computeBoundingBox();ci.copy(t.boundingBox)}else{n.boundingBox===null&&n.computeBoundingBox();ci.copy(n.boundingBox)}ci.applyMatrix4(t.matrixWorld);this.union(ci)}}const i=t.children;for(let t=0,n=i.length;t<n;t++)this.expandByObject(i[t],e);return this}containsPoint(t){return t.x>=this.min.x&&t.x<=this.max.x&&t.y>=this.min.y&&t.y<=this.max.y&&t.z>=this.min.z&&t.z<=this.max.z}containsBox(t){return this.min.x<=t.min.x&&t.max.x<=this.max.x&&this.min.y<=t.min.y&&t.max.y<=this.max.y&&this.min.z<=t.min.z&&t.max.z<=this.max.z}getParameter(t,e){return e.set((t.x-this.min.x)/(this.max.x-this.min.x),(t.y-this.min.y)/(this.max.y-this.min.y),(t.z-this.min.z)/(this.max.z-this.min.z))}intersectsBox(t){return t.max.x>=this.min.x&&t.min.x<=this.max.x&&t.max.y>=this.min.y&&t.min.y<=this.max.y&&t.max.z>=this.min.z&&t.min.z<=this.max.z}intersectsSphere(t){this.clampPoint(t.center,li);return li.distanceToSquared(t.center)<=t.radius*t.radius}intersectsPlane(t){let e,n;if(t.normal.x>0){e=t.normal.x*this.min.x;n=t.normal.x*this.max.x}else{e=t.normal.x*this.max.x;n=t.normal.x*this.min.x}if(t.normal.y>0){e+=t.normal.y*this.min.y;n+=t.normal.y*this.max.y}else{e+=t.normal.y*this.max.y;n+=t.normal.y*this.min.y}if(t.normal.z>0){e+=t.normal.z*this.min.z;n+=t.normal.z*this.max.z}else{e+=t.normal.z*this.max.z;n+=t.normal.z*this.min.z}return e<=-t.constant&&n>=-t.constant}intersectsTriangle(t){if(this.isEmpty())return false;this.getCenter(gi);vi.subVectors(this.max,gi);hi.subVectors(t.a,gi);ui.subVectors(t.b,gi);di.subVectors(t.c,gi);pi.subVectors(ui,hi);fi.subVectors(di,ui);mi.subVectors(hi,di);let e=[0,-pi.z,pi.y,0,-fi.z,fi.y,0,-mi.z,mi.y,pi.z,0,-pi.x,fi.z,0,-fi.x,mi.z,0,-mi.x,-pi.y,pi.x,0,-fi.y,fi.x,0,-mi.y,mi.x,0];if(!satForAxes(e,hi,ui,di,vi))return false;e=[1,0,0,0,1,0,0,0,1];if(!satForAxes(e,hi,ui,di,vi))return false;_i.crossVectors(pi,fi);e=[_i.x,_i.y,_i.z];return satForAxes(e,hi,ui,di,vi)}clampPoint(t,e){return e.copy(t).clamp(this.min,this.max)}distanceToPoint(t){return this.clampPoint(t,li).distanceTo(t)}getBoundingSphere(t){if(this.isEmpty())t.makeEmpty();else{this.getCenter(t.center);t.radius=this.getSize(li).length()*.5}return t}intersect(t){this.min.max(t.min);this.max.min(t.max);this.isEmpty()&&this.makeEmpty();return this}union(t){this.min.min(t.min);this.max.max(t.max);return this}applyMatrix4(t){if(this.isEmpty())return this;oi[0].set(this.min.x,this.min.y,this.min.z).applyMatrix4(t);oi[1].set(this.min.x,this.min.y,this.max.z).applyMatrix4(t);oi[2].set(this.min.x,this.max.y,this.min.z).applyMatrix4(t);oi[3].set(this.min.x,this.max.y,this.max.z).applyMatrix4(t);oi[4].set(this.max.x,this.min.y,this.min.z).applyMatrix4(t);oi[5].set(this.max.x,this.min.y,this.max.z).applyMatrix4(t);oi[6].set(this.max.x,this.max.y,this.min.z).applyMatrix4(t);oi[7].set(this.max.x,this.max.y,this.max.z).applyMatrix4(t);this.setFromPoints(oi);return this}translate(t){this.min.add(t);this.max.add(t);return this}equals(t){return t.min.equals(this.min)&&t.max.equals(this.max)}}const oi=[new Vector3,new Vector3,new Vector3,new Vector3,new Vector3,new Vector3,new Vector3,new Vector3];const li=new Vector3;const ci=new Box3;const hi=new Vector3;const ui=new Vector3;const di=new Vector3;const pi=new Vector3;const fi=new Vector3;const mi=new Vector3;const gi=new Vector3;const vi=new Vector3;const _i=new Vector3;const xi=new Vector3;function satForAxes(t,e,n,i,r){for(let s=0,a=t.length-3;s<=a;s+=3){xi.fromArray(t,s);const a=r.x*Math.abs(xi.x)+r.y*Math.abs(xi.y)+r.z*Math.abs(xi.z);const o=e.dot(xi);const l=n.dot(xi);const c=i.dot(xi);if(Math.max(-Math.max(o,l,c),Math.min(o,l,c))>a)return false}return true}const yi=new Box3;const Mi=new Vector3;const Si=new Vector3;class Sphere{constructor(t=new Vector3,e=-1){this.isSphere=true;this.center=t;this.radius=e}set(t,e){this.center.copy(t);this.radius=e;return this}setFromPoints(t,e){const n=this.center;e!==void 0?n.copy(e):yi.setFromPoints(t).getCenter(n);let i=0;for(let e=0,r=t.length;e<r;e++)i=Math.max(i,n.distanceToSquared(t[e]));this.radius=Math.sqrt(i);return this}copy(t){this.center.copy(t.center);this.radius=t.radius;return this}isEmpty(){return this.radius<0}makeEmpty(){this.center.set(0,0,0);this.radius=-1;return this}containsPoint(t){return t.distanceToSquared(this.center)<=this.radius*this.radius}distanceToPoint(t){return t.distanceTo(this.center)-this.radius}intersectsSphere(t){const e=this.radius+t.radius;return t.center.distanceToSquared(this.center)<=e*e}intersectsBox(t){return t.intersectsSphere(this)}intersectsPlane(t){return Math.abs(t.distanceToPoint(this.center))<=this.radius}clampPoint(t,e){const n=this.center.distanceToSquared(t);e.copy(t);if(n>this.radius*this.radius){e.sub(this.center).normalize();e.multiplyScalar(this.radius).add(this.center)}return e}getBoundingBox(t){if(this.isEmpty()){t.makeEmpty();return t}t.set(this.center,this.center);t.expandByScalar(this.radius);return t}applyMatrix4(t){this.center.applyMatrix4(t);this.radius=this.radius*t.getMaxScaleOnAxis();return this}translate(t){this.center.add(t);return this}expandByPoint(t){if(this.isEmpty()){this.center.copy(t);this.radius=0;return this}Mi.subVectors(t,this.center);const e=Mi.lengthSq();if(e>this.radius*this.radius){const t=Math.sqrt(e);const n=.5*(t-this.radius);this.center.addScaledVector(Mi,n/t);this.radius+=n}return this}union(t){if(t.isEmpty())return this;if(this.isEmpty()){this.copy(t);return this}if(this.center.equals(t.center)===true)this.radius=Math.max(this.radius,t.radius);else{Si.subVectors(t.center,this.center).setLength(t.radius);this.expandByPoint(Mi.copy(t.center).add(Si));this.expandByPoint(Mi.copy(t.center).sub(Si))}return this}equals(t){return t.center.equals(this.center)&&t.radius===this.radius}clone(){return(new this.constructor).copy(this)}}const bi=new Vector3;const Ti=new Vector3;const wi=new Vector3;const Ei=new Vector3;const Ai=new Vector3;const Ci=new Vector3;const Ri=new Vector3;class Ray{constructor(t=new Vector3,e=new Vector3(0,0,-1)){this.origin=t;this.direction=e}set(t,e){this.origin.copy(t);this.direction.copy(e);return this}copy(t){this.origin.copy(t.origin);this.direction.copy(t.direction);return this}at(t,e){return e.copy(this.origin).addScaledVector(this.direction,t)}lookAt(t){this.direction.copy(t).sub(this.origin).normalize();return this}recast(t){this.origin.copy(this.at(t,bi));return this}closestPointToPoint(t,e){e.subVectors(t,this.origin);const n=e.dot(this.direction);return n<0?e.copy(this.origin):e.copy(this.origin).addScaledVector(this.direction,n)}distanceToPoint(t){return Math.sqrt(this.distanceSqToPoint(t))}distanceSqToPoint(t){const e=bi.subVectors(t,this.origin).dot(this.direction);if(e<0)return this.origin.distanceToSquared(t);bi.copy(this.origin).addScaledVector(this.direction,e);return bi.distanceToSquared(t)}distanceSqToSegment(t,e,n,i){Ti.copy(t).add(e).multiplyScalar(.5);wi.copy(e).sub(t).normalize();Ei.copy(this.origin).sub(Ti);const r=t.distanceTo(e)*.5;const s=-this.direction.dot(wi);const a=Ei.dot(this.direction);const o=-Ei.dot(wi);const l=Ei.lengthSq();const c=Math.abs(1-s*s);let h,u,d,p;if(c>0){h=s*o-a;u=s*a-o;p=r*c;if(h>=0)if(u>=-p)if(u<=p){const t=1/c;h*=t;u*=t;d=h*(h+s*u+2*a)+u*(s*h+u+2*o)+l}else{u=r;h=Math.max(0,-(s*u+a));d=-h*h+u*(u+2*o)+l}else{u=-r;h=Math.max(0,-(s*u+a));d=-h*h+u*(u+2*o)+l}else if(u<=-p){h=Math.max(0,-(-s*r+a));u=h>0?-r:Math.min(Math.max(-r,-o),r);d=-h*h+u*(u+2*o)+l}else if(u<=p){h=0;u=Math.min(Math.max(-r,-o),r);d=u*(u+2*o)+l}else{h=Math.max(0,-(s*r+a));u=h>0?r:Math.min(Math.max(-r,-o),r);d=-h*h+u*(u+2*o)+l}}else{u=s>0?-r:r;h=Math.max(0,-(s*u+a));d=-h*h+u*(u+2*o)+l}n&&n.copy(this.origin).addScaledVector(this.direction,h);i&&i.copy(Ti).addScaledVector(wi,u);return d}intersectSphere(t,e){bi.subVectors(t.center,this.origin);const n=bi.dot(this.direction);const i=bi.dot(bi)-n*n;const r=t.radius*t.radius;if(i>r)return null;const s=Math.sqrt(r-i);const a=n-s;const o=n+s;return o<0?null:a<0?this.at(o,e):this.at(a,e)}intersectsSphere(t){return this.distanceSqToPoint(t.center)<=t.radius*t.radius}distanceToPlane(t){const e=t.normal.dot(this.direction);if(e===0)return t.distanceToPoint(this.origin)===0?0:null;const n=-(this.origin.dot(t.normal)+t.constant)/e;return n>=0?n:null}intersectPlane(t,e){const n=this.distanceToPlane(t);return n===null?null:this.at(n,e)}intersectsPlane(t){const e=t.distanceToPoint(this.origin);if(e===0)return true;const n=t.normal.dot(this.direction);return n*e<0}intersectBox(t,e){let n,i,r,s,a,o;const l=1/this.direction.x,c=1/this.direction.y,h=1/this.direction.z;const u=this.origin;if(l>=0){n=(t.min.x-u.x)*l;i=(t.max.x-u.x)*l}else{n=(t.max.x-u.x)*l;i=(t.min.x-u.x)*l}if(c>=0){r=(t.min.y-u.y)*c;s=(t.max.y-u.y)*c}else{r=(t.max.y-u.y)*c;s=(t.min.y-u.y)*c}if(n>s||r>i)return null;(r>n||isNaN(n))&&(n=r);(s<i||isNaN(i))&&(i=s);if(h>=0){a=(t.min.z-u.z)*h;o=(t.max.z-u.z)*h}else{a=(t.max.z-u.z)*h;o=(t.min.z-u.z)*h}if(n>o||a>i)return null;(a>n||n!==n)&&(n=a);(o<i||i!==i)&&(i=o);return i<0?null:this.at(n>=0?n:i,e)}intersectsBox(t){return this.intersectBox(t,bi)!==null}intersectTriangle(t,e,n,i,r){Ai.subVectors(e,t);Ci.subVectors(n,t);Ri.crossVectors(Ai,Ci);let s=this.direction.dot(Ri);let a;if(s>0){if(i)return null;a=1}else{if(!(s<0))return null;a=-1;s=-s}Ei.subVectors(this.origin,t);const o=a*this.direction.dot(Ci.crossVectors(Ei,Ci));if(o<0)return null;const l=a*this.direction.dot(Ai.cross(Ei));if(l<0)return null;if(o+l>s)return null;const c=-a*Ei.dot(Ri);return c<0?null:this.at(c/s,r)}applyMatrix4(t){this.origin.applyMatrix4(t);this.direction.transformDirection(t);return this}equals(t){return t.origin.equals(this.origin)&&t.direction.equals(this.direction)}clone(){return(new this.constructor).copy(this)}}class Matrix4{constructor(t,e,n,i,r,s,a,o,l,c,h,u,d,p,f,m){Matrix4.prototype.isMatrix4=true;this.elements=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1];t!==void 0&&this.set(t,e,n,i,r,s,a,o,l,c,h,u,d,p,f,m)}set(t,e,n,i,r,s,a,o,l,c,h,u,d,p,f,m){const g=this.elements;g[0]=t;g[4]=e;g[8]=n;g[12]=i;g[1]=r;g[5]=s;g[9]=a;g[13]=o;g[2]=l;g[6]=c;g[10]=h;g[14]=u;g[3]=d;g[7]=p;g[11]=f;g[15]=m;return this}identity(){this.set(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1);return this}clone(){return(new Matrix4).fromArray(this.elements)}copy(t){const e=this.elements;const n=t.elements;e[0]=n[0];e[1]=n[1];e[2]=n[2];e[3]=n[3];e[4]=n[4];e[5]=n[5];e[6]=n[6];e[7]=n[7];e[8]=n[8];e[9]=n[9];e[10]=n[10];e[11]=n[11];e[12]=n[12];e[13]=n[13];e[14]=n[14];e[15]=n[15];return this}copyPosition(t){const e=this.elements,n=t.elements;e[12]=n[12];e[13]=n[13];e[14]=n[14];return this}setFromMatrix3(t){const e=t.elements;this.set(e[0],e[3],e[6],0,e[1],e[4],e[7],0,e[2],e[5],e[8],0,0,0,0,1);return this}extractBasis(t,e,n){t.setFromMatrixColumn(this,0);e.setFromMatrixColumn(this,1);n.setFromMatrixColumn(this,2);return this}makeBasis(t,e,n){this.set(t.x,e.x,n.x,0,t.y,e.y,n.y,0,t.z,e.z,n.z,0,0,0,0,1);return this}extractRotation(t){const e=this.elements;const n=t.elements;const i=1/Pi.setFromMatrixColumn(t,0).length();const r=1/Pi.setFromMatrixColumn(t,1).length();const s=1/Pi.setFromMatrixColumn(t,2).length();e[0]=n[0]*i;e[1]=n[1]*i;e[2]=n[2]*i;e[3]=0;e[4]=n[4]*r;e[5]=n[5]*r;e[6]=n[6]*r;e[7]=0;e[8]=n[8]*s;e[9]=n[9]*s;e[10]=n[10]*s;e[11]=0;e[12]=0;e[13]=0;e[14]=0;e[15]=1;return this}makeRotationFromEuler(t){const e=this.elements;const n=t.x,i=t.y,r=t.z;const s=Math.cos(n),a=Math.sin(n);const o=Math.cos(i),l=Math.sin(i);const c=Math.cos(r),h=Math.sin(r);if(t.order===\"XYZ\"){const t=s*c,n=s*h,i=a*c,r=a*h;e[0]=o*c;e[4]=-o*h;e[8]=l;e[1]=n+i*l;e[5]=t-r*l;e[9]=-a*o;e[2]=r-t*l;e[6]=i+n*l;e[10]=s*o}else if(t.order===\"YXZ\"){const t=o*c,n=o*h,i=l*c,r=l*h;e[0]=t+r*a;e[4]=i*a-n;e[8]=s*l;e[1]=s*h;e[5]=s*c;e[9]=-a;e[2]=n*a-i;e[6]=r+t*a;e[10]=s*o}else if(t.order===\"ZXY\"){const t=o*c,n=o*h,i=l*c,r=l*h;e[0]=t-r*a;e[4]=-s*h;e[8]=i+n*a;e[1]=n+i*a;e[5]=s*c;e[9]=r-t*a;e[2]=-s*l;e[6]=a;e[10]=s*o}else if(t.order===\"ZYX\"){const t=s*c,n=s*h,i=a*c,r=a*h;e[0]=o*c;e[4]=i*l-n;e[8]=t*l+r;e[1]=o*h;e[5]=r*l+t;e[9]=n*l-i;e[2]=-l;e[6]=a*o;e[10]=s*o}else if(t.order===\"YZX\"){const t=s*o,n=s*l,i=a*o,r=a*l;e[0]=o*c;e[4]=r-t*h;e[8]=i*h+n;e[1]=h;e[5]=s*c;e[9]=-a*c;e[2]=-l*c;e[6]=n*h+i;e[10]=t-r*h}else if(t.order===\"XZY\"){const t=s*o,n=s*l,i=a*o,r=a*l;e[0]=o*c;e[4]=-h;e[8]=l*c;e[1]=t*h+r;e[5]=s*c;e[9]=n*h-i;e[2]=i*h-n;e[6]=a*c;e[10]=r*h+t}e[3]=0;e[7]=0;e[11]=0;e[12]=0;e[13]=0;e[14]=0;e[15]=1;return this}makeRotationFromQuaternion(t){return this.compose(Ii,t,Ui)}lookAt(t,e,n){const i=this.elements;Bi.subVectors(t,e);Bi.lengthSq()===0&&(Bi.z=1);Bi.normalize();Di.crossVectors(n,Bi);if(Di.lengthSq()===0){Math.abs(n.z)===1?Bi.x+=1e-4:Bi.z+=1e-4;Bi.normalize();Di.crossVectors(n,Bi)}Di.normalize();Ni.crossVectors(Bi,Di);i[0]=Di.x;i[4]=Ni.x;i[8]=Bi.x;i[1]=Di.y;i[5]=Ni.y;i[9]=Bi.y;i[2]=Di.z;i[6]=Ni.z;i[10]=Bi.z;return this}multiply(t){return this.multiplyMatrices(this,t)}premultiply(t){return this.multiplyMatrices(t,this)}multiplyMatrices(t,e){const n=t.elements;const i=e.elements;const r=this.elements;const s=n[0],a=n[4],o=n[8],l=n[12];const c=n[1],h=n[5],u=n[9],d=n[13];const p=n[2],f=n[6],m=n[10],g=n[14];const _=n[3],x=n[7],y=n[11],M=n[15];const S=i[0],b=i[4],T=i[8],w=i[12];const E=i[1],A=i[5],C=i[9],R=i[13];const P=i[2],L=i[6],I=i[10],U=i[14];const D=i[3],N=i[7],B=i[11],O=i[15];r[0]=s*S+a*E+o*P+l*D;r[4]=s*b+a*A+o*L+l*N;r[8]=s*T+a*C+o*I+l*B;r[12]=s*w+a*R+o*U+l*O;r[1]=c*S+h*E+u*P+d*D;r[5]=c*b+h*A+u*L+d*N;r[9]=c*T+h*C+u*I+d*B;r[13]=c*w+h*R+u*U+d*O;r[2]=p*S+f*E+m*P+g*D;r[6]=p*b+f*A+m*L+g*N;r[10]=p*T+f*C+m*I+g*B;r[14]=p*w+f*R+m*U+g*O;r[3]=_*S+x*E+y*P+M*D;r[7]=_*b+x*A+y*L+M*N;r[11]=_*T+x*C+y*I+M*B;r[15]=_*w+x*R+y*U+M*O;return this}multiplyScalar(t){const e=this.elements;e[0]*=t;e[4]*=t;e[8]*=t;e[12]*=t;e[1]*=t;e[5]*=t;e[9]*=t;e[13]*=t;e[2]*=t;e[6]*=t;e[10]*=t;e[14]*=t;e[3]*=t;e[7]*=t;e[11]*=t;e[15]*=t;return this}determinant(){const t=this.elements;const e=t[0],n=t[4],i=t[8],r=t[12];const s=t[1],a=t[5],o=t[9],l=t[13];const c=t[2],h=t[6],u=t[10],d=t[14];const p=t[3],f=t[7],m=t[11],g=t[15];return p*(+r*o*h-i*l*h-r*a*u+n*l*u+i*a*d-n*o*d)+f*(+e*o*d-e*l*u+r*s*u-i*s*d+i*l*c-r*o*c)+m*(+e*l*h-e*a*d-r*s*h+n*s*d+r*a*c-n*l*c)+g*(-i*a*c-e*o*h+e*a*u+i*s*h-n*s*u+n*o*c)}transpose(){const t=this.elements;let e;e=t[1];t[1]=t[4];t[4]=e;e=t[2];t[2]=t[8];t[8]=e;e=t[6];t[6]=t[9];t[9]=e;e=t[3];t[3]=t[12];t[12]=e;e=t[7];t[7]=t[13];t[13]=e;e=t[11];t[11]=t[14];t[14]=e;return this}setPosition(t,e,n){const i=this.elements;if(t.isVector3){i[12]=t.x;i[13]=t.y;i[14]=t.z}else{i[12]=t;i[13]=e;i[14]=n}return this}invert(){const t=this.elements,e=t[0],n=t[1],i=t[2],r=t[3],s=t[4],a=t[5],o=t[6],l=t[7],c=t[8],h=t[9],u=t[10],d=t[11],p=t[12],f=t[13],m=t[14],g=t[15],_=h*m*l-f*u*l+f*o*d-a*m*d-h*o*g+a*u*g,x=p*u*l-c*m*l-p*o*d+s*m*d+c*o*g-s*u*g,y=c*f*l-p*h*l+p*a*d-s*f*d-c*a*g+s*h*g,M=p*h*o-c*f*o-p*a*u+s*f*u+c*a*m-s*h*m;const S=e*_+n*x+i*y+r*M;if(S===0)return this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);const b=1/S;t[0]=_*b;t[1]=(f*u*r-h*m*r-f*i*d+n*m*d+h*i*g-n*u*g)*b;t[2]=(a*m*r-f*o*r+f*i*l-n*m*l-a*i*g+n*o*g)*b;t[3]=(h*o*r-a*u*r-h*i*l+n*u*l+a*i*d-n*o*d)*b;t[4]=x*b;t[5]=(c*m*r-p*u*r+p*i*d-e*m*d-c*i*g+e*u*g)*b;t[6]=(p*o*r-s*m*r-p*i*l+e*m*l+s*i*g-e*o*g)*b;t[7]=(s*u*r-c*o*r+c*i*l-e*u*l-s*i*d+e*o*d)*b;t[8]=y*b;t[9]=(p*h*r-c*f*r-p*n*d+e*f*d+c*n*g-e*h*g)*b;t[10]=(s*f*r-p*a*r+p*n*l-e*f*l-s*n*g+e*a*g)*b;t[11]=(c*a*r-s*h*r-c*n*l+e*h*l+s*n*d-e*a*d)*b;t[12]=M*b;t[13]=(c*f*i-p*h*i+p*n*u-e*f*u-c*n*m+e*h*m)*b;t[14]=(p*a*i-s*f*i-p*n*o+e*f*o+s*n*m-e*a*m)*b;t[15]=(s*h*i-c*a*i+c*n*o-e*h*o-s*n*u+e*a*u)*b;return this}scale(t){const e=this.elements;const n=t.x,i=t.y,r=t.z;e[0]*=n;e[4]*=i;e[8]*=r;e[1]*=n;e[5]*=i;e[9]*=r;e[2]*=n;e[6]*=i;e[10]*=r;e[3]*=n;e[7]*=i;e[11]*=r;return this}getMaxScaleOnAxis(){const t=this.elements;const e=t[0]*t[0]+t[1]*t[1]+t[2]*t[2];const n=t[4]*t[4]+t[5]*t[5]+t[6]*t[6];const i=t[8]*t[8]+t[9]*t[9]+t[10]*t[10];return Math.sqrt(Math.max(e,n,i))}makeTranslation(t,e,n){t.isVector3?this.set(1,0,0,t.x,0,1,0,t.y,0,0,1,t.z,0,0,0,1):this.set(1,0,0,t,0,1,0,e,0,0,1,n,0,0,0,1);return this}makeRotationX(t){const e=Math.cos(t),n=Math.sin(t);this.set(1,0,0,0,0,e,-n,0,0,n,e,0,0,0,0,1);return this}makeRotationY(t){const e=Math.cos(t),n=Math.sin(t);this.set(e,0,n,0,0,1,0,0,-n,0,e,0,0,0,0,1);return this}makeRotationZ(t){const e=Math.cos(t),n=Math.sin(t);this.set(e,-n,0,0,n,e,0,0,0,0,1,0,0,0,0,1);return this}makeRotationAxis(t,e){const n=Math.cos(e);const i=Math.sin(e);const r=1-n;const s=t.x,a=t.y,o=t.z;const l=r*s,c=r*a;this.set(l*s+n,l*a-i*o,l*o+i*a,0,l*a+i*o,c*a+n,c*o-i*s,0,l*o-i*a,c*o+i*s,r*o*o+n,0,0,0,0,1);return this}makeScale(t,e,n){this.set(t,0,0,0,0,e,0,0,0,0,n,0,0,0,0,1);return this}makeShear(t,e,n,i,r,s){this.set(1,n,r,0,t,1,s,0,e,i,1,0,0,0,0,1);return this}compose(t,e,n){const i=this.elements;const r=e._x,s=e._y,a=e._z,o=e._w;const l=r+r,c=s+s,h=a+a;const u=r*l,d=r*c,p=r*h;const f=s*c,m=s*h,g=a*h;const _=o*l,x=o*c,y=o*h;const M=n.x,S=n.y,b=n.z;i[0]=(1-(f+g))*M;i[1]=(d+y)*M;i[2]=(p-x)*M;i[3]=0;i[4]=(d-y)*S;i[5]=(1-(u+g))*S;i[6]=(m+_)*S;i[7]=0;i[8]=(p+x)*b;i[9]=(m-_)*b;i[10]=(1-(u+f))*b;i[11]=0;i[12]=t.x;i[13]=t.y;i[14]=t.z;i[15]=1;return this}decompose(t,e,n){const i=this.elements;let r=Pi.set(i[0],i[1],i[2]).length();const s=Pi.set(i[4],i[5],i[6]).length();const a=Pi.set(i[8],i[9],i[10]).length();const o=this.determinant();o<0&&(r=-r);t.x=i[12];t.y=i[13];t.z=i[14];Li.copy(this);const l=1/r;const c=1/s;const h=1/a;Li.elements[0]*=l;Li.elements[1]*=l;Li.elements[2]*=l;Li.elements[4]*=c;Li.elements[5]*=c;Li.elements[6]*=c;Li.elements[8]*=h;Li.elements[9]*=h;Li.elements[10]*=h;e.setFromRotationMatrix(Li);n.x=r;n.y=s;n.z=a;return this}makePerspective(t,e,n,i,r,s,a=Gn){const o=this.elements;const l=2*r/(e-t);const c=2*r/(n-i);const h=(e+t)/(e-t);const u=(n+i)/(n-i);let d,p;if(a===Gn){d=-(s+r)/(s-r);p=-2*s*r/(s-r)}else{if(a!==kn)throw new Error(\"THREE.Matrix4.makePerspective(): Invalid coordinate system: \"+a);d=-s/(s-r);p=-s*r/(s-r)}o[0]=l;o[4]=0;o[8]=h;o[12]=0;o[1]=0;o[5]=c;o[9]=u;o[13]=0;o[2]=0;o[6]=0;o[10]=d;o[14]=p;o[3]=0;o[7]=0;o[11]=-1;o[15]=0;return this}makeOrthographic(t,e,n,i,r,s,a=Gn){const o=this.elements;const l=1/(e-t);const c=1/(n-i);const h=1/(s-r);const u=(e+t)*l;const d=(n+i)*c;let p,f;if(a===Gn){p=(s+r)*h;f=-2*h}else{if(a!==kn)throw new Error(\"THREE.Matrix4.makeOrthographic(): Invalid coordinate system: \"+a);p=r*h;f=-1*h}o[0]=2*l;o[4]=0;o[8]=0;o[12]=-u;o[1]=0;o[5]=2*c;o[9]=0;o[13]=-d;o[2]=0;o[6]=0;o[10]=f;o[14]=-p;o[3]=0;o[7]=0;o[11]=0;o[15]=1;return this}equals(t){const e=this.elements;const n=t.elements;for(let t=0;t<16;t++)if(e[t]!==n[t])return false;return true}fromArray(t,e=0){for(let n=0;n<16;n++)this.elements[n]=t[n+e];return this}toArray(t=[],e=0){const n=this.elements;t[e]=n[0];t[e+1]=n[1];t[e+2]=n[2];t[e+3]=n[3];t[e+4]=n[4];t[e+5]=n[5];t[e+6]=n[6];t[e+7]=n[7];t[e+8]=n[8];t[e+9]=n[9];t[e+10]=n[10];t[e+11]=n[11];t[e+12]=n[12];t[e+13]=n[13];t[e+14]=n[14];t[e+15]=n[15];return t}}const Pi=new Vector3;const Li=new Matrix4;const Ii=new Vector3(0,0,0);const Ui=new Vector3(1,1,1);const Di=new Vector3;const Ni=new Vector3;const Bi=new Vector3;const Oi=new Matrix4;const Vi=new Quaternion;class Euler{constructor(t=0,e=0,n=0,i=Euler.DEFAULT_ORDER){this.isEuler=true;this._x=t;this._y=e;this._z=n;this._order=i}get x(){return this._x}set x(t){this._x=t;this._onChangeCallback()}get y(){return this._y}set y(t){this._y=t;this._onChangeCallback()}get z(){return this._z}set z(t){this._z=t;this._onChangeCallback()}get order(){return this._order}set order(t){this._order=t;this._onChangeCallback()}set(t,e,n,i=this._order){this._x=t;this._y=e;this._z=n;this._order=i;this._onChangeCallback();return this}clone(){return new this.constructor(this._x,this._y,this._z,this._order)}copy(t){this._x=t._x;this._y=t._y;this._z=t._z;this._order=t._order;this._onChangeCallback();return this}setFromRotationMatrix(t,e=this._order,n=true){const i=t.elements;const r=i[0],s=i[4],a=i[8];const o=i[1],l=i[5],c=i[9];const h=i[2],u=i[6],d=i[10];switch(e){case\"XYZ\":this._y=Math.asin(clamp(a,-1,1));if(Math.abs(a)<.9999999){this._x=Math.atan2(-c,d);this._z=Math.atan2(-s,r)}else{this._x=Math.atan2(u,l);this._z=0}break;case\"YXZ\":this._x=Math.asin(-clamp(c,-1,1));if(Math.abs(c)<.9999999){this._y=Math.atan2(a,d);this._z=Math.atan2(o,l)}else{this._y=Math.atan2(-h,r);this._z=0}break;case\"ZXY\":this._x=Math.asin(clamp(u,-1,1));if(Math.abs(u)<.9999999){this._y=Math.atan2(-h,d);this._z=Math.atan2(-s,l)}else{this._y=0;this._z=Math.atan2(o,r)}break;case\"ZYX\":this._y=Math.asin(-clamp(h,-1,1));if(Math.abs(h)<.9999999){this._x=Math.atan2(u,d);this._z=Math.atan2(o,r)}else{this._x=0;this._z=Math.atan2(-s,l)}break;case\"YZX\":this._z=Math.asin(clamp(o,-1,1));if(Math.abs(o)<.9999999){this._x=Math.atan2(-c,l);this._y=Math.atan2(-h,r)}else{this._x=0;this._y=Math.atan2(a,d)}break;case\"XZY\":this._z=Math.asin(-clamp(s,-1,1));if(Math.abs(s)<.9999999){this._x=Math.atan2(u,l);this._y=Math.atan2(a,r)}else{this._x=Math.atan2(-c,d);this._y=0}break;default:console.warn(\"THREE.Euler: .setFromRotationMatrix() encountered an unknown order: \"+e)}this._order=e;n===true&&this._onChangeCallback();return this}setFromQuaternion(t,e,n){Oi.makeRotationFromQuaternion(t);return this.setFromRotationMatrix(Oi,e,n)}setFromVector3(t,e=this._order){return this.set(t.x,t.y,t.z,e)}reorder(t){Vi.setFromEuler(this);return this.setFromQuaternion(Vi,t)}equals(t){return t._x===this._x&&t._y===this._y&&t._z===this._z&&t._order===this._order}fromArray(t){this._x=t[0];this._y=t[1];this._z=t[2];t[3]!==void 0&&(this._order=t[3]);this._onChangeCallback();return this}toArray(t=[],e=0){t[e]=this._x;t[e+1]=this._y;t[e+2]=this._z;t[e+3]=this._order;return t}_onChange(t){this._onChangeCallback=t;return this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x;yield this._y;yield this._z;yield this._order}}Euler.DEFAULT_ORDER=\"XYZ\";class Layers{constructor(){this.mask=1}set(t){this.mask=1<<t>>>0}enable(t){this.mask|=1<<t}enableAll(){this.mask=-1}toggle(t){this.mask^=1<<t}disable(t){this.mask&=~(1<<t)}disableAll(){this.mask=0}test(t){return(this.mask&t.mask)!==0}isEnabled(t){return(this.mask&1<<t)!==0}}let Fi=0;const zi=new Vector3;const Gi=new Quaternion;const ki=new Matrix4;const Hi=new Vector3;const Wi=new Vector3;const Xi=new Vector3;const ji=new Quaternion;const qi=new Vector3(1,0,0);const Yi=new Vector3(0,1,0);const Ki=new Vector3(0,0,1);const Zi={type:\"added\"};const Ji={type:\"removed\"};const Qi={type:\"childadded\",child:null};const $i={type:\"childremoved\",child:null};class Object3D extends EventDispatcher{constructor(){super();this.isObject3D=true;Object.defineProperty(this,\"id\",{value:Fi++});this.uuid=generateUUID();this.name=\"\";this.type=\"Object3D\";this.parent=null;this.children=[];this.up=Object3D.DEFAULT_UP.clone();const t=new Vector3;const e=new Euler;const n=new Quaternion;const i=new Vector3(1,1,1);function onRotationChange(){n.setFromEuler(e,false)}function onQuaternionChange(){e.setFromQuaternion(n,void 0,false)}e._onChange(onRotationChange);n._onChange(onQuaternionChange);Object.defineProperties(this,{position:{configurable:true,enumerable:true,value:t},rotation:{configurable:true,enumerable:true,value:e},quaternion:{configurable:true,enumerable:true,value:n},scale:{configurable:true,enumerable:true,value:i},modelViewMatrix:{value:new Matrix4},normalMatrix:{value:new Matrix3}});this.matrix=new Matrix4;this.matrixWorld=new Matrix4;this.matrixAutoUpdate=Object3D.DEFAULT_MATRIX_AUTO_UPDATE;this.matrixWorldAutoUpdate=Object3D.DEFAULT_MATRIX_WORLD_AUTO_UPDATE;this.matrixWorldNeedsUpdate=false;this.layers=new Layers;this.visible=true;this.castShadow=false;this.receiveShadow=false;this.frustumCulled=true;this.renderOrder=0;this.animations=[];this.userData={}}onBeforeShadow(){}onAfterShadow(){}onBeforeRender(){}onAfterRender(){}applyMatrix4(t){this.matrixAutoUpdate&&this.updateMatrix();this.matrix.premultiply(t);this.matrix.decompose(this.position,this.quaternion,this.scale)}applyQuaternion(t){this.quaternion.premultiply(t);return this}setRotationFromAxisAngle(t,e){this.quaternion.setFromAxisAngle(t,e)}setRotationFromEuler(t){this.quaternion.setFromEuler(t,true)}setRotationFromMatrix(t){this.quaternion.setFromRotationMatrix(t)}setRotationFromQuaternion(t){this.quaternion.copy(t)}rotateOnAxis(t,e){Gi.setFromAxisAngle(t,e);this.quaternion.multiply(Gi);return this}rotateOnWorldAxis(t,e){Gi.setFromAxisAngle(t,e);this.quaternion.premultiply(Gi);return this}rotateX(t){return this.rotateOnAxis(qi,t)}rotateY(t){return this.rotateOnAxis(Yi,t)}rotateZ(t){return this.rotateOnAxis(Ki,t)}translateOnAxis(t,e){zi.copy(t).applyQuaternion(this.quaternion);this.position.add(zi.multiplyScalar(e));return this}translateX(t){return this.translateOnAxis(qi,t)}translateY(t){return this.translateOnAxis(Yi,t)}translateZ(t){return this.translateOnAxis(Ki,t)}localToWorld(t){this.updateWorldMatrix(true,false);return t.applyMatrix4(this.matrixWorld)}worldToLocal(t){this.updateWorldMatrix(true,false);return t.applyMatrix4(ki.copy(this.matrixWorld).invert())}lookAt(t,e,n){t.isVector3?Hi.copy(t):Hi.set(t,e,n);const i=this.parent;this.updateWorldMatrix(true,false);Wi.setFromMatrixPosition(this.matrixWorld);this.isCamera||this.isLight?ki.lookAt(Wi,Hi,this.up):ki.lookAt(Hi,Wi,this.up);this.quaternion.setFromRotationMatrix(ki);if(i){ki.extractRotation(i.matrixWorld);Gi.setFromRotationMatrix(ki);this.quaternion.premultiply(Gi.invert())}}add(t){if(arguments.length>1){for(let t=0;t<arguments.length;t++)this.add(arguments[t]);return this}if(t===this){console.error(\"THREE.Object3D.add: object can't be added as a child of itself.\",t);return this}if(t&&t.isObject3D){t.removeFromParent();t.parent=this;this.children.push(t);t.dispatchEvent(Zi);Qi.child=t;this.dispatchEvent(Qi);Qi.child=null}else console.error(\"THREE.Object3D.add: object not an instance of THREE.Object3D.\",t);return this}remove(t){if(arguments.length>1){for(let t=0;t<arguments.length;t++)this.remove(arguments[t]);return this}const e=this.children.indexOf(t);if(e!==-1){t.parent=null;this.children.splice(e,1);t.dispatchEvent(Ji);$i.child=t;this.dispatchEvent($i);$i.child=null}return this}removeFromParent(){const t=this.parent;t!==null&&t.remove(this);return this}clear(){return this.remove(...this.children)}attach(t){this.updateWorldMatrix(true,false);ki.copy(this.matrixWorld).invert();if(t.parent!==null){t.parent.updateWorldMatrix(true,false);ki.multiply(t.parent.matrixWorld)}t.applyMatrix4(ki);t.removeFromParent();t.parent=this;this.children.push(t);t.updateWorldMatrix(false,true);t.dispatchEvent(Zi);Qi.child=t;this.dispatchEvent(Qi);Qi.child=null;return this}getObjectById(t){return this.getObjectByProperty(\"id\",t)}getObjectByName(t){return this.getObjectByProperty(\"name\",t)}getObjectByProperty(t,e){if(this[t]===e)return this;for(let n=0,i=this.children.length;n<i;n++){const i=this.children[n];const r=i.getObjectByProperty(t,e);if(r!==void 0)return r}}getObjectsByProperty(t,e,n=[]){this[t]===e&&n.push(this);const i=this.children;for(let r=0,s=i.length;r<s;r++)i[r].getObjectsByProperty(t,e,n);return n}getWorldPosition(t){this.updateWorldMatrix(true,false);return t.setFromMatrixPosition(this.matrixWorld)}getWorldQuaternion(t){this.updateWorldMatrix(true,false);this.matrixWorld.decompose(Wi,t,Xi);return t}getWorldScale(t){this.updateWorldMatrix(true,false);this.matrixWorld.decompose(Wi,ji,t);return t}getWorldDirection(t){this.updateWorldMatrix(true,false);const e=this.matrixWorld.elements;return t.set(e[8],e[9],e[10]).normalize()}raycast(){}traverse(t){t(this);const e=this.children;for(let n=0,i=e.length;n<i;n++)e[n].traverse(t)}traverseVisible(t){if(this.visible===false)return;t(this);const e=this.children;for(let n=0,i=e.length;n<i;n++)e[n].traverseVisible(t)}traverseAncestors(t){const e=this.parent;if(e!==null){t(e);e.traverseAncestors(t)}}updateMatrix(){this.matrix.compose(this.position,this.quaternion,this.scale);this.matrixWorldNeedsUpdate=true}updateMatrixWorld(t){this.matrixAutoUpdate&&this.updateMatrix();if(this.matrixWorldNeedsUpdate||t){this.matrixWorldAutoUpdate===true&&(this.parent===null?this.matrixWorld.copy(this.matrix):this.matrixWorld.multiplyMatrices(this.parent.matrixWorld,this.matrix));this.matrixWorldNeedsUpdate=false;t=true}const e=this.children;for(let n=0,i=e.length;n<i;n++){const i=e[n];i.updateMatrixWorld(t)}}updateWorldMatrix(t,e){const n=this.parent;t===true&&n!==null&&n.updateWorldMatrix(true,false);this.matrixAutoUpdate&&this.updateMatrix();this.matrixWorldAutoUpdate===true&&(this.parent===null?this.matrixWorld.copy(this.matrix):this.matrixWorld.multiplyMatrices(this.parent.matrixWorld,this.matrix));if(e===true){const t=this.children;for(let e=0,n=t.length;e<n;e++){const n=t[e];n.updateWorldMatrix(false,true)}}}toJSON(t){const e=t===void 0||typeof t===\"string\";const n={};if(e){t={geometries:{},materials:{},textures:{},images:{},shapes:{},skeletons:{},animations:{},nodes:{}};n.metadata={version:4.6,type:\"Object\",generator:\"Object3D.toJSON\"}}const i={};i.uuid=this.uuid;i.type=this.type;this.name!==\"\"&&(i.name=this.name);this.castShadow===true&&(i.castShadow=true);this.receiveShadow===true&&(i.receiveShadow=true);this.visible===false&&(i.visible=false);this.frustumCulled===false&&(i.frustumCulled=false);this.renderOrder!==0&&(i.renderOrder=this.renderOrder);Object.keys(this.userData).length>0&&(i.userData=this.userData);i.layers=this.layers.mask;i.matrix=this.matrix.toArray();i.up=this.up.toArray();this.matrixAutoUpdate===false&&(i.matrixAutoUpdate=false);if(this.isInstancedMesh){i.type=\"InstancedMesh\";i.count=this.count;i.instanceMatrix=this.instanceMatrix.toJSON();this.instanceColor!==null&&(i.instanceColor=this.instanceColor.toJSON())}if(this.isBatchedMesh){i.type=\"BatchedMesh\";i.perObjectFrustumCulled=this.perObjectFrustumCulled;i.sortObjects=this.sortObjects;i.drawRanges=this._drawRanges;i.reservedRanges=this._reservedRanges;i.visibility=this._visibility;i.active=this._active;i.bounds=this._bounds.map((t=>({boxInitialized:t.boxInitialized,boxMin:t.box.min.toArray(),boxMax:t.box.max.toArray(),sphereInitialized:t.sphereInitialized,sphereRadius:t.sphere.radius,sphereCenter:t.sphere.center.toArray()})));i.maxInstanceCount=this._maxInstanceCount;i.maxVertexCount=this._maxVertexCount;i.maxIndexCount=this._maxIndexCount;i.geometryInitialized=this._geometryInitialized;i.geometryCount=this._geometryCount;i.matricesTexture=this._matricesTexture.toJSON(t);this._colorsTexture!==null&&(i.colorsTexture=this._colorsTexture.toJSON(t));this.boundingSphere!==null&&(i.boundingSphere={center:i.boundingSphere.center.toArray(),radius:i.boundingSphere.radius});this.boundingBox!==null&&(i.boundingBox={min:i.boundingBox.min.toArray(),max:i.boundingBox.max.toArray()})}function serialize(e,n){e[n.uuid]===void 0&&(e[n.uuid]=n.toJSON(t));return n.uuid}if(this.isScene){this.background&&(this.background.isColor?i.background=this.background.toJSON():this.background.isTexture&&(i.background=this.background.toJSON(t).uuid));this.environment&&this.environment.isTexture&&this.environment.isRenderTargetTexture!==true&&(i.environment=this.environment.toJSON(t).uuid)}else if(this.isMesh||this.isLine||this.isPoints){i.geometry=serialize(t.geometries,this.geometry);const e=this.geometry.parameters;if(e!==void 0&&e.shapes!==void 0){const n=e.shapes;if(Array.isArray(n))for(let e=0,i=n.length;e<i;e++){const i=n[e];serialize(t.shapes,i)}else serialize(t.shapes,n)}}if(this.isSkinnedMesh){i.bindMode=this.bindMode;i.bindMatrix=this.bindMatrix.toArray();if(this.skeleton!==void 0){serialize(t.skeletons,this.skeleton);i.skeleton=this.skeleton.uuid}}if(this.material!==void 0)if(Array.isArray(this.material)){const e=[];for(let n=0,i=this.material.length;n<i;n++)e.push(serialize(t.materials,this.material[n]));i.material=e}else i.material=serialize(t.materials,this.material);if(this.children.length>0){i.children=[];for(let e=0;e<this.children.length;e++)i.children.push(this.children[e].toJSON(t).object)}if(this.animations.length>0){i.animations=[];for(let e=0;e<this.animations.length;e++){const n=this.animations[e];i.animations.push(serialize(t.animations,n))}}if(e){const e=extractFromCache(t.geometries);const i=extractFromCache(t.materials);const r=extractFromCache(t.textures);const s=extractFromCache(t.images);const a=extractFromCache(t.shapes);const o=extractFromCache(t.skeletons);const l=extractFromCache(t.animations);const c=extractFromCache(t.nodes);e.length>0&&(n.geometries=e);i.length>0&&(n.materials=i);r.length>0&&(n.textures=r);s.length>0&&(n.images=s);a.length>0&&(n.shapes=a);o.length>0&&(n.skeletons=o);l.length>0&&(n.animations=l);c.length>0&&(n.nodes=c)}n.object=i;return n;function extractFromCache(t){const e=[];for(const n in t){const i=t[n];delete i.metadata;e.push(i)}return e}}clone(t){return(new this.constructor).copy(this,t)}copy(t,e=true){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.matrixWorldAutoUpdate=t.matrixWorldAutoUpdate;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.animations=t.animations.slice();this.userData=JSON.parse(JSON.stringify(t.userData));if(e===true)for(let e=0;e<t.children.length;e++){const n=t.children[e];this.add(n.clone())}return this}}Object3D.DEFAULT_UP=new Vector3(0,1,0);Object3D.DEFAULT_MATRIX_AUTO_UPDATE=true;Object3D.DEFAULT_MATRIX_WORLD_AUTO_UPDATE=true;const tr=new Vector3;const er=new Vector3;const nr=new Vector3;const ir=new Vector3;const rr=new Vector3;const sr=new Vector3;const ar=new Vector3;const or=new Vector3;const lr=new Vector3;const cr=new Vector3;class Triangle{constructor(t=new Vector3,e=new Vector3,n=new Vector3){this.a=t;this.b=e;this.c=n}static getNormal(t,e,n,i){i.subVectors(n,e);tr.subVectors(t,e);i.cross(tr);const r=i.lengthSq();return r>0?i.multiplyScalar(1/Math.sqrt(r)):i.set(0,0,0)}static getBarycoord(t,e,n,i,r){tr.subVectors(i,e);er.subVectors(n,e);nr.subVectors(t,e);const s=tr.dot(tr);const a=tr.dot(er);const o=tr.dot(nr);const l=er.dot(er);const c=er.dot(nr);const h=s*l-a*a;if(h===0){r.set(0,0,0);return null}const u=1/h;const d=(l*o-a*c)*u;const p=(s*c-a*o)*u;return r.set(1-d-p,p,d)}static containsPoint(t,e,n,i){return this.getBarycoord(t,e,n,i,ir)!==null&&(ir.x>=0&&ir.y>=0&&ir.x+ir.y<=1)}static getInterpolation(t,e,n,i,r,s,a,o){if(this.getBarycoord(t,e,n,i,ir)===null){o.x=0;o.y=0;\"z\"in o&&(o.z=0);\"w\"in o&&(o.w=0);return null}o.setScalar(0);o.addScaledVector(r,ir.x);o.addScaledVector(s,ir.y);o.addScaledVector(a,ir.z);return o}static isFrontFacing(t,e,n,i){tr.subVectors(n,e);er.subVectors(t,e);return tr.cross(er).dot(i)<0}set(t,e,n){this.a.copy(t);this.b.copy(e);this.c.copy(n);return this}setFromPointsAndIndices(t,e,n,i){this.a.copy(t[e]);this.b.copy(t[n]);this.c.copy(t[i]);return this}setFromAttributeAndIndices(t,e,n,i){this.a.fromBufferAttribute(t,e);this.b.fromBufferAttribute(t,n);this.c.fromBufferAttribute(t,i);return this}clone(){return(new this.constructor).copy(this)}copy(t){this.a.copy(t.a);this.b.copy(t.b);this.c.copy(t.c);return this}getArea(){tr.subVectors(this.c,this.b);er.subVectors(this.a,this.b);return tr.cross(er).length()*.5}getMidpoint(t){return t.addVectors(this.a,this.b).add(this.c).multiplyScalar(1/3)}getNormal(t){return Triangle.getNormal(this.a,this.b,this.c,t)}getPlane(t){return t.setFromCoplanarPoints(this.a,this.b,this.c)}getBarycoord(t,e){return Triangle.getBarycoord(t,this.a,this.b,this.c,e)}getInterpolation(t,e,n,i,r){return Triangle.getInterpolation(t,this.a,this.b,this.c,e,n,i,r)}containsPoint(t){return Triangle.containsPoint(t,this.a,this.b,this.c)}isFrontFacing(t){return Triangle.isFrontFacing(this.a,this.b,this.c,t)}intersectsBox(t){return t.intersectsTriangle(this)}closestPointToPoint(t,e){const n=this.a,i=this.b,r=this.c;let s,a;rr.subVectors(i,n);sr.subVectors(r,n);or.subVectors(t,n);const o=rr.dot(or);const l=sr.dot(or);if(o<=0&&l<=0)return e.copy(n);lr.subVectors(t,i);const c=rr.dot(lr);const h=sr.dot(lr);if(c>=0&&h<=c)return e.copy(i);const u=o*h-c*l;if(u<=0&&o>=0&&c<=0){s=o/(o-c);return e.copy(n).addScaledVector(rr,s)}cr.subVectors(t,r);const d=rr.dot(cr);const p=sr.dot(cr);if(p>=0&&d<=p)return e.copy(r);const f=d*l-o*p;if(f<=0&&l>=0&&p<=0){a=l/(l-p);return e.copy(n).addScaledVector(sr,a)}const m=c*p-d*h;if(m<=0&&h-c>=0&&d-p>=0){ar.subVectors(r,i);a=(h-c)/(h-c+(d-p));return e.copy(i).addScaledVector(ar,a)}const g=1/(m+f+u);s=f*g;a=u*g;return e.copy(n).addScaledVector(rr,s).addScaledVector(sr,a)}equals(t){return t.a.equals(this.a)&&t.b.equals(this.b)&&t.c.equals(this.c)}}const hr={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};const ur={h:0,s:0,l:0};const dr={h:0,s:0,l:0};function hue2rgb(t,e,n){n<0&&(n+=1);n>1&&(n-=1);return n<1/6?t+6*(e-t)*n:n<.5?e:n<2/3?t+6*(e-t)*(2/3-n):t}class Color{constructor(t,e,n){this.isColor=true;this.r=1;this.g=1;this.b=1;return this.set(t,e,n)}set(t,e,n){if(e===void 0&&n===void 0){const e=t;e&&e.isColor?this.copy(e):typeof e===\"number\"?this.setHex(e):typeof e===\"string\"&&this.setStyle(e)}else this.setRGB(t,e,n);return this}setScalar(t){this.r=t;this.g=t;this.b=t;return this}setHex(t,e=Je){t=Math.floor(t);this.r=(t>>16&255)/255;this.g=(t>>8&255)/255;this.b=(t&255)/255;ei.toWorkingColorSpace(this,e);return this}setRGB(t,e,n,i=ei.workingColorSpace){this.r=t;this.g=e;this.b=n;ei.toWorkingColorSpace(this,i);return this}setHSL(t,e,n,i=ei.workingColorSpace){t=euclideanModulo(t,1);e=clamp(e,0,1);n=clamp(n,0,1);if(e===0)this.r=this.g=this.b=n;else{const i=n<=.5?n*(1+e):n+e-n*e;const r=2*n-i;this.r=hue2rgb(r,i,t+1/3);this.g=hue2rgb(r,i,t);this.b=hue2rgb(r,i,t-1/3)}ei.toWorkingColorSpace(this,i);return this}setStyle(t,e=Je){function handleAlpha(e){e!==void 0&&parseFloat(e)<1&&console.warn(\"THREE.Color: Alpha component of \"+t+\" will be ignored.\")}let n;if(n=/^(\\w+)\\(([^\\)]*)\\)/.exec(t)){let i;const r=n[1];const s=n[2];switch(r){case\"rgb\":case\"rgba\":if(i=/^\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)\\s*(?:,\\s*(\\d*\\.?\\d+)\\s*)?$/.exec(s)){handleAlpha(i[4]);return this.setRGB(Math.min(255,parseInt(i[1],10))/255,Math.min(255,parseInt(i[2],10))/255,Math.min(255,parseInt(i[3],10))/255,e)}if(i=/^\\s*(\\d+)\\%\\s*,\\s*(\\d+)\\%\\s*,\\s*(\\d+)\\%\\s*(?:,\\s*(\\d*\\.?\\d+)\\s*)?$/.exec(s)){handleAlpha(i[4]);return this.setRGB(Math.min(100,parseInt(i[1],10))/100,Math.min(100,parseInt(i[2],10))/100,Math.min(100,parseInt(i[3],10))/100,e)}break;case\"hsl\":case\"hsla\":if(i=/^\\s*(\\d*\\.?\\d+)\\s*,\\s*(\\d*\\.?\\d+)\\%\\s*,\\s*(\\d*\\.?\\d+)\\%\\s*(?:,\\s*(\\d*\\.?\\d+)\\s*)?$/.exec(s)){handleAlpha(i[4]);return this.setHSL(parseFloat(i[1])/360,parseFloat(i[2])/100,parseFloat(i[3])/100,e)}break;default:console.warn(\"THREE.Color: Unknown color model \"+t)}}else if(n=/^\\#([A-Fa-f\\d]+)$/.exec(t)){const i=n[1];const r=i.length;if(r===3)return this.setRGB(parseInt(i.charAt(0),16)/15,parseInt(i.charAt(1),16)/15,parseInt(i.charAt(2),16)/15,e);if(r===6)return this.setHex(parseInt(i,16),e);console.warn(\"THREE.Color: Invalid hex color \"+t)}else if(t&&t.length>0)return this.setColorName(t,e);return this}setColorName(t,e=Je){const n=hr[t.toLowerCase()];n!==void 0?this.setHex(n,e):console.warn(\"THREE.Color: Unknown color \"+t);return this}clone(){return new this.constructor(this.r,this.g,this.b)}copy(t){this.r=t.r;this.g=t.g;this.b=t.b;return this}copySRGBToLinear(t){this.r=SRGBToLinear(t.r);this.g=SRGBToLinear(t.g);this.b=SRGBToLinear(t.b);return this}copyLinearToSRGB(t){this.r=LinearToSRGB(t.r);this.g=LinearToSRGB(t.g);this.b=LinearToSRGB(t.b);return this}convertSRGBToLinear(){this.copySRGBToLinear(this);return this}convertLinearToSRGB(){this.copyLinearToSRGB(this);return this}getHex(t=Je){ei.fromWorkingColorSpace(pr.copy(this),t);return Math.round(clamp(pr.r*255,0,255))*65536+Math.round(clamp(pr.g*255,0,255))*256+Math.round(clamp(pr.b*255,0,255))}getHexString(t=Je){return(\"000000\"+this.getHex(t).toString(16)).slice(-6)}getHSL(t,e=ei.workingColorSpace){ei.fromWorkingColorSpace(pr.copy(this),e);const n=pr.r,i=pr.g,r=pr.b;const s=Math.max(n,i,r);const a=Math.min(n,i,r);let o,l;const c=(a+s)/2;if(a===s){o=0;l=0}else{const t=s-a;l=c<=.5?t/(s+a):t/(2-s-a);switch(s){case n:o=(i-r)/t+(i<r?6:0);break;case i:o=(r-n)/t+2;break;case r:o=(n-i)/t+4;break}o/=6}t.h=o;t.s=l;t.l=c;return t}getRGB(t,e=ei.workingColorSpace){ei.fromWorkingColorSpace(pr.copy(this),e);t.r=pr.r;t.g=pr.g;t.b=pr.b;return t}getStyle(t=Je){ei.fromWorkingColorSpace(pr.copy(this),t);const e=pr.r,n=pr.g,i=pr.b;return t!==Je?`color(${t} ${e.toFixed(3)} ${n.toFixed(3)} ${i.toFixed(3)})`:`rgb(${Math.round(e*255)},${Math.round(n*255)},${Math.round(i*255)})`}offsetHSL(t,e,n){this.getHSL(ur);return this.setHSL(ur.h+t,ur.s+e,ur.l+n)}add(t){this.r+=t.r;this.g+=t.g;this.b+=t.b;return this}addColors(t,e){this.r=t.r+e.r;this.g=t.g+e.g;this.b=t.b+e.b;return this}addScalar(t){this.r+=t;this.g+=t;this.b+=t;return this}sub(t){this.r=Math.max(0,this.r-t.r);this.g=Math.max(0,this.g-t.g);this.b=Math.max(0,this.b-t.b);return this}multiply(t){this.r*=t.r;this.g*=t.g;this.b*=t.b;return this}multiplyScalar(t){this.r*=t;this.g*=t;this.b*=t;return this}lerp(t,e){this.r+=(t.r-this.r)*e;this.g+=(t.g-this.g)*e;this.b+=(t.b-this.b)*e;return this}lerpColors(t,e,n){this.r=t.r+(e.r-t.r)*n;this.g=t.g+(e.g-t.g)*n;this.b=t.b+(e.b-t.b)*n;return this}lerpHSL(t,e){this.getHSL(ur);t.getHSL(dr);const n=lerp(ur.h,dr.h,e);const i=lerp(ur.s,dr.s,e);const r=lerp(ur.l,dr.l,e);this.setHSL(n,i,r);return this}setFromVector3(t){this.r=t.x;this.g=t.y;this.b=t.z;return this}applyMatrix3(t){const e=this.r,n=this.g,i=this.b;const r=t.elements;this.r=r[0]*e+r[3]*n+r[6]*i;this.g=r[1]*e+r[4]*n+r[7]*i;this.b=r[2]*e+r[5]*n+r[8]*i;return this}equals(t){return t.r===this.r&&t.g===this.g&&t.b===this.b}fromArray(t,e=0){this.r=t[e];this.g=t[e+1];this.b=t[e+2];return this}toArray(t=[],e=0){t[e]=this.r;t[e+1]=this.g;t[e+2]=this.b;return t}fromBufferAttribute(t,e){this.r=t.getX(e);this.g=t.getY(e);this.b=t.getZ(e);return this}toJSON(){return this.getHex()}*[Symbol.iterator](){yield this.r;yield this.g;yield this.b}}const pr=new Color;Color.NAMES=hr;let fr=0;class Material extends EventDispatcher{constructor(){super();this.isMaterial=true;Object.defineProperty(this,\"id\",{value:fr++});this.uuid=generateUUID();this.name=\"\";this.type=\"Material\";this.blending=m;this.side=u;this.vertexColors=false;this.opacity=1;this.transparent=false;this.alphaHash=false;this.blendSrc=P;this.blendDst=L;this.blendEquation=M;this.blendSrcAlpha=null;this.blendDstAlpha=null;this.blendEquationAlpha=null;this.blendColor=new Color(0,0,0);this.blendAlpha=0;this.depthFunc=W;this.depthTest=true;this.depthWrite=true;this.stencilWriteMask=255;this.stencilFunc=Mn;this.stencilRef=0;this.stencilFuncMask=255;this.stencilFail=on;this.stencilZFail=on;this.stencilZPass=on;this.stencilWrite=false;this.clippingPlanes=null;this.clipIntersection=false;this.clipShadows=false;this.shadowSide=null;this.colorWrite=true;this.precision=null;this.polygonOffset=false;this.polygonOffsetFactor=0;this.polygonOffsetUnits=0;this.dithering=false;this.alphaToCoverage=false;this.premultipliedAlpha=false;this.forceSinglePass=false;this.visible=true;this.toneMapped=true;this.userData={};this.version=0;this._alphaTest=0}get alphaTest(){return this._alphaTest}set alphaTest(t){this._alphaTest>0!==t>0&&this.version++;this._alphaTest=t}onBeforeCompile(){}customProgramCacheKey(){return this.onBeforeCompile.toString()}setValues(t){if(t!==void 0)for(const e in t){const n=t[e];if(n===void 0){console.warn(`THREE.Material: parameter '${e}' has value of undefined.`);continue}const i=this[e];i!==void 0?i&&i.isColor?i.set(n):i&&i.isVector3&&n&&n.isVector3?i.copy(n):this[e]=n:console.warn(`THREE.Material: '${e}' is not a property of THREE.${this.type}.`)}}toJSON(t){const e=t===void 0||typeof t===\"string\";e&&(t={textures:{},images:{}});const n={metadata:{version:4.6,type:\"Material\",generator:\"Material.toJSON\"}};n.uuid=this.uuid;n.type=this.type;this.name!==\"\"&&(n.name=this.name);this.color&&this.color.isColor&&(n.color=this.color.getHex());this.roughness!==void 0&&(n.roughness=this.roughness);this.metalness!==void 0&&(n.metalness=this.metalness);this.sheen!==void 0&&(n.sheen=this.sheen);this.sheenColor&&this.sheenColor.isColor&&(n.sheenColor=this.sheenColor.getHex());this.sheenRoughness!==void 0&&(n.sheenRoughness=this.sheenRoughness);this.emissive&&this.emissive.isColor&&(n.emissive=this.emissive.getHex());this.emissiveIntensity!==void 0&&this.emissiveIntensity!==1&&(n.emissiveIntensity=this.emissiveIntensity);this.specular&&this.specular.isColor&&(n.specular=this.specular.getHex());this.specularIntensity!==void 0&&(n.specularIntensity=this.specularIntensity);this.specularColor&&this.specularColor.isColor&&(n.specularColor=this.specularColor.getHex());this.shininess!==void 0&&(n.shininess=this.shininess);this.clearcoat!==void 0&&(n.clearcoat=this.clearcoat);this.clearcoatRoughness!==void 0&&(n.clearcoatRoughness=this.clearcoatRoughness);this.clearcoatMap&&this.clearcoatMap.isTexture&&(n.clearcoatMap=this.clearcoatMap.toJSON(t).uuid);this.clearcoatRoughnessMap&&this.clearcoatRoughnessMap.isTexture&&(n.clearcoatRoughnessMap=this.clearcoatRoughnessMap.toJSON(t).uuid);if(this.clearcoatNormalMap&&this.clearcoatNormalMap.isTexture){n.clearcoatNormalMap=this.clearcoatNormalMap.toJSON(t).uuid;n.clearcoatNormalScale=this.clearcoatNormalScale.toArray()}this.dispersion!==void 0&&(n.dispersion=this.dispersion);this.iridescence!==void 0&&(n.iridescence=this.iridescence);this.iridescenceIOR!==void 0&&(n.iridescenceIOR=this.iridescenceIOR);this.iridescenceThicknessRange!==void 0&&(n.iridescenceThicknessRange=this.iridescenceThicknessRange);this.iridescenceMap&&this.iridescenceMap.isTexture&&(n.iridescenceMap=this.iridescenceMap.toJSON(t).uuid);this.iridescenceThicknessMap&&this.iridescenceThicknessMap.isTexture&&(n.iridescenceThicknessMap=this.iridescenceThicknessMap.toJSON(t).uuid);this.anisotropy!==void 0&&(n.anisotropy=this.anisotropy);this.anisotropyRotation!==void 0&&(n.anisotropyRotation=this.anisotropyRotation);this.anisotropyMap&&this.anisotropyMap.isTexture&&(n.anisotropyMap=this.anisotropyMap.toJSON(t).uuid);this.map&&this.map.isTexture&&(n.map=this.map.toJSON(t).uuid);this.matcap&&this.matcap.isTexture&&(n.matcap=this.matcap.toJSON(t).uuid);this.alphaMap&&this.alphaMap.isTexture&&(n.alphaMap=this.alphaMap.toJSON(t).uuid);if(this.lightMap&&this.lightMap.isTexture){n.lightMap=this.lightMap.toJSON(t).uuid;n.lightMapIntensity=this.lightMapIntensity}if(this.aoMap&&this.aoMap.isTexture){n.aoMap=this.aoMap.toJSON(t).uuid;n.aoMapIntensity=this.aoMapIntensity}if(this.bumpMap&&this.bumpMap.isTexture){n.bumpMap=this.bumpMap.toJSON(t).uuid;n.bumpScale=this.bumpScale}if(this.normalMap&&this.normalMap.isTexture){n.normalMap=this.normalMap.toJSON(t).uuid;n.normalMapType=this.normalMapType;n.normalScale=this.normalScale.toArray()}if(this.displacementMap&&this.displacementMap.isTexture){n.displacementMap=this.displacementMap.toJSON(t).uuid;n.displacementScale=this.displacementScale;n.displacementBias=this.displacementBias}this.roughnessMap&&this.roughnessMap.isTexture&&(n.roughnessMap=this.roughnessMap.toJSON(t).uuid);this.metalnessMap&&this.metalnessMap.isTexture&&(n.metalnessMap=this.metalnessMap.toJSON(t).uuid);this.emissiveMap&&this.emissiveMap.isTexture&&(n.emissiveMap=this.emissiveMap.toJSON(t).uuid);this.specularMap&&this.specularMap.isTexture&&(n.specularMap=this.specularMap.toJSON(t).uuid);this.specularIntensityMap&&this.specularIntensityMap.isTexture&&(n.specularIntensityMap=this.specularIntensityMap.toJSON(t).uuid);this.specularColorMap&&this.specularColorMap.isTexture&&(n.specularColorMap=this.specularColorMap.toJSON(t).uuid);if(this.envMap&&this.envMap.isTexture){n.envMap=this.envMap.toJSON(t).uuid;this.combine!==void 0&&(n.combine=this.combine)}this.envMapRotation!==void 0&&(n.envMapRotation=this.envMapRotation.toArray());this.envMapIntensity!==void 0&&(n.envMapIntensity=this.envMapIntensity);this.reflectivity!==void 0&&(n.reflectivity=this.reflectivity);this.refractionRatio!==void 0&&(n.refractionRatio=this.refractionRatio);this.gradientMap&&this.gradientMap.isTexture&&(n.gradientMap=this.gradientMap.toJSON(t).uuid);this.transmission!==void 0&&(n.transmission=this.transmission);this.transmissionMap&&this.transmissionMap.isTexture&&(n.transmissionMap=this.transmissionMap.toJSON(t).uuid);this.thickness!==void 0&&(n.thickness=this.thickness);this.thicknessMap&&this.thicknessMap.isTexture&&(n.thicknessMap=this.thicknessMap.toJSON(t).uuid);this.attenuationDistance!==void 0&&this.attenuationDistance!==Infinity&&(n.attenuationDistance=this.attenuationDistance);this.attenuationColor!==void 0&&(n.attenuationColor=this.attenuationColor.getHex());this.size!==void 0&&(n.size=this.size);this.shadowSide!==null&&(n.shadowSide=this.shadowSide);this.sizeAttenuation!==void 0&&(n.sizeAttenuation=this.sizeAttenuation);this.blending!==m&&(n.blending=this.blending);this.side!==u&&(n.side=this.side);this.vertexColors===true&&(n.vertexColors=true);this.opacity<1&&(n.opacity=this.opacity);this.transparent===true&&(n.transparent=true);this.blendSrc!==P&&(n.blendSrc=this.blendSrc);this.blendDst!==L&&(n.blendDst=this.blendDst);this.blendEquation!==M&&(n.blendEquation=this.blendEquation);this.blendSrcAlpha!==null&&(n.blendSrcAlpha=this.blendSrcAlpha);this.blendDstAlpha!==null&&(n.blendDstAlpha=this.blendDstAlpha);this.blendEquationAlpha!==null&&(n.blendEquationAlpha=this.blendEquationAlpha);this.blendColor&&this.blendColor.isColor&&(n.blendColor=this.blendColor.getHex());this.blendAlpha!==0&&(n.blendAlpha=this.blendAlpha);this.depthFunc!==W&&(n.depthFunc=this.depthFunc);this.depthTest===false&&(n.depthTest=this.depthTest);this.depthWrite===false&&(n.depthWrite=this.depthWrite);this.colorWrite===false&&(n.colorWrite=this.colorWrite);this.stencilWriteMask!==255&&(n.stencilWriteMask=this.stencilWriteMask);this.stencilFunc!==Mn&&(n.stencilFunc=this.stencilFunc);this.stencilRef!==0&&(n.stencilRef=this.stencilRef);this.stencilFuncMask!==255&&(n.stencilFuncMask=this.stencilFuncMask);this.stencilFail!==on&&(n.stencilFail=this.stencilFail);this.stencilZFail!==on&&(n.stencilZFail=this.stencilZFail);this.stencilZPass!==on&&(n.stencilZPass=this.stencilZPass);this.stencilWrite===true&&(n.stencilWrite=this.stencilWrite);this.rotation!==void 0&&this.rotation!==0&&(n.rotation=this.rotation);this.polygonOffset===true&&(n.polygonOffset=true);this.polygonOffsetFactor!==0&&(n.polygonOffsetFactor=this.polygonOffsetFactor);this.polygonOffsetUnits!==0&&(n.polygonOffsetUnits=this.polygonOffsetUnits);this.linewidth!==void 0&&this.linewidth!==1&&(n.linewidth=this.linewidth);this.dashSize!==void 0&&(n.dashSize=this.dashSize);this.gapSize!==void 0&&(n.gapSize=this.gapSize);this.scale!==void 0&&(n.scale=this.scale);this.dithering===true&&(n.dithering=true);this.alphaTest>0&&(n.alphaTest=this.alphaTest);this.alphaHash===true&&(n.alphaHash=true);this.alphaToCoverage===true&&(n.alphaToCoverage=true);this.premultipliedAlpha===true&&(n.premultipliedAlpha=true);this.forceSinglePass===true&&(n.forceSinglePass=true);this.wireframe===true&&(n.wireframe=true);this.wireframeLinewidth>1&&(n.wireframeLinewidth=this.wireframeLinewidth);this.wireframeLinecap!==\"round\"&&(n.wireframeLinecap=this.wireframeLinecap);this.wireframeLinejoin!==\"round\"&&(n.wireframeLinejoin=this.wireframeLinejoin);this.flatShading===true&&(n.flatShading=true);this.visible===false&&(n.visible=false);this.toneMapped===false&&(n.toneMapped=false);this.fog===false&&(n.fog=false);Object.keys(this.userData).length>0&&(n.userData=this.userData);function extractFromCache(t){const e=[];for(const n in t){const i=t[n];delete i.metadata;e.push(i)}return e}if(e){const e=extractFromCache(t.textures);const i=extractFromCache(t.images);e.length>0&&(n.textures=e);i.length>0&&(n.images=i)}return n}clone(){return(new this.constructor).copy(this)}copy(t){this.name=t.name;this.blending=t.blending;this.side=t.side;this.vertexColors=t.vertexColors;this.opacity=t.opacity;this.transparent=t.transparent;this.blendSrc=t.blendSrc;this.blendDst=t.blendDst;this.blendEquation=t.blendEquation;this.blendSrcAlpha=t.blendSrcAlpha;this.blendDstAlpha=t.blendDstAlpha;this.blendEquationAlpha=t.blendEquationAlpha;this.blendColor.copy(t.blendColor);this.blendAlpha=t.blendAlpha;this.depthFunc=t.depthFunc;this.depthTest=t.depthTest;this.depthWrite=t.depthWrite;this.stencilWriteMask=t.stencilWriteMask;this.stencilFunc=t.stencilFunc;this.stencilRef=t.stencilRef;this.stencilFuncMask=t.stencilFuncMask;this.stencilFail=t.stencilFail;this.stencilZFail=t.stencilZFail;this.stencilZPass=t.stencilZPass;this.stencilWrite=t.stencilWrite;const e=t.clippingPlanes;let n=null;if(e!==null){const t=e.length;n=new Array(t);for(let i=0;i!==t;++i)n[i]=e[i].clone()}this.clippingPlanes=n;this.clipIntersection=t.clipIntersection;this.clipShadows=t.clipShadows;this.shadowSide=t.shadowSide;this.colorWrite=t.colorWrite;this.precision=t.precision;this.polygonOffset=t.polygonOffset;this.polygonOffsetFactor=t.polygonOffsetFactor;this.polygonOffsetUnits=t.polygonOffsetUnits;this.dithering=t.dithering;this.alphaTest=t.alphaTest;this.alphaHash=t.alphaHash;this.alphaToCoverage=t.alphaToCoverage;this.premultipliedAlpha=t.premultipliedAlpha;this.forceSinglePass=t.forceSinglePass;this.visible=t.visible;this.toneMapped=t.toneMapped;this.userData=JSON.parse(JSON.stringify(t.userData));return this}dispose(){this.dispatchEvent({type:\"dispose\"})}set needsUpdate(t){t===true&&this.version++}onBuild(){console.warn(\"Material: onBuild() has been removed.\")}onBeforeRender(){console.warn(\"Material: onBeforeRender() has been removed.\")}}class MeshBasicMaterial extends Material{constructor(t){super();this.isMeshBasicMaterial=true;this.type=\"MeshBasicMaterial\";this.color=new Color(16777215);this.map=null;this.lightMap=null;this.lightMapIntensity=1;this.aoMap=null;this.aoMapIntensity=1;this.specularMap=null;this.alphaMap=null;this.envMap=null;this.envMapRotation=new Euler;this.combine=K;this.reflectivity=1;this.refractionRatio=.98;this.wireframe=false;this.wireframeLinewidth=1;this.wireframeLinecap=\"round\";this.wireframeLinejoin=\"round\";this.fog=true;this.setValues(t)}copy(t){super.copy(t);this.color.copy(t.color);this.map=t.map;this.lightMap=t.lightMap;this.lightMapIntensity=t.lightMapIntensity;this.aoMap=t.aoMap;this.aoMapIntensity=t.aoMapIntensity;this.specularMap=t.specularMap;this.alphaMap=t.alphaMap;this.envMap=t.envMap;this.envMapRotation.copy(t.envMapRotation);this.combine=t.combine;this.reflectivity=t.reflectivity;this.refractionRatio=t.refractionRatio;this.wireframe=t.wireframe;this.wireframeLinewidth=t.wireframeLinewidth;this.wireframeLinecap=t.wireframeLinecap;this.wireframeLinejoin=t.wireframeLinejoin;this.fog=t.fog;return this}}const mr=_generateTables();function _generateTables(){const t=new ArrayBuffer(4);const e=new Float32Array(t);const n=new Uint32Array(t);const i=new Uint32Array(512);const r=new Uint32Array(512);for(let t=0;t<256;++t){const e=t-127;if(e<-27){i[t]=0;i[t|256]=32768;r[t]=24;r[t|256]=24}else if(e<-14){i[t]=1024>>-e-14;i[t|256]=1024>>-e-14|32768;r[t]=-e-1;r[t|256]=-e-1}else if(e<=15){i[t]=e+15<<10;i[t|256]=e+15<<10|32768;r[t]=13;r[t|256]=13}else if(e<128){i[t]=31744;i[t|256]=64512;r[t]=24;r[t|256]=24}else{i[t]=31744;i[t|256]=64512;r[t]=13;r[t|256]=13}}const s=new Uint32Array(2048);const a=new Uint32Array(64);const o=new Uint32Array(64);for(let t=1;t<1024;++t){let e=t<<13;let n=0;while((e&8388608)===0){e<<=1;n-=8388608}e&=-8388609;n+=947912704;s[t]=e|n}for(let t=1024;t<2048;++t)s[t]=939524096+(t-1024<<13);for(let t=1;t<31;++t)a[t]=t<<23;a[31]=1199570944;a[32]=2147483648;for(let t=33;t<63;++t)a[t]=2147483648+(t-32<<23);a[63]=3347054592;for(let t=1;t<64;++t)t!==32&&(o[t]=1024);return{floatView:e,uint32View:n,baseTable:i,shiftTable:r,mantissaTable:s,exponentTable:a,offsetTable:o}}function toHalfFloat(t){Math.abs(t)>65504&&console.warn(\"THREE.DataUtils.toHalfFloat(): Value out of range.\");t=clamp(t,-65504,65504);mr.floatView[0]=t;const e=mr.uint32View[0];const n=e>>23&511;return mr.baseTable[n]+((e&8388607)>>mr.shiftTable[n])}function fromHalfFloat(t){const e=t>>10;mr.uint32View[0]=mr.mantissaTable[mr.offsetTable[e]+(t&1023)]+mr.exponentTable[e];return mr.floatView[0]}const gr={toHalfFloat:toHalfFloat,fromHalfFloat:fromHalfFloat};const vr=new Vector3;const _r=new Vector2;class BufferAttribute{constructor(t,e,n=false){if(Array.isArray(t))throw new TypeError(\"THREE.BufferAttribute: array should be a Typed Array.\");this.isBufferAttribute=true;this.name=\"\";this.array=t;this.itemSize=e;this.count=t!==void 0?t.length/e:0;this.normalized=n;this.usage=Pn;this._updateRange={offset:0,count:-1};this.updateRanges=[];this.gpuType=Ut;this.version=0}onUploadCallback(){}set needsUpdate(t){t===true&&this.version++}get updateRange(){warnOnce(\"THREE.BufferAttribute: updateRange() is deprecated and will be removed in r169. Use addUpdateRange() instead.\");return this._updateRange}setUsage(t){this.usage=t;return this}addUpdateRange(t,e){this.updateRanges.push({start:t,count:e})}clearUpdateRanges(){this.updateRanges.length=0}copy(t){this.name=t.name;this.array=new t.array.constructor(t.array);this.itemSize=t.itemSize;this.count=t.count;this.normalized=t.normalized;this.usage=t.usage;this.gpuType=t.gpuType;return this}copyAt(t,e,n){t*=this.itemSize;n*=e.itemSize;for(let i=0,r=this.itemSize;i<r;i++)this.array[t+i]=e.array[n+i];return this}copyArray(t){this.array.set(t);return this}applyMatrix3(t){if(this.itemSize===2)for(let e=0,n=this.count;e<n;e++){_r.fromBufferAttribute(this,e);_r.applyMatrix3(t);this.setXY(e,_r.x,_r.y)}else if(this.itemSize===3)for(let e=0,n=this.count;e<n;e++){vr.fromBufferAttribute(this,e);vr.applyMatrix3(t);this.setXYZ(e,vr.x,vr.y,vr.z)}return this}applyMatrix4(t){for(let e=0,n=this.count;e<n;e++){vr.fromBufferAttribute(this,e);vr.applyMatrix4(t);this.setXYZ(e,vr.x,vr.y,vr.z)}return this}applyNormalMatrix(t){for(let e=0,n=this.count;e<n;e++){vr.fromBufferAttribute(this,e);vr.applyNormalMatrix(t);this.setXYZ(e,vr.x,vr.y,vr.z)}return this}transformDirection(t){for(let e=0,n=this.count;e<n;e++){vr.fromBufferAttribute(this,e);vr.transformDirection(t);this.setXYZ(e,vr.x,vr.y,vr.z)}return this}set(t,e=0){this.array.set(t,e);return this}getComponent(t,e){let n=this.array[t*this.itemSize+e];this.normalized&&(n=denormalize(n,this.array));return n}setComponent(t,e,n){this.normalized&&(n=normalize(n,this.array));this.array[t*this.itemSize+e]=n;return this}getX(t){let e=this.array[t*this.itemSize];this.normalized&&(e=denormalize(e,this.array));return e}setX(t,e){this.normalized&&(e=normalize(e,this.array));this.array[t*this.itemSize]=e;return this}getY(t){let e=this.array[t*this.itemSize+1];this.normalized&&(e=denormalize(e,this.array));return e}setY(t,e){this.normalized&&(e=normalize(e,this.array));this.array[t*this.itemSize+1]=e;return this}getZ(t){let e=this.array[t*this.itemSize+2];this.normalized&&(e=denormalize(e,this.array));return e}setZ(t,e){this.normalized&&(e=normalize(e,this.array));this.array[t*this.itemSize+2]=e;return this}getW(t){let e=this.array[t*this.itemSize+3];this.normalized&&(e=denormalize(e,this.array));return e}setW(t,e){this.normalized&&(e=normalize(e,this.array));this.array[t*this.itemSize+3]=e;return this}setXY(t,e,n){t*=this.itemSize;if(this.normalized){e=normalize(e,this.array);n=normalize(n,this.array)}this.array[t+0]=e;this.array[t+1]=n;return this}setXYZ(t,e,n,i){t*=this.itemSize;if(this.normalized){e=normalize(e,this.array);n=normalize(n,this.array);i=normalize(i,this.array)}this.array[t+0]=e;this.array[t+1]=n;this.array[t+2]=i;return this}setXYZW(t,e,n,i,r){t*=this.itemSize;if(this.normalized){e=normalize(e,this.array);n=normalize(n,this.array);i=normalize(i,this.array);r=normalize(r,this.array)}this.array[t+0]=e;this.array[t+1]=n;this.array[t+2]=i;this.array[t+3]=r;return this}onUpload(t){this.onUploadCallback=t;return this}clone(){return new this.constructor(this.array,this.itemSize).copy(this)}toJSON(){const t={itemSize:this.itemSize,type:this.array.constructor.name,array:Array.from(this.array),normalized:this.normalized};this.name!==\"\"&&(t.name=this.name);this.usage!==Pn&&(t.usage=this.usage);return t}}class Int8BufferAttribute extends BufferAttribute{constructor(t,e,n){super(new Int8Array(t),e,n)}}class Uint8BufferAttribute extends BufferAttribute{constructor(t,e,n){super(new Uint8Array(t),e,n)}}class Uint8ClampedBufferAttribute extends BufferAttribute{constructor(t,e,n){super(new Uint8ClampedArray(t),e,n)}}class Int16BufferAttribute extends BufferAttribute{constructor(t,e,n){super(new Int16Array(t),e,n)}}class Uint16BufferAttribute extends BufferAttribute{constructor(t,e,n){super(new Uint16Array(t),e,n)}}class Int32BufferAttribute extends BufferAttribute{constructor(t,e,n){super(new Int32Array(t),e,n)}}class Uint32BufferAttribute extends BufferAttribute{constructor(t,e,n){super(new Uint32Array(t),e,n)}}class Float16BufferAttribute extends BufferAttribute{constructor(t,e,n){super(new Uint16Array(t),e,n);this.isFloat16BufferAttribute=true}getX(t){let e=fromHalfFloat(this.array[t*this.itemSize]);this.normalized&&(e=denormalize(e,this.array));return e}setX(t,e){this.normalized&&(e=normalize(e,this.array));this.array[t*this.itemSize]=toHalfFloat(e);return this}getY(t){let e=fromHalfFloat(this.array[t*this.itemSize+1]);this.normalized&&(e=denormalize(e,this.array));return e}setY(t,e){this.normalized&&(e=normalize(e,this.array));this.array[t*this.itemSize+1]=toHalfFloat(e);return this}getZ(t){let e=fromHalfFloat(this.array[t*this.itemSize+2]);this.normalized&&(e=denormalize(e,this.array));return e}setZ(t,e){this.normalized&&(e=normalize(e,this.array));this.array[t*this.itemSize+2]=toHalfFloat(e);return this}getW(t){let e=fromHalfFloat(this.array[t*this.itemSize+3]);this.normalized&&(e=denormalize(e,this.array));return e}setW(t,e){this.normalized&&(e=normalize(e,this.array));this.array[t*this.itemSize+3]=toHalfFloat(e);return this}setXY(t,e,n){t*=this.itemSize;if(this.normalized){e=normalize(e,this.array);n=normalize(n,this.array)}this.array[t+0]=toHalfFloat(e);this.array[t+1]=toHalfFloat(n);return this}setXYZ(t,e,n,i){t*=this.itemSize;if(this.normalized){e=normalize(e,this.array);n=normalize(n,this.array);i=normalize(i,this.array)}this.array[t+0]=toHalfFloat(e);this.array[t+1]=toHalfFloat(n);this.array[t+2]=toHalfFloat(i);return this}setXYZW(t,e,n,i,r){t*=this.itemSize;if(this.normalized){e=normalize(e,this.array);n=normalize(n,this.array);i=normalize(i,this.array);r=normalize(r,this.array)}this.array[t+0]=toHalfFloat(e);this.array[t+1]=toHalfFloat(n);this.array[t+2]=toHalfFloat(i);this.array[t+3]=toHalfFloat(r);return this}}class Float32BufferAttribute extends BufferAttribute{constructor(t,e,n){super(new Float32Array(t),e,n)}}let xr=0;const yr=new Matrix4;const Mr=new Object3D;const Sr=new Vector3;const br=new Box3;const Tr=new Box3;const wr=new Vector3;class BufferGeometry extends EventDispatcher{constructor(){super();this.isBufferGeometry=true;Object.defineProperty(this,\"id\",{value:xr++});this.uuid=generateUUID();this.name=\"\";this.type=\"BufferGeometry\";this.index=null;this.attributes={};this.morphAttributes={};this.morphTargetsRelative=false;this.groups=[];this.boundingBox=null;this.boundingSphere=null;this.drawRange={start:0,count:Infinity};this.userData={}}getIndex(){return this.index}setIndex(t){Array.isArray(t)?this.index=new(arrayNeedsUint32(t)?Uint32BufferAttribute:Uint16BufferAttribute)(t,1):this.index=t;return this}getAttribute(t){return this.attributes[t]}setAttribute(t,e){this.attributes[t]=e;return this}deleteAttribute(t){delete this.attributes[t];return this}hasAttribute(t){return this.attributes[t]!==void 0}addGroup(t,e,n=0){this.groups.push({start:t,count:e,materialIndex:n})}clearGroups(){this.groups=[]}setDrawRange(t,e){this.drawRange.start=t;this.drawRange.count=e}applyMatrix4(t){const e=this.attributes.position;if(e!==void 0){e.applyMatrix4(t);e.needsUpdate=true}const n=this.attributes.normal;if(n!==void 0){const e=(new Matrix3).getNormalMatrix(t);n.applyNormalMatrix(e);n.needsUpdate=true}const i=this.attributes.tangent;if(i!==void 0){i.transformDirection(t);i.needsUpdate=true}this.boundingBox!==null&&this.computeBoundingBox();this.boundingSphere!==null&&this.computeBoundingSphere();return this}applyQuaternion(t){yr.makeRotationFromQuaternion(t);this.applyMatrix4(yr);return this}rotateX(t){yr.makeRotationX(t);this.applyMatrix4(yr);return this}rotateY(t){yr.makeRotationY(t);this.applyMatrix4(yr);return this}rotateZ(t){yr.makeRotationZ(t);this.applyMatrix4(yr);return this}translate(t,e,n){yr.makeTranslation(t,e,n);this.applyMatrix4(yr);return this}scale(t,e,n){yr.makeScale(t,e,n);this.applyMatrix4(yr);return this}lookAt(t){Mr.lookAt(t);Mr.updateMatrix();this.applyMatrix4(Mr.matrix);return this}center(){this.computeBoundingBox();this.boundingBox.getCenter(Sr).negate();this.translate(Sr.x,Sr.y,Sr.z);return this}setFromPoints(t){const e=[];for(let n=0,i=t.length;n<i;n++){const i=t[n];e.push(i.x,i.y,i.z||0)}this.setAttribute(\"position\",new Float32BufferAttribute(e,3));return this}computeBoundingBox(){this.boundingBox===null&&(this.boundingBox=new Box3);const t=this.attributes.position;const e=this.morphAttributes.position;if(t&&t.isGLBufferAttribute){console.error(\"THREE.BufferGeometry.computeBoundingBox(): GLBufferAttribute requires a manual bounding box.\",this);this.boundingBox.set(new Vector3(-Infinity,-Infinity,-Infinity),new Vector3(Infinity,Infinity,Infinity))}else{if(t!==void 0){this.boundingBox.setFromBufferAttribute(t);if(e)for(let t=0,n=e.length;t<n;t++){const n=e[t];br.setFromBufferAttribute(n);if(this.morphTargetsRelative){wr.addVectors(this.boundingBox.min,br.min);this.boundingBox.expandByPoint(wr);wr.addVectors(this.boundingBox.max,br.max);this.boundingBox.expandByPoint(wr)}else{this.boundingBox.expandByPoint(br.min);this.boundingBox.expandByPoint(br.max)}}}else this.boundingBox.makeEmpty();(isNaN(this.boundingBox.min.x)||isNaN(this.boundingBox.min.y)||isNaN(this.boundingBox.min.z))&&console.error('THREE.BufferGeometry.computeBoundingBox(): Computed min/max have NaN values. The \"position\" attribute is likely to have NaN values.',this)}}computeBoundingSphere(){this.boundingSphere===null&&(this.boundingSphere=new Sphere);const t=this.attributes.position;const e=this.morphAttributes.position;if(t&&t.isGLBufferAttribute){console.error(\"THREE.BufferGeometry.computeBoundingSphere(): GLBufferAttribute requires a manual bounding sphere.\",this);this.boundingSphere.set(new Vector3,Infinity)}else if(t){const n=this.boundingSphere.center;br.setFromBufferAttribute(t);if(e)for(let t=0,n=e.length;t<n;t++){const n=e[t];Tr.setFromBufferAttribute(n);if(this.morphTargetsRelative){wr.addVectors(br.min,Tr.min);br.expandByPoint(wr);wr.addVectors(br.max,Tr.max);br.expandByPoint(wr)}else{br.expandByPoint(Tr.min);br.expandByPoint(Tr.max)}}br.getCenter(n);let i=0;for(let e=0,r=t.count;e<r;e++){wr.fromBufferAttribute(t,e);i=Math.max(i,n.distanceToSquared(wr))}if(e)for(let r=0,s=e.length;r<s;r++){const s=e[r];const a=this.morphTargetsRelative;for(let e=0,r=s.count;e<r;e++){wr.fromBufferAttribute(s,e);if(a){Sr.fromBufferAttribute(t,e);wr.add(Sr)}i=Math.max(i,n.distanceToSquared(wr))}}this.boundingSphere.radius=Math.sqrt(i);isNaN(this.boundingSphere.radius)&&console.error('THREE.BufferGeometry.computeBoundingSphere(): Computed radius is NaN. The \"position\" attribute is likely to have NaN values.',this)}}computeTangents(){const t=this.index;const e=this.attributes;if(t===null||e.position===void 0||e.normal===void 0||e.uv===void 0){console.error(\"THREE.BufferGeometry: .computeTangents() failed. Missing required attributes (index, position, normal or uv)\");return}const n=e.position;const i=e.normal;const r=e.uv;this.hasAttribute(\"tangent\")===false&&this.setAttribute(\"tangent\",new BufferAttribute(new Float32Array(4*n.count),4));const s=this.getAttribute(\"tangent\");const a=[],o=[];for(let t=0;t<n.count;t++){a[t]=new Vector3;o[t]=new Vector3}const l=new Vector3,c=new Vector3,h=new Vector3,u=new Vector2,d=new Vector2,p=new Vector2,f=new Vector3,m=new Vector3;function handleTriangle(t,e,i){l.fromBufferAttribute(n,t);c.fromBufferAttribute(n,e);h.fromBufferAttribute(n,i);u.fromBufferAttribute(r,t);d.fromBufferAttribute(r,e);p.fromBufferAttribute(r,i);c.sub(l);h.sub(l);d.sub(u);p.sub(u);const s=1/(d.x*p.y-p.x*d.y);if(isFinite(s)){f.copy(c).multiplyScalar(p.y).addScaledVector(h,-d.y).multiplyScalar(s);m.copy(h).multiplyScalar(d.x).addScaledVector(c,-p.x).multiplyScalar(s);a[t].add(f);a[e].add(f);a[i].add(f);o[t].add(m);o[e].add(m);o[i].add(m)}}let g=this.groups;g.length===0&&(g=[{start:0,count:t.count}]);for(let e=0,n=g.length;e<n;++e){const n=g[e];const i=n.start;const r=n.count;for(let e=i,n=i+r;e<n;e+=3)handleTriangle(t.getX(e+0),t.getX(e+1),t.getX(e+2))}const _=new Vector3,x=new Vector3;const y=new Vector3,M=new Vector3;function handleVertex(t){y.fromBufferAttribute(i,t);M.copy(y);const e=a[t];_.copy(e);_.sub(y.multiplyScalar(y.dot(e))).normalize();x.crossVectors(M,e);const n=x.dot(o[t]);const r=n<0?-1:1;s.setXYZW(t,_.x,_.y,_.z,r)}for(let e=0,n=g.length;e<n;++e){const n=g[e];const i=n.start;const r=n.count;for(let e=i,n=i+r;e<n;e+=3){handleVertex(t.getX(e+0));handleVertex(t.getX(e+1));handleVertex(t.getX(e+2))}}}computeVertexNormals(){const t=this.index;const e=this.getAttribute(\"position\");if(e!==void 0){let n=this.getAttribute(\"normal\");if(n===void 0){n=new BufferAttribute(new Float32Array(e.count*3),3);this.setAttribute(\"normal\",n)}else for(let t=0,e=n.count;t<e;t++)n.setXYZ(t,0,0,0);const i=new Vector3,r=new Vector3,s=new Vector3;const a=new Vector3,o=new Vector3,l=new Vector3;const c=new Vector3,h=new Vector3;if(t)for(let u=0,d=t.count;u<d;u+=3){const d=t.getX(u+0);const p=t.getX(u+1);const f=t.getX(u+2);i.fromBufferAttribute(e,d);r.fromBufferAttribute(e,p);s.fromBufferAttribute(e,f);c.subVectors(s,r);h.subVectors(i,r);c.cross(h);a.fromBufferAttribute(n,d);o.fromBufferAttribute(n,p);l.fromBufferAttribute(n,f);a.add(c);o.add(c);l.add(c);n.setXYZ(d,a.x,a.y,a.z);n.setXYZ(p,o.x,o.y,o.z);n.setXYZ(f,l.x,l.y,l.z)}else for(let t=0,a=e.count;t<a;t+=3){i.fromBufferAttribute(e,t+0);r.fromBufferAttribute(e,t+1);s.fromBufferAttribute(e,t+2);c.subVectors(s,r);h.subVectors(i,r);c.cross(h);n.setXYZ(t+0,c.x,c.y,c.z);n.setXYZ(t+1,c.x,c.y,c.z);n.setXYZ(t+2,c.x,c.y,c.z)}this.normalizeNormals();n.needsUpdate=true}}normalizeNormals(){const t=this.attributes.normal;for(let e=0,n=t.count;e<n;e++){wr.fromBufferAttribute(t,e);wr.normalize();t.setXYZ(e,wr.x,wr.y,wr.z)}}toNonIndexed(){function convertBufferAttribute(t,e){const n=t.array;const i=t.itemSize;const r=t.normalized;const s=new n.constructor(e.length*i);let a=0,o=0;for(let r=0,l=e.length;r<l;r++){a=t.isInterleavedBufferAttribute?e[r]*t.data.stride+t.offset:e[r]*i;for(let t=0;t<i;t++)s[o++]=n[a++]}return new BufferAttribute(s,i,r)}if(this.index===null){console.warn(\"THREE.BufferGeometry.toNonIndexed(): BufferGeometry is already non-indexed.\");return this}const t=new BufferGeometry;const e=this.index.array;const n=this.attributes;for(const i in n){const r=n[i];const s=convertBufferAttribute(r,e);t.setAttribute(i,s)}const i=this.morphAttributes;for(const n in i){const r=[];const s=i[n];for(let t=0,n=s.length;t<n;t++){const n=s[t];const i=convertBufferAttribute(n,e);r.push(i)}t.morphAttributes[n]=r}t.morphTargetsRelative=this.morphTargetsRelative;const r=this.groups;for(let e=0,n=r.length;e<n;e++){const n=r[e];t.addGroup(n.start,n.count,n.materialIndex)}return t}toJSON(){const t={metadata:{version:4.6,type:\"BufferGeometry\",generator:\"BufferGeometry.toJSON\"}};t.uuid=this.uuid;t.type=this.type;this.name!==\"\"&&(t.name=this.name);Object.keys(this.userData).length>0&&(t.userData=this.userData);if(this.parameters!==void 0){const e=this.parameters;for(const n in e)e[n]!==void 0&&(t[n]=e[n]);return t}t.data={attributes:{}};const e=this.index;e!==null&&(t.data.index={type:e.array.constructor.name,array:Array.prototype.slice.call(e.array)});const n=this.attributes;for(const e in n){const i=n[e];t.data.attributes[e]=i.toJSON(t.data)}const i={};let r=false;for(const e in this.morphAttributes){const n=this.morphAttributes[e];const s=[];for(let e=0,i=n.length;e<i;e++){const i=n[e];s.push(i.toJSON(t.data))}if(s.length>0){i[e]=s;r=true}}if(r){t.data.morphAttributes=i;t.data.morphTargetsRelative=this.morphTargetsRelative}const s=this.groups;s.length>0&&(t.data.groups=JSON.parse(JSON.stringify(s)));const a=this.boundingSphere;a!==null&&(t.data.boundingSphere={center:a.center.toArray(),radius:a.radius});return t}clone(){return(new this.constructor).copy(this)}copy(t){this.index=null;this.attributes={};this.morphAttributes={};this.groups=[];this.boundingBox=null;this.boundingSphere=null;const e={};this.name=t.name;const n=t.index;n!==null&&this.setIndex(n.clone(e));const i=t.attributes;for(const t in i){const n=i[t];this.setAttribute(t,n.clone(e))}const r=t.morphAttributes;for(const t in r){const n=[];const i=r[t];for(let t=0,r=i.length;t<r;t++)n.push(i[t].clone(e));this.morphAttributes[t]=n}this.morphTargetsRelative=t.morphTargetsRelative;const s=t.groups;for(let t=0,e=s.length;t<e;t++){const e=s[t];this.addGroup(e.start,e.count,e.materialIndex)}const a=t.boundingBox;a!==null&&(this.boundingBox=a.clone());const o=t.boundingSphere;o!==null&&(this.boundingSphere=o.clone());this.drawRange.start=t.drawRange.start;this.drawRange.count=t.drawRange.count;this.userData=t.userData;return this}dispose(){this.dispatchEvent({type:\"dispose\"})}}const Er=new Matrix4;const Ar=new Ray;const Cr=new Sphere;const Rr=new Vector3;const Pr=new Vector3;const Lr=new Vector3;const Ir=new Vector3;const Ur=new Vector3;const Dr=new Vector3;const Nr=new Vector2;const Br=new Vector2;const Or=new Vector2;const Vr=new Vector3;const Fr=new Vector3;const zr=new Vector3;const Gr=new Vector3;const kr=new Vector3;class Mesh extends Object3D{constructor(t=new BufferGeometry,e=new MeshBasicMaterial){super();this.isMesh=true;this.type=\"Mesh\";this.geometry=t;this.material=e;this.updateMorphTargets()}copy(t,e){super.copy(t,e);t.morphTargetInfluences!==void 0&&(this.morphTargetInfluences=t.morphTargetInfluences.slice());t.morphTargetDictionary!==void 0&&(this.morphTargetDictionary=Object.assign({},t.morphTargetDictionary));this.material=Array.isArray(t.material)?t.material.slice():t.material;this.geometry=t.geometry;return this}updateMorphTargets(){const t=this.geometry;const e=t.morphAttributes;const n=Object.keys(e);if(n.length>0){const t=e[n[0]];if(t!==void 0){this.morphTargetInfluences=[];this.morphTargetDictionary={};for(let e=0,n=t.length;e<n;e++){const n=t[e].name||String(e);this.morphTargetInfluences.push(0);this.morphTargetDictionary[n]=e}}}}getVertexPosition(t,e){const n=this.geometry;const i=n.attributes.position;const r=n.morphAttributes.position;const s=n.morphTargetsRelative;e.fromBufferAttribute(i,t);const a=this.morphTargetInfluences;if(r&&a){Dr.set(0,0,0);for(let n=0,i=r.length;n<i;n++){const i=a[n];const o=r[n];if(i!==0){Ur.fromBufferAttribute(o,t);s?Dr.addScaledVector(Ur,i):Dr.addScaledVector(Ur.sub(e),i)}}e.add(Dr)}return e}raycast(t,e){const n=this.geometry;const i=this.material;const r=this.matrixWorld;if(i!==void 0){n.boundingSphere===null&&n.computeBoundingSphere();Cr.copy(n.boundingSphere);Cr.applyMatrix4(r);Ar.copy(t.ray).recast(t.near);if(Cr.containsPoint(Ar.origin)===false){if(Ar.intersectSphere(Cr,Rr)===null)return;if(Ar.origin.distanceToSquared(Rr)>(t.far-t.near)**2)return}Er.copy(r).invert();Ar.copy(t.ray).applyMatrix4(Er);n.boundingBox!==null&&Ar.intersectsBox(n.boundingBox)===false||this._computeIntersections(t,e,Ar)}}_computeIntersections(t,e,n){let i;const r=this.geometry;const s=this.material;const a=r.index;const o=r.attributes.position;const l=r.attributes.uv;const c=r.attributes.uv1;const h=r.attributes.normal;const u=r.groups;const d=r.drawRange;if(a!==null)if(Array.isArray(s))for(let r=0,o=u.length;r<o;r++){const o=u[r];const p=s[o.materialIndex];const f=Math.max(o.start,d.start);const m=Math.min(a.count,Math.min(o.start+o.count,d.start+d.count));for(let r=f,s=m;r<s;r+=3){const s=a.getX(r);const u=a.getX(r+1);const d=a.getX(r+2);i=checkGeometryIntersection(this,p,t,n,l,c,h,s,u,d);if(i){i.faceIndex=Math.floor(r/3);i.face.materialIndex=o.materialIndex;e.push(i)}}}else{const r=Math.max(0,d.start);const o=Math.min(a.count,d.start+d.count);for(let u=r,d=o;u<d;u+=3){const r=a.getX(u);const o=a.getX(u+1);const d=a.getX(u+2);i=checkGeometryIntersection(this,s,t,n,l,c,h,r,o,d);if(i){i.faceIndex=Math.floor(u/3);e.push(i)}}}else if(o!==void 0)if(Array.isArray(s))for(let r=0,a=u.length;r<a;r++){const a=u[r];const p=s[a.materialIndex];const f=Math.max(a.start,d.start);const m=Math.min(o.count,Math.min(a.start+a.count,d.start+d.count));for(let r=f,s=m;r<s;r+=3){const s=r;const o=r+1;const u=r+2;i=checkGeometryIntersection(this,p,t,n,l,c,h,s,o,u);if(i){i.faceIndex=Math.floor(r/3);i.face.materialIndex=a.materialIndex;e.push(i)}}}else{const r=Math.max(0,d.start);const a=Math.min(o.count,d.start+d.count);for(let o=r,u=a;o<u;o+=3){const r=o;const a=o+1;const u=o+2;i=checkGeometryIntersection(this,s,t,n,l,c,h,r,a,u);if(i){i.faceIndex=Math.floor(o/3);e.push(i)}}}}}function checkIntersection$1(t,e,n,i,r,s,a,o){let l;l=e.side===d?i.intersectTriangle(a,s,r,true,o):i.intersectTriangle(r,s,a,e.side===u,o);if(l===null)return null;kr.copy(o);kr.applyMatrix4(t.matrixWorld);const c=n.ray.origin.distanceTo(kr);return c<n.near||c>n.far?null:{distance:c,point:kr.clone(),object:t}}function checkGeometryIntersection(t,e,n,i,r,s,a,o,l,c){t.getVertexPosition(o,Pr);t.getVertexPosition(l,Lr);t.getVertexPosition(c,Ir);const h=checkIntersection$1(t,e,n,i,Pr,Lr,Ir,Gr);if(h){if(r){Nr.fromBufferAttribute(r,o);Br.fromBufferAttribute(r,l);Or.fromBufferAttribute(r,c);h.uv=Triangle.getInterpolation(Gr,Pr,Lr,Ir,Nr,Br,Or,new Vector2)}if(s){Nr.fromBufferAttribute(s,o);Br.fromBufferAttribute(s,l);Or.fromBufferAttribute(s,c);h.uv1=Triangle.getInterpolation(Gr,Pr,Lr,Ir,Nr,Br,Or,new Vector2)}if(a){Vr.fromBufferAttribute(a,o);Fr.fromBufferAttribute(a,l);zr.fromBufferAttribute(a,c);h.normal=Triangle.getInterpolation(Gr,Pr,Lr,Ir,Vr,Fr,zr,new Vector3);h.normal.dot(i.direction)>0&&h.normal.multiplyScalar(-1)}const t={a:o,b:l,c:c,normal:new Vector3,materialIndex:0};Triangle.getNormal(Pr,Lr,Ir,t.normal);h.face=t}return h}class BoxGeometry extends BufferGeometry{constructor(t=1,e=1,n=1,i=1,r=1,s=1){super();this.type=\"BoxGeometry\";this.parameters={width:t,height:e,depth:n,widthSegments:i,heightSegments:r,depthSegments:s};const a=this;i=Math.floor(i);r=Math.floor(r);s=Math.floor(s);const o=[];const l=[];const c=[];const h=[];let u=0;let d=0;buildPlane(\"z\",\"y\",\"x\",-1,-1,n,e,t,s,r,0);buildPlane(\"z\",\"y\",\"x\",1,-1,n,e,-t,s,r,1);buildPlane(\"x\",\"z\",\"y\",1,1,t,n,e,i,s,2);buildPlane(\"x\",\"z\",\"y\",1,-1,t,n,-e,i,s,3);buildPlane(\"x\",\"y\",\"z\",1,-1,t,e,n,i,r,4);buildPlane(\"x\",\"y\",\"z\",-1,-1,t,e,-n,i,r,5);this.setIndex(o);this.setAttribute(\"position\",new Float32BufferAttribute(l,3));this.setAttribute(\"normal\",new Float32BufferAttribute(c,3));this.setAttribute(\"uv\",new Float32BufferAttribute(h,2));function buildPlane(t,e,n,i,r,s,p,f,m,g,_){const x=s/m;const y=p/g;const M=s/2;const S=p/2;const b=f/2;const T=m+1;const w=g+1;let E=0;let A=0;const C=new Vector3;for(let s=0;s<w;s++){const a=s*y-S;for(let o=0;o<T;o++){const u=o*x-M;C[t]=u*i;C[e]=a*r;C[n]=b;l.push(C.x,C.y,C.z);C[t]=0;C[e]=0;C[n]=f>0?1:-1;c.push(C.x,C.y,C.z);h.push(o/m);h.push(1-s/g);E+=1}}for(let t=0;t<g;t++)for(let e=0;e<m;e++){const n=u+e+T*t;const i=u+e+T*(t+1);const r=u+(e+1)+T*(t+1);const s=u+(e+1)+T*t;o.push(n,i,s);o.push(i,r,s);A+=6}a.addGroup(d,A,_);d+=A;u+=E}}copy(t){super.copy(t);this.parameters=Object.assign({},t.parameters);return this}static fromJSON(t){return new BoxGeometry(t.width,t.height,t.depth,t.widthSegments,t.heightSegments,t.depthSegments)}}function cloneUniforms(t){const e={};for(const n in t){e[n]={};for(const i in t[n]){const r=t[n][i];if(r&&(r.isColor||r.isMatrix3||r.isMatrix4||r.isVector2||r.isVector3||r.isVector4||r.isTexture||r.isQuaternion))if(r.isRenderTargetTexture){console.warn(\"UniformsUtils: Textures of render targets cannot be cloned via cloneUniforms() or mergeUniforms().\");e[n][i]=null}else e[n][i]=r.clone();else Array.isArray(r)?e[n][i]=r.slice():e[n][i]=r}}return e}function mergeUniforms(t){const e={};for(let n=0;n<t.length;n++){const i=cloneUniforms(t[n]);for(const t in i)e[t]=i[t]}return e}function cloneUniformsGroups(t){const e=[];for(let n=0;n<t.length;n++)e.push(t[n].clone());return e}function getUnlitUniformColorSpace(t){const e=t.getRenderTarget();return e===null?t.outputColorSpace:e.isXRRenderTarget===true?e.texture.colorSpace:ei.workingColorSpace}const Hr={clone:cloneUniforms,merge:mergeUniforms};var Wr=\"void main() {\\n\\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\\n}\";var Xr=\"void main() {\\n\\tgl_FragColor = vec4( 1.0, 0.0, 0.0, 1.0 );\\n}\";class ShaderMaterial extends Material{constructor(t){super();this.isShaderMaterial=true;this.type=\"ShaderMaterial\";this.defines={};this.uniforms={};this.uniformsGroups=[];this.vertexShader=Wr;this.fragmentShader=Xr;this.linewidth=1;this.wireframe=false;this.wireframeLinewidth=1;this.fog=false;this.lights=false;this.clipping=false;this.forceSinglePass=true;this.extensions={clipCullDistance:false,multiDraw:false};this.defaultAttributeValues={color:[1,1,1],uv:[0,0],uv1:[0,0]};this.index0AttributeName=void 0;this.uniformsNeedUpdate=false;this.glslVersion=null;t!==void 0&&this.setValues(t)}copy(t){super.copy(t);this.fragmentShader=t.fragmentShader;this.vertexShader=t.vertexShader;this.uniforms=cloneUniforms(t.uniforms);this.uniformsGroups=cloneUniformsGroups(t.uniformsGroups);this.defines=Object.assign({},t.defines);this.wireframe=t.wireframe;this.wireframeLinewidth=t.wireframeLinewidth;this.fog=t.fog;this.lights=t.lights;this.clipping=t.clipping;this.extensions=Object.assign({},t.extensions);this.glslVersion=t.glslVersion;return this}toJSON(t){const e=super.toJSON(t);e.glslVersion=this.glslVersion;e.uniforms={};for(const n in this.uniforms){const i=this.uniforms[n];const r=i.value;r&&r.isTexture?e.uniforms[n]={type:\"t\",value:r.toJSON(t).uuid}:r&&r.isColor?e.uniforms[n]={type:\"c\",value:r.getHex()}:r&&r.isVector2?e.uniforms[n]={type:\"v2\",value:r.toArray()}:r&&r.isVector3?e.uniforms[n]={type:\"v3\",value:r.toArray()}:r&&r.isVector4?e.uniforms[n]={type:\"v4\",value:r.toArray()}:r&&r.isMatrix3?e.uniforms[n]={type:\"m3\",value:r.toArray()}:r&&r.isMatrix4?e.uniforms[n]={type:\"m4\",value:r.toArray()}:e.uniforms[n]={value:r}}Object.keys(this.defines).length>0&&(e.defines=this.defines);e.vertexShader=this.vertexShader;e.fragmentShader=this.fragmentShader;e.lights=this.lights;e.clipping=this.clipping;const n={};for(const t in this.extensions)this.extensions[t]===true&&(n[t]=true);Object.keys(n).length>0&&(e.extensions=n);return e}}class Camera extends Object3D{constructor(){super();this.isCamera=true;this.type=\"Camera\";this.matrixWorldInverse=new Matrix4;this.projectionMatrix=new Matrix4;this.projectionMatrixInverse=new Matrix4;this.coordinateSystem=Gn}copy(t,e){super.copy(t,e);this.matrixWorldInverse.copy(t.matrixWorldInverse);this.projectionMatrix.copy(t.projectionMatrix);this.projectionMatrixInverse.copy(t.projectionMatrixInverse);this.coordinateSystem=t.coordinateSystem;return this}getWorldDirection(t){return super.getWorldDirection(t).negate()}updateMatrixWorld(t){super.updateMatrixWorld(t);this.matrixWorldInverse.copy(this.matrixWorld).invert()}updateWorldMatrix(t,e){super.updateWorldMatrix(t,e);this.matrixWorldInverse.copy(this.matrixWorld).invert()}clone(){return(new this.constructor).copy(this)}}const jr=new Vector3;const qr=new Vector2;const Yr=new Vector2;class PerspectiveCamera extends Camera{constructor(t=50,e=1,n=.1,i=2e3){super();this.isPerspectiveCamera=true;this.type=\"PerspectiveCamera\";this.fov=t;this.zoom=1;this.near=n;this.far=i;this.focus=10;this.aspect=e;this.view=null;this.filmGauge=35;this.filmOffset=0;this.updateProjectionMatrix()}copy(t,e){super.copy(t,e);this.fov=t.fov;this.zoom=t.zoom;this.near=t.near;this.far=t.far;this.focus=t.focus;this.aspect=t.aspect;this.view=t.view===null?null:Object.assign({},t.view);this.filmGauge=t.filmGauge;this.filmOffset=t.filmOffset;return this}setFocalLength(t){const e=.5*this.getFilmHeight()/t;this.fov=jn*2*Math.atan(e);this.updateProjectionMatrix()}getFocalLength(){const t=Math.tan(Xn*.5*this.fov);return.5*this.getFilmHeight()/t}getEffectiveFOV(){return jn*2*Math.atan(Math.tan(Xn*.5*this.fov)/this.zoom)}getFilmWidth(){return this.filmGauge*Math.min(this.aspect,1)}getFilmHeight(){return this.filmGauge/Math.max(this.aspect,1)}getViewBounds(t,e,n){jr.set(-1,-1,.5).applyMatrix4(this.projectionMatrixInverse);e.set(jr.x,jr.y).multiplyScalar(-t/jr.z);jr.set(1,1,.5).applyMatrix4(this.projectionMatrixInverse);n.set(jr.x,jr.y).multiplyScalar(-t/jr.z)}getViewSize(t,e){this.getViewBounds(t,qr,Yr);return e.subVectors(Yr,qr)}setViewOffset(t,e,n,i,r,s){this.aspect=t/e;this.view===null&&(this.view={enabled:true,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1});this.view.enabled=true;this.view.fullWidth=t;this.view.fullHeight=e;this.view.offsetX=n;this.view.offsetY=i;this.view.width=r;this.view.height=s;this.updateProjectionMatrix()}clearViewOffset(){this.view!==null&&(this.view.enabled=false);this.updateProjectionMatrix()}updateProjectionMatrix(){const t=this.near;let e=t*Math.tan(Xn*.5*this.fov)/this.zoom;let n=2*e;let i=this.aspect*n;let r=-.5*i;const s=this.view;if(this.view!==null&&this.view.enabled){const t=s.fullWidth,a=s.fullHeight;r+=s.offsetX*i/t;e-=s.offsetY*n/a;i*=s.width/t;n*=s.height/a}const a=this.filmOffset;a!==0&&(r+=t*a/this.getFilmWidth());this.projectionMatrix.makePerspective(r,r+i,e,e-n,t,this.far,this.coordinateSystem);this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(t){const e=super.toJSON(t);e.object.fov=this.fov;e.object.zoom=this.zoom;e.object.near=this.near;e.object.far=this.far;e.object.focus=this.focus;e.object.aspect=this.aspect;this.view!==null&&(e.object.view=Object.assign({},this.view));e.object.filmGauge=this.filmGauge;e.object.filmOffset=this.filmOffset;return e}}const Kr=-90;const Zr=1;class CubeCamera extends Object3D{constructor(t,e,n){super();this.type=\"CubeCamera\";this.renderTarget=n;this.coordinateSystem=null;this.activeMipmapLevel=0;const i=new PerspectiveCamera(Kr,Zr,t,e);i.layers=this.layers;this.add(i);const r=new PerspectiveCamera(Kr,Zr,t,e);r.layers=this.layers;this.add(r);const s=new PerspectiveCamera(Kr,Zr,t,e);s.layers=this.layers;this.add(s);const a=new PerspectiveCamera(Kr,Zr,t,e);a.layers=this.layers;this.add(a);const o=new PerspectiveCamera(Kr,Zr,t,e);o.layers=this.layers;this.add(o);const l=new PerspectiveCamera(Kr,Zr,t,e);l.layers=this.layers;this.add(l)}updateCoordinateSystem(){const t=this.coordinateSystem;const e=this.children.concat();const[n,i,r,s,a,o]=e;for(const t of e)this.remove(t);if(t===Gn){n.up.set(0,1,0);n.lookAt(1,0,0);i.up.set(0,1,0);i.lookAt(-1,0,0);r.up.set(0,0,-1);r.lookAt(0,1,0);s.up.set(0,0,1);s.lookAt(0,-1,0);a.up.set(0,1,0);a.lookAt(0,0,1);o.up.set(0,1,0);o.lookAt(0,0,-1)}else{if(t!==kn)throw new Error(\"THREE.CubeCamera.updateCoordinateSystem(): Invalid coordinate system: \"+t);n.up.set(0,-1,0);n.lookAt(-1,0,0);i.up.set(0,-1,0);i.lookAt(1,0,0);r.up.set(0,0,1);r.lookAt(0,1,0);s.up.set(0,0,-1);s.lookAt(0,-1,0);a.up.set(0,-1,0);a.lookAt(0,0,1);o.up.set(0,-1,0);o.lookAt(0,0,-1)}for(const t of e){this.add(t);t.updateMatrixWorld()}}update(t,e){this.parent===null&&this.updateMatrixWorld();const{renderTarget:n,activeMipmapLevel:i}=this;if(this.coordinateSystem!==t.coordinateSystem){this.coordinateSystem=t.coordinateSystem;this.updateCoordinateSystem()}const[r,s,a,o,l,c]=this.children;const h=t.getRenderTarget();const u=t.getActiveCubeFace();const d=t.getActiveMipmapLevel();const p=t.xr.enabled;t.xr.enabled=false;const f=n.texture.generateMipmaps;n.texture.generateMipmaps=false;t.setRenderTarget(n,0,i);t.render(e,r);t.setRenderTarget(n,1,i);t.render(e,s);t.setRenderTarget(n,2,i);t.render(e,a);t.setRenderTarget(n,3,i);t.render(e,o);t.setRenderTarget(n,4,i);t.render(e,l);n.texture.generateMipmaps=f;t.setRenderTarget(n,5,i);t.render(e,c);t.setRenderTarget(h,u,d);t.xr.enabled=p;n.texture.needsPMREMUpdate=true}}class CubeTexture extends Texture{constructor(t,e,n,i,r,s,a,o,l,c){t=t!==void 0?t:[];e=e!==void 0?e:ct;super(t,e,n,i,r,s,a,o,l,c);this.isCubeTexture=true;this.flipY=false}get images(){return this.image}set images(t){this.image=t}}class WebGLCubeRenderTarget extends WebGLRenderTarget{constructor(t=1,e={}){super(t,t,e);this.isWebGLCubeRenderTarget=true;const n={width:t,height:t,depth:1};const i=[n,n,n,n,n,n];this.texture=new CubeTexture(i,e.mapping,e.wrapS,e.wrapT,e.magFilter,e.minFilter,e.format,e.type,e.anisotropy,e.colorSpace);this.texture.isRenderTargetTexture=true;this.texture.generateMipmaps=e.generateMipmaps!==void 0&&e.generateMipmaps;this.texture.minFilter=e.minFilter!==void 0?e.minFilter:St}fromEquirectangularTexture(t,e){this.texture.type=e.type;this.texture.colorSpace=e.colorSpace;this.texture.generateMipmaps=e.generateMipmaps;this.texture.minFilter=e.minFilter;this.texture.magFilter=e.magFilter;const n={uniforms:{tEquirect:{value:null}},vertexShader:\"\\n\\n\\t\\t\\t\\tvarying vec3 vWorldDirection;\\n\\n\\t\\t\\t\\tvec3 transformDirection( in vec3 dir, in mat4 matrix ) {\\n\\n\\t\\t\\t\\t\\treturn normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );\\n\\n\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\tvoid main() {\\n\\n\\t\\t\\t\\t\\tvWorldDirection = transformDirection( position, modelMatrix );\\n\\n\\t\\t\\t\\t\\t#include <begin_vertex>\\n\\t\\t\\t\\t\\t#include <project_vertex>\\n\\n\\t\\t\\t\\t}\\n\\t\\t\\t\",fragmentShader:\"\\n\\n\\t\\t\\t\\tuniform sampler2D tEquirect;\\n\\n\\t\\t\\t\\tvarying vec3 vWorldDirection;\\n\\n\\t\\t\\t\\t#include <common>\\n\\n\\t\\t\\t\\tvoid main() {\\n\\n\\t\\t\\t\\t\\tvec3 direction = normalize( vWorldDirection );\\n\\n\\t\\t\\t\\t\\tvec2 sampleUV = equirectUv( direction );\\n\\n\\t\\t\\t\\t\\tgl_FragColor = texture2D( tEquirect, sampleUV );\\n\\n\\t\\t\\t\\t}\\n\\t\\t\\t\"};const i=new BoxGeometry(5,5,5);const r=new ShaderMaterial({name:\"CubemapFromEquirect\",uniforms:cloneUniforms(n.uniforms),vertexShader:n.vertexShader,fragmentShader:n.fragmentShader,side:d,blending:f});r.uniforms.tEquirect.value=e;const s=new Mesh(i,r);const a=e.minFilter;e.minFilter===wt&&(e.minFilter=St);const o=new CubeCamera(1,10,this);o.update(t,s);e.minFilter=a;s.geometry.dispose();s.material.dispose();return this}clear(t,e,n,i){const r=t.getRenderTarget();for(let r=0;r<6;r++){t.setRenderTarget(this,r);t.clear(e,n,i)}t.setRenderTarget(r)}}const Jr=new Vector3;const Qr=new Vector3;const $r=new Matrix3;class Plane{constructor(t=new Vector3(1,0,0),e=0){this.isPlane=true;this.normal=t;this.constant=e}set(t,e){this.normal.copy(t);this.constant=e;return this}setComponents(t,e,n,i){this.normal.set(t,e,n);this.constant=i;return this}setFromNormalAndCoplanarPoint(t,e){this.normal.copy(t);this.constant=-e.dot(this.normal);return this}setFromCoplanarPoints(t,e,n){const i=Jr.subVectors(n,e).cross(Qr.subVectors(t,e)).normalize();this.setFromNormalAndCoplanarPoint(i,t);return this}copy(t){this.normal.copy(t.normal);this.constant=t.constant;return this}normalize(){const t=1/this.normal.length();this.normal.multiplyScalar(t);this.constant*=t;return this}negate(){this.constant*=-1;this.normal.negate();return this}distanceToPoint(t){return this.normal.dot(t)+this.constant}distanceToSphere(t){return this.distanceToPoint(t.center)-t.radius}projectPoint(t,e){return e.copy(t).addScaledVector(this.normal,-this.distanceToPoint(t))}intersectLine(t,e){const n=t.delta(Jr);const i=this.normal.dot(n);if(i===0)return this.distanceToPoint(t.start)===0?e.copy(t.start):null;const r=-(t.start.dot(this.normal)+this.constant)/i;return r<0||r>1?null:e.copy(t.start).addScaledVector(n,r)}intersectsLine(t){const e=this.distanceToPoint(t.start);const n=this.distanceToPoint(t.end);return e<0&&n>0||n<0&&e>0}intersectsBox(t){return t.intersectsPlane(this)}intersectsSphere(t){return t.intersectsPlane(this)}coplanarPoint(t){return t.copy(this.normal).multiplyScalar(-this.constant)}applyMatrix4(t,e){const n=e||$r.getNormalMatrix(t);const i=this.coplanarPoint(Jr).applyMatrix4(t);const r=this.normal.applyMatrix3(n).normalize();this.constant=-i.dot(r);return this}translate(t){this.constant-=t.dot(this.normal);return this}equals(t){return t.normal.equals(this.normal)&&t.constant===this.constant}clone(){return(new this.constructor).copy(this)}}const ts=new Sphere;const es=new Vector3;class Frustum{constructor(t=new Plane,e=new Plane,n=new Plane,i=new Plane,r=new Plane,s=new Plane){this.planes=[t,e,n,i,r,s]}set(t,e,n,i,r,s){const a=this.planes;a[0].copy(t);a[1].copy(e);a[2].copy(n);a[3].copy(i);a[4].copy(r);a[5].copy(s);return this}copy(t){const e=this.planes;for(let n=0;n<6;n++)e[n].copy(t.planes[n]);return this}setFromProjectionMatrix(t,e=Gn){const n=this.planes;const i=t.elements;const r=i[0],s=i[1],a=i[2],o=i[3];const l=i[4],c=i[5],h=i[6],u=i[7];const d=i[8],p=i[9],f=i[10],m=i[11];const g=i[12],_=i[13],x=i[14],y=i[15];n[0].setComponents(o-r,u-l,m-d,y-g).normalize();n[1].setComponents(o+r,u+l,m+d,y+g).normalize();n[2].setComponents(o+s,u+c,m+p,y+_).normalize();n[3].setComponents(o-s,u-c,m-p,y-_).normalize();n[4].setComponents(o-a,u-h,m-f,y-x).normalize();if(e===Gn)n[5].setComponents(o+a,u+h,m+f,y+x).normalize();else{if(e!==kn)throw new Error(\"THREE.Frustum.setFromProjectionMatrix(): Invalid coordinate system: \"+e);n[5].setComponents(a,h,f,x).normalize()}return this}intersectsObject(t){if(t.boundingSphere!==void 0){t.boundingSphere===null&&t.computeBoundingSphere();ts.copy(t.boundingSphere).applyMatrix4(t.matrixWorld)}else{const e=t.geometry;e.boundingSphere===null&&e.computeBoundingSphere();ts.copy(e.boundingSphere).applyMatrix4(t.matrixWorld)}return this.intersectsSphere(ts)}intersectsSprite(t){ts.center.set(0,0,0);ts.radius=.7071067811865476;ts.applyMatrix4(t.matrixWorld);return this.intersectsSphere(ts)}intersectsSphere(t){const e=this.planes;const n=t.center;const i=-t.radius;for(let t=0;t<6;t++){const r=e[t].distanceToPoint(n);if(r<i)return false}return true}intersectsBox(t){const e=this.planes;for(let n=0;n<6;n++){const i=e[n];es.x=i.normal.x>0?t.max.x:t.min.x;es.y=i.normal.y>0?t.max.y:t.min.y;es.z=i.normal.z>0?t.max.z:t.min.z;if(i.distanceToPoint(es)<0)return false}return true}containsPoint(t){const e=this.planes;for(let n=0;n<6;n++)if(e[n].distanceToPoint(t)<0)return false;return true}clone(){return(new this.constructor).copy(this)}}function WebGLAnimation(){let t=null;let e=false;let n=null;let i=null;function onAnimationFrame(e,r){n(e,r);i=t.requestAnimationFrame(onAnimationFrame)}return{start:function(){if(e!==true&&n!==null){i=t.requestAnimationFrame(onAnimationFrame);e=true}},stop:function(){t.cancelAnimationFrame(i);e=false},setAnimationLoop:function(t){n=t},setContext:function(e){t=e}}}function WebGLAttributes(t){const e=new WeakMap;function createBuffer(e,n){const i=e.array;const r=e.usage;const s=i.byteLength;const a=t.createBuffer();t.bindBuffer(n,a);t.bufferData(n,i,r);e.onUploadCallback();let o;if(i instanceof Float32Array)o=t.FLOAT;else if(i instanceof Uint16Array)o=e.isFloat16BufferAttribute?t.HALF_FLOAT:t.UNSIGNED_SHORT;else if(i instanceof Int16Array)o=t.SHORT;else if(i instanceof Uint32Array)o=t.UNSIGNED_INT;else if(i instanceof Int32Array)o=t.INT;else if(i instanceof Int8Array)o=t.BYTE;else if(i instanceof Uint8Array)o=t.UNSIGNED_BYTE;else{if(!(i instanceof Uint8ClampedArray))throw new Error(\"THREE.WebGLAttributes: Unsupported buffer data format: \"+i);o=t.UNSIGNED_BYTE}return{buffer:a,type:o,bytesPerElement:i.BYTES_PER_ELEMENT,version:e.version,size:s}}function updateBuffer(e,n,i){const r=n.array;const s=n._updateRange;const a=n.updateRanges;t.bindBuffer(i,e);s.count===-1&&a.length===0&&t.bufferSubData(i,0,r);if(a.length!==0){for(let e=0,n=a.length;e<n;e++){const n=a[e];t.bufferSubData(i,n.start*r.BYTES_PER_ELEMENT,r,n.start,n.count)}n.clearUpdateRanges()}if(s.count!==-1){t.bufferSubData(i,s.offset*r.BYTES_PER_ELEMENT,r,s.offset,s.count);s.count=-1}n.onUploadCallback()}function get(t){t.isInterleavedBufferAttribute&&(t=t.data);return e.get(t)}function remove(n){n.isInterleavedBufferAttribute&&(n=n.data);const i=e.get(n);if(i){t.deleteBuffer(i.buffer);e.delete(n)}}function update(t,n){t.isInterleavedBufferAttribute&&(t=t.data);if(t.isGLBufferAttribute){const n=e.get(t);(!n||n.version<t.version)&&e.set(t,{buffer:t.buffer,type:t.type,bytesPerElement:t.elementSize,version:t.version});return}const i=e.get(t);if(i===void 0)e.set(t,createBuffer(t,n));else if(i.version<t.version){if(i.size!==t.array.byteLength)throw new Error(\"THREE.WebGLAttributes: The size of the buffer attribute's array buffer does not match the original size. Resizing buffer attributes is not supported.\");updateBuffer(i.buffer,t,n);i.version=t.version}}return{get:get,remove:remove,update:update}}class PlaneGeometry extends BufferGeometry{constructor(t=1,e=1,n=1,i=1){super();this.type=\"PlaneGeometry\";this.parameters={width:t,height:e,widthSegments:n,heightSegments:i};const r=t/2;const s=e/2;const a=Math.floor(n);const o=Math.floor(i);const l=a+1;const c=o+1;const h=t/a;const u=e/o;const d=[];const p=[];const f=[];const m=[];for(let t=0;t<c;t++){const e=t*u-s;for(let n=0;n<l;n++){const i=n*h-r;p.push(i,-e,0);f.push(0,0,1);m.push(n/a);m.push(1-t/o)}}for(let t=0;t<o;t++)for(let e=0;e<a;e++){const n=e+l*t;const i=e+l*(t+1);const r=e+1+l*(t+1);const s=e+1+l*t;d.push(n,i,s);d.push(i,r,s)}this.setIndex(d);this.setAttribute(\"position\",new Float32BufferAttribute(p,3));this.setAttribute(\"normal\",new Float32BufferAttribute(f,3));this.setAttribute(\"uv\",new Float32BufferAttribute(m,2))}copy(t){super.copy(t);this.parameters=Object.assign({},t.parameters);return this}static fromJSON(t){return new PlaneGeometry(t.width,t.height,t.widthSegments,t.heightSegments)}}var ns=\"#ifdef USE_ALPHAHASH\\n\\tif ( diffuseColor.a < getAlphaHashThreshold( vPosition ) ) discard;\\n#endif\";var is=\"#ifdef USE_ALPHAHASH\\n\\tconst float ALPHA_HASH_SCALE = 0.05;\\n\\tfloat hash2D( vec2 value ) {\\n\\t\\treturn fract( 1.0e4 * sin( 17.0 * value.x + 0.1 * value.y ) * ( 0.1 + abs( sin( 13.0 * value.y + value.x ) ) ) );\\n\\t}\\n\\tfloat hash3D( vec3 value ) {\\n\\t\\treturn hash2D( vec2( hash2D( value.xy ), value.z ) );\\n\\t}\\n\\tfloat getAlphaHashThreshold( vec3 position ) {\\n\\t\\tfloat maxDeriv = max(\\n\\t\\t\\tlength( dFdx( position.xyz ) ),\\n\\t\\t\\tlength( dFdy( position.xyz ) )\\n\\t\\t);\\n\\t\\tfloat pixScale = 1.0 / ( ALPHA_HASH_SCALE * maxDeriv );\\n\\t\\tvec2 pixScales = vec2(\\n\\t\\t\\texp2( floor( log2( pixScale ) ) ),\\n\\t\\t\\texp2( ceil( log2( pixScale ) ) )\\n\\t\\t);\\n\\t\\tvec2 alpha = vec2(\\n\\t\\t\\thash3D( floor( pixScales.x * position.xyz ) ),\\n\\t\\t\\thash3D( floor( pixScales.y * position.xyz ) )\\n\\t\\t);\\n\\t\\tfloat lerpFactor = fract( log2( pixScale ) );\\n\\t\\tfloat x = ( 1.0 - lerpFactor ) * alpha.x + lerpFactor * alpha.y;\\n\\t\\tfloat a = min( lerpFactor, 1.0 - lerpFactor );\\n\\t\\tvec3 cases = vec3(\\n\\t\\t\\tx * x / ( 2.0 * a * ( 1.0 - a ) ),\\n\\t\\t\\t( x - 0.5 * a ) / ( 1.0 - a ),\\n\\t\\t\\t1.0 - ( ( 1.0 - x ) * ( 1.0 - x ) / ( 2.0 * a * ( 1.0 - a ) ) )\\n\\t\\t);\\n\\t\\tfloat threshold = ( x < ( 1.0 - a ) )\\n\\t\\t\\t? ( ( x < a ) ? cases.x : cases.y )\\n\\t\\t\\t: cases.z;\\n\\t\\treturn clamp( threshold , 1.0e-6, 1.0 );\\n\\t}\\n#endif\";var rs=\"#ifdef USE_ALPHAMAP\\n\\tdiffuseColor.a *= texture2D( alphaMap, vAlphaMapUv ).g;\\n#endif\";var ss=\"#ifdef USE_ALPHAMAP\\n\\tuniform sampler2D alphaMap;\\n#endif\";var as=\"#ifdef USE_ALPHATEST\\n\\t#ifdef ALPHA_TO_COVERAGE\\n\\tdiffuseColor.a = smoothstep( alphaTest, alphaTest + fwidth( diffuseColor.a ), diffuseColor.a );\\n\\tif ( diffuseColor.a == 0.0 ) discard;\\n\\t#else\\n\\tif ( diffuseColor.a < alphaTest ) discard;\\n\\t#endif\\n#endif\";var os=\"#ifdef USE_ALPHATEST\\n\\tuniform float alphaTest;\\n#endif\";var ls=\"#ifdef USE_AOMAP\\n\\tfloat ambientOcclusion = ( texture2D( aoMap, vAoMapUv ).r - 1.0 ) * aoMapIntensity + 1.0;\\n\\treflectedLight.indirectDiffuse *= ambientOcclusion;\\n\\t#if defined( USE_CLEARCOAT ) \\n\\t\\tclearcoatSpecularIndirect *= ambientOcclusion;\\n\\t#endif\\n\\t#if defined( USE_SHEEN ) \\n\\t\\tsheenSpecularIndirect *= ambientOcclusion;\\n\\t#endif\\n\\t#if defined( USE_ENVMAP ) && defined( STANDARD )\\n\\t\\tfloat dotNV = saturate( dot( geometryNormal, geometryViewDir ) );\\n\\t\\treflectedLight.indirectSpecular *= computeSpecularOcclusion( dotNV, ambientOcclusion, material.roughness );\\n\\t#endif\\n#endif\";var cs=\"#ifdef USE_AOMAP\\n\\tuniform sampler2D aoMap;\\n\\tuniform float aoMapIntensity;\\n#endif\";var hs=\"#ifdef USE_BATCHING\\n\\t#if ! defined( GL_ANGLE_multi_draw )\\n\\t#define gl_DrawID _gl_DrawID\\n\\tuniform int _gl_DrawID;\\n\\t#endif\\n\\tuniform highp sampler2D batchingTexture;\\n\\tuniform highp usampler2D batchingIdTexture;\\n\\tmat4 getBatchingMatrix( const in float i ) {\\n\\t\\tint size = textureSize( batchingTexture, 0 ).x;\\n\\t\\tint j = int( i ) * 4;\\n\\t\\tint x = j % size;\\n\\t\\tint y = j / size;\\n\\t\\tvec4 v1 = texelFetch( batchingTexture, ivec2( x, y ), 0 );\\n\\t\\tvec4 v2 = texelFetch( batchingTexture, ivec2( x + 1, y ), 0 );\\n\\t\\tvec4 v3 = texelFetch( batchingTexture, ivec2( x + 2, y ), 0 );\\n\\t\\tvec4 v4 = texelFetch( batchingTexture, ivec2( x + 3, y ), 0 );\\n\\t\\treturn mat4( v1, v2, v3, v4 );\\n\\t}\\n\\tfloat getIndirectIndex( const in int i ) {\\n\\t\\tint size = textureSize( batchingIdTexture, 0 ).x;\\n\\t\\tint x = i % size;\\n\\t\\tint y = i / size;\\n\\t\\treturn float( texelFetch( batchingIdTexture, ivec2( x, y ), 0 ).r );\\n\\t}\\n#endif\\n#ifdef USE_BATCHING_COLOR\\n\\tuniform sampler2D batchingColorTexture;\\n\\tvec3 getBatchingColor( const in float i ) {\\n\\t\\tint size = textureSize( batchingColorTexture, 0 ).x;\\n\\t\\tint j = int( i );\\n\\t\\tint x = j % size;\\n\\t\\tint y = j / size;\\n\\t\\treturn texelFetch( batchingColorTexture, ivec2( x, y ), 0 ).rgb;\\n\\t}\\n#endif\";var us=\"#ifdef USE_BATCHING\\n\\tmat4 batchingMatrix = getBatchingMatrix( getIndirectIndex( gl_DrawID ) );\\n#endif\";var ds=\"vec3 transformed = vec3( position );\\n#ifdef USE_ALPHAHASH\\n\\tvPosition = vec3( position );\\n#endif\";var ps=\"vec3 objectNormal = vec3( normal );\\n#ifdef USE_TANGENT\\n\\tvec3 objectTangent = vec3( tangent.xyz );\\n#endif\";var fs=\"float G_BlinnPhong_Implicit( ) {\\n\\treturn 0.25;\\n}\\nfloat D_BlinnPhong( const in float shininess, const in float dotNH ) {\\n\\treturn RECIPROCAL_PI * ( shininess * 0.5 + 1.0 ) * pow( dotNH, shininess );\\n}\\nvec3 BRDF_BlinnPhong( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in vec3 specularColor, const in float shininess ) {\\n\\tvec3 halfDir = normalize( lightDir + viewDir );\\n\\tfloat dotNH = saturate( dot( normal, halfDir ) );\\n\\tfloat dotVH = saturate( dot( viewDir, halfDir ) );\\n\\tvec3 F = F_Schlick( specularColor, 1.0, dotVH );\\n\\tfloat G = G_BlinnPhong_Implicit( );\\n\\tfloat D = D_BlinnPhong( shininess, dotNH );\\n\\treturn F * ( G * D );\\n} // validated\";var ms=\"#ifdef USE_IRIDESCENCE\\n\\tconst mat3 XYZ_TO_REC709 = mat3(\\n\\t\\t 3.2404542, -0.9692660,  0.0556434,\\n\\t\\t-1.5371385,  1.8760108, -0.2040259,\\n\\t\\t-0.4985314,  0.0415560,  1.0572252\\n\\t);\\n\\tvec3 Fresnel0ToIor( vec3 fresnel0 ) {\\n\\t\\tvec3 sqrtF0 = sqrt( fresnel0 );\\n\\t\\treturn ( vec3( 1.0 ) + sqrtF0 ) / ( vec3( 1.0 ) - sqrtF0 );\\n\\t}\\n\\tvec3 IorToFresnel0( vec3 transmittedIor, float incidentIor ) {\\n\\t\\treturn pow2( ( transmittedIor - vec3( incidentIor ) ) / ( transmittedIor + vec3( incidentIor ) ) );\\n\\t}\\n\\tfloat IorToFresnel0( float transmittedIor, float incidentIor ) {\\n\\t\\treturn pow2( ( transmittedIor - incidentIor ) / ( transmittedIor + incidentIor ));\\n\\t}\\n\\tvec3 evalSensitivity( float OPD, vec3 shift ) {\\n\\t\\tfloat phase = 2.0 * PI * OPD * 1.0e-9;\\n\\t\\tvec3 val = vec3( 5.4856e-13, 4.4201e-13, 5.2481e-13 );\\n\\t\\tvec3 pos = vec3( 1.6810e+06, 1.7953e+06, 2.2084e+06 );\\n\\t\\tvec3 var = vec3( 4.3278e+09, 9.3046e+09, 6.6121e+09 );\\n\\t\\tvec3 xyz = val * sqrt( 2.0 * PI * var ) * cos( pos * phase + shift ) * exp( - pow2( phase ) * var );\\n\\t\\txyz.x += 9.7470e-14 * sqrt( 2.0 * PI * 4.5282e+09 ) * cos( 2.2399e+06 * phase + shift[ 0 ] ) * exp( - 4.5282e+09 * pow2( phase ) );\\n\\t\\txyz /= 1.0685e-7;\\n\\t\\tvec3 rgb = XYZ_TO_REC709 * xyz;\\n\\t\\treturn rgb;\\n\\t}\\n\\tvec3 evalIridescence( float outsideIOR, float eta2, float cosTheta1, float thinFilmThickness, vec3 baseF0 ) {\\n\\t\\tvec3 I;\\n\\t\\tfloat iridescenceIOR = mix( outsideIOR, eta2, smoothstep( 0.0, 0.03, thinFilmThickness ) );\\n\\t\\tfloat sinTheta2Sq = pow2( outsideIOR / iridescenceIOR ) * ( 1.0 - pow2( cosTheta1 ) );\\n\\t\\tfloat cosTheta2Sq = 1.0 - sinTheta2Sq;\\n\\t\\tif ( cosTheta2Sq < 0.0 ) {\\n\\t\\t\\treturn vec3( 1.0 );\\n\\t\\t}\\n\\t\\tfloat cosTheta2 = sqrt( cosTheta2Sq );\\n\\t\\tfloat R0 = IorToFresnel0( iridescenceIOR, outsideIOR );\\n\\t\\tfloat R12 = F_Schlick( R0, 1.0, cosTheta1 );\\n\\t\\tfloat T121 = 1.0 - R12;\\n\\t\\tfloat phi12 = 0.0;\\n\\t\\tif ( iridescenceIOR < outsideIOR ) phi12 = PI;\\n\\t\\tfloat phi21 = PI - phi12;\\n\\t\\tvec3 baseIOR = Fresnel0ToIor( clamp( baseF0, 0.0, 0.9999 ) );\\t\\tvec3 R1 = IorToFresnel0( baseIOR, iridescenceIOR );\\n\\t\\tvec3 R23 = F_Schlick( R1, 1.0, cosTheta2 );\\n\\t\\tvec3 phi23 = vec3( 0.0 );\\n\\t\\tif ( baseIOR[ 0 ] < iridescenceIOR ) phi23[ 0 ] = PI;\\n\\t\\tif ( baseIOR[ 1 ] < iridescenceIOR ) phi23[ 1 ] = PI;\\n\\t\\tif ( baseIOR[ 2 ] < iridescenceIOR ) phi23[ 2 ] = PI;\\n\\t\\tfloat OPD = 2.0 * iridescenceIOR * thinFilmThickness * cosTheta2;\\n\\t\\tvec3 phi = vec3( phi21 ) + phi23;\\n\\t\\tvec3 R123 = clamp( R12 * R23, 1e-5, 0.9999 );\\n\\t\\tvec3 r123 = sqrt( R123 );\\n\\t\\tvec3 Rs = pow2( T121 ) * R23 / ( vec3( 1.0 ) - R123 );\\n\\t\\tvec3 C0 = R12 + Rs;\\n\\t\\tI = C0;\\n\\t\\tvec3 Cm = Rs - T121;\\n\\t\\tfor ( int m = 1; m <= 2; ++ m ) {\\n\\t\\t\\tCm *= r123;\\n\\t\\t\\tvec3 Sm = 2.0 * evalSensitivity( float( m ) * OPD, float( m ) * phi );\\n\\t\\t\\tI += Cm * Sm;\\n\\t\\t}\\n\\t\\treturn max( I, vec3( 0.0 ) );\\n\\t}\\n#endif\";var gs=\"#ifdef USE_BUMPMAP\\n\\tuniform sampler2D bumpMap;\\n\\tuniform float bumpScale;\\n\\tvec2 dHdxy_fwd() {\\n\\t\\tvec2 dSTdx = dFdx( vBumpMapUv );\\n\\t\\tvec2 dSTdy = dFdy( vBumpMapUv );\\n\\t\\tfloat Hll = bumpScale * texture2D( bumpMap, vBumpMapUv ).x;\\n\\t\\tfloat dBx = bumpScale * texture2D( bumpMap, vBumpMapUv + dSTdx ).x - Hll;\\n\\t\\tfloat dBy = bumpScale * texture2D( bumpMap, vBumpMapUv + dSTdy ).x - Hll;\\n\\t\\treturn vec2( dBx, dBy );\\n\\t}\\n\\tvec3 perturbNormalArb( vec3 surf_pos, vec3 surf_norm, vec2 dHdxy, float faceDirection ) {\\n\\t\\tvec3 vSigmaX = normalize( dFdx( surf_pos.xyz ) );\\n\\t\\tvec3 vSigmaY = normalize( dFdy( surf_pos.xyz ) );\\n\\t\\tvec3 vN = surf_norm;\\n\\t\\tvec3 R1 = cross( vSigmaY, vN );\\n\\t\\tvec3 R2 = cross( vN, vSigmaX );\\n\\t\\tfloat fDet = dot( vSigmaX, R1 ) * faceDirection;\\n\\t\\tvec3 vGrad = sign( fDet ) * ( dHdxy.x * R1 + dHdxy.y * R2 );\\n\\t\\treturn normalize( abs( fDet ) * surf_norm - vGrad );\\n\\t}\\n#endif\";var vs=\"#if NUM_CLIPPING_PLANES > 0\\n\\tvec4 plane;\\n\\t#ifdef ALPHA_TO_COVERAGE\\n\\t\\tfloat distanceToPlane, distanceGradient;\\n\\t\\tfloat clipOpacity = 1.0;\\n\\t\\t#pragma unroll_loop_start\\n\\t\\tfor ( int i = 0; i < UNION_CLIPPING_PLANES; i ++ ) {\\n\\t\\t\\tplane = clippingPlanes[ i ];\\n\\t\\t\\tdistanceToPlane = - dot( vClipPosition, plane.xyz ) + plane.w;\\n\\t\\t\\tdistanceGradient = fwidth( distanceToPlane ) / 2.0;\\n\\t\\t\\tclipOpacity *= smoothstep( - distanceGradient, distanceGradient, distanceToPlane );\\n\\t\\t\\tif ( clipOpacity == 0.0 ) discard;\\n\\t\\t}\\n\\t\\t#pragma unroll_loop_end\\n\\t\\t#if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES\\n\\t\\t\\tfloat unionClipOpacity = 1.0;\\n\\t\\t\\t#pragma unroll_loop_start\\n\\t\\t\\tfor ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; i ++ ) {\\n\\t\\t\\t\\tplane = clippingPlanes[ i ];\\n\\t\\t\\t\\tdistanceToPlane = - dot( vClipPosition, plane.xyz ) + plane.w;\\n\\t\\t\\t\\tdistanceGradient = fwidth( distanceToPlane ) / 2.0;\\n\\t\\t\\t\\tunionClipOpacity *= 1.0 - smoothstep( - distanceGradient, distanceGradient, distanceToPlane );\\n\\t\\t\\t}\\n\\t\\t\\t#pragma unroll_loop_end\\n\\t\\t\\tclipOpacity *= 1.0 - unionClipOpacity;\\n\\t\\t#endif\\n\\t\\tdiffuseColor.a *= clipOpacity;\\n\\t\\tif ( diffuseColor.a == 0.0 ) discard;\\n\\t#else\\n\\t\\t#pragma unroll_loop_start\\n\\t\\tfor ( int i = 0; i < UNION_CLIPPING_PLANES; i ++ ) {\\n\\t\\t\\tplane = clippingPlanes[ i ];\\n\\t\\t\\tif ( dot( vClipPosition, plane.xyz ) > plane.w ) discard;\\n\\t\\t}\\n\\t\\t#pragma unroll_loop_end\\n\\t\\t#if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES\\n\\t\\t\\tbool clipped = true;\\n\\t\\t\\t#pragma unroll_loop_start\\n\\t\\t\\tfor ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; i ++ ) {\\n\\t\\t\\t\\tplane = clippingPlanes[ i ];\\n\\t\\t\\t\\tclipped = ( dot( vClipPosition, plane.xyz ) > plane.w ) && clipped;\\n\\t\\t\\t}\\n\\t\\t\\t#pragma unroll_loop_end\\n\\t\\t\\tif ( clipped ) discard;\\n\\t\\t#endif\\n\\t#endif\\n#endif\";var _s=\"#if NUM_CLIPPING_PLANES > 0\\n\\tvarying vec3 vClipPosition;\\n\\tuniform vec4 clippingPlanes[ NUM_CLIPPING_PLANES ];\\n#endif\";var xs=\"#if NUM_CLIPPING_PLANES > 0\\n\\tvarying vec3 vClipPosition;\\n#endif\";var ys=\"#if NUM_CLIPPING_PLANES > 0\\n\\tvClipPosition = - mvPosition.xyz;\\n#endif\";var Ms=\"#if defined( USE_COLOR_ALPHA )\\n\\tdiffuseColor *= vColor;\\n#elif defined( USE_COLOR )\\n\\tdiffuseColor.rgb *= vColor;\\n#endif\";var Ss=\"#if defined( USE_COLOR_ALPHA )\\n\\tvarying vec4 vColor;\\n#elif defined( USE_COLOR )\\n\\tvarying vec3 vColor;\\n#endif\";var bs=\"#if defined( USE_COLOR_ALPHA )\\n\\tvarying vec4 vColor;\\n#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR ) || defined( USE_BATCHING_COLOR )\\n\\tvarying vec3 vColor;\\n#endif\";var Ts=\"#if defined( USE_COLOR_ALPHA )\\n\\tvColor = vec4( 1.0 );\\n#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR ) || defined( USE_BATCHING_COLOR )\\n\\tvColor = vec3( 1.0 );\\n#endif\\n#ifdef USE_COLOR\\n\\tvColor *= color;\\n#endif\\n#ifdef USE_INSTANCING_COLOR\\n\\tvColor.xyz *= instanceColor.xyz;\\n#endif\\n#ifdef USE_BATCHING_COLOR\\n\\tvec3 batchingColor = getBatchingColor( getIndirectIndex( gl_DrawID ) );\\n\\tvColor.xyz *= batchingColor.xyz;\\n#endif\";var ws=\"#define PI 3.141592653589793\\n#define PI2 6.283185307179586\\n#define PI_HALF 1.5707963267948966\\n#define RECIPROCAL_PI 0.3183098861837907\\n#define RECIPROCAL_PI2 0.15915494309189535\\n#define EPSILON 1e-6\\n#ifndef saturate\\n#define saturate( a ) clamp( a, 0.0, 1.0 )\\n#endif\\n#define whiteComplement( a ) ( 1.0 - saturate( a ) )\\nfloat pow2( const in float x ) { return x*x; }\\nvec3 pow2( const in vec3 x ) { return x*x; }\\nfloat pow3( const in float x ) { return x*x*x; }\\nfloat pow4( const in float x ) { float x2 = x*x; return x2*x2; }\\nfloat max3( const in vec3 v ) { return max( max( v.x, v.y ), v.z ); }\\nfloat average( const in vec3 v ) { return dot( v, vec3( 0.3333333 ) ); }\\nhighp float rand( const in vec2 uv ) {\\n\\tconst highp float a = 12.9898, b = 78.233, c = 43758.5453;\\n\\thighp float dt = dot( uv.xy, vec2( a,b ) ), sn = mod( dt, PI );\\n\\treturn fract( sin( sn ) * c );\\n}\\n#ifdef HIGH_PRECISION\\n\\tfloat precisionSafeLength( vec3 v ) { return length( v ); }\\n#else\\n\\tfloat precisionSafeLength( vec3 v ) {\\n\\t\\tfloat maxComponent = max3( abs( v ) );\\n\\t\\treturn length( v / maxComponent ) * maxComponent;\\n\\t}\\n#endif\\nstruct IncidentLight {\\n\\tvec3 color;\\n\\tvec3 direction;\\n\\tbool visible;\\n};\\nstruct ReflectedLight {\\n\\tvec3 directDiffuse;\\n\\tvec3 directSpecular;\\n\\tvec3 indirectDiffuse;\\n\\tvec3 indirectSpecular;\\n};\\n#ifdef USE_ALPHAHASH\\n\\tvarying vec3 vPosition;\\n#endif\\nvec3 transformDirection( in vec3 dir, in mat4 matrix ) {\\n\\treturn normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );\\n}\\nvec3 inverseTransformDirection( in vec3 dir, in mat4 matrix ) {\\n\\treturn normalize( ( vec4( dir, 0.0 ) * matrix ).xyz );\\n}\\nmat3 transposeMat3( const in mat3 m ) {\\n\\tmat3 tmp;\\n\\ttmp[ 0 ] = vec3( m[ 0 ].x, m[ 1 ].x, m[ 2 ].x );\\n\\ttmp[ 1 ] = vec3( m[ 0 ].y, m[ 1 ].y, m[ 2 ].y );\\n\\ttmp[ 2 ] = vec3( m[ 0 ].z, m[ 1 ].z, m[ 2 ].z );\\n\\treturn tmp;\\n}\\nbool isPerspectiveMatrix( mat4 m ) {\\n\\treturn m[ 2 ][ 3 ] == - 1.0;\\n}\\nvec2 equirectUv( in vec3 dir ) {\\n\\tfloat u = atan( dir.z, dir.x ) * RECIPROCAL_PI2 + 0.5;\\n\\tfloat v = asin( clamp( dir.y, - 1.0, 1.0 ) ) * RECIPROCAL_PI + 0.5;\\n\\treturn vec2( u, v );\\n}\\nvec3 BRDF_Lambert( const in vec3 diffuseColor ) {\\n\\treturn RECIPROCAL_PI * diffuseColor;\\n}\\nvec3 F_Schlick( const in vec3 f0, const in float f90, const in float dotVH ) {\\n\\tfloat fresnel = exp2( ( - 5.55473 * dotVH - 6.98316 ) * dotVH );\\n\\treturn f0 * ( 1.0 - fresnel ) + ( f90 * fresnel );\\n}\\nfloat F_Schlick( const in float f0, const in float f90, const in float dotVH ) {\\n\\tfloat fresnel = exp2( ( - 5.55473 * dotVH - 6.98316 ) * dotVH );\\n\\treturn f0 * ( 1.0 - fresnel ) + ( f90 * fresnel );\\n} // validated\";var Es=\"#ifdef ENVMAP_TYPE_CUBE_UV\\n\\t#define cubeUV_minMipLevel 4.0\\n\\t#define cubeUV_minTileSize 16.0\\n\\tfloat getFace( vec3 direction ) {\\n\\t\\tvec3 absDirection = abs( direction );\\n\\t\\tfloat face = - 1.0;\\n\\t\\tif ( absDirection.x > absDirection.z ) {\\n\\t\\t\\tif ( absDirection.x > absDirection.y )\\n\\t\\t\\t\\tface = direction.x > 0.0 ? 0.0 : 3.0;\\n\\t\\t\\telse\\n\\t\\t\\t\\tface = direction.y > 0.0 ? 1.0 : 4.0;\\n\\t\\t} else {\\n\\t\\t\\tif ( absDirection.z > absDirection.y )\\n\\t\\t\\t\\tface = direction.z > 0.0 ? 2.0 : 5.0;\\n\\t\\t\\telse\\n\\t\\t\\t\\tface = direction.y > 0.0 ? 1.0 : 4.0;\\n\\t\\t}\\n\\t\\treturn face;\\n\\t}\\n\\tvec2 getUV( vec3 direction, float face ) {\\n\\t\\tvec2 uv;\\n\\t\\tif ( face == 0.0 ) {\\n\\t\\t\\tuv = vec2( direction.z, direction.y ) / abs( direction.x );\\n\\t\\t} else if ( face == 1.0 ) {\\n\\t\\t\\tuv = vec2( - direction.x, - direction.z ) / abs( direction.y );\\n\\t\\t} else if ( face == 2.0 ) {\\n\\t\\t\\tuv = vec2( - direction.x, direction.y ) / abs( direction.z );\\n\\t\\t} else if ( face == 3.0 ) {\\n\\t\\t\\tuv = vec2( - direction.z, direction.y ) / abs( direction.x );\\n\\t\\t} else if ( face == 4.0 ) {\\n\\t\\t\\tuv = vec2( - direction.x, direction.z ) / abs( direction.y );\\n\\t\\t} else {\\n\\t\\t\\tuv = vec2( direction.x, direction.y ) / abs( direction.z );\\n\\t\\t}\\n\\t\\treturn 0.5 * ( uv + 1.0 );\\n\\t}\\n\\tvec3 bilinearCubeUV( sampler2D envMap, vec3 direction, float mipInt ) {\\n\\t\\tfloat face = getFace( direction );\\n\\t\\tfloat filterInt = max( cubeUV_minMipLevel - mipInt, 0.0 );\\n\\t\\tmipInt = max( mipInt, cubeUV_minMipLevel );\\n\\t\\tfloat faceSize = exp2( mipInt );\\n\\t\\thighp vec2 uv = getUV( direction, face ) * ( faceSize - 2.0 ) + 1.0;\\n\\t\\tif ( face > 2.0 ) {\\n\\t\\t\\tuv.y += faceSize;\\n\\t\\t\\tface -= 3.0;\\n\\t\\t}\\n\\t\\tuv.x += face * faceSize;\\n\\t\\tuv.x += filterInt * 3.0 * cubeUV_minTileSize;\\n\\t\\tuv.y += 4.0 * ( exp2( CUBEUV_MAX_MIP ) - faceSize );\\n\\t\\tuv.x *= CUBEUV_TEXEL_WIDTH;\\n\\t\\tuv.y *= CUBEUV_TEXEL_HEIGHT;\\n\\t\\t#ifdef texture2DGradEXT\\n\\t\\t\\treturn texture2DGradEXT( envMap, uv, vec2( 0.0 ), vec2( 0.0 ) ).rgb;\\n\\t\\t#else\\n\\t\\t\\treturn texture2D( envMap, uv ).rgb;\\n\\t\\t#endif\\n\\t}\\n\\t#define cubeUV_r0 1.0\\n\\t#define cubeUV_m0 - 2.0\\n\\t#define cubeUV_r1 0.8\\n\\t#define cubeUV_m1 - 1.0\\n\\t#define cubeUV_r4 0.4\\n\\t#define cubeUV_m4 2.0\\n\\t#define cubeUV_r5 0.305\\n\\t#define cubeUV_m5 3.0\\n\\t#define cubeUV_r6 0.21\\n\\t#define cubeUV_m6 4.0\\n\\tfloat roughnessToMip( float roughness ) {\\n\\t\\tfloat mip = 0.0;\\n\\t\\tif ( roughness >= cubeUV_r1 ) {\\n\\t\\t\\tmip = ( cubeUV_r0 - roughness ) * ( cubeUV_m1 - cubeUV_m0 ) / ( cubeUV_r0 - cubeUV_r1 ) + cubeUV_m0;\\n\\t\\t} else if ( roughness >= cubeUV_r4 ) {\\n\\t\\t\\tmip = ( cubeUV_r1 - roughness ) * ( cubeUV_m4 - cubeUV_m1 ) / ( cubeUV_r1 - cubeUV_r4 ) + cubeUV_m1;\\n\\t\\t} else if ( roughness >= cubeUV_r5 ) {\\n\\t\\t\\tmip = ( cubeUV_r4 - roughness ) * ( cubeUV_m5 - cubeUV_m4 ) / ( cubeUV_r4 - cubeUV_r5 ) + cubeUV_m4;\\n\\t\\t} else if ( roughness >= cubeUV_r6 ) {\\n\\t\\t\\tmip = ( cubeUV_r5 - roughness ) * ( cubeUV_m6 - cubeUV_m5 ) / ( cubeUV_r5 - cubeUV_r6 ) + cubeUV_m5;\\n\\t\\t} else {\\n\\t\\t\\tmip = - 2.0 * log2( 1.16 * roughness );\\t\\t}\\n\\t\\treturn mip;\\n\\t}\\n\\tvec4 textureCubeUV( sampler2D envMap, vec3 sampleDir, float roughness ) {\\n\\t\\tfloat mip = clamp( roughnessToMip( roughness ), cubeUV_m0, CUBEUV_MAX_MIP );\\n\\t\\tfloat mipF = fract( mip );\\n\\t\\tfloat mipInt = floor( mip );\\n\\t\\tvec3 color0 = bilinearCubeUV( envMap, sampleDir, mipInt );\\n\\t\\tif ( mipF == 0.0 ) {\\n\\t\\t\\treturn vec4( color0, 1.0 );\\n\\t\\t} else {\\n\\t\\t\\tvec3 color1 = bilinearCubeUV( envMap, sampleDir, mipInt + 1.0 );\\n\\t\\t\\treturn vec4( mix( color0, color1, mipF ), 1.0 );\\n\\t\\t}\\n\\t}\\n#endif\";var As=\"vec3 transformedNormal = objectNormal;\\n#ifdef USE_TANGENT\\n\\tvec3 transformedTangent = objectTangent;\\n#endif\\n#ifdef USE_BATCHING\\n\\tmat3 bm = mat3( batchingMatrix );\\n\\ttransformedNormal /= vec3( dot( bm[ 0 ], bm[ 0 ] ), dot( bm[ 1 ], bm[ 1 ] ), dot( bm[ 2 ], bm[ 2 ] ) );\\n\\ttransformedNormal = bm * transformedNormal;\\n\\t#ifdef USE_TANGENT\\n\\t\\ttransformedTangent = bm * transformedTangent;\\n\\t#endif\\n#endif\\n#ifdef USE_INSTANCING\\n\\tmat3 im = mat3( instanceMatrix );\\n\\ttransformedNormal /= vec3( dot( im[ 0 ], im[ 0 ] ), dot( im[ 1 ], im[ 1 ] ), dot( im[ 2 ], im[ 2 ] ) );\\n\\ttransformedNormal = im * transformedNormal;\\n\\t#ifdef USE_TANGENT\\n\\t\\ttransformedTangent = im * transformedTangent;\\n\\t#endif\\n#endif\\ntransformedNormal = normalMatrix * transformedNormal;\\n#ifdef FLIP_SIDED\\n\\ttransformedNormal = - transformedNormal;\\n#endif\\n#ifdef USE_TANGENT\\n\\ttransformedTangent = ( modelViewMatrix * vec4( transformedTangent, 0.0 ) ).xyz;\\n\\t#ifdef FLIP_SIDED\\n\\t\\ttransformedTangent = - transformedTangent;\\n\\t#endif\\n#endif\";var Cs=\"#ifdef USE_DISPLACEMENTMAP\\n\\tuniform sampler2D displacementMap;\\n\\tuniform float displacementScale;\\n\\tuniform float displacementBias;\\n#endif\";var Rs=\"#ifdef USE_DISPLACEMENTMAP\\n\\ttransformed += normalize( objectNormal ) * ( texture2D( displacementMap, vDisplacementMapUv ).x * displacementScale + displacementBias );\\n#endif\";var Ps=\"#ifdef USE_EMISSIVEMAP\\n\\tvec4 emissiveColor = texture2D( emissiveMap, vEmissiveMapUv );\\n\\ttotalEmissiveRadiance *= emissiveColor.rgb;\\n#endif\";var Ls=\"#ifdef USE_EMISSIVEMAP\\n\\tuniform sampler2D emissiveMap;\\n#endif\";var Is=\"gl_FragColor = linearToOutputTexel( gl_FragColor );\";var Us=\"\\nconst mat3 LINEAR_SRGB_TO_LINEAR_DISPLAY_P3 = mat3(\\n\\tvec3( 0.8224621, 0.177538, 0.0 ),\\n\\tvec3( 0.0331941, 0.9668058, 0.0 ),\\n\\tvec3( 0.0170827, 0.0723974, 0.9105199 )\\n);\\nconst mat3 LINEAR_DISPLAY_P3_TO_LINEAR_SRGB = mat3(\\n\\tvec3( 1.2249401, - 0.2249404, 0.0 ),\\n\\tvec3( - 0.0420569, 1.0420571, 0.0 ),\\n\\tvec3( - 0.0196376, - 0.0786361, 1.0982735 )\\n);\\nvec4 LinearSRGBToLinearDisplayP3( in vec4 value ) {\\n\\treturn vec4( value.rgb * LINEAR_SRGB_TO_LINEAR_DISPLAY_P3, value.a );\\n}\\nvec4 LinearDisplayP3ToLinearSRGB( in vec4 value ) {\\n\\treturn vec4( value.rgb * LINEAR_DISPLAY_P3_TO_LINEAR_SRGB, value.a );\\n}\\nvec4 LinearTransferOETF( in vec4 value ) {\\n\\treturn value;\\n}\\nvec4 sRGBTransferOETF( in vec4 value ) {\\n\\treturn 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.a );\\n}\";var Ds=\"#ifdef USE_ENVMAP\\n\\t#ifdef ENV_WORLDPOS\\n\\t\\tvec3 cameraToFrag;\\n\\t\\tif ( isOrthographic ) {\\n\\t\\t\\tcameraToFrag = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) );\\n\\t\\t} else {\\n\\t\\t\\tcameraToFrag = normalize( vWorldPosition - cameraPosition );\\n\\t\\t}\\n\\t\\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\\n\\t\\t#ifdef ENVMAP_MODE_REFLECTION\\n\\t\\t\\tvec3 reflectVec = reflect( cameraToFrag, worldNormal );\\n\\t\\t#else\\n\\t\\t\\tvec3 reflectVec = refract( cameraToFrag, worldNormal, refractionRatio );\\n\\t\\t#endif\\n\\t#else\\n\\t\\tvec3 reflectVec = vReflect;\\n\\t#endif\\n\\t#ifdef ENVMAP_TYPE_CUBE\\n\\t\\tvec4 envColor = textureCube( envMap, envMapRotation * vec3( flipEnvMap * reflectVec.x, reflectVec.yz ) );\\n\\t#else\\n\\t\\tvec4 envColor = vec4( 0.0 );\\n\\t#endif\\n\\t#ifdef ENVMAP_BLENDING_MULTIPLY\\n\\t\\toutgoingLight = mix( outgoingLight, outgoingLight * envColor.xyz, specularStrength * reflectivity );\\n\\t#elif defined( ENVMAP_BLENDING_MIX )\\n\\t\\toutgoingLight = mix( outgoingLight, envColor.xyz, specularStrength * reflectivity );\\n\\t#elif defined( ENVMAP_BLENDING_ADD )\\n\\t\\toutgoingLight += envColor.xyz * specularStrength * reflectivity;\\n\\t#endif\\n#endif\";var Ns=\"#ifdef USE_ENVMAP\\n\\tuniform float envMapIntensity;\\n\\tuniform float flipEnvMap;\\n\\tuniform mat3 envMapRotation;\\n\\t#ifdef ENVMAP_TYPE_CUBE\\n\\t\\tuniform samplerCube envMap;\\n\\t#else\\n\\t\\tuniform sampler2D envMap;\\n\\t#endif\\n\\t\\n#endif\";var Bs=\"#ifdef USE_ENVMAP\\n\\tuniform float reflectivity;\\n\\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( LAMBERT )\\n\\t\\t#define ENV_WORLDPOS\\n\\t#endif\\n\\t#ifdef ENV_WORLDPOS\\n\\t\\tvarying vec3 vWorldPosition;\\n\\t\\tuniform float refractionRatio;\\n\\t#else\\n\\t\\tvarying vec3 vReflect;\\n\\t#endif\\n#endif\";var Os=\"#ifdef USE_ENVMAP\\n\\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( LAMBERT )\\n\\t\\t#define ENV_WORLDPOS\\n\\t#endif\\n\\t#ifdef ENV_WORLDPOS\\n\\t\\t\\n\\t\\tvarying vec3 vWorldPosition;\\n\\t#else\\n\\t\\tvarying vec3 vReflect;\\n\\t\\tuniform float refractionRatio;\\n\\t#endif\\n#endif\";var Vs=\"#ifdef USE_ENVMAP\\n\\t#ifdef ENV_WORLDPOS\\n\\t\\tvWorldPosition = worldPosition.xyz;\\n\\t#else\\n\\t\\tvec3 cameraToVertex;\\n\\t\\tif ( isOrthographic ) {\\n\\t\\t\\tcameraToVertex = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) );\\n\\t\\t} else {\\n\\t\\t\\tcameraToVertex = normalize( worldPosition.xyz - cameraPosition );\\n\\t\\t}\\n\\t\\tvec3 worldNormal = inverseTransformDirection( transformedNormal, viewMatrix );\\n\\t\\t#ifdef ENVMAP_MODE_REFLECTION\\n\\t\\t\\tvReflect = reflect( cameraToVertex, worldNormal );\\n\\t\\t#else\\n\\t\\t\\tvReflect = refract( cameraToVertex, worldNormal, refractionRatio );\\n\\t\\t#endif\\n\\t#endif\\n#endif\";var Fs=\"#ifdef USE_FOG\\n\\tvFogDepth = - mvPosition.z;\\n#endif\";var zs=\"#ifdef USE_FOG\\n\\tvarying float vFogDepth;\\n#endif\";var Gs=\"#ifdef USE_FOG\\n\\t#ifdef FOG_EXP2\\n\\t\\tfloat fogFactor = 1.0 - exp( - fogDensity * fogDensity * vFogDepth * vFogDepth );\\n\\t#else\\n\\t\\tfloat fogFactor = smoothstep( fogNear, fogFar, vFogDepth );\\n\\t#endif\\n\\tgl_FragColor.rgb = mix( gl_FragColor.rgb, fogColor, fogFactor );\\n#endif\";var ks=\"#ifdef USE_FOG\\n\\tuniform vec3 fogColor;\\n\\tvarying float vFogDepth;\\n\\t#ifdef FOG_EXP2\\n\\t\\tuniform float fogDensity;\\n\\t#else\\n\\t\\tuniform float fogNear;\\n\\t\\tuniform float fogFar;\\n\\t#endif\\n#endif\";var Hs=\"#ifdef USE_GRADIENTMAP\\n\\tuniform sampler2D gradientMap;\\n#endif\\nvec3 getGradientIrradiance( vec3 normal, vec3 lightDirection ) {\\n\\tfloat dotNL = dot( normal, lightDirection );\\n\\tvec2 coord = vec2( dotNL * 0.5 + 0.5, 0.0 );\\n\\t#ifdef USE_GRADIENTMAP\\n\\t\\treturn vec3( texture2D( gradientMap, coord ).r );\\n\\t#else\\n\\t\\tvec2 fw = fwidth( coord ) * 0.5;\\n\\t\\treturn mix( vec3( 0.7 ), vec3( 1.0 ), smoothstep( 0.7 - fw.x, 0.7 + fw.x, coord.x ) );\\n\\t#endif\\n}\";var Ws=\"#ifdef USE_LIGHTMAP\\n\\tuniform sampler2D lightMap;\\n\\tuniform float lightMapIntensity;\\n#endif\";var Xs=\"LambertMaterial material;\\nmaterial.diffuseColor = diffuseColor.rgb;\\nmaterial.specularStrength = specularStrength;\";var js=\"varying vec3 vViewPosition;\\nstruct LambertMaterial {\\n\\tvec3 diffuseColor;\\n\\tfloat specularStrength;\\n};\\nvoid RE_Direct_Lambert( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in LambertMaterial material, inout ReflectedLight reflectedLight ) {\\n\\tfloat dotNL = saturate( dot( geometryNormal, directLight.direction ) );\\n\\tvec3 irradiance = dotNL * directLight.color;\\n\\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\\n}\\nvoid RE_IndirectDiffuse_Lambert( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in LambertMaterial material, inout ReflectedLight reflectedLight ) {\\n\\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\\n}\\n#define RE_Direct\\t\\t\\t\\tRE_Direct_Lambert\\n#define RE_IndirectDiffuse\\t\\tRE_IndirectDiffuse_Lambert\";var qs=\"uniform bool receiveShadow;\\nuniform vec3 ambientLightColor;\\n#if defined( USE_LIGHT_PROBES )\\n\\tuniform vec3 lightProbe[ 9 ];\\n#endif\\nvec3 shGetIrradianceAt( in vec3 normal, in vec3 shCoefficients[ 9 ] ) {\\n\\tfloat x = normal.x, y = normal.y, z = normal.z;\\n\\tvec3 result = shCoefficients[ 0 ] * 0.886227;\\n\\tresult += shCoefficients[ 1 ] * 2.0 * 0.511664 * y;\\n\\tresult += shCoefficients[ 2 ] * 2.0 * 0.511664 * z;\\n\\tresult += shCoefficients[ 3 ] * 2.0 * 0.511664 * x;\\n\\tresult += shCoefficients[ 4 ] * 2.0 * 0.429043 * x * y;\\n\\tresult += shCoefficients[ 5 ] * 2.0 * 0.429043 * y * z;\\n\\tresult += shCoefficients[ 6 ] * ( 0.743125 * z * z - 0.247708 );\\n\\tresult += shCoefficients[ 7 ] * 2.0 * 0.429043 * x * z;\\n\\tresult += shCoefficients[ 8 ] * 0.429043 * ( x * x - y * y );\\n\\treturn result;\\n}\\nvec3 getLightProbeIrradiance( const in vec3 lightProbe[ 9 ], const in vec3 normal ) {\\n\\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\\n\\tvec3 irradiance = shGetIrradianceAt( worldNormal, lightProbe );\\n\\treturn irradiance;\\n}\\nvec3 getAmbientLightIrradiance( const in vec3 ambientLightColor ) {\\n\\tvec3 irradiance = ambientLightColor;\\n\\treturn irradiance;\\n}\\nfloat getDistanceAttenuation( const in float lightDistance, const in float cutoffDistance, const in float decayExponent ) {\\n\\tfloat distanceFalloff = 1.0 / max( pow( lightDistance, decayExponent ), 0.01 );\\n\\tif ( cutoffDistance > 0.0 ) {\\n\\t\\tdistanceFalloff *= pow2( saturate( 1.0 - pow4( lightDistance / cutoffDistance ) ) );\\n\\t}\\n\\treturn distanceFalloff;\\n}\\nfloat getSpotAttenuation( const in float coneCosine, const in float penumbraCosine, const in float angleCosine ) {\\n\\treturn smoothstep( coneCosine, penumbraCosine, angleCosine );\\n}\\n#if NUM_DIR_LIGHTS > 0\\n\\tstruct DirectionalLight {\\n\\t\\tvec3 direction;\\n\\t\\tvec3 color;\\n\\t};\\n\\tuniform DirectionalLight directionalLights[ NUM_DIR_LIGHTS ];\\n\\tvoid getDirectionalLightInfo( const in DirectionalLight directionalLight, out IncidentLight light ) {\\n\\t\\tlight.color = directionalLight.color;\\n\\t\\tlight.direction = directionalLight.direction;\\n\\t\\tlight.visible = true;\\n\\t}\\n#endif\\n#if NUM_POINT_LIGHTS > 0\\n\\tstruct PointLight {\\n\\t\\tvec3 position;\\n\\t\\tvec3 color;\\n\\t\\tfloat distance;\\n\\t\\tfloat decay;\\n\\t};\\n\\tuniform PointLight pointLights[ NUM_POINT_LIGHTS ];\\n\\tvoid getPointLightInfo( const in PointLight pointLight, const in vec3 geometryPosition, out IncidentLight light ) {\\n\\t\\tvec3 lVector = pointLight.position - geometryPosition;\\n\\t\\tlight.direction = normalize( lVector );\\n\\t\\tfloat lightDistance = length( lVector );\\n\\t\\tlight.color = pointLight.color;\\n\\t\\tlight.color *= getDistanceAttenuation( lightDistance, pointLight.distance, pointLight.decay );\\n\\t\\tlight.visible = ( light.color != vec3( 0.0 ) );\\n\\t}\\n#endif\\n#if NUM_SPOT_LIGHTS > 0\\n\\tstruct SpotLight {\\n\\t\\tvec3 position;\\n\\t\\tvec3 direction;\\n\\t\\tvec3 color;\\n\\t\\tfloat distance;\\n\\t\\tfloat decay;\\n\\t\\tfloat coneCos;\\n\\t\\tfloat penumbraCos;\\n\\t};\\n\\tuniform SpotLight spotLights[ NUM_SPOT_LIGHTS ];\\n\\tvoid getSpotLightInfo( const in SpotLight spotLight, const in vec3 geometryPosition, out IncidentLight light ) {\\n\\t\\tvec3 lVector = spotLight.position - geometryPosition;\\n\\t\\tlight.direction = normalize( lVector );\\n\\t\\tfloat angleCos = dot( light.direction, spotLight.direction );\\n\\t\\tfloat spotAttenuation = getSpotAttenuation( spotLight.coneCos, spotLight.penumbraCos, angleCos );\\n\\t\\tif ( spotAttenuation > 0.0 ) {\\n\\t\\t\\tfloat lightDistance = length( lVector );\\n\\t\\t\\tlight.color = spotLight.color * spotAttenuation;\\n\\t\\t\\tlight.color *= getDistanceAttenuation( lightDistance, spotLight.distance, spotLight.decay );\\n\\t\\t\\tlight.visible = ( light.color != vec3( 0.0 ) );\\n\\t\\t} else {\\n\\t\\t\\tlight.color = vec3( 0.0 );\\n\\t\\t\\tlight.visible = false;\\n\\t\\t}\\n\\t}\\n#endif\\n#if NUM_RECT_AREA_LIGHTS > 0\\n\\tstruct RectAreaLight {\\n\\t\\tvec3 color;\\n\\t\\tvec3 position;\\n\\t\\tvec3 halfWidth;\\n\\t\\tvec3 halfHeight;\\n\\t};\\n\\tuniform sampler2D ltc_1;\\tuniform sampler2D ltc_2;\\n\\tuniform RectAreaLight rectAreaLights[ NUM_RECT_AREA_LIGHTS ];\\n#endif\\n#if NUM_HEMI_LIGHTS > 0\\n\\tstruct HemisphereLight {\\n\\t\\tvec3 direction;\\n\\t\\tvec3 skyColor;\\n\\t\\tvec3 groundColor;\\n\\t};\\n\\tuniform HemisphereLight hemisphereLights[ NUM_HEMI_LIGHTS ];\\n\\tvec3 getHemisphereLightIrradiance( const in HemisphereLight hemiLight, const in vec3 normal ) {\\n\\t\\tfloat dotNL = dot( normal, hemiLight.direction );\\n\\t\\tfloat hemiDiffuseWeight = 0.5 * dotNL + 0.5;\\n\\t\\tvec3 irradiance = mix( hemiLight.groundColor, hemiLight.skyColor, hemiDiffuseWeight );\\n\\t\\treturn irradiance;\\n\\t}\\n#endif\";var Ys=\"#ifdef USE_ENVMAP\\n\\tvec3 getIBLIrradiance( const in vec3 normal ) {\\n\\t\\t#ifdef ENVMAP_TYPE_CUBE_UV\\n\\t\\t\\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\\n\\t\\t\\tvec4 envMapColor = textureCubeUV( envMap, envMapRotation * worldNormal, 1.0 );\\n\\t\\t\\treturn PI * envMapColor.rgb * envMapIntensity;\\n\\t\\t#else\\n\\t\\t\\treturn vec3( 0.0 );\\n\\t\\t#endif\\n\\t}\\n\\tvec3 getIBLRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness ) {\\n\\t\\t#ifdef ENVMAP_TYPE_CUBE_UV\\n\\t\\t\\tvec3 reflectVec = reflect( - viewDir, normal );\\n\\t\\t\\treflectVec = normalize( mix( reflectVec, normal, roughness * roughness) );\\n\\t\\t\\treflectVec = inverseTransformDirection( reflectVec, viewMatrix );\\n\\t\\t\\tvec4 envMapColor = textureCubeUV( envMap, envMapRotation * reflectVec, roughness );\\n\\t\\t\\treturn envMapColor.rgb * envMapIntensity;\\n\\t\\t#else\\n\\t\\t\\treturn vec3( 0.0 );\\n\\t\\t#endif\\n\\t}\\n\\t#ifdef USE_ANISOTROPY\\n\\t\\tvec3 getIBLAnisotropyRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness, const in vec3 bitangent, const in float anisotropy ) {\\n\\t\\t\\t#ifdef ENVMAP_TYPE_CUBE_UV\\n\\t\\t\\t\\tvec3 bentNormal = cross( bitangent, viewDir );\\n\\t\\t\\t\\tbentNormal = normalize( cross( bentNormal, bitangent ) );\\n\\t\\t\\t\\tbentNormal = normalize( mix( bentNormal, normal, pow2( pow2( 1.0 - anisotropy * ( 1.0 - roughness ) ) ) ) );\\n\\t\\t\\t\\treturn getIBLRadiance( viewDir, bentNormal, roughness );\\n\\t\\t\\t#else\\n\\t\\t\\t\\treturn vec3( 0.0 );\\n\\t\\t\\t#endif\\n\\t\\t}\\n\\t#endif\\n#endif\";var Ks=\"ToonMaterial material;\\nmaterial.diffuseColor = diffuseColor.rgb;\";var Zs=\"varying vec3 vViewPosition;\\nstruct ToonMaterial {\\n\\tvec3 diffuseColor;\\n};\\nvoid RE_Direct_Toon( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {\\n\\tvec3 irradiance = getGradientIrradiance( geometryNormal, directLight.direction ) * directLight.color;\\n\\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\\n}\\nvoid RE_IndirectDiffuse_Toon( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {\\n\\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\\n}\\n#define RE_Direct\\t\\t\\t\\tRE_Direct_Toon\\n#define RE_IndirectDiffuse\\t\\tRE_IndirectDiffuse_Toon\";var Js=\"BlinnPhongMaterial material;\\nmaterial.diffuseColor = diffuseColor.rgb;\\nmaterial.specularColor = specular;\\nmaterial.specularShininess = shininess;\\nmaterial.specularStrength = specularStrength;\";var Qs=\"varying vec3 vViewPosition;\\nstruct BlinnPhongMaterial {\\n\\tvec3 diffuseColor;\\n\\tvec3 specularColor;\\n\\tfloat specularShininess;\\n\\tfloat specularStrength;\\n};\\nvoid RE_Direct_BlinnPhong( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\\n\\tfloat dotNL = saturate( dot( geometryNormal, directLight.direction ) );\\n\\tvec3 irradiance = dotNL * directLight.color;\\n\\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\\n\\treflectedLight.directSpecular += irradiance * BRDF_BlinnPhong( directLight.direction, geometryViewDir, geometryNormal, material.specularColor, material.specularShininess ) * material.specularStrength;\\n}\\nvoid RE_IndirectDiffuse_BlinnPhong( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\\n\\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\\n}\\n#define RE_Direct\\t\\t\\t\\tRE_Direct_BlinnPhong\\n#define RE_IndirectDiffuse\\t\\tRE_IndirectDiffuse_BlinnPhong\";var $s=\"PhysicalMaterial material;\\nmaterial.diffuseColor = diffuseColor.rgb * ( 1.0 - metalnessFactor );\\nvec3 dxy = max( abs( dFdx( nonPerturbedNormal ) ), abs( dFdy( nonPerturbedNormal ) ) );\\nfloat geometryRoughness = max( max( dxy.x, dxy.y ), dxy.z );\\nmaterial.roughness = max( roughnessFactor, 0.0525 );material.roughness += geometryRoughness;\\nmaterial.roughness = min( material.roughness, 1.0 );\\n#ifdef IOR\\n\\tmaterial.ior = ior;\\n\\t#ifdef USE_SPECULAR\\n\\t\\tfloat specularIntensityFactor = specularIntensity;\\n\\t\\tvec3 specularColorFactor = specularColor;\\n\\t\\t#ifdef USE_SPECULAR_COLORMAP\\n\\t\\t\\tspecularColorFactor *= texture2D( specularColorMap, vSpecularColorMapUv ).rgb;\\n\\t\\t#endif\\n\\t\\t#ifdef USE_SPECULAR_INTENSITYMAP\\n\\t\\t\\tspecularIntensityFactor *= texture2D( specularIntensityMap, vSpecularIntensityMapUv ).a;\\n\\t\\t#endif\\n\\t\\tmaterial.specularF90 = mix( specularIntensityFactor, 1.0, metalnessFactor );\\n\\t#else\\n\\t\\tfloat specularIntensityFactor = 1.0;\\n\\t\\tvec3 specularColorFactor = vec3( 1.0 );\\n\\t\\tmaterial.specularF90 = 1.0;\\n\\t#endif\\n\\tmaterial.specularColor = mix( min( pow2( ( material.ior - 1.0 ) / ( material.ior + 1.0 ) ) * specularColorFactor, vec3( 1.0 ) ) * specularIntensityFactor, diffuseColor.rgb, metalnessFactor );\\n#else\\n\\tmaterial.specularColor = mix( vec3( 0.04 ), diffuseColor.rgb, metalnessFactor );\\n\\tmaterial.specularF90 = 1.0;\\n#endif\\n#ifdef USE_CLEARCOAT\\n\\tmaterial.clearcoat = clearcoat;\\n\\tmaterial.clearcoatRoughness = clearcoatRoughness;\\n\\tmaterial.clearcoatF0 = vec3( 0.04 );\\n\\tmaterial.clearcoatF90 = 1.0;\\n\\t#ifdef USE_CLEARCOATMAP\\n\\t\\tmaterial.clearcoat *= texture2D( clearcoatMap, vClearcoatMapUv ).x;\\n\\t#endif\\n\\t#ifdef USE_CLEARCOAT_ROUGHNESSMAP\\n\\t\\tmaterial.clearcoatRoughness *= texture2D( clearcoatRoughnessMap, vClearcoatRoughnessMapUv ).y;\\n\\t#endif\\n\\tmaterial.clearcoat = saturate( material.clearcoat );\\tmaterial.clearcoatRoughness = max( material.clearcoatRoughness, 0.0525 );\\n\\tmaterial.clearcoatRoughness += geometryRoughness;\\n\\tmaterial.clearcoatRoughness = min( material.clearcoatRoughness, 1.0 );\\n#endif\\n#ifdef USE_DISPERSION\\n\\tmaterial.dispersion = dispersion;\\n#endif\\n#ifdef USE_IRIDESCENCE\\n\\tmaterial.iridescence = iridescence;\\n\\tmaterial.iridescenceIOR = iridescenceIOR;\\n\\t#ifdef USE_IRIDESCENCEMAP\\n\\t\\tmaterial.iridescence *= texture2D( iridescenceMap, vIridescenceMapUv ).r;\\n\\t#endif\\n\\t#ifdef USE_IRIDESCENCE_THICKNESSMAP\\n\\t\\tmaterial.iridescenceThickness = (iridescenceThicknessMaximum - iridescenceThicknessMinimum) * texture2D( iridescenceThicknessMap, vIridescenceThicknessMapUv ).g + iridescenceThicknessMinimum;\\n\\t#else\\n\\t\\tmaterial.iridescenceThickness = iridescenceThicknessMaximum;\\n\\t#endif\\n#endif\\n#ifdef USE_SHEEN\\n\\tmaterial.sheenColor = sheenColor;\\n\\t#ifdef USE_SHEEN_COLORMAP\\n\\t\\tmaterial.sheenColor *= texture2D( sheenColorMap, vSheenColorMapUv ).rgb;\\n\\t#endif\\n\\tmaterial.sheenRoughness = clamp( sheenRoughness, 0.07, 1.0 );\\n\\t#ifdef USE_SHEEN_ROUGHNESSMAP\\n\\t\\tmaterial.sheenRoughness *= texture2D( sheenRoughnessMap, vSheenRoughnessMapUv ).a;\\n\\t#endif\\n#endif\\n#ifdef USE_ANISOTROPY\\n\\t#ifdef USE_ANISOTROPYMAP\\n\\t\\tmat2 anisotropyMat = mat2( anisotropyVector.x, anisotropyVector.y, - anisotropyVector.y, anisotropyVector.x );\\n\\t\\tvec3 anisotropyPolar = texture2D( anisotropyMap, vAnisotropyMapUv ).rgb;\\n\\t\\tvec2 anisotropyV = anisotropyMat * normalize( 2.0 * anisotropyPolar.rg - vec2( 1.0 ) ) * anisotropyPolar.b;\\n\\t#else\\n\\t\\tvec2 anisotropyV = anisotropyVector;\\n\\t#endif\\n\\tmaterial.anisotropy = length( anisotropyV );\\n\\tif( material.anisotropy == 0.0 ) {\\n\\t\\tanisotropyV = vec2( 1.0, 0.0 );\\n\\t} else {\\n\\t\\tanisotropyV /= material.anisotropy;\\n\\t\\tmaterial.anisotropy = saturate( material.anisotropy );\\n\\t}\\n\\tmaterial.alphaT = mix( pow2( material.roughness ), 1.0, pow2( material.anisotropy ) );\\n\\tmaterial.anisotropyT = tbn[ 0 ] * anisotropyV.x + tbn[ 1 ] * anisotropyV.y;\\n\\tmaterial.anisotropyB = tbn[ 1 ] * anisotropyV.x - tbn[ 0 ] * anisotropyV.y;\\n#endif\";var ta=\"struct PhysicalMaterial {\\n\\tvec3 diffuseColor;\\n\\tfloat roughness;\\n\\tvec3 specularColor;\\n\\tfloat specularF90;\\n\\tfloat dispersion;\\n\\t#ifdef USE_CLEARCOAT\\n\\t\\tfloat clearcoat;\\n\\t\\tfloat clearcoatRoughness;\\n\\t\\tvec3 clearcoatF0;\\n\\t\\tfloat clearcoatF90;\\n\\t#endif\\n\\t#ifdef USE_IRIDESCENCE\\n\\t\\tfloat iridescence;\\n\\t\\tfloat iridescenceIOR;\\n\\t\\tfloat iridescenceThickness;\\n\\t\\tvec3 iridescenceFresnel;\\n\\t\\tvec3 iridescenceF0;\\n\\t#endif\\n\\t#ifdef USE_SHEEN\\n\\t\\tvec3 sheenColor;\\n\\t\\tfloat sheenRoughness;\\n\\t#endif\\n\\t#ifdef IOR\\n\\t\\tfloat ior;\\n\\t#endif\\n\\t#ifdef USE_TRANSMISSION\\n\\t\\tfloat transmission;\\n\\t\\tfloat transmissionAlpha;\\n\\t\\tfloat thickness;\\n\\t\\tfloat attenuationDistance;\\n\\t\\tvec3 attenuationColor;\\n\\t#endif\\n\\t#ifdef USE_ANISOTROPY\\n\\t\\tfloat anisotropy;\\n\\t\\tfloat alphaT;\\n\\t\\tvec3 anisotropyT;\\n\\t\\tvec3 anisotropyB;\\n\\t#endif\\n};\\nvec3 clearcoatSpecularDirect = vec3( 0.0 );\\nvec3 clearcoatSpecularIndirect = vec3( 0.0 );\\nvec3 sheenSpecularDirect = vec3( 0.0 );\\nvec3 sheenSpecularIndirect = vec3(0.0 );\\nvec3 Schlick_to_F0( const in vec3 f, const in float f90, const in float dotVH ) {\\n    float x = clamp( 1.0 - dotVH, 0.0, 1.0 );\\n    float x2 = x * x;\\n    float x5 = clamp( x * x2 * x2, 0.0, 0.9999 );\\n    return ( f - vec3( f90 ) * x5 ) / ( 1.0 - x5 );\\n}\\nfloat V_GGX_SmithCorrelated( const in float alpha, const in float dotNL, const in float dotNV ) {\\n\\tfloat a2 = pow2( alpha );\\n\\tfloat gv = dotNL * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNV ) );\\n\\tfloat gl = dotNV * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNL ) );\\n\\treturn 0.5 / max( gv + gl, EPSILON );\\n}\\nfloat D_GGX( const in float alpha, const in float dotNH ) {\\n\\tfloat a2 = pow2( alpha );\\n\\tfloat denom = pow2( dotNH ) * ( a2 - 1.0 ) + 1.0;\\n\\treturn RECIPROCAL_PI * a2 / pow2( denom );\\n}\\n#ifdef USE_ANISOTROPY\\n\\tfloat V_GGX_SmithCorrelated_Anisotropic( const in float alphaT, const in float alphaB, const in float dotTV, const in float dotBV, const in float dotTL, const in float dotBL, const in float dotNV, const in float dotNL ) {\\n\\t\\tfloat gv = dotNL * length( vec3( alphaT * dotTV, alphaB * dotBV, dotNV ) );\\n\\t\\tfloat gl = dotNV * length( vec3( alphaT * dotTL, alphaB * dotBL, dotNL ) );\\n\\t\\tfloat v = 0.5 / ( gv + gl );\\n\\t\\treturn saturate(v);\\n\\t}\\n\\tfloat D_GGX_Anisotropic( const in float alphaT, const in float alphaB, const in float dotNH, const in float dotTH, const in float dotBH ) {\\n\\t\\tfloat a2 = alphaT * alphaB;\\n\\t\\thighp vec3 v = vec3( alphaB * dotTH, alphaT * dotBH, a2 * dotNH );\\n\\t\\thighp float v2 = dot( v, v );\\n\\t\\tfloat w2 = a2 / v2;\\n\\t\\treturn RECIPROCAL_PI * a2 * pow2 ( w2 );\\n\\t}\\n#endif\\n#ifdef USE_CLEARCOAT\\n\\tvec3 BRDF_GGX_Clearcoat( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material) {\\n\\t\\tvec3 f0 = material.clearcoatF0;\\n\\t\\tfloat f90 = material.clearcoatF90;\\n\\t\\tfloat roughness = material.clearcoatRoughness;\\n\\t\\tfloat alpha = pow2( roughness );\\n\\t\\tvec3 halfDir = normalize( lightDir + viewDir );\\n\\t\\tfloat dotNL = saturate( dot( normal, lightDir ) );\\n\\t\\tfloat dotNV = saturate( dot( normal, viewDir ) );\\n\\t\\tfloat dotNH = saturate( dot( normal, halfDir ) );\\n\\t\\tfloat dotVH = saturate( dot( viewDir, halfDir ) );\\n\\t\\tvec3 F = F_Schlick( f0, f90, dotVH );\\n\\t\\tfloat V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV );\\n\\t\\tfloat D = D_GGX( alpha, dotNH );\\n\\t\\treturn F * ( V * D );\\n\\t}\\n#endif\\nvec3 BRDF_GGX( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material ) {\\n\\tvec3 f0 = material.specularColor;\\n\\tfloat f90 = material.specularF90;\\n\\tfloat roughness = material.roughness;\\n\\tfloat alpha = pow2( roughness );\\n\\tvec3 halfDir = normalize( lightDir + viewDir );\\n\\tfloat dotNL = saturate( dot( normal, lightDir ) );\\n\\tfloat dotNV = saturate( dot( normal, viewDir ) );\\n\\tfloat dotNH = saturate( dot( normal, halfDir ) );\\n\\tfloat dotVH = saturate( dot( viewDir, halfDir ) );\\n\\tvec3 F = F_Schlick( f0, f90, dotVH );\\n\\t#ifdef USE_IRIDESCENCE\\n\\t\\tF = mix( F, material.iridescenceFresnel, material.iridescence );\\n\\t#endif\\n\\t#ifdef USE_ANISOTROPY\\n\\t\\tfloat dotTL = dot( material.anisotropyT, lightDir );\\n\\t\\tfloat dotTV = dot( material.anisotropyT, viewDir );\\n\\t\\tfloat dotTH = dot( material.anisotropyT, halfDir );\\n\\t\\tfloat dotBL = dot( material.anisotropyB, lightDir );\\n\\t\\tfloat dotBV = dot( material.anisotropyB, viewDir );\\n\\t\\tfloat dotBH = dot( material.anisotropyB, halfDir );\\n\\t\\tfloat V = V_GGX_SmithCorrelated_Anisotropic( material.alphaT, alpha, dotTV, dotBV, dotTL, dotBL, dotNV, dotNL );\\n\\t\\tfloat D = D_GGX_Anisotropic( material.alphaT, alpha, dotNH, dotTH, dotBH );\\n\\t#else\\n\\t\\tfloat V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV );\\n\\t\\tfloat D = D_GGX( alpha, dotNH );\\n\\t#endif\\n\\treturn F * ( V * D );\\n}\\nvec2 LTC_Uv( const in vec3 N, const in vec3 V, const in float roughness ) {\\n\\tconst float LUT_SIZE = 64.0;\\n\\tconst float LUT_SCALE = ( LUT_SIZE - 1.0 ) / LUT_SIZE;\\n\\tconst float LUT_BIAS = 0.5 / LUT_SIZE;\\n\\tfloat dotNV = saturate( dot( N, V ) );\\n\\tvec2 uv = vec2( roughness, sqrt( 1.0 - dotNV ) );\\n\\tuv = uv * LUT_SCALE + LUT_BIAS;\\n\\treturn uv;\\n}\\nfloat LTC_ClippedSphereFormFactor( const in vec3 f ) {\\n\\tfloat l = length( f );\\n\\treturn max( ( l * l + f.z ) / ( l + 1.0 ), 0.0 );\\n}\\nvec3 LTC_EdgeVectorFormFactor( const in vec3 v1, const in vec3 v2 ) {\\n\\tfloat x = dot( v1, v2 );\\n\\tfloat y = abs( x );\\n\\tfloat a = 0.8543985 + ( 0.4965155 + 0.0145206 * y ) * y;\\n\\tfloat b = 3.4175940 + ( 4.1616724 + y ) * y;\\n\\tfloat v = a / b;\\n\\tfloat theta_sintheta = ( x > 0.0 ) ? v : 0.5 * inversesqrt( max( 1.0 - x * x, 1e-7 ) ) - v;\\n\\treturn cross( v1, v2 ) * theta_sintheta;\\n}\\nvec3 LTC_Evaluate( const in vec3 N, const in vec3 V, const in vec3 P, const in mat3 mInv, const in vec3 rectCoords[ 4 ] ) {\\n\\tvec3 v1 = rectCoords[ 1 ] - rectCoords[ 0 ];\\n\\tvec3 v2 = rectCoords[ 3 ] - rectCoords[ 0 ];\\n\\tvec3 lightNormal = cross( v1, v2 );\\n\\tif( dot( lightNormal, P - rectCoords[ 0 ] ) < 0.0 ) return vec3( 0.0 );\\n\\tvec3 T1, T2;\\n\\tT1 = normalize( V - N * dot( V, N ) );\\n\\tT2 = - cross( N, T1 );\\n\\tmat3 mat = mInv * transposeMat3( mat3( T1, T2, N ) );\\n\\tvec3 coords[ 4 ];\\n\\tcoords[ 0 ] = mat * ( rectCoords[ 0 ] - P );\\n\\tcoords[ 1 ] = mat * ( rectCoords[ 1 ] - P );\\n\\tcoords[ 2 ] = mat * ( rectCoords[ 2 ] - P );\\n\\tcoords[ 3 ] = mat * ( rectCoords[ 3 ] - P );\\n\\tcoords[ 0 ] = normalize( coords[ 0 ] );\\n\\tcoords[ 1 ] = normalize( coords[ 1 ] );\\n\\tcoords[ 2 ] = normalize( coords[ 2 ] );\\n\\tcoords[ 3 ] = normalize( coords[ 3 ] );\\n\\tvec3 vectorFormFactor = vec3( 0.0 );\\n\\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 0 ], coords[ 1 ] );\\n\\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 1 ], coords[ 2 ] );\\n\\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 2 ], coords[ 3 ] );\\n\\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 3 ], coords[ 0 ] );\\n\\tfloat result = LTC_ClippedSphereFormFactor( vectorFormFactor );\\n\\treturn vec3( result );\\n}\\n#if defined( USE_SHEEN )\\nfloat D_Charlie( float roughness, float dotNH ) {\\n\\tfloat alpha = pow2( roughness );\\n\\tfloat invAlpha = 1.0 / alpha;\\n\\tfloat cos2h = dotNH * dotNH;\\n\\tfloat sin2h = max( 1.0 - cos2h, 0.0078125 );\\n\\treturn ( 2.0 + invAlpha ) * pow( sin2h, invAlpha * 0.5 ) / ( 2.0 * PI );\\n}\\nfloat V_Neubelt( float dotNV, float dotNL ) {\\n\\treturn saturate( 1.0 / ( 4.0 * ( dotNL + dotNV - dotNL * dotNV ) ) );\\n}\\nvec3 BRDF_Sheen( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, vec3 sheenColor, const in float sheenRoughness ) {\\n\\tvec3 halfDir = normalize( lightDir + viewDir );\\n\\tfloat dotNL = saturate( dot( normal, lightDir ) );\\n\\tfloat dotNV = saturate( dot( normal, viewDir ) );\\n\\tfloat dotNH = saturate( dot( normal, halfDir ) );\\n\\tfloat D = D_Charlie( sheenRoughness, dotNH );\\n\\tfloat V = V_Neubelt( dotNV, dotNL );\\n\\treturn sheenColor * ( D * V );\\n}\\n#endif\\nfloat IBLSheenBRDF( const in vec3 normal, const in vec3 viewDir, const in float roughness ) {\\n\\tfloat dotNV = saturate( dot( normal, viewDir ) );\\n\\tfloat r2 = roughness * roughness;\\n\\tfloat a = roughness < 0.25 ? -339.2 * r2 + 161.4 * roughness - 25.9 : -8.48 * r2 + 14.3 * roughness - 9.95;\\n\\tfloat b = roughness < 0.25 ? 44.0 * r2 - 23.7 * roughness + 3.26 : 1.97 * r2 - 3.27 * roughness + 0.72;\\n\\tfloat DG = exp( a * dotNV + b ) + ( roughness < 0.25 ? 0.0 : 0.1 * ( roughness - 0.25 ) );\\n\\treturn saturate( DG * RECIPROCAL_PI );\\n}\\nvec2 DFGApprox( const in vec3 normal, const in vec3 viewDir, const in float roughness ) {\\n\\tfloat dotNV = saturate( dot( normal, viewDir ) );\\n\\tconst vec4 c0 = vec4( - 1, - 0.0275, - 0.572, 0.022 );\\n\\tconst vec4 c1 = vec4( 1, 0.0425, 1.04, - 0.04 );\\n\\tvec4 r = roughness * c0 + c1;\\n\\tfloat a004 = min( r.x * r.x, exp2( - 9.28 * dotNV ) ) * r.x + r.y;\\n\\tvec2 fab = vec2( - 1.04, 1.04 ) * a004 + r.zw;\\n\\treturn fab;\\n}\\nvec3 EnvironmentBRDF( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness ) {\\n\\tvec2 fab = DFGApprox( normal, viewDir, roughness );\\n\\treturn specularColor * fab.x + specularF90 * fab.y;\\n}\\n#ifdef USE_IRIDESCENCE\\nvoid computeMultiscatteringIridescence( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float iridescence, const in vec3 iridescenceF0, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) {\\n#else\\nvoid computeMultiscattering( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) {\\n#endif\\n\\tvec2 fab = DFGApprox( normal, viewDir, roughness );\\n\\t#ifdef USE_IRIDESCENCE\\n\\t\\tvec3 Fr = mix( specularColor, iridescenceF0, iridescence );\\n\\t#else\\n\\t\\tvec3 Fr = specularColor;\\n\\t#endif\\n\\tvec3 FssEss = Fr * fab.x + specularF90 * fab.y;\\n\\tfloat Ess = fab.x + fab.y;\\n\\tfloat Ems = 1.0 - Ess;\\n\\tvec3 Favg = Fr + ( 1.0 - Fr ) * 0.047619;\\tvec3 Fms = FssEss * Favg / ( 1.0 - Ems * Favg );\\n\\tsingleScatter += FssEss;\\n\\tmultiScatter += Fms * Ems;\\n}\\n#if NUM_RECT_AREA_LIGHTS > 0\\n\\tvoid RE_Direct_RectArea_Physical( const in RectAreaLight rectAreaLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\\n\\t\\tvec3 normal = geometryNormal;\\n\\t\\tvec3 viewDir = geometryViewDir;\\n\\t\\tvec3 position = geometryPosition;\\n\\t\\tvec3 lightPos = rectAreaLight.position;\\n\\t\\tvec3 halfWidth = rectAreaLight.halfWidth;\\n\\t\\tvec3 halfHeight = rectAreaLight.halfHeight;\\n\\t\\tvec3 lightColor = rectAreaLight.color;\\n\\t\\tfloat roughness = material.roughness;\\n\\t\\tvec3 rectCoords[ 4 ];\\n\\t\\trectCoords[ 0 ] = lightPos + halfWidth - halfHeight;\\t\\trectCoords[ 1 ] = lightPos - halfWidth - halfHeight;\\n\\t\\trectCoords[ 2 ] = lightPos - halfWidth + halfHeight;\\n\\t\\trectCoords[ 3 ] = lightPos + halfWidth + halfHeight;\\n\\t\\tvec2 uv = LTC_Uv( normal, viewDir, roughness );\\n\\t\\tvec4 t1 = texture2D( ltc_1, uv );\\n\\t\\tvec4 t2 = texture2D( ltc_2, uv );\\n\\t\\tmat3 mInv = mat3(\\n\\t\\t\\tvec3( t1.x, 0, t1.y ),\\n\\t\\t\\tvec3(    0, 1,    0 ),\\n\\t\\t\\tvec3( t1.z, 0, t1.w )\\n\\t\\t);\\n\\t\\tvec3 fresnel = ( material.specularColor * t2.x + ( vec3( 1.0 ) - material.specularColor ) * t2.y );\\n\\t\\treflectedLight.directSpecular += lightColor * fresnel * LTC_Evaluate( normal, viewDir, position, mInv, rectCoords );\\n\\t\\treflectedLight.directDiffuse += lightColor * material.diffuseColor * LTC_Evaluate( normal, viewDir, position, mat3( 1.0 ), rectCoords );\\n\\t}\\n#endif\\nvoid RE_Direct_Physical( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\\n\\tfloat dotNL = saturate( dot( geometryNormal, directLight.direction ) );\\n\\tvec3 irradiance = dotNL * directLight.color;\\n\\t#ifdef USE_CLEARCOAT\\n\\t\\tfloat dotNLcc = saturate( dot( geometryClearcoatNormal, directLight.direction ) );\\n\\t\\tvec3 ccIrradiance = dotNLcc * directLight.color;\\n\\t\\tclearcoatSpecularDirect += ccIrradiance * BRDF_GGX_Clearcoat( directLight.direction, geometryViewDir, geometryClearcoatNormal, material );\\n\\t#endif\\n\\t#ifdef USE_SHEEN\\n\\t\\tsheenSpecularDirect += irradiance * BRDF_Sheen( directLight.direction, geometryViewDir, geometryNormal, material.sheenColor, material.sheenRoughness );\\n\\t#endif\\n\\treflectedLight.directSpecular += irradiance * BRDF_GGX( directLight.direction, geometryViewDir, geometryNormal, material );\\n\\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\\n}\\nvoid RE_IndirectDiffuse_Physical( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\\n\\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\\n}\\nvoid RE_IndirectSpecular_Physical( const in vec3 radiance, const in vec3 irradiance, const in vec3 clearcoatRadiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight) {\\n\\t#ifdef USE_CLEARCOAT\\n\\t\\tclearcoatSpecularIndirect += clearcoatRadiance * EnvironmentBRDF( geometryClearcoatNormal, geometryViewDir, material.clearcoatF0, material.clearcoatF90, material.clearcoatRoughness );\\n\\t#endif\\n\\t#ifdef USE_SHEEN\\n\\t\\tsheenSpecularIndirect += irradiance * material.sheenColor * IBLSheenBRDF( geometryNormal, geometryViewDir, material.sheenRoughness );\\n\\t#endif\\n\\tvec3 singleScattering = vec3( 0.0 );\\n\\tvec3 multiScattering = vec3( 0.0 );\\n\\tvec3 cosineWeightedIrradiance = irradiance * RECIPROCAL_PI;\\n\\t#ifdef USE_IRIDESCENCE\\n\\t\\tcomputeMultiscatteringIridescence( geometryNormal, geometryViewDir, material.specularColor, material.specularF90, material.iridescence, material.iridescenceFresnel, material.roughness, singleScattering, multiScattering );\\n\\t#else\\n\\t\\tcomputeMultiscattering( geometryNormal, geometryViewDir, material.specularColor, material.specularF90, material.roughness, singleScattering, multiScattering );\\n\\t#endif\\n\\tvec3 totalScattering = singleScattering + multiScattering;\\n\\tvec3 diffuse = material.diffuseColor * ( 1.0 - max( max( totalScattering.r, totalScattering.g ), totalScattering.b ) );\\n\\treflectedLight.indirectSpecular += radiance * singleScattering;\\n\\treflectedLight.indirectSpecular += multiScattering * cosineWeightedIrradiance;\\n\\treflectedLight.indirectDiffuse += diffuse * cosineWeightedIrradiance;\\n}\\n#define RE_Direct\\t\\t\\t\\tRE_Direct_Physical\\n#define RE_Direct_RectArea\\t\\tRE_Direct_RectArea_Physical\\n#define RE_IndirectDiffuse\\t\\tRE_IndirectDiffuse_Physical\\n#define RE_IndirectSpecular\\t\\tRE_IndirectSpecular_Physical\\nfloat computeSpecularOcclusion( const in float dotNV, const in float ambientOcclusion, const in float roughness ) {\\n\\treturn saturate( pow( dotNV + ambientOcclusion, exp2( - 16.0 * roughness - 1.0 ) ) - 1.0 + ambientOcclusion );\\n}\";var ea=\"\\nvec3 geometryPosition = - vViewPosition;\\nvec3 geometryNormal = normal;\\nvec3 geometryViewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : normalize( vViewPosition );\\nvec3 geometryClearcoatNormal = vec3( 0.0 );\\n#ifdef USE_CLEARCOAT\\n\\tgeometryClearcoatNormal = clearcoatNormal;\\n#endif\\n#ifdef USE_IRIDESCENCE\\n\\tfloat dotNVi = saturate( dot( normal, geometryViewDir ) );\\n\\tif ( material.iridescenceThickness == 0.0 ) {\\n\\t\\tmaterial.iridescence = 0.0;\\n\\t} else {\\n\\t\\tmaterial.iridescence = saturate( material.iridescence );\\n\\t}\\n\\tif ( material.iridescence > 0.0 ) {\\n\\t\\tmaterial.iridescenceFresnel = evalIridescence( 1.0, material.iridescenceIOR, dotNVi, material.iridescenceThickness, material.specularColor );\\n\\t\\tmaterial.iridescenceF0 = Schlick_to_F0( material.iridescenceFresnel, 1.0, dotNVi );\\n\\t}\\n#endif\\nIncidentLight directLight;\\n#if ( NUM_POINT_LIGHTS > 0 ) && defined( RE_Direct )\\n\\tPointLight pointLight;\\n\\t#if defined( USE_SHADOWMAP ) && NUM_POINT_LIGHT_SHADOWS > 0\\n\\tPointLightShadow pointLightShadow;\\n\\t#endif\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {\\n\\t\\tpointLight = pointLights[ i ];\\n\\t\\tgetPointLightInfo( pointLight, geometryPosition, directLight );\\n\\t\\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_POINT_LIGHT_SHADOWS )\\n\\t\\tpointLightShadow = pointLightShadows[ i ];\\n\\t\\tdirectLight.color *= ( directLight.visible && receiveShadow ) ? getPointShadow( pointShadowMap[ i ], pointLightShadow.shadowMapSize, pointLightShadow.shadowIntensity, pointLightShadow.shadowBias, pointLightShadow.shadowRadius, vPointShadowCoord[ i ], pointLightShadow.shadowCameraNear, pointLightShadow.shadowCameraFar ) : 1.0;\\n\\t\\t#endif\\n\\t\\tRE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );\\n\\t}\\n\\t#pragma unroll_loop_end\\n#endif\\n#if ( NUM_SPOT_LIGHTS > 0 ) && defined( RE_Direct )\\n\\tSpotLight spotLight;\\n\\tvec4 spotColor;\\n\\tvec3 spotLightCoord;\\n\\tbool inSpotLightMap;\\n\\t#if defined( USE_SHADOWMAP ) && NUM_SPOT_LIGHT_SHADOWS > 0\\n\\tSpotLightShadow spotLightShadow;\\n\\t#endif\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {\\n\\t\\tspotLight = spotLights[ i ];\\n\\t\\tgetSpotLightInfo( spotLight, geometryPosition, directLight );\\n\\t\\t#if ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS )\\n\\t\\t#define SPOT_LIGHT_MAP_INDEX UNROLLED_LOOP_INDEX\\n\\t\\t#elif ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\\n\\t\\t#define SPOT_LIGHT_MAP_INDEX NUM_SPOT_LIGHT_MAPS\\n\\t\\t#else\\n\\t\\t#define SPOT_LIGHT_MAP_INDEX ( UNROLLED_LOOP_INDEX - NUM_SPOT_LIGHT_SHADOWS + NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS )\\n\\t\\t#endif\\n\\t\\t#if ( SPOT_LIGHT_MAP_INDEX < NUM_SPOT_LIGHT_MAPS )\\n\\t\\t\\tspotLightCoord = vSpotLightCoord[ i ].xyz / vSpotLightCoord[ i ].w;\\n\\t\\t\\tinSpotLightMap = all( lessThan( abs( spotLightCoord * 2. - 1. ), vec3( 1.0 ) ) );\\n\\t\\t\\tspotColor = texture2D( spotLightMap[ SPOT_LIGHT_MAP_INDEX ], spotLightCoord.xy );\\n\\t\\t\\tdirectLight.color = inSpotLightMap ? directLight.color * spotColor.rgb : directLight.color;\\n\\t\\t#endif\\n\\t\\t#undef SPOT_LIGHT_MAP_INDEX\\n\\t\\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\\n\\t\\tspotLightShadow = spotLightShadows[ i ];\\n\\t\\tdirectLight.color *= ( directLight.visible && receiveShadow ) ? getShadow( spotShadowMap[ i ], spotLightShadow.shadowMapSize, spotLightShadow.shadowIntensity, spotLightShadow.shadowBias, spotLightShadow.shadowRadius, vSpotLightCoord[ i ] ) : 1.0;\\n\\t\\t#endif\\n\\t\\tRE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );\\n\\t}\\n\\t#pragma unroll_loop_end\\n#endif\\n#if ( NUM_DIR_LIGHTS > 0 ) && defined( RE_Direct )\\n\\tDirectionalLight directionalLight;\\n\\t#if defined( USE_SHADOWMAP ) && NUM_DIR_LIGHT_SHADOWS > 0\\n\\tDirectionalLightShadow directionalLightShadow;\\n\\t#endif\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {\\n\\t\\tdirectionalLight = directionalLights[ i ];\\n\\t\\tgetDirectionalLightInfo( directionalLight, directLight );\\n\\t\\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_DIR_LIGHT_SHADOWS )\\n\\t\\tdirectionalLightShadow = directionalLightShadows[ i ];\\n\\t\\tdirectLight.color *= ( directLight.visible && receiveShadow ) ? getShadow( directionalShadowMap[ i ], directionalLightShadow.shadowMapSize, directionalLightShadow.shadowIntensity, directionalLightShadow.shadowBias, directionalLightShadow.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\\n\\t\\t#endif\\n\\t\\tRE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );\\n\\t}\\n\\t#pragma unroll_loop_end\\n#endif\\n#if ( NUM_RECT_AREA_LIGHTS > 0 ) && defined( RE_Direct_RectArea )\\n\\tRectAreaLight rectAreaLight;\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_RECT_AREA_LIGHTS; i ++ ) {\\n\\t\\trectAreaLight = rectAreaLights[ i ];\\n\\t\\tRE_Direct_RectArea( rectAreaLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );\\n\\t}\\n\\t#pragma unroll_loop_end\\n#endif\\n#if defined( RE_IndirectDiffuse )\\n\\tvec3 iblIrradiance = vec3( 0.0 );\\n\\tvec3 irradiance = getAmbientLightIrradiance( ambientLightColor );\\n\\t#if defined( USE_LIGHT_PROBES )\\n\\t\\tirradiance += getLightProbeIrradiance( lightProbe, geometryNormal );\\n\\t#endif\\n\\t#if ( NUM_HEMI_LIGHTS > 0 )\\n\\t\\t#pragma unroll_loop_start\\n\\t\\tfor ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) {\\n\\t\\t\\tirradiance += getHemisphereLightIrradiance( hemisphereLights[ i ], geometryNormal );\\n\\t\\t}\\n\\t\\t#pragma unroll_loop_end\\n\\t#endif\\n#endif\\n#if defined( RE_IndirectSpecular )\\n\\tvec3 radiance = vec3( 0.0 );\\n\\tvec3 clearcoatRadiance = vec3( 0.0 );\\n#endif\";var na=\"#if defined( RE_IndirectDiffuse )\\n\\t#ifdef USE_LIGHTMAP\\n\\t\\tvec4 lightMapTexel = texture2D( lightMap, vLightMapUv );\\n\\t\\tvec3 lightMapIrradiance = lightMapTexel.rgb * lightMapIntensity;\\n\\t\\tirradiance += lightMapIrradiance;\\n\\t#endif\\n\\t#if defined( USE_ENVMAP ) && defined( STANDARD ) && defined( ENVMAP_TYPE_CUBE_UV )\\n\\t\\tiblIrradiance += getIBLIrradiance( geometryNormal );\\n\\t#endif\\n#endif\\n#if defined( USE_ENVMAP ) && defined( RE_IndirectSpecular )\\n\\t#ifdef USE_ANISOTROPY\\n\\t\\tradiance += getIBLAnisotropyRadiance( geometryViewDir, geometryNormal, material.roughness, material.anisotropyB, material.anisotropy );\\n\\t#else\\n\\t\\tradiance += getIBLRadiance( geometryViewDir, geometryNormal, material.roughness );\\n\\t#endif\\n\\t#ifdef USE_CLEARCOAT\\n\\t\\tclearcoatRadiance += getIBLRadiance( geometryViewDir, geometryClearcoatNormal, material.clearcoatRoughness );\\n\\t#endif\\n#endif\";var ia=\"#if defined( RE_IndirectDiffuse )\\n\\tRE_IndirectDiffuse( irradiance, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );\\n#endif\\n#if defined( RE_IndirectSpecular )\\n\\tRE_IndirectSpecular( radiance, iblIrradiance, clearcoatRadiance, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );\\n#endif\";var ra=\"#if defined( USE_LOGDEPTHBUF )\\n\\tgl_FragDepth = vIsPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;\\n#endif\";var sa=\"#if defined( USE_LOGDEPTHBUF )\\n\\tuniform float logDepthBufFC;\\n\\tvarying float vFragDepth;\\n\\tvarying float vIsPerspective;\\n#endif\";var aa=\"#ifdef USE_LOGDEPTHBUF\\n\\tvarying float vFragDepth;\\n\\tvarying float vIsPerspective;\\n#endif\";var oa=\"#ifdef USE_LOGDEPTHBUF\\n\\tvFragDepth = 1.0 + gl_Position.w;\\n\\tvIsPerspective = float( isPerspectiveMatrix( projectionMatrix ) );\\n#endif\";var la=\"#ifdef USE_MAP\\n\\tvec4 sampledDiffuseColor = texture2D( map, vMapUv );\\n\\t#ifdef DECODE_VIDEO_TEXTURE\\n\\t\\tsampledDiffuseColor = vec4( mix( pow( sampledDiffuseColor.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), sampledDiffuseColor.rgb * 0.0773993808, vec3( lessThanEqual( sampledDiffuseColor.rgb, vec3( 0.04045 ) ) ) ), sampledDiffuseColor.w );\\n\\t\\n\\t#endif\\n\\tdiffuseColor *= sampledDiffuseColor;\\n#endif\";var ca=\"#ifdef USE_MAP\\n\\tuniform sampler2D map;\\n#endif\";var ha=\"#if defined( USE_MAP ) || defined( USE_ALPHAMAP )\\n\\t#if defined( USE_POINTS_UV )\\n\\t\\tvec2 uv = vUv;\\n\\t#else\\n\\t\\tvec2 uv = ( uvTransform * vec3( gl_PointCoord.x, 1.0 - gl_PointCoord.y, 1 ) ).xy;\\n\\t#endif\\n#endif\\n#ifdef USE_MAP\\n\\tdiffuseColor *= texture2D( map, uv );\\n#endif\\n#ifdef USE_ALPHAMAP\\n\\tdiffuseColor.a *= texture2D( alphaMap, uv ).g;\\n#endif\";var ua=\"#if defined( USE_POINTS_UV )\\n\\tvarying vec2 vUv;\\n#else\\n\\t#if defined( USE_MAP ) || defined( USE_ALPHAMAP )\\n\\t\\tuniform mat3 uvTransform;\\n\\t#endif\\n#endif\\n#ifdef USE_MAP\\n\\tuniform sampler2D map;\\n#endif\\n#ifdef USE_ALPHAMAP\\n\\tuniform sampler2D alphaMap;\\n#endif\";var da=\"float metalnessFactor = metalness;\\n#ifdef USE_METALNESSMAP\\n\\tvec4 texelMetalness = texture2D( metalnessMap, vMetalnessMapUv );\\n\\tmetalnessFactor *= texelMetalness.b;\\n#endif\";var pa=\"#ifdef USE_METALNESSMAP\\n\\tuniform sampler2D metalnessMap;\\n#endif\";var fa=\"#ifdef USE_INSTANCING_MORPH\\n\\tfloat morphTargetInfluences[ MORPHTARGETS_COUNT ];\\n\\tfloat morphTargetBaseInfluence = texelFetch( morphTexture, ivec2( 0, gl_InstanceID ), 0 ).r;\\n\\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\\n\\t\\tmorphTargetInfluences[i] =  texelFetch( morphTexture, ivec2( i + 1, gl_InstanceID ), 0 ).r;\\n\\t}\\n#endif\";var ma=\"#if defined( USE_MORPHCOLORS )\\n\\tvColor *= morphTargetBaseInfluence;\\n\\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\\n\\t\\t#if defined( USE_COLOR_ALPHA )\\n\\t\\t\\tif ( morphTargetInfluences[ i ] != 0.0 ) vColor += getMorph( gl_VertexID, i, 2 ) * morphTargetInfluences[ i ];\\n\\t\\t#elif defined( USE_COLOR )\\n\\t\\t\\tif ( morphTargetInfluences[ i ] != 0.0 ) vColor += getMorph( gl_VertexID, i, 2 ).rgb * morphTargetInfluences[ i ];\\n\\t\\t#endif\\n\\t}\\n#endif\";var ga=\"#ifdef USE_MORPHNORMALS\\n\\tobjectNormal *= morphTargetBaseInfluence;\\n\\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\\n\\t\\tif ( morphTargetInfluences[ i ] != 0.0 ) objectNormal += getMorph( gl_VertexID, i, 1 ).xyz * morphTargetInfluences[ i ];\\n\\t}\\n#endif\";var va=\"#ifdef USE_MORPHTARGETS\\n\\t#ifndef USE_INSTANCING_MORPH\\n\\t\\tuniform float morphTargetBaseInfluence;\\n\\t\\tuniform float morphTargetInfluences[ MORPHTARGETS_COUNT ];\\n\\t#endif\\n\\tuniform sampler2DArray morphTargetsTexture;\\n\\tuniform ivec2 morphTargetsTextureSize;\\n\\tvec4 getMorph( const in int vertexIndex, const in int morphTargetIndex, const in int offset ) {\\n\\t\\tint texelIndex = vertexIndex * MORPHTARGETS_TEXTURE_STRIDE + offset;\\n\\t\\tint y = texelIndex / morphTargetsTextureSize.x;\\n\\t\\tint x = texelIndex - y * morphTargetsTextureSize.x;\\n\\t\\tivec3 morphUV = ivec3( x, y, morphTargetIndex );\\n\\t\\treturn texelFetch( morphTargetsTexture, morphUV, 0 );\\n\\t}\\n#endif\";var _a=\"#ifdef USE_MORPHTARGETS\\n\\ttransformed *= morphTargetBaseInfluence;\\n\\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\\n\\t\\tif ( morphTargetInfluences[ i ] != 0.0 ) transformed += getMorph( gl_VertexID, i, 0 ).xyz * morphTargetInfluences[ i ];\\n\\t}\\n#endif\";var xa=\"float faceDirection = gl_FrontFacing ? 1.0 : - 1.0;\\n#ifdef FLAT_SHADED\\n\\tvec3 fdx = dFdx( vViewPosition );\\n\\tvec3 fdy = dFdy( vViewPosition );\\n\\tvec3 normal = normalize( cross( fdx, fdy ) );\\n#else\\n\\tvec3 normal = normalize( vNormal );\\n\\t#ifdef DOUBLE_SIDED\\n\\t\\tnormal *= faceDirection;\\n\\t#endif\\n#endif\\n#if defined( USE_NORMALMAP_TANGENTSPACE ) || defined( USE_CLEARCOAT_NORMALMAP ) || defined( USE_ANISOTROPY )\\n\\t#ifdef USE_TANGENT\\n\\t\\tmat3 tbn = mat3( normalize( vTangent ), normalize( vBitangent ), normal );\\n\\t#else\\n\\t\\tmat3 tbn = getTangentFrame( - vViewPosition, normal,\\n\\t\\t#if defined( USE_NORMALMAP )\\n\\t\\t\\tvNormalMapUv\\n\\t\\t#elif defined( USE_CLEARCOAT_NORMALMAP )\\n\\t\\t\\tvClearcoatNormalMapUv\\n\\t\\t#else\\n\\t\\t\\tvUv\\n\\t\\t#endif\\n\\t\\t);\\n\\t#endif\\n\\t#if defined( DOUBLE_SIDED ) && ! defined( FLAT_SHADED )\\n\\t\\ttbn[0] *= faceDirection;\\n\\t\\ttbn[1] *= faceDirection;\\n\\t#endif\\n#endif\\n#ifdef USE_CLEARCOAT_NORMALMAP\\n\\t#ifdef USE_TANGENT\\n\\t\\tmat3 tbn2 = mat3( normalize( vTangent ), normalize( vBitangent ), normal );\\n\\t#else\\n\\t\\tmat3 tbn2 = getTangentFrame( - vViewPosition, normal, vClearcoatNormalMapUv );\\n\\t#endif\\n\\t#if defined( DOUBLE_SIDED ) && ! defined( FLAT_SHADED )\\n\\t\\ttbn2[0] *= faceDirection;\\n\\t\\ttbn2[1] *= faceDirection;\\n\\t#endif\\n#endif\\nvec3 nonPerturbedNormal = normal;\";var ya=\"#ifdef USE_NORMALMAP_OBJECTSPACE\\n\\tnormal = texture2D( normalMap, vNormalMapUv ).xyz * 2.0 - 1.0;\\n\\t#ifdef FLIP_SIDED\\n\\t\\tnormal = - normal;\\n\\t#endif\\n\\t#ifdef DOUBLE_SIDED\\n\\t\\tnormal = normal * faceDirection;\\n\\t#endif\\n\\tnormal = normalize( normalMatrix * normal );\\n#elif defined( USE_NORMALMAP_TANGENTSPACE )\\n\\tvec3 mapN = texture2D( normalMap, vNormalMapUv ).xyz * 2.0 - 1.0;\\n\\tmapN.xy *= normalScale;\\n\\tnormal = normalize( tbn * mapN );\\n#elif defined( USE_BUMPMAP )\\n\\tnormal = perturbNormalArb( - vViewPosition, normal, dHdxy_fwd(), faceDirection );\\n#endif\";var Ma=\"#ifndef FLAT_SHADED\\n\\tvarying vec3 vNormal;\\n\\t#ifdef USE_TANGENT\\n\\t\\tvarying vec3 vTangent;\\n\\t\\tvarying vec3 vBitangent;\\n\\t#endif\\n#endif\";var Sa=\"#ifndef FLAT_SHADED\\n\\tvarying vec3 vNormal;\\n\\t#ifdef USE_TANGENT\\n\\t\\tvarying vec3 vTangent;\\n\\t\\tvarying vec3 vBitangent;\\n\\t#endif\\n#endif\";var ba=\"#ifndef FLAT_SHADED\\n\\tvNormal = normalize( transformedNormal );\\n\\t#ifdef USE_TANGENT\\n\\t\\tvTangent = normalize( transformedTangent );\\n\\t\\tvBitangent = normalize( cross( vNormal, vTangent ) * tangent.w );\\n\\t#endif\\n#endif\";var Ta=\"#ifdef USE_NORMALMAP\\n\\tuniform sampler2D normalMap;\\n\\tuniform vec2 normalScale;\\n#endif\\n#ifdef USE_NORMALMAP_OBJECTSPACE\\n\\tuniform mat3 normalMatrix;\\n#endif\\n#if ! defined ( USE_TANGENT ) && ( defined ( USE_NORMALMAP_TANGENTSPACE ) || defined ( USE_CLEARCOAT_NORMALMAP ) || defined( USE_ANISOTROPY ) )\\n\\tmat3 getTangentFrame( vec3 eye_pos, vec3 surf_norm, vec2 uv ) {\\n\\t\\tvec3 q0 = dFdx( eye_pos.xyz );\\n\\t\\tvec3 q1 = dFdy( eye_pos.xyz );\\n\\t\\tvec2 st0 = dFdx( uv.st );\\n\\t\\tvec2 st1 = dFdy( uv.st );\\n\\t\\tvec3 N = surf_norm;\\n\\t\\tvec3 q1perp = cross( q1, N );\\n\\t\\tvec3 q0perp = cross( N, q0 );\\n\\t\\tvec3 T = q1perp * st0.x + q0perp * st1.x;\\n\\t\\tvec3 B = q1perp * st0.y + q0perp * st1.y;\\n\\t\\tfloat det = max( dot( T, T ), dot( B, B ) );\\n\\t\\tfloat scale = ( det == 0.0 ) ? 0.0 : inversesqrt( det );\\n\\t\\treturn mat3( T * scale, B * scale, N );\\n\\t}\\n#endif\";var wa=\"#ifdef USE_CLEARCOAT\\n\\tvec3 clearcoatNormal = nonPerturbedNormal;\\n#endif\";var Ea=\"#ifdef USE_CLEARCOAT_NORMALMAP\\n\\tvec3 clearcoatMapN = texture2D( clearcoatNormalMap, vClearcoatNormalMapUv ).xyz * 2.0 - 1.0;\\n\\tclearcoatMapN.xy *= clearcoatNormalScale;\\n\\tclearcoatNormal = normalize( tbn2 * clearcoatMapN );\\n#endif\";var Aa=\"#ifdef USE_CLEARCOATMAP\\n\\tuniform sampler2D clearcoatMap;\\n#endif\\n#ifdef USE_CLEARCOAT_NORMALMAP\\n\\tuniform sampler2D clearcoatNormalMap;\\n\\tuniform vec2 clearcoatNormalScale;\\n#endif\\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\\n\\tuniform sampler2D clearcoatRoughnessMap;\\n#endif\";var Ca=\"#ifdef USE_IRIDESCENCEMAP\\n\\tuniform sampler2D iridescenceMap;\\n#endif\\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\\n\\tuniform sampler2D iridescenceThicknessMap;\\n#endif\";var Ra=\"#ifdef OPAQUE\\ndiffuseColor.a = 1.0;\\n#endif\\n#ifdef USE_TRANSMISSION\\ndiffuseColor.a *= material.transmissionAlpha;\\n#endif\\ngl_FragColor = vec4( outgoingLight, diffuseColor.a );\";var Pa=\"vec3 packNormalToRGB( const in vec3 normal ) {\\n\\treturn normalize( normal ) * 0.5 + 0.5;\\n}\\nvec3 unpackRGBToNormal( const in vec3 rgb ) {\\n\\treturn 2.0 * rgb.xyz - 1.0;\\n}\\nconst float PackUpscale = 256. / 255.;const float UnpackDownscale = 255. / 256.;const float ShiftRight8 = 1. / 256.;\\nconst float Inv255 = 1. / 255.;\\nconst vec4 PackFactors = vec4( 1.0, 256.0, 256.0 * 256.0, 256.0 * 256.0 * 256.0 );\\nconst vec2 UnpackFactors2 = vec2( UnpackDownscale, 1.0 / PackFactors.g );\\nconst vec3 UnpackFactors3 = vec3( UnpackDownscale / PackFactors.rg, 1.0 / PackFactors.b );\\nconst vec4 UnpackFactors4 = vec4( UnpackDownscale / PackFactors.rgb, 1.0 / PackFactors.a );\\nvec4 packDepthToRGBA( const in float v ) {\\n\\tif( v <= 0.0 )\\n\\t\\treturn vec4( 0., 0., 0., 0. );\\n\\tif( v >= 1.0 )\\n\\t\\treturn vec4( 1., 1., 1., 1. );\\n\\tfloat vuf;\\n\\tfloat af = modf( v * PackFactors.a, vuf );\\n\\tfloat bf = modf( vuf * ShiftRight8, vuf );\\n\\tfloat gf = modf( vuf * ShiftRight8, vuf );\\n\\treturn vec4( vuf * Inv255, gf * PackUpscale, bf * PackUpscale, af );\\n}\\nvec3 packDepthToRGB( const in float v ) {\\n\\tif( v <= 0.0 )\\n\\t\\treturn vec3( 0., 0., 0. );\\n\\tif( v >= 1.0 )\\n\\t\\treturn vec3( 1., 1., 1. );\\n\\tfloat vuf;\\n\\tfloat bf = modf( v * PackFactors.b, vuf );\\n\\tfloat gf = modf( vuf * ShiftRight8, vuf );\\n\\treturn vec3( vuf * Inv255, gf * PackUpscale, bf );\\n}\\nvec2 packDepthToRG( const in float v ) {\\n\\tif( v <= 0.0 )\\n\\t\\treturn vec2( 0., 0. );\\n\\tif( v >= 1.0 )\\n\\t\\treturn vec2( 1., 1. );\\n\\tfloat vuf;\\n\\tfloat gf = modf( v * 256., vuf );\\n\\treturn vec2( vuf * Inv255, gf );\\n}\\nfloat unpackRGBAToDepth( const in vec4 v ) {\\n\\treturn dot( v, UnpackFactors4 );\\n}\\nfloat unpackRGBToDepth( const in vec3 v ) {\\n\\treturn dot( v, UnpackFactors3 );\\n}\\nfloat unpackRGToDepth( const in vec2 v ) {\\n\\treturn v.r * UnpackFactors2.r + v.g * UnpackFactors2.g;\\n}\\nvec4 pack2HalfToRGBA( const in vec2 v ) {\\n\\tvec4 r = vec4( v.x, fract( v.x * 255.0 ), v.y, fract( v.y * 255.0 ) );\\n\\treturn vec4( r.x - r.y / 255.0, r.y, r.z - r.w / 255.0, r.w );\\n}\\nvec2 unpackRGBATo2Half( const in vec4 v ) {\\n\\treturn vec2( v.x + ( v.y / 255.0 ), v.z + ( v.w / 255.0 ) );\\n}\\nfloat viewZToOrthographicDepth( const in float viewZ, const in float near, const in float far ) {\\n\\treturn ( viewZ + near ) / ( near - far );\\n}\\nfloat orthographicDepthToViewZ( const in float depth, const in float near, const in float far ) {\\n\\treturn depth * ( near - far ) - near;\\n}\\nfloat viewZToPerspectiveDepth( const in float viewZ, const in float near, const in float far ) {\\n\\treturn ( ( near + viewZ ) * far ) / ( ( far - near ) * viewZ );\\n}\\nfloat perspectiveDepthToViewZ( const in float depth, const in float near, const in float far ) {\\n\\treturn ( near * far ) / ( ( far - near ) * depth - far );\\n}\";var La=\"#ifdef PREMULTIPLIED_ALPHA\\n\\tgl_FragColor.rgb *= gl_FragColor.a;\\n#endif\";var Ia=\"vec4 mvPosition = vec4( transformed, 1.0 );\\n#ifdef USE_BATCHING\\n\\tmvPosition = batchingMatrix * mvPosition;\\n#endif\\n#ifdef USE_INSTANCING\\n\\tmvPosition = instanceMatrix * mvPosition;\\n#endif\\nmvPosition = modelViewMatrix * mvPosition;\\ngl_Position = projectionMatrix * mvPosition;\";var Ua=\"#ifdef DITHERING\\n\\tgl_FragColor.rgb = dithering( gl_FragColor.rgb );\\n#endif\";var Da=\"#ifdef DITHERING\\n\\tvec3 dithering( vec3 color ) {\\n\\t\\tfloat grid_position = rand( gl_FragCoord.xy );\\n\\t\\tvec3 dither_shift_RGB = vec3( 0.25 / 255.0, -0.25 / 255.0, 0.25 / 255.0 );\\n\\t\\tdither_shift_RGB = mix( 2.0 * dither_shift_RGB, -2.0 * dither_shift_RGB, grid_position );\\n\\t\\treturn color + dither_shift_RGB;\\n\\t}\\n#endif\";var Na=\"float roughnessFactor = roughness;\\n#ifdef USE_ROUGHNESSMAP\\n\\tvec4 texelRoughness = texture2D( roughnessMap, vRoughnessMapUv );\\n\\troughnessFactor *= texelRoughness.g;\\n#endif\";var Ba=\"#ifdef USE_ROUGHNESSMAP\\n\\tuniform sampler2D roughnessMap;\\n#endif\";var Oa=\"#if NUM_SPOT_LIGHT_COORDS > 0\\n\\tvarying vec4 vSpotLightCoord[ NUM_SPOT_LIGHT_COORDS ];\\n#endif\\n#if NUM_SPOT_LIGHT_MAPS > 0\\n\\tuniform sampler2D spotLightMap[ NUM_SPOT_LIGHT_MAPS ];\\n#endif\\n#ifdef USE_SHADOWMAP\\n\\t#if NUM_DIR_LIGHT_SHADOWS > 0\\n\\t\\tuniform sampler2D directionalShadowMap[ NUM_DIR_LIGHT_SHADOWS ];\\n\\t\\tvarying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ];\\n\\t\\tstruct DirectionalLightShadow {\\n\\t\\t\\tfloat shadowIntensity;\\n\\t\\t\\tfloat shadowBias;\\n\\t\\t\\tfloat shadowNormalBias;\\n\\t\\t\\tfloat shadowRadius;\\n\\t\\t\\tvec2 shadowMapSize;\\n\\t\\t};\\n\\t\\tuniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ];\\n\\t#endif\\n\\t#if NUM_SPOT_LIGHT_SHADOWS > 0\\n\\t\\tuniform sampler2D spotShadowMap[ NUM_SPOT_LIGHT_SHADOWS ];\\n\\t\\tstruct SpotLightShadow {\\n\\t\\t\\tfloat shadowIntensity;\\n\\t\\t\\tfloat shadowBias;\\n\\t\\t\\tfloat shadowNormalBias;\\n\\t\\t\\tfloat shadowRadius;\\n\\t\\t\\tvec2 shadowMapSize;\\n\\t\\t};\\n\\t\\tuniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ];\\n\\t#endif\\n\\t#if NUM_POINT_LIGHT_SHADOWS > 0\\n\\t\\tuniform sampler2D pointShadowMap[ NUM_POINT_LIGHT_SHADOWS ];\\n\\t\\tvarying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ];\\n\\t\\tstruct PointLightShadow {\\n\\t\\t\\tfloat shadowIntensity;\\n\\t\\t\\tfloat shadowBias;\\n\\t\\t\\tfloat shadowNormalBias;\\n\\t\\t\\tfloat shadowRadius;\\n\\t\\t\\tvec2 shadowMapSize;\\n\\t\\t\\tfloat shadowCameraNear;\\n\\t\\t\\tfloat shadowCameraFar;\\n\\t\\t};\\n\\t\\tuniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ];\\n\\t#endif\\n\\tfloat texture2DCompare( sampler2D depths, vec2 uv, float compare ) {\\n\\t\\treturn step( compare, unpackRGBAToDepth( texture2D( depths, uv ) ) );\\n\\t}\\n\\tvec2 texture2DDistribution( sampler2D shadow, vec2 uv ) {\\n\\t\\treturn unpackRGBATo2Half( texture2D( shadow, uv ) );\\n\\t}\\n\\tfloat VSMShadow (sampler2D shadow, vec2 uv, float compare ){\\n\\t\\tfloat occlusion = 1.0;\\n\\t\\tvec2 distribution = texture2DDistribution( shadow, uv );\\n\\t\\tfloat hard_shadow = step( compare , distribution.x );\\n\\t\\tif (hard_shadow != 1.0 ) {\\n\\t\\t\\tfloat distance = compare - distribution.x ;\\n\\t\\t\\tfloat variance = max( 0.00000, distribution.y * distribution.y );\\n\\t\\t\\tfloat softness_probability = variance / (variance + distance * distance );\\t\\t\\tsoftness_probability = clamp( ( softness_probability - 0.3 ) / ( 0.95 - 0.3 ), 0.0, 1.0 );\\t\\t\\tocclusion = clamp( max( hard_shadow, softness_probability ), 0.0, 1.0 );\\n\\t\\t}\\n\\t\\treturn occlusion;\\n\\t}\\n\\tfloat getShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowIntensity, float shadowBias, float shadowRadius, vec4 shadowCoord ) {\\n\\t\\tfloat shadow = 1.0;\\n\\t\\tshadowCoord.xyz /= shadowCoord.w;\\n\\t\\tshadowCoord.z += shadowBias;\\n\\t\\tbool inFrustum = shadowCoord.x >= 0.0 && shadowCoord.x <= 1.0 && shadowCoord.y >= 0.0 && shadowCoord.y <= 1.0;\\n\\t\\tbool frustumTest = inFrustum && shadowCoord.z <= 1.0;\\n\\t\\tif ( frustumTest ) {\\n\\t\\t#if defined( SHADOWMAP_TYPE_PCF )\\n\\t\\t\\tvec2 texelSize = vec2( 1.0 ) / shadowMapSize;\\n\\t\\t\\tfloat dx0 = - texelSize.x * shadowRadius;\\n\\t\\t\\tfloat dy0 = - texelSize.y * shadowRadius;\\n\\t\\t\\tfloat dx1 = + texelSize.x * shadowRadius;\\n\\t\\t\\tfloat dy1 = + texelSize.y * shadowRadius;\\n\\t\\t\\tfloat dx2 = dx0 / 2.0;\\n\\t\\t\\tfloat dy2 = dy0 / 2.0;\\n\\t\\t\\tfloat dx3 = dx1 / 2.0;\\n\\t\\t\\tfloat dy3 = dy1 / 2.0;\\n\\t\\t\\tshadow = (\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy2 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy2 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy2 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, 0.0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, 0.0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, 0.0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, 0.0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy3 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy3 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy3 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy1 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy1 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy1 ), shadowCoord.z )\\n\\t\\t\\t) * ( 1.0 / 17.0 );\\n\\t\\t#elif defined( SHADOWMAP_TYPE_PCF_SOFT )\\n\\t\\t\\tvec2 texelSize = vec2( 1.0 ) / shadowMapSize;\\n\\t\\t\\tfloat dx = texelSize.x;\\n\\t\\t\\tfloat dy = texelSize.y;\\n\\t\\t\\tvec2 uv = shadowCoord.xy;\\n\\t\\t\\tvec2 f = fract( uv * shadowMapSize + 0.5 );\\n\\t\\t\\tuv -= f * texelSize;\\n\\t\\t\\tshadow = (\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, uv, shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, uv + vec2( dx, 0.0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, uv + vec2( 0.0, dy ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, uv + texelSize, shadowCoord.z ) +\\n\\t\\t\\t\\tmix( texture2DCompare( shadowMap, uv + vec2( -dx, 0.0 ), shadowCoord.z ),\\n\\t\\t\\t\\t\\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 0.0 ), shadowCoord.z ),\\n\\t\\t\\t\\t\\t f.x ) +\\n\\t\\t\\t\\tmix( texture2DCompare( shadowMap, uv + vec2( -dx, dy ), shadowCoord.z ),\\n\\t\\t\\t\\t\\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, dy ), shadowCoord.z ),\\n\\t\\t\\t\\t\\t f.x ) +\\n\\t\\t\\t\\tmix( texture2DCompare( shadowMap, uv + vec2( 0.0, -dy ), shadowCoord.z ),\\n\\t\\t\\t\\t\\t texture2DCompare( shadowMap, uv + vec2( 0.0, 2.0 * dy ), shadowCoord.z ),\\n\\t\\t\\t\\t\\t f.y ) +\\n\\t\\t\\t\\tmix( texture2DCompare( shadowMap, uv + vec2( dx, -dy ), shadowCoord.z ),\\n\\t\\t\\t\\t\\t texture2DCompare( shadowMap, uv + vec2( dx, 2.0 * dy ), shadowCoord.z ),\\n\\t\\t\\t\\t\\t f.y ) +\\n\\t\\t\\t\\tmix( mix( texture2DCompare( shadowMap, uv + vec2( -dx, -dy ), shadowCoord.z ),\\n\\t\\t\\t\\t\\t\\t  texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, -dy ), shadowCoord.z ),\\n\\t\\t\\t\\t\\t\\t  f.x ),\\n\\t\\t\\t\\t\\t mix( texture2DCompare( shadowMap, uv + vec2( -dx, 2.0 * dy ), shadowCoord.z ),\\n\\t\\t\\t\\t\\t\\t  texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 2.0 * dy ), shadowCoord.z ),\\n\\t\\t\\t\\t\\t\\t  f.x ),\\n\\t\\t\\t\\t\\t f.y )\\n\\t\\t\\t) * ( 1.0 / 9.0 );\\n\\t\\t#elif defined( SHADOWMAP_TYPE_VSM )\\n\\t\\t\\tshadow = VSMShadow( shadowMap, shadowCoord.xy, shadowCoord.z );\\n\\t\\t#else\\n\\t\\t\\tshadow = texture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z );\\n\\t\\t#endif\\n\\t\\t}\\n\\t\\treturn mix( 1.0, shadow, shadowIntensity );\\n\\t}\\n\\tvec2 cubeToUV( vec3 v, float texelSizeY ) {\\n\\t\\tvec3 absV = abs( v );\\n\\t\\tfloat scaleToCube = 1.0 / max( absV.x, max( absV.y, absV.z ) );\\n\\t\\tabsV *= scaleToCube;\\n\\t\\tv *= scaleToCube * ( 1.0 - 2.0 * texelSizeY );\\n\\t\\tvec2 planar = v.xy;\\n\\t\\tfloat almostATexel = 1.5 * texelSizeY;\\n\\t\\tfloat almostOne = 1.0 - almostATexel;\\n\\t\\tif ( absV.z >= almostOne ) {\\n\\t\\t\\tif ( v.z > 0.0 )\\n\\t\\t\\t\\tplanar.x = 4.0 - v.x;\\n\\t\\t} else if ( absV.x >= almostOne ) {\\n\\t\\t\\tfloat signX = sign( v.x );\\n\\t\\t\\tplanar.x = v.z * signX + 2.0 * signX;\\n\\t\\t} else if ( absV.y >= almostOne ) {\\n\\t\\t\\tfloat signY = sign( v.y );\\n\\t\\t\\tplanar.x = v.x + 2.0 * signY + 2.0;\\n\\t\\t\\tplanar.y = v.z * signY - 2.0;\\n\\t\\t}\\n\\t\\treturn vec2( 0.125, 0.25 ) * planar + vec2( 0.375, 0.75 );\\n\\t}\\n\\tfloat getPointShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowIntensity, float shadowBias, float shadowRadius, vec4 shadowCoord, float shadowCameraNear, float shadowCameraFar ) {\\n\\t\\tfloat shadow = 1.0;\\n\\t\\tvec3 lightToPosition = shadowCoord.xyz;\\n\\t\\t\\n\\t\\tfloat lightToPositionLength = length( lightToPosition );\\n\\t\\tif ( lightToPositionLength - shadowCameraFar <= 0.0 && lightToPositionLength - shadowCameraNear >= 0.0 ) {\\n\\t\\t\\tfloat dp = ( lightToPositionLength - shadowCameraNear ) / ( shadowCameraFar - shadowCameraNear );\\t\\t\\tdp += shadowBias;\\n\\t\\t\\tvec3 bd3D = normalize( lightToPosition );\\n\\t\\t\\tvec2 texelSize = vec2( 1.0 ) / ( shadowMapSize * vec2( 4.0, 2.0 ) );\\n\\t\\t\\t#if defined( SHADOWMAP_TYPE_PCF ) || defined( SHADOWMAP_TYPE_PCF_SOFT ) || defined( SHADOWMAP_TYPE_VSM )\\n\\t\\t\\t\\tvec2 offset = vec2( - 1, 1 ) * shadowRadius * texelSize.y;\\n\\t\\t\\t\\tshadow = (\\n\\t\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyy, texelSize.y ), dp ) +\\n\\t\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyy, texelSize.y ), dp ) +\\n\\t\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyx, texelSize.y ), dp ) +\\n\\t\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyx, texelSize.y ), dp ) +\\n\\t\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp ) +\\n\\t\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxy, texelSize.y ), dp ) +\\n\\t\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxy, texelSize.y ), dp ) +\\n\\t\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxx, texelSize.y ), dp ) +\\n\\t\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxx, texelSize.y ), dp )\\n\\t\\t\\t\\t) * ( 1.0 / 9.0 );\\n\\t\\t\\t#else\\n\\t\\t\\t\\tshadow = texture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp );\\n\\t\\t\\t#endif\\n\\t\\t}\\n\\t\\treturn mix( 1.0, shadow, shadowIntensity );\\n\\t}\\n#endif\";var Va=\"#if NUM_SPOT_LIGHT_COORDS > 0\\n\\tuniform mat4 spotLightMatrix[ NUM_SPOT_LIGHT_COORDS ];\\n\\tvarying vec4 vSpotLightCoord[ NUM_SPOT_LIGHT_COORDS ];\\n#endif\\n#ifdef USE_SHADOWMAP\\n\\t#if NUM_DIR_LIGHT_SHADOWS > 0\\n\\t\\tuniform mat4 directionalShadowMatrix[ NUM_DIR_LIGHT_SHADOWS ];\\n\\t\\tvarying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ];\\n\\t\\tstruct DirectionalLightShadow {\\n\\t\\t\\tfloat shadowIntensity;\\n\\t\\t\\tfloat shadowBias;\\n\\t\\t\\tfloat shadowNormalBias;\\n\\t\\t\\tfloat shadowRadius;\\n\\t\\t\\tvec2 shadowMapSize;\\n\\t\\t};\\n\\t\\tuniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ];\\n\\t#endif\\n\\t#if NUM_SPOT_LIGHT_SHADOWS > 0\\n\\t\\tstruct SpotLightShadow {\\n\\t\\t\\tfloat shadowIntensity;\\n\\t\\t\\tfloat shadowBias;\\n\\t\\t\\tfloat shadowNormalBias;\\n\\t\\t\\tfloat shadowRadius;\\n\\t\\t\\tvec2 shadowMapSize;\\n\\t\\t};\\n\\t\\tuniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ];\\n\\t#endif\\n\\t#if NUM_POINT_LIGHT_SHADOWS > 0\\n\\t\\tuniform mat4 pointShadowMatrix[ NUM_POINT_LIGHT_SHADOWS ];\\n\\t\\tvarying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ];\\n\\t\\tstruct PointLightShadow {\\n\\t\\t\\tfloat shadowIntensity;\\n\\t\\t\\tfloat shadowBias;\\n\\t\\t\\tfloat shadowNormalBias;\\n\\t\\t\\tfloat shadowRadius;\\n\\t\\t\\tvec2 shadowMapSize;\\n\\t\\t\\tfloat shadowCameraNear;\\n\\t\\t\\tfloat shadowCameraFar;\\n\\t\\t};\\n\\t\\tuniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ];\\n\\t#endif\\n#endif\";var Fa=\"#if ( defined( USE_SHADOWMAP ) && ( NUM_DIR_LIGHT_SHADOWS > 0 || NUM_POINT_LIGHT_SHADOWS > 0 ) ) || ( NUM_SPOT_LIGHT_COORDS > 0 )\\n\\tvec3 shadowWorldNormal = inverseTransformDirection( transformedNormal, viewMatrix );\\n\\tvec4 shadowWorldPosition;\\n#endif\\n#if defined( USE_SHADOWMAP )\\n\\t#if NUM_DIR_LIGHT_SHADOWS > 0\\n\\t\\t#pragma unroll_loop_start\\n\\t\\tfor ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {\\n\\t\\t\\tshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * directionalLightShadows[ i ].shadowNormalBias, 0 );\\n\\t\\t\\tvDirectionalShadowCoord[ i ] = directionalShadowMatrix[ i ] * shadowWorldPosition;\\n\\t\\t}\\n\\t\\t#pragma unroll_loop_end\\n\\t#endif\\n\\t#if NUM_POINT_LIGHT_SHADOWS > 0\\n\\t\\t#pragma unroll_loop_start\\n\\t\\tfor ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {\\n\\t\\t\\tshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * pointLightShadows[ i ].shadowNormalBias, 0 );\\n\\t\\t\\tvPointShadowCoord[ i ] = pointShadowMatrix[ i ] * shadowWorldPosition;\\n\\t\\t}\\n\\t\\t#pragma unroll_loop_end\\n\\t#endif\\n#endif\\n#if NUM_SPOT_LIGHT_COORDS > 0\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_SPOT_LIGHT_COORDS; i ++ ) {\\n\\t\\tshadowWorldPosition = worldPosition;\\n\\t\\t#if ( defined( USE_SHADOWMAP ) && UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\\n\\t\\t\\tshadowWorldPosition.xyz += shadowWorldNormal * spotLightShadows[ i ].shadowNormalBias;\\n\\t\\t#endif\\n\\t\\tvSpotLightCoord[ i ] = spotLightMatrix[ i ] * shadowWorldPosition;\\n\\t}\\n\\t#pragma unroll_loop_end\\n#endif\";var za=\"float getShadowMask() {\\n\\tfloat shadow = 1.0;\\n\\t#ifdef USE_SHADOWMAP\\n\\t#if NUM_DIR_LIGHT_SHADOWS > 0\\n\\tDirectionalLightShadow directionalLight;\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {\\n\\t\\tdirectionalLight = directionalLightShadows[ i ];\\n\\t\\tshadow *= receiveShadow ? getShadow( directionalShadowMap[ i ], directionalLight.shadowMapSize, directionalLight.shadowIntensity, directionalLight.shadowBias, directionalLight.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\\n\\t}\\n\\t#pragma unroll_loop_end\\n\\t#endif\\n\\t#if NUM_SPOT_LIGHT_SHADOWS > 0\\n\\tSpotLightShadow spotLight;\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_SPOT_LIGHT_SHADOWS; i ++ ) {\\n\\t\\tspotLight = spotLightShadows[ i ];\\n\\t\\tshadow *= receiveShadow ? getShadow( spotShadowMap[ i ], spotLight.shadowMapSize, spotLight.shadowIntensity, spotLight.shadowBias, spotLight.shadowRadius, vSpotLightCoord[ i ] ) : 1.0;\\n\\t}\\n\\t#pragma unroll_loop_end\\n\\t#endif\\n\\t#if NUM_POINT_LIGHT_SHADOWS > 0\\n\\tPointLightShadow pointLight;\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {\\n\\t\\tpointLight = pointLightShadows[ i ];\\n\\t\\tshadow *= receiveShadow ? getPointShadow( pointShadowMap[ i ], pointLight.shadowMapSize, pointLight.shadowIntensity, pointLight.shadowBias, pointLight.shadowRadius, vPointShadowCoord[ i ], pointLight.shadowCameraNear, pointLight.shadowCameraFar ) : 1.0;\\n\\t}\\n\\t#pragma unroll_loop_end\\n\\t#endif\\n\\t#endif\\n\\treturn shadow;\\n}\";var Ga=\"#ifdef USE_SKINNING\\n\\tmat4 boneMatX = getBoneMatrix( skinIndex.x );\\n\\tmat4 boneMatY = getBoneMatrix( skinIndex.y );\\n\\tmat4 boneMatZ = getBoneMatrix( skinIndex.z );\\n\\tmat4 boneMatW = getBoneMatrix( skinIndex.w );\\n#endif\";var ka=\"#ifdef USE_SKINNING\\n\\tuniform mat4 bindMatrix;\\n\\tuniform mat4 bindMatrixInverse;\\n\\tuniform highp sampler2D boneTexture;\\n\\tmat4 getBoneMatrix( const in float i ) {\\n\\t\\tint size = textureSize( boneTexture, 0 ).x;\\n\\t\\tint j = int( i ) * 4;\\n\\t\\tint x = j % size;\\n\\t\\tint y = j / size;\\n\\t\\tvec4 v1 = texelFetch( boneTexture, ivec2( x, y ), 0 );\\n\\t\\tvec4 v2 = texelFetch( boneTexture, ivec2( x + 1, y ), 0 );\\n\\t\\tvec4 v3 = texelFetch( boneTexture, ivec2( x + 2, y ), 0 );\\n\\t\\tvec4 v4 = texelFetch( boneTexture, ivec2( x + 3, y ), 0 );\\n\\t\\treturn mat4( v1, v2, v3, v4 );\\n\\t}\\n#endif\";var Ha=\"#ifdef USE_SKINNING\\n\\tvec4 skinVertex = bindMatrix * vec4( transformed, 1.0 );\\n\\tvec4 skinned = vec4( 0.0 );\\n\\tskinned += boneMatX * skinVertex * skinWeight.x;\\n\\tskinned += boneMatY * skinVertex * skinWeight.y;\\n\\tskinned += boneMatZ * skinVertex * skinWeight.z;\\n\\tskinned += boneMatW * skinVertex * skinWeight.w;\\n\\ttransformed = ( bindMatrixInverse * skinned ).xyz;\\n#endif\";var Wa=\"#ifdef USE_SKINNING\\n\\tmat4 skinMatrix = mat4( 0.0 );\\n\\tskinMatrix += skinWeight.x * boneMatX;\\n\\tskinMatrix += skinWeight.y * boneMatY;\\n\\tskinMatrix += skinWeight.z * boneMatZ;\\n\\tskinMatrix += skinWeight.w * boneMatW;\\n\\tskinMatrix = bindMatrixInverse * skinMatrix * bindMatrix;\\n\\tobjectNormal = vec4( skinMatrix * vec4( objectNormal, 0.0 ) ).xyz;\\n\\t#ifdef USE_TANGENT\\n\\t\\tobjectTangent = vec4( skinMatrix * vec4( objectTangent, 0.0 ) ).xyz;\\n\\t#endif\\n#endif\";var Xa=\"float specularStrength;\\n#ifdef USE_SPECULARMAP\\n\\tvec4 texelSpecular = texture2D( specularMap, vSpecularMapUv );\\n\\tspecularStrength = texelSpecular.r;\\n#else\\n\\tspecularStrength = 1.0;\\n#endif\";var ja=\"#ifdef USE_SPECULARMAP\\n\\tuniform sampler2D specularMap;\\n#endif\";var qa=\"#if defined( TONE_MAPPING )\\n\\tgl_FragColor.rgb = toneMapping( gl_FragColor.rgb );\\n#endif\";var Ya=\"#ifndef saturate\\n#define saturate( a ) clamp( a, 0.0, 1.0 )\\n#endif\\nuniform float toneMappingExposure;\\nvec3 LinearToneMapping( vec3 color ) {\\n\\treturn saturate( toneMappingExposure * color );\\n}\\nvec3 ReinhardToneMapping( vec3 color ) {\\n\\tcolor *= toneMappingExposure;\\n\\treturn saturate( color / ( vec3( 1.0 ) + color ) );\\n}\\nvec3 OptimizedCineonToneMapping( vec3 color ) {\\n\\tcolor *= toneMappingExposure;\\n\\tcolor = max( vec3( 0.0 ), color - 0.004 );\\n\\treturn pow( ( color * ( 6.2 * color + 0.5 ) ) / ( color * ( 6.2 * color + 1.7 ) + 0.06 ), vec3( 2.2 ) );\\n}\\nvec3 RRTAndODTFit( vec3 v ) {\\n\\tvec3 a = v * ( v + 0.0245786 ) - 0.000090537;\\n\\tvec3 b = v * ( 0.983729 * v + 0.4329510 ) + 0.238081;\\n\\treturn a / b;\\n}\\nvec3 ACESFilmicToneMapping( vec3 color ) {\\n\\tconst mat3 ACESInputMat = mat3(\\n\\t\\tvec3( 0.59719, 0.07600, 0.02840 ),\\t\\tvec3( 0.35458, 0.90834, 0.13383 ),\\n\\t\\tvec3( 0.04823, 0.01566, 0.83777 )\\n\\t);\\n\\tconst mat3 ACESOutputMat = mat3(\\n\\t\\tvec3(  1.60475, -0.10208, -0.00327 ),\\t\\tvec3( -0.53108,  1.10813, -0.07276 ),\\n\\t\\tvec3( -0.07367, -0.00605,  1.07602 )\\n\\t);\\n\\tcolor *= toneMappingExposure / 0.6;\\n\\tcolor = ACESInputMat * color;\\n\\tcolor = RRTAndODTFit( color );\\n\\tcolor = ACESOutputMat * color;\\n\\treturn saturate( color );\\n}\\nconst mat3 LINEAR_REC2020_TO_LINEAR_SRGB = mat3(\\n\\tvec3( 1.6605, - 0.1246, - 0.0182 ),\\n\\tvec3( - 0.5876, 1.1329, - 0.1006 ),\\n\\tvec3( - 0.0728, - 0.0083, 1.1187 )\\n);\\nconst mat3 LINEAR_SRGB_TO_LINEAR_REC2020 = mat3(\\n\\tvec3( 0.6274, 0.0691, 0.0164 ),\\n\\tvec3( 0.3293, 0.9195, 0.0880 ),\\n\\tvec3( 0.0433, 0.0113, 0.8956 )\\n);\\nvec3 agxDefaultContrastApprox( vec3 x ) {\\n\\tvec3 x2 = x * x;\\n\\tvec3 x4 = x2 * x2;\\n\\treturn + 15.5 * x4 * x2\\n\\t\\t- 40.14 * x4 * x\\n\\t\\t+ 31.96 * x4\\n\\t\\t- 6.868 * x2 * x\\n\\t\\t+ 0.4298 * x2\\n\\t\\t+ 0.1191 * x\\n\\t\\t- 0.00232;\\n}\\nvec3 AgXToneMapping( vec3 color ) {\\n\\tconst mat3 AgXInsetMatrix = mat3(\\n\\t\\tvec3( 0.856627153315983, 0.137318972929847, 0.11189821299995 ),\\n\\t\\tvec3( 0.0951212405381588, 0.761241990602591, 0.0767994186031903 ),\\n\\t\\tvec3( 0.0482516061458583, 0.101439036467562, 0.811302368396859 )\\n\\t);\\n\\tconst mat3 AgXOutsetMatrix = mat3(\\n\\t\\tvec3( 1.1271005818144368, - 0.1413297634984383, - 0.14132976349843826 ),\\n\\t\\tvec3( - 0.11060664309660323, 1.157823702216272, - 0.11060664309660294 ),\\n\\t\\tvec3( - 0.016493938717834573, - 0.016493938717834257, 1.2519364065950405 )\\n\\t);\\n\\tconst float AgxMinEv = - 12.47393;\\tconst float AgxMaxEv = 4.026069;\\n\\tcolor *= toneMappingExposure;\\n\\tcolor = LINEAR_SRGB_TO_LINEAR_REC2020 * color;\\n\\tcolor = AgXInsetMatrix * color;\\n\\tcolor = max( color, 1e-10 );\\tcolor = log2( color );\\n\\tcolor = ( color - AgxMinEv ) / ( AgxMaxEv - AgxMinEv );\\n\\tcolor = clamp( color, 0.0, 1.0 );\\n\\tcolor = agxDefaultContrastApprox( color );\\n\\tcolor = AgXOutsetMatrix * color;\\n\\tcolor = pow( max( vec3( 0.0 ), color ), vec3( 2.2 ) );\\n\\tcolor = LINEAR_REC2020_TO_LINEAR_SRGB * color;\\n\\tcolor = clamp( color, 0.0, 1.0 );\\n\\treturn color;\\n}\\nvec3 NeutralToneMapping( vec3 color ) {\\n\\tconst float StartCompression = 0.8 - 0.04;\\n\\tconst float Desaturation = 0.15;\\n\\tcolor *= toneMappingExposure;\\n\\tfloat x = min( color.r, min( color.g, color.b ) );\\n\\tfloat offset = x < 0.08 ? x - 6.25 * x * x : 0.04;\\n\\tcolor -= offset;\\n\\tfloat peak = max( color.r, max( color.g, color.b ) );\\n\\tif ( peak < StartCompression ) return color;\\n\\tfloat d = 1. - StartCompression;\\n\\tfloat newPeak = 1. - d * d / ( peak + d - StartCompression );\\n\\tcolor *= newPeak / peak;\\n\\tfloat g = 1. - 1. / ( Desaturation * ( peak - newPeak ) + 1. );\\n\\treturn mix( color, vec3( newPeak ), g );\\n}\\nvec3 CustomToneMapping( vec3 color ) { return color; }\";var Ka=\"#ifdef USE_TRANSMISSION\\n\\tmaterial.transmission = transmission;\\n\\tmaterial.transmissionAlpha = 1.0;\\n\\tmaterial.thickness = thickness;\\n\\tmaterial.attenuationDistance = attenuationDistance;\\n\\tmaterial.attenuationColor = attenuationColor;\\n\\t#ifdef USE_TRANSMISSIONMAP\\n\\t\\tmaterial.transmission *= texture2D( transmissionMap, vTransmissionMapUv ).r;\\n\\t#endif\\n\\t#ifdef USE_THICKNESSMAP\\n\\t\\tmaterial.thickness *= texture2D( thicknessMap, vThicknessMapUv ).g;\\n\\t#endif\\n\\tvec3 pos = vWorldPosition;\\n\\tvec3 v = normalize( cameraPosition - pos );\\n\\tvec3 n = inverseTransformDirection( normal, viewMatrix );\\n\\tvec4 transmitted = getIBLVolumeRefraction(\\n\\t\\tn, v, material.roughness, material.diffuseColor, material.specularColor, material.specularF90,\\n\\t\\tpos, modelMatrix, viewMatrix, projectionMatrix, material.dispersion, material.ior, material.thickness,\\n\\t\\tmaterial.attenuationColor, material.attenuationDistance );\\n\\tmaterial.transmissionAlpha = mix( material.transmissionAlpha, transmitted.a, material.transmission );\\n\\ttotalDiffuse = mix( totalDiffuse, transmitted.rgb, material.transmission );\\n#endif\";var Za=\"#ifdef USE_TRANSMISSION\\n\\tuniform float transmission;\\n\\tuniform float thickness;\\n\\tuniform float attenuationDistance;\\n\\tuniform vec3 attenuationColor;\\n\\t#ifdef USE_TRANSMISSIONMAP\\n\\t\\tuniform sampler2D transmissionMap;\\n\\t#endif\\n\\t#ifdef USE_THICKNESSMAP\\n\\t\\tuniform sampler2D thicknessMap;\\n\\t#endif\\n\\tuniform vec2 transmissionSamplerSize;\\n\\tuniform sampler2D transmissionSamplerMap;\\n\\tuniform mat4 modelMatrix;\\n\\tuniform mat4 projectionMatrix;\\n\\tvarying vec3 vWorldPosition;\\n\\tfloat w0( float a ) {\\n\\t\\treturn ( 1.0 / 6.0 ) * ( a * ( a * ( - a + 3.0 ) - 3.0 ) + 1.0 );\\n\\t}\\n\\tfloat w1( float a ) {\\n\\t\\treturn ( 1.0 / 6.0 ) * ( a *  a * ( 3.0 * a - 6.0 ) + 4.0 );\\n\\t}\\n\\tfloat w2( float a ){\\n\\t\\treturn ( 1.0 / 6.0 ) * ( a * ( a * ( - 3.0 * a + 3.0 ) + 3.0 ) + 1.0 );\\n\\t}\\n\\tfloat w3( float a ) {\\n\\t\\treturn ( 1.0 / 6.0 ) * ( a * a * a );\\n\\t}\\n\\tfloat g0( float a ) {\\n\\t\\treturn w0( a ) + w1( a );\\n\\t}\\n\\tfloat g1( float a ) {\\n\\t\\treturn w2( a ) + w3( a );\\n\\t}\\n\\tfloat h0( float a ) {\\n\\t\\treturn - 1.0 + w1( a ) / ( w0( a ) + w1( a ) );\\n\\t}\\n\\tfloat h1( float a ) {\\n\\t\\treturn 1.0 + w3( a ) / ( w2( a ) + w3( a ) );\\n\\t}\\n\\tvec4 bicubic( sampler2D tex, vec2 uv, vec4 texelSize, float lod ) {\\n\\t\\tuv = uv * texelSize.zw + 0.5;\\n\\t\\tvec2 iuv = floor( uv );\\n\\t\\tvec2 fuv = fract( uv );\\n\\t\\tfloat g0x = g0( fuv.x );\\n\\t\\tfloat g1x = g1( fuv.x );\\n\\t\\tfloat h0x = h0( fuv.x );\\n\\t\\tfloat h1x = h1( fuv.x );\\n\\t\\tfloat h0y = h0( fuv.y );\\n\\t\\tfloat h1y = h1( fuv.y );\\n\\t\\tvec2 p0 = ( vec2( iuv.x + h0x, iuv.y + h0y ) - 0.5 ) * texelSize.xy;\\n\\t\\tvec2 p1 = ( vec2( iuv.x + h1x, iuv.y + h0y ) - 0.5 ) * texelSize.xy;\\n\\t\\tvec2 p2 = ( vec2( iuv.x + h0x, iuv.y + h1y ) - 0.5 ) * texelSize.xy;\\n\\t\\tvec2 p3 = ( vec2( iuv.x + h1x, iuv.y + h1y ) - 0.5 ) * texelSize.xy;\\n\\t\\treturn g0( fuv.y ) * ( g0x * textureLod( tex, p0, lod ) + g1x * textureLod( tex, p1, lod ) ) +\\n\\t\\t\\tg1( fuv.y ) * ( g0x * textureLod( tex, p2, lod ) + g1x * textureLod( tex, p3, lod ) );\\n\\t}\\n\\tvec4 textureBicubic( sampler2D sampler, vec2 uv, float lod ) {\\n\\t\\tvec2 fLodSize = vec2( textureSize( sampler, int( lod ) ) );\\n\\t\\tvec2 cLodSize = vec2( textureSize( sampler, int( lod + 1.0 ) ) );\\n\\t\\tvec2 fLodSizeInv = 1.0 / fLodSize;\\n\\t\\tvec2 cLodSizeInv = 1.0 / cLodSize;\\n\\t\\tvec4 fSample = bicubic( sampler, uv, vec4( fLodSizeInv, fLodSize ), floor( lod ) );\\n\\t\\tvec4 cSample = bicubic( sampler, uv, vec4( cLodSizeInv, cLodSize ), ceil( lod ) );\\n\\t\\treturn mix( fSample, cSample, fract( lod ) );\\n\\t}\\n\\tvec3 getVolumeTransmissionRay( const in vec3 n, const in vec3 v, const in float thickness, const in float ior, const in mat4 modelMatrix ) {\\n\\t\\tvec3 refractionVector = refract( - v, normalize( n ), 1.0 / ior );\\n\\t\\tvec3 modelScale;\\n\\t\\tmodelScale.x = length( vec3( modelMatrix[ 0 ].xyz ) );\\n\\t\\tmodelScale.y = length( vec3( modelMatrix[ 1 ].xyz ) );\\n\\t\\tmodelScale.z = length( vec3( modelMatrix[ 2 ].xyz ) );\\n\\t\\treturn normalize( refractionVector ) * thickness * modelScale;\\n\\t}\\n\\tfloat applyIorToRoughness( const in float roughness, const in float ior ) {\\n\\t\\treturn roughness * clamp( ior * 2.0 - 2.0, 0.0, 1.0 );\\n\\t}\\n\\tvec4 getTransmissionSample( const in vec2 fragCoord, const in float roughness, const in float ior ) {\\n\\t\\tfloat lod = log2( transmissionSamplerSize.x ) * applyIorToRoughness( roughness, ior );\\n\\t\\treturn textureBicubic( transmissionSamplerMap, fragCoord.xy, lod );\\n\\t}\\n\\tvec3 volumeAttenuation( const in float transmissionDistance, const in vec3 attenuationColor, const in float attenuationDistance ) {\\n\\t\\tif ( isinf( attenuationDistance ) ) {\\n\\t\\t\\treturn vec3( 1.0 );\\n\\t\\t} else {\\n\\t\\t\\tvec3 attenuationCoefficient = -log( attenuationColor ) / attenuationDistance;\\n\\t\\t\\tvec3 transmittance = exp( - attenuationCoefficient * transmissionDistance );\\t\\t\\treturn transmittance;\\n\\t\\t}\\n\\t}\\n\\tvec4 getIBLVolumeRefraction( const in vec3 n, const in vec3 v, const in float roughness, const in vec3 diffuseColor,\\n\\t\\tconst in vec3 specularColor, const in float specularF90, const in vec3 position, const in mat4 modelMatrix,\\n\\t\\tconst in mat4 viewMatrix, const in mat4 projMatrix, const in float dispersion, const in float ior, const in float thickness,\\n\\t\\tconst in vec3 attenuationColor, const in float attenuationDistance ) {\\n\\t\\tvec4 transmittedLight;\\n\\t\\tvec3 transmittance;\\n\\t\\t#ifdef USE_DISPERSION\\n\\t\\t\\tfloat halfSpread = ( ior - 1.0 ) * 0.025 * dispersion;\\n\\t\\t\\tvec3 iors = vec3( ior - halfSpread, ior, ior + halfSpread );\\n\\t\\t\\tfor ( int i = 0; i < 3; i ++ ) {\\n\\t\\t\\t\\tvec3 transmissionRay = getVolumeTransmissionRay( n, v, thickness, iors[ i ], modelMatrix );\\n\\t\\t\\t\\tvec3 refractedRayExit = position + transmissionRay;\\n\\t\\t\\n\\t\\t\\t\\tvec4 ndcPos = projMatrix * viewMatrix * vec4( refractedRayExit, 1.0 );\\n\\t\\t\\t\\tvec2 refractionCoords = ndcPos.xy / ndcPos.w;\\n\\t\\t\\t\\trefractionCoords += 1.0;\\n\\t\\t\\t\\trefractionCoords /= 2.0;\\n\\t\\t\\n\\t\\t\\t\\tvec4 transmissionSample = getTransmissionSample( refractionCoords, roughness, iors[ i ] );\\n\\t\\t\\t\\ttransmittedLight[ i ] = transmissionSample[ i ];\\n\\t\\t\\t\\ttransmittedLight.a += transmissionSample.a;\\n\\t\\t\\t\\ttransmittance[ i ] = diffuseColor[ i ] * volumeAttenuation( length( transmissionRay ), attenuationColor, attenuationDistance )[ i ];\\n\\t\\t\\t}\\n\\t\\t\\ttransmittedLight.a /= 3.0;\\n\\t\\t\\n\\t\\t#else\\n\\t\\t\\n\\t\\t\\tvec3 transmissionRay = getVolumeTransmissionRay( n, v, thickness, ior, modelMatrix );\\n\\t\\t\\tvec3 refractedRayExit = position + transmissionRay;\\n\\t\\t\\tvec4 ndcPos = projMatrix * viewMatrix * vec4( refractedRayExit, 1.0 );\\n\\t\\t\\tvec2 refractionCoords = ndcPos.xy / ndcPos.w;\\n\\t\\t\\trefractionCoords += 1.0;\\n\\t\\t\\trefractionCoords /= 2.0;\\n\\t\\t\\ttransmittedLight = getTransmissionSample( refractionCoords, roughness, ior );\\n\\t\\t\\ttransmittance = diffuseColor * volumeAttenuation( length( transmissionRay ), attenuationColor, attenuationDistance );\\n\\t\\t\\n\\t\\t#endif\\n\\t\\tvec3 attenuatedColor = transmittance * transmittedLight.rgb;\\n\\t\\tvec3 F = EnvironmentBRDF( n, v, specularColor, specularF90, roughness );\\n\\t\\tfloat transmittanceFactor = ( transmittance.r + transmittance.g + transmittance.b ) / 3.0;\\n\\t\\treturn vec4( ( 1.0 - F ) * attenuatedColor, 1.0 - ( 1.0 - transmittedLight.a ) * transmittanceFactor );\\n\\t}\\n#endif\";var Ja=\"#if defined( USE_UV ) || defined( USE_ANISOTROPY )\\n\\tvarying vec2 vUv;\\n#endif\\n#ifdef USE_MAP\\n\\tvarying vec2 vMapUv;\\n#endif\\n#ifdef USE_ALPHAMAP\\n\\tvarying vec2 vAlphaMapUv;\\n#endif\\n#ifdef USE_LIGHTMAP\\n\\tvarying vec2 vLightMapUv;\\n#endif\\n#ifdef USE_AOMAP\\n\\tvarying vec2 vAoMapUv;\\n#endif\\n#ifdef USE_BUMPMAP\\n\\tvarying vec2 vBumpMapUv;\\n#endif\\n#ifdef USE_NORMALMAP\\n\\tvarying vec2 vNormalMapUv;\\n#endif\\n#ifdef USE_EMISSIVEMAP\\n\\tvarying vec2 vEmissiveMapUv;\\n#endif\\n#ifdef USE_METALNESSMAP\\n\\tvarying vec2 vMetalnessMapUv;\\n#endif\\n#ifdef USE_ROUGHNESSMAP\\n\\tvarying vec2 vRoughnessMapUv;\\n#endif\\n#ifdef USE_ANISOTROPYMAP\\n\\tvarying vec2 vAnisotropyMapUv;\\n#endif\\n#ifdef USE_CLEARCOATMAP\\n\\tvarying vec2 vClearcoatMapUv;\\n#endif\\n#ifdef USE_CLEARCOAT_NORMALMAP\\n\\tvarying vec2 vClearcoatNormalMapUv;\\n#endif\\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\\n\\tvarying vec2 vClearcoatRoughnessMapUv;\\n#endif\\n#ifdef USE_IRIDESCENCEMAP\\n\\tvarying vec2 vIridescenceMapUv;\\n#endif\\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\\n\\tvarying vec2 vIridescenceThicknessMapUv;\\n#endif\\n#ifdef USE_SHEEN_COLORMAP\\n\\tvarying vec2 vSheenColorMapUv;\\n#endif\\n#ifdef USE_SHEEN_ROUGHNESSMAP\\n\\tvarying vec2 vSheenRoughnessMapUv;\\n#endif\\n#ifdef USE_SPECULARMAP\\n\\tvarying vec2 vSpecularMapUv;\\n#endif\\n#ifdef USE_SPECULAR_COLORMAP\\n\\tvarying vec2 vSpecularColorMapUv;\\n#endif\\n#ifdef USE_SPECULAR_INTENSITYMAP\\n\\tvarying vec2 vSpecularIntensityMapUv;\\n#endif\\n#ifdef USE_TRANSMISSIONMAP\\n\\tuniform mat3 transmissionMapTransform;\\n\\tvarying vec2 vTransmissionMapUv;\\n#endif\\n#ifdef USE_THICKNESSMAP\\n\\tuniform mat3 thicknessMapTransform;\\n\\tvarying vec2 vThicknessMapUv;\\n#endif\";var Qa=\"#if defined( USE_UV ) || defined( USE_ANISOTROPY )\\n\\tvarying vec2 vUv;\\n#endif\\n#ifdef USE_MAP\\n\\tuniform mat3 mapTransform;\\n\\tvarying vec2 vMapUv;\\n#endif\\n#ifdef USE_ALPHAMAP\\n\\tuniform mat3 alphaMapTransform;\\n\\tvarying vec2 vAlphaMapUv;\\n#endif\\n#ifdef USE_LIGHTMAP\\n\\tuniform mat3 lightMapTransform;\\n\\tvarying vec2 vLightMapUv;\\n#endif\\n#ifdef USE_AOMAP\\n\\tuniform mat3 aoMapTransform;\\n\\tvarying vec2 vAoMapUv;\\n#endif\\n#ifdef USE_BUMPMAP\\n\\tuniform mat3 bumpMapTransform;\\n\\tvarying vec2 vBumpMapUv;\\n#endif\\n#ifdef USE_NORMALMAP\\n\\tuniform mat3 normalMapTransform;\\n\\tvarying vec2 vNormalMapUv;\\n#endif\\n#ifdef USE_DISPLACEMENTMAP\\n\\tuniform mat3 displacementMapTransform;\\n\\tvarying vec2 vDisplacementMapUv;\\n#endif\\n#ifdef USE_EMISSIVEMAP\\n\\tuniform mat3 emissiveMapTransform;\\n\\tvarying vec2 vEmissiveMapUv;\\n#endif\\n#ifdef USE_METALNESSMAP\\n\\tuniform mat3 metalnessMapTransform;\\n\\tvarying vec2 vMetalnessMapUv;\\n#endif\\n#ifdef USE_ROUGHNESSMAP\\n\\tuniform mat3 roughnessMapTransform;\\n\\tvarying vec2 vRoughnessMapUv;\\n#endif\\n#ifdef USE_ANISOTROPYMAP\\n\\tuniform mat3 anisotropyMapTransform;\\n\\tvarying vec2 vAnisotropyMapUv;\\n#endif\\n#ifdef USE_CLEARCOATMAP\\n\\tuniform mat3 clearcoatMapTransform;\\n\\tvarying vec2 vClearcoatMapUv;\\n#endif\\n#ifdef USE_CLEARCOAT_NORMALMAP\\n\\tuniform mat3 clearcoatNormalMapTransform;\\n\\tvarying vec2 vClearcoatNormalMapUv;\\n#endif\\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\\n\\tuniform mat3 clearcoatRoughnessMapTransform;\\n\\tvarying vec2 vClearcoatRoughnessMapUv;\\n#endif\\n#ifdef USE_SHEEN_COLORMAP\\n\\tuniform mat3 sheenColorMapTransform;\\n\\tvarying vec2 vSheenColorMapUv;\\n#endif\\n#ifdef USE_SHEEN_ROUGHNESSMAP\\n\\tuniform mat3 sheenRoughnessMapTransform;\\n\\tvarying vec2 vSheenRoughnessMapUv;\\n#endif\\n#ifdef USE_IRIDESCENCEMAP\\n\\tuniform mat3 iridescenceMapTransform;\\n\\tvarying vec2 vIridescenceMapUv;\\n#endif\\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\\n\\tuniform mat3 iridescenceThicknessMapTransform;\\n\\tvarying vec2 vIridescenceThicknessMapUv;\\n#endif\\n#ifdef USE_SPECULARMAP\\n\\tuniform mat3 specularMapTransform;\\n\\tvarying vec2 vSpecularMapUv;\\n#endif\\n#ifdef USE_SPECULAR_COLORMAP\\n\\tuniform mat3 specularColorMapTransform;\\n\\tvarying vec2 vSpecularColorMapUv;\\n#endif\\n#ifdef USE_SPECULAR_INTENSITYMAP\\n\\tuniform mat3 specularIntensityMapTransform;\\n\\tvarying vec2 vSpecularIntensityMapUv;\\n#endif\\n#ifdef USE_TRANSMISSIONMAP\\n\\tuniform mat3 transmissionMapTransform;\\n\\tvarying vec2 vTransmissionMapUv;\\n#endif\\n#ifdef USE_THICKNESSMAP\\n\\tuniform mat3 thicknessMapTransform;\\n\\tvarying vec2 vThicknessMapUv;\\n#endif\";var $a=\"#if defined( USE_UV ) || defined( USE_ANISOTROPY )\\n\\tvUv = vec3( uv, 1 ).xy;\\n#endif\\n#ifdef USE_MAP\\n\\tvMapUv = ( mapTransform * vec3( MAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_ALPHAMAP\\n\\tvAlphaMapUv = ( alphaMapTransform * vec3( ALPHAMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_LIGHTMAP\\n\\tvLightMapUv = ( lightMapTransform * vec3( LIGHTMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_AOMAP\\n\\tvAoMapUv = ( aoMapTransform * vec3( AOMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_BUMPMAP\\n\\tvBumpMapUv = ( bumpMapTransform * vec3( BUMPMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_NORMALMAP\\n\\tvNormalMapUv = ( normalMapTransform * vec3( NORMALMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_DISPLACEMENTMAP\\n\\tvDisplacementMapUv = ( displacementMapTransform * vec3( DISPLACEMENTMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_EMISSIVEMAP\\n\\tvEmissiveMapUv = ( emissiveMapTransform * vec3( EMISSIVEMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_METALNESSMAP\\n\\tvMetalnessMapUv = ( metalnessMapTransform * vec3( METALNESSMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_ROUGHNESSMAP\\n\\tvRoughnessMapUv = ( roughnessMapTransform * vec3( ROUGHNESSMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_ANISOTROPYMAP\\n\\tvAnisotropyMapUv = ( anisotropyMapTransform * vec3( ANISOTROPYMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_CLEARCOATMAP\\n\\tvClearcoatMapUv = ( clearcoatMapTransform * vec3( CLEARCOATMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_CLEARCOAT_NORMALMAP\\n\\tvClearcoatNormalMapUv = ( clearcoatNormalMapTransform * vec3( CLEARCOAT_NORMALMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\\n\\tvClearcoatRoughnessMapUv = ( clearcoatRoughnessMapTransform * vec3( CLEARCOAT_ROUGHNESSMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_IRIDESCENCEMAP\\n\\tvIridescenceMapUv = ( iridescenceMapTransform * vec3( IRIDESCENCEMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\\n\\tvIridescenceThicknessMapUv = ( iridescenceThicknessMapTransform * vec3( IRIDESCENCE_THICKNESSMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_SHEEN_COLORMAP\\n\\tvSheenColorMapUv = ( sheenColorMapTransform * vec3( SHEEN_COLORMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_SHEEN_ROUGHNESSMAP\\n\\tvSheenRoughnessMapUv = ( sheenRoughnessMapTransform * vec3( SHEEN_ROUGHNESSMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_SPECULARMAP\\n\\tvSpecularMapUv = ( specularMapTransform * vec3( SPECULARMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_SPECULAR_COLORMAP\\n\\tvSpecularColorMapUv = ( specularColorMapTransform * vec3( SPECULAR_COLORMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_SPECULAR_INTENSITYMAP\\n\\tvSpecularIntensityMapUv = ( specularIntensityMapTransform * vec3( SPECULAR_INTENSITYMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_TRANSMISSIONMAP\\n\\tvTransmissionMapUv = ( transmissionMapTransform * vec3( TRANSMISSIONMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_THICKNESSMAP\\n\\tvThicknessMapUv = ( thicknessMapTransform * vec3( THICKNESSMAP_UV, 1 ) ).xy;\\n#endif\";var to=\"#if defined( USE_ENVMAP ) || defined( DISTANCE ) || defined ( USE_SHADOWMAP ) || defined ( USE_TRANSMISSION ) || NUM_SPOT_LIGHT_COORDS > 0\\n\\tvec4 worldPosition = vec4( transformed, 1.0 );\\n\\t#ifdef USE_BATCHING\\n\\t\\tworldPosition = batchingMatrix * worldPosition;\\n\\t#endif\\n\\t#ifdef USE_INSTANCING\\n\\t\\tworldPosition = instanceMatrix * worldPosition;\\n\\t#endif\\n\\tworldPosition = modelMatrix * worldPosition;\\n#endif\";const eo=\"varying vec2 vUv;\\nuniform mat3 uvTransform;\\nvoid main() {\\n\\tvUv = ( uvTransform * vec3( uv, 1 ) ).xy;\\n\\tgl_Position = vec4( position.xy, 1.0, 1.0 );\\n}\";const no=\"uniform sampler2D t2D;\\nuniform float backgroundIntensity;\\nvarying vec2 vUv;\\nvoid main() {\\n\\tvec4 texColor = texture2D( t2D, vUv );\\n\\t#ifdef DECODE_VIDEO_TEXTURE\\n\\t\\ttexColor = vec4( mix( pow( texColor.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), texColor.rgb * 0.0773993808, vec3( lessThanEqual( texColor.rgb, vec3( 0.04045 ) ) ) ), texColor.w );\\n\\t#endif\\n\\ttexColor.rgb *= backgroundIntensity;\\n\\tgl_FragColor = texColor;\\n\\t#include <tonemapping_fragment>\\n\\t#include <colorspace_fragment>\\n}\";const io=\"varying vec3 vWorldDirection;\\n#include <common>\\nvoid main() {\\n\\tvWorldDirection = transformDirection( position, modelMatrix );\\n\\t#include <begin_vertex>\\n\\t#include <project_vertex>\\n\\tgl_Position.z = gl_Position.w;\\n}\";const ro=\"#ifdef ENVMAP_TYPE_CUBE\\n\\tuniform samplerCube envMap;\\n#elif defined( ENVMAP_TYPE_CUBE_UV )\\n\\tuniform sampler2D envMap;\\n#endif\\nuniform float flipEnvMap;\\nuniform float backgroundBlurriness;\\nuniform float backgroundIntensity;\\nuniform mat3 backgroundRotation;\\nvarying vec3 vWorldDirection;\\n#include <cube_uv_reflection_fragment>\\nvoid main() {\\n\\t#ifdef ENVMAP_TYPE_CUBE\\n\\t\\tvec4 texColor = textureCube( envMap, backgroundRotation * vec3( flipEnvMap * vWorldDirection.x, vWorldDirection.yz ) );\\n\\t#elif defined( ENVMAP_TYPE_CUBE_UV )\\n\\t\\tvec4 texColor = textureCubeUV( envMap, backgroundRotation * vWorldDirection, backgroundBlurriness );\\n\\t#else\\n\\t\\tvec4 texColor = vec4( 0.0, 0.0, 0.0, 1.0 );\\n\\t#endif\\n\\ttexColor.rgb *= backgroundIntensity;\\n\\tgl_FragColor = texColor;\\n\\t#include <tonemapping_fragment>\\n\\t#include <colorspace_fragment>\\n}\";const so=\"varying vec3 vWorldDirection;\\n#include <common>\\nvoid main() {\\n\\tvWorldDirection = transformDirection( position, modelMatrix );\\n\\t#include <begin_vertex>\\n\\t#include <project_vertex>\\n\\tgl_Position.z = gl_Position.w;\\n}\";const ao=\"uniform samplerCube tCube;\\nuniform float tFlip;\\nuniform float opacity;\\nvarying vec3 vWorldDirection;\\nvoid main() {\\n\\tvec4 texColor = textureCube( tCube, vec3( tFlip * vWorldDirection.x, vWorldDirection.yz ) );\\n\\tgl_FragColor = texColor;\\n\\tgl_FragColor.a *= opacity;\\n\\t#include <tonemapping_fragment>\\n\\t#include <colorspace_fragment>\\n}\";const oo=\"#include <common>\\n#include <batching_pars_vertex>\\n#include <uv_pars_vertex>\\n#include <displacementmap_pars_vertex>\\n#include <morphtarget_pars_vertex>\\n#include <skinning_pars_vertex>\\n#include <logdepthbuf_pars_vertex>\\n#include <clipping_planes_pars_vertex>\\nvarying vec2 vHighPrecisionZW;\\nvoid main() {\\n\\t#include <uv_vertex>\\n\\t#include <batching_vertex>\\n\\t#include <skinbase_vertex>\\n\\t#include <morphinstance_vertex>\\n\\t#ifdef USE_DISPLACEMENTMAP\\n\\t\\t#include <beginnormal_vertex>\\n\\t\\t#include <morphnormal_vertex>\\n\\t\\t#include <skinnormal_vertex>\\n\\t#endif\\n\\t#include <begin_vertex>\\n\\t#include <morphtarget_vertex>\\n\\t#include <skinning_vertex>\\n\\t#include <displacementmap_vertex>\\n\\t#include <project_vertex>\\n\\t#include <logdepthbuf_vertex>\\n\\t#include <clipping_planes_vertex>\\n\\tvHighPrecisionZW = gl_Position.zw;\\n}\";const lo=\"#if DEPTH_PACKING == 3200\\n\\tuniform float opacity;\\n#endif\\n#include <common>\\n#include <packing>\\n#include <uv_pars_fragment>\\n#include <map_pars_fragment>\\n#include <alphamap_pars_fragment>\\n#include <alphatest_pars_fragment>\\n#include <alphahash_pars_fragment>\\n#include <logdepthbuf_pars_fragment>\\n#include <clipping_planes_pars_fragment>\\nvarying vec2 vHighPrecisionZW;\\nvoid main() {\\n\\tvec4 diffuseColor = vec4( 1.0 );\\n\\t#include <clipping_planes_fragment>\\n\\t#if DEPTH_PACKING == 3200\\n\\t\\tdiffuseColor.a = opacity;\\n\\t#endif\\n\\t#include <map_fragment>\\n\\t#include <alphamap_fragment>\\n\\t#include <alphatest_fragment>\\n\\t#include <alphahash_fragment>\\n\\t#include <logdepthbuf_fragment>\\n\\tfloat fragCoordZ = 0.5 * vHighPrecisionZW[0] / vHighPrecisionZW[1] + 0.5;\\n\\t#if DEPTH_PACKING == 3200\\n\\t\\tgl_FragColor = vec4( vec3( 1.0 - fragCoordZ ), opacity );\\n\\t#elif DEPTH_PACKING == 3201\\n\\t\\tgl_FragColor = packDepthToRGBA( fragCoordZ );\\n\\t#elif DEPTH_PACKING == 3202\\n\\t\\tgl_FragColor = vec4( packDepthToRGB( fragCoordZ ), 1.0 );\\n\\t#elif DEPTH_PACKING == 3203\\n\\t\\tgl_FragColor = vec4( packDepthToRG( fragCoordZ ), 0.0, 1.0 );\\n\\t#endif\\n}\";const co=\"#define DISTANCE\\nvarying vec3 vWorldPosition;\\n#include <common>\\n#include <batching_pars_vertex>\\n#include <uv_pars_vertex>\\n#include <displacementmap_pars_vertex>\\n#include <morphtarget_pars_vertex>\\n#include <skinning_pars_vertex>\\n#include <clipping_planes_pars_vertex>\\nvoid main() {\\n\\t#include <uv_vertex>\\n\\t#include <batching_vertex>\\n\\t#include <skinbase_vertex>\\n\\t#include <morphinstance_vertex>\\n\\t#ifdef USE_DISPLACEMENTMAP\\n\\t\\t#include <beginnormal_vertex>\\n\\t\\t#include <morphnormal_vertex>\\n\\t\\t#include <skinnormal_vertex>\\n\\t#endif\\n\\t#include <begin_vertex>\\n\\t#include <morphtarget_vertex>\\n\\t#include <skinning_vertex>\\n\\t#include <displacementmap_vertex>\\n\\t#include <project_vertex>\\n\\t#include <worldpos_vertex>\\n\\t#include <clipping_planes_vertex>\\n\\tvWorldPosition = worldPosition.xyz;\\n}\";const ho=\"#define DISTANCE\\nuniform vec3 referencePosition;\\nuniform float nearDistance;\\nuniform float farDistance;\\nvarying vec3 vWorldPosition;\\n#include <common>\\n#include <packing>\\n#include <uv_pars_fragment>\\n#include <map_pars_fragment>\\n#include <alphamap_pars_fragment>\\n#include <alphatest_pars_fragment>\\n#include <alphahash_pars_fragment>\\n#include <clipping_planes_pars_fragment>\\nvoid main () {\\n\\tvec4 diffuseColor = vec4( 1.0 );\\n\\t#include <clipping_planes_fragment>\\n\\t#include <map_fragment>\\n\\t#include <alphamap_fragment>\\n\\t#include <alphatest_fragment>\\n\\t#include <alphahash_fragment>\\n\\tfloat dist = length( vWorldPosition - referencePosition );\\n\\tdist = ( dist - nearDistance ) / ( farDistance - nearDistance );\\n\\tdist = saturate( dist );\\n\\tgl_FragColor = packDepthToRGBA( dist );\\n}\";const uo=\"varying vec3 vWorldDirection;\\n#include <common>\\nvoid main() {\\n\\tvWorldDirection = transformDirection( position, modelMatrix );\\n\\t#include <begin_vertex>\\n\\t#include <project_vertex>\\n}\";const po=\"uniform sampler2D tEquirect;\\nvarying vec3 vWorldDirection;\\n#include <common>\\nvoid main() {\\n\\tvec3 direction = normalize( vWorldDirection );\\n\\tvec2 sampleUV = equirectUv( direction );\\n\\tgl_FragColor = texture2D( tEquirect, sampleUV );\\n\\t#include <tonemapping_fragment>\\n\\t#include <colorspace_fragment>\\n}\";const fo=\"uniform float scale;\\nattribute float lineDistance;\\nvarying float vLineDistance;\\n#include <common>\\n#include <uv_pars_vertex>\\n#include <color_pars_vertex>\\n#include <fog_pars_vertex>\\n#include <morphtarget_pars_vertex>\\n#include <logdepthbuf_pars_vertex>\\n#include <clipping_planes_pars_vertex>\\nvoid main() {\\n\\tvLineDistance = scale * lineDistance;\\n\\t#include <uv_vertex>\\n\\t#include <color_vertex>\\n\\t#include <morphinstance_vertex>\\n\\t#include <morphcolor_vertex>\\n\\t#include <begin_vertex>\\n\\t#include <morphtarget_vertex>\\n\\t#include <project_vertex>\\n\\t#include <logdepthbuf_vertex>\\n\\t#include <clipping_planes_vertex>\\n\\t#include <fog_vertex>\\n}\";const mo=\"uniform vec3 diffuse;\\nuniform float opacity;\\nuniform float dashSize;\\nuniform float totalSize;\\nvarying float vLineDistance;\\n#include <common>\\n#include <color_pars_fragment>\\n#include <uv_pars_fragment>\\n#include <map_pars_fragment>\\n#include <fog_pars_fragment>\\n#include <logdepthbuf_pars_fragment>\\n#include <clipping_planes_pars_fragment>\\nvoid main() {\\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\t#include <clipping_planes_fragment>\\n\\tif ( mod( vLineDistance, totalSize ) > dashSize ) {\\n\\t\\tdiscard;\\n\\t}\\n\\tvec3 outgoingLight = vec3( 0.0 );\\n\\t#include <logdepthbuf_fragment>\\n\\t#include <map_fragment>\\n\\t#include <color_fragment>\\n\\toutgoingLight = diffuseColor.rgb;\\n\\t#include <opaque_fragment>\\n\\t#include <tonemapping_fragment>\\n\\t#include <colorspace_fragment>\\n\\t#include <fog_fragment>\\n\\t#include <premultiplied_alpha_fragment>\\n}\";const go=\"#include <common>\\n#include <batching_pars_vertex>\\n#include <uv_pars_vertex>\\n#include <envmap_pars_vertex>\\n#include <color_pars_vertex>\\n#include <fog_pars_vertex>\\n#include <morphtarget_pars_vertex>\\n#include <skinning_pars_vertex>\\n#include <logdepthbuf_pars_vertex>\\n#include <clipping_planes_pars_vertex>\\nvoid main() {\\n\\t#include <uv_vertex>\\n\\t#include <color_vertex>\\n\\t#include <morphinstance_vertex>\\n\\t#include <morphcolor_vertex>\\n\\t#include <batching_vertex>\\n\\t#if defined ( USE_ENVMAP ) || defined ( USE_SKINNING )\\n\\t\\t#include <beginnormal_vertex>\\n\\t\\t#include <morphnormal_vertex>\\n\\t\\t#include <skinbase_vertex>\\n\\t\\t#include <skinnormal_vertex>\\n\\t\\t#include <defaultnormal_vertex>\\n\\t#endif\\n\\t#include <begin_vertex>\\n\\t#include <morphtarget_vertex>\\n\\t#include <skinning_vertex>\\n\\t#include <project_vertex>\\n\\t#include <logdepthbuf_vertex>\\n\\t#include <clipping_planes_vertex>\\n\\t#include <worldpos_vertex>\\n\\t#include <envmap_vertex>\\n\\t#include <fog_vertex>\\n}\";const vo=\"uniform vec3 diffuse;\\nuniform float opacity;\\n#ifndef FLAT_SHADED\\n\\tvarying vec3 vNormal;\\n#endif\\n#include <common>\\n#include <dithering_pars_fragment>\\n#include <color_pars_fragment>\\n#include <uv_pars_fragment>\\n#include <map_pars_fragment>\\n#include <alphamap_pars_fragment>\\n#include <alphatest_pars_fragment>\\n#include <alphahash_pars_fragment>\\n#include <aomap_pars_fragment>\\n#include <lightmap_pars_fragment>\\n#include <envmap_common_pars_fragment>\\n#include <envmap_pars_fragment>\\n#include <fog_pars_fragment>\\n#include <specularmap_pars_fragment>\\n#include <logdepthbuf_pars_fragment>\\n#include <clipping_planes_pars_fragment>\\nvoid main() {\\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\t#include <clipping_planes_fragment>\\n\\t#include <logdepthbuf_fragment>\\n\\t#include <map_fragment>\\n\\t#include <color_fragment>\\n\\t#include <alphamap_fragment>\\n\\t#include <alphatest_fragment>\\n\\t#include <alphahash_fragment>\\n\\t#include <specularmap_fragment>\\n\\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\\n\\t#ifdef USE_LIGHTMAP\\n\\t\\tvec4 lightMapTexel = texture2D( lightMap, vLightMapUv );\\n\\t\\treflectedLight.indirectDiffuse += lightMapTexel.rgb * lightMapIntensity * RECIPROCAL_PI;\\n\\t#else\\n\\t\\treflectedLight.indirectDiffuse += vec3( 1.0 );\\n\\t#endif\\n\\t#include <aomap_fragment>\\n\\treflectedLight.indirectDiffuse *= diffuseColor.rgb;\\n\\tvec3 outgoingLight = reflectedLight.indirectDiffuse;\\n\\t#include <envmap_fragment>\\n\\t#include <opaque_fragment>\\n\\t#include <tonemapping_fragment>\\n\\t#include <colorspace_fragment>\\n\\t#include <fog_fragment>\\n\\t#include <premultiplied_alpha_fragment>\\n\\t#include <dithering_fragment>\\n}\";const _o=\"#define LAMBERT\\nvarying vec3 vViewPosition;\\n#include <common>\\n#include <batching_pars_vertex>\\n#include <uv_pars_vertex>\\n#include <displacementmap_pars_vertex>\\n#include <envmap_pars_vertex>\\n#include <color_pars_vertex>\\n#include <fog_pars_vertex>\\n#include <normal_pars_vertex>\\n#include <morphtarget_pars_vertex>\\n#include <skinning_pars_vertex>\\n#include <shadowmap_pars_vertex>\\n#include <logdepthbuf_pars_vertex>\\n#include <clipping_planes_pars_vertex>\\nvoid main() {\\n\\t#include <uv_vertex>\\n\\t#include <color_vertex>\\n\\t#include <morphinstance_vertex>\\n\\t#include <morphcolor_vertex>\\n\\t#include <batching_vertex>\\n\\t#include <beginnormal_vertex>\\n\\t#include <morphnormal_vertex>\\n\\t#include <skinbase_vertex>\\n\\t#include <skinnormal_vertex>\\n\\t#include <defaultnormal_vertex>\\n\\t#include <normal_vertex>\\n\\t#include <begin_vertex>\\n\\t#include <morphtarget_vertex>\\n\\t#include <skinning_vertex>\\n\\t#include <displacementmap_vertex>\\n\\t#include <project_vertex>\\n\\t#include <logdepthbuf_vertex>\\n\\t#include <clipping_planes_vertex>\\n\\tvViewPosition = - mvPosition.xyz;\\n\\t#include <worldpos_vertex>\\n\\t#include <envmap_vertex>\\n\\t#include <shadowmap_vertex>\\n\\t#include <fog_vertex>\\n}\";const xo=\"#define LAMBERT\\nuniform vec3 diffuse;\\nuniform vec3 emissive;\\nuniform float opacity;\\n#include <common>\\n#include <packing>\\n#include <dithering_pars_fragment>\\n#include <color_pars_fragment>\\n#include <uv_pars_fragment>\\n#include <map_pars_fragment>\\n#include <alphamap_pars_fragment>\\n#include <alphatest_pars_fragment>\\n#include <alphahash_pars_fragment>\\n#include <aomap_pars_fragment>\\n#include <lightmap_pars_fragment>\\n#include <emissivemap_pars_fragment>\\n#include <envmap_common_pars_fragment>\\n#include <envmap_pars_fragment>\\n#include <fog_pars_fragment>\\n#include <bsdfs>\\n#include <lights_pars_begin>\\n#include <normal_pars_fragment>\\n#include <lights_lambert_pars_fragment>\\n#include <shadowmap_pars_fragment>\\n#include <bumpmap_pars_fragment>\\n#include <normalmap_pars_fragment>\\n#include <specularmap_pars_fragment>\\n#include <logdepthbuf_pars_fragment>\\n#include <clipping_planes_pars_fragment>\\nvoid main() {\\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\t#include <clipping_planes_fragment>\\n\\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\\n\\tvec3 totalEmissiveRadiance = emissive;\\n\\t#include <logdepthbuf_fragment>\\n\\t#include <map_fragment>\\n\\t#include <color_fragment>\\n\\t#include <alphamap_fragment>\\n\\t#include <alphatest_fragment>\\n\\t#include <alphahash_fragment>\\n\\t#include <specularmap_fragment>\\n\\t#include <normal_fragment_begin>\\n\\t#include <normal_fragment_maps>\\n\\t#include <emissivemap_fragment>\\n\\t#include <lights_lambert_fragment>\\n\\t#include <lights_fragment_begin>\\n\\t#include <lights_fragment_maps>\\n\\t#include <lights_fragment_end>\\n\\t#include <aomap_fragment>\\n\\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;\\n\\t#include <envmap_fragment>\\n\\t#include <opaque_fragment>\\n\\t#include <tonemapping_fragment>\\n\\t#include <colorspace_fragment>\\n\\t#include <fog_fragment>\\n\\t#include <premultiplied_alpha_fragment>\\n\\t#include <dithering_fragment>\\n}\";const yo=\"#define MATCAP\\nvarying vec3 vViewPosition;\\n#include <common>\\n#include <batching_pars_vertex>\\n#include <uv_pars_vertex>\\n#include <color_pars_vertex>\\n#include <displacementmap_pars_vertex>\\n#include <fog_pars_vertex>\\n#include <normal_pars_vertex>\\n#include <morphtarget_pars_vertex>\\n#include <skinning_pars_vertex>\\n#include <logdepthbuf_pars_vertex>\\n#include <clipping_planes_pars_vertex>\\nvoid main() {\\n\\t#include <uv_vertex>\\n\\t#include <color_vertex>\\n\\t#include <morphinstance_vertex>\\n\\t#include <morphcolor_vertex>\\n\\t#include <batching_vertex>\\n\\t#include <beginnormal_vertex>\\n\\t#include <morphnormal_vertex>\\n\\t#include <skinbase_vertex>\\n\\t#include <skinnormal_vertex>\\n\\t#include <defaultnormal_vertex>\\n\\t#include <normal_vertex>\\n\\t#include <begin_vertex>\\n\\t#include <morphtarget_vertex>\\n\\t#include <skinning_vertex>\\n\\t#include <displacementmap_vertex>\\n\\t#include <project_vertex>\\n\\t#include <logdepthbuf_vertex>\\n\\t#include <clipping_planes_vertex>\\n\\t#include <fog_vertex>\\n\\tvViewPosition = - mvPosition.xyz;\\n}\";const Mo=\"#define MATCAP\\nuniform vec3 diffuse;\\nuniform float opacity;\\nuniform sampler2D matcap;\\nvarying vec3 vViewPosition;\\n#include <common>\\n#include <dithering_pars_fragment>\\n#include <color_pars_fragment>\\n#include <uv_pars_fragment>\\n#include <map_pars_fragment>\\n#include <alphamap_pars_fragment>\\n#include <alphatest_pars_fragment>\\n#include <alphahash_pars_fragment>\\n#include <fog_pars_fragment>\\n#include <normal_pars_fragment>\\n#include <bumpmap_pars_fragment>\\n#include <normalmap_pars_fragment>\\n#include <logdepthbuf_pars_fragment>\\n#include <clipping_planes_pars_fragment>\\nvoid main() {\\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\t#include <clipping_planes_fragment>\\n\\t#include <logdepthbuf_fragment>\\n\\t#include <map_fragment>\\n\\t#include <color_fragment>\\n\\t#include <alphamap_fragment>\\n\\t#include <alphatest_fragment>\\n\\t#include <alphahash_fragment>\\n\\t#include <normal_fragment_begin>\\n\\t#include <normal_fragment_maps>\\n\\tvec3 viewDir = normalize( vViewPosition );\\n\\tvec3 x = normalize( vec3( viewDir.z, 0.0, - viewDir.x ) );\\n\\tvec3 y = cross( viewDir, x );\\n\\tvec2 uv = vec2( dot( x, normal ), dot( y, normal ) ) * 0.495 + 0.5;\\n\\t#ifdef USE_MATCAP\\n\\t\\tvec4 matcapColor = texture2D( matcap, uv );\\n\\t#else\\n\\t\\tvec4 matcapColor = vec4( vec3( mix( 0.2, 0.8, uv.y ) ), 1.0 );\\n\\t#endif\\n\\tvec3 outgoingLight = diffuseColor.rgb * matcapColor.rgb;\\n\\t#include <opaque_fragment>\\n\\t#include <tonemapping_fragment>\\n\\t#include <colorspace_fragment>\\n\\t#include <fog_fragment>\\n\\t#include <premultiplied_alpha_fragment>\\n\\t#include <dithering_fragment>\\n}\";const So=\"#define NORMAL\\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE )\\n\\tvarying vec3 vViewPosition;\\n#endif\\n#include <common>\\n#include <batching_pars_vertex>\\n#include <uv_pars_vertex>\\n#include <displacementmap_pars_vertex>\\n#include <normal_pars_vertex>\\n#include <morphtarget_pars_vertex>\\n#include <skinning_pars_vertex>\\n#include <logdepthbuf_pars_vertex>\\n#include <clipping_planes_pars_vertex>\\nvoid main() {\\n\\t#include <uv_vertex>\\n\\t#include <batching_vertex>\\n\\t#include <beginnormal_vertex>\\n\\t#include <morphinstance_vertex>\\n\\t#include <morphnormal_vertex>\\n\\t#include <skinbase_vertex>\\n\\t#include <skinnormal_vertex>\\n\\t#include <defaultnormal_vertex>\\n\\t#include <normal_vertex>\\n\\t#include <begin_vertex>\\n\\t#include <morphtarget_vertex>\\n\\t#include <skinning_vertex>\\n\\t#include <displacementmap_vertex>\\n\\t#include <project_vertex>\\n\\t#include <logdepthbuf_vertex>\\n\\t#include <clipping_planes_vertex>\\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE )\\n\\tvViewPosition = - mvPosition.xyz;\\n#endif\\n}\";const bo=\"#define NORMAL\\nuniform float opacity;\\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE )\\n\\tvarying vec3 vViewPosition;\\n#endif\\n#include <packing>\\n#include <uv_pars_fragment>\\n#include <normal_pars_fragment>\\n#include <bumpmap_pars_fragment>\\n#include <normalmap_pars_fragment>\\n#include <logdepthbuf_pars_fragment>\\n#include <clipping_planes_pars_fragment>\\nvoid main() {\\n\\tvec4 diffuseColor = vec4( 0.0, 0.0, 0.0, opacity );\\n\\t#include <clipping_planes_fragment>\\n\\t#include <logdepthbuf_fragment>\\n\\t#include <normal_fragment_begin>\\n\\t#include <normal_fragment_maps>\\n\\tgl_FragColor = vec4( packNormalToRGB( normal ), diffuseColor.a );\\n\\t#ifdef OPAQUE\\n\\t\\tgl_FragColor.a = 1.0;\\n\\t#endif\\n}\";const To=\"#define PHONG\\nvarying vec3 vViewPosition;\\n#include <common>\\n#include <batching_pars_vertex>\\n#include <uv_pars_vertex>\\n#include <displacementmap_pars_vertex>\\n#include <envmap_pars_vertex>\\n#include <color_pars_vertex>\\n#include <fog_pars_vertex>\\n#include <normal_pars_vertex>\\n#include <morphtarget_pars_vertex>\\n#include <skinning_pars_vertex>\\n#include <shadowmap_pars_vertex>\\n#include <logdepthbuf_pars_vertex>\\n#include <clipping_planes_pars_vertex>\\nvoid main() {\\n\\t#include <uv_vertex>\\n\\t#include <color_vertex>\\n\\t#include <morphcolor_vertex>\\n\\t#include <batching_vertex>\\n\\t#include <beginnormal_vertex>\\n\\t#include <morphinstance_vertex>\\n\\t#include <morphnormal_vertex>\\n\\t#include <skinbase_vertex>\\n\\t#include <skinnormal_vertex>\\n\\t#include <defaultnormal_vertex>\\n\\t#include <normal_vertex>\\n\\t#include <begin_vertex>\\n\\t#include <morphtarget_vertex>\\n\\t#include <skinning_vertex>\\n\\t#include <displacementmap_vertex>\\n\\t#include <project_vertex>\\n\\t#include <logdepthbuf_vertex>\\n\\t#include <clipping_planes_vertex>\\n\\tvViewPosition = - mvPosition.xyz;\\n\\t#include <worldpos_vertex>\\n\\t#include <envmap_vertex>\\n\\t#include <shadowmap_vertex>\\n\\t#include <fog_vertex>\\n}\";const wo=\"#define PHONG\\nuniform vec3 diffuse;\\nuniform vec3 emissive;\\nuniform vec3 specular;\\nuniform float shininess;\\nuniform float opacity;\\n#include <common>\\n#include <packing>\\n#include <dithering_pars_fragment>\\n#include <color_pars_fragment>\\n#include <uv_pars_fragment>\\n#include <map_pars_fragment>\\n#include <alphamap_pars_fragment>\\n#include <alphatest_pars_fragment>\\n#include <alphahash_pars_fragment>\\n#include <aomap_pars_fragment>\\n#include <lightmap_pars_fragment>\\n#include <emissivemap_pars_fragment>\\n#include <envmap_common_pars_fragment>\\n#include <envmap_pars_fragment>\\n#include <fog_pars_fragment>\\n#include <bsdfs>\\n#include <lights_pars_begin>\\n#include <normal_pars_fragment>\\n#include <lights_phong_pars_fragment>\\n#include <shadowmap_pars_fragment>\\n#include <bumpmap_pars_fragment>\\n#include <normalmap_pars_fragment>\\n#include <specularmap_pars_fragment>\\n#include <logdepthbuf_pars_fragment>\\n#include <clipping_planes_pars_fragment>\\nvoid main() {\\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\t#include <clipping_planes_fragment>\\n\\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\\n\\tvec3 totalEmissiveRadiance = emissive;\\n\\t#include <logdepthbuf_fragment>\\n\\t#include <map_fragment>\\n\\t#include <color_fragment>\\n\\t#include <alphamap_fragment>\\n\\t#include <alphatest_fragment>\\n\\t#include <alphahash_fragment>\\n\\t#include <specularmap_fragment>\\n\\t#include <normal_fragment_begin>\\n\\t#include <normal_fragment_maps>\\n\\t#include <emissivemap_fragment>\\n\\t#include <lights_phong_fragment>\\n\\t#include <lights_fragment_begin>\\n\\t#include <lights_fragment_maps>\\n\\t#include <lights_fragment_end>\\n\\t#include <aomap_fragment>\\n\\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance;\\n\\t#include <envmap_fragment>\\n\\t#include <opaque_fragment>\\n\\t#include <tonemapping_fragment>\\n\\t#include <colorspace_fragment>\\n\\t#include <fog_fragment>\\n\\t#include <premultiplied_alpha_fragment>\\n\\t#include <dithering_fragment>\\n}\";const Eo=\"#define STANDARD\\nvarying vec3 vViewPosition;\\n#ifdef USE_TRANSMISSION\\n\\tvarying vec3 vWorldPosition;\\n#endif\\n#include <common>\\n#include <batching_pars_vertex>\\n#include <uv_pars_vertex>\\n#include <displacementmap_pars_vertex>\\n#include <color_pars_vertex>\\n#include <fog_pars_vertex>\\n#include <normal_pars_vertex>\\n#include <morphtarget_pars_vertex>\\n#include <skinning_pars_vertex>\\n#include <shadowmap_pars_vertex>\\n#include <logdepthbuf_pars_vertex>\\n#include <clipping_planes_pars_vertex>\\nvoid main() {\\n\\t#include <uv_vertex>\\n\\t#include <color_vertex>\\n\\t#include <morphinstance_vertex>\\n\\t#include <morphcolor_vertex>\\n\\t#include <batching_vertex>\\n\\t#include <beginnormal_vertex>\\n\\t#include <morphnormal_vertex>\\n\\t#include <skinbase_vertex>\\n\\t#include <skinnormal_vertex>\\n\\t#include <defaultnormal_vertex>\\n\\t#include <normal_vertex>\\n\\t#include <begin_vertex>\\n\\t#include <morphtarget_vertex>\\n\\t#include <skinning_vertex>\\n\\t#include <displacementmap_vertex>\\n\\t#include <project_vertex>\\n\\t#include <logdepthbuf_vertex>\\n\\t#include <clipping_planes_vertex>\\n\\tvViewPosition = - mvPosition.xyz;\\n\\t#include <worldpos_vertex>\\n\\t#include <shadowmap_vertex>\\n\\t#include <fog_vertex>\\n#ifdef USE_TRANSMISSION\\n\\tvWorldPosition = worldPosition.xyz;\\n#endif\\n}\";const Ao=\"#define STANDARD\\n#ifdef PHYSICAL\\n\\t#define IOR\\n\\t#define USE_SPECULAR\\n#endif\\nuniform vec3 diffuse;\\nuniform vec3 emissive;\\nuniform float roughness;\\nuniform float metalness;\\nuniform float opacity;\\n#ifdef IOR\\n\\tuniform float ior;\\n#endif\\n#ifdef USE_SPECULAR\\n\\tuniform float specularIntensity;\\n\\tuniform vec3 specularColor;\\n\\t#ifdef USE_SPECULAR_COLORMAP\\n\\t\\tuniform sampler2D specularColorMap;\\n\\t#endif\\n\\t#ifdef USE_SPECULAR_INTENSITYMAP\\n\\t\\tuniform sampler2D specularIntensityMap;\\n\\t#endif\\n#endif\\n#ifdef USE_CLEARCOAT\\n\\tuniform float clearcoat;\\n\\tuniform float clearcoatRoughness;\\n#endif\\n#ifdef USE_DISPERSION\\n\\tuniform float dispersion;\\n#endif\\n#ifdef USE_IRIDESCENCE\\n\\tuniform float iridescence;\\n\\tuniform float iridescenceIOR;\\n\\tuniform float iridescenceThicknessMinimum;\\n\\tuniform float iridescenceThicknessMaximum;\\n#endif\\n#ifdef USE_SHEEN\\n\\tuniform vec3 sheenColor;\\n\\tuniform float sheenRoughness;\\n\\t#ifdef USE_SHEEN_COLORMAP\\n\\t\\tuniform sampler2D sheenColorMap;\\n\\t#endif\\n\\t#ifdef USE_SHEEN_ROUGHNESSMAP\\n\\t\\tuniform sampler2D sheenRoughnessMap;\\n\\t#endif\\n#endif\\n#ifdef USE_ANISOTROPY\\n\\tuniform vec2 anisotropyVector;\\n\\t#ifdef USE_ANISOTROPYMAP\\n\\t\\tuniform sampler2D anisotropyMap;\\n\\t#endif\\n#endif\\nvarying vec3 vViewPosition;\\n#include <common>\\n#include <packing>\\n#include <dithering_pars_fragment>\\n#include <color_pars_fragment>\\n#include <uv_pars_fragment>\\n#include <map_pars_fragment>\\n#include <alphamap_pars_fragment>\\n#include <alphatest_pars_fragment>\\n#include <alphahash_pars_fragment>\\n#include <aomap_pars_fragment>\\n#include <lightmap_pars_fragment>\\n#include <emissivemap_pars_fragment>\\n#include <iridescence_fragment>\\n#include <cube_uv_reflection_fragment>\\n#include <envmap_common_pars_fragment>\\n#include <envmap_physical_pars_fragment>\\n#include <fog_pars_fragment>\\n#include <lights_pars_begin>\\n#include <normal_pars_fragment>\\n#include <lights_physical_pars_fragment>\\n#include <transmission_pars_fragment>\\n#include <shadowmap_pars_fragment>\\n#include <bumpmap_pars_fragment>\\n#include <normalmap_pars_fragment>\\n#include <clearcoat_pars_fragment>\\n#include <iridescence_pars_fragment>\\n#include <roughnessmap_pars_fragment>\\n#include <metalnessmap_pars_fragment>\\n#include <logdepthbuf_pars_fragment>\\n#include <clipping_planes_pars_fragment>\\nvoid main() {\\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\t#include <clipping_planes_fragment>\\n\\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\\n\\tvec3 totalEmissiveRadiance = emissive;\\n\\t#include <logdepthbuf_fragment>\\n\\t#include <map_fragment>\\n\\t#include <color_fragment>\\n\\t#include <alphamap_fragment>\\n\\t#include <alphatest_fragment>\\n\\t#include <alphahash_fragment>\\n\\t#include <roughnessmap_fragment>\\n\\t#include <metalnessmap_fragment>\\n\\t#include <normal_fragment_begin>\\n\\t#include <normal_fragment_maps>\\n\\t#include <clearcoat_normal_fragment_begin>\\n\\t#include <clearcoat_normal_fragment_maps>\\n\\t#include <emissivemap_fragment>\\n\\t#include <lights_physical_fragment>\\n\\t#include <lights_fragment_begin>\\n\\t#include <lights_fragment_maps>\\n\\t#include <lights_fragment_end>\\n\\t#include <aomap_fragment>\\n\\tvec3 totalDiffuse = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse;\\n\\tvec3 totalSpecular = reflectedLight.directSpecular + reflectedLight.indirectSpecular;\\n\\t#include <transmission_fragment>\\n\\tvec3 outgoingLight = totalDiffuse + totalSpecular + totalEmissiveRadiance;\\n\\t#ifdef USE_SHEEN\\n\\t\\tfloat sheenEnergyComp = 1.0 - 0.157 * max3( material.sheenColor );\\n\\t\\toutgoingLight = outgoingLight * sheenEnergyComp + sheenSpecularDirect + sheenSpecularIndirect;\\n\\t#endif\\n\\t#ifdef USE_CLEARCOAT\\n\\t\\tfloat dotNVcc = saturate( dot( geometryClearcoatNormal, geometryViewDir ) );\\n\\t\\tvec3 Fcc = F_Schlick( material.clearcoatF0, material.clearcoatF90, dotNVcc );\\n\\t\\toutgoingLight = outgoingLight * ( 1.0 - material.clearcoat * Fcc ) + ( clearcoatSpecularDirect + clearcoatSpecularIndirect ) * material.clearcoat;\\n\\t#endif\\n\\t#include <opaque_fragment>\\n\\t#include <tonemapping_fragment>\\n\\t#include <colorspace_fragment>\\n\\t#include <fog_fragment>\\n\\t#include <premultiplied_alpha_fragment>\\n\\t#include <dithering_fragment>\\n}\";const Co=\"#define TOON\\nvarying vec3 vViewPosition;\\n#include <common>\\n#include <batching_pars_vertex>\\n#include <uv_pars_vertex>\\n#include <displacementmap_pars_vertex>\\n#include <color_pars_vertex>\\n#include <fog_pars_vertex>\\n#include <normal_pars_vertex>\\n#include <morphtarget_pars_vertex>\\n#include <skinning_pars_vertex>\\n#include <shadowmap_pars_vertex>\\n#include <logdepthbuf_pars_vertex>\\n#include <clipping_planes_pars_vertex>\\nvoid main() {\\n\\t#include <uv_vertex>\\n\\t#include <color_vertex>\\n\\t#include <morphinstance_vertex>\\n\\t#include <morphcolor_vertex>\\n\\t#include <batching_vertex>\\n\\t#include <beginnormal_vertex>\\n\\t#include <morphnormal_vertex>\\n\\t#include <skinbase_vertex>\\n\\t#include <skinnormal_vertex>\\n\\t#include <defaultnormal_vertex>\\n\\t#include <normal_vertex>\\n\\t#include <begin_vertex>\\n\\t#include <morphtarget_vertex>\\n\\t#include <skinning_vertex>\\n\\t#include <displacementmap_vertex>\\n\\t#include <project_vertex>\\n\\t#include <logdepthbuf_vertex>\\n\\t#include <clipping_planes_vertex>\\n\\tvViewPosition = - mvPosition.xyz;\\n\\t#include <worldpos_vertex>\\n\\t#include <shadowmap_vertex>\\n\\t#include <fog_vertex>\\n}\";const Ro=\"#define TOON\\nuniform vec3 diffuse;\\nuniform vec3 emissive;\\nuniform float opacity;\\n#include <common>\\n#include <packing>\\n#include <dithering_pars_fragment>\\n#include <color_pars_fragment>\\n#include <uv_pars_fragment>\\n#include <map_pars_fragment>\\n#include <alphamap_pars_fragment>\\n#include <alphatest_pars_fragment>\\n#include <alphahash_pars_fragment>\\n#include <aomap_pars_fragment>\\n#include <lightmap_pars_fragment>\\n#include <emissivemap_pars_fragment>\\n#include <gradientmap_pars_fragment>\\n#include <fog_pars_fragment>\\n#include <bsdfs>\\n#include <lights_pars_begin>\\n#include <normal_pars_fragment>\\n#include <lights_toon_pars_fragment>\\n#include <shadowmap_pars_fragment>\\n#include <bumpmap_pars_fragment>\\n#include <normalmap_pars_fragment>\\n#include <logdepthbuf_pars_fragment>\\n#include <clipping_planes_pars_fragment>\\nvoid main() {\\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\t#include <clipping_planes_fragment>\\n\\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\\n\\tvec3 totalEmissiveRadiance = emissive;\\n\\t#include <logdepthbuf_fragment>\\n\\t#include <map_fragment>\\n\\t#include <color_fragment>\\n\\t#include <alphamap_fragment>\\n\\t#include <alphatest_fragment>\\n\\t#include <alphahash_fragment>\\n\\t#include <normal_fragment_begin>\\n\\t#include <normal_fragment_maps>\\n\\t#include <emissivemap_fragment>\\n\\t#include <lights_toon_fragment>\\n\\t#include <lights_fragment_begin>\\n\\t#include <lights_fragment_maps>\\n\\t#include <lights_fragment_end>\\n\\t#include <aomap_fragment>\\n\\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;\\n\\t#include <opaque_fragment>\\n\\t#include <tonemapping_fragment>\\n\\t#include <colorspace_fragment>\\n\\t#include <fog_fragment>\\n\\t#include <premultiplied_alpha_fragment>\\n\\t#include <dithering_fragment>\\n}\";const Po=\"uniform float size;\\nuniform float scale;\\n#include <common>\\n#include <color_pars_vertex>\\n#include <fog_pars_vertex>\\n#include <morphtarget_pars_vertex>\\n#include <logdepthbuf_pars_vertex>\\n#include <clipping_planes_pars_vertex>\\n#ifdef USE_POINTS_UV\\n\\tvarying vec2 vUv;\\n\\tuniform mat3 uvTransform;\\n#endif\\nvoid main() {\\n\\t#ifdef USE_POINTS_UV\\n\\t\\tvUv = ( uvTransform * vec3( uv, 1 ) ).xy;\\n\\t#endif\\n\\t#include <color_vertex>\\n\\t#include <morphinstance_vertex>\\n\\t#include <morphcolor_vertex>\\n\\t#include <begin_vertex>\\n\\t#include <morphtarget_vertex>\\n\\t#include <project_vertex>\\n\\tgl_PointSize = size;\\n\\t#ifdef USE_SIZEATTENUATION\\n\\t\\tbool isPerspective = isPerspectiveMatrix( projectionMatrix );\\n\\t\\tif ( isPerspective ) gl_PointSize *= ( scale / - mvPosition.z );\\n\\t#endif\\n\\t#include <logdepthbuf_vertex>\\n\\t#include <clipping_planes_vertex>\\n\\t#include <worldpos_vertex>\\n\\t#include <fog_vertex>\\n}\";const Lo=\"uniform vec3 diffuse;\\nuniform float opacity;\\n#include <common>\\n#include <color_pars_fragment>\\n#include <map_particle_pars_fragment>\\n#include <alphatest_pars_fragment>\\n#include <alphahash_pars_fragment>\\n#include <fog_pars_fragment>\\n#include <logdepthbuf_pars_fragment>\\n#include <clipping_planes_pars_fragment>\\nvoid main() {\\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\t#include <clipping_planes_fragment>\\n\\tvec3 outgoingLight = vec3( 0.0 );\\n\\t#include <logdepthbuf_fragment>\\n\\t#include <map_particle_fragment>\\n\\t#include <color_fragment>\\n\\t#include <alphatest_fragment>\\n\\t#include <alphahash_fragment>\\n\\toutgoingLight = diffuseColor.rgb;\\n\\t#include <opaque_fragment>\\n\\t#include <tonemapping_fragment>\\n\\t#include <colorspace_fragment>\\n\\t#include <fog_fragment>\\n\\t#include <premultiplied_alpha_fragment>\\n}\";const Io=\"#include <common>\\n#include <batching_pars_vertex>\\n#include <fog_pars_vertex>\\n#include <morphtarget_pars_vertex>\\n#include <skinning_pars_vertex>\\n#include <logdepthbuf_pars_vertex>\\n#include <shadowmap_pars_vertex>\\nvoid main() {\\n\\t#include <batching_vertex>\\n\\t#include <beginnormal_vertex>\\n\\t#include <morphinstance_vertex>\\n\\t#include <morphnormal_vertex>\\n\\t#include <skinbase_vertex>\\n\\t#include <skinnormal_vertex>\\n\\t#include <defaultnormal_vertex>\\n\\t#include <begin_vertex>\\n\\t#include <morphtarget_vertex>\\n\\t#include <skinning_vertex>\\n\\t#include <project_vertex>\\n\\t#include <logdepthbuf_vertex>\\n\\t#include <worldpos_vertex>\\n\\t#include <shadowmap_vertex>\\n\\t#include <fog_vertex>\\n}\";const Uo=\"uniform vec3 color;\\nuniform float opacity;\\n#include <common>\\n#include <packing>\\n#include <fog_pars_fragment>\\n#include <bsdfs>\\n#include <lights_pars_begin>\\n#include <logdepthbuf_pars_fragment>\\n#include <shadowmap_pars_fragment>\\n#include <shadowmask_pars_fragment>\\nvoid main() {\\n\\t#include <logdepthbuf_fragment>\\n\\tgl_FragColor = vec4( color, opacity * ( 1.0 - getShadowMask() ) );\\n\\t#include <tonemapping_fragment>\\n\\t#include <colorspace_fragment>\\n\\t#include <fog_fragment>\\n}\";const Do=\"uniform float rotation;\\nuniform vec2 center;\\n#include <common>\\n#include <uv_pars_vertex>\\n#include <fog_pars_vertex>\\n#include <logdepthbuf_pars_vertex>\\n#include <clipping_planes_pars_vertex>\\nvoid main() {\\n\\t#include <uv_vertex>\\n\\tvec4 mvPosition = modelViewMatrix * vec4( 0.0, 0.0, 0.0, 1.0 );\\n\\tvec2 scale;\\n\\tscale.x = length( vec3( modelMatrix[ 0 ].x, modelMatrix[ 0 ].y, modelMatrix[ 0 ].z ) );\\n\\tscale.y = length( vec3( modelMatrix[ 1 ].x, modelMatrix[ 1 ].y, modelMatrix[ 1 ].z ) );\\n\\t#ifndef USE_SIZEATTENUATION\\n\\t\\tbool isPerspective = isPerspectiveMatrix( projectionMatrix );\\n\\t\\tif ( isPerspective ) scale *= - mvPosition.z;\\n\\t#endif\\n\\tvec2 alignedPosition = ( position.xy - ( center - vec2( 0.5 ) ) ) * scale;\\n\\tvec2 rotatedPosition;\\n\\trotatedPosition.x = cos( rotation ) * alignedPosition.x - sin( rotation ) * alignedPosition.y;\\n\\trotatedPosition.y = sin( rotation ) * alignedPosition.x + cos( rotation ) * alignedPosition.y;\\n\\tmvPosition.xy += rotatedPosition;\\n\\tgl_Position = projectionMatrix * mvPosition;\\n\\t#include <logdepthbuf_vertex>\\n\\t#include <clipping_planes_vertex>\\n\\t#include <fog_vertex>\\n}\";const No=\"uniform vec3 diffuse;\\nuniform float opacity;\\n#include <common>\\n#include <uv_pars_fragment>\\n#include <map_pars_fragment>\\n#include <alphamap_pars_fragment>\\n#include <alphatest_pars_fragment>\\n#include <alphahash_pars_fragment>\\n#include <fog_pars_fragment>\\n#include <logdepthbuf_pars_fragment>\\n#include <clipping_planes_pars_fragment>\\nvoid main() {\\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\t#include <clipping_planes_fragment>\\n\\tvec3 outgoingLight = vec3( 0.0 );\\n\\t#include <logdepthbuf_fragment>\\n\\t#include <map_fragment>\\n\\t#include <alphamap_fragment>\\n\\t#include <alphatest_fragment>\\n\\t#include <alphahash_fragment>\\n\\toutgoingLight = diffuseColor.rgb;\\n\\t#include <opaque_fragment>\\n\\t#include <tonemapping_fragment>\\n\\t#include <colorspace_fragment>\\n\\t#include <fog_fragment>\\n}\";const Bo={alphahash_fragment:ns,alphahash_pars_fragment:is,alphamap_fragment:rs,alphamap_pars_fragment:ss,alphatest_fragment:as,alphatest_pars_fragment:os,aomap_fragment:ls,aomap_pars_fragment:cs,batching_pars_vertex:hs,batching_vertex:us,begin_vertex:ds,beginnormal_vertex:ps,bsdfs:fs,iridescence_fragment:ms,bumpmap_pars_fragment:gs,clipping_planes_fragment:vs,clipping_planes_pars_fragment:_s,clipping_planes_pars_vertex:xs,clipping_planes_vertex:ys,color_fragment:Ms,color_pars_fragment:Ss,color_pars_vertex:bs,color_vertex:Ts,common:ws,cube_uv_reflection_fragment:Es,defaultnormal_vertex:As,displacementmap_pars_vertex:Cs,displacementmap_vertex:Rs,emissivemap_fragment:Ps,emissivemap_pars_fragment:Ls,colorspace_fragment:Is,colorspace_pars_fragment:Us,envmap_fragment:Ds,envmap_common_pars_fragment:Ns,envmap_pars_fragment:Bs,envmap_pars_vertex:Os,envmap_physical_pars_fragment:Ys,envmap_vertex:Vs,fog_vertex:Fs,fog_pars_vertex:zs,fog_fragment:Gs,fog_pars_fragment:ks,gradientmap_pars_fragment:Hs,lightmap_pars_fragment:Ws,lights_lambert_fragment:Xs,lights_lambert_pars_fragment:js,lights_pars_begin:qs,lights_toon_fragment:Ks,lights_toon_pars_fragment:Zs,lights_phong_fragment:Js,lights_phong_pars_fragment:Qs,lights_physical_fragment:$s,lights_physical_pars_fragment:ta,lights_fragment_begin:ea,lights_fragment_maps:na,lights_fragment_end:ia,logdepthbuf_fragment:ra,logdepthbuf_pars_fragment:sa,logdepthbuf_pars_vertex:aa,logdepthbuf_vertex:oa,map_fragment:la,map_pars_fragment:ca,map_particle_fragment:ha,map_particle_pars_fragment:ua,metalnessmap_fragment:da,metalnessmap_pars_fragment:pa,morphinstance_vertex:fa,morphcolor_vertex:ma,morphnormal_vertex:ga,morphtarget_pars_vertex:va,morphtarget_vertex:_a,normal_fragment_begin:xa,normal_fragment_maps:ya,normal_pars_fragment:Ma,normal_pars_vertex:Sa,normal_vertex:ba,normalmap_pars_fragment:Ta,clearcoat_normal_fragment_begin:wa,clearcoat_normal_fragment_maps:Ea,clearcoat_pars_fragment:Aa,iridescence_pars_fragment:Ca,opaque_fragment:Ra,packing:Pa,premultiplied_alpha_fragment:La,project_vertex:Ia,dithering_fragment:Ua,dithering_pars_fragment:Da,roughnessmap_fragment:Na,roughnessmap_pars_fragment:Ba,shadowmap_pars_fragment:Oa,shadowmap_pars_vertex:Va,shadowmap_vertex:Fa,shadowmask_pars_fragment:za,skinbase_vertex:Ga,skinning_pars_vertex:ka,skinning_vertex:Ha,skinnormal_vertex:Wa,specularmap_fragment:Xa,specularmap_pars_fragment:ja,tonemapping_fragment:qa,tonemapping_pars_fragment:Ya,transmission_fragment:Ka,transmission_pars_fragment:Za,uv_pars_fragment:Ja,uv_pars_vertex:Qa,uv_vertex:$a,worldpos_vertex:to,background_vert:eo,background_frag:no,backgroundCube_vert:io,backgroundCube_frag:ro,cube_vert:so,cube_frag:ao,depth_vert:oo,depth_frag:lo,distanceRGBA_vert:co,distanceRGBA_frag:ho,equirect_vert:uo,equirect_frag:po,linedashed_vert:fo,linedashed_frag:mo,meshbasic_vert:go,meshbasic_frag:vo,meshlambert_vert:_o,meshlambert_frag:xo,meshmatcap_vert:yo,meshmatcap_frag:Mo,meshnormal_vert:So,meshnormal_frag:bo,meshphong_vert:To,meshphong_frag:wo,meshphysical_vert:Eo,meshphysical_frag:Ao,meshtoon_vert:Co,meshtoon_frag:Ro,points_vert:Po,points_frag:Lo,shadow_vert:Io,shadow_frag:Uo,sprite_vert:Do,sprite_frag:No};const Oo={common:{diffuse:{value:new Color(16777215)},opacity:{value:1},map:{value:null},mapTransform:{value:new Matrix3},alphaMap:{value:null},alphaMapTransform:{value:new Matrix3},alphaTest:{value:0}},specularmap:{specularMap:{value:null},specularMapTransform:{value:new Matrix3}},envmap:{envMap:{value:null},envMapRotation:{value:new Matrix3},flipEnvMap:{value:-1},reflectivity:{value:1},ior:{value:1.5},refractionRatio:{value:.98}},aomap:{aoMap:{value:null},aoMapIntensity:{value:1},aoMapTransform:{value:new Matrix3}},lightmap:{lightMap:{value:null},lightMapIntensity:{value:1},lightMapTransform:{value:new Matrix3}},bumpmap:{bumpMap:{value:null},bumpMapTransform:{value:new Matrix3},bumpScale:{value:1}},normalmap:{normalMap:{value:null},normalMapTransform:{value:new Matrix3},normalScale:{value:new Vector2(1,1)}},displacementmap:{displacementMap:{value:null},displacementMapTransform:{value:new Matrix3},displacementScale:{value:1},displacementBias:{value:0}},emissivemap:{emissiveMap:{value:null},emissiveMapTransform:{value:new Matrix3}},metalnessmap:{metalnessMap:{value:null},metalnessMapTransform:{value:new Matrix3}},roughnessmap:{roughnessMap:{value:null},roughnessMapTransform:{value:new Matrix3}},gradientmap:{gradientMap:{value:null}},fog:{fogDensity:{value:25e-5},fogNear:{value:1},fogFar:{value:2e3},fogColor:{value:new Color(16777215)}},lights:{ambientLightColor:{value:[]},lightProbe:{value:[]},directionalLights:{value:[],properties:{direction:{},color:{}}},directionalLightShadows:{value:[],properties:{shadowIntensity:1,shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},directionalShadowMap:{value:[]},directionalShadowMatrix:{value:[]},spotLights:{value:[],properties:{color:{},position:{},direction:{},distance:{},coneCos:{},penumbraCos:{},decay:{}}},spotLightShadows:{value:[],properties:{shadowIntensity:1,shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},spotLightMap:{value:[]},spotShadowMap:{value:[]},spotLightMatrix:{value:[]},pointLights:{value:[],properties:{color:{},position:{},decay:{},distance:{}}},pointLightShadows:{value:[],properties:{shadowIntensity:1,shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{},shadowCameraNear:{},shadowCameraFar:{}}},pointShadowMap:{value:[]},pointShadowMatrix:{value:[]},hemisphereLights:{value:[],properties:{direction:{},skyColor:{},groundColor:{}}},rectAreaLights:{value:[],properties:{color:{},position:{},width:{},height:{}}},ltc_1:{value:null},ltc_2:{value:null}},points:{diffuse:{value:new Color(16777215)},opacity:{value:1},size:{value:1},scale:{value:1},map:{value:null},alphaMap:{value:null},alphaMapTransform:{value:new Matrix3},alphaTest:{value:0},uvTransform:{value:new Matrix3}},sprite:{diffuse:{value:new Color(16777215)},opacity:{value:1},center:{value:new Vector2(.5,.5)},rotation:{value:0},map:{value:null},mapTransform:{value:new Matrix3},alphaMap:{value:null},alphaMapTransform:{value:new Matrix3},alphaTest:{value:0}}};const Vo={basic:{uniforms:mergeUniforms([Oo.common,Oo.specularmap,Oo.envmap,Oo.aomap,Oo.lightmap,Oo.fog]),vertexShader:Bo.meshbasic_vert,fragmentShader:Bo.meshbasic_frag},lambert:{uniforms:mergeUniforms([Oo.common,Oo.specularmap,Oo.envmap,Oo.aomap,Oo.lightmap,Oo.emissivemap,Oo.bumpmap,Oo.normalmap,Oo.displacementmap,Oo.fog,Oo.lights,{emissive:{value:new Color(0)}}]),vertexShader:Bo.meshlambert_vert,fragmentShader:Bo.meshlambert_frag},phong:{uniforms:mergeUniforms([Oo.common,Oo.specularmap,Oo.envmap,Oo.aomap,Oo.lightmap,Oo.emissivemap,Oo.bumpmap,Oo.normalmap,Oo.displacementmap,Oo.fog,Oo.lights,{emissive:{value:new Color(0)},specular:{value:new Color(1118481)},shininess:{value:30}}]),vertexShader:Bo.meshphong_vert,fragmentShader:Bo.meshphong_frag},standard:{uniforms:mergeUniforms([Oo.common,Oo.envmap,Oo.aomap,Oo.lightmap,Oo.emissivemap,Oo.bumpmap,Oo.normalmap,Oo.displacementmap,Oo.roughnessmap,Oo.metalnessmap,Oo.fog,Oo.lights,{emissive:{value:new Color(0)},roughness:{value:1},metalness:{value:0},envMapIntensity:{value:1}}]),vertexShader:Bo.meshphysical_vert,fragmentShader:Bo.meshphysical_frag},toon:{uniforms:mergeUniforms([Oo.common,Oo.aomap,Oo.lightmap,Oo.emissivemap,Oo.bumpmap,Oo.normalmap,Oo.displacementmap,Oo.gradientmap,Oo.fog,Oo.lights,{emissive:{value:new Color(0)}}]),vertexShader:Bo.meshtoon_vert,fragmentShader:Bo.meshtoon_frag},matcap:{uniforms:mergeUniforms([Oo.common,Oo.bumpmap,Oo.normalmap,Oo.displacementmap,Oo.fog,{matcap:{value:null}}]),vertexShader:Bo.meshmatcap_vert,fragmentShader:Bo.meshmatcap_frag},points:{uniforms:mergeUniforms([Oo.points,Oo.fog]),vertexShader:Bo.points_vert,fragmentShader:Bo.points_frag},dashed:{uniforms:mergeUniforms([Oo.common,Oo.fog,{scale:{value:1},dashSize:{value:1},totalSize:{value:2}}]),vertexShader:Bo.linedashed_vert,fragmentShader:Bo.linedashed_frag},depth:{uniforms:mergeUniforms([Oo.common,Oo.displacementmap]),vertexShader:Bo.depth_vert,fragmentShader:Bo.depth_frag},normal:{uniforms:mergeUniforms([Oo.common,Oo.bumpmap,Oo.normalmap,Oo.displacementmap,{opacity:{value:1}}]),vertexShader:Bo.meshnormal_vert,fragmentShader:Bo.meshnormal_frag},sprite:{uniforms:mergeUniforms([Oo.sprite,Oo.fog]),vertexShader:Bo.sprite_vert,fragmentShader:Bo.sprite_frag},background:{uniforms:{uvTransform:{value:new Matrix3},t2D:{value:null},backgroundIntensity:{value:1}},vertexShader:Bo.background_vert,fragmentShader:Bo.background_frag},backgroundCube:{uniforms:{envMap:{value:null},flipEnvMap:{value:-1},backgroundBlurriness:{value:0},backgroundIntensity:{value:1},backgroundRotation:{value:new Matrix3}},vertexShader:Bo.backgroundCube_vert,fragmentShader:Bo.backgroundCube_frag},cube:{uniforms:{tCube:{value:null},tFlip:{value:-1},opacity:{value:1}},vertexShader:Bo.cube_vert,fragmentShader:Bo.cube_frag},equirect:{uniforms:{tEquirect:{value:null}},vertexShader:Bo.equirect_vert,fragmentShader:Bo.equirect_frag},distanceRGBA:{uniforms:mergeUniforms([Oo.common,Oo.displacementmap,{referencePosition:{value:new Vector3},nearDistance:{value:1},farDistance:{value:1e3}}]),vertexShader:Bo.distanceRGBA_vert,fragmentShader:Bo.distanceRGBA_frag},shadow:{uniforms:mergeUniforms([Oo.lights,Oo.fog,{color:{value:new Color(0)},opacity:{value:1}}]),vertexShader:Bo.shadow_vert,fragmentShader:Bo.shadow_frag}};Vo.physical={uniforms:mergeUniforms([Vo.standard.uniforms,{clearcoat:{value:0},clearcoatMap:{value:null},clearcoatMapTransform:{value:new Matrix3},clearcoatNormalMap:{value:null},clearcoatNormalMapTransform:{value:new Matrix3},clearcoatNormalScale:{value:new Vector2(1,1)},clearcoatRoughness:{value:0},clearcoatRoughnessMap:{value:null},clearcoatRoughnessMapTransform:{value:new Matrix3},dispersion:{value:0},iridescence:{value:0},iridescenceMap:{value:null},iridescenceMapTransform:{value:new Matrix3},iridescenceIOR:{value:1.3},iridescenceThicknessMinimum:{value:100},iridescenceThicknessMaximum:{value:400},iridescenceThicknessMap:{value:null},iridescenceThicknessMapTransform:{value:new Matrix3},sheen:{value:0},sheenColor:{value:new Color(0)},sheenColorMap:{value:null},sheenColorMapTransform:{value:new Matrix3},sheenRoughness:{value:1},sheenRoughnessMap:{value:null},sheenRoughnessMapTransform:{value:new Matrix3},transmission:{value:0},transmissionMap:{value:null},transmissionMapTransform:{value:new Matrix3},transmissionSamplerSize:{value:new Vector2},transmissionSamplerMap:{value:null},thickness:{value:0},thicknessMap:{value:null},thicknessMapTransform:{value:new Matrix3},attenuationDistance:{value:0},attenuationColor:{value:new Color(0)},specularColor:{value:new Color(1,1,1)},specularColorMap:{value:null},specularColorMapTransform:{value:new Matrix3},specularIntensity:{value:1},specularIntensityMap:{value:null},specularIntensityMapTransform:{value:new Matrix3},anisotropyVector:{value:new Vector2},anisotropyMap:{value:null},anisotropyMapTransform:{value:new Matrix3}}]),vertexShader:Bo.meshphysical_vert,fragmentShader:Bo.meshphysical_frag};const Fo={r:0,b:0,g:0};const zo=new Euler;const Go=new Matrix4;function WebGLBackground(t,e,n,i,r,s,a){const o=new Color(0);let l=s===true?0:1;let c;let h;let p=null;let f=0;let m=null;function getBackground(t){let i=t.isScene===true?t.background:null;if(i&&i.isTexture){const r=t.backgroundBlurriness>0;i=(r?n:e).get(i)}return i}function render(e){let n=false;const r=getBackground(e);if(r===null)setClear(o,l);else if(r&&r.isColor){setClear(r,1);n=true}const s=t.xr.getEnvironmentBlendMode();s===\"additive\"?i.buffers.color.setClear(0,0,0,1,a):s===\"alpha-blend\"&&i.buffers.color.setClear(0,0,0,0,a);if(t.autoClear||n){i.buffers.depth.setTest(true);i.buffers.depth.setMask(true);i.buffers.color.setMask(true);t.clear(t.autoClearColor,t.autoClearDepth,t.autoClearStencil)}}function addToRenderList(e,n){const i=getBackground(n);if(i&&(i.isCubeTexture||i.mapping===pt)){if(h===void 0){h=new Mesh(new BoxGeometry(1,1,1),new ShaderMaterial({name:\"BackgroundCubeMaterial\",uniforms:cloneUniforms(Vo.backgroundCube.uniforms),vertexShader:Vo.backgroundCube.vertexShader,fragmentShader:Vo.backgroundCube.fragmentShader,side:d,depthTest:false,depthWrite:false,fog:false}));h.geometry.deleteAttribute(\"normal\");h.geometry.deleteAttribute(\"uv\");h.onBeforeRender=function(t,e,n){this.matrixWorld.copyPosition(n.matrixWorld)};Object.defineProperty(h.material,\"envMap\",{get:function(){return this.uniforms.envMap.value}});r.update(h)}zo.copy(n.backgroundRotation);zo.x*=-1;zo.y*=-1;zo.z*=-1;if(i.isCubeTexture&&i.isRenderTargetTexture===false){zo.y*=-1;zo.z*=-1}h.material.uniforms.envMap.value=i;h.material.uniforms.flipEnvMap.value=i.isCubeTexture&&i.isRenderTargetTexture===false?-1:1;h.material.uniforms.backgroundBlurriness.value=n.backgroundBlurriness;h.material.uniforms.backgroundIntensity.value=n.backgroundIntensity;h.material.uniforms.backgroundRotation.value.setFromMatrix4(Go.makeRotationFromEuler(zo));h.material.toneMapped=ei.getTransfer(i.colorSpace)!==nn;if(p!==i||f!==i.version||m!==t.toneMapping){h.material.needsUpdate=true;p=i;f=i.version;m=t.toneMapping}h.layers.enableAll();e.unshift(h,h.geometry,h.material,0,0,null)}else if(i&&i.isTexture){if(c===void 0){c=new Mesh(new PlaneGeometry(2,2),new ShaderMaterial({name:\"BackgroundMaterial\",uniforms:cloneUniforms(Vo.background.uniforms),vertexShader:Vo.background.vertexShader,fragmentShader:Vo.background.fragmentShader,side:u,depthTest:false,depthWrite:false,fog:false}));c.geometry.deleteAttribute(\"normal\");Object.defineProperty(c.material,\"map\",{get:function(){return this.uniforms.t2D.value}});r.update(c)}c.material.uniforms.t2D.value=i;c.material.uniforms.backgroundIntensity.value=n.backgroundIntensity;c.material.toneMapped=ei.getTransfer(i.colorSpace)!==nn;i.matrixAutoUpdate===true&&i.updateMatrix();c.material.uniforms.uvTransform.value.copy(i.matrix);if(p!==i||f!==i.version||m!==t.toneMapping){c.material.needsUpdate=true;p=i;f=i.version;m=t.toneMapping}c.layers.enableAll();e.unshift(c,c.geometry,c.material,0,0,null)}}function setClear(e,n){e.getRGB(Fo,getUnlitUniformColorSpace(t));i.buffers.color.setClear(Fo.r,Fo.g,Fo.b,n,a)}return{getClearColor:function(){return o},setClearColor:function(t,e=1){o.set(t);l=e;setClear(o,l)},getClearAlpha:function(){return l},setClearAlpha:function(t){l=t;setClear(o,l)},render:render,addToRenderList:addToRenderList}}function WebGLBindingStates(t,e){const n=t.getParameter(t.MAX_VERTEX_ATTRIBS);const i={};const r=createBindingState(null);let s=r;let a=false;function setup(n,i,r,o,l){let c=false;const h=getBindingState(o,r,i);if(s!==h){s=h;bindVertexArrayObject(s.object)}c=needsUpdate(n,o,r,l);c&&saveCache(n,o,r,l);l!==null&&e.update(l,t.ELEMENT_ARRAY_BUFFER);if(c||a){a=false;setupVertexAttributes(n,i,r,o);l!==null&&t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,e.get(l).buffer)}}function createVertexArrayObject(){return t.createVertexArray()}function bindVertexArrayObject(e){return t.bindVertexArray(e)}function deleteVertexArrayObject(e){return t.deleteVertexArray(e)}function getBindingState(t,e,n){const r=n.wireframe===true;let s=i[t.id];if(s===void 0){s={};i[t.id]=s}let a=s[e.id];if(a===void 0){a={};s[e.id]=a}let o=a[r];if(o===void 0){o=createBindingState(createVertexArrayObject());a[r]=o}return o}function createBindingState(t){const e=[];const i=[];const r=[];for(let t=0;t<n;t++){e[t]=0;i[t]=0;r[t]=0}return{geometry:null,program:null,wireframe:false,newAttributes:e,enabledAttributes:i,attributeDivisors:r,object:t,attributes:{},index:null}}function needsUpdate(t,e,n,i){const r=s.attributes;const a=e.attributes;let o=0;const l=n.getAttributes();for(const e in l){const n=l[e];if(n.location>=0){const n=r[e];let i=a[e];if(i===void 0){e===\"instanceMatrix\"&&t.instanceMatrix&&(i=t.instanceMatrix);e===\"instanceColor\"&&t.instanceColor&&(i=t.instanceColor)}if(n===void 0)return true;if(n.attribute!==i)return true;if(i&&n.data!==i.data)return true;o++}}return s.attributesNum!==o||s.index!==i}function saveCache(t,e,n,i){const r={};const a=e.attributes;let o=0;const l=n.getAttributes();for(const e in l){const n=l[e];if(n.location>=0){let n=a[e];if(n===void 0){e===\"instanceMatrix\"&&t.instanceMatrix&&(n=t.instanceMatrix);e===\"instanceColor\"&&t.instanceColor&&(n=t.instanceColor)}const i={};i.attribute=n;n&&n.data&&(i.data=n.data);r[e]=i;o++}}s.attributes=r;s.attributesNum=o;s.index=i}function initAttributes(){const t=s.newAttributes;for(let e=0,n=t.length;e<n;e++)t[e]=0}function enableAttribute(t){enableAttributeAndDivisor(t,0)}function enableAttributeAndDivisor(e,n){const i=s.newAttributes;const r=s.enabledAttributes;const a=s.attributeDivisors;i[e]=1;if(r[e]===0){t.enableVertexAttribArray(e);r[e]=1}if(a[e]!==n){t.vertexAttribDivisor(e,n);a[e]=n}}function disableUnusedAttributes(){const e=s.newAttributes;const n=s.enabledAttributes;for(let i=0,r=n.length;i<r;i++)if(n[i]!==e[i]){t.disableVertexAttribArray(i);n[i]=0}}function vertexAttribPointer(e,n,i,r,s,a,o){o===true?t.vertexAttribIPointer(e,n,i,s,a):t.vertexAttribPointer(e,n,i,r,s,a)}function setupVertexAttributes(n,i,r,s){initAttributes();const a=s.attributes;const o=r.getAttributes();const l=i.defaultAttributeValues;for(const i in o){const r=o[i];if(r.location>=0){let o=a[i];if(o===void 0){i===\"instanceMatrix\"&&n.instanceMatrix&&(o=n.instanceMatrix);i===\"instanceColor\"&&n.instanceColor&&(o=n.instanceColor)}if(o!==void 0){const i=o.normalized;const a=o.itemSize;const l=e.get(o);if(l===void 0)continue;const c=l.buffer;const h=l.type;const u=l.bytesPerElement;const d=h===t.INT||h===t.UNSIGNED_INT||o.gpuType===Lt;if(o.isInterleavedBufferAttribute){const e=o.data;const l=e.stride;const p=o.offset;if(e.isInstancedInterleavedBuffer){for(let t=0;t<r.locationSize;t++)enableAttributeAndDivisor(r.location+t,e.meshPerAttribute);n.isInstancedMesh!==true&&s._maxInstanceCount===void 0&&(s._maxInstanceCount=e.meshPerAttribute*e.count)}else for(let t=0;t<r.locationSize;t++)enableAttribute(r.location+t);t.bindBuffer(t.ARRAY_BUFFER,c);for(let t=0;t<r.locationSize;t++)vertexAttribPointer(r.location+t,a/r.locationSize,h,i,l*u,(p+a/r.locationSize*t)*u,d)}else{if(o.isInstancedBufferAttribute){for(let t=0;t<r.locationSize;t++)enableAttributeAndDivisor(r.location+t,o.meshPerAttribute);n.isInstancedMesh!==true&&s._maxInstanceCount===void 0&&(s._maxInstanceCount=o.meshPerAttribute*o.count)}else for(let t=0;t<r.locationSize;t++)enableAttribute(r.location+t);t.bindBuffer(t.ARRAY_BUFFER,c);for(let t=0;t<r.locationSize;t++)vertexAttribPointer(r.location+t,a/r.locationSize,h,i,a*u,a/r.locationSize*t*u,d)}}else if(l!==void 0){const e=l[i];if(e!==void 0)switch(e.length){case 2:t.vertexAttrib2fv(r.location,e);break;case 3:t.vertexAttrib3fv(r.location,e);break;case 4:t.vertexAttrib4fv(r.location,e);break;default:t.vertexAttrib1fv(r.location,e)}}}}disableUnusedAttributes()}function dispose(){reset();for(const t in i){const e=i[t];for(const t in e){const n=e[t];for(const t in n){deleteVertexArrayObject(n[t].object);delete n[t]}delete e[t]}delete i[t]}}function releaseStatesOfGeometry(t){if(i[t.id]===void 0)return;const e=i[t.id];for(const t in e){const n=e[t];for(const t in n){deleteVertexArrayObject(n[t].object);delete n[t]}delete e[t]}delete i[t.id]}function releaseStatesOfProgram(t){for(const e in i){const n=i[e];if(n[t.id]===void 0)continue;const r=n[t.id];for(const t in r){deleteVertexArrayObject(r[t].object);delete r[t]}delete n[t.id]}}function reset(){resetDefaultState();a=true;if(s!==r){s=r;bindVertexArrayObject(s.object)}}function resetDefaultState(){r.geometry=null;r.program=null;r.wireframe=false}return{setup:setup,reset:reset,resetDefaultState:resetDefaultState,dispose:dispose,releaseStatesOfGeometry:releaseStatesOfGeometry,releaseStatesOfProgram:releaseStatesOfProgram,initAttributes:initAttributes,enableAttribute:enableAttribute,disableUnusedAttributes:disableUnusedAttributes}}function WebGLBufferRenderer(t,e,n){let i;function setMode(t){i=t}function render(e,r){t.drawArrays(i,e,r);n.update(r,i,1)}function renderInstances(e,r,s){if(s!==0){t.drawArraysInstanced(i,e,r,s);n.update(r,i,s)}}function renderMultiDraw(t,r,s){if(s===0)return;const a=e.get(\"WEBGL_multi_draw\");a.multiDrawArraysWEBGL(i,t,0,r,0,s);let o=0;for(let t=0;t<s;t++)o+=r[t];n.update(o,i,1)}function renderMultiDrawInstances(t,r,s,a){if(s===0)return;const o=e.get(\"WEBGL_multi_draw\");if(o===null)for(let e=0;e<t.length;e++)renderInstances(t[e],r[e],a[e]);else{o.multiDrawArraysInstancedWEBGL(i,t,0,r,0,a,0,s);let e=0;for(let t=0;t<s;t++)e+=r[t];for(let t=0;t<a.length;t++)n.update(e,i,a[t])}}this.setMode=setMode;this.render=render;this.renderInstances=renderInstances;this.renderMultiDraw=renderMultiDraw;this.renderMultiDrawInstances=renderMultiDrawInstances}function WebGLCapabilities(t,e,n,i){let r;function getMaxAnisotropy(){if(r!==void 0)return r;if(e.has(\"EXT_texture_filter_anisotropic\")===true){const n=e.get(\"EXT_texture_filter_anisotropic\");r=t.getParameter(n.MAX_TEXTURE_MAX_ANISOTROPY_EXT)}else r=0;return r}function textureFormatReadable(e){return e===Gt||i.convert(e)===t.getParameter(t.IMPLEMENTATION_COLOR_READ_FORMAT)}function textureTypeReadable(n){const r=n===Dt&&(e.has(\"EXT_color_buffer_half_float\")||e.has(\"EXT_color_buffer_float\"));return!(n!==At&&i.convert(n)!==t.getParameter(t.IMPLEMENTATION_COLOR_READ_TYPE)&&n!==Ut&&!r)}function getMaxPrecision(e){if(e===\"highp\"){if(t.getShaderPrecisionFormat(t.VERTEX_SHADER,t.HIGH_FLOAT).precision>0&&t.getShaderPrecisionFormat(t.FRAGMENT_SHADER,t.HIGH_FLOAT).precision>0)return\"highp\";e=\"mediump\"}return e===\"mediump\"&&t.getShaderPrecisionFormat(t.VERTEX_SHADER,t.MEDIUM_FLOAT).precision>0&&t.getShaderPrecisionFormat(t.FRAGMENT_SHADER,t.MEDIUM_FLOAT).precision>0?\"mediump\":\"lowp\"}let s=n.precision!==void 0?n.precision:\"highp\";const a=getMaxPrecision(s);if(a!==s){console.warn(\"THREE.WebGLRenderer:\",s,\"not supported, using\",a,\"instead.\");s=a}const o=n.logarithmicDepthBuffer===true;const l=t.getParameter(t.MAX_TEXTURE_IMAGE_UNITS);const c=t.getParameter(t.MAX_VERTEX_TEXTURE_IMAGE_UNITS);const h=t.getParameter(t.MAX_TEXTURE_SIZE);const u=t.getParameter(t.MAX_CUBE_MAP_TEXTURE_SIZE);const d=t.getParameter(t.MAX_VERTEX_ATTRIBS);const p=t.getParameter(t.MAX_VERTEX_UNIFORM_VECTORS);const f=t.getParameter(t.MAX_VARYING_VECTORS);const m=t.getParameter(t.MAX_FRAGMENT_UNIFORM_VECTORS);const g=c>0;const _=t.getParameter(t.MAX_SAMPLES);return{isWebGL2:true,getMaxAnisotropy:getMaxAnisotropy,getMaxPrecision:getMaxPrecision,textureFormatReadable:textureFormatReadable,textureTypeReadable:textureTypeReadable,precision:s,logarithmicDepthBuffer:o,maxTextures:l,maxVertexTextures:c,maxTextureSize:h,maxCubemapSize:u,maxAttributes:d,maxVertexUniforms:p,maxVaryings:f,maxFragmentUniforms:m,vertexTextures:g,maxSamples:_}}function WebGLClipping(t){const e=this;let n=null,i=0,r=false,s=false;const a=new Plane,o=new Matrix3,l={value:null,needsUpdate:false};this.uniform=l;this.numPlanes=0;this.numIntersection=0;this.init=function(t,e){const n=t.length!==0||e||i!==0||r;r=e;i=t.length;return n};this.beginShadows=function(){s=true;projectPlanes(null)};this.endShadows=function(){s=false};this.setGlobalState=function(t,e){n=projectPlanes(t,e,0)};this.setState=function(e,a,o){const c=e.clippingPlanes,h=e.clipIntersection,u=e.clipShadows;const d=t.get(e);if(!r||c===null||c.length===0||s&&!u)s?projectPlanes(null):resetGlobalState();else{const t=s?0:i,e=t*4;let r=d.clippingState||null;l.value=r;r=projectPlanes(c,a,e,o);for(let t=0;t!==e;++t)r[t]=n[t];d.clippingState=r;this.numIntersection=h?this.numPlanes:0;this.numPlanes+=t}};function resetGlobalState(){if(l.value!==n){l.value=n;l.needsUpdate=i>0}e.numPlanes=i;e.numIntersection=0}function projectPlanes(t,n,i,r){const s=t!==null?t.length:0;let c=null;if(s!==0){c=l.value;if(r!==true||c===null){const e=i+s*4,r=n.matrixWorldInverse;o.getNormalMatrix(r);(c===null||c.length<e)&&(c=new Float32Array(e));for(let e=0,n=i;e!==s;++e,n+=4){a.copy(t[e]).applyMatrix4(r,o);a.normal.toArray(c,n);c[n+3]=a.constant}}l.value=c;l.needsUpdate=true}e.numPlanes=s;e.numIntersection=0;return c}}function WebGLCubeMaps(t){let e=new WeakMap;function mapTextureMapping(t,e){e===ut?t.mapping=ct:e===dt&&(t.mapping=ht);return t}function get(n){if(n&&n.isTexture){const i=n.mapping;if(i===ut||i===dt){if(e.has(n)){const t=e.get(n).texture;return mapTextureMapping(t,n.mapping)}{const i=n.image;if(i&&i.height>0){const r=new WebGLCubeRenderTarget(i.height);r.fromEquirectangularTexture(t,n);e.set(n,r);n.addEventListener(\"dispose\",onTextureDispose);return mapTextureMapping(r.texture,n.mapping)}return null}}}return n}function onTextureDispose(t){const n=t.target;n.removeEventListener(\"dispose\",onTextureDispose);const i=e.get(n);if(i!==void 0){e.delete(n);i.dispose()}}function dispose(){e=new WeakMap}return{get:get,dispose:dispose}}class OrthographicCamera extends Camera{constructor(t=-1,e=1,n=1,i=-1,r=.1,s=2e3){super();this.isOrthographicCamera=true;this.type=\"OrthographicCamera\";this.zoom=1;this.view=null;this.left=t;this.right=e;this.top=n;this.bottom=i;this.near=r;this.far=s;this.updateProjectionMatrix()}copy(t,e){super.copy(t,e);this.left=t.left;this.right=t.right;this.top=t.top;this.bottom=t.bottom;this.near=t.near;this.far=t.far;this.zoom=t.zoom;this.view=t.view===null?null:Object.assign({},t.view);return this}setViewOffset(t,e,n,i,r,s){this.view===null&&(this.view={enabled:true,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1});this.view.enabled=true;this.view.fullWidth=t;this.view.fullHeight=e;this.view.offsetX=n;this.view.offsetY=i;this.view.width=r;this.view.height=s;this.updateProjectionMatrix()}clearViewOffset(){this.view!==null&&(this.view.enabled=false);this.updateProjectionMatrix()}updateProjectionMatrix(){const t=(this.right-this.left)/(2*this.zoom);const e=(this.top-this.bottom)/(2*this.zoom);const n=(this.right+this.left)/2;const i=(this.top+this.bottom)/2;let r=n-t;let s=n+t;let a=i+e;let o=i-e;if(this.view!==null&&this.view.enabled){const t=(this.right-this.left)/this.view.fullWidth/this.zoom;const e=(this.top-this.bottom)/this.view.fullHeight/this.zoom;r+=t*this.view.offsetX;s=r+t*this.view.width;a-=e*this.view.offsetY;o=a-e*this.view.height}this.projectionMatrix.makeOrthographic(r,s,a,o,this.near,this.far,this.coordinateSystem);this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(t){const e=super.toJSON(t);e.object.zoom=this.zoom;e.object.left=this.left;e.object.right=this.right;e.object.top=this.top;e.object.bottom=this.bottom;e.object.near=this.near;e.object.far=this.far;this.view!==null&&(e.object.view=Object.assign({},this.view));return e}}const ko=4;const Ho=[.125,.215,.35,.446,.526,.582];const Wo=20;const Xo=new OrthographicCamera;const jo=new Color;let qo=null;let Yo=0;let Ko=0;let Zo=false;const Jo=(1+Math.sqrt(5))/2;const Qo=1/Jo;const $o=[new Vector3(-Jo,Qo,0),new Vector3(Jo,Qo,0),new Vector3(-Qo,0,Jo),new Vector3(Qo,0,Jo),new Vector3(0,Jo,-Qo),new Vector3(0,Jo,Qo),new Vector3(-1,1,-1),new Vector3(1,1,-1),new Vector3(-1,1,1),new Vector3(1,1,1)];class PMREMGenerator{constructor(t){this._renderer=t;this._pingPongRenderTarget=null;this._lodMax=0;this._cubeSize=0;this._lodPlanes=[];this._sizeLods=[];this._sigmas=[];this._blurMaterial=null;this._cubemapMaterial=null;this._equirectMaterial=null;this._compileMaterial(this._blurMaterial)}fromScene(t,e=0,n=.1,i=100){qo=this._renderer.getRenderTarget();Yo=this._renderer.getActiveCubeFace();Ko=this._renderer.getActiveMipmapLevel();Zo=this._renderer.xr.enabled;this._renderer.xr.enabled=false;this._setSize(256);const r=this._allocateTargets();r.depthBuffer=true;this._sceneToCubeUV(t,n,i,r);e>0&&this._blur(r,0,0,e);this._applyPMREM(r);this._cleanup(r);return r}fromEquirectangular(t,e=null){return this._fromTexture(t,e)}fromCubemap(t,e=null){return this._fromTexture(t,e)}compileCubemapShader(){if(this._cubemapMaterial===null){this._cubemapMaterial=_getCubemapMaterial();this._compileMaterial(this._cubemapMaterial)}}compileEquirectangularShader(){if(this._equirectMaterial===null){this._equirectMaterial=_getEquirectMaterial();this._compileMaterial(this._equirectMaterial)}}dispose(){this._dispose();this._cubemapMaterial!==null&&this._cubemapMaterial.dispose();this._equirectMaterial!==null&&this._equirectMaterial.dispose()}_setSize(t){this._lodMax=Math.floor(Math.log2(t));this._cubeSize=Math.pow(2,this._lodMax)}_dispose(){this._blurMaterial!==null&&this._blurMaterial.dispose();this._pingPongRenderTarget!==null&&this._pingPongRenderTarget.dispose();for(let t=0;t<this._lodPlanes.length;t++)this._lodPlanes[t].dispose()}_cleanup(t){this._renderer.setRenderTarget(qo,Yo,Ko);this._renderer.xr.enabled=Zo;t.scissorTest=false;_setViewport(t,0,0,t.width,t.height)}_fromTexture(t,e){t.mapping===ct||t.mapping===ht?this._setSize(t.image.length===0?16:t.image[0].width||t.image[0].image.width):this._setSize(t.image.width/4);qo=this._renderer.getRenderTarget();Yo=this._renderer.getActiveCubeFace();Ko=this._renderer.getActiveMipmapLevel();Zo=this._renderer.xr.enabled;this._renderer.xr.enabled=false;const n=e||this._allocateTargets();this._textureToCubeUV(t,n);this._applyPMREM(n);this._cleanup(n);return n}_allocateTargets(){const t=3*Math.max(this._cubeSize,112);const e=4*this._cubeSize;const n={magFilter:St,minFilter:St,generateMipmaps:false,type:Dt,format:Gt,colorSpace:Qe,depthBuffer:false};const i=_createRenderTarget(t,e,n);if(this._pingPongRenderTarget===null||this._pingPongRenderTarget.width!==t||this._pingPongRenderTarget.height!==e){this._pingPongRenderTarget!==null&&this._dispose();this._pingPongRenderTarget=_createRenderTarget(t,e,n);const{_lodMax:i}=this;({sizeLods:this._sizeLods,lodPlanes:this._lodPlanes,sigmas:this._sigmas}=_createPlanes(i));this._blurMaterial=_getBlurShader(i,t,e)}return i}_compileMaterial(t){const e=new Mesh(this._lodPlanes[0],t);this._renderer.compile(e,Xo)}_sceneToCubeUV(t,e,n,i){const r=90;const s=1;const a=new PerspectiveCamera(r,s,e,n);const o=[1,-1,1,1,1,1];const l=[1,1,1,-1,-1,-1];const c=this._renderer;const h=c.autoClear;const u=c.toneMapping;c.getClearColor(jo);c.toneMapping=Q;c.autoClear=false;const p=new MeshBasicMaterial({name:\"PMREM.Background\",side:d,depthWrite:false,depthTest:false});const f=new Mesh(new BoxGeometry,p);let m=false;const g=t.background;if(g){if(g.isColor){p.color.copy(g);t.background=null;m=true}}else{p.color.copy(jo);m=true}for(let e=0;e<6;e++){const n=e%3;if(n===0){a.up.set(0,o[e],0);a.lookAt(l[e],0,0)}else if(n===1){a.up.set(0,0,o[e]);a.lookAt(0,l[e],0)}else{a.up.set(0,o[e],0);a.lookAt(0,0,l[e])}const r=this._cubeSize;_setViewport(i,n*r,e>2?r:0,r,r);c.setRenderTarget(i);m&&c.render(f,a);c.render(t,a)}f.geometry.dispose();f.material.dispose();c.toneMapping=u;c.autoClear=h;t.background=g}_textureToCubeUV(t,e){const n=this._renderer;const i=t.mapping===ct||t.mapping===ht;if(i){this._cubemapMaterial===null&&(this._cubemapMaterial=_getCubemapMaterial());this._cubemapMaterial.uniforms.flipEnvMap.value=t.isRenderTargetTexture===false?-1:1}else this._equirectMaterial===null&&(this._equirectMaterial=_getEquirectMaterial());const r=i?this._cubemapMaterial:this._equirectMaterial;const s=new Mesh(this._lodPlanes[0],r);const a=r.uniforms;a.envMap.value=t;const o=this._cubeSize;_setViewport(e,0,0,3*o,2*o);n.setRenderTarget(e);n.render(s,Xo)}_applyPMREM(t){const e=this._renderer;const n=e.autoClear;e.autoClear=false;const i=this._lodPlanes.length;for(let e=1;e<i;e++){const n=Math.sqrt(this._sigmas[e]*this._sigmas[e]-this._sigmas[e-1]*this._sigmas[e-1]);const r=$o[(i-e-1)%$o.length];this._blur(t,e-1,e,n,r)}e.autoClear=n}_blur(t,e,n,i,r){const s=this._pingPongRenderTarget;this._halfBlur(t,s,e,n,i,\"latitudinal\",r);this._halfBlur(s,t,n,n,i,\"longitudinal\",r)}_halfBlur(t,e,n,i,r,s,a){const o=this._renderer;const l=this._blurMaterial;s!==\"latitudinal\"&&s!==\"longitudinal\"&&console.error(\"blur direction must be either latitudinal or longitudinal!\");const c=3;const h=new Mesh(this._lodPlanes[i],l);const u=l.uniforms;const d=this._sizeLods[n]-1;const p=isFinite(r)?Math.PI/(2*d):2*Math.PI/(2*Wo-1);const f=r/p;const m=isFinite(r)?1+Math.floor(c*f):Wo;m>Wo&&console.warn(`sigmaRadians, ${r}, is too large and will clip, as it requested ${m} samples when the maximum is set to ${Wo}`);const g=[];let _=0;for(let t=0;t<Wo;++t){const e=t/f;const n=Math.exp(-e*e/2);g.push(n);t===0?_+=n:t<m&&(_+=2*n)}for(let t=0;t<g.length;t++)g[t]=g[t]/_;u.envMap.value=t.texture;u.samples.value=m;u.weights.value=g;u.latitudinal.value=s===\"latitudinal\";a&&(u.poleAxis.value=a);const{_lodMax:x}=this;u.dTheta.value=p;u.mipInt.value=x-n;const y=this._sizeLods[i];const M=3*y*(i>x-ko?i-x+ko:0);const S=4*(this._cubeSize-y);_setViewport(e,M,S,3*y,2*y);o.setRenderTarget(e);o.render(h,Xo)}}function _createPlanes(t){const e=[];const n=[];const i=[];let r=t;const s=t-ko+1+Ho.length;for(let a=0;a<s;a++){const s=Math.pow(2,r);n.push(s);let o=1/s;a>t-ko?o=Ho[a-t+ko-1]:a===0&&(o=0);i.push(o);const l=1/(s-2);const c=-l;const h=1+l;const u=[c,c,h,c,h,h,c,c,h,h,c,h];const d=6;const p=6;const f=3;const m=2;const g=1;const _=new Float32Array(f*p*d);const x=new Float32Array(m*p*d);const y=new Float32Array(g*p*d);for(let t=0;t<d;t++){const e=t%3*2/3-1;const n=t>2?0:-1;const i=[e,n,0,e+2/3,n,0,e+2/3,n+1,0,e,n,0,e+2/3,n+1,0,e,n+1,0];_.set(i,f*p*t);x.set(u,m*p*t);const r=[t,t,t,t,t,t];y.set(r,g*p*t)}const M=new BufferGeometry;M.setAttribute(\"position\",new BufferAttribute(_,f));M.setAttribute(\"uv\",new BufferAttribute(x,m));M.setAttribute(\"faceIndex\",new BufferAttribute(y,g));e.push(M);r>ko&&r--}return{lodPlanes:e,sizeLods:n,sigmas:i}}function _createRenderTarget(t,e,n){const i=new WebGLRenderTarget(t,e,n);i.texture.mapping=pt;i.texture.name=\"PMREM.cubeUv\";i.scissorTest=true;return i}function _setViewport(t,e,n,i,r){t.viewport.set(e,n,i,r);t.scissor.set(e,n,i,r)}function _getBlurShader(t,e,n){const i=new Float32Array(Wo);const r=new Vector3(0,1,0);const s=new ShaderMaterial({name:\"SphericalGaussianBlur\",defines:{n:Wo,CUBEUV_TEXEL_WIDTH:1/e,CUBEUV_TEXEL_HEIGHT:1/n,CUBEUV_MAX_MIP:`${t}.0`},uniforms:{envMap:{value:null},samples:{value:1},weights:{value:i},latitudinal:{value:false},dTheta:{value:0},mipInt:{value:0},poleAxis:{value:r}},vertexShader:_getCommonVertexShader(),fragmentShader:\"\\n\\n\\t\\t\\tprecision mediump float;\\n\\t\\t\\tprecision mediump int;\\n\\n\\t\\t\\tvarying vec3 vOutputDirection;\\n\\n\\t\\t\\tuniform sampler2D envMap;\\n\\t\\t\\tuniform int samples;\\n\\t\\t\\tuniform float weights[ n ];\\n\\t\\t\\tuniform bool latitudinal;\\n\\t\\t\\tuniform float dTheta;\\n\\t\\t\\tuniform float mipInt;\\n\\t\\t\\tuniform vec3 poleAxis;\\n\\n\\t\\t\\t#define ENVMAP_TYPE_CUBE_UV\\n\\t\\t\\t#include <cube_uv_reflection_fragment>\\n\\n\\t\\t\\tvec3 getSample( float theta, vec3 axis ) {\\n\\n\\t\\t\\t\\tfloat cosTheta = cos( theta );\\n\\t\\t\\t\\t// Rodrigues' axis-angle rotation\\n\\t\\t\\t\\tvec3 sampleDirection = vOutputDirection * cosTheta\\n\\t\\t\\t\\t\\t+ cross( axis, vOutputDirection ) * sin( theta )\\n\\t\\t\\t\\t\\t+ axis * dot( axis, vOutputDirection ) * ( 1.0 - cosTheta );\\n\\n\\t\\t\\t\\treturn bilinearCubeUV( envMap, sampleDirection, mipInt );\\n\\n\\t\\t\\t}\\n\\n\\t\\t\\tvoid main() {\\n\\n\\t\\t\\t\\tvec3 axis = latitudinal ? poleAxis : cross( poleAxis, vOutputDirection );\\n\\n\\t\\t\\t\\tif ( all( equal( axis, vec3( 0.0 ) ) ) ) {\\n\\n\\t\\t\\t\\t\\taxis = vec3( vOutputDirection.z, 0.0, - vOutputDirection.x );\\n\\n\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\taxis = normalize( axis );\\n\\n\\t\\t\\t\\tgl_FragColor = vec4( 0.0, 0.0, 0.0, 1.0 );\\n\\t\\t\\t\\tgl_FragColor.rgb += weights[ 0 ] * getSample( 0.0, axis );\\n\\n\\t\\t\\t\\tfor ( int i = 1; i < n; i++ ) {\\n\\n\\t\\t\\t\\t\\tif ( i >= samples ) {\\n\\n\\t\\t\\t\\t\\t\\tbreak;\\n\\n\\t\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\t\\tfloat theta = dTheta * float( i );\\n\\t\\t\\t\\t\\tgl_FragColor.rgb += weights[ i ] * getSample( -1.0 * theta, axis );\\n\\t\\t\\t\\t\\tgl_FragColor.rgb += weights[ i ] * getSample( theta, axis );\\n\\n\\t\\t\\t\\t}\\n\\n\\t\\t\\t}\\n\\t\\t\",blending:f,depthTest:false,depthWrite:false});return s}function _getEquirectMaterial(){return new ShaderMaterial({name:\"EquirectangularToCubeUV\",uniforms:{envMap:{value:null}},vertexShader:_getCommonVertexShader(),fragmentShader:\"\\n\\n\\t\\t\\tprecision mediump float;\\n\\t\\t\\tprecision mediump int;\\n\\n\\t\\t\\tvarying vec3 vOutputDirection;\\n\\n\\t\\t\\tuniform sampler2D envMap;\\n\\n\\t\\t\\t#include <common>\\n\\n\\t\\t\\tvoid main() {\\n\\n\\t\\t\\t\\tvec3 outputDirection = normalize( vOutputDirection );\\n\\t\\t\\t\\tvec2 uv = equirectUv( outputDirection );\\n\\n\\t\\t\\t\\tgl_FragColor = vec4( texture2D ( envMap, uv ).rgb, 1.0 );\\n\\n\\t\\t\\t}\\n\\t\\t\",blending:f,depthTest:false,depthWrite:false})}function _getCubemapMaterial(){return new ShaderMaterial({name:\"CubemapToCubeUV\",uniforms:{envMap:{value:null},flipEnvMap:{value:-1}},vertexShader:_getCommonVertexShader(),fragmentShader:\"\\n\\n\\t\\t\\tprecision mediump float;\\n\\t\\t\\tprecision mediump int;\\n\\n\\t\\t\\tuniform float flipEnvMap;\\n\\n\\t\\t\\tvarying vec3 vOutputDirection;\\n\\n\\t\\t\\tuniform samplerCube envMap;\\n\\n\\t\\t\\tvoid main() {\\n\\n\\t\\t\\t\\tgl_FragColor = textureCube( envMap, vec3( flipEnvMap * vOutputDirection.x, vOutputDirection.yz ) );\\n\\n\\t\\t\\t}\\n\\t\\t\",blending:f,depthTest:false,depthWrite:false})}function _getCommonVertexShader(){return\"\\n\\n\\t\\tprecision mediump float;\\n\\t\\tprecision mediump int;\\n\\n\\t\\tattribute float faceIndex;\\n\\n\\t\\tvarying vec3 vOutputDirection;\\n\\n\\t\\t// RH coordinate system; PMREM face-indexing convention\\n\\t\\tvec3 getDirection( vec2 uv, float face ) {\\n\\n\\t\\t\\tuv = 2.0 * uv - 1.0;\\n\\n\\t\\t\\tvec3 direction = vec3( uv, 1.0 );\\n\\n\\t\\t\\tif ( face == 0.0 ) {\\n\\n\\t\\t\\t\\tdirection = direction.zyx; // ( 1, v, u ) pos x\\n\\n\\t\\t\\t} else if ( face == 1.0 ) {\\n\\n\\t\\t\\t\\tdirection = direction.xzy;\\n\\t\\t\\t\\tdirection.xz *= -1.0; // ( -u, 1, -v ) pos y\\n\\n\\t\\t\\t} else if ( face == 2.0 ) {\\n\\n\\t\\t\\t\\tdirection.x *= -1.0; // ( -u, v, 1 ) pos z\\n\\n\\t\\t\\t} else if ( face == 3.0 ) {\\n\\n\\t\\t\\t\\tdirection = direction.zyx;\\n\\t\\t\\t\\tdirection.xz *= -1.0; // ( -1, v, -u ) neg x\\n\\n\\t\\t\\t} else if ( face == 4.0 ) {\\n\\n\\t\\t\\t\\tdirection = direction.xzy;\\n\\t\\t\\t\\tdirection.xy *= -1.0; // ( -u, -1, v ) neg y\\n\\n\\t\\t\\t} else if ( face == 5.0 ) {\\n\\n\\t\\t\\t\\tdirection.z *= -1.0; // ( u, v, -1 ) neg z\\n\\n\\t\\t\\t}\\n\\n\\t\\t\\treturn direction;\\n\\n\\t\\t}\\n\\n\\t\\tvoid main() {\\n\\n\\t\\t\\tvOutputDirection = getDirection( uv, faceIndex );\\n\\t\\t\\tgl_Position = vec4( position, 1.0 );\\n\\n\\t\\t}\\n\\t\"}function WebGLCubeUVMaps(t){let e=new WeakMap;let n=null;function get(i){if(i&&i.isTexture){const r=i.mapping;const s=r===ut||r===dt;const a=r===ct||r===ht;if(s||a){let r=e.get(i);const o=r!==void 0?r.texture.pmremVersion:0;if(i.isRenderTargetTexture&&i.pmremVersion!==o){n===null&&(n=new PMREMGenerator(t));r=s?n.fromEquirectangular(i,r):n.fromCubemap(i,r);r.texture.pmremVersion=i.pmremVersion;e.set(i,r);return r.texture}if(r!==void 0)return r.texture;{const o=i.image;if(s&&o&&o.height>0||a&&o&&isCubeTextureComplete(o)){n===null&&(n=new PMREMGenerator(t));r=s?n.fromEquirectangular(i):n.fromCubemap(i);r.texture.pmremVersion=i.pmremVersion;e.set(i,r);i.addEventListener(\"dispose\",onTextureDispose);return r.texture}return null}}}return i}function isCubeTextureComplete(t){let e=0;const n=6;for(let i=0;i<n;i++)t[i]!==void 0&&e++;return e===n}function onTextureDispose(t){const n=t.target;n.removeEventListener(\"dispose\",onTextureDispose);const i=e.get(n);if(i!==void 0){e.delete(n);i.dispose()}}function dispose(){e=new WeakMap;if(n!==null){n.dispose();n=null}}return{get:get,dispose:dispose}}function WebGLExtensions(t){const e={};function getExtension(n){if(e[n]!==void 0)return e[n];let i;switch(n){case\"WEBGL_depth_texture\":i=t.getExtension(\"WEBGL_depth_texture\")||t.getExtension(\"MOZ_WEBGL_depth_texture\")||t.getExtension(\"WEBKIT_WEBGL_depth_texture\");break;case\"EXT_texture_filter_anisotropic\":i=t.getExtension(\"EXT_texture_filter_anisotropic\")||t.getExtension(\"MOZ_EXT_texture_filter_anisotropic\")||t.getExtension(\"WEBKIT_EXT_texture_filter_anisotropic\");break;case\"WEBGL_compressed_texture_s3tc\":i=t.getExtension(\"WEBGL_compressed_texture_s3tc\")||t.getExtension(\"MOZ_WEBGL_compressed_texture_s3tc\")||t.getExtension(\"WEBKIT_WEBGL_compressed_texture_s3tc\");break;case\"WEBGL_compressed_texture_pvrtc\":i=t.getExtension(\"WEBGL_compressed_texture_pvrtc\")||t.getExtension(\"WEBKIT_WEBGL_compressed_texture_pvrtc\");break;default:i=t.getExtension(n)}e[n]=i;return i}return{has:function(t){return getExtension(t)!==null},init:function(){getExtension(\"EXT_color_buffer_float\");getExtension(\"WEBGL_clip_cull_distance\");getExtension(\"OES_texture_float_linear\");getExtension(\"EXT_color_buffer_half_float\");getExtension(\"WEBGL_multisampled_render_to_texture\");getExtension(\"WEBGL_render_shared_exponent\")},get:function(t){const e=getExtension(t);e===null&&warnOnce(\"THREE.WebGLRenderer: \"+t+\" extension not supported.\");return e}}}function WebGLGeometries(t,e,n,i){const r={};const s=new WeakMap;function onGeometryDispose(t){const a=t.target;a.index!==null&&e.remove(a.index);for(const t in a.attributes)e.remove(a.attributes[t]);for(const t in a.morphAttributes){const n=a.morphAttributes[t];for(let t=0,i=n.length;t<i;t++)e.remove(n[t])}a.removeEventListener(\"dispose\",onGeometryDispose);delete r[a.id];const o=s.get(a);if(o){e.remove(o);s.delete(a)}i.releaseStatesOfGeometry(a);a.isInstancedBufferGeometry===true&&delete a._maxInstanceCount;n.memory.geometries--}function get(t,e){if(r[e.id]===true)return e;e.addEventListener(\"dispose\",onGeometryDispose);r[e.id]=true;n.memory.geometries++;return e}function update(n){const i=n.attributes;for(const n in i)e.update(i[n],t.ARRAY_BUFFER);const r=n.morphAttributes;for(const n in r){const i=r[n];for(let n=0,r=i.length;n<r;n++)e.update(i[n],t.ARRAY_BUFFER)}}function updateWireframeAttribute(t){const n=[];const i=t.index;const r=t.attributes.position;let a=0;if(i!==null){const t=i.array;a=i.version;for(let e=0,i=t.length;e<i;e+=3){const i=t[e+0];const r=t[e+1];const s=t[e+2];n.push(i,r,r,s,s,i)}}else{if(r===void 0)return;{const t=r.array;a=r.version;for(let e=0,i=t.length/3-1;e<i;e+=3){const t=e+0;const i=e+1;const r=e+2;n.push(t,i,i,r,r,t)}}}const o=new(arrayNeedsUint32(n)?Uint32BufferAttribute:Uint16BufferAttribute)(n,1);o.version=a;const l=s.get(t);l&&e.remove(l);s.set(t,o)}function getWireframeAttribute(t){const e=s.get(t);if(e){const n=t.index;n!==null&&e.version<n.version&&updateWireframeAttribute(t)}else updateWireframeAttribute(t);return s.get(t)}return{get:get,update:update,getWireframeAttribute:getWireframeAttribute}}function WebGLIndexedBufferRenderer(t,e,n){let i;function setMode(t){i=t}let r,s;function setIndex(t){r=t.type;s=t.bytesPerElement}function render(e,a){t.drawElements(i,a,r,e*s);n.update(a,i,1)}function renderInstances(e,a,o){if(o!==0){t.drawElementsInstanced(i,a,r,e*s,o);n.update(a,i,o)}}function renderMultiDraw(t,s,a){if(a===0)return;const o=e.get(\"WEBGL_multi_draw\");o.multiDrawElementsWEBGL(i,s,0,r,t,0,a);let l=0;for(let t=0;t<a;t++)l+=s[t];n.update(l,i,1)}function renderMultiDrawInstances(t,a,o,l){if(o===0)return;const c=e.get(\"WEBGL_multi_draw\");if(c===null)for(let e=0;e<t.length;e++)renderInstances(t[e]/s,a[e],l[e]);else{c.multiDrawElementsInstancedWEBGL(i,a,0,r,t,0,l,0,o);let e=0;for(let t=0;t<o;t++)e+=a[t];for(let t=0;t<l.length;t++)n.update(e,i,l[t])}}this.setMode=setMode;this.setIndex=setIndex;this.render=render;this.renderInstances=renderInstances;this.renderMultiDraw=renderMultiDraw;this.renderMultiDrawInstances=renderMultiDrawInstances}function WebGLInfo(t){const e={geometries:0,textures:0};const n={frame:0,calls:0,triangles:0,points:0,lines:0};function update(e,i,r){n.calls++;switch(i){case t.TRIANGLES:n.triangles+=r*(e/3);break;case t.LINES:n.lines+=r*(e/2);break;case t.LINE_STRIP:n.lines+=r*(e-1);break;case t.LINE_LOOP:n.lines+=r*e;break;case t.POINTS:n.points+=r*e;break;default:console.error(\"THREE.WebGLInfo: Unknown draw mode:\",i);break}}function reset(){n.calls=0;n.triangles=0;n.points=0;n.lines=0}return{memory:e,render:n,programs:null,autoReset:true,reset:reset,update:update}}function WebGLMorphtargets(t,e,n){const i=new WeakMap;const r=new Vector4;function update(s,a,o){const l=s.morphTargetInfluences;const c=a.morphAttributes.position||a.morphAttributes.normal||a.morphAttributes.color;const h=c!==void 0?c.length:0;let u=i.get(a);if(u===void 0||u.count!==h){u!==void 0&&u.texture.dispose();const d=a.morphAttributes.position!==void 0;const p=a.morphAttributes.normal!==void 0;const f=a.morphAttributes.color!==void 0;const m=a.morphAttributes.position||[];const g=a.morphAttributes.normal||[];const _=a.morphAttributes.color||[];let x=0;d===true&&(x=1);p===true&&(x=2);f===true&&(x=3);let y=a.attributes.position.count*x;let M=1;if(y>e.maxTextureSize){M=Math.ceil(y/e.maxTextureSize);y=e.maxTextureSize}const S=new Float32Array(y*M*4*h);const b=new DataArrayTexture(S,y,M,h);b.type=Ut;b.needsUpdate=true;const T=x*4;for(let w=0;w<h;w++){const E=m[w];const A=g[w];const C=_[w];const R=y*M*4*w;for(let P=0;P<E.count;P++){const L=P*T;if(d===true){r.fromBufferAttribute(E,P);S[R+L+0]=r.x;S[R+L+1]=r.y;S[R+L+2]=r.z;S[R+L+3]=0}if(p===true){r.fromBufferAttribute(A,P);S[R+L+4]=r.x;S[R+L+5]=r.y;S[R+L+6]=r.z;S[R+L+7]=0}if(f===true){r.fromBufferAttribute(C,P);S[R+L+8]=r.x;S[R+L+9]=r.y;S[R+L+10]=r.z;S[R+L+11]=C.itemSize===4?r.w:1}}}u={count:h,texture:b,size:new Vector2(y,M)};i.set(a,u);function disposeTexture(){b.dispose();i.delete(a);a.removeEventListener(\"dispose\",disposeTexture)}a.addEventListener(\"dispose\",disposeTexture)}if(s.isInstancedMesh===true&&s.morphTexture!==null)o.getUniforms().setValue(t,\"morphTexture\",s.morphTexture,n);else{let I=0;for(let D=0;D<l.length;D++)I+=l[D];const U=a.morphTargetsRelative?1:1-I;o.getUniforms().setValue(t,\"morphTargetBaseInfluence\",U);o.getUniforms().setValue(t,\"morphTargetInfluences\",l)}o.getUniforms().setValue(t,\"morphTargetsTexture\",u.texture,n);o.getUniforms().setValue(t,\"morphTargetsTextureSize\",u.size)}return{update:update}}function WebGLObjects(t,e,n,i){let r=new WeakMap;function update(s){const a=i.render.frame;const o=s.geometry;const l=e.get(s,o);if(r.get(l)!==a){e.update(l);r.set(l,a)}if(s.isInstancedMesh){s.hasEventListener(\"dispose\",onInstancedMeshDispose)===false&&s.addEventListener(\"dispose\",onInstancedMeshDispose);if(r.get(s)!==a){n.update(s.instanceMatrix,t.ARRAY_BUFFER);s.instanceColor!==null&&n.update(s.instanceColor,t.ARRAY_BUFFER);r.set(s,a)}}if(s.isSkinnedMesh){const t=s.skeleton;if(r.get(t)!==a){t.update();r.set(t,a)}}return l}function dispose(){r=new WeakMap}function onInstancedMeshDispose(t){const e=t.target;e.removeEventListener(\"dispose\",onInstancedMeshDispose);n.remove(e.instanceMatrix);e.instanceColor!==null&&n.remove(e.instanceColor)}return{update:update,dispose:dispose}}class DepthTexture extends Texture{constructor(t,e,n,i,r,s,a,o,l,c=Wt){if(c!==Wt&&c!==Xt)throw new Error(\"DepthTexture format must be either THREE.DepthFormat or THREE.DepthStencilFormat\");n===void 0&&c===Wt&&(n=It);n===void 0&&c===Xt&&(n=Ot);super(null,i,r,s,a,o,c,n,l);this.isDepthTexture=true;this.image={width:t,height:e};this.magFilter=a!==void 0?a:vt;this.minFilter=o!==void 0?o:vt;this.flipY=false;this.generateMipmaps=false;this.compareFunction=null}copy(t){super.copy(t);this.compareFunction=t.compareFunction;return this}toJSON(t){const e=super.toJSON(t);this.compareFunction!==null&&(e.compareFunction=this.compareFunction);return e}}const tl=new Texture;const el=new DepthTexture(1,1);const nl=new DataArrayTexture;const il=new Data3DTexture;const rl=new CubeTexture;const sl=[];const al=[];const ol=new Float32Array(16);const ll=new Float32Array(9);const cl=new Float32Array(4);function flatten(t,e,n){const i=t[0];if(i<=0||i>0)return t;const r=e*n;let s=sl[r];if(s===void 0){s=new Float32Array(r);sl[r]=s}if(e!==0){i.toArray(s,0);for(let i=1,r=0;i!==e;++i){r+=n;t[i].toArray(s,r)}}return s}function arraysEqual(t,e){if(t.length!==e.length)return false;for(let n=0,i=t.length;n<i;n++)if(t[n]!==e[n])return false;return true}function copyArray(t,e){for(let n=0,i=e.length;n<i;n++)t[n]=e[n]}function allocTexUnits(t,e){let n=al[e];if(n===void 0){n=new Int32Array(e);al[e]=n}for(let i=0;i!==e;++i)n[i]=t.allocateTextureUnit();return n}function setValueV1f(t,e){const n=this.cache;if(n[0]!==e){t.uniform1f(this.addr,e);n[0]=e}}function setValueV2f(t,e){const n=this.cache;if(e.x!==void 0){if(n[0]!==e.x||n[1]!==e.y){t.uniform2f(this.addr,e.x,e.y);n[0]=e.x;n[1]=e.y}}else{if(arraysEqual(n,e))return;t.uniform2fv(this.addr,e);copyArray(n,e)}}function setValueV3f(t,e){const n=this.cache;if(e.x!==void 0){if(n[0]!==e.x||n[1]!==e.y||n[2]!==e.z){t.uniform3f(this.addr,e.x,e.y,e.z);n[0]=e.x;n[1]=e.y;n[2]=e.z}}else if(e.r!==void 0){if(n[0]!==e.r||n[1]!==e.g||n[2]!==e.b){t.uniform3f(this.addr,e.r,e.g,e.b);n[0]=e.r;n[1]=e.g;n[2]=e.b}}else{if(arraysEqual(n,e))return;t.uniform3fv(this.addr,e);copyArray(n,e)}}function setValueV4f(t,e){const n=this.cache;if(e.x!==void 0){if(n[0]!==e.x||n[1]!==e.y||n[2]!==e.z||n[3]!==e.w){t.uniform4f(this.addr,e.x,e.y,e.z,e.w);n[0]=e.x;n[1]=e.y;n[2]=e.z;n[3]=e.w}}else{if(arraysEqual(n,e))return;t.uniform4fv(this.addr,e);copyArray(n,e)}}function setValueM2(t,e){const n=this.cache;const i=e.elements;if(i===void 0){if(arraysEqual(n,e))return;t.uniformMatrix2fv(this.addr,false,e);copyArray(n,e)}else{if(arraysEqual(n,i))return;cl.set(i);t.uniformMatrix2fv(this.addr,false,cl);copyArray(n,i)}}function setValueM3(t,e){const n=this.cache;const i=e.elements;if(i===void 0){if(arraysEqual(n,e))return;t.uniformMatrix3fv(this.addr,false,e);copyArray(n,e)}else{if(arraysEqual(n,i))return;ll.set(i);t.uniformMatrix3fv(this.addr,false,ll);copyArray(n,i)}}function setValueM4(t,e){const n=this.cache;const i=e.elements;if(i===void 0){if(arraysEqual(n,e))return;t.uniformMatrix4fv(this.addr,false,e);copyArray(n,e)}else{if(arraysEqual(n,i))return;ol.set(i);t.uniformMatrix4fv(this.addr,false,ol);copyArray(n,i)}}function setValueV1i(t,e){const n=this.cache;if(n[0]!==e){t.uniform1i(this.addr,e);n[0]=e}}function setValueV2i(t,e){const n=this.cache;if(e.x!==void 0){if(n[0]!==e.x||n[1]!==e.y){t.uniform2i(this.addr,e.x,e.y);n[0]=e.x;n[1]=e.y}}else{if(arraysEqual(n,e))return;t.uniform2iv(this.addr,e);copyArray(n,e)}}function setValueV3i(t,e){const n=this.cache;if(e.x!==void 0){if(n[0]!==e.x||n[1]!==e.y||n[2]!==e.z){t.uniform3i(this.addr,e.x,e.y,e.z);n[0]=e.x;n[1]=e.y;n[2]=e.z}}else{if(arraysEqual(n,e))return;t.uniform3iv(this.addr,e);copyArray(n,e)}}function setValueV4i(t,e){const n=this.cache;if(e.x!==void 0){if(n[0]!==e.x||n[1]!==e.y||n[2]!==e.z||n[3]!==e.w){t.uniform4i(this.addr,e.x,e.y,e.z,e.w);n[0]=e.x;n[1]=e.y;n[2]=e.z;n[3]=e.w}}else{if(arraysEqual(n,e))return;t.uniform4iv(this.addr,e);copyArray(n,e)}}function setValueV1ui(t,e){const n=this.cache;if(n[0]!==e){t.uniform1ui(this.addr,e);n[0]=e}}function setValueV2ui(t,e){const n=this.cache;if(e.x!==void 0){if(n[0]!==e.x||n[1]!==e.y){t.uniform2ui(this.addr,e.x,e.y);n[0]=e.x;n[1]=e.y}}else{if(arraysEqual(n,e))return;t.uniform2uiv(this.addr,e);copyArray(n,e)}}function setValueV3ui(t,e){const n=this.cache;if(e.x!==void 0){if(n[0]!==e.x||n[1]!==e.y||n[2]!==e.z){t.uniform3ui(this.addr,e.x,e.y,e.z);n[0]=e.x;n[1]=e.y;n[2]=e.z}}else{if(arraysEqual(n,e))return;t.uniform3uiv(this.addr,e);copyArray(n,e)}}function setValueV4ui(t,e){const n=this.cache;if(e.x!==void 0){if(n[0]!==e.x||n[1]!==e.y||n[2]!==e.z||n[3]!==e.w){t.uniform4ui(this.addr,e.x,e.y,e.z,e.w);n[0]=e.x;n[1]=e.y;n[2]=e.z;n[3]=e.w}}else{if(arraysEqual(n,e))return;t.uniform4uiv(this.addr,e);copyArray(n,e)}}function setValueT1(t,e,n){const i=this.cache;const r=n.allocateTextureUnit();if(i[0]!==r){t.uniform1i(this.addr,r);i[0]=r}let s;if(this.type===t.SAMPLER_2D_SHADOW){el.compareFunction=wn;s=el}else s=tl;n.setTexture2D(e||s,r)}function setValueT3D1(t,e,n){const i=this.cache;const r=n.allocateTextureUnit();if(i[0]!==r){t.uniform1i(this.addr,r);i[0]=r}n.setTexture3D(e||il,r)}function setValueT6(t,e,n){const i=this.cache;const r=n.allocateTextureUnit();if(i[0]!==r){t.uniform1i(this.addr,r);i[0]=r}n.setTextureCube(e||rl,r)}function setValueT2DArray1(t,e,n){const i=this.cache;const r=n.allocateTextureUnit();if(i[0]!==r){t.uniform1i(this.addr,r);i[0]=r}n.setTexture2DArray(e||nl,r)}function getSingularSetter(t){switch(t){case 5126:return setValueV1f;case 35664:return setValueV2f;case 35665:return setValueV3f;case 35666:return setValueV4f;case 35674:return setValueM2;case 35675:return setValueM3;case 35676:return setValueM4;case 5124:case 35670:return setValueV1i;case 35667:case 35671:return setValueV2i;case 35668:case 35672:return setValueV3i;case 35669:case 35673:return setValueV4i;case 5125:return setValueV1ui;case 36294:return setValueV2ui;case 36295:return setValueV3ui;case 36296:return setValueV4ui;case 35678:case 36198:case 36298:case 36306:case 35682:return setValueT1;case 35679:case 36299:case 36307:return setValueT3D1;case 35680:case 36300:case 36308:case 36293:return setValueT6;case 36289:case 36303:case 36311:case 36292:return setValueT2DArray1}}function setValueV1fArray(t,e){t.uniform1fv(this.addr,e)}function setValueV2fArray(t,e){const n=flatten(e,this.size,2);t.uniform2fv(this.addr,n)}function setValueV3fArray(t,e){const n=flatten(e,this.size,3);t.uniform3fv(this.addr,n)}function setValueV4fArray(t,e){const n=flatten(e,this.size,4);t.uniform4fv(this.addr,n)}function setValueM2Array(t,e){const n=flatten(e,this.size,4);t.uniformMatrix2fv(this.addr,false,n)}function setValueM3Array(t,e){const n=flatten(e,this.size,9);t.uniformMatrix3fv(this.addr,false,n)}function setValueM4Array(t,e){const n=flatten(e,this.size,16);t.uniformMatrix4fv(this.addr,false,n)}function setValueV1iArray(t,e){t.uniform1iv(this.addr,e)}function setValueV2iArray(t,e){t.uniform2iv(this.addr,e)}function setValueV3iArray(t,e){t.uniform3iv(this.addr,e)}function setValueV4iArray(t,e){t.uniform4iv(this.addr,e)}function setValueV1uiArray(t,e){t.uniform1uiv(this.addr,e)}function setValueV2uiArray(t,e){t.uniform2uiv(this.addr,e)}function setValueV3uiArray(t,e){t.uniform3uiv(this.addr,e)}function setValueV4uiArray(t,e){t.uniform4uiv(this.addr,e)}function setValueT1Array(t,e,n){const i=this.cache;const r=e.length;const s=allocTexUnits(n,r);if(!arraysEqual(i,s)){t.uniform1iv(this.addr,s);copyArray(i,s)}for(let t=0;t!==r;++t)n.setTexture2D(e[t]||tl,s[t])}function setValueT3DArray(t,e,n){const i=this.cache;const r=e.length;const s=allocTexUnits(n,r);if(!arraysEqual(i,s)){t.uniform1iv(this.addr,s);copyArray(i,s)}for(let t=0;t!==r;++t)n.setTexture3D(e[t]||il,s[t])}function setValueT6Array(t,e,n){const i=this.cache;const r=e.length;const s=allocTexUnits(n,r);if(!arraysEqual(i,s)){t.uniform1iv(this.addr,s);copyArray(i,s)}for(let t=0;t!==r;++t)n.setTextureCube(e[t]||rl,s[t])}function setValueT2DArrayArray(t,e,n){const i=this.cache;const r=e.length;const s=allocTexUnits(n,r);if(!arraysEqual(i,s)){t.uniform1iv(this.addr,s);copyArray(i,s)}for(let t=0;t!==r;++t)n.setTexture2DArray(e[t]||nl,s[t])}function getPureArraySetter(t){switch(t){case 5126:return setValueV1fArray;case 35664:return setValueV2fArray;case 35665:return setValueV3fArray;case 35666:return setValueV4fArray;case 35674:return setValueM2Array;case 35675:return setValueM3Array;case 35676:return setValueM4Array;case 5124:case 35670:return setValueV1iArray;case 35667:case 35671:return setValueV2iArray;case 35668:case 35672:return setValueV3iArray;case 35669:case 35673:return setValueV4iArray;case 5125:return setValueV1uiArray;case 36294:return setValueV2uiArray;case 36295:return setValueV3uiArray;case 36296:return setValueV4uiArray;case 35678:case 36198:case 36298:case 36306:case 35682:return setValueT1Array;case 35679:case 36299:case 36307:return setValueT3DArray;case 35680:case 36300:case 36308:case 36293:return setValueT6Array;case 36289:case 36303:case 36311:case 36292:return setValueT2DArrayArray}}class SingleUniform{constructor(t,e,n){this.id=t;this.addr=n;this.cache=[];this.type=e.type;this.setValue=getSingularSetter(e.type)}}class PureArrayUniform{constructor(t,e,n){this.id=t;this.addr=n;this.cache=[];this.type=e.type;this.size=e.size;this.setValue=getPureArraySetter(e.type)}}class StructuredUniform{constructor(t){this.id=t;this.seq=[];this.map={}}setValue(t,e,n){const i=this.seq;for(let r=0,s=i.length;r!==s;++r){const s=i[r];s.setValue(t,e[s.id],n)}}}const hl=/(\\w+)(\\])?(\\[|\\.)?/g;function addUniform(t,e){t.seq.push(e);t.map[e.id]=e}function parseUniform(t,e,n){const i=t.name,r=i.length;hl.lastIndex=0;while(true){const s=hl.exec(i),a=hl.lastIndex;let o=s[1];const l=s[2]===\"]\",c=s[3];l&&(o|=0);if(c===void 0||c===\"[\"&&a+2===r){addUniform(n,c===void 0?new SingleUniform(o,t,e):new PureArrayUniform(o,t,e));break}{const t=n.map;let e=t[o];if(e===void 0){e=new StructuredUniform(o);addUniform(n,e)}n=e}}}class WebGLUniforms{constructor(t,e){this.seq=[];this.map={};const n=t.getProgramParameter(e,t.ACTIVE_UNIFORMS);for(let i=0;i<n;++i){const n=t.getActiveUniform(e,i),r=t.getUniformLocation(e,n.name);parseUniform(n,r,this)}}setValue(t,e,n,i){const r=this.map[e];r!==void 0&&r.setValue(t,n,i)}setOptional(t,e,n){const i=e[n];i!==void 0&&this.setValue(t,n,i)}static upload(t,e,n,i){for(let r=0,s=e.length;r!==s;++r){const s=e[r],a=n[s.id];a.needsUpdate!==false&&s.setValue(t,a.value,i)}}static seqWithValue(t,e){const n=[];for(let i=0,r=t.length;i!==r;++i){const r=t[i];r.id in e&&n.push(r)}return n}}function WebGLShader(t,e,n){const i=t.createShader(e);t.shaderSource(i,n);t.compileShader(i);return i}const ul=37297;let dl=0;function handleSource(t,e){const n=t.split(\"\\n\");const i=[];const r=Math.max(e-6,0);const s=Math.min(e+6,n.length);for(let t=r;t<s;t++){const r=t+1;i.push(`${r===e?\">\":\" \"} ${r}: ${n[t]}`)}return i.join(\"\\n\")}function getEncodingComponents(t){const e=ei.getPrimaries(ei.workingColorSpace);const n=ei.getPrimaries(t);let i;e===n?i=\"\":e===sn&&n===rn?i=\"LinearDisplayP3ToLinearSRGB\":e===rn&&n===sn&&(i=\"LinearSRGBToLinearDisplayP3\");switch(t){case Qe:case tn:return[i,\"LinearTransferOETF\"];case Je:case $e:return[i,\"sRGBTransferOETF\"];default:console.warn(\"THREE.WebGLProgram: Unsupported color space:\",t);return[i,\"LinearTransferOETF\"]}}function getShaderErrors(t,e,n){const i=t.getShaderParameter(e,t.COMPILE_STATUS);const r=t.getShaderInfoLog(e).trim();if(i&&r===\"\")return\"\";const s=/ERROR: 0:(\\d+)/.exec(r);if(s){const i=parseInt(s[1]);return n.toUpperCase()+\"\\n\\n\"+r+\"\\n\\n\"+handleSource(t.getShaderSource(e),i)}return r}function getTexelEncodingFunction(t,e){const n=getEncodingComponents(e);return`vec4 ${t}( vec4 value ) { return ${n[0]}( ${n[1]}( value ) ); }`}function getToneMappingFunction(t,e){let n;switch(e){case $:n=\"Linear\";break;case tt:n=\"Reinhard\";break;case et:n=\"OptimizedCineon\";break;case nt:n=\"ACESFilmic\";break;case rt:n=\"AgX\";break;case st:n=\"Neutral\";break;case it:n=\"Custom\";break;default:console.warn(\"THREE.WebGLProgram: Unsupported toneMapping:\",e);n=\"Linear\"}return\"vec3 \"+t+\"( vec3 color ) { return \"+n+\"ToneMapping( color ); }\"}const pl=new Vector3;function getLuminanceFunction(){ei.getLuminanceCoefficients(pl);const t=pl.x.toFixed(4);const e=pl.y.toFixed(4);const n=pl.z.toFixed(4);return[\"float luminance( const in vec3 rgb ) {\",`\\tconst vec3 weights = vec3( ${t}, ${e}, ${n} );`,\"\\treturn dot( weights, rgb );\",\"}\"].join(\"\\n\")}function generateVertexExtensions(t){const e=[t.extensionClipCullDistance?\"#extension GL_ANGLE_clip_cull_distance : require\":\"\",t.extensionMultiDraw?\"#extension GL_ANGLE_multi_draw : require\":\"\"];return e.filter(filterEmptyLine).join(\"\\n\")}function generateDefines(t){const e=[];for(const n in t){const i=t[n];i!==false&&e.push(\"#define \"+n+\" \"+i)}return e.join(\"\\n\")}function fetchAttributeLocations(t,e){const n={};const i=t.getProgramParameter(e,t.ACTIVE_ATTRIBUTES);for(let r=0;r<i;r++){const i=t.getActiveAttrib(e,r);const s=i.name;let a=1;i.type===t.FLOAT_MAT2&&(a=2);i.type===t.FLOAT_MAT3&&(a=3);i.type===t.FLOAT_MAT4&&(a=4);n[s]={type:i.type,location:t.getAttribLocation(e,s),locationSize:a}}return n}function filterEmptyLine(t){return t!==\"\"}function replaceLightNums(t,e){const n=e.numSpotLightShadows+e.numSpotLightMaps-e.numSpotLightShadowsWithMaps;return t.replace(/NUM_DIR_LIGHTS/g,e.numDirLights).replace(/NUM_SPOT_LIGHTS/g,e.numSpotLights).replace(/NUM_SPOT_LIGHT_MAPS/g,e.numSpotLightMaps).replace(/NUM_SPOT_LIGHT_COORDS/g,n).replace(/NUM_RECT_AREA_LIGHTS/g,e.numRectAreaLights).replace(/NUM_POINT_LIGHTS/g,e.numPointLights).replace(/NUM_HEMI_LIGHTS/g,e.numHemiLights).replace(/NUM_DIR_LIGHT_SHADOWS/g,e.numDirLightShadows).replace(/NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS/g,e.numSpotLightShadowsWithMaps).replace(/NUM_SPOT_LIGHT_SHADOWS/g,e.numSpotLightShadows).replace(/NUM_POINT_LIGHT_SHADOWS/g,e.numPointLightShadows)}function replaceClippingPlaneNums(t,e){return t.replace(/NUM_CLIPPING_PLANES/g,e.numClippingPlanes).replace(/UNION_CLIPPING_PLANES/g,e.numClippingPlanes-e.numClipIntersection)}const fl=/^[ \\t]*#include +<([\\w\\d./]+)>/gm;function resolveIncludes(t){return t.replace(fl,includeReplacer)}const ml=new Map;function includeReplacer(t,e){let n=Bo[e];if(n===void 0){const t=ml.get(e);if(t===void 0)throw new Error(\"Can not resolve #include <\"+e+\">\");n=Bo[t];console.warn('THREE.WebGLRenderer: Shader chunk \"%s\" has been deprecated. Use \"%s\" instead.',e,t)}return resolveIncludes(n)}const gl=/#pragma unroll_loop_start\\s+for\\s*\\(\\s*int\\s+i\\s*=\\s*(\\d+)\\s*;\\s*i\\s*<\\s*(\\d+)\\s*;\\s*i\\s*\\+\\+\\s*\\)\\s*{([\\s\\S]+?)}\\s+#pragma unroll_loop_end/g;function unrollLoops(t){return t.replace(gl,loopReplacer)}function loopReplacer(t,e,n,i){let r=\"\";for(let t=parseInt(e);t<parseInt(n);t++)r+=i.replace(/\\[\\s*i\\s*\\]/g,\"[ \"+t+\" ]\").replace(/UNROLLED_LOOP_INDEX/g,t);return r}function generatePrecision(t){let e=`precision ${t.precision} float;\\n\\tprecision ${t.precision} int;\\n\\tprecision ${t.precision} sampler2D;\\n\\tprecision ${t.precision} samplerCube;\\n\\tprecision ${t.precision} sampler3D;\\n\\tprecision ${t.precision} sampler2DArray;\\n\\tprecision ${t.precision} sampler2DShadow;\\n\\tprecision ${t.precision} samplerCubeShadow;\\n\\tprecision ${t.precision} sampler2DArrayShadow;\\n\\tprecision ${t.precision} isampler2D;\\n\\tprecision ${t.precision} isampler3D;\\n\\tprecision ${t.precision} isamplerCube;\\n\\tprecision ${t.precision} isampler2DArray;\\n\\tprecision ${t.precision} usampler2D;\\n\\tprecision ${t.precision} usampler3D;\\n\\tprecision ${t.precision} usamplerCube;\\n\\tprecision ${t.precision} usampler2DArray;\\n\\t`;t.precision===\"highp\"?e+=\"\\n#define HIGH_PRECISION\":t.precision===\"mediump\"?e+=\"\\n#define MEDIUM_PRECISION\":t.precision===\"lowp\"&&(e+=\"\\n#define LOW_PRECISION\");return e}function generateShadowMapTypeDefine(t){let e=\"SHADOWMAP_TYPE_BASIC\";t.shadowMapType===l?e=\"SHADOWMAP_TYPE_PCF\":t.shadowMapType===c?e=\"SHADOWMAP_TYPE_PCF_SOFT\":t.shadowMapType===h&&(e=\"SHADOWMAP_TYPE_VSM\");return e}function generateEnvMapTypeDefine(t){let e=\"ENVMAP_TYPE_CUBE\";if(t.envMap)switch(t.envMapMode){case ct:case ht:e=\"ENVMAP_TYPE_CUBE\";break;case pt:e=\"ENVMAP_TYPE_CUBE_UV\";break}return e}function generateEnvMapModeDefine(t){let e=\"ENVMAP_MODE_REFLECTION\";if(t.envMap)switch(t.envMapMode){case ht:e=\"ENVMAP_MODE_REFRACTION\";break}return e}function generateEnvMapBlendingDefine(t){let e=\"ENVMAP_BLENDING_NONE\";if(t.envMap)switch(t.combine){case K:e=\"ENVMAP_BLENDING_MULTIPLY\";break;case Z:e=\"ENVMAP_BLENDING_MIX\";break;case J:e=\"ENVMAP_BLENDING_ADD\";break}return e}function generateCubeUVSize(t){const e=t.envMapCubeUVHeight;if(e===null)return null;const n=Math.log2(e)-2;const i=1/e;const r=1/(3*Math.max(Math.pow(2,n),112));return{texelWidth:r,texelHeight:i,maxMip:n}}function WebGLProgram(t,e,n,i){const r=t.getContext();const s=n.defines;let a=n.vertexShader;let o=n.fragmentShader;const l=generateShadowMapTypeDefine(n);const c=generateEnvMapTypeDefine(n);const h=generateEnvMapModeDefine(n);const u=generateEnvMapBlendingDefine(n);const d=generateCubeUVSize(n);const p=generateVertexExtensions(n);const f=generateDefines(s);const m=r.createProgram();let g,_;let x=n.glslVersion?\"#version \"+n.glslVersion+\"\\n\":\"\";if(n.isRawShaderMaterial){g=[\"#define SHADER_TYPE \"+n.shaderType,\"#define SHADER_NAME \"+n.shaderName,f].filter(filterEmptyLine).join(\"\\n\");g.length>0&&(g+=\"\\n\");_=[\"#define SHADER_TYPE \"+n.shaderType,\"#define SHADER_NAME \"+n.shaderName,f].filter(filterEmptyLine).join(\"\\n\");_.length>0&&(_+=\"\\n\")}else{g=[generatePrecision(n),\"#define SHADER_TYPE \"+n.shaderType,\"#define SHADER_NAME \"+n.shaderName,f,n.extensionClipCullDistance?\"#define USE_CLIP_DISTANCE\":\"\",n.batching?\"#define USE_BATCHING\":\"\",n.batchingColor?\"#define USE_BATCHING_COLOR\":\"\",n.instancing?\"#define USE_INSTANCING\":\"\",n.instancingColor?\"#define USE_INSTANCING_COLOR\":\"\",n.instancingMorph?\"#define USE_INSTANCING_MORPH\":\"\",n.useFog&&n.fog?\"#define USE_FOG\":\"\",n.useFog&&n.fogExp2?\"#define FOG_EXP2\":\"\",n.map?\"#define USE_MAP\":\"\",n.envMap?\"#define USE_ENVMAP\":\"\",n.envMap?\"#define \"+h:\"\",n.lightMap?\"#define USE_LIGHTMAP\":\"\",n.aoMap?\"#define USE_AOMAP\":\"\",n.bumpMap?\"#define USE_BUMPMAP\":\"\",n.normalMap?\"#define USE_NORMALMAP\":\"\",n.normalMapObjectSpace?\"#define USE_NORMALMAP_OBJECTSPACE\":\"\",n.normalMapTangentSpace?\"#define USE_NORMALMAP_TANGENTSPACE\":\"\",n.displacementMap?\"#define USE_DISPLACEMENTMAP\":\"\",n.emissiveMap?\"#define USE_EMISSIVEMAP\":\"\",n.anisotropy?\"#define USE_ANISOTROPY\":\"\",n.anisotropyMap?\"#define USE_ANISOTROPYMAP\":\"\",n.clearcoatMap?\"#define USE_CLEARCOATMAP\":\"\",n.clearcoatRoughnessMap?\"#define USE_CLEARCOAT_ROUGHNESSMAP\":\"\",n.clearcoatNormalMap?\"#define USE_CLEARCOAT_NORMALMAP\":\"\",n.iridescenceMap?\"#define USE_IRIDESCENCEMAP\":\"\",n.iridescenceThicknessMap?\"#define USE_IRIDESCENCE_THICKNESSMAP\":\"\",n.specularMap?\"#define USE_SPECULARMAP\":\"\",n.specularColorMap?\"#define USE_SPECULAR_COLORMAP\":\"\",n.specularIntensityMap?\"#define USE_SPECULAR_INTENSITYMAP\":\"\",n.roughnessMap?\"#define USE_ROUGHNESSMAP\":\"\",n.metalnessMap?\"#define USE_METALNESSMAP\":\"\",n.alphaMap?\"#define USE_ALPHAMAP\":\"\",n.alphaHash?\"#define USE_ALPHAHASH\":\"\",n.transmission?\"#define USE_TRANSMISSION\":\"\",n.transmissionMap?\"#define USE_TRANSMISSIONMAP\":\"\",n.thicknessMap?\"#define USE_THICKNESSMAP\":\"\",n.sheenColorMap?\"#define USE_SHEEN_COLORMAP\":\"\",n.sheenRoughnessMap?\"#define USE_SHEEN_ROUGHNESSMAP\":\"\",n.mapUv?\"#define MAP_UV \"+n.mapUv:\"\",n.alphaMapUv?\"#define ALPHAMAP_UV \"+n.alphaMapUv:\"\",n.lightMapUv?\"#define LIGHTMAP_UV \"+n.lightMapUv:\"\",n.aoMapUv?\"#define AOMAP_UV \"+n.aoMapUv:\"\",n.emissiveMapUv?\"#define EMISSIVEMAP_UV \"+n.emissiveMapUv:\"\",n.bumpMapUv?\"#define BUMPMAP_UV \"+n.bumpMapUv:\"\",n.normalMapUv?\"#define NORMALMAP_UV \"+n.normalMapUv:\"\",n.displacementMapUv?\"#define DISPLACEMENTMAP_UV \"+n.displacementMapUv:\"\",n.metalnessMapUv?\"#define METALNESSMAP_UV \"+n.metalnessMapUv:\"\",n.roughnessMapUv?\"#define ROUGHNESSMAP_UV \"+n.roughnessMapUv:\"\",n.anisotropyMapUv?\"#define ANISOTROPYMAP_UV \"+n.anisotropyMapUv:\"\",n.clearcoatMapUv?\"#define CLEARCOATMAP_UV \"+n.clearcoatMapUv:\"\",n.clearcoatNormalMapUv?\"#define CLEARCOAT_NORMALMAP_UV \"+n.clearcoatNormalMapUv:\"\",n.clearcoatRoughnessMapUv?\"#define CLEARCOAT_ROUGHNESSMAP_UV \"+n.clearcoatRoughnessMapUv:\"\",n.iridescenceMapUv?\"#define IRIDESCENCEMAP_UV \"+n.iridescenceMapUv:\"\",n.iridescenceThicknessMapUv?\"#define IRIDESCENCE_THICKNESSMAP_UV \"+n.iridescenceThicknessMapUv:\"\",n.sheenColorMapUv?\"#define SHEEN_COLORMAP_UV \"+n.sheenColorMapUv:\"\",n.sheenRoughnessMapUv?\"#define SHEEN_ROUGHNESSMAP_UV \"+n.sheenRoughnessMapUv:\"\",n.specularMapUv?\"#define SPECULARMAP_UV \"+n.specularMapUv:\"\",n.specularColorMapUv?\"#define SPECULAR_COLORMAP_UV \"+n.specularColorMapUv:\"\",n.specularIntensityMapUv?\"#define SPECULAR_INTENSITYMAP_UV \"+n.specularIntensityMapUv:\"\",n.transmissionMapUv?\"#define TRANSMISSIONMAP_UV \"+n.transmissionMapUv:\"\",n.thicknessMapUv?\"#define THICKNESSMAP_UV \"+n.thicknessMapUv:\"\",n.vertexTangents&&n.flatShading===false?\"#define USE_TANGENT\":\"\",n.vertexColors?\"#define USE_COLOR\":\"\",n.vertexAlphas?\"#define USE_COLOR_ALPHA\":\"\",n.vertexUv1s?\"#define USE_UV1\":\"\",n.vertexUv2s?\"#define USE_UV2\":\"\",n.vertexUv3s?\"#define USE_UV3\":\"\",n.pointsUvs?\"#define USE_POINTS_UV\":\"\",n.flatShading?\"#define FLAT_SHADED\":\"\",n.skinning?\"#define USE_SKINNING\":\"\",n.morphTargets?\"#define USE_MORPHTARGETS\":\"\",n.morphNormals&&n.flatShading===false?\"#define USE_MORPHNORMALS\":\"\",n.morphColors?\"#define USE_MORPHCOLORS\":\"\",n.morphTargetsCount>0?\"#define MORPHTARGETS_TEXTURE_STRIDE \"+n.morphTextureStride:\"\",n.morphTargetsCount>0?\"#define MORPHTARGETS_COUNT \"+n.morphTargetsCount:\"\",n.doubleSided?\"#define DOUBLE_SIDED\":\"\",n.flipSided?\"#define FLIP_SIDED\":\"\",n.shadowMapEnabled?\"#define USE_SHADOWMAP\":\"\",n.shadowMapEnabled?\"#define \"+l:\"\",n.sizeAttenuation?\"#define USE_SIZEATTENUATION\":\"\",n.numLightProbes>0?\"#define USE_LIGHT_PROBES\":\"\",n.logarithmicDepthBuffer?\"#define USE_LOGDEPTHBUF\":\"\",\"uniform mat4 modelMatrix;\",\"uniform mat4 modelViewMatrix;\",\"uniform mat4 projectionMatrix;\",\"uniform mat4 viewMatrix;\",\"uniform mat3 normalMatrix;\",\"uniform vec3 cameraPosition;\",\"uniform bool isOrthographic;\",\"#ifdef USE_INSTANCING\",\"\\tattribute mat4 instanceMatrix;\",\"#endif\",\"#ifdef USE_INSTANCING_COLOR\",\"\\tattribute vec3 instanceColor;\",\"#endif\",\"#ifdef USE_INSTANCING_MORPH\",\"\\tuniform sampler2D morphTexture;\",\"#endif\",\"attribute vec3 position;\",\"attribute vec3 normal;\",\"attribute vec2 uv;\",\"#ifdef USE_UV1\",\"\\tattribute vec2 uv1;\",\"#endif\",\"#ifdef USE_UV2\",\"\\tattribute vec2 uv2;\",\"#endif\",\"#ifdef USE_UV3\",\"\\tattribute vec2 uv3;\",\"#endif\",\"#ifdef USE_TANGENT\",\"\\tattribute vec4 tangent;\",\"#endif\",\"#if defined( USE_COLOR_ALPHA )\",\"\\tattribute vec4 color;\",\"#elif defined( USE_COLOR )\",\"\\tattribute vec3 color;\",\"#endif\",\"#ifdef USE_SKINNING\",\"\\tattribute vec4 skinIndex;\",\"\\tattribute vec4 skinWeight;\",\"#endif\",\"\\n\"].filter(filterEmptyLine).join(\"\\n\");_=[generatePrecision(n),\"#define SHADER_TYPE \"+n.shaderType,\"#define SHADER_NAME \"+n.shaderName,f,n.useFog&&n.fog?\"#define USE_FOG\":\"\",n.useFog&&n.fogExp2?\"#define FOG_EXP2\":\"\",n.alphaToCoverage?\"#define ALPHA_TO_COVERAGE\":\"\",n.map?\"#define USE_MAP\":\"\",n.matcap?\"#define USE_MATCAP\":\"\",n.envMap?\"#define USE_ENVMAP\":\"\",n.envMap?\"#define \"+c:\"\",n.envMap?\"#define \"+h:\"\",n.envMap?\"#define \"+u:\"\",d?\"#define CUBEUV_TEXEL_WIDTH \"+d.texelWidth:\"\",d?\"#define CUBEUV_TEXEL_HEIGHT \"+d.texelHeight:\"\",d?\"#define CUBEUV_MAX_MIP \"+d.maxMip+\".0\":\"\",n.lightMap?\"#define USE_LIGHTMAP\":\"\",n.aoMap?\"#define USE_AOMAP\":\"\",n.bumpMap?\"#define USE_BUMPMAP\":\"\",n.normalMap?\"#define USE_NORMALMAP\":\"\",n.normalMapObjectSpace?\"#define USE_NORMALMAP_OBJECTSPACE\":\"\",n.normalMapTangentSpace?\"#define USE_NORMALMAP_TANGENTSPACE\":\"\",n.emissiveMap?\"#define USE_EMISSIVEMAP\":\"\",n.anisotropy?\"#define USE_ANISOTROPY\":\"\",n.anisotropyMap?\"#define USE_ANISOTROPYMAP\":\"\",n.clearcoat?\"#define USE_CLEARCOAT\":\"\",n.clearcoatMap?\"#define USE_CLEARCOATMAP\":\"\",n.clearcoatRoughnessMap?\"#define USE_CLEARCOAT_ROUGHNESSMAP\":\"\",n.clearcoatNormalMap?\"#define USE_CLEARCOAT_NORMALMAP\":\"\",n.dispersion?\"#define USE_DISPERSION\":\"\",n.iridescence?\"#define USE_IRIDESCENCE\":\"\",n.iridescenceMap?\"#define USE_IRIDESCENCEMAP\":\"\",n.iridescenceThicknessMap?\"#define USE_IRIDESCENCE_THICKNESSMAP\":\"\",n.specularMap?\"#define USE_SPECULARMAP\":\"\",n.specularColorMap?\"#define USE_SPECULAR_COLORMAP\":\"\",n.specularIntensityMap?\"#define USE_SPECULAR_INTENSITYMAP\":\"\",n.roughnessMap?\"#define USE_ROUGHNESSMAP\":\"\",n.metalnessMap?\"#define USE_METALNESSMAP\":\"\",n.alphaMap?\"#define USE_ALPHAMAP\":\"\",n.alphaTest?\"#define USE_ALPHATEST\":\"\",n.alphaHash?\"#define USE_ALPHAHASH\":\"\",n.sheen?\"#define USE_SHEEN\":\"\",n.sheenColorMap?\"#define USE_SHEEN_COLORMAP\":\"\",n.sheenRoughnessMap?\"#define USE_SHEEN_ROUGHNESSMAP\":\"\",n.transmission?\"#define USE_TRANSMISSION\":\"\",n.transmissionMap?\"#define USE_TRANSMISSIONMAP\":\"\",n.thicknessMap?\"#define USE_THICKNESSMAP\":\"\",n.vertexTangents&&n.flatShading===false?\"#define USE_TANGENT\":\"\",n.vertexColors||n.instancingColor||n.batchingColor?\"#define USE_COLOR\":\"\",n.vertexAlphas?\"#define USE_COLOR_ALPHA\":\"\",n.vertexUv1s?\"#define USE_UV1\":\"\",n.vertexUv2s?\"#define USE_UV2\":\"\",n.vertexUv3s?\"#define USE_UV3\":\"\",n.pointsUvs?\"#define USE_POINTS_UV\":\"\",n.gradientMap?\"#define USE_GRADIENTMAP\":\"\",n.flatShading?\"#define FLAT_SHADED\":\"\",n.doubleSided?\"#define DOUBLE_SIDED\":\"\",n.flipSided?\"#define FLIP_SIDED\":\"\",n.shadowMapEnabled?\"#define USE_SHADOWMAP\":\"\",n.shadowMapEnabled?\"#define \"+l:\"\",n.premultipliedAlpha?\"#define PREMULTIPLIED_ALPHA\":\"\",n.numLightProbes>0?\"#define USE_LIGHT_PROBES\":\"\",n.decodeVideoTexture?\"#define DECODE_VIDEO_TEXTURE\":\"\",n.logarithmicDepthBuffer?\"#define USE_LOGDEPTHBUF\":\"\",\"uniform mat4 viewMatrix;\",\"uniform vec3 cameraPosition;\",\"uniform bool isOrthographic;\",n.toneMapping!==Q?\"#define TONE_MAPPING\":\"\",n.toneMapping!==Q?Bo.tonemapping_pars_fragment:\"\",n.toneMapping!==Q?getToneMappingFunction(\"toneMapping\",n.toneMapping):\"\",n.dithering?\"#define DITHERING\":\"\",n.opaque?\"#define OPAQUE\":\"\",Bo.colorspace_pars_fragment,getTexelEncodingFunction(\"linearToOutputTexel\",n.outputColorSpace),getLuminanceFunction(),n.useDepthPacking?\"#define DEPTH_PACKING \"+n.depthPacking:\"\",\"\\n\"].filter(filterEmptyLine).join(\"\\n\")}a=resolveIncludes(a);a=replaceLightNums(a,n);a=replaceClippingPlaneNums(a,n);o=resolveIncludes(o);o=replaceLightNums(o,n);o=replaceClippingPlaneNums(o,n);a=unrollLoops(a);o=unrollLoops(o);if(n.isRawShaderMaterial!==true){x=\"#version 300 es\\n\";g=[p,\"#define attribute in\",\"#define varying out\",\"#define texture2D texture\"].join(\"\\n\")+\"\\n\"+g;_=[\"#define varying in\",n.glslVersion===zn?\"\":\"layout(location = 0) out highp vec4 pc_fragColor;\",n.glslVersion===zn?\"\":\"#define gl_FragColor pc_fragColor\",\"#define gl_FragDepthEXT gl_FragDepth\",\"#define texture2D texture\",\"#define textureCube texture\",\"#define texture2DProj textureProj\",\"#define texture2DLodEXT textureLod\",\"#define texture2DProjLodEXT textureProjLod\",\"#define textureCubeLodEXT textureLod\",\"#define texture2DGradEXT textureGrad\",\"#define texture2DProjGradEXT textureProjGrad\",\"#define textureCubeGradEXT textureGrad\"].join(\"\\n\")+\"\\n\"+_}const y=x+g+a;const M=x+_+o;const S=WebGLShader(r,r.VERTEX_SHADER,y);const b=WebGLShader(r,r.FRAGMENT_SHADER,M);r.attachShader(m,S);r.attachShader(m,b);n.index0AttributeName!==void 0?r.bindAttribLocation(m,0,n.index0AttributeName):n.morphTargets===true&&r.bindAttribLocation(m,0,\"position\");r.linkProgram(m);function onFirstUse(e){if(t.debug.checkShaderErrors){const n=r.getProgramInfoLog(m).trim();const i=r.getShaderInfoLog(S).trim();const s=r.getShaderInfoLog(b).trim();let a=true;let o=true;if(r.getProgramParameter(m,r.LINK_STATUS)===false){a=false;if(typeof t.debug.onShaderError===\"function\")t.debug.onShaderError(r,m,S,b);else{const t=getShaderErrors(r,S,\"vertex\");const i=getShaderErrors(r,b,\"fragment\");console.error(\"THREE.WebGLProgram: Shader Error \"+r.getError()+\" - VALIDATE_STATUS \"+r.getProgramParameter(m,r.VALIDATE_STATUS)+\"\\n\\nMaterial Name: \"+e.name+\"\\nMaterial Type: \"+e.type+\"\\n\\nProgram Info Log: \"+n+\"\\n\"+t+\"\\n\"+i)}}else n!==\"\"?console.warn(\"THREE.WebGLProgram: Program Info Log:\",n):i!==\"\"&&s!==\"\"||(o=false);o&&(e.diagnostics={runnable:a,programLog:n,vertexShader:{log:i,prefix:g},fragmentShader:{log:s,prefix:_}})}r.deleteShader(S);r.deleteShader(b);T=new WebGLUniforms(r,m);w=fetchAttributeLocations(r,m)}let T;this.getUniforms=function(){T===void 0&&onFirstUse(this);return T};let w;this.getAttributes=function(){w===void 0&&onFirstUse(this);return w};let E=n.rendererExtensionParallelShaderCompile===false;this.isReady=function(){E===false&&(E=r.getProgramParameter(m,ul));return E};this.destroy=function(){i.releaseStatesOfProgram(this);r.deleteProgram(m);this.program=void 0};this.type=n.shaderType;this.name=n.shaderName;this.id=dl++;this.cacheKey=e;this.usedTimes=1;this.program=m;this.vertexShader=S;this.fragmentShader=b;return this}let vl=0;class WebGLShaderCache{constructor(){this.shaderCache=new Map;this.materialCache=new Map}update(t){const e=t.vertexShader;const n=t.fragmentShader;const i=this._getShaderStage(e);const r=this._getShaderStage(n);const s=this._getShaderCacheForMaterial(t);if(s.has(i)===false){s.add(i);i.usedTimes++}if(s.has(r)===false){s.add(r);r.usedTimes++}return this}remove(t){const e=this.materialCache.get(t);for(const t of e){t.usedTimes--;t.usedTimes===0&&this.shaderCache.delete(t.code)}this.materialCache.delete(t);return this}getVertexShaderID(t){return this._getShaderStage(t.vertexShader).id}getFragmentShaderID(t){return this._getShaderStage(t.fragmentShader).id}dispose(){this.shaderCache.clear();this.materialCache.clear()}_getShaderCacheForMaterial(t){const e=this.materialCache;let n=e.get(t);if(n===void 0){n=new Set;e.set(t,n)}return n}_getShaderStage(t){const e=this.shaderCache;let n=e.get(t);if(n===void 0){n=new WebGLShaderStage(t);e.set(t,n)}return n}}class WebGLShaderStage{constructor(t){this.id=vl++;this.code=t;this.usedTimes=0}}function WebGLPrograms(t,e,n,i,r,s,a){const o=new Layers;const l=new WebGLShaderCache;const c=new Set;const h=[];const u=r.logarithmicDepthBuffer;const f=r.vertexTextures;let g=r.precision;const _={MeshDepthMaterial:\"depth\",MeshDistanceMaterial:\"distanceRGBA\",MeshNormalMaterial:\"normal\",MeshBasicMaterial:\"basic\",MeshLambertMaterial:\"lambert\",MeshPhongMaterial:\"phong\",MeshToonMaterial:\"toon\",MeshStandardMaterial:\"physical\",MeshPhysicalMaterial:\"physical\",MeshMatcapMaterial:\"matcap\",LineBasicMaterial:\"basic\",LineDashedMaterial:\"dashed\",PointsMaterial:\"points\",ShadowMaterial:\"shadow\",SpriteMaterial:\"sprite\"};function getChannel(t){c.add(t);return t===0?\"uv\":`uv${t}`}function getParameters(s,o,h,x,y){const M=x.fog;const S=y.geometry;const b=s.isMeshStandardMaterial?x.environment:null;const T=(s.isMeshStandardMaterial?n:e).get(s.envMap||b);const w=!T||T.mapping!==pt?null:T.image.height;const E=_[s.type];if(s.precision!==null){g=r.getMaxPrecision(s.precision);g!==s.precision&&console.warn(\"THREE.WebGLProgram.getParameters:\",s.precision,\"not supported, using\",g,\"instead.\")}const A=S.morphAttributes.position||S.morphAttributes.normal||S.morphAttributes.color;const C=A!==void 0?A.length:0;let R=0;S.morphAttributes.position!==void 0&&(R=1);S.morphAttributes.normal!==void 0&&(R=2);S.morphAttributes.color!==void 0&&(R=3);let P,L;let I,U;if(E){const t=Vo[E];P=t.vertexShader;L=t.fragmentShader}else{P=s.vertexShader;L=s.fragmentShader;l.update(s);I=l.getVertexShaderID(s);U=l.getFragmentShaderID(s)}const D=t.getRenderTarget();const N=y.isInstancedMesh===true;const B=y.isBatchedMesh===true;const O=!!s.map;const V=!!s.matcap;const F=!!T;const z=!!s.aoMap;const G=!!s.lightMap;const k=!!s.bumpMap;const H=!!s.normalMap;const W=!!s.displacementMap;const X=!!s.emissiveMap;const j=!!s.metalnessMap;const q=!!s.roughnessMap;const Y=s.anisotropy>0;const K=s.clearcoat>0;const Z=s.dispersion>0;const J=s.iridescence>0;const $=s.sheen>0;const tt=s.transmission>0;const et=Y&&!!s.anisotropyMap;const nt=K&&!!s.clearcoatMap;const it=K&&!!s.clearcoatNormalMap;const rt=K&&!!s.clearcoatRoughnessMap;const st=J&&!!s.iridescenceMap;const at=J&&!!s.iridescenceThicknessMap;const ot=$&&!!s.sheenColorMap;const lt=$&&!!s.sheenRoughnessMap;const ct=!!s.specularMap;const ht=!!s.specularColorMap;const ut=!!s.specularIntensityMap;const dt=tt&&!!s.transmissionMap;const ft=tt&&!!s.thicknessMap;const mt=!!s.gradientMap;const gt=!!s.alphaMap;const vt=s.alphaTest>0;const _t=!!s.alphaHash;const xt=!!s.extensions;let yt=Q;s.toneMapped&&(D!==null&&D.isXRRenderTarget!==true||(yt=t.toneMapping));const Mt={shaderID:E,shaderType:s.type,shaderName:s.name,vertexShader:P,fragmentShader:L,defines:s.defines,customVertexShaderID:I,customFragmentShaderID:U,isRawShaderMaterial:s.isRawShaderMaterial===true,glslVersion:s.glslVersion,precision:g,batching:B,batchingColor:B&&y._colorsTexture!==null,instancing:N,instancingColor:N&&y.instanceColor!==null,instancingMorph:N&&y.morphTexture!==null,supportsVertexTextures:f,outputColorSpace:D===null?t.outputColorSpace:D.isXRRenderTarget===true?D.texture.colorSpace:Qe,alphaToCoverage:!!s.alphaToCoverage,map:O,matcap:V,envMap:F,envMapMode:F&&T.mapping,envMapCubeUVHeight:w,aoMap:z,lightMap:G,bumpMap:k,normalMap:H,displacementMap:f&&W,emissiveMap:X,normalMapObjectSpace:H&&s.normalMapType===Ke,normalMapTangentSpace:H&&s.normalMapType===Ye,metalnessMap:j,roughnessMap:q,anisotropy:Y,anisotropyMap:et,clearcoat:K,clearcoatMap:nt,clearcoatNormalMap:it,clearcoatRoughnessMap:rt,dispersion:Z,iridescence:J,iridescenceMap:st,iridescenceThicknessMap:at,sheen:$,sheenColorMap:ot,sheenRoughnessMap:lt,specularMap:ct,specularColorMap:ht,specularIntensityMap:ut,transmission:tt,transmissionMap:dt,thicknessMap:ft,gradientMap:mt,opaque:s.transparent===false&&s.blending===m&&s.alphaToCoverage===false,alphaMap:gt,alphaTest:vt,alphaHash:_t,combine:s.combine,mapUv:O&&getChannel(s.map.channel),aoMapUv:z&&getChannel(s.aoMap.channel),lightMapUv:G&&getChannel(s.lightMap.channel),bumpMapUv:k&&getChannel(s.bumpMap.channel),normalMapUv:H&&getChannel(s.normalMap.channel),displacementMapUv:W&&getChannel(s.displacementMap.channel),emissiveMapUv:X&&getChannel(s.emissiveMap.channel),metalnessMapUv:j&&getChannel(s.metalnessMap.channel),roughnessMapUv:q&&getChannel(s.roughnessMap.channel),anisotropyMapUv:et&&getChannel(s.anisotropyMap.channel),clearcoatMapUv:nt&&getChannel(s.clearcoatMap.channel),clearcoatNormalMapUv:it&&getChannel(s.clearcoatNormalMap.channel),clearcoatRoughnessMapUv:rt&&getChannel(s.clearcoatRoughnessMap.channel),iridescenceMapUv:st&&getChannel(s.iridescenceMap.channel),iridescenceThicknessMapUv:at&&getChannel(s.iridescenceThicknessMap.channel),sheenColorMapUv:ot&&getChannel(s.sheenColorMap.channel),sheenRoughnessMapUv:lt&&getChannel(s.sheenRoughnessMap.channel),specularMapUv:ct&&getChannel(s.specularMap.channel),specularColorMapUv:ht&&getChannel(s.specularColorMap.channel),specularIntensityMapUv:ut&&getChannel(s.specularIntensityMap.channel),transmissionMapUv:dt&&getChannel(s.transmissionMap.channel),thicknessMapUv:ft&&getChannel(s.thicknessMap.channel),alphaMapUv:gt&&getChannel(s.alphaMap.channel),vertexTangents:!!S.attributes.tangent&&(H||Y),vertexColors:s.vertexColors,vertexAlphas:s.vertexColors===true&&!!S.attributes.color&&S.attributes.color.itemSize===4,pointsUvs:y.isPoints===true&&!!S.attributes.uv&&(O||gt),fog:!!M,useFog:s.fog===true,fogExp2:!!M&&M.isFogExp2,flatShading:s.flatShading===true,sizeAttenuation:s.sizeAttenuation===true,logarithmicDepthBuffer:u,skinning:y.isSkinnedMesh===true,morphTargets:S.morphAttributes.position!==void 0,morphNormals:S.morphAttributes.normal!==void 0,morphColors:S.morphAttributes.color!==void 0,morphTargetsCount:C,morphTextureStride:R,numDirLights:o.directional.length,numPointLights:o.point.length,numSpotLights:o.spot.length,numSpotLightMaps:o.spotLightMap.length,numRectAreaLights:o.rectArea.length,numHemiLights:o.hemi.length,numDirLightShadows:o.directionalShadowMap.length,numPointLightShadows:o.pointShadowMap.length,numSpotLightShadows:o.spotShadowMap.length,numSpotLightShadowsWithMaps:o.numSpotLightShadowsWithMaps,numLightProbes:o.numLightProbes,numClippingPlanes:a.numPlanes,numClipIntersection:a.numIntersection,dithering:s.dithering,shadowMapEnabled:t.shadowMap.enabled&&h.length>0,shadowMapType:t.shadowMap.type,toneMapping:yt,decodeVideoTexture:O&&s.map.isVideoTexture===true&&ei.getTransfer(s.map.colorSpace)===nn,premultipliedAlpha:s.premultipliedAlpha,doubleSided:s.side===p,flipSided:s.side===d,useDepthPacking:s.depthPacking>=0,depthPacking:s.depthPacking||0,index0AttributeName:s.index0AttributeName,extensionClipCullDistance:xt&&s.extensions.clipCullDistance===true&&i.has(\"WEBGL_clip_cull_distance\"),extensionMultiDraw:(xt&&s.extensions.multiDraw===true||B)&&i.has(\"WEBGL_multi_draw\"),rendererExtensionParallelShaderCompile:i.has(\"KHR_parallel_shader_compile\"),customProgramCacheKey:s.customProgramCacheKey()};Mt.vertexUv1s=c.has(1);Mt.vertexUv2s=c.has(2);Mt.vertexUv3s=c.has(3);c.clear();return Mt}function getProgramCacheKey(e){const n=[];if(e.shaderID)n.push(e.shaderID);else{n.push(e.customVertexShaderID);n.push(e.customFragmentShaderID)}if(e.defines!==void 0)for(const t in e.defines){n.push(t);n.push(e.defines[t])}if(e.isRawShaderMaterial===false){getProgramCacheKeyParameters(n,e);getProgramCacheKeyBooleans(n,e);n.push(t.outputColorSpace)}n.push(e.customProgramCacheKey);return n.join()}function getProgramCacheKeyParameters(t,e){t.push(e.precision);t.push(e.outputColorSpace);t.push(e.envMapMode);t.push(e.envMapCubeUVHeight);t.push(e.mapUv);t.push(e.alphaMapUv);t.push(e.lightMapUv);t.push(e.aoMapUv);t.push(e.bumpMapUv);t.push(e.normalMapUv);t.push(e.displacementMapUv);t.push(e.emissiveMapUv);t.push(e.metalnessMapUv);t.push(e.roughnessMapUv);t.push(e.anisotropyMapUv);t.push(e.clearcoatMapUv);t.push(e.clearcoatNormalMapUv);t.push(e.clearcoatRoughnessMapUv);t.push(e.iridescenceMapUv);t.push(e.iridescenceThicknessMapUv);t.push(e.sheenColorMapUv);t.push(e.sheenRoughnessMapUv);t.push(e.specularMapUv);t.push(e.specularColorMapUv);t.push(e.specularIntensityMapUv);t.push(e.transmissionMapUv);t.push(e.thicknessMapUv);t.push(e.combine);t.push(e.fogExp2);t.push(e.sizeAttenuation);t.push(e.morphTargetsCount);t.push(e.morphAttributeCount);t.push(e.numDirLights);t.push(e.numPointLights);t.push(e.numSpotLights);t.push(e.numSpotLightMaps);t.push(e.numHemiLights);t.push(e.numRectAreaLights);t.push(e.numDirLightShadows);t.push(e.numPointLightShadows);t.push(e.numSpotLightShadows);t.push(e.numSpotLightShadowsWithMaps);t.push(e.numLightProbes);t.push(e.shadowMapType);t.push(e.toneMapping);t.push(e.numClippingPlanes);t.push(e.numClipIntersection);t.push(e.depthPacking)}function getProgramCacheKeyBooleans(t,e){o.disableAll();e.supportsVertexTextures&&o.enable(0);e.instancing&&o.enable(1);e.instancingColor&&o.enable(2);e.instancingMorph&&o.enable(3);e.matcap&&o.enable(4);e.envMap&&o.enable(5);e.normalMapObjectSpace&&o.enable(6);e.normalMapTangentSpace&&o.enable(7);e.clearcoat&&o.enable(8);e.iridescence&&o.enable(9);e.alphaTest&&o.enable(10);e.vertexColors&&o.enable(11);e.vertexAlphas&&o.enable(12);e.vertexUv1s&&o.enable(13);e.vertexUv2s&&o.enable(14);e.vertexUv3s&&o.enable(15);e.vertexTangents&&o.enable(16);e.anisotropy&&o.enable(17);e.alphaHash&&o.enable(18);e.batching&&o.enable(19);e.dispersion&&o.enable(20);e.batchingColor&&o.enable(21);t.push(o.mask);o.disableAll();e.fog&&o.enable(0);e.useFog&&o.enable(1);e.flatShading&&o.enable(2);e.logarithmicDepthBuffer&&o.enable(3);e.skinning&&o.enable(4);e.morphTargets&&o.enable(5);e.morphNormals&&o.enable(6);e.morphColors&&o.enable(7);e.premultipliedAlpha&&o.enable(8);e.shadowMapEnabled&&o.enable(9);e.doubleSided&&o.enable(10);e.flipSided&&o.enable(11);e.useDepthPacking&&o.enable(12);e.dithering&&o.enable(13);e.transmission&&o.enable(14);e.sheen&&o.enable(15);e.opaque&&o.enable(16);e.pointsUvs&&o.enable(17);e.decodeVideoTexture&&o.enable(18);e.alphaToCoverage&&o.enable(19);t.push(o.mask)}function getUniforms(t){const e=_[t.type];let n;if(e){const t=Vo[e];n=Hr.clone(t.uniforms)}else n=t.uniforms;return n}function acquireProgram(e,n){let i;for(let t=0,e=h.length;t<e;t++){const e=h[t];if(e.cacheKey===n){i=e;++i.usedTimes;break}}if(i===void 0){i=new WebGLProgram(t,n,e,s);h.push(i)}return i}function releaseProgram(t){if(--t.usedTimes===0){const e=h.indexOf(t);h[e]=h[h.length-1];h.pop();t.destroy()}}function releaseShaderCache(t){l.remove(t)}function dispose(){l.dispose()}return{getParameters:getParameters,getProgramCacheKey:getProgramCacheKey,getUniforms:getUniforms,acquireProgram:acquireProgram,releaseProgram:releaseProgram,releaseShaderCache:releaseShaderCache,programs:h,dispose:dispose}}function WebGLProperties(){let t=new WeakMap;function get(e){let n=t.get(e);if(n===void 0){n={};t.set(e,n)}return n}function remove(e){t.delete(e)}function update(e,n,i){t.get(e)[n]=i}function dispose(){t=new WeakMap}return{get:get,remove:remove,update:update,dispose:dispose}}function painterSortStable(t,e){return t.groupOrder!==e.groupOrder?t.groupOrder-e.groupOrder:t.renderOrder!==e.renderOrder?t.renderOrder-e.renderOrder:t.material.id!==e.material.id?t.material.id-e.material.id:t.z!==e.z?t.z-e.z:t.id-e.id}function reversePainterSortStable(t,e){return t.groupOrder!==e.groupOrder?t.groupOrder-e.groupOrder:t.renderOrder!==e.renderOrder?t.renderOrder-e.renderOrder:t.z!==e.z?e.z-t.z:t.id-e.id}function WebGLRenderList(){const t=[];let e=0;const n=[];const i=[];const r=[];function init(){e=0;n.length=0;i.length=0;r.length=0}function getNextRenderItem(n,i,r,s,a,o){let l=t[e];if(l===void 0){l={id:n.id,object:n,geometry:i,material:r,groupOrder:s,renderOrder:n.renderOrder,z:a,group:o};t[e]=l}else{l.id=n.id;l.object=n;l.geometry=i;l.material=r;l.groupOrder=s;l.renderOrder=n.renderOrder;l.z=a;l.group=o}e++;return l}function push(t,e,s,a,o,l){const c=getNextRenderItem(t,e,s,a,o,l);s.transmission>0?i.push(c):s.transparent===true?r.push(c):n.push(c)}function unshift(t,e,s,a,o,l){const c=getNextRenderItem(t,e,s,a,o,l);s.transmission>0?i.unshift(c):s.transparent===true?r.unshift(c):n.unshift(c)}function sort(t,e){n.length>1&&n.sort(t||painterSortStable);i.length>1&&i.sort(e||reversePainterSortStable);r.length>1&&r.sort(e||reversePainterSortStable)}function finish(){for(let n=e,i=t.length;n<i;n++){const e=t[n];if(e.id===null)break;e.id=null;e.object=null;e.geometry=null;e.material=null;e.group=null}}return{opaque:n,transmissive:i,transparent:r,init:init,push:push,unshift:unshift,finish:finish,sort:sort}}function WebGLRenderLists(){let t=new WeakMap;function get(e,n){const i=t.get(e);let r;if(i===void 0){r=new WebGLRenderList;t.set(e,[r])}else if(n>=i.length){r=new WebGLRenderList;i.push(r)}else r=i[n];return r}function dispose(){t=new WeakMap}return{get:get,dispose:dispose}}function UniformsCache(){const t={};return{get:function(e){if(t[e.id]!==void 0)return t[e.id];let n;switch(e.type){case\"DirectionalLight\":n={direction:new Vector3,color:new Color};break;case\"SpotLight\":n={position:new Vector3,direction:new Vector3,color:new Color,distance:0,coneCos:0,penumbraCos:0,decay:0};break;case\"PointLight\":n={position:new Vector3,color:new Color,distance:0,decay:0};break;case\"HemisphereLight\":n={direction:new Vector3,skyColor:new Color,groundColor:new Color};break;case\"RectAreaLight\":n={color:new Color,position:new Vector3,halfWidth:new Vector3,halfHeight:new Vector3};break}t[e.id]=n;return n}}}function ShadowUniformsCache(){const t={};return{get:function(e){if(t[e.id]!==void 0)return t[e.id];let n;switch(e.type){case\"DirectionalLight\":n={shadowIntensity:1,shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new Vector2};break;case\"SpotLight\":n={shadowIntensity:1,shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new Vector2};break;case\"PointLight\":n={shadowIntensity:1,shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new Vector2,shadowCameraNear:1,shadowCameraFar:1e3};break}t[e.id]=n;return n}}}let _l=0;function shadowCastingAndTexturingLightsFirst(t,e){return(e.castShadow?2:0)-(t.castShadow?2:0)+(e.map?1:0)-(t.map?1:0)}function WebGLLights(t){const e=new UniformsCache;const n=ShadowUniformsCache();const i={version:0,hash:{directionalLength:-1,pointLength:-1,spotLength:-1,rectAreaLength:-1,hemiLength:-1,numDirectionalShadows:-1,numPointShadows:-1,numSpotShadows:-1,numSpotMaps:-1,numLightProbes:-1},ambient:[0,0,0],probe:[],directional:[],directionalShadow:[],directionalShadowMap:[],directionalShadowMatrix:[],spot:[],spotLightMap:[],spotShadow:[],spotShadowMap:[],spotLightMatrix:[],rectArea:[],rectAreaLTC1:null,rectAreaLTC2:null,point:[],pointShadow:[],pointShadowMap:[],pointShadowMatrix:[],hemi:[],numSpotLightShadowsWithMaps:0,numLightProbes:0};for(let t=0;t<9;t++)i.probe.push(new Vector3);const r=new Vector3;const s=new Matrix4;const a=new Matrix4;function setup(r){let s=0,a=0,o=0;for(let t=0;t<9;t++)i.probe[t].set(0,0,0);let l=0;let c=0;let h=0;let u=0;let d=0;let p=0;let f=0;let m=0;let g=0;let _=0;let x=0;r.sort(shadowCastingAndTexturingLightsFirst);for(let t=0,y=r.length;t<y;t++){const y=r[t];const M=y.color;const S=y.intensity;const b=y.distance;const T=y.shadow&&y.shadow.map?y.shadow.map.texture:null;if(y.isAmbientLight){s+=M.r*S;a+=M.g*S;o+=M.b*S}else if(y.isLightProbe){for(let t=0;t<9;t++)i.probe[t].addScaledVector(y.sh.coefficients[t],S);x++}else if(y.isDirectionalLight){const t=e.get(y);t.color.copy(y.color).multiplyScalar(y.intensity);if(y.castShadow){const t=y.shadow;const e=n.get(y);e.shadowIntensity=t.intensity;e.shadowBias=t.bias;e.shadowNormalBias=t.normalBias;e.shadowRadius=t.radius;e.shadowMapSize=t.mapSize;i.directionalShadow[l]=e;i.directionalShadowMap[l]=T;i.directionalShadowMatrix[l]=y.shadow.matrix;p++}i.directional[l]=t;l++}else if(y.isSpotLight){const t=e.get(y);t.position.setFromMatrixPosition(y.matrixWorld);t.color.copy(M).multiplyScalar(S);t.distance=b;t.coneCos=Math.cos(y.angle);t.penumbraCos=Math.cos(y.angle*(1-y.penumbra));t.decay=y.decay;i.spot[h]=t;const r=y.shadow;if(y.map){i.spotLightMap[g]=y.map;g++;r.updateMatrices(y);y.castShadow&&_++}i.spotLightMatrix[h]=r.matrix;if(y.castShadow){const t=n.get(y);t.shadowIntensity=r.intensity;t.shadowBias=r.bias;t.shadowNormalBias=r.normalBias;t.shadowRadius=r.radius;t.shadowMapSize=r.mapSize;i.spotShadow[h]=t;i.spotShadowMap[h]=T;m++}h++}else if(y.isRectAreaLight){const t=e.get(y);t.color.copy(M).multiplyScalar(S);t.halfWidth.set(y.width*.5,0,0);t.halfHeight.set(0,y.height*.5,0);i.rectArea[u]=t;u++}else if(y.isPointLight){const t=e.get(y);t.color.copy(y.color).multiplyScalar(y.intensity);t.distance=y.distance;t.decay=y.decay;if(y.castShadow){const t=y.shadow;const e=n.get(y);e.shadowIntensity=t.intensity;e.shadowBias=t.bias;e.shadowNormalBias=t.normalBias;e.shadowRadius=t.radius;e.shadowMapSize=t.mapSize;e.shadowCameraNear=t.camera.near;e.shadowCameraFar=t.camera.far;i.pointShadow[c]=e;i.pointShadowMap[c]=T;i.pointShadowMatrix[c]=y.shadow.matrix;f++}i.point[c]=t;c++}else if(y.isHemisphereLight){const t=e.get(y);t.skyColor.copy(y.color).multiplyScalar(S);t.groundColor.copy(y.groundColor).multiplyScalar(S);i.hemi[d]=t;d++}}if(u>0)if(t.has(\"OES_texture_float_linear\")===true){i.rectAreaLTC1=Oo.LTC_FLOAT_1;i.rectAreaLTC2=Oo.LTC_FLOAT_2}else{i.rectAreaLTC1=Oo.LTC_HALF_1;i.rectAreaLTC2=Oo.LTC_HALF_2}i.ambient[0]=s;i.ambient[1]=a;i.ambient[2]=o;const y=i.hash;if(y.directionalLength!==l||y.pointLength!==c||y.spotLength!==h||y.rectAreaLength!==u||y.hemiLength!==d||y.numDirectionalShadows!==p||y.numPointShadows!==f||y.numSpotShadows!==m||y.numSpotMaps!==g||y.numLightProbes!==x){i.directional.length=l;i.spot.length=h;i.rectArea.length=u;i.point.length=c;i.hemi.length=d;i.directionalShadow.length=p;i.directionalShadowMap.length=p;i.pointShadow.length=f;i.pointShadowMap.length=f;i.spotShadow.length=m;i.spotShadowMap.length=m;i.directionalShadowMatrix.length=p;i.pointShadowMatrix.length=f;i.spotLightMatrix.length=m+g-_;i.spotLightMap.length=g;i.numSpotLightShadowsWithMaps=_;i.numLightProbes=x;y.directionalLength=l;y.pointLength=c;y.spotLength=h;y.rectAreaLength=u;y.hemiLength=d;y.numDirectionalShadows=p;y.numPointShadows=f;y.numSpotShadows=m;y.numSpotMaps=g;y.numLightProbes=x;i.version=_l++}}function setupView(t,e){let n=0;let o=0;let l=0;let c=0;let h=0;const u=e.matrixWorldInverse;for(let e=0,d=t.length;e<d;e++){const d=t[e];if(d.isDirectionalLight){const t=i.directional[n];t.direction.setFromMatrixPosition(d.matrixWorld);r.setFromMatrixPosition(d.target.matrixWorld);t.direction.sub(r);t.direction.transformDirection(u);n++}else if(d.isSpotLight){const t=i.spot[l];t.position.setFromMatrixPosition(d.matrixWorld);t.position.applyMatrix4(u);t.direction.setFromMatrixPosition(d.matrixWorld);r.setFromMatrixPosition(d.target.matrixWorld);t.direction.sub(r);t.direction.transformDirection(u);l++}else if(d.isRectAreaLight){const t=i.rectArea[c];t.position.setFromMatrixPosition(d.matrixWorld);t.position.applyMatrix4(u);a.identity();s.copy(d.matrixWorld);s.premultiply(u);a.extractRotation(s);t.halfWidth.set(d.width*.5,0,0);t.halfHeight.set(0,d.height*.5,0);t.halfWidth.applyMatrix4(a);t.halfHeight.applyMatrix4(a);c++}else if(d.isPointLight){const t=i.point[o];t.position.setFromMatrixPosition(d.matrixWorld);t.position.applyMatrix4(u);o++}else if(d.isHemisphereLight){const t=i.hemi[h];t.direction.setFromMatrixPosition(d.matrixWorld);t.direction.transformDirection(u);h++}}}return{setup:setup,setupView:setupView,state:i}}function WebGLRenderState(t){const e=new WebGLLights(t);const n=[];const i=[];function init(t){r.camera=t;n.length=0;i.length=0}function pushLight(t){n.push(t)}function pushShadow(t){i.push(t)}function setupLights(){e.setup(n)}function setupLightsView(t){e.setupView(n,t)}const r={lightsArray:n,shadowsArray:i,camera:null,lights:e,transmissionRenderTarget:{}};return{init:init,state:r,setupLights:setupLights,setupLightsView:setupLightsView,pushLight:pushLight,pushShadow:pushShadow}}function WebGLRenderStates(t){let e=new WeakMap;function get(n,i=0){const r=e.get(n);let s;if(r===void 0){s=new WebGLRenderState(t);e.set(n,[s])}else if(i>=r.length){s=new WebGLRenderState(t);r.push(s)}else s=r[i];return s}function dispose(){e=new WeakMap}return{get:get,dispose:dispose}}class MeshDepthMaterial extends Material{constructor(t){super();this.isMeshDepthMaterial=true;this.type=\"MeshDepthMaterial\";this.depthPacking=We;this.map=null;this.alphaMap=null;this.displacementMap=null;this.displacementScale=1;this.displacementBias=0;this.wireframe=false;this.wireframeLinewidth=1;this.setValues(t)}copy(t){super.copy(t);this.depthPacking=t.depthPacking;this.map=t.map;this.alphaMap=t.alphaMap;this.displacementMap=t.displacementMap;this.displacementScale=t.displacementScale;this.displacementBias=t.displacementBias;this.wireframe=t.wireframe;this.wireframeLinewidth=t.wireframeLinewidth;return this}}class MeshDistanceMaterial extends Material{constructor(t){super();this.isMeshDistanceMaterial=true;this.type=\"MeshDistanceMaterial\";this.map=null;this.alphaMap=null;this.displacementMap=null;this.displacementScale=1;this.displacementBias=0;this.setValues(t)}copy(t){super.copy(t);this.map=t.map;this.alphaMap=t.alphaMap;this.displacementMap=t.displacementMap;this.displacementScale=t.displacementScale;this.displacementBias=t.displacementBias;return this}}const xl=\"void main() {\\n\\tgl_Position = vec4( position, 1.0 );\\n}\";const yl=\"uniform sampler2D shadow_pass;\\nuniform vec2 resolution;\\nuniform float radius;\\n#include <packing>\\nvoid main() {\\n\\tconst float samples = float( VSM_SAMPLES );\\n\\tfloat mean = 0.0;\\n\\tfloat squared_mean = 0.0;\\n\\tfloat uvStride = samples <= 1.0 ? 0.0 : 2.0 / ( samples - 1.0 );\\n\\tfloat uvStart = samples <= 1.0 ? 0.0 : - 1.0;\\n\\tfor ( float i = 0.0; i < samples; i ++ ) {\\n\\t\\tfloat uvOffset = uvStart + i * uvStride;\\n\\t\\t#ifdef HORIZONTAL_PASS\\n\\t\\t\\tvec2 distribution = unpackRGBATo2Half( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( uvOffset, 0.0 ) * radius ) / resolution ) );\\n\\t\\t\\tmean += distribution.x;\\n\\t\\t\\tsquared_mean += distribution.y * distribution.y + distribution.x * distribution.x;\\n\\t\\t#else\\n\\t\\t\\tfloat depth = unpackRGBAToDepth( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( 0.0, uvOffset ) * radius ) / resolution ) );\\n\\t\\t\\tmean += depth;\\n\\t\\t\\tsquared_mean += depth * depth;\\n\\t\\t#endif\\n\\t}\\n\\tmean = mean / samples;\\n\\tsquared_mean = squared_mean / samples;\\n\\tfloat std_dev = sqrt( squared_mean - mean * mean );\\n\\tgl_FragColor = pack2HalfToRGBA( vec2( mean, std_dev ) );\\n}\";function WebGLShadowMap(t,e,n){let i=new Frustum;const r=new Vector2,s=new Vector2,a=new Vector4,o=new MeshDepthMaterial({depthPacking:Xe}),c=new MeshDistanceMaterial,m={},g=n.maxTextureSize;const _={[u]:d,[d]:u,[p]:p};const x=new ShaderMaterial({defines:{VSM_SAMPLES:8},uniforms:{shadow_pass:{value:null},resolution:{value:new Vector2},radius:{value:4}},vertexShader:xl,fragmentShader:yl});const y=x.clone();y.defines.HORIZONTAL_PASS=1;const M=new BufferGeometry;M.setAttribute(\"position\",new BufferAttribute(new Float32Array([-1,-1,.5,3,-1,.5,-1,3,.5]),3));const S=new Mesh(M,x);const b=this;this.enabled=false;this.autoUpdate=true;this.needsUpdate=false;this.type=l;let T=this.type;this.render=function(e,n,o){if(b.enabled===false)return;if(b.autoUpdate===false&&b.needsUpdate===false)return;if(e.length===0)return;const l=t.getRenderTarget();const c=t.getActiveCubeFace();const u=t.getActiveMipmapLevel();const d=t.state;d.setBlending(f);d.buffers.color.setClear(1,1,1,1);d.buffers.depth.setTest(true);d.setScissorTest(false);const p=T!==h&&this.type===h;const m=T===h&&this.type!==h;for(let l=0,c=e.length;l<c;l++){const c=e[l];const u=c.shadow;if(u===void 0){console.warn(\"THREE.WebGLShadowMap:\",c,\"has no shadow.\");continue}if(u.autoUpdate===false&&u.needsUpdate===false)continue;r.copy(u.mapSize);const f=u.getFrameExtents();r.multiply(f);s.copy(u.mapSize);if(r.x>g||r.y>g){if(r.x>g){s.x=Math.floor(g/f.x);r.x=s.x*f.x;u.mapSize.x=s.x}if(r.y>g){s.y=Math.floor(g/f.y);r.y=s.y*f.y;u.mapSize.y=s.y}}if(u.map===null||p===true||m===true){const t=this.type!==h?{minFilter:vt,magFilter:vt}:{};u.map!==null&&u.map.dispose();u.map=new WebGLRenderTarget(r.x,r.y,t);u.map.texture.name=c.name+\".shadowMap\";u.camera.updateProjectionMatrix()}t.setRenderTarget(u.map);t.clear();const _=u.getViewportCount();for(let t=0;t<_;t++){const e=u.getViewport(t);a.set(s.x*e.x,s.y*e.y,s.x*e.z,s.y*e.w);d.viewport(a);u.updateMatrices(c,t);i=u.getFrustum();renderObject(n,o,u.camera,c,this.type)}u.isPointLightShadow!==true&&this.type===h&&VSMPass(u,o);u.needsUpdate=false}T=this.type;b.needsUpdate=false;t.setRenderTarget(l,c,u)};function VSMPass(n,i){const s=e.update(S);if(x.defines.VSM_SAMPLES!==n.blurSamples){x.defines.VSM_SAMPLES=n.blurSamples;y.defines.VSM_SAMPLES=n.blurSamples;x.needsUpdate=true;y.needsUpdate=true}n.mapPass===null&&(n.mapPass=new WebGLRenderTarget(r.x,r.y));x.uniforms.shadow_pass.value=n.map.texture;x.uniforms.resolution.value=n.mapSize;x.uniforms.radius.value=n.radius;t.setRenderTarget(n.mapPass);t.clear();t.renderBufferDirect(i,null,s,x,S,null);y.uniforms.shadow_pass.value=n.mapPass.texture;y.uniforms.resolution.value=n.mapSize;y.uniforms.radius.value=n.radius;t.setRenderTarget(n.map);t.clear();t.renderBufferDirect(i,null,s,y,S,null)}function getDepthMaterial(e,n,i,r){let s=null;const a=i.isPointLight===true?e.customDistanceMaterial:e.customDepthMaterial;if(a!==void 0)s=a;else{s=i.isPointLight===true?c:o;if(t.localClippingEnabled&&n.clipShadows===true&&Array.isArray(n.clippingPlanes)&&n.clippingPlanes.length!==0||n.displacementMap&&n.displacementScale!==0||n.alphaMap&&n.alphaTest>0||n.map&&n.alphaTest>0){const t=s.uuid,e=n.uuid;let i=m[t];if(i===void 0){i={};m[t]=i}let r=i[e];if(r===void 0){r=s.clone();i[e]=r;n.addEventListener(\"dispose\",onMaterialDispose)}s=r}}s.visible=n.visible;s.wireframe=n.wireframe;s.side=r===h?n.shadowSide!==null?n.shadowSide:n.side:n.shadowSide!==null?n.shadowSide:_[n.side];s.alphaMap=n.alphaMap;s.alphaTest=n.alphaTest;s.map=n.map;s.clipShadows=n.clipShadows;s.clippingPlanes=n.clippingPlanes;s.clipIntersection=n.clipIntersection;s.displacementMap=n.displacementMap;s.displacementScale=n.displacementScale;s.displacementBias=n.displacementBias;s.wireframeLinewidth=n.wireframeLinewidth;s.linewidth=n.linewidth;if(i.isPointLight===true&&s.isMeshDistanceMaterial===true){const e=t.properties.get(s);e.light=i}return s}function renderObject(n,r,s,a,o){if(n.visible===false)return;const l=n.layers.test(r.layers);if(l&&(n.isMesh||n.isLine||n.isPoints)&&(n.castShadow||n.receiveShadow&&o===h)&&(!n.frustumCulled||i.intersectsObject(n))){n.modelViewMatrix.multiplyMatrices(s.matrixWorldInverse,n.matrixWorld);const i=e.update(n);const l=n.material;if(Array.isArray(l)){const e=i.groups;for(let c=0,h=e.length;c<h;c++){const h=e[c];const u=l[h.materialIndex];if(u&&u.visible){const e=getDepthMaterial(n,u,a,o);n.onBeforeShadow(t,n,r,s,i,e,h);t.renderBufferDirect(s,null,i,e,n,h);n.onAfterShadow(t,n,r,s,i,e,h)}}}else if(l.visible){const e=getDepthMaterial(n,l,a,o);n.onBeforeShadow(t,n,r,s,i,e,null);t.renderBufferDirect(s,null,i,e,n,null);n.onAfterShadow(t,n,r,s,i,e,null)}}const c=n.children;for(let t=0,e=c.length;t<e;t++)renderObject(c[t],r,s,a,o)}function onMaterialDispose(t){const e=t.target;e.removeEventListener(\"dispose\",onMaterialDispose);for(const e in m){const n=m[e];const i=t.target.uuid;if(i in n){const t=n[i];t.dispose();delete n[i]}}}}function WebGLState(t){function ColorBuffer(){let e=false;const n=new Vector4;let i=null;const r=new Vector4(0,0,0,0);return{setMask:function(n){if(i!==n&&!e){t.colorMask(n,n,n,n);i=n}},setLocked:function(t){e=t},setClear:function(e,i,s,a,o){if(o===true){e*=a;i*=a;s*=a}n.set(e,i,s,a);if(r.equals(n)===false){t.clearColor(e,i,s,a);r.copy(n)}},reset:function(){e=false;i=null;r.set(-1,0,0,0)}}}function DepthBuffer(){let e=false;let n=null;let i=null;let r=null;return{setTest:function(e){e?enable(t.DEPTH_TEST):disable(t.DEPTH_TEST)},setMask:function(i){if(n!==i&&!e){t.depthMask(i);n=i}},setFunc:function(e){if(i!==e){switch(e){case G:t.depthFunc(t.NEVER);break;case k:t.depthFunc(t.ALWAYS);break;case H:t.depthFunc(t.LESS);break;case W:t.depthFunc(t.LEQUAL);break;case X:t.depthFunc(t.EQUAL);break;case j:t.depthFunc(t.GEQUAL);break;case q:t.depthFunc(t.GREATER);break;case Y:t.depthFunc(t.NOTEQUAL);break;default:t.depthFunc(t.LEQUAL)}i=e}},setLocked:function(t){e=t},setClear:function(e){if(r!==e){t.clearDepth(e);r=e}},reset:function(){e=false;n=null;i=null;r=null}}}function StencilBuffer(){let e=false;let n=null;let i=null;let r=null;let s=null;let a=null;let o=null;let l=null;let c=null;return{setTest:function(n){e||(n?enable(t.STENCIL_TEST):disable(t.STENCIL_TEST))},setMask:function(i){if(n!==i&&!e){t.stencilMask(i);n=i}},setFunc:function(e,n,a){if(i!==e||r!==n||s!==a){t.stencilFunc(e,n,a);i=e;r=n;s=a}},setOp:function(e,n,i){if(a!==e||o!==n||l!==i){t.stencilOp(e,n,i);a=e;o=n;l=i}},setLocked:function(t){e=t},setClear:function(e){if(c!==e){t.clearStencil(e);c=e}},reset:function(){e=false;n=null;i=null;r=null;s=null;a=null;o=null;l=null;c=null}}}const e=new ColorBuffer;const n=new DepthBuffer;const a=new StencilBuffer;const o=new WeakMap;const l=new WeakMap;let c={};let h={};let u=new WeakMap;let K=[];let Z=null;let J=false;let Q=null;let $=null;let tt=null;let et=null;let nt=null;let it=null;let rt=null;let st=new Color(0,0,0);let at=0;let ot=false;let lt=null;let ct=null;let ht=null;let ut=null;let dt=null;const pt=t.getParameter(t.MAX_COMBINED_TEXTURE_IMAGE_UNITS);let ft=false;let mt=0;const gt=t.getParameter(t.VERSION);if(gt.indexOf(\"WebGL\")!==-1){mt=parseFloat(/^WebGL (\\d)/.exec(gt)[1]);ft=mt>=1}else if(gt.indexOf(\"OpenGL ES\")!==-1){mt=parseFloat(/^OpenGL ES (\\d)/.exec(gt)[1]);ft=mt>=2}let vt=null;let _t={};const xt=t.getParameter(t.SCISSOR_BOX);const yt=t.getParameter(t.VIEWPORT);const Mt=(new Vector4).fromArray(xt);const St=(new Vector4).fromArray(yt);function createTexture(e,n,i,r){const s=new Uint8Array(4);const a=t.createTexture();t.bindTexture(e,a);t.texParameteri(e,t.TEXTURE_MIN_FILTER,t.NEAREST);t.texParameteri(e,t.TEXTURE_MAG_FILTER,t.NEAREST);for(let a=0;a<i;a++)e===t.TEXTURE_3D||e===t.TEXTURE_2D_ARRAY?t.texImage3D(n,0,t.RGBA,1,1,r,0,t.RGBA,t.UNSIGNED_BYTE,s):t.texImage2D(n+a,0,t.RGBA,1,1,0,t.RGBA,t.UNSIGNED_BYTE,s);return a}const bt={};bt[t.TEXTURE_2D]=createTexture(t.TEXTURE_2D,t.TEXTURE_2D,1);bt[t.TEXTURE_CUBE_MAP]=createTexture(t.TEXTURE_CUBE_MAP,t.TEXTURE_CUBE_MAP_POSITIVE_X,6);bt[t.TEXTURE_2D_ARRAY]=createTexture(t.TEXTURE_2D_ARRAY,t.TEXTURE_2D_ARRAY,1,1);bt[t.TEXTURE_3D]=createTexture(t.TEXTURE_3D,t.TEXTURE_3D,1,1);e.setClear(0,0,0,1);n.setClear(1);a.setClear(0);enable(t.DEPTH_TEST);n.setFunc(W);setFlipSided(false);setCullFace(r);enable(t.CULL_FACE);setBlending(f);function enable(e){if(c[e]!==true){t.enable(e);c[e]=true}}function disable(e){if(c[e]!==false){t.disable(e);c[e]=false}}function bindFramebuffer(e,n){if(h[e]!==n){t.bindFramebuffer(e,n);h[e]=n;e===t.DRAW_FRAMEBUFFER&&(h[t.FRAMEBUFFER]=n);e===t.FRAMEBUFFER&&(h[t.DRAW_FRAMEBUFFER]=n);return true}return false}function drawBuffers(e,n){let i=K;let r=false;if(e){i=u.get(n);if(i===void 0){i=[];u.set(n,i)}const s=e.textures;if(i.length!==s.length||i[0]!==t.COLOR_ATTACHMENT0){for(let e=0,n=s.length;e<n;e++)i[e]=t.COLOR_ATTACHMENT0+e;i.length=s.length;r=true}}else if(i[0]!==t.BACK){i[0]=t.BACK;r=true}r&&t.drawBuffers(i)}function useProgram(e){if(Z!==e){t.useProgram(e);Z=e;return true}return false}const Tt={[M]:t.FUNC_ADD,[S]:t.FUNC_SUBTRACT,[b]:t.FUNC_REVERSE_SUBTRACT};Tt[T]=t.MIN;Tt[w]=t.MAX;const wt={[E]:t.ZERO,[A]:t.ONE,[C]:t.SRC_COLOR,[P]:t.SRC_ALPHA,[B]:t.SRC_ALPHA_SATURATE,[D]:t.DST_COLOR,[I]:t.DST_ALPHA,[R]:t.ONE_MINUS_SRC_COLOR,[L]:t.ONE_MINUS_SRC_ALPHA,[N]:t.ONE_MINUS_DST_COLOR,[U]:t.ONE_MINUS_DST_ALPHA,[O]:t.CONSTANT_COLOR,[V]:t.ONE_MINUS_CONSTANT_COLOR,[F]:t.CONSTANT_ALPHA,[z]:t.ONE_MINUS_CONSTANT_ALPHA};function setBlending(e,n,i,r,s,a,o,l,c,h){if(e!==f){if(J===false){enable(t.BLEND);J=true}if(e===y){s=s||n;a=a||i;o=o||r;if(n!==$||s!==nt){t.blendEquationSeparate(Tt[n],Tt[s]);$=n;nt=s}if(i!==tt||r!==et||a!==it||o!==rt){t.blendFuncSeparate(wt[i],wt[r],wt[a],wt[o]);tt=i;et=r;it=a;rt=o}if(l.equals(st)===false||c!==at){t.blendColor(l.r,l.g,l.b,c);st.copy(l);at=c}Q=e;ot=false}else if(e!==Q||h!==ot){if($!==M||nt!==M){t.blendEquation(t.FUNC_ADD);$=M;nt=M}if(h)switch(e){case m:t.blendFuncSeparate(t.ONE,t.ONE_MINUS_SRC_ALPHA,t.ONE,t.ONE_MINUS_SRC_ALPHA);break;case g:t.blendFunc(t.ONE,t.ONE);break;case _:t.blendFuncSeparate(t.ZERO,t.ONE_MINUS_SRC_COLOR,t.ZERO,t.ONE);break;case x:t.blendFuncSeparate(t.ZERO,t.SRC_COLOR,t.ZERO,t.SRC_ALPHA);break;default:console.error(\"THREE.WebGLState: Invalid blending: \",e);break}else switch(e){case m:t.blendFuncSeparate(t.SRC_ALPHA,t.ONE_MINUS_SRC_ALPHA,t.ONE,t.ONE_MINUS_SRC_ALPHA);break;case g:t.blendFunc(t.SRC_ALPHA,t.ONE);break;case _:t.blendFuncSeparate(t.ZERO,t.ONE_MINUS_SRC_COLOR,t.ZERO,t.ONE);break;case x:t.blendFunc(t.ZERO,t.SRC_COLOR);break;default:console.error(\"THREE.WebGLState: Invalid blending: \",e);break}tt=null;et=null;it=null;rt=null;st.set(0,0,0);at=0;Q=e;ot=h}}else if(J===true){disable(t.BLEND);J=false}}function setMaterial(i,r){i.side===p?disable(t.CULL_FACE):enable(t.CULL_FACE);let s=i.side===d;r&&(s=!s);setFlipSided(s);i.blending===m&&i.transparent===false?setBlending(f):setBlending(i.blending,i.blendEquation,i.blendSrc,i.blendDst,i.blendEquationAlpha,i.blendSrcAlpha,i.blendDstAlpha,i.blendColor,i.blendAlpha,i.premultipliedAlpha);n.setFunc(i.depthFunc);n.setTest(i.depthTest);n.setMask(i.depthWrite);e.setMask(i.colorWrite);const o=i.stencilWrite;a.setTest(o);if(o){a.setMask(i.stencilWriteMask);a.setFunc(i.stencilFunc,i.stencilRef,i.stencilFuncMask);a.setOp(i.stencilFail,i.stencilZFail,i.stencilZPass)}setPolygonOffset(i.polygonOffset,i.polygonOffsetFactor,i.polygonOffsetUnits);i.alphaToCoverage===true?enable(t.SAMPLE_ALPHA_TO_COVERAGE):disable(t.SAMPLE_ALPHA_TO_COVERAGE)}function setFlipSided(e){if(lt!==e){e?t.frontFace(t.CW):t.frontFace(t.CCW);lt=e}}function setCullFace(e){if(e!==i){enable(t.CULL_FACE);e!==ct&&(e===r?t.cullFace(t.BACK):e===s?t.cullFace(t.FRONT):t.cullFace(t.FRONT_AND_BACK))}else disable(t.CULL_FACE);ct=e}function setLineWidth(e){if(e!==ht){ft&&t.lineWidth(e);ht=e}}function setPolygonOffset(e,n,i){if(e){enable(t.POLYGON_OFFSET_FILL);if(ut!==n||dt!==i){t.polygonOffset(n,i);ut=n;dt=i}}else disable(t.POLYGON_OFFSET_FILL)}function setScissorTest(e){e?enable(t.SCISSOR_TEST):disable(t.SCISSOR_TEST)}function activeTexture(e){e===void 0&&(e=t.TEXTURE0+pt-1);if(vt!==e){t.activeTexture(e);vt=e}}function bindTexture(e,n,i){i===void 0&&(i=vt===null?t.TEXTURE0+pt-1:vt);let r=_t[i];if(r===void 0){r={type:void 0,texture:void 0};_t[i]=r}if(r.type!==e||r.texture!==n){if(vt!==i){t.activeTexture(i);vt=i}t.bindTexture(e,n||bt[e]);r.type=e;r.texture=n}}function unbindTexture(){const e=_t[vt];if(e!==void 0&&e.type!==void 0){t.bindTexture(e.type,null);e.type=void 0;e.texture=void 0}}function compressedTexImage2D(){try{t.compressedTexImage2D.apply(t,arguments)}catch(t){console.error(\"THREE.WebGLState:\",t)}}function compressedTexImage3D(){try{t.compressedTexImage3D.apply(t,arguments)}catch(t){console.error(\"THREE.WebGLState:\",t)}}function texSubImage2D(){try{t.texSubImage2D.apply(t,arguments)}catch(t){console.error(\"THREE.WebGLState:\",t)}}function texSubImage3D(){try{t.texSubImage3D.apply(t,arguments)}catch(t){console.error(\"THREE.WebGLState:\",t)}}function compressedTexSubImage2D(){try{t.compressedTexSubImage2D.apply(t,arguments)}catch(t){console.error(\"THREE.WebGLState:\",t)}}function compressedTexSubImage3D(){try{t.compressedTexSubImage3D.apply(t,arguments)}catch(t){console.error(\"THREE.WebGLState:\",t)}}function texStorage2D(){try{t.texStorage2D.apply(t,arguments)}catch(t){console.error(\"THREE.WebGLState:\",t)}}function texStorage3D(){try{t.texStorage3D.apply(t,arguments)}catch(t){console.error(\"THREE.WebGLState:\",t)}}function texImage2D(){try{t.texImage2D.apply(t,arguments)}catch(t){console.error(\"THREE.WebGLState:\",t)}}function texImage3D(){try{t.texImage3D.apply(t,arguments)}catch(t){console.error(\"THREE.WebGLState:\",t)}}function scissor(e){if(Mt.equals(e)===false){t.scissor(e.x,e.y,e.z,e.w);Mt.copy(e)}}function viewport(e){if(St.equals(e)===false){t.viewport(e.x,e.y,e.z,e.w);St.copy(e)}}function updateUBOMapping(e,n){let i=l.get(n);if(i===void 0){i=new WeakMap;l.set(n,i)}let r=i.get(e);if(r===void 0){r=t.getUniformBlockIndex(n,e.name);i.set(e,r)}}function uniformBlockBinding(e,n){const i=l.get(n);const r=i.get(e);if(o.get(n)!==r){t.uniformBlockBinding(n,r,e.__bindingPointIndex);o.set(n,r)}}function reset(){t.disable(t.BLEND);t.disable(t.CULL_FACE);t.disable(t.DEPTH_TEST);t.disable(t.POLYGON_OFFSET_FILL);t.disable(t.SCISSOR_TEST);t.disable(t.STENCIL_TEST);t.disable(t.SAMPLE_ALPHA_TO_COVERAGE);t.blendEquation(t.FUNC_ADD);t.blendFunc(t.ONE,t.ZERO);t.blendFuncSeparate(t.ONE,t.ZERO,t.ONE,t.ZERO);t.blendColor(0,0,0,0);t.colorMask(true,true,true,true);t.clearColor(0,0,0,0);t.depthMask(true);t.depthFunc(t.LESS);t.clearDepth(1);t.stencilMask(4294967295);t.stencilFunc(t.ALWAYS,0,4294967295);t.stencilOp(t.KEEP,t.KEEP,t.KEEP);t.clearStencil(0);t.cullFace(t.BACK);t.frontFace(t.CCW);t.polygonOffset(0,0);t.activeTexture(t.TEXTURE0);t.bindFramebuffer(t.FRAMEBUFFER,null);t.bindFramebuffer(t.DRAW_FRAMEBUFFER,null);t.bindFramebuffer(t.READ_FRAMEBUFFER,null);t.useProgram(null);t.lineWidth(1);t.scissor(0,0,t.canvas.width,t.canvas.height);t.viewport(0,0,t.canvas.width,t.canvas.height);c={};vt=null;_t={};h={};u=new WeakMap;K=[];Z=null;J=false;Q=null;$=null;tt=null;et=null;nt=null;it=null;rt=null;st=new Color(0,0,0);at=0;ot=false;lt=null;ct=null;ht=null;ut=null;dt=null;Mt.set(0,0,t.canvas.width,t.canvas.height);St.set(0,0,t.canvas.width,t.canvas.height);e.reset();n.reset();a.reset()}return{buffers:{color:e,depth:n,stencil:a},enable:enable,disable:disable,bindFramebuffer:bindFramebuffer,drawBuffers:drawBuffers,useProgram:useProgram,setBlending:setBlending,setMaterial:setMaterial,setFlipSided:setFlipSided,setCullFace:setCullFace,setLineWidth:setLineWidth,setPolygonOffset:setPolygonOffset,setScissorTest:setScissorTest,activeTexture:activeTexture,bindTexture:bindTexture,unbindTexture:unbindTexture,compressedTexImage2D:compressedTexImage2D,compressedTexImage3D:compressedTexImage3D,texImage2D:texImage2D,texImage3D:texImage3D,updateUBOMapping:updateUBOMapping,uniformBlockBinding:uniformBlockBinding,texStorage2D:texStorage2D,texStorage3D:texStorage3D,texSubImage2D:texSubImage2D,texSubImage3D:texSubImage3D,compressedTexSubImage2D:compressedTexSubImage2D,compressedTexSubImage3D:compressedTexSubImage3D,scissor:scissor,viewport:viewport,reset:reset}}function contain(t,e){const n=t.image&&t.image.width?t.image.width/t.image.height:1;if(n>e){t.repeat.x=1;t.repeat.y=n/e;t.offset.x=0;t.offset.y=(1-t.repeat.y)/2}else{t.repeat.x=e/n;t.repeat.y=1;t.offset.x=(1-t.repeat.x)/2;t.offset.y=0}return t}function cover(t,e){const n=t.image&&t.image.width?t.image.width/t.image.height:1;if(n>e){t.repeat.x=e/n;t.repeat.y=1;t.offset.x=(1-t.repeat.x)/2;t.offset.y=0}else{t.repeat.x=1;t.repeat.y=n/e;t.offset.x=0;t.offset.y=(1-t.repeat.y)/2}return t}function fill(t){t.repeat.x=1;t.repeat.y=1;t.offset.x=0;t.offset.y=0;return t}function getByteLength(t,e,n,i){const r=getTextureTypeByteLength(i);switch(n){case Ft:return t*e;case kt:return t*e;case Ht:return t*e*2;case jt:return t*e/r.components*r.byteLength;case qt:return t*e/r.components*r.byteLength;case Yt:return t*e*2/r.components*r.byteLength;case Kt:return t*e*2/r.components*r.byteLength;case zt:return t*e*3/r.components*r.byteLength;case Gt:return t*e*4/r.components*r.byteLength;case Jt:return t*e*4/r.components*r.byteLength;case Qt:case $t:return Math.floor((t+3)/4)*Math.floor((e+3)/4)*8;case te:case ee:return Math.floor((t+3)/4)*Math.floor((e+3)/4)*16;case ie:case se:return Math.max(t,16)*Math.max(e,8)/4;case ne:case re:return Math.max(t,8)*Math.max(e,8)/2;case ae:case oe:return Math.floor((t+3)/4)*Math.floor((e+3)/4)*8;case le:return Math.floor((t+3)/4)*Math.floor((e+3)/4)*16;case ce:return Math.floor((t+3)/4)*Math.floor((e+3)/4)*16;case he:return Math.floor((t+4)/5)*Math.floor((e+3)/4)*16;case ue:return Math.floor((t+4)/5)*Math.floor((e+4)/5)*16;case de:return Math.floor((t+5)/6)*Math.floor((e+4)/5)*16;case pe:return Math.floor((t+5)/6)*Math.floor((e+5)/6)*16;case fe:return Math.floor((t+7)/8)*Math.floor((e+4)/5)*16;case me:return Math.floor((t+7)/8)*Math.floor((e+5)/6)*16;case ge:return Math.floor((t+7)/8)*Math.floor((e+7)/8)*16;case ve:return Math.floor((t+9)/10)*Math.floor((e+4)/5)*16;case _e:return Math.floor((t+9)/10)*Math.floor((e+5)/6)*16;case xe:return Math.floor((t+9)/10)*Math.floor((e+7)/8)*16;case ye:return Math.floor((t+9)/10)*Math.floor((e+9)/10)*16;case Me:return Math.floor((t+11)/12)*Math.floor((e+9)/10)*16;case Se:return Math.floor((t+11)/12)*Math.floor((e+11)/12)*16;case be:case Te:case we:return Math.ceil(t/4)*Math.ceil(e/4)*16;case Ee:case Ae:return Math.ceil(t/4)*Math.ceil(e/4)*8;case Ce:case Re:return Math.ceil(t/4)*Math.ceil(e/4)*16}throw new Error(`Unable to determine texture byte length for ${n} format.`)}function getTextureTypeByteLength(t){switch(t){case At:case Ct:return{byteLength:1,components:1};case Pt:case Rt:case Dt:return{byteLength:2,components:1};case Nt:case Bt:return{byteLength:2,components:4};case It:case Lt:case Ut:return{byteLength:4,components:1};case Vt:return{byteLength:4,components:3}}throw new Error(`Unknown texture type ${t}.`)}const Ml={contain:contain,cover:cover,fill:fill,getByteLength:getByteLength};function WebGLTextures(t,e,n,i,r,s,a){const o=e.has(\"WEBGL_multisampled_render_to_texture\")?e.get(\"WEBGL_multisampled_render_to_texture\"):null;const l=typeof navigator!==\"undefined\"&&/OculusBrowser/g.test(navigator.userAgent);const c=new Vector2;const h=new WeakMap;let u;const d=new WeakMap;let p=false;try{p=typeof OffscreenCanvas!==\"undefined\"&&new OffscreenCanvas(1,1).getContext(\"2d\")!==null}catch(t){}function createCanvas(t,e){return p?new OffscreenCanvas(t,e):createElementNS(\"canvas\")}function resizeImage(t,e,n){let i=1;const r=getDimensions(t);(r.width>n||r.height>n)&&(i=n/Math.max(r.width,r.height));if(i<1){if(typeof HTMLImageElement!==\"undefined\"&&t instanceof HTMLImageElement||typeof HTMLCanvasElement!==\"undefined\"&&t instanceof HTMLCanvasElement||typeof ImageBitmap!==\"undefined\"&&t instanceof ImageBitmap||typeof VideoFrame!==\"undefined\"&&t instanceof VideoFrame){const n=Math.floor(i*r.width);const s=Math.floor(i*r.height);u===void 0&&(u=createCanvas(n,s));const a=e?createCanvas(n,s):u;a.width=n;a.height=s;const o=a.getContext(\"2d\");o.drawImage(t,0,0,n,s);console.warn(\"THREE.WebGLRenderer: Texture has been resized from (\"+r.width+\"x\"+r.height+\") to (\"+n+\"x\"+s+\").\");return a}\"data\"in t&&console.warn(\"THREE.WebGLRenderer: Image in DataTexture is too big (\"+r.width+\"x\"+r.height+\").\");return t}return t}function textureNeedsGenerateMipmaps(t){return t.generateMipmaps&&t.minFilter!==vt&&t.minFilter!==St}function generateMipmap(e){t.generateMipmap(e)}function getInternalFormat(n,i,r,s,a=false){if(n!==null){if(t[n]!==void 0)return t[n];console.warn(\"THREE.WebGLRenderer: Attempt to use non-existing WebGL internal format '\"+n+\"'\")}let o=i;if(i===t.RED){r===t.FLOAT&&(o=t.R32F);r===t.HALF_FLOAT&&(o=t.R16F);r===t.UNSIGNED_BYTE&&(o=t.R8)}if(i===t.RED_INTEGER){r===t.UNSIGNED_BYTE&&(o=t.R8UI);r===t.UNSIGNED_SHORT&&(o=t.R16UI);r===t.UNSIGNED_INT&&(o=t.R32UI);r===t.BYTE&&(o=t.R8I);r===t.SHORT&&(o=t.R16I);r===t.INT&&(o=t.R32I)}if(i===t.RG){r===t.FLOAT&&(o=t.RG32F);r===t.HALF_FLOAT&&(o=t.RG16F);r===t.UNSIGNED_BYTE&&(o=t.RG8)}if(i===t.RG_INTEGER){r===t.UNSIGNED_BYTE&&(o=t.RG8UI);r===t.UNSIGNED_SHORT&&(o=t.RG16UI);r===t.UNSIGNED_INT&&(o=t.RG32UI);r===t.BYTE&&(o=t.RG8I);r===t.SHORT&&(o=t.RG16I);r===t.INT&&(o=t.RG32I)}i===t.RGB&&r===t.UNSIGNED_INT_5_9_9_9_REV&&(o=t.RGB9_E5);if(i===t.RGBA){const e=a?en:ei.getTransfer(s);r===t.FLOAT&&(o=t.RGBA32F);r===t.HALF_FLOAT&&(o=t.RGBA16F);r===t.UNSIGNED_BYTE&&(o=e===nn?t.SRGB8_ALPHA8:t.RGBA8);r===t.UNSIGNED_SHORT_4_4_4_4&&(o=t.RGBA4);r===t.UNSIGNED_SHORT_5_5_5_1&&(o=t.RGB5_A1)}o!==t.R16F&&o!==t.R32F&&o!==t.RG16F&&o!==t.RG32F&&o!==t.RGBA16F&&o!==t.RGBA32F||e.get(\"EXT_color_buffer_float\");return o}function getInternalDepthFormat(e,n){let i;if(e){if(n===null||n===It||n===Ot)i=t.DEPTH24_STENCIL8;else if(n===Ut)i=t.DEPTH32F_STENCIL8;else if(n===Pt){i=t.DEPTH24_STENCIL8;console.warn(\"DepthTexture: 16 bit depth attachment is not supported with stencil. Using 24-bit attachment.\")}}else n===null||n===It||n===Ot?i=t.DEPTH_COMPONENT24:n===Ut?i=t.DEPTH_COMPONENT32F:n===Pt&&(i=t.DEPTH_COMPONENT16);return i}function getMipLevels(t,e){return textureNeedsGenerateMipmaps(t)===true||t.isFramebufferTexture&&t.minFilter!==vt&&t.minFilter!==St?Math.log2(Math.max(e.width,e.height))+1:t.mipmaps!==void 0&&t.mipmaps.length>0?t.mipmaps.length:t.isCompressedTexture&&Array.isArray(t.image)?e.mipmaps.length:1}function onTextureDispose(t){const e=t.target;e.removeEventListener(\"dispose\",onTextureDispose);deallocateTexture(e);e.isVideoTexture&&h.delete(e)}function onRenderTargetDispose(t){const e=t.target;e.removeEventListener(\"dispose\",onRenderTargetDispose);deallocateRenderTarget(e)}function deallocateTexture(t){const e=i.get(t);if(e.__webglInit===void 0)return;const n=t.source;const r=d.get(n);if(r){const i=r[e.__cacheKey];i.usedTimes--;i.usedTimes===0&&deleteTexture(t);Object.keys(r).length===0&&d.delete(n)}i.remove(t)}function deleteTexture(e){const n=i.get(e);t.deleteTexture(n.__webglTexture);const r=e.source;const s=d.get(r);delete s[n.__cacheKey];a.memory.textures--}function deallocateRenderTarget(e){const n=i.get(e);e.depthTexture&&e.depthTexture.dispose();if(e.isWebGLCubeRenderTarget)for(let e=0;e<6;e++){if(Array.isArray(n.__webglFramebuffer[e]))for(let i=0;i<n.__webglFramebuffer[e].length;i++)t.deleteFramebuffer(n.__webglFramebuffer[e][i]);else t.deleteFramebuffer(n.__webglFramebuffer[e]);n.__webglDepthbuffer&&t.deleteRenderbuffer(n.__webglDepthbuffer[e])}else{if(Array.isArray(n.__webglFramebuffer))for(let e=0;e<n.__webglFramebuffer.length;e++)t.deleteFramebuffer(n.__webglFramebuffer[e]);else t.deleteFramebuffer(n.__webglFramebuffer);n.__webglDepthbuffer&&t.deleteRenderbuffer(n.__webglDepthbuffer);n.__webglMultisampledFramebuffer&&t.deleteFramebuffer(n.__webglMultisampledFramebuffer);if(n.__webglColorRenderbuffer)for(let e=0;e<n.__webglColorRenderbuffer.length;e++)n.__webglColorRenderbuffer[e]&&t.deleteRenderbuffer(n.__webglColorRenderbuffer[e]);n.__webglDepthRenderbuffer&&t.deleteRenderbuffer(n.__webglDepthRenderbuffer)}const r=e.textures;for(let e=0,n=r.length;e<n;e++){const n=i.get(r[e]);if(n.__webglTexture){t.deleteTexture(n.__webglTexture);a.memory.textures--}i.remove(r[e])}i.remove(e)}let f=0;function resetTextureUnits(){f=0}function allocateTextureUnit(){const t=f;t>=r.maxTextures&&console.warn(\"THREE.WebGLTextures: Trying to use \"+t+\" texture units while this GPU supports only \"+r.maxTextures);f+=1;return t}function getTextureCacheKey(t){const e=[];e.push(t.wrapS);e.push(t.wrapT);e.push(t.wrapR||0);e.push(t.magFilter);e.push(t.minFilter);e.push(t.anisotropy);e.push(t.internalFormat);e.push(t.format);e.push(t.type);e.push(t.generateMipmaps);e.push(t.premultiplyAlpha);e.push(t.flipY);e.push(t.unpackAlignment);e.push(t.colorSpace);return e.join()}function setTexture2D(e,r){const s=i.get(e);e.isVideoTexture&&updateVideoTexture(e);if(e.isRenderTargetTexture===false&&e.version>0&&s.__version!==e.version){const t=e.image;if(t===null)console.warn(\"THREE.WebGLRenderer: Texture marked for update but no image data found.\");else{if(t.complete!==false){uploadTexture(s,e,r);return}console.warn(\"THREE.WebGLRenderer: Texture marked for update but image is incomplete\")}}n.bindTexture(t.TEXTURE_2D,s.__webglTexture,t.TEXTURE0+r)}function setTexture2DArray(e,r){const s=i.get(e);e.version>0&&s.__version!==e.version?uploadTexture(s,e,r):n.bindTexture(t.TEXTURE_2D_ARRAY,s.__webglTexture,t.TEXTURE0+r)}function setTexture3D(e,r){const s=i.get(e);e.version>0&&s.__version!==e.version?uploadTexture(s,e,r):n.bindTexture(t.TEXTURE_3D,s.__webglTexture,t.TEXTURE0+r)}function setTextureCube(e,r){const s=i.get(e);e.version>0&&s.__version!==e.version?uploadCubeTexture(s,e,r):n.bindTexture(t.TEXTURE_CUBE_MAP,s.__webglTexture,t.TEXTURE0+r)}const m={[ft]:t.REPEAT,[mt]:t.CLAMP_TO_EDGE,[gt]:t.MIRRORED_REPEAT};const g={[vt]:t.NEAREST,[_t]:t.NEAREST_MIPMAP_NEAREST,[yt]:t.NEAREST_MIPMAP_LINEAR,[St]:t.LINEAR,[bt]:t.LINEAR_MIPMAP_NEAREST,[wt]:t.LINEAR_MIPMAP_LINEAR};const _={[Sn]:t.NEVER,[Rn]:t.ALWAYS,[bn]:t.LESS,[wn]:t.LEQUAL,[Tn]:t.EQUAL,[Cn]:t.GEQUAL,[En]:t.GREATER,[An]:t.NOTEQUAL};function setTextureParameters(n,s){s.type!==Ut||e.has(\"OES_texture_float_linear\")!==false||s.magFilter!==St&&s.magFilter!==bt&&s.magFilter!==yt&&s.magFilter!==wt&&s.minFilter!==St&&s.minFilter!==bt&&s.minFilter!==yt&&s.minFilter!==wt||console.warn(\"THREE.WebGLRenderer: Unable to use linear filtering with floating point textures. OES_texture_float_linear not supported on this device.\");t.texParameteri(n,t.TEXTURE_WRAP_S,m[s.wrapS]);t.texParameteri(n,t.TEXTURE_WRAP_T,m[s.wrapT]);n!==t.TEXTURE_3D&&n!==t.TEXTURE_2D_ARRAY||t.texParameteri(n,t.TEXTURE_WRAP_R,m[s.wrapR]);t.texParameteri(n,t.TEXTURE_MAG_FILTER,g[s.magFilter]);t.texParameteri(n,t.TEXTURE_MIN_FILTER,g[s.minFilter]);if(s.compareFunction){t.texParameteri(n,t.TEXTURE_COMPARE_MODE,t.COMPARE_REF_TO_TEXTURE);t.texParameteri(n,t.TEXTURE_COMPARE_FUNC,_[s.compareFunction])}if(e.has(\"EXT_texture_filter_anisotropic\")===true){if(s.magFilter===vt)return;if(s.minFilter!==yt&&s.minFilter!==wt)return;if(s.type===Ut&&e.has(\"OES_texture_float_linear\")===false)return;if(s.anisotropy>1||i.get(s).__currentAnisotropy){const a=e.get(\"EXT_texture_filter_anisotropic\");t.texParameterf(n,a.TEXTURE_MAX_ANISOTROPY_EXT,Math.min(s.anisotropy,r.getMaxAnisotropy()));i.get(s).__currentAnisotropy=s.anisotropy}}}function initTexture(e,n){let i=false;if(e.__webglInit===void 0){e.__webglInit=true;n.addEventListener(\"dispose\",onTextureDispose)}const r=n.source;let s=d.get(r);if(s===void 0){s={};d.set(r,s)}const o=getTextureCacheKey(n);if(o!==e.__cacheKey){if(s[o]===void 0){s[o]={texture:t.createTexture(),usedTimes:0};a.memory.textures++;i=true}s[o].usedTimes++;const r=s[e.__cacheKey];if(r!==void 0){s[e.__cacheKey].usedTimes--;r.usedTimes===0&&deleteTexture(n)}e.__cacheKey=o;e.__webglTexture=s[o].texture}return i}function uploadTexture(e,a,o){let l=t.TEXTURE_2D;(a.isDataArrayTexture||a.isCompressedArrayTexture)&&(l=t.TEXTURE_2D_ARRAY);a.isData3DTexture&&(l=t.TEXTURE_3D);const c=initTexture(e,a);const h=a.source;n.bindTexture(l,e.__webglTexture,t.TEXTURE0+o);const u=i.get(h);if(h.version!==u.__version||c===true){n.activeTexture(t.TEXTURE0+o);const e=ei.getPrimaries(ei.workingColorSpace);const i=a.colorSpace===Ze?null:ei.getPrimaries(a.colorSpace);const d=a.colorSpace===Ze||e===i?t.NONE:t.BROWSER_DEFAULT_WEBGL;t.pixelStorei(t.UNPACK_FLIP_Y_WEBGL,a.flipY);t.pixelStorei(t.UNPACK_PREMULTIPLY_ALPHA_WEBGL,a.premultiplyAlpha);t.pixelStorei(t.UNPACK_ALIGNMENT,a.unpackAlignment);t.pixelStorei(t.UNPACK_COLORSPACE_CONVERSION_WEBGL,d);let p=resizeImage(a.image,false,r.maxTextureSize);p=verifyColorSpace(a,p);const f=s.convert(a.format,a.colorSpace);const m=s.convert(a.type);let g=getInternalFormat(a.internalFormat,f,m,a.colorSpace,a.isVideoTexture);setTextureParameters(l,a);let _;const x=a.mipmaps;const y=a.isVideoTexture!==true;const M=u.__version===void 0||c===true;const S=h.dataReady;const b=getMipLevels(a,p);if(a.isDepthTexture){g=getInternalDepthFormat(a.format===Xt,a.type);M&&(y?n.texStorage2D(t.TEXTURE_2D,1,g,p.width,p.height):n.texImage2D(t.TEXTURE_2D,0,g,p.width,p.height,0,f,m,null))}else if(a.isDataTexture)if(x.length>0){y&&M&&n.texStorage2D(t.TEXTURE_2D,b,g,x[0].width,x[0].height);for(let e=0,i=x.length;e<i;e++){_=x[e];y?S&&n.texSubImage2D(t.TEXTURE_2D,e,0,0,_.width,_.height,f,m,_.data):n.texImage2D(t.TEXTURE_2D,e,g,_.width,_.height,0,f,m,_.data)}a.generateMipmaps=false}else if(y){M&&n.texStorage2D(t.TEXTURE_2D,b,g,p.width,p.height);S&&n.texSubImage2D(t.TEXTURE_2D,0,0,0,p.width,p.height,f,m,p.data)}else n.texImage2D(t.TEXTURE_2D,0,g,p.width,p.height,0,f,m,p.data);else if(a.isCompressedTexture)if(a.isCompressedArrayTexture){y&&M&&n.texStorage3D(t.TEXTURE_2D_ARRAY,b,g,x[0].width,x[0].height,p.depth);for(let e=0,i=x.length;e<i;e++){_=x[e];if(a.format!==Gt)if(f!==null)if(y){if(S)if(a.layerUpdates.size>0){const i=getByteLength(_.width,_.height,a.format,a.type);for(const r of a.layerUpdates){const s=_.data.subarray(r*i/_.data.BYTES_PER_ELEMENT,(r+1)*i/_.data.BYTES_PER_ELEMENT);n.compressedTexSubImage3D(t.TEXTURE_2D_ARRAY,e,0,0,r,_.width,_.height,1,f,s,0,0)}a.clearLayerUpdates()}else n.compressedTexSubImage3D(t.TEXTURE_2D_ARRAY,e,0,0,0,_.width,_.height,p.depth,f,_.data,0,0)}else n.compressedTexImage3D(t.TEXTURE_2D_ARRAY,e,g,_.width,_.height,p.depth,0,_.data,0,0);else console.warn(\"THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .uploadTexture()\");else y?S&&n.texSubImage3D(t.TEXTURE_2D_ARRAY,e,0,0,0,_.width,_.height,p.depth,f,m,_.data):n.texImage3D(t.TEXTURE_2D_ARRAY,e,g,_.width,_.height,p.depth,0,f,m,_.data)}}else{y&&M&&n.texStorage2D(t.TEXTURE_2D,b,g,x[0].width,x[0].height);for(let e=0,i=x.length;e<i;e++){_=x[e];a.format!==Gt?f!==null?y?S&&n.compressedTexSubImage2D(t.TEXTURE_2D,e,0,0,_.width,_.height,f,_.data):n.compressedTexImage2D(t.TEXTURE_2D,e,g,_.width,_.height,0,_.data):console.warn(\"THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .uploadTexture()\"):y?S&&n.texSubImage2D(t.TEXTURE_2D,e,0,0,_.width,_.height,f,m,_.data):n.texImage2D(t.TEXTURE_2D,e,g,_.width,_.height,0,f,m,_.data)}}else if(a.isDataArrayTexture)if(y){M&&n.texStorage3D(t.TEXTURE_2D_ARRAY,b,g,p.width,p.height,p.depth);if(S)if(a.layerUpdates.size>0){const e=getByteLength(p.width,p.height,a.format,a.type);for(const i of a.layerUpdates){const r=p.data.subarray(i*e/p.data.BYTES_PER_ELEMENT,(i+1)*e/p.data.BYTES_PER_ELEMENT);n.texSubImage3D(t.TEXTURE_2D_ARRAY,0,0,0,i,p.width,p.height,1,f,m,r)}a.clearLayerUpdates()}else n.texSubImage3D(t.TEXTURE_2D_ARRAY,0,0,0,0,p.width,p.height,p.depth,f,m,p.data)}else n.texImage3D(t.TEXTURE_2D_ARRAY,0,g,p.width,p.height,p.depth,0,f,m,p.data);else if(a.isData3DTexture)if(y){M&&n.texStorage3D(t.TEXTURE_3D,b,g,p.width,p.height,p.depth);S&&n.texSubImage3D(t.TEXTURE_3D,0,0,0,0,p.width,p.height,p.depth,f,m,p.data)}else n.texImage3D(t.TEXTURE_3D,0,g,p.width,p.height,p.depth,0,f,m,p.data);else if(a.isFramebufferTexture){if(M)if(y)n.texStorage2D(t.TEXTURE_2D,b,g,p.width,p.height);else{let e=p.width,i=p.height;for(let r=0;r<b;r++){n.texImage2D(t.TEXTURE_2D,r,g,e,i,0,f,m,null);e>>=1;i>>=1}}}else if(x.length>0){if(y&&M){const e=getDimensions(x[0]);n.texStorage2D(t.TEXTURE_2D,b,g,e.width,e.height)}for(let e=0,i=x.length;e<i;e++){_=x[e];y?S&&n.texSubImage2D(t.TEXTURE_2D,e,0,0,f,m,_):n.texImage2D(t.TEXTURE_2D,e,g,f,m,_)}a.generateMipmaps=false}else if(y){if(M){const e=getDimensions(p);n.texStorage2D(t.TEXTURE_2D,b,g,e.width,e.height)}S&&n.texSubImage2D(t.TEXTURE_2D,0,0,0,f,m,p)}else n.texImage2D(t.TEXTURE_2D,0,g,f,m,p);textureNeedsGenerateMipmaps(a)&&generateMipmap(l);u.__version=h.version;a.onUpdate&&a.onUpdate(a)}e.__version=a.version}function uploadCubeTexture(e,a,o){if(a.image.length!==6)return;const l=initTexture(e,a);const c=a.source;n.bindTexture(t.TEXTURE_CUBE_MAP,e.__webglTexture,t.TEXTURE0+o);const h=i.get(c);if(c.version!==h.__version||l===true){n.activeTexture(t.TEXTURE0+o);const e=ei.getPrimaries(ei.workingColorSpace);const i=a.colorSpace===Ze?null:ei.getPrimaries(a.colorSpace);const u=a.colorSpace===Ze||e===i?t.NONE:t.BROWSER_DEFAULT_WEBGL;t.pixelStorei(t.UNPACK_FLIP_Y_WEBGL,a.flipY);t.pixelStorei(t.UNPACK_PREMULTIPLY_ALPHA_WEBGL,a.premultiplyAlpha);t.pixelStorei(t.UNPACK_ALIGNMENT,a.unpackAlignment);t.pixelStorei(t.UNPACK_COLORSPACE_CONVERSION_WEBGL,u);const d=a.isCompressedTexture||a.image[0].isCompressedTexture;const p=a.image[0]&&a.image[0].isDataTexture;const f=[];for(let t=0;t<6;t++){f[t]=d||p?p?a.image[t].image:a.image[t]:resizeImage(a.image[t],true,r.maxCubemapSize);f[t]=verifyColorSpace(a,f[t])}const m=f[0],g=s.convert(a.format,a.colorSpace),_=s.convert(a.type),x=getInternalFormat(a.internalFormat,g,_,a.colorSpace);const y=a.isVideoTexture!==true;const M=h.__version===void 0||l===true;const S=c.dataReady;let b=getMipLevels(a,m);setTextureParameters(t.TEXTURE_CUBE_MAP,a);let T;if(d){y&&M&&n.texStorage2D(t.TEXTURE_CUBE_MAP,b,x,m.width,m.height);for(let e=0;e<6;e++){T=f[e].mipmaps;for(let i=0;i<T.length;i++){const r=T[i];a.format!==Gt?g!==null?y?S&&n.compressedTexSubImage2D(t.TEXTURE_CUBE_MAP_POSITIVE_X+e,i,0,0,r.width,r.height,g,r.data):n.compressedTexImage2D(t.TEXTURE_CUBE_MAP_POSITIVE_X+e,i,x,r.width,r.height,0,r.data):console.warn(\"THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .setTextureCube()\"):y?S&&n.texSubImage2D(t.TEXTURE_CUBE_MAP_POSITIVE_X+e,i,0,0,r.width,r.height,g,_,r.data):n.texImage2D(t.TEXTURE_CUBE_MAP_POSITIVE_X+e,i,x,r.width,r.height,0,g,_,r.data)}}}else{T=a.mipmaps;if(y&&M){T.length>0&&b++;const e=getDimensions(f[0]);n.texStorage2D(t.TEXTURE_CUBE_MAP,b,x,e.width,e.height)}for(let e=0;e<6;e++)if(p){y?S&&n.texSubImage2D(t.TEXTURE_CUBE_MAP_POSITIVE_X+e,0,0,0,f[e].width,f[e].height,g,_,f[e].data):n.texImage2D(t.TEXTURE_CUBE_MAP_POSITIVE_X+e,0,x,f[e].width,f[e].height,0,g,_,f[e].data);for(let i=0;i<T.length;i++){const r=T[i];const s=r.image[e].image;y?S&&n.texSubImage2D(t.TEXTURE_CUBE_MAP_POSITIVE_X+e,i+1,0,0,s.width,s.height,g,_,s.data):n.texImage2D(t.TEXTURE_CUBE_MAP_POSITIVE_X+e,i+1,x,s.width,s.height,0,g,_,s.data)}}else{y?S&&n.texSubImage2D(t.TEXTURE_CUBE_MAP_POSITIVE_X+e,0,0,0,g,_,f[e]):n.texImage2D(t.TEXTURE_CUBE_MAP_POSITIVE_X+e,0,x,g,_,f[e]);for(let i=0;i<T.length;i++){const r=T[i];y?S&&n.texSubImage2D(t.TEXTURE_CUBE_MAP_POSITIVE_X+e,i+1,0,0,g,_,r.image[e]):n.texImage2D(t.TEXTURE_CUBE_MAP_POSITIVE_X+e,i+1,x,g,_,r.image[e])}}}textureNeedsGenerateMipmaps(a)&&generateMipmap(t.TEXTURE_CUBE_MAP);h.__version=c.version;a.onUpdate&&a.onUpdate(a)}e.__version=a.version}function setupFrameBufferTexture(e,r,a,l,c,h){const u=s.convert(a.format,a.colorSpace);const d=s.convert(a.type);const p=getInternalFormat(a.internalFormat,u,d,a.colorSpace);const f=i.get(r);if(!f.__hasExternalTextures){const e=Math.max(1,r.width>>h);const i=Math.max(1,r.height>>h);c===t.TEXTURE_3D||c===t.TEXTURE_2D_ARRAY?n.texImage3D(c,h,p,e,i,r.depth,0,u,d,null):n.texImage2D(c,h,p,e,i,0,u,d,null)}n.bindFramebuffer(t.FRAMEBUFFER,e);useMultisampledRTT(r)?o.framebufferTexture2DMultisampleEXT(t.FRAMEBUFFER,l,c,i.get(a).__webglTexture,0,getRenderTargetSamples(r)):(c===t.TEXTURE_2D||c>=t.TEXTURE_CUBE_MAP_POSITIVE_X&&c<=t.TEXTURE_CUBE_MAP_NEGATIVE_Z)&&t.framebufferTexture2D(t.FRAMEBUFFER,l,c,i.get(a).__webglTexture,h);n.bindFramebuffer(t.FRAMEBUFFER,null)}function setupRenderBufferStorage(e,n,i){t.bindRenderbuffer(t.RENDERBUFFER,e);if(n.depthBuffer){const r=n.depthTexture;const s=r&&r.isDepthTexture?r.type:null;const a=getInternalDepthFormat(n.stencilBuffer,s);const l=n.stencilBuffer?t.DEPTH_STENCIL_ATTACHMENT:t.DEPTH_ATTACHMENT;const c=getRenderTargetSamples(n);const h=useMultisampledRTT(n);h?o.renderbufferStorageMultisampleEXT(t.RENDERBUFFER,c,a,n.width,n.height):i?t.renderbufferStorageMultisample(t.RENDERBUFFER,c,a,n.width,n.height):t.renderbufferStorage(t.RENDERBUFFER,a,n.width,n.height);t.framebufferRenderbuffer(t.FRAMEBUFFER,l,t.RENDERBUFFER,e)}else{const e=n.textures;for(let r=0;r<e.length;r++){const a=e[r];const l=s.convert(a.format,a.colorSpace);const c=s.convert(a.type);const h=getInternalFormat(a.internalFormat,l,c,a.colorSpace);const u=getRenderTargetSamples(n);i&&useMultisampledRTT(n)===false?t.renderbufferStorageMultisample(t.RENDERBUFFER,u,h,n.width,n.height):useMultisampledRTT(n)?o.renderbufferStorageMultisampleEXT(t.RENDERBUFFER,u,h,n.width,n.height):t.renderbufferStorage(t.RENDERBUFFER,h,n.width,n.height)}}t.bindRenderbuffer(t.RENDERBUFFER,null)}function setupDepthTexture(e,r){const s=r&&r.isWebGLCubeRenderTarget;if(s)throw new Error(\"Depth Texture with cube render targets is not supported\");n.bindFramebuffer(t.FRAMEBUFFER,e);if(!(r.depthTexture&&r.depthTexture.isDepthTexture))throw new Error(\"renderTarget.depthTexture must be an instance of THREE.DepthTexture\");if(!i.get(r.depthTexture).__webglTexture||r.depthTexture.image.width!==r.width||r.depthTexture.image.height!==r.height){r.depthTexture.image.width=r.width;r.depthTexture.image.height=r.height;r.depthTexture.needsUpdate=true}setTexture2D(r.depthTexture,0);const a=i.get(r.depthTexture).__webglTexture;const l=getRenderTargetSamples(r);if(r.depthTexture.format===Wt)useMultisampledRTT(r)?o.framebufferTexture2DMultisampleEXT(t.FRAMEBUFFER,t.DEPTH_ATTACHMENT,t.TEXTURE_2D,a,0,l):t.framebufferTexture2D(t.FRAMEBUFFER,t.DEPTH_ATTACHMENT,t.TEXTURE_2D,a,0);else{if(r.depthTexture.format!==Xt)throw new Error(\"Unknown depthTexture format\");useMultisampledRTT(r)?o.framebufferTexture2DMultisampleEXT(t.FRAMEBUFFER,t.DEPTH_STENCIL_ATTACHMENT,t.TEXTURE_2D,a,0,l):t.framebufferTexture2D(t.FRAMEBUFFER,t.DEPTH_STENCIL_ATTACHMENT,t.TEXTURE_2D,a,0)}}function setupDepthRenderbuffer(e){const r=i.get(e);const s=e.isWebGLCubeRenderTarget===true;if(e.depthTexture&&!r.__autoAllocateDepthBuffer){if(s)throw new Error(\"target.depthTexture not supported in Cube render targets\");setupDepthTexture(r.__webglFramebuffer,e)}else if(s){r.__webglDepthbuffer=[];for(let i=0;i<6;i++){n.bindFramebuffer(t.FRAMEBUFFER,r.__webglFramebuffer[i]);r.__webglDepthbuffer[i]=t.createRenderbuffer();setupRenderBufferStorage(r.__webglDepthbuffer[i],e,false)}}else{n.bindFramebuffer(t.FRAMEBUFFER,r.__webglFramebuffer);r.__webglDepthbuffer=t.createRenderbuffer();setupRenderBufferStorage(r.__webglDepthbuffer,e,false)}n.bindFramebuffer(t.FRAMEBUFFER,null)}function rebindTextures(e,n,r){const s=i.get(e);n!==void 0&&setupFrameBufferTexture(s.__webglFramebuffer,e,e.texture,t.COLOR_ATTACHMENT0,t.TEXTURE_2D,0);r!==void 0&&setupDepthRenderbuffer(e)}function setupRenderTarget(e){const r=e.texture;const o=i.get(e);const l=i.get(r);e.addEventListener(\"dispose\",onRenderTargetDispose);const c=e.textures;const h=e.isWebGLCubeRenderTarget===true;const u=c.length>1;if(!u){l.__webglTexture===void 0&&(l.__webglTexture=t.createTexture());l.__version=r.version;a.memory.textures++}if(h){o.__webglFramebuffer=[];for(let e=0;e<6;e++)if(r.mipmaps&&r.mipmaps.length>0){o.__webglFramebuffer[e]=[];for(let n=0;n<r.mipmaps.length;n++)o.__webglFramebuffer[e][n]=t.createFramebuffer()}else o.__webglFramebuffer[e]=t.createFramebuffer()}else{if(r.mipmaps&&r.mipmaps.length>0){o.__webglFramebuffer=[];for(let e=0;e<r.mipmaps.length;e++)o.__webglFramebuffer[e]=t.createFramebuffer()}else o.__webglFramebuffer=t.createFramebuffer();if(u)for(let e=0,n=c.length;e<n;e++){const n=i.get(c[e]);if(n.__webglTexture===void 0){n.__webglTexture=t.createTexture();a.memory.textures++}}if(e.samples>0&&useMultisampledRTT(e)===false){o.__webglMultisampledFramebuffer=t.createFramebuffer();o.__webglColorRenderbuffer=[];n.bindFramebuffer(t.FRAMEBUFFER,o.__webglMultisampledFramebuffer);for(let n=0;n<c.length;n++){const i=c[n];o.__webglColorRenderbuffer[n]=t.createRenderbuffer();t.bindRenderbuffer(t.RENDERBUFFER,o.__webglColorRenderbuffer[n]);const r=s.convert(i.format,i.colorSpace);const a=s.convert(i.type);const l=getInternalFormat(i.internalFormat,r,a,i.colorSpace,e.isXRRenderTarget===true);const h=getRenderTargetSamples(e);t.renderbufferStorageMultisample(t.RENDERBUFFER,h,l,e.width,e.height);t.framebufferRenderbuffer(t.FRAMEBUFFER,t.COLOR_ATTACHMENT0+n,t.RENDERBUFFER,o.__webglColorRenderbuffer[n])}t.bindRenderbuffer(t.RENDERBUFFER,null);if(e.depthBuffer){o.__webglDepthRenderbuffer=t.createRenderbuffer();setupRenderBufferStorage(o.__webglDepthRenderbuffer,e,true)}n.bindFramebuffer(t.FRAMEBUFFER,null)}}if(h){n.bindTexture(t.TEXTURE_CUBE_MAP,l.__webglTexture);setTextureParameters(t.TEXTURE_CUBE_MAP,r);for(let n=0;n<6;n++)if(r.mipmaps&&r.mipmaps.length>0)for(let i=0;i<r.mipmaps.length;i++)setupFrameBufferTexture(o.__webglFramebuffer[n][i],e,r,t.COLOR_ATTACHMENT0,t.TEXTURE_CUBE_MAP_POSITIVE_X+n,i);else setupFrameBufferTexture(o.__webglFramebuffer[n],e,r,t.COLOR_ATTACHMENT0,t.TEXTURE_CUBE_MAP_POSITIVE_X+n,0);textureNeedsGenerateMipmaps(r)&&generateMipmap(t.TEXTURE_CUBE_MAP);n.unbindTexture()}else if(u){for(let r=0,s=c.length;r<s;r++){const s=c[r];const a=i.get(s);n.bindTexture(t.TEXTURE_2D,a.__webglTexture);setTextureParameters(t.TEXTURE_2D,s);setupFrameBufferTexture(o.__webglFramebuffer,e,s,t.COLOR_ATTACHMENT0+r,t.TEXTURE_2D,0);textureNeedsGenerateMipmaps(s)&&generateMipmap(t.TEXTURE_2D)}n.unbindTexture()}else{let i=t.TEXTURE_2D;(e.isWebGL3DRenderTarget||e.isWebGLArrayRenderTarget)&&(i=e.isWebGL3DRenderTarget?t.TEXTURE_3D:t.TEXTURE_2D_ARRAY);n.bindTexture(i,l.__webglTexture);setTextureParameters(i,r);if(r.mipmaps&&r.mipmaps.length>0)for(let n=0;n<r.mipmaps.length;n++)setupFrameBufferTexture(o.__webglFramebuffer[n],e,r,t.COLOR_ATTACHMENT0,i,n);else setupFrameBufferTexture(o.__webglFramebuffer,e,r,t.COLOR_ATTACHMENT0,i,0);textureNeedsGenerateMipmaps(r)&&generateMipmap(i);n.unbindTexture()}e.depthBuffer&&setupDepthRenderbuffer(e)}function updateRenderTargetMipmap(e){const r=e.textures;for(let s=0,a=r.length;s<a;s++){const a=r[s];if(textureNeedsGenerateMipmaps(a)){const r=e.isWebGLCubeRenderTarget?t.TEXTURE_CUBE_MAP:t.TEXTURE_2D;const s=i.get(a).__webglTexture;n.bindTexture(r,s);generateMipmap(r);n.unbindTexture()}}}const x=[];const y=[];function updateMultisampleRenderTarget(e){if(e.samples>0)if(useMultisampledRTT(e)===false){const r=e.textures;const s=e.width;const a=e.height;let o=t.COLOR_BUFFER_BIT;const c=e.stencilBuffer?t.DEPTH_STENCIL_ATTACHMENT:t.DEPTH_ATTACHMENT;const h=i.get(e);const u=r.length>1;if(u)for(let e=0;e<r.length;e++){n.bindFramebuffer(t.FRAMEBUFFER,h.__webglMultisampledFramebuffer);t.framebufferRenderbuffer(t.FRAMEBUFFER,t.COLOR_ATTACHMENT0+e,t.RENDERBUFFER,null);n.bindFramebuffer(t.FRAMEBUFFER,h.__webglFramebuffer);t.framebufferTexture2D(t.DRAW_FRAMEBUFFER,t.COLOR_ATTACHMENT0+e,t.TEXTURE_2D,null,0)}n.bindFramebuffer(t.READ_FRAMEBUFFER,h.__webglMultisampledFramebuffer);n.bindFramebuffer(t.DRAW_FRAMEBUFFER,h.__webglFramebuffer);for(let n=0;n<r.length;n++){if(e.resolveDepthBuffer){e.depthBuffer&&(o|=t.DEPTH_BUFFER_BIT);e.stencilBuffer&&e.resolveStencilBuffer&&(o|=t.STENCIL_BUFFER_BIT)}if(u){t.framebufferRenderbuffer(t.READ_FRAMEBUFFER,t.COLOR_ATTACHMENT0,t.RENDERBUFFER,h.__webglColorRenderbuffer[n]);const e=i.get(r[n]).__webglTexture;t.framebufferTexture2D(t.DRAW_FRAMEBUFFER,t.COLOR_ATTACHMENT0,t.TEXTURE_2D,e,0)}t.blitFramebuffer(0,0,s,a,0,0,s,a,o,t.NEAREST);if(l===true){x.length=0;y.length=0;x.push(t.COLOR_ATTACHMENT0+n);if(e.depthBuffer&&e.resolveDepthBuffer===false){x.push(c);y.push(c);t.invalidateFramebuffer(t.DRAW_FRAMEBUFFER,y)}t.invalidateFramebuffer(t.READ_FRAMEBUFFER,x)}}n.bindFramebuffer(t.READ_FRAMEBUFFER,null);n.bindFramebuffer(t.DRAW_FRAMEBUFFER,null);if(u)for(let e=0;e<r.length;e++){n.bindFramebuffer(t.FRAMEBUFFER,h.__webglMultisampledFramebuffer);t.framebufferRenderbuffer(t.FRAMEBUFFER,t.COLOR_ATTACHMENT0+e,t.RENDERBUFFER,h.__webglColorRenderbuffer[e]);const s=i.get(r[e]).__webglTexture;n.bindFramebuffer(t.FRAMEBUFFER,h.__webglFramebuffer);t.framebufferTexture2D(t.DRAW_FRAMEBUFFER,t.COLOR_ATTACHMENT0+e,t.TEXTURE_2D,s,0)}n.bindFramebuffer(t.DRAW_FRAMEBUFFER,h.__webglMultisampledFramebuffer)}else if(e.depthBuffer&&e.resolveDepthBuffer===false&&l){const n=e.stencilBuffer?t.DEPTH_STENCIL_ATTACHMENT:t.DEPTH_ATTACHMENT;t.invalidateFramebuffer(t.DRAW_FRAMEBUFFER,[n])}}function getRenderTargetSamples(t){return Math.min(r.maxSamples,t.samples)}function useMultisampledRTT(t){const n=i.get(t);return t.samples>0&&e.has(\"WEBGL_multisampled_render_to_texture\")===true&&n.__useRenderToTexture!==false}function updateVideoTexture(t){const e=a.render.frame;if(h.get(t)!==e){h.set(t,e);t.update()}}function verifyColorSpace(t,e){const n=t.colorSpace;const i=t.format;const r=t.type;if(t.isCompressedTexture===true||t.isVideoTexture===true)return e;n!==Qe&&n!==Ze&&(ei.getTransfer(n)===nn?i===Gt&&r===At||console.warn(\"THREE.WebGLTextures: sRGB encoded textures have to use RGBAFormat and UnsignedByteType.\"):console.error(\"THREE.WebGLTextures: Unsupported texture color space:\",n));return e}function getDimensions(t){if(typeof HTMLImageElement!==\"undefined\"&&t instanceof HTMLImageElement){c.width=t.naturalWidth||t.width;c.height=t.naturalHeight||t.height}else if(typeof VideoFrame!==\"undefined\"&&t instanceof VideoFrame){c.width=t.displayWidth;c.height=t.displayHeight}else{c.width=t.width;c.height=t.height}return c}this.allocateTextureUnit=allocateTextureUnit;this.resetTextureUnits=resetTextureUnits;this.setTexture2D=setTexture2D;this.setTexture2DArray=setTexture2DArray;this.setTexture3D=setTexture3D;this.setTextureCube=setTextureCube;this.rebindTextures=rebindTextures;this.setupRenderTarget=setupRenderTarget;this.updateRenderTargetMipmap=updateRenderTargetMipmap;this.updateMultisampleRenderTarget=updateMultisampleRenderTarget;this.setupDepthRenderbuffer=setupDepthRenderbuffer;this.setupFrameBufferTexture=setupFrameBufferTexture;this.useMultisampledRTT=useMultisampledRTT}function WebGLUtils(t,e){function convert(n,i=Ze){let r;const s=ei.getTransfer(i);if(n===At)return t.UNSIGNED_BYTE;if(n===Nt)return t.UNSIGNED_SHORT_4_4_4_4;if(n===Bt)return t.UNSIGNED_SHORT_5_5_5_1;if(n===Vt)return t.UNSIGNED_INT_5_9_9_9_REV;if(n===Ct)return t.BYTE;if(n===Rt)return t.SHORT;if(n===Pt)return t.UNSIGNED_SHORT;if(n===Lt)return t.INT;if(n===It)return t.UNSIGNED_INT;if(n===Ut)return t.FLOAT;if(n===Dt)return t.HALF_FLOAT;if(n===Ft)return t.ALPHA;if(n===zt)return t.RGB;if(n===Gt)return t.RGBA;if(n===kt)return t.LUMINANCE;if(n===Ht)return t.LUMINANCE_ALPHA;if(n===Wt)return t.DEPTH_COMPONENT;if(n===Xt)return t.DEPTH_STENCIL;if(n===jt)return t.RED;if(n===qt)return t.RED_INTEGER;if(n===Yt)return t.RG;if(n===Kt)return t.RG_INTEGER;if(n===Jt)return t.RGBA_INTEGER;if(n===Qt||n===$t||n===te||n===ee)if(s===nn){r=e.get(\"WEBGL_compressed_texture_s3tc_srgb\");if(r===null)return null;if(n===Qt)return r.COMPRESSED_SRGB_S3TC_DXT1_EXT;if(n===$t)return r.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT;if(n===te)return r.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT;if(n===ee)return r.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT}else{r=e.get(\"WEBGL_compressed_texture_s3tc\");if(r===null)return null;if(n===Qt)return r.COMPRESSED_RGB_S3TC_DXT1_EXT;if(n===$t)return r.COMPRESSED_RGBA_S3TC_DXT1_EXT;if(n===te)return r.COMPRESSED_RGBA_S3TC_DXT3_EXT;if(n===ee)return r.COMPRESSED_RGBA_S3TC_DXT5_EXT}if(n===ne||n===ie||n===re||n===se){r=e.get(\"WEBGL_compressed_texture_pvrtc\");if(r===null)return null;if(n===ne)return r.COMPRESSED_RGB_PVRTC_4BPPV1_IMG;if(n===ie)return r.COMPRESSED_RGB_PVRTC_2BPPV1_IMG;if(n===re)return r.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG;if(n===se)return r.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG}if(n===ae||n===oe||n===le){r=e.get(\"WEBGL_compressed_texture_etc\");if(r===null)return null;if(n===ae||n===oe)return s===nn?r.COMPRESSED_SRGB8_ETC2:r.COMPRESSED_RGB8_ETC2;if(n===le)return s===nn?r.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:r.COMPRESSED_RGBA8_ETC2_EAC}if(n===ce||n===he||n===ue||n===de||n===pe||n===fe||n===me||n===ge||n===ve||n===_e||n===xe||n===ye||n===Me||n===Se){r=e.get(\"WEBGL_compressed_texture_astc\");if(r===null)return null;if(n===ce)return s===nn?r.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR:r.COMPRESSED_RGBA_ASTC_4x4_KHR;if(n===he)return s===nn?r.COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR:r.COMPRESSED_RGBA_ASTC_5x4_KHR;if(n===ue)return s===nn?r.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR:r.COMPRESSED_RGBA_ASTC_5x5_KHR;if(n===de)return s===nn?r.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR:r.COMPRESSED_RGBA_ASTC_6x5_KHR;if(n===pe)return s===nn?r.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR:r.COMPRESSED_RGBA_ASTC_6x6_KHR;if(n===fe)return s===nn?r.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR:r.COMPRESSED_RGBA_ASTC_8x5_KHR;if(n===me)return s===nn?r.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR:r.COMPRESSED_RGBA_ASTC_8x6_KHR;if(n===ge)return s===nn?r.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR:r.COMPRESSED_RGBA_ASTC_8x8_KHR;if(n===ve)return s===nn?r.COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR:r.COMPRESSED_RGBA_ASTC_10x5_KHR;if(n===_e)return s===nn?r.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR:r.COMPRESSED_RGBA_ASTC_10x6_KHR;if(n===xe)return s===nn?r.COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR:r.COMPRESSED_RGBA_ASTC_10x8_KHR;if(n===ye)return s===nn?r.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR:r.COMPRESSED_RGBA_ASTC_10x10_KHR;if(n===Me)return s===nn?r.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR:r.COMPRESSED_RGBA_ASTC_12x10_KHR;if(n===Se)return s===nn?r.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR:r.COMPRESSED_RGBA_ASTC_12x12_KHR}if(n===be||n===Te||n===we){r=e.get(\"EXT_texture_compression_bptc\");if(r===null)return null;if(n===be)return s===nn?r.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT:r.COMPRESSED_RGBA_BPTC_UNORM_EXT;if(n===Te)return r.COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT;if(n===we)return r.COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT}if(n===Ee||n===Ae||n===Ce||n===Re){r=e.get(\"EXT_texture_compression_rgtc\");if(r===null)return null;if(n===be)return r.COMPRESSED_RED_RGTC1_EXT;if(n===Ae)return r.COMPRESSED_SIGNED_RED_RGTC1_EXT;if(n===Ce)return r.COMPRESSED_RED_GREEN_RGTC2_EXT;if(n===Re)return r.COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT}return n===Ot?t.UNSIGNED_INT_24_8:t[n]!==void 0?t[n]:null}return{convert:convert}}class ArrayCamera extends PerspectiveCamera{constructor(t=[]){super();this.isArrayCamera=true;this.cameras=t}}class Group extends Object3D{constructor(){super();this.isGroup=true;this.type=\"Group\"}}const Sl={type:\"move\"};class WebXRController{constructor(){this._targetRay=null;this._grip=null;this._hand=null}getHandSpace(){if(this._hand===null){this._hand=new Group;this._hand.matrixAutoUpdate=false;this._hand.visible=false;this._hand.joints={};this._hand.inputState={pinching:false}}return this._hand}getTargetRaySpace(){if(this._targetRay===null){this._targetRay=new Group;this._targetRay.matrixAutoUpdate=false;this._targetRay.visible=false;this._targetRay.hasLinearVelocity=false;this._targetRay.linearVelocity=new Vector3;this._targetRay.hasAngularVelocity=false;this._targetRay.angularVelocity=new Vector3}return this._targetRay}getGripSpace(){if(this._grip===null){this._grip=new Group;this._grip.matrixAutoUpdate=false;this._grip.visible=false;this._grip.hasLinearVelocity=false;this._grip.linearVelocity=new Vector3;this._grip.hasAngularVelocity=false;this._grip.angularVelocity=new Vector3}return this._grip}dispatchEvent(t){this._targetRay!==null&&this._targetRay.dispatchEvent(t);this._grip!==null&&this._grip.dispatchEvent(t);this._hand!==null&&this._hand.dispatchEvent(t);return this}connect(t){if(t&&t.hand){const e=this._hand;if(e)for(const n of t.hand.values())this._getHandJoint(e,n)}this.dispatchEvent({type:\"connected\",data:t});return this}disconnect(t){this.dispatchEvent({type:\"disconnected\",data:t});this._targetRay!==null&&(this._targetRay.visible=false);this._grip!==null&&(this._grip.visible=false);this._hand!==null&&(this._hand.visible=false);return this}update(t,e,n){let i=null;let r=null;let s=null;const a=this._targetRay;const o=this._grip;const l=this._hand;if(t&&e.session.visibilityState!==\"visible-blurred\"){if(l&&t.hand){s=true;for(const i of t.hand.values()){const t=e.getJointPose(i,n);const r=this._getHandJoint(l,i);if(t!==null){r.matrix.fromArray(t.transform.matrix);r.matrix.decompose(r.position,r.rotation,r.scale);r.matrixWorldNeedsUpdate=true;r.jointRadius=t.radius}r.visible=t!==null}const i=l.joints[\"index-finger-tip\"];const r=l.joints[\"thumb-tip\"];const a=i.position.distanceTo(r.position);const o=.02;const c=.005;if(l.inputState.pinching&&a>o+c){l.inputState.pinching=false;this.dispatchEvent({type:\"pinchend\",handedness:t.handedness,target:this})}else if(!l.inputState.pinching&&a<=o-c){l.inputState.pinching=true;this.dispatchEvent({type:\"pinchstart\",handedness:t.handedness,target:this})}}else if(o!==null&&t.gripSpace){r=e.getPose(t.gripSpace,n);if(r!==null){o.matrix.fromArray(r.transform.matrix);o.matrix.decompose(o.position,o.rotation,o.scale);o.matrixWorldNeedsUpdate=true;if(r.linearVelocity){o.hasLinearVelocity=true;o.linearVelocity.copy(r.linearVelocity)}else o.hasLinearVelocity=false;if(r.angularVelocity){o.hasAngularVelocity=true;o.angularVelocity.copy(r.angularVelocity)}else o.hasAngularVelocity=false}}if(a!==null){i=e.getPose(t.targetRaySpace,n);i===null&&r!==null&&(i=r);if(i!==null){a.matrix.fromArray(i.transform.matrix);a.matrix.decompose(a.position,a.rotation,a.scale);a.matrixWorldNeedsUpdate=true;if(i.linearVelocity){a.hasLinearVelocity=true;a.linearVelocity.copy(i.linearVelocity)}else a.hasLinearVelocity=false;if(i.angularVelocity){a.hasAngularVelocity=true;a.angularVelocity.copy(i.angularVelocity)}else a.hasAngularVelocity=false;this.dispatchEvent(Sl)}}}a!==null&&(a.visible=i!==null);o!==null&&(o.visible=r!==null);l!==null&&(l.visible=s!==null);return this}_getHandJoint(t,e){if(t.joints[e.jointName]===void 0){const n=new Group;n.matrixAutoUpdate=false;n.visible=false;t.joints[e.jointName]=n;t.add(n)}return t.joints[e.jointName]}}const bl=\"\\nvoid main() {\\n\\n\\tgl_Position = vec4( position, 1.0 );\\n\\n}\";const Tl=\"\\nuniform sampler2DArray depthColor;\\nuniform float depthWidth;\\nuniform float depthHeight;\\n\\nvoid main() {\\n\\n\\tvec2 coord = vec2( gl_FragCoord.x / depthWidth, gl_FragCoord.y / depthHeight );\\n\\n\\tif ( coord.x >= 1.0 ) {\\n\\n\\t\\tgl_FragDepth = texture( depthColor, vec3( coord.x - 1.0, coord.y, 1 ) ).r;\\n\\n\\t} else {\\n\\n\\t\\tgl_FragDepth = texture( depthColor, vec3( coord.x, coord.y, 0 ) ).r;\\n\\n\\t}\\n\\n}\";class WebXRDepthSensing{constructor(){this.texture=null;this.mesh=null;this.depthNear=0;this.depthFar=0}init(t,e,n){if(this.texture===null){const i=new Texture;const r=t.properties.get(i);r.__webglTexture=e.texture;if(e.depthNear!=n.depthNear||e.depthFar!=n.depthFar){this.depthNear=e.depthNear;this.depthFar=e.depthFar}this.texture=i}}getMesh(t){if(this.texture!==null&&this.mesh===null){const e=t.cameras[0].viewport;const n=new ShaderMaterial({vertexShader:bl,fragmentShader:Tl,uniforms:{depthColor:{value:this.texture},depthWidth:{value:e.z},depthHeight:{value:e.w}}});this.mesh=new Mesh(new PlaneGeometry(20,20),n)}return this.mesh}reset(){this.texture=null;this.mesh=null}getDepthTexture(){return this.texture}}class WebXRManager extends EventDispatcher{constructor(t,e){super();const n=this;let i=null;let r=1;let s=null;let a=\"local-floor\";let o=1;let l=null;let c=null;let h=null;let u=null;let d=null;let p=null;const f=new WebXRDepthSensing;const m=e.getContextAttributes();let g=null;let _=null;const x=[];const y=[];const M=new Vector2;let S=null;const b=new PerspectiveCamera;b.layers.enable(1);b.viewport=new Vector4;const T=new PerspectiveCamera;T.layers.enable(2);T.viewport=new Vector4;const w=[b,T];const E=new ArrayCamera;E.layers.enable(1);E.layers.enable(2);let A=null;let C=null;this.cameraAutoUpdate=true;this.enabled=false;this.isPresenting=false;this.getController=function(t){let e=x[t];if(e===void 0){e=new WebXRController;x[t]=e}return e.getTargetRaySpace()};this.getControllerGrip=function(t){let e=x[t];if(e===void 0){e=new WebXRController;x[t]=e}return e.getGripSpace()};this.getHand=function(t){let e=x[t];if(e===void 0){e=new WebXRController;x[t]=e}return e.getHandSpace()};function onSessionEvent(t){const e=y.indexOf(t.inputSource);if(e===-1)return;const n=x[e];if(n!==void 0){n.update(t.inputSource,t.frame,l||s);n.dispatchEvent({type:t.type,data:t.inputSource})}}function onSessionEnd(){i.removeEventListener(\"select\",onSessionEvent);i.removeEventListener(\"selectstart\",onSessionEvent);i.removeEventListener(\"selectend\",onSessionEvent);i.removeEventListener(\"squeeze\",onSessionEvent);i.removeEventListener(\"squeezestart\",onSessionEvent);i.removeEventListener(\"squeezeend\",onSessionEvent);i.removeEventListener(\"end\",onSessionEnd);i.removeEventListener(\"inputsourceschange\",onInputSourcesChange);for(let t=0;t<x.length;t++){const e=y[t];if(e!==null){y[t]=null;x[t].disconnect(e)}}A=null;C=null;f.reset();t.setRenderTarget(g);d=null;u=null;h=null;i=null;_=null;I.stop();n.isPresenting=false;t.setPixelRatio(S);t.setSize(M.width,M.height,false);n.dispatchEvent({type:\"sessionend\"})}this.setFramebufferScaleFactor=function(t){r=t;n.isPresenting===true&&console.warn(\"THREE.WebXRManager: Cannot change framebuffer scale while presenting.\")};this.setReferenceSpaceType=function(t){a=t;n.isPresenting===true&&console.warn(\"THREE.WebXRManager: Cannot change reference space type while presenting.\")};this.getReferenceSpace=function(){return l||s};this.setReferenceSpace=function(t){l=t};this.getBaseLayer=function(){return u!==null?u:d};this.getBinding=function(){return h};this.getFrame=function(){return p};this.getSession=function(){return i};this.setSession=async function(c){i=c;if(i!==null){g=t.getRenderTarget();i.addEventListener(\"select\",onSessionEvent);i.addEventListener(\"selectstart\",onSessionEvent);i.addEventListener(\"selectend\",onSessionEvent);i.addEventListener(\"squeeze\",onSessionEvent);i.addEventListener(\"squeezestart\",onSessionEvent);i.addEventListener(\"squeezeend\",onSessionEvent);i.addEventListener(\"end\",onSessionEnd);i.addEventListener(\"inputsourceschange\",onInputSourcesChange);m.xrCompatible!==true&&await e.makeXRCompatible();S=t.getPixelRatio();t.getSize(M);if(i.renderState.layers===void 0){const n={antialias:m.antialias,alpha:true,depth:m.depth,stencil:m.stencil,framebufferScaleFactor:r};d=new XRWebGLLayer(i,e,n);i.updateRenderState({baseLayer:d});t.setPixelRatio(1);t.setSize(d.framebufferWidth,d.framebufferHeight,false);_=new WebGLRenderTarget(d.framebufferWidth,d.framebufferHeight,{format:Gt,type:At,colorSpace:t.outputColorSpace,stencilBuffer:m.stencil})}else{let n=null;let s=null;let a=null;if(m.depth){a=m.stencil?e.DEPTH24_STENCIL8:e.DEPTH_COMPONENT24;n=m.stencil?Xt:Wt;s=m.stencil?Ot:It}const o={colorFormat:e.RGBA8,depthFormat:a,scaleFactor:r};h=new XRWebGLBinding(i,e);u=h.createProjectionLayer(o);i.updateRenderState({layers:[u]});t.setPixelRatio(1);t.setSize(u.textureWidth,u.textureHeight,false);_=new WebGLRenderTarget(u.textureWidth,u.textureHeight,{format:Gt,type:At,depthTexture:new DepthTexture(u.textureWidth,u.textureHeight,s,void 0,void 0,void 0,void 0,void 0,void 0,n),stencilBuffer:m.stencil,colorSpace:t.outputColorSpace,samples:m.antialias?4:0,resolveDepthBuffer:u.ignoreDepthValues===false})}_.isXRRenderTarget=true;this.setFoveation(o);l=null;s=await i.requestReferenceSpace(a);I.setContext(i);I.start();n.isPresenting=true;n.dispatchEvent({type:\"sessionstart\"})}};this.getEnvironmentBlendMode=function(){if(i!==null)return i.environmentBlendMode};this.getDepthTexture=function(){return f.getDepthTexture()};function onInputSourcesChange(t){for(let e=0;e<t.removed.length;e++){const n=t.removed[e];const i=y.indexOf(n);if(i>=0){y[i]=null;x[i].disconnect(n)}}for(let e=0;e<t.added.length;e++){const n=t.added[e];let i=y.indexOf(n);if(i===-1){for(let t=0;t<x.length;t++){if(t>=y.length){y.push(n);i=t;break}if(y[t]===null){y[t]=n;i=t;break}}if(i===-1)break}const r=x[i];r&&r.connect(n)}}const R=new Vector3;const P=new Vector3;function setProjectionFromUnion(t,e,n){R.setFromMatrixPosition(e.matrixWorld);P.setFromMatrixPosition(n.matrixWorld);const i=R.distanceTo(P);const r=e.projectionMatrix.elements;const s=n.projectionMatrix.elements;const a=r[14]/(r[10]-1);const o=r[14]/(r[10]+1);const l=(r[9]+1)/r[5];const c=(r[9]-1)/r[5];const h=(r[8]-1)/r[0];const u=(s[8]+1)/s[0];const d=a*h;const p=a*u;const f=i/(-h+u);const m=f*-h;e.matrixWorld.decompose(t.position,t.quaternion,t.scale);t.translateX(m);t.translateZ(f);t.matrixWorld.compose(t.position,t.quaternion,t.scale);t.matrixWorldInverse.copy(t.matrixWorld).invert();const g=a+f;const _=o+f;const x=d-m;const y=p+(i-m);const M=l*o/_*g;const S=c*o/_*g;t.projectionMatrix.makePerspective(x,y,M,S,g,_);t.projectionMatrixInverse.copy(t.projectionMatrix).invert()}function updateCamera(t,e){e===null?t.matrixWorld.copy(t.matrix):t.matrixWorld.multiplyMatrices(e.matrixWorld,t.matrix);t.matrixWorldInverse.copy(t.matrixWorld).invert()}this.updateCamera=function(t){if(i===null)return;if(f.texture!==null){t.near=f.depthNear;t.far=f.depthFar}E.near=T.near=b.near=t.near;E.far=T.far=b.far=t.far;if(A!==E.near||C!==E.far){i.updateRenderState({depthNear:E.near,depthFar:E.far});A=E.near;C=E.far;b.near=A;b.far=C;T.near=A;T.far=C;b.updateProjectionMatrix();T.updateProjectionMatrix();t.updateProjectionMatrix()}const e=t.parent;const n=E.cameras;updateCamera(E,e);for(let t=0;t<n.length;t++)updateCamera(n[t],e);n.length===2?setProjectionFromUnion(E,b,T):E.projectionMatrix.copy(b.projectionMatrix);updateUserCamera(t,E,e)};function updateUserCamera(t,e,n){if(n===null)t.matrix.copy(e.matrixWorld);else{t.matrix.copy(n.matrixWorld);t.matrix.invert();t.matrix.multiply(e.matrixWorld)}t.matrix.decompose(t.position,t.quaternion,t.scale);t.updateMatrixWorld(true);t.projectionMatrix.copy(e.projectionMatrix);t.projectionMatrixInverse.copy(e.projectionMatrixInverse);if(t.isPerspectiveCamera){t.fov=jn*2*Math.atan(1/t.projectionMatrix.elements[5]);t.zoom=1}}this.getCamera=function(){return E};this.getFoveation=function(){if(u!==null||d!==null)return o};this.setFoveation=function(t){o=t;u!==null&&(u.fixedFoveation=t);d!==null&&d.fixedFoveation!==void 0&&(d.fixedFoveation=t)};this.hasDepthSensing=function(){return f.texture!==null};this.getDepthSensingMesh=function(){return f.getMesh(E)};let L=null;function onAnimationFrame(e,r){c=r.getViewerPose(l||s);p=r;if(c!==null){const e=c.views;if(d!==null){t.setRenderTargetFramebuffer(_,d.framebuffer);t.setRenderTarget(_)}let n=false;if(e.length!==E.cameras.length){E.cameras.length=0;n=true}for(let i=0;i<e.length;i++){const r=e[i];let s=null;if(d!==null)s=d.getViewport(r);else{const e=h.getViewSubImage(u,r);s=e.viewport;if(i===0){t.setRenderTargetTextures(_,e.colorTexture,u.ignoreDepthValues?void 0:e.depthStencilTexture);t.setRenderTarget(_)}}let a=w[i];if(a===void 0){a=new PerspectiveCamera;a.layers.enable(i);a.viewport=new Vector4;w[i]=a}a.matrix.fromArray(r.transform.matrix);a.matrix.decompose(a.position,a.quaternion,a.scale);a.projectionMatrix.fromArray(r.projectionMatrix);a.projectionMatrixInverse.copy(a.projectionMatrix).invert();a.viewport.set(s.x,s.y,s.width,s.height);if(i===0){E.matrix.copy(a.matrix);E.matrix.decompose(E.position,E.quaternion,E.scale)}n===true&&E.cameras.push(a)}const r=i.enabledFeatures;if(r&&r.includes(\"depth-sensing\")){const n=h.getDepthInformation(e[0]);n&&n.isValid&&n.texture&&f.init(t,n,i.renderState)}}for(let t=0;t<x.length;t++){const e=y[t];const n=x[t];e!==null&&n!==void 0&&n.update(e,r,l||s)}L&&L(e,r);r.detectedPlanes&&n.dispatchEvent({type:\"planesdetected\",data:r});p=null}const I=new WebGLAnimation;I.setAnimationLoop(onAnimationFrame);this.setAnimationLoop=function(t){L=t};this.dispose=function(){}}}const wl=new Euler;const El=new Matrix4;function WebGLMaterials(t,e){function refreshTransformUniform(t,e){t.matrixAutoUpdate===true&&t.updateMatrix();e.value.copy(t.matrix)}function refreshFogUniforms(e,n){n.color.getRGB(e.fogColor.value,getUnlitUniformColorSpace(t));if(n.isFog){e.fogNear.value=n.near;e.fogFar.value=n.far}else n.isFogExp2&&(e.fogDensity.value=n.density)}function refreshMaterialUniforms(t,e,n,i,r){if(e.isMeshBasicMaterial)refreshUniformsCommon(t,e);else if(e.isMeshLambertMaterial)refreshUniformsCommon(t,e);else if(e.isMeshToonMaterial){refreshUniformsCommon(t,e);refreshUniformsToon(t,e)}else if(e.isMeshPhongMaterial){refreshUniformsCommon(t,e);refreshUniformsPhong(t,e)}else if(e.isMeshStandardMaterial){refreshUniformsCommon(t,e);refreshUniformsStandard(t,e);e.isMeshPhysicalMaterial&&refreshUniformsPhysical(t,e,r)}else if(e.isMeshMatcapMaterial){refreshUniformsCommon(t,e);refreshUniformsMatcap(t,e)}else if(e.isMeshDepthMaterial)refreshUniformsCommon(t,e);else if(e.isMeshDistanceMaterial){refreshUniformsCommon(t,e);refreshUniformsDistance(t,e)}else if(e.isMeshNormalMaterial)refreshUniformsCommon(t,e);else if(e.isLineBasicMaterial){refreshUniformsLine(t,e);e.isLineDashedMaterial&&refreshUniformsDash(t,e)}else if(e.isPointsMaterial)refreshUniformsPoints(t,e,n,i);else if(e.isSpriteMaterial)refreshUniformsSprites(t,e);else if(e.isShadowMaterial){t.color.value.copy(e.color);t.opacity.value=e.opacity}else e.isShaderMaterial&&(e.uniformsNeedUpdate=false)}function refreshUniformsCommon(t,n){t.opacity.value=n.opacity;n.color&&t.diffuse.value.copy(n.color);n.emissive&&t.emissive.value.copy(n.emissive).multiplyScalar(n.emissiveIntensity);if(n.map){t.map.value=n.map;refreshTransformUniform(n.map,t.mapTransform)}if(n.alphaMap){t.alphaMap.value=n.alphaMap;refreshTransformUniform(n.alphaMap,t.alphaMapTransform)}if(n.bumpMap){t.bumpMap.value=n.bumpMap;refreshTransformUniform(n.bumpMap,t.bumpMapTransform);t.bumpScale.value=n.bumpScale;n.side===d&&(t.bumpScale.value*=-1)}if(n.normalMap){t.normalMap.value=n.normalMap;refreshTransformUniform(n.normalMap,t.normalMapTransform);t.normalScale.value.copy(n.normalScale);n.side===d&&t.normalScale.value.negate()}if(n.displacementMap){t.displacementMap.value=n.displacementMap;refreshTransformUniform(n.displacementMap,t.displacementMapTransform);t.displacementScale.value=n.displacementScale;t.displacementBias.value=n.displacementBias}if(n.emissiveMap){t.emissiveMap.value=n.emissiveMap;refreshTransformUniform(n.emissiveMap,t.emissiveMapTransform)}if(n.specularMap){t.specularMap.value=n.specularMap;refreshTransformUniform(n.specularMap,t.specularMapTransform)}n.alphaTest>0&&(t.alphaTest.value=n.alphaTest);const i=e.get(n);const r=i.envMap;const s=i.envMapRotation;if(r){t.envMap.value=r;wl.copy(s);wl.x*=-1;wl.y*=-1;wl.z*=-1;if(r.isCubeTexture&&r.isRenderTargetTexture===false){wl.y*=-1;wl.z*=-1}t.envMapRotation.value.setFromMatrix4(El.makeRotationFromEuler(wl));t.flipEnvMap.value=r.isCubeTexture&&r.isRenderTargetTexture===false?-1:1;t.reflectivity.value=n.reflectivity;t.ior.value=n.ior;t.refractionRatio.value=n.refractionRatio}if(n.lightMap){t.lightMap.value=n.lightMap;t.lightMapIntensity.value=n.lightMapIntensity;refreshTransformUniform(n.lightMap,t.lightMapTransform)}if(n.aoMap){t.aoMap.value=n.aoMap;t.aoMapIntensity.value=n.aoMapIntensity;refreshTransformUniform(n.aoMap,t.aoMapTransform)}}function refreshUniformsLine(t,e){t.diffuse.value.copy(e.color);t.opacity.value=e.opacity;if(e.map){t.map.value=e.map;refreshTransformUniform(e.map,t.mapTransform)}}function refreshUniformsDash(t,e){t.dashSize.value=e.dashSize;t.totalSize.value=e.dashSize+e.gapSize;t.scale.value=e.scale}function refreshUniformsPoints(t,e,n,i){t.diffuse.value.copy(e.color);t.opacity.value=e.opacity;t.size.value=e.size*n;t.scale.value=i*.5;if(e.map){t.map.value=e.map;refreshTransformUniform(e.map,t.uvTransform)}if(e.alphaMap){t.alphaMap.value=e.alphaMap;refreshTransformUniform(e.alphaMap,t.alphaMapTransform)}e.alphaTest>0&&(t.alphaTest.value=e.alphaTest)}function refreshUniformsSprites(t,e){t.diffuse.value.copy(e.color);t.opacity.value=e.opacity;t.rotation.value=e.rotation;if(e.map){t.map.value=e.map;refreshTransformUniform(e.map,t.mapTransform)}if(e.alphaMap){t.alphaMap.value=e.alphaMap;refreshTransformUniform(e.alphaMap,t.alphaMapTransform)}e.alphaTest>0&&(t.alphaTest.value=e.alphaTest)}function refreshUniformsPhong(t,e){t.specular.value.copy(e.specular);t.shininess.value=Math.max(e.shininess,1e-4)}function refreshUniformsToon(t,e){e.gradientMap&&(t.gradientMap.value=e.gradientMap)}function refreshUniformsStandard(t,e){t.metalness.value=e.metalness;if(e.metalnessMap){t.metalnessMap.value=e.metalnessMap;refreshTransformUniform(e.metalnessMap,t.metalnessMapTransform)}t.roughness.value=e.roughness;if(e.roughnessMap){t.roughnessMap.value=e.roughnessMap;refreshTransformUniform(e.roughnessMap,t.roughnessMapTransform)}e.envMap&&(t.envMapIntensity.value=e.envMapIntensity)}function refreshUniformsPhysical(t,e,n){t.ior.value=e.ior;if(e.sheen>0){t.sheenColor.value.copy(e.sheenColor).multiplyScalar(e.sheen);t.sheenRoughness.value=e.sheenRoughness;if(e.sheenColorMap){t.sheenColorMap.value=e.sheenColorMap;refreshTransformUniform(e.sheenColorMap,t.sheenColorMapTransform)}if(e.sheenRoughnessMap){t.sheenRoughnessMap.value=e.sheenRoughnessMap;refreshTransformUniform(e.sheenRoughnessMap,t.sheenRoughnessMapTransform)}}if(e.clearcoat>0){t.clearcoat.value=e.clearcoat;t.clearcoatRoughness.value=e.clearcoatRoughness;if(e.clearcoatMap){t.clearcoatMap.value=e.clearcoatMap;refreshTransformUniform(e.clearcoatMap,t.clearcoatMapTransform)}if(e.clearcoatRoughnessMap){t.clearcoatRoughnessMap.value=e.clearcoatRoughnessMap;refreshTransformUniform(e.clearcoatRoughnessMap,t.clearcoatRoughnessMapTransform)}if(e.clearcoatNormalMap){t.clearcoatNormalMap.value=e.clearcoatNormalMap;refreshTransformUniform(e.clearcoatNormalMap,t.clearcoatNormalMapTransform);t.clearcoatNormalScale.value.copy(e.clearcoatNormalScale);e.side===d&&t.clearcoatNormalScale.value.negate()}}e.dispersion>0&&(t.dispersion.value=e.dispersion);if(e.iridescence>0){t.iridescence.value=e.iridescence;t.iridescenceIOR.value=e.iridescenceIOR;t.iridescenceThicknessMinimum.value=e.iridescenceThicknessRange[0];t.iridescenceThicknessMaximum.value=e.iridescenceThicknessRange[1];if(e.iridescenceMap){t.iridescenceMap.value=e.iridescenceMap;refreshTransformUniform(e.iridescenceMap,t.iridescenceMapTransform)}if(e.iridescenceThicknessMap){t.iridescenceThicknessMap.value=e.iridescenceThicknessMap;refreshTransformUniform(e.iridescenceThicknessMap,t.iridescenceThicknessMapTransform)}}if(e.transmission>0){t.transmission.value=e.transmission;t.transmissionSamplerMap.value=n.texture;t.transmissionSamplerSize.value.set(n.width,n.height);if(e.transmissionMap){t.transmissionMap.value=e.transmissionMap;refreshTransformUniform(e.transmissionMap,t.transmissionMapTransform)}t.thickness.value=e.thickness;if(e.thicknessMap){t.thicknessMap.value=e.thicknessMap;refreshTransformUniform(e.thicknessMap,t.thicknessMapTransform)}t.attenuationDistance.value=e.attenuationDistance;t.attenuationColor.value.copy(e.attenuationColor)}if(e.anisotropy>0){t.anisotropyVector.value.set(e.anisotropy*Math.cos(e.anisotropyRotation),e.anisotropy*Math.sin(e.anisotropyRotation));if(e.anisotropyMap){t.anisotropyMap.value=e.anisotropyMap;refreshTransformUniform(e.anisotropyMap,t.anisotropyMapTransform)}}t.specularIntensity.value=e.specularIntensity;t.specularColor.value.copy(e.specularColor);if(e.specularColorMap){t.specularColorMap.value=e.specularColorMap;refreshTransformUniform(e.specularColorMap,t.specularColorMapTransform)}if(e.specularIntensityMap){t.specularIntensityMap.value=e.specularIntensityMap;refreshTransformUniform(e.specularIntensityMap,t.specularIntensityMapTransform)}}function refreshUniformsMatcap(t,e){e.matcap&&(t.matcap.value=e.matcap)}function refreshUniformsDistance(t,n){const i=e.get(n).light;t.referencePosition.value.setFromMatrixPosition(i.matrixWorld);t.nearDistance.value=i.shadow.camera.near;t.farDistance.value=i.shadow.camera.far}return{refreshFogUniforms:refreshFogUniforms,refreshMaterialUniforms:refreshMaterialUniforms}}function WebGLUniformsGroups(t,e,n,i){let r={};let s={};let a=[];const o=t.getParameter(t.MAX_UNIFORM_BUFFER_BINDINGS);function bind(t,e){const n=e.program;i.uniformBlockBinding(t,n)}function update(t,n){let a=r[t.id];if(a===void 0){prepareUniformsGroup(t);a=createBuffer(t);r[t.id]=a;t.addEventListener(\"dispose\",onUniformsGroupsDispose)}const o=n.program;i.updateUBOMapping(t,o);const l=e.render.frame;if(s[t.id]!==l){updateBufferData(t);s[t.id]=l}}function createBuffer(e){const n=allocateBindingPointIndex();e.__bindingPointIndex=n;const i=t.createBuffer();const r=e.__size;const s=e.usage;t.bindBuffer(t.UNIFORM_BUFFER,i);t.bufferData(t.UNIFORM_BUFFER,r,s);t.bindBuffer(t.UNIFORM_BUFFER,null);t.bindBufferBase(t.UNIFORM_BUFFER,n,i);return i}function allocateBindingPointIndex(){for(let t=0;t<o;t++)if(a.indexOf(t)===-1){a.push(t);return t}console.error(\"THREE.WebGLRenderer: Maximum number of simultaneously usable uniforms groups reached.\");return 0}function updateBufferData(e){const n=r[e.id];const i=e.uniforms;const s=e.__cache;t.bindBuffer(t.UNIFORM_BUFFER,n);for(let e=0,n=i.length;e<n;e++){const n=Array.isArray(i[e])?i[e]:[i[e]];for(let i=0,r=n.length;i<r;i++){const r=n[i];if(hasUniformChanged(r,e,i,s)===true){const e=r.__offset;const n=Array.isArray(r.value)?r.value:[r.value];let i=0;for(let s=0;s<n.length;s++){const a=n[s];const o=getUniformSize(a);if(typeof a===\"number\"||typeof a===\"boolean\"){r.__data[0]=a;t.bufferSubData(t.UNIFORM_BUFFER,e+i,r.__data)}else if(a.isMatrix3){r.__data[0]=a.elements[0];r.__data[1]=a.elements[1];r.__data[2]=a.elements[2];r.__data[3]=0;r.__data[4]=a.elements[3];r.__data[5]=a.elements[4];r.__data[6]=a.elements[5];r.__data[7]=0;r.__data[8]=a.elements[6];r.__data[9]=a.elements[7];r.__data[10]=a.elements[8];r.__data[11]=0}else{a.toArray(r.__data,i);i+=o.storage/Float32Array.BYTES_PER_ELEMENT}}t.bufferSubData(t.UNIFORM_BUFFER,e,r.__data)}}}t.bindBuffer(t.UNIFORM_BUFFER,null)}function hasUniformChanged(t,e,n,i){const r=t.value;const s=e+\"_\"+n;if(i[s]===void 0){i[s]=typeof r===\"number\"||typeof r===\"boolean\"?r:r.clone();return true}{const t=i[s];if(typeof r===\"number\"||typeof r===\"boolean\"){if(t!==r){i[s]=r;return true}}else if(t.equals(r)===false){t.copy(r);return true}}return false}function prepareUniformsGroup(t){const e=t.uniforms;let n=0;const i=16;for(let t=0,r=e.length;t<r;t++){const r=Array.isArray(e[t])?e[t]:[e[t]];for(let t=0,e=r.length;t<e;t++){const e=r[t];const s=Array.isArray(e.value)?e.value:[e.value];for(let t=0,r=s.length;t<r;t++){const r=s[t];const a=getUniformSize(r);const o=n%i;const l=o%a.boundary;const c=o+l;n+=l;c!==0&&i-c<a.storage&&(n+=i-c);e.__data=new Float32Array(a.storage/Float32Array.BYTES_PER_ELEMENT);e.__offset=n;n+=a.storage}}}const r=n%i;r>0&&(n+=i-r);t.__size=n;t.__cache={};return this}function getUniformSize(t){const e={boundary:0,storage:0};if(typeof t===\"number\"||typeof t===\"boolean\"){e.boundary=4;e.storage=4}else if(t.isVector2){e.boundary=8;e.storage=8}else if(t.isVector3||t.isColor){e.boundary=16;e.storage=12}else if(t.isVector4){e.boundary=16;e.storage=16}else if(t.isMatrix3){e.boundary=48;e.storage=48}else if(t.isMatrix4){e.boundary=64;e.storage=64}else t.isTexture?console.warn(\"THREE.WebGLRenderer: Texture samplers can not be part of an uniforms group.\"):console.warn(\"THREE.WebGLRenderer: Unsupported uniform value type.\",t);return e}function onUniformsGroupsDispose(e){const n=e.target;n.removeEventListener(\"dispose\",onUniformsGroupsDispose);const i=a.indexOf(n.__bindingPointIndex);a.splice(i,1);t.deleteBuffer(r[n.id]);delete r[n.id];delete s[n.id]}function dispose(){for(const e in r)t.deleteBuffer(r[e]);a=[];r={};s={}}return{bind:bind,update:update,dispose:dispose}}class WebGLRenderer{constructor(e={}){const{canvas:n=createCanvasElement(),context:i=null,depth:r=true,stencil:s=false,alpha:a=false,antialias:o=false,premultipliedAlpha:l=true,preserveDrawingBuffer:c=false,powerPreference:h=\"default\",failIfMajorPerformanceCaveat:f=false}=e;this.isWebGLRenderer=true;let m;if(i!==null){if(typeof WebGLRenderingContext!==\"undefined\"&&i instanceof WebGLRenderingContext)throw new Error(\"THREE.WebGLRenderer: WebGL 1 is not supported since r163.\");m=i.getContextAttributes().alpha}else m=a;const g=new Uint32Array(4);const _=new Int32Array(4);let x=null;let y=null;const M=[];const S=[];this.domElement=n;this.debug={\n/**\n\t\t\t * Enables error checking and reporting when shader programs are being compiled\n\t\t\t * @type {boolean}\n\t\t\t */\ncheckShaderErrors:true,\n/**\n\t\t\t * Callback for custom error reporting.\n\t\t\t * @type {?Function}\n\t\t\t */\nonShaderError:null};this.autoClear=true;this.autoClearColor=true;this.autoClearDepth=true;this.autoClearStencil=true;this.sortObjects=true;this.clippingPlanes=[];this.localClippingEnabled=false;this._outputColorSpace=Je;this.toneMapping=Q;this.toneMappingExposure=1;const b=this;let T=false;let w=0;let E=0;let A=null;let C=-1;let R=null;const P=new Vector4;const L=new Vector4;let I=null;const U=new Color(0);let D=0;let N=n.width;let B=n.height;let O=1;let V=null;let F=null;const z=new Vector4(0,0,N,B);const G=new Vector4(0,0,N,B);let k=false;const H=new Frustum;let W=false;let X=false;const j=new Matrix4;const q=new Vector3;const Y=new Vector4;const K={background:null,fog:null,environment:null,overrideMaterial:null,isScene:true};let Z=false;function getTargetPixelRatio(){return A===null?O:1}let J=i;function getContext(t,e){return n.getContext(t,e)}try{const e={alpha:true,depth:r,stencil:s,antialias:o,premultipliedAlpha:l,preserveDrawingBuffer:c,powerPreference:h,failIfMajorPerformanceCaveat:f};\"setAttribute\"in n&&n.setAttribute(\"data-engine\",`three.js r${t}`);n.addEventListener(\"webglcontextlost\",onContextLost,false);n.addEventListener(\"webglcontextrestored\",onContextRestore,false);n.addEventListener(\"webglcontextcreationerror\",onContextCreationError,false);if(J===null){const t=\"webgl2\";J=getContext(t,e);if(J===null)throw getContext(t)?new Error(\"Error creating WebGL context with your selected attributes.\"):new Error(\"Error creating WebGL context.\")}}catch(t){console.error(\"THREE.WebGLRenderer: \"+t.message);throw t}let $,tt,et,nt;let it,rt,st,at,ot,lt,ct;let ht,ut,dt,pt,ft,mt;let gt,vt,_t,xt;let yt,Mt,St;function initGLContext(){$=new WebGLExtensions(J);$.init();yt=new WebGLUtils(J,$);tt=new WebGLCapabilities(J,$,e,yt);et=new WebGLState(J);nt=new WebGLInfo(J);it=new WebGLProperties;rt=new WebGLTextures(J,$,et,it,tt,yt,nt);st=new WebGLCubeMaps(b);at=new WebGLCubeUVMaps(b);ot=new WebGLAttributes(J);Mt=new WebGLBindingStates(J,ot);lt=new WebGLGeometries(J,ot,nt,Mt);ct=new WebGLObjects(J,lt,ot,nt);vt=new WebGLMorphtargets(J,tt,rt);ft=new WebGLClipping(it);ht=new WebGLPrograms(b,st,at,$,tt,Mt,ft);ut=new WebGLMaterials(b,it);dt=new WebGLRenderLists;pt=new WebGLRenderStates($);gt=new WebGLBackground(b,st,at,et,ct,m,l);mt=new WebGLShadowMap(b,ct,tt);St=new WebGLUniformsGroups(J,nt,tt,et);_t=new WebGLBufferRenderer(J,$,nt);xt=new WebGLIndexedBufferRenderer(J,$,nt);nt.programs=ht.programs;b.capabilities=tt;b.extensions=$;b.properties=it;b.renderLists=dt;b.shadowMap=mt;b.state=et;b.info=nt}initGLContext();const bt=new WebXRManager(b,J);this.xr=bt;this.getContext=function(){return J};this.getContextAttributes=function(){return J.getContextAttributes()};this.forceContextLoss=function(){const t=$.get(\"WEBGL_lose_context\");t&&t.loseContext()};this.forceContextRestore=function(){const t=$.get(\"WEBGL_lose_context\");t&&t.restoreContext()};this.getPixelRatio=function(){return O};this.setPixelRatio=function(t){if(t!==void 0){O=t;this.setSize(N,B,false)}};this.getSize=function(t){return t.set(N,B)};this.setSize=function(t,e,i=true){if(bt.isPresenting)console.warn(\"THREE.WebGLRenderer: Can't change size while VR device is presenting.\");else{N=t;B=e;n.width=Math.floor(t*O);n.height=Math.floor(e*O);if(i===true){n.style.width=t+\"px\";n.style.height=e+\"px\"}this.setViewport(0,0,t,e)}};this.getDrawingBufferSize=function(t){return t.set(N*O,B*O).floor()};this.setDrawingBufferSize=function(t,e,i){N=t;B=e;O=i;n.width=Math.floor(t*i);n.height=Math.floor(e*i);this.setViewport(0,0,t,e)};this.getCurrentViewport=function(t){return t.copy(P)};this.getViewport=function(t){return t.copy(z)};this.setViewport=function(t,e,n,i){t.isVector4?z.set(t.x,t.y,t.z,t.w):z.set(t,e,n,i);et.viewport(P.copy(z).multiplyScalar(O).round())};this.getScissor=function(t){return t.copy(G)};this.setScissor=function(t,e,n,i){t.isVector4?G.set(t.x,t.y,t.z,t.w):G.set(t,e,n,i);et.scissor(L.copy(G).multiplyScalar(O).round())};this.getScissorTest=function(){return k};this.setScissorTest=function(t){et.setScissorTest(k=t)};this.setOpaqueSort=function(t){V=t};this.setTransparentSort=function(t){F=t};this.getClearColor=function(t){return t.copy(gt.getClearColor())};this.setClearColor=function(){gt.setClearColor.apply(gt,arguments)};this.getClearAlpha=function(){return gt.getClearAlpha()};this.setClearAlpha=function(){gt.setClearAlpha.apply(gt,arguments)};this.clear=function(t=true,e=true,n=true){let i=0;if(t){let t=false;if(A!==null){const e=A.texture.format;t=e===Jt||e===Kt||e===qt}if(t){const t=A.texture.type;const e=t===At||t===It||t===Pt||t===Ot||t===Nt||t===Bt;const n=gt.getClearColor();const i=gt.getClearAlpha();const r=n.r;const s=n.g;const a=n.b;if(e){g[0]=r;g[1]=s;g[2]=a;g[3]=i;J.clearBufferuiv(J.COLOR,0,g)}else{_[0]=r;_[1]=s;_[2]=a;_[3]=i;J.clearBufferiv(J.COLOR,0,_)}}else i|=J.COLOR_BUFFER_BIT}e&&(i|=J.DEPTH_BUFFER_BIT);if(n){i|=J.STENCIL_BUFFER_BIT;this.state.buffers.stencil.setMask(4294967295)}J.clear(i)};this.clearColor=function(){this.clear(true,false,false)};this.clearDepth=function(){this.clear(false,true,false)};this.clearStencil=function(){this.clear(false,false,true)};this.dispose=function(){n.removeEventListener(\"webglcontextlost\",onContextLost,false);n.removeEventListener(\"webglcontextrestored\",onContextRestore,false);n.removeEventListener(\"webglcontextcreationerror\",onContextCreationError,false);dt.dispose();pt.dispose();it.dispose();st.dispose();at.dispose();ct.dispose();Mt.dispose();St.dispose();ht.dispose();bt.dispose();bt.removeEventListener(\"sessionstart\",onXRSessionStart);bt.removeEventListener(\"sessionend\",onXRSessionEnd);Et.stop()};function onContextLost(t){t.preventDefault();console.log(\"THREE.WebGLRenderer: Context Lost.\");T=true}function onContextRestore(){console.log(\"THREE.WebGLRenderer: Context Restored.\");T=false;const t=nt.autoReset;const e=mt.enabled;const n=mt.autoUpdate;const i=mt.needsUpdate;const r=mt.type;initGLContext();nt.autoReset=t;mt.enabled=e;mt.autoUpdate=n;mt.needsUpdate=i;mt.type=r}function onContextCreationError(t){console.error(\"THREE.WebGLRenderer: A WebGL context could not be created. Reason: \",t.statusMessage)}function onMaterialDispose(t){const e=t.target;e.removeEventListener(\"dispose\",onMaterialDispose);deallocateMaterial(e)}function deallocateMaterial(t){releaseMaterialProgramReferences(t);it.remove(t)}function releaseMaterialProgramReferences(t){const e=it.get(t).programs;if(e!==void 0){e.forEach((function(t){ht.releaseProgram(t)}));t.isShaderMaterial&&ht.releaseShaderCache(t)}}this.renderBufferDirect=function(t,e,n,i,r,s){e===null&&(e=K);const a=r.isMesh&&r.matrixWorld.determinant()<0;const o=setProgram(t,e,n,i,r);et.setMaterial(i,a);let l=n.index;let c=1;if(i.wireframe===true){l=lt.getWireframeAttribute(n);if(l===void 0)return;c=2}const h=n.drawRange;const u=n.attributes.position;let d=h.start*c;let p=(h.start+h.count)*c;if(s!==null){d=Math.max(d,s.start*c);p=Math.min(p,(s.start+s.count)*c)}if(l!==null){d=Math.max(d,0);p=Math.min(p,l.count)}else if(u!==void 0&&u!==null){d=Math.max(d,0);p=Math.min(p,u.count)}const f=p-d;if(f<0||f===Infinity)return;Mt.setup(r,i,o,n,l);let m;let g=_t;if(l!==null){m=ot.get(l);g=xt;g.setIndex(m)}if(r.isMesh)if(i.wireframe===true){et.setLineWidth(i.wireframeLinewidth*getTargetPixelRatio());g.setMode(J.LINES)}else g.setMode(J.TRIANGLES);else if(r.isLine){let t=i.linewidth;t===void 0&&(t=1);et.setLineWidth(t*getTargetPixelRatio());r.isLineSegments?g.setMode(J.LINES):r.isLineLoop?g.setMode(J.LINE_LOOP):g.setMode(J.LINE_STRIP)}else r.isPoints?g.setMode(J.POINTS):r.isSprite&&g.setMode(J.TRIANGLES);if(r.isBatchedMesh)if(r._multiDrawInstances!==null)g.renderMultiDrawInstances(r._multiDrawStarts,r._multiDrawCounts,r._multiDrawCount,r._multiDrawInstances);else if($.get(\"WEBGL_multi_draw\"))g.renderMultiDraw(r._multiDrawStarts,r._multiDrawCounts,r._multiDrawCount);else{const t=r._multiDrawStarts;const e=r._multiDrawCounts;const n=r._multiDrawCount;const s=l?ot.get(l).bytesPerElement:1;const a=it.get(i).currentProgram.getUniforms();for(let i=0;i<n;i++){a.setValue(J,\"_gl_DrawID\",i);g.render(t[i]/s,e[i])}}else if(r.isInstancedMesh)g.renderInstances(d,f,r.count);else if(n.isInstancedBufferGeometry){const t=n._maxInstanceCount!==void 0?n._maxInstanceCount:Infinity;const e=Math.min(n.instanceCount,t);g.renderInstances(d,f,e)}else g.render(d,f)};function prepareMaterial(t,e,n){if(t.transparent===true&&t.side===p&&t.forceSinglePass===false){t.side=d;t.needsUpdate=true;getProgram(t,e,n);t.side=u;t.needsUpdate=true;getProgram(t,e,n);t.side=p}else getProgram(t,e,n)}this.compile=function(t,e,n=null){n===null&&(n=t);y=pt.get(n);y.init(e);S.push(y);n.traverseVisible((function(t){if(t.isLight&&t.layers.test(e.layers)){y.pushLight(t);t.castShadow&&y.pushShadow(t)}}));t!==n&&t.traverseVisible((function(t){if(t.isLight&&t.layers.test(e.layers)){y.pushLight(t);t.castShadow&&y.pushShadow(t)}}));y.setupLights();const i=new Set;t.traverse((function(t){const e=t.material;if(e)if(Array.isArray(e))for(let r=0;r<e.length;r++){const s=e[r];prepareMaterial(s,n,t);i.add(s)}else{prepareMaterial(e,n,t);i.add(e)}}));S.pop();y=null;return i};this.compileAsync=function(t,e,n=null){const i=this.compile(t,e,n);return new Promise((e=>{function checkMaterialsReady(){i.forEach((function(t){const e=it.get(t);const n=e.currentProgram;n.isReady()&&i.delete(t)}));i.size!==0?setTimeout(checkMaterialsReady,10):e(t)}$.get(\"KHR_parallel_shader_compile\")!==null?checkMaterialsReady():setTimeout(checkMaterialsReady,10)}))};let Tt=null;function onAnimationFrame(t){Tt&&Tt(t)}function onXRSessionStart(){Et.stop()}function onXRSessionEnd(){Et.start()}const Et=new WebGLAnimation;Et.setAnimationLoop(onAnimationFrame);typeof self!==\"undefined\"&&Et.setContext(self);this.setAnimationLoop=function(t){Tt=t;bt.setAnimationLoop(t);t===null?Et.stop():Et.start()};bt.addEventListener(\"sessionstart\",onXRSessionStart);bt.addEventListener(\"sessionend\",onXRSessionEnd);this.render=function(t,e){if(e!==void 0&&e.isCamera!==true){console.error(\"THREE.WebGLRenderer.render: camera is not an instance of THREE.Camera.\");return}if(T===true)return;t.matrixWorldAutoUpdate===true&&t.updateMatrixWorld();e.parent===null&&e.matrixWorldAutoUpdate===true&&e.updateMatrixWorld();if(bt.enabled===true&&bt.isPresenting===true){bt.cameraAutoUpdate===true&&bt.updateCamera(e);e=bt.getCamera()}t.isScene===true&&t.onBeforeRender(b,t,e,A);y=pt.get(t,S.length);y.init(e);S.push(y);j.multiplyMatrices(e.projectionMatrix,e.matrixWorldInverse);H.setFromProjectionMatrix(j);X=this.localClippingEnabled;W=ft.init(this.clippingPlanes,X);x=dt.get(t,M.length);x.init();M.push(x);if(bt.enabled===true&&bt.isPresenting===true){const t=b.xr.getDepthSensingMesh();t!==null&&projectObject(t,e,-Infinity,b.sortObjects)}projectObject(t,e,0,b.sortObjects);x.finish();b.sortObjects===true&&x.sort(V,F);Z=bt.enabled===false||bt.isPresenting===false||bt.hasDepthSensing()===false;Z&&gt.addToRenderList(x,t);this.info.render.frame++;W===true&&ft.beginShadows();const n=y.state.shadowsArray;mt.render(n,t,e);W===true&&ft.endShadows();this.info.autoReset===true&&this.info.reset();const i=x.opaque;const r=x.transmissive;y.setupLights();if(e.isArrayCamera){const n=e.cameras;if(r.length>0)for(let e=0,s=n.length;e<s;e++){const s=n[e];renderTransmissionPass(i,r,t,s)}Z&&gt.render(t);for(let e=0,i=n.length;e<i;e++){const i=n[e];renderScene(x,t,i,i.viewport)}}else{r.length>0&&renderTransmissionPass(i,r,t,e);Z&&gt.render(t);renderScene(x,t,e)}if(A!==null){rt.updateMultisampleRenderTarget(A);rt.updateRenderTargetMipmap(A)}t.isScene===true&&t.onAfterRender(b,t,e);Mt.resetDefaultState();C=-1;R=null;S.pop();if(S.length>0){y=S[S.length-1];W===true&&ft.setGlobalState(b.clippingPlanes,y.state.camera)}else y=null;M.pop();x=M.length>0?M[M.length-1]:null};function projectObject(t,e,n,i){if(t.visible===false)return;const r=t.layers.test(e.layers);if(r)if(t.isGroup)n=t.renderOrder;else if(t.isLOD)t.autoUpdate===true&&t.update(e);else if(t.isLight){y.pushLight(t);t.castShadow&&y.pushShadow(t)}else if(t.isSprite){if(!t.frustumCulled||H.intersectsSprite(t)){i&&Y.setFromMatrixPosition(t.matrixWorld).applyMatrix4(j);const e=ct.update(t);const r=t.material;r.visible&&x.push(t,e,r,n,Y.z,null)}}else if((t.isMesh||t.isLine||t.isPoints)&&(!t.frustumCulled||H.intersectsObject(t))){const e=ct.update(t);const r=t.material;if(i){if(t.boundingSphere!==void 0){t.boundingSphere===null&&t.computeBoundingSphere();Y.copy(t.boundingSphere.center)}else{e.boundingSphere===null&&e.computeBoundingSphere();Y.copy(e.boundingSphere.center)}Y.applyMatrix4(t.matrixWorld).applyMatrix4(j)}if(Array.isArray(r)){const i=e.groups;for(let s=0,a=i.length;s<a;s++){const a=i[s];const o=r[a.materialIndex];o&&o.visible&&x.push(t,e,o,n,Y.z,a)}}else r.visible&&x.push(t,e,r,n,Y.z,null)}const s=t.children;for(let t=0,r=s.length;t<r;t++)projectObject(s[t],e,n,i)}function renderScene(t,e,n,i){const r=t.opaque;const s=t.transmissive;const a=t.transparent;y.setupLightsView(n);W===true&&ft.setGlobalState(b.clippingPlanes,n);i&&et.viewport(P.copy(i));r.length>0&&renderObjects(r,e,n);s.length>0&&renderObjects(s,e,n);a.length>0&&renderObjects(a,e,n);et.buffers.depth.setTest(true);et.buffers.depth.setMask(true);et.buffers.color.setMask(true);et.setPolygonOffset(false)}function renderTransmissionPass(t,e,n,i){const r=n.isScene===true?n.overrideMaterial:null;if(r!==null)return;y.state.transmissionRenderTarget[i.id]===void 0&&(y.state.transmissionRenderTarget[i.id]=new WebGLRenderTarget(1,1,{generateMipmaps:true,type:$.has(\"EXT_color_buffer_half_float\")||$.has(\"EXT_color_buffer_float\")?Dt:At,minFilter:wt,samples:4,stencilBuffer:s,resolveDepthBuffer:false,resolveStencilBuffer:false,colorSpace:ei.workingColorSpace}));const a=y.state.transmissionRenderTarget[i.id];const o=i.viewport||P;a.setSize(o.z,o.w);const l=b.getRenderTarget();b.setRenderTarget(a);b.getClearColor(U);D=b.getClearAlpha();D<1&&b.setClearColor(16777215,.5);b.clear();Z&&gt.render(n);const c=b.toneMapping;b.toneMapping=Q;const h=i.viewport;i.viewport!==void 0&&(i.viewport=void 0);y.setupLightsView(i);W===true&&ft.setGlobalState(b.clippingPlanes,i);renderObjects(t,n,i);rt.updateMultisampleRenderTarget(a);rt.updateRenderTargetMipmap(a);if($.has(\"WEBGL_multisampled_render_to_texture\")===false){let t=false;for(let r=0,s=e.length;r<s;r++){const s=e[r];const a=s.object;const o=s.geometry;const l=s.material;const c=s.group;if(l.side===p&&a.layers.test(i.layers)){const e=l.side;l.side=d;l.needsUpdate=true;renderObject(a,n,i,o,l,c);l.side=e;l.needsUpdate=true;t=true}}if(t===true){rt.updateMultisampleRenderTarget(a);rt.updateRenderTargetMipmap(a)}}b.setRenderTarget(l);b.setClearColor(U,D);h!==void 0&&(i.viewport=h);b.toneMapping=c}function renderObjects(t,e,n){const i=e.isScene===true?e.overrideMaterial:null;for(let r=0,s=t.length;r<s;r++){const s=t[r];const a=s.object;const o=s.geometry;const l=i===null?s.material:i;const c=s.group;a.layers.test(n.layers)&&renderObject(a,e,n,o,l,c)}}function renderObject(t,e,n,i,r,s){t.onBeforeRender(b,e,n,i,r,s);t.modelViewMatrix.multiplyMatrices(n.matrixWorldInverse,t.matrixWorld);t.normalMatrix.getNormalMatrix(t.modelViewMatrix);if(r.transparent===true&&r.side===p&&r.forceSinglePass===false){r.side=d;r.needsUpdate=true;b.renderBufferDirect(n,e,i,r,t,s);r.side=u;r.needsUpdate=true;b.renderBufferDirect(n,e,i,r,t,s);r.side=p}else b.renderBufferDirect(n,e,i,r,t,s);t.onAfterRender(b,e,n,i,r,s)}function getProgram(t,e,n){e.isScene!==true&&(e=K);const i=it.get(t);const r=y.state.lights;const s=y.state.shadowsArray;const a=r.state.version;const o=ht.getParameters(t,r.state,s,e,n);const l=ht.getProgramCacheKey(o);let c=i.programs;i.environment=t.isMeshStandardMaterial?e.environment:null;i.fog=e.fog;i.envMap=(t.isMeshStandardMaterial?at:st).get(t.envMap||i.environment);i.envMapRotation=i.environment!==null&&t.envMap===null?e.environmentRotation:t.envMapRotation;if(c===void 0){t.addEventListener(\"dispose\",onMaterialDispose);c=new Map;i.programs=c}let h=c.get(l);if(h!==void 0){if(i.currentProgram===h&&i.lightsStateVersion===a){updateCommonMaterialProperties(t,o);return h}}else{o.uniforms=ht.getUniforms(t);t.onBeforeCompile(o,b);h=ht.acquireProgram(o,l);c.set(l,h);i.uniforms=o.uniforms}const u=i.uniforms;(t.isShaderMaterial||t.isRawShaderMaterial)&&t.clipping!==true||(u.clippingPlanes=ft.uniform);updateCommonMaterialProperties(t,o);i.needsLights=materialNeedsLights(t);i.lightsStateVersion=a;if(i.needsLights){u.ambientLightColor.value=r.state.ambient;u.lightProbe.value=r.state.probe;u.directionalLights.value=r.state.directional;u.directionalLightShadows.value=r.state.directionalShadow;u.spotLights.value=r.state.spot;u.spotLightShadows.value=r.state.spotShadow;u.rectAreaLights.value=r.state.rectArea;u.ltc_1.value=r.state.rectAreaLTC1;u.ltc_2.value=r.state.rectAreaLTC2;u.pointLights.value=r.state.point;u.pointLightShadows.value=r.state.pointShadow;u.hemisphereLights.value=r.state.hemi;u.directionalShadowMap.value=r.state.directionalShadowMap;u.directionalShadowMatrix.value=r.state.directionalShadowMatrix;u.spotShadowMap.value=r.state.spotShadowMap;u.spotLightMatrix.value=r.state.spotLightMatrix;u.spotLightMap.value=r.state.spotLightMap;u.pointShadowMap.value=r.state.pointShadowMap;u.pointShadowMatrix.value=r.state.pointShadowMatrix}i.currentProgram=h;i.uniformsList=null;return h}function getUniformList(t){if(t.uniformsList===null){const e=t.currentProgram.getUniforms();t.uniformsList=WebGLUniforms.seqWithValue(e.seq,t.uniforms)}return t.uniformsList}function updateCommonMaterialProperties(t,e){const n=it.get(t);n.outputColorSpace=e.outputColorSpace;n.batching=e.batching;n.batchingColor=e.batchingColor;n.instancing=e.instancing;n.instancingColor=e.instancingColor;n.instancingMorph=e.instancingMorph;n.skinning=e.skinning;n.morphTargets=e.morphTargets;n.morphNormals=e.morphNormals;n.morphColors=e.morphColors;n.morphTargetsCount=e.morphTargetsCount;n.numClippingPlanes=e.numClippingPlanes;n.numIntersection=e.numClipIntersection;n.vertexAlphas=e.vertexAlphas;n.vertexTangents=e.vertexTangents;n.toneMapping=e.toneMapping}function setProgram(t,e,n,i,r){e.isScene!==true&&(e=K);rt.resetTextureUnits();const s=e.fog;const a=i.isMeshStandardMaterial?e.environment:null;const o=A===null?b.outputColorSpace:A.isXRRenderTarget===true?A.texture.colorSpace:Qe;const l=(i.isMeshStandardMaterial?at:st).get(i.envMap||a);const c=i.vertexColors===true&&!!n.attributes.color&&n.attributes.color.itemSize===4;const h=!!n.attributes.tangent&&(!!i.normalMap||i.anisotropy>0);const u=!!n.morphAttributes.position;const d=!!n.morphAttributes.normal;const p=!!n.morphAttributes.color;let f=Q;i.toneMapped&&(A!==null&&A.isXRRenderTarget!==true||(f=b.toneMapping));const m=n.morphAttributes.position||n.morphAttributes.normal||n.morphAttributes.color;const g=m!==void 0?m.length:0;const _=it.get(i);const x=y.state.lights;if(W===true&&(X===true||t!==R)){const e=t===R&&i.id===C;ft.setState(i,t,e)}let M=false;if(i.version===_.__version)_.needsLights&&_.lightsStateVersion!==x.state.version||_.outputColorSpace!==o||r.isBatchedMesh&&_.batching===false?M=true:r.isBatchedMesh||_.batching!==true?r.isBatchedMesh&&_.batchingColor===true&&r.colorTexture===null||r.isBatchedMesh&&_.batchingColor===false&&r.colorTexture!==null||r.isInstancedMesh&&_.instancing===false?M=true:r.isInstancedMesh||_.instancing!==true?r.isSkinnedMesh&&_.skinning===false?M=true:r.isSkinnedMesh||_.skinning!==true?r.isInstancedMesh&&_.instancingColor===true&&r.instanceColor===null||r.isInstancedMesh&&_.instancingColor===false&&r.instanceColor!==null||r.isInstancedMesh&&_.instancingMorph===true&&r.morphTexture===null||r.isInstancedMesh&&_.instancingMorph===false&&r.morphTexture!==null||_.envMap!==l||i.fog===true&&_.fog!==s?M=true:_.numClippingPlanes===void 0||_.numClippingPlanes===ft.numPlanes&&_.numIntersection===ft.numIntersection?(_.vertexAlphas!==c||_.vertexTangents!==h||_.morphTargets!==u||_.morphNormals!==d||_.morphColors!==p||_.toneMapping!==f||_.morphTargetsCount!==g)&&(M=true):M=true:M=true:M=true:M=true;else{M=true;_.__version=i.version}let S=_.currentProgram;M===true&&(S=getProgram(i,e,r));let T=false;let w=false;let E=false;const P=S.getUniforms(),L=_.uniforms;if(et.useProgram(S.program)){T=true;w=true;E=true}if(i.id!==C){C=i.id;w=true}if(T||R!==t){P.setValue(J,\"projectionMatrix\",t.projectionMatrix);P.setValue(J,\"viewMatrix\",t.matrixWorldInverse);const e=P.map.cameraPosition;e!==void 0&&e.setValue(J,q.setFromMatrixPosition(t.matrixWorld));tt.logarithmicDepthBuffer&&P.setValue(J,\"logDepthBufFC\",2/(Math.log(t.far+1)/Math.LN2));(i.isMeshPhongMaterial||i.isMeshToonMaterial||i.isMeshLambertMaterial||i.isMeshBasicMaterial||i.isMeshStandardMaterial||i.isShaderMaterial)&&P.setValue(J,\"isOrthographic\",t.isOrthographicCamera===true);if(R!==t){R=t;w=true;E=true}}if(r.isSkinnedMesh){P.setOptional(J,r,\"bindMatrix\");P.setOptional(J,r,\"bindMatrixInverse\");const t=r.skeleton;if(t){t.boneTexture===null&&t.computeBoneTexture();P.setValue(J,\"boneTexture\",t.boneTexture,rt)}}if(r.isBatchedMesh){P.setOptional(J,r,\"batchingTexture\");P.setValue(J,\"batchingTexture\",r._matricesTexture,rt);P.setOptional(J,r,\"batchingIdTexture\");P.setValue(J,\"batchingIdTexture\",r._indirectTexture,rt);P.setOptional(J,r,\"batchingColorTexture\");r._colorsTexture!==null&&P.setValue(J,\"batchingColorTexture\",r._colorsTexture,rt)}const I=n.morphAttributes;I.position===void 0&&I.normal===void 0&&I.color===void 0||vt.update(r,n,S);if(w||_.receiveShadow!==r.receiveShadow){_.receiveShadow=r.receiveShadow;P.setValue(J,\"receiveShadow\",r.receiveShadow)}if(i.isMeshGouraudMaterial&&i.envMap!==null){L.envMap.value=l;L.flipEnvMap.value=l.isCubeTexture&&l.isRenderTargetTexture===false?-1:1}i.isMeshStandardMaterial&&i.envMap===null&&e.environment!==null&&(L.envMapIntensity.value=e.environmentIntensity);if(w){P.setValue(J,\"toneMappingExposure\",b.toneMappingExposure);_.needsLights&&markUniformsLightsNeedsUpdate(L,E);s&&i.fog===true&&ut.refreshFogUniforms(L,s);ut.refreshMaterialUniforms(L,i,O,B,y.state.transmissionRenderTarget[t.id]);WebGLUniforms.upload(J,getUniformList(_),L,rt)}if(i.isShaderMaterial&&i.uniformsNeedUpdate===true){WebGLUniforms.upload(J,getUniformList(_),L,rt);i.uniformsNeedUpdate=false}i.isSpriteMaterial&&P.setValue(J,\"center\",r.center);P.setValue(J,\"modelViewMatrix\",r.modelViewMatrix);P.setValue(J,\"normalMatrix\",r.normalMatrix);P.setValue(J,\"modelMatrix\",r.matrixWorld);if(i.isShaderMaterial||i.isRawShaderMaterial){const t=i.uniformsGroups;for(let e=0,n=t.length;e<n;e++){const n=t[e];St.update(n,S);St.bind(n,S)}}return S}function markUniformsLightsNeedsUpdate(t,e){t.ambientLightColor.needsUpdate=e;t.lightProbe.needsUpdate=e;t.directionalLights.needsUpdate=e;t.directionalLightShadows.needsUpdate=e;t.pointLights.needsUpdate=e;t.pointLightShadows.needsUpdate=e;t.spotLights.needsUpdate=e;t.spotLightShadows.needsUpdate=e;t.rectAreaLights.needsUpdate=e;t.hemisphereLights.needsUpdate=e}function materialNeedsLights(t){return t.isMeshLambertMaterial||t.isMeshToonMaterial||t.isMeshPhongMaterial||t.isMeshStandardMaterial||t.isShadowMaterial||t.isShaderMaterial&&t.lights===true}this.getActiveCubeFace=function(){return w};this.getActiveMipmapLevel=function(){return E};this.getRenderTarget=function(){return A};this.setRenderTargetTextures=function(t,e,n){it.get(t.texture).__webglTexture=e;it.get(t.depthTexture).__webglTexture=n;const i=it.get(t);i.__hasExternalTextures=true;i.__autoAllocateDepthBuffer=n===void 0;if(!i.__autoAllocateDepthBuffer&&$.has(\"WEBGL_multisampled_render_to_texture\")===true){console.warn(\"THREE.WebGLRenderer: Render-to-texture extension was disabled because an external texture was provided\");i.__useRenderToTexture=false}};this.setRenderTargetFramebuffer=function(t,e){const n=it.get(t);n.__webglFramebuffer=e;n.__useDefaultFramebuffer=e===void 0};this.setRenderTarget=function(t,e=0,n=0){A=t;w=e;E=n;let i=true;let r=null;let s=false;let a=false;if(t){const o=it.get(t);if(o.__useDefaultFramebuffer!==void 0){et.bindFramebuffer(J.FRAMEBUFFER,null);i=false}else o.__webglFramebuffer===void 0?rt.setupRenderTarget(t):o.__hasExternalTextures&&rt.rebindTextures(t,it.get(t.texture).__webglTexture,it.get(t.depthTexture).__webglTexture);const l=t.texture;(l.isData3DTexture||l.isDataArrayTexture||l.isCompressedArrayTexture)&&(a=true);const c=it.get(t).__webglFramebuffer;if(t.isWebGLCubeRenderTarget){r=Array.isArray(c[e])?c[e][n]:c[e];s=true}else r=t.samples>0&&rt.useMultisampledRTT(t)===false?it.get(t).__webglMultisampledFramebuffer:Array.isArray(c)?c[n]:c;P.copy(t.viewport);L.copy(t.scissor);I=t.scissorTest}else{P.copy(z).multiplyScalar(O).floor();L.copy(G).multiplyScalar(O).floor();I=k}const o=et.bindFramebuffer(J.FRAMEBUFFER,r);o&&i&&et.drawBuffers(t,r);et.viewport(P);et.scissor(L);et.setScissorTest(I);if(s){const i=it.get(t.texture);J.framebufferTexture2D(J.FRAMEBUFFER,J.COLOR_ATTACHMENT0,J.TEXTURE_CUBE_MAP_POSITIVE_X+e,i.__webglTexture,n)}else if(a){const i=it.get(t.texture);const r=e||0;J.framebufferTextureLayer(J.FRAMEBUFFER,J.COLOR_ATTACHMENT0,i.__webglTexture,n||0,r)}C=-1};this.readRenderTargetPixels=function(t,e,n,i,r,s,a){if(!(t&&t.isWebGLRenderTarget)){console.error(\"THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.\");return}let o=it.get(t).__webglFramebuffer;t.isWebGLCubeRenderTarget&&a!==void 0&&(o=o[a]);if(o){et.bindFramebuffer(J.FRAMEBUFFER,o);try{const a=t.texture;const o=a.format;const l=a.type;if(!tt.textureFormatReadable(o)){console.error(\"THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format.\");return}if(!tt.textureTypeReadable(l)){console.error(\"THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in UnsignedByteType or implementation defined type.\");return}e>=0&&e<=t.width-i&&n>=0&&n<=t.height-r&&J.readPixels(e,n,i,r,yt.convert(o),yt.convert(l),s)}finally{const t=A!==null?it.get(A).__webglFramebuffer:null;et.bindFramebuffer(J.FRAMEBUFFER,t)}}};this.readRenderTargetPixelsAsync=async function(t,e,n,i,r,s,a){if(!(t&&t.isWebGLRenderTarget))throw new Error(\"THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.\");let o=it.get(t).__webglFramebuffer;t.isWebGLCubeRenderTarget&&a!==void 0&&(o=o[a]);if(o){et.bindFramebuffer(J.FRAMEBUFFER,o);try{const a=t.texture;const o=a.format;const l=a.type;if(!tt.textureFormatReadable(o))throw new Error(\"THREE.WebGLRenderer.readRenderTargetPixelsAsync: renderTarget is not in RGBA or implementation defined format.\");if(!tt.textureTypeReadable(l))throw new Error(\"THREE.WebGLRenderer.readRenderTargetPixelsAsync: renderTarget is not in UnsignedByteType or implementation defined type.\");if(e>=0&&e<=t.width-i&&n>=0&&n<=t.height-r){const t=J.createBuffer();J.bindBuffer(J.PIXEL_PACK_BUFFER,t);J.bufferData(J.PIXEL_PACK_BUFFER,s.byteLength,J.STREAM_READ);J.readPixels(e,n,i,r,yt.convert(o),yt.convert(l),0);J.flush();const a=J.fenceSync(J.SYNC_GPU_COMMANDS_COMPLETE,0);await probeAsync(J,a,4);try{J.bindBuffer(J.PIXEL_PACK_BUFFER,t);J.getBufferSubData(J.PIXEL_PACK_BUFFER,0,s)}finally{J.deleteBuffer(t);J.deleteSync(a)}return s}}finally{const t=A!==null?it.get(A).__webglFramebuffer:null;et.bindFramebuffer(J.FRAMEBUFFER,t)}}};this.copyFramebufferToTexture=function(t,e=null,n=0){if(t.isTexture!==true){warnOnce(\"WebGLRenderer: copyFramebufferToTexture function signature has changed.\");e=arguments[0]||null;t=arguments[1]}const i=Math.pow(2,-n);const r=Math.floor(t.image.width*i);const s=Math.floor(t.image.height*i);const a=e!==null?e.x:0;const o=e!==null?e.y:0;rt.setTexture2D(t,0);J.copyTexSubImage2D(J.TEXTURE_2D,n,0,0,a,o,r,s);et.unbindTexture()};this.copyTextureToTexture=function(t,e,n=null,i=null,r=0){if(t.isTexture!==true){warnOnce(\"WebGLRenderer: copyTextureToTexture function signature has changed.\");i=arguments[0]||null;t=arguments[1];e=arguments[2];r=arguments[3]||0;n=null}let s,a,o,l;let c,h;if(n!==null){s=n.max.x-n.min.x;a=n.max.y-n.min.y;o=n.min.x;l=n.min.y}else{s=t.image.width;a=t.image.height;o=0;l=0}if(i!==null){c=i.x;h=i.y}else{c=0;h=0}const u=yt.convert(e.format);const d=yt.convert(e.type);rt.setTexture2D(e,0);J.pixelStorei(J.UNPACK_FLIP_Y_WEBGL,e.flipY);J.pixelStorei(J.UNPACK_PREMULTIPLY_ALPHA_WEBGL,e.premultiplyAlpha);J.pixelStorei(J.UNPACK_ALIGNMENT,e.unpackAlignment);const p=J.getParameter(J.UNPACK_ROW_LENGTH);const f=J.getParameter(J.UNPACK_IMAGE_HEIGHT);const m=J.getParameter(J.UNPACK_SKIP_PIXELS);const g=J.getParameter(J.UNPACK_SKIP_ROWS);const _=J.getParameter(J.UNPACK_SKIP_IMAGES);const x=t.isCompressedTexture?t.mipmaps[r]:t.image;J.pixelStorei(J.UNPACK_ROW_LENGTH,x.width);J.pixelStorei(J.UNPACK_IMAGE_HEIGHT,x.height);J.pixelStorei(J.UNPACK_SKIP_PIXELS,o);J.pixelStorei(J.UNPACK_SKIP_ROWS,l);t.isDataTexture?J.texSubImage2D(J.TEXTURE_2D,r,c,h,s,a,u,d,x.data):t.isCompressedTexture?J.compressedTexSubImage2D(J.TEXTURE_2D,r,c,h,x.width,x.height,u,x.data):J.texSubImage2D(J.TEXTURE_2D,r,c,h,s,a,u,d,x);J.pixelStorei(J.UNPACK_ROW_LENGTH,p);J.pixelStorei(J.UNPACK_IMAGE_HEIGHT,f);J.pixelStorei(J.UNPACK_SKIP_PIXELS,m);J.pixelStorei(J.UNPACK_SKIP_ROWS,g);J.pixelStorei(J.UNPACK_SKIP_IMAGES,_);r===0&&e.generateMipmaps&&J.generateMipmap(J.TEXTURE_2D);et.unbindTexture()};this.copyTextureToTexture3D=function(t,e,n=null,i=null,r=0){if(t.isTexture!==true){warnOnce(\"WebGLRenderer: copyTextureToTexture3D function signature has changed.\");n=arguments[0]||null;i=arguments[1]||null;t=arguments[2];e=arguments[3];r=arguments[4]||0}let s,a,o,l,c,h;let u,d,p;const f=t.isCompressedTexture?t.mipmaps[r]:t.image;if(n!==null){s=n.max.x-n.min.x;a=n.max.y-n.min.y;o=n.max.z-n.min.z;l=n.min.x;c=n.min.y;h=n.min.z}else{s=f.width;a=f.height;o=f.depth;l=0;c=0;h=0}if(i!==null){u=i.x;d=i.y;p=i.z}else{u=0;d=0;p=0}const m=yt.convert(e.format);const g=yt.convert(e.type);let _;if(e.isData3DTexture){rt.setTexture3D(e,0);_=J.TEXTURE_3D}else{if(!e.isDataArrayTexture&&!e.isCompressedArrayTexture){console.warn(\"THREE.WebGLRenderer.copyTextureToTexture3D: only supports THREE.DataTexture3D and THREE.DataTexture2DArray.\");return}rt.setTexture2DArray(e,0);_=J.TEXTURE_2D_ARRAY}J.pixelStorei(J.UNPACK_FLIP_Y_WEBGL,e.flipY);J.pixelStorei(J.UNPACK_PREMULTIPLY_ALPHA_WEBGL,e.premultiplyAlpha);J.pixelStorei(J.UNPACK_ALIGNMENT,e.unpackAlignment);const x=J.getParameter(J.UNPACK_ROW_LENGTH);const y=J.getParameter(J.UNPACK_IMAGE_HEIGHT);const M=J.getParameter(J.UNPACK_SKIP_PIXELS);const S=J.getParameter(J.UNPACK_SKIP_ROWS);const b=J.getParameter(J.UNPACK_SKIP_IMAGES);J.pixelStorei(J.UNPACK_ROW_LENGTH,f.width);J.pixelStorei(J.UNPACK_IMAGE_HEIGHT,f.height);J.pixelStorei(J.UNPACK_SKIP_PIXELS,l);J.pixelStorei(J.UNPACK_SKIP_ROWS,c);J.pixelStorei(J.UNPACK_SKIP_IMAGES,h);t.isDataTexture||t.isData3DTexture?J.texSubImage3D(_,r,u,d,p,s,a,o,m,g,f.data):e.isCompressedArrayTexture?J.compressedTexSubImage3D(_,r,u,d,p,s,a,o,m,f.data):J.texSubImage3D(_,r,u,d,p,s,a,o,m,g,f);J.pixelStorei(J.UNPACK_ROW_LENGTH,x);J.pixelStorei(J.UNPACK_IMAGE_HEIGHT,y);J.pixelStorei(J.UNPACK_SKIP_PIXELS,M);J.pixelStorei(J.UNPACK_SKIP_ROWS,S);J.pixelStorei(J.UNPACK_SKIP_IMAGES,b);r===0&&e.generateMipmaps&&J.generateMipmap(_);et.unbindTexture()};this.initRenderTarget=function(t){it.get(t).__webglFramebuffer===void 0&&rt.setupRenderTarget(t)};this.initTexture=function(t){t.isCubeTexture?rt.setTextureCube(t,0):t.isData3DTexture?rt.setTexture3D(t,0):t.isDataArrayTexture||t.isCompressedArrayTexture?rt.setTexture2DArray(t,0):rt.setTexture2D(t,0);et.unbindTexture()};this.resetState=function(){w=0;E=0;A=null;et.reset();Mt.reset()};typeof __THREE_DEVTOOLS__!==\"undefined\"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent(\"observe\",{detail:this}))}get coordinateSystem(){return Gn}get outputColorSpace(){return this._outputColorSpace}set outputColorSpace(t){this._outputColorSpace=t;const e=this.getContext();e.drawingBufferColorSpace=t===$e?\"display-p3\":\"srgb\";e.unpackColorSpace=ei.workingColorSpace===tn?\"display-p3\":\"srgb\"}}class FogExp2{constructor(t,e=25e-5){this.isFogExp2=true;this.name=\"\";this.color=new Color(t);this.density=e}clone(){return new FogExp2(this.color,this.density)}toJSON(){return{type:\"FogExp2\",name:this.name,color:this.color.getHex(),density:this.density}}}class Fog{constructor(t,e=1,n=1e3){this.isFog=true;this.name=\"\";this.color=new Color(t);this.near=e;this.far=n}clone(){return new Fog(this.color,this.near,this.far)}toJSON(){return{type:\"Fog\",name:this.name,color:this.color.getHex(),near:this.near,far:this.far}}}class Scene extends Object3D{constructor(){super();this.isScene=true;this.type=\"Scene\";this.background=null;this.environment=null;this.fog=null;this.backgroundBlurriness=0;this.backgroundIntensity=1;this.backgroundRotation=new Euler;this.environmentIntensity=1;this.environmentRotation=new Euler;this.overrideMaterial=null;typeof __THREE_DEVTOOLS__!==\"undefined\"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent(\"observe\",{detail:this}))}copy(t,e){super.copy(t,e);t.background!==null&&(this.background=t.background.clone());t.environment!==null&&(this.environment=t.environment.clone());t.fog!==null&&(this.fog=t.fog.clone());this.backgroundBlurriness=t.backgroundBlurriness;this.backgroundIntensity=t.backgroundIntensity;this.backgroundRotation.copy(t.backgroundRotation);this.environmentIntensity=t.environmentIntensity;this.environmentRotation.copy(t.environmentRotation);t.overrideMaterial!==null&&(this.overrideMaterial=t.overrideMaterial.clone());this.matrixAutoUpdate=t.matrixAutoUpdate;return this}toJSON(t){const e=super.toJSON(t);this.fog!==null&&(e.object.fog=this.fog.toJSON());this.backgroundBlurriness>0&&(e.object.backgroundBlurriness=this.backgroundBlurriness);this.backgroundIntensity!==1&&(e.object.backgroundIntensity=this.backgroundIntensity);e.object.backgroundRotation=this.backgroundRotation.toArray();this.environmentIntensity!==1&&(e.object.environmentIntensity=this.environmentIntensity);e.object.environmentRotation=this.environmentRotation.toArray();return e}}class InterleavedBuffer{constructor(t,e){this.isInterleavedBuffer=true;this.array=t;this.stride=e;this.count=t!==void 0?t.length/e:0;this.usage=Pn;this._updateRange={offset:0,count:-1};this.updateRanges=[];this.version=0;this.uuid=generateUUID()}onUploadCallback(){}set needsUpdate(t){t===true&&this.version++}get updateRange(){warnOnce(\"THREE.InterleavedBuffer: updateRange() is deprecated and will be removed in r169. Use addUpdateRange() instead.\");return this._updateRange}setUsage(t){this.usage=t;return this}addUpdateRange(t,e){this.updateRanges.push({start:t,count:e})}clearUpdateRanges(){this.updateRanges.length=0}copy(t){this.array=new t.array.constructor(t.array);this.count=t.count;this.stride=t.stride;this.usage=t.usage;return this}copyAt(t,e,n){t*=this.stride;n*=e.stride;for(let i=0,r=this.stride;i<r;i++)this.array[t+i]=e.array[n+i];return this}set(t,e=0){this.array.set(t,e);return this}clone(t){t.arrayBuffers===void 0&&(t.arrayBuffers={});this.array.buffer._uuid===void 0&&(this.array.buffer._uuid=generateUUID());t.arrayBuffers[this.array.buffer._uuid]===void 0&&(t.arrayBuffers[this.array.buffer._uuid]=this.array.slice(0).buffer);const e=new this.array.constructor(t.arrayBuffers[this.array.buffer._uuid]);const n=new this.constructor(e,this.stride);n.setUsage(this.usage);return n}onUpload(t){this.onUploadCallback=t;return this}toJSON(t){t.arrayBuffers===void 0&&(t.arrayBuffers={});this.array.buffer._uuid===void 0&&(this.array.buffer._uuid=generateUUID());t.arrayBuffers[this.array.buffer._uuid]===void 0&&(t.arrayBuffers[this.array.buffer._uuid]=Array.from(new Uint32Array(this.array.buffer)));return{uuid:this.uuid,buffer:this.array.buffer._uuid,type:this.array.constructor.name,stride:this.stride}}}const Al=new Vector3;class InterleavedBufferAttribute{constructor(t,e,n,i=false){this.isInterleavedBufferAttribute=true;this.name=\"\";this.data=t;this.itemSize=e;this.offset=n;this.normalized=i}get count(){return this.data.count}get array(){return this.data.array}set needsUpdate(t){this.data.needsUpdate=t}applyMatrix4(t){for(let e=0,n=this.data.count;e<n;e++){Al.fromBufferAttribute(this,e);Al.applyMatrix4(t);this.setXYZ(e,Al.x,Al.y,Al.z)}return this}applyNormalMatrix(t){for(let e=0,n=this.count;e<n;e++){Al.fromBufferAttribute(this,e);Al.applyNormalMatrix(t);this.setXYZ(e,Al.x,Al.y,Al.z)}return this}transformDirection(t){for(let e=0,n=this.count;e<n;e++){Al.fromBufferAttribute(this,e);Al.transformDirection(t);this.setXYZ(e,Al.x,Al.y,Al.z)}return this}getComponent(t,e){let n=this.array[t*this.data.stride+this.offset+e];this.normalized&&(n=denormalize(n,this.array));return n}setComponent(t,e,n){this.normalized&&(n=normalize(n,this.array));this.data.array[t*this.data.stride+this.offset+e]=n;return this}setX(t,e){this.normalized&&(e=normalize(e,this.array));this.data.array[t*this.data.stride+this.offset]=e;return this}setY(t,e){this.normalized&&(e=normalize(e,this.array));this.data.array[t*this.data.stride+this.offset+1]=e;return this}setZ(t,e){this.normalized&&(e=normalize(e,this.array));this.data.array[t*this.data.stride+this.offset+2]=e;return this}setW(t,e){this.normalized&&(e=normalize(e,this.array));this.data.array[t*this.data.stride+this.offset+3]=e;return this}getX(t){let e=this.data.array[t*this.data.stride+this.offset];this.normalized&&(e=denormalize(e,this.array));return e}getY(t){let e=this.data.array[t*this.data.stride+this.offset+1];this.normalized&&(e=denormalize(e,this.array));return e}getZ(t){let e=this.data.array[t*this.data.stride+this.offset+2];this.normalized&&(e=denormalize(e,this.array));return e}getW(t){let e=this.data.array[t*this.data.stride+this.offset+3];this.normalized&&(e=denormalize(e,this.array));return e}setXY(t,e,n){t=t*this.data.stride+this.offset;if(this.normalized){e=normalize(e,this.array);n=normalize(n,this.array)}this.data.array[t+0]=e;this.data.array[t+1]=n;return this}setXYZ(t,e,n,i){t=t*this.data.stride+this.offset;if(this.normalized){e=normalize(e,this.array);n=normalize(n,this.array);i=normalize(i,this.array)}this.data.array[t+0]=e;this.data.array[t+1]=n;this.data.array[t+2]=i;return this}setXYZW(t,e,n,i,r){t=t*this.data.stride+this.offset;if(this.normalized){e=normalize(e,this.array);n=normalize(n,this.array);i=normalize(i,this.array);r=normalize(r,this.array)}this.data.array[t+0]=e;this.data.array[t+1]=n;this.data.array[t+2]=i;this.data.array[t+3]=r;return this}clone(t){if(t===void 0){console.log(\"THREE.InterleavedBufferAttribute.clone(): Cloning an interleaved buffer attribute will de-interleave buffer data.\");const t=[];for(let e=0;e<this.count;e++){const n=e*this.data.stride+this.offset;for(let e=0;e<this.itemSize;e++)t.push(this.data.array[n+e])}return new BufferAttribute(new this.array.constructor(t),this.itemSize,this.normalized)}t.interleavedBuffers===void 0&&(t.interleavedBuffers={});t.interleavedBuffers[this.data.uuid]===void 0&&(t.interleavedBuffers[this.data.uuid]=this.data.clone(t));return new InterleavedBufferAttribute(t.interleavedBuffers[this.data.uuid],this.itemSize,this.offset,this.normalized)}toJSON(t){if(t===void 0){console.log(\"THREE.InterleavedBufferAttribute.toJSON(): Serializing an interleaved buffer attribute will de-interleave buffer data.\");const t=[];for(let e=0;e<this.count;e++){const n=e*this.data.stride+this.offset;for(let e=0;e<this.itemSize;e++)t.push(this.data.array[n+e])}return{itemSize:this.itemSize,type:this.array.constructor.name,array:t,normalized:this.normalized}}t.interleavedBuffers===void 0&&(t.interleavedBuffers={});t.interleavedBuffers[this.data.uuid]===void 0&&(t.interleavedBuffers[this.data.uuid]=this.data.toJSON(t));return{isInterleavedBufferAttribute:true,itemSize:this.itemSize,data:this.data.uuid,offset:this.offset,normalized:this.normalized}}}class SpriteMaterial extends Material{constructor(t){super();this.isSpriteMaterial=true;this.type=\"SpriteMaterial\";this.color=new Color(16777215);this.map=null;this.alphaMap=null;this.rotation=0;this.sizeAttenuation=true;this.transparent=true;this.fog=true;this.setValues(t)}copy(t){super.copy(t);this.color.copy(t.color);this.map=t.map;this.alphaMap=t.alphaMap;this.rotation=t.rotation;this.sizeAttenuation=t.sizeAttenuation;this.fog=t.fog;return this}}let Cl;const Rl=new Vector3;const Pl=new Vector3;const Ll=new Vector3;const Il=new Vector2;const Ul=new Vector2;const Dl=new Matrix4;const Nl=new Vector3;const Bl=new Vector3;const Ol=new Vector3;const Vl=new Vector2;const Fl=new Vector2;const zl=new Vector2;class Sprite extends Object3D{constructor(t=new SpriteMaterial){super();this.isSprite=true;this.type=\"Sprite\";if(Cl===void 0){Cl=new BufferGeometry;const t=new Float32Array([-.5,-.5,0,0,0,.5,-.5,0,1,0,.5,.5,0,1,1,-.5,.5,0,0,1]);const e=new InterleavedBuffer(t,5);Cl.setIndex([0,1,2,0,2,3]);Cl.setAttribute(\"position\",new InterleavedBufferAttribute(e,3,0,false));Cl.setAttribute(\"uv\",new InterleavedBufferAttribute(e,2,3,false))}this.geometry=Cl;this.material=t;this.center=new Vector2(.5,.5)}raycast(t,e){t.camera===null&&console.error('THREE.Sprite: \"Raycaster.camera\" needs to be set in order to raycast against sprites.');Pl.setFromMatrixScale(this.matrixWorld);Dl.copy(t.camera.matrixWorld);this.modelViewMatrix.multiplyMatrices(t.camera.matrixWorldInverse,this.matrixWorld);Ll.setFromMatrixPosition(this.modelViewMatrix);t.camera.isPerspectiveCamera&&this.material.sizeAttenuation===false&&Pl.multiplyScalar(-Ll.z);const n=this.material.rotation;let i,r;if(n!==0){r=Math.cos(n);i=Math.sin(n)}const s=this.center;transformVertex(Nl.set(-.5,-.5,0),Ll,s,Pl,i,r);transformVertex(Bl.set(.5,-.5,0),Ll,s,Pl,i,r);transformVertex(Ol.set(.5,.5,0),Ll,s,Pl,i,r);Vl.set(0,0);Fl.set(1,0);zl.set(1,1);let a=t.ray.intersectTriangle(Nl,Bl,Ol,false,Rl);if(a===null){transformVertex(Bl.set(-.5,.5,0),Ll,s,Pl,i,r);Fl.set(0,1);a=t.ray.intersectTriangle(Nl,Ol,Bl,false,Rl);if(a===null)return}const o=t.ray.origin.distanceTo(Rl);o<t.near||o>t.far||e.push({distance:o,point:Rl.clone(),uv:Triangle.getInterpolation(Rl,Nl,Bl,Ol,Vl,Fl,zl,new Vector2),face:null,object:this})}copy(t,e){super.copy(t,e);t.center!==void 0&&this.center.copy(t.center);this.material=t.material;return this}}function transformVertex(t,e,n,i,r,s){Il.subVectors(t,n).addScalar(.5).multiply(i);if(r!==void 0){Ul.x=s*Il.x-r*Il.y;Ul.y=r*Il.x+s*Il.y}else Ul.copy(Il);t.copy(e);t.x+=Ul.x;t.y+=Ul.y;t.applyMatrix4(Dl)}const Gl=new Vector3;const kl=new Vector3;class LOD extends Object3D{constructor(){super();this._currentLevel=0;this.type=\"LOD\";Object.defineProperties(this,{levels:{enumerable:true,value:[]},isLOD:{value:true}});this.autoUpdate=true}copy(t){super.copy(t,false);const e=t.levels;for(let t=0,n=e.length;t<n;t++){const n=e[t];this.addLevel(n.object.clone(),n.distance,n.hysteresis)}this.autoUpdate=t.autoUpdate;return this}addLevel(t,e=0,n=0){e=Math.abs(e);const i=this.levels;let r;for(r=0;r<i.length;r++)if(e<i[r].distance)break;i.splice(r,0,{distance:e,hysteresis:n,object:t});this.add(t);return this}getCurrentLevel(){return this._currentLevel}getObjectForDistance(t){const e=this.levels;if(e.length>0){let n,i;for(n=1,i=e.length;n<i;n++){let i=e[n].distance;e[n].object.visible&&(i-=i*e[n].hysteresis);if(t<i)break}return e[n-1].object}return null}raycast(t,e){const n=this.levels;if(n.length>0){Gl.setFromMatrixPosition(this.matrixWorld);const n=t.ray.origin.distanceTo(Gl);this.getObjectForDistance(n).raycast(t,e)}}update(t){const e=this.levels;if(e.length>1){Gl.setFromMatrixPosition(t.matrixWorld);kl.setFromMatrixPosition(this.matrixWorld);const n=Gl.distanceTo(kl)/t.zoom;e[0].object.visible=true;let i,r;for(i=1,r=e.length;i<r;i++){let t=e[i].distance;e[i].object.visible&&(t-=t*e[i].hysteresis);if(!(n>=t))break;e[i-1].object.visible=false;e[i].object.visible=true}this._currentLevel=i-1;for(;i<r;i++)e[i].object.visible=false}}toJSON(t){const e=super.toJSON(t);this.autoUpdate===false&&(e.object.autoUpdate=false);e.object.levels=[];const n=this.levels;for(let t=0,i=n.length;t<i;t++){const i=n[t];e.object.levels.push({object:i.object.uuid,distance:i.distance,hysteresis:i.hysteresis})}return e}}const Hl=new Vector3;const Wl=new Vector4;const Xl=new Vector4;const jl=new Vector3;const ql=new Matrix4;const Yl=new Vector3;const Kl=new Sphere;const Zl=new Matrix4;const Jl=new Ray;class SkinnedMesh extends Mesh{constructor(t,e){super(t,e);this.isSkinnedMesh=true;this.type=\"SkinnedMesh\";this.bindMode=at;this.bindMatrix=new Matrix4;this.bindMatrixInverse=new Matrix4;this.boundingBox=null;this.boundingSphere=null}computeBoundingBox(){const t=this.geometry;this.boundingBox===null&&(this.boundingBox=new Box3);this.boundingBox.makeEmpty();const e=t.getAttribute(\"position\");for(let t=0;t<e.count;t++){this.getVertexPosition(t,Yl);this.boundingBox.expandByPoint(Yl)}}computeBoundingSphere(){const t=this.geometry;this.boundingSphere===null&&(this.boundingSphere=new Sphere);this.boundingSphere.makeEmpty();const e=t.getAttribute(\"position\");for(let t=0;t<e.count;t++){this.getVertexPosition(t,Yl);this.boundingSphere.expandByPoint(Yl)}}copy(t,e){super.copy(t,e);this.bindMode=t.bindMode;this.bindMatrix.copy(t.bindMatrix);this.bindMatrixInverse.copy(t.bindMatrixInverse);this.skeleton=t.skeleton;t.boundingBox!==null&&(this.boundingBox=t.boundingBox.clone());t.boundingSphere!==null&&(this.boundingSphere=t.boundingSphere.clone());return this}raycast(t,e){const n=this.material;const i=this.matrixWorld;if(n!==void 0){this.boundingSphere===null&&this.computeBoundingSphere();Kl.copy(this.boundingSphere);Kl.applyMatrix4(i);if(t.ray.intersectsSphere(Kl)!==false){Zl.copy(i).invert();Jl.copy(t.ray).applyMatrix4(Zl);this.boundingBox!==null&&Jl.intersectsBox(this.boundingBox)===false||this._computeIntersections(t,e,Jl)}}}getVertexPosition(t,e){super.getVertexPosition(t,e);this.applyBoneTransform(t,e);return e}bind(t,e){this.skeleton=t;if(e===void 0){this.updateMatrixWorld(true);this.skeleton.calculateInverses();e=this.matrixWorld}this.bindMatrix.copy(e);this.bindMatrixInverse.copy(e).invert()}pose(){this.skeleton.pose()}normalizeSkinWeights(){const t=new Vector4;const e=this.geometry.attributes.skinWeight;for(let n=0,i=e.count;n<i;n++){t.fromBufferAttribute(e,n);const i=1/t.manhattanLength();i!==Infinity?t.multiplyScalar(i):t.set(1,0,0,0);e.setXYZW(n,t.x,t.y,t.z,t.w)}}updateMatrixWorld(t){super.updateMatrixWorld(t);this.bindMode===at?this.bindMatrixInverse.copy(this.matrixWorld).invert():this.bindMode===ot?this.bindMatrixInverse.copy(this.bindMatrix).invert():console.warn(\"THREE.SkinnedMesh: Unrecognized bindMode: \"+this.bindMode)}applyBoneTransform(t,e){const n=this.skeleton;const i=this.geometry;Wl.fromBufferAttribute(i.attributes.skinIndex,t);Xl.fromBufferAttribute(i.attributes.skinWeight,t);Hl.copy(e).applyMatrix4(this.bindMatrix);e.set(0,0,0);for(let t=0;t<4;t++){const i=Xl.getComponent(t);if(i!==0){const r=Wl.getComponent(t);ql.multiplyMatrices(n.bones[r].matrixWorld,n.boneInverses[r]);e.addScaledVector(jl.copy(Hl).applyMatrix4(ql),i)}}return e.applyMatrix4(this.bindMatrixInverse)}}class Bone extends Object3D{constructor(){super();this.isBone=true;this.type=\"Bone\"}}class DataTexture extends Texture{constructor(t=null,e=1,n=1,i,r,s,a,o,l=vt,c=vt,h,u){super(null,s,a,o,l,c,i,r,h,u);this.isDataTexture=true;this.image={data:t,width:e,height:n};this.generateMipmaps=false;this.flipY=false;this.unpackAlignment=1}}const Ql=new Matrix4;const $l=new Matrix4;class Skeleton{constructor(t=[],e=[]){this.uuid=generateUUID();this.bones=t.slice(0);this.boneInverses=e;this.boneMatrices=null;this.boneTexture=null;this.init()}init(){const t=this.bones;const e=this.boneInverses;this.boneMatrices=new Float32Array(t.length*16);if(e.length===0)this.calculateInverses();else if(t.length!==e.length){console.warn(\"THREE.Skeleton: Number of inverse bone matrices does not match amount of bones.\");this.boneInverses=[];for(let t=0,e=this.bones.length;t<e;t++)this.boneInverses.push(new Matrix4)}}calculateInverses(){this.boneInverses.length=0;for(let t=0,e=this.bones.length;t<e;t++){const e=new Matrix4;this.bones[t]&&e.copy(this.bones[t].matrixWorld).invert();this.boneInverses.push(e)}}pose(){for(let t=0,e=this.bones.length;t<e;t++){const e=this.bones[t];e&&e.matrixWorld.copy(this.boneInverses[t]).invert()}for(let t=0,e=this.bones.length;t<e;t++){const e=this.bones[t];if(e){if(e.parent&&e.parent.isBone){e.matrix.copy(e.parent.matrixWorld).invert();e.matrix.multiply(e.matrixWorld)}else e.matrix.copy(e.matrixWorld);e.matrix.decompose(e.position,e.quaternion,e.scale)}}}update(){const t=this.bones;const e=this.boneInverses;const n=this.boneMatrices;const i=this.boneTexture;for(let i=0,r=t.length;i<r;i++){const r=t[i]?t[i].matrixWorld:$l;Ql.multiplyMatrices(r,e[i]);Ql.toArray(n,i*16)}i!==null&&(i.needsUpdate=true)}clone(){return new Skeleton(this.bones,this.boneInverses)}computeBoneTexture(){let t=Math.sqrt(this.bones.length*4);t=Math.ceil(t/4)*4;t=Math.max(t,4);const e=new Float32Array(t*t*4);e.set(this.boneMatrices);const n=new DataTexture(e,t,t,Gt,Ut);n.needsUpdate=true;this.boneMatrices=e;this.boneTexture=n;return this}getBoneByName(t){for(let e=0,n=this.bones.length;e<n;e++){const n=this.bones[e];if(n.name===t)return n}}dispose(){if(this.boneTexture!==null){this.boneTexture.dispose();this.boneTexture=null}}fromJSON(t,e){this.uuid=t.uuid;for(let n=0,i=t.bones.length;n<i;n++){const i=t.bones[n];let r=e[i];if(r===void 0){console.warn(\"THREE.Skeleton: No bone found with UUID:\",i);r=new Bone}this.bones.push(r);this.boneInverses.push((new Matrix4).fromArray(t.boneInverses[n]))}this.init();return this}toJSON(){const t={metadata:{version:4.6,type:\"Skeleton\",generator:\"Skeleton.toJSON\"},bones:[],boneInverses:[]};t.uuid=this.uuid;const e=this.bones;const n=this.boneInverses;for(let i=0,r=e.length;i<r;i++){const r=e[i];t.bones.push(r.uuid);const s=n[i];t.boneInverses.push(s.toArray())}return t}}class InstancedBufferAttribute extends BufferAttribute{constructor(t,e,n,i=1){super(t,e,n);this.isInstancedBufferAttribute=true;this.meshPerAttribute=i}copy(t){super.copy(t);this.meshPerAttribute=t.meshPerAttribute;return this}toJSON(){const t=super.toJSON();t.meshPerAttribute=this.meshPerAttribute;t.isInstancedBufferAttribute=true;return t}}const tc=new Matrix4;const ec=new Matrix4;const nc=[];const ic=new Box3;const rc=new Matrix4;const sc=new Mesh;const ac=new Sphere;class InstancedMesh extends Mesh{constructor(t,e,n){super(t,e);this.isInstancedMesh=true;this.instanceMatrix=new InstancedBufferAttribute(new Float32Array(n*16),16);this.instanceColor=null;this.morphTexture=null;this.count=n;this.boundingBox=null;this.boundingSphere=null;for(let t=0;t<n;t++)this.setMatrixAt(t,rc)}computeBoundingBox(){const t=this.geometry;const e=this.count;this.boundingBox===null&&(this.boundingBox=new Box3);t.boundingBox===null&&t.computeBoundingBox();this.boundingBox.makeEmpty();for(let n=0;n<e;n++){this.getMatrixAt(n,tc);ic.copy(t.boundingBox).applyMatrix4(tc);this.boundingBox.union(ic)}}computeBoundingSphere(){const t=this.geometry;const e=this.count;this.boundingSphere===null&&(this.boundingSphere=new Sphere);t.boundingSphere===null&&t.computeBoundingSphere();this.boundingSphere.makeEmpty();for(let n=0;n<e;n++){this.getMatrixAt(n,tc);ac.copy(t.boundingSphere).applyMatrix4(tc);this.boundingSphere.union(ac)}}copy(t,e){super.copy(t,e);this.instanceMatrix.copy(t.instanceMatrix);t.morphTexture!==null&&(this.morphTexture=t.morphTexture.clone());t.instanceColor!==null&&(this.instanceColor=t.instanceColor.clone());this.count=t.count;t.boundingBox!==null&&(this.boundingBox=t.boundingBox.clone());t.boundingSphere!==null&&(this.boundingSphere=t.boundingSphere.clone());return this}getColorAt(t,e){e.fromArray(this.instanceColor.array,t*3)}getMatrixAt(t,e){e.fromArray(this.instanceMatrix.array,t*16)}getMorphAt(t,e){const n=e.morphTargetInfluences;const i=this.morphTexture.source.data.data;const r=n.length+1;const s=t*r+1;for(let t=0;t<n.length;t++)n[t]=i[s+t]}raycast(t,e){const n=this.matrixWorld;const i=this.count;sc.geometry=this.geometry;sc.material=this.material;if(sc.material!==void 0){this.boundingSphere===null&&this.computeBoundingSphere();ac.copy(this.boundingSphere);ac.applyMatrix4(n);if(t.ray.intersectsSphere(ac)!==false)for(let r=0;r<i;r++){this.getMatrixAt(r,tc);ec.multiplyMatrices(n,tc);sc.matrixWorld=ec;sc.raycast(t,nc);for(let t=0,n=nc.length;t<n;t++){const n=nc[t];n.instanceId=r;n.object=this;e.push(n)}nc.length=0}}}setColorAt(t,e){this.instanceColor===null&&(this.instanceColor=new InstancedBufferAttribute(new Float32Array(this.instanceMatrix.count*3).fill(1),3));e.toArray(this.instanceColor.array,t*3)}setMatrixAt(t,e){e.toArray(this.instanceMatrix.array,t*16)}setMorphAt(t,e){const n=e.morphTargetInfluences;const i=n.length+1;this.morphTexture===null&&(this.morphTexture=new DataTexture(new Float32Array(i*this.count),i,this.count,jt,Ut));const r=this.morphTexture.source.data.data;let s=0;for(let t=0;t<n.length;t++)s+=n[t];const a=this.geometry.morphTargetsRelative?1:1-s;const o=i*t;r[o]=a;r.set(n,o+1)}updateMorphTargets(){}dispose(){this.dispatchEvent({type:\"dispose\"});if(this.morphTexture!==null){this.morphTexture.dispose();this.morphTexture=null}return this}}function sortOpaque(t,e){return t.z-e.z}function sortTransparent(t,e){return e.z-t.z}class MultiDrawRenderList{constructor(){this.index=0;this.pool=[];this.list=[]}push(t,e,n){const i=this.pool;const r=this.list;this.index>=i.length&&i.push({start:-1,count:-1,z:-1,index:-1});const s=i[this.index];r.push(s);this.index++;s.start=t.start;s.count=t.count;s.z=e;s.index=n}reset(){this.list.length=0;this.index=0}}const oc=new Matrix4;const lc=new Matrix4;const cc=new Matrix4;const hc=new Color(1,1,1);const uc=new Matrix4;const dc=new Frustum;const pc=new Box3;const fc=new Sphere;const mc=new Vector3;const gc=new Vector3;const vc=new Vector3;const _c=new MultiDrawRenderList;const xc=new Mesh;const yc=[];function copyAttributeData(t,e,n=0){const i=e.itemSize;if(t.isInterleavedBufferAttribute||t.array.constructor!==e.array.constructor){const r=t.count;for(let s=0;s<r;s++)for(let r=0;r<i;r++)e.setComponent(s+n,r,t.getComponent(s,r))}else e.array.set(t.array,n*i);e.needsUpdate=true}class BatchedMesh extends Mesh{get maxInstanceCount(){return this._maxInstanceCount}constructor(t,e,n=e*2,i){super(new BufferGeometry,i);this.isBatchedMesh=true;this.perObjectFrustumCulled=true;this.sortObjects=true;this.boundingBox=null;this.boundingSphere=null;this.customSort=null;this._drawInfo=[];this._drawRanges=[];this._reservedRanges=[];this._bounds=[];this._maxInstanceCount=t;this._maxVertexCount=e;this._maxIndexCount=n;this._geometryInitialized=false;this._geometryCount=0;this._multiDrawCounts=new Int32Array(t);this._multiDrawStarts=new Int32Array(t);this._multiDrawCount=0;this._multiDrawInstances=null;this._visibilityChanged=true;this._matricesTexture=null;this._indirectTexture=null;this._colorsTexture=null;this._initMatricesTexture();this._initIndirectTexture()}_initMatricesTexture(){let t=Math.sqrt(this._maxInstanceCount*4);t=Math.ceil(t/4)*4;t=Math.max(t,4);const e=new Float32Array(t*t*4);const n=new DataTexture(e,t,t,Gt,Ut);this._matricesTexture=n}_initIndirectTexture(){let t=Math.sqrt(this._maxInstanceCount);t=Math.ceil(t);const e=new Uint32Array(t*t);const n=new DataTexture(e,t,t,qt,It);this._indirectTexture=n}_initColorsTexture(){let t=Math.sqrt(this._maxIndexCount);t=Math.ceil(t);const e=new Float32Array(t*t*4).fill(1);const n=new DataTexture(e,t,t,Gt,Ut);n.colorSpace=ei.workingColorSpace;this._colorsTexture=n}_initializeGeometry(t){const e=this.geometry;const n=this._maxVertexCount;const i=this._maxIndexCount;if(this._geometryInitialized===false){for(const i in t.attributes){const r=t.getAttribute(i);const{array:s,itemSize:a,normalized:o}=r;const l=new s.constructor(n*a);const c=new BufferAttribute(l,a,o);e.setAttribute(i,c)}if(t.getIndex()!==null){const t=n>65535?new Uint32Array(i):new Uint16Array(i);e.setIndex(new BufferAttribute(t,1))}this._geometryInitialized=true}}_validateGeometry(t){const e=this.geometry;if(Boolean(t.getIndex())!==Boolean(e.getIndex()))throw new Error('BatchedMesh: All geometries must consistently have \"index\".');for(const n in e.attributes){if(!t.hasAttribute(n))throw new Error(`BatchedMesh: Added geometry missing \"${n}\". All geometries must have consistent attributes.`);const i=t.getAttribute(n);const r=e.getAttribute(n);if(i.itemSize!==r.itemSize||i.normalized!==r.normalized)throw new Error(\"BatchedMesh: All attributes must have a consistent itemSize and normalized value.\")}}setCustomSort(t){this.customSort=t;return this}computeBoundingBox(){this.boundingBox===null&&(this.boundingBox=new Box3);const t=this._geometryCount;const e=this.boundingBox;const n=this._drawInfo;e.makeEmpty();for(let i=0;i<t;i++){if(n[i].active===false)continue;const t=n[i].geometryIndex;this.getMatrixAt(i,oc);this.getBoundingBoxAt(t,pc).applyMatrix4(oc);e.union(pc)}}computeBoundingSphere(){this.boundingSphere===null&&(this.boundingSphere=new Sphere);const t=this.boundingSphere;const e=this._drawInfo;t.makeEmpty();for(let n=0,i=e.length;n<i;n++){if(e[n].active===false)continue;const i=e[n].geometryIndex;this.getMatrixAt(n,oc);this.getBoundingSphereAt(i,fc).applyMatrix4(oc);t.union(fc)}}addInstance(t){if(this._drawInfo.length>=this._maxInstanceCount)throw new Error(\"BatchedMesh: Maximum item count reached.\");this._drawInfo.push({visible:true,active:true,geometryIndex:t});const e=this._drawInfo.length-1;const n=this._matricesTexture;const i=n.image.data;cc.toArray(i,e*16);n.needsUpdate=true;const r=this._colorsTexture;if(r){hc.toArray(r.image.data,e*4);r.needsUpdate=true}return e}addGeometry(t,e=-1,n=-1){this._initializeGeometry(t);this._validateGeometry(t);if(this._drawInfo.length>=this._maxInstanceCount)throw new Error(\"BatchedMesh: Maximum item count reached.\");const i={vertexStart:-1,vertexCount:-1,indexStart:-1,indexCount:-1};let r=null;const s=this._reservedRanges;const a=this._drawRanges;const o=this._bounds;this._geometryCount!==0&&(r=s[s.length-1]);i.vertexCount=e===-1?t.getAttribute(\"position\").count:e;i.vertexStart=r===null?0:r.vertexStart+r.vertexCount;const l=t.getIndex();const c=l!==null;if(c){i.indexCount=n===-1?l.count:n;i.indexStart=r===null?0:r.indexStart+r.indexCount}if(i.indexStart!==-1&&i.indexStart+i.indexCount>this._maxIndexCount||i.vertexStart+i.vertexCount>this._maxVertexCount)throw new Error(\"BatchedMesh: Reserved space request exceeds the maximum buffer size.\");const h=this._geometryCount;this._geometryCount++;s.push(i);a.push({start:c?i.indexStart:i.vertexStart,count:-1});o.push({boxInitialized:false,box:new Box3,sphereInitialized:false,sphere:new Sphere});this.setGeometryAt(h,t);return h}setGeometryAt(t,e){if(t>=this._geometryCount)throw new Error(\"BatchedMesh: Maximum geometry count reached.\");this._validateGeometry(e);const n=this.geometry;const i=n.getIndex()!==null;const r=n.getIndex();const s=e.getIndex();const a=this._reservedRanges[t];if(i&&s.count>a.indexCount||e.attributes.position.count>a.vertexCount)throw new Error(\"BatchedMesh: Reserved space not large enough for provided geometry.\");const o=a.vertexStart;const l=a.vertexCount;for(const t in n.attributes){const i=e.getAttribute(t);const r=n.getAttribute(t);copyAttributeData(i,r,o);const s=i.itemSize;for(let t=i.count,e=l;t<e;t++){const e=o+t;for(let t=0;t<s;t++)r.setComponent(e,t,0)}r.needsUpdate=true;r.addUpdateRange(o*s,l*s)}if(i){const t=a.indexStart;for(let e=0;e<s.count;e++)r.setX(t+e,o+s.getX(e));for(let e=s.count,n=a.indexCount;e<n;e++)r.setX(t+e,o);r.needsUpdate=true;r.addUpdateRange(t,a.indexCount)}const c=this._bounds[t];if(e.boundingBox!==null){c.box.copy(e.boundingBox);c.boxInitialized=true}else c.boxInitialized=false;if(e.boundingSphere!==null){c.sphere.copy(e.boundingSphere);c.sphereInitialized=true}else c.sphereInitialized=false;const h=this._drawRanges[t];const u=e.getAttribute(\"position\");h.count=i?s.count:u.count;this._visibilityChanged=true;return t}getBoundingBoxAt(t,e){if(t>=this._geometryCount)return null;const n=this._bounds[t];const i=n.box;const r=this.geometry;if(n.boxInitialized===false){i.makeEmpty();const e=r.index;const s=r.attributes.position;const a=this._drawRanges[t];for(let t=a.start,n=a.start+a.count;t<n;t++){let n=t;e&&(n=e.getX(n));i.expandByPoint(mc.fromBufferAttribute(s,n))}n.boxInitialized=true}e.copy(i);return e}getBoundingSphereAt(t,e){if(t>=this._geometryCount)return null;const n=this._bounds[t];const i=n.sphere;const r=this.geometry;if(n.sphereInitialized===false){i.makeEmpty();this.getBoundingBoxAt(t,pc);pc.getCenter(i.center);const e=r.index;const s=r.attributes.position;const a=this._drawRanges[t];let o=0;for(let t=a.start,n=a.start+a.count;t<n;t++){let n=t;e&&(n=e.getX(n));mc.fromBufferAttribute(s,n);o=Math.max(o,i.center.distanceToSquared(mc))}i.radius=Math.sqrt(o);n.sphereInitialized=true}e.copy(i);return e}setMatrixAt(t,e){const n=this._drawInfo;const i=this._matricesTexture;const r=this._matricesTexture.image.data;if(t>=n.length||n[t].active===false)return this;e.toArray(r,t*16);i.needsUpdate=true;return this}getMatrixAt(t,e){const n=this._drawInfo;const i=this._matricesTexture.image.data;return t>=n.length||n[t].active===false?null:e.fromArray(i,t*16)}setColorAt(t,e){this._colorsTexture===null&&this._initColorsTexture();const n=this._colorsTexture;const i=this._colorsTexture.image.data;const r=this._drawInfo;if(t>=r.length||r[t].active===false)return this;e.toArray(i,t*4);n.needsUpdate=true;return this}getColorAt(t,e){const n=this._colorsTexture.image.data;const i=this._drawInfo;return t>=i.length||i[t].active===false?null:e.fromArray(n,t*4)}setVisibleAt(t,e){const n=this._drawInfo;if(t>=n.length||n[t].active===false||n[t].visible===e)return this;n[t].visible=e;this._visibilityChanged=true;return this}getVisibleAt(t){const e=this._drawInfo;return!(t>=e.length||e[t].active===false)&&e[t].visible}raycast(t,e){const n=this._drawInfo;const i=this._drawRanges;const r=this.matrixWorld;const s=this.geometry;xc.material=this.material;xc.geometry.index=s.index;xc.geometry.attributes=s.attributes;xc.geometry.boundingBox===null&&(xc.geometry.boundingBox=new Box3);xc.geometry.boundingSphere===null&&(xc.geometry.boundingSphere=new Sphere);for(let s=0,a=n.length;s<a;s++){if(!n[s].visible||!n[s].active)continue;const a=n[s].geometryIndex;const o=i[a];xc.geometry.setDrawRange(o.start,o.count);this.getMatrixAt(s,xc.matrixWorld).premultiply(r);this.getBoundingBoxAt(a,xc.geometry.boundingBox);this.getBoundingSphereAt(a,xc.geometry.boundingSphere);xc.raycast(t,yc);for(let t=0,n=yc.length;t<n;t++){const n=yc[t];n.object=this;n.batchId=s;e.push(n)}yc.length=0}xc.material=null;xc.geometry.index=null;xc.geometry.attributes={};xc.geometry.setDrawRange(0,Infinity)}copy(t){super.copy(t);this.geometry=t.geometry.clone();this.perObjectFrustumCulled=t.perObjectFrustumCulled;this.sortObjects=t.sortObjects;this.boundingBox=t.boundingBox!==null?t.boundingBox.clone():null;this.boundingSphere=t.boundingSphere!==null?t.boundingSphere.clone():null;this._drawRanges=t._drawRanges.map((t=>({...t})));this._reservedRanges=t._reservedRanges.map((t=>({...t})));this._drawInfo=t._drawInfo.map((t=>({...t})));this._bounds=t._bounds.map((t=>({boxInitialized:t.boxInitialized,box:t.box.clone(),sphereInitialized:t.sphereInitialized,sphere:t.sphere.clone()})));this._maxInstanceCount=t._maxInstanceCount;this._maxVertexCount=t._maxVertexCount;this._maxIndexCount=t._maxIndexCount;this._geometryInitialized=t._geometryInitialized;this._geometryCount=t._geometryCount;this._multiDrawCounts=t._multiDrawCounts.slice();this._multiDrawStarts=t._multiDrawStarts.slice();this._matricesTexture=t._matricesTexture.clone();this._matricesTexture.image.data=this._matricesTexture.image.data.slice();if(this._colorsTexture!==null){this._colorsTexture=t._colorsTexture.clone();this._colorsTexture.image.data=this._colorsTexture.image.data.slice()}return this}dispose(){this.geometry.dispose();this._matricesTexture.dispose();this._matricesTexture=null;this._indirectTexture.dispose();this._indirectTexture=null;if(this._colorsTexture!==null){this._colorsTexture.dispose();this._colorsTexture=null}return this}onBeforeRender(t,e,n,i,r){if(!this._visibilityChanged&&!this.perObjectFrustumCulled&&!this.sortObjects)return;const s=i.getIndex();const a=s===null?1:s.array.BYTES_PER_ELEMENT;const o=this._drawInfo;const l=this._multiDrawStarts;const c=this._multiDrawCounts;const h=this._drawRanges;const u=this.perObjectFrustumCulled;const d=this._indirectTexture;const p=d.image.data;if(u){uc.multiplyMatrices(n.projectionMatrix,n.matrixWorldInverse).multiply(this.matrixWorld);dc.setFromProjectionMatrix(uc,t.coordinateSystem)}let f=0;if(this.sortObjects){lc.copy(this.matrixWorld).invert();mc.setFromMatrixPosition(n.matrixWorld).applyMatrix4(lc);gc.set(0,0,-1).transformDirection(n.matrixWorld).transformDirection(lc);for(let t=0,e=o.length;t<e;t++)if(o[t].visible&&o[t].active){const e=o[t].geometryIndex;this.getMatrixAt(t,oc);this.getBoundingSphereAt(e,fc).applyMatrix4(oc);let n=false;u&&(n=!dc.intersectsSphere(fc));if(!n){const n=vc.subVectors(fc.center,mc).dot(gc);_c.push(h[e],n,t)}}const t=_c.list;const e=this.customSort;e===null?t.sort(r.transparent?sortTransparent:sortOpaque):e.call(this,t,n);for(let e=0,n=t.length;e<n;e++){const n=t[e];l[f]=n.start*a;c[f]=n.count;p[f]=n.index;f++}_c.reset()}else for(let t=0,e=o.length;t<e;t++)if(o[t].visible&&o[t].active){const e=o[t].geometryIndex;let n=false;if(u){this.getMatrixAt(t,oc);this.getBoundingSphereAt(e,fc).applyMatrix4(oc);n=!dc.intersectsSphere(fc)}if(!n){const n=h[e];l[f]=n.start*a;c[f]=n.count;p[f]=t;f++}}d.needsUpdate=true;this._multiDrawCount=f;this._visibilityChanged=false}onBeforeShadow(t,e,n,i,r,s){this.onBeforeRender(t,null,i,r,s)}}class LineBasicMaterial extends Material{constructor(t){super();this.isLineBasicMaterial=true;this.type=\"LineBasicMaterial\";this.color=new Color(16777215);this.map=null;this.linewidth=1;this.linecap=\"round\";this.linejoin=\"round\";this.fog=true;this.setValues(t)}copy(t){super.copy(t);this.color.copy(t.color);this.map=t.map;this.linewidth=t.linewidth;this.linecap=t.linecap;this.linejoin=t.linejoin;this.fog=t.fog;return this}}const Mc=new Vector3;const Sc=new Vector3;const bc=new Matrix4;const Tc=new Ray;const wc=new Sphere;const Ec=new Vector3;const Ac=new Vector3;class Line extends Object3D{constructor(t=new BufferGeometry,e=new LineBasicMaterial){super();this.isLine=true;this.type=\"Line\";this.geometry=t;this.material=e;this.updateMorphTargets()}copy(t,e){super.copy(t,e);this.material=Array.isArray(t.material)?t.material.slice():t.material;this.geometry=t.geometry;return this}computeLineDistances(){const t=this.geometry;if(t.index===null){const e=t.attributes.position;const n=[0];for(let t=1,i=e.count;t<i;t++){Mc.fromBufferAttribute(e,t-1);Sc.fromBufferAttribute(e,t);n[t]=n[t-1];n[t]+=Mc.distanceTo(Sc)}t.setAttribute(\"lineDistance\",new Float32BufferAttribute(n,1))}else console.warn(\"THREE.Line.computeLineDistances(): Computation only possible with non-indexed BufferGeometry.\");return this}raycast(t,e){const n=this.geometry;const i=this.matrixWorld;const r=t.params.Line.threshold;const s=n.drawRange;n.boundingSphere===null&&n.computeBoundingSphere();wc.copy(n.boundingSphere);wc.applyMatrix4(i);wc.radius+=r;if(t.ray.intersectsSphere(wc)===false)return;bc.copy(i).invert();Tc.copy(t.ray).applyMatrix4(bc);const a=r/((this.scale.x+this.scale.y+this.scale.z)/3);const o=a*a;const l=this.isLineSegments?2:1;const c=n.index;const h=n.attributes;const u=h.position;if(c!==null){const n=Math.max(0,s.start);const i=Math.min(c.count,s.start+s.count);for(let r=n,s=i-1;r<s;r+=l){const n=c.getX(r);const i=c.getX(r+1);const s=checkIntersection(this,t,Tc,o,n,i);s&&e.push(s)}if(this.isLineLoop){const r=c.getX(i-1);const s=c.getX(n);const a=checkIntersection(this,t,Tc,o,r,s);a&&e.push(a)}}else{const n=Math.max(0,s.start);const i=Math.min(u.count,s.start+s.count);for(let r=n,s=i-1;r<s;r+=l){const n=checkIntersection(this,t,Tc,o,r,r+1);n&&e.push(n)}if(this.isLineLoop){const r=checkIntersection(this,t,Tc,o,i-1,n);r&&e.push(r)}}}updateMorphTargets(){const t=this.geometry;const e=t.morphAttributes;const n=Object.keys(e);if(n.length>0){const t=e[n[0]];if(t!==void 0){this.morphTargetInfluences=[];this.morphTargetDictionary={};for(let e=0,n=t.length;e<n;e++){const n=t[e].name||String(e);this.morphTargetInfluences.push(0);this.morphTargetDictionary[n]=e}}}}}function checkIntersection(t,e,n,i,r,s){const a=t.geometry.attributes.position;Mc.fromBufferAttribute(a,r);Sc.fromBufferAttribute(a,s);const o=n.distanceSqToSegment(Mc,Sc,Ec,Ac);if(o>i)return;Ec.applyMatrix4(t.matrixWorld);const l=e.ray.origin.distanceTo(Ec);return l<e.near||l>e.far?void 0:{distance:l,point:Ac.clone().applyMatrix4(t.matrixWorld),index:r,face:null,faceIndex:null,object:t}}const Cc=new Vector3;const Rc=new Vector3;class LineSegments extends Line{constructor(t,e){super(t,e);this.isLineSegments=true;this.type=\"LineSegments\"}computeLineDistances(){const t=this.geometry;if(t.index===null){const e=t.attributes.position;const n=[];for(let t=0,i=e.count;t<i;t+=2){Cc.fromBufferAttribute(e,t);Rc.fromBufferAttribute(e,t+1);n[t]=t===0?0:n[t-1];n[t+1]=n[t]+Cc.distanceTo(Rc)}t.setAttribute(\"lineDistance\",new Float32BufferAttribute(n,1))}else console.warn(\"THREE.LineSegments.computeLineDistances(): Computation only possible with non-indexed BufferGeometry.\");return this}}class LineLoop extends Line{constructor(t,e){super(t,e);this.isLineLoop=true;this.type=\"LineLoop\"}}class PointsMaterial extends Material{constructor(t){super();this.isPointsMaterial=true;this.type=\"PointsMaterial\";this.color=new Color(16777215);this.map=null;this.alphaMap=null;this.size=1;this.sizeAttenuation=true;this.fog=true;this.setValues(t)}copy(t){super.copy(t);this.color.copy(t.color);this.map=t.map;this.alphaMap=t.alphaMap;this.size=t.size;this.sizeAttenuation=t.sizeAttenuation;this.fog=t.fog;return this}}const Pc=new Matrix4;const Lc=new Ray;const Ic=new Sphere;const Uc=new Vector3;class Points extends Object3D{constructor(t=new BufferGeometry,e=new PointsMaterial){super();this.isPoints=true;this.type=\"Points\";this.geometry=t;this.material=e;this.updateMorphTargets()}copy(t,e){super.copy(t,e);this.material=Array.isArray(t.material)?t.material.slice():t.material;this.geometry=t.geometry;return this}raycast(t,e){const n=this.geometry;const i=this.matrixWorld;const r=t.params.Points.threshold;const s=n.drawRange;n.boundingSphere===null&&n.computeBoundingSphere();Ic.copy(n.boundingSphere);Ic.applyMatrix4(i);Ic.radius+=r;if(t.ray.intersectsSphere(Ic)===false)return;Pc.copy(i).invert();Lc.copy(t.ray).applyMatrix4(Pc);const a=r/((this.scale.x+this.scale.y+this.scale.z)/3);const o=a*a;const l=n.index;const c=n.attributes;const h=c.position;if(l!==null){const n=Math.max(0,s.start);const r=Math.min(l.count,s.start+s.count);for(let s=n,a=r;s<a;s++){const n=l.getX(s);Uc.fromBufferAttribute(h,n);testPoint(Uc,n,o,i,t,e,this)}}else{const n=Math.max(0,s.start);const r=Math.min(h.count,s.start+s.count);for(let s=n,a=r;s<a;s++){Uc.fromBufferAttribute(h,s);testPoint(Uc,s,o,i,t,e,this)}}}updateMorphTargets(){const t=this.geometry;const e=t.morphAttributes;const n=Object.keys(e);if(n.length>0){const t=e[n[0]];if(t!==void 0){this.morphTargetInfluences=[];this.morphTargetDictionary={};for(let e=0,n=t.length;e<n;e++){const n=t[e].name||String(e);this.morphTargetInfluences.push(0);this.morphTargetDictionary[n]=e}}}}}function testPoint(t,e,n,i,r,s,a){const o=Lc.distanceSqToPoint(t);if(o<n){const n=new Vector3;Lc.closestPointToPoint(t,n);n.applyMatrix4(i);const l=r.ray.origin.distanceTo(n);if(l<r.near||l>r.far)return;s.push({distance:l,distanceToRay:Math.sqrt(o),point:n,index:e,face:null,object:a})}}class VideoTexture extends Texture{constructor(t,e,n,i,r,s,a,o,l){super(t,e,n,i,r,s,a,o,l);this.isVideoTexture=true;this.minFilter=s!==void 0?s:St;this.magFilter=r!==void 0?r:St;this.generateMipmaps=false;const c=this;function updateVideo(){c.needsUpdate=true;t.requestVideoFrameCallback(updateVideo)}\"requestVideoFrameCallback\"in t&&t.requestVideoFrameCallback(updateVideo)}clone(){return new this.constructor(this.image).copy(this)}update(){const t=this.image;const e=\"requestVideoFrameCallback\"in t;e===false&&t.readyState>=t.HAVE_CURRENT_DATA&&(this.needsUpdate=true)}}class FramebufferTexture extends Texture{constructor(t,e){super({width:t,height:e});this.isFramebufferTexture=true;this.magFilter=vt;this.minFilter=vt;this.generateMipmaps=false;this.needsUpdate=true}}class CompressedTexture extends Texture{constructor(t,e,n,i,r,s,a,o,l,c,h,u){super(null,s,a,o,l,c,i,r,h,u);this.isCompressedTexture=true;this.image={width:e,height:n};this.mipmaps=t;this.flipY=false;this.generateMipmaps=false}}class CompressedArrayTexture extends CompressedTexture{constructor(t,e,n,i,r,s){super(t,e,n,r,s);this.isCompressedArrayTexture=true;this.image.depth=i;this.wrapR=mt;this.layerUpdates=new Set}addLayerUpdate(t){this.layerUpdates.add(t)}clearLayerUpdates(){this.layerUpdates.clear()}}class CompressedCubeTexture extends CompressedTexture{constructor(t,e,n){super(void 0,t[0].width,t[0].height,e,n,ct);this.isCompressedCubeTexture=true;this.isCubeTexture=true;this.image=t}}class CanvasTexture extends Texture{constructor(t,e,n,i,r,s,a,o,l){super(t,e,n,i,r,s,a,o,l);this.isCanvasTexture=true;this.needsUpdate=true}}class Curve{constructor(){this.type=\"Curve\";this.arcLengthDivisions=200}getPoint(){console.warn(\"THREE.Curve: .getPoint() not implemented.\");return null}getPointAt(t,e){const n=this.getUtoTmapping(t);return this.getPoint(n,e)}getPoints(t=5){const e=[];for(let n=0;n<=t;n++)e.push(this.getPoint(n/t));return e}getSpacedPoints(t=5){const e=[];for(let n=0;n<=t;n++)e.push(this.getPointAt(n/t));return e}getLength(){const t=this.getLengths();return t[t.length-1]}getLengths(t=this.arcLengthDivisions){if(this.cacheArcLengths&&this.cacheArcLengths.length===t+1&&!this.needsUpdate)return this.cacheArcLengths;this.needsUpdate=false;const e=[];let n,i=this.getPoint(0);let r=0;e.push(0);for(let s=1;s<=t;s++){n=this.getPoint(s/t);r+=n.distanceTo(i);e.push(r);i=n}this.cacheArcLengths=e;return e}updateArcLengths(){this.needsUpdate=true;this.getLengths()}getUtoTmapping(t,e){const n=this.getLengths();let i=0;const r=n.length;let s;s=e||t*n[r-1];let a,o=0,l=r-1;while(o<=l){i=Math.floor(o+(l-o)/2);a=n[i]-s;if(a<0)o=i+1;else{if(!(a>0)){l=i;break}l=i-1}}i=l;if(n[i]===s)return i/(r-1);const c=n[i];const h=n[i+1];const u=h-c;const d=(s-c)/u;const p=(i+d)/(r-1);return p}getTangent(t,e){const n=1e-4;let i=t-n;let r=t+n;i<0&&(i=0);r>1&&(r=1);const s=this.getPoint(i);const a=this.getPoint(r);const o=e||(s.isVector2?new Vector2:new Vector3);o.copy(a).sub(s).normalize();return o}getTangentAt(t,e){const n=this.getUtoTmapping(t);return this.getTangent(n,e)}computeFrenetFrames(t,e){const n=new Vector3;const i=[];const r=[];const s=[];const a=new Vector3;const o=new Matrix4;for(let e=0;e<=t;e++){const n=e/t;i[e]=this.getTangentAt(n,new Vector3)}r[0]=new Vector3;s[0]=new Vector3;let l=Number.MAX_VALUE;const c=Math.abs(i[0].x);const h=Math.abs(i[0].y);const u=Math.abs(i[0].z);if(c<=l){l=c;n.set(1,0,0)}if(h<=l){l=h;n.set(0,1,0)}u<=l&&n.set(0,0,1);a.crossVectors(i[0],n).normalize();r[0].crossVectors(i[0],a);s[0].crossVectors(i[0],r[0]);for(let e=1;e<=t;e++){r[e]=r[e-1].clone();s[e]=s[e-1].clone();a.crossVectors(i[e-1],i[e]);if(a.length()>Number.EPSILON){a.normalize();const t=Math.acos(clamp(i[e-1].dot(i[e]),-1,1));r[e].applyMatrix4(o.makeRotationAxis(a,t))}s[e].crossVectors(i[e],r[e])}if(e===true){let e=Math.acos(clamp(r[0].dot(r[t]),-1,1));e/=t;i[0].dot(a.crossVectors(r[0],r[t]))>0&&(e=-e);for(let n=1;n<=t;n++){r[n].applyMatrix4(o.makeRotationAxis(i[n],e*n));s[n].crossVectors(i[n],r[n])}}return{tangents:i,normals:r,binormals:s}}clone(){return(new this.constructor).copy(this)}copy(t){this.arcLengthDivisions=t.arcLengthDivisions;return this}toJSON(){const t={metadata:{version:4.6,type:\"Curve\",generator:\"Curve.toJSON\"}};t.arcLengthDivisions=this.arcLengthDivisions;t.type=this.type;return t}fromJSON(t){this.arcLengthDivisions=t.arcLengthDivisions;return this}}class EllipseCurve extends Curve{constructor(t=0,e=0,n=1,i=1,r=0,s=Math.PI*2,a=false,o=0){super();this.isEllipseCurve=true;this.type=\"EllipseCurve\";this.aX=t;this.aY=e;this.xRadius=n;this.yRadius=i;this.aStartAngle=r;this.aEndAngle=s;this.aClockwise=a;this.aRotation=o}getPoint(t,e=new Vector2){const n=e;const i=Math.PI*2;let r=this.aEndAngle-this.aStartAngle;const s=Math.abs(r)<Number.EPSILON;while(r<0)r+=i;while(r>i)r-=i;r<Number.EPSILON&&(r=s?0:i);this.aClockwise!==true||s||(r===i?r=-i:r-=i);const a=this.aStartAngle+t*r;let o=this.aX+this.xRadius*Math.cos(a);let l=this.aY+this.yRadius*Math.sin(a);if(this.aRotation!==0){const t=Math.cos(this.aRotation);const e=Math.sin(this.aRotation);const n=o-this.aX;const i=l-this.aY;o=n*t-i*e+this.aX;l=n*e+i*t+this.aY}return n.set(o,l)}copy(t){super.copy(t);this.aX=t.aX;this.aY=t.aY;this.xRadius=t.xRadius;this.yRadius=t.yRadius;this.aStartAngle=t.aStartAngle;this.aEndAngle=t.aEndAngle;this.aClockwise=t.aClockwise;this.aRotation=t.aRotation;return this}toJSON(){const t=super.toJSON();t.aX=this.aX;t.aY=this.aY;t.xRadius=this.xRadius;t.yRadius=this.yRadius;t.aStartAngle=this.aStartAngle;t.aEndAngle=this.aEndAngle;t.aClockwise=this.aClockwise;t.aRotation=this.aRotation;return t}fromJSON(t){super.fromJSON(t);this.aX=t.aX;this.aY=t.aY;this.xRadius=t.xRadius;this.yRadius=t.yRadius;this.aStartAngle=t.aStartAngle;this.aEndAngle=t.aEndAngle;this.aClockwise=t.aClockwise;this.aRotation=t.aRotation;return this}}class ArcCurve extends EllipseCurve{constructor(t,e,n,i,r,s){super(t,e,n,n,i,r,s);this.isArcCurve=true;this.type=\"ArcCurve\"}}function CubicPoly(){let t=0,e=0,n=0,i=0;function init(r,s,a,o){t=r;e=a;n=-3*r+3*s-2*a-o;i=2*r-2*s+a+o}return{initCatmullRom:function(t,e,n,i,r){init(e,n,r*(n-t),r*(i-e))},initNonuniformCatmullRom:function(t,e,n,i,r,s,a){let o=(e-t)/r-(n-t)/(r+s)+(n-e)/s;let l=(n-e)/s-(i-e)/(s+a)+(i-n)/a;o*=s;l*=s;init(e,n,o,l)},calc:function(r){const s=r*r;const a=s*r;return t+e*r+n*s+i*a}}}const Dc=new Vector3;const Nc=new CubicPoly;const Bc=new CubicPoly;const Oc=new CubicPoly;class CatmullRomCurve3 extends Curve{constructor(t=[],e=false,n=\"centripetal\",i=.5){super();this.isCatmullRomCurve3=true;this.type=\"CatmullRomCurve3\";this.points=t;this.closed=e;this.curveType=n;this.tension=i}getPoint(t,e=new Vector3){const n=e;const i=this.points;const r=i.length;const s=(r-(this.closed?0:1))*t;let a=Math.floor(s);let o=s-a;if(this.closed)a+=a>0?0:(Math.floor(Math.abs(a)/r)+1)*r;else if(o===0&&a===r-1){a=r-2;o=1}let l,c;if(this.closed||a>0)l=i[(a-1)%r];else{Dc.subVectors(i[0],i[1]).add(i[0]);l=Dc}const h=i[a%r];const u=i[(a+1)%r];if(this.closed||a+2<r)c=i[(a+2)%r];else{Dc.subVectors(i[r-1],i[r-2]).add(i[r-1]);c=Dc}if(this.curveType===\"centripetal\"||this.curveType===\"chordal\"){const t=this.curveType===\"chordal\"?.5:.25;let e=Math.pow(l.distanceToSquared(h),t);let n=Math.pow(h.distanceToSquared(u),t);let i=Math.pow(u.distanceToSquared(c),t);n<1e-4&&(n=1);e<1e-4&&(e=n);i<1e-4&&(i=n);Nc.initNonuniformCatmullRom(l.x,h.x,u.x,c.x,e,n,i);Bc.initNonuniformCatmullRom(l.y,h.y,u.y,c.y,e,n,i);Oc.initNonuniformCatmullRom(l.z,h.z,u.z,c.z,e,n,i)}else if(this.curveType===\"catmullrom\"){Nc.initCatmullRom(l.x,h.x,u.x,c.x,this.tension);Bc.initCatmullRom(l.y,h.y,u.y,c.y,this.tension);Oc.initCatmullRom(l.z,h.z,u.z,c.z,this.tension)}n.set(Nc.calc(o),Bc.calc(o),Oc.calc(o));return n}copy(t){super.copy(t);this.points=[];for(let e=0,n=t.points.length;e<n;e++){const n=t.points[e];this.points.push(n.clone())}this.closed=t.closed;this.curveType=t.curveType;this.tension=t.tension;return this}toJSON(){const t=super.toJSON();t.points=[];for(let e=0,n=this.points.length;e<n;e++){const n=this.points[e];t.points.push(n.toArray())}t.closed=this.closed;t.curveType=this.curveType;t.tension=this.tension;return t}fromJSON(t){super.fromJSON(t);this.points=[];for(let e=0,n=t.points.length;e<n;e++){const n=t.points[e];this.points.push((new Vector3).fromArray(n))}this.closed=t.closed;this.curveType=t.curveType;this.tension=t.tension;return this}}function CatmullRom(t,e,n,i,r){const s=.5*(i-e);const a=.5*(r-n);const o=t*t;const l=t*o;return(2*n-2*i+s+a)*l+(-3*n+3*i-2*s-a)*o+s*t+n}function QuadraticBezierP0(t,e){const n=1-t;return n*n*e}function QuadraticBezierP1(t,e){return 2*(1-t)*t*e}function QuadraticBezierP2(t,e){return t*t*e}function QuadraticBezier(t,e,n,i){return QuadraticBezierP0(t,e)+QuadraticBezierP1(t,n)+QuadraticBezierP2(t,i)}function CubicBezierP0(t,e){const n=1-t;return n*n*n*e}function CubicBezierP1(t,e){const n=1-t;return 3*n*n*t*e}function CubicBezierP2(t,e){return 3*(1-t)*t*t*e}function CubicBezierP3(t,e){return t*t*t*e}function CubicBezier(t,e,n,i,r){return CubicBezierP0(t,e)+CubicBezierP1(t,n)+CubicBezierP2(t,i)+CubicBezierP3(t,r)}class CubicBezierCurve extends Curve{constructor(t=new Vector2,e=new Vector2,n=new Vector2,i=new Vector2){super();this.isCubicBezierCurve=true;this.type=\"CubicBezierCurve\";this.v0=t;this.v1=e;this.v2=n;this.v3=i}getPoint(t,e=new Vector2){const n=e;const i=this.v0,r=this.v1,s=this.v2,a=this.v3;n.set(CubicBezier(t,i.x,r.x,s.x,a.x),CubicBezier(t,i.y,r.y,s.y,a.y));return n}copy(t){super.copy(t);this.v0.copy(t.v0);this.v1.copy(t.v1);this.v2.copy(t.v2);this.v3.copy(t.v3);return this}toJSON(){const t=super.toJSON();t.v0=this.v0.toArray();t.v1=this.v1.toArray();t.v2=this.v2.toArray();t.v3=this.v3.toArray();return t}fromJSON(t){super.fromJSON(t);this.v0.fromArray(t.v0);this.v1.fromArray(t.v1);this.v2.fromArray(t.v2);this.v3.fromArray(t.v3);return this}}class CubicBezierCurve3 extends Curve{constructor(t=new Vector3,e=new Vector3,n=new Vector3,i=new Vector3){super();this.isCubicBezierCurve3=true;this.type=\"CubicBezierCurve3\";this.v0=t;this.v1=e;this.v2=n;this.v3=i}getPoint(t,e=new Vector3){const n=e;const i=this.v0,r=this.v1,s=this.v2,a=this.v3;n.set(CubicBezier(t,i.x,r.x,s.x,a.x),CubicBezier(t,i.y,r.y,s.y,a.y),CubicBezier(t,i.z,r.z,s.z,a.z));return n}copy(t){super.copy(t);this.v0.copy(t.v0);this.v1.copy(t.v1);this.v2.copy(t.v2);this.v3.copy(t.v3);return this}toJSON(){const t=super.toJSON();t.v0=this.v0.toArray();t.v1=this.v1.toArray();t.v2=this.v2.toArray();t.v3=this.v3.toArray();return t}fromJSON(t){super.fromJSON(t);this.v0.fromArray(t.v0);this.v1.fromArray(t.v1);this.v2.fromArray(t.v2);this.v3.fromArray(t.v3);return this}}class LineCurve extends Curve{constructor(t=new Vector2,e=new Vector2){super();this.isLineCurve=true;this.type=\"LineCurve\";this.v1=t;this.v2=e}getPoint(t,e=new Vector2){const n=e;if(t===1)n.copy(this.v2);else{n.copy(this.v2).sub(this.v1);n.multiplyScalar(t).add(this.v1)}return n}getPointAt(t,e){return this.getPoint(t,e)}getTangent(t,e=new Vector2){return e.subVectors(this.v2,this.v1).normalize()}getTangentAt(t,e){return this.getTangent(t,e)}copy(t){super.copy(t);this.v1.copy(t.v1);this.v2.copy(t.v2);return this}toJSON(){const t=super.toJSON();t.v1=this.v1.toArray();t.v2=this.v2.toArray();return t}fromJSON(t){super.fromJSON(t);this.v1.fromArray(t.v1);this.v2.fromArray(t.v2);return this}}class LineCurve3 extends Curve{constructor(t=new Vector3,e=new Vector3){super();this.isLineCurve3=true;this.type=\"LineCurve3\";this.v1=t;this.v2=e}getPoint(t,e=new Vector3){const n=e;if(t===1)n.copy(this.v2);else{n.copy(this.v2).sub(this.v1);n.multiplyScalar(t).add(this.v1)}return n}getPointAt(t,e){return this.getPoint(t,e)}getTangent(t,e=new Vector3){return e.subVectors(this.v2,this.v1).normalize()}getTangentAt(t,e){return this.getTangent(t,e)}copy(t){super.copy(t);this.v1.copy(t.v1);this.v2.copy(t.v2);return this}toJSON(){const t=super.toJSON();t.v1=this.v1.toArray();t.v2=this.v2.toArray();return t}fromJSON(t){super.fromJSON(t);this.v1.fromArray(t.v1);this.v2.fromArray(t.v2);return this}}class QuadraticBezierCurve extends Curve{constructor(t=new Vector2,e=new Vector2,n=new Vector2){super();this.isQuadraticBezierCurve=true;this.type=\"QuadraticBezierCurve\";this.v0=t;this.v1=e;this.v2=n}getPoint(t,e=new Vector2){const n=e;const i=this.v0,r=this.v1,s=this.v2;n.set(QuadraticBezier(t,i.x,r.x,s.x),QuadraticBezier(t,i.y,r.y,s.y));return n}copy(t){super.copy(t);this.v0.copy(t.v0);this.v1.copy(t.v1);this.v2.copy(t.v2);return this}toJSON(){const t=super.toJSON();t.v0=this.v0.toArray();t.v1=this.v1.toArray();t.v2=this.v2.toArray();return t}fromJSON(t){super.fromJSON(t);this.v0.fromArray(t.v0);this.v1.fromArray(t.v1);this.v2.fromArray(t.v2);return this}}class QuadraticBezierCurve3 extends Curve{constructor(t=new Vector3,e=new Vector3,n=new Vector3){super();this.isQuadraticBezierCurve3=true;this.type=\"QuadraticBezierCurve3\";this.v0=t;this.v1=e;this.v2=n}getPoint(t,e=new Vector3){const n=e;const i=this.v0,r=this.v1,s=this.v2;n.set(QuadraticBezier(t,i.x,r.x,s.x),QuadraticBezier(t,i.y,r.y,s.y),QuadraticBezier(t,i.z,r.z,s.z));return n}copy(t){super.copy(t);this.v0.copy(t.v0);this.v1.copy(t.v1);this.v2.copy(t.v2);return this}toJSON(){const t=super.toJSON();t.v0=this.v0.toArray();t.v1=this.v1.toArray();t.v2=this.v2.toArray();return t}fromJSON(t){super.fromJSON(t);this.v0.fromArray(t.v0);this.v1.fromArray(t.v1);this.v2.fromArray(t.v2);return this}}class SplineCurve extends Curve{constructor(t=[]){super();this.isSplineCurve=true;this.type=\"SplineCurve\";this.points=t}getPoint(t,e=new Vector2){const n=e;const i=this.points;const r=(i.length-1)*t;const s=Math.floor(r);const a=r-s;const o=i[s===0?s:s-1];const l=i[s];const c=i[s>i.length-2?i.length-1:s+1];const h=i[s>i.length-3?i.length-1:s+2];n.set(CatmullRom(a,o.x,l.x,c.x,h.x),CatmullRom(a,o.y,l.y,c.y,h.y));return n}copy(t){super.copy(t);this.points=[];for(let e=0,n=t.points.length;e<n;e++){const n=t.points[e];this.points.push(n.clone())}return this}toJSON(){const t=super.toJSON();t.points=[];for(let e=0,n=this.points.length;e<n;e++){const n=this.points[e];t.points.push(n.toArray())}return t}fromJSON(t){super.fromJSON(t);this.points=[];for(let e=0,n=t.points.length;e<n;e++){const n=t.points[e];this.points.push((new Vector2).fromArray(n))}return this}}var Vc=Object.freeze({__proto__:null,ArcCurve:ArcCurve,CatmullRomCurve3:CatmullRomCurve3,CubicBezierCurve:CubicBezierCurve,CubicBezierCurve3:CubicBezierCurve3,EllipseCurve:EllipseCurve,LineCurve:LineCurve,LineCurve3:LineCurve3,QuadraticBezierCurve:QuadraticBezierCurve,QuadraticBezierCurve3:QuadraticBezierCurve3,SplineCurve:SplineCurve});class CurvePath extends Curve{constructor(){super();this.type=\"CurvePath\";this.curves=[];this.autoClose=false}add(t){this.curves.push(t)}closePath(){const t=this.curves[0].getPoint(0);const e=this.curves[this.curves.length-1].getPoint(1);if(!t.equals(e)){const n=t.isVector2===true?\"LineCurve\":\"LineCurve3\";this.curves.push(new Vc[n](e,t))}return this}getPoint(t,e){const n=t*this.getLength();const i=this.getCurveLengths();let r=0;while(r<i.length){if(i[r]>=n){const t=i[r]-n;const s=this.curves[r];const a=s.getLength();const o=a===0?0:1-t/a;return s.getPointAt(o,e)}r++}return null}getLength(){const t=this.getCurveLengths();return t[t.length-1]}updateArcLengths(){this.needsUpdate=true;this.cacheLengths=null;this.getCurveLengths()}getCurveLengths(){if(this.cacheLengths&&this.cacheLengths.length===this.curves.length)return this.cacheLengths;const t=[];let e=0;for(let n=0,i=this.curves.length;n<i;n++){e+=this.curves[n].getLength();t.push(e)}this.cacheLengths=t;return t}getSpacedPoints(t=40){const e=[];for(let n=0;n<=t;n++)e.push(this.getPoint(n/t));this.autoClose&&e.push(e[0]);return e}getPoints(t=12){const e=[];let n;for(let i=0,r=this.curves;i<r.length;i++){const s=r[i];const a=s.isEllipseCurve?t*2:s.isLineCurve||s.isLineCurve3?1:s.isSplineCurve?t*s.points.length:t;const o=s.getPoints(a);for(let t=0;t<o.length;t++){const i=o[t];if(!n||!n.equals(i)){e.push(i);n=i}}}this.autoClose&&e.length>1&&!e[e.length-1].equals(e[0])&&e.push(e[0]);return e}copy(t){super.copy(t);this.curves=[];for(let e=0,n=t.curves.length;e<n;e++){const n=t.curves[e];this.curves.push(n.clone())}this.autoClose=t.autoClose;return this}toJSON(){const t=super.toJSON();t.autoClose=this.autoClose;t.curves=[];for(let e=0,n=this.curves.length;e<n;e++){const n=this.curves[e];t.curves.push(n.toJSON())}return t}fromJSON(t){super.fromJSON(t);this.autoClose=t.autoClose;this.curves=[];for(let e=0,n=t.curves.length;e<n;e++){const n=t.curves[e];this.curves.push((new Vc[n.type]).fromJSON(n))}return this}}class Path extends CurvePath{constructor(t){super();this.type=\"Path\";this.currentPoint=new Vector2;t&&this.setFromPoints(t)}setFromPoints(t){this.moveTo(t[0].x,t[0].y);for(let e=1,n=t.length;e<n;e++)this.lineTo(t[e].x,t[e].y);return this}moveTo(t,e){this.currentPoint.set(t,e);return this}lineTo(t,e){const n=new LineCurve(this.currentPoint.clone(),new Vector2(t,e));this.curves.push(n);this.currentPoint.set(t,e);return this}quadraticCurveTo(t,e,n,i){const r=new QuadraticBezierCurve(this.currentPoint.clone(),new Vector2(t,e),new Vector2(n,i));this.curves.push(r);this.currentPoint.set(n,i);return this}bezierCurveTo(t,e,n,i,r,s){const a=new CubicBezierCurve(this.currentPoint.clone(),new Vector2(t,e),new Vector2(n,i),new Vector2(r,s));this.curves.push(a);this.currentPoint.set(r,s);return this}splineThru(t){const e=[this.currentPoint.clone()].concat(t);const n=new SplineCurve(e);this.curves.push(n);this.currentPoint.copy(t[t.length-1]);return this}arc(t,e,n,i,r,s){const a=this.currentPoint.x;const o=this.currentPoint.y;this.absarc(t+a,e+o,n,i,r,s);return this}absarc(t,e,n,i,r,s){this.absellipse(t,e,n,n,i,r,s);return this}ellipse(t,e,n,i,r,s,a,o){const l=this.currentPoint.x;const c=this.currentPoint.y;this.absellipse(t+l,e+c,n,i,r,s,a,o);return this}absellipse(t,e,n,i,r,s,a,o){const l=new EllipseCurve(t,e,n,i,r,s,a,o);if(this.curves.length>0){const t=l.getPoint(0);t.equals(this.currentPoint)||this.lineTo(t.x,t.y)}this.curves.push(l);const c=l.getPoint(1);this.currentPoint.copy(c);return this}copy(t){super.copy(t);this.currentPoint.copy(t.currentPoint);return this}toJSON(){const t=super.toJSON();t.currentPoint=this.currentPoint.toArray();return t}fromJSON(t){super.fromJSON(t);this.currentPoint.fromArray(t.currentPoint);return this}}class LatheGeometry extends BufferGeometry{constructor(t=[new Vector2(0,-.5),new Vector2(.5,0),new Vector2(0,.5)],e=12,n=0,i=Math.PI*2){super();this.type=\"LatheGeometry\";this.parameters={points:t,segments:e,phiStart:n,phiLength:i};e=Math.floor(e);i=clamp(i,0,Math.PI*2);const r=[];const s=[];const a=[];const o=[];const l=[];const c=1/e;const h=new Vector3;const u=new Vector2;const d=new Vector3;const p=new Vector3;const f=new Vector3;let m=0;let g=0;for(let e=0;e<=t.length-1;e++)switch(e){case 0:m=t[e+1].x-t[e].x;g=t[e+1].y-t[e].y;d.x=g*1;d.y=-m;d.z=g*0;f.copy(d);d.normalize();o.push(d.x,d.y,d.z);break;case t.length-1:o.push(f.x,f.y,f.z);break;default:m=t[e+1].x-t[e].x;g=t[e+1].y-t[e].y;d.x=g*1;d.y=-m;d.z=g*0;p.copy(d);d.x+=f.x;d.y+=f.y;d.z+=f.z;d.normalize();o.push(d.x,d.y,d.z);f.copy(p)}for(let r=0;r<=e;r++){const d=n+r*c*i;const p=Math.sin(d);const f=Math.cos(d);for(let n=0;n<=t.length-1;n++){h.x=t[n].x*p;h.y=t[n].y;h.z=t[n].x*f;s.push(h.x,h.y,h.z);u.x=r/e;u.y=n/(t.length-1);a.push(u.x,u.y);const i=o[3*n+0]*p;const c=o[3*n+1];const d=o[3*n+0]*f;l.push(i,c,d)}}for(let n=0;n<e;n++)for(let e=0;e<t.length-1;e++){const i=e+n*t.length;const s=i;const a=i+t.length;const o=i+t.length+1;const l=i+1;r.push(s,a,l);r.push(o,l,a)}this.setIndex(r);this.setAttribute(\"position\",new Float32BufferAttribute(s,3));this.setAttribute(\"uv\",new Float32BufferAttribute(a,2));this.setAttribute(\"normal\",new Float32BufferAttribute(l,3))}copy(t){super.copy(t);this.parameters=Object.assign({},t.parameters);return this}static fromJSON(t){return new LatheGeometry(t.points,t.segments,t.phiStart,t.phiLength)}}class CapsuleGeometry extends LatheGeometry{constructor(t=1,e=1,n=4,i=8){const r=new Path;r.absarc(0,-e/2,t,Math.PI*1.5,0);r.absarc(0,e/2,t,0,Math.PI*.5);super(r.getPoints(n),i);this.type=\"CapsuleGeometry\";this.parameters={radius:t,length:e,capSegments:n,radialSegments:i}}static fromJSON(t){return new CapsuleGeometry(t.radius,t.length,t.capSegments,t.radialSegments)}}class CircleGeometry extends BufferGeometry{constructor(t=1,e=32,n=0,i=Math.PI*2){super();this.type=\"CircleGeometry\";this.parameters={radius:t,segments:e,thetaStart:n,thetaLength:i};e=Math.max(3,e);const r=[];const s=[];const a=[];const o=[];const l=new Vector3;const c=new Vector2;s.push(0,0,0);a.push(0,0,1);o.push(.5,.5);for(let r=0,h=3;r<=e;r++,h+=3){const u=n+r/e*i;l.x=t*Math.cos(u);l.y=t*Math.sin(u);s.push(l.x,l.y,l.z);a.push(0,0,1);c.x=(s[h]/t+1)/2;c.y=(s[h+1]/t+1)/2;o.push(c.x,c.y)}for(let t=1;t<=e;t++)r.push(t,t+1,0);this.setIndex(r);this.setAttribute(\"position\",new Float32BufferAttribute(s,3));this.setAttribute(\"normal\",new Float32BufferAttribute(a,3));this.setAttribute(\"uv\",new Float32BufferAttribute(o,2))}copy(t){super.copy(t);this.parameters=Object.assign({},t.parameters);return this}static fromJSON(t){return new CircleGeometry(t.radius,t.segments,t.thetaStart,t.thetaLength)}}class CylinderGeometry extends BufferGeometry{constructor(t=1,e=1,n=1,i=32,r=1,s=false,a=0,o=Math.PI*2){super();this.type=\"CylinderGeometry\";this.parameters={radiusTop:t,radiusBottom:e,height:n,radialSegments:i,heightSegments:r,openEnded:s,thetaStart:a,thetaLength:o};const l=this;i=Math.floor(i);r=Math.floor(r);const c=[];const h=[];const u=[];const d=[];let p=0;const f=[];const m=n/2;let g=0;generateTorso();if(s===false){t>0&&generateCap(true);e>0&&generateCap(false)}this.setIndex(c);this.setAttribute(\"position\",new Float32BufferAttribute(h,3));this.setAttribute(\"normal\",new Float32BufferAttribute(u,3));this.setAttribute(\"uv\",new Float32BufferAttribute(d,2));function generateTorso(){const s=new Vector3;const _=new Vector3;let x=0;const y=(e-t)/n;for(let l=0;l<=r;l++){const c=[];const g=l/r;const x=g*(e-t)+t;for(let t=0;t<=i;t++){const e=t/i;const r=e*o+a;const l=Math.sin(r);const f=Math.cos(r);_.x=x*l;_.y=-g*n+m;_.z=x*f;h.push(_.x,_.y,_.z);s.set(l,y,f).normalize();u.push(s.x,s.y,s.z);d.push(e,1-g);c.push(p++)}f.push(c)}for(let t=0;t<i;t++)for(let e=0;e<r;e++){const n=f[e][t];const i=f[e+1][t];const r=f[e+1][t+1];const s=f[e][t+1];c.push(n,i,s);c.push(i,r,s);x+=6}l.addGroup(g,x,0);g+=x}function generateCap(n){const r=p;const s=new Vector2;const f=new Vector3;let _=0;const x=n===true?t:e;const y=n===true?1:-1;for(let t=1;t<=i;t++){h.push(0,m*y,0);u.push(0,y,0);d.push(.5,.5);p++}const M=p;for(let t=0;t<=i;t++){const e=t/i;const n=e*o+a;const r=Math.cos(n);const l=Math.sin(n);f.x=x*l;f.y=m*y;f.z=x*r;h.push(f.x,f.y,f.z);u.push(0,y,0);s.x=r*.5+.5;s.y=l*.5*y+.5;d.push(s.x,s.y);p++}for(let t=0;t<i;t++){const e=r+t;const i=M+t;n===true?c.push(i,i+1,e):c.push(i+1,i,e);_+=3}l.addGroup(g,_,n===true?1:2);g+=_}}copy(t){super.copy(t);this.parameters=Object.assign({},t.parameters);return this}static fromJSON(t){return new CylinderGeometry(t.radiusTop,t.radiusBottom,t.height,t.radialSegments,t.heightSegments,t.openEnded,t.thetaStart,t.thetaLength)}}class ConeGeometry extends CylinderGeometry{constructor(t=1,e=1,n=32,i=1,r=false,s=0,a=Math.PI*2){super(0,t,e,n,i,r,s,a);this.type=\"ConeGeometry\";this.parameters={radius:t,height:e,radialSegments:n,heightSegments:i,openEnded:r,thetaStart:s,thetaLength:a}}static fromJSON(t){return new ConeGeometry(t.radius,t.height,t.radialSegments,t.heightSegments,t.openEnded,t.thetaStart,t.thetaLength)}}class PolyhedronGeometry extends BufferGeometry{constructor(t=[],e=[],n=1,i=0){super();this.type=\"PolyhedronGeometry\";this.parameters={vertices:t,indices:e,radius:n,detail:i};const r=[];const s=[];subdivide(i);applyRadius(n);generateUVs();this.setAttribute(\"position\",new Float32BufferAttribute(r,3));this.setAttribute(\"normal\",new Float32BufferAttribute(r.slice(),3));this.setAttribute(\"uv\",new Float32BufferAttribute(s,2));i===0?this.computeVertexNormals():this.normalizeNormals();function subdivide(t){const n=new Vector3;const i=new Vector3;const r=new Vector3;for(let s=0;s<e.length;s+=3){getVertexByIndex(e[s+0],n);getVertexByIndex(e[s+1],i);getVertexByIndex(e[s+2],r);subdivideFace(n,i,r,t)}}function subdivideFace(t,e,n,i){const r=i+1;const s=[];for(let i=0;i<=r;i++){s[i]=[];const a=t.clone().lerp(n,i/r);const o=e.clone().lerp(n,i/r);const l=r-i;for(let t=0;t<=l;t++)s[i][t]=t===0&&i===r?a:a.clone().lerp(o,t/l)}for(let t=0;t<r;t++)for(let e=0;e<2*(r-t)-1;e++){const n=Math.floor(e/2);if(e%2===0){pushVertex(s[t][n+1]);pushVertex(s[t+1][n]);pushVertex(s[t][n])}else{pushVertex(s[t][n+1]);pushVertex(s[t+1][n+1]);pushVertex(s[t+1][n])}}}function applyRadius(t){const e=new Vector3;for(let n=0;n<r.length;n+=3){e.x=r[n+0];e.y=r[n+1];e.z=r[n+2];e.normalize().multiplyScalar(t);r[n+0]=e.x;r[n+1]=e.y;r[n+2]=e.z}}function generateUVs(){const t=new Vector3;for(let e=0;e<r.length;e+=3){t.x=r[e+0];t.y=r[e+1];t.z=r[e+2];const n=azimuth(t)/2/Math.PI+.5;const i=inclination(t)/Math.PI+.5;s.push(n,1-i)}correctUVs();correctSeam()}function correctSeam(){for(let t=0;t<s.length;t+=6){const e=s[t+0];const n=s[t+2];const i=s[t+4];const r=Math.max(e,n,i);const a=Math.min(e,n,i);if(r>.9&&a<.1){e<.2&&(s[t+0]+=1);n<.2&&(s[t+2]+=1);i<.2&&(s[t+4]+=1)}}}function pushVertex(t){r.push(t.x,t.y,t.z)}function getVertexByIndex(e,n){const i=e*3;n.x=t[i+0];n.y=t[i+1];n.z=t[i+2]}function correctUVs(){const t=new Vector3;const e=new Vector3;const n=new Vector3;const i=new Vector3;const a=new Vector2;const o=new Vector2;const l=new Vector2;for(let c=0,h=0;c<r.length;c+=9,h+=6){t.set(r[c+0],r[c+1],r[c+2]);e.set(r[c+3],r[c+4],r[c+5]);n.set(r[c+6],r[c+7],r[c+8]);a.set(s[h+0],s[h+1]);o.set(s[h+2],s[h+3]);l.set(s[h+4],s[h+5]);i.copy(t).add(e).add(n).divideScalar(3);const u=azimuth(i);correctUV(a,h+0,t,u);correctUV(o,h+2,e,u);correctUV(l,h+4,n,u)}}function correctUV(t,e,n,i){i<0&&t.x===1&&(s[e]=t.x-1);n.x===0&&n.z===0&&(s[e]=i/2/Math.PI+.5)}function azimuth(t){return Math.atan2(t.z,-t.x)}function inclination(t){return Math.atan2(-t.y,Math.sqrt(t.x*t.x+t.z*t.z))}}copy(t){super.copy(t);this.parameters=Object.assign({},t.parameters);return this}static fromJSON(t){return new PolyhedronGeometry(t.vertices,t.indices,t.radius,t.details)}}class DodecahedronGeometry extends PolyhedronGeometry{constructor(t=1,e=0){const n=(1+Math.sqrt(5))/2;const i=1/n;const r=[-1,-1,-1,-1,-1,1,-1,1,-1,-1,1,1,1,-1,-1,1,-1,1,1,1,-1,1,1,1,0,-i,-n,0,-i,n,0,i,-n,0,i,n,-i,-n,0,-i,n,0,i,-n,0,i,n,0,-n,0,-i,n,0,-i,-n,0,i,n,0,i];const s=[3,11,7,3,7,15,3,15,13,7,19,17,7,17,6,7,6,15,17,4,8,17,8,10,17,10,6,8,0,16,8,16,2,8,2,10,0,12,1,0,1,18,0,18,16,6,10,2,6,2,13,6,13,15,2,16,18,2,18,3,2,3,13,18,1,9,18,9,11,18,11,3,4,14,12,4,12,0,4,0,8,11,9,5,11,5,19,11,19,7,19,5,14,19,14,4,19,4,17,1,12,14,1,14,5,1,5,9];super(r,s,t,e);this.type=\"DodecahedronGeometry\";this.parameters={radius:t,detail:e}}static fromJSON(t){return new DodecahedronGeometry(t.radius,t.detail)}}const Fc=new Vector3;const zc=new Vector3;const Gc=new Vector3;const kc=new Triangle;class EdgesGeometry extends BufferGeometry{constructor(t=null,e=1){super();this.type=\"EdgesGeometry\";this.parameters={geometry:t,thresholdAngle:e};if(t!==null){const n=4;const i=Math.pow(10,n);const r=Math.cos(Xn*e);const s=t.getIndex();const a=t.getAttribute(\"position\");const o=s?s.count:a.count;const l=[0,0,0];const c=[\"a\",\"b\",\"c\"];const h=new Array(3);const u={};const d=[];for(let t=0;t<o;t+=3){if(s){l[0]=s.getX(t);l[1]=s.getX(t+1);l[2]=s.getX(t+2)}else{l[0]=t;l[1]=t+1;l[2]=t+2}const{a:e,b:n,c:o}=kc;e.fromBufferAttribute(a,l[0]);n.fromBufferAttribute(a,l[1]);o.fromBufferAttribute(a,l[2]);kc.getNormal(Gc);h[0]=`${Math.round(e.x*i)},${Math.round(e.y*i)},${Math.round(e.z*i)}`;h[1]=`${Math.round(n.x*i)},${Math.round(n.y*i)},${Math.round(n.z*i)}`;h[2]=`${Math.round(o.x*i)},${Math.round(o.y*i)},${Math.round(o.z*i)}`;if(h[0]!==h[1]&&h[1]!==h[2]&&h[2]!==h[0])for(let t=0;t<3;t++){const e=(t+1)%3;const n=h[t];const i=h[e];const s=kc[c[t]];const a=kc[c[e]];const o=`${n}_${i}`;const p=`${i}_${n}`;if(p in u&&u[p]){if(Gc.dot(u[p].normal)<=r){d.push(s.x,s.y,s.z);d.push(a.x,a.y,a.z)}u[p]=null}else o in u||(u[o]={index0:l[t],index1:l[e],normal:Gc.clone()})}}for(const t in u)if(u[t]){const{index0:e,index1:n}=u[t];Fc.fromBufferAttribute(a,e);zc.fromBufferAttribute(a,n);d.push(Fc.x,Fc.y,Fc.z);d.push(zc.x,zc.y,zc.z)}this.setAttribute(\"position\",new Float32BufferAttribute(d,3))}}copy(t){super.copy(t);this.parameters=Object.assign({},t.parameters);return this}}class Shape extends Path{constructor(t){super(t);this.uuid=generateUUID();this.type=\"Shape\";this.holes=[]}getPointsHoles(t){const e=[];for(let n=0,i=this.holes.length;n<i;n++)e[n]=this.holes[n].getPoints(t);return e}extractPoints(t){return{shape:this.getPoints(t),holes:this.getPointsHoles(t)}}copy(t){super.copy(t);this.holes=[];for(let e=0,n=t.holes.length;e<n;e++){const n=t.holes[e];this.holes.push(n.clone())}return this}toJSON(){const t=super.toJSON();t.uuid=this.uuid;t.holes=[];for(let e=0,n=this.holes.length;e<n;e++){const n=this.holes[e];t.holes.push(n.toJSON())}return t}fromJSON(t){super.fromJSON(t);this.uuid=t.uuid;this.holes=[];for(let e=0,n=t.holes.length;e<n;e++){const n=t.holes[e];this.holes.push((new Path).fromJSON(n))}return this}}const Hc={triangulate:function(t,e,n=2){const i=e&&e.length;const r=i?e[0]*n:t.length;let s=linkedList(t,0,r,n,true);const a=[];if(!s||s.next===s.prev)return a;let o,l,c,h,u,d,p;i&&(s=eliminateHoles(t,e,s,n));if(t.length>80*n){o=c=t[0];l=h=t[1];for(let e=n;e<r;e+=n){u=t[e];d=t[e+1];u<o&&(o=u);d<l&&(l=d);u>c&&(c=u);d>h&&(h=d)}p=Math.max(c-o,h-l);p=p!==0?32767/p:0}earcutLinked(s,a,n,o,l,p,0);return a}};function linkedList(t,e,n,i,r){let s,a;if(r===signedArea(t,e,n,i)>0)for(s=e;s<n;s+=i)a=insertNode(s,t[s],t[s+1],a);else for(s=n-i;s>=e;s-=i)a=insertNode(s,t[s],t[s+1],a);if(a&&equals(a,a.next)){removeNode(a);a=a.next}return a}function filterPoints(t,e){if(!t)return t;e||(e=t);let n,i=t;do{n=false;if(i.steiner||!equals(i,i.next)&&area(i.prev,i,i.next)!==0)i=i.next;else{removeNode(i);i=e=i.prev;if(i===i.next)break;n=true}}while(n||i!==e);return e}function earcutLinked(t,e,n,i,r,s,a){if(!t)return;!a&&s&&indexCurve(t,i,r,s);let o,l,c=t;while(t.prev!==t.next){o=t.prev;l=t.next;if(s?isEarHashed(t,i,r,s):isEar(t)){e.push(o.i/n|0);e.push(t.i/n|0);e.push(l.i/n|0);removeNode(t);t=l.next;c=l.next}else{t=l;if(t===c){if(a)if(a===1){t=cureLocalIntersections(filterPoints(t),e,n);earcutLinked(t,e,n,i,r,s,2)}else a===2&&splitEarcut(t,e,n,i,r,s);else earcutLinked(filterPoints(t),e,n,i,r,s,1);break}}}}function isEar(t){const e=t.prev,n=t,i=t.next;if(area(e,n,i)>=0)return false;const r=e.x,s=n.x,a=i.x,o=e.y,l=n.y,c=i.y;const h=r<s?r<a?r:a:s<a?s:a,u=o<l?o<c?o:c:l<c?l:c,d=r>s?r>a?r:a:s>a?s:a,p=o>l?o>c?o:c:l>c?l:c;let f=i.next;while(f!==e){if(f.x>=h&&f.x<=d&&f.y>=u&&f.y<=p&&pointInTriangle(r,o,s,l,a,c,f.x,f.y)&&area(f.prev,f,f.next)>=0)return false;f=f.next}return true}function isEarHashed(t,e,n,i){const r=t.prev,s=t,a=t.next;if(area(r,s,a)>=0)return false;const o=r.x,l=s.x,c=a.x,h=r.y,u=s.y,d=a.y;const p=o<l?o<c?o:c:l<c?l:c,f=h<u?h<d?h:d:u<d?u:d,m=o>l?o>c?o:c:l>c?l:c,g=h>u?h>d?h:d:u>d?u:d;const _=zOrder(p,f,e,n,i),x=zOrder(m,g,e,n,i);let y=t.prevZ,M=t.nextZ;while(y&&y.z>=_&&M&&M.z<=x){if(y.x>=p&&y.x<=m&&y.y>=f&&y.y<=g&&y!==r&&y!==a&&pointInTriangle(o,h,l,u,c,d,y.x,y.y)&&area(y.prev,y,y.next)>=0)return false;y=y.prevZ;if(M.x>=p&&M.x<=m&&M.y>=f&&M.y<=g&&M!==r&&M!==a&&pointInTriangle(o,h,l,u,c,d,M.x,M.y)&&area(M.prev,M,M.next)>=0)return false;M=M.nextZ}while(y&&y.z>=_){if(y.x>=p&&y.x<=m&&y.y>=f&&y.y<=g&&y!==r&&y!==a&&pointInTriangle(o,h,l,u,c,d,y.x,y.y)&&area(y.prev,y,y.next)>=0)return false;y=y.prevZ}while(M&&M.z<=x){if(M.x>=p&&M.x<=m&&M.y>=f&&M.y<=g&&M!==r&&M!==a&&pointInTriangle(o,h,l,u,c,d,M.x,M.y)&&area(M.prev,M,M.next)>=0)return false;M=M.nextZ}return true}function cureLocalIntersections(t,e,n){let i=t;do{const r=i.prev,s=i.next.next;if(!equals(r,s)&&intersects(r,i,i.next,s)&&locallyInside(r,s)&&locallyInside(s,r)){e.push(r.i/n|0);e.push(i.i/n|0);e.push(s.i/n|0);removeNode(i);removeNode(i.next);i=t=s}i=i.next}while(i!==t);return filterPoints(i)}function splitEarcut(t,e,n,i,r,s){let a=t;do{let t=a.next.next;while(t!==a.prev){if(a.i!==t.i&&isValidDiagonal(a,t)){let o=splitPolygon(a,t);a=filterPoints(a,a.next);o=filterPoints(o,o.next);earcutLinked(a,e,n,i,r,s,0);earcutLinked(o,e,n,i,r,s,0);return}t=t.next}a=a.next}while(a!==t)}function eliminateHoles(t,e,n,i){const r=[];let s,a,o,l,c;for(s=0,a=e.length;s<a;s++){o=e[s]*i;l=s<a-1?e[s+1]*i:t.length;c=linkedList(t,o,l,i,false);c===c.next&&(c.steiner=true);r.push(getLeftmost(c))}r.sort(compareX);for(s=0;s<r.length;s++)n=eliminateHole(r[s],n);return n}function compareX(t,e){return t.x-e.x}function eliminateHole(t,e){const n=findHoleBridge(t,e);if(!n)return e;const i=splitPolygon(n,t);filterPoints(i,i.next);return filterPoints(n,n.next)}function findHoleBridge(t,e){let n,i=e,r=-Infinity;const s=t.x,a=t.y;do{if(a<=i.y&&a>=i.next.y&&i.next.y!==i.y){const t=i.x+(a-i.y)*(i.next.x-i.x)/(i.next.y-i.y);if(t<=s&&t>r){r=t;n=i.x<i.next.x?i:i.next;if(t===s)return n}}i=i.next}while(i!==e);if(!n)return null;const o=n,l=n.x,c=n.y;let h,u=Infinity;i=n;do{if(s>=i.x&&i.x>=l&&s!==i.x&&pointInTriangle(a<c?s:r,a,l,c,a<c?r:s,a,i.x,i.y)){h=Math.abs(a-i.y)/(s-i.x);if(locallyInside(i,t)&&(h<u||h===u&&(i.x>n.x||i.x===n.x&&sectorContainsSector(n,i)))){n=i;u=h}}i=i.next}while(i!==o);return n}function sectorContainsSector(t,e){return area(t.prev,t,e.prev)<0&&area(e.next,t,t.next)<0}function indexCurve(t,e,n,i){let r=t;do{r.z===0&&(r.z=zOrder(r.x,r.y,e,n,i));r.prevZ=r.prev;r.nextZ=r.next;r=r.next}while(r!==t);r.prevZ.nextZ=null;r.prevZ=null;sortLinked(r)}function sortLinked(t){let e,n,i,r,s,a,o,l,c=1;do{n=t;t=null;s=null;a=0;while(n){a++;i=n;o=0;for(e=0;e<c;e++){o++;i=i.nextZ;if(!i)break}l=c;while(o>0||l>0&&i){if(o!==0&&(l===0||!i||n.z<=i.z)){r=n;n=n.nextZ;o--}else{r=i;i=i.nextZ;l--}s?s.nextZ=r:t=r;r.prevZ=s;s=r}n=i}s.nextZ=null;c*=2}while(a>1);return t}function zOrder(t,e,n,i,r){t=(t-n)*r|0;e=(e-i)*r|0;t=16711935&(t|t<<8);t=252645135&(t|t<<4);t=858993459&(t|t<<2);t=1431655765&(t|t<<1);e=16711935&(e|e<<8);e=252645135&(e|e<<4);e=858993459&(e|e<<2);e=1431655765&(e|e<<1);return t|e<<1}function getLeftmost(t){let e=t,n=t;do{(e.x<n.x||e.x===n.x&&e.y<n.y)&&(n=e);e=e.next}while(e!==t);return n}function pointInTriangle(t,e,n,i,r,s,a,o){return(r-a)*(e-o)>=(t-a)*(s-o)&&(t-a)*(i-o)>=(n-a)*(e-o)&&(n-a)*(s-o)>=(r-a)*(i-o)}function isValidDiagonal(t,e){return t.next.i!==e.i&&t.prev.i!==e.i&&!intersectsPolygon(t,e)&&(locallyInside(t,e)&&locallyInside(e,t)&&middleInside(t,e)&&(area(t.prev,t,e.prev)||area(t,e.prev,e))||equals(t,e)&&area(t.prev,t,t.next)>0&&area(e.prev,e,e.next)>0)}function area(t,e,n){return(e.y-t.y)*(n.x-e.x)-(e.x-t.x)*(n.y-e.y)}function equals(t,e){return t.x===e.x&&t.y===e.y}function intersects(t,e,n,i){const r=sign(area(t,e,n));const s=sign(area(t,e,i));const a=sign(area(n,i,t));const o=sign(area(n,i,e));return r!==s&&a!==o||(!(r!==0||!onSegment(t,n,e))||(!(s!==0||!onSegment(t,i,e))||(!(a!==0||!onSegment(n,t,i))||!(o!==0||!onSegment(n,e,i)))))}function onSegment(t,e,n){return e.x<=Math.max(t.x,n.x)&&e.x>=Math.min(t.x,n.x)&&e.y<=Math.max(t.y,n.y)&&e.y>=Math.min(t.y,n.y)}function sign(t){return t>0?1:t<0?-1:0}function intersectsPolygon(t,e){let n=t;do{if(n.i!==t.i&&n.next.i!==t.i&&n.i!==e.i&&n.next.i!==e.i&&intersects(n,n.next,t,e))return true;n=n.next}while(n!==t);return false}function locallyInside(t,e){return area(t.prev,t,t.next)<0?area(t,e,t.next)>=0&&area(t,t.prev,e)>=0:area(t,e,t.prev)<0||area(t,t.next,e)<0}function middleInside(t,e){let n=t,i=false;const r=(t.x+e.x)/2,s=(t.y+e.y)/2;do{n.y>s!==n.next.y>s&&n.next.y!==n.y&&r<(n.next.x-n.x)*(s-n.y)/(n.next.y-n.y)+n.x&&(i=!i);n=n.next}while(n!==t);return i}function splitPolygon(t,e){const n=new Node(t.i,t.x,t.y),i=new Node(e.i,e.x,e.y),r=t.next,s=e.prev;t.next=e;e.prev=t;n.next=r;r.prev=n;i.next=n;n.prev=i;s.next=i;i.prev=s;return i}function insertNode(t,e,n,i){const r=new Node(t,e,n);if(i){r.next=i.next;r.prev=i;i.next.prev=r;i.next=r}else{r.prev=r;r.next=r}return r}function removeNode(t){t.next.prev=t.prev;t.prev.next=t.next;t.prevZ&&(t.prevZ.nextZ=t.nextZ);t.nextZ&&(t.nextZ.prevZ=t.prevZ)}function Node(t,e,n){this.i=t;this.x=e;this.y=n;this.prev=null;this.next=null;this.z=0;this.prevZ=null;this.nextZ=null;this.steiner=false}function signedArea(t,e,n,i){let r=0;for(let s=e,a=n-i;s<n;s+=i){r+=(t[a]-t[s])*(t[s+1]+t[a+1]);a=s}return r}class ShapeUtils{static area(t){const e=t.length;let n=0;for(let i=e-1,r=0;r<e;i=r++)n+=t[i].x*t[r].y-t[r].x*t[i].y;return n*.5}static isClockWise(t){return ShapeUtils.area(t)<0}static triangulateShape(t,e){const n=[];const i=[];const r=[];removeDupEndPts(t);addContour(n,t);let s=t.length;e.forEach(removeDupEndPts);for(let t=0;t<e.length;t++){i.push(s);s+=e[t].length;addContour(n,e[t])}const a=Hc.triangulate(n,i);for(let t=0;t<a.length;t+=3)r.push(a.slice(t,t+3));return r}}function removeDupEndPts(t){const e=t.length;e>2&&t[e-1].equals(t[0])&&t.pop()}function addContour(t,e){for(let n=0;n<e.length;n++){t.push(e[n].x);t.push(e[n].y)}}class ExtrudeGeometry extends BufferGeometry{constructor(t=new Shape([new Vector2(.5,.5),new Vector2(-.5,.5),new Vector2(-.5,-.5),new Vector2(.5,-.5)]),e={}){super();this.type=\"ExtrudeGeometry\";this.parameters={shapes:t,options:e};t=Array.isArray(t)?t:[t];const n=this;const i=[];const r=[];for(let e=0,n=t.length;e<n;e++){const n=t[e];addShape(n)}this.setAttribute(\"position\",new Float32BufferAttribute(i,3));this.setAttribute(\"uv\",new Float32BufferAttribute(r,2));this.computeVertexNormals();function addShape(t){const s=[];const a=e.curveSegments!==void 0?e.curveSegments:12;const o=e.steps!==void 0?e.steps:1;const l=e.depth!==void 0?e.depth:1;let c=e.bevelEnabled===void 0||e.bevelEnabled;let h=e.bevelThickness!==void 0?e.bevelThickness:.2;let u=e.bevelSize!==void 0?e.bevelSize:h-.1;let d=e.bevelOffset!==void 0?e.bevelOffset:0;let p=e.bevelSegments!==void 0?e.bevelSegments:3;const f=e.extrudePath;const m=e.UVGenerator!==void 0?e.UVGenerator:Wc;let g,_=false;let x,y,M,S;if(f){g=f.getSpacedPoints(o);_=true;c=false;x=f.computeFrenetFrames(o,false);y=new Vector3;M=new Vector3;S=new Vector3}if(!c){p=0;h=0;u=0;d=0}const b=t.extractPoints(a);let T=b.shape;const w=b.holes;const E=!ShapeUtils.isClockWise(T);if(E){T=T.reverse();for(let t=0,e=w.length;t<e;t++){const e=w[t];ShapeUtils.isClockWise(e)&&(w[t]=e.reverse())}}const A=ShapeUtils.triangulateShape(T,w);const C=T;for(let t=0,e=w.length;t<e;t++){const e=w[t];T=T.concat(e)}function scalePt2(t,e,n){e||console.error(\"THREE.ExtrudeGeometry: vec does not exist\");return t.clone().addScaledVector(e,n)}const R=T.length,P=A.length;function getBevelVec(t,e,n){let i,r,s;const a=t.x-e.x,o=t.y-e.y;const l=n.x-t.x,c=n.y-t.y;const h=a*a+o*o;const u=a*c-o*l;if(Math.abs(u)>Number.EPSILON){const u=Math.sqrt(h);const d=Math.sqrt(l*l+c*c);const p=e.x-o/u;const f=e.y+a/u;const m=n.x-c/d;const g=n.y+l/d;const _=((m-p)*c-(g-f)*l)/(a*c-o*l);i=p+a*_-t.x;r=f+o*_-t.y;const x=i*i+r*r;if(x<=2)return new Vector2(i,r);s=Math.sqrt(x/2)}else{let t=false;a>Number.EPSILON?l>Number.EPSILON&&(t=true):a<-Number.EPSILON?l<-Number.EPSILON&&(t=true):Math.sign(o)===Math.sign(c)&&(t=true);if(t){i=-o;r=a;s=Math.sqrt(h)}else{i=a;r=o;s=Math.sqrt(h/2)}}return new Vector2(i/s,r/s)}const L=[];for(let t=0,e=C.length,n=e-1,i=t+1;t<e;t++,n++,i++){n===e&&(n=0);i===e&&(i=0);L[t]=getBevelVec(C[t],C[n],C[i])}const I=[];let U,D=L.concat();for(let t=0,e=w.length;t<e;t++){const e=w[t];U=[];for(let t=0,n=e.length,i=n-1,r=t+1;t<n;t++,i++,r++){i===n&&(i=0);r===n&&(r=0);U[t]=getBevelVec(e[t],e[i],e[r])}I.push(U);D=D.concat(U)}for(let t=0;t<p;t++){const e=t/p;const n=h*Math.cos(e*Math.PI/2);const i=u*Math.sin(e*Math.PI/2)+d;for(let t=0,e=C.length;t<e;t++){const e=scalePt2(C[t],L[t],i);v(e.x,e.y,-n)}for(let t=0,e=w.length;t<e;t++){const e=w[t];U=I[t];for(let t=0,r=e.length;t<r;t++){const r=scalePt2(e[t],U[t],i);v(r.x,r.y,-n)}}}const N=u+d;for(let t=0;t<R;t++){const e=c?scalePt2(T[t],D[t],N):T[t];if(_){M.copy(x.normals[0]).multiplyScalar(e.x);y.copy(x.binormals[0]).multiplyScalar(e.y);S.copy(g[0]).add(M).add(y);v(S.x,S.y,S.z)}else v(e.x,e.y,0)}for(let t=1;t<=o;t++)for(let e=0;e<R;e++){const n=c?scalePt2(T[e],D[e],N):T[e];if(_){M.copy(x.normals[t]).multiplyScalar(n.x);y.copy(x.binormals[t]).multiplyScalar(n.y);S.copy(g[t]).add(M).add(y);v(S.x,S.y,S.z)}else v(n.x,n.y,l/o*t)}for(let t=p-1;t>=0;t--){const e=t/p;const n=h*Math.cos(e*Math.PI/2);const i=u*Math.sin(e*Math.PI/2)+d;for(let t=0,e=C.length;t<e;t++){const e=scalePt2(C[t],L[t],i);v(e.x,e.y,l+n)}for(let t=0,e=w.length;t<e;t++){const e=w[t];U=I[t];for(let t=0,r=e.length;t<r;t++){const r=scalePt2(e[t],U[t],i);_?v(r.x,r.y+g[o-1].y,g[o-1].x+n):v(r.x,r.y,l+n)}}}buildLidFaces();buildSideFaces();function buildLidFaces(){const t=i.length/3;if(c){let t=0;let e=R*t;for(let t=0;t<P;t++){const n=A[t];f3(n[2]+e,n[1]+e,n[0]+e)}t=o+p*2;e=R*t;for(let t=0;t<P;t++){const n=A[t];f3(n[0]+e,n[1]+e,n[2]+e)}}else{for(let t=0;t<P;t++){const e=A[t];f3(e[2],e[1],e[0])}for(let t=0;t<P;t++){const e=A[t];f3(e[0]+R*o,e[1]+R*o,e[2]+R*o)}}n.addGroup(t,i.length/3-t,0)}function buildSideFaces(){const t=i.length/3;let e=0;sidewalls(C,e);e+=C.length;for(let t=0,n=w.length;t<n;t++){const n=w[t];sidewalls(n,e);e+=n.length}n.addGroup(t,i.length/3-t,1)}function sidewalls(t,e){let n=t.length;while(--n>=0){const i=n;let r=n-1;r<0&&(r=t.length-1);for(let t=0,n=o+p*2;t<n;t++){const n=R*t;const s=R*(t+1);const a=e+i+n,o=e+r+n,l=e+r+s,c=e+i+s;f4(a,o,l,c)}}}function v(t,e,n){s.push(t);s.push(e);s.push(n)}function f3(t,e,r){addVertex(t);addVertex(e);addVertex(r);const s=i.length/3;const a=m.generateTopUV(n,i,s-3,s-2,s-1);addUV(a[0]);addUV(a[1]);addUV(a[2])}function f4(t,e,r,s){addVertex(t);addVertex(e);addVertex(s);addVertex(e);addVertex(r);addVertex(s);const a=i.length/3;const o=m.generateSideWallUV(n,i,a-6,a-3,a-2,a-1);addUV(o[0]);addUV(o[1]);addUV(o[3]);addUV(o[1]);addUV(o[2]);addUV(o[3])}function addVertex(t){i.push(s[t*3+0]);i.push(s[t*3+1]);i.push(s[t*3+2])}function addUV(t){r.push(t.x);r.push(t.y)}}}copy(t){super.copy(t);this.parameters=Object.assign({},t.parameters);return this}toJSON(){const t=super.toJSON();const e=this.parameters.shapes;const n=this.parameters.options;return toJSON$1(e,n,t)}static fromJSON(t,e){const n=[];for(let i=0,r=t.shapes.length;i<r;i++){const r=e[t.shapes[i]];n.push(r)}const i=t.options.extrudePath;i!==void 0&&(t.options.extrudePath=(new Vc[i.type]).fromJSON(i));return new ExtrudeGeometry(n,t.options)}}const Wc={generateTopUV:function(t,e,n,i,r){const s=e[n*3];const a=e[n*3+1];const o=e[i*3];const l=e[i*3+1];const c=e[r*3];const h=e[r*3+1];return[new Vector2(s,a),new Vector2(o,l),new Vector2(c,h)]},generateSideWallUV:function(t,e,n,i,r,s){const a=e[n*3];const o=e[n*3+1];const l=e[n*3+2];const c=e[i*3];const h=e[i*3+1];const u=e[i*3+2];const d=e[r*3];const p=e[r*3+1];const f=e[r*3+2];const m=e[s*3];const g=e[s*3+1];const _=e[s*3+2];return Math.abs(o-h)<Math.abs(a-c)?[new Vector2(a,1-l),new Vector2(c,1-u),new Vector2(d,1-f),new Vector2(m,1-_)]:[new Vector2(o,1-l),new Vector2(h,1-u),new Vector2(p,1-f),new Vector2(g,1-_)]}};function toJSON$1(t,e,n){n.shapes=[];if(Array.isArray(t))for(let e=0,i=t.length;e<i;e++){const i=t[e];n.shapes.push(i.uuid)}else n.shapes.push(t.uuid);n.options=Object.assign({},e);e.extrudePath!==void 0&&(n.options.extrudePath=e.extrudePath.toJSON());return n}class IcosahedronGeometry extends PolyhedronGeometry{constructor(t=1,e=0){const n=(1+Math.sqrt(5))/2;const i=[-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];const r=[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];super(i,r,t,e);this.type=\"IcosahedronGeometry\";this.parameters={radius:t,detail:e}}static fromJSON(t){return new IcosahedronGeometry(t.radius,t.detail)}}class OctahedronGeometry extends PolyhedronGeometry{constructor(t=1,e=0){const n=[1,0,0,-1,0,0,0,1,0,0,-1,0,0,0,1,0,0,-1];const i=[0,2,4,0,4,3,0,3,5,0,5,2,1,2,5,1,5,3,1,3,4,1,4,2];super(n,i,t,e);this.type=\"OctahedronGeometry\";this.parameters={radius:t,detail:e}}static fromJSON(t){return new OctahedronGeometry(t.radius,t.detail)}}class RingGeometry extends BufferGeometry{constructor(t=.5,e=1,n=32,i=1,r=0,s=Math.PI*2){super();this.type=\"RingGeometry\";this.parameters={innerRadius:t,outerRadius:e,thetaSegments:n,phiSegments:i,thetaStart:r,thetaLength:s};n=Math.max(3,n);i=Math.max(1,i);const a=[];const o=[];const l=[];const c=[];let h=t;const u=(e-t)/i;const d=new Vector3;const p=new Vector2;for(let t=0;t<=i;t++){for(let t=0;t<=n;t++){const i=r+t/n*s;d.x=h*Math.cos(i);d.y=h*Math.sin(i);o.push(d.x,d.y,d.z);l.push(0,0,1);p.x=(d.x/e+1)/2;p.y=(d.y/e+1)/2;c.push(p.x,p.y)}h+=u}for(let t=0;t<i;t++){const e=t*(n+1);for(let t=0;t<n;t++){const i=t+e;const r=i;const s=i+n+1;const o=i+n+2;const l=i+1;a.push(r,s,l);a.push(s,o,l)}}this.setIndex(a);this.setAttribute(\"position\",new Float32BufferAttribute(o,3));this.setAttribute(\"normal\",new Float32BufferAttribute(l,3));this.setAttribute(\"uv\",new Float32BufferAttribute(c,2))}copy(t){super.copy(t);this.parameters=Object.assign({},t.parameters);return this}static fromJSON(t){return new RingGeometry(t.innerRadius,t.outerRadius,t.thetaSegments,t.phiSegments,t.thetaStart,t.thetaLength)}}class ShapeGeometry extends BufferGeometry{constructor(t=new Shape([new Vector2(0,.5),new Vector2(-.5,-.5),new Vector2(.5,-.5)]),e=12){super();this.type=\"ShapeGeometry\";this.parameters={shapes:t,curveSegments:e};const n=[];const i=[];const r=[];const s=[];let a=0;let o=0;if(Array.isArray(t)===false)addShape(t);else for(let e=0;e<t.length;e++){addShape(t[e]);this.addGroup(a,o,e);a+=o;o=0}this.setIndex(n);this.setAttribute(\"position\",new Float32BufferAttribute(i,3));this.setAttribute(\"normal\",new Float32BufferAttribute(r,3));this.setAttribute(\"uv\",new Float32BufferAttribute(s,2));function addShape(t){const a=i.length/3;const l=t.extractPoints(e);let c=l.shape;const h=l.holes;ShapeUtils.isClockWise(c)===false&&(c=c.reverse());for(let t=0,e=h.length;t<e;t++){const e=h[t];ShapeUtils.isClockWise(e)===true&&(h[t]=e.reverse())}const u=ShapeUtils.triangulateShape(c,h);for(let t=0,e=h.length;t<e;t++){const e=h[t];c=c.concat(e)}for(let t=0,e=c.length;t<e;t++){const e=c[t];i.push(e.x,e.y,0);r.push(0,0,1);s.push(e.x,e.y)}for(let t=0,e=u.length;t<e;t++){const e=u[t];const i=e[0]+a;const r=e[1]+a;const s=e[2]+a;n.push(i,r,s);o+=3}}}copy(t){super.copy(t);this.parameters=Object.assign({},t.parameters);return this}toJSON(){const t=super.toJSON();const e=this.parameters.shapes;return toJSON(e,t)}static fromJSON(t,e){const n=[];for(let i=0,r=t.shapes.length;i<r;i++){const r=e[t.shapes[i]];n.push(r)}return new ShapeGeometry(n,t.curveSegments)}}function toJSON(t,e){e.shapes=[];if(Array.isArray(t))for(let n=0,i=t.length;n<i;n++){const i=t[n];e.shapes.push(i.uuid)}else e.shapes.push(t.uuid);return e}class SphereGeometry extends BufferGeometry{constructor(t=1,e=32,n=16,i=0,r=Math.PI*2,s=0,a=Math.PI){super();this.type=\"SphereGeometry\";this.parameters={radius:t,widthSegments:e,heightSegments:n,phiStart:i,phiLength:r,thetaStart:s,thetaLength:a};e=Math.max(3,Math.floor(e));n=Math.max(2,Math.floor(n));const o=Math.min(s+a,Math.PI);let l=0;const c=[];const h=new Vector3;const u=new Vector3;const d=[];const p=[];const f=[];const m=[];for(let d=0;d<=n;d++){const g=[];const _=d/n;let x=0;d===0&&s===0?x=.5/e:d===n&&o===Math.PI&&(x=-.5/e);for(let n=0;n<=e;n++){const o=n/e;h.x=-t*Math.cos(i+o*r)*Math.sin(s+_*a);h.y=t*Math.cos(s+_*a);h.z=t*Math.sin(i+o*r)*Math.sin(s+_*a);p.push(h.x,h.y,h.z);u.copy(h).normalize();f.push(u.x,u.y,u.z);m.push(o+x,1-_);g.push(l++)}c.push(g)}for(let t=0;t<n;t++)for(let i=0;i<e;i++){const e=c[t][i+1];const r=c[t][i];const a=c[t+1][i];const l=c[t+1][i+1];(t!==0||s>0)&&d.push(e,r,l);(t!==n-1||o<Math.PI)&&d.push(r,a,l)}this.setIndex(d);this.setAttribute(\"position\",new Float32BufferAttribute(p,3));this.setAttribute(\"normal\",new Float32BufferAttribute(f,3));this.setAttribute(\"uv\",new Float32BufferAttribute(m,2))}copy(t){super.copy(t);this.parameters=Object.assign({},t.parameters);return this}static fromJSON(t){return new SphereGeometry(t.radius,t.widthSegments,t.heightSegments,t.phiStart,t.phiLength,t.thetaStart,t.thetaLength)}}class TetrahedronGeometry extends PolyhedronGeometry{constructor(t=1,e=0){const n=[1,1,1,-1,-1,1,-1,1,-1,1,-1,-1];const i=[2,1,0,0,3,2,1,3,0,2,3,1];super(n,i,t,e);this.type=\"TetrahedronGeometry\";this.parameters={radius:t,detail:e}}static fromJSON(t){return new TetrahedronGeometry(t.radius,t.detail)}}class TorusGeometry extends BufferGeometry{constructor(t=1,e=.4,n=12,i=48,r=Math.PI*2){super();this.type=\"TorusGeometry\";this.parameters={radius:t,tube:e,radialSegments:n,tubularSegments:i,arc:r};n=Math.floor(n);i=Math.floor(i);const s=[];const a=[];const o=[];const l=[];const c=new Vector3;const h=new Vector3;const u=new Vector3;for(let s=0;s<=n;s++)for(let d=0;d<=i;d++){const p=d/i*r;const f=s/n*Math.PI*2;h.x=(t+e*Math.cos(f))*Math.cos(p);h.y=(t+e*Math.cos(f))*Math.sin(p);h.z=e*Math.sin(f);a.push(h.x,h.y,h.z);c.x=t*Math.cos(p);c.y=t*Math.sin(p);u.subVectors(h,c).normalize();o.push(u.x,u.y,u.z);l.push(d/i);l.push(s/n)}for(let t=1;t<=n;t++)for(let e=1;e<=i;e++){const n=(i+1)*t+e-1;const r=(i+1)*(t-1)+e-1;const a=(i+1)*(t-1)+e;const o=(i+1)*t+e;s.push(n,r,o);s.push(r,a,o)}this.setIndex(s);this.setAttribute(\"position\",new Float32BufferAttribute(a,3));this.setAttribute(\"normal\",new Float32BufferAttribute(o,3));this.setAttribute(\"uv\",new Float32BufferAttribute(l,2))}copy(t){super.copy(t);this.parameters=Object.assign({},t.parameters);return this}static fromJSON(t){return new TorusGeometry(t.radius,t.tube,t.radialSegments,t.tubularSegments,t.arc)}}class TorusKnotGeometry extends BufferGeometry{constructor(t=1,e=.4,n=64,i=8,r=2,s=3){super();this.type=\"TorusKnotGeometry\";this.parameters={radius:t,tube:e,tubularSegments:n,radialSegments:i,p:r,q:s};n=Math.floor(n);i=Math.floor(i);const a=[];const o=[];const l=[];const c=[];const h=new Vector3;const u=new Vector3;const d=new Vector3;const p=new Vector3;const f=new Vector3;const m=new Vector3;const g=new Vector3;for(let a=0;a<=n;++a){const _=a/n*r*Math.PI*2;calculatePositionOnCurve(_,r,s,t,d);calculatePositionOnCurve(_+.01,r,s,t,p);m.subVectors(p,d);g.addVectors(p,d);f.crossVectors(m,g);g.crossVectors(f,m);f.normalize();g.normalize();for(let t=0;t<=i;++t){const r=t/i*Math.PI*2;const s=-e*Math.cos(r);const p=e*Math.sin(r);h.x=d.x+(s*g.x+p*f.x);h.y=d.y+(s*g.y+p*f.y);h.z=d.z+(s*g.z+p*f.z);o.push(h.x,h.y,h.z);u.subVectors(h,d).normalize();l.push(u.x,u.y,u.z);c.push(a/n);c.push(t/i)}}for(let t=1;t<=n;t++)for(let e=1;e<=i;e++){const n=(i+1)*(t-1)+(e-1);const r=(i+1)*t+(e-1);const s=(i+1)*t+e;const o=(i+1)*(t-1)+e;a.push(n,r,o);a.push(r,s,o)}this.setIndex(a);this.setAttribute(\"position\",new Float32BufferAttribute(o,3));this.setAttribute(\"normal\",new Float32BufferAttribute(l,3));this.setAttribute(\"uv\",new Float32BufferAttribute(c,2));function calculatePositionOnCurve(t,e,n,i,r){const s=Math.cos(t);const a=Math.sin(t);const o=n/e*t;const l=Math.cos(o);r.x=i*(2+l)*.5*s;r.y=i*(2+l)*a*.5;r.z=i*Math.sin(o)*.5}}copy(t){super.copy(t);this.parameters=Object.assign({},t.parameters);return this}static fromJSON(t){return new TorusKnotGeometry(t.radius,t.tube,t.tubularSegments,t.radialSegments,t.p,t.q)}}class TubeGeometry extends BufferGeometry{constructor(t=new QuadraticBezierCurve3(new Vector3(-1,-1,0),new Vector3(-1,1,0),new Vector3(1,1,0)),e=64,n=1,i=8,r=false){super();this.type=\"TubeGeometry\";this.parameters={path:t,tubularSegments:e,radius:n,radialSegments:i,closed:r};const s=t.computeFrenetFrames(e,r);this.tangents=s.tangents;this.normals=s.normals;this.binormals=s.binormals;const a=new Vector3;const o=new Vector3;const l=new Vector2;let c=new Vector3;const h=[];const u=[];const d=[];const p=[];generateBufferData();this.setIndex(p);this.setAttribute(\"position\",new Float32BufferAttribute(h,3));this.setAttribute(\"normal\",new Float32BufferAttribute(u,3));this.setAttribute(\"uv\",new Float32BufferAttribute(d,2));function generateBufferData(){for(let t=0;t<e;t++)generateSegment(t);generateSegment(r===false?e:0);generateUVs();generateIndices()}function generateSegment(r){c=t.getPointAt(r/e,c);const l=s.normals[r];const d=s.binormals[r];for(let t=0;t<=i;t++){const e=t/i*Math.PI*2;const r=Math.sin(e);const s=-Math.cos(e);o.x=s*l.x+r*d.x;o.y=s*l.y+r*d.y;o.z=s*l.z+r*d.z;o.normalize();u.push(o.x,o.y,o.z);a.x=c.x+n*o.x;a.y=c.y+n*o.y;a.z=c.z+n*o.z;h.push(a.x,a.y,a.z)}}function generateIndices(){for(let t=1;t<=e;t++)for(let e=1;e<=i;e++){const n=(i+1)*(t-1)+(e-1);const r=(i+1)*t+(e-1);const s=(i+1)*t+e;const a=(i+1)*(t-1)+e;p.push(n,r,a);p.push(r,s,a)}}function generateUVs(){for(let t=0;t<=e;t++)for(let n=0;n<=i;n++){l.x=t/e;l.y=n/i;d.push(l.x,l.y)}}}copy(t){super.copy(t);this.parameters=Object.assign({},t.parameters);return this}toJSON(){const t=super.toJSON();t.path=this.parameters.path.toJSON();return t}static fromJSON(t){return new TubeGeometry((new Vc[t.path.type]).fromJSON(t.path),t.tubularSegments,t.radius,t.radialSegments,t.closed)}}class WireframeGeometry extends BufferGeometry{constructor(t=null){super();this.type=\"WireframeGeometry\";this.parameters={geometry:t};if(t!==null){const e=[];const n=new Set;const i=new Vector3;const r=new Vector3;if(t.index!==null){const s=t.attributes.position;const a=t.index;let o=t.groups;o.length===0&&(o=[{start:0,count:a.count,materialIndex:0}]);for(let t=0,l=o.length;t<l;++t){const l=o[t];const c=l.start;const h=l.count;for(let t=c,o=c+h;t<o;t+=3)for(let o=0;o<3;o++){const l=a.getX(t+o);const c=a.getX(t+(o+1)%3);i.fromBufferAttribute(s,l);r.fromBufferAttribute(s,c);if(isUniqueEdge(i,r,n)===true){e.push(i.x,i.y,i.z);e.push(r.x,r.y,r.z)}}}}else{const s=t.attributes.position;for(let t=0,a=s.count/3;t<a;t++)for(let a=0;a<3;a++){const o=3*t+a;const l=3*t+(a+1)%3;i.fromBufferAttribute(s,o);r.fromBufferAttribute(s,l);if(isUniqueEdge(i,r,n)===true){e.push(i.x,i.y,i.z);e.push(r.x,r.y,r.z)}}}this.setAttribute(\"position\",new Float32BufferAttribute(e,3))}}copy(t){super.copy(t);this.parameters=Object.assign({},t.parameters);return this}}function isUniqueEdge(t,e,n){const i=`${t.x},${t.y},${t.z}-${e.x},${e.y},${e.z}`;const r=`${e.x},${e.y},${e.z}-${t.x},${t.y},${t.z}`;if(n.has(i)===true||n.has(r)===true)return false;n.add(i);n.add(r);return true}var Xc=Object.freeze({__proto__:null,BoxGeometry:BoxGeometry,CapsuleGeometry:CapsuleGeometry,CircleGeometry:CircleGeometry,ConeGeometry:ConeGeometry,CylinderGeometry:CylinderGeometry,DodecahedronGeometry:DodecahedronGeometry,EdgesGeometry:EdgesGeometry,ExtrudeGeometry:ExtrudeGeometry,IcosahedronGeometry:IcosahedronGeometry,LatheGeometry:LatheGeometry,OctahedronGeometry:OctahedronGeometry,PlaneGeometry:PlaneGeometry,PolyhedronGeometry:PolyhedronGeometry,RingGeometry:RingGeometry,ShapeGeometry:ShapeGeometry,SphereGeometry:SphereGeometry,TetrahedronGeometry:TetrahedronGeometry,TorusGeometry:TorusGeometry,TorusKnotGeometry:TorusKnotGeometry,TubeGeometry:TubeGeometry,WireframeGeometry:WireframeGeometry});class ShadowMaterial extends Material{constructor(t){super();this.isShadowMaterial=true;this.type=\"ShadowMaterial\";this.color=new Color(0);this.transparent=true;this.fog=true;this.setValues(t)}copy(t){super.copy(t);this.color.copy(t.color);this.fog=t.fog;return this}}class RawShaderMaterial extends ShaderMaterial{constructor(t){super(t);this.isRawShaderMaterial=true;this.type=\"RawShaderMaterial\"}}class MeshStandardMaterial extends Material{constructor(t){super();this.isMeshStandardMaterial=true;this.defines={STANDARD:\"\"};this.type=\"MeshStandardMaterial\";this.color=new Color(16777215);this.roughness=1;this.metalness=0;this.map=null;this.lightMap=null;this.lightMapIntensity=1;this.aoMap=null;this.aoMapIntensity=1;this.emissive=new Color(0);this.emissiveIntensity=1;this.emissiveMap=null;this.bumpMap=null;this.bumpScale=1;this.normalMap=null;this.normalMapType=Ye;this.normalScale=new Vector2(1,1);this.displacementMap=null;this.displacementScale=1;this.displacementBias=0;this.roughnessMap=null;this.metalnessMap=null;this.alphaMap=null;this.envMap=null;this.envMapRotation=new Euler;this.envMapIntensity=1;this.wireframe=false;this.wireframeLinewidth=1;this.wireframeLinecap=\"round\";this.wireframeLinejoin=\"round\";this.flatShading=false;this.fog=true;this.setValues(t)}copy(t){super.copy(t);this.defines={STANDARD:\"\"};this.color.copy(t.color);this.roughness=t.roughness;this.metalness=t.metalness;this.map=t.map;this.lightMap=t.lightMap;this.lightMapIntensity=t.lightMapIntensity;this.aoMap=t.aoMap;this.aoMapIntensity=t.aoMapIntensity;this.emissive.copy(t.emissive);this.emissiveMap=t.emissiveMap;this.emissiveIntensity=t.emissiveIntensity;this.bumpMap=t.bumpMap;this.bumpScale=t.bumpScale;this.normalMap=t.normalMap;this.normalMapType=t.normalMapType;this.normalScale.copy(t.normalScale);this.displacementMap=t.displacementMap;this.displacementScale=t.displacementScale;this.displacementBias=t.displacementBias;this.roughnessMap=t.roughnessMap;this.metalnessMap=t.metalnessMap;this.alphaMap=t.alphaMap;this.envMap=t.envMap;this.envMapRotation.copy(t.envMapRotation);this.envMapIntensity=t.envMapIntensity;this.wireframe=t.wireframe;this.wireframeLinewidth=t.wireframeLinewidth;this.wireframeLinecap=t.wireframeLinecap;this.wireframeLinejoin=t.wireframeLinejoin;this.flatShading=t.flatShading;this.fog=t.fog;return this}}class MeshPhysicalMaterial extends MeshStandardMaterial{constructor(t){super();this.isMeshPhysicalMaterial=true;this.defines={STANDARD:\"\",PHYSICAL:\"\"};this.type=\"MeshPhysicalMaterial\";this.anisotropyRotation=0;this.anisotropyMap=null;this.clearcoatMap=null;this.clearcoatRoughness=0;this.clearcoatRoughnessMap=null;this.clearcoatNormalScale=new Vector2(1,1);this.clearcoatNormalMap=null;this.ior=1.5;Object.defineProperty(this,\"reflectivity\",{get:function(){return clamp(2.5*(this.ior-1)/(this.ior+1),0,1)},set:function(t){this.ior=(1+.4*t)/(1-.4*t)}});this.iridescenceMap=null;this.iridescenceIOR=1.3;this.iridescenceThicknessRange=[100,400];this.iridescenceThicknessMap=null;this.sheenColor=new Color(0);this.sheenColorMap=null;this.sheenRoughness=1;this.sheenRoughnessMap=null;this.transmissionMap=null;this.thickness=0;this.thicknessMap=null;this.attenuationDistance=Infinity;this.attenuationColor=new Color(1,1,1);this.specularIntensity=1;this.specularIntensityMap=null;this.specularColor=new Color(1,1,1);this.specularColorMap=null;this._anisotropy=0;this._clearcoat=0;this._dispersion=0;this._iridescence=0;this._sheen=0;this._transmission=0;this.setValues(t)}get anisotropy(){return this._anisotropy}set anisotropy(t){this._anisotropy>0!==t>0&&this.version++;this._anisotropy=t}get clearcoat(){return this._clearcoat}set clearcoat(t){this._clearcoat>0!==t>0&&this.version++;this._clearcoat=t}get iridescence(){return this._iridescence}set iridescence(t){this._iridescence>0!==t>0&&this.version++;this._iridescence=t}get dispersion(){return this._dispersion}set dispersion(t){this._dispersion>0!==t>0&&this.version++;this._dispersion=t}get sheen(){return this._sheen}set sheen(t){this._sheen>0!==t>0&&this.version++;this._sheen=t}get transmission(){return this._transmission}set transmission(t){this._transmission>0!==t>0&&this.version++;this._transmission=t}copy(t){super.copy(t);this.defines={STANDARD:\"\",PHYSICAL:\"\"};this.anisotropy=t.anisotropy;this.anisotropyRotation=t.anisotropyRotation;this.anisotropyMap=t.anisotropyMap;this.clearcoat=t.clearcoat;this.clearcoatMap=t.clearcoatMap;this.clearcoatRoughness=t.clearcoatRoughness;this.clearcoatRoughnessMap=t.clearcoatRoughnessMap;this.clearcoatNormalMap=t.clearcoatNormalMap;this.clearcoatNormalScale.copy(t.clearcoatNormalScale);this.dispersion=t.dispersion;this.ior=t.ior;this.iridescence=t.iridescence;this.iridescenceMap=t.iridescenceMap;this.iridescenceIOR=t.iridescenceIOR;this.iridescenceThicknessRange=[...t.iridescenceThicknessRange];this.iridescenceThicknessMap=t.iridescenceThicknessMap;this.sheen=t.sheen;this.sheenColor.copy(t.sheenColor);this.sheenColorMap=t.sheenColorMap;this.sheenRoughness=t.sheenRoughness;this.sheenRoughnessMap=t.sheenRoughnessMap;this.transmission=t.transmission;this.transmissionMap=t.transmissionMap;this.thickness=t.thickness;this.thicknessMap=t.thicknessMap;this.attenuationDistance=t.attenuationDistance;this.attenuationColor.copy(t.attenuationColor);this.specularIntensity=t.specularIntensity;this.specularIntensityMap=t.specularIntensityMap;this.specularColor.copy(t.specularColor);this.specularColorMap=t.specularColorMap;return this}}class MeshPhongMaterial extends Material{constructor(t){super();this.isMeshPhongMaterial=true;this.type=\"MeshPhongMaterial\";this.color=new Color(16777215);this.specular=new Color(1118481);this.shininess=30;this.map=null;this.lightMap=null;this.lightMapIntensity=1;this.aoMap=null;this.aoMapIntensity=1;this.emissive=new Color(0);this.emissiveIntensity=1;this.emissiveMap=null;this.bumpMap=null;this.bumpScale=1;this.normalMap=null;this.normalMapType=Ye;this.normalScale=new Vector2(1,1);this.displacementMap=null;this.displacementScale=1;this.displacementBias=0;this.specularMap=null;this.alphaMap=null;this.envMap=null;this.envMapRotation=new Euler;this.combine=K;this.reflectivity=1;this.refractionRatio=.98;this.wireframe=false;this.wireframeLinewidth=1;this.wireframeLinecap=\"round\";this.wireframeLinejoin=\"round\";this.flatShading=false;this.fog=true;this.setValues(t)}copy(t){super.copy(t);this.color.copy(t.color);this.specular.copy(t.specular);this.shininess=t.shininess;this.map=t.map;this.lightMap=t.lightMap;this.lightMapIntensity=t.lightMapIntensity;this.aoMap=t.aoMap;this.aoMapIntensity=t.aoMapIntensity;this.emissive.copy(t.emissive);this.emissiveMap=t.emissiveMap;this.emissiveIntensity=t.emissiveIntensity;this.bumpMap=t.bumpMap;this.bumpScale=t.bumpScale;this.normalMap=t.normalMap;this.normalMapType=t.normalMapType;this.normalScale.copy(t.normalScale);this.displacementMap=t.displacementMap;this.displacementScale=t.displacementScale;this.displacementBias=t.displacementBias;this.specularMap=t.specularMap;this.alphaMap=t.alphaMap;this.envMap=t.envMap;this.envMapRotation.copy(t.envMapRotation);this.combine=t.combine;this.reflectivity=t.reflectivity;this.refractionRatio=t.refractionRatio;this.wireframe=t.wireframe;this.wireframeLinewidth=t.wireframeLinewidth;this.wireframeLinecap=t.wireframeLinecap;this.wireframeLinejoin=t.wireframeLinejoin;this.flatShading=t.flatShading;this.fog=t.fog;return this}}class MeshToonMaterial extends Material{constructor(t){super();this.isMeshToonMaterial=true;this.defines={TOON:\"\"};this.type=\"MeshToonMaterial\";this.color=new Color(16777215);this.map=null;this.gradientMap=null;this.lightMap=null;this.lightMapIntensity=1;this.aoMap=null;this.aoMapIntensity=1;this.emissive=new Color(0);this.emissiveIntensity=1;this.emissiveMap=null;this.bumpMap=null;this.bumpScale=1;this.normalMap=null;this.normalMapType=Ye;this.normalScale=new Vector2(1,1);this.displacementMap=null;this.displacementScale=1;this.displacementBias=0;this.alphaMap=null;this.wireframe=false;this.wireframeLinewidth=1;this.wireframeLinecap=\"round\";this.wireframeLinejoin=\"round\";this.fog=true;this.setValues(t)}copy(t){super.copy(t);this.color.copy(t.color);this.map=t.map;this.gradientMap=t.gradientMap;this.lightMap=t.lightMap;this.lightMapIntensity=t.lightMapIntensity;this.aoMap=t.aoMap;this.aoMapIntensity=t.aoMapIntensity;this.emissive.copy(t.emissive);this.emissiveMap=t.emissiveMap;this.emissiveIntensity=t.emissiveIntensity;this.bumpMap=t.bumpMap;this.bumpScale=t.bumpScale;this.normalMap=t.normalMap;this.normalMapType=t.normalMapType;this.normalScale.copy(t.normalScale);this.displacementMap=t.displacementMap;this.displacementScale=t.displacementScale;this.displacementBias=t.displacementBias;this.alphaMap=t.alphaMap;this.wireframe=t.wireframe;this.wireframeLinewidth=t.wireframeLinewidth;this.wireframeLinecap=t.wireframeLinecap;this.wireframeLinejoin=t.wireframeLinejoin;this.fog=t.fog;return this}}class MeshNormalMaterial extends Material{constructor(t){super();this.isMeshNormalMaterial=true;this.type=\"MeshNormalMaterial\";this.bumpMap=null;this.bumpScale=1;this.normalMap=null;this.normalMapType=Ye;this.normalScale=new Vector2(1,1);this.displacementMap=null;this.displacementScale=1;this.displacementBias=0;this.wireframe=false;this.wireframeLinewidth=1;this.flatShading=false;this.setValues(t)}copy(t){super.copy(t);this.bumpMap=t.bumpMap;this.bumpScale=t.bumpScale;this.normalMap=t.normalMap;this.normalMapType=t.normalMapType;this.normalScale.copy(t.normalScale);this.displacementMap=t.displacementMap;this.displacementScale=t.displacementScale;this.displacementBias=t.displacementBias;this.wireframe=t.wireframe;this.wireframeLinewidth=t.wireframeLinewidth;this.flatShading=t.flatShading;return this}}class MeshLambertMaterial extends Material{constructor(t){super();this.isMeshLambertMaterial=true;this.type=\"MeshLambertMaterial\";this.color=new Color(16777215);this.map=null;this.lightMap=null;this.lightMapIntensity=1;this.aoMap=null;this.aoMapIntensity=1;this.emissive=new Color(0);this.emissiveIntensity=1;this.emissiveMap=null;this.bumpMap=null;this.bumpScale=1;this.normalMap=null;this.normalMapType=Ye;this.normalScale=new Vector2(1,1);this.displacementMap=null;this.displacementScale=1;this.displacementBias=0;this.specularMap=null;this.alphaMap=null;this.envMap=null;this.envMapRotation=new Euler;this.combine=K;this.reflectivity=1;this.refractionRatio=.98;this.wireframe=false;this.wireframeLinewidth=1;this.wireframeLinecap=\"round\";this.wireframeLinejoin=\"round\";this.flatShading=false;this.fog=true;this.setValues(t)}copy(t){super.copy(t);this.color.copy(t.color);this.map=t.map;this.lightMap=t.lightMap;this.lightMapIntensity=t.lightMapIntensity;this.aoMap=t.aoMap;this.aoMapIntensity=t.aoMapIntensity;this.emissive.copy(t.emissive);this.emissiveMap=t.emissiveMap;this.emissiveIntensity=t.emissiveIntensity;this.bumpMap=t.bumpMap;this.bumpScale=t.bumpScale;this.normalMap=t.normalMap;this.normalMapType=t.normalMapType;this.normalScale.copy(t.normalScale);this.displacementMap=t.displacementMap;this.displacementScale=t.displacementScale;this.displacementBias=t.displacementBias;this.specularMap=t.specularMap;this.alphaMap=t.alphaMap;this.envMap=t.envMap;this.envMapRotation.copy(t.envMapRotation);this.combine=t.combine;this.reflectivity=t.reflectivity;this.refractionRatio=t.refractionRatio;this.wireframe=t.wireframe;this.wireframeLinewidth=t.wireframeLinewidth;this.wireframeLinecap=t.wireframeLinecap;this.wireframeLinejoin=t.wireframeLinejoin;this.flatShading=t.flatShading;this.fog=t.fog;return this}}class MeshMatcapMaterial extends Material{constructor(t){super();this.isMeshMatcapMaterial=true;this.defines={MATCAP:\"\"};this.type=\"MeshMatcapMaterial\";this.color=new Color(16777215);this.matcap=null;this.map=null;this.bumpMap=null;this.bumpScale=1;this.normalMap=null;this.normalMapType=Ye;this.normalScale=new Vector2(1,1);this.displacementMap=null;this.displacementScale=1;this.displacementBias=0;this.alphaMap=null;this.flatShading=false;this.fog=true;this.setValues(t)}copy(t){super.copy(t);this.defines={MATCAP:\"\"};this.color.copy(t.color);this.matcap=t.matcap;this.map=t.map;this.bumpMap=t.bumpMap;this.bumpScale=t.bumpScale;this.normalMap=t.normalMap;this.normalMapType=t.normalMapType;this.normalScale.copy(t.normalScale);this.displacementMap=t.displacementMap;this.displacementScale=t.displacementScale;this.displacementBias=t.displacementBias;this.alphaMap=t.alphaMap;this.flatShading=t.flatShading;this.fog=t.fog;return this}}class LineDashedMaterial extends LineBasicMaterial{constructor(t){super();this.isLineDashedMaterial=true;this.type=\"LineDashedMaterial\";this.scale=1;this.dashSize=3;this.gapSize=1;this.setValues(t)}copy(t){super.copy(t);this.scale=t.scale;this.dashSize=t.dashSize;this.gapSize=t.gapSize;return this}}function convertArray(t,e,n){return!t||!n&&t.constructor===e?t:typeof e.BYTES_PER_ELEMENT===\"number\"?new e(t):Array.prototype.slice.call(t)}function isTypedArray(t){return ArrayBuffer.isView(t)&&!(t instanceof DataView)}function getKeyframeOrder(t){function compareTime(e,n){return t[e]-t[n]}const e=t.length;const n=new Array(e);for(let t=0;t!==e;++t)n[t]=t;n.sort(compareTime);return n}function sortedArray(t,e,n){const i=t.length;const r=new t.constructor(i);for(let s=0,a=0;a!==i;++s){const i=n[s]*e;for(let n=0;n!==e;++n)r[a++]=t[i+n]}return r}function flattenJSON(t,e,n,i){let r=1,s=t[0];while(s!==void 0&&s[i]===void 0)s=t[r++];if(s===void 0)return;let a=s[i];if(a!==void 0)if(Array.isArray(a))do{a=s[i];if(a!==void 0){e.push(s.time);n.push.apply(n,a)}s=t[r++]}while(s!==void 0);else if(a.toArray!==void 0)do{a=s[i];if(a!==void 0){e.push(s.time);a.toArray(n,n.length)}s=t[r++]}while(s!==void 0);else do{a=s[i];if(a!==void 0){e.push(s.time);n.push(a)}s=t[r++]}while(s!==void 0)}function subclip(t,e,n,i,r=30){const s=t.clone();s.name=e;const a=[];for(let t=0;t<s.tracks.length;++t){const e=s.tracks[t];const o=e.getValueSize();const l=[];const c=[];for(let t=0;t<e.times.length;++t){const s=e.times[t]*r;if(!(s<n||s>=i)){l.push(e.times[t]);for(let n=0;n<o;++n)c.push(e.values[t*o+n])}}if(l.length!==0){e.times=convertArray(l,e.times.constructor);e.values=convertArray(c,e.values.constructor);a.push(e)}}s.tracks=a;let o=Infinity;for(let t=0;t<s.tracks.length;++t)o>s.tracks[t].times[0]&&(o=s.tracks[t].times[0]);for(let t=0;t<s.tracks.length;++t)s.tracks[t].shift(-1*o);s.resetDuration();return s}function makeClipAdditive(t,e=0,n=t,i=30){i<=0&&(i=30);const r=n.tracks.length;const s=e/i;for(let e=0;e<r;++e){const i=n.tracks[e];const r=i.ValueTypeName;if(r===\"bool\"||r===\"string\")continue;const a=t.tracks.find((function(t){return t.name===i.name&&t.ValueTypeName===r}));if(a===void 0)continue;let o=0;const l=i.getValueSize();i.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline&&(o=l/3);let c=0;const h=a.getValueSize();a.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline&&(c=h/3);const u=i.times.length-1;let d;if(s<=i.times[0]){const t=o;const e=l-o;d=i.values.slice(t,e)}else if(s>=i.times[u]){const t=u*l+o;const e=t+l-o;d=i.values.slice(t,e)}else{const t=i.createInterpolant();const e=o;const n=l-o;t.evaluate(s);d=t.resultBuffer.slice(e,n)}if(r===\"quaternion\"){const t=(new Quaternion).fromArray(d).normalize().conjugate();t.toArray(d)}const p=a.times.length;for(let t=0;t<p;++t){const e=t*h+c;if(r===\"quaternion\")Quaternion.multiplyQuaternionsFlat(a.values,e,d,0,a.values,e);else{const t=h-c*2;for(let n=0;n<t;++n)a.values[e+n]-=d[n]}}}t.blendMode=ze;return t}const jc={convertArray:convertArray,isTypedArray:isTypedArray,getKeyframeOrder:getKeyframeOrder,sortedArray:sortedArray,flattenJSON:flattenJSON,subclip:subclip,makeClipAdditive:makeClipAdditive};class Interpolant{constructor(t,e,n,i){this.parameterPositions=t;this._cachedIndex=0;this.resultBuffer=i!==void 0?i:new e.constructor(n);this.sampleValues=e;this.valueSize=n;this.settings=null;this.DefaultSettings_={}}evaluate(t){const e=this.parameterPositions;let n=this._cachedIndex,i=e[n],r=e[n-1];t:{e:{let s;n:{i:if(!(t<i)){for(let s=n+2;;){if(i===void 0){if(t<r)break i;n=e.length;this._cachedIndex=n;return this.copySampleValue_(n-1)}if(n===s)break;r=i;i=e[++n];if(t<i)break e}s=e.length;break n}if(t>=r)break t;{const a=e[1];if(t<a){n=2;r=a}for(let s=n-2;;){if(r===void 0){this._cachedIndex=0;return this.copySampleValue_(0)}if(n===s)break;i=r;r=e[--n-1];if(t>=r)break e}s=n;n=0}}while(n<s){const i=n+s>>>1;t<e[i]?s=i:n=i+1}i=e[n];r=e[n-1];if(r===void 0){this._cachedIndex=0;return this.copySampleValue_(0)}if(i===void 0){n=e.length;this._cachedIndex=n;return this.copySampleValue_(n-1)}}this._cachedIndex=n;this.intervalChanged_(n,r,i)}return this.interpolate_(n,r,t,i)}getSettings_(){return this.settings||this.DefaultSettings_}copySampleValue_(t){const e=this.resultBuffer,n=this.sampleValues,i=this.valueSize,r=t*i;for(let t=0;t!==i;++t)e[t]=n[r+t];return e}interpolate_(){throw new Error(\"call to abstract method\")}intervalChanged_(){}}class CubicInterpolant extends Interpolant{constructor(t,e,n,i){super(t,e,n,i);this._weightPrev=-0;this._offsetPrev=-0;this._weightNext=-0;this._offsetNext=-0;this.DefaultSettings_={endingStart:Be,endingEnd:Be}}intervalChanged_(t,e,n){const i=this.parameterPositions;let r=t-2,s=t+1,a=i[r],o=i[s];if(a===void 0)switch(this.getSettings_().endingStart){case Oe:r=t;a=2*e-n;break;case Ve:r=i.length-2;a=e+i[r]-i[r+1];break;default:r=t;a=n}if(o===void 0)switch(this.getSettings_().endingEnd){case Oe:s=t;o=2*n-e;break;case Ve:s=1;o=n+i[1]-i[0];break;default:s=t-1;o=e}const l=.5*(n-e),c=this.valueSize;this._weightPrev=l/(e-a);this._weightNext=l/(o-n);this._offsetPrev=r*c;this._offsetNext=s*c}interpolate_(t,e,n,i){const r=this.resultBuffer,s=this.sampleValues,a=this.valueSize,o=t*a,l=o-a,c=this._offsetPrev,h=this._offsetNext,u=this._weightPrev,d=this._weightNext,p=(n-e)/(i-e),f=p*p,m=f*p;const g=-u*m+2*u*f-u*p;const _=(1+u)*m+(-1.5-2*u)*f+(-.5+u)*p+1;const x=(-1-d)*m+(1.5+d)*f+.5*p;const y=d*m-d*f;for(let t=0;t!==a;++t)r[t]=g*s[c+t]+_*s[l+t]+x*s[o+t]+y*s[h+t];return r}}class LinearInterpolant extends Interpolant{constructor(t,e,n,i){super(t,e,n,i)}interpolate_(t,e,n,i){const r=this.resultBuffer,s=this.sampleValues,a=this.valueSize,o=t*a,l=o-a,c=(n-e)/(i-e),h=1-c;for(let t=0;t!==a;++t)r[t]=s[l+t]*h+s[o+t]*c;return r}}class DiscreteInterpolant extends Interpolant{constructor(t,e,n,i){super(t,e,n,i)}interpolate_(t){return this.copySampleValue_(t-1)}}class KeyframeTrack{constructor(t,e,n,i){if(t===void 0)throw new Error(\"THREE.KeyframeTrack: track name is undefined\");if(e===void 0||e.length===0)throw new Error(\"THREE.KeyframeTrack: no keyframes in track named \"+t);this.name=t;this.times=convertArray(e,this.TimeBufferType);this.values=convertArray(n,this.ValueBufferType);this.setInterpolation(i||this.DefaultInterpolation)}static toJSON(t){const e=t.constructor;let n;if(e.toJSON!==this.toJSON)n=e.toJSON(t);else{n={name:t.name,times:convertArray(t.times,Array),values:convertArray(t.values,Array)};const e=t.getInterpolation();e!==t.DefaultInterpolation&&(n.interpolation=e)}n.type=t.ValueTypeName;return n}InterpolantFactoryMethodDiscrete(t){return new DiscreteInterpolant(this.times,this.values,this.getValueSize(),t)}InterpolantFactoryMethodLinear(t){return new LinearInterpolant(this.times,this.values,this.getValueSize(),t)}InterpolantFactoryMethodSmooth(t){return new CubicInterpolant(this.times,this.values,this.getValueSize(),t)}setInterpolation(t){let e;switch(t){case Ue:e=this.InterpolantFactoryMethodDiscrete;break;case De:e=this.InterpolantFactoryMethodLinear;break;case Ne:e=this.InterpolantFactoryMethodSmooth;break}if(e===void 0){const e=\"unsupported interpolation for \"+this.ValueTypeName+\" keyframe track named \"+this.name;if(this.createInterpolant===void 0){if(t===this.DefaultInterpolation)throw new Error(e);this.setInterpolation(this.DefaultInterpolation)}console.warn(\"THREE.KeyframeTrack:\",e);return this}this.createInterpolant=e;return this}getInterpolation(){switch(this.createInterpolant){case this.InterpolantFactoryMethodDiscrete:return Ue;case this.InterpolantFactoryMethodLinear:return De;case this.InterpolantFactoryMethodSmooth:return Ne}}getValueSize(){return this.values.length/this.times.length}shift(t){if(t!==0){const e=this.times;for(let n=0,i=e.length;n!==i;++n)e[n]+=t}return this}scale(t){if(t!==1){const e=this.times;for(let n=0,i=e.length;n!==i;++n)e[n]*=t}return this}trim(t,e){const n=this.times,i=n.length;let r=0,s=i-1;while(r!==i&&n[r]<t)++r;while(s!==-1&&n[s]>e)--s;++s;if(r!==0||s!==i){if(r>=s){s=Math.max(s,1);r=s-1}const t=this.getValueSize();this.times=n.slice(r,s);this.values=this.values.slice(r*t,s*t)}return this}validate(){let t=true;const e=this.getValueSize();if(e-Math.floor(e)!==0){console.error(\"THREE.KeyframeTrack: Invalid value size in track.\",this);t=false}const n=this.times,i=this.values,r=n.length;if(r===0){console.error(\"THREE.KeyframeTrack: Track is empty.\",this);t=false}let s=null;for(let e=0;e!==r;e++){const i=n[e];if(typeof i===\"number\"&&isNaN(i)){console.error(\"THREE.KeyframeTrack: Time is not a valid number.\",this,e,i);t=false;break}if(s!==null&&s>i){console.error(\"THREE.KeyframeTrack: Out of order keys.\",this,e,i,s);t=false;break}s=i}if(i!==void 0&&isTypedArray(i))for(let e=0,n=i.length;e!==n;++e){const n=i[e];if(isNaN(n)){console.error(\"THREE.KeyframeTrack: Value is not a valid number.\",this,e,n);t=false;break}}return t}optimize(){const t=this.times.slice(),e=this.values.slice(),n=this.getValueSize(),i=this.getInterpolation()===Ne,r=t.length-1;let s=1;for(let a=1;a<r;++a){let r=false;const o=t[a];const l=t[a+1];if(o!==l&&(a!==1||o!==t[0]))if(i)r=true;else{const t=a*n,i=t-n,s=t+n;for(let a=0;a!==n;++a){const n=e[t+a];if(n!==e[i+a]||n!==e[s+a]){r=true;break}}}if(r){if(a!==s){t[s]=t[a];const i=a*n,r=s*n;for(let t=0;t!==n;++t)e[r+t]=e[i+t]}++s}}if(r>0){t[s]=t[r];for(let t=r*n,i=s*n,a=0;a!==n;++a)e[i+a]=e[t+a];++s}if(s!==t.length){this.times=t.slice(0,s);this.values=e.slice(0,s*n)}else{this.times=t;this.values=e}return this}clone(){const t=this.times.slice();const e=this.values.slice();const n=this.constructor;const i=new n(this.name,t,e);i.createInterpolant=this.createInterpolant;return i}}KeyframeTrack.prototype.TimeBufferType=Float32Array;KeyframeTrack.prototype.ValueBufferType=Float32Array;KeyframeTrack.prototype.DefaultInterpolation=De;class BooleanKeyframeTrack extends KeyframeTrack{constructor(t,e,n){super(t,e,n)}}BooleanKeyframeTrack.prototype.ValueTypeName=\"bool\";BooleanKeyframeTrack.prototype.ValueBufferType=Array;BooleanKeyframeTrack.prototype.DefaultInterpolation=Ue;BooleanKeyframeTrack.prototype.InterpolantFactoryMethodLinear=void 0;BooleanKeyframeTrack.prototype.InterpolantFactoryMethodSmooth=void 0;class ColorKeyframeTrack extends KeyframeTrack{}ColorKeyframeTrack.prototype.ValueTypeName=\"color\";class NumberKeyframeTrack extends KeyframeTrack{}NumberKeyframeTrack.prototype.ValueTypeName=\"number\";class QuaternionLinearInterpolant extends Interpolant{constructor(t,e,n,i){super(t,e,n,i)}interpolate_(t,e,n,i){const r=this.resultBuffer,s=this.sampleValues,a=this.valueSize,o=(n-e)/(i-e);let l=t*a;for(let t=l+a;l!==t;l+=4)Quaternion.slerpFlat(r,0,s,l-a,s,l,o);return r}}class QuaternionKeyframeTrack extends KeyframeTrack{InterpolantFactoryMethodLinear(t){return new QuaternionLinearInterpolant(this.times,this.values,this.getValueSize(),t)}}QuaternionKeyframeTrack.prototype.ValueTypeName=\"quaternion\";QuaternionKeyframeTrack.prototype.InterpolantFactoryMethodSmooth=void 0;class StringKeyframeTrack extends KeyframeTrack{constructor(t,e,n){super(t,e,n)}}StringKeyframeTrack.prototype.ValueTypeName=\"string\";StringKeyframeTrack.prototype.ValueBufferType=Array;StringKeyframeTrack.prototype.DefaultInterpolation=Ue;StringKeyframeTrack.prototype.InterpolantFactoryMethodLinear=void 0;StringKeyframeTrack.prototype.InterpolantFactoryMethodSmooth=void 0;class VectorKeyframeTrack extends KeyframeTrack{}VectorKeyframeTrack.prototype.ValueTypeName=\"vector\";class AnimationClip{constructor(t=\"\",e=-1,n=[],i=Fe){this.name=t;this.tracks=n;this.duration=e;this.blendMode=i;this.uuid=generateUUID();this.duration<0&&this.resetDuration()}static parse(t){const e=[],n=t.tracks,i=1/(t.fps||1);for(let t=0,r=n.length;t!==r;++t)e.push(parseKeyframeTrack(n[t]).scale(i));const r=new this(t.name,t.duration,e,t.blendMode);r.uuid=t.uuid;return r}static toJSON(t){const e=[],n=t.tracks;const i={name:t.name,duration:t.duration,tracks:e,uuid:t.uuid,blendMode:t.blendMode};for(let t=0,i=n.length;t!==i;++t)e.push(KeyframeTrack.toJSON(n[t]));return i}static CreateFromMorphTargetSequence(t,e,n,i){const r=e.length;const s=[];for(let t=0;t<r;t++){let a=[];let o=[];a.push((t+r-1)%r,t,(t+1)%r);o.push(0,1,0);const l=getKeyframeOrder(a);a=sortedArray(a,1,l);o=sortedArray(o,1,l);if(!i&&a[0]===0){a.push(r);o.push(o[0])}s.push(new NumberKeyframeTrack(\".morphTargetInfluences[\"+e[t].name+\"]\",a,o).scale(1/n))}return new this(t,-1,s)}static findByName(t,e){let n=t;if(!Array.isArray(t)){const e=t;n=e.geometry&&e.geometry.animations||e.animations}for(let t=0;t<n.length;t++)if(n[t].name===e)return n[t];return null}static CreateClipsFromMorphTargetSequences(t,e,n){const i={};const r=/^([\\w-]*?)([\\d]+)$/;for(let e=0,n=t.length;e<n;e++){const n=t[e];const s=n.name.match(r);if(s&&s.length>1){const t=s[1];let e=i[t];e||(i[t]=e=[]);e.push(n)}}const s=[];for(const t in i)s.push(this.CreateFromMorphTargetSequence(t,i[t],e,n));return s}static parseAnimation(t,e){if(!t){console.error(\"THREE.AnimationClip: No animation in JSONLoader data.\");return null}const addNonemptyTrack=function(t,e,n,i,r){if(n.length!==0){const s=[];const a=[];flattenJSON(n,s,a,i);s.length!==0&&r.push(new t(e,s,a))}};const n=[];const i=t.name||\"default\";const r=t.fps||30;const s=t.blendMode;let a=t.length||-1;const o=t.hierarchy||[];for(let t=0;t<o.length;t++){const i=o[t].keys;if(i&&i.length!==0)if(i[0].morphTargets){const t={};let e;for(e=0;e<i.length;e++)if(i[e].morphTargets)for(let n=0;n<i[e].morphTargets.length;n++)t[i[e].morphTargets[n]]=-1;for(const r in t){const t=[];const s=[];for(let n=0;n!==i[e].morphTargets.length;++n){const n=i[e];t.push(n.time);s.push(n.morphTarget===r?1:0)}n.push(new NumberKeyframeTrack(\".morphTargetInfluence[\"+r+\"]\",t,s))}a=t.length*r}else{const r=\".bones[\"+e[t].name+\"]\";addNonemptyTrack(VectorKeyframeTrack,r+\".position\",i,\"pos\",n);addNonemptyTrack(QuaternionKeyframeTrack,r+\".quaternion\",i,\"rot\",n);addNonemptyTrack(VectorKeyframeTrack,r+\".scale\",i,\"scl\",n)}}if(n.length===0)return null;const l=new this(i,a,n,s);return l}resetDuration(){const t=this.tracks;let e=0;for(let n=0,i=t.length;n!==i;++n){const t=this.tracks[n];e=Math.max(e,t.times[t.times.length-1])}this.duration=e;return this}trim(){for(let t=0;t<this.tracks.length;t++)this.tracks[t].trim(0,this.duration);return this}validate(){let t=true;for(let e=0;e<this.tracks.length;e++)t=t&&this.tracks[e].validate();return t}optimize(){for(let t=0;t<this.tracks.length;t++)this.tracks[t].optimize();return this}clone(){const t=[];for(let e=0;e<this.tracks.length;e++)t.push(this.tracks[e].clone());return new this.constructor(this.name,this.duration,t,this.blendMode)}toJSON(){return this.constructor.toJSON(this)}}function getTrackTypeForValueTypeName(t){switch(t.toLowerCase()){case\"scalar\":case\"double\":case\"float\":case\"number\":case\"integer\":return NumberKeyframeTrack;case\"vector\":case\"vector2\":case\"vector3\":case\"vector4\":return VectorKeyframeTrack;case\"color\":return ColorKeyframeTrack;case\"quaternion\":return QuaternionKeyframeTrack;case\"bool\":case\"boolean\":return BooleanKeyframeTrack;case\"string\":return StringKeyframeTrack}throw new Error(\"THREE.KeyframeTrack: Unsupported typeName: \"+t)}function parseKeyframeTrack(t){if(t.type===void 0)throw new Error(\"THREE.KeyframeTrack: track type undefined, can not parse\");const e=getTrackTypeForValueTypeName(t.type);if(t.times===void 0){const e=[],n=[];flattenJSON(t.keys,e,n,\"value\");t.times=e;t.values=n}return e.parse!==void 0?e.parse(t):new e(t.name,t.times,t.values,t.interpolation)}const qc={enabled:false,files:{},add:function(t,e){this.enabled!==false&&(this.files[t]=e)},get:function(t){if(this.enabled!==false)return this.files[t]},remove:function(t){delete this.files[t]},clear:function(){this.files={}}};class LoadingManager{constructor(t,e,n){const i=this;let r=false;let s=0;let a=0;let o;const l=[];this.onStart=void 0;this.onLoad=t;this.onProgress=e;this.onError=n;this.itemStart=function(t){a++;r===false&&i.onStart!==void 0&&i.onStart(t,s,a);r=true};this.itemEnd=function(t){s++;i.onProgress!==void 0&&i.onProgress(t,s,a);if(s===a){r=false;i.onLoad!==void 0&&i.onLoad()}};this.itemError=function(t){i.onError!==void 0&&i.onError(t)};this.resolveURL=function(t){return o?o(t):t};this.setURLModifier=function(t){o=t;return this};this.addHandler=function(t,e){l.push(t,e);return this};this.removeHandler=function(t){const e=l.indexOf(t);e!==-1&&l.splice(e,2);return this};this.getHandler=function(t){for(let e=0,n=l.length;e<n;e+=2){const n=l[e];const i=l[e+1];n.global&&(n.lastIndex=0);if(n.test(t))return i}return null}}}const Yc=new LoadingManager;class Loader{constructor(t){this.manager=t!==void 0?t:Yc;this.crossOrigin=\"anonymous\";this.withCredentials=false;this.path=\"\";this.resourcePath=\"\";this.requestHeader={}}load(){}loadAsync(t,e){const n=this;return new Promise((function(i,r){n.load(t,i,e,r)}))}parse(){}setCrossOrigin(t){this.crossOrigin=t;return this}setWithCredentials(t){this.withCredentials=t;return this}setPath(t){this.path=t;return this}setResourcePath(t){this.resourcePath=t;return this}setRequestHeader(t){this.requestHeader=t;return this}}Loader.DEFAULT_MATERIAL_NAME=\"__DEFAULT\";const Kc={};class HttpError extends Error{constructor(t,e){super(t);this.response=e}}class FileLoader extends Loader{constructor(t){super(t)}load(t,e,n,i){t===void 0&&(t=\"\");this.path!==void 0&&(t=this.path+t);t=this.manager.resolveURL(t);const r=qc.get(t);if(r!==void 0){this.manager.itemStart(t);setTimeout((()=>{e&&e(r);this.manager.itemEnd(t)}),0);return r}if(Kc[t]!==void 0){Kc[t].push({onLoad:e,onProgress:n,onError:i});return}Kc[t]=[];Kc[t].push({onLoad:e,onProgress:n,onError:i});const s=new Request(t,{headers:new Headers(this.requestHeader),credentials:this.withCredentials?\"include\":\"same-origin\"});const a=this.mimeType;const o=this.responseType;fetch(s).then((e=>{if(e.status===200||e.status===0){e.status===0&&console.warn(\"THREE.FileLoader: HTTP Status 0 received.\");if(typeof ReadableStream===\"undefined\"||e.body===void 0||e.body.getReader===void 0)return e;const n=Kc[t];const i=e.body.getReader();const r=e.headers.get(\"X-File-Size\")||e.headers.get(\"Content-Length\");const s=r?parseInt(r):0;const a=s!==0;let o=0;const l=new ReadableStream({start(t){readData();function readData(){i.read().then((({done:e,value:i})=>{if(e)t.close();else{o+=i.byteLength;const e=new ProgressEvent(\"progress\",{lengthComputable:a,loaded:o,total:s});for(let t=0,i=n.length;t<i;t++){const i=n[t];i.onProgress&&i.onProgress(e)}t.enqueue(i);readData()}}),(e=>{t.error(e)}))}}});return new Response(l)}throw new HttpError(`fetch for \"${e.url}\" responded with ${e.status}: ${e.statusText}`,e)})).then((t=>{switch(o){case\"arraybuffer\":return t.arrayBuffer();case\"blob\":return t.blob();case\"document\":return t.text().then((t=>{const e=new DOMParser;return e.parseFromString(t,a)}));case\"json\":return t.json();default:if(a===void 0)return t.text();{const e=/charset=\"?([^;\"\\s]*)\"?/i;const n=e.exec(a);const i=n&&n[1]?n[1].toLowerCase():void 0;const r=new TextDecoder(i);return t.arrayBuffer().then((t=>r.decode(t)))}}})).then((e=>{qc.add(t,e);const n=Kc[t];delete Kc[t];for(let t=0,i=n.length;t<i;t++){const i=n[t];i.onLoad&&i.onLoad(e)}})).catch((e=>{const n=Kc[t];if(n===void 0){this.manager.itemError(t);throw e}delete Kc[t];for(let t=0,i=n.length;t<i;t++){const i=n[t];i.onError&&i.onError(e)}this.manager.itemError(t)})).finally((()=>{this.manager.itemEnd(t)}));this.manager.itemStart(t)}setResponseType(t){this.responseType=t;return this}setMimeType(t){this.mimeType=t;return this}}class AnimationLoader extends Loader{constructor(t){super(t)}load(t,e,n,i){const r=this;const s=new FileLoader(this.manager);s.setPath(this.path);s.setRequestHeader(this.requestHeader);s.setWithCredentials(this.withCredentials);s.load(t,(function(n){try{e(r.parse(JSON.parse(n)))}catch(e){i?i(e):console.error(e);r.manager.itemError(t)}}),n,i)}parse(t){const e=[];for(let n=0;n<t.length;n++){const i=AnimationClip.parse(t[n]);e.push(i)}return e}}class CompressedTextureLoader extends Loader{constructor(t){super(t)}load(t,e,n,i){const r=this;const s=[];const a=new CompressedTexture;const o=new FileLoader(this.manager);o.setPath(this.path);o.setResponseType(\"arraybuffer\");o.setRequestHeader(this.requestHeader);o.setWithCredentials(r.withCredentials);let l=0;function loadTexture(c){o.load(t[c],(function(t){const n=r.parse(t,true);s[c]={width:n.width,height:n.height,format:n.format,mipmaps:n.mipmaps};l+=1;if(l===6){n.mipmapCount===1&&(a.minFilter=St);a.image=s;a.format=n.format;a.needsUpdate=true;e&&e(a)}}),n,i)}if(Array.isArray(t))for(let e=0,n=t.length;e<n;++e)loadTexture(e);else o.load(t,(function(t){const n=r.parse(t,true);if(n.isCubemap){const t=n.mipmaps.length/n.mipmapCount;for(let e=0;e<t;e++){s[e]={mipmaps:[]};for(let t=0;t<n.mipmapCount;t++){s[e].mipmaps.push(n.mipmaps[e*n.mipmapCount+t]);s[e].format=n.format;s[e].width=n.width;s[e].height=n.height}}a.image=s}else{a.image.width=n.width;a.image.height=n.height;a.mipmaps=n.mipmaps}n.mipmapCount===1&&(a.minFilter=St);a.format=n.format;a.needsUpdate=true;e&&e(a)}),n,i);return a}}class ImageLoader extends Loader{constructor(t){super(t)}load(t,e,n,i){this.path!==void 0&&(t=this.path+t);t=this.manager.resolveURL(t);const r=this;const s=qc.get(t);if(s!==void 0){r.manager.itemStart(t);setTimeout((function(){e&&e(s);r.manager.itemEnd(t)}),0);return s}const a=createElementNS(\"img\");function onImageLoad(){removeEventListeners();qc.add(t,this);e&&e(this);r.manager.itemEnd(t)}function onImageError(e){removeEventListeners();i&&i(e);r.manager.itemError(t);r.manager.itemEnd(t)}function removeEventListeners(){a.removeEventListener(\"load\",onImageLoad,false);a.removeEventListener(\"error\",onImageError,false)}a.addEventListener(\"load\",onImageLoad,false);a.addEventListener(\"error\",onImageError,false);t.slice(0,5)!==\"data:\"&&this.crossOrigin!==void 0&&(a.crossOrigin=this.crossOrigin);r.manager.itemStart(t);a.src=t;return a}}class CubeTextureLoader extends Loader{constructor(t){super(t)}load(t,e,n,i){const r=new CubeTexture;r.colorSpace=Je;const s=new ImageLoader(this.manager);s.setCrossOrigin(this.crossOrigin);s.setPath(this.path);let a=0;function loadTexture(n){s.load(t[n],(function(t){r.images[n]=t;a++;if(a===6){r.needsUpdate=true;e&&e(r)}}),void 0,i)}for(let e=0;e<t.length;++e)loadTexture(e);return r}}class DataTextureLoader extends Loader{constructor(t){super(t)}load(t,e,n,i){const r=this;const s=new DataTexture;const a=new FileLoader(this.manager);a.setResponseType(\"arraybuffer\");a.setRequestHeader(this.requestHeader);a.setPath(this.path);a.setWithCredentials(r.withCredentials);a.load(t,(function(t){let n;try{n=r.parse(t)}catch(t){if(i===void 0){console.error(t);return}i(t)}if(n.image!==void 0)s.image=n.image;else if(n.data!==void 0){s.image.width=n.width;s.image.height=n.height;s.image.data=n.data}s.wrapS=n.wrapS!==void 0?n.wrapS:mt;s.wrapT=n.wrapT!==void 0?n.wrapT:mt;s.magFilter=n.magFilter!==void 0?n.magFilter:St;s.minFilter=n.minFilter!==void 0?n.minFilter:St;s.anisotropy=n.anisotropy!==void 0?n.anisotropy:1;n.colorSpace!==void 0&&(s.colorSpace=n.colorSpace);n.flipY!==void 0&&(s.flipY=n.flipY);n.format!==void 0&&(s.format=n.format);n.type!==void 0&&(s.type=n.type);if(n.mipmaps!==void 0){s.mipmaps=n.mipmaps;s.minFilter=wt}n.mipmapCount===1&&(s.minFilter=St);n.generateMipmaps!==void 0&&(s.generateMipmaps=n.generateMipmaps);s.needsUpdate=true;e&&e(s,n)}),n,i);return s}}class TextureLoader extends Loader{constructor(t){super(t)}load(t,e,n,i){const r=new Texture;const s=new ImageLoader(this.manager);s.setCrossOrigin(this.crossOrigin);s.setPath(this.path);s.load(t,(function(t){r.image=t;r.needsUpdate=true;e!==void 0&&e(r)}),n,i);return r}}class Light extends Object3D{constructor(t,e=1){super();this.isLight=true;this.type=\"Light\";this.color=new Color(t);this.intensity=e}dispose(){}copy(t,e){super.copy(t,e);this.color.copy(t.color);this.intensity=t.intensity;return this}toJSON(t){const e=super.toJSON(t);e.object.color=this.color.getHex();e.object.intensity=this.intensity;this.groundColor!==void 0&&(e.object.groundColor=this.groundColor.getHex());this.distance!==void 0&&(e.object.distance=this.distance);this.angle!==void 0&&(e.object.angle=this.angle);this.decay!==void 0&&(e.object.decay=this.decay);this.penumbra!==void 0&&(e.object.penumbra=this.penumbra);this.shadow!==void 0&&(e.object.shadow=this.shadow.toJSON());this.target!==void 0&&(e.object.target=this.target.uuid);return e}}class HemisphereLight extends Light{constructor(t,e,n){super(t,n);this.isHemisphereLight=true;this.type=\"HemisphereLight\";this.position.copy(Object3D.DEFAULT_UP);this.updateMatrix();this.groundColor=new Color(e)}copy(t,e){super.copy(t,e);this.groundColor.copy(t.groundColor);return this}}const Zc=new Matrix4;const Jc=new Vector3;const Qc=new Vector3;class LightShadow{constructor(t){this.camera=t;this.intensity=1;this.bias=0;this.normalBias=0;this.radius=1;this.blurSamples=8;this.mapSize=new Vector2(512,512);this.map=null;this.mapPass=null;this.matrix=new Matrix4;this.autoUpdate=true;this.needsUpdate=false;this._frustum=new Frustum;this._frameExtents=new Vector2(1,1);this._viewportCount=1;this._viewports=[new Vector4(0,0,1,1)]}getViewportCount(){return this._viewportCount}getFrustum(){return this._frustum}updateMatrices(t){const e=this.camera;const n=this.matrix;Jc.setFromMatrixPosition(t.matrixWorld);e.position.copy(Jc);Qc.setFromMatrixPosition(t.target.matrixWorld);e.lookAt(Qc);e.updateMatrixWorld();Zc.multiplyMatrices(e.projectionMatrix,e.matrixWorldInverse);this._frustum.setFromProjectionMatrix(Zc);n.set(.5,0,0,.5,0,.5,0,.5,0,0,.5,.5,0,0,0,1);n.multiply(Zc)}getViewport(t){return this._viewports[t]}getFrameExtents(){return this._frameExtents}dispose(){this.map&&this.map.dispose();this.mapPass&&this.mapPass.dispose()}copy(t){this.camera=t.camera.clone();this.intensity=t.intensity;this.bias=t.bias;this.radius=t.radius;this.mapSize.copy(t.mapSize);return this}clone(){return(new this.constructor).copy(this)}toJSON(){const t={};this.intensity!==1&&(t.intensity=this.intensity);this.bias!==0&&(t.bias=this.bias);this.normalBias!==0&&(t.normalBias=this.normalBias);this.radius!==1&&(t.radius=this.radius);this.mapSize.x===512&&this.mapSize.y===512||(t.mapSize=this.mapSize.toArray());t.camera=this.camera.toJSON(false).object;delete t.camera.matrix;return t}}class SpotLightShadow extends LightShadow{constructor(){super(new PerspectiveCamera(50,1,.5,500));this.isSpotLightShadow=true;this.focus=1}updateMatrices(t){const e=this.camera;const n=jn*2*t.angle*this.focus;const i=this.mapSize.width/this.mapSize.height;const r=t.distance||e.far;if(n!==e.fov||i!==e.aspect||r!==e.far){e.fov=n;e.aspect=i;e.far=r;e.updateProjectionMatrix()}super.updateMatrices(t)}copy(t){super.copy(t);this.focus=t.focus;return this}}class SpotLight extends Light{constructor(t,e,n=0,i=Math.PI/3,r=0,s=2){super(t,e);this.isSpotLight=true;this.type=\"SpotLight\";this.position.copy(Object3D.DEFAULT_UP);this.updateMatrix();this.target=new Object3D;this.distance=n;this.angle=i;this.penumbra=r;this.decay=s;this.map=null;this.shadow=new SpotLightShadow}get power(){return this.intensity*Math.PI}set power(t){this.intensity=t/Math.PI}dispose(){this.shadow.dispose()}copy(t,e){super.copy(t,e);this.distance=t.distance;this.angle=t.angle;this.penumbra=t.penumbra;this.decay=t.decay;this.target=t.target.clone();this.shadow=t.shadow.clone();return this}}const $c=new Matrix4;const th=new Vector3;const eh=new Vector3;class PointLightShadow extends LightShadow{constructor(){super(new PerspectiveCamera(90,1,.5,500));this.isPointLightShadow=true;this._frameExtents=new Vector2(4,2);this._viewportCount=6;this._viewports=[new Vector4(2,1,1,1),new Vector4(0,1,1,1),new Vector4(3,1,1,1),new Vector4(1,1,1,1),new Vector4(3,0,1,1),new Vector4(1,0,1,1)];this._cubeDirections=[new Vector3(1,0,0),new Vector3(-1,0,0),new Vector3(0,0,1),new Vector3(0,0,-1),new Vector3(0,1,0),new Vector3(0,-1,0)];this._cubeUps=[new Vector3(0,1,0),new Vector3(0,1,0),new Vector3(0,1,0),new Vector3(0,1,0),new Vector3(0,0,1),new Vector3(0,0,-1)]}updateMatrices(t,e=0){const n=this.camera;const i=this.matrix;const r=t.distance||n.far;if(r!==n.far){n.far=r;n.updateProjectionMatrix()}th.setFromMatrixPosition(t.matrixWorld);n.position.copy(th);eh.copy(n.position);eh.add(this._cubeDirections[e]);n.up.copy(this._cubeUps[e]);n.lookAt(eh);n.updateMatrixWorld();i.makeTranslation(-th.x,-th.y,-th.z);$c.multiplyMatrices(n.projectionMatrix,n.matrixWorldInverse);this._frustum.setFromProjectionMatrix($c)}}class PointLight extends Light{constructor(t,e,n=0,i=2){super(t,e);this.isPointLight=true;this.type=\"PointLight\";this.distance=n;this.decay=i;this.shadow=new PointLightShadow}get power(){return this.intensity*4*Math.PI}set power(t){this.intensity=t/(4*Math.PI)}dispose(){this.shadow.dispose()}copy(t,e){super.copy(t,e);this.distance=t.distance;this.decay=t.decay;this.shadow=t.shadow.clone();return this}}class DirectionalLightShadow extends LightShadow{constructor(){super(new OrthographicCamera(-5,5,5,-5,.5,500));this.isDirectionalLightShadow=true}}class DirectionalLight extends Light{constructor(t,e){super(t,e);this.isDirectionalLight=true;this.type=\"DirectionalLight\";this.position.copy(Object3D.DEFAULT_UP);this.updateMatrix();this.target=new Object3D;this.shadow=new DirectionalLightShadow}dispose(){this.shadow.dispose()}copy(t){super.copy(t);this.target=t.target.clone();this.shadow=t.shadow.clone();return this}}class AmbientLight extends Light{constructor(t,e){super(t,e);this.isAmbientLight=true;this.type=\"AmbientLight\"}}class RectAreaLight extends Light{constructor(t,e,n=10,i=10){super(t,e);this.isRectAreaLight=true;this.type=\"RectAreaLight\";this.width=n;this.height=i}get power(){return this.intensity*this.width*this.height*Math.PI}set power(t){this.intensity=t/(this.width*this.height*Math.PI)}copy(t){super.copy(t);this.width=t.width;this.height=t.height;return this}toJSON(t){const e=super.toJSON(t);e.object.width=this.width;e.object.height=this.height;return e}}class SphericalHarmonics3{constructor(){this.isSphericalHarmonics3=true;this.coefficients=[];for(let t=0;t<9;t++)this.coefficients.push(new Vector3)}set(t){for(let e=0;e<9;e++)this.coefficients[e].copy(t[e]);return this}zero(){for(let t=0;t<9;t++)this.coefficients[t].set(0,0,0);return this}getAt(t,e){const n=t.x,i=t.y,r=t.z;const s=this.coefficients;e.copy(s[0]).multiplyScalar(.282095);e.addScaledVector(s[1],.488603*i);e.addScaledVector(s[2],.488603*r);e.addScaledVector(s[3],.488603*n);e.addScaledVector(s[4],n*i*1.092548);e.addScaledVector(s[5],i*r*1.092548);e.addScaledVector(s[6],.315392*(3*r*r-1));e.addScaledVector(s[7],n*r*1.092548);e.addScaledVector(s[8],.546274*(n*n-i*i));return e}getIrradianceAt(t,e){const n=t.x,i=t.y,r=t.z;const s=this.coefficients;e.copy(s[0]).multiplyScalar(.886227);e.addScaledVector(s[1],1.023328*i);e.addScaledVector(s[2],1.023328*r);e.addScaledVector(s[3],1.023328*n);e.addScaledVector(s[4],.858086*n*i);e.addScaledVector(s[5],.858086*i*r);e.addScaledVector(s[6],.743125*r*r-.247708);e.addScaledVector(s[7],.858086*n*r);e.addScaledVector(s[8],.429043*(n*n-i*i));return e}add(t){for(let e=0;e<9;e++)this.coefficients[e].add(t.coefficients[e]);return this}addScaledSH(t,e){for(let n=0;n<9;n++)this.coefficients[n].addScaledVector(t.coefficients[n],e);return this}scale(t){for(let e=0;e<9;e++)this.coefficients[e].multiplyScalar(t);return this}lerp(t,e){for(let n=0;n<9;n++)this.coefficients[n].lerp(t.coefficients[n],e);return this}equals(t){for(let e=0;e<9;e++)if(!this.coefficients[e].equals(t.coefficients[e]))return false;return true}copy(t){return this.set(t.coefficients)}clone(){return(new this.constructor).copy(this)}fromArray(t,e=0){const n=this.coefficients;for(let i=0;i<9;i++)n[i].fromArray(t,e+i*3);return this}toArray(t=[],e=0){const n=this.coefficients;for(let i=0;i<9;i++)n[i].toArray(t,e+i*3);return t}static getBasisAt(t,e){const n=t.x,i=t.y,r=t.z;e[0]=.282095;e[1]=.488603*i;e[2]=.488603*r;e[3]=.488603*n;e[4]=1.092548*n*i;e[5]=1.092548*i*r;e[6]=.315392*(3*r*r-1);e[7]=1.092548*n*r;e[8]=.546274*(n*n-i*i)}}class LightProbe extends Light{constructor(t=new SphericalHarmonics3,e=1){super(void 0,e);this.isLightProbe=true;this.sh=t}copy(t){super.copy(t);this.sh.copy(t.sh);return this}fromJSON(t){this.intensity=t.intensity;this.sh.fromArray(t.sh);return this}toJSON(t){const e=super.toJSON(t);e.object.sh=this.sh.toArray();return e}}class MaterialLoader extends Loader{constructor(t){super(t);this.textures={}}load(t,e,n,i){const r=this;const s=new FileLoader(r.manager);s.setPath(r.path);s.setRequestHeader(r.requestHeader);s.setWithCredentials(r.withCredentials);s.load(t,(function(n){try{e(r.parse(JSON.parse(n)))}catch(e){i?i(e):console.error(e);r.manager.itemError(t)}}),n,i)}parse(t){const e=this.textures;function getTexture(t){e[t]===void 0&&console.warn(\"THREE.MaterialLoader: Undefined texture\",t);return e[t]}const n=MaterialLoader.createMaterialFromType(t.type);t.uuid!==void 0&&(n.uuid=t.uuid);t.name!==void 0&&(n.name=t.name);t.color!==void 0&&n.color!==void 0&&n.color.setHex(t.color);t.roughness!==void 0&&(n.roughness=t.roughness);t.metalness!==void 0&&(n.metalness=t.metalness);t.sheen!==void 0&&(n.sheen=t.sheen);t.sheenColor!==void 0&&(n.sheenColor=(new Color).setHex(t.sheenColor));t.sheenRoughness!==void 0&&(n.sheenRoughness=t.sheenRoughness);t.emissive!==void 0&&n.emissive!==void 0&&n.emissive.setHex(t.emissive);t.specular!==void 0&&n.specular!==void 0&&n.specular.setHex(t.specular);t.specularIntensity!==void 0&&(n.specularIntensity=t.specularIntensity);t.specularColor!==void 0&&n.specularColor!==void 0&&n.specularColor.setHex(t.specularColor);t.shininess!==void 0&&(n.shininess=t.shininess);t.clearcoat!==void 0&&(n.clearcoat=t.clearcoat);t.clearcoatRoughness!==void 0&&(n.clearcoatRoughness=t.clearcoatRoughness);t.dispersion!==void 0&&(n.dispersion=t.dispersion);t.iridescence!==void 0&&(n.iridescence=t.iridescence);t.iridescenceIOR!==void 0&&(n.iridescenceIOR=t.iridescenceIOR);t.iridescenceThicknessRange!==void 0&&(n.iridescenceThicknessRange=t.iridescenceThicknessRange);t.transmission!==void 0&&(n.transmission=t.transmission);t.thickness!==void 0&&(n.thickness=t.thickness);t.attenuationDistance!==void 0&&(n.attenuationDistance=t.attenuationDistance);t.attenuationColor!==void 0&&n.attenuationColor!==void 0&&n.attenuationColor.setHex(t.attenuationColor);t.anisotropy!==void 0&&(n.anisotropy=t.anisotropy);t.anisotropyRotation!==void 0&&(n.anisotropyRotation=t.anisotropyRotation);t.fog!==void 0&&(n.fog=t.fog);t.flatShading!==void 0&&(n.flatShading=t.flatShading);t.blending!==void 0&&(n.blending=t.blending);t.combine!==void 0&&(n.combine=t.combine);t.side!==void 0&&(n.side=t.side);t.shadowSide!==void 0&&(n.shadowSide=t.shadowSide);t.opacity!==void 0&&(n.opacity=t.opacity);t.transparent!==void 0&&(n.transparent=t.transparent);t.alphaTest!==void 0&&(n.alphaTest=t.alphaTest);t.alphaHash!==void 0&&(n.alphaHash=t.alphaHash);t.depthFunc!==void 0&&(n.depthFunc=t.depthFunc);t.depthTest!==void 0&&(n.depthTest=t.depthTest);t.depthWrite!==void 0&&(n.depthWrite=t.depthWrite);t.colorWrite!==void 0&&(n.colorWrite=t.colorWrite);t.blendSrc!==void 0&&(n.blendSrc=t.blendSrc);t.blendDst!==void 0&&(n.blendDst=t.blendDst);t.blendEquation!==void 0&&(n.blendEquation=t.blendEquation);t.blendSrcAlpha!==void 0&&(n.blendSrcAlpha=t.blendSrcAlpha);t.blendDstAlpha!==void 0&&(n.blendDstAlpha=t.blendDstAlpha);t.blendEquationAlpha!==void 0&&(n.blendEquationAlpha=t.blendEquationAlpha);t.blendColor!==void 0&&n.blendColor!==void 0&&n.blendColor.setHex(t.blendColor);t.blendAlpha!==void 0&&(n.blendAlpha=t.blendAlpha);t.stencilWriteMask!==void 0&&(n.stencilWriteMask=t.stencilWriteMask);t.stencilFunc!==void 0&&(n.stencilFunc=t.stencilFunc);t.stencilRef!==void 0&&(n.stencilRef=t.stencilRef);t.stencilFuncMask!==void 0&&(n.stencilFuncMask=t.stencilFuncMask);t.stencilFail!==void 0&&(n.stencilFail=t.stencilFail);t.stencilZFail!==void 0&&(n.stencilZFail=t.stencilZFail);t.stencilZPass!==void 0&&(n.stencilZPass=t.stencilZPass);t.stencilWrite!==void 0&&(n.stencilWrite=t.stencilWrite);t.wireframe!==void 0&&(n.wireframe=t.wireframe);t.wireframeLinewidth!==void 0&&(n.wireframeLinewidth=t.wireframeLinewidth);t.wireframeLinecap!==void 0&&(n.wireframeLinecap=t.wireframeLinecap);t.wireframeLinejoin!==void 0&&(n.wireframeLinejoin=t.wireframeLinejoin);t.rotation!==void 0&&(n.rotation=t.rotation);t.linewidth!==void 0&&(n.linewidth=t.linewidth);t.dashSize!==void 0&&(n.dashSize=t.dashSize);t.gapSize!==void 0&&(n.gapSize=t.gapSize);t.scale!==void 0&&(n.scale=t.scale);t.polygonOffset!==void 0&&(n.polygonOffset=t.polygonOffset);t.polygonOffsetFactor!==void 0&&(n.polygonOffsetFactor=t.polygonOffsetFactor);t.polygonOffsetUnits!==void 0&&(n.polygonOffsetUnits=t.polygonOffsetUnits);t.dithering!==void 0&&(n.dithering=t.dithering);t.alphaToCoverage!==void 0&&(n.alphaToCoverage=t.alphaToCoverage);t.premultipliedAlpha!==void 0&&(n.premultipliedAlpha=t.premultipliedAlpha);t.forceSinglePass!==void 0&&(n.forceSinglePass=t.forceSinglePass);t.visible!==void 0&&(n.visible=t.visible);t.toneMapped!==void 0&&(n.toneMapped=t.toneMapped);t.userData!==void 0&&(n.userData=t.userData);t.vertexColors!==void 0&&(typeof t.vertexColors===\"number\"?n.vertexColors=t.vertexColors>0:n.vertexColors=t.vertexColors);if(t.uniforms!==void 0)for(const e in t.uniforms){const i=t.uniforms[e];n.uniforms[e]={};switch(i.type){case\"t\":n.uniforms[e].value=getTexture(i.value);break;case\"c\":n.uniforms[e].value=(new Color).setHex(i.value);break;case\"v2\":n.uniforms[e].value=(new Vector2).fromArray(i.value);break;case\"v3\":n.uniforms[e].value=(new Vector3).fromArray(i.value);break;case\"v4\":n.uniforms[e].value=(new Vector4).fromArray(i.value);break;case\"m3\":n.uniforms[e].value=(new Matrix3).fromArray(i.value);break;case\"m4\":n.uniforms[e].value=(new Matrix4).fromArray(i.value);break;default:n.uniforms[e].value=i.value}}t.defines!==void 0&&(n.defines=t.defines);t.vertexShader!==void 0&&(n.vertexShader=t.vertexShader);t.fragmentShader!==void 0&&(n.fragmentShader=t.fragmentShader);t.glslVersion!==void 0&&(n.glslVersion=t.glslVersion);if(t.extensions!==void 0)for(const e in t.extensions)n.extensions[e]=t.extensions[e];t.lights!==void 0&&(n.lights=t.lights);t.clipping!==void 0&&(n.clipping=t.clipping);t.size!==void 0&&(n.size=t.size);t.sizeAttenuation!==void 0&&(n.sizeAttenuation=t.sizeAttenuation);t.map!==void 0&&(n.map=getTexture(t.map));t.matcap!==void 0&&(n.matcap=getTexture(t.matcap));t.alphaMap!==void 0&&(n.alphaMap=getTexture(t.alphaMap));t.bumpMap!==void 0&&(n.bumpMap=getTexture(t.bumpMap));t.bumpScale!==void 0&&(n.bumpScale=t.bumpScale);t.normalMap!==void 0&&(n.normalMap=getTexture(t.normalMap));t.normalMapType!==void 0&&(n.normalMapType=t.normalMapType);if(t.normalScale!==void 0){let e=t.normalScale;Array.isArray(e)===false&&(e=[e,e]);n.normalScale=(new Vector2).fromArray(e)}t.displacementMap!==void 0&&(n.displacementMap=getTexture(t.displacementMap));t.displacementScale!==void 0&&(n.displacementScale=t.displacementScale);t.displacementBias!==void 0&&(n.displacementBias=t.displacementBias);t.roughnessMap!==void 0&&(n.roughnessMap=getTexture(t.roughnessMap));t.metalnessMap!==void 0&&(n.metalnessMap=getTexture(t.metalnessMap));t.emissiveMap!==void 0&&(n.emissiveMap=getTexture(t.emissiveMap));t.emissiveIntensity!==void 0&&(n.emissiveIntensity=t.emissiveIntensity);t.specularMap!==void 0&&(n.specularMap=getTexture(t.specularMap));t.specularIntensityMap!==void 0&&(n.specularIntensityMap=getTexture(t.specularIntensityMap));t.specularColorMap!==void 0&&(n.specularColorMap=getTexture(t.specularColorMap));t.envMap!==void 0&&(n.envMap=getTexture(t.envMap));t.envMapRotation!==void 0&&n.envMapRotation.fromArray(t.envMapRotation);t.envMapIntensity!==void 0&&(n.envMapIntensity=t.envMapIntensity);t.reflectivity!==void 0&&(n.reflectivity=t.reflectivity);t.refractionRatio!==void 0&&(n.refractionRatio=t.refractionRatio);t.lightMap!==void 0&&(n.lightMap=getTexture(t.lightMap));t.lightMapIntensity!==void 0&&(n.lightMapIntensity=t.lightMapIntensity);t.aoMap!==void 0&&(n.aoMap=getTexture(t.aoMap));t.aoMapIntensity!==void 0&&(n.aoMapIntensity=t.aoMapIntensity);t.gradientMap!==void 0&&(n.gradientMap=getTexture(t.gradientMap));t.clearcoatMap!==void 0&&(n.clearcoatMap=getTexture(t.clearcoatMap));t.clearcoatRoughnessMap!==void 0&&(n.clearcoatRoughnessMap=getTexture(t.clearcoatRoughnessMap));t.clearcoatNormalMap!==void 0&&(n.clearcoatNormalMap=getTexture(t.clearcoatNormalMap));t.clearcoatNormalScale!==void 0&&(n.clearcoatNormalScale=(new Vector2).fromArray(t.clearcoatNormalScale));t.iridescenceMap!==void 0&&(n.iridescenceMap=getTexture(t.iridescenceMap));t.iridescenceThicknessMap!==void 0&&(n.iridescenceThicknessMap=getTexture(t.iridescenceThicknessMap));t.transmissionMap!==void 0&&(n.transmissionMap=getTexture(t.transmissionMap));t.thicknessMap!==void 0&&(n.thicknessMap=getTexture(t.thicknessMap));t.anisotropyMap!==void 0&&(n.anisotropyMap=getTexture(t.anisotropyMap));t.sheenColorMap!==void 0&&(n.sheenColorMap=getTexture(t.sheenColorMap));t.sheenRoughnessMap!==void 0&&(n.sheenRoughnessMap=getTexture(t.sheenRoughnessMap));return n}setTextures(t){this.textures=t;return this}static createMaterialFromType(t){const e={ShadowMaterial:ShadowMaterial,SpriteMaterial:SpriteMaterial,RawShaderMaterial:RawShaderMaterial,ShaderMaterial:ShaderMaterial,PointsMaterial:PointsMaterial,MeshPhysicalMaterial:MeshPhysicalMaterial,MeshStandardMaterial:MeshStandardMaterial,MeshPhongMaterial:MeshPhongMaterial,MeshToonMaterial:MeshToonMaterial,MeshNormalMaterial:MeshNormalMaterial,MeshLambertMaterial:MeshLambertMaterial,MeshDepthMaterial:MeshDepthMaterial,MeshDistanceMaterial:MeshDistanceMaterial,MeshBasicMaterial:MeshBasicMaterial,MeshMatcapMaterial:MeshMatcapMaterial,LineDashedMaterial:LineDashedMaterial,LineBasicMaterial:LineBasicMaterial,Material:Material};return new e[t]}}class LoaderUtils{static decodeText(t){console.warn(\"THREE.LoaderUtils: decodeText() has been deprecated with r165 and will be removed with r175. Use TextDecoder instead.\");if(typeof TextDecoder!==\"undefined\")return(new TextDecoder).decode(t);let e=\"\";for(let n=0,i=t.length;n<i;n++)e+=String.fromCharCode(t[n]);try{return decodeURIComponent(escape(e))}catch(t){return e}}static extractUrlBase(t){const e=t.lastIndexOf(\"/\");return e===-1?\"./\":t.slice(0,e+1)}static resolveURL(t,e){if(typeof t!==\"string\"||t===\"\")return\"\";/^https?:\\/\\//i.test(e)&&/^\\//.test(t)&&(e=e.replace(/(^https?:\\/\\/[^\\/]+).*/i,\"$1\"));return/^(https?:)?\\/\\//i.test(t)||/^data:.*,.*$/i.test(t)||/^blob:.*$/i.test(t)?t:e+t}}class InstancedBufferGeometry extends BufferGeometry{constructor(){super();this.isInstancedBufferGeometry=true;this.type=\"InstancedBufferGeometry\";this.instanceCount=Infinity}copy(t){super.copy(t);this.instanceCount=t.instanceCount;return this}toJSON(){const t=super.toJSON();t.instanceCount=this.instanceCount;t.isInstancedBufferGeometry=true;return t}}class BufferGeometryLoader extends Loader{constructor(t){super(t)}load(t,e,n,i){const r=this;const s=new FileLoader(r.manager);s.setPath(r.path);s.setRequestHeader(r.requestHeader);s.setWithCredentials(r.withCredentials);s.load(t,(function(n){try{e(r.parse(JSON.parse(n)))}catch(e){i?i(e):console.error(e);r.manager.itemError(t)}}),n,i)}parse(t){const e={};const n={};function getInterleavedBuffer(t,n){if(e[n]!==void 0)return e[n];const i=t.interleavedBuffers;const r=i[n];const s=getArrayBuffer(t,r.buffer);const a=getTypedArray(r.type,s);const o=new InterleavedBuffer(a,r.stride);o.uuid=r.uuid;e[n]=o;return o}function getArrayBuffer(t,e){if(n[e]!==void 0)return n[e];const i=t.arrayBuffers;const r=i[e];const s=new Uint32Array(r).buffer;n[e]=s;return s}const i=t.isInstancedBufferGeometry?new InstancedBufferGeometry:new BufferGeometry;const r=t.data.index;if(r!==void 0){const t=getTypedArray(r.type,r.array);i.setIndex(new BufferAttribute(t,1))}const s=t.data.attributes;for(const e in s){const n=s[e];let r;if(n.isInterleavedBufferAttribute){const e=getInterleavedBuffer(t.data,n.data);r=new InterleavedBufferAttribute(e,n.itemSize,n.offset,n.normalized)}else{const t=getTypedArray(n.type,n.array);const e=n.isInstancedBufferAttribute?InstancedBufferAttribute:BufferAttribute;r=new e(t,n.itemSize,n.normalized)}n.name!==void 0&&(r.name=n.name);n.usage!==void 0&&r.setUsage(n.usage);i.setAttribute(e,r)}const a=t.data.morphAttributes;if(a)for(const e in a){const n=a[e];const r=[];for(let e=0,i=n.length;e<i;e++){const i=n[e];let s;if(i.isInterleavedBufferAttribute){const e=getInterleavedBuffer(t.data,i.data);s=new InterleavedBufferAttribute(e,i.itemSize,i.offset,i.normalized)}else{const t=getTypedArray(i.type,i.array);s=new BufferAttribute(t,i.itemSize,i.normalized)}i.name!==void 0&&(s.name=i.name);r.push(s)}i.morphAttributes[e]=r}const o=t.data.morphTargetsRelative;o&&(i.morphTargetsRelative=true);const l=t.data.groups||t.data.drawcalls||t.data.offsets;if(l!==void 0)for(let t=0,e=l.length;t!==e;++t){const e=l[t];i.addGroup(e.start,e.count,e.materialIndex)}const c=t.data.boundingSphere;if(c!==void 0){const t=new Vector3;c.center!==void 0&&t.fromArray(c.center);i.boundingSphere=new Sphere(t,c.radius)}t.name&&(i.name=t.name);t.userData&&(i.userData=t.userData);return i}}class ObjectLoader extends Loader{constructor(t){super(t)}load(t,e,n,i){const r=this;const s=this.path===\"\"?LoaderUtils.extractUrlBase(t):this.path;this.resourcePath=this.resourcePath||s;const a=new FileLoader(this.manager);a.setPath(this.path);a.setRequestHeader(this.requestHeader);a.setWithCredentials(this.withCredentials);a.load(t,(function(n){let s=null;try{s=JSON.parse(n)}catch(e){i!==void 0&&i(e);console.error(\"THREE:ObjectLoader: Can't parse \"+t+\".\",e.message);return}const a=s.metadata;if(a!==void 0&&a.type!==void 0&&a.type.toLowerCase()!==\"geometry\")r.parse(s,e);else{i!==void 0&&i(new Error(\"THREE.ObjectLoader: Can't load \"+t));console.error(\"THREE.ObjectLoader: Can't load \"+t)}}),n,i)}async loadAsync(t,e){const n=this;const i=this.path===\"\"?LoaderUtils.extractUrlBase(t):this.path;this.resourcePath=this.resourcePath||i;const r=new FileLoader(this.manager);r.setPath(this.path);r.setRequestHeader(this.requestHeader);r.setWithCredentials(this.withCredentials);const s=await r.loadAsync(t,e);const a=JSON.parse(s);const o=a.metadata;if(o===void 0||o.type===void 0||o.type.toLowerCase()===\"geometry\")throw new Error(\"THREE.ObjectLoader: Can't load \"+t);return await n.parseAsync(a)}parse(t,e){const n=this.parseAnimations(t.animations);const i=this.parseShapes(t.shapes);const r=this.parseGeometries(t.geometries,i);const s=this.parseImages(t.images,(function(){e!==void 0&&e(l)}));const a=this.parseTextures(t.textures,s);const o=this.parseMaterials(t.materials,a);const l=this.parseObject(t.object,r,o,a,n);const c=this.parseSkeletons(t.skeletons,l);this.bindSkeletons(l,c);this.bindLightTargets(l);if(e!==void 0){let t=false;for(const e in s)if(s[e].data instanceof HTMLImageElement){t=true;break}t===false&&e(l)}return l}async parseAsync(t){const e=this.parseAnimations(t.animations);const n=this.parseShapes(t.shapes);const i=this.parseGeometries(t.geometries,n);const r=await this.parseImagesAsync(t.images);const s=this.parseTextures(t.textures,r);const a=this.parseMaterials(t.materials,s);const o=this.parseObject(t.object,i,a,s,e);const l=this.parseSkeletons(t.skeletons,o);this.bindSkeletons(o,l);this.bindLightTargets(o);return o}parseShapes(t){const e={};if(t!==void 0)for(let n=0,i=t.length;n<i;n++){const i=(new Shape).fromJSON(t[n]);e[i.uuid]=i}return e}parseSkeletons(t,e){const n={};const i={};e.traverse((function(t){t.isBone&&(i[t.uuid]=t)}));if(t!==void 0)for(let e=0,r=t.length;e<r;e++){const r=(new Skeleton).fromJSON(t[e],i);n[r.uuid]=r}return n}parseGeometries(t,e){const n={};if(t!==void 0){const i=new BufferGeometryLoader;for(let r=0,s=t.length;r<s;r++){let s;const a=t[r];switch(a.type){case\"BufferGeometry\":case\"InstancedBufferGeometry\":s=i.parse(a);break;default:a.type in Xc?s=Xc[a.type].fromJSON(a,e):console.warn(`THREE.ObjectLoader: Unsupported geometry type \"${a.type}\"`)}s.uuid=a.uuid;a.name!==void 0&&(s.name=a.name);a.userData!==void 0&&(s.userData=a.userData);n[a.uuid]=s}}return n}parseMaterials(t,e){const n={};const i={};if(t!==void 0){const r=new MaterialLoader;r.setTextures(e);for(let e=0,s=t.length;e<s;e++){const s=t[e];n[s.uuid]===void 0&&(n[s.uuid]=r.parse(s));i[s.uuid]=n[s.uuid]}}return i}parseAnimations(t){const e={};if(t!==void 0)for(let n=0;n<t.length;n++){const i=t[n];const r=AnimationClip.parse(i);e[r.uuid]=r}return e}parseImages(t,e){const n=this;const i={};let r;function loadImage(t){n.manager.itemStart(t);return r.load(t,(function(){n.manager.itemEnd(t)}),void 0,(function(){n.manager.itemError(t);n.manager.itemEnd(t)}))}function deserializeImage(t){if(typeof t===\"string\"){const e=t;const i=/^(\\/\\/)|([a-z]+:(\\/\\/)?)/i.test(e)?e:n.resourcePath+e;return loadImage(i)}return t.data?{data:getTypedArray(t.type,t.data),width:t.width,height:t.height}:null}if(t!==void 0&&t.length>0){const n=new LoadingManager(e);r=new ImageLoader(n);r.setCrossOrigin(this.crossOrigin);for(let e=0,n=t.length;e<n;e++){const n=t[e];const r=n.url;if(Array.isArray(r)){const t=[];for(let e=0,n=r.length;e<n;e++){const n=r[e];const i=deserializeImage(n);i!==null&&(i instanceof HTMLImageElement?t.push(i):t.push(new DataTexture(i.data,i.width,i.height)))}i[n.uuid]=new Source(t)}else{const t=deserializeImage(n.url);i[n.uuid]=new Source(t)}}}return i}async parseImagesAsync(t){const e=this;const n={};let i;async function deserializeImage(t){if(typeof t===\"string\"){const n=t;const r=/^(\\/\\/)|([a-z]+:(\\/\\/)?)/i.test(n)?n:e.resourcePath+n;return await i.loadAsync(r)}return t.data?{data:getTypedArray(t.type,t.data),width:t.width,height:t.height}:null}if(t!==void 0&&t.length>0){i=new ImageLoader(this.manager);i.setCrossOrigin(this.crossOrigin);for(let e=0,i=t.length;e<i;e++){const i=t[e];const r=i.url;if(Array.isArray(r)){const t=[];for(let e=0,n=r.length;e<n;e++){const n=r[e];const i=await deserializeImage(n);i!==null&&(i instanceof HTMLImageElement?t.push(i):t.push(new DataTexture(i.data,i.width,i.height)))}n[i.uuid]=new Source(t)}else{const t=await deserializeImage(i.url);n[i.uuid]=new Source(t)}}}return n}parseTextures(t,e){function parseConstant(t,e){if(typeof t===\"number\")return t;console.warn(\"THREE.ObjectLoader.parseTexture: Constant should be in numeric form.\",t);return e[t]}const n={};if(t!==void 0)for(let i=0,r=t.length;i<r;i++){const r=t[i];r.image===void 0&&console.warn('THREE.ObjectLoader: No \"image\" specified for',r.uuid);e[r.image]===void 0&&console.warn(\"THREE.ObjectLoader: Undefined image\",r.image);const s=e[r.image];const a=s.data;let o;if(Array.isArray(a)){o=new CubeTexture;a.length===6&&(o.needsUpdate=true)}else{o=a&&a.data?new DataTexture:new Texture;a&&(o.needsUpdate=true)}o.source=s;o.uuid=r.uuid;r.name!==void 0&&(o.name=r.name);r.mapping!==void 0&&(o.mapping=parseConstant(r.mapping,nh));r.channel!==void 0&&(o.channel=r.channel);r.offset!==void 0&&o.offset.fromArray(r.offset);r.repeat!==void 0&&o.repeat.fromArray(r.repeat);r.center!==void 0&&o.center.fromArray(r.center);r.rotation!==void 0&&(o.rotation=r.rotation);if(r.wrap!==void 0){o.wrapS=parseConstant(r.wrap[0],ih);o.wrapT=parseConstant(r.wrap[1],ih)}r.format!==void 0&&(o.format=r.format);r.internalFormat!==void 0&&(o.internalFormat=r.internalFormat);r.type!==void 0&&(o.type=r.type);r.colorSpace!==void 0&&(o.colorSpace=r.colorSpace);r.minFilter!==void 0&&(o.minFilter=parseConstant(r.minFilter,rh));r.magFilter!==void 0&&(o.magFilter=parseConstant(r.magFilter,rh));r.anisotropy!==void 0&&(o.anisotropy=r.anisotropy);r.flipY!==void 0&&(o.flipY=r.flipY);r.generateMipmaps!==void 0&&(o.generateMipmaps=r.generateMipmaps);r.premultiplyAlpha!==void 0&&(o.premultiplyAlpha=r.premultiplyAlpha);r.unpackAlignment!==void 0&&(o.unpackAlignment=r.unpackAlignment);r.compareFunction!==void 0&&(o.compareFunction=r.compareFunction);r.userData!==void 0&&(o.userData=r.userData);n[r.uuid]=o}return n}parseObject(t,e,n,i,r){let s;function getGeometry(t){e[t]===void 0&&console.warn(\"THREE.ObjectLoader: Undefined geometry\",t);return e[t]}function getMaterial(t){if(t!==void 0){if(Array.isArray(t)){const e=[];for(let i=0,r=t.length;i<r;i++){const r=t[i];n[r]===void 0&&console.warn(\"THREE.ObjectLoader: Undefined material\",r);e.push(n[r])}return e}n[t]===void 0&&console.warn(\"THREE.ObjectLoader: Undefined material\",t);return n[t]}}function getTexture(t){i[t]===void 0&&console.warn(\"THREE.ObjectLoader: Undefined texture\",t);return i[t]}let a,o;switch(t.type){case\"Scene\":s=new Scene;t.background!==void 0&&(Number.isInteger(t.background)?s.background=new Color(t.background):s.background=getTexture(t.background));t.environment!==void 0&&(s.environment=getTexture(t.environment));if(t.fog!==void 0){t.fog.type===\"Fog\"?s.fog=new Fog(t.fog.color,t.fog.near,t.fog.far):t.fog.type===\"FogExp2\"&&(s.fog=new FogExp2(t.fog.color,t.fog.density));t.fog.name!==\"\"&&(s.fog.name=t.fog.name)}t.backgroundBlurriness!==void 0&&(s.backgroundBlurriness=t.backgroundBlurriness);t.backgroundIntensity!==void 0&&(s.backgroundIntensity=t.backgroundIntensity);t.backgroundRotation!==void 0&&s.backgroundRotation.fromArray(t.backgroundRotation);t.environmentIntensity!==void 0&&(s.environmentIntensity=t.environmentIntensity);t.environmentRotation!==void 0&&s.environmentRotation.fromArray(t.environmentRotation);break;case\"PerspectiveCamera\":s=new PerspectiveCamera(t.fov,t.aspect,t.near,t.far);t.focus!==void 0&&(s.focus=t.focus);t.zoom!==void 0&&(s.zoom=t.zoom);t.filmGauge!==void 0&&(s.filmGauge=t.filmGauge);t.filmOffset!==void 0&&(s.filmOffset=t.filmOffset);t.view!==void 0&&(s.view=Object.assign({},t.view));break;case\"OrthographicCamera\":s=new OrthographicCamera(t.left,t.right,t.top,t.bottom,t.near,t.far);t.zoom!==void 0&&(s.zoom=t.zoom);t.view!==void 0&&(s.view=Object.assign({},t.view));break;case\"AmbientLight\":s=new AmbientLight(t.color,t.intensity);break;case\"DirectionalLight\":s=new DirectionalLight(t.color,t.intensity);s.target=t.target||\"\";break;case\"PointLight\":s=new PointLight(t.color,t.intensity,t.distance,t.decay);break;case\"RectAreaLight\":s=new RectAreaLight(t.color,t.intensity,t.width,t.height);break;case\"SpotLight\":s=new SpotLight(t.color,t.intensity,t.distance,t.angle,t.penumbra,t.decay);s.target=t.target||\"\";break;case\"HemisphereLight\":s=new HemisphereLight(t.color,t.groundColor,t.intensity);break;case\"LightProbe\":s=(new LightProbe).fromJSON(t);break;case\"SkinnedMesh\":a=getGeometry(t.geometry);o=getMaterial(t.material);s=new SkinnedMesh(a,o);t.bindMode!==void 0&&(s.bindMode=t.bindMode);t.bindMatrix!==void 0&&s.bindMatrix.fromArray(t.bindMatrix);t.skeleton!==void 0&&(s.skeleton=t.skeleton);break;case\"Mesh\":a=getGeometry(t.geometry);o=getMaterial(t.material);s=new Mesh(a,o);break;case\"InstancedMesh\":a=getGeometry(t.geometry);o=getMaterial(t.material);const e=t.count;const n=t.instanceMatrix;const i=t.instanceColor;s=new InstancedMesh(a,o,e);s.instanceMatrix=new InstancedBufferAttribute(new Float32Array(n.array),16);i!==void 0&&(s.instanceColor=new InstancedBufferAttribute(new Float32Array(i.array),i.itemSize));break;case\"BatchedMesh\":a=getGeometry(t.geometry);o=getMaterial(t.material);s=new BatchedMesh(t.maxInstanceCount,t.maxVertexCount,t.maxIndexCount,o);s.geometry=a;s.perObjectFrustumCulled=t.perObjectFrustumCulled;s.sortObjects=t.sortObjects;s._drawRanges=t.drawRanges;s._reservedRanges=t.reservedRanges;s._visibility=t.visibility;s._active=t.active;s._bounds=t.bounds.map((t=>{const e=new Box3;e.min.fromArray(t.boxMin);e.max.fromArray(t.boxMax);const n=new Sphere;n.radius=t.sphereRadius;n.center.fromArray(t.sphereCenter);return{boxInitialized:t.boxInitialized,box:e,sphereInitialized:t.sphereInitialized,sphere:n}}));s._maxInstanceCount=t.maxInstanceCount;s._maxVertexCount=t.maxVertexCount;s._maxIndexCount=t.maxIndexCount;s._geometryInitialized=t.geometryInitialized;s._geometryCount=t.geometryCount;s._matricesTexture=getTexture(t.matricesTexture.uuid);t.colorsTexture!==void 0&&(s._colorsTexture=getTexture(t.colorsTexture.uuid));break;case\"LOD\":s=new LOD;break;case\"Line\":s=new Line(getGeometry(t.geometry),getMaterial(t.material));break;case\"LineLoop\":s=new LineLoop(getGeometry(t.geometry),getMaterial(t.material));break;case\"LineSegments\":s=new LineSegments(getGeometry(t.geometry),getMaterial(t.material));break;case\"PointCloud\":case\"Points\":s=new Points(getGeometry(t.geometry),getMaterial(t.material));break;case\"Sprite\":s=new Sprite(getMaterial(t.material));break;case\"Group\":s=new Group;break;case\"Bone\":s=new Bone;break;default:s=new Object3D}s.uuid=t.uuid;t.name!==void 0&&(s.name=t.name);if(t.matrix!==void 0){s.matrix.fromArray(t.matrix);t.matrixAutoUpdate!==void 0&&(s.matrixAutoUpdate=t.matrixAutoUpdate);s.matrixAutoUpdate&&s.matrix.decompose(s.position,s.quaternion,s.scale)}else{t.position!==void 0&&s.position.fromArray(t.position);t.rotation!==void 0&&s.rotation.fromArray(t.rotation);t.quaternion!==void 0&&s.quaternion.fromArray(t.quaternion);t.scale!==void 0&&s.scale.fromArray(t.scale)}t.up!==void 0&&s.up.fromArray(t.up);t.castShadow!==void 0&&(s.castShadow=t.castShadow);t.receiveShadow!==void 0&&(s.receiveShadow=t.receiveShadow);if(t.shadow){t.shadow.intensity!==void 0&&(s.shadow.intensity=t.shadow.intensity);t.shadow.bias!==void 0&&(s.shadow.bias=t.shadow.bias);t.shadow.normalBias!==void 0&&(s.shadow.normalBias=t.shadow.normalBias);t.shadow.radius!==void 0&&(s.shadow.radius=t.shadow.radius);t.shadow.mapSize!==void 0&&s.shadow.mapSize.fromArray(t.shadow.mapSize);t.shadow.camera!==void 0&&(s.shadow.camera=this.parseObject(t.shadow.camera))}t.visible!==void 0&&(s.visible=t.visible);t.frustumCulled!==void 0&&(s.frustumCulled=t.frustumCulled);t.renderOrder!==void 0&&(s.renderOrder=t.renderOrder);t.userData!==void 0&&(s.userData=t.userData);t.layers!==void 0&&(s.layers.mask=t.layers);if(t.children!==void 0){const a=t.children;for(let t=0;t<a.length;t++)s.add(this.parseObject(a[t],e,n,i,r))}if(t.animations!==void 0){const e=t.animations;for(let t=0;t<e.length;t++){const n=e[t];s.animations.push(r[n])}}if(t.type===\"LOD\"){t.autoUpdate!==void 0&&(s.autoUpdate=t.autoUpdate);const e=t.levels;for(let t=0;t<e.length;t++){const n=e[t];const i=s.getObjectByProperty(\"uuid\",n.object);i!==void 0&&s.addLevel(i,n.distance,n.hysteresis)}}return s}bindSkeletons(t,e){Object.keys(e).length!==0&&t.traverse((function(t){if(t.isSkinnedMesh===true&&t.skeleton!==void 0){const n=e[t.skeleton];n===void 0?console.warn(\"THREE.ObjectLoader: No skeleton found with UUID:\",t.skeleton):t.bind(n,t.bindMatrix)}}))}bindLightTargets(t){t.traverse((function(e){if(e.isDirectionalLight||e.isSpotLight){const n=e.target;const i=t.getObjectByProperty(\"uuid\",n);e.target=i!==void 0?i:new Object3D}}))}}const nh={UVMapping:lt,CubeReflectionMapping:ct,CubeRefractionMapping:ht,EquirectangularReflectionMapping:ut,EquirectangularRefractionMapping:dt,CubeUVReflectionMapping:pt};const ih={RepeatWrapping:ft,ClampToEdgeWrapping:mt,MirroredRepeatWrapping:gt};const rh={NearestFilter:vt,NearestMipmapNearestFilter:_t,NearestMipmapLinearFilter:yt,LinearFilter:St,LinearMipmapNearestFilter:bt,LinearMipmapLinearFilter:wt};class ImageBitmapLoader extends Loader{constructor(t){super(t);this.isImageBitmapLoader=true;typeof createImageBitmap===\"undefined\"&&console.warn(\"THREE.ImageBitmapLoader: createImageBitmap() not supported.\");typeof fetch===\"undefined\"&&console.warn(\"THREE.ImageBitmapLoader: fetch() not supported.\");this.options={premultiplyAlpha:\"none\"}}setOptions(t){this.options=t;return this}load(t,e,n,i){t===void 0&&(t=\"\");this.path!==void 0&&(t=this.path+t);t=this.manager.resolveURL(t);const r=this;const s=qc.get(t);if(s!==void 0){r.manager.itemStart(t);if(s.then){s.then((n=>{e&&e(n);r.manager.itemEnd(t)})).catch((t=>{i&&i(t)}));return}setTimeout((function(){e&&e(s);r.manager.itemEnd(t)}),0);return s}const a={};a.credentials=this.crossOrigin===\"anonymous\"?\"same-origin\":\"include\";a.headers=this.requestHeader;const o=fetch(t,a).then((function(t){return t.blob()})).then((function(t){return createImageBitmap(t,Object.assign(r.options,{colorSpaceConversion:\"none\"}))})).then((function(n){qc.add(t,n);e&&e(n);r.manager.itemEnd(t);return n})).catch((function(e){i&&i(e);qc.remove(t);r.manager.itemError(t);r.manager.itemEnd(t)}));qc.add(t,o);r.manager.itemStart(t)}}let sh;class AudioContext{static getContext(){sh===void 0&&(sh=new(window.AudioContext||window.webkitAudioContext));return sh}static setContext(t){sh=t}}class AudioLoader extends Loader{constructor(t){super(t)}load(t,e,n,i){const r=this;const s=new FileLoader(this.manager);s.setResponseType(\"arraybuffer\");s.setPath(this.path);s.setRequestHeader(this.requestHeader);s.setWithCredentials(this.withCredentials);s.load(t,(function(t){try{const n=t.slice(0);const i=AudioContext.getContext();i.decodeAudioData(n,(function(t){e(t)})).catch(handleError)}catch(t){handleError(t)}}),n,i);function handleError(e){i?i(e):console.error(e);r.manager.itemError(t)}}}const ah=new Matrix4;const oh=new Matrix4;const lh=new Matrix4;class StereoCamera{constructor(){this.type=\"StereoCamera\";this.aspect=1;this.eyeSep=.064;this.cameraL=new PerspectiveCamera;this.cameraL.layers.enable(1);this.cameraL.matrixAutoUpdate=false;this.cameraR=new PerspectiveCamera;this.cameraR.layers.enable(2);this.cameraR.matrixAutoUpdate=false;this._cache={focus:null,fov:null,aspect:null,near:null,far:null,zoom:null,eyeSep:null}}update(t){const e=this._cache;const n=e.focus!==t.focus||e.fov!==t.fov||e.aspect!==t.aspect*this.aspect||e.near!==t.near||e.far!==t.far||e.zoom!==t.zoom||e.eyeSep!==this.eyeSep;if(n){e.focus=t.focus;e.fov=t.fov;e.aspect=t.aspect*this.aspect;e.near=t.near;e.far=t.far;e.zoom=t.zoom;e.eyeSep=this.eyeSep;lh.copy(t.projectionMatrix);const n=e.eyeSep/2;const i=n*e.near/e.focus;const r=e.near*Math.tan(Xn*e.fov*.5)/e.zoom;let s,a;oh.elements[12]=-n;ah.elements[12]=n;s=-r*e.aspect+i;a=r*e.aspect+i;lh.elements[0]=2*e.near/(a-s);lh.elements[8]=(a+s)/(a-s);this.cameraL.projectionMatrix.copy(lh);s=-r*e.aspect-i;a=r*e.aspect-i;lh.elements[0]=2*e.near/(a-s);lh.elements[8]=(a+s)/(a-s);this.cameraR.projectionMatrix.copy(lh)}this.cameraL.matrixWorld.copy(t.matrixWorld).multiply(oh);this.cameraR.matrixWorld.copy(t.matrixWorld).multiply(ah)}}class Clock{constructor(t=true){this.autoStart=t;this.startTime=0;this.oldTime=0;this.elapsedTime=0;this.running=false}start(){this.startTime=now();this.oldTime=this.startTime;this.elapsedTime=0;this.running=true}stop(){this.getElapsedTime();this.running=false;this.autoStart=false}getElapsedTime(){this.getDelta();return this.elapsedTime}getDelta(){let t=0;if(this.autoStart&&!this.running){this.start();return 0}if(this.running){const e=now();t=(e-this.oldTime)/1e3;this.oldTime=e;this.elapsedTime+=t}return t}}function now(){return(typeof performance===\"undefined\"?Date:performance).now()}const ch=new Vector3;const hh=new Quaternion;const uh=new Vector3;const dh=new Vector3;class AudioListener extends Object3D{constructor(){super();this.type=\"AudioListener\";this.context=AudioContext.getContext();this.gain=this.context.createGain();this.gain.connect(this.context.destination);this.filter=null;this.timeDelta=0;this._clock=new Clock}getInput(){return this.gain}removeFilter(){if(this.filter!==null){this.gain.disconnect(this.filter);this.filter.disconnect(this.context.destination);this.gain.connect(this.context.destination);this.filter=null}return this}getFilter(){return this.filter}setFilter(t){if(this.filter!==null){this.gain.disconnect(this.filter);this.filter.disconnect(this.context.destination)}else this.gain.disconnect(this.context.destination);this.filter=t;this.gain.connect(this.filter);this.filter.connect(this.context.destination);return this}getMasterVolume(){return this.gain.gain.value}setMasterVolume(t){this.gain.gain.setTargetAtTime(t,this.context.currentTime,.01);return this}updateMatrixWorld(t){super.updateMatrixWorld(t);const e=this.context.listener;const n=this.up;this.timeDelta=this._clock.getDelta();this.matrixWorld.decompose(ch,hh,uh);dh.set(0,0,-1).applyQuaternion(hh);if(e.positionX){const t=this.context.currentTime+this.timeDelta;e.positionX.linearRampToValueAtTime(ch.x,t);e.positionY.linearRampToValueAtTime(ch.y,t);e.positionZ.linearRampToValueAtTime(ch.z,t);e.forwardX.linearRampToValueAtTime(dh.x,t);e.forwardY.linearRampToValueAtTime(dh.y,t);e.forwardZ.linearRampToValueAtTime(dh.z,t);e.upX.linearRampToValueAtTime(n.x,t);e.upY.linearRampToValueAtTime(n.y,t);e.upZ.linearRampToValueAtTime(n.z,t)}else{e.setPosition(ch.x,ch.y,ch.z);e.setOrientation(dh.x,dh.y,dh.z,n.x,n.y,n.z)}}}class Audio extends Object3D{constructor(t){super();this.type=\"Audio\";this.listener=t;this.context=t.context;this.gain=this.context.createGain();this.gain.connect(t.getInput());this.autoplay=false;this.buffer=null;this.detune=0;this.loop=false;this.loopStart=0;this.loopEnd=0;this.offset=0;this.duration=void 0;this.playbackRate=1;this.isPlaying=false;this.hasPlaybackControl=true;this.source=null;this.sourceType=\"empty\";this._startedAt=0;this._progress=0;this._connected=false;this.filters=[]}getOutput(){return this.gain}setNodeSource(t){this.hasPlaybackControl=false;this.sourceType=\"audioNode\";this.source=t;this.connect();return this}setMediaElementSource(t){this.hasPlaybackControl=false;this.sourceType=\"mediaNode\";this.source=this.context.createMediaElementSource(t);this.connect();return this}setMediaStreamSource(t){this.hasPlaybackControl=false;this.sourceType=\"mediaStreamNode\";this.source=this.context.createMediaStreamSource(t);this.connect();return this}setBuffer(t){this.buffer=t;this.sourceType=\"buffer\";this.autoplay&&this.play();return this}play(t=0){if(this.isPlaying===true){console.warn(\"THREE.Audio: Audio is already playing.\");return}if(this.hasPlaybackControl===false){console.warn(\"THREE.Audio: this Audio has no playback control.\");return}this._startedAt=this.context.currentTime+t;const e=this.context.createBufferSource();e.buffer=this.buffer;e.loop=this.loop;e.loopStart=this.loopStart;e.loopEnd=this.loopEnd;e.onended=this.onEnded.bind(this);e.start(this._startedAt,this._progress+this.offset,this.duration);this.isPlaying=true;this.source=e;this.setDetune(this.detune);this.setPlaybackRate(this.playbackRate);return this.connect()}pause(){if(this.hasPlaybackControl!==false){if(this.isPlaying===true){this._progress+=Math.max(this.context.currentTime-this._startedAt,0)*this.playbackRate;this.loop===true&&(this._progress=this._progress%(this.duration||this.buffer.duration));this.source.stop();this.source.onended=null;this.isPlaying=false}return this}console.warn(\"THREE.Audio: this Audio has no playback control.\")}stop(){if(this.hasPlaybackControl!==false){this._progress=0;if(this.source!==null){this.source.stop();this.source.onended=null}this.isPlaying=false;return this}console.warn(\"THREE.Audio: this Audio has no playback control.\")}connect(){if(this.filters.length>0){this.source.connect(this.filters[0]);for(let t=1,e=this.filters.length;t<e;t++)this.filters[t-1].connect(this.filters[t]);this.filters[this.filters.length-1].connect(this.getOutput())}else this.source.connect(this.getOutput());this._connected=true;return this}disconnect(){if(this._connected!==false){if(this.filters.length>0){this.source.disconnect(this.filters[0]);for(let t=1,e=this.filters.length;t<e;t++)this.filters[t-1].disconnect(this.filters[t]);this.filters[this.filters.length-1].disconnect(this.getOutput())}else this.source.disconnect(this.getOutput());this._connected=false;return this}}getFilters(){return this.filters}setFilters(t){t||(t=[]);if(this._connected===true){this.disconnect();this.filters=t.slice();this.connect()}else this.filters=t.slice();return this}setDetune(t){this.detune=t;this.isPlaying===true&&this.source.detune!==void 0&&this.source.detune.setTargetAtTime(this.detune,this.context.currentTime,.01);return this}getDetune(){return this.detune}getFilter(){return this.getFilters()[0]}setFilter(t){return this.setFilters(t?[t]:[])}setPlaybackRate(t){if(this.hasPlaybackControl!==false){this.playbackRate=t;this.isPlaying===true&&this.source.playbackRate.setTargetAtTime(this.playbackRate,this.context.currentTime,.01);return this}console.warn(\"THREE.Audio: this Audio has no playback control.\")}getPlaybackRate(){return this.playbackRate}onEnded(){this.isPlaying=false}getLoop(){if(this.hasPlaybackControl===false){console.warn(\"THREE.Audio: this Audio has no playback control.\");return false}return this.loop}setLoop(t){if(this.hasPlaybackControl!==false){this.loop=t;this.isPlaying===true&&(this.source.loop=this.loop);return this}console.warn(\"THREE.Audio: this Audio has no playback control.\")}setLoopStart(t){this.loopStart=t;return this}setLoopEnd(t){this.loopEnd=t;return this}getVolume(){return this.gain.gain.value}setVolume(t){this.gain.gain.setTargetAtTime(t,this.context.currentTime,.01);return this}}const ph=new Vector3;const fh=new Quaternion;const mh=new Vector3;const gh=new Vector3;class PositionalAudio extends Audio{constructor(t){super(t);this.panner=this.context.createPanner();this.panner.panningModel=\"HRTF\";this.panner.connect(this.gain)}connect(){super.connect();this.panner.connect(this.gain)}disconnect(){super.disconnect();this.panner.disconnect(this.gain)}getOutput(){return this.panner}getRefDistance(){return this.panner.refDistance}setRefDistance(t){this.panner.refDistance=t;return this}getRolloffFactor(){return this.panner.rolloffFactor}setRolloffFactor(t){this.panner.rolloffFactor=t;return this}getDistanceModel(){return this.panner.distanceModel}setDistanceModel(t){this.panner.distanceModel=t;return this}getMaxDistance(){return this.panner.maxDistance}setMaxDistance(t){this.panner.maxDistance=t;return this}setDirectionalCone(t,e,n){this.panner.coneInnerAngle=t;this.panner.coneOuterAngle=e;this.panner.coneOuterGain=n;return this}updateMatrixWorld(t){super.updateMatrixWorld(t);if(this.hasPlaybackControl===true&&this.isPlaying===false)return;this.matrixWorld.decompose(ph,fh,mh);gh.set(0,0,1).applyQuaternion(fh);const e=this.panner;if(e.positionX){const t=this.context.currentTime+this.listener.timeDelta;e.positionX.linearRampToValueAtTime(ph.x,t);e.positionY.linearRampToValueAtTime(ph.y,t);e.positionZ.linearRampToValueAtTime(ph.z,t);e.orientationX.linearRampToValueAtTime(gh.x,t);e.orientationY.linearRampToValueAtTime(gh.y,t);e.orientationZ.linearRampToValueAtTime(gh.z,t)}else{e.setPosition(ph.x,ph.y,ph.z);e.setOrientation(gh.x,gh.y,gh.z)}}}class AudioAnalyser{constructor(t,e=2048){this.analyser=t.context.createAnalyser();this.analyser.fftSize=e;this.data=new Uint8Array(this.analyser.frequencyBinCount);t.getOutput().connect(this.analyser)}getFrequencyData(){this.analyser.getByteFrequencyData(this.data);return this.data}getAverageFrequency(){let t=0;const e=this.getFrequencyData();for(let n=0;n<e.length;n++)t+=e[n];return t/e.length}}class PropertyMixer{constructor(t,e,n){this.binding=t;this.valueSize=n;let i,r,s;switch(e){case\"quaternion\":i=this._slerp;r=this._slerpAdditive;s=this._setAdditiveIdentityQuaternion;this.buffer=new Float64Array(n*6);this._workIndex=5;break;case\"string\":case\"bool\":i=this._select;r=this._select;s=this._setAdditiveIdentityOther;this.buffer=new Array(n*5);break;default:i=this._lerp;r=this._lerpAdditive;s=this._setAdditiveIdentityNumeric;this.buffer=new Float64Array(n*5)}this._mixBufferRegion=i;this._mixBufferRegionAdditive=r;this._setIdentity=s;this._origIndex=3;this._addIndex=4;this.cumulativeWeight=0;this.cumulativeWeightAdditive=0;this.useCount=0;this.referenceCount=0}accumulate(t,e){const n=this.buffer,i=this.valueSize,r=t*i+i;let s=this.cumulativeWeight;if(s===0){for(let t=0;t!==i;++t)n[r+t]=n[t];s=e}else{s+=e;const t=e/s;this._mixBufferRegion(n,r,0,t,i)}this.cumulativeWeight=s}accumulateAdditive(t){const e=this.buffer,n=this.valueSize,i=n*this._addIndex;this.cumulativeWeightAdditive===0&&this._setIdentity();this._mixBufferRegionAdditive(e,i,0,t,n);this.cumulativeWeightAdditive+=t}apply(t){const e=this.valueSize,n=this.buffer,i=t*e+e,r=this.cumulativeWeight,s=this.cumulativeWeightAdditive,a=this.binding;this.cumulativeWeight=0;this.cumulativeWeightAdditive=0;if(r<1){const t=e*this._origIndex;this._mixBufferRegion(n,i,t,1-r,e)}s>0&&this._mixBufferRegionAdditive(n,i,this._addIndex*e,1,e);for(let t=e,r=e+e;t!==r;++t)if(n[t]!==n[t+e]){a.setValue(n,i);break}}saveOriginalState(){const t=this.binding;const e=this.buffer,n=this.valueSize,i=n*this._origIndex;t.getValue(e,i);for(let t=n,r=i;t!==r;++t)e[t]=e[i+t%n];this._setIdentity();this.cumulativeWeight=0;this.cumulativeWeightAdditive=0}restoreOriginalState(){const t=this.valueSize*3;this.binding.setValue(this.buffer,t)}_setAdditiveIdentityNumeric(){const t=this._addIndex*this.valueSize;const e=t+this.valueSize;for(let n=t;n<e;n++)this.buffer[n]=0}_setAdditiveIdentityQuaternion(){this._setAdditiveIdentityNumeric();this.buffer[this._addIndex*this.valueSize+3]=1}_setAdditiveIdentityOther(){const t=this._origIndex*this.valueSize;const e=this._addIndex*this.valueSize;for(let n=0;n<this.valueSize;n++)this.buffer[e+n]=this.buffer[t+n]}_select(t,e,n,i,r){if(i>=.5)for(let i=0;i!==r;++i)t[e+i]=t[n+i]}_slerp(t,e,n,i){Quaternion.slerpFlat(t,e,t,e,t,n,i)}_slerpAdditive(t,e,n,i,r){const s=this._workIndex*r;Quaternion.multiplyQuaternionsFlat(t,s,t,e,t,n);Quaternion.slerpFlat(t,e,t,e,t,s,i)}_lerp(t,e,n,i,r){const s=1-i;for(let a=0;a!==r;++a){const r=e+a;t[r]=t[r]*s+t[n+a]*i}}_lerpAdditive(t,e,n,i,r){for(let s=0;s!==r;++s){const r=e+s;t[r]=t[r]+t[n+s]*i}}}const vh=\"\\\\[\\\\]\\\\.:\\\\/\";const _h=new RegExp(\"[\"+vh+\"]\",\"g\");const xh=\"[^\"+vh+\"]\";const yh=\"[^\"+vh.replace(\"\\\\.\",\"\")+\"]\";const Mh=/((?:WC+[\\/:])*)/.source.replace(\"WC\",xh);const Sh=/(WCOD+)?/.source.replace(\"WCOD\",yh);const bh=/(?:\\.(WC+)(?:\\[(.+)\\])?)?/.source.replace(\"WC\",xh);const Th=/\\.(WC+)(?:\\[(.+)\\])?/.source.replace(\"WC\",xh);const wh=new RegExp(\"^\"+Mh+Sh+bh+Th+\"$\");const Eh=[\"material\",\"materials\",\"bones\",\"map\"];class Composite{constructor(t,e,n){const i=n||PropertyBinding.parseTrackName(e);this._targetGroup=t;this._bindings=t.subscribe_(e,i)}getValue(t,e){this.bind();const n=this._targetGroup.nCachedObjects_,i=this._bindings[n];i!==void 0&&i.getValue(t,e)}setValue(t,e){const n=this._bindings;for(let i=this._targetGroup.nCachedObjects_,r=n.length;i!==r;++i)n[i].setValue(t,e)}bind(){const t=this._bindings;for(let e=this._targetGroup.nCachedObjects_,n=t.length;e!==n;++e)t[e].bind()}unbind(){const t=this._bindings;for(let e=this._targetGroup.nCachedObjects_,n=t.length;e!==n;++e)t[e].unbind()}}class PropertyBinding{constructor(t,e,n){this.path=e;this.parsedPath=n||PropertyBinding.parseTrackName(e);this.node=PropertyBinding.findNode(t,this.parsedPath.nodeName);this.rootNode=t;this.getValue=this._getValue_unbound;this.setValue=this._setValue_unbound}static create(t,e,n){return t&&t.isAnimationObjectGroup?new PropertyBinding.Composite(t,e,n):new PropertyBinding(t,e,n)}\n/**\n\t * Replaces spaces with underscores and removes unsupported characters from\n\t * node names, to ensure compatibility with parseTrackName().\n\t *\n\t * @param {string} name Node name to be sanitized.\n\t * @return {string}\n\t */static sanitizeNodeName(t){return t.replace(/\\s/g,\"_\").replace(_h,\"\")}static parseTrackName(t){const e=wh.exec(t);if(e===null)throw new Error(\"PropertyBinding: Cannot parse trackName: \"+t);const n={nodeName:e[2],objectName:e[3],objectIndex:e[4],propertyName:e[5],propertyIndex:e[6]};const i=n.nodeName&&n.nodeName.lastIndexOf(\".\");if(i!==void 0&&i!==-1){const t=n.nodeName.substring(i+1);if(Eh.indexOf(t)!==-1){n.nodeName=n.nodeName.substring(0,i);n.objectName=t}}if(n.propertyName===null||n.propertyName.length===0)throw new Error(\"PropertyBinding: can not parse propertyName from trackName: \"+t);return n}static findNode(t,e){if(e===void 0||e===\"\"||e===\".\"||e===-1||e===t.name||e===t.uuid)return t;if(t.skeleton){const n=t.skeleton.getBoneByName(e);if(n!==void 0)return n}if(t.children){const searchNodeSubtree=function(t){for(let n=0;n<t.length;n++){const i=t[n];if(i.name===e||i.uuid===e)return i;const r=searchNodeSubtree(i.children);if(r)return r}return null};const n=searchNodeSubtree(t.children);if(n)return n}return null}_getValue_unavailable(){}_setValue_unavailable(){}_getValue_direct(t,e){t[e]=this.targetObject[this.propertyName]}_getValue_array(t,e){const n=this.resolvedProperty;for(let i=0,r=n.length;i!==r;++i)t[e++]=n[i]}_getValue_arrayElement(t,e){t[e]=this.resolvedProperty[this.propertyIndex]}_getValue_toArray(t,e){this.resolvedProperty.toArray(t,e)}_setValue_direct(t,e){this.targetObject[this.propertyName]=t[e]}_setValue_direct_setNeedsUpdate(t,e){this.targetObject[this.propertyName]=t[e];this.targetObject.needsUpdate=true}_setValue_direct_setMatrixWorldNeedsUpdate(t,e){this.targetObject[this.propertyName]=t[e];this.targetObject.matrixWorldNeedsUpdate=true}_setValue_array(t,e){const n=this.resolvedProperty;for(let i=0,r=n.length;i!==r;++i)n[i]=t[e++]}_setValue_array_setNeedsUpdate(t,e){const n=this.resolvedProperty;for(let i=0,r=n.length;i!==r;++i)n[i]=t[e++];this.targetObject.needsUpdate=true}_setValue_array_setMatrixWorldNeedsUpdate(t,e){const n=this.resolvedProperty;for(let i=0,r=n.length;i!==r;++i)n[i]=t[e++];this.targetObject.matrixWorldNeedsUpdate=true}_setValue_arrayElement(t,e){this.resolvedProperty[this.propertyIndex]=t[e]}_setValue_arrayElement_setNeedsUpdate(t,e){this.resolvedProperty[this.propertyIndex]=t[e];this.targetObject.needsUpdate=true}_setValue_arrayElement_setMatrixWorldNeedsUpdate(t,e){this.resolvedProperty[this.propertyIndex]=t[e];this.targetObject.matrixWorldNeedsUpdate=true}_setValue_fromArray(t,e){this.resolvedProperty.fromArray(t,e)}_setValue_fromArray_setNeedsUpdate(t,e){this.resolvedProperty.fromArray(t,e);this.targetObject.needsUpdate=true}_setValue_fromArray_setMatrixWorldNeedsUpdate(t,e){this.resolvedProperty.fromArray(t,e);this.targetObject.matrixWorldNeedsUpdate=true}_getValue_unbound(t,e){this.bind();this.getValue(t,e)}_setValue_unbound(t,e){this.bind();this.setValue(t,e)}bind(){let t=this.node;const e=this.parsedPath;const n=e.objectName;const i=e.propertyName;let r=e.propertyIndex;if(!t){t=PropertyBinding.findNode(this.rootNode,e.nodeName);this.node=t}this.getValue=this._getValue_unavailable;this.setValue=this._setValue_unavailable;if(!t){console.warn(\"THREE.PropertyBinding: No target node found for track: \"+this.path+\".\");return}if(n){let i=e.objectIndex;switch(n){case\"materials\":if(!t.material){console.error(\"THREE.PropertyBinding: Can not bind to material as node does not have a material.\",this);return}if(!t.material.materials){console.error(\"THREE.PropertyBinding: Can not bind to material.materials as node.material does not have a materials array.\",this);return}t=t.material.materials;break;case\"bones\":if(!t.skeleton){console.error(\"THREE.PropertyBinding: Can not bind to bones as node does not have a skeleton.\",this);return}t=t.skeleton.bones;for(let e=0;e<t.length;e++)if(t[e].name===i){i=e;break}break;case\"map\":if(\"map\"in t){t=t.map;break}if(!t.material){console.error(\"THREE.PropertyBinding: Can not bind to material as node does not have a material.\",this);return}if(!t.material.map){console.error(\"THREE.PropertyBinding: Can not bind to material.map as node.material does not have a map.\",this);return}t=t.material.map;break;default:if(t[n]===void 0){console.error(\"THREE.PropertyBinding: Can not bind to objectName of node undefined.\",this);return}t=t[n]}if(i!==void 0){if(t[i]===void 0){console.error(\"THREE.PropertyBinding: Trying to bind to objectIndex of objectName, but is undefined.\",this,t);return}t=t[i]}}const s=t[i];if(s===void 0){const n=e.nodeName;console.error(\"THREE.PropertyBinding: Trying to update property for track: \"+n+\".\"+i+\" but it wasn't found.\",t);return}let a=this.Versioning.None;this.targetObject=t;t.needsUpdate!==void 0?a=this.Versioning.NeedsUpdate:t.matrixWorldNeedsUpdate!==void 0&&(a=this.Versioning.MatrixWorldNeedsUpdate);let o=this.BindingType.Direct;if(r!==void 0){if(i===\"morphTargetInfluences\"){if(!t.geometry){console.error(\"THREE.PropertyBinding: Can not bind to morphTargetInfluences because node does not have a geometry.\",this);return}if(!t.geometry.morphAttributes){console.error(\"THREE.PropertyBinding: Can not bind to morphTargetInfluences because node does not have a geometry.morphAttributes.\",this);return}t.morphTargetDictionary[r]!==void 0&&(r=t.morphTargetDictionary[r])}o=this.BindingType.ArrayElement;this.resolvedProperty=s;this.propertyIndex=r}else if(s.fromArray!==void 0&&s.toArray!==void 0){o=this.BindingType.HasFromToArray;this.resolvedProperty=s}else if(Array.isArray(s)){o=this.BindingType.EntireArray;this.resolvedProperty=s}else this.propertyName=i;this.getValue=this.GetterByBindingType[o];this.setValue=this.SetterByBindingTypeAndVersioning[o][a]}unbind(){this.node=null;this.getValue=this._getValue_unbound;this.setValue=this._setValue_unbound}}PropertyBinding.Composite=Composite;PropertyBinding.prototype.BindingType={Direct:0,EntireArray:1,ArrayElement:2,HasFromToArray:3};PropertyBinding.prototype.Versioning={None:0,NeedsUpdate:1,MatrixWorldNeedsUpdate:2};PropertyBinding.prototype.GetterByBindingType=[PropertyBinding.prototype._getValue_direct,PropertyBinding.prototype._getValue_array,PropertyBinding.prototype._getValue_arrayElement,PropertyBinding.prototype._getValue_toArray];PropertyBinding.prototype.SetterByBindingTypeAndVersioning=[[PropertyBinding.prototype._setValue_direct,PropertyBinding.prototype._setValue_direct_setNeedsUpdate,PropertyBinding.prototype._setValue_direct_setMatrixWorldNeedsUpdate],[PropertyBinding.prototype._setValue_array,PropertyBinding.prototype._setValue_array_setNeedsUpdate,PropertyBinding.prototype._setValue_array_setMatrixWorldNeedsUpdate],[PropertyBinding.prototype._setValue_arrayElement,PropertyBinding.prototype._setValue_arrayElement_setNeedsUpdate,PropertyBinding.prototype._setValue_arrayElement_setMatrixWorldNeedsUpdate],[PropertyBinding.prototype._setValue_fromArray,PropertyBinding.prototype._setValue_fromArray_setNeedsUpdate,PropertyBinding.prototype._setValue_fromArray_setMatrixWorldNeedsUpdate]];class AnimationObjectGroup{constructor(){this.isAnimationObjectGroup=true;this.uuid=generateUUID();this._objects=Array.prototype.slice.call(arguments);this.nCachedObjects_=0;const t={};this._indicesByUUID=t;for(let e=0,n=arguments.length;e!==n;++e)t[arguments[e].uuid]=e;this._paths=[];this._parsedPaths=[];this._bindings=[];this._bindingsIndicesByPath={};const e=this;this.stats={objects:{get total(){return e._objects.length},get inUse(){return this.total-e.nCachedObjects_}},get bindingsPerObject(){return e._bindings.length}}}add(){const t=this._objects,e=this._indicesByUUID,n=this._paths,i=this._parsedPaths,r=this._bindings,s=r.length;let a,o=t.length,l=this.nCachedObjects_;for(let c=0,h=arguments.length;c!==h;++c){const h=arguments[c],u=h.uuid;let d=e[u];if(d===void 0){d=o++;e[u]=d;t.push(h);for(let t=0,e=s;t!==e;++t)r[t].push(new PropertyBinding(h,n[t],i[t]))}else if(d<l){a=t[d];const o=--l,c=t[o];e[c.uuid]=d;t[d]=c;e[u]=o;t[o]=h;for(let t=0,e=s;t!==e;++t){const e=r[t],s=e[o];let a=e[d];e[d]=s;a===void 0&&(a=new PropertyBinding(h,n[t],i[t]));e[o]=a}}else t[d]!==a&&console.error(\"THREE.AnimationObjectGroup: Different objects with the same UUID detected. Clean the caches or recreate your infrastructure when reloading scenes.\")}this.nCachedObjects_=l}remove(){const t=this._objects,e=this._indicesByUUID,n=this._bindings,i=n.length;let r=this.nCachedObjects_;for(let s=0,a=arguments.length;s!==a;++s){const a=arguments[s],o=a.uuid,l=e[o];if(l!==void 0&&l>=r){const s=r++,c=t[s];e[c.uuid]=l;t[l]=c;e[o]=s;t[s]=a;for(let t=0,e=i;t!==e;++t){const e=n[t],i=e[s],r=e[l];e[l]=i;e[s]=r}}}this.nCachedObjects_=r}uncache(){const t=this._objects,e=this._indicesByUUID,n=this._bindings,i=n.length;let r=this.nCachedObjects_,s=t.length;for(let a=0,o=arguments.length;a!==o;++a){const o=arguments[a],l=o.uuid,c=e[l];if(c!==void 0){delete e[l];if(c<r){const a=--r,o=t[a],l=--s,h=t[l];e[o.uuid]=c;t[c]=o;e[h.uuid]=a;t[a]=h;t.pop();for(let t=0,e=i;t!==e;++t){const e=n[t],i=e[a],r=e[l];e[c]=i;e[a]=r;e.pop()}}else{const r=--s,a=t[r];r>0&&(e[a.uuid]=c);t[c]=a;t.pop();for(let t=0,e=i;t!==e;++t){const e=n[t];e[c]=e[r];e.pop()}}}}this.nCachedObjects_=r}subscribe_(t,e){const n=this._bindingsIndicesByPath;let i=n[t];const r=this._bindings;if(i!==void 0)return r[i];const s=this._paths,a=this._parsedPaths,o=this._objects,l=o.length,c=this.nCachedObjects_,h=new Array(l);i=r.length;n[t]=i;s.push(t);a.push(e);r.push(h);for(let n=c,i=o.length;n!==i;++n){const i=o[n];h[n]=new PropertyBinding(i,t,e)}return h}unsubscribe_(t){const e=this._bindingsIndicesByPath,n=e[t];if(n!==void 0){const i=this._paths,r=this._parsedPaths,s=this._bindings,a=s.length-1,o=s[a],l=t[a];e[l]=n;s[n]=o;s.pop();r[n]=r[a];r.pop();i[n]=i[a];i.pop()}}}class AnimationAction{constructor(t,e,n=null,i=e.blendMode){this._mixer=t;this._clip=e;this._localRoot=n;this.blendMode=i;const r=e.tracks,s=r.length,a=new Array(s);const o={endingStart:Be,endingEnd:Be};for(let t=0;t!==s;++t){const e=r[t].createInterpolant(null);a[t]=e;e.settings=o}this._interpolantSettings=o;this._interpolants=a;this._propertyBindings=new Array(s);this._cacheIndex=null;this._byClipCacheIndex=null;this._timeScaleInterpolant=null;this._weightInterpolant=null;this.loop=Le;this._loopCount=-1;this._startTime=null;this.time=0;this.timeScale=1;this._effectiveTimeScale=1;this.weight=1;this._effectiveWeight=1;this.repetitions=Infinity;this.paused=false;this.enabled=true;this.clampWhenFinished=false;this.zeroSlopeAtStart=true;this.zeroSlopeAtEnd=true}play(){this._mixer._activateAction(this);return this}stop(){this._mixer._deactivateAction(this);return this.reset()}reset(){this.paused=false;this.enabled=true;this.time=0;this._loopCount=-1;this._startTime=null;return this.stopFading().stopWarping()}isRunning(){return this.enabled&&!this.paused&&this.timeScale!==0&&this._startTime===null&&this._mixer._isActiveAction(this)}isScheduled(){return this._mixer._isActiveAction(this)}startAt(t){this._startTime=t;return this}setLoop(t,e){this.loop=t;this.repetitions=e;return this}setEffectiveWeight(t){this.weight=t;this._effectiveWeight=this.enabled?t:0;return this.stopFading()}getEffectiveWeight(){return this._effectiveWeight}fadeIn(t){return this._scheduleFading(t,0,1)}fadeOut(t){return this._scheduleFading(t,1,0)}crossFadeFrom(t,e,n){t.fadeOut(e);this.fadeIn(e);if(n){const n=this._clip.duration,i=t._clip.duration,r=i/n,s=n/i;t.warp(1,r,e);this.warp(s,1,e)}return this}crossFadeTo(t,e,n){return t.crossFadeFrom(this,e,n)}stopFading(){const t=this._weightInterpolant;if(t!==null){this._weightInterpolant=null;this._mixer._takeBackControlInterpolant(t)}return this}setEffectiveTimeScale(t){this.timeScale=t;this._effectiveTimeScale=this.paused?0:t;return this.stopWarping()}getEffectiveTimeScale(){return this._effectiveTimeScale}setDuration(t){this.timeScale=this._clip.duration/t;return this.stopWarping()}syncWith(t){this.time=t.time;this.timeScale=t.timeScale;return this.stopWarping()}halt(t){return this.warp(this._effectiveTimeScale,0,t)}warp(t,e,n){const i=this._mixer,r=i.time,s=this.timeScale;let a=this._timeScaleInterpolant;if(a===null){a=i._lendControlInterpolant();this._timeScaleInterpolant=a}const o=a.parameterPositions,l=a.sampleValues;o[0]=r;o[1]=r+n;l[0]=t/s;l[1]=e/s;return this}stopWarping(){const t=this._timeScaleInterpolant;if(t!==null){this._timeScaleInterpolant=null;this._mixer._takeBackControlInterpolant(t)}return this}getMixer(){return this._mixer}getClip(){return this._clip}getRoot(){return this._localRoot||this._mixer._root}_update(t,e,n,i){if(!this.enabled){this._updateWeight(t);return}const r=this._startTime;if(r!==null){const i=(t-r)*n;if(i<0||n===0)e=0;else{this._startTime=null;e=n*i}}e*=this._updateTimeScale(t);const s=this._updateTime(e);const a=this._updateWeight(t);if(a>0){const t=this._interpolants;const e=this._propertyBindings;switch(this.blendMode){case ze:for(let n=0,i=t.length;n!==i;++n){t[n].evaluate(s);e[n].accumulateAdditive(a)}break;case Fe:default:for(let n=0,r=t.length;n!==r;++n){t[n].evaluate(s);e[n].accumulate(i,a)}}}}_updateWeight(t){let e=0;if(this.enabled){e=this.weight;const n=this._weightInterpolant;if(n!==null){const i=n.evaluate(t)[0];e*=i;if(t>n.parameterPositions[1]){this.stopFading();i===0&&(this.enabled=false)}}}this._effectiveWeight=e;return e}_updateTimeScale(t){let e=0;if(!this.paused){e=this.timeScale;const n=this._timeScaleInterpolant;if(n!==null){const i=n.evaluate(t)[0];e*=i;if(t>n.parameterPositions[1]){this.stopWarping();e===0?this.paused=true:this.timeScale=e}}}this._effectiveTimeScale=e;return e}_updateTime(t){const e=this._clip.duration;const n=this.loop;let i=this.time+t;let r=this._loopCount;const s=n===Ie;if(t===0)return r===-1?i:s&&(r&1)===1?e-i:i;if(n===Pe){if(r===-1){this._loopCount=0;this._setEndings(true,true,false)}t:{if(i>=e)i=e;else{if(!(i<0)){this.time=i;break t}i=0}this.clampWhenFinished?this.paused=true:this.enabled=false;this.time=i;this._mixer.dispatchEvent({type:\"finished\",action:this,direction:t<0?-1:1})}}else{if(r===-1)if(t>=0){r=0;this._setEndings(true,this.repetitions===0,s)}else this._setEndings(this.repetitions===0,true,s);if(i>=e||i<0){const n=Math.floor(i/e);i-=e*n;r+=Math.abs(n);const a=this.repetitions-r;if(a<=0){this.clampWhenFinished?this.paused=true:this.enabled=false;i=t>0?e:0;this.time=i;this._mixer.dispatchEvent({type:\"finished\",action:this,direction:t>0?1:-1})}else{if(a===1){const e=t<0;this._setEndings(e,!e,s)}else this._setEndings(false,false,s);this._loopCount=r;this.time=i;this._mixer.dispatchEvent({type:\"loop\",action:this,loopDelta:n})}}else this.time=i;if(s&&(r&1)===1)return e-i}return i}_setEndings(t,e,n){const i=this._interpolantSettings;if(n){i.endingStart=Oe;i.endingEnd=Oe}else{i.endingStart=t?this.zeroSlopeAtStart?Oe:Be:Ve;i.endingEnd=e?this.zeroSlopeAtEnd?Oe:Be:Ve}}_scheduleFading(t,e,n){const i=this._mixer,r=i.time;let s=this._weightInterpolant;if(s===null){s=i._lendControlInterpolant();this._weightInterpolant=s}const a=s.parameterPositions,o=s.sampleValues;a[0]=r;o[0]=e;a[1]=r+t;o[1]=n;return this}}const Ah=new Float32Array(1);class AnimationMixer extends EventDispatcher{constructor(t){super();this._root=t;this._initMemoryManager();this._accuIndex=0;this.time=0;this.timeScale=1}_bindAction(t,e){const n=t._localRoot||this._root,i=t._clip.tracks,r=i.length,s=t._propertyBindings,a=t._interpolants,o=n.uuid,l=this._bindingsByRootAndName;let c=l[o];if(c===void 0){c={};l[o]=c}for(let t=0;t!==r;++t){const r=i[t],l=r.name;let h=c[l];if(h!==void 0){++h.referenceCount;s[t]=h}else{h=s[t];if(h!==void 0){if(h._cacheIndex===null){++h.referenceCount;this._addInactiveBinding(h,o,l)}continue}const i=e&&e._propertyBindings[t].binding.parsedPath;h=new PropertyMixer(PropertyBinding.create(n,l,i),r.ValueTypeName,r.getValueSize());++h.referenceCount;this._addInactiveBinding(h,o,l);s[t]=h}a[t].resultBuffer=h.buffer}}_activateAction(t){if(!this._isActiveAction(t)){if(t._cacheIndex===null){const e=(t._localRoot||this._root).uuid,n=t._clip.uuid,i=this._actionsByClip[n];this._bindAction(t,i&&i.knownActions[0]);this._addInactiveAction(t,n,e)}const e=t._propertyBindings;for(let t=0,n=e.length;t!==n;++t){const n=e[t];if(n.useCount++===0){this._lendBinding(n);n.saveOriginalState()}}this._lendAction(t)}}_deactivateAction(t){if(this._isActiveAction(t)){const e=t._propertyBindings;for(let t=0,n=e.length;t!==n;++t){const n=e[t];if(--n.useCount===0){n.restoreOriginalState();this._takeBackBinding(n)}}this._takeBackAction(t)}}_initMemoryManager(){this._actions=[];this._nActiveActions=0;this._actionsByClip={};this._bindings=[];this._nActiveBindings=0;this._bindingsByRootAndName={};this._controlInterpolants=[];this._nActiveControlInterpolants=0;const t=this;this.stats={actions:{get total(){return t._actions.length},get inUse(){return t._nActiveActions}},bindings:{get total(){return t._bindings.length},get inUse(){return t._nActiveBindings}},controlInterpolants:{get total(){return t._controlInterpolants.length},get inUse(){return t._nActiveControlInterpolants}}}}_isActiveAction(t){const e=t._cacheIndex;return e!==null&&e<this._nActiveActions}_addInactiveAction(t,e,n){const i=this._actions,r=this._actionsByClip;let s=r[e];if(s===void 0){s={knownActions:[t],actionByRoot:{}};t._byClipCacheIndex=0;r[e]=s}else{const e=s.knownActions;t._byClipCacheIndex=e.length;e.push(t)}t._cacheIndex=i.length;i.push(t);s.actionByRoot[n]=t}_removeInactiveAction(t){const e=this._actions,n=e[e.length-1],i=t._cacheIndex;n._cacheIndex=i;e[i]=n;e.pop();t._cacheIndex=null;const r=t._clip.uuid,s=this._actionsByClip,a=s[r],o=a.knownActions,l=o[o.length-1],c=t._byClipCacheIndex;l._byClipCacheIndex=c;o[c]=l;o.pop();t._byClipCacheIndex=null;const h=a.actionByRoot,u=(t._localRoot||this._root).uuid;delete h[u];o.length===0&&delete s[r];this._removeInactiveBindingsForAction(t)}_removeInactiveBindingsForAction(t){const e=t._propertyBindings;for(let t=0,n=e.length;t!==n;++t){const n=e[t];--n.referenceCount===0&&this._removeInactiveBinding(n)}}_lendAction(t){const e=this._actions,n=t._cacheIndex,i=this._nActiveActions++,r=e[i];t._cacheIndex=i;e[i]=t;r._cacheIndex=n;e[n]=r}_takeBackAction(t){const e=this._actions,n=t._cacheIndex,i=--this._nActiveActions,r=e[i];t._cacheIndex=i;e[i]=t;r._cacheIndex=n;e[n]=r}_addInactiveBinding(t,e,n){const i=this._bindingsByRootAndName,r=this._bindings;let s=i[e];if(s===void 0){s={};i[e]=s}s[n]=t;t._cacheIndex=r.length;r.push(t)}_removeInactiveBinding(t){const e=this._bindings,n=t.binding,i=n.rootNode.uuid,r=n.path,s=this._bindingsByRootAndName,a=s[i],o=e[e.length-1],l=t._cacheIndex;o._cacheIndex=l;e[l]=o;e.pop();delete a[r];Object.keys(a).length===0&&delete s[i]}_lendBinding(t){const e=this._bindings,n=t._cacheIndex,i=this._nActiveBindings++,r=e[i];t._cacheIndex=i;e[i]=t;r._cacheIndex=n;e[n]=r}_takeBackBinding(t){const e=this._bindings,n=t._cacheIndex,i=--this._nActiveBindings,r=e[i];t._cacheIndex=i;e[i]=t;r._cacheIndex=n;e[n]=r}_lendControlInterpolant(){const t=this._controlInterpolants,e=this._nActiveControlInterpolants++;let n=t[e];if(n===void 0){n=new LinearInterpolant(new Float32Array(2),new Float32Array(2),1,Ah);n.__cacheIndex=e;t[e]=n}return n}_takeBackControlInterpolant(t){const e=this._controlInterpolants,n=t.__cacheIndex,i=--this._nActiveControlInterpolants,r=e[i];t.__cacheIndex=i;e[i]=t;r.__cacheIndex=n;e[n]=r}clipAction(t,e,n){const i=e||this._root,r=i.uuid;let s=typeof t===\"string\"?AnimationClip.findByName(i,t):t;const a=s!==null?s.uuid:t;const o=this._actionsByClip[a];let l=null;n===void 0&&(n=s!==null?s.blendMode:Fe);if(o!==void 0){const t=o.actionByRoot[r];if(t!==void 0&&t.blendMode===n)return t;l=o.knownActions[0];s===null&&(s=l._clip)}if(s===null)return null;const c=new AnimationAction(this,s,e,n);this._bindAction(c,l);this._addInactiveAction(c,a,r);return c}existingAction(t,e){const n=e||this._root,i=n.uuid,r=typeof t===\"string\"?AnimationClip.findByName(n,t):t,s=r?r.uuid:t,a=this._actionsByClip[s];return a!==void 0&&a.actionByRoot[i]||null}stopAllAction(){const t=this._actions,e=this._nActiveActions;for(let n=e-1;n>=0;--n)t[n].stop();return this}update(t){t*=this.timeScale;const e=this._actions,n=this._nActiveActions,i=this.time+=t,r=Math.sign(t),s=this._accuIndex^=1;for(let a=0;a!==n;++a){const n=e[a];n._update(i,t,r,s)}const a=this._bindings,o=this._nActiveBindings;for(let t=0;t!==o;++t)a[t].apply(s);return this}setTime(t){this.time=0;for(let t=0;t<this._actions.length;t++)this._actions[t].time=0;return this.update(t)}getRoot(){return this._root}uncacheClip(t){const e=this._actions,n=t.uuid,i=this._actionsByClip,r=i[n];if(r!==void 0){const t=r.knownActions;for(let n=0,i=t.length;n!==i;++n){const i=t[n];this._deactivateAction(i);const r=i._cacheIndex,s=e[e.length-1];i._cacheIndex=null;i._byClipCacheIndex=null;s._cacheIndex=r;e[r]=s;e.pop();this._removeInactiveBindingsForAction(i)}delete i[n]}}uncacheRoot(t){const e=t.uuid,n=this._actionsByClip;for(const t in n){const i=n[t].actionByRoot,r=i[e];if(r!==void 0){this._deactivateAction(r);this._removeInactiveAction(r)}}const i=this._bindingsByRootAndName,r=i[e];if(r!==void 0)for(const t in r){const e=r[t];e.restoreOriginalState();this._removeInactiveBinding(e)}}uncacheAction(t,e){const n=this.existingAction(t,e);if(n!==null){this._deactivateAction(n);this._removeInactiveAction(n)}}}class Uniform{constructor(t){this.value=t}clone(){return new Uniform(this.value.clone===void 0?this.value:this.value.clone())}}let Ch=0;class UniformsGroup extends EventDispatcher{constructor(){super();this.isUniformsGroup=true;Object.defineProperty(this,\"id\",{value:Ch++});this.name=\"\";this.usage=Pn;this.uniforms=[]}add(t){this.uniforms.push(t);return this}remove(t){const e=this.uniforms.indexOf(t);e!==-1&&this.uniforms.splice(e,1);return this}setName(t){this.name=t;return this}setUsage(t){this.usage=t;return this}dispose(){this.dispatchEvent({type:\"dispose\"});return this}copy(t){this.name=t.name;this.usage=t.usage;const e=t.uniforms;this.uniforms.length=0;for(let t=0,n=e.length;t<n;t++){const n=Array.isArray(e[t])?e[t]:[e[t]];for(let t=0;t<n.length;t++)this.uniforms.push(n[t].clone())}return this}clone(){return(new this.constructor).copy(this)}}class InstancedInterleavedBuffer extends InterleavedBuffer{constructor(t,e,n=1){super(t,e);this.isInstancedInterleavedBuffer=true;this.meshPerAttribute=n}copy(t){super.copy(t);this.meshPerAttribute=t.meshPerAttribute;return this}clone(t){const e=super.clone(t);e.meshPerAttribute=this.meshPerAttribute;return e}toJSON(t){const e=super.toJSON(t);e.isInstancedInterleavedBuffer=true;e.meshPerAttribute=this.meshPerAttribute;return e}}class GLBufferAttribute{constructor(t,e,n,i,r){this.isGLBufferAttribute=true;this.name=\"\";this.buffer=t;this.type=e;this.itemSize=n;this.elementSize=i;this.count=r;this.version=0}set needsUpdate(t){t===true&&this.version++}setBuffer(t){this.buffer=t;return this}setType(t,e){this.type=t;this.elementSize=e;return this}setItemSize(t){this.itemSize=t;return this}setCount(t){this.count=t;return this}}const Rh=new Matrix4;class Raycaster{constructor(t,e,n=0,i=Infinity){this.ray=new Ray(t,e);this.near=n;this.far=i;this.camera=null;this.layers=new Layers;this.params={Mesh:{},Line:{threshold:1},LOD:{},Points:{threshold:1},Sprite:{}}}set(t,e){this.ray.set(t,e)}setFromCamera(t,e){if(e.isPerspectiveCamera){this.ray.origin.setFromMatrixPosition(e.matrixWorld);this.ray.direction.set(t.x,t.y,.5).unproject(e).sub(this.ray.origin).normalize();this.camera=e}else if(e.isOrthographicCamera){this.ray.origin.set(t.x,t.y,(e.near+e.far)/(e.near-e.far)).unproject(e);this.ray.direction.set(0,0,-1).transformDirection(e.matrixWorld);this.camera=e}else console.error(\"THREE.Raycaster: Unsupported camera type: \"+e.type)}setFromXRController(t){Rh.identity().extractRotation(t.matrixWorld);this.ray.origin.setFromMatrixPosition(t.matrixWorld);this.ray.direction.set(0,0,-1).applyMatrix4(Rh);return this}intersectObject(t,e=true,n=[]){intersect(t,this,n,e);n.sort(ascSort);return n}intersectObjects(t,e=true,n=[]){for(let i=0,r=t.length;i<r;i++)intersect(t[i],this,n,e);n.sort(ascSort);return n}}function ascSort(t,e){return t.distance-e.distance}function intersect(t,e,n,i){let r=true;if(t.layers.test(e.layers)){const i=t.raycast(e,n);i===false&&(r=false)}if(r===true&&i===true){const i=t.children;for(let t=0,r=i.length;t<r;t++)intersect(i[t],e,n,true)}}class Spherical{constructor(t=1,e=0,n=0){this.radius=t;this.phi=e;this.theta=n;return this}set(t,e,n){this.radius=t;this.phi=e;this.theta=n;return this}copy(t){this.radius=t.radius;this.phi=t.phi;this.theta=t.theta;return this}makeSafe(){const t=1e-6;this.phi=Math.max(t,Math.min(Math.PI-t,this.phi));return this}setFromVector3(t){return this.setFromCartesianCoords(t.x,t.y,t.z)}setFromCartesianCoords(t,e,n){this.radius=Math.sqrt(t*t+e*e+n*n);if(this.radius===0){this.theta=0;this.phi=0}else{this.theta=Math.atan2(t,n);this.phi=Math.acos(clamp(e/this.radius,-1,1))}return this}clone(){return(new this.constructor).copy(this)}}class Cylindrical{constructor(t=1,e=0,n=0){this.radius=t;this.theta=e;this.y=n;return this}set(t,e,n){this.radius=t;this.theta=e;this.y=n;return this}copy(t){this.radius=t.radius;this.theta=t.theta;this.y=t.y;return this}setFromVector3(t){return this.setFromCartesianCoords(t.x,t.y,t.z)}setFromCartesianCoords(t,e,n){this.radius=Math.sqrt(t*t+n*n);this.theta=Math.atan2(t,n);this.y=e;return this}clone(){return(new this.constructor).copy(this)}}class Matrix2{constructor(t,e,n,i){Matrix2.prototype.isMatrix2=true;this.elements=[1,0,0,1];t!==void 0&&this.set(t,e,n,i)}identity(){this.set(1,0,0,1);return this}fromArray(t,e=0){for(let n=0;n<4;n++)this.elements[n]=t[n+e];return this}set(t,e,n,i){const r=this.elements;r[0]=t;r[2]=e;r[1]=n;r[3]=i;return this}}const Ph=new Vector2;class Box2{constructor(t=new Vector2(Infinity,Infinity),e=new Vector2(-Infinity,-Infinity)){this.isBox2=true;this.min=t;this.max=e}set(t,e){this.min.copy(t);this.max.copy(e);return this}setFromPoints(t){this.makeEmpty();for(let e=0,n=t.length;e<n;e++)this.expandByPoint(t[e]);return this}setFromCenterAndSize(t,e){const n=Ph.copy(e).multiplyScalar(.5);this.min.copy(t).sub(n);this.max.copy(t).add(n);return this}clone(){return(new this.constructor).copy(this)}copy(t){this.min.copy(t.min);this.max.copy(t.max);return this}makeEmpty(){this.min.x=this.min.y=Infinity;this.max.x=this.max.y=-Infinity;return this}isEmpty(){return this.max.x<this.min.x||this.max.y<this.min.y}getCenter(t){return this.isEmpty()?t.set(0,0):t.addVectors(this.min,this.max).multiplyScalar(.5)}getSize(t){return this.isEmpty()?t.set(0,0):t.subVectors(this.max,this.min)}expandByPoint(t){this.min.min(t);this.max.max(t);return this}expandByVector(t){this.min.sub(t);this.max.add(t);return this}expandByScalar(t){this.min.addScalar(-t);this.max.addScalar(t);return this}containsPoint(t){return t.x>=this.min.x&&t.x<=this.max.x&&t.y>=this.min.y&&t.y<=this.max.y}containsBox(t){return this.min.x<=t.min.x&&t.max.x<=this.max.x&&this.min.y<=t.min.y&&t.max.y<=this.max.y}getParameter(t,e){return e.set((t.x-this.min.x)/(this.max.x-this.min.x),(t.y-this.min.y)/(this.max.y-this.min.y))}intersectsBox(t){return t.max.x>=this.min.x&&t.min.x<=this.max.x&&t.max.y>=this.min.y&&t.min.y<=this.max.y}clampPoint(t,e){return e.copy(t).clamp(this.min,this.max)}distanceToPoint(t){return this.clampPoint(t,Ph).distanceTo(t)}intersect(t){this.min.max(t.min);this.max.min(t.max);this.isEmpty()&&this.makeEmpty();return this}union(t){this.min.min(t.min);this.max.max(t.max);return this}translate(t){this.min.add(t);this.max.add(t);return this}equals(t){return t.min.equals(this.min)&&t.max.equals(this.max)}}const Lh=new Vector3;const Ih=new Vector3;class Line3{constructor(t=new Vector3,e=new Vector3){this.start=t;this.end=e}set(t,e){this.start.copy(t);this.end.copy(e);return this}copy(t){this.start.copy(t.start);this.end.copy(t.end);return this}getCenter(t){return t.addVectors(this.start,this.end).multiplyScalar(.5)}delta(t){return t.subVectors(this.end,this.start)}distanceSq(){return this.start.distanceToSquared(this.end)}distance(){return this.start.distanceTo(this.end)}at(t,e){return this.delta(e).multiplyScalar(t).add(this.start)}closestPointToPointParameter(t,e){Lh.subVectors(t,this.start);Ih.subVectors(this.end,this.start);const n=Ih.dot(Ih);const i=Ih.dot(Lh);let r=i/n;e&&(r=clamp(r,0,1));return r}closestPointToPoint(t,e,n){const i=this.closestPointToPointParameter(t,e);return this.delta(n).multiplyScalar(i).add(this.start)}applyMatrix4(t){this.start.applyMatrix4(t);this.end.applyMatrix4(t);return this}equals(t){return t.start.equals(this.start)&&t.end.equals(this.end)}clone(){return(new this.constructor).copy(this)}}const Uh=new Vector3;class SpotLightHelper extends Object3D{constructor(t,e){super();this.light=t;this.matrixAutoUpdate=false;this.color=e;this.type=\"SpotLightHelper\";const n=new BufferGeometry;const i=[0,0,0,0,0,1,0,0,0,1,0,1,0,0,0,-1,0,1,0,0,0,0,1,1,0,0,0,0,-1,1];for(let t=0,e=1,n=32;t<n;t++,e++){const r=t/n*Math.PI*2;const s=e/n*Math.PI*2;i.push(Math.cos(r),Math.sin(r),1,Math.cos(s),Math.sin(s),1)}n.setAttribute(\"position\",new Float32BufferAttribute(i,3));const r=new LineBasicMaterial({fog:false,toneMapped:false});this.cone=new LineSegments(n,r);this.add(this.cone);this.update()}dispose(){this.cone.geometry.dispose();this.cone.material.dispose()}update(){this.light.updateWorldMatrix(true,false);this.light.target.updateWorldMatrix(true,false);if(this.parent){this.parent.updateWorldMatrix(true);this.matrix.copy(this.parent.matrixWorld).invert().multiply(this.light.matrixWorld)}else this.matrix.copy(this.light.matrixWorld);this.matrixWorld.copy(this.light.matrixWorld);const t=this.light.distance?this.light.distance:1e3;const e=t*Math.tan(this.light.angle);this.cone.scale.set(e,e,t);Uh.setFromMatrixPosition(this.light.target.matrixWorld);this.cone.lookAt(Uh);this.color!==void 0?this.cone.material.color.set(this.color):this.cone.material.color.copy(this.light.color)}}const Dh=new Vector3;const Nh=new Matrix4;const Bh=new Matrix4;class SkeletonHelper extends LineSegments{constructor(t){const e=getBoneList(t);const n=new BufferGeometry;const i=[];const r=[];const s=new Color(0,0,1);const a=new Color(0,1,0);for(let t=0;t<e.length;t++){const n=e[t];if(n.parent&&n.parent.isBone){i.push(0,0,0);i.push(0,0,0);r.push(s.r,s.g,s.b);r.push(a.r,a.g,a.b)}}n.setAttribute(\"position\",new Float32BufferAttribute(i,3));n.setAttribute(\"color\",new Float32BufferAttribute(r,3));const o=new LineBasicMaterial({vertexColors:true,depthTest:false,depthWrite:false,toneMapped:false,transparent:true});super(n,o);this.isSkeletonHelper=true;this.type=\"SkeletonHelper\";this.root=t;this.bones=e;this.matrix=t.matrixWorld;this.matrixAutoUpdate=false}updateMatrixWorld(t){const e=this.bones;const n=this.geometry;const i=n.getAttribute(\"position\");Bh.copy(this.root.matrixWorld).invert();for(let t=0,n=0;t<e.length;t++){const r=e[t];if(r.parent&&r.parent.isBone){Nh.multiplyMatrices(Bh,r.matrixWorld);Dh.setFromMatrixPosition(Nh);i.setXYZ(n,Dh.x,Dh.y,Dh.z);Nh.multiplyMatrices(Bh,r.parent.matrixWorld);Dh.setFromMatrixPosition(Nh);i.setXYZ(n+1,Dh.x,Dh.y,Dh.z);n+=2}}n.getAttribute(\"position\").needsUpdate=true;super.updateMatrixWorld(t)}dispose(){this.geometry.dispose();this.material.dispose()}}function getBoneList(t){const e=[];t.isBone===true&&e.push(t);for(let n=0;n<t.children.length;n++)e.push.apply(e,getBoneList(t.children[n]));return e}class PointLightHelper extends Mesh{constructor(t,e,n){const i=new SphereGeometry(e,4,2);const r=new MeshBasicMaterial({wireframe:true,fog:false,toneMapped:false});super(i,r);this.light=t;this.color=n;this.type=\"PointLightHelper\";this.matrix=this.light.matrixWorld;this.matrixAutoUpdate=false;this.update()}dispose(){this.geometry.dispose();this.material.dispose()}update(){this.light.updateWorldMatrix(true,false);this.color!==void 0?this.material.color.set(this.color):this.material.color.copy(this.light.color)}}const Oh=new Vector3;const Vh=new Color;const Fh=new Color;class HemisphereLightHelper extends Object3D{constructor(t,e,n){super();this.light=t;this.matrix=t.matrixWorld;this.matrixAutoUpdate=false;this.color=n;this.type=\"HemisphereLightHelper\";const i=new OctahedronGeometry(e);i.rotateY(Math.PI*.5);this.material=new MeshBasicMaterial({wireframe:true,fog:false,toneMapped:false});this.color===void 0&&(this.material.vertexColors=true);const r=i.getAttribute(\"position\");const s=new Float32Array(r.count*3);i.setAttribute(\"color\",new BufferAttribute(s,3));this.add(new Mesh(i,this.material));this.update()}dispose(){this.children[0].geometry.dispose();this.children[0].material.dispose()}update(){const t=this.children[0];if(this.color!==void 0)this.material.color.set(this.color);else{const e=t.geometry.getAttribute(\"color\");Vh.copy(this.light.color);Fh.copy(this.light.groundColor);for(let t=0,n=e.count;t<n;t++){const i=t<n/2?Vh:Fh;e.setXYZ(t,i.r,i.g,i.b)}e.needsUpdate=true}this.light.updateWorldMatrix(true,false);t.lookAt(Oh.setFromMatrixPosition(this.light.matrixWorld).negate())}}class GridHelper extends LineSegments{constructor(t=10,e=10,n=4473924,i=8947848){n=new Color(n);i=new Color(i);const r=e/2;const s=t/e;const a=t/2;const o=[],l=[];for(let t=0,c=0,h=-a;t<=e;t++,h+=s){o.push(-a,0,h,a,0,h);o.push(h,0,-a,h,0,a);const e=t===r?n:i;e.toArray(l,c);c+=3;e.toArray(l,c);c+=3;e.toArray(l,c);c+=3;e.toArray(l,c);c+=3}const c=new BufferGeometry;c.setAttribute(\"position\",new Float32BufferAttribute(o,3));c.setAttribute(\"color\",new Float32BufferAttribute(l,3));const h=new LineBasicMaterial({vertexColors:true,toneMapped:false});super(c,h);this.type=\"GridHelper\"}dispose(){this.geometry.dispose();this.material.dispose()}}class PolarGridHelper extends LineSegments{constructor(t=10,e=16,n=8,i=64,r=4473924,s=8947848){r=new Color(r);s=new Color(s);const a=[];const o=[];if(e>1)for(let n=0;n<e;n++){const i=n/e*(Math.PI*2);const l=Math.sin(i)*t;const c=Math.cos(i)*t;a.push(0,0,0);a.push(l,0,c);const h=n&1?r:s;o.push(h.r,h.g,h.b);o.push(h.r,h.g,h.b)}for(let e=0;e<n;e++){const l=e&1?r:s;const c=t-t/n*e;for(let t=0;t<i;t++){let e=t/i*(Math.PI*2);let n=Math.sin(e)*c;let r=Math.cos(e)*c;a.push(n,0,r);o.push(l.r,l.g,l.b);e=(t+1)/i*(Math.PI*2);n=Math.sin(e)*c;r=Math.cos(e)*c;a.push(n,0,r);o.push(l.r,l.g,l.b)}}const l=new BufferGeometry;l.setAttribute(\"position\",new Float32BufferAttribute(a,3));l.setAttribute(\"color\",new Float32BufferAttribute(o,3));const c=new LineBasicMaterial({vertexColors:true,toneMapped:false});super(l,c);this.type=\"PolarGridHelper\"}dispose(){this.geometry.dispose();this.material.dispose()}}const zh=new Vector3;const Gh=new Vector3;const kh=new Vector3;class DirectionalLightHelper extends Object3D{constructor(t,e,n){super();this.light=t;this.matrix=t.matrixWorld;this.matrixAutoUpdate=false;this.color=n;this.type=\"DirectionalLightHelper\";e===void 0&&(e=1);let i=new BufferGeometry;i.setAttribute(\"position\",new Float32BufferAttribute([-e,e,0,e,e,0,e,-e,0,-e,-e,0,-e,e,0],3));const r=new LineBasicMaterial({fog:false,toneMapped:false});this.lightPlane=new Line(i,r);this.add(this.lightPlane);i=new BufferGeometry;i.setAttribute(\"position\",new Float32BufferAttribute([0,0,0,0,0,1],3));this.targetLine=new Line(i,r);this.add(this.targetLine);this.update()}dispose(){this.lightPlane.geometry.dispose();this.lightPlane.material.dispose();this.targetLine.geometry.dispose();this.targetLine.material.dispose()}update(){this.light.updateWorldMatrix(true,false);this.light.target.updateWorldMatrix(true,false);zh.setFromMatrixPosition(this.light.matrixWorld);Gh.setFromMatrixPosition(this.light.target.matrixWorld);kh.subVectors(Gh,zh);this.lightPlane.lookAt(Gh);if(this.color!==void 0){this.lightPlane.material.color.set(this.color);this.targetLine.material.color.set(this.color)}else{this.lightPlane.material.color.copy(this.light.color);this.targetLine.material.color.copy(this.light.color)}this.targetLine.lookAt(Gh);this.targetLine.scale.z=kh.length()}}const Hh=new Vector3;const Wh=new Camera;class CameraHelper extends LineSegments{constructor(t){const e=new BufferGeometry;const n=new LineBasicMaterial({color:16777215,vertexColors:true,toneMapped:false});const i=[];const r=[];const s={};addLine(\"n1\",\"n2\");addLine(\"n2\",\"n4\");addLine(\"n4\",\"n3\");addLine(\"n3\",\"n1\");addLine(\"f1\",\"f2\");addLine(\"f2\",\"f4\");addLine(\"f4\",\"f3\");addLine(\"f3\",\"f1\");addLine(\"n1\",\"f1\");addLine(\"n2\",\"f2\");addLine(\"n3\",\"f3\");addLine(\"n4\",\"f4\");addLine(\"p\",\"n1\");addLine(\"p\",\"n2\");addLine(\"p\",\"n3\");addLine(\"p\",\"n4\");addLine(\"u1\",\"u2\");addLine(\"u2\",\"u3\");addLine(\"u3\",\"u1\");addLine(\"c\",\"t\");addLine(\"p\",\"c\");addLine(\"cn1\",\"cn2\");addLine(\"cn3\",\"cn4\");addLine(\"cf1\",\"cf2\");addLine(\"cf3\",\"cf4\");function addLine(t,e){addPoint(t);addPoint(e)}function addPoint(t){i.push(0,0,0);r.push(0,0,0);s[t]===void 0&&(s[t]=[]);s[t].push(i.length/3-1)}e.setAttribute(\"position\",new Float32BufferAttribute(i,3));e.setAttribute(\"color\",new Float32BufferAttribute(r,3));super(e,n);this.type=\"CameraHelper\";this.camera=t;this.camera.updateProjectionMatrix&&this.camera.updateProjectionMatrix();this.matrix=t.matrixWorld;this.matrixAutoUpdate=false;this.pointMap=s;this.update();const a=new Color(16755200);const o=new Color(16711680);const l=new Color(43775);const c=new Color(16777215);const h=new Color(3355443);this.setColors(a,o,l,c,h)}setColors(t,e,n,i,r){const s=this.geometry;const a=s.getAttribute(\"color\");a.setXYZ(0,t.r,t.g,t.b);a.setXYZ(1,t.r,t.g,t.b);a.setXYZ(2,t.r,t.g,t.b);a.setXYZ(3,t.r,t.g,t.b);a.setXYZ(4,t.r,t.g,t.b);a.setXYZ(5,t.r,t.g,t.b);a.setXYZ(6,t.r,t.g,t.b);a.setXYZ(7,t.r,t.g,t.b);a.setXYZ(8,t.r,t.g,t.b);a.setXYZ(9,t.r,t.g,t.b);a.setXYZ(10,t.r,t.g,t.b);a.setXYZ(11,t.r,t.g,t.b);a.setXYZ(12,t.r,t.g,t.b);a.setXYZ(13,t.r,t.g,t.b);a.setXYZ(14,t.r,t.g,t.b);a.setXYZ(15,t.r,t.g,t.b);a.setXYZ(16,t.r,t.g,t.b);a.setXYZ(17,t.r,t.g,t.b);a.setXYZ(18,t.r,t.g,t.b);a.setXYZ(19,t.r,t.g,t.b);a.setXYZ(20,t.r,t.g,t.b);a.setXYZ(21,t.r,t.g,t.b);a.setXYZ(22,t.r,t.g,t.b);a.setXYZ(23,t.r,t.g,t.b);a.setXYZ(24,e.r,e.g,e.b);a.setXYZ(25,e.r,e.g,e.b);a.setXYZ(26,e.r,e.g,e.b);a.setXYZ(27,e.r,e.g,e.b);a.setXYZ(28,e.r,e.g,e.b);a.setXYZ(29,e.r,e.g,e.b);a.setXYZ(30,e.r,e.g,e.b);a.setXYZ(31,e.r,e.g,e.b);a.setXYZ(32,n.r,n.g,n.b);a.setXYZ(33,n.r,n.g,n.b);a.setXYZ(34,n.r,n.g,n.b);a.setXYZ(35,n.r,n.g,n.b);a.setXYZ(36,n.r,n.g,n.b);a.setXYZ(37,n.r,n.g,n.b);a.setXYZ(38,i.r,i.g,i.b);a.setXYZ(39,i.r,i.g,i.b);a.setXYZ(40,r.r,r.g,r.b);a.setXYZ(41,r.r,r.g,r.b);a.setXYZ(42,r.r,r.g,r.b);a.setXYZ(43,r.r,r.g,r.b);a.setXYZ(44,r.r,r.g,r.b);a.setXYZ(45,r.r,r.g,r.b);a.setXYZ(46,r.r,r.g,r.b);a.setXYZ(47,r.r,r.g,r.b);a.setXYZ(48,r.r,r.g,r.b);a.setXYZ(49,r.r,r.g,r.b);a.needsUpdate=true}update(){const t=this.geometry;const e=this.pointMap;const n=1,i=1;Wh.projectionMatrixInverse.copy(this.camera.projectionMatrixInverse);setPoint(\"c\",e,t,Wh,0,0,-1);setPoint(\"t\",e,t,Wh,0,0,1);setPoint(\"n1\",e,t,Wh,-n,-i,-1);setPoint(\"n2\",e,t,Wh,n,-i,-1);setPoint(\"n3\",e,t,Wh,-n,i,-1);setPoint(\"n4\",e,t,Wh,n,i,-1);setPoint(\"f1\",e,t,Wh,-n,-i,1);setPoint(\"f2\",e,t,Wh,n,-i,1);setPoint(\"f3\",e,t,Wh,-n,i,1);setPoint(\"f4\",e,t,Wh,n,i,1);setPoint(\"u1\",e,t,Wh,n*.7,i*1.1,-1);setPoint(\"u2\",e,t,Wh,.7*-n,i*1.1,-1);setPoint(\"u3\",e,t,Wh,0,i*2,-1);setPoint(\"cf1\",e,t,Wh,-n,0,1);setPoint(\"cf2\",e,t,Wh,n,0,1);setPoint(\"cf3\",e,t,Wh,0,-i,1);setPoint(\"cf4\",e,t,Wh,0,i,1);setPoint(\"cn1\",e,t,Wh,-n,0,-1);setPoint(\"cn2\",e,t,Wh,n,0,-1);setPoint(\"cn3\",e,t,Wh,0,-i,-1);setPoint(\"cn4\",e,t,Wh,0,i,-1);t.getAttribute(\"position\").needsUpdate=true}dispose(){this.geometry.dispose();this.material.dispose()}}function setPoint(t,e,n,i,r,s,a){Hh.set(r,s,a).unproject(i);const o=e[t];if(o!==void 0){const t=n.getAttribute(\"position\");for(let e=0,n=o.length;e<n;e++)t.setXYZ(o[e],Hh.x,Hh.y,Hh.z)}}const Xh=new Box3;class BoxHelper extends LineSegments{constructor(t,e=16776960){const n=new Uint16Array([0,1,1,2,2,3,3,0,4,5,5,6,6,7,7,4,0,4,1,5,2,6,3,7]);const i=new Float32Array(24);const r=new BufferGeometry;r.setIndex(new BufferAttribute(n,1));r.setAttribute(\"position\",new BufferAttribute(i,3));super(r,new LineBasicMaterial({color:e,toneMapped:false}));this.object=t;this.type=\"BoxHelper\";this.matrixAutoUpdate=false;this.update()}update(t){t!==void 0&&console.warn(\"THREE.BoxHelper: .update() has no longer arguments.\");this.object!==void 0&&Xh.setFromObject(this.object);if(Xh.isEmpty())return;const e=Xh.min;const n=Xh.max;const i=this.geometry.attributes.position;const r=i.array;r[0]=n.x;r[1]=n.y;r[2]=n.z;r[3]=e.x;r[4]=n.y;r[5]=n.z;r[6]=e.x;r[7]=e.y;r[8]=n.z;r[9]=n.x;r[10]=e.y;r[11]=n.z;r[12]=n.x;r[13]=n.y;r[14]=e.z;r[15]=e.x;r[16]=n.y;r[17]=e.z;r[18]=e.x;r[19]=e.y;r[20]=e.z;r[21]=n.x;r[22]=e.y;r[23]=e.z;i.needsUpdate=true;this.geometry.computeBoundingSphere()}setFromObject(t){this.object=t;this.update();return this}copy(t,e){super.copy(t,e);this.object=t.object;return this}dispose(){this.geometry.dispose();this.material.dispose()}}class Box3Helper extends LineSegments{constructor(t,e=16776960){const n=new Uint16Array([0,1,1,2,2,3,3,0,4,5,5,6,6,7,7,4,0,4,1,5,2,6,3,7]);const i=[1,1,1,-1,1,1,-1,-1,1,1,-1,1,1,1,-1,-1,1,-1,-1,-1,-1,1,-1,-1];const r=new BufferGeometry;r.setIndex(new BufferAttribute(n,1));r.setAttribute(\"position\",new Float32BufferAttribute(i,3));super(r,new LineBasicMaterial({color:e,toneMapped:false}));this.box=t;this.type=\"Box3Helper\";this.geometry.computeBoundingSphere()}updateMatrixWorld(t){const e=this.box;if(!e.isEmpty()){e.getCenter(this.position);e.getSize(this.scale);this.scale.multiplyScalar(.5);super.updateMatrixWorld(t)}}dispose(){this.geometry.dispose();this.material.dispose()}}class PlaneHelper extends Line{constructor(t,e=1,n=16776960){const i=n;const r=[1,-1,0,-1,1,0,-1,-1,0,1,1,0,-1,1,0,-1,-1,0,1,-1,0,1,1,0];const s=new BufferGeometry;s.setAttribute(\"position\",new Float32BufferAttribute(r,3));s.computeBoundingSphere();super(s,new LineBasicMaterial({color:i,toneMapped:false}));this.type=\"PlaneHelper\";this.plane=t;this.size=e;const a=[1,1,0,-1,1,0,-1,-1,0,1,1,0,-1,-1,0,1,-1,0];const o=new BufferGeometry;o.setAttribute(\"position\",new Float32BufferAttribute(a,3));o.computeBoundingSphere();this.add(new Mesh(o,new MeshBasicMaterial({color:i,opacity:.2,transparent:true,depthWrite:false,toneMapped:false})))}updateMatrixWorld(t){this.position.set(0,0,0);this.scale.set(.5*this.size,.5*this.size,1);this.lookAt(this.plane.normal);this.translateZ(-this.plane.constant);super.updateMatrixWorld(t)}dispose(){this.geometry.dispose();this.material.dispose();this.children[0].geometry.dispose();this.children[0].material.dispose()}}const jh=new Vector3;let qh,Yh;class ArrowHelper extends Object3D{constructor(t=new Vector3(0,0,1),e=new Vector3(0,0,0),n=1,i=16776960,r=n*.2,s=r*.2){super();this.type=\"ArrowHelper\";if(qh===void 0){qh=new BufferGeometry;qh.setAttribute(\"position\",new Float32BufferAttribute([0,0,0,0,1,0],3));Yh=new CylinderGeometry(0,.5,1,5,1);Yh.translate(0,-.5,0)}this.position.copy(e);this.line=new Line(qh,new LineBasicMaterial({color:i,toneMapped:false}));this.line.matrixAutoUpdate=false;this.add(this.line);this.cone=new Mesh(Yh,new MeshBasicMaterial({color:i,toneMapped:false}));this.cone.matrixAutoUpdate=false;this.add(this.cone);this.setDirection(t);this.setLength(n,r,s)}setDirection(t){if(t.y>.99999)this.quaternion.set(0,0,0,1);else if(t.y<-.99999)this.quaternion.set(1,0,0,0);else{jh.set(t.z,0,-t.x).normalize();const e=Math.acos(t.y);this.quaternion.setFromAxisAngle(jh,e)}}setLength(t,e=t*.2,n=e*.2){this.line.scale.set(1,Math.max(1e-4,t-e),1);this.line.updateMatrix();this.cone.scale.set(n,e,n);this.cone.position.y=t;this.cone.updateMatrix()}setColor(t){this.line.material.color.set(t);this.cone.material.color.set(t)}copy(t){super.copy(t,false);this.line.copy(t.line);this.cone.copy(t.cone);return this}dispose(){this.line.geometry.dispose();this.line.material.dispose();this.cone.geometry.dispose();this.cone.material.dispose()}}class AxesHelper extends LineSegments{constructor(t=1){const e=[0,0,0,t,0,0,0,0,0,0,t,0,0,0,0,0,0,t];const n=[1,0,0,1,.6,0,0,1,0,.6,1,0,0,0,1,0,.6,1];const i=new BufferGeometry;i.setAttribute(\"position\",new Float32BufferAttribute(e,3));i.setAttribute(\"color\",new Float32BufferAttribute(n,3));const r=new LineBasicMaterial({vertexColors:true,toneMapped:false});super(i,r);this.type=\"AxesHelper\"}setColors(t,e,n){const i=new Color;const r=this.geometry.attributes.color.array;i.set(t);i.toArray(r,0);i.toArray(r,3);i.set(e);i.toArray(r,6);i.toArray(r,9);i.set(n);i.toArray(r,12);i.toArray(r,15);this.geometry.attributes.color.needsUpdate=true;return this}dispose(){this.geometry.dispose();this.material.dispose()}}class ShapePath{constructor(){this.type=\"ShapePath\";this.color=new Color;this.subPaths=[];this.currentPath=null}moveTo(t,e){this.currentPath=new Path;this.subPaths.push(this.currentPath);this.currentPath.moveTo(t,e);return this}lineTo(t,e){this.currentPath.lineTo(t,e);return this}quadraticCurveTo(t,e,n,i){this.currentPath.quadraticCurveTo(t,e,n,i);return this}bezierCurveTo(t,e,n,i,r,s){this.currentPath.bezierCurveTo(t,e,n,i,r,s);return this}splineThru(t){this.currentPath.splineThru(t);return this}toShapes(t){function toShapesNoHoles(t){const e=[];for(let n=0,i=t.length;n<i;n++){const i=t[n];const r=new Shape;r.curves=i.curves;e.push(r)}return e}function isPointInsidePolygon(t,e){const n=e.length;let i=false;for(let r=n-1,s=0;s<n;r=s++){let n=e[r];let a=e[s];let o=a.x-n.x;let l=a.y-n.y;if(Math.abs(l)>Number.EPSILON){if(l<0){n=e[s];o=-o;a=e[r];l=-l}if(t.y<n.y||t.y>a.y)continue;if(t.y===n.y){if(t.x===n.x)return true}else{const e=l*(t.x-n.x)-o*(t.y-n.y);if(e===0)return true;if(e<0)continue;i=!i}}else{if(t.y!==n.y)continue;if(a.x<=t.x&&t.x<=n.x||n.x<=t.x&&t.x<=a.x)return true}}return i}const e=ShapeUtils.isClockWise;const n=this.subPaths;if(n.length===0)return[];let i,r,s;const a=[];if(n.length===1){r=n[0];s=new Shape;s.curves=r.curves;a.push(s);return a}let o=!e(n[0].getPoints());o=t?!o:o;const l=[];const c=[];let h=[];let u=0;let d;c[u]=void 0;h[u]=[];for(let s=0,a=n.length;s<a;s++){r=n[s];d=r.getPoints();i=e(d);i=t?!i:i;if(i){!o&&c[u]&&u++;c[u]={s:new Shape,p:d};c[u].s.curves=r.curves;o&&u++;h[u]=[]}else h[u].push({h:r,p:d[0]})}if(!c[0])return toShapesNoHoles(n);if(c.length>1){let t=false;let e=0;for(let t=0,e=c.length;t<e;t++)l[t]=[];for(let n=0,i=c.length;n<i;n++){const i=h[n];for(let r=0;r<i.length;r++){const s=i[r];let a=true;for(let i=0;i<c.length;i++)if(isPointInsidePolygon(s.p,c[i].p)){n!==i&&e++;if(a){a=false;l[i].push(s)}else t=true}a&&l[n].push(s)}}e>0&&t===false&&(h=l)}let p;for(let t=0,e=c.length;t<e;t++){s=c[t].s;a.push(s);p=h[t];for(let t=0,e=p.length;t<e;t++)s.holes.push(p[t].h)}return a}}class WebGLMultipleRenderTargets extends WebGLRenderTarget{constructor(t=1,e=1,n=1,i={}){console.warn('THREE.WebGLMultipleRenderTargets has been deprecated and will be removed in r172. Use THREE.WebGLRenderTarget and set the \"count\" parameter to enable MRT.');super(t,e,{...i,count:n});this.isWebGLMultipleRenderTargets=true}get texture(){return this.textures}}typeof __THREE_DEVTOOLS__!==\"undefined\"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent(\"register\",{detail:{revision:t}}));typeof window!==\"undefined\"&&(window.__THREE__?console.warn(\"WARNING: Multiple instances of Three.js being imported.\"):window.__THREE__=t);export{nt as ACESFilmicToneMapping,M as AddEquation,J as AddOperation,ze as AdditiveAnimationBlendMode,g as AdditiveBlending,rt as AgXToneMapping,Ft as AlphaFormat,Rn as AlwaysCompare,k as AlwaysDepth,Mn as AlwaysStencilFunc,AmbientLight,AnimationAction,AnimationClip,AnimationLoader,AnimationMixer,AnimationObjectGroup,jc as AnimationUtils,ArcCurve,ArrayCamera,ArrowHelper,at as AttachedBindMode,Audio,AudioAnalyser,AudioContext,AudioListener,AudioLoader,AxesHelper,d as BackSide,We as BasicDepthPacking,o as BasicShadowMap,BatchedMesh,Bone,BooleanKeyframeTrack,Box2,Box3,Box3Helper,BoxGeometry,BoxHelper,BufferAttribute,BufferGeometry,BufferGeometryLoader,Ct as ByteType,qc as Cache,Camera,CameraHelper,CanvasTexture,CapsuleGeometry,CatmullRomCurve3,et as CineonToneMapping,CircleGeometry,mt as ClampToEdgeWrapping,Clock,Color,ColorKeyframeTrack,ei as ColorManagement,CompressedArrayTexture,CompressedCubeTexture,CompressedTexture,CompressedTextureLoader,ConeGeometry,F as ConstantAlphaFactor,O as ConstantColorFactor,CubeCamera,ct as CubeReflectionMapping,ht as CubeRefractionMapping,CubeTexture,CubeTextureLoader,pt as CubeUVReflectionMapping,CubicBezierCurve,CubicBezierCurve3,CubicInterpolant,r as CullFaceBack,s as CullFaceFront,a as CullFaceFrontBack,i as CullFaceNone,Curve,CurvePath,y as CustomBlending,it as CustomToneMapping,CylinderGeometry,Cylindrical,Data3DTexture,DataArrayTexture,DataTexture,DataTextureLoader,gr as DataUtils,hn as DecrementStencilOp,dn as DecrementWrapStencilOp,Yc as DefaultLoadingManager,Wt as DepthFormat,Xt as DepthStencilFormat,DepthTexture,ot as DetachedBindMode,DirectionalLight,DirectionalLightHelper,DiscreteInterpolant,$e as DisplayP3ColorSpace,DodecahedronGeometry,p as DoubleSide,I as DstAlphaFactor,D as DstColorFactor,On as DynamicCopyUsage,Ln as DynamicDrawUsage,Dn as DynamicReadUsage,EdgesGeometry,EllipseCurve,Tn as EqualCompare,X as EqualDepth,gn as EqualStencilFunc,ut as EquirectangularReflectionMapping,dt as EquirectangularRefractionMapping,Euler,EventDispatcher,ExtrudeGeometry,FileLoader,Float16BufferAttribute,Float32BufferAttribute,Ut as FloatType,Fog,FogExp2,FramebufferTexture,u as FrontSide,Frustum,GLBufferAttribute,Fn as GLSL1,zn as GLSL3,En as GreaterCompare,q as GreaterDepth,Cn as GreaterEqualCompare,j as GreaterEqualDepth,yn as GreaterEqualStencilFunc,_n as GreaterStencilFunc,GridHelper,Group,Dt as HalfFloatType,HemisphereLight,HemisphereLightHelper,IcosahedronGeometry,ImageBitmapLoader,ImageLoader,ImageUtils,cn as IncrementStencilOp,un as IncrementWrapStencilOp,InstancedBufferAttribute,InstancedBufferGeometry,InstancedInterleavedBuffer,InstancedMesh,Int16BufferAttribute,Int32BufferAttribute,Int8BufferAttribute,Lt as IntType,InterleavedBuffer,InterleavedBufferAttribute,Interpolant,Ue as InterpolateDiscrete,De as InterpolateLinear,Ne as InterpolateSmooth,pn as InvertStencilOp,on as KeepStencilOp,KeyframeTrack,LOD,LatheGeometry,Layers,bn as LessCompare,H as LessDepth,wn as LessEqualCompare,W as LessEqualDepth,vn as LessEqualStencilFunc,mn as LessStencilFunc,Light,LightProbe,Line,Line3,LineBasicMaterial,LineCurve,LineCurve3,LineDashedMaterial,LineLoop,LineSegments,tn as LinearDisplayP3ColorSpace,St as LinearFilter,LinearInterpolant,Et as LinearMipMapLinearFilter,Tt as LinearMipMapNearestFilter,wt as LinearMipmapLinearFilter,bt as LinearMipmapNearestFilter,Qe as LinearSRGBColorSpace,$ as LinearToneMapping,en as LinearTransfer,Loader,LoaderUtils,LoadingManager,Pe as LoopOnce,Ie as LoopPingPong,Le as LoopRepeat,Ht as LuminanceAlphaFormat,kt as LuminanceFormat,e as MOUSE,Material,MaterialLoader,qn as MathUtils,Matrix2,Matrix3,Matrix4,w as MaxEquation,Mesh,MeshBasicMaterial,MeshDepthMaterial,MeshDistanceMaterial,MeshLambertMaterial,MeshMatcapMaterial,MeshNormalMaterial,MeshPhongMaterial,MeshPhysicalMaterial,MeshStandardMaterial,MeshToonMaterial,T as MinEquation,gt as MirroredRepeatWrapping,Z as MixOperation,x as MultiplyBlending,K as MultiplyOperation,vt as NearestFilter,Mt as NearestMipMapLinearFilter,xt as NearestMipMapNearestFilter,yt as NearestMipmapLinearFilter,_t as NearestMipmapNearestFilter,st as NeutralToneMapping,Sn as NeverCompare,G as NeverDepth,fn as NeverStencilFunc,f as NoBlending,Ze as NoColorSpace,Q as NoToneMapping,Fe as NormalAnimationBlendMode,m as NormalBlending,An as NotEqualCompare,Y as NotEqualDepth,xn as NotEqualStencilFunc,NumberKeyframeTrack,Object3D,ObjectLoader,Ke as ObjectSpaceNormalMap,OctahedronGeometry,A as OneFactor,z as OneMinusConstantAlphaFactor,V as OneMinusConstantColorFactor,U as OneMinusDstAlphaFactor,N as OneMinusDstColorFactor,L as OneMinusSrcAlphaFactor,R as OneMinusSrcColorFactor,OrthographicCamera,sn as P3Primaries,l as PCFShadowMap,c as PCFSoftShadowMap,PMREMGenerator,Path,PerspectiveCamera,Plane,PlaneGeometry,PlaneHelper,PointLight,PointLightHelper,Points,PointsMaterial,PolarGridHelper,PolyhedronGeometry,PositionalAudio,PropertyBinding,PropertyMixer,QuadraticBezierCurve,QuadraticBezierCurve3,Quaternion,QuaternionKeyframeTrack,QuaternionLinearInterpolant,Ce as RED_GREEN_RGTC2_Format,Ee as RED_RGTC1_Format,t as REVISION,Xe as RGBADepthPacking,Gt as RGBAFormat,Jt as RGBAIntegerFormat,ye as RGBA_ASTC_10x10_Format,ve as RGBA_ASTC_10x5_Format,_e as RGBA_ASTC_10x6_Format,xe as RGBA_ASTC_10x8_Format,Me as RGBA_ASTC_12x10_Format,Se as RGBA_ASTC_12x12_Format,ce as RGBA_ASTC_4x4_Format,he as RGBA_ASTC_5x4_Format,ue as RGBA_ASTC_5x5_Format,de as RGBA_ASTC_6x5_Format,pe as RGBA_ASTC_6x6_Format,fe as RGBA_ASTC_8x5_Format,me as RGBA_ASTC_8x6_Format,ge as RGBA_ASTC_8x8_Format,be as RGBA_BPTC_Format,le as RGBA_ETC2_EAC_Format,se as RGBA_PVRTC_2BPPV1_Format,re as RGBA_PVRTC_4BPPV1_Format,$t as RGBA_S3TC_DXT1_Format,te as RGBA_S3TC_DXT3_Format,ee as RGBA_S3TC_DXT5_Format,je as RGBDepthPacking,zt as RGBFormat,Zt as RGBIntegerFormat,Te as RGB_BPTC_SIGNED_Format,we as RGB_BPTC_UNSIGNED_Format,ae as RGB_ETC1_Format,oe as RGB_ETC2_Format,ie as RGB_PVRTC_2BPPV1_Format,ne as RGB_PVRTC_4BPPV1_Format,Qt as RGB_S3TC_DXT1_Format,qe as RGDepthPacking,Yt as RGFormat,Kt as RGIntegerFormat,RawShaderMaterial,Ray,Raycaster,rn as Rec709Primaries,RectAreaLight,jt as RedFormat,qt as RedIntegerFormat,tt as ReinhardToneMapping,RenderTarget,ft as RepeatWrapping,ln as ReplaceStencilOp,b as ReverseSubtractEquation,RingGeometry,Re as SIGNED_RED_GREEN_RGTC2_Format,Ae as SIGNED_RED_RGTC1_Format,Je as SRGBColorSpace,nn as SRGBTransfer,Scene,Bo as ShaderChunk,Vo as ShaderLib,ShaderMaterial,ShadowMaterial,Shape,ShapeGeometry,ShapePath,ShapeUtils,Rt as ShortType,Skeleton,SkeletonHelper,SkinnedMesh,Source,Sphere,SphereGeometry,Spherical,SphericalHarmonics3,SplineCurve,SpotLight,SpotLightHelper,Sprite,SpriteMaterial,P as SrcAlphaFactor,B as SrcAlphaSaturateFactor,C as SrcColorFactor,Bn as StaticCopyUsage,Pn as StaticDrawUsage,Un as StaticReadUsage,StereoCamera,Vn as StreamCopyUsage,In as StreamDrawUsage,Nn as StreamReadUsage,StringKeyframeTrack,S as SubtractEquation,_ as SubtractiveBlending,n as TOUCH,Ye as TangentSpaceNormalMap,TetrahedronGeometry,Texture,TextureLoader,Ml as TextureUtils,TorusGeometry,TorusKnotGeometry,Triangle,He as TriangleFanDrawMode,ke as TriangleStripDrawMode,Ge as TrianglesDrawMode,TubeGeometry,lt as UVMapping,Uint16BufferAttribute,Uint32BufferAttribute,Uint8BufferAttribute,Uint8ClampedBufferAttribute,Uniform,UniformsGroup,Oo as UniformsLib,Hr as UniformsUtils,At as UnsignedByteType,Ot as UnsignedInt248Type,Vt as UnsignedInt5999Type,It as UnsignedIntType,Nt as UnsignedShort4444Type,Bt as UnsignedShort5551Type,Pt as UnsignedShortType,h as VSMShadowMap,Vector2,Vector3,Vector4,VectorKeyframeTrack,VideoTexture,WebGL3DRenderTarget,WebGLArrayRenderTarget,Gn as WebGLCoordinateSystem,WebGLCubeRenderTarget,WebGLMultipleRenderTargets,WebGLRenderTarget,WebGLRenderer,WebGLUtils,kn as WebGPUCoordinateSystem,WireframeGeometry,Ve as WrapAroundEnding,Be as ZeroCurvatureEnding,E as ZeroFactor,Oe as ZeroSlopeEnding,an as ZeroStencilOp,createCanvasElement};\n//# sourceMappingURL=three.module.js.map\n","export const shaderInputs=`\nuniform float iTime;\nuniform vec3 iResolution;\nvarying vec2 vUv;\nuniform float iTimeDelta;\nuniform vec4 iMouse;\nuniform sampler2D iChannel0;\n`;export const mainFunction=`\nvoid main() {\n    mainImage(gl_FragColor, vUv * iResolution.xy);\n}\n`;export const vertexShaderSource=`\nvarying vec2 vUv;\nvoid main() {\n    vUv = uv;\n    gl_Position = vec4(position, 1.0);\n}\n`;export const fragmentShaderSource=[{title:\"Warped Mandelbrot Set\",author:\"Stephane Cuillerdier - Aiekick/2024 (twitter:@aiekick)\",originalURL:\"https://www.shadertoy.com/view/MflBzj\",value:`\n\n#define AA 2\n#define PETALS_COUNT 4.0\n#define WARP_FACTOR 5.0\n#define BUMP_FACTOR 0.03\n#define FRACTAL_POWER 2\n\nvec2 zmul(vec2 a, vec2 b){return mat2(a,-a.y,a.x)*b;} // z * z \nvec2 zinv(vec2 a){return vec2(a.x, -a.y) / dot(a,a);} // 1 / z\nvec2 zpow(vec2 a, int p) {vec2 r=a;for(int i=1;i<p;++i) r=zmul(r, r);return r;} // z ^ p\n\nvec3 sdf(vec2 p, float t) {\n    // position\n    if (FRACTAL_POWER < 3) p.y += 0.15; \n    else if (FRACTAL_POWER < 4) p.y -= 0.35;  \n    else p.y -= 0.5;  \n    \n     // 90\\xb0 rotation\n    const float a = 1.57;\n    p *= mat2(cos(a),-sin(a),sin(a),cos(a));\n    \n    // mandelbrot\n    vec2 z = vec2(0);\n    for (float i=0.;i<15.0;i++){\n        z = zpow(z,FRACTAL_POWER) + p - vec2(0.5,0.);\n        if (dot(z,z) > 4.0) {\n            break;\n        }\n    }\n    \n    // sdf\n    float d = dot(z,z);\n    float sdf = 1.0 - sqrt(d) * log(d);\n    \n    // warped flower\n    z = vec2(atan(z.x,z.y), length(z * 5.0));\n    float warpFactor = 5.0;\n    for (int i=0; i<3; i++) {\n        z.y += cos(z.x * PETALS_COUNT - t) / 3.0;\n        z.x += sin(z.y * WARP_FACTOR - t * 2.0) / 3.0;\n    }\n    z = vec2(cos(z.x), sin(z.x)) * z.y;\n    z = abs(fract(z) - 0.5);\n    return smoothstep(0.0, 1.0, sdf + 1.0) * vec3(length(z), z);\n}\n\nvec4 render(in vec2 v, in vec2 o) {\n    // time\n    float t = iTime * 0.5;\n    \n    // point\n    vec2 uv = (v+v+o - iResolution.xy)/min(iResolution.x, iResolution.y) * 1.2;\n    \n    // ray dir\n    vec3 rd = normalize(vec3(uv, 1.0));\n    \n    // light point\n    vec3 lp = vec3(0.0, 0.0, -2.);\n    \n    // normal\n    vec2 eps = vec2(7.5/iResolution.y, 0.0);\n    vec3 f = sdf(uv, t);\n    float fx = (sdf(uv-eps.xy, t).x-f.x)/eps.x;\n    float fy = (sdf(uv-eps.yx, t).x-f.x)/eps.x;\n    vec3 n = normalize(vec3(vec2(fx, fy) * BUMP_FACTOR, -1.0));\n    \n    // light attenuation\n    vec3 ld = lp - vec3(uv, 0.0);\n    float lDist = max(length(ld), 0.001);\n    ld /= lDist;\n    float atten = (f.x * 0.9 + 0.1)/(1.0 + lDist * lDist * 0.15);\n    \n    // diffuse\n    float diff = max(dot(n, ld), 0.0);\n    diff = pow(diff, 4.0) * 0.7 + pow(diff, 8.0) * 0.3;\n    \n    // specular\n    float spec = pow(max(dot( reflect(-ld, n), -rd), 0.0), 32.0);\n    \n    // final color\n    vec3 col = clamp(sin(vec3(8,12,10) + iTime) * 0.5 + 1.0, 0.0, 1.0);\n    col = (col * (diff * pow(col, vec3(4.0)) * 2.0 + 0.5) + vec3(1.0) * spec * 2.0)*atten;\n    \n    // gamma corection\n    col = clamp(sqrt(col), 0.0, 1.0);\n    return vec4(col, 1.0);\n}\n\nvoid mainImage(out vec4 fragColor, in vec2 fragCoord) {\n    fragColor = vec4(0);\n    \n    // anti aliasing\n    const float AAf = float(AA);\n    for(int i=0;i<AA;i++) {\n        for(int j=0;j<AA;j++) {\n            fragColor += render(gl_FragCoord.xy, vec2(i,j) / AAf);\n        }\n    }\n    fragColor /= AAf * AAf;\n     fragColor.a = 1.0;\n}\n`},{title:\"UI noise halo\",author:\"magician0809\",originalURL:\"https://www.shadertoy.com/view/3tBGRm\",value:`\n  \nvec3 hash33(vec3 p3)\n{\n\tp3 = fract(p3 * vec3(.1031,.11369,.13787));\n    p3 += dot(p3, p3.yxz+19.19);\n    return -1.0 + 2.0 * fract(vec3(p3.x+p3.y, p3.x+p3.z, p3.y+p3.z)*p3.zyx);\n}\n\nfloat snoise3(vec3 p)\n{\n    const float K1 = 0.333333333;\n    const float K2 = 0.166666667;\n    vec3 i = floor(p + (p.x + p.y + p.z) * K1);\n    vec3 d0 = p - (i - (i.x + i.y + i.z) * K2);\n    vec3 e = step(vec3(0.0), d0 - d0.yzx);\n    vec3 i1 = e * (1.0 - e.zxy);\n    vec3 i2 = 1.0 - e.zxy * (1.0 - e);\n    vec3 d1 = d0 - (i1 - K2);\n    vec3 d2 = d0 - (i2 - K1);\n    vec3 d3 = d0 - 0.5;\n    vec4 h = max(0.6 - vec4(dot(d0, d0), dot(d1, d1), dot(d2, d2), dot(d3, d3)), 0.0);\n    vec4 n = h * h * h * h * vec4(dot(d0, hash33(i)), dot(d1, hash33(i + i1)), dot(d2, hash33(i + i2)), dot(d3, hash33(i + 1.0)));\n    return dot(vec4(31.316), n);\n}\n\nvec4 extractAlpha(vec3 colorIn)\n{\n    vec4 colorOut;\n    float maxValue = min(max(max(colorIn.r, colorIn.g), colorIn.b), 1.0);\n    if (maxValue > 1e-5)\n    {\n        colorOut.rgb = colorIn.rgb * (1.0 / maxValue);\n        colorOut.a = maxValue;\n    }\n    else\n    {\n        colorOut = vec4(0.0);\n    }\n    return colorOut;\n}\n\n  #define BG_COLOR (vec3(sin(iTime)*0.5+0.5) * 0.0 + vec3(0.0))\n  #define time iTime\n  const vec3 color1 = vec3(0.611765, 0.262745, 0.996078);\n  const vec3 color2 = vec3(0.298039, 0.760784, 0.913725);\n  const vec3 color3 = vec3(0.062745, 0.078431, 0.600000);\n  const float innerRadius = 0.6;\n  const float noiseScale = 0.65;\n  float light1(float intensity, float attenuation, float dist)\n  {\n      return intensity / (1.0 + dist * attenuation);\n  }\n  float light2(float intensity, float attenuation, float dist)\n  {\n      return intensity / (1.0 + dist * dist * attenuation);\n  }\n\n  void draw( out vec4 _FragColor, in vec2 vUv )\n  {\n      vec2 uv = vUv;\n      float ang = atan(uv.y, uv.x);\n      float len = length(uv);\n      float v0, v1, v2, v3, cl;\n      float r0, d0, n0;\n      float r, d;\n      \n      // ring\n      n0 = snoise3( vec3(uv * noiseScale, time * 0.5) ) * 0.5 + 0.5;\n      r0 = mix(mix(innerRadius, 1.0, 0.4), mix(innerRadius, 1.0, 0.6), n0);\n      d0 = distance(uv, r0 / len * uv);\n      v0 = light1(1.0, 10.0, d0);\n      v0 *= smoothstep(r0 * 1.05, r0, len);\n      cl = cos(ang + time * 2.0) * 0.5 + 0.5;\n      \n      // high light\n      float a = time * -1.0;\n      vec2 pos = vec2(cos(a), sin(a)) * r0;\n      d = distance(uv, pos);\n      v1 = light2(1.5, 5.0, d);\n      v1 *= light1(1.0, 50.0 , d0);\n      \n      // back decay\n      v2 = smoothstep(1.0, mix(innerRadius, 1.0, n0 * 0.5), len);\n      \n      // hole\n      v3 = smoothstep(innerRadius, mix(innerRadius, 1.0, 0.5), len);\n      \n      // color\n      vec3 c = mix(color1, color2, cl);\n      vec3 col = mix(color1, color2, cl);\n      col = mix(color3, col, v0);\n      col = (col + v1) * v2 * v3;\n      col.rgb = clamp(col.rgb, 0.0, 1.0);\n      \n      //gl_FragColor = extractAlpha(col);\n      _FragColor = extractAlpha(col);\n  }\n\n  void mainImage( out vec4 fragColor, in vec2 fragCoord )\n  {\n      vec2 uv = (fragCoord*2.-iResolution.xy)/iResolution.y;\n      vec4 col;\n      draw(col, uv);\n      vec3 bg = BG_COLOR;\n      fragColor.rgb = mix(bg, col.rgb, col.a); //normal blend\n          fragColor.a = 1.0;\n  }\n\n`},{title:\"Realm\",author:\"kishimisu\",originalURL:\"https://www.shadertoy.com/view/mtyGWy\",value:`\n  \nvec3 palette( float t ) {\n    vec3 a = vec3(0.5, 0.5, 0.5);\n    vec3 b = vec3(0.5, 0.5, 0.5);\n    vec3 c = vec3(1.0, 1.0, 1.0);\n    vec3 d = vec3(0.263,0.416,0.557);\n\n    return a + b*cos( 6.28318*(c*t+d) );\n}\nvoid mainImage( out vec4 fragColor, in vec2 fragCoord ) {\n    vec2 uv = (fragCoord * 2.0 - iResolution.xy) / iResolution.y;\n    vec2 uv0 = uv;\n    vec3 finalColor = vec3(0.0);\n    for (float i = 0.0; i < 4.0; i++) {\n        uv = fract(uv * 1.5) - 0.5;\n        float d = length(uv) * exp(-length(uv0));\n        vec3 col = palette(length(uv0) + i*.4 + iTime*.4);\n        d = sin(d*8. + iTime)/8.;\n        d = abs(d);\n        d = pow(0.01 / d, 1.2);\n        finalColor += col * d;\n    }\n    fragColor = vec4(finalColor, 1.0);\n}\n`},{title:\"Fractal Pyramid\",author:\"bradjamesgrant\",originalURL:\"https://www.shadertoy.com/view/tsXBzS\",value:`\n\nvec3 palette(float d){\n\treturn mix(vec3(0.2,0.7,0.9),vec3(1.,0.,1.),d);\n}\n\nvec2 rotate(vec2 p,float a){\n\tfloat c = cos(a);\n    float s = sin(a);\n    return p*mat2(c,s,-s,c);\n}\n\nfloat map(vec3 p){\n    for( int i = 0; i<8; ++i){\n        float t = iTime*0.2;\n        p.xz =rotate(p.xz,t);\n        p.xy =rotate(p.xy,t*1.89);\n        p.xz = abs(p.xz);\n        p.xz-=.5;\n\t}\n\treturn dot(sign(p),p)/5.;\n}\n\nvec4 rm (vec3 ro, vec3 rd){\n    float t = 0.;\n    vec3 col = vec3(0.);\n    float d;\n    for(float i =0.; i<64.; i++){\n\t\tvec3 p = ro + rd*t;\n        d = map(p)*.5;\n        if(d<0.02){\n            break;\n        }\n        if(d>100.){\n        \tbreak;\n        }\n        //col+=vec3(0.6,0.8,0.8)/(400.*(d));\n        col+=palette(length(p)*.1)/(400.*(d));\n        t+=d;\n    }\n    return vec4(col,1./(d*100.));\n}\n\nvoid mainImage( out vec4 fragColor, in vec2 fragCoord )\n{\n    vec2 uv = (fragCoord-(iResolution.xy/2.))/iResolution.x;\n\t  vec3 ro = vec3(0.,0.,-50.);\n    ro.xz = rotate(ro.xz,iTime);\n    vec3 cf = normalize(-ro);\n    vec3 cs = normalize(cross(cf,vec3(0.,1.,0.)));\n    vec3 cu = normalize(cross(cf,cs));\n    vec3 uuv = ro+cf*3. + uv.x*cs + uv.y*cu;\n    vec3 rd = normalize(uuv-ro);\n    vec4 col = rm(ro,rd);\n    fragColor = col;\n    fragColor.a = 1.0;\n}\n\n`},{title:\"Octagrams\",author:\"whisky_shusuky\",originalURL:\"https://www.shadertoy.com/view/tlVGDt\",value:`\n\nprecision highp float;\n\nfloat gTime = 0.;\nconst float REPEAT = 5.0;\n\nmat2 rot(float a) {\n\tfloat c = cos(a), s = sin(a);\n\treturn mat2(c,s,-s,c);\n}\n\nfloat sdBox( vec3 p, vec3 b )\n{\n\tvec3 q = abs(p) - b;\n\treturn length(max(q,0.0)) + min(max(q.x,max(q.y,q.z)),0.0);\n}\n\nfloat box(vec3 pos, float scale) {\n\tpos *= scale;\n\tfloat base = sdBox(pos, vec3(.4,.4,.1)) /1.5;\n\tpos.xy *= 5.;\n\tpos.y -= 3.5;\n\tpos.xy *= rot(.75);\n\tfloat result = -base;\n\treturn result;\n}\n\nfloat box_set(vec3 pos, float iTime) {\n\tvec3 pos_origin = pos;\n\tpos = pos_origin;\n\tpos .y += sin(gTime * 0.4) * 2.5;\n\tpos.xy *=   rot(.8);\n\tfloat box1 = box(pos,2. - abs(sin(gTime * 0.4)) * 1.5);\n\tpos = pos_origin;\n\tpos .y -=sin(gTime * 0.4) * 2.5;\n\tpos.xy *=   rot(.8);\n\tfloat box2 = box(pos,2. - abs(sin(gTime * 0.4)) * 1.5);\n\tpos = pos_origin;\n\tpos .x +=sin(gTime * 0.4) * 2.5;\n\tpos.xy *=   rot(.8);\n\tfloat box3 = box(pos,2. - abs(sin(gTime * 0.4)) * 1.5);\t\n\tpos = pos_origin;\n\tpos .x -=sin(gTime * 0.4) * 2.5;\n\tpos.xy *=   rot(.8);\n\tfloat box4 = box(pos,2. - abs(sin(gTime * 0.4)) * 1.5);\t\n\tpos = pos_origin;\n\tpos.xy *=   rot(.8);\n\tfloat box5 = box(pos,.5) * 6.;\t\n\tpos = pos_origin;\n\tfloat box6 = box(pos,.5) * 6.;\t\n\tfloat result = max(max(max(max(max(box1,box2),box3),box4),box5),box6);\n\treturn result;\n}\n\nfloat map(vec3 pos, float iTime) {\n\tvec3 pos_origin = pos;\n\tfloat box_set1 = box_set(pos, iTime);\n\treturn box_set1;\n}\n\nvoid mainImage( out vec4 fragColor, in vec2 fragCoord ) {\n\tvec2 p = (fragCoord.xy * 2. - iResolution.xy) / min(iResolution.x, iResolution.y);\n\tvec3 ro = vec3(0., -0.2 ,iTime * 4.);\n\tvec3 ray = normalize(vec3(p, 1.5));\n\tray.xy = ray.xy * rot(sin(iTime * .03) * 5.);\n\tray.yz = ray.yz * rot(sin(iTime * .05) * .2);\n\tfloat t = 0.1;\n\tvec3 col = vec3(0.);\n\tfloat ac = 0.0;\n\tfor (int i = 0; i < 99; i++){\n\t\tvec3 pos = ro + ray * t;\n\t\tpos = mod(pos-2., 4.) -2.;\n\t\tgTime = iTime -float(i) * 0.01;\n\t\tfloat d = map(pos, iTime);\n\t\td = max(abs(d), 0.01);\n\t\tac += exp(-d*23.);\n\t\tt += d* 0.55;\n\t}\n\tcol = vec3(ac * 0.02);\n\tcol +=vec3(0.,0.2 * abs(sin(iTime)),0.5 + sin(iTime) * 0.2);\n\tfragColor = vec4(col ,1.0 - t * (0.02 + 0.02 * sin (iTime)));\n}\n\n`},{title:\"Let's self reflect\",author:\"mrange\",originalURL:\"https://www.shadertoy.com/view/XfyXRV\",value:`\n\n// Tinker with these parameters to create different solids\n// -------------------------------------------------------\nconst float rotation_speed= 0.25;\nconst float poly_U        = 1.;   // [0, inf]\nconst float poly_V        = 0.5;  // [0, inf]\nconst float poly_W        = 1.0;  // [0, inf]\nconst int   poly_type     = 3;    // [2, 5]\nconst float poly_zoom     = 2.0;\nconst float inner_sphere  = 1.;\nconst float refr_index    = 0.9;\n#define MAX_BOUNCES2        6\n// -------------------------------------------------------\n#define TIME        iTime\n#define RESOLUTION  iResolution\n#define PI          3.141592654\n#define TAU         (2.0*PI)\n\n// License: WTFPL, author: sam hocevar, found: https://stackoverflow.com/a/17897228/418488\nconst vec4 hsv2rgb_K = vec4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0);\nvec3 hsv2rgb(vec3 c) {\n  vec3 p = abs(fract(c.xxx + hsv2rgb_K.xyz) * 6.0 - hsv2rgb_K.www);\n  return c.z * mix(hsv2rgb_K.xxx, clamp(p - hsv2rgb_K.xxx, 0.0, 1.0), c.y);\n}\n\n// License: WTFPL, author: sam hocevar, found: https://stackoverflow.com/a/17897228/418488\n//  Macro version of above to enable compile-time constants\n#define HSV2RGB(c)  (c.z * mix(hsv2rgb_K.xxx, clamp(abs(fract(c.xxx + hsv2rgb_K.xyz) * 6.0 - hsv2rgb_K.www) - hsv2rgb_K.xxx, 0.0, 1.0), c.y))\n\n#define TOLERANCE2          0.0005\n//#define MAX_RAY_LENGTH2   10.0\n#define MAX_RAY_MARCHES2    50\n#define NORM_OFF2           0.005\n#define BACKSTEP2\n#define TOLERANCE3          0.0005\n#define MAX_RAY_LENGTH3     10.0\n#define MAX_RAY_MARCHES3    90\n#define NORM_OFF3           0.005\nconst vec3 rayOrigin    = vec3(0.0, 1., -5.);\nconst vec3 sunDir       = normalize(-rayOrigin);\nconst vec3 sunCol       = HSV2RGB(vec3(0.06 , 0.90, 1E-2))*1.;\nconst vec3 bottomBoxCol = HSV2RGB(vec3(0.66, 0.80, 0.5))*1.;\nconst vec3 topBoxCol    = HSV2RGB(vec3(0.60, 0.90, 1.))*1.;\nconst vec3 glowCol0     = HSV2RGB(vec3(0.05 , 0.7, 1E-3))*1.;\nconst vec3 glowCol1     = HSV2RGB(vec3(0.95, 0.7, 1E-3))*1.;\nconst vec3 beerCol      = -HSV2RGB(vec3(0.15+0.5, 0.7, 2.)); \nconst float rrefr_index = 1./refr_index;\n\n// License: Unknown, author: knighty, found: https://www.shadertoy.com/view/MsKGzw\nconst float poly_cospin   = cos(PI/float(poly_type));\nconst float poly_scospin  = sqrt(0.75-poly_cospin*poly_cospin);\nconst vec3  poly_nc       = vec3(-0.5, -poly_cospin, poly_scospin);\nconst vec3  poly_pab      = vec3(0., 0., 1.);\nconst vec3  poly_pbc_     = vec3(poly_scospin, 0., 0.5);\nconst vec3  poly_pca_     = vec3(0., poly_scospin, poly_cospin);\nconst vec3  poly_p        = normalize((poly_U*poly_pab+poly_V*poly_pbc_+poly_W*poly_pca_));\nconst vec3  poly_pbc      = normalize(poly_pbc_);\nconst vec3  poly_pca      = normalize(poly_pca_);\nmat3 g_rot;\nvec2 g_gd;\n\n// License: MIT, author: Inigo Quilez, found: https://iquilezles.org/articles/noacos/\nmat3 rot(vec3 d, vec3 z) {\n  vec3  v = cross( z, d );\n  float c = dot( z, d );\n  float k = 1.0/(1.0+c);\n  return mat3( v.x*v.x*k + c,     v.y*v.x*k - v.z,    v.z*v.x*k + v.y,\n               v.x*v.y*k + v.z,   v.y*v.y*k + c,      v.z*v.y*k - v.x,\n               v.x*v.z*k - v.y,   v.y*v.z*k + v.x,    v.z*v.z*k + c    );\n}\n\n// License: Unknown, author: Matt Taylor (https://github.com/64), found: https://64.github.io/tonemapping/\nvec3 aces_approx(vec3 v) {\n  v = max(v, 0.0);\n  v *= 0.6;\n  float a = 2.51;\n  float b = 0.03;\n  float c = 2.43;\n  float d = 0.59;\n  float e = 0.14;\n  return clamp((v*(a*v+b))/(v*(c*v+d)+e), 0.0, 1.0);\n}\n\nfloat sphere(vec3 p, float r) {\n  return length(p) - r;\n}\n\n// License: MIT, author: Inigo Quilez, found: https://iquilezles.org/articles/distfunctions/\nfloat box(vec2 p, vec2 b) {\n  vec2 d = abs(p)-b;\n  return length(max(d,0.0)) + min(max(d.x,d.y),0.0);\n}\n\n// License: Unknown, author: knighty, found: https://www.shadertoy.com/view/MsKGzw\nvoid poly_fold(inout vec3 pos) {\n  vec3 p = pos;\n  for(int i = 0; i < poly_type; ++i){\n    p.xy  = abs(p.xy);\n    p    -= 2.*min(0., dot(p,poly_nc)) * poly_nc;\n  }\n  pos = p;\n}\n\nfloat poly_plane(vec3 pos) {\n  float d0 = dot(pos, poly_pab);\n  float d1 = dot(pos, poly_pbc);\n  float d2 = dot(pos, poly_pca);\n  float d = d0;\n  d = max(d, d1);\n  d = max(d, d2);\n  return d;\n}\n\nfloat poly_corner(vec3 pos) {\n  float d = length(pos) - .0125;\n  return d;\n}\n\nfloat dot2(vec3 p) {\n  return dot(p, p);\n}\n\nfloat poly_edge(vec3 pos) {\n  float dla = dot2(pos-min(0., pos.x)*vec3(1., 0., 0.));\n  float dlb = dot2(pos-min(0., pos.y)*vec3(0., 1., 0.));\n  float dlc = dot2(pos-min(0., dot(pos, poly_nc))*poly_nc);\n  return sqrt(min(min(dla, dlb), dlc))-2E-3;\n}\n\nvec3 shape(vec3 pos) {\n  pos *= g_rot;\n  pos /= poly_zoom;\n  poly_fold(pos);\n  pos -= poly_p;\n  return vec3(poly_plane(pos), poly_edge(pos), poly_corner(pos))*poly_zoom;\n}\n\nvec3 render0(vec3 ro, vec3 rd) {\n  vec3 col = vec3(0.0);\n  float srd  = sign(rd.y);\n  float tp   = -(ro.y-6.)/abs(rd.y);\n  if (srd < 0.) {\n    col += bottomBoxCol*exp(-0.5*(length((ro + tp*rd).xz)));\n  }\n  if (srd > 0.0) {\n    vec3 pos  = ro + tp*rd;\n    vec2 pp = pos.xz;\n    float db = box(pp, vec2(5.0, 9.0))-3.0;\n    col += topBoxCol*rd.y*rd.y*smoothstep(0.25, 0.0, db);\n    col += 0.2*topBoxCol*exp(-0.5*max(db, 0.0));\n    col += 0.05*sqrt(topBoxCol)*max(-db, 0.0);\n  }\n  col += sunCol/(1.001-dot(sunDir, rd));\n  return col; \n}\n\nfloat df2(vec3 p) {\n  vec3 ds = shape(p);\n  float d2 = ds.y-5E-3;\n  float d0 = min(-ds.x, d2);\n  float d1 = sphere(p, inner_sphere);\n  g_gd = min(g_gd, vec2(d2, d1));\n  float d = (min(d0, d1));\n  return d;\n}\n\nfloat rayMarch2(vec3 ro, vec3 rd, float tinit) {\n  float t = tinit;\n#if defined(BACKSTEP2)\n  vec2 dti = vec2(1e10,0.0);\n#endif\n  int i;\n  for (i = 0; i < MAX_RAY_MARCHES2; ++i) {\n    float d = df2(ro + rd*t);\n#if defined(BACKSTEP2)\n    if (d<dti.x) { dti=vec2(d,t); }\n#endif  \n    // Bouncing in a closed shell, will never miss\n    if (d < TOLERANCE2/* || t > MAX_RAY_LENGTH3 */) {\n      break;\n    }\n    t += d;\n  }\n#if defined(BACKSTEP2)\n  if(i==MAX_RAY_MARCHES2) { t=dti.y; };\n#endif  \n  return t;\n}\n\nvec3 normal2(vec3 pos) {\n  vec2  eps = vec2(NORM_OFF2,0.0);\n  vec3 nor;\n  nor.x = df2(pos+eps.xyy) - df2(pos-eps.xyy);\n  nor.y = df2(pos+eps.yxy) - df2(pos-eps.yxy);\n  nor.z = df2(pos+eps.yyx) - df2(pos-eps.yyx);\n  return normalize(nor);\n}\n\nvec3 render2(vec3 ro, vec3 rd, float db) {\n  vec3 agg = vec3(0.0);\n  float ragg = 1.;\n  float tagg = 0.;\n  for (int bounce = 0; bounce < MAX_BOUNCES2; ++bounce) {\n    if (ragg < 0.1) break;\n    g_gd      = vec2(1E3);\n    float t2  = rayMarch2(ro, rd, min(db+0.05, 0.3));\n    vec2 gd2  = g_gd;\n    tagg      += t2;\n    vec3 p2   = ro+rd*t2;\n    vec3 n2   = normal2(p2);\n    vec3 r2   = reflect(rd, n2);\n    vec3 rr2  = refract(rd, n2, rrefr_index);\n    float fre2= 1.+dot(n2,rd);\n    vec3 beer = ragg*exp(0.2*beerCol*tagg);\n    agg += glowCol1*beer*((1.+tagg*tagg*4E-2)*6./max(gd2.x, 5E-4+tagg*tagg*2E-4/ragg));\n    vec3 ocol = 0.2*beer*render0(p2, rr2);\n    if (gd2.y <= TOLERANCE2) {\n      ragg *= 1.-0.9*fre2;\n    } else {\n      agg     += ocol;\n      ragg    *= 0.8;\n    }\n    ro        = p2;\n    rd        = r2;\n    db        = gd2.x; \n  }\n  return agg;\n}\n\nfloat df3(vec3 p) {\n  vec3 ds = shape(p);\n  g_gd = min(g_gd, ds.yz);\n  const float sw = 0.02;\n  float d1 = min(ds.y, ds.z)-sw;\n  float d0 = ds.x;\n  d0 = min(d0, ds.y);\n  d0 = min(d0, ds.z);\n  return d0;\n}\n\nfloat rayMarch3(vec3 ro, vec3 rd, float tinit, out int iter) {\n  float t = tinit;\n  int i;\n  for (i = 0; i < MAX_RAY_MARCHES3; ++i) {\n    float d = df3(ro + rd*t);\n    if (d < TOLERANCE3 || t > MAX_RAY_LENGTH3) {\n      break;\n    }\n    t += d;\n  }\n  iter = i;\n  return t;\n}\n\nvec3 normal3(vec3 pos) {\n  vec2  eps = vec2(NORM_OFF3,0.0);\n  vec3 nor;\n  nor.x = df3(pos+eps.xyy) - df3(pos-eps.xyy);\n  nor.y = df3(pos+eps.yxy) - df3(pos-eps.yxy);\n  nor.z = df3(pos+eps.yyx) - df3(pos-eps.yyx);\n  return normalize(nor);\n}\n\nvec3 render3(vec3 ro, vec3 rd) {\n  int iter;\n  vec3 skyCol = render0(ro, rd);\n  vec3 col  = skyCol;\n  g_gd      = vec2(1E3);\n  float t1  = rayMarch3(ro, rd, 0.1, iter);\n  vec2 gd1  = g_gd;\n  vec3 p1   = ro+t1*rd;\n  vec3 n1   = normal3(p1);\n  vec3 r1   = reflect(rd, n1);\n  vec3 rr1  = refract(rd, n1, refr_index);\n  float fre1= 1.+dot(rd, n1);\n  fre1 *= fre1;\n  float ifo = mix(0.5, 1., smoothstep(1.0, 0.9, float(iter)/float(MAX_RAY_MARCHES3)));\n  if (t1 < MAX_RAY_LENGTH3) {\n    col = render0(p1, r1)*(0.5+0.5*fre1)*ifo;\n    vec3 icol = render2(p1, rr1, gd1.x); \n    if (gd1.x > TOLERANCE3 && gd1.y > TOLERANCE3 && rr1 != vec3(0.)) {\n      col += icol*(1.-0.75*fre1)*ifo;\n    }\n  }\n  col += (glowCol0+1.*fre1*(glowCol0))/max(gd1.x, 3E-4);\n  return col;\n}\n\nvec3 effect(vec2 p, vec2 pp) {\n  const float fov = 2.0;\n  const vec3 up = vec3(0., 1., 0.);\n  const vec3 la   = vec3(0.0);\n  const vec3 ww = normalize(normalize(la-rayOrigin));\n  const vec3 uu = normalize(cross(up, ww));\n  const vec3 vv = cross(ww, uu);\n  vec3 rd = normalize(-p.x*uu + p.y*vv + fov*ww);\n  vec3 col = vec3(0.0);\n  col = render3(rayOrigin, rd);\n  col -= 2E-2*vec3(2.,3.,1.)*(length(p)+0.25);\n  col = aces_approx(col);\n  col = sqrt(col);\n  return col;\n}\n\nvoid mainImage( out vec4 fragColor, in vec2 fragCoord ) {\n  vec2 q = fragCoord/RESOLUTION.xy;\n  vec2 p = -1. + 2. * q;\n  vec2 pp = p;\n  p.x *= RESOLUTION.x/RESOLUTION.y;\n  float a = TIME*rotation_speed;\n  vec3 r0 = vec3(1.0, sin(vec2(sqrt(0.5), 1.0)*a));\n  vec3 r1 = vec3(cos(vec2(sqrt(0.5), 1.0)*0.913*a), 1.0);\n  mat3 rot = rot(normalize(r0), normalize(r1));\n  g_rot = rot;\n  vec3 col = effect(p, pp);\n  fragColor = vec4(col, 1.0);\n}\n\n`},{title:\"Seascape\",author:\"Alexander Alekseev aka TDM - 2014\",originalURL:\"https://www.shadertoy.com/view/Ms2SD1\",value:`\n\nconst int NUM_STEPS = 8;\nconst float PI\t \t= 3.141592;\nconst float EPSILON\t= 1e-3;\n#define EPSILON_NRM (0.1 / iResolution.x)\n\n// sea\nconst int ITER_GEOMETRY = 3;\nconst int ITER_FRAGMENT = 5;\nconst float SEA_HEIGHT = 0.6;\nconst float SEA_CHOPPY = 4.0;\nconst float SEA_SPEED = 0.8;\nconst float SEA_FREQ = 0.16;\nconst vec3 SEA_BASE = vec3(0.0,0.09,0.18);\nconst vec3 SEA_WATER_COLOR = vec3(0.8,0.9,0.6)*0.6;\n#define SEA_TIME (1.0 + iTime * SEA_SPEED)\nconst mat2 octave_m = mat2(1.6,1.2,-1.2,1.6);\n\n// math\nmat3 fromEuler(vec3 ang) {\n\tvec2 a1 = vec2(sin(ang.x),cos(ang.x));\n    vec2 a2 = vec2(sin(ang.y),cos(ang.y));\n    vec2 a3 = vec2(sin(ang.z),cos(ang.z));\n    mat3 m;\n    m[0] = vec3(a1.y*a3.y+a1.x*a2.x*a3.x,a1.y*a2.x*a3.x+a3.y*a1.x,-a2.y*a3.x);\n\tm[1] = vec3(-a2.y*a1.x,a1.y*a2.y,a2.x);\n\tm[2] = vec3(a3.y*a1.x*a2.x+a1.y*a3.x,a1.x*a3.x-a1.y*a3.y*a2.x,a2.y*a3.y);\n\treturn m;\n}\nfloat hash( vec2 p ) {\n\tfloat h = dot(p,vec2(127.1,311.7));\t\n    return fract(sin(h)*43758.5453123);\n}\nfloat noise( in vec2 p ) {\n    vec2 i = floor( p );\n    vec2 f = fract( p );\t\n\tvec2 u = f*f*(3.0-2.0*f);\n    return -1.0+2.0*mix( mix( hash( i + vec2(0.0,0.0) ), \n                     hash( i + vec2(1.0,0.0) ), u.x),\n                mix( hash( i + vec2(0.0,1.0) ), \n                     hash( i + vec2(1.0,1.0) ), u.x), u.y);\n}\n\n// lighting\nfloat diffuse(vec3 n,vec3 l,float p) {\n    return pow(dot(n,l) * 0.4 + 0.6,p);\n}\nfloat specular(vec3 n,vec3 l,vec3 e,float s) {    \n    float nrm = (s + 8.0) / (PI * 8.0);\n    return pow(max(dot(reflect(e,n),l),0.0),s) * nrm;\n}\n\n// sky\nvec3 getSkyColor(vec3 e) {\n    e.y = (max(e.y,0.0)*0.8+0.2)*0.8;\n    return vec3(pow(1.0-e.y,2.0), 1.0-e.y, 0.6+(1.0-e.y)*0.4) * 1.1;\n}\n\n// sea\nfloat sea_octave(vec2 uv, float choppy) {\n    uv += noise(uv);        \n    vec2 wv = 1.0-abs(sin(uv));\n    vec2 swv = abs(cos(uv));    \n    wv = mix(wv,swv,wv);\n    return pow(1.0-pow(wv.x * wv.y,0.65),choppy);\n}\n\nfloat map(vec3 p) {\n    float freq = SEA_FREQ;\n    float amp = SEA_HEIGHT;\n    float choppy = SEA_CHOPPY;\n    vec2 uv = p.xz; uv.x *= 0.75;\n    \n    float d, h = 0.0;    \n    for(int i = 0; i < ITER_GEOMETRY; i++) {        \n    \td = sea_octave((uv+SEA_TIME)*freq,choppy);\n    \td += sea_octave((uv-SEA_TIME)*freq,choppy);\n        h += d * amp;        \n    \tuv *= octave_m; freq *= 1.9; amp *= 0.22;\n        choppy = mix(choppy,1.0,0.2);\n    }\n    return p.y - h;\n}\n\nfloat map_detailed(vec3 p) {\n    float freq = SEA_FREQ;\n    float amp = SEA_HEIGHT;\n    float choppy = SEA_CHOPPY;\n    vec2 uv = p.xz; uv.x *= 0.75;\n    float d, h = 0.0;    \n    for(int i = 0; i < ITER_FRAGMENT; i++) {        \n    \td = sea_octave((uv+SEA_TIME)*freq,choppy);\n    \td += sea_octave((uv-SEA_TIME)*freq,choppy);\n        h += d * amp;        \n    \tuv *= octave_m; freq *= 1.9; amp *= 0.22;\n        choppy = mix(choppy,1.0,0.2);\n    }\n    return p.y - h;\n}\n\nvec3 getSeaColor(vec3 p, vec3 n, vec3 l, vec3 eye, vec3 dist) {  \n    float fresnel = clamp(1.0 - dot(n,-eye), 0.0, 1.0);\n    fresnel = min(pow(fresnel,3.0), 0.5);\n    vec3 reflected = getSkyColor(reflect(eye,n));    \n    vec3 refracted = SEA_BASE + diffuse(n,l,80.0) * SEA_WATER_COLOR * 0.12; \n    vec3 color = mix(refracted,reflected,fresnel);\n    float atten = max(1.0 - dot(dist,dist) * 0.001, 0.0);\n    color += SEA_WATER_COLOR * (p.y - SEA_HEIGHT) * 0.18 * atten;\n    color += vec3(specular(n,l,eye,60.0));\n    return color;\n}\n\n// tracing\nvec3 getNormal(vec3 p, float eps) {\n    vec3 n;\n    n.y = map_detailed(p);    \n    n.x = map_detailed(vec3(p.x+eps,p.y,p.z)) - n.y;\n    n.z = map_detailed(vec3(p.x,p.y,p.z+eps)) - n.y;\n    n.y = eps;\n    return normalize(n);\n}\n\nfloat heightMapTracing(vec3 ori, vec3 dir, out vec3 p) {  \n    float tm = 0.0;\n    float tx = 1000.0;    \n    float hx = map(ori + dir * tx);\n    if(hx > 0.0) {\n        p = ori + dir * tx;\n        return tx;   \n    }\n    float hm = map(ori + dir * tm);    \n    float tmid = 0.0;\n    for(int i = 0; i < NUM_STEPS; i++) {\n        tmid = mix(tm,tx, hm/(hm-hx));                   \n        p = ori + dir * tmid;                   \n    \tfloat hmid = map(p);\n\t\tif(hmid < 0.0) {\n        \ttx = tmid;\n            hx = hmid;\n        } else {\n            tm = tmid;\n            hm = hmid;\n        }\n    }\n    return tmid;\n}\n\nvec3 getPixel(in vec2 coord, float time) {    \n    vec2 uv = coord / iResolution.xy;\n    uv = uv * 2.0 - 1.0;\n    uv.x *= iResolution.x / iResolution.y;    \n        \n    // ray\n    vec3 ang = vec3(sin(time*3.0)*0.1,sin(time)*0.2+0.3,time);    \n    vec3 ori = vec3(0.0,3.5,time*5.0);\n    vec3 dir = normalize(vec3(uv.xy,-2.0)); dir.z += length(uv) * 0.14;\n    dir = normalize(dir) * fromEuler(ang);\n    \n    // tracing\n    vec3 p;\n    heightMapTracing(ori,dir,p);\n    vec3 dist = p - ori;\n    vec3 n = getNormal(p, dot(dist,dist) * EPSILON_NRM);\n    vec3 light = normalize(vec3(0.0,1.0,0.8)); \n             \n    // color\n    return mix(\n        getSkyColor(dir),\n        getSeaColor(p,n,light,dir,dist),\n    \tpow(smoothstep(0.0,-0.02,dir.y),0.2));\n}\n\n// main\nvoid mainImage( out vec4 fragColor, in vec2 fragCoord ) {\n    float time = iTime * 0.3 + iMouse.x*0.01;\n\t\n#ifdef AA\n    vec3 color = vec3(0.0);\n    for(int i = -1; i <= 1; i++) {\n        for(int j = -1; j <= 1; j++) {\n        \tvec2 uv = fragCoord+vec2(i,j)/3.0;\n    \t\tcolor += getPixel(uv, time);\n        }\n    }\n    color /= 9.0;\n#else\n    vec3 color = getPixel(fragCoord, time);\n#endif\n    \n    // post\n\tfragColor = vec4(pow(color,vec3(0.65)), 1.0);\n}\n`},{title:\"Protean clouds\",author:\"nimitz (twitter: @stormoid)\",originalURL:\"https://www.shadertoy.com/view/3l23Rh\",value:`\n \n\nmat2 rot(in float a){float c = cos(a), s = sin(a);return mat2(c,s,-s,c);}\nconst mat3 m3 = mat3(0.33338, 0.56034, -0.71817, -0.87887, 0.32651, -0.15323, 0.15162, 0.69596, 0.61339)*1.93;\nfloat mag2(vec2 p){return dot(p,p);}\nfloat linstep(in float mn, in float mx, in float x){ return clamp((x - mn)/(mx - mn), 0., 1.); }\nfloat prm1 = 0.;\nvec2 bsMo = vec2(0);\nvec2 disp(float t){ return vec2(sin(t*0.22)*1., cos(t*0.175)*1.)*2.; }\nvec2 map(vec3 p)\n{\n    vec3 p2 = p;\n    p2.xy -= disp(p.z).xy;\n    p.xy *= rot(sin(p.z+iTime)*(0.1 + prm1*0.05) + iTime*0.09);\n    float cl = mag2(p2.xy);\n    float d = 0.;\n    p *= .61;\n    float z = 1.;\n    float trk = 1.;\n    float dspAmp = 0.1 + prm1*0.2;\n    for(int i = 0; i < 5; i++)\n    {\n\t\tp += sin(p.zxy*0.75*trk + iTime*trk*.8)*dspAmp;\n        d -= abs(dot(cos(p), sin(p.yzx))*z);\n        z *= 0.57;\n        trk *= 1.4;\n        p = p*m3;\n    }\n    d = abs(d + prm1*3.)+ prm1*.3 - 2.5 + bsMo.y;\n    return vec2(d + cl*.2 + 0.25, cl);\n}\n\nvec4 render( in vec3 ro, in vec3 rd, float time )\n{\n\tvec4 rez = vec4(0);\n  const float ldst = 8.;\n\tvec3 lpos = vec3(disp(time + ldst)*0.5, time + ldst);\n\tfloat t = 1.5;\n\tfloat fogT = 0.;\n\tfor(int i=0; i<130; i++)\n\t{\n\t\tif(rez.a > 0.99)break;\n\t\tvec3 pos = ro + t*rd;\n    vec2 mpv = map(pos);\n\t\tfloat den = clamp(mpv.x-0.3,0.,1.)*1.12;\n\t\tfloat dn = clamp((mpv.x + 2.),0.,3.);\n\t\tvec4 col = vec4(0);\n    if (mpv.x > 0.6)\n    {\n    \n        col = vec4(sin(vec3(5.,0.4,0.2) + mpv.y*0.1 +sin(pos.z*0.4)*0.5 + 1.8)*0.5 + 0.5,0.08);\n        col *= den*den*den;\n        col.rgb *= linstep(4.,-2.5, mpv.x)*2.3;\n        float dif =  clamp((den - map(pos+.8).x)/9., 0.001, 1. );\n        dif += clamp((den - map(pos+.35).x)/2.5, 0.001, 1. );\n        col.xyz *= den*(vec3(0.005,.045,.075) + 1.5*vec3(0.033,0.07,0.03)*dif);\n    }\n\t\t\n\t\tfloat fogC = exp(t*0.2 - 2.2);\n\t\tcol.rgba += vec4(0.06,0.11,0.11, 0.1)*clamp(fogC-fogT, 0., 1.);\n\t\tfogT = fogC;\n\t\trez = rez + col*(1. - rez.a);\n\t\tt += clamp(0.5 - dn*dn*.05, 0.09, 0.3);\n\t}\n\treturn clamp(rez, 0.0, 1.0);\n}\n\nfloat getsat(vec3 c)\n{\n    float mi = min(min(c.x, c.y), c.z);\n    float ma = max(max(c.x, c.y), c.z);\n    return (ma - mi)/(ma+ 1e-7);\n}\n\n//from my \"Will it blend\" shader (https://www.shadertoy.com/view/lsdGzN)\nvec3 iLerp(in vec3 a, in vec3 b, in float x)\n{\n    vec3 ic = mix(a, b, x) + vec3(1e-6,0.,0.);\n    float sd = abs(getsat(ic) - mix(getsat(a), getsat(b), x));\n    vec3 dir = normalize(vec3(2.*ic.x - ic.y - ic.z, 2.*ic.y - ic.x - ic.z, 2.*ic.z - ic.y - ic.x));\n    float lgt = dot(vec3(1.0), ic);\n    float ff = dot(dir, normalize(ic));\n    ic += 1.5*dir*sd*ff*lgt;\n    return clamp(ic,0.,1.);\n}\n\nvoid mainImage( out vec4 fragColor, in vec2 fragCoord )\n{\t\n\tvec2 q = fragCoord.xy/iResolution.xy;\n    vec2 p = (gl_FragCoord.xy - 0.5*iResolution.xy)/iResolution.y;\n    bsMo = (iMouse.xy - 0.5*iResolution.xy)/iResolution.y;\n    float time = iTime*3.;\n    vec3 ro = vec3(0,0,time);\n    ro += vec3(sin(iTime)*0.5,sin(iTime*1.)*0.,0);\n    float dspAmp = .85;\n    ro.xy += disp(ro.z)*dspAmp;\n    float tgtDst = 3.5;\n    vec3 target = normalize(ro - vec3(disp(time + tgtDst)*dspAmp, time + tgtDst));\n    ro.x -= bsMo.x*2.;\n    vec3 rightdir = normalize(cross(target, vec3(0,1,0)));\n    vec3 updir = normalize(cross(rightdir, target));\n    rightdir = normalize(cross(updir, target));\n\t  vec3 rd=normalize((p.x*rightdir + p.y*updir)*1. - target);\n    rd.xy *= rot(-disp(time + 3.5).x*0.2 + bsMo.x);\n    prm1 = smoothstep(-0.4, 0.4,sin(iTime*0.3));\n\t  vec4 scn = render(ro, rd, time);\n    vec3 col = scn.rgb;\n    col = iLerp(col.bgr, col.rgb, clamp(1.-prm1,0.05,1.));\n    col = pow(col, vec3(.55,0.65,0.6))*vec3(1.,.97,.9);\n    col *= pow( 16.0*q.x*q.y*(1.0-q.x)*(1.0-q.y), 0.12)*0.7+0.3; //Vign\n\t  fragColor = vec4( col, 1.0 );\n}\n\n`},{title:\"Silk Fabric\",author:\"Giorgi Azmaipharashvili\",originalURL:\"https://www.shadertoy.com/view/X3yXRd\",value:`\n \n  #define INVERT 1\n\n  float noise(vec2 p) {\n      return smoothstep(-0.5, 0.9, sin((p.x - p.y) * 555.0) * sin(p.y * 1444.0)) - 0.4;\n  }\n\n  float fabric(vec2 p) {\n      const mat2 m = mat2(1.6, 1.2, -1.2, 1.6);\n      float f = 0.4 * noise(p);\n      f += 0.3 * noise(p = m * p);\n      f += 0.2 * noise(p = m * p);\n      return f + 0.1 * noise(m * p);\n  }\n\n  float silk(vec2 uv, float t) {\n      float s = sin(5.0 * (uv.x + uv.y + cos(2.0 * uv.x + 5.0 * uv.y)) + sin(12.0 * (uv.x + uv.y)) - t);\n      s = 0.7 + 0.3 * (s * s * 0.5 + s);\n      s *= 0.9 + 0.6 * fabric(uv * min(iResolution.x, iResolution.y) * 0.0006);\n      return s * 0.9 + 0.1;\n  }\n\n  float silkd(vec2 uv, float t) {\n      float xy = uv.x + uv.y;\n      float d = (5.0 * (1.0 - 2.0 * sin(2.0 * uv.x + 5.0 * uv.y)) + 12.0 * cos(12.0 * xy)) * cos(5.0 * (cos(2.0 * uv.x + 5.0 * uv.y) + xy) + sin(12.0 * xy) - t);\n      return 0.005 * d * (sign(d) + 3.0);\n  }\n\n  void mainImage(out vec4 fragColor, vec2 fragCoord) {\n      float mr = min(iResolution.x, iResolution.y);\n      vec2 uv = fragCoord / mr;\n      \n      float t = iTime;\n      uv.y += 0.03 * sin(8.0 * uv.x - t);\n      \n      if (iMouse.z > 1.0)\n          uv += smoothstep(0.5, 0.0, distance(iMouse.xy / mr, uv)) * 0.08;\n      // uv -= normalize(iMouse.xy / iResolution.xy * 2.0 - 1.0) * t * 0.05; // Wind, requires state\n      \n      float s = sqrt(silk(uv, t));\n      float d = silkd(uv, t);\n      vec3 c = vec3(s);\n      c += 0.7 * vec3(1, 0.83, 0.6) * d;\n      c *= 1.0 - max(0.0, 0.8 * d);\n  #if INVERT\n      c = pow(c, 0.3 / vec3(0.52, 0.5, 0.4));\n      c = 1.0 - c;\n  #else\n      c = pow(c, vec3(0.52, 0.5, 0.4));\n  #endif\n      fragColor = vec4(c, 1);\n  }\n\n`},{title:\"CineShader Lava\",author:\"edankwan\",originalURL:\"https://www.shadertoy.com/view/3sySRK\",value:`\n\nfloat opSmoothUnion( float d1, float d2, float k )\n{\n    float h = clamp( 0.5 + 0.5*(d2-d1)/k, 0.0, 1.0 );\n    return mix( d2, d1, h ) - k*h*(1.0-h);\n}\n\nfloat sdSphere( vec3 p, float s )\n{\n  return length(p)-s;\n} \n\nfloat map(vec3 p)\n{\n\tfloat d = 2.0;\n\tfor (int i = 0; i < 16; i++) {\n\t\tfloat fi = float(i);\n\t\tfloat time = iTime * (fract(fi * 412.531 + 0.513) - 0.5) * 2.0;\n\t\td = opSmoothUnion(\n            sdSphere(p + sin(time + fi * vec3(52.5126, 64.62744, 632.25)) * vec3(2.0, 2.0, 0.8), mix(0.5, 1.0, fract(fi * 412.531 + 0.5124))),\n\t\t\td,\n\t\t\t0.4\n\t\t);\n\t}\n\treturn d;\n}\n\nvec3 calcNormal( in vec3 p )\n{\n    const float h = 1e-5; // or some other value\n    const vec2 k = vec2(1,-1);\n    return normalize( k.xyy*map( p + k.xyy*h ) + \n                      k.yyx*map( p + k.yyx*h ) + \n                      k.yxy*map( p + k.yxy*h ) + \n                      k.xxx*map( p + k.xxx*h ) );\n}\n\nvoid mainImage( out vec4 fragColor, in vec2 fragCoord )\n{\n  vec2 uv = fragCoord/iResolution.xy;\n    \n  // screen size is 6m x 6m\n\tvec3 rayOri = vec3((uv - 0.5) * vec2(iResolution.x/iResolution.y, 1.0) * 6.0, 3.0);\n\tvec3 rayDir = vec3(0.0, 0.0, -1.0);\n\tfloat depth = 0.0;\n\tvec3 p;\n\tfor(int i = 0; i < 64; i++) {\n\t\tp = rayOri + rayDir * depth;\n\t\tfloat dist = map(p);\n        depth += dist;\n\t\tif (dist < 1e-6) {\n\t\t\tbreak;\n\t\t}\n\t}\n  depth = min(6.0, depth);\n\tvec3 n = calcNormal(p);\n  float b = max(0.0, dot(n, vec3(0.577)));\n  vec3 col = (0.5 + 0.5 * cos((b + iTime * 3.0) + uv.xyx * 2.0 + vec3(0,2,4))) * (0.85 + b * 0.35);\n  col *= exp( -depth * 0.15 );\n\t\n  // maximum thickness is 2m in alpha channel\n  fragColor = vec4(col, 1.0 - (depth - 0.5) / 2.0);\n  fragColor.a = 1.0;\n}\n\n`},{title:\"TV Noise\",author:\"arthurstammet\",originalURL:\"https://www.shadertoy.com/view/tdXXRM\",value:`\n\nfloat Noise21 (vec2 p, float ta, float tb) {\n    return fract(sin(p.x*ta+p.y*tb)*5678.);\n}\n\nvoid mainImage(out vec4 fragColor, in vec2 fragCoord)\n{\n    vec2 uv = fragCoord/iResolution.xy;\n    float t = iTime+123.; // tweak the start moment\n    float ta = t*.654321;\n    float tb = t*(ta*.123456);\n    float c = Noise21(uv, ta, tb);\n    vec3 col = vec3(c);\n    fragColor = vec4(col,1.);\n}\n\n`},{title:\"MONSTER\",author:\"butadiene\",originalURL:\"https://www.shadertoy.com/view/WtKSzt\",value:`\n  float TK = 1.;\n  float PI = 3.1415926535;\n\nvec2 rot(vec2 p,float r){\n\tmat2 m = mat2(cos(r),sin(r),-sin(r),cos(r));\n\treturn m*p;\n}\n\nvec2 pmod(vec2 p,float n){\n\tfloat np = 2.0*PI/n;\n\tfloat r = atan(p.x,p.y)-0.5*np;\n\tr = mod(r,np)-0.5*np;\n\treturn length(p)*vec2(cos(r),sin(r));\n}\n\nfloat cube(vec3 p,vec3 s){\n\tvec3 q = abs(p);\n\tvec3 m = max(s-q,0.0);\n\treturn length(max(q-s,0.0))-min(min(m.x,m.y),m.z);\n}\n\nfloat dist(vec3 p){\n\tp.z -= 1.*TK*iTime;\n\tp.xy = rot(p.xy,1.0*p.z);\n\tp.xy = pmod(p.xy,6.0);\n\tfloat k = 0.7;\n\tfloat zid = floor(p.z*k);\n\tp = mod(p,k)-0.5*k;\n\tfor(int i = 0;i<4;i++){\n\t\tp = abs(p)-0.3;\n\t\tp.xy = rot(p.xy,1.0+zid+0.1*TK*iTime);\n\t\tp.xz = rot(p.xz,1.0+4.7*zid+0.3*TK*iTime);\n\t}\n\treturn min(cube(p,vec3(0.3)),length(p)-0.4);\n}\n\nvoid mainImage( out vec4 fragColor, in vec2 fragCoord )\n{\n  vec2 uv = fragCoord/iResolution.xy;\n\tuv = 2.0*(uv-0.5);\n\tuv.y *= iResolution.y/iResolution.x;\n\tuv = rot(uv,TK*iTime);\n\tvec3 ro = vec3(0.0,0.0,0.1);\n\tvec3 rd = normalize(vec3(uv,0.0)-ro);\n\tfloat t  =2.0;\n\tfloat d = 0.0;\n\tfloat ac = 0.0;\n\tfor(int i = 0;i<66;i++){\n  d = dist(ro+rd*t)*0.2;\n  d = max(0.0000,abs(d));\n  t += d;\n  if(d<0.001)ac += 0.1;//exp(-15.0*d);\n\t}\n\tvec3 col = vec3(0.0);\n\tcol = vec3(0.1,0.7,0.7)*0.2*vec3(ac);//vec3(exp(-1.0*t));\n\tvec3 pn = ro+rd*t;\n\tfloat kn = 0.5;\n\tpn.z += -1.5*iTime*TK;\n\tpn.z = mod(pn.z,kn)-0.5*kn;\n\tfloat em = clamp(0.01/pn.z,0.0,100.0);\n\tcol += 3.0*em*vec3(0.1,1.0,0.1);\n\tcol = clamp(col,0.0,1.0);\n\n  // Output to screen\n  fragColor = vec4(col,0.1);\n  fragColor.a = 1.0;\n}\n\n`},{title:\"2D Clouds\",author:\"drift\",originalURL:\"https://www.shadertoy.com/view/4tdSWr\",value:`\nconst float cloudscale = 1.1;\nconst float speed = 0.03;\nconst float clouddark = 0.5;\nconst float cloudlight = 0.3;\nconst float cloudcover = 0.2;\nconst float cloudalpha = 8.0;\nconst float skytint = 0.5;\nconst vec3 skycolour1 = vec3(0.2, 0.4, 0.6);\nconst vec3 skycolour2 = vec3(0.4, 0.7, 1.0);\n\nconst mat2 m = mat2( 1.6,  1.2, -1.2,  1.6 );\n\nvec2 hash( vec2 p ) {\n\tp = vec2(dot(p,vec2(127.1,311.7)), dot(p,vec2(269.5,183.3)));\n\treturn -1.0 + 2.0*fract(sin(p)*43758.5453123);\n}\n\nfloat noise( in vec2 p ) {\n    const float K1 = 0.366025404; // (sqrt(3)-1)/2;\n    const float K2 = 0.211324865; // (3-sqrt(3))/6;\n\tvec2 i = floor(p + (p.x+p.y)*K1);\t\n    vec2 a = p - i + (i.x+i.y)*K2;\n    vec2 o = (a.x>a.y) ? vec2(1.0,0.0) : vec2(0.0,1.0); //vec2 of = 0.5 + 0.5*vec2(sign(a.x-a.y), sign(a.y-a.x));\n    vec2 b = a - o + K2;\n\tvec2 c = a - 1.0 + 2.0*K2;\n    vec3 h = max(0.5-vec3(dot(a,a), dot(b,b), dot(c,c) ), 0.0 );\n\tvec3 n = h*h*h*h*vec3( dot(a,hash(i+0.0)), dot(b,hash(i+o)), dot(c,hash(i+1.0)));\n    return dot(n, vec3(70.0));\t\n}\n\nfloat fbm(vec2 n) {\n\tfloat total = 0.0, amplitude = 0.1;\n\tfor (int i = 0; i < 7; i++) {\n\t\ttotal += noise(n) * amplitude;\n\t\tn = m * n;\n\t\tamplitude *= 0.4;\n\t}\n\treturn total;\n}\n\n// -----------------------------------------------\n\nvoid mainImage( out vec4 fragColor, in vec2 fragCoord ) {\n    vec2 p = fragCoord.xy / iResolution.xy;\n\t  vec2 uv = p*vec2(iResolution.x/iResolution.y,1.0);    \n    float time = iTime * speed;\n    float q = fbm(uv * cloudscale * 0.5);\n    \n    //ridged noise shape\n\t  float r = 0.0;\n\t  uv *= cloudscale;\n    uv -= q - time;\n    float weight = 0.8;\n    for (int i=0; i<8; i++){\n\t\tr += abs(weight*noise( uv ));\n    uv = m*uv + time;\n\t\tweight *= 0.7;\n    }\n    \n    //noise shape\n\t  float f = 0.0;\n    uv = p*vec2(iResolution.x/iResolution.y,1.0);\n\t  uv *= cloudscale;\n    uv -= q - time;\n    weight = 0.7;\n    for (int i=0; i<8; i++){\n\t\tf += weight*noise( uv );\n        uv = m*uv + time;\n\t\tweight *= 0.6;\n    }\n    \n    f *= r + f;\n    \n    //noise colour\n    float c = 0.0;\n    time = iTime * speed * 2.0;\n    uv = p*vec2(iResolution.x/iResolution.y,1.0);\n\t  uv *= cloudscale*2.0;\n    uv -= q - time;\n    weight = 0.4;\n    for (int i=0; i<7; i++){\n\t\tc += weight*noise( uv );\n    uv = m*uv + time;\n\t\tweight *= 0.6;\n    }\n    \n    //noise ridge colour\n    float c1 = 0.0;\n    time = iTime * speed * 3.0;\n    uv = p*vec2(iResolution.x/iResolution.y,1.0);\n\t  uv *= cloudscale*3.0;\n    uv -= q - time;\n    weight = 0.4;\n    for (int i=0; i<7; i++){\n\t\tc1 += abs(weight*noise( uv ));\n    uv = m*uv + time;\n\t\tweight *= 0.6;\n    }\n    c += c1;\n    vec3 skycolour = mix(skycolour2, skycolour1, p.y);\n    vec3 cloudcolour = vec3(1.1, 1.1, 0.9) * clamp((clouddark + cloudlight*c), 0.0, 1.0);\n    f = cloudcover + cloudalpha*f*r;\n    vec3 result = mix(skycolour, clamp(skytint * skycolour + cloudcolour, 0.0, 1.0), clamp(f + c, 0.0, 1.0));\n\t  fragColor = vec4( result, 1.0 );\n}\n\n`},{title:\"Tileable Water Caustic\",author:\"Dave_Hoskins\",originalURL:\"https://www.shadertoy.com/view/MdlXz8\",value:`\n\n#define TAU 6.28318530718\n#define MAX_ITER 5\n\nvoid mainImage( out vec4 fragColor, in vec2 fragCoord ) \n{\n\tfloat time = iTime * .5+23.0;\n  // uv should be the 0-1 uv of texture...\n\tvec2 uv = fragCoord.xy / iResolution.xy;\n\n#ifdef SHOW_TILING\n\tvec2 p = mod(uv*TAU*2.0, TAU)-250.0;\n#else\n    vec2 p = mod(uv*TAU, TAU)-250.0;\n#endif\n\tvec2 i = vec2(p);\n\tfloat c = 1.0;\n\tfloat inten = .005;\n\tfor (int n = 0; n < MAX_ITER; n++) \n\t{\n\t\tfloat t = time * (1.0 - (3.5 / float(n+1)));\n\t\ti = p + vec2(cos(t - i.x) + sin(t + i.y), sin(t - i.y) + cos(t + i.x));\n\t\tc += 1.0/length(vec2(p.x / (sin(i.x+t)/inten),p.y / (cos(i.y+t)/inten)));\n\t}\n\tc /= float(MAX_ITER);\n\tc = 1.17-pow(c, 1.4);\n\tvec3 colour = vec3(pow(abs(c), 8.0));\n  colour = clamp(colour + vec3(0.0, 0.35, 0.5), 0.0, 1.0);\n\n\t#ifdef SHOW_TILING\n\t// Flash tile borders...\n\tvec2 pixel = 2.0 / iResolution.xy;\n\tuv *= 2.0;\n\tfloat f = floor(mod(iTime*.5, 2.0)); \t// Flash value.\n\tvec2 first = step(pixel, uv) * f;\t\t   \t// Rule out first screen pixels and flash.\n\tuv  = step(fract(uv), pixel);\t\t\t\t// Add one line of pixels per tile.\n\tcolour = mix(colour, vec3(1.0, 1.0, 0.0), (uv.x + uv.y) * first.x * first.y); // Yellow line\n\t#endif\n\n\tfragColor = vec4(colour, 1.0);\n}\n\n`},{title:\"Auroras\",author:\"nimitz\",originalURL:\"https://www.shadertoy.com/view/XtGGRt\",value:` \n\n#define time iTime\nmat2 mm2(in float a){float c = cos(a), s = sin(a);return mat2(c,s,-s,c);}\nmat2 m2 = mat2(0.95534, 0.29552, -0.29552, 0.95534);\nfloat tri(in float x){return clamp(abs(fract(x)-.5),0.01,0.49);}\nvec2 tri2(in vec2 p){return vec2(tri(p.x)+tri(p.y),tri(p.y+tri(p.x)));}\nfloat triNoise2d(in vec2 p, float spd)\n{\n    float z=1.8;\n    float z2=2.5;\n\t  float rz = 0.;\n    p *= mm2(p.x*0.06);\n    vec2 bp = p;\n    for (float i=0.; i<5.; i++ )\n    {\n          vec2 dg = tri2(bp*1.85)*.75;\n          dg *= mm2(time*spd);\n          p -= dg/z2;\n          bp *= 1.3;\n          z2 *= .45;\n          z *= .42;\n          p *= 1.21 + (rz-1.0)*.02;\n          rz += tri(p.x+tri(p.y))*z;\n          p*= -m2;\n    }\n    return clamp(1./pow(rz*29., 1.3),0.,.55);\n}\n\nfloat hash21(in vec2 n){ return fract(sin(dot(n, vec2(12.9898, 4.1414))) * 43758.5453); }\nvec4 aurora(vec3 ro, vec3 rd)\n{\n    vec4 col = vec4(0);\n    vec4 avgCol = vec4(0);\n    for(float i=0.;i<50.;i++)\n    {\n        float of = 0.006*hash21(gl_FragCoord.xy)*smoothstep(0.,15., i);\n        float pt = ((.8+pow(i,1.4)*.002)-ro.y)/(rd.y*2.+0.4);\n        pt -= of;\n    \t  vec3 bpos = ro + pt*rd;\n        vec2 p = bpos.zx;\n        float rzt = triNoise2d(p, 0.06);\n        vec4 col2 = vec4(0,0,0, rzt);\n        col2.rgb = (sin(1.-vec3(2.15,-.5, 1.2)+i*0.043)*0.5+0.5)*rzt;\n        avgCol =  mix(avgCol, col2, .5);\n        col += avgCol*exp2(-i*0.065 - 2.5)*smoothstep(0.,5., i);\n        \n    }\n    \n    col *= (clamp(rd.y*15.+.4,0.,1.));\n    \n    //return clamp(pow(col,vec4(1.3))*1.5,0.,1.);\n    //return clamp(pow(col,vec4(1.7))*2.,0.,1.);\n    //return clamp(pow(col,vec4(1.5))*2.5,0.,1.);\n    //return clamp(pow(col,vec4(1.8))*1.5,0.,1.);\n    //return smoothstep(0.,1.1,pow(col,vec4(1.))*1.5);\n    return col*1.8;\n    //return pow(col,vec4(1.))*2.\n}\n\n//-------------------Background and Stars--------------------\nvec3 nmzHash33(vec3 q)\n{\n    uvec3 p = uvec3(ivec3(q));\n    p = p*uvec3(374761393U, 1103515245U, 668265263U) + p.zxy + p.yzx;\n    p = p.yzx*(p.zxy^(p >> 3U));\n    return vec3(p^(p >> 16U))*(1.0/vec3(0xffffffffU));\n}\n\nvec3 stars(in vec3 p)\n{\n    vec3 c = vec3(0.);\n    float res = iResolution.x*1.;\n    \n\tfor (float i=0.;i<4.;i++)\n    {\n        vec3 q = fract(p*(.15*res))-0.5;\n        vec3 id = floor(p*(.15*res));\n        vec2 rn = nmzHash33(id).xy;\n        float c2 = 1.-smoothstep(0.,.6,length(q));\n        c2 *= step(rn.x,.0005+i*i*0.001);\n        c += c2*(mix(vec3(1.0,0.49,0.1),vec3(0.75,0.9,1.),rn.y)*0.1+0.9);\n        p *= 1.3;\n    }\n    return c*c*.8;\n}\n\nvec3 bg(in vec3 rd)\n{\n    float sd = dot(normalize(vec3(-0.5, -0.6, 0.9)), rd)*0.5+0.5;\n    sd = pow(sd, 5.);\n    vec3 col = mix(vec3(0.05,0.1,0.2), vec3(0.1,0.05,0.2), sd);\n    return col*.63;\n}\n\n//-----------------------------------------------------------\n\nvoid mainImage( out vec4 fragColor, in vec2 fragCoord )\n{\n\t  vec2 q = fragCoord.xy / iResolution.xy;\n    vec2 p = q - 0.5;\n\t  p.x*=iResolution.x/iResolution.y;\n    vec3 ro = vec3(0,0,-6.7);\n    vec3 rd = normalize(vec3(p,1.3));\n    vec2 mo = iMouse.xy / iResolution.xy-.5;\n    mo = (mo==vec2(-.5))?mo=vec2(-0.1,0.1):mo;\n\t  mo.x *= iResolution.x/iResolution.y;\n    rd.yz *= mm2(mo.y);\n    rd.xz *= mm2(mo.x + sin(time*0.05)*0.2);\n    vec3 col = vec3(0.);\n    vec3 brd = rd;\n    float fade = smoothstep(0.,0.01,abs(brd.y))*0.1+0.9;\n    col = bg(rd)*fade;\n    if (rd.y > 0.){\n        vec4 aur = smoothstep(0.,1.5,aurora(ro,rd))*fade;\n        col += stars(rd);\n        col = col*(1.-aur.a) + aur.rgb;\n    }\n    else //Reflections\n    {\n        rd.y = abs(rd.y);\n        col = bg(rd)*fade*0.6;\n        vec4 aur = smoothstep(0.0,2.5,aurora(ro,rd));\n        col += stars(rd)*0.1;\n        col = col*(1.-aur.a) + aur.rgb;\n        vec3 pos = ro + ((0.5-ro.y)/rd.y)*rd;\n        float nz2 = triNoise2d(pos.xz*vec2(.5,.7), 0.);\n        col += mix(vec3(0.2,0.25,0.5)*0.08,vec3(0.3,0.3,0.5)*0.7, nz2*0.4);\n    }\n\tfragColor = vec4(col, 1.);\n}\n\n`},{title:\"Cellular\",author:\"vug\",originalURL:\"https://www.shadertoy.com/view/Xs2GDd\",value:`\n\n#define PI 3.14159265359\nvec3 col1 = vec3(0.216, 0.471, 0.698); // blue\nvec3 col2 = vec3(1.00, 0.329, 0.298); // yellow\nvec3 col3 = vec3(0.867, 0.910, 0.247); // red\n\nfloat disk(vec2 r, vec2 center, float radius) {\n\treturn 1.0 - smoothstep( radius-0.008, radius+0.008, length(r-center));\n}\n\nvoid mainImage( out vec4 fragColor, in vec2 fragCoord )\n{\n\tfloat t = iTime*2.;\n\tvec2 r = (2.0*fragCoord.xy - iResolution.xy) / iResolution.y;\n\tr *= 1.0 + 0.05*sin(r.x*5.+iTime) + 0.05*sin(r.y*3.+iTime);\n\tr *= 1.0 + 0.2*length(r);\n\tfloat side = 0.5;\n\tvec2 r2 = mod(r, side);\n\tvec2 r3 = r2-side/2.;\n\tfloat i = floor(r.x/side)+2.;\n\tfloat j = floor(r.y/side)+4.;\n\tfloat ii = r.x/side+2.;\n\tfloat jj = r.y/side+4.;\t\n\tvec3 pix = vec3(1.0);\n\tfloat rad, disks;\n\trad = 0.15 + 0.05*sin(t+ii*jj);\n\tdisks = disk(r3, vec2(0.,0.), rad);\n\tpix = mix(pix, col2, disks);\n\tfloat speed = 2.0;\n\tfloat tt = iTime*speed+0.1*i+0.08*j;\n\tfloat stopEveryAngle = PI/2.0;\n\tfloat stopRatio = 0.7;\n\tfloat t1 = (floor(tt) + smoothstep(0.0, 1.0-stopRatio, fract(tt)) )*stopEveryAngle;\n\tfloat x = -0.07*cos(t1+i);\n\tfloat y = 0.055*(sin(t1+j)+cos(t1+i));\n\trad = 0.1 + 0.05*sin(t+i+j);\n\tdisks = disk(r3, vec2(x,y), rad);\n\tpix = mix(pix, col1, disks);\n\trad = 0.2 + 0.05*sin(t*(1.0+0.01*i));\n\tdisks = disk(r3, vec2(0.,0.), rad);\n\tpix += 0.2*col3*disks * sin(t+i*j+i);\n\tpix -= smoothstep(0.3, 5.5, length(r));\t\n\tfragColor = vec4(pix,1.0);\n}\n\n`},{title:\"DrawCircle\",author:\"haquxx\",originalURL:\"https://www.shadertoy.com/view/3tdSRn\",value:`\n\nvec3 drawCircle(vec2 pos, float radius, float width, float power, vec4 color)\n{\n    vec2 mousePos = iMouse.xy - vec2(0.5);\n    float dist1 = length(pos);\n    dist1 = fract((dist1 * 5.0) - fract(iTime));\n    float dist2 = dist1 - radius;\n    float intensity = pow(radius / abs(dist2), width); \n    vec3 col = color.rgb * intensity * power * max((0.8- abs(dist2)), 0.0);\n    return col;\n}\n\nvec3 hsv2rgb(float h, float s, float v)\n{\n    vec4 t = vec4(1.0, 2.0/3.0, 1.0/3.0, 3.0);\n    vec3 p = abs(fract(vec3(h) + t.xyz) * 6.0 - vec3(t.w));\n    return v * mix(vec3(t.x), clamp(p - vec3(t.x), 0.0, 1.0), s);\n}\n\nvoid mainImage( out vec4 fragColor, in vec2 fragCoord )\n{\n    // // -1.0 ~ 1.0\n    vec2 pos = (fragCoord.xy * 2.0 - iResolution.xy) / min(iResolution.x, iResolution.y);\n    float h = mix(0.5, 0.65, length(pos));\n    vec4 color = vec4(hsv2rgb(h, 1.0, 1.0), 1.0);\n    float radius = 0.5;\n    float width = 0.8;\n    float power = 0.1;\n    vec3 finalColor = drawCircle(pos, radius, width, power, color);\n    pos = abs(pos);\n    // vec3 finalColor = vec3(pos.x, 0.0, pos.y);\n    fragColor = vec4(finalColor, 1.0);\n}\n\n`},{title:\"PsychedelicSakura\",author:\"Author Reva - 2020-02-21\",originalURL:\"https://www.shadertoy.com/view/wlGXRD\",value:`\n\nfloat plot(float r, float pct){\n\treturn  smoothstep( pct-0.2, pct, r) -smoothstep( pct, pct+0.2, r);\n}\n\nvec3 pal( in float t, in vec3 a, in vec3 b, in vec3 c, in vec3 d ){\n        return a + b*cos( 6.28318*(c*t+d) );\n}\n\nvoid mainImage( out vec4 fragColor, in vec2 fragCoord )\n{\n    vec2 uv = fragCoord/iResolution.xy;\n    vec3 col = vec3(1.0);\n    vec2 pos = vec2(0.5) - uv;\n    pos.x *= iResolution.x/iResolution.y;\n    pos *= cos(iTime)*1.0+1.5;\n    float r = length(pos)*2.0;\n    float a = atan(pos.y,pos.x);\n    float f = abs(cos(a*2.5+iTime*0.5))*sin(iTime*2.0)*0.698+cos(iTime)-4.0;\n    float d = f-r;\n    col = (vec3(smoothstep(fract(d),fract(d)+-0.200,0.160))-vec3(smoothstep(fract(d),fract(d)+-1.184,0.160)) ) \n\t* pal( f, vec3(0.725,0.475,0.440),vec3(0.605,0.587,0.007),vec3(1.0,1.0,1.0),vec3(0.310,0.410,0.154) );\n    float pct = plot(r*0.272,fract(d*(sin(iTime)*0.45+0.5)));\n    col += pct*pal( r, vec3(0.750,0.360,0.352),vec3(0.450,0.372,0.271),vec3(0.540,0.442,0.264),vec3(0.038,0.350,0.107) );\n\n    // Output to screen\n    fragColor = vec4(col,pct*0.3);\n    fragColor.a = 1.0;\n}\n\n`},{title:\"Fractal\",author:\"gaetanThiesson\",originalURL:\"https://www.shadertoy.com/view/WlcXR4\",value:`\n\nvec2 f(vec2 x, vec2 c) {\n    return mat2(x,-x.y,x.x)*x + c;\n}\n\nvec3 palette(float t, vec3 a, vec3 b, vec3 c, vec3 d) {\n    return a + b*cos( 6.28318*(c*t+d) );\n}\n\nvoid mainImage( out vec4 fragColor, in vec2 fragCoord )\n{\n    vec2 uv = fragCoord/iResolution.xy;\n    uv -= 0.5;uv *= 1.3;uv += 0.5;\n    vec4 col = vec4(1.0);\n    float time = iTime;\n    int u_maxIterations = 75;\n    float r = 0.7885*(sin((time/3.) - 1.57)*0.2+0.85);\n\t  vec2 c = vec2(r*cos((time/3.)), r*sin((time/3.)));\n    vec2 z = vec2(0.);\n    z.x = 3.0 * (uv.x - 0.5);\n    z.y = 2.0 * (uv.y - 0.5);\n    bool escaped = false;\n    int iterations;\n    for (int i = 0; i < 10000; i++) {\n        if (i > u_maxIterations) break;\n        iterations = i;\n        z = f(z, c);\n        if (dot(z,z) > 4.0) {\n            escaped = true;\n            break;\n        }\n    }\n\t\t\t\n    vec3 iterationCol = vec3(palette(float(iterations)/ float(u_maxIterations),\n                                     vec3(0.5),\n                                     vec3(0.5),\n                                     vec3(1.0, 1.0, 0.0),\n                                     vec3(0.3 + 0.3 * sin(time),\n                                          0.2 + 0.2 * sin(1. + time),\n                                          0.2  + 0.2 * sin(1.5 + time))));\n\t\t\n\t  vec3 coreCol = vec3(0.);\n    float f_ite = float(iterations);\n    float f_maxIte = float(u_maxIterations);\n    fragColor = vec4(escaped ? iterationCol : coreCol, f_ite/f_maxIte );\n    fragColor.a = 1.0;\n}\n\n`},{title:\"CoordSys - intersection\",author:\"Inigo Quilez\",originalURL:\"https://www.shadertoy.com/view/lsfGDB\",value:`\n\n#if 1\n\n//Elegant way to intersect a planar coordinate system (3x3 linear system)\nvec3 intersectCoordSys( in vec3 ro, in vec3 rd, vec3 dc, vec3 du, vec3 dv )\n{\n\tvec3 oc = ro - dc;\n\treturn vec3(\n        dot( cross(du,dv), oc ),\n\t\tdot( cross(oc,du), rd ),\n\t\tdot( cross(dv,oc), rd ) ) / \n        dot( cross(dv,du), rd );\n}\n\n#else\n\n// Ugly (but faster) way to intersect a planar coordinate system: plane + projection\nvec3 intersectCoordSys( in vec3 ro, in vec3 rd, vec3 dc, vec3 du, vec3 dv )\n{\n\tvec3  oc = ro - dc;\n\tvec3  no = cross(du,dv);\n    float t  = -dot(no,oc)/dot(rd,no);\n    float r  =  dot(du,oc + rd*t);\n    float s  =  dot(dv,oc + rd*t);\n    return vec3(t,s,r);\n}\n\n#endif\t\n\nvec3 hash3( float n )\n{\n    return fract(sin(vec3(n,n+1.0,n+2.0))*vec3(43758.5453123,12578.1459123,19642.3490423));\n}\n\nvec3 shade( in vec4 res )\n{\n    float ra = length(res.yz);\n    float an = atan(res.y,res.z) + 2.0*iTime;\n    float pa = sin(3.0*an);\n\n    vec3 cola = 0.5 + 0.5*sin( (res.w/32.0)*3.5 + vec3(0.0,1.0,2.0) );\n\t\n\tvec3 col = vec3(0.0);\n\tcol += cola*0.4*(1.0-smoothstep( 0.90, 1.00, ra) );\n  col += cola*1.0*(1.0-smoothstep( 0.00, 0.03, abs(ra-0.8)))*(0.5+0.5*pa);\n  col += cola*1.0*(1.0-smoothstep( 0.00, 0.20, abs(ra-0.8)))*(0.5+0.5*pa);\n  col += cola*0.5*(1.0-smoothstep( 0.05, 0.10, abs(ra-0.5)))*(0.5+0.5*pa);\n  col += cola*0.7*(1.0-smoothstep( 0.00, 0.30, abs(ra-0.5)))*(0.5+0.5*pa);\n\treturn col*0.3;\n}\n\nvec3 render( in vec3 ro, in vec3 rd )\n{\n  // raytrace\n  vec3 col = vec3( 0.0 );\n\tfor( int i=0; i<32; i++ )\n\t{\n\t\t  // position disk\n\t    vec3 r = 1.5*(-1.0 + 2.0*hash3( float(i) ));\n\t\t\n      // orientate disk\n      vec3 u = normalize( r.zxy );\n      vec3 v = normalize( cross( u, vec3(0.0,1.0,0.0 ) ) );\t\t\t\t\t\t   \n  \n      // intersect coord sys\n      vec3 tmp = intersectCoordSys( ro, rd, r, u, v );\n\t\n\t    if( dot(tmp.yz,tmp.yz)<1.0 && tmp.x>0.0 ) \n\t    {\n        // shade\t\t\t\n\t\t    col += shade( vec4(tmp,float(i)) );\n\t    }\n\t}\n\n    return col;\n}\n\nvoid mainImage( out vec4 fragColor, in vec2 fragCoord )\n{\n    vec2 p = (2.0*fragCoord-iResolution.xy)/iResolution.y;\n    // camera\n\t  vec3 ro = 1.5*vec3(cos(0.05*iTime),0.0,sin(0.05*iTime));\n    vec3 ta = vec3(0.0,0.0,0.0);\n    // camera matrix\n    vec3 ww = normalize( ta - ro );\n    vec3 uu = normalize( cross(ww,vec3(0.0,1.0,0.0) ) );\n    vec3 vv = normalize( cross(uu,ww));\n\t  // create view ray\n\t  vec3 rd = normalize( p.x*uu + p.y*vv + 1.0*ww );\n    vec3 col = render( ro, rd );\n    fragColor = vec4( col, 1.0 );\n}\n\n`},{title:\"Waves Remix\",author:\"ADOB\",originalURL:\"https://www.shadertoy.com/view/4ljGD1\",value:`\n\n  float squared(float value) { return value * value; }\n  float getAmp(float frequency) { return texture(iChannel0, vec2(frequency / 512.0, 0)).x; }\n  float getWeight(float f) {\n  return (+ getAmp(f-2.0) + getAmp(f-1.0) + getAmp(f+2.0) + getAmp(f+1.0) + getAmp(f)) / 5.0; }\n\n  void mainImage( out vec4 fragColor, in vec2 fragCoord )\n  {    \n    vec2 uvTrue = fragCoord.xy / iResolution.xy;\n    vec2 uv = -1.0 + 2.0 * uvTrue;\n    float lineIntensity;\n    float glowWidth;\n    vec3 color = vec3(0.0);\n    for(float i = 0.0; i < 5.0; i++) {     \n    uv.y += (0.2 * sin(uv.x + i/7.0 - iTime * 0.6));\n    float Y = uv.y + getWeight(squared(i) * 20.0) *\n    (texture(iChannel0, vec2(uvTrue.x, 1)).x - 0.5);\n    lineIntensity = 0.4 + squared(1.6 * abs(mod(uvTrue.x + i / 1.3 + iTime,2.0) - 1.0));\n    glowWidth = abs(lineIntensity / (150.0 * Y));\n    color += vec3(glowWidth * (2.0 + sin(iTime * 0.13)),\n                      glowWidth * (2.0 - sin(iTime * 0.23)),\n                      glowWidth * (2.0 - cos(iTime * 0.19)));\n  }\t\n\t\n\tfragColor = vec4(color, 1.0);\n}\n\n`},{title:\"Kaleidoscope Tunnel\",author:\"kaneta\",originalURL:\"https://www.shadertoy.com/view/WsSGWG\",value:`\n\n#define PI 3.141592654\n\nmat2 rot(float x)\n{\n    return mat2(cos(x), sin(x), -sin(x), cos(x));\n}\n\nvec2 foldRotate(in vec2 p, in float s) {\n    float a = PI / s - atan(p.x, p.y);\n    float n = PI * 2. / s;\n    a = floor(a / n) * n;\n    p *= rot(a);\n    return p;\n}\n\nfloat sdRect( vec2 p, vec2 b )\n{\n  vec2 d = abs(p) - b;\n  return min(max(d.x, d.y),0.0) + length(max(d,0.0));\n}\n\n// TheGrid by dila\n// https://www.shadertoy.com/view/llcXWr\nfloat tex(vec2 p, float z)\n{\n    p = foldRotate(p, 8.0);\n    vec2 q = (fract(p / 10.0) - 0.5) * 10.0;\n    for (int i = 0; i < 3; ++i) {\n        for(int j = 0; j < 2; j++) {\n        \tq = abs(q) - .25;\n        \tq *= rot(PI * .25);\n        }\n        q = abs(q) - vec2(1.0, 1.5);\n        q *= rot(PI * .25 * z);\n\t\tq = foldRotate(q, 3.0);  \n    }\n\tfloat d = sdRect(q, vec2(1., 1.));\n  float f = 1.0 / (1.0 + abs(d));\n  return smoothstep(.9, 1., f);\n}\n\n// The Drive Home by BigWings\n// https://www.shadertoy.com/view/MdfBRX\nfloat Bokeh(vec2 p, vec2 sp, float size, float mi, float blur)\n{\n    float d = length(p - sp);\n    float c = smoothstep(size, size*(1.-blur), d);\n    c *= mix(mi, 1., smoothstep(size*.8, size, d));\n    return c;\n}\n\nvec2 hash( vec2 p ){\n\tp = vec2( dot(p,vec2(127.1,311.7)),dot(p,vec2(269.5,183.3)));\n\treturn fract(sin(p)*43758.5453) * 2.0 - 1.0;\n}\n\nfloat dirt(vec2 uv, float n)\n{\n    vec2 p = fract(uv * n);\n    vec2 st = (floor(uv * n) + 0.5) / n;\n    vec2 rnd = hash(st);\n    return Bokeh(p, vec2(0.5, 0.5) + vec2(0.2) * rnd, 0.05, abs(rnd.y * 0.4) + 0.3, 0.25 + rnd.x * rnd.y * 0.2);\n}\n\nfloat sm(float start, float end, float t, float smo)\n{\n    return smoothstep(start, start + smo, t) - smoothstep(end - smo, end, t);\n}\n\nvoid mainImage( out vec4 fragColor, in vec2 fragCoord )\n{\n\tvec2 uv = fragCoord.xy / iResolution.xy;\n    uv = uv * 2.0 - 1.0;\n    uv.x *= iResolution.x / iResolution.y;\n    uv *= 2.0;\n    vec3 col = vec3(0.0);\n    #define N 6\n    #define NN float(N)\n    #define INTERVAL 3.0\n    #define INTENSITY vec3((NN * INTERVAL - t) / (NN * INTERVAL))\n    float time = iTime;\n    for(int i = 0; i < N; i++) {\n        float t;\n        float ii = float(N - i);\n        t = ii * INTERVAL - mod(time - INTERVAL * 0.75, INTERVAL);\n        col = mix(col, INTENSITY, dirt(mod(uv * max(0.0, t) * 0.1 + vec2(.2, -.2) * time, 1.2), 3.5));\n        t = ii * INTERVAL - mod(time + INTERVAL * 0.5, INTERVAL);\n        col = mix(col, INTENSITY * vec3(0.7, 0.8, 1.0) * 1.3,tex(uv * max(0.0, t), 4.45));\n        t = ii * INTERVAL - mod(time - INTERVAL * 0.25, INTERVAL);\n        col = mix(col, INTENSITY * vec3(1.), dirt(mod(uv * max(0.0, t) * 0.1 + vec2(-.2, -.2) *  time, 1.2), 3.5));    \n        t = ii * INTERVAL - mod(time, INTERVAL);\n        float r = length(uv * 2.0 * max(0.0, t));\n        float rr = sm(-24.0, -0.0, (r - mod(time * 30.0, 90.0)), 10.0);\n        col = mix(col, mix(INTENSITY * vec3(1.), INTENSITY * vec3(0.7, 0.5, 1.0) * 3.0, rr),tex(uv * 2.0 * max(0.0, t), 0.27 + (2.0 * rr)));\n    }\n\n\tfragColor = vec4(col, 0.0);\n  fragColor.a = 1.0;\n}\n\n`},{title:\"Topologica\",author:\"Otavio Good\",originalURL:\"https://www.shadertoy.com/view/4djXzz\",value:`\n        \nuniform int iFrame;\n\n// various noise functions\nfloat Hash3d(vec3 uv)\n{\n    float f = uv.x + uv.y * 37.0 + uv.z * 521.0;\n    return fract(cos(f*3.333)*100003.9);\n}\nfloat mixP(float f0, float f1, float a)\n{\n    return mix(f0, f1, a*a*(3.0-2.0*a));\n}\nconst vec2 zeroOne = vec2(0.0, 1.0);\nfloat noise(vec3 uv)\n{\n    vec3 fr = fract(uv.xyz);\n    vec3 fl = floor(uv.xyz);\n    float h000 = Hash3d(fl);\n    float h100 = Hash3d(fl + zeroOne.yxx);\n    float h010 = Hash3d(fl + zeroOne.xyx);\n    float h110 = Hash3d(fl + zeroOne.yyx);\n    float h001 = Hash3d(fl + zeroOne.xxy);\n    float h101 = Hash3d(fl + zeroOne.yxy);\n    float h011 = Hash3d(fl + zeroOne.xyy);\n    float h111 = Hash3d(fl + zeroOne.yyy);\n    return mixP(\n        mixP(mixP(h000, h100, fr.x), mixP(h010, h110, fr.x), fr.y),\n        mixP(mixP(h001, h101, fr.x), mixP(h011, h111, fr.x), fr.y)\n        , fr.z);\n}\n\nfloat PI=3.14159265;\n#define saturate(a) clamp(a, 0.0, 1.0)\n// Weird for loop trick so compiler doesn't unroll loop\n// By making the zero a variable instead of a constant, the compiler can't unroll the loop and\n// that speeds up compile times by a lot.\n#define ZERO_TRICK max(0, -iFrame)\n\nfloat Density(vec3 p)\n{\n    float final = noise(p*0.06125);\n    float other = noise(p*0.06125 + 1234.567);\n    other -= 0.5;\n    final -= 0.5;\n    final = 0.1/(abs(final*final*other));\n    final += 0.5;\n    return final*0.0001;\n}\n\nvoid mainImage( out vec4 fragColor, in vec2 fragCoord )\n{\n\t// ---------------- First, set up the camera rays for ray marching ----------------\n\tvec2 uv = fragCoord.xy/iResolution.xy * 2.0 - 1.0;\n\n\t// Camera up vector.\n\tvec3 camUp=vec3(0,1,0); // vuv\n\n\t// Camera lookat.\n\tvec3 camLookat=vec3(0,0.0,0);\t// vrp\n\n\tfloat mx=iMouse.x/iResolution.x*PI*2.0 + iTime * 0.01;\n\tfloat my=-iMouse.y/iResolution.y*10.0 + sin(iTime * 0.03)*0.2+0.2;//*PI/2.01;\n\tvec3 camPos=vec3(cos(my)*cos(mx),sin(my),cos(my)*sin(mx))*(200.2); \t// prp\n\n\t// Camera setup.\n\tvec3 camVec=normalize(camLookat - camPos);//vpn\n\tvec3 sideNorm=normalize(cross(camUp, camVec));\t// u\n\tvec3 upNorm=cross(camVec, sideNorm);//v\n\tvec3 worldFacing=(camPos + camVec);//vcv\n\tvec3 worldPix = worldFacing + uv.x * sideNorm * (iResolution.x/iResolution.y) + uv.y * upNorm;//scrCoord\n\tvec3 relVec = normalize(worldPix - camPos);//scp\n\n\t// --------------------------------------------------------------------------------\n\tfloat t = 0.0;\n\tfloat inc = 0.02;\n\tfloat maxDepth = 70.0;\n\tvec3 pos = vec3(0,0,0);\n  float density = 0.0;\n\t// ray marching time\n    for (int i = ZERO_TRICK; i < 37; i++)\t// This is the count of how many times the ray actually marches.\n    {\n        if ((t > maxDepth)) break;\n        pos = camPos + relVec * t;\n        float temp = Density(pos);\n        inc = 1.9 + temp*0.05;\t// add temp because this makes it look extra crazy!\n        density += temp * inc;\n        t += inc;\n    }\n\n\t// --------------------------------------------------------------------------------\n\t// Now that we have done our ray marching, let's put some color on this.\n\tvec3 finalColor = vec3(0.01,0.1,1.0)* density*0.2;\n\n\t// output the final color with sqrt for \"gamma correction\"\n\tfragColor = vec4(sqrt(clamp(finalColor, 0.0, 1.0)),1.0); fragColor.a = 1.0;\n}\n\n`},{title:\"Rainbow Showoff\",author:\"akufishi\",originalURL:\"https://www.shadertoy.com/view/lscBRf\",value:`\n\n#define FALLING_SPEED  0.25\n#define STRIPES_FACTOR 5.0\n\n//get sphere\nfloat sphere(vec2 coord, vec2 pos, float r) {\n    vec2 d = pos - coord; \n    return smoothstep(60.0, 0.0, dot(d, d) - r * r);\n}\n\n//main\nvoid mainImage( out vec4 fragColor, in vec2 fragCoord )\n{\n    //normalize pixel coordinates\n    vec2 uv         = fragCoord / iResolution.xy;\n    //pixellize uv\n    vec2 clamped_uv = (round(fragCoord / STRIPES_FACTOR) * STRIPES_FACTOR) / iResolution.xy;\n    //get pseudo-random value for stripe height\n    float value\t\t= fract(sin(clamped_uv.x) * 43758.5453123);\n    //create stripes\n    vec3 col        = vec3(1.0 - mod(uv.y * 0.5 + (iTime * (FALLING_SPEED + value / 5.0)) + value, 0.5));\n    //add color\n         col       *= clamp(cos(iTime * 2.0 + uv.xyx + vec3(0, 2, 4)), 0.0, 1.0);\n    //add glowing ends\n    \t col \t   += vec3(sphere(fragCoord, \n                                  vec2(clamped_uv.x, (1.0 - 2.0 * mod((iTime * (FALLING_SPEED + value / 5.0)) + value, 0.5))) * iResolution.xy, \n                                  0.9)) / 2.0; \n    //add screen fade\n         col       *= vec3(exp(-pow(abs(uv.y - 0.5), 6.0) / pow(2.0 * 0.05, 2.0)));\n    // Output to screen\n    fragColor       = vec4(col,1.0);\n}\n\n`},{title:\"Creation by Silexars\",author:\"Danguafer\",originalURL:\"https://www.shadertoy.com/view/XsXXDn\",value:`\n        // If you intend to reuse this shader, please add credits to 'Danilo Guanabara'\n  #define t iTime\n  #define r iResolution.xy\n\n  void mainImage( out vec4 fragColor, in vec2 fragCoord ){\n    vec3 c;\n    float l,z=t;\n    for(int i=0;i<3;i++) {\n      vec2 uv,p=fragCoord.xy/r;\n      uv=p;\n      p-=.5;\n      p.x*=r.x/r.y;\n      z+=.07;\n      l=length(p);\n      uv+=p/l*(sin(z)+1.)*abs(sin(l*9.-z-z));\n      c[i]=.01/length(mod(uv,1.)-.5);\n    }\n    fragColor=vec4(c/l,t);\n  }\n`},{title:\"Cyber Fuji 2020\",author:\"kaiware007\",originalURL:\"https://www.shadertoy.com/view/Wt33Wf\",value:`\nfloat sun(vec2 uv, float battery)\n{\n \tfloat val = smoothstep(0.3, 0.29, length(uv));\n \tfloat bloom = smoothstep(0.7, 0.0, length(uv));\n  float cut = 3.0 * sin((uv.y + iTime * 0.2 * (battery + 0.02)) * 100.0) \n\t\t\t\t+ clamp(uv.y * 14.0 + 1.0, -6.0, 6.0);\n  cut = clamp(cut, 0.0, 1.0);\n  return clamp(val * cut, 0.0, 1.0) + bloom * 0.6;\n}\n\nfloat grid(vec2 uv, float battery)\n{\n    vec2 size = vec2(uv.y, uv.y * uv.y * 0.2) * 0.01;\n    uv += vec2(0.0, iTime * 4.0 * (battery + 0.05));\n    uv = abs(fract(uv) - 0.5);\n    vec2 lines = smoothstep(size, vec2(0.0), uv);\n    lines += smoothstep(size * 5.0, vec2(0.0), uv) * 0.4 * battery;\n    return clamp(lines.x + lines.y, 0.0, 3.0);\n}\n\nfloat dot2(in vec2 v ) { return dot(v,v); }\n\nfloat sdTrapezoid( in vec2 p, in float r1, float r2, float he )\n{\n    vec2 k1 = vec2(r2,he);\n    vec2 k2 = vec2(r2-r1,2.0*he);\n    p.x = abs(p.x);\n    vec2 ca = vec2(p.x-min(p.x,(p.y<0.0)?r1:r2), abs(p.y)-he);\n    vec2 cb = p - k1 + k2*clamp( dot(k1-p,k2)/dot2(k2), 0.0, 1.0 );\n    float s = (cb.x<0.0 && ca.y<0.0) ? -1.0 : 1.0;\n    return s*sqrt( min(dot2(ca),dot2(cb)) );\n}\n\nfloat sdLine( in vec2 p, in vec2 a, in vec2 b )\n{\n    vec2 pa = p-a, ba = b-a;\n    float h = clamp( dot(pa,ba)/dot(ba,ba), 0.0, 1.0 );\n    return length( pa - ba*h );\n}\n\nfloat sdBox( in vec2 p, in vec2 b )\n{\n    vec2 d = abs(p)-b;\n    return length(max(d,vec2(0))) + min(max(d.x,d.y),0.0);\n}\n\nfloat opSmoothUnion(float d1, float d2, float k){\n\tfloat h = clamp(0.5 + 0.5 * (d2 - d1) /k,0.0,1.0);\n    return mix(d2, d1 , h) - k * h * ( 1.0 - h);\n}\n\nfloat sdCloud(in vec2 p, in vec2 a1, in vec2 b1, in vec2 a2, in vec2 b2, float w)\n{\n\t//float lineVal1 = smoothstep(w - 0.0001, w, sdLine(p, a1, b1));\n    float lineVal1 = sdLine(p, a1, b1);\n    float lineVal2 = sdLine(p, a2, b2);\n    vec2 ww = vec2(w*1.5, 0.0);\n    vec2 left = max(a1 + ww, a2 + ww);\n    vec2 right = min(b1 - ww, b2 - ww);\n    vec2 boxCenter = (left + right) * 0.5;\n    //float boxW = right.x - left.x;\n    float boxH = abs(a2.y - a1.y) * 0.5;\n    //float boxVal = sdBox(p - boxCenter, vec2(boxW, boxH)) + w;\n    float boxVal = sdBox(p - boxCenter, vec2(0.04, boxH)) + w;\n    float uniVal1 = opSmoothUnion(lineVal1, boxVal, 0.05);\n    float uniVal2 = opSmoothUnion(lineVal2, boxVal, 0.05);\n    return min(uniVal1, uniVal2);\n}\n\nvoid mainImage( out vec4 fragColor, in vec2 fragCoord )\n{\n    vec2 uv = (2.0 * fragCoord.xy - iResolution.xy)/iResolution.y;\n    float battery = 1.0;\n    //if (iMouse.x > 1.0 && iMouse.y > 1.0) battery = iMouse.y / iResolution.y;\n    //else battery = 0.8;\n    //if (abs(uv.x) < (9.0 / 16.0))\n    {\n        // Grid\n        float fog = smoothstep(0.1, -0.02, abs(uv.y + 0.2));\n        vec3 col = vec3(0.0, 0.1, 0.2);\n        if (uv.y < -0.2)\n        {\n            uv.y = 3.0 / (abs(uv.y + 0.2) + 0.05);\n            uv.x *= uv.y * 1.0;\n            float gridVal = grid(uv, battery);\n            col = mix(col, vec3(1.0, 0.5, 1.0), gridVal);\n        }\n        else\n        {\n            float fujiD = min(uv.y * 4.5 - 0.5, 1.0);\n            uv.y -= battery * 1.1 - 0.51;\n            vec2 sunUV = uv;\n            vec2 fujiUV = uv;\n            \n            // Sun\n            sunUV += vec2(0.75, 0.2);\n            //uv.y -= 1.1 - 0.51;\n            col = vec3(1.0, 0.2, 1.0);\n            float sunVal = sun(sunUV, battery);\n            \n            col = mix(col, vec3(1.0, 0.4, 0.1), sunUV.y * 2.0 + 0.2);\n            col = mix(vec3(0.0, 0.0, 0.0), col, sunVal);\n            \n            // fuji\n            float fujiVal = sdTrapezoid( uv  + vec2(-0.75+sunUV.y * 0.0, 0.5), 1.75 + pow(uv.y * uv.y, 2.1), 0.2, 0.5);\n            float waveVal = uv.y + sin(uv.x * 20.0 + iTime * 2.0) * 0.05 + 0.2;\n            float wave_width = smoothstep(0.0,0.01,(waveVal));\n            \n            // fuji color\n            col = mix( col, mix(vec3(0.0, 0.0, 0.25), vec3(1.0, 0.0, 0.5), fujiD), step(fujiVal, 0.0));\n            // fuji top snow\n            col = mix( col, vec3(1.0, 0.5, 1.0), wave_width * step(fujiVal, 0.0));\n            // fuji outline\n            col = mix( col, vec3(1.0, 0.5, 1.0), 1.0-smoothstep(0.0,0.01,abs(fujiVal)) );\n            //col = mix( col, vec3(1.0, 1.0, 1.0), 1.0-smoothstep(0.03,0.04,abs(fujiVal)) );\n            //col = vec3(1.0, 1.0, 1.0) *(1.0-smoothstep(0.03,0.04,abs(fujiVal)));\n            \n            // horizon color\n            col += mix( col, mix(vec3(1.0, 0.12, 0.8), vec3(0.0, 0.0, 0.2), clamp(uv.y * 3.5 + 3.0, 0.0, 1.0)), step(0.0, fujiVal) );\n            \n            // cloud\n            vec2 cloudUV = uv;\n            cloudUV.x = mod(cloudUV.x + iTime * 0.1, 4.0) - 2.0;\n            float cloudTime = iTime * 0.5;\n            float cloudY = -0.5;\n            float cloudVal1 = sdCloud(cloudUV, \n                                     vec2(0.1 + sin(cloudTime + 140.5)*0.1,cloudY), \n                                     vec2(1.05 + cos(cloudTime * 0.9 - 36.56) * 0.1, cloudY), \n                                     vec2(0.2 + cos(cloudTime * 0.867 + 387.165) * 0.1,0.25+cloudY), \n                                     vec2(0.5 + cos(cloudTime * 0.9675 - 15.162) * 0.09, 0.25+cloudY), 0.075);\n            cloudY = -0.6;\n            float cloudVal2 = sdCloud(cloudUV, \n                                     vec2(-0.9 + cos(cloudTime * 1.02 + 541.75) * 0.1,cloudY), \n                                     vec2(-0.5 + sin(cloudTime * 0.9 - 316.56) * 0.1, cloudY), \n                                     vec2(-1.5 + cos(cloudTime * 0.867 + 37.165) * 0.1,0.25+cloudY), \n                                     vec2(-0.6 + sin(cloudTime * 0.9675 + 665.162) * 0.09, 0.25+cloudY), 0.075);\n            \n            float cloudVal = min(cloudVal1, cloudVal2);\n            //col = mix(col, vec3(1.0,1.0,0.0), smoothstep(0.0751, 0.075, cloudVal));\n            col = mix(col, vec3(0.0, 0.0, 0.2), 1.0 - smoothstep(0.075 - 0.0001, 0.075, cloudVal));\n            col += vec3(1.0, 1.0, 1.0)*(1.0 - smoothstep(0.0,0.01,abs(cloudVal - 0.075)));\n        }\n        col += fog * fog * fog;\n        col = mix(vec3(col.r, col.r, col.r) * 0.5, col, battery * 0.7);\n        fragColor = vec4(col,1.0);\n    }\n\n}\n\n        `},{title:\"Synthwave\",author:\"stduhpf\",originalURL:\"https://www.shadertoy.com/view/tsScRK\",value:`\n\n//#define AA 2\n//#define VAPORWAVE\n//#define stereo 1. // -1. for cross-eyed (defaults to parallel view)\n#define speed 10. \n#define wave_thing\n//#define city\n\n//you can add any sound texture in iChannel0 to turn it into a cool audio visualizer \n// (it looks better with lower speeds though)\n//you should commment out or remove the following line to enable it (it's disabled mainly for performance reasons):\n#define disable_sound_texture_sampling\n\n#ifndef disable_sound_texture_sampling\n    #undef speed \n    // lower value of speed when using as audio visualizer\n    #define speed 5.\n#endif\n\n//self-explainatory\n#define audio_vibration_amplitude .125\nfloat jTime;\n#ifdef disable_sound_texture_sampling\n#define textureMirror(a, b) vec4(0)\n#else\nvec4 textureMirror(sampler2D tex, vec2 c){\n    vec2 cf = fract(c);\n    return texture(tex,mix(cf,1.-cf,mod(floor(c),2.)));\n}\n#endif\n\nfloat amp(vec2 p){\n    return smoothstep(1.,8.,abs(p.x));   \n}\n\nfloat pow512(float a){\n    a*=a;//^2\n    a*=a;//^4\n    a*=a;//^8\n    a*=a;//^16\n    a*=a;//^32\n    a*=a;//^64\n    a*=a;//^128\n    a*=a;//^256\n    return a*a;\n}\n\nfloat pow1d5(float a){\n    return a*sqrt(a);\n}\n\nfloat hash21(vec2 co){\n    return fract(sin(dot(co.xy,vec2(1.9898,7.233)))*45758.5433);\n}\n\nfloat hash(vec2 uv){\n    float a = amp(uv);\n    #ifdef wave_thing\n    float w = a>0.?(1.-.4*pow512(.51+.49*sin((.02*(uv.y+.5*uv.x)-jTime)*2.))):0.;\n    #else\n    float w=1.;\n    #endif\n    return (a>0.?\n        a*pow1d5(\n        //texture(iChannel0,uv/iChannelResolution[0].xy).r\n        hash21(uv)\n        )*w\n        :0.)-(textureMirror(iChannel0,vec2((uv.x*29.+uv.y)*.03125,1.)).x)*audio_vibration_amplitude;\n}\n\nfloat edgeMin(float dx,vec2 da, vec2 db,vec2 uv){\n    uv.x+=5.;\n    vec3 c = fract((round(vec3(uv,uv.x+uv.y)))*(vec3(0,1,2)+0.61803398875));\n    float a1 = textureMirror(iChannel0,vec2(c.y,0.)).x>.6?.15:1.;\n    float a2 = textureMirror(iChannel0,vec2(c.x,0.)).x>.6?.15:1.;\n    float a3 = textureMirror(iChannel0,vec2(c.z,0.)).x>.6?.15:1.;\n    return min(min((1.-dx)*db.y*a3,da.x*a2),da.y*a1);\n}\n\nvec2 trinoise(vec2 uv){\n    const float sq = sqrt(3./2.);\n    uv.x *= sq;\n    uv.y -= .5*uv.x;\n    vec2 d = fract(uv);\n    uv -= d;\n    bool c = dot(d,vec2(1))>1.;\n    vec2 dd = 1.-d;\n    vec2 da = c?dd:d,db = c?d:dd;\n    float nn = hash(uv+float(c));\n    float n2 = hash(uv+vec2(1,0));\n    float n3 = hash(uv+vec2(0,1));\n    float nmid = mix(n2,n3,d.y);\n    float ns = mix(nn,c?n2:n3,da.y);\n    float dx = da.x/db.y;\n    return vec2(mix(ns,nmid,dx),edgeMin(dx,da, db,uv+d));\n}\n\nvec2 map(vec3 p){\n    vec2 n = trinoise(p.xz);\n    return vec2(p.y-2.*n.x,n.y);\n}\n\nvec3 grad(vec3 p){\n    const vec2 e = vec2(.005,0);\n    float a =map(p).x;\n    return vec3(map(p+e.xyy).x-a\n                ,map(p+e.yxy).x-a\n                ,map(p+e.yyx).x-a)/e.x;\n}\n\nvec2 intersect(vec3 ro,vec3 rd){\n    float d =0.,h=0.;\n    for(int i = 0;i<500;i++){ //look nice with 50 iterations\n        vec3 p = ro+d*rd;\n        vec2 s = map(p);\n        h = s.x;\n        d+= h*.5;\n        if(abs(h)<.003*d)\n            return vec2(d,s.y);\n        if(d>150.|| p.y>2.) break;\n    }\n    return vec2(-1);\n}\n\nvoid addsun(vec3 rd,vec3 ld,inout vec3 col){\n\tfloat sun = smoothstep(.21,.2,distance(rd,ld));\n    if(sun>0.){\n        float yd = (rd.y-ld.y);\n        float a =sin(3.1*exp(-(yd)*14.)); \n        sun*=smoothstep(-.8,0.,a);\n        col = mix(col,vec3(1.,.8,.4)*.75,sun);\n    }\n}\n\n\nfloat starnoise(vec3 rd){\n  float c = 0.;\n  vec3 p = normalize(rd)*300.;\n\tfor (float i=0.;i<4.;i++)\n    {\n        vec3 q = fract(p)-.5;\n        vec3 id = floor(p);\n        float c2 = smoothstep(.5,0.,length(q));\n        c2 *= step(hash21(id.xz/id.y),.06-i*i*0.005);\n        c += c2;\n        p = p*.6+.5*p*mat3(3./5.,0,4./5.,0,1,0,-4./5.,0,3./5.);\n    }\n    c*=c;\n    float g = dot(sin(rd*10.512),cos(rd.yzx*10.512));\n    c*=smoothstep(-3.14,-.9,g)*.5+.5*smoothstep(-.3,1.,g);\n    return c*c;\n}\n\nvec3 gsky(vec3 rd,vec3 ld,bool mask){\n    float haze = exp2(-5.*(abs(rd.y)-.2*dot(rd,ld)));\n    //float st = mask?pow512(texture(iChannel0,(rd.xy+vec2(300.1,100)*rd.z)*10.).r)*(1.-min(haze,1.)):0.;\n    //float st = mask?pow512(hash21((rd.xy+vec2(300.1,100)*rd.z)*10.))*(1.-min(haze,1.)):0.;\n    float st = mask?(starnoise(rd))*(1.-min(haze,1.)):0.;\n    vec3 back = vec3(.4,.1,.7)*(1.-.5*textureMirror(iChannel0,vec2(.5+.05*rd.x/rd.y,0.)).x\n    *exp2(-.1*abs(length(rd.xz)/rd.y))\n    *max(sign(rd.y),0.));\n    #ifdef city\n    float x = round(rd.x*30.);\n    float h = hash21(vec2(x-166.));\n    bool building = (h*h*.125*exp2(-x*x*x*x*.0025)>rd.y);\n    if(mask && building)\n        back*=0.,haze=.8, mask=mask && !building;\n    #endif\n    vec3 col=clamp(mix(back,vec3(.7,.1,.4),haze)+st,0.,1.);\n    if(mask)addsun(rd,ld,col);\n    return col;  \n}\n\nvoid mainImage( out vec4 fragColor, in vec2 fragCoord )\n{\n    fragColor=vec4(0);\n    #ifdef AA\n    for(float x = 0.;x<1.;x+=1./float(AA)){\n    for(float y = 0.;y<1.;y+=1./float(AA)){\n    #else\n        const float AA=1.,x=0.,y=0.;\n    #endif\n    vec2 uv = (2.*(fragCoord+vec2(x,y))-iResolution.xy)/iResolution.y;\n    \n    const float shutter_speed = .25; // for motion blur\n\t//float dt = fract(texture(iChannel0,float(AA)*(fragCoord+vec2(x,y))/iChannelResolution[0].xy).r+iTime)*shutter_speed;\n    float dt = fract(hash21(float(AA)*(fragCoord+vec2(x,y)))+iTime)*shutter_speed;\n    jTime = mod(iTime-dt*iTimeDelta,4000.);\n    vec3 ro = vec3(0.,1,(-20000.+jTime*speed));\n    \n        #ifdef stereo\n            ro+=stereo*vec3(.2*(float(uv.x>0.)-.5),0.,0.); \n            const float de = .9;\n            uv.x=uv.x+.5*(uv.x>0.?-de:de);\n            uv*=2.;\n\t\t#endif\n        \n    vec3 rd = normalize(vec3(uv,4./3.));//vec3(uv,sqrt(1.-dot(uv,uv)));\n    vec2 i = intersect(ro,rd);\n    float d = i.x;\n    vec3 ld = normalize(vec3(0,.125+.05*sin(.1*jTime),1));\n    vec3 fog = d>0.?exp2(-d*vec3(.14,.1,.28)):vec3(0.);\n    vec3 sky = gsky(rd,ld,d<0.);\n    vec3 p = ro+d*rd;\n    vec3 n = normalize(grad(p));\n    float diff = dot(n,ld)+.1*n.y;\n    vec3 col = vec3(.1,.11,.18)*diff;\n    vec3 rfd = reflect(rd,n); \n    vec3 rfcol = gsky(rfd,ld,true);\n    col = mix(col,rfcol,.05+.95*pow(max(1.+dot(rd,n),0.),5.));\n    #ifdef VAPORWAVE\n    col = mix(col,vec3(.4,.5,1.),smoothstep(.05,.0,i.y));\n    col = mix(sky,col,fog);\n    col = sqrt(col);\n    #else\n    col = mix(col,vec3(.8,.1,.92),smoothstep(.05,.0,i.y));\n    col = mix(sky,col,fog);\n    //no gamma for that old cg look\n    #endif\n    if(d<0.)\n        d=1e6;\n    d=min(d,10.);\n    fragColor += vec4(clamp(col,0.,1.),d<0.?0.:.1+exp2(-d));\n     #ifdef AA\n    }\n    }\n    fragColor/=float(AA*AA);\n    #endif\n    fragColor = vec4(col,1.0);\n}\n`},{title:\"Disco tunnel\",author:\"WAHa_06x36\",originalURL:\"https://www.shadertoy.com/view/XstfzB\",value:` \n\nvec2 position(float z) {\n\treturn vec2(\n\t\t0.0 + sin(z * 0.1) * 1.0 + sin(cos(z * 0.031) * 4.0) * 1.0 + sin(sin(z * 0.0091) * 3.0) * 3.0,\n\t\t0.0 + cos(z * 0.1) * 1.0 + cos(cos(z * 0.031) * 4.0) * 1.0 + cos(sin(z * 0.0091) * 3.0) * 3.0\n\t) * 1.0;\n}\n\nvoid mainImage( out vec4 fragColor, in vec2 fragCoord )\n{\n\tvec2 p = (fragCoord.xy * 2.0 - iResolution.xy) / min(iResolution.x, iResolution.y);\n\tfloat camZ = 25.0 * iTime;\n\tvec2 cam = position(camZ);\n\tfloat dt = 0.5;\n\tfloat camZ2 = 25.0 * (iTime + dt);\n \tvec2 cam2 = position(camZ2);\n\tvec2 dcamdt = (cam2 - cam) / dt;\n\tvec3 f = vec3(0.0);\n \tfor(int j = 1; j < 300; j++) {\n\t\tfloat i = float(j);\n\t\tfloat realZ = floor(camZ) + i;\n\t\tfloat screenZ = realZ - camZ;\n\t\tfloat r = 1.0 / screenZ;\n \t\tvec2 c = (position(realZ) - cam) * 10.0 / screenZ - dcamdt * 0.4;\n\t \tvec3 color = (vec3(sin(realZ * 0.07), sin(realZ * 0.1), sin(realZ * 0.08)) + vec3(1.0)) / 2.0;\n \t\tf += color * 0.06 / screenZ / (abs(length(p - c) - r) + 0.01);\n\t}\n\tfragColor = vec4(f, 1.0);\n}\n\n  `},{title:\"Ball Of Fire\",author:\"Trisomie21\",originalURL:\"https://www.shadertoy.com/view/lsf3RH\",value:` \n\nfloat snoise(vec3 uv, float res)\n{\n\tconst vec3 s = vec3(1e0, 1e2, 1e3);\n\tuv *= res;\n\tvec3 uv0 = floor(mod(uv, res))*s;\n\tvec3 uv1 = floor(mod(uv+vec3(1.), res))*s;\n\tvec3 f = fract(uv); f = f*f*(3.0-2.0*f);\n\tvec4 v = vec4(uv0.x+uv0.y+uv0.z, uv1.x+uv0.y+uv0.z,\n\t\t      \t  uv0.x+uv1.y+uv0.z, uv1.x+uv1.y+uv0.z);\n\tvec4 r = fract(sin(v*1e-1)*1e3);\n\tfloat r0 = mix(mix(r.x, r.y, f.x), mix(r.z, r.w, f.x), f.y);\n\tr = fract(sin((v + uv1.z - uv0.z)*1e-1)*1e3);\n\tfloat r1 = mix(mix(r.x, r.y, f.x), mix(r.z, r.w, f.x), f.y);\n\treturn mix(r0, r1, f.z)*2.-1.;\n}\n\nvoid mainImage( out vec4 fragColor, in vec2 fragCoord ) \n{\n\tvec2 p = -.5 + fragCoord.xy / iResolution.xy;\n\tp.x *= iResolution.x/iResolution.y;\n\tfloat color = 3.0 - (3.*length(2.*p));\n\tvec3 coord = vec3(atan(p.x,p.y)/6.2832+.5, length(p)*.4, .5);\n\tfor(int i = 1; i <= 7; i++)\n\t{\n\t\tfloat power = pow(2.0, float(i));\n\t\tcolor += (1.5 / power) * snoise(coord + vec3(0.,-iTime*.05, iTime*.01), power*16.);\n\t}\n\tfragColor = vec4( color, pow(max(color,0.),2.)*0.4, pow(max(color,0.),3.)*0.15 , 1.0);\n}\n\n  `},{title:\"Star Nest\",author:\"Kali\",originalURL:\"https://www.shadertoy.com/view/XlfGRj\",value:` \n \n // Star Nest by Pablo Roman Andrioli\n// License: MIT\n\n#define iterations 17\n#define formuparam 0.53\n#define volsteps 20\n#define stepsize 0.1\n#define zoom   0.800\n#define tile   0.850\n#define speed  0.010 \n#define brightness 0.0015\n#define darkmatter 0.300\n#define distfading 0.730\n#define saturation 0.850\n\nvoid mainImage( out vec4 fragColor, in vec2 fragCoord )\n{\n\t//get coords and direction\n\tvec2 uv=fragCoord.xy/iResolution.xy-.5;\n\tuv.y*=iResolution.y/iResolution.x;\n\tvec3 dir=vec3(uv*zoom,1.);\n\tfloat time=iTime*speed+.25;\n\n\t//mouse rotation\n\tfloat a1=.5+iMouse.x/iResolution.x*2.;\n\tfloat a2=.8+iMouse.y/iResolution.y*2.;\n\tmat2 rot1=mat2(cos(a1),sin(a1),-sin(a1),cos(a1));\n\tmat2 rot2=mat2(cos(a2),sin(a2),-sin(a2),cos(a2));\n\tdir.xz*=rot1;\n\tdir.xy*=rot2;\n\tvec3 from=vec3(1.,.5,0.5);\n\tfrom+=vec3(time*2.,time,-2.);\n\tfrom.xz*=rot1;\n\tfrom.xy*=rot2;\n\t\n\t//volumetric rendering\n\tfloat s=0.1,fade=1.;\n\tvec3 v=vec3(0.);\n\tfor (int r=0; r<volsteps; r++) {\n\t\tvec3 p=from+s*dir*.5;\n\t\tp = abs(vec3(tile)-mod(p,vec3(tile*2.))); // tiling fold\n\t\tfloat pa,a=pa=0.;\n\t\tfor (int i=0; i<iterations; i++) { \n\t\t\tp=abs(p)/dot(p,p)-formuparam; // the magic formula\n\t\t\ta+=abs(length(p)-pa); // absolute sum of average change\n\t\t\tpa=length(p);\n\t\t}\n\t\tfloat dm=max(0.,darkmatter-a*a*.001); //dark matter\n\t\ta*=a*a; // add contrast\n\t\tif (r>6) fade*=1.-dm; // dark matter, don't render near\n\t\t//v+=vec3(dm,dm*.5,0.);\n\t\tv+=fade;\n\t\tv+=vec3(s,s*s,s*s*s*s)*a*brightness*fade; // coloring based on distance\n\t\tfade*=distfading; // distance fading\n\t\ts+=stepsize;\n\t}\n\tv=mix(vec3(length(v)),v,saturation); //color adjust\n\tfragColor = vec4(v*.01,1.);\t\n}\n  `},{title:\"Starleidoscope\",author:\"DanielXMoore\",originalURL:\"https://www.shadertoy.com/view/ftt3R7\",value:` \n\n#define NUM_LAYERS 10.\n\nmat2 Rot(float a) {\n  float c = cos(a), s = sin(a);\n  return mat2(c, -s, s, c);\n}\n\nfloat Star(vec2 uv, float flare) {\n    float col = 0.;\n    float d = length(uv);\n    float m = .02/d;\n    float rays = max(0., 1. - abs(uv.x * uv.y * 1000.));\n    m += rays * flare;\n    uv *= Rot(3.1415/4.);\n    rays = max(0., 1. - abs(uv.x * uv.y * 1000.));\n    m += rays * .3 * flare;\n    m *= smoothstep(1., .2, d);\n    return m;\n}\n\nfloat Hash21(vec2 p) {\n  p = fract(p * vec2(123.34, 456.21));\n  p += dot(p, p+45.32);\n  return fract(p.x*p.y);\n}\n\nvec3 StarLayer(vec2 uv) {\n    vec3 col = vec3(0.);\n    vec2 gv = fract(uv) - 0.5;\n    vec2 id = floor(uv);\n    for(int y = -1; y <= 1; y++ ) {\n        for(int x = -1; x <= 1; x++) {\n            vec2 offs = vec2(x, y);\n            float n = Hash21(id + offs);\n            float size = fract(n*345.32);            \n            vec2 p = vec2(n, fract(n*34.));\n            float star = Star(gv - offs - p + .5, smoothstep(.8, 1., size) * .6);\n            vec3 hueShift = fract(n*2345.2 + dot(uv /420.,texture(iChannel0, vec2(0.25, 0.)).rg))*vec3(.2, .3, .9)*123.2;\n            vec3 color = sin(hueShift) * .5 + .5;\n            color = color * vec3(1., .25, 1.+size);\n            star *= sin(iTime*3.+n*6.2831)*.4+1.;\n            col += star * size * color;\n        }\n    }\n    return col;\n}\n\nvec2 N(float angle) {\n  return vec2(sin(angle), cos(angle));\n}\n\nvoid mainImage( out vec4 fragColor, in vec2 fragCoord )\n{\n    vec2 uv = (fragCoord - 0.5*iResolution.xy)/iResolution.y;\n    vec2 M = (iMouse.xy - iResolution.xy*.5)/iResolution.y;\n    float t = iTime * .01;\n    uv.x = abs(uv.x);\n    uv.y += tan((5./6.) * 3.1415) * .5;\n    vec2 n = N((5./6.) * 3.1415);\n    float d = dot(uv - vec2(.5, 0.), n);\n    uv -= n * max(0., d) * 2.;\n    // col += smoothstep(.01, .0, abs(d));\n    n = N((2./3.) * 3.1415);\n    float scale = 1.;\n    uv.x += 1.5 / 1.25;\n    for(int i=0; i<5; i++) {\n        scale *= 1.25;\n        uv *= 1.25;\n        uv.x -= 1.5;\n        uv.x = abs(uv.x);\n        uv.x -= 0.5;\n        uv -= n * min(0., dot(uv, n)) * 2.;\n    }\n \n    uv += M * 4.;\n    uv *= Rot(t);\n    vec3 col = vec3(0.);\n    float layers = 10.;\n\n    for(float i=0.; i < 1.; i+=1./NUM_LAYERS) {\n        float depth = fract(i+t);\n        float scale = mix(20., .5, depth);\n        float fade = depth * smoothstep(1., .9, depth);\n        col += StarLayer(uv * scale + i * 453.2) * fade;\n    }\n\n    fragColor = vec4(col,1.0);\n}\n  `},{title:\"Phantom Star\",author:\"kasari39\",originalURL:\"https://www.shadertoy.com/view/ttKGDt\",value:` \nprecision highp float;\n\nmat2 rot(float a) {\n    float c = cos(a), s = sin(a);\n    return mat2(c,s,-s,c);\n}\n\nconst float pi = acos(-1.0);\nconst float pi2 = pi*2.0;\nvec2 pmod(vec2 p, float r) {\n    float a = atan(p.x, p.y) + pi/r;\n    float n = pi2 / r;\n    a = floor(a/n)*n;\n    return p*rot(-a);\n}\n\nfloat box( vec3 p, vec3 b ) {\n    vec3 d = abs(p) - b;\n    return min(max(d.x,max(d.y,d.z)),0.0) + length(max(d,0.0));\n}\n\nfloat ifsBox(vec3 p) {\n    for (int i=0; i<5; i++) {\n        p = abs(p) - 1.0;\n        p.xy *= rot(iTime*0.3);\n        p.xz *= rot(iTime*0.1);\n    }\n    p.xz *= rot(iTime);\n    return box(p, vec3(0.4,0.8,0.3));\n}\n\nfloat map(vec3 p, vec3 cPos) {\n    vec3 p1 = p;\n    p1.x = mod(p1.x-5., 10.) - 5.;\n    p1.y = mod(p1.y-5., 10.) - 5.;\n    p1.z = mod(p1.z, 16.)-8.;\n    p1.xy = pmod(p1.xy, 5.0);\n    return ifsBox(p1);\n}\n\nvoid mainImage( out vec4 fragColor, in vec2 fragCoord ) {\n    vec2 p = (fragCoord.xy * 2.0 - iResolution.xy) / min(iResolution.x, iResolution.y);\n    vec3 cPos = vec3(0.0,0.0, -3.0 * iTime);\n    // vec3 cPos = vec3(0.3*sin(iTime*0.8), 0.4*cos(iTime*0.3), -6.0 * iTime);\n    vec3 cDir = normalize(vec3(0.0, 0.0, -1.0));\n    vec3 cUp  = vec3(sin(iTime), 1.0, 0.0);\n    vec3 cSide = cross(cDir, cUp);\n    vec3 ray = normalize(cSide * p.x + cUp * p.y + cDir);\n\n    // Phantom Mode https://www.shadertoy.com/view/MtScWW by aiekick\n    float acc = 0.0;\n    float acc2 = 0.0;\n    float t = 0.0;\n    for (int i = 0; i < 99; i++) {\n        vec3 pos = cPos + ray * t;\n        float dist = map(pos, cPos);\n        dist = max(abs(dist), 0.02);\n        float a = exp(-dist*3.0);\n        if (mod(length(pos)+24.0*iTime, 30.0) < 3.0) {\n            a *= 2.0;\n            acc2 += a;\n        }\n        acc += a;\n        t += dist * 0.5;\n    }\n\n    vec3 col = vec3(acc * 0.01, acc * 0.011 + acc2*0.002, acc * 0.012+ acc2*0.005);\n    fragColor = vec4(col, 1.0 - t * 0.03);\n    fragColor.a = 1.0;\n}\n  `},{title:\"Shooting Stars\",author:\"Xor\",originalURL:\"https://www.shadertoy.com/view/ctXGRn\",value:` \nvoid mainImage(out vec4 O, vec2 I)\n{\n    //Clear fragcolor\n    O *= 0.;\n    \n    //Line dimensions (box) and position relative to line\n    vec2 b = vec2(0,.2), p;\n    //Rotation matrix\n    mat2 R;\n    //Iterate 20 times\n    for(float i=.9; i++<20.;\n        //Add attenuation\n        O += 1e-3/length(clamp(p=R\n        //Using rotated boxes\n        *(fract((I/iResolution.y*i*.1+iTime*b)*R)-.5),-b,b)-p)\n        //My favorite color palette\n        *(cos(p.y/.1+vec4(0,1,2,3))+1.) )\n        //Rotate for each iteration\n        R=mat2(cos(i+vec4(0,33,11,0)));\n          O.a = 1.0;\n}\n  `},{title:\"Zippy Zaps\",author:\"SnoopethDuckDuck\",originalURL:\"https://www.shadertoy.com/view/XXyGzh\",value:` \n  void mainImage( out vec4 o, vec2 u )\n{\n    vec2 v = iResolution.xy;\n         u = .2*(u+u-v)/v.y;    \n         \n    vec4 z = o = vec4(1,2,3,0);\n     \n    for (float a = .5, t = iTime, i; \n         ++i < 19.; \n         o += (1. + cos(z+t)) \n            / length((1.+i*dot(v,v)) \n                   * sin(1.5*u/(.5-dot(u,u)) - 9.*u.yx + t))\n         )  \n        v = cos(++t - 7.*u*pow(a += .03, i)) - 5.*u,                 \n        u += tanh(40. * dot(u *= mat2(cos(i + .02*t - vec4(0,11,33,0)))\n                           ,u)\n                      * cos(1e2*u.yx + t)) / 2e2\n           + .2 * a * u\n           + cos(4./exp(dot(o,o)/1e2) + t) / 3e2;\n              \n     o = 25.6 / (min(o, 13.) + 164. / o) \n       - dot(u, u) / 250.;\n            o*=1.0;\n}\n  `},{title:\"Inside the Matrix\",author:\"And390\",originalURL:\"https://www.shadertoy.com/view/4t3BWl\",value:` \n\n\nconst int ITERATIONS = 40;   //use less value if you need more performance\nconst float SPEED = 1.;\nconst float STRIP_CHARS_MIN =  7.;\nconst float STRIP_CHARS_MAX = 40.;\nconst float STRIP_CHAR_HEIGHT = 0.15;\nconst float STRIP_CHAR_WIDTH = 0.10;\nconst float ZCELL_SIZE = 1. * (STRIP_CHAR_HEIGHT * STRIP_CHARS_MAX);  //the multiplier can't be less than 1.\nconst float XYCELL_SIZE = 12. * STRIP_CHAR_WIDTH;  //the multiplier can't be less than 1.\nconst int BLOCK_SIZE = 10;  //in cells\nconst int BLOCK_GAP = 2;    //in cells\nconst float WALK_SPEED = 1. * XYCELL_SIZE;\nconst float BLOCKS_BEFORE_TURN = 3.;\nconst float PI = 3.14159265359;\n\n//----  random  ----\nfloat hash(float v) {\n    return fract(sin(v)*43758.5453123);\n}\n\nfloat hash(vec2 v) {\n    return hash(dot(v, vec2(5.3983, 5.4427)));\n}\n\nvec2 hash2(vec2 v)\n{\n    v = vec2(v * mat2(127.1, 311.7,  269.5, 183.3));\n\treturn fract(sin(v)*43758.5453123);\n}\n\nvec4 hash4(vec2 v)\n{\n    vec4 p = vec4(v * mat4x2( 127.1, 311.7,\n                              269.5, 183.3,\n                              113.5, 271.9,\n                              246.1, 124.6 ));\n    return fract(sin(p)*43758.5453123);\n}\n\nvec4 hash4(vec3 v)\n{\n    vec4 p = vec4(v * mat4x3( 127.1, 311.7, 74.7,\n                              269.5, 183.3, 246.1,\n                              113.5, 271.9, 124.6,\n                              271.9, 269.5, 311.7 ) );\n    return fract(sin(p)*43758.5453123);\n}\n\n\n//  ----  symbols  ----\n//  Slightly modified version of \"runes\" by FabriceNeyret2 -  https://www.shadertoy.com/view/4ltyDM\n//  Which is based on \"runes\" by otaviogood -  https://shadertoy.com/view/MsXSRn\n\nfloat rune_line(vec2 p, vec2 a, vec2 b) {   // from https://www.shadertoy.com/view/4dcfW8\n    p -= a, b -= a;\n\tfloat h = clamp(dot(p, b) / dot(b, b), 0., 1.);   // proj coord on line\n\treturn length(p - b * h);                         // dist to segment\n}\n\nfloat rune(vec2 U, vec2 seed, float highlight)\n{\n\tfloat d = 1e5;\n\tfor (int i = 0; i < 4; i++)\t// number of strokes\n\t{\n    vec4 pos = hash4(seed);\n\t\tseed += 1.;\n\n\t\t// each rune touches the edge of its box on all 4 sides\n\t\tif (i == 0) pos.y = .0;\n\t\tif (i == 1) pos.x = .999;\n\t\tif (i == 2) pos.x = .0;\n\t\tif (i == 3) pos.y = .999;\n\t\t// snap the random line endpoints to a grid 2x3\n\t\tvec4 snaps = vec4(2, 3, 2, 3);\n\t\tpos = ( floor(pos * snaps) + .5) / snaps;\n\t\tif (pos.xy != pos.zw)  //filter out single points (when start and end are the same)\n\t\t    d = min(d, rune_line(U, pos.xy, pos.zw + .001) ); // closest line\n\t}\n\treturn smoothstep(0.1, 0., d) + highlight*smoothstep(0.4, 0., d);\n}\n\nfloat random_char(vec2 outer, vec2 inner, float highlight) {\n    vec2 seed = vec2(dot(outer, vec2(269.5, 183.3)), dot(outer, vec2(113.5, 271.9)));\n    return rune(inner, seed, highlight);\n}\n\n//----  digital rain  ----\n// xy - horizontal, z - vertical\nvec3 rain(vec3 ro3, vec3 rd3, float time) {\n    vec4 result = vec4(0.);\n\n    // normalized 2d projection\n    vec2 ro2 = vec2(ro3);\n    vec2 rd2 = normalize(vec2(rd3));\n\n    // we use formulas \"ro3 + rd3 * t3\" and \"ro2 + rd2 * t2\", \"t3_to_t2\" is a multiplier to convert t3 to t2\n    bool prefer_dx = abs(rd2.x) > abs(rd2.y);\n    float t3_to_t2 = prefer_dx ? rd3.x / rd2.x : rd3.y / rd2.y;\n\n    // at first, horizontal space (xy) is divided into cells (which are columns in 3D)\n    // then each xy-cell is divided into vertical cells (along z) - each of these cells contains one raindrop\n\n    ivec3 cell_side = ivec3(step(0., rd3));      //for positive rd.x use cell side with higher x (1) as the next side, for negative - with lower x (0), the same for y and z\n    ivec3 cell_shift = ivec3(sign(rd3));         //shift to move to the next cell\n\n    //  move through xy-cells in the ray direction\n    float t2 = 0.;  // the ray formula is: ro2 + rd2 * t2, where t2 is positive as the ray has a direction.\n    ivec2 next_cell = ivec2(floor(ro2/XYCELL_SIZE));  //first cell index where ray origin is located\n    for (int i=0; i<ITERATIONS; i++) {\n        ivec2 cell = next_cell;  //save cell value before changing\n        float t2s = t2;          //and t\n\n        //  find the intersection with the nearest side of the current xy-cell (since we know the direction, we only need to check one vertical side and one horizontal side)\n        vec2 side = vec2(next_cell + cell_side.xy) * XYCELL_SIZE;  //side.x is x coord of the y-axis side, side.y - y of the x-axis side\n        vec2 t2_side = (side - ro2) / rd2;  // t2_side.x and t2_side.y are two candidates for the next value of t2, we need the nearest\n        if (t2_side.x < t2_side.y) {\n            t2 = t2_side.x;\n            next_cell.x += cell_shift.x;  //cross through the y-axis side\n        } else {\n            t2 = t2_side.y;\n            next_cell.y += cell_shift.y;  //cross through the x-axis side\n        }\n        //now t2 is the value of the end point in the current cell (and the same point is the start value in the next cell)\n\n        //  gap cells\n        vec2 cell_in_block = fract(vec2(cell) / float(BLOCK_SIZE));\n        float gap = float(BLOCK_GAP) / float(BLOCK_SIZE);\n        if (cell_in_block.x < gap || cell_in_block.y < gap || (cell_in_block.x < (gap+0.1) && cell_in_block.y < (gap+0.1))) {\n            continue;\n        }\n\n        //  return to 3d - we have start and end points of the ray segment inside the column (t3s and t3e)\n        float t3s = t2s / t3_to_t2;\n\n        //  move through z-cells of the current column in the ray direction (don't need much to check, two nearest cells are enough)\n        float pos_z = ro3.z + rd3.z * t3s;\n        float xycell_hash = hash(vec2(cell));\n        float z_shift = xycell_hash*11. - time * (0.5 + xycell_hash * 1.0 + xycell_hash * xycell_hash * 1.0 + pow(xycell_hash, 16.) * 3.0);  //a different z shift for each xy column\n        float char_z_shift = floor(z_shift / STRIP_CHAR_HEIGHT);\n        z_shift = char_z_shift * STRIP_CHAR_HEIGHT;\n        int zcell = int(floor((pos_z - z_shift)/ZCELL_SIZE));  //z-cell index\n        for (int j=0; j<2; j++) {  //2 iterations is enough if camera doesn't look much up or down\n            //  calcaulate coordinates of the target (raindrop)\n            vec4 cell_hash = hash4(vec3(ivec3(cell, zcell)));\n            vec4 cell_hash2 = fract(cell_hash * vec4(127.1, 311.7, 271.9, 124.6));\n\n            float chars_count = cell_hash.w * (STRIP_CHARS_MAX - STRIP_CHARS_MIN) + STRIP_CHARS_MIN;\n            float target_length = chars_count * STRIP_CHAR_HEIGHT;\n            float target_rad = STRIP_CHAR_WIDTH / 2.;\n            float target_z = (float(zcell)*ZCELL_SIZE + z_shift) + cell_hash.z * (ZCELL_SIZE - target_length);\n            vec2 target = vec2(cell) * XYCELL_SIZE + target_rad + cell_hash.xy * (XYCELL_SIZE - target_rad*2.);\n\n            //  We have a line segment (t0,t). Now calculate the distance between line segment and cell target (it's easier in 2d)\n            vec2 s = target - ro2;\n            float tmin = dot(s, rd2);  //tmin - point with minimal distance to target\n            if (tmin >= t2s && tmin <= t2) {\n                float u = s.x * rd2.y - s.y * rd2.x;  //horizontal coord in the matrix strip\n                if (abs(u) < target_rad) {\n                    u = (u/target_rad + 1.) / 2.;\n                    float z = ro3.z + rd3.z * tmin/t3_to_t2;\n                    float v = (z - target_z) / target_length;  //vertical coord in the matrix strip\n                    if (v >= 0.0 && v < 1.0) {\n                        float c = floor(v * chars_count);  //symbol index relative to the start of the strip, with addition of char_z_shift it becomes an index relative to the whole cell\n                        float q = fract(v * chars_count);\n                        vec2 char_hash = hash2(vec2(c+char_z_shift, cell_hash2.x));\n                        if (char_hash.x >= 0.1 || c == 0.) {  //10% of missed symbols\n                            float time_factor = floor(c == 0. ? time*5.0 :  //first symbol is changed fast\n                                    time*(1.0*cell_hash2.z +   //strips are changed sometime with different speed\n                                            cell_hash2.w*cell_hash2.w*4.*pow(char_hash.y, 4.)));  //some symbols in some strips are changed relatively often\n                            float a = random_char(vec2(char_hash.x, time_factor), vec2(u,q), max(1., 3. - c/2.)*0.2);  //alpha\n                            a *= clamp((chars_count - 0.5 - c) / 2., 0., 1.);  //tail fade\n                            if (a > 0.) {\n                                float attenuation = 1. + pow(0.06*tmin/t3_to_t2, 2.);\n                                vec3 col = (c == 0. ? vec3(0.67, 1.0, 0.82) : vec3(0.25, 0.80, 0.40)) / attenuation;\n                                float a1 = result.a;\n                                result.a = a1 + (1. - a1) * a;\n                                result.xyz = (result.xyz * a1 + col * (1. - a1) * a) / result.a;\n                                if (result.a > 0.98)  return result.xyz;\n                            }\n                        }\n                    }\n                }\n            }\n            // not found in this cell - go to next vertical cell\n            zcell += cell_shift.z;\n        }\n        // go to next horizontal cell\n    }\n    return result.xyz * result.a;\n}\n\n//  ----  main, camera  ----\n\nvec2 rotate(vec2 v, float a) {\n    float s = sin(a);\n\tfloat c = cos(a);\n    mat2 m = mat2(c, -s, s, c);\n    return m * v;\n}\n\nvec3 rotateX(vec3 v, float a) {\n    float s = sin(a);\n    float c = cos(a);\n    return mat3(1.,0.,0.,0.,c,-s,0.,s,c) * v;\n}\n\nvec3 rotateY(vec3 v, float a) {\n    float s = sin(a);\n    float c = cos(a);\n    return mat3(c,0.,-s,0.,1.,0.,s,0.,c) * v;\n}\n\nvec3 rotateZ(vec3 v, float a) {\n    float s = sin(a);\n    float c = cos(a);\n    return mat3(c,-s,0.,s,c,0.,0.,0.,1.) * v;\n}\n\nfloat smoothstep1(float x) {\n    return smoothstep(0., 1., x);\n}\n\nvoid mainImage( out vec4 fragColor, in vec2 fragCoord )\n{\n    if (STRIP_CHAR_WIDTH > XYCELL_SIZE || STRIP_CHAR_HEIGHT * STRIP_CHARS_MAX > ZCELL_SIZE) {\n        // error\n        fragColor = vec4(1., 0., 0., 1.);\n        return;\n    }\n\n\t  vec2 uv = (fragCoord.xy * 2. - iResolution.xy) / iResolution.y;\n    float time = iTime * SPEED;\n    const float turn_rad = 0.25 / BLOCKS_BEFORE_TURN;   //0 .. 0.5\n    const float turn_abs_time = (PI/2.*turn_rad) * 1.5;  //multiplier different than 1 means a slow down on turns\n    const float turn_time = turn_abs_time / (1. - 2.*turn_rad + turn_abs_time);  //0..1, but should be <= 0.5\n    float level1_size = float(BLOCK_SIZE) * BLOCKS_BEFORE_TURN * XYCELL_SIZE;\n    float level2_size = 4. * level1_size;\n    float gap_size = float(BLOCK_GAP) * XYCELL_SIZE;\n    vec3 ro = vec3(gap_size/2., gap_size/2., 0.);\n    vec3 rd = vec3(uv.x, 2.0, uv.y);\n    float tq = fract(time / (level2_size*4.) * WALK_SPEED);  //the whole cycle time counter\n    float t8 = fract(tq*4.);  //time counter while walking on one of the four big sides\n    float t1 = fract(t8*8.);  //time counter while walking on one of the eight sides of the big side\n    vec2 prev;\n    vec2 dir;\n    if (tq < 0.25) {\n        prev = vec2(0.,0.);\n        dir = vec2(0.,1.);\n    } else if (tq < 0.5) {\n        prev = vec2(0.,1.);\n        dir = vec2(1.,0.);\n    } else if (tq < 0.75) {\n        prev = vec2(1.,1.);\n        dir = vec2(0.,-1.);\n    } else {\n        prev = vec2(1.,0.);\n        dir = vec2(-1.,0.);\n    }\n    float angle = floor(tq * 4.);  //0..4 wich means 0..2*PI\n    prev *= 4.;\n    const float first_turn_look_angle = 0.4;\n    const float second_turn_drift_angle = 0.5;\n    const float fifth_turn_drift_angle = 0.25;\n    vec2 turn;\n    float turn_sign = 0.;\n    vec2 dirL = rotate(dir, -PI/2.);\n    vec2 dirR = -dirL;\n    float up_down = 0.;\n    float rotate_on_turns = 1.;\n    float roll_on_turns = 1.;\n    float add_angel = 0.;\n    if (t8 < 0.125) {\n        turn = dirL;\n        //dir = dir;\n        turn_sign = -1.;\n        angle -= first_turn_look_angle * (max(0., t1 - (1. - turn_time*2.)) / turn_time - max(0., t1 - (1. - turn_time)) / turn_time * 2.5);\n        roll_on_turns = 0.;\n    } else if (t8 < 0.250) {\n        prev += dir;\n        turn = dir;\n        dir = dirL;\n        angle -= 1.;\n        turn_sign = 1.;\n        add_angel += first_turn_look_angle*0.5 + (-first_turn_look_angle*0.5+1.0+second_turn_drift_angle)*t1;\n        rotate_on_turns = 0.;\n        roll_on_turns = 0.;\n    } else if (t8 < 0.375) {\n        prev += dir + dirL;\n        turn = dirR;\n        //dir = dir;\n        turn_sign = 1.;\n        add_angel += second_turn_drift_angle*sqrt(1.-t1);\n        //roll_on_turns = 0.;\n    } else if (t8 < 0.5) {\n        prev += dir + dir + dirL;\n        turn = dirR;\n        dir = dirR;\n        angle += 1.;\n        turn_sign = 0.;\n        up_down = sin(t1*PI) * 0.37;\n    } else if (t8 < 0.625) {\n        prev += dir + dir;\n        turn = dir;\n        dir = dirR;\n        angle += 1.;\n        turn_sign = -1.;\n        up_down = sin(-min(1., t1/(1.-turn_time))*PI) * 0.37;\n    } else if (t8 < 0.750) {\n        prev += dir + dir + dirR;\n        turn = dirL;\n        //dir = dir;\n        turn_sign = -1.;\n        add_angel -= (fifth_turn_drift_angle + 1.) * smoothstep1(t1);\n        rotate_on_turns = 0.;\n        roll_on_turns = 0.;\n    } else if (t8 < 0.875) {\n        prev += dir + dir + dir + dirR;\n        turn = dir;\n        dir = dirL;\n        angle -= 1.;\n        turn_sign = 1.;\n        add_angel -= fifth_turn_drift_angle - smoothstep1(t1) * (fifth_turn_drift_angle * 2. + 1.);\n        rotate_on_turns = 0.;\n        roll_on_turns = 0.;\n    } else {\n        prev += dir + dir + dir;\n        turn = dirR;\n        //dir = dir;\n        turn_sign = 1.;\n        angle += fifth_turn_drift_angle * (1.5*min(1., (1.-t1)/turn_time) - 0.5*smoothstep1(1. - min(1.,t1/(1.-turn_time))));\n    }\n\n    if (iMouse.x > 10. || iMouse.y > 10.) {\n        vec2 mouse = iMouse.xy / iResolution.xy * 2. - 1.;\n        up_down = -0.7 * mouse.y;\n        angle += mouse.x;\n        rotate_on_turns = 1.;\n        roll_on_turns = 0.;\n    } else {\n        angle += add_angel;\n    }\n    rd = rotateX(rd, up_down);\n    vec2 p;\n    if (turn_sign == 0.) {\n        //  move forward\n        p = prev + dir * (turn_rad + 1. * t1);\n    }\n    else if (t1 > (1. - turn_time)) {\n        //  turn\n        float tr = (t1 - (1. - turn_time)) / turn_time;\n        vec2 c = prev + dir * (1. - turn_rad) + turn * turn_rad;\n        p = c + turn_rad * rotate(dir, (tr - 1.) * turn_sign * PI/2.);\n        angle += tr * turn_sign * rotate_on_turns;\n        rd = rotateY(rd, sin(tr*turn_sign*PI) * 0.2 * roll_on_turns);  //roll\n    }  else  {\n        //  move forward\n        t1 /= (1. - turn_time);\n        p = prev + dir * (turn_rad + (1. - turn_rad*2.) * t1);\n    }\n    rd = rotateZ(rd, angle * PI/2.);\n    ro.xy += level1_size * p;\n    ro += rd * 0.2;\n    rd = normalize(rd);\n    vec3 col = rain(ro, rd, time);\n    fragColor = vec4(col, 1.);\n}\n        `},{title:\"Tiles\",author:\"Johnrobmiller\",originalURL:\"https://www.shadertoy.com/view/mdBSRt\",value:` \n\nvoid mainImage( out vec4 fragColor, in vec2 fragCoord )\n{\n    float aspect_ratio = iResolution.y/iResolution.x;\n\t  vec2 uv = fragCoord.xy / iResolution.x;\n    uv -= vec2(0.5, 0.5 * aspect_ratio);\n    float rot = radians(-30. -iTime); // radians(45.0*sin(iTime));\n    mat2 rotation_matrix = mat2(cos(rot), -sin(rot), sin(rot), cos(rot));\n   \tuv = rotation_matrix * uv;\n    vec2 scaled_uv = 20.0 * uv; \n    vec2 tile = fract(scaled_uv);\n    float tile_dist = min(min(tile.x, 1.0-tile.x), min(tile.y, 1.0-tile.y));\n    float square_dist = length(floor(scaled_uv));\n    float edge = sin(iTime-square_dist*20.);\n    edge = mod(edge * edge, edge / edge);\n    float value = mix(tile_dist, 1.0-tile_dist, step(1.0, edge));\n    edge = pow(abs(1.0-edge), 2.2) * 0.5;\n    value = smoothstep( edge-0.05, edge, 0.95*value);\n    value += square_dist*.1;\n    value *= 0.8 - 0.2;\n    fragColor = vec4(pow(value, 2.), pow(value, 1.5), pow(value, 1.2), 1.);\n}\n  `},{title:\"Dance floor\",author:\"Nrx\",originalURL:\"https://www.shadertoy.com/view/lsBXDW\",value:` \n  \nvec3 hsv2rgb (in vec3 hsv) {\n\thsv.yz = clamp (hsv.yz, 0.0, 1.0);\n\treturn hsv.z * (1.0 + 0.5 * hsv.y * (cos (2.0 * 3.14159 * (hsv.x + vec3 (0.0, 2.0 / 3.0, 1.0 / 3.0))) - 1.0));\n}\n\nfloat rand (in vec2 seed) {\n\treturn fract (sin (dot (seed, vec2 (12.9898, 78.233))) * 137.5453);\n}\n\nvoid mainImage (out vec4 fragColor, in vec2 fragCoord) {\n\tvec2 frag = (2.0 * fragCoord.xy - iResolution.xy) / iResolution.y;\n\tfrag *= 1.0 - 0.2 * cos (frag.yx) * sin (3.14159 * 0.5 * texture (iChannel0, vec2 (0.0)).x);\n\tfrag *= 5.0;\n\tfloat random = rand (floor (frag));\n\tvec2 black = smoothstep (1.0, 0.8, cos (frag * 3.14159 * 2.0));\n\tvec3 color = hsv2rgb (vec3 (random, 1.0, 1.0));\n\tcolor *= black.x * black.y * smoothstep (1.0, 0.0, length (fract (frag) - 0.5));\n\tcolor *= 0.5 + 0.5 * cos (random + random * iTime + iTime + 3.14159 * 0.5 * texture (iChannel0, vec2 (0.7)).x);\n\tfragColor = vec4 (color, 1.0);\n}\n  `},{title:\"Sincos 3d\",author:\"ChunderFPV\",originalURL:\"https://www.shadertoy.com/view/XfXGz4\",value:` \n\n\n#define A(v) mat2(cos(m.v+radians(vec4(0, -90, 90, 0))))  // rotate\n#define W(v) length(vec3(p.yz-v(p.x+vec2(0, pi_2)+t), 0))-lt  // wave\n//#define W(v) length(p-vec3(round(p.x*pi)/pi, v(t+p.x), v(t+pi_2+p.x)))-lt  // alt wave\n#define P(v) length(p-vec3(0, v(t), v(t+pi_2)))-pt  // point\n\nvoid mainImage( out vec4 C, in vec2 U )\n{\n    float lt = .1, // line thickness\n          pt = .3, // point thickness\n          pi = 3.1416,\n          pi2 = pi*2.,\n          pi_2 = pi/2.,\n          t = iTime*pi,\n          s = 1., d = 0., i = d;\n    \n    vec2 R = iResolution.xy,\n         m = (iMouse.xy-.5*R)/R.y*4.;\n    \n    vec3 o = vec3(0, 0, -7), // cam\n         u = normalize(vec3((U-.5*R)/R.y, 1)),\n         c = vec3(0), k = c, p;\n    \n    if (iMouse.z < 1.) m = -vec2(t/20.-pi_2, 0); // move when not clicking\n    mat2 v = A(y), h = A(x); // pitch & yaw\n    \n    for (; i++<50.;) // raymarch\n    {\n        p = o+u*d;\n        p.yz *= v;\n        p.xz *= h;\n        p.x -= 3.; // slide objects to the right a bit\n        if (p.y < -1.5) p.y = 2./p.y; // reflect into neg y\n        k.x = min( max(p.x+lt, W(sin)), P(sin) ); // sine wave\n        k.y = min( max(p.x+lt, W(cos)), P(cos) ); // cosine wave\n        s = min(s, min(k.x, k.y)); // blend\n        if (s < .001 || d > 100.) break; // limits\n        d += s*.5;\n    }\n    \n    // add and color scene\n    c = max(cos(d*pi2) - s*sqrt(d) - k, 0.);\n    c.gb += .1;\n    C = vec4(c*.4 + c.brg*.6 + c*c, 1);\n}\n  `},{title:\"Fireworks\",author:\"ilyaev\",originalURL:\"https://www.shadertoy.com/view/wslcWN\",value:` \n\n#define SPARKS 30\n#define FIREWORKS 8.\n#define BASE_PAUSE FIREWORKS / 30.\n#define PI 3.14\n#define PI2 6.28\n\nfloat n21(vec2 n) {\n    return fract(sin(dot(n, vec2(12.9898, 4.1414))) * 43758.5453);\n}\n\nvec2 randomSpark(float noise) {\n    vec2 v0 = vec2((noise - .5) * 13., (fract(noise * 123.) - .5) * 15.);\n    return v0;\n}\n\nvec2 circularSpark(float i, float noiseId, float noiseSpark) {\n    noiseId = fract(noiseId * 7897654.45);\n    float a = (PI2 / float(SPARKS)) * i;\n    float speed = 10.*clamp(noiseId, .7, 1.);\n    float x = sin(a + iTime*((noiseId-.5)*3.));\n    float y = cos(a + iTime*(fract(noiseId*4567.332) - .5)*2.);\n    vec2 v0 = vec2(x, y) * speed;\n    return v0;\n}\n\nvec2 rocket(vec2 start, float t) {\n    float y = t;\n    float x = sin(y*10.+cos(t*3.))*.1;\n    vec2 p = start + vec2(x, y * 8.);\n    return p;\n}\nvec3 firework(vec2 uv, float index, float pauseTime) {\n    vec3 col = vec3(0.);\n    float timeScale = 1.;\n    vec2 gravity = vec2(0., -9.8);\n    float explodeTime = .9;\n    float rocketTime = 1.1;\n    float episodeTime = rocketTime + explodeTime + pauseTime;\n    float ratio = iResolution.x / iResolution.y;\n    float timeScaled = (iTime - pauseTime) / timeScale;\n    float id = floor(timeScaled / episodeTime);\n    float et = mod(timeScaled, episodeTime);\n    float noiseId = n21(vec2(id+1., index+1.));\n    float scale = clamp(fract(noiseId*567.53)*30., 10., 30.);\n    uv *= scale;\n    rocketTime -= (fract(noiseId*1234.543) * .5);\n    vec2 pRocket = rocket(vec2(0. + ((noiseId - .5)*scale*ratio), 0. - scale/2.), clamp(et, 0., rocketTime));\n    if (et < rocketTime) {\n        float rd = length(uv - pRocket);\n        col += pow(.05/rd , 1.9) * vec3(0.9, .3, .0);\n    }\n\n    if (et > rocketTime && et < (rocketTime + explodeTime)) {\n        float burst = sign(fract(noiseId*44432.22) - .6);\n        for(int i = 0 ; i < SPARKS ; i++) {\n                vec2 center = pRocket;\n                float fi = float(i);\n                float noiseSpark = fract(n21(vec2(id*10.+index*20., float(i+1))) * 332.44);\n                float t = et - rocketTime;\n                vec2 v0;\n                if (fract(noiseId*3532.33) > .5) {\n                    v0 = randomSpark(noiseSpark);\n                    t -= noiseSpark * (fract(noiseId*543.) * .2);\n                } else {\n                    v0 = circularSpark(fi, noiseId, noiseSpark);\n                    if ( (fract(noiseId*973.22) - .5) > 0.) {\n                        float re = mod(fi, 4. + 10. * noiseId);\n                        t -= floor(re/2.) * burst * .1;\n                    } else {\n                        t -= mod(fi, 2.) == 0. ? 0. : burst * .5*clamp(noiseId, .3, 1.);\n                    }\n                }\n                vec2 s = v0*t + (gravity * t * t) / 2.;\n                vec2 p = center + s;\n                float d = length(uv - p);\n                if (t > 0.) {\n                    float fade = clamp((1. - t/explodeTime), 0., 1.);\n                    vec3 sparkColor = vec3(noiseId*.9, .5*fract(noiseId *456.33), .5*fract(noiseId *1456.33));\n                    vec3 c = (.05 / d) * sparkColor;\n                    col += c * fade;\n                }\n            }\n    }\n    return col;\n}\n\nvoid mainImage(out vec4 fragColor, in vec2 fragCoords) {\n    vec2 uv = fragCoords.xy / iResolution.xy;\n    uv -= .5;\n    uv.x *= iResolution.x / iResolution.y;\n    vec3 col = vec3(0.);\n    for (float i = 0. ; i < FIREWORKS ; i += 1.) {\n        col += firework(uv, i + 1., (i * BASE_PAUSE));\n    }\n    fragColor = vec4(col, 1.);\n}\n  `},{title:\"Party Concert Visuals\",author:\"Blackle Mori\",originalURL:\"https://www.shadertoy.com/view/WtscW4\",value:` \n\nfloat comp (vec3 p) {\n    p = asin(sin(p)*.9);\n    return length(p)-1.;\n}\n\nvec3 erot(vec3 p, vec3 ax, float ro) {\n    return mix(dot(p,ax)*ax,p,cos(ro))+sin(ro)*cross(ax,p);\n}\n\nfloat smin(float a, float b, float k) {\n    float h = max(0.,k-abs(b-a))/k;\n    return min(a,b)-h*h*h*k/6.;\n}\n\nvec4 wrot(vec4 p) {\n    return vec4(dot(p,vec4(1)), p.yzw + p.zwy - p.wyz - p.xxx)/2.;\n}\n\nfloat d1, d2, d3;\nfloat t;\nfloat lazors, doodad;\nvec3 p2;\nfloat bpm = 125.;\nfloat scene(vec3 p) {\n    p2 = erot(p, vec3(0,1,0), t);\n    p2 = erot(p2, vec3(0,0,1), t/3.);\n    p2 = erot(p2, vec3(1,0,0), t/5.);\n    float bpt = iTime/60.*bpm;\n        vec4 p4 = vec4(p2,0);\n        p4=mix(p4,wrot(p4),smoothstep(-.5,.5,sin(bpt/4.)));\n        p4 =abs(p4);\n        p4=mix(p4,wrot(p4),smoothstep(-.5,.5,sin(bpt)));\n    float fctr = smoothstep(-.5,.5,sin(bpt/2.));\n    float fctr2 = smoothstep(.9,1.,sin(bpt/16.));\n    doodad = length(max(abs(p4)-mix(0.05,0.07,fctr),0.)+mix(-0.1,.2,fctr))-mix(.15,.55,fctr*fctr)+fctr2;\n    /*\n        vec4 p4 = vec4(p2,0);\n        p4=wrot(p4);\n        p4 = abs(p4);\n        p4=mix(p4,wrot(p4),smoothstep(-.5,.5,sin(t)));\n        doodad = length(max(abs(p4)-0.07,0)+0.2)-.55;\n    }*/\n    p.x += asin(sin(t/80.)*.99)*80.;\n    lazors = length(asin(sin(erot(p,vec3(1,0,0),t*.2).yz*.5+1.))/.5)-.1;\n    d1 = comp(p);\n    d2 = comp(erot(p+5., normalize(vec3(1,3,4)),0.4));\n    d3 = comp(erot(p+10., normalize(vec3(3,2,1)),1.));\n    return min(doodad,min(lazors,.3-smin(smin(d1,d2,0.05),d3,0.05)));\n}\n\nvec3 norm(vec3 p) {\n    float precis = length(p) < 1. ? 0.005 : 0.01;\n    mat3 k = mat3(p,p,p)-mat3(precis);\n    return normalize(scene(p)-vec3(scene(k[0]),scene(k[1]),scene(k[2])));\n}\n\nvoid mainImage( out vec4 fragColor, in vec2 fragCoord )\n{\n    vec2 uv = (fragCoord-.5*iResolution.xy)/iResolution.y;\n    float bpt = iTime/60.*bpm;\n    float bp = mix(pow(sin(fract(bpt)*3.14/2.),20.)+floor(bpt), bpt,0.4);\n    t = bp;\n\t  vec3 cam = normalize(vec3(.8+sin(bp*3.14/4.)*.3,uv));\n    vec3 init = vec3(-1.5+sin(bp*3.14)*.2,0,0)+cam*.2;\n    init = erot(init,vec3(0,1,0),sin(bp*.2)*.4);\n    init = erot(init,vec3(0,0,1),cos(bp*.2)*.4);\n    cam = erot(cam,vec3(0,1,0),sin(bp*.2)*.4);\n    cam = erot(cam,vec3(0,0,1),cos(bp*.2)*.4);\n    vec3 p = init;\n    bool hit = false;\n    float atten = 1.;\n    float tlen = 0.;\n    float glo = 0.;\n    float dist;\n    float fog = 0.;\n    float dlglo = 0.;\n    bool trg = false;\n    for (int i = 0; i <80 && !hit; i++) {\n        dist = scene(p);\n        hit = dist*dist < 1e-6;\n        glo += .2/(1.+lazors*lazors*20.)*atten;\n        dlglo += .2/(1.+doodad*doodad*20.)*atten;\n        if (hit && ((sin(d3*45.)<-0.4 && (dist!=doodad )) || (dist==doodad && sin(pow(length(p2*p2*p2),.3)*120.)>.4 )) && dist != lazors) {\n            trg = trg || dist==doodad;\n            hit = false;\n            vec3 n = norm(p);\n            atten *= 1.-abs(dot(cam,n))*.98;\n            cam = reflect(cam,n);\n            dist = .1;\n        }\n        p += cam*dist;\n        tlen += dist;\n        fog += dist*atten/30.;\n    }\n    fog = smoothstep(0.,1.,fog);\n    bool lz = lazors == dist;\n    bool dl = doodad == dist;\n    vec3 fogcol = mix(vec3(0.5,0.8,1.2), vec3(0.4,0.6,0.9), length(uv));\n    vec3 n = norm(p);\n    vec3 r = reflect(cam,n);\n    float ss = smoothstep(-.3,0.3,scene(p+vec3(.3)))+.5;\n    float fact = length(sin(r*(dl?4.:3.))*.5+.5)/sqrt(3.)*.7+.3;\n    vec3 matcol = mix(vec3(0.9,0.4,0.3), vec3(0.3,0.4,0.8), smoothstep(-1.,1.,sin(d1*5.+iTime*2.)));\n    matcol = mix(matcol, vec3(0.5,0.4,1.0), smoothstep(0.,1.,sin(d2*5.+iTime*2.)));\n    if (dl) matcol = mix(vec3(1),matcol,0.1)*.2+0.1;\n    vec3 col = matcol*fact*ss + pow(fact,10.);\n    if (lz) col = vec3(4);\n    fragColor.xyz = col*atten + glo*glo + fogcol*glo;\n    fragColor.xyz = mix(fragColor.xyz, fogcol, fog);\n    if(!dl)fragColor.xyz = abs(erot(fragColor.xyz, normalize(sin(p*2.)),0.2*(1.-fog)));\n    if(!trg&&!dl)fragColor.xyz+=dlglo*dlglo*.1*vec3(0.4,0.6,0.9);\n    fragColor.xyz = sqrt(fragColor.xyz);\n    fragColor.xyz = smoothstep(vec3(0),vec3(1.2),fragColor.xyz);\n    fragColor.a = 1.0;\n}\n\n  `}];\nexport const __FramerMetadata__ = {\"exports\":{\"mainFunction\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"vertexShaderSource\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"shaderInputs\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"fragmentShaderSource\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./ShaderSource.map","/*\n * ShaderSource\n *\n * Learn More: https://www.framer.com/asset-urls\n */\n\nexport * from \"https://framerusercontent.com/modules/6tj2OZAcXlPErCTcSCDY/RekhsBiS0iszyZdEW86t/ShaderSource.js\"\n","// Welcome to Code in Framer\n// Get Started: https://www.framer.com/developers/\nimport{jsx as _jsx}from\"react/jsx-runtime\";import{useEffect,useRef}from\"react\";import{addPropertyControls,ControlType}from\"framer\";import*as THREE from\"three\";import{shaderInputs,mainFunction,fragmentShaderSource,vertexShaderSource}from\"https://framer.com/m/ShaderSource-3JJF.js\";/**\n * These annotations control how your component sizes\n * Learn more: https://www.framer.com/developers/#code-components-auto-sizing\n *\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight any-prefer-fixed\n * @framerIntrinsicWidth 700\n * @framerIntrinsicHeight 400\n */const fragmentShadersTitle=()=>{return fragmentShaderSource.map(e=>e.title).sort();};export default function Webgl_Shader_Component(props){const{shaderChoose,selectShader,customShader,speed,mouseInteraction,mouseOption,limitFPS}=props;const containerRef=useRef(null);const getFragmentSelectedData=shaderChoose===\"List\"?fragmentShaderSource.find(x=>x.title===selectShader):{title:customShader.title,value:customShader.fragment};useEffect(()=>{const container=containerRef?.current;if(!container)return;const scene=new THREE.Scene;const camera=new THREE.OrthographicCamera(-1,1,1,-1,-1,1);const renderer=new THREE.WebGLRenderer({alpha:true});renderer.domElement.setAttribute(\"role\",\"img\");renderer.domElement.setAttribute(\"aria-label\",`${getFragmentSelectedData.title||\"Untitled\"}`);renderer.domElement.setAttribute(\"aria-labelledby\",`${getFragmentSelectedData?.author||\"Unknown\"}`);container.appendChild(renderer.domElement);const geometry=new THREE.PlaneGeometry(2,2);const textureLoader=new THREE.TextureLoader;const material=new THREE.ShaderMaterial({uniforms:{iTime:{value:0},iResolution:{value:new THREE.Vector3},iMouse:{value:new THREE.Vector4},iChannel0:{value:shaderChoose===\"List\"&&customShader.textureUpload?null:textureLoader.load(customShader.textureUpload?.src)}},vertexShader:shaderChoose===\"List\"?vertexShaderSource:customShader.vertex,fragmentShader:shaderChoose===\"List\"?shaderInputs.concat(getFragmentSelectedData.value,mainFunction):customShader.inputs.concat(customShader.fragment,customShader.mainFunc),transparent:true});const mesh=new THREE.Mesh(geometry,material);scene.add(mesh);const resizeObserver=new ResizeObserver(entries=>{for(let entry of entries){const{width,height}=entry.contentRect;renderer.setSize(width,height);material.uniforms.iResolution.value.set(width,height);}});resizeObserver.observe(container);//mousemove interaction\nconst getCoords=obj=>{let x=0;let y=0;do{x+=obj.offsetLeft;y+=obj.offsetTop;}while(obj=obj.offsetParent)return{mX:x,mY:y};};const iMouseControl=e=>{const pos=getCoords(renderer.domElement);const mcx=(e.pageX-pos.mX)*renderer.domElement.width/renderer.domElement.offsetWidth;const mcy=renderer.domElement.height-(e.pageY-pos.mY)*renderer.domElement.height/renderer.domElement.offsetHeight;const x=mcx*mouseOption.mouseSpeed*.1;const y=mcy*mouseOption.mouseSpeed*.1;material.uniforms.iMouse.value.set(x,y,1.1,0);};const dragStart=ev=>{ev.preventDefault();renderer.domElement.setPointerCapture(ev.pointerId);};const dragEnd=ev=>{ev.preventDefault();renderer.domElement.releasePointerCapture(ev.pointerId);};const drag=ev=>{ev.preventDefault();renderer.domElement.hasPointerCapture(ev.pointerId)&&iMouseControl(ev);};const mouseMove=e=>{e.preventDefault();iMouseControl(e);};if(mouseInteraction){if(mouseOption.mouseDrag===\"Drag\"){renderer.domElement.addEventListener(\"pointerdown\",dragStart);renderer.domElement.addEventListener(\"pointerup\",dragEnd);renderer.domElement.addEventListener(\"pointermove\",drag);renderer.domElement.addEventListener(\"click\",mouseMove);}else{renderer.domElement.addEventListener(\"mousemove\",mouseMove);renderer.domElement.addEventListener(\"click\",mouseMove);}}// fps limit\nlet clock=new THREE.Clock;let delta=0;let interval=1/limitFPS;const animate=time=>{delta+=clock.getDelta();material.uniforms.iTime.value=time*.001*speed;if(delta>interval){renderer.render(scene,camera);delta=delta%interval;}requestAnimationFrame(animate);};requestAnimationFrame(animate);return()=>{while(scene.children.length>0){scene.remove(scene.children[0]);renderer.forceContextLoss();resizeObserver.disconnect();renderer.dispose();if(mouseInteraction){if(mouseOption.mouseDrag===\"Drag\"){renderer.domElement.removeEventListener(\"pointerdown\",dragStart);renderer.domElement.removeEventListener(\"pointerup\",dragEnd);renderer.domElement.removeEventListener(\"pointermove\",drag);}else{renderer.domElement.removeEventListener(\"mousemove\",mouseMove);}}container.removeChild(renderer.domElement);}};},[shaderChoose,customShader,selectShader,speed,mouseInteraction,mouseOption,limitFPS]);return /*#__PURE__*/_jsx(\"div\",{ref:containerRef,style:{width:\"100%\",height:\"100%\",overflow:\"hidden\"}});}Webgl_Shader_Component.displayName=\"Shaders\";addPropertyControls(Webgl_Shader_Component,{shaderChoose:{type:ControlType.Enum,title:\"Choose\",options:[\"List\",\"Custom\"],defaultValue:\"List\",displaySegmentedControl:true},selectShader:{type:ControlType.Enum,title:\" \",options:fragmentShadersTitle(),defaultValue:\"2D Clouds\",description:`Totally *${fragmentShaderSource.length}* Shaders from [Shadertoy](https://www.shadertoy.com/). Free to use.`,hidden:props=>props.shaderChoose!=\"List\"},customShader:{type:ControlType.Object,title:\" \",controls:{title:{type:ControlType.String,title:\"Title\",defaultValue:fragmentShaderSource[2].title},inputs:{type:ControlType.String,title:\"Inputs\",defaultValue:shaderInputs},vertex:{type:ControlType.String,title:\"Vertex\",defaultValue:vertexShaderSource},fragment:{type:ControlType.String,title:\"Fragment\",defaultValue:fragmentShaderSource[2].value,displayTextArea:true},textureUpload:{type:ControlType.ResponsiveImage,title:\"Texture\",description:\"Only in iChannel0 supported\"},mainFunc:{type:ControlType.String,title:\"Main Funtion\",defaultValue:mainFunction}},hidden:props=>props.shaderChoose!=\"Custom\"},speed:{type:ControlType.Number,defaultValue:1,min:.1,max:10,step:.1,title:\"Speed\",unit:\"s\"},mouseInteraction:{type:ControlType.Boolean,defaultValue:false,title:\"Mouse Interaction\",description:`Works only on supported Shaders`},mouseOption:{type:ControlType.Object,title:\"Mouse Option\",controls:{mouseDrag:{type:ControlType.Enum,title:\"Type\",options:[\"Drag\",\"Free\"],defaultValue:\"Drag\",displaySegmentedControl:true},mouseSpeed:{type:ControlType.Number,defaultValue:10,min:.1,max:10,step:.1,title:\"Mouse Speed\"}},hidden:props=>!props.mouseInteraction},limitFPS:{type:ControlType.Enum,title:\"FPS Limit\",options:[30,60,120,160],defaultValue:120,displaySegmentedControl:true,description:\"Limit FPS if there is any performance issue\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"Webgl_Shader_Component\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Webgl_Shader_Component.map"],"mappings":"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"}