Răsfoiți Sursa

Updated builds.

Mr.doob 5 ani în urmă
părinte
comite
52a6a1398f
3 a modificat fișierele cu 223 adăugiri și 229 ștergeri
  1. 1 4
      build/three.js
  2. 221 221
      build/three.min.js
  3. 1 4
      build/three.module.js

+ 1 - 4
build/three.js

@@ -48481,12 +48481,10 @@
 
 
 			var outputEncoding = renderer.outputEncoding;
 			var outputEncoding = renderer.outputEncoding;
 			var toneMapping = renderer.toneMapping;
 			var toneMapping = renderer.toneMapping;
-			var toneMappingExposure = renderer.toneMappingExposure;
 			var clearColor = renderer.getClearColor();
 			var clearColor = renderer.getClearColor();
 			var clearAlpha = renderer.getClearAlpha();
 			var clearAlpha = renderer.getClearAlpha();
 
 
-			renderer.toneMapping = LinearToneMapping;
-			renderer.toneMappingExposure = 1.0;
+			renderer.toneMapping = NoToneMapping;
 			renderer.outputEncoding = LinearEncoding;
 			renderer.outputEncoding = LinearEncoding;
 
 
 			var background = scene.background;
 			var background = scene.background;
@@ -48531,7 +48529,6 @@
 			}
 			}
 
 
 			renderer.toneMapping = toneMapping;
 			renderer.toneMapping = toneMapping;
-			renderer.toneMappingExposure = toneMappingExposure;
 			renderer.outputEncoding = outputEncoding;
 			renderer.outputEncoding = outputEncoding;
 			renderer.setClearColor( clearColor, clearAlpha );
 			renderer.setClearColor( clearColor, clearAlpha );
 
 

+ 221 - 221
build/three.min.js

@@ -6,7 +6,7 @@ a;this.texture.image.height=b;this.texture.generateMipmaps=void 0!==c.generateMi
 c){this.x=a||0;this.y=b||0;this.z=c||0}function M(){this.elements=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1];0<arguments.length&&console.error("THREE.Matrix4: the constructor no longer reads arguments. use .set() instead.")}function Ub(a,b,c,d){this._x=a||0;this._y=b||0;this._z=c||0;this._order=d||Ub.DefaultOrder}function Fe(){this.mask=1}function z(){Object.defineProperty(this,"id",{value:ij++});this.uuid=K.generateUUID();this.name="";this.type="Object3D";this.parent=null;this.children=[];this.up=z.DefaultUp.clone();
 c){this.x=a||0;this.y=b||0;this.z=c||0}function M(){this.elements=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1];0<arguments.length&&console.error("THREE.Matrix4: the constructor no longer reads arguments. use .set() instead.")}function Ub(a,b,c,d){this._x=a||0;this._y=b||0;this._z=c||0;this._order=d||Ub.DefaultOrder}function Fe(){this.mask=1}function z(){Object.defineProperty(this,"id",{value:ij++});this.uuid=K.generateUUID();this.name="";this.type="Object3D";this.parent=null;this.children=[];this.up=z.DefaultUp.clone();
 var a=new m,b=new Ub,c=new na,d=new m(1,1,1);b._onChange(function(){c.setFromEuler(b,!1)});c._onChange(function(){b.setFromQuaternion(c,void 0,!1)});Object.defineProperties(this,{position:{configurable:!0,enumerable:!0,value:a},rotation:{configurable:!0,enumerable:!0,value:b},quaternion:{configurable:!0,enumerable:!0,value:c},scale:{configurable:!0,enumerable:!0,value:d},modelViewMatrix:{value:new M},normalMatrix:{value:new xa}});this.matrix=new M;this.matrixWorld=new M;this.matrixAutoUpdate=z.DefaultMatrixAutoUpdate;
 var a=new m,b=new Ub,c=new na,d=new m(1,1,1);b._onChange(function(){c.setFromEuler(b,!1)});c._onChange(function(){b.setFromQuaternion(c,void 0,!1)});Object.defineProperties(this,{position:{configurable:!0,enumerable:!0,value:a},rotation:{configurable:!0,enumerable:!0,value:b},quaternion:{configurable:!0,enumerable:!0,value:c},scale:{configurable:!0,enumerable:!0,value:d},modelViewMatrix:{value:new M},normalMatrix:{value:new xa}});this.matrix=new M;this.matrixWorld=new M;this.matrixAutoUpdate=z.DefaultMatrixAutoUpdate;
 this.matrixWorldNeedsUpdate=!1;this.layers=new Fe;this.visible=!0;this.receiveShadow=this.castShadow=!1;this.frustumCulled=!0;this.renderOrder=0;this.userData={}}function xd(){z.call(this);this.type="Scene";this.overrideMaterial=this.fog=this.environment=this.background=null;this.autoUpdate=!0;"undefined"!==typeof __THREE_DEVTOOLS__&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}function Ta(a,b){this.min=void 0!==a?a:new m(Infinity,Infinity,Infinity);this.max=void 0!==
 this.matrixWorldNeedsUpdate=!1;this.layers=new Fe;this.visible=!0;this.receiveShadow=this.castShadow=!1;this.frustumCulled=!0;this.renderOrder=0;this.userData={}}function xd(){z.call(this);this.type="Scene";this.overrideMaterial=this.fog=this.environment=this.background=null;this.autoUpdate=!0;"undefined"!==typeof __THREE_DEVTOOLS__&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}function Ta(a,b){this.min=void 0!==a?a:new m(Infinity,Infinity,Infinity);this.max=void 0!==
-b?b:new m(-Infinity,-Infinity,-Infinity)}function bg(a,b,c,d,e){for(var f=0,g=a.length-3;f<=g;f+=3){Vb.fromArray(a,f);var h=e.x*Math.abs(Vb.x)+e.y*Math.abs(Vb.y)+e.z*Math.abs(Vb.z),l=b.dot(Vb),n=c.dot(Vb),t=d.dot(Vb);if(Math.max(-Math.max(l,n,t),Math.min(l,n,t))>h)return!1}return!0}function eb(a,b){this.center=void 0!==a?a:new m;this.radius=void 0!==b?b:-1}function Wb(a,b){this.origin=void 0!==a?a:new m;this.direction=void 0!==b?b:new m(0,0,-1)}function Ua(a,b){this.normal=void 0!==a?a:new m(1,0,
+b?b:new m(-Infinity,-Infinity,-Infinity)}function bg(a,b,c,d,e){for(var f=0,g=a.length-3;f<=g;f+=3){Vb.fromArray(a,f);var h=e.x*Math.abs(Vb.x)+e.y*Math.abs(Vb.y)+e.z*Math.abs(Vb.z),l=b.dot(Vb),n=c.dot(Vb),q=d.dot(Vb);if(Math.max(-Math.max(l,n,q),Math.min(l,n,q))>h)return!1}return!0}function eb(a,b){this.center=void 0!==a?a:new m;this.radius=void 0!==b?b:-1}function Wb(a,b){this.origin=void 0!==a?a:new m;this.direction=void 0!==b?b:new m(0,0,-1)}function Ua(a,b){this.normal=void 0!==a?a:new m(1,0,
 0);this.constant=void 0!==b?b:0}function wa(a,b,c){this.a=void 0!==a?a:new m;this.b=void 0!==b?b:new m;this.c=void 0!==c?c:new m}function D(a,b,c){return void 0===b&&void 0===c?this.set(a):this.setRGB(a,b,c)}function cg(a,b,c){0>c&&(c+=1);1<c&&--c;return c<1/6?a+6*(b-a)*c:.5>c?b:c<2/3?a+6*(b-a)*(2/3-c):a}function dg(a){return.04045>a?.0773993808*a:Math.pow(.9478672986*a+.0521327014,2.4)}function eg(a){return.0031308>a?12.92*a:1.055*Math.pow(a,.41666)-.055}function zc(a,b,c,d,e,f){this.a=a;this.b=
 0);this.constant=void 0!==b?b:0}function wa(a,b,c){this.a=void 0!==a?a:new m;this.b=void 0!==b?b:new m;this.c=void 0!==c?c:new m}function D(a,b,c){return void 0===b&&void 0===c?this.set(a):this.setRGB(a,b,c)}function cg(a,b,c){0>c&&(c+=1);1<c&&--c;return c<1/6?a+6*(b-a)*c:.5>c?b:c<2/3?a+6*(b-a)*(2/3-c):a}function dg(a){return.04045>a?.0773993808*a:Math.pow(.9478672986*a+.0521327014,2.4)}function eg(a){return.0031308>a?12.92*a:1.055*Math.pow(a,.41666)-.055}function zc(a,b,c,d,e,f){this.a=a;this.b=
 b;this.c=c;this.normal=d&&d.isVector3?d:new m;this.vertexNormals=Array.isArray(d)?d:[];this.color=e&&e.isColor?e:new D;this.vertexColors=Array.isArray(e)?e:[];this.materialIndex=void 0!==f?f:0}function G(){Object.defineProperty(this,"id",{value:jj++});this.uuid=K.generateUUID();this.name="";this.type="Material";this.fog=!0;this.blending=1;this.side=0;this.vertexColors=this.flatShading=!1;this.opacity=1;this.transparent=!1;this.blendSrc=204;this.blendDst=205;this.blendEquation=100;this.blendEquationAlpha=
 b;this.c=c;this.normal=d&&d.isVector3?d:new m;this.vertexNormals=Array.isArray(d)?d:[];this.color=e&&e.isColor?e:new D;this.vertexColors=Array.isArray(e)?e:[];this.materialIndex=void 0!==f?f:0}function G(){Object.defineProperty(this,"id",{value:jj++});this.uuid=K.generateUUID();this.name="";this.type="Material";this.fog=!0;this.blending=1;this.side=0;this.vertexColors=this.flatShading=!1;this.opacity=1;this.transparent=!1;this.blendSrc=204;this.blendDst=205;this.blendEquation=100;this.blendEquationAlpha=
 this.blendDstAlpha=this.blendSrcAlpha=null;this.depthFunc=3;this.depthWrite=this.depthTest=!0;this.stencilWriteMask=255;this.stencilFunc=519;this.stencilRef=0;this.stencilFuncMask=255;this.stencilZPass=this.stencilZFail=this.stencilFail=7680;this.stencilWrite=!1;this.clippingPlanes=null;this.clipShadows=this.clipIntersection=!1;this.shadowSide=null;this.colorWrite=!0;this.precision=null;this.polygonOffset=!1;this.polygonOffsetUnits=this.polygonOffsetFactor=0;this.dithering=!1;this.alphaTest=0;this.premultipliedAlpha=
 this.blendDstAlpha=this.blendSrcAlpha=null;this.depthFunc=3;this.depthWrite=this.depthTest=!0;this.stencilWriteMask=255;this.stencilFunc=519;this.stencilRef=0;this.stencilFuncMask=255;this.stencilZPass=this.stencilZFail=this.stencilFail=7680;this.stencilWrite=!1;this.clippingPlanes=null;this.clipShadows=this.clipIntersection=!1;this.shadowSide=null;this.colorWrite=!0;this.precision=null;this.polygonOffset=!1;this.polygonOffsetUnits=this.polygonOffsetFactor=0;this.dithering=!1;this.alphaTest=0;this.premultipliedAlpha=
@@ -14,39 +14,39 @@ this.blendDstAlpha=this.blendSrcAlpha=null;this.depthFunc=3;this.depthWrite=this
 function H(a,b,c){if(Array.isArray(a))throw new TypeError("THREE.BufferAttribute: array should be a Typed Array.");this.name="";this.array=a;this.itemSize=b;this.count=void 0!==a?a.length/b:0;this.normalized=!0===c;this.usage=35044;this.updateRange={offset:0,count:-1};this.version=0}function yd(a,b,c){H.call(this,new Int8Array(a),b,c)}function zd(a,b,c){H.call(this,new Uint8Array(a),b,c)}function Ad(a,b,c){H.call(this,new Uint8ClampedArray(a),b,c)}function Bd(a,b,c){H.call(this,new Int16Array(a),
 function H(a,b,c){if(Array.isArray(a))throw new TypeError("THREE.BufferAttribute: array should be a Typed Array.");this.name="";this.array=a;this.itemSize=b;this.count=void 0!==a?a.length/b:0;this.normalized=!0===c;this.usage=35044;this.updateRange={offset:0,count:-1};this.version=0}function yd(a,b,c){H.call(this,new Int8Array(a),b,c)}function zd(a,b,c){H.call(this,new Uint8Array(a),b,c)}function Ad(a,b,c){H.call(this,new Uint8ClampedArray(a),b,c)}function Bd(a,b,c){H.call(this,new Int16Array(a),
 b,c)}function Xb(a,b,c){H.call(this,new Uint16Array(a),b,c)}function Cd(a,b,c){H.call(this,new Int32Array(a),b,c)}function Yb(a,b,c){H.call(this,new Uint32Array(a),b,c)}function B(a,b,c){H.call(this,new Float32Array(a),b,c)}function Dd(a,b,c){H.call(this,new Float64Array(a),b,c)}function vh(){this.vertices=[];this.normals=[];this.colors=[];this.uvs=[];this.uvs2=[];this.groups=[];this.morphTargets={};this.skinWeights=[];this.skinIndices=[];this.boundingSphere=this.boundingBox=null;this.groupsNeedUpdate=
 b,c)}function Xb(a,b,c){H.call(this,new Uint16Array(a),b,c)}function Cd(a,b,c){H.call(this,new Int32Array(a),b,c)}function Yb(a,b,c){H.call(this,new Uint32Array(a),b,c)}function B(a,b,c){H.call(this,new Float32Array(a),b,c)}function Dd(a,b,c){H.call(this,new Float64Array(a),b,c)}function vh(){this.vertices=[];this.normals=[];this.colors=[];this.uvs=[];this.uvs2=[];this.groups=[];this.morphTargets={};this.skinWeights=[];this.skinIndices=[];this.boundingSphere=this.boundingBox=null;this.groupsNeedUpdate=
 this.uvsNeedUpdate=this.colorsNeedUpdate=this.normalsNeedUpdate=this.verticesNeedUpdate=!1}function wh(a){if(0===a.length)return-Infinity;for(var b=a[0],c=1,d=a.length;c<d;++c)a[c]>b&&(b=a[c]);return b}function F(){Object.defineProperty(this,"id",{value:kj+=2});this.uuid=K.generateUUID();this.name="";this.type="BufferGeometry";this.index=null;this.attributes={};this.morphAttributes={};this.morphTargetsRelative=!1;this.groups=[];this.boundingSphere=this.boundingBox=null;this.drawRange={start:0,count:Infinity};
 this.uvsNeedUpdate=this.colorsNeedUpdate=this.normalsNeedUpdate=this.verticesNeedUpdate=!1}function wh(a){if(0===a.length)return-Infinity;for(var b=a[0],c=1,d=a.length;c<d;++c)a[c]>b&&(b=a[c]);return b}function F(){Object.defineProperty(this,"id",{value:kj+=2});this.uuid=K.generateUUID();this.name="";this.type="BufferGeometry";this.index=null;this.attributes={};this.morphAttributes={};this.morphTargetsRelative=!1;this.groups=[];this.boundingSphere=this.boundingBox=null;this.drawRange={start:0,count:Infinity};
-this.userData={}}function X(a,b){z.call(this);this.type="Mesh";this.geometry=void 0!==a?a:new F;this.material=void 0!==b?b:new Oa;this.updateMorphTargets()}function xh(a,b,c,d,e,f,g,h){if(null===(1===b.side?d.intersectTriangle(g,f,e,!0,h):d.intersectTriangle(e,f,g,2!==b.side,h)))return null;Ge.copy(h);Ge.applyMatrix4(a.matrixWorld);b=c.ray.origin.distanceTo(Ge);return b<c.near||b>c.far?null:{distance:b,point:Ge.clone(),object:a}}function He(a,b,c,d,e,f,g,h,l,n,t,p){Cb.fromBufferAttribute(e,n);Db.fromBufferAttribute(e,
-t);Eb.fromBufferAttribute(e,p);e=a.morphTargetInfluences;if(b.morphTargets&&f&&e){Ie.set(0,0,0);Je.set(0,0,0);Ke.set(0,0,0);for(var v=0,r=f.length;v<r;v++){var k=e[v],u=f[v];0!==k&&(fg.fromBufferAttribute(u,n),gg.fromBufferAttribute(u,t),hg.fromBufferAttribute(u,p),g?(Ie.addScaledVector(fg,k),Je.addScaledVector(gg,k),Ke.addScaledVector(hg,k)):(Ie.addScaledVector(fg.sub(Cb),k),Je.addScaledVector(gg.sub(Db),k),Ke.addScaledVector(hg.sub(Eb),k)))}Cb.add(Ie);Db.add(Je);Eb.add(Ke)}a.isSkinnedMesh&&(a.boneTransform(n,
-Cb),a.boneTransform(t,Db),a.boneTransform(p,Eb));if(a=xh(a,b,c,d,Cb,Db,Eb,Ed))h&&(Ac.fromBufferAttribute(h,n),Bc.fromBufferAttribute(h,t),Cc.fromBufferAttribute(h,p),a.uv=wa.getUV(Ed,Cb,Db,Eb,Ac,Bc,Cc,new w)),l&&(Ac.fromBufferAttribute(l,n),Bc.fromBufferAttribute(l,t),Cc.fromBufferAttribute(l,p),a.uv2=wa.getUV(Ed,Cb,Db,Eb,Ac,Bc,Cc,new w)),h=new zc(n,t,p),wa.getNormal(Cb,Db,Eb,h.normal),a.face=h;return a}function L(){Object.defineProperty(this,"id",{value:lj+=2});this.uuid=K.generateUUID();this.name=
+this.userData={}}function X(a,b){z.call(this);this.type="Mesh";this.geometry=void 0!==a?a:new F;this.material=void 0!==b?b:new Oa;this.updateMorphTargets()}function xh(a,b,c,d,e,f,g,h){if(null===(1===b.side?d.intersectTriangle(g,f,e,!0,h):d.intersectTriangle(e,f,g,2!==b.side,h)))return null;Ge.copy(h);Ge.applyMatrix4(a.matrixWorld);b=c.ray.origin.distanceTo(Ge);return b<c.near||b>c.far?null:{distance:b,point:Ge.clone(),object:a}}function He(a,b,c,d,e,f,g,h,l,n,q,p){Cb.fromBufferAttribute(e,n);Db.fromBufferAttribute(e,
+q);Eb.fromBufferAttribute(e,p);e=a.morphTargetInfluences;if(b.morphTargets&&f&&e){Ie.set(0,0,0);Je.set(0,0,0);Ke.set(0,0,0);for(var v=0,t=f.length;v<t;v++){var k=e[v],u=f[v];0!==k&&(fg.fromBufferAttribute(u,n),gg.fromBufferAttribute(u,q),hg.fromBufferAttribute(u,p),g?(Ie.addScaledVector(fg,k),Je.addScaledVector(gg,k),Ke.addScaledVector(hg,k)):(Ie.addScaledVector(fg.sub(Cb),k),Je.addScaledVector(gg.sub(Db),k),Ke.addScaledVector(hg.sub(Eb),k)))}Cb.add(Ie);Db.add(Je);Eb.add(Ke)}a.isSkinnedMesh&&(a.boneTransform(n,
+Cb),a.boneTransform(q,Db),a.boneTransform(p,Eb));if(a=xh(a,b,c,d,Cb,Db,Eb,Ed))h&&(Ac.fromBufferAttribute(h,n),Bc.fromBufferAttribute(h,q),Cc.fromBufferAttribute(h,p),a.uv=wa.getUV(Ed,Cb,Db,Eb,Ac,Bc,Cc,new w)),l&&(Ac.fromBufferAttribute(l,n),Bc.fromBufferAttribute(l,q),Cc.fromBufferAttribute(l,p),a.uv2=wa.getUV(Ed,Cb,Db,Eb,Ac,Bc,Cc,new w)),h=new zc(n,q,p),wa.getNormal(Cb,Db,Eb,h.normal),a.face=h;return a}function L(){Object.defineProperty(this,"id",{value:lj+=2});this.uuid=K.generateUUID();this.name=
 "";this.type="Geometry";this.vertices=[];this.colors=[];this.faces=[];this.faceVertexUvs=[[]];this.morphTargets=[];this.morphNormals=[];this.skinWeights=[];this.skinIndices=[];this.lineDistances=[];this.boundingSphere=this.boundingBox=null;this.groupsNeedUpdate=this.lineDistancesNeedUpdate=this.colorsNeedUpdate=this.normalsNeedUpdate=this.uvsNeedUpdate=this.verticesNeedUpdate=this.elementsNeedUpdate=!1}function Dc(a){var b={},c;for(c in a){b[c]={};for(var d in a[c]){var e=a[c][d];e&&(e.isColor||e.isMatrix3||
 "";this.type="Geometry";this.vertices=[];this.colors=[];this.faces=[];this.faceVertexUvs=[[]];this.morphTargets=[];this.morphNormals=[];this.skinWeights=[];this.skinIndices=[];this.lineDistances=[];this.boundingSphere=this.boundingBox=null;this.groupsNeedUpdate=this.lineDistancesNeedUpdate=this.colorsNeedUpdate=this.normalsNeedUpdate=this.uvsNeedUpdate=this.verticesNeedUpdate=this.elementsNeedUpdate=!1}function Dc(a){var b={},c;for(c in a){b[c]={};for(var d in a[c]){var e=a[c][d];e&&(e.isColor||e.isMatrix3||
 e.isMatrix4||e.isVector2||e.isVector3||e.isVector4||e.isTexture)?b[c][d]=e.clone():Array.isArray(e)?b[c][d]=e.slice():b[c][d]=e}}return b}function va(a){for(var b={},c=0;c<a.length;c++){var d=Dc(a[c]),e;for(e in d)b[e]=d[e]}return b}function Ba(a){G.call(this);this.type="ShaderMaterial";this.defines={};this.uniforms={};this.vertexShader="void main() {\n\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n}";this.fragmentShader="void main() {\n\tgl_FragColor = vec4( 1.0, 0.0, 0.0, 1.0 );\n}";
 e.isMatrix4||e.isVector2||e.isVector3||e.isVector4||e.isTexture)?b[c][d]=e.clone():Array.isArray(e)?b[c][d]=e.slice():b[c][d]=e}}return b}function va(a){for(var b={},c=0;c<a.length;c++){var d=Dc(a[c]),e;for(e in d)b[e]=d[e]}return b}function Ba(a){G.call(this);this.type="ShaderMaterial";this.defines={};this.uniforms={};this.vertexShader="void main() {\n\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n}";this.fragmentShader="void main() {\n\tgl_FragColor = vec4( 1.0, 0.0, 0.0, 1.0 );\n}";
 this.linewidth=1;this.wireframe=!1;this.wireframeLinewidth=1;this.morphNormals=this.morphTargets=this.skinning=this.clipping=this.lights=this.fog=!1;this.extensions={derivatives:!1,fragDepth:!1,drawBuffers:!1,shaderTextureLOD:!1};this.defaultAttributeValues={color:[1,1,1],uv:[0,0],uv2:[0,0]};this.index0AttributeName=void 0;this.uniformsNeedUpdate=!1;void 0!==a&&(void 0!==a.attributes&&console.error("THREE.ShaderMaterial: attributes should now be defined in THREE.BufferGeometry instead."),this.setValues(a))}
 this.linewidth=1;this.wireframe=!1;this.wireframeLinewidth=1;this.morphNormals=this.morphTargets=this.skinning=this.clipping=this.lights=this.fog=!1;this.extensions={derivatives:!1,fragDepth:!1,drawBuffers:!1,shaderTextureLOD:!1};this.defaultAttributeValues={color:[1,1,1],uv:[0,0],uv2:[0,0]};this.index0AttributeName=void 0;this.uniformsNeedUpdate=!1;void 0!==a&&(void 0!==a.attributes&&console.error("THREE.ShaderMaterial: attributes should now be defined in THREE.BufferGeometry instead."),this.setValues(a))}
 function fb(){z.call(this);this.type="Camera";this.matrixWorldInverse=new M;this.projectionMatrix=new M;this.projectionMatrixInverse=new M}function O(a,b,c,d){fb.call(this);this.type="PerspectiveCamera";this.fov=void 0!==a?a:50;this.zoom=1;this.near=void 0!==c?c:.1;this.far=void 0!==d?d:2E3;this.focus=10;this.aspect=void 0!==b?b:1;this.view=null;this.filmGauge=35;this.filmOffset=0;this.updateProjectionMatrix()}function Ec(a,b,c){z.call(this);this.type="CubeCamera";if(!0!==c.isWebGLCubeRenderTarget)console.error("THREE.CubeCamera: The constructor now expects an instance of WebGLCubeRenderTarget as third parameter.");
 function fb(){z.call(this);this.type="Camera";this.matrixWorldInverse=new M;this.projectionMatrix=new M;this.projectionMatrixInverse=new M}function O(a,b,c,d){fb.call(this);this.type="PerspectiveCamera";this.fov=void 0!==a?a:50;this.zoom=1;this.near=void 0!==c?c:.1;this.far=void 0!==d?d:2E3;this.focus=10;this.aspect=void 0!==b?b:1;this.view=null;this.filmGauge=35;this.filmOffset=0;this.updateProjectionMatrix()}function Ec(a,b,c){z.call(this);this.type="CubeCamera";if(!0!==c.isWebGLCubeRenderTarget)console.error("THREE.CubeCamera: The constructor now expects an instance of WebGLCubeRenderTarget as third parameter.");
 else{this.renderTarget=c;var d=new O(90,1,a,b);d.layers=this.layers;d.up.set(0,-1,0);d.lookAt(new m(1,0,0));this.add(d);var e=new O(90,1,a,b);e.layers=this.layers;e.up.set(0,-1,0);e.lookAt(new m(-1,0,0));this.add(e);var f=new O(90,1,a,b);f.layers=this.layers;f.up.set(0,0,1);f.lookAt(new m(0,1,0));this.add(f);var g=new O(90,1,a,b);g.layers=this.layers;g.up.set(0,0,-1);g.lookAt(new m(0,-1,0));this.add(g);var h=new O(90,1,a,b);h.layers=this.layers;h.up.set(0,-1,0);h.lookAt(new m(0,0,1));this.add(h);
 else{this.renderTarget=c;var d=new O(90,1,a,b);d.layers=this.layers;d.up.set(0,-1,0);d.lookAt(new m(1,0,0));this.add(d);var e=new O(90,1,a,b);e.layers=this.layers;e.up.set(0,-1,0);e.lookAt(new m(-1,0,0));this.add(e);var f=new O(90,1,a,b);f.layers=this.layers;f.up.set(0,0,1);f.lookAt(new m(0,1,0));this.add(f);var g=new O(90,1,a,b);g.layers=this.layers;g.up.set(0,0,-1);g.lookAt(new m(0,-1,0));this.add(g);var h=new O(90,1,a,b);h.layers=this.layers;h.up.set(0,-1,0);h.lookAt(new m(0,0,1));this.add(h);
-var l=new O(90,1,a,b);l.layers=this.layers;l.up.set(0,-1,0);l.lookAt(new m(0,0,-1));this.add(l);this.update=function(a,b){null===this.parent&&this.updateMatrixWorld();var n=a.xr.enabled,t=a.getRenderTarget();a.xr.enabled=!1;var r=c.texture.generateMipmaps;c.texture.generateMipmaps=!1;a.setRenderTarget(c,0);a.render(b,d);a.setRenderTarget(c,1);a.render(b,e);a.setRenderTarget(c,2);a.render(b,f);a.setRenderTarget(c,3);a.render(b,g);a.setRenderTarget(c,4);a.render(b,h);c.texture.generateMipmaps=r;a.setRenderTarget(c,
-5);a.render(b,l);a.setRenderTarget(t);a.xr.enabled=n};this.clear=function(a,b,d,e){for(var f=a.getRenderTarget(),g=0;6>g;g++)a.setRenderTarget(c,g),a.clear(b,d,e);a.setRenderTarget(f)}}}function Zb(a,b,c){Number.isInteger(b)&&(console.warn("THREE.WebGLCubeRenderTarget: constructor signature is now WebGLCubeRenderTarget( size, options )"),b=c);Ha.call(this,a,a,b)}function $b(a,b,c,d,e,f,g,h,l,n,t,p){W.call(this,null,f,g,h,l,n,d,e,t,p);this.image={data:a||null,width:b||1,height:c||1};this.magFilter=
+var l=new O(90,1,a,b);l.layers=this.layers;l.up.set(0,-1,0);l.lookAt(new m(0,0,-1));this.add(l);this.update=function(a,b){null===this.parent&&this.updateMatrixWorld();var n=a.xr.enabled,q=a.getRenderTarget();a.xr.enabled=!1;var t=c.texture.generateMipmaps;c.texture.generateMipmaps=!1;a.setRenderTarget(c,0);a.render(b,d);a.setRenderTarget(c,1);a.render(b,e);a.setRenderTarget(c,2);a.render(b,f);a.setRenderTarget(c,3);a.render(b,g);a.setRenderTarget(c,4);a.render(b,h);c.texture.generateMipmaps=t;a.setRenderTarget(c,
+5);a.render(b,l);a.setRenderTarget(q);a.xr.enabled=n};this.clear=function(a,b,d,e){for(var f=a.getRenderTarget(),g=0;6>g;g++)a.setRenderTarget(c,g),a.clear(b,d,e);a.setRenderTarget(f)}}}function Zb(a,b,c){Number.isInteger(b)&&(console.warn("THREE.WebGLCubeRenderTarget: constructor signature is now WebGLCubeRenderTarget( size, options )"),b=c);Ha.call(this,a,a,b)}function $b(a,b,c,d,e,f,g,h,l,n,q,p){W.call(this,null,f,g,h,l,n,d,e,q,p);this.image={data:a||null,width:b||1,height:c||1};this.magFilter=
 void 0!==l?l:1003;this.minFilter=void 0!==n?n:1003;this.flipY=this.generateMipmaps=!1;this.unpackAlignment=1;this.needsUpdate=!0}function Fc(a,b,c,d,e,f){this.planes=[void 0!==a?a:new Ua,void 0!==b?b:new Ua,void 0!==c?c:new Ua,void 0!==d?d:new Ua,void 0!==e?e:new Ua,void 0!==f?f:new Ua]}function yh(){function a(e,f){!1!==c&&(d(e,f),b.requestAnimationFrame(a))}var b=null,c=!1,d=null;return{start:function(){!0!==c&&null!==d&&(b.requestAnimationFrame(a),c=!0)},stop:function(){c=!1},setAnimationLoop:function(a){d=
 void 0!==l?l:1003;this.minFilter=void 0!==n?n:1003;this.flipY=this.generateMipmaps=!1;this.unpackAlignment=1;this.needsUpdate=!0}function Fc(a,b,c,d,e,f){this.planes=[void 0!==a?a:new Ua,void 0!==b?b:new Ua,void 0!==c?c:new Ua,void 0!==d?d:new Ua,void 0!==e?e:new Ua,void 0!==f?f:new Ua]}function yh(){function a(e,f){!1!==c&&(d(e,f),b.requestAnimationFrame(a))}var b=null,c=!1,d=null;return{start:function(){!0!==c&&null!==d&&(b.requestAnimationFrame(a),c=!0)},stop:function(){c=!1},setAnimationLoop:function(a){d=
 a},setContext:function(a){b=a}}}function mj(a,b){function c(b,c){var d=b.array,e=b.usage,f=a.createBuffer();a.bindBuffer(c,f);a.bufferData(c,d,e);b.onUploadCallback();c=5126;d instanceof Float32Array?c=5126:d instanceof Float64Array?console.warn("THREE.WebGLAttributes: Unsupported data buffer format: Float64Array."):d instanceof Uint16Array?c=5123:d instanceof Int16Array?c=5122:d instanceof Uint32Array?c=5125:d instanceof Int32Array?c=5124:d instanceof Int8Array?c=5120:d instanceof Uint8Array&&(c=
 a},setContext:function(a){b=a}}}function mj(a,b){function c(b,c){var d=b.array,e=b.usage,f=a.createBuffer();a.bindBuffer(c,f);a.bufferData(c,d,e);b.onUploadCallback();c=5126;d instanceof Float32Array?c=5126:d instanceof Float64Array?console.warn("THREE.WebGLAttributes: Unsupported data buffer format: Float64Array."):d instanceof Uint16Array?c=5123:d instanceof Int16Array?c=5122:d instanceof Uint32Array?c=5125:d instanceof Int32Array?c=5124:d instanceof Int8Array?c=5120:d instanceof Uint8Array&&(c=
 5121);return{buffer:f,type:c,bytesPerElement:d.BYTES_PER_ELEMENT,version:b.version}}var d=b.isWebGL2,e=new WeakMap;return{get:function(a){a.isInterleavedBufferAttribute&&(a=a.data);return e.get(a)},remove:function(b){b.isInterleavedBufferAttribute&&(b=b.data);var c=e.get(b);c&&(a.deleteBuffer(c.buffer),e.delete(b))},update:function(b,g){b.isInterleavedBufferAttribute&&(b=b.data);var f=e.get(b);if(void 0===f)e.set(b,c(b,g));else if(f.version<b.version){var l=b.array,n=b.updateRange;a.bindBuffer(g,
 5121);return{buffer:f,type:c,bytesPerElement:d.BYTES_PER_ELEMENT,version:b.version}}var d=b.isWebGL2,e=new WeakMap;return{get:function(a){a.isInterleavedBufferAttribute&&(a=a.data);return e.get(a)},remove:function(b){b.isInterleavedBufferAttribute&&(b=b.data);var c=e.get(b);c&&(a.deleteBuffer(c.buffer),e.delete(b))},update:function(b,g){b.isInterleavedBufferAttribute&&(b=b.data);var f=e.get(b);if(void 0===f)e.set(b,c(b,g));else if(f.version<b.version){var l=b.array,n=b.updateRange;a.bindBuffer(g,
 f.buffer);-1===n.count?a.bufferSubData(g,0,l):(d?a.bufferSubData(g,n.offset*l.BYTES_PER_ELEMENT,l,n.offset,n.count):a.bufferSubData(g,n.offset*l.BYTES_PER_ELEMENT,l.subarray(n.offset,n.offset+n.count)),n.count=-1);f.version=b.version}}}}function Fd(a,b,c,d){L.call(this);this.type="PlaneGeometry";this.parameters={width:a,height:b,widthSegments:c,heightSegments:d};this.fromBufferGeometry(new ac(a,b,c,d));this.mergeVertices()}function ac(a,b,c,d){F.call(this);this.type="PlaneBufferGeometry";this.parameters=
 f.buffer);-1===n.count?a.bufferSubData(g,0,l):(d?a.bufferSubData(g,n.offset*l.BYTES_PER_ELEMENT,l,n.offset,n.count):a.bufferSubData(g,n.offset*l.BYTES_PER_ELEMENT,l.subarray(n.offset,n.offset+n.count)),n.count=-1);f.version=b.version}}}}function Fd(a,b,c,d){L.call(this);this.type="PlaneGeometry";this.parameters={width:a,height:b,widthSegments:c,heightSegments:d};this.fromBufferGeometry(new ac(a,b,c,d));this.mergeVertices()}function ac(a,b,c,d){F.call(this);this.type="PlaneBufferGeometry";this.parameters=
-{width:a,height:b,widthSegments:c,heightSegments:d};a=a||1;b=b||1;var e=a/2,f=b/2;c=Math.floor(c)||1;d=Math.floor(d)||1;var g=c+1,h=d+1,l=a/c,n=b/d;b=[];a=[];for(var t=[],p=[],k=0;k<h;k++)for(var r=k*n-f,q=0;q<g;q++)a.push(q*l-e,-r,0),t.push(0,0,1),p.push(q/c),p.push(1-k/d);for(e=0;e<d;e++)for(f=0;f<c;f++)h=f+g*(e+1),l=f+1+g*(e+1),n=f+1+g*e,b.push(f+g*e,h,n),b.push(h,l,n);this.setIndex(b);this.setAttribute("position",new B(a,3));this.setAttribute("normal",new B(t,3));this.setAttribute("uv",new B(p,
-2))}function nj(a,b,c,d){function e(a,c){b.buffers.color.setClear(a.r,a.g,a.b,c,d)}var f=new D(0),g=0,h,l,n=null,t=0,p=null;return{getClearColor:function(){return f},setClearColor:function(a,b){f.set(a);g=void 0!==b?b:1;e(f,g)},getClearAlpha:function(){return g},setClearAlpha:function(a){g=a;e(f,g)},render:function(b,d,k,u){d=!0===d.isScene?d.background:null;k=a.xr;(k=k.getSession&&k.getSession())&&"additive"===k.environmentBlendMode&&(d=null);null===d?e(f,g):d&&d.isColor&&(e(d,1),u=!0);(a.autoClear||
+{width:a,height:b,widthSegments:c,heightSegments:d};a=a||1;b=b||1;var e=a/2,f=b/2;c=Math.floor(c)||1;d=Math.floor(d)||1;var g=c+1,h=d+1,l=a/c,n=b/d;b=[];a=[];for(var q=[],p=[],k=0;k<h;k++)for(var t=k*n-f,r=0;r<g;r++)a.push(r*l-e,-t,0),q.push(0,0,1),p.push(r/c),p.push(1-k/d);for(e=0;e<d;e++)for(f=0;f<c;f++)h=f+g*(e+1),l=f+1+g*(e+1),n=f+1+g*e,b.push(f+g*e,h,n),b.push(h,l,n);this.setIndex(b);this.setAttribute("position",new B(a,3));this.setAttribute("normal",new B(q,3));this.setAttribute("uv",new B(p,
+2))}function nj(a,b,c,d){function e(a,c){b.buffers.color.setClear(a.r,a.g,a.b,c,d)}var f=new D(0),g=0,h,l,n=null,q=0,p=null;return{getClearColor:function(){return f},setClearColor:function(a,b){f.set(a);g=void 0!==b?b:1;e(f,g)},getClearAlpha:function(){return g},setClearAlpha:function(a){g=a;e(f,g)},render:function(b,d,k,u){d=!0===d.isScene?d.background:null;k=a.xr;(k=k.getSession&&k.getSession())&&"additive"===k.environmentBlendMode&&(d=null);null===d?e(f,g):d&&d.isColor&&(e(d,1),u=!0);(a.autoClear||
 u)&&a.clear(a.autoClearColor,a.autoClearDepth,a.autoClearStencil);if(d&&(d.isCubeTexture||d.isWebGLCubeRenderTarget||306===d.mapping)){void 0===l&&(l=new X(new Gd(1,1,1),new Ba({name:"BackgroundCubeMaterial",uniforms:Dc(gb.cube.uniforms),vertexShader:gb.cube.vertexShader,fragmentShader:gb.cube.fragmentShader,side:1,depthTest:!1,depthWrite:!1,fog:!1})),l.geometry.deleteAttribute("normal"),l.geometry.deleteAttribute("uv"),l.onBeforeRender=function(a,b,c){this.matrixWorld.copyPosition(c.matrixWorld)},
 u)&&a.clear(a.autoClearColor,a.autoClearDepth,a.autoClearStencil);if(d&&(d.isCubeTexture||d.isWebGLCubeRenderTarget||306===d.mapping)){void 0===l&&(l=new X(new Gd(1,1,1),new Ba({name:"BackgroundCubeMaterial",uniforms:Dc(gb.cube.uniforms),vertexShader:gb.cube.vertexShader,fragmentShader:gb.cube.fragmentShader,side:1,depthTest:!1,depthWrite:!1,fog:!1})),l.geometry.deleteAttribute("normal"),l.geometry.deleteAttribute("uv"),l.onBeforeRender=function(a,b,c){this.matrixWorld.copyPosition(c.matrixWorld)},
-Object.defineProperty(l.material,"envMap",{get:function(){return this.uniforms.envMap.value}}),c.update(l));u=d.isWebGLCubeRenderTarget?d.texture:d;l.material.uniforms.envMap.value=u;l.material.uniforms.flipEnvMap.value=u.isCubeTexture?-1:1;if(n!==d||t!==u.version||p!==a.toneMapping)l.material.needsUpdate=!0,n=d,t=u.version,p=a.toneMapping;b.unshift(l,l.geometry,l.material,0,0,null)}else if(d&&d.isTexture){void 0===h&&(h=new X(new ac(2,2),new Ba({name:"BackgroundMaterial",uniforms:Dc(gb.background.uniforms),
-vertexShader:gb.background.vertexShader,fragmentShader:gb.background.fragmentShader,side:0,depthTest:!1,depthWrite:!1,fog:!1})),h.geometry.deleteAttribute("normal"),Object.defineProperty(h.material,"map",{get:function(){return this.uniforms.t2D.value}}),c.update(h));h.material.uniforms.t2D.value=d;!0===d.matrixAutoUpdate&&d.updateMatrix();h.material.uniforms.uvTransform.value.copy(d.matrix);if(n!==d||t!==d.version||p!==a.toneMapping)h.material.needsUpdate=!0,n=d,t=d.version,p=a.toneMapping;b.unshift(h,
+Object.defineProperty(l.material,"envMap",{get:function(){return this.uniforms.envMap.value}}),c.update(l));u=d.isWebGLCubeRenderTarget?d.texture:d;l.material.uniforms.envMap.value=u;l.material.uniforms.flipEnvMap.value=u.isCubeTexture?-1:1;if(n!==d||q!==u.version||p!==a.toneMapping)l.material.needsUpdate=!0,n=d,q=u.version,p=a.toneMapping;b.unshift(l,l.geometry,l.material,0,0,null)}else if(d&&d.isTexture){void 0===h&&(h=new X(new ac(2,2),new Ba({name:"BackgroundMaterial",uniforms:Dc(gb.background.uniforms),
+vertexShader:gb.background.vertexShader,fragmentShader:gb.background.fragmentShader,side:0,depthTest:!1,depthWrite:!1,fog:!1})),h.geometry.deleteAttribute("normal"),Object.defineProperty(h.material,"map",{get:function(){return this.uniforms.t2D.value}}),c.update(h));h.material.uniforms.t2D.value=d;!0===d.matrixAutoUpdate&&d.updateMatrix();h.material.uniforms.uvTransform.value.copy(d.matrix);if(n!==d||q!==d.version||p!==a.toneMapping)h.material.needsUpdate=!0,n=d,q=d.version,p=a.toneMapping;b.unshift(h,
 h.geometry,h.material,0,0,null)}}}}function oj(a,b,c,d){var e=d.isWebGL2,f;this.setMode=function(a){f=a};this.render=function(b,d){a.drawArrays(f,b,d);c.update(d,f)};this.renderInstances=function(d,h,l,n){if(0!==n){if(e){d=a;var g="drawArraysInstanced"}else if(d=b.get("ANGLE_instanced_arrays"),g="drawArraysInstancedANGLE",null===d){console.error("THREE.WebGLBufferRenderer: using THREE.InstancedBufferGeometry but hardware does not support extension ANGLE_instanced_arrays.");return}d[g](f,h,l,n);c.update(l,
 h.geometry,h.material,0,0,null)}}}}function oj(a,b,c,d){var e=d.isWebGL2,f;this.setMode=function(a){f=a};this.render=function(b,d){a.drawArrays(f,b,d);c.update(d,f)};this.renderInstances=function(d,h,l,n){if(0!==n){if(e){d=a;var g="drawArraysInstanced"}else if(d=b.get("ANGLE_instanced_arrays"),g="drawArraysInstancedANGLE",null===d){console.error("THREE.WebGLBufferRenderer: using THREE.InstancedBufferGeometry but hardware does not support extension ANGLE_instanced_arrays.");return}d[g](f,h,l,n);c.update(l,
 f,n)}}}function pj(a,b,c){function d(b){if("highp"===b){if(0<a.getShaderPrecisionFormat(35633,36338).precision&&0<a.getShaderPrecisionFormat(35632,36338).precision)return"highp";b="mediump"}return"mediump"===b&&0<a.getShaderPrecisionFormat(35633,36337).precision&&0<a.getShaderPrecisionFormat(35632,36337).precision?"mediump":"lowp"}var e,f="undefined"!==typeof WebGL2RenderingContext&&a instanceof WebGL2RenderingContext||"undefined"!==typeof WebGL2ComputeRenderingContext&&a instanceof WebGL2ComputeRenderingContext,
 f,n)}}}function pj(a,b,c){function d(b){if("highp"===b){if(0<a.getShaderPrecisionFormat(35633,36338).precision&&0<a.getShaderPrecisionFormat(35632,36338).precision)return"highp";b="mediump"}return"mediump"===b&&0<a.getShaderPrecisionFormat(35633,36337).precision&&0<a.getShaderPrecisionFormat(35632,36337).precision?"mediump":"lowp"}var e,f="undefined"!==typeof WebGL2RenderingContext&&a instanceof WebGL2RenderingContext||"undefined"!==typeof WebGL2ComputeRenderingContext&&a instanceof WebGL2ComputeRenderingContext,
-g=void 0!==c.precision?c.precision:"highp",h=d(g);h!==g&&(console.warn("THREE.WebGLRenderer:",g,"not supported, using",h,"instead."),g=h);c=!0===c.logarithmicDepthBuffer;h=a.getParameter(34930);var l=a.getParameter(35660),n=a.getParameter(3379),t=a.getParameter(34076),p=a.getParameter(34921),k=a.getParameter(36347),r=a.getParameter(36348),q=a.getParameter(36349),u=0<l,m=f||!!b.get("OES_texture_float"),E=u&&m,x=f?a.getParameter(36183):0;return{isWebGL2:f,getMaxAnisotropy:function(){if(void 0!==e)return e;
-var c=b.get("EXT_texture_filter_anisotropic");return e=null!==c?a.getParameter(c.MAX_TEXTURE_MAX_ANISOTROPY_EXT):0},getMaxPrecision:d,precision:g,logarithmicDepthBuffer:c,maxTextures:h,maxVertexTextures:l,maxTextureSize:n,maxCubemapSize:t,maxAttributes:p,maxVertexUniforms:k,maxVaryings:r,maxFragmentUniforms:q,vertexTextures:u,floatFragmentTextures:m,floatVertexTextures:E,maxSamples:x}}function qj(){function a(){n.value!==d&&(n.value=d,n.needsUpdate=0<e);c.numPlanes=e;c.numIntersection=0}function b(a,
+g=void 0!==c.precision?c.precision:"highp",h=d(g);h!==g&&(console.warn("THREE.WebGLRenderer:",g,"not supported, using",h,"instead."),g=h);c=!0===c.logarithmicDepthBuffer;h=a.getParameter(34930);var l=a.getParameter(35660),n=a.getParameter(3379),q=a.getParameter(34076),p=a.getParameter(34921),k=a.getParameter(36347),t=a.getParameter(36348),r=a.getParameter(36349),u=0<l,m=f||!!b.get("OES_texture_float"),E=u&&m,x=f?a.getParameter(36183):0;return{isWebGL2:f,getMaxAnisotropy:function(){if(void 0!==e)return e;
+var c=b.get("EXT_texture_filter_anisotropic");return e=null!==c?a.getParameter(c.MAX_TEXTURE_MAX_ANISOTROPY_EXT):0},getMaxPrecision:d,precision:g,logarithmicDepthBuffer:c,maxTextures:h,maxVertexTextures:l,maxTextureSize:n,maxCubemapSize:q,maxAttributes:p,maxVertexUniforms:k,maxVaryings:t,maxFragmentUniforms:r,vertexTextures:u,floatFragmentTextures:m,floatVertexTextures:E,maxSamples:x}}function qj(){function a(){n.value!==d&&(n.value=d,n.needsUpdate=0<e);c.numPlanes=e;c.numIntersection=0}function b(a,
 b,d,e){var f=null!==a?a.length:0,g=null;if(0!==f){g=n.value;if(!0!==e||null===g){e=d+4*f;b=b.matrixWorldInverse;l.getNormalMatrix(b);if(null===g||g.length<e)g=new Float32Array(e);for(e=0;e!==f;++e,d+=4)h.copy(a[e]).applyMatrix4(b,l),h.normal.toArray(g,d),g[d+3]=h.constant}n.value=g;n.needsUpdate=!0}c.numPlanes=f;c.numIntersection=0;return g}var c=this,d=null,e=0,f=!1,g=!1,h=new Ua,l=new xa,n={value:null,needsUpdate:!1};this.uniform=n;this.numIntersection=this.numPlanes=0;this.init=function(a,c,g){var h=
 b,d,e){var f=null!==a?a.length:0,g=null;if(0!==f){g=n.value;if(!0!==e||null===g){e=d+4*f;b=b.matrixWorldInverse;l.getNormalMatrix(b);if(null===g||g.length<e)g=new Float32Array(e);for(e=0;e!==f;++e,d+=4)h.copy(a[e]).applyMatrix4(b,l),h.normal.toArray(g,d),g[d+3]=h.constant}n.value=g;n.needsUpdate=!0}c.numPlanes=f;c.numIntersection=0;return g}var c=this,d=null,e=0,f=!1,g=!1,h=new Ua,l=new xa,n={value:null,needsUpdate:!1};this.uniform=n;this.numIntersection=this.numPlanes=0;this.init=function(a,c,g){var h=
-0!==a.length||c||0!==e||f;f=c;d=b(a,g,0);e=a.length;return h};this.beginShadows=function(){g=!0;b(null)};this.endShadows=function(){g=!1;a()};this.setState=function(c,h,l,k,q,u){if(!f||null===c||0===c.length||g&&!l)g?b(null):a();else{l=g?0:e;var t=4*l,p=q.clippingState||null;n.value=p;p=b(c,k,t,u);for(c=0;c!==t;++c)p[c]=d[c];q.clippingState=p;this.numIntersection=h?this.numPlanes:0;this.numPlanes+=l}}}function rj(a){var b={};return{get:function(c){if(void 0!==b[c])return b[c];switch(c){case "WEBGL_depth_texture":var d=
+0!==a.length||c||0!==e||f;f=c;d=b(a,g,0);e=a.length;return h};this.beginShadows=function(){g=!0;b(null)};this.endShadows=function(){g=!1;a()};this.setState=function(c,h,l,k,r,u){if(!f||null===c||0===c.length||g&&!l)g?b(null):a();else{l=g?0:e;var q=4*l,p=r.clippingState||null;n.value=p;p=b(c,k,q,u);for(c=0;c!==q;++c)p[c]=d[c];r.clippingState=p;this.numIntersection=h?this.numPlanes:0;this.numPlanes+=l}}}function rj(a){var b={};return{get:function(c){if(void 0!==b[c])return b[c];switch(c){case "WEBGL_depth_texture":var d=
 a.getExtension("WEBGL_depth_texture")||a.getExtension("MOZ_WEBGL_depth_texture")||a.getExtension("WEBKIT_WEBGL_depth_texture");break;case "EXT_texture_filter_anisotropic":d=a.getExtension("EXT_texture_filter_anisotropic")||a.getExtension("MOZ_EXT_texture_filter_anisotropic")||a.getExtension("WEBKIT_EXT_texture_filter_anisotropic");break;case "WEBGL_compressed_texture_s3tc":d=a.getExtension("WEBGL_compressed_texture_s3tc")||a.getExtension("MOZ_WEBGL_compressed_texture_s3tc")||a.getExtension("WEBKIT_WEBGL_compressed_texture_s3tc");
 a.getExtension("WEBGL_depth_texture")||a.getExtension("MOZ_WEBGL_depth_texture")||a.getExtension("WEBKIT_WEBGL_depth_texture");break;case "EXT_texture_filter_anisotropic":d=a.getExtension("EXT_texture_filter_anisotropic")||a.getExtension("MOZ_EXT_texture_filter_anisotropic")||a.getExtension("WEBKIT_EXT_texture_filter_anisotropic");break;case "WEBGL_compressed_texture_s3tc":d=a.getExtension("WEBGL_compressed_texture_s3tc")||a.getExtension("MOZ_WEBGL_compressed_texture_s3tc")||a.getExtension("WEBKIT_WEBGL_compressed_texture_s3tc");
 break;case "WEBGL_compressed_texture_pvrtc":d=a.getExtension("WEBGL_compressed_texture_pvrtc")||a.getExtension("WEBKIT_WEBGL_compressed_texture_pvrtc");break;default:d=a.getExtension(c)}null===d&&console.warn("THREE.WebGLRenderer: "+c+" extension not supported.");return b[c]=d}}}function sj(a,b,c){function d(a){var e=a.target;a=f.get(e);null!==a.index&&b.remove(a.index);for(var h in a.attributes)b.remove(a.attributes[h]);e.removeEventListener("dispose",d);f.delete(e);if(h=g.get(a))b.remove(h),g.delete(a);
 break;case "WEBGL_compressed_texture_pvrtc":d=a.getExtension("WEBGL_compressed_texture_pvrtc")||a.getExtension("WEBKIT_WEBGL_compressed_texture_pvrtc");break;default:d=a.getExtension(c)}null===d&&console.warn("THREE.WebGLRenderer: "+c+" extension not supported.");return b[c]=d}}}function sj(a,b,c){function d(a){var e=a.target;a=f.get(e);null!==a.index&&b.remove(a.index);for(var h in a.attributes)b.remove(a.attributes[h]);e.removeEventListener("dispose",d);f.delete(e);if(h=g.get(a))b.remove(h),g.delete(a);
-c.memory.geometries--}function e(a){var c=[],d=a.index,e=a.attributes.position;if(null!==d){e=d.array;d=d.version;for(var f=0,h=e.length;f<h;f+=3){var k=e[f+0],q=e[f+1],u=e[f+2];c.push(k,q,q,u,u,k)}}else for(f=e.array,d=e.version,e=0,f=f.length/3-1;e<f;e+=3)h=e+0,k=e+1,q=e+2,c.push(h,k,k,q,q,h);c=new (65535<wh(c)?Yb:Xb)(c,1);c.version=d;b.update(c,34963);(d=g.get(a))&&b.remove(d);g.set(a,c)}var f=new WeakMap,g=new WeakMap;return{get:function(a,b){var e=f.get(b);if(e)return e;b.addEventListener("dispose",
+c.memory.geometries--}function e(a){var c=[],d=a.index,e=a.attributes.position;if(null!==d){e=d.array;d=d.version;for(var f=0,h=e.length;f<h;f+=3){var k=e[f+0],r=e[f+1],u=e[f+2];c.push(k,r,r,u,u,k)}}else for(f=e.array,d=e.version,e=0,f=f.length/3-1;e<f;e+=3)h=e+0,k=e+1,r=e+2,c.push(h,k,k,r,r,h);c=new (65535<wh(c)?Yb:Xb)(c,1);c.version=d;b.update(c,34963);(d=g.get(a))&&b.remove(d);g.set(a,c)}var f=new WeakMap,g=new WeakMap;return{get:function(a,b){var e=f.get(b);if(e)return e;b.addEventListener("dispose",
 d);b.isBufferGeometry?e=b:b.isGeometry&&(void 0===b._bufferGeometry&&(b._bufferGeometry=(new F).setFromObject(a)),e=b._bufferGeometry);f.set(b,e);c.memory.geometries++;return e},update:function(a){var c=a.index,d=a.attributes;null!==c&&b.update(c,34963);for(var e in d)b.update(d[e],34962);a=a.morphAttributes;for(var f in a)for(c=a[f],d=0,e=c.length;d<e;d++)b.update(c[d],34962)},getWireframeAttribute:function(a){var b=g.get(a);if(b){var c=a.index;null!==c&&b.version<c.version&&e(a)}else e(a);return g.get(a)}}}
 d);b.isBufferGeometry?e=b:b.isGeometry&&(void 0===b._bufferGeometry&&(b._bufferGeometry=(new F).setFromObject(a)),e=b._bufferGeometry);f.set(b,e);c.memory.geometries++;return e},update:function(a){var c=a.index,d=a.attributes;null!==c&&b.update(c,34963);for(var e in d)b.update(d[e],34962);a=a.morphAttributes;for(var f in a)for(c=a[f],d=0,e=c.length;d<e;d++)b.update(c[d],34962)},getWireframeAttribute:function(a){var b=g.get(a);if(b){var c=a.index;null!==c&&b.version<c.version&&e(a)}else e(a);return g.get(a)}}}
-function tj(a,b,c,d){var e=d.isWebGL2,f,g,h;this.setMode=function(a){f=a};this.setIndex=function(a){g=a.type;h=a.bytesPerElement};this.render=function(b,d){a.drawElements(f,d,g,b*h);c.update(d,f)};this.renderInstances=function(d,n,t,p){if(0!==p){if(e){d=a;var l="drawElementsInstanced"}else if(d=b.get("ANGLE_instanced_arrays"),l="drawElementsInstancedANGLE",null===d){console.error("THREE.WebGLIndexedBufferRenderer: using THREE.InstancedBufferGeometry but hardware does not support extension ANGLE_instanced_arrays.");
-return}d[l](f,t,g,n*h,p);c.update(t,f,p)}}}function uj(a){var b={frame:0,calls:0,triangles:0,points:0,lines:0};return{memory:{geometries:0,textures:0},render:b,programs:null,autoReset:!0,reset:function(){b.frame++;b.calls=0;b.triangles=0;b.points=0;b.lines=0},update:function(a,d,e){e=e||1;b.calls++;switch(d){case 4:b.triangles+=a/3*e;break;case 1:b.lines+=a/2*e;break;case 3:b.lines+=e*(a-1);break;case 2:b.lines+=e*a;break;case 0:b.points+=e*a;break;default:console.error("THREE.WebGLInfo: Unknown draw mode:",
-d)}}}}function vj(a,b){return Math.abs(b[1])-Math.abs(a[1])}function wj(a){var b={},c=new Float32Array(8);return{update:function(d,e,f,g){var h=d.morphTargetInfluences,l=void 0===h?0:h.length;d=b[e.id];if(void 0===d){d=[];for(var n=0;n<l;n++)d[n]=[n,0];b[e.id]=d}n=f.morphTargets&&e.morphAttributes.position;f=f.morphNormals&&e.morphAttributes.normal;for(var t=0;t<l;t++)0!==d[t][1]&&(n&&e.deleteAttribute("morphTarget"+t),f&&e.deleteAttribute("morphNormal"+t));for(t=0;t<l;t++){var p=d[t];p[0]=t;p[1]=
-h[t]}d.sort(vj);for(l=h=0;8>l;l++){if(p=d[l])if(t=p[0],p=p[1]){n&&e.setAttribute("morphTarget"+l,n[t]);f&&e.setAttribute("morphNormal"+l,f[t]);c[l]=p;h+=p;continue}c[l]=0}e=e.morphTargetsRelative?1:1-h;g.getUniforms().setValue(a,"morphTargetBaseInfluence",e);g.getUniforms().setValue(a,"morphTargetInfluences",c)}}}function xj(a,b,c,d){var e=new WeakMap;return{update:function(a){var f=d.render.frame,h=a.geometry,l=b.get(a,h);e.get(l)!==f&&(h.isGeometry&&l.updateFromObject(a),b.update(l),e.set(l,f));
+function tj(a,b,c,d){var e=d.isWebGL2,f,g,h;this.setMode=function(a){f=a};this.setIndex=function(a){g=a.type;h=a.bytesPerElement};this.render=function(b,d){a.drawElements(f,d,g,b*h);c.update(d,f)};this.renderInstances=function(d,n,q,p){if(0!==p){if(e){d=a;var l="drawElementsInstanced"}else if(d=b.get("ANGLE_instanced_arrays"),l="drawElementsInstancedANGLE",null===d){console.error("THREE.WebGLIndexedBufferRenderer: using THREE.InstancedBufferGeometry but hardware does not support extension ANGLE_instanced_arrays.");
+return}d[l](f,q,g,n*h,p);c.update(q,f,p)}}}function uj(a){var b={frame:0,calls:0,triangles:0,points:0,lines:0};return{memory:{geometries:0,textures:0},render:b,programs:null,autoReset:!0,reset:function(){b.frame++;b.calls=0;b.triangles=0;b.points=0;b.lines=0},update:function(a,d,e){e=e||1;b.calls++;switch(d){case 4:b.triangles+=a/3*e;break;case 1:b.lines+=a/2*e;break;case 3:b.lines+=e*(a-1);break;case 2:b.lines+=e*a;break;case 0:b.points+=e*a;break;default:console.error("THREE.WebGLInfo: Unknown draw mode:",
+d)}}}}function vj(a,b){return Math.abs(b[1])-Math.abs(a[1])}function wj(a){var b={},c=new Float32Array(8);return{update:function(d,e,f,g){var h=d.morphTargetInfluences,l=void 0===h?0:h.length;d=b[e.id];if(void 0===d){d=[];for(var n=0;n<l;n++)d[n]=[n,0];b[e.id]=d}n=f.morphTargets&&e.morphAttributes.position;f=f.morphNormals&&e.morphAttributes.normal;for(var q=0;q<l;q++)0!==d[q][1]&&(n&&e.deleteAttribute("morphTarget"+q),f&&e.deleteAttribute("morphNormal"+q));for(q=0;q<l;q++){var p=d[q];p[0]=q;p[1]=
+h[q]}d.sort(vj);for(l=h=0;8>l;l++){if(p=d[l])if(q=p[0],p=p[1]){n&&e.setAttribute("morphTarget"+l,n[q]);f&&e.setAttribute("morphNormal"+l,f[q]);c[l]=p;h+=p;continue}c[l]=0}e=e.morphTargetsRelative?1:1-h;g.getUniforms().setValue(a,"morphTargetBaseInfluence",e);g.getUniforms().setValue(a,"morphTargetInfluences",c)}}}function xj(a,b,c,d){var e=new WeakMap;return{update:function(a){var f=d.render.frame,h=a.geometry,l=b.get(a,h);e.get(l)!==f&&(h.isGeometry&&l.updateFromObject(a),b.update(l),e.set(l,f));
 a.isInstancedMesh&&c.update(a.instanceMatrix,34962);return l},dispose:function(){e=new WeakMap}}}function qb(a,b,c,d,e,f,g,h,l,n){a=void 0!==a?a:[];W.call(this,a,void 0!==b?b:301,c,d,e,f,void 0!==g?g:1022,h,l,n);this.flipY=!1}function Gc(a,b,c,d){W.call(this,null);this.image={data:a||null,width:b||1,height:c||1,depth:d||1};this.minFilter=this.magFilter=1003;this.wrapR=1001;this.flipY=this.generateMipmaps=!1;this.needsUpdate=!0}function Hc(a,b,c,d){W.call(this,null);this.image={data:a||null,width:b||
 a.isInstancedMesh&&c.update(a.instanceMatrix,34962);return l},dispose:function(){e=new WeakMap}}}function qb(a,b,c,d,e,f,g,h,l,n){a=void 0!==a?a:[];W.call(this,a,void 0!==b?b:301,c,d,e,f,void 0!==g?g:1022,h,l,n);this.flipY=!1}function Gc(a,b,c,d){W.call(this,null);this.image={data:a||null,width:b||1,height:c||1,depth:d||1};this.minFilter=this.magFilter=1003;this.wrapR=1001;this.flipY=this.generateMipmaps=!1;this.needsUpdate=!0}function Hc(a,b,c,d){W.call(this,null);this.image={data:a||null,width:b||
 1,height:c||1,depth:d||1};this.minFilter=this.magFilter=1003;this.wrapR=1001;this.flipY=this.generateMipmaps=!1;this.needsUpdate=!0}function Ic(a,b,c){var d=a[0];if(0>=d||0<d)return a;var e=b*c,f=zh[e];void 0===f&&(f=new Float32Array(e),zh[e]=f);if(0!==b)for(d.toArray(f,0),d=1,e=0;d!==b;++d)e+=c,a[d].toArray(f,e);return f}function Pa(a,b){if(a.length!==b.length)return!1;for(var c=0,d=a.length;c<d;c++)if(a[c]!==b[c])return!1;return!0}function Ia(a,b){for(var c=0,d=b.length;c<d;c++)a[c]=b[c]}function Ah(a,
 1,height:c||1,depth:d||1};this.minFilter=this.magFilter=1003;this.wrapR=1001;this.flipY=this.generateMipmaps=!1;this.needsUpdate=!0}function Ic(a,b,c){var d=a[0];if(0>=d||0<d)return a;var e=b*c,f=zh[e];void 0===f&&(f=new Float32Array(e),zh[e]=f);if(0!==b)for(d.toArray(f,0),d=1,e=0;d!==b;++d)e+=c,a[d].toArray(f,e);return f}function Pa(a,b){if(a.length!==b.length)return!1;for(var c=0,d=a.length;c<d;c++)if(a[c]!==b[c])return!1;return!0}function Ia(a,b){for(var c=0,d=b.length;c<d;c++)a[c]=b[c]}function Ah(a,
 b){var c=Bh[b];void 0===c&&(c=new Int32Array(b),Bh[b]=c);for(var d=0;d!==b;++d)c[d]=a.allocateTextureUnit();return c}function yj(a,b){var c=this.cache;c[0]!==b&&(a.uniform1f(this.addr,b),c[0]=b)}function zj(a,b){var c=this.cache;if(void 0!==b.x){if(c[0]!==b.x||c[1]!==b.y)a.uniform2f(this.addr,b.x,b.y),c[0]=b.x,c[1]=b.y}else Pa(c,b)||(a.uniform2fv(this.addr,b),Ia(c,b))}function Aj(a,b){var c=this.cache;if(void 0!==b.x){if(c[0]!==b.x||c[1]!==b.y||c[2]!==b.z)a.uniform3f(this.addr,b.x,b.y,b.z),c[0]=b.x,
 b){var c=Bh[b];void 0===c&&(c=new Int32Array(b),Bh[b]=c);for(var d=0;d!==b;++d)c[d]=a.allocateTextureUnit();return c}function yj(a,b){var c=this.cache;c[0]!==b&&(a.uniform1f(this.addr,b),c[0]=b)}function zj(a,b){var c=this.cache;if(void 0!==b.x){if(c[0]!==b.x||c[1]!==b.y)a.uniform2f(this.addr,b.x,b.y),c[0]=b.x,c[1]=b.y}else Pa(c,b)||(a.uniform2fv(this.addr,b),Ia(c,b))}function Aj(a,b){var c=this.cache;if(void 0!==b.x){if(c[0]!==b.x||c[1]!==b.y||c[2]!==b.z)a.uniform3f(this.addr,b.x,b.y,b.z),c[0]=b.x,
@@ -58,117 +58,117 @@ case 35676:return Ej;case 5124:case 35670:return Lj;case 35667:case 35671:return
 b)}function Uj(a,b){a.uniform3iv(this.addr,b)}function Vj(a,b){a.uniform4iv(this.addr,b)}function Wj(a,b){b=Ic(b,this.size,2);a.uniform2fv(this.addr,b)}function Xj(a,b){b=Ic(b,this.size,3);a.uniform3fv(this.addr,b)}function Yj(a,b){b=Ic(b,this.size,4);a.uniform4fv(this.addr,b)}function Zj(a,b){b=Ic(b,this.size,4);a.uniformMatrix2fv(this.addr,!1,b)}function ak(a,b){b=Ic(b,this.size,9);a.uniformMatrix3fv(this.addr,!1,b)}function bk(a,b){b=Ic(b,this.size,16);a.uniformMatrix4fv(this.addr,!1,b)}function ck(a,
 b)}function Uj(a,b){a.uniform3iv(this.addr,b)}function Vj(a,b){a.uniform4iv(this.addr,b)}function Wj(a,b){b=Ic(b,this.size,2);a.uniform2fv(this.addr,b)}function Xj(a,b){b=Ic(b,this.size,3);a.uniform3fv(this.addr,b)}function Yj(a,b){b=Ic(b,this.size,4);a.uniform4fv(this.addr,b)}function Zj(a,b){b=Ic(b,this.size,4);a.uniformMatrix2fv(this.addr,!1,b)}function ak(a,b){b=Ic(b,this.size,9);a.uniformMatrix3fv(this.addr,!1,b)}function bk(a,b){b=Ic(b,this.size,16);a.uniformMatrix4fv(this.addr,!1,b)}function ck(a,
 b,c){var d=b.length,e=Ah(c,d);a.uniform1iv(this.addr,e);for(a=0;a!==d;++a)c.safeSetTexture2D(b[a]||Fh,e[a])}function dk(a,b,c){var d=b.length,e=Ah(c,d);a.uniform1iv(this.addr,e);for(a=0;a!==d;++a)c.safeSetTextureCube(b[a]||Gh,e[a])}function ek(a){switch(a){case 5126:return Rj;case 35664:return Wj;case 35665:return Xj;case 35666:return Yj;case 35674:return Zj;case 35675:return ak;case 35676:return bk;case 5124:case 35670:return Sj;case 35667:case 35671:return Tj;case 35668:case 35672:return Uj;case 35669:case 35673:return Vj;
 b,c){var d=b.length,e=Ah(c,d);a.uniform1iv(this.addr,e);for(a=0;a!==d;++a)c.safeSetTexture2D(b[a]||Fh,e[a])}function dk(a,b,c){var d=b.length,e=Ah(c,d);a.uniform1iv(this.addr,e);for(a=0;a!==d;++a)c.safeSetTextureCube(b[a]||Gh,e[a])}function ek(a){switch(a){case 5126:return Rj;case 35664:return Wj;case 35665:return Xj;case 35666:return Yj;case 35674:return Zj;case 35675:return ak;case 35676:return bk;case 5124:case 35670:return Sj;case 35667:case 35671:return Tj;case 35668:case 35672:return Uj;case 35669:case 35673:return Vj;
 case 35678:case 36198:case 36298:case 36306:case 35682:return ck;case 35680:case 36300:case 36308:case 36293:return dk}}function fk(a,b,c){this.id=a;this.addr=c;this.cache=[];this.setValue=Qj(b.type)}function Hh(a,b,c){this.id=a;this.addr=c;this.cache=[];this.size=b.size;this.setValue=ek(b.type)}function Ih(a){this.id=a;this.seq=[];this.map={}}function Fb(a,b){this.seq=[];this.map={};for(var c=a.getProgramParameter(b,35718),d=0;d<c;++d){var e=a.getActiveUniform(b,d),f=a.getUniformLocation(b,e.name),
 case 35678:case 36198:case 36298:case 36306:case 35682:return ck;case 35680:case 36300:case 36308:case 36293:return dk}}function fk(a,b,c){this.id=a;this.addr=c;this.cache=[];this.setValue=Qj(b.type)}function Hh(a,b,c){this.id=a;this.addr=c;this.cache=[];this.size=b.size;this.setValue=ek(b.type)}function Ih(a){this.id=a;this.seq=[];this.map={}}function Fb(a,b){this.seq=[];this.map={};for(var c=a.getProgramParameter(b,35718),d=0;d<c;++d){var e=a.getActiveUniform(b,d),f=a.getUniformLocation(b,e.name),
-g=this,h=e.name,l=h.length;for(ig.lastIndex=0;;){var n=ig.exec(h),t=ig.lastIndex,p=n[1],k=n[3];"]"===n[2]&&(p|=0);if(void 0===k||"["===k&&t+2===l){h=g;e=void 0===k?new fk(p,e,f):new Hh(p,e,f);h.seq.push(e);h.map[e.id]=e;break}else k=g.map[p],void 0===k&&(k=new Ih(p),p=g,g=k,p.seq.push(g),p.map[g.id]=g),g=k}}}function Jh(a,b,c){b=a.createShader(b);a.shaderSource(b,c);a.compileShader(b);return b}function Kh(a){switch(a){case 3E3:return["Linear","( value )"];case 3001:return["sRGB","( value )"];case 3002:return["RGBE",
+g=this,h=e.name,l=h.length;for(ig.lastIndex=0;;){var n=ig.exec(h),q=ig.lastIndex,p=n[1],k=n[3];"]"===n[2]&&(p|=0);if(void 0===k||"["===k&&q+2===l){h=g;e=void 0===k?new fk(p,e,f):new Hh(p,e,f);h.seq.push(e);h.map[e.id]=e;break}else k=g.map[p],void 0===k&&(k=new Ih(p),p=g,g=k,p.seq.push(g),p.map[g.id]=g),g=k}}}function Jh(a,b,c){b=a.createShader(b);a.shaderSource(b,c);a.compileShader(b);return b}function Kh(a){switch(a){case 3E3:return["Linear","( value )"];case 3001:return["sRGB","( value )"];case 3002:return["RGBE",
 "( value )"];case 3004:return["RGBM","( value, 7.0 )"];case 3005:return["RGBM","( value, 16.0 )"];case 3006:return["RGBD","( value, 256.0 )"];case 3007:return["Gamma","( value, float( GAMMA_FACTOR ) )"];case 3003:return["LogLuv","( value )"];default:return console.warn("THREE.WebGLProgram: Unsupported encoding:",a),["Linear","( value )"]}}function Lh(a,b,c){var d=a.getShaderParameter(b,35713),e=a.getShaderInfoLog(b).trim();if(d&&""===e)return"";a=a.getShaderSource(b).split("\n");for(b=0;b<a.length;b++)a[b]=
 "( value )"];case 3004:return["RGBM","( value, 7.0 )"];case 3005:return["RGBM","( value, 16.0 )"];case 3006:return["RGBD","( value, 256.0 )"];case 3007:return["Gamma","( value, float( GAMMA_FACTOR ) )"];case 3003:return["LogLuv","( value )"];default:return console.warn("THREE.WebGLProgram: Unsupported encoding:",a),["Linear","( value )"]}}function Lh(a,b,c){var d=a.getShaderParameter(b,35713),e=a.getShaderInfoLog(b).trim();if(d&&""===e)return"";a=a.getShaderSource(b).split("\n");for(b=0;b<a.length;b++)a[b]=
 b+1+": "+a[b];a=a.join("\n");return"THREE.WebGLShader: gl.getShaderInfoLog() "+c+"\n"+e+a}function Hd(a,b){b=Kh(b);return"vec4 "+a+"( vec4 value ) { return "+b[0]+"ToLinear"+b[1]+"; }"}function gk(a,b){b=Kh(b);return"vec4 "+a+"( vec4 value ) { return LinearTo"+b[0]+b[1]+"; }"}function hk(a,b){switch(b){case 1:b="Linear";break;case 2:b="Reinhard";break;case 3:b="OptimizedCineon";break;case 4:b="ACESFilmic";break;default:console.warn("THREE.WebGLProgram: Unsupported toneMapping:",b),b="Linear"}return"vec3 "+
 b+1+": "+a[b];a=a.join("\n");return"THREE.WebGLShader: gl.getShaderInfoLog() "+c+"\n"+e+a}function Hd(a,b){b=Kh(b);return"vec4 "+a+"( vec4 value ) { return "+b[0]+"ToLinear"+b[1]+"; }"}function gk(a,b){b=Kh(b);return"vec4 "+a+"( vec4 value ) { return LinearTo"+b[0]+b[1]+"; }"}function hk(a,b){switch(b){case 1:b="Linear";break;case 2:b="Reinhard";break;case 3:b="OptimizedCineon";break;case 4:b="ACESFilmic";break;default:console.warn("THREE.WebGLProgram: Unsupported toneMapping:",b),b="Linear"}return"vec3 "+
 a+"( vec3 color ) { return "+b+"ToneMapping( color ); }"}function ik(a){var b=[],c;for(c in a){var d=a[c];!1!==d&&b.push("#define "+c+" "+d)}return b.join("\n")}function Id(a){return""!==a}function Mh(a,b){return a.replace(/NUM_DIR_LIGHTS/g,b.numDirLights).replace(/NUM_SPOT_LIGHTS/g,b.numSpotLights).replace(/NUM_RECT_AREA_LIGHTS/g,b.numRectAreaLights).replace(/NUM_POINT_LIGHTS/g,b.numPointLights).replace(/NUM_HEMI_LIGHTS/g,b.numHemiLights).replace(/NUM_DIR_LIGHT_SHADOWS/g,b.numDirLightShadows).replace(/NUM_SPOT_LIGHT_SHADOWS/g,
 a+"( vec3 color ) { return "+b+"ToneMapping( color ); }"}function ik(a){var b=[],c;for(c in a){var d=a[c];!1!==d&&b.push("#define "+c+" "+d)}return b.join("\n")}function Id(a){return""!==a}function Mh(a,b){return a.replace(/NUM_DIR_LIGHTS/g,b.numDirLights).replace(/NUM_SPOT_LIGHTS/g,b.numSpotLights).replace(/NUM_RECT_AREA_LIGHTS/g,b.numRectAreaLights).replace(/NUM_POINT_LIGHTS/g,b.numPointLights).replace(/NUM_HEMI_LIGHTS/g,b.numHemiLights).replace(/NUM_DIR_LIGHT_SHADOWS/g,b.numDirLightShadows).replace(/NUM_SPOT_LIGHT_SHADOWS/g,
 b.numSpotLightShadows).replace(/NUM_POINT_LIGHT_SHADOWS/g,b.numPointLightShadows)}function Nh(a,b){return a.replace(/NUM_CLIPPING_PLANES/g,b.numClippingPlanes).replace(/UNION_CLIPPING_PLANES/g,b.numClippingPlanes-b.numClipIntersection)}function jg(a,b){a=N[b];if(void 0===a)throw Error("Can not resolve #include <"+b+">");return a.replace(kg,jg)}function Oh(a,b,c,d){console.warn("WebGLProgram: #pragma unroll_loop shader syntax is deprecated. Please use #pragma unroll_loop_start syntax instead.");return lg(a,
 b.numSpotLightShadows).replace(/NUM_POINT_LIGHT_SHADOWS/g,b.numPointLightShadows)}function Nh(a,b){return a.replace(/NUM_CLIPPING_PLANES/g,b.numClippingPlanes).replace(/UNION_CLIPPING_PLANES/g,b.numClippingPlanes-b.numClipIntersection)}function jg(a,b){a=N[b];if(void 0===a)throw Error("Can not resolve #include <"+b+">");return a.replace(kg,jg)}function Oh(a,b,c,d){console.warn("WebGLProgram: #pragma unroll_loop shader syntax is deprecated. Please use #pragma unroll_loop_start syntax instead.");return lg(a,
 b,c,d)}function lg(a,b,c,d){a="";for(b=parseInt(b);b<parseInt(c);b++)a+=d.replace(/\[ i \]/g,"[ "+b+" ]").replace(/UNROLLED_LOOP_INDEX/g,b);return a}function Ph(a){var b="precision "+a.precision+" float;\nprecision "+a.precision+" int;";"highp"===a.precision?b+="\n#define HIGH_PRECISION":"mediump"===a.precision?b+="\n#define MEDIUM_PRECISION":"lowp"===a.precision&&(b+="\n#define LOW_PRECISION");return b}function jk(a){var b="SHADOWMAP_TYPE_BASIC";1===a.shadowMapType?b="SHADOWMAP_TYPE_PCF":2===a.shadowMapType?
 b,c,d)}function lg(a,b,c,d){a="";for(b=parseInt(b);b<parseInt(c);b++)a+=d.replace(/\[ i \]/g,"[ "+b+" ]").replace(/UNROLLED_LOOP_INDEX/g,b);return a}function Ph(a){var b="precision "+a.precision+" float;\nprecision "+a.precision+" int;";"highp"===a.precision?b+="\n#define HIGH_PRECISION":"mediump"===a.precision?b+="\n#define MEDIUM_PRECISION":"lowp"===a.precision&&(b+="\n#define LOW_PRECISION");return b}function jk(a){var b="SHADOWMAP_TYPE_BASIC";1===a.shadowMapType?b="SHADOWMAP_TYPE_PCF":2===a.shadowMapType?
 b="SHADOWMAP_TYPE_PCF_SOFT":3===a.shadowMapType&&(b="SHADOWMAP_TYPE_VSM");return b}function kk(a){var b="ENVMAP_TYPE_CUBE";if(a.envMap)switch(a.envMapMode){case 301:case 302:b="ENVMAP_TYPE_CUBE";break;case 306:case 307:b="ENVMAP_TYPE_CUBE_UV";break;case 303:case 304:b="ENVMAP_TYPE_EQUIREC"}return b}function lk(a){var b="ENVMAP_MODE_REFLECTION";if(a.envMap)switch(a.envMapMode){case 302:case 304:b="ENVMAP_MODE_REFRACTION"}return b}function mk(a){var b="ENVMAP_BLENDING_NONE";if(a.envMap)switch(a.combine){case 0:b=
 b="SHADOWMAP_TYPE_PCF_SOFT":3===a.shadowMapType&&(b="SHADOWMAP_TYPE_VSM");return b}function kk(a){var b="ENVMAP_TYPE_CUBE";if(a.envMap)switch(a.envMapMode){case 301:case 302:b="ENVMAP_TYPE_CUBE";break;case 306:case 307:b="ENVMAP_TYPE_CUBE_UV";break;case 303:case 304:b="ENVMAP_TYPE_EQUIREC"}return b}function lk(a){var b="ENVMAP_MODE_REFLECTION";if(a.envMap)switch(a.envMapMode){case 302:case 304:b="ENVMAP_MODE_REFRACTION"}return b}function mk(a){var b="ENVMAP_BLENDING_NONE";if(a.envMap)switch(a.combine){case 0:b=
-"ENVMAP_BLENDING_MULTIPLY";break;case 1:b="ENVMAP_BLENDING_MIX";break;case 2:b="ENVMAP_BLENDING_ADD"}return b}function nk(a,b,c){var d=a.getContext(),e=c.defines,f=c.vertexShader,g=c.fragmentShader,h=jk(c),l=kk(c),n=lk(c),t=mk(c),p=0<a.gammaFactor?a.gammaFactor:1,k=c.isWebGL2?"":[c.extensionDerivatives||c.envMapCubeUV||c.bumpMap||c.tangentSpaceNormalMap||c.clearcoatNormalMap||c.flatShading||"physical"===c.shaderID?"#extension GL_OES_standard_derivatives : enable":"",(c.extensionFragDepth||c.logarithmicDepthBuffer)&&
-c.rendererExtensionFragDepth?"#extension GL_EXT_frag_depth : enable":"",c.extensionDrawBuffers&&c.rendererExtensionDrawBuffers?"#extension GL_EXT_draw_buffers : require":"",(c.extensionShaderTextureLOD||c.envMap)&&c.rendererExtensionShaderTextureLod?"#extension GL_EXT_shader_texture_lod : enable":""].filter(Id).join("\n"),r=ik(e),q=d.createProgram();c.isRawShaderMaterial?(e=[r].filter(Id).join("\n"),0<e.length&&(e+="\n"),h=[k,r].filter(Id).join("\n"),0<h.length&&(h+="\n")):(e=[Ph(c),"#define SHADER_NAME "+
-c.shaderName,r,c.instancing?"#define USE_INSTANCING":"",c.supportsVertexTextures?"#define VERTEX_TEXTURES":"","#define GAMMA_FACTOR "+p,"#define MAX_BONES "+c.maxBones,c.useFog&&c.fog?"#define USE_FOG":"",c.useFog&&c.fogExp2?"#define FOG_EXP2":"",c.map?"#define USE_MAP":"",c.envMap?"#define USE_ENVMAP":"",c.envMap?"#define "+n:"",c.lightMap?"#define USE_LIGHTMAP":"",c.aoMap?"#define USE_AOMAP":"",c.emissiveMap?"#define USE_EMISSIVEMAP":"",c.bumpMap?"#define USE_BUMPMAP":"",c.normalMap?"#define USE_NORMALMAP":
+"ENVMAP_BLENDING_MULTIPLY";break;case 1:b="ENVMAP_BLENDING_MIX";break;case 2:b="ENVMAP_BLENDING_ADD"}return b}function nk(a,b,c){var d=a.getContext(),e=c.defines,f=c.vertexShader,g=c.fragmentShader,h=jk(c),l=kk(c),n=lk(c),q=mk(c),p=0<a.gammaFactor?a.gammaFactor:1,k=c.isWebGL2?"":[c.extensionDerivatives||c.envMapCubeUV||c.bumpMap||c.tangentSpaceNormalMap||c.clearcoatNormalMap||c.flatShading||"physical"===c.shaderID?"#extension GL_OES_standard_derivatives : enable":"",(c.extensionFragDepth||c.logarithmicDepthBuffer)&&
+c.rendererExtensionFragDepth?"#extension GL_EXT_frag_depth : enable":"",c.extensionDrawBuffers&&c.rendererExtensionDrawBuffers?"#extension GL_EXT_draw_buffers : require":"",(c.extensionShaderTextureLOD||c.envMap)&&c.rendererExtensionShaderTextureLod?"#extension GL_EXT_shader_texture_lod : enable":""].filter(Id).join("\n"),t=ik(e),r=d.createProgram();c.isRawShaderMaterial?(e=[t].filter(Id).join("\n"),0<e.length&&(e+="\n"),h=[k,t].filter(Id).join("\n"),0<h.length&&(h+="\n")):(e=[Ph(c),"#define SHADER_NAME "+
+c.shaderName,t,c.instancing?"#define USE_INSTANCING":"",c.supportsVertexTextures?"#define VERTEX_TEXTURES":"","#define GAMMA_FACTOR "+p,"#define MAX_BONES "+c.maxBones,c.useFog&&c.fog?"#define USE_FOG":"",c.useFog&&c.fogExp2?"#define FOG_EXP2":"",c.map?"#define USE_MAP":"",c.envMap?"#define USE_ENVMAP":"",c.envMap?"#define "+n:"",c.lightMap?"#define USE_LIGHTMAP":"",c.aoMap?"#define USE_AOMAP":"",c.emissiveMap?"#define USE_EMISSIVEMAP":"",c.bumpMap?"#define USE_BUMPMAP":"",c.normalMap?"#define USE_NORMALMAP":
 "",c.normalMap&&c.objectSpaceNormalMap?"#define OBJECTSPACE_NORMALMAP":"",c.normalMap&&c.tangentSpaceNormalMap?"#define TANGENTSPACE_NORMALMAP":"",c.clearcoatMap?"#define USE_CLEARCOATMAP":"",c.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",c.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",c.displacementMap&&c.supportsVertexTextures?"#define USE_DISPLACEMENTMAP":"",c.specularMap?"#define USE_SPECULARMAP":"",c.roughnessMap?"#define USE_ROUGHNESSMAP":"",c.metalnessMap?"#define USE_METALNESSMAP":
 "",c.normalMap&&c.objectSpaceNormalMap?"#define OBJECTSPACE_NORMALMAP":"",c.normalMap&&c.tangentSpaceNormalMap?"#define TANGENTSPACE_NORMALMAP":"",c.clearcoatMap?"#define USE_CLEARCOATMAP":"",c.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",c.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",c.displacementMap&&c.supportsVertexTextures?"#define USE_DISPLACEMENTMAP":"",c.specularMap?"#define USE_SPECULARMAP":"",c.roughnessMap?"#define USE_ROUGHNESSMAP":"",c.metalnessMap?"#define USE_METALNESSMAP":
 "",c.alphaMap?"#define USE_ALPHAMAP":"",c.vertexTangents?"#define USE_TANGENT":"",c.vertexColors?"#define USE_COLOR":"",c.vertexUvs?"#define USE_UV":"",c.uvsVertexOnly?"#define UVS_VERTEX_ONLY":"",c.flatShading?"#define FLAT_SHADED":"",c.skinning?"#define USE_SKINNING":"",c.useVertexTexture?"#define BONE_TEXTURE":"",c.morphTargets?"#define USE_MORPHTARGETS":"",c.morphNormals&&!1===c.flatShading?"#define USE_MORPHNORMALS":"",c.doubleSided?"#define DOUBLE_SIDED":"",c.flipSided?"#define FLIP_SIDED":
 "",c.alphaMap?"#define USE_ALPHAMAP":"",c.vertexTangents?"#define USE_TANGENT":"",c.vertexColors?"#define USE_COLOR":"",c.vertexUvs?"#define USE_UV":"",c.uvsVertexOnly?"#define UVS_VERTEX_ONLY":"",c.flatShading?"#define FLAT_SHADED":"",c.skinning?"#define USE_SKINNING":"",c.useVertexTexture?"#define BONE_TEXTURE":"",c.morphTargets?"#define USE_MORPHTARGETS":"",c.morphNormals&&!1===c.flatShading?"#define USE_MORPHNORMALS":"",c.doubleSided?"#define DOUBLE_SIDED":"",c.flipSided?"#define FLIP_SIDED":
 "",c.shadowMapEnabled?"#define USE_SHADOWMAP":"",c.shadowMapEnabled?"#define "+h:"",c.sizeAttenuation?"#define USE_SIZEATTENUATION":"",c.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",c.logarithmicDepthBuffer&&c.rendererExtensionFragDepth?"#define USE_LOGDEPTHBUF_EXT":"","uniform mat4 modelMatrix;","uniform mat4 modelViewMatrix;","uniform mat4 projectionMatrix;","uniform mat4 viewMatrix;","uniform mat3 normalMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;","#ifdef USE_INSTANCING",
 "",c.shadowMapEnabled?"#define USE_SHADOWMAP":"",c.shadowMapEnabled?"#define "+h:"",c.sizeAttenuation?"#define USE_SIZEATTENUATION":"",c.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",c.logarithmicDepthBuffer&&c.rendererExtensionFragDepth?"#define USE_LOGDEPTHBUF_EXT":"","uniform mat4 modelMatrix;","uniform mat4 modelViewMatrix;","uniform mat4 projectionMatrix;","uniform mat4 viewMatrix;","uniform mat3 normalMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;","#ifdef USE_INSTANCING",
 " attribute mat4 instanceMatrix;","#endif","attribute vec3 position;","attribute vec3 normal;","attribute vec2 uv;","#ifdef USE_TANGENT","\tattribute vec4 tangent;","#endif","#ifdef USE_COLOR","\tattribute vec3 color;","#endif","#ifdef USE_MORPHTARGETS","\tattribute vec3 morphTarget0;","\tattribute vec3 morphTarget1;","\tattribute vec3 morphTarget2;","\tattribute vec3 morphTarget3;","\t#ifdef USE_MORPHNORMALS","\t\tattribute vec3 morphNormal0;","\t\tattribute vec3 morphNormal1;","\t\tattribute vec3 morphNormal2;",
 " attribute mat4 instanceMatrix;","#endif","attribute vec3 position;","attribute vec3 normal;","attribute vec2 uv;","#ifdef USE_TANGENT","\tattribute vec4 tangent;","#endif","#ifdef USE_COLOR","\tattribute vec3 color;","#endif","#ifdef USE_MORPHTARGETS","\tattribute vec3 morphTarget0;","\tattribute vec3 morphTarget1;","\tattribute vec3 morphTarget2;","\tattribute vec3 morphTarget3;","\t#ifdef USE_MORPHNORMALS","\t\tattribute vec3 morphNormal0;","\t\tattribute vec3 morphNormal1;","\t\tattribute vec3 morphNormal2;",
-"\t\tattribute vec3 morphNormal3;","\t#else","\t\tattribute vec3 morphTarget4;","\t\tattribute vec3 morphTarget5;","\t\tattribute vec3 morphTarget6;","\t\tattribute vec3 morphTarget7;","\t#endif","#endif","#ifdef USE_SKINNING","\tattribute vec4 skinIndex;","\tattribute vec4 skinWeight;","#endif","\n"].filter(Id).join("\n"),h=[k,Ph(c),"#define SHADER_NAME "+c.shaderName,r,c.alphaTest?"#define ALPHATEST "+c.alphaTest+(c.alphaTest%1?"":".0"):"","#define GAMMA_FACTOR "+p,c.useFog&&c.fog?"#define USE_FOG":
-"",c.useFog&&c.fogExp2?"#define FOG_EXP2":"",c.map?"#define USE_MAP":"",c.matcap?"#define USE_MATCAP":"",c.envMap?"#define USE_ENVMAP":"",c.envMap?"#define "+l:"",c.envMap?"#define "+n:"",c.envMap?"#define "+t:"",c.lightMap?"#define USE_LIGHTMAP":"",c.aoMap?"#define USE_AOMAP":"",c.emissiveMap?"#define USE_EMISSIVEMAP":"",c.bumpMap?"#define USE_BUMPMAP":"",c.normalMap?"#define USE_NORMALMAP":"",c.normalMap&&c.objectSpaceNormalMap?"#define OBJECTSPACE_NORMALMAP":"",c.normalMap&&c.tangentSpaceNormalMap?
+"\t\tattribute vec3 morphNormal3;","\t#else","\t\tattribute vec3 morphTarget4;","\t\tattribute vec3 morphTarget5;","\t\tattribute vec3 morphTarget6;","\t\tattribute vec3 morphTarget7;","\t#endif","#endif","#ifdef USE_SKINNING","\tattribute vec4 skinIndex;","\tattribute vec4 skinWeight;","#endif","\n"].filter(Id).join("\n"),h=[k,Ph(c),"#define SHADER_NAME "+c.shaderName,t,c.alphaTest?"#define ALPHATEST "+c.alphaTest+(c.alphaTest%1?"":".0"):"","#define GAMMA_FACTOR "+p,c.useFog&&c.fog?"#define USE_FOG":
+"",c.useFog&&c.fogExp2?"#define FOG_EXP2":"",c.map?"#define USE_MAP":"",c.matcap?"#define USE_MATCAP":"",c.envMap?"#define USE_ENVMAP":"",c.envMap?"#define "+l:"",c.envMap?"#define "+n:"",c.envMap?"#define "+q:"",c.lightMap?"#define USE_LIGHTMAP":"",c.aoMap?"#define USE_AOMAP":"",c.emissiveMap?"#define USE_EMISSIVEMAP":"",c.bumpMap?"#define USE_BUMPMAP":"",c.normalMap?"#define USE_NORMALMAP":"",c.normalMap&&c.objectSpaceNormalMap?"#define OBJECTSPACE_NORMALMAP":"",c.normalMap&&c.tangentSpaceNormalMap?
 "#define TANGENTSPACE_NORMALMAP":"",c.clearcoatMap?"#define USE_CLEARCOATMAP":"",c.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",c.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",c.specularMap?"#define USE_SPECULARMAP":"",c.roughnessMap?"#define USE_ROUGHNESSMAP":"",c.metalnessMap?"#define USE_METALNESSMAP":"",c.alphaMap?"#define USE_ALPHAMAP":"",c.sheen?"#define USE_SHEEN":"",c.vertexTangents?"#define USE_TANGENT":"",c.vertexColors?"#define USE_COLOR":"",c.vertexUvs?"#define USE_UV":
 "#define TANGENTSPACE_NORMALMAP":"",c.clearcoatMap?"#define USE_CLEARCOATMAP":"",c.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",c.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",c.specularMap?"#define USE_SPECULARMAP":"",c.roughnessMap?"#define USE_ROUGHNESSMAP":"",c.metalnessMap?"#define USE_METALNESSMAP":"",c.alphaMap?"#define USE_ALPHAMAP":"",c.sheen?"#define USE_SHEEN":"",c.vertexTangents?"#define USE_TANGENT":"",c.vertexColors?"#define USE_COLOR":"",c.vertexUvs?"#define USE_UV":
 "",c.uvsVertexOnly?"#define UVS_VERTEX_ONLY":"",c.gradientMap?"#define USE_GRADIENTMAP":"",c.flatShading?"#define FLAT_SHADED":"",c.doubleSided?"#define DOUBLE_SIDED":"",c.flipSided?"#define FLIP_SIDED":"",c.shadowMapEnabled?"#define USE_SHADOWMAP":"",c.shadowMapEnabled?"#define "+h:"",c.premultipliedAlpha?"#define PREMULTIPLIED_ALPHA":"",c.physicallyCorrectLights?"#define PHYSICALLY_CORRECT_LIGHTS":"",c.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",c.logarithmicDepthBuffer&&c.rendererExtensionFragDepth?
 "",c.uvsVertexOnly?"#define UVS_VERTEX_ONLY":"",c.gradientMap?"#define USE_GRADIENTMAP":"",c.flatShading?"#define FLAT_SHADED":"",c.doubleSided?"#define DOUBLE_SIDED":"",c.flipSided?"#define FLIP_SIDED":"",c.shadowMapEnabled?"#define USE_SHADOWMAP":"",c.shadowMapEnabled?"#define "+h:"",c.premultipliedAlpha?"#define PREMULTIPLIED_ALPHA":"",c.physicallyCorrectLights?"#define PHYSICALLY_CORRECT_LIGHTS":"",c.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",c.logarithmicDepthBuffer&&c.rendererExtensionFragDepth?
 "#define USE_LOGDEPTHBUF_EXT":"",(c.extensionShaderTextureLOD||c.envMap)&&c.rendererExtensionShaderTextureLod?"#define TEXTURE_LOD_EXT":"","uniform mat4 viewMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;",0!==c.toneMapping?"#define TONE_MAPPING":"",0!==c.toneMapping?N.tonemapping_pars_fragment:"",0!==c.toneMapping?hk("toneMapping",c.toneMapping):"",c.dithering?"#define DITHERING":"",N.encodings_pars_fragment,c.map?Hd("mapTexelToLinear",c.mapEncoding):"",c.matcap?Hd("matcapTexelToLinear",
 "#define USE_LOGDEPTHBUF_EXT":"",(c.extensionShaderTextureLOD||c.envMap)&&c.rendererExtensionShaderTextureLod?"#define TEXTURE_LOD_EXT":"","uniform mat4 viewMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;",0!==c.toneMapping?"#define TONE_MAPPING":"",0!==c.toneMapping?N.tonemapping_pars_fragment:"",0!==c.toneMapping?hk("toneMapping",c.toneMapping):"",c.dithering?"#define DITHERING":"",N.encodings_pars_fragment,c.map?Hd("mapTexelToLinear",c.mapEncoding):"",c.matcap?Hd("matcapTexelToLinear",
 c.matcapEncoding):"",c.envMap?Hd("envMapTexelToLinear",c.envMapEncoding):"",c.emissiveMap?Hd("emissiveMapTexelToLinear",c.emissiveMapEncoding):"",c.lightMap?Hd("lightMapTexelToLinear",c.lightMapEncoding):"",gk("linearToOutputTexel",c.outputEncoding),c.depthPacking?"#define DEPTH_PACKING "+c.depthPacking:"","\n"].filter(Id).join("\n"));f=f.replace(kg,jg);f=Mh(f,c);f=Nh(f,c);g=g.replace(kg,jg);g=Mh(g,c);g=Nh(g,c);f=f.replace(Qh,lg).replace(Rh,Oh);g=g.replace(Qh,lg).replace(Rh,Oh);c.isWebGL2&&!c.isRawShaderMaterial&&
 c.matcapEncoding):"",c.envMap?Hd("envMapTexelToLinear",c.envMapEncoding):"",c.emissiveMap?Hd("emissiveMapTexelToLinear",c.emissiveMapEncoding):"",c.lightMap?Hd("lightMapTexelToLinear",c.lightMapEncoding):"",gk("linearToOutputTexel",c.outputEncoding),c.depthPacking?"#define DEPTH_PACKING "+c.depthPacking:"","\n"].filter(Id).join("\n"));f=f.replace(kg,jg);f=Mh(f,c);f=Nh(f,c);g=g.replace(kg,jg);g=Mh(g,c);g=Nh(g,c);f=f.replace(Qh,lg).replace(Rh,Oh);g=g.replace(Qh,lg).replace(Rh,Oh);c.isWebGL2&&!c.isRawShaderMaterial&&
 (l=!1,n=/^\s*#version\s+300\s+es\s*\n/,c.isShaderMaterial&&null!==f.match(n)&&null!==g.match(n)&&(l=!0,f=f.replace(n,""),g=g.replace(n,"")),e="#version 300 es\n\n#define attribute in\n#define varying out\n#define texture2D texture\n"+e,h=["#version 300 es\n\n#define varying in",l?"":"out highp vec4 pc_fragColor;",l?"":"#define gl_FragColor pc_fragColor","#define gl_FragDepthEXT gl_FragDepth\n#define texture2D texture\n#define textureCube texture\n#define texture2DProj textureProj\n#define texture2DLodEXT textureLod\n#define texture2DProjLodEXT textureProjLod\n#define textureCubeLodEXT textureLod\n#define texture2DGradEXT textureGrad\n#define texture2DProjGradEXT textureProjGrad\n#define textureCubeGradEXT textureGrad"].join("\n")+
 (l=!1,n=/^\s*#version\s+300\s+es\s*\n/,c.isShaderMaterial&&null!==f.match(n)&&null!==g.match(n)&&(l=!0,f=f.replace(n,""),g=g.replace(n,"")),e="#version 300 es\n\n#define attribute in\n#define varying out\n#define texture2D texture\n"+e,h=["#version 300 es\n\n#define varying in",l?"":"out highp vec4 pc_fragColor;",l?"":"#define gl_FragColor pc_fragColor","#define gl_FragDepthEXT gl_FragDepth\n#define texture2D texture\n#define textureCube texture\n#define texture2DProj textureProj\n#define texture2DLodEXT textureLod\n#define texture2DProjLodEXT textureProjLod\n#define textureCubeLodEXT textureLod\n#define texture2DGradEXT textureGrad\n#define texture2DProjGradEXT textureProjGrad\n#define textureCubeGradEXT textureGrad"].join("\n")+
-"\n"+h);g=h+g;f=Jh(d,35633,e+f);g=Jh(d,35632,g);d.attachShader(q,f);d.attachShader(q,g);void 0!==c.index0AttributeName?d.bindAttribLocation(q,0,c.index0AttributeName):!0===c.morphTargets&&d.bindAttribLocation(q,0,"position");d.linkProgram(q);if(a.debug.checkShaderErrors){a=d.getProgramInfoLog(q).trim();l=d.getShaderInfoLog(f).trim();n=d.getShaderInfoLog(g).trim();p=t=!0;if(!1===d.getProgramParameter(q,35714))t=!1,k=Lh(d,f,"vertex"),r=Lh(d,g,"fragment"),console.error("THREE.WebGLProgram: shader error: ",
-d.getError(),"35715",d.getProgramParameter(q,35715),"gl.getProgramInfoLog",a,k,r);else if(""!==a)console.warn("THREE.WebGLProgram: gl.getProgramInfoLog()",a);else if(""===l||""===n)p=!1;p&&(this.diagnostics={runnable:t,programLog:a,vertexShader:{log:l,prefix:e},fragmentShader:{log:n,prefix:h}})}d.deleteShader(f);d.deleteShader(g);var u;this.getUniforms=function(){void 0===u&&(u=new Fb(d,q));return u};var m;this.getAttributes=function(){if(void 0===m){for(var a={},b=d.getProgramParameter(q,35721),
-c=0;c<b;c++){var e=d.getActiveAttrib(q,c).name;a[e]=d.getAttribLocation(q,e)}m=a}return m};this.destroy=function(){d.deleteProgram(q);this.program=void 0};this.name=c.shaderName;this.id=ok++;this.cacheKey=b;this.usedTimes=1;this.program=q;this.vertexShader=f;this.fragmentShader=g;return this}function pk(a,b,c){function d(a){if(a)a.isTexture?b=a.encoding:a.isWebGLRenderTarget&&(console.warn("THREE.WebGLPrograms.getTextureEncodingFromMap: don't use render targets as textures. Use their .texture property instead."),
-b=a.texture.encoding);else var b=3E3;return b}var e=[],f=c.isWebGL2,g=c.logarithmicDepthBuffer,h=c.floatVertexTextures,l=c.maxVertexUniforms,n=c.vertexTextures,t=c.precision,p={MeshDepthMaterial:"depth",MeshDistanceMaterial:"distanceRGBA",MeshNormalMaterial:"normal",MeshBasicMaterial:"basic",MeshLambertMaterial:"lambert",MeshPhongMaterial:"phong",MeshToonMaterial:"toon",MeshStandardMaterial:"physical",MeshPhysicalMaterial:"physical",MeshMatcapMaterial:"matcap",LineBasicMaterial:"basic",LineDashedMaterial:"dashed",
+"\n"+h);g=h+g;f=Jh(d,35633,e+f);g=Jh(d,35632,g);d.attachShader(r,f);d.attachShader(r,g);void 0!==c.index0AttributeName?d.bindAttribLocation(r,0,c.index0AttributeName):!0===c.morphTargets&&d.bindAttribLocation(r,0,"position");d.linkProgram(r);if(a.debug.checkShaderErrors){a=d.getProgramInfoLog(r).trim();l=d.getShaderInfoLog(f).trim();n=d.getShaderInfoLog(g).trim();p=q=!0;if(!1===d.getProgramParameter(r,35714))q=!1,k=Lh(d,f,"vertex"),t=Lh(d,g,"fragment"),console.error("THREE.WebGLProgram: shader error: ",
+d.getError(),"35715",d.getProgramParameter(r,35715),"gl.getProgramInfoLog",a,k,t);else if(""!==a)console.warn("THREE.WebGLProgram: gl.getProgramInfoLog()",a);else if(""===l||""===n)p=!1;p&&(this.diagnostics={runnable:q,programLog:a,vertexShader:{log:l,prefix:e},fragmentShader:{log:n,prefix:h}})}d.deleteShader(f);d.deleteShader(g);var u;this.getUniforms=function(){void 0===u&&(u=new Fb(d,r));return u};var m;this.getAttributes=function(){if(void 0===m){for(var a={},b=d.getProgramParameter(r,35721),
+c=0;c<b;c++){var e=d.getActiveAttrib(r,c).name;a[e]=d.getAttribLocation(r,e)}m=a}return m};this.destroy=function(){d.deleteProgram(r);this.program=void 0};this.name=c.shaderName;this.id=ok++;this.cacheKey=b;this.usedTimes=1;this.program=r;this.vertexShader=f;this.fragmentShader=g;return this}function pk(a,b,c){function d(a){if(a)a.isTexture?b=a.encoding:a.isWebGLRenderTarget&&(console.warn("THREE.WebGLPrograms.getTextureEncodingFromMap: don't use render targets as textures. Use their .texture property instead."),
+b=a.texture.encoding);else var b=3E3;return b}var e=[],f=c.isWebGL2,g=c.logarithmicDepthBuffer,h=c.floatVertexTextures,l=c.maxVertexUniforms,n=c.vertexTextures,q=c.precision,p={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"},k="precision isWebGL2 supportsVertexTextures outputEncoding instancing map mapEncoding matcap matcapEncoding envMap envMapMode envMapEncoding envMapCubeUV lightMap lightMapEncoding aoMap emissiveMap emissiveMapEncoding bumpMap normalMap objectSpaceNormalMap tangentSpaceNormalMap clearcoatMap clearcoatRoughnessMap clearcoatNormalMap displacementMap specularMap roughnessMap metalnessMap gradientMap alphaMap combine vertexColors vertexTangents vertexUvs uvsVertexOnly fog useFog fogExp2 flatShading sizeAttenuation logarithmicDepthBuffer skinning maxBones useVertexTexture morphTargets morphNormals maxMorphTargets maxMorphNormals premultipliedAlpha numDirLights numPointLights numSpotLights numHemiLights numRectAreaLights numDirLightShadows numPointLightShadows numSpotLightShadows shadowMapEnabled shadowMapType toneMapping physicallyCorrectLights alphaTest doubleSided flipSided numClippingPlanes numClipIntersection depthPacking dithering sheen".split(" ");
 PointsMaterial:"points",ShadowMaterial:"shadow",SpriteMaterial:"sprite"},k="precision isWebGL2 supportsVertexTextures outputEncoding instancing map mapEncoding matcap matcapEncoding envMap envMapMode envMapEncoding envMapCubeUV lightMap lightMapEncoding aoMap emissiveMap emissiveMapEncoding bumpMap normalMap objectSpaceNormalMap tangentSpaceNormalMap clearcoatMap clearcoatRoughnessMap clearcoatNormalMap displacementMap specularMap roughnessMap metalnessMap gradientMap alphaMap combine vertexColors vertexTangents vertexUvs uvsVertexOnly fog useFog fogExp2 flatShading sizeAttenuation logarithmicDepthBuffer skinning maxBones useVertexTexture morphTargets morphNormals maxMorphTargets maxMorphNormals premultipliedAlpha numDirLights numPointLights numSpotLights numHemiLights numRectAreaLights numDirLightShadows numPointLightShadows numSpotLightShadows shadowMapEnabled shadowMapType toneMapping physicallyCorrectLights alphaTest doubleSided flipSided numClippingPlanes numClipIntersection depthPacking dithering sheen".split(" ");
-return{getParameters:function(e,k,v,m,E,x,Ea){var q=m.fog;m=e.isMeshStandardMaterial?m.environment:null;m=e.envMap||m;var r=p[e.type];if(Ea.isSkinnedMesh){var u=Ea.skeleton.bones;if(h)u=1024;else{var A=Math.min(Math.floor((l-20)/4),u.length);A<u.length?(console.warn("THREE.WebGLRenderer: Skeleton has "+u.length+" bones. This GPU supports "+A+"."),u=0):u=A}}else u=0;null!==e.precision&&(t=c.getMaxPrecision(e.precision),t!==e.precision&&console.warn("THREE.WebGLProgram.getParameters:",e.precision,"not supported, using",
-t,"instead."));r?(A=gb[r],A={name:e.name||e.type,uniforms:Sh.clone(A.uniforms),vertexShader:A.vertexShader,fragmentShader:A.fragmentShader}):A={name:e.name||e.type,uniforms:e.uniforms,vertexShader:e.vertexShader,fragmentShader:e.fragmentShader};e.onBeforeCompile(A,a);var w=a.getRenderTarget();return{isWebGL2:f,shaderID:r,shaderName:A.name,uniforms:A.uniforms,vertexShader:A.vertexShader,fragmentShader:A.fragmentShader,defines:e.defines,isRawShaderMaterial:e.isRawShaderMaterial,isShaderMaterial:e.isShaderMaterial,
-precision:t,instancing:!0===Ea.isInstancedMesh,supportsVertexTextures:n,outputEncoding:null!==w?d(w.texture):a.outputEncoding,map:!!e.map,mapEncoding:d(e.map),matcap:!!e.matcap,matcapEncoding:d(e.matcap),envMap:!!m,envMapMode:m&&m.mapping,envMapEncoding:d(m),envMapCubeUV:!!m&&(306===m.mapping||307===m.mapping),lightMap:!!e.lightMap,lightMapEncoding:d(e.lightMap),aoMap:!!e.aoMap,emissiveMap:!!e.emissiveMap,emissiveMapEncoding:d(e.emissiveMap),bumpMap:!!e.bumpMap,normalMap:!!e.normalMap,objectSpaceNormalMap:1===
+return{getParameters:function(e,k,v,m,E,x,Ea){var r=m.fog;m=e.isMeshStandardMaterial?m.environment:null;m=e.envMap||m;var t=p[e.type];if(Ea.isSkinnedMesh){var u=Ea.skeleton.bones;if(h)u=1024;else{var A=Math.min(Math.floor((l-20)/4),u.length);A<u.length?(console.warn("THREE.WebGLRenderer: Skeleton has "+u.length+" bones. This GPU supports "+A+"."),u=0):u=A}}else u=0;null!==e.precision&&(q=c.getMaxPrecision(e.precision),q!==e.precision&&console.warn("THREE.WebGLProgram.getParameters:",e.precision,"not supported, using",
+q,"instead."));t?(A=gb[t],A={name:e.name||e.type,uniforms:Sh.clone(A.uniforms),vertexShader:A.vertexShader,fragmentShader:A.fragmentShader}):A={name:e.name||e.type,uniforms:e.uniforms,vertexShader:e.vertexShader,fragmentShader:e.fragmentShader};e.onBeforeCompile(A,a);var w=a.getRenderTarget();return{isWebGL2:f,shaderID:t,shaderName:A.name,uniforms:A.uniforms,vertexShader:A.vertexShader,fragmentShader:A.fragmentShader,defines:e.defines,isRawShaderMaterial:e.isRawShaderMaterial,isShaderMaterial:e.isShaderMaterial,
+precision:q,instancing:!0===Ea.isInstancedMesh,supportsVertexTextures:n,outputEncoding:null!==w?d(w.texture):a.outputEncoding,map:!!e.map,mapEncoding:d(e.map),matcap:!!e.matcap,matcapEncoding:d(e.matcap),envMap:!!m,envMapMode:m&&m.mapping,envMapEncoding:d(m),envMapCubeUV:!!m&&(306===m.mapping||307===m.mapping),lightMap:!!e.lightMap,lightMapEncoding:d(e.lightMap),aoMap:!!e.aoMap,emissiveMap:!!e.emissiveMap,emissiveMapEncoding:d(e.emissiveMap),bumpMap:!!e.bumpMap,normalMap:!!e.normalMap,objectSpaceNormalMap:1===
 e.normalMapType,tangentSpaceNormalMap:0===e.normalMapType,clearcoatMap:!!e.clearcoatMap,clearcoatRoughnessMap:!!e.clearcoatRoughnessMap,clearcoatNormalMap:!!e.clearcoatNormalMap,displacementMap:!!e.displacementMap,roughnessMap:!!e.roughnessMap,metalnessMap:!!e.metalnessMap,specularMap:!!e.specularMap,alphaMap:!!e.alphaMap,gradientMap:!!e.gradientMap,sheen:!!e.sheen,combine:e.combine,vertexTangents:e.normalMap&&e.vertexTangents,vertexColors:e.vertexColors,vertexUvs:!!e.map||!!e.bumpMap||!!e.normalMap||
 e.normalMapType,tangentSpaceNormalMap:0===e.normalMapType,clearcoatMap:!!e.clearcoatMap,clearcoatRoughnessMap:!!e.clearcoatRoughnessMap,clearcoatNormalMap:!!e.clearcoatNormalMap,displacementMap:!!e.displacementMap,roughnessMap:!!e.roughnessMap,metalnessMap:!!e.metalnessMap,specularMap:!!e.specularMap,alphaMap:!!e.alphaMap,gradientMap:!!e.gradientMap,sheen:!!e.sheen,combine:e.combine,vertexTangents:e.normalMap&&e.vertexTangents,vertexColors:e.vertexColors,vertexUvs:!!e.map||!!e.bumpMap||!!e.normalMap||
-!!e.specularMap||!!e.alphaMap||!!e.emissiveMap||!!e.roughnessMap||!!e.metalnessMap||!!e.clearcoatMap||!!e.clearcoatRoughnessMap||!!e.clearcoatNormalMap||!!e.displacementMap,uvsVertexOnly:!(e.map||e.bumpMap||e.normalMap||e.specularMap||e.alphaMap||e.emissiveMap||e.roughnessMap||e.metalnessMap||e.clearcoatNormalMap)&&!!e.displacementMap,fog:!!q,useFog:e.fog,fogExp2:q&&q.isFogExp2,flatShading:e.flatShading,sizeAttenuation:e.sizeAttenuation,logarithmicDepthBuffer:g,skinning:e.skinning&&0<u,maxBones:u,
+!!e.specularMap||!!e.alphaMap||!!e.emissiveMap||!!e.roughnessMap||!!e.metalnessMap||!!e.clearcoatMap||!!e.clearcoatRoughnessMap||!!e.clearcoatNormalMap||!!e.displacementMap,uvsVertexOnly:!(e.map||e.bumpMap||e.normalMap||e.specularMap||e.alphaMap||e.emissiveMap||e.roughnessMap||e.metalnessMap||e.clearcoatNormalMap)&&!!e.displacementMap,fog:!!r,useFog:e.fog,fogExp2:r&&r.isFogExp2,flatShading:e.flatShading,sizeAttenuation:e.sizeAttenuation,logarithmicDepthBuffer:g,skinning:e.skinning&&0<u,maxBones:u,
 useVertexTexture:h,morphTargets:e.morphTargets,morphNormals:e.morphNormals,maxMorphTargets:a.maxMorphTargets,maxMorphNormals:a.maxMorphNormals,numDirLights:k.directional.length,numPointLights:k.point.length,numSpotLights:k.spot.length,numRectAreaLights:k.rectArea.length,numHemiLights:k.hemi.length,numDirLightShadows:k.directionalShadowMap.length,numPointLightShadows:k.pointShadowMap.length,numSpotLightShadows:k.spotShadowMap.length,numClippingPlanes:E,numClipIntersection:x,dithering:e.dithering,shadowMapEnabled:a.shadowMap.enabled&&
 useVertexTexture:h,morphTargets:e.morphTargets,morphNormals:e.morphNormals,maxMorphTargets:a.maxMorphTargets,maxMorphNormals:a.maxMorphNormals,numDirLights:k.directional.length,numPointLights:k.point.length,numSpotLights:k.spot.length,numRectAreaLights:k.rectArea.length,numHemiLights:k.hemi.length,numDirLightShadows:k.directionalShadowMap.length,numPointLightShadows:k.pointShadowMap.length,numSpotLightShadows:k.spotShadowMap.length,numClippingPlanes:E,numClipIntersection:x,dithering:e.dithering,shadowMapEnabled:a.shadowMap.enabled&&
 0<v.length,shadowMapType:a.shadowMap.type,toneMapping:e.toneMapped?a.toneMapping:0,physicallyCorrectLights:a.physicallyCorrectLights,premultipliedAlpha:e.premultipliedAlpha,alphaTest:e.alphaTest,doubleSided:2===e.side,flipSided:1===e.side,depthPacking:void 0!==e.depthPacking?e.depthPacking:!1,index0AttributeName:e.index0AttributeName,extensionDerivatives:e.extensions&&e.extensions.derivatives,extensionFragDepth:e.extensions&&e.extensions.fragDepth,extensionDrawBuffers:e.extensions&&e.extensions.drawBuffers,
 0<v.length,shadowMapType:a.shadowMap.type,toneMapping:e.toneMapped?a.toneMapping:0,physicallyCorrectLights:a.physicallyCorrectLights,premultipliedAlpha:e.premultipliedAlpha,alphaTest:e.alphaTest,doubleSided:2===e.side,flipSided:1===e.side,depthPacking:void 0!==e.depthPacking?e.depthPacking:!1,index0AttributeName:e.index0AttributeName,extensionDerivatives:e.extensions&&e.extensions.derivatives,extensionFragDepth:e.extensions&&e.extensions.fragDepth,extensionDrawBuffers:e.extensions&&e.extensions.drawBuffers,
 extensionShaderTextureLOD:e.extensions&&e.extensions.shaderTextureLOD,rendererExtensionFragDepth:f||null!==b.get("EXT_frag_depth"),rendererExtensionDrawBuffers:f||null!==b.get("WEBGL_draw_buffers"),rendererExtensionShaderTextureLod:f||null!==b.get("EXT_shader_texture_lod"),onBeforeCompile:e.onBeforeCompile}},getProgramCacheKey:function(b){var c=[];b.shaderID?c.push(b.shaderID):(c.push(b.fragmentShader),c.push(b.vertexShader));if(void 0!==b.defines)for(var d in b.defines)c.push(d),c.push(b.defines[d]);
 extensionShaderTextureLOD:e.extensions&&e.extensions.shaderTextureLOD,rendererExtensionFragDepth:f||null!==b.get("EXT_frag_depth"),rendererExtensionDrawBuffers:f||null!==b.get("WEBGL_draw_buffers"),rendererExtensionShaderTextureLod:f||null!==b.get("EXT_shader_texture_lod"),onBeforeCompile:e.onBeforeCompile}},getProgramCacheKey:function(b){var c=[];b.shaderID?c.push(b.shaderID):(c.push(b.fragmentShader),c.push(b.vertexShader));if(void 0!==b.defines)for(var d in b.defines)c.push(d),c.push(b.defines[d]);
 if(void 0===b.isRawShaderMaterial){for(d=0;d<k.length;d++)c.push(b[k[d]]);c.push(a.outputEncoding);c.push(a.gammaFactor)}c.push(b.onBeforeCompile.toString());return c.join()},acquireProgram:function(b,c){for(var d,f=0,g=e.length;f<g;f++){var h=e[f];if(h.cacheKey===c){d=h;++d.usedTimes;break}}void 0===d&&(d=new nk(a,c,b),e.push(d));return d},releaseProgram:function(a){if(0===--a.usedTimes){var b=e.indexOf(a);e[b]=e[e.length-1];e.pop();a.destroy()}},programs:e}}function qk(){var a=new WeakMap;return{get:function(b){var c=
 if(void 0===b.isRawShaderMaterial){for(d=0;d<k.length;d++)c.push(b[k[d]]);c.push(a.outputEncoding);c.push(a.gammaFactor)}c.push(b.onBeforeCompile.toString());return c.join()},acquireProgram:function(b,c){for(var d,f=0,g=e.length;f<g;f++){var h=e[f];if(h.cacheKey===c){d=h;++d.usedTimes;break}}void 0===d&&(d=new nk(a,c,b),e.push(d));return d},releaseProgram:function(a){if(0===--a.usedTimes){var b=e.indexOf(a);e[b]=e[e.length-1];e.pop();a.destroy()}},programs:e}}function qk(){var a=new WeakMap;return{get:function(b){var c=
 a.get(b);void 0===c&&(c={},a.set(b,c));return c},remove:function(b){a.delete(b)},update:function(b,c,d){a.get(b)[c]=d},dispose:function(){a=new WeakMap}}}function rk(a,b){return a.groupOrder!==b.groupOrder?a.groupOrder-b.groupOrder:a.renderOrder!==b.renderOrder?a.renderOrder-b.renderOrder:a.program!==b.program?a.program.id-b.program.id:a.material.id!==b.material.id?a.material.id-b.material.id:a.z!==b.z?a.z-b.z:a.id-b.id}function sk(a,b){return a.groupOrder!==b.groupOrder?a.groupOrder-b.groupOrder:
 a.get(b);void 0===c&&(c={},a.set(b,c));return c},remove:function(b){a.delete(b)},update:function(b,c,d){a.get(b)[c]=d},dispose:function(){a=new WeakMap}}}function rk(a,b){return a.groupOrder!==b.groupOrder?a.groupOrder-b.groupOrder:a.renderOrder!==b.renderOrder?a.renderOrder-b.renderOrder:a.program!==b.program?a.program.id-b.program.id:a.material.id!==b.material.id?a.material.id-b.material.id:a.z!==b.z?a.z-b.z:a.id-b.id}function sk(a,b){return a.groupOrder!==b.groupOrder?a.groupOrder-b.groupOrder:
-a.renderOrder!==b.renderOrder?a.renderOrder-b.renderOrder:a.z!==b.z?b.z-a.z:a.id-b.id}function Th(){function a(a,d,e,n,t,p){var g=b[c];void 0===g?(g={id:a.id,object:a,geometry:d,material:e,program:e.program||f,groupOrder:n,renderOrder:a.renderOrder,z:t,group:p},b[c]=g):(g.id=a.id,g.object=a,g.geometry=d,g.material=e,g.program=e.program||f,g.groupOrder=n,g.renderOrder=a.renderOrder,g.z=t,g.group=p);c++;return g}var b=[],c=0,d=[],e=[],f={id:-1};return{opaque:d,transparent:e,init:function(){c=0;d.length=
-0;e.length=0},push:function(b,c,f,n,t,p){b=a(b,c,f,n,t,p);(!0===f.transparent?e:d).push(b)},unshift:function(b,c,f,n,t,p){b=a(b,c,f,n,t,p);(!0===f.transparent?e:d).unshift(b)},finish:function(){for(var a=c,d=b.length;a<d;a++){var e=b[a];if(null===e.id)break;e.id=null;e.object=null;e.geometry=null;e.material=null;e.program=null;e.group=null}},sort:function(a,b){1<d.length&&d.sort(a||rk);1<e.length&&e.sort(b||sk)}}}function tk(){function a(c){c=c.target;c.removeEventListener("dispose",a);b.delete(c)}
+a.renderOrder!==b.renderOrder?a.renderOrder-b.renderOrder:a.z!==b.z?b.z-a.z:a.id-b.id}function Th(){function a(a,d,e,n,q,p){var g=b[c];void 0===g?(g={id:a.id,object:a,geometry:d,material:e,program:e.program||f,groupOrder:n,renderOrder:a.renderOrder,z:q,group:p},b[c]=g):(g.id=a.id,g.object=a,g.geometry=d,g.material=e,g.program=e.program||f,g.groupOrder=n,g.renderOrder=a.renderOrder,g.z=q,g.group=p);c++;return g}var b=[],c=0,d=[],e=[],f={id:-1};return{opaque:d,transparent:e,init:function(){c=0;d.length=
+0;e.length=0},push:function(b,c,f,n,q,p){b=a(b,c,f,n,q,p);(!0===f.transparent?e:d).push(b)},unshift:function(b,c,f,n,q,p){b=a(b,c,f,n,q,p);(!0===f.transparent?e:d).unshift(b)},finish:function(){for(var a=c,d=b.length;a<d;a++){var e=b[a];if(null===e.id)break;e.id=null;e.object=null;e.geometry=null;e.material=null;e.program=null;e.group=null}},sort:function(a,b){1<d.length&&d.sort(a||rk);1<e.length&&e.sort(b||sk)}}}function tk(){function a(c){c=c.target;c.removeEventListener("dispose",a);b.delete(c)}
 var b=new WeakMap;return{get:function(c,d){var e=b.get(c);if(void 0===e){var f=new Th;b.set(c,new WeakMap);b.get(c).set(d,f);c.addEventListener("dispose",a)}else f=e.get(d),void 0===f&&(f=new Th,e.set(d,f));return f},dispose:function(){b=new WeakMap}}}function uk(){var a={};return{get:function(b){if(void 0!==a[b.id])return a[b.id];switch(b.type){case "DirectionalLight":var c={direction:new m,color:new D};break;case "SpotLight":c={position:new m,direction:new m,color:new D,distance:0,coneCos:0,penumbraCos:0,
 var b=new WeakMap;return{get:function(c,d){var e=b.get(c);if(void 0===e){var f=new Th;b.set(c,new WeakMap);b.get(c).set(d,f);c.addEventListener("dispose",a)}else f=e.get(d),void 0===f&&(f=new Th,e.set(d,f));return f},dispose:function(){b=new WeakMap}}}function uk(){var a={};return{get:function(b){if(void 0!==a[b.id])return a[b.id];switch(b.type){case "DirectionalLight":var c={direction:new m,color:new D};break;case "SpotLight":c={position:new m,direction:new m,color:new D,distance:0,coneCos:0,penumbraCos:0,
 decay:0};break;case "PointLight":c={position:new m,color:new D,distance:0,decay:0};break;case "HemisphereLight":c={direction:new m,skyColor:new D,groundColor:new D};break;case "RectAreaLight":c={color:new D,position:new m,halfWidth:new m,halfHeight:new m}}return a[b.id]=c}}}function vk(){var a={};return{get:function(b){if(void 0!==a[b.id])return a[b.id];switch(b.type){case "DirectionalLight":var c={shadowBias:0,shadowRadius:1,shadowMapSize:new w};break;case "SpotLight":c={shadowBias:0,shadowRadius:1,
 decay:0};break;case "PointLight":c={position:new m,color:new D,distance:0,decay:0};break;case "HemisphereLight":c={direction:new m,skyColor:new D,groundColor:new D};break;case "RectAreaLight":c={color:new D,position:new m,halfWidth:new m,halfHeight:new m}}return a[b.id]=c}}}function vk(){var a={};return{get:function(b){if(void 0!==a[b.id])return a[b.id];switch(b.type){case "DirectionalLight":var c={shadowBias:0,shadowRadius:1,shadowMapSize:new w};break;case "SpotLight":c={shadowBias:0,shadowRadius:1,
 shadowMapSize:new w};break;case "PointLight":c={shadowBias:0,shadowRadius:1,shadowMapSize:new w,shadowCameraNear:1,shadowCameraFar:1E3}}return a[b.id]=c}}}function wk(a,b){return(b.castShadow?1:0)-(a.castShadow?1:0)}function xk(){for(var a=new uk,b=vk(),c={version:0,hash:{directionalLength:-1,pointLength:-1,spotLength:-1,rectAreaLength:-1,hemiLength:-1,numDirectionalShadows:-1,numPointShadows:-1,numSpotShadows:-1},ambient:[0,0,0],probe:[],directional:[],directionalShadow:[],directionalShadowMap:[],
 shadowMapSize:new w};break;case "PointLight":c={shadowBias:0,shadowRadius:1,shadowMapSize:new w,shadowCameraNear:1,shadowCameraFar:1E3}}return a[b.id]=c}}}function wk(a,b){return(b.castShadow?1:0)-(a.castShadow?1:0)}function xk(){for(var a=new uk,b=vk(),c={version:0,hash:{directionalLength:-1,pointLength:-1,spotLength:-1,rectAreaLength:-1,hemiLength:-1,numDirectionalShadows:-1,numPointShadows:-1,numSpotShadows:-1},ambient:[0,0,0],probe:[],directional:[],directionalShadow:[],directionalShadowMap:[],
-directionalShadowMatrix:[],spot:[],spotShadow:[],spotShadowMap:[],spotShadowMatrix:[],rectArea:[],point:[],pointShadow:[],pointShadowMap:[],pointShadowMatrix:[],hemi:[]},d=0;9>d;d++)c.probe.push(new m);var e=new m,f=new M,g=new M;return{setup:function(d,l,n){for(var h=l=0,p=0,k=0;9>k;k++)c.probe[k].set(0,0,0);var r=k=0,q=0,u=0,m=0,E=0,x=0,Ea=0;n=n.matrixWorldInverse;d.sort(wk);for(var ja=0,U=d.length;ja<U;ja++){var C=d[ja],w=C.color,P=C.intensity,aa=C.distance,fa=C.shadow&&C.shadow.map?C.shadow.map.texture:
+directionalShadowMatrix:[],spot:[],spotShadow:[],spotShadowMap:[],spotShadowMatrix:[],rectArea:[],point:[],pointShadow:[],pointShadowMap:[],pointShadowMatrix:[],hemi:[]},d=0;9>d;d++)c.probe.push(new m);var e=new m,f=new M,g=new M;return{setup:function(d,l,n){for(var h=l=0,p=0,k=0;9>k;k++)c.probe[k].set(0,0,0);var t=k=0,r=0,u=0,m=0,E=0,x=0,Ea=0;n=n.matrixWorldInverse;d.sort(wk);for(var ja=0,U=d.length;ja<U;ja++){var C=d[ja],w=C.color,P=C.intensity,aa=C.distance,fa=C.shadow&&C.shadow.map?C.shadow.map.texture:
 null;if(C.isAmbientLight)l+=w.r*P,h+=w.g*P,p+=w.b*P;else if(C.isLightProbe)for(fa=0;9>fa;fa++)c.probe[fa].addScaledVector(C.sh.coefficients[fa],P);else if(C.isDirectionalLight){P=a.get(C);P.color.copy(C.color).multiplyScalar(C.intensity);P.direction.setFromMatrixPosition(C.matrixWorld);e.setFromMatrixPosition(C.target.matrixWorld);P.direction.sub(e);P.direction.transformDirection(n);if(C.castShadow){var ka=C.shadow;w=b.get(C);w.shadowBias=ka.bias;w.shadowRadius=ka.radius;w.shadowMapSize=ka.mapSize;
 null;if(C.isAmbientLight)l+=w.r*P,h+=w.g*P,p+=w.b*P;else if(C.isLightProbe)for(fa=0;9>fa;fa++)c.probe[fa].addScaledVector(C.sh.coefficients[fa],P);else if(C.isDirectionalLight){P=a.get(C);P.color.copy(C.color).multiplyScalar(C.intensity);P.direction.setFromMatrixPosition(C.matrixWorld);e.setFromMatrixPosition(C.target.matrixWorld);P.direction.sub(e);P.direction.transformDirection(n);if(C.castShadow){var ka=C.shadow;w=b.get(C);w.shadowBias=ka.bias;w.shadowRadius=ka.radius;w.shadowMapSize=ka.mapSize;
 c.directionalShadow[k]=w;c.directionalShadowMap[k]=fa;c.directionalShadowMatrix[k]=C.shadow.matrix;E++}c.directional[k]=P;k++}else C.isSpotLight?(ka=a.get(C),ka.position.setFromMatrixPosition(C.matrixWorld),ka.position.applyMatrix4(n),ka.color.copy(w).multiplyScalar(P),ka.distance=aa,ka.direction.setFromMatrixPosition(C.matrixWorld),e.setFromMatrixPosition(C.target.matrixWorld),ka.direction.sub(e),ka.direction.transformDirection(n),ka.coneCos=Math.cos(C.angle),ka.penumbraCos=Math.cos(C.angle*(1-C.penumbra)),
 c.directionalShadow[k]=w;c.directionalShadowMap[k]=fa;c.directionalShadowMatrix[k]=C.shadow.matrix;E++}c.directional[k]=P;k++}else C.isSpotLight?(ka=a.get(C),ka.position.setFromMatrixPosition(C.matrixWorld),ka.position.applyMatrix4(n),ka.color.copy(w).multiplyScalar(P),ka.distance=aa,ka.direction.setFromMatrixPosition(C.matrixWorld),e.setFromMatrixPosition(C.target.matrixWorld),ka.direction.sub(e),ka.direction.transformDirection(n),ka.coneCos=Math.cos(C.angle),ka.penumbraCos=Math.cos(C.angle*(1-C.penumbra)),
-ka.decay=C.decay,C.castShadow&&(P=C.shadow,w=b.get(C),w.shadowBias=P.bias,w.shadowRadius=P.radius,w.shadowMapSize=P.mapSize,c.spotShadow[q]=w,c.spotShadowMap[q]=fa,c.spotShadowMatrix[q]=C.shadow.matrix,Ea++),c.spot[q]=ka,q++):C.isRectAreaLight?(fa=a.get(C),fa.color.copy(w).multiplyScalar(P),fa.position.setFromMatrixPosition(C.matrixWorld),fa.position.applyMatrix4(n),g.identity(),f.copy(C.matrixWorld),f.premultiply(n),g.extractRotation(f),fa.halfWidth.set(.5*C.width,0,0),fa.halfHeight.set(0,.5*C.height,
-0),fa.halfWidth.applyMatrix4(g),fa.halfHeight.applyMatrix4(g),c.rectArea[u]=fa,u++):C.isPointLight?(P=a.get(C),P.position.setFromMatrixPosition(C.matrixWorld),P.position.applyMatrix4(n),P.color.copy(C.color).multiplyScalar(C.intensity),P.distance=C.distance,P.decay=C.decay,C.castShadow&&(ka=C.shadow,w=b.get(C),w.shadowBias=ka.bias,w.shadowRadius=ka.radius,w.shadowMapSize=ka.mapSize,w.shadowCameraNear=ka.camera.near,w.shadowCameraFar=ka.camera.far,c.pointShadow[r]=w,c.pointShadowMap[r]=fa,c.pointShadowMatrix[r]=
-C.shadow.matrix,x++),c.point[r]=P,r++):C.isHemisphereLight&&(fa=a.get(C),fa.direction.setFromMatrixPosition(C.matrixWorld),fa.direction.transformDirection(n),fa.direction.normalize(),fa.skyColor.copy(C.color).multiplyScalar(P),fa.groundColor.copy(C.groundColor).multiplyScalar(P),c.hemi[m]=fa,m++)}c.ambient[0]=l;c.ambient[1]=h;c.ambient[2]=p;d=c.hash;if(d.directionalLength!==k||d.pointLength!==r||d.spotLength!==q||d.rectAreaLength!==u||d.hemiLength!==m||d.numDirectionalShadows!==E||d.numPointShadows!==
-x||d.numSpotShadows!==Ea)c.directional.length=k,c.spot.length=q,c.rectArea.length=u,c.point.length=r,c.hemi.length=m,c.directionalShadow.length=E,c.directionalShadowMap.length=E,c.pointShadow.length=x,c.pointShadowMap.length=x,c.spotShadow.length=Ea,c.spotShadowMap.length=Ea,c.directionalShadowMatrix.length=E,c.pointShadowMatrix.length=x,c.spotShadowMatrix.length=Ea,d.directionalLength=k,d.pointLength=r,d.spotLength=q,d.rectAreaLength=u,d.hemiLength=m,d.numDirectionalShadows=E,d.numPointShadows=x,
+ka.decay=C.decay,C.castShadow&&(P=C.shadow,w=b.get(C),w.shadowBias=P.bias,w.shadowRadius=P.radius,w.shadowMapSize=P.mapSize,c.spotShadow[r]=w,c.spotShadowMap[r]=fa,c.spotShadowMatrix[r]=C.shadow.matrix,Ea++),c.spot[r]=ka,r++):C.isRectAreaLight?(fa=a.get(C),fa.color.copy(w).multiplyScalar(P),fa.position.setFromMatrixPosition(C.matrixWorld),fa.position.applyMatrix4(n),g.identity(),f.copy(C.matrixWorld),f.premultiply(n),g.extractRotation(f),fa.halfWidth.set(.5*C.width,0,0),fa.halfHeight.set(0,.5*C.height,
+0),fa.halfWidth.applyMatrix4(g),fa.halfHeight.applyMatrix4(g),c.rectArea[u]=fa,u++):C.isPointLight?(P=a.get(C),P.position.setFromMatrixPosition(C.matrixWorld),P.position.applyMatrix4(n),P.color.copy(C.color).multiplyScalar(C.intensity),P.distance=C.distance,P.decay=C.decay,C.castShadow&&(ka=C.shadow,w=b.get(C),w.shadowBias=ka.bias,w.shadowRadius=ka.radius,w.shadowMapSize=ka.mapSize,w.shadowCameraNear=ka.camera.near,w.shadowCameraFar=ka.camera.far,c.pointShadow[t]=w,c.pointShadowMap[t]=fa,c.pointShadowMatrix[t]=
+C.shadow.matrix,x++),c.point[t]=P,t++):C.isHemisphereLight&&(fa=a.get(C),fa.direction.setFromMatrixPosition(C.matrixWorld),fa.direction.transformDirection(n),fa.direction.normalize(),fa.skyColor.copy(C.color).multiplyScalar(P),fa.groundColor.copy(C.groundColor).multiplyScalar(P),c.hemi[m]=fa,m++)}c.ambient[0]=l;c.ambient[1]=h;c.ambient[2]=p;d=c.hash;if(d.directionalLength!==k||d.pointLength!==t||d.spotLength!==r||d.rectAreaLength!==u||d.hemiLength!==m||d.numDirectionalShadows!==E||d.numPointShadows!==
+x||d.numSpotShadows!==Ea)c.directional.length=k,c.spot.length=r,c.rectArea.length=u,c.point.length=t,c.hemi.length=m,c.directionalShadow.length=E,c.directionalShadowMap.length=E,c.pointShadow.length=x,c.pointShadowMap.length=x,c.spotShadow.length=Ea,c.spotShadowMap.length=Ea,c.directionalShadowMatrix.length=E,c.pointShadowMatrix.length=x,c.spotShadowMatrix.length=Ea,d.directionalLength=k,d.pointLength=t,d.spotLength=r,d.rectAreaLength=u,d.hemiLength=m,d.numDirectionalShadows=E,d.numPointShadows=x,
 d.numSpotShadows=Ea,c.version=yk++},state:c}}function Uh(){var a=new xk,b=[],c=[];return{init:function(){b.length=0;c.length=0},state:{lightsArray:b,shadowsArray:c,lights:a},setupLights:function(d){a.setup(b,c,d)},pushLight:function(a){b.push(a)},pushShadow:function(a){c.push(a)}}}function zk(){function a(c){c=c.target;c.removeEventListener("dispose",a);b.delete(c)}var b=new WeakMap;return{get:function(c,d){if(!1===b.has(c)){var e=new Uh;b.set(c,new WeakMap);b.get(c).set(d,e);c.addEventListener("dispose",
 d.numSpotShadows=Ea,c.version=yk++},state:c}}function Uh(){var a=new xk,b=[],c=[];return{init:function(){b.length=0;c.length=0},state:{lightsArray:b,shadowsArray:c,lights:a},setupLights:function(d){a.setup(b,c,d)},pushLight:function(a){b.push(a)},pushShadow:function(a){c.push(a)}}}function zk(){function a(c){c=c.target;c.removeEventListener("dispose",a);b.delete(c)}var b=new WeakMap;return{get:function(c,d){if(!1===b.has(c)){var e=new Uh;b.set(c,new WeakMap);b.get(c).set(d,e);c.addEventListener("dispose",
 a)}else!1===b.get(c).has(d)?(e=new Uh,b.get(c).set(d,e)):e=b.get(c).get(d);return e},dispose:function(){b=new WeakMap}}}function Gb(a){G.call(this);this.type="MeshDepthMaterial";this.depthPacking=3200;this.morphTargets=this.skinning=!1;this.displacementMap=this.alphaMap=this.map=null;this.displacementScale=1;this.displacementBias=0;this.wireframe=!1;this.wireframeLinewidth=1;this.fog=!1;this.setValues(a)}function Hb(a){G.call(this);this.type="MeshDistanceMaterial";this.referencePosition=new m;this.nearDistance=
 a)}else!1===b.get(c).has(d)?(e=new Uh,b.get(c).set(d,e)):e=b.get(c).get(d);return e},dispose:function(){b=new WeakMap}}}function Gb(a){G.call(this);this.type="MeshDepthMaterial";this.depthPacking=3200;this.morphTargets=this.skinning=!1;this.displacementMap=this.alphaMap=this.map=null;this.displacementScale=1;this.displacementBias=0;this.wireframe=!1;this.wireframeLinewidth=1;this.fog=!1;this.setValues(a)}function Hb(a){G.call(this);this.type="MeshDistanceMaterial";this.referencePosition=new m;this.nearDistance=
-1;this.farDistance=1E3;this.morphTargets=this.skinning=!1;this.displacementMap=this.alphaMap=this.map=null;this.displacementScale=1;this.displacementBias=0;this.fog=!1;this.setValues(a)}function Vh(a,b,c){function d(a,b,c){c=a<<0|b<<1|c<<2;var d=p[c];void 0===d&&(d=new Gb({depthPacking:3201,morphTargets:a,skinning:b}),p[c]=d);return d}function e(a,b,c){c=a<<0|b<<1|c<<2;var d=k[c];void 0===d&&(d=new Hb({morphTargets:a,skinning:b}),k[c]=d);return d}function f(b,c,f,g,h,l,n){var t=d,p=b.customDepthMaterial;
-!0===g.isPointLight&&(t=e,p=b.customDistanceMaterial);void 0===p?(p=!1,!0===f.morphTargets&&(p=c.morphAttributes&&c.morphAttributes.position&&0<c.morphAttributes.position.length),c=!1,!0===b.isSkinnedMesh&&(!0===f.skinning?c=!0:console.warn("THREE.WebGLShadowMap: THREE.SkinnedMesh with material.skinning set to false:",b)),b=t(p,c,!0===b.isInstancedMesh)):b=p;a.localClippingEnabled&&!0===f.clipShadows&&0!==f.clippingPlanes.length&&(p=b.uuid,t=f.uuid,c=r[p],void 0===c&&(c={},r[p]=c),p=c[t],void 0===
-p&&(p=b.clone(),c[t]=p),b=p);b.visible=f.visible;b.wireframe=f.wireframe;b.side=3===n?null!==f.shadowSide?f.shadowSide:f.side:null!==f.shadowSide?f.shadowSide:q[f.side];b.clipShadows=f.clipShadows;b.clippingPlanes=f.clippingPlanes;b.clipIntersection=f.clipIntersection;b.wireframeLinewidth=f.wireframeLinewidth;b.linewidth=f.linewidth;!0===g.isPointLight&&!0===b.isMeshDistanceMaterial&&(b.referencePosition.setFromMatrixPosition(g.matrixWorld),b.nearDistance=h,b.farDistance=l);return b}function g(c,
-d,e,l,n){if(!1!==c.visible){if(c.layers.test(d.layers)&&(c.isMesh||c.isLine||c.isPoints)&&(c.castShadow||c.receiveShadow&&3===n)&&(!c.frustumCulled||h.intersectsObject(c))){c.modelViewMatrix.multiplyMatrices(e.matrixWorldInverse,c.matrixWorld);var t=b.update(c),p=c.material;if(Array.isArray(p))for(var k=t.groups,v=0,q=k.length;v<q;v++){var r=k[v],u=p[r.materialIndex];u&&u.visible&&(u=f(c,t,u,l,e.near,e.far,n),a.renderBufferDirect(e,null,t,u,c,r))}else p.visible&&(p=f(c,t,p,l,e.near,e.far,n),a.renderBufferDirect(e,
-null,t,p,c,null))}c=c.children;t=0;for(p=c.length;t<p;t++)g(c[t],d,e,l,n)}}var h=new Fc,l=new w,n=new w,t=new Y,p=[],k=[],r={},q={0:1,1:0,2:2},u=new Ba({defines:{SAMPLE_RATE:.25,HALF_SAMPLE_RATE:.125},uniforms:{shadow_pass:{value:null},resolution:{value:new w},radius:{value:4}},vertexShader:"void main() {\n\tgl_Position = vec4( position, 1.0 );\n}",fragmentShader:"uniform sampler2D shadow_pass;\nuniform vec2 resolution;\nuniform float radius;\n#include <packing>\nvoid main() {\n  float mean = 0.0;\n  float squared_mean = 0.0;\n\tfloat depth = unpackRGBAToDepth( texture2D( shadow_pass, ( gl_FragCoord.xy  ) / resolution ) );\n  for ( float i = -1.0; i < 1.0 ; i += SAMPLE_RATE) {\n    #ifdef HORIZONAL_PASS\n      vec2 distribution = unpackRGBATo2Half( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( i, 0.0 ) * radius ) / resolution ) );\n      mean += distribution.x;\n      squared_mean += distribution.y * distribution.y + distribution.x * distribution.x;\n    #else\n      float depth = unpackRGBAToDepth( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( 0.0,  i )  * radius ) / resolution ) );\n      mean += depth;\n      squared_mean += depth * depth;\n    #endif\n  }\n  mean = mean * HALF_SAMPLE_RATE;\n  squared_mean = squared_mean * HALF_SAMPLE_RATE;\n  float std_dev = sqrt( squared_mean - mean * mean );\n  gl_FragColor = pack2HalfToRGBA( vec2( mean, std_dev ) );\n}"}),
-m=u.clone();m.defines.HORIZONAL_PASS=1;var E=new F;E.setAttribute("position",new H(new Float32Array([-1,-1,.5,3,-1,.5,-1,3,.5]),3));var x=new X(E,u),Ea=this;this.enabled=!1;this.autoUpdate=!0;this.needsUpdate=!1;this.type=1;this.render=function(d,e,f){if(!1!==Ea.enabled&&(!1!==Ea.autoUpdate||!1!==Ea.needsUpdate)&&0!==d.length){var p=a.getRenderTarget(),k=a.getActiveCubeFace(),v=a.getActiveMipmapLevel(),q=a.state;q.setBlending(0);q.buffers.color.setClear(1,1,1,1);q.buffers.depth.setTest(!0);q.setScissorTest(!1);
-for(var r=0,A=d.length;r<A;r++){var E=d[r],C=E.shadow;if(void 0===C)console.warn("THREE.WebGLShadowMap:",E,"has no shadow.");else{l.copy(C.mapSize);var w=C.getFrameExtents();l.multiply(w);n.copy(C.mapSize);if(l.x>c||l.y>c)l.x>c&&(n.x=Math.floor(c/w.x),l.x=n.x*w.x,C.mapSize.x=n.x),l.y>c&&(n.y=Math.floor(c/w.y),l.y=n.y*w.y,C.mapSize.y=n.y);null!==C.map||C.isPointLightShadow||3!==this.type||(w={minFilter:1006,magFilter:1006,format:1023},C.map=new Ha(l.x,l.y,w),C.map.texture.name=E.name+".shadowMap",
-C.mapPass=new Ha(l.x,l.y,w),C.camera.updateProjectionMatrix());null===C.map&&(C.map=new Ha(l.x,l.y,{minFilter:1003,magFilter:1003,format:1023}),C.map.texture.name=E.name+".shadowMap",C.camera.updateProjectionMatrix());a.setRenderTarget(C.map);a.clear();w=C.getViewportCount();for(var U=0;U<w;U++){var ja=C.getViewport(U);t.set(n.x*ja.x,n.y*ja.y,n.x*ja.z,n.y*ja.w);q.viewport(t);C.updateMatrices(E,U);h=C.getFrustum();g(e,f,C.camera,E,this.type)}C.isPointLightShadow||3!==this.type||(E=C,C=f,w=b.update(x),
-u.uniforms.shadow_pass.value=E.map.texture,u.uniforms.resolution.value=E.mapSize,u.uniforms.radius.value=E.radius,a.setRenderTarget(E.mapPass),a.clear(),a.renderBufferDirect(C,null,w,u,x,null),m.uniforms.shadow_pass.value=E.mapPass.texture,m.uniforms.resolution.value=E.mapSize,m.uniforms.radius.value=E.radius,a.setRenderTarget(E.map),a.clear(),a.renderBufferDirect(C,null,w,m,x,null))}}Ea.needsUpdate=!1;a.setRenderTarget(p,k,v)}}}function Ak(a,b,c){function d(b,c,d){var e=new Uint8Array(4),f=a.createTexture();
-a.bindTexture(b,f);a.texParameteri(b,10241,9728);a.texParameteri(b,10240,9728);for(b=0;b<d;b++)a.texImage2D(c+b,0,6408,1,1,0,6408,5121,e);return f}function e(c,d){m[c]=1;0===E[c]&&(a.enableVertexAttribArray(c),E[c]=1);x[c]!==d&&((k?a:b.get("ANGLE_instanced_arrays"))[k?"vertexAttribDivisor":"vertexAttribDivisorANGLE"](c,d),x[c]=d)}function f(b){!0!==w[b]&&(a.enable(b),w[b]=!0)}function g(b){!1!==w[b]&&(a.disable(b),w[b]=!1)}function h(b,c,d,e,h,l,n,t){if(0===b)U&&(g(3042),U=!1);else if(U||(f(3042),
-U=!0),5!==b){if(b!==C||t!==y){if(100!==z||100!==fa)a.blendEquation(32774),fa=z=100;if(t)switch(b){case 1:a.blendFuncSeparate(1,771,1,771);break;case 2:a.blendFunc(1,1);break;case 3:a.blendFuncSeparate(0,0,769,771);break;case 4:a.blendFuncSeparate(0,768,0,770);break;default:console.error("THREE.WebGLState: Invalid blending: ",b)}else switch(b){case 1:a.blendFuncSeparate(770,771,1,771);break;case 2:a.blendFunc(770,1);break;case 3:a.blendFunc(0,769);break;case 4:a.blendFunc(0,768);break;default:console.error("THREE.WebGLState: Invalid blending: ",
-b)}B=ka=aa=P=null;C=b;y=t}}else{h=h||c;l=l||d;n=n||e;if(c!==z||h!==fa)a.blendEquationSeparate(ea[c],ea[h]),z=c,fa=h;if(d!==P||e!==aa||l!==ka||n!==B)a.blendFuncSeparate(da[d],da[e],da[l],da[n]),P=d,aa=e,ka=l,B=n;C=b;y=null}}function l(b){D!==b&&(b?a.frontFace(2304):a.frontFace(2305),D=b)}function n(b){0!==b?(f(2884),b!==F&&(1===b?a.cullFace(1029):2===b?a.cullFace(1028):a.cullFace(1032))):g(2884);F=b}function t(b,c,d){if(b){if(f(32823),H!==c||G!==d)a.polygonOffset(c,d),H=c,G=d}else g(32823)}function p(b){void 0===
-b&&(b=33984+L-1);M!==b&&(a.activeTexture(b),M=b)}var k=c.isWebGL2,r=new function(){var b=!1,c=new Y,d=null,e=new Y(0,0,0,0);return{setMask:function(c){d===c||b||(a.colorMask(c,c,c,c),d=c)},setLocked:function(a){b=a},setClear:function(b,d,f,g,h){!0===h&&(b*=g,d*=g,f*=g);c.set(b,d,f,g);!1===e.equals(c)&&(a.clearColor(b,d,f,g),e.copy(c))},reset:function(){b=!1;d=null;e.set(-1,0,0,0)}}},q=new function(){var b=!1,c=null,d=null,e=null;return{setTest:function(a){a?f(2929):g(2929)},setMask:function(d){c===
+1;this.farDistance=1E3;this.morphTargets=this.skinning=!1;this.displacementMap=this.alphaMap=this.map=null;this.displacementScale=1;this.displacementBias=0;this.fog=!1;this.setValues(a)}function Vh(a,b,c){function d(a,b,c){c=a<<0|b<<1|c<<2;var d=k[c];void 0===d&&(d=new Gb({depthPacking:3201,morphTargets:a,skinning:b}),k[c]=d);return d}function e(a,b,c){c=a<<0|b<<1|c<<2;var d=v[c];void 0===d&&(d=new Hb({morphTargets:a,skinning:b}),v[c]=d);return d}function f(b,c,f,g,h,l,n){var q=d,k=b.customDepthMaterial;
+!0===g.isPointLight&&(q=e,k=b.customDistanceMaterial);void 0===k?(k=!1,!0===f.morphTargets&&(k=c.morphAttributes&&c.morphAttributes.position&&0<c.morphAttributes.position.length),c=!1,!0===b.isSkinnedMesh&&(!0===f.skinning?c=!0:console.warn("THREE.WebGLShadowMap: THREE.SkinnedMesh with material.skinning set to false:",b)),b=q(k,c,!0===b.isInstancedMesh)):b=k;a.localClippingEnabled&&!0===f.clipShadows&&0!==f.clippingPlanes.length&&(k=b.uuid,q=f.uuid,c=t[k],void 0===c&&(c={},t[k]=c),k=c[q],void 0===
+k&&(k=b.clone(),c[q]=k),b=k);b.visible=f.visible;b.wireframe=f.wireframe;b.side=3===n?null!==f.shadowSide?f.shadowSide:f.side:null!==f.shadowSide?f.shadowSide:r[f.side];b.clipShadows=f.clipShadows;b.clippingPlanes=f.clippingPlanes;b.clipIntersection=f.clipIntersection;b.wireframeLinewidth=f.wireframeLinewidth;b.linewidth=f.linewidth;!0===g.isPointLight&&!0===b.isMeshDistanceMaterial&&(b.referencePosition.setFromMatrixPosition(g.matrixWorld),b.nearDistance=h,b.farDistance=l);return b}function g(c,
+d,e,l,n){if(!1!==c.visible){if(c.layers.test(d.layers)&&(c.isMesh||c.isLine||c.isPoints)&&(c.castShadow||c.receiveShadow&&3===n)&&(!c.frustumCulled||h.intersectsObject(c))){c.modelViewMatrix.multiplyMatrices(e.matrixWorldInverse,c.matrixWorld);var q=b.update(c),k=c.material;if(Array.isArray(k))for(var p=q.groups,v=0,r=p.length;v<r;v++){var t=p[v],u=k[t.materialIndex];u&&u.visible&&(u=f(c,q,u,l,e.near,e.far,n),a.renderBufferDirect(e,null,q,u,c,t))}else k.visible&&(k=f(c,q,k,l,e.near,e.far,n),a.renderBufferDirect(e,
+null,q,k,c,null))}c=c.children;q=0;for(k=c.length;q<k;q++)g(c[q],d,e,l,n)}}var h=new Fc,l=new w,n=new w,q=new Y,k=[],v=[],t={},r={0:1,1:0,2:2},u=new Ba({defines:{SAMPLE_RATE:.25,HALF_SAMPLE_RATE:.125},uniforms:{shadow_pass:{value:null},resolution:{value:new w},radius:{value:4}},vertexShader:"void main() {\n\tgl_Position = vec4( position, 1.0 );\n}",fragmentShader:"uniform sampler2D shadow_pass;\nuniform vec2 resolution;\nuniform float radius;\n#include <packing>\nvoid main() {\n  float mean = 0.0;\n  float squared_mean = 0.0;\n\tfloat depth = unpackRGBAToDepth( texture2D( shadow_pass, ( gl_FragCoord.xy  ) / resolution ) );\n  for ( float i = -1.0; i < 1.0 ; i += SAMPLE_RATE) {\n    #ifdef HORIZONAL_PASS\n      vec2 distribution = unpackRGBATo2Half( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( i, 0.0 ) * radius ) / resolution ) );\n      mean += distribution.x;\n      squared_mean += distribution.y * distribution.y + distribution.x * distribution.x;\n    #else\n      float depth = unpackRGBAToDepth( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( 0.0,  i )  * radius ) / resolution ) );\n      mean += depth;\n      squared_mean += depth * depth;\n    #endif\n  }\n  mean = mean * HALF_SAMPLE_RATE;\n  squared_mean = squared_mean * HALF_SAMPLE_RATE;\n  float std_dev = sqrt( squared_mean - mean * mean );\n  gl_FragColor = pack2HalfToRGBA( vec2( mean, std_dev ) );\n}"}),
+m=u.clone();m.defines.HORIZONAL_PASS=1;var E=new F;E.setAttribute("position",new H(new Float32Array([-1,-1,.5,3,-1,.5,-1,3,.5]),3));var x=new X(E,u),Ea=this;this.enabled=!1;this.autoUpdate=!0;this.needsUpdate=!1;this.type=1;this.render=function(d,e,f){if(!1!==Ea.enabled&&(!1!==Ea.autoUpdate||!1!==Ea.needsUpdate)&&0!==d.length){var k=a.getRenderTarget(),p=a.getActiveCubeFace(),v=a.getActiveMipmapLevel(),r=a.state;r.setBlending(0);r.buffers.color.setClear(1,1,1,1);r.buffers.depth.setTest(!0);r.setScissorTest(!1);
+for(var t=0,A=d.length;t<A;t++){var E=d[t],C=E.shadow;if(void 0===C)console.warn("THREE.WebGLShadowMap:",E,"has no shadow.");else{l.copy(C.mapSize);var w=C.getFrameExtents();l.multiply(w);n.copy(C.mapSize);if(l.x>c||l.y>c)l.x>c&&(n.x=Math.floor(c/w.x),l.x=n.x*w.x,C.mapSize.x=n.x),l.y>c&&(n.y=Math.floor(c/w.y),l.y=n.y*w.y,C.mapSize.y=n.y);null!==C.map||C.isPointLightShadow||3!==this.type||(w={minFilter:1006,magFilter:1006,format:1023},C.map=new Ha(l.x,l.y,w),C.map.texture.name=E.name+".shadowMap",
+C.mapPass=new Ha(l.x,l.y,w),C.camera.updateProjectionMatrix());null===C.map&&(C.map=new Ha(l.x,l.y,{minFilter:1003,magFilter:1003,format:1023}),C.map.texture.name=E.name+".shadowMap",C.camera.updateProjectionMatrix());a.setRenderTarget(C.map);a.clear();w=C.getViewportCount();for(var U=0;U<w;U++){var ja=C.getViewport(U);q.set(n.x*ja.x,n.y*ja.y,n.x*ja.z,n.y*ja.w);r.viewport(q);C.updateMatrices(E,U);h=C.getFrustum();g(e,f,C.camera,E,this.type)}C.isPointLightShadow||3!==this.type||(E=C,C=f,w=b.update(x),
+u.uniforms.shadow_pass.value=E.map.texture,u.uniforms.resolution.value=E.mapSize,u.uniforms.radius.value=E.radius,a.setRenderTarget(E.mapPass),a.clear(),a.renderBufferDirect(C,null,w,u,x,null),m.uniforms.shadow_pass.value=E.mapPass.texture,m.uniforms.resolution.value=E.mapSize,m.uniforms.radius.value=E.radius,a.setRenderTarget(E.map),a.clear(),a.renderBufferDirect(C,null,w,m,x,null))}}Ea.needsUpdate=!1;a.setRenderTarget(k,p,v)}}}function Ak(a,b,c){function d(b,c,d){var e=new Uint8Array(4),f=a.createTexture();
+a.bindTexture(b,f);a.texParameteri(b,10241,9728);a.texParameteri(b,10240,9728);for(b=0;b<d;b++)a.texImage2D(c+b,0,6408,1,1,0,6408,5121,e);return f}function e(c,d){m[c]=1;0===E[c]&&(a.enableVertexAttribArray(c),E[c]=1);x[c]!==d&&((v?a:b.get("ANGLE_instanced_arrays"))[v?"vertexAttribDivisor":"vertexAttribDivisorANGLE"](c,d),x[c]=d)}function f(b){!0!==w[b]&&(a.enable(b),w[b]=!0)}function g(b){!1!==w[b]&&(a.disable(b),w[b]=!1)}function h(b,c,d,e,h,l,n,q){if(0===b)U&&(g(3042),U=!1);else if(U||(f(3042),
+U=!0),5!==b){if(b!==C||q!==y){if(100!==z||100!==fa)a.blendEquation(32774),fa=z=100;if(q)switch(b){case 1:a.blendFuncSeparate(1,771,1,771);break;case 2:a.blendFunc(1,1);break;case 3:a.blendFuncSeparate(0,0,769,771);break;case 4:a.blendFuncSeparate(0,768,0,770);break;default:console.error("THREE.WebGLState: Invalid blending: ",b)}else switch(b){case 1:a.blendFuncSeparate(770,771,1,771);break;case 2:a.blendFunc(770,1);break;case 3:a.blendFunc(0,769);break;case 4:a.blendFunc(0,768);break;default:console.error("THREE.WebGLState: Invalid blending: ",
+b)}B=ka=aa=P=null;C=b;y=q}}else{h=h||c;l=l||d;n=n||e;if(c!==z||h!==fa)a.blendEquationSeparate(ea[c],ea[h]),z=c,fa=h;if(d!==P||e!==aa||l!==ka||n!==B)a.blendFuncSeparate(da[d],da[e],da[l],da[n]),P=d,aa=e,ka=l,B=n;C=b;y=null}}function l(b){D!==b&&(b?a.frontFace(2304):a.frontFace(2305),D=b)}function n(b){0!==b?(f(2884),b!==F&&(1===b?a.cullFace(1029):2===b?a.cullFace(1028):a.cullFace(1032))):g(2884);F=b}function q(b,c,d){if(b){if(f(32823),H!==c||G!==d)a.polygonOffset(c,d),H=c,G=d}else g(32823)}function k(b){void 0===
+b&&(b=33984+L-1);M!==b&&(a.activeTexture(b),M=b)}var v=c.isWebGL2,t=new function(){var b=!1,c=new Y,d=null,e=new Y(0,0,0,0);return{setMask:function(c){d===c||b||(a.colorMask(c,c,c,c),d=c)},setLocked:function(a){b=a},setClear:function(b,d,f,g,h){!0===h&&(b*=g,d*=g,f*=g);c.set(b,d,f,g);!1===e.equals(c)&&(a.clearColor(b,d,f,g),e.copy(c))},reset:function(){b=!1;d=null;e.set(-1,0,0,0)}}},r=new function(){var b=!1,c=null,d=null,e=null;return{setTest:function(a){a?f(2929):g(2929)},setMask:function(d){c===
 d||b||(a.depthMask(d),c=d)},setFunc:function(b){if(d!==b){if(b)switch(b){case 0:a.depthFunc(512);break;case 1:a.depthFunc(519);break;case 2:a.depthFunc(513);break;case 3:a.depthFunc(515);break;case 4:a.depthFunc(514);break;case 5:a.depthFunc(518);break;case 6:a.depthFunc(516);break;case 7:a.depthFunc(517);break;default:a.depthFunc(515)}else a.depthFunc(515);d=b}},setLocked:function(a){b=a},setClear:function(b){e!==b&&(a.clearDepth(b),e=b)},reset:function(){b=!1;e=d=c=null}}},u=new function(){var b=
 d||b||(a.depthMask(d),c=d)},setFunc:function(b){if(d!==b){if(b)switch(b){case 0:a.depthFunc(512);break;case 1:a.depthFunc(519);break;case 2:a.depthFunc(513);break;case 3:a.depthFunc(515);break;case 4:a.depthFunc(514);break;case 5:a.depthFunc(518);break;case 6:a.depthFunc(516);break;case 7:a.depthFunc(517);break;default:a.depthFunc(515)}else a.depthFunc(515);d=b}},setLocked:function(a){b=a},setClear:function(b){e!==b&&(a.clearDepth(b),e=b)},reset:function(){b=!1;e=d=c=null}}},u=new function(){var b=
-!1,c=null,d=null,e=null,h=null,l=null,n=null,t=null,p=null;return{setTest:function(a){b||(a?f(2960):g(2960))},setMask:function(d){c===d||b||(a.stencilMask(d),c=d)},setFunc:function(b,c,f){if(d!==b||e!==c||h!==f)a.stencilFunc(b,c,f),d=b,e=c,h=f},setOp:function(b,c,d){if(l!==b||n!==c||t!==d)a.stencilOp(b,c,d),l=b,n=c,t=d},setLocked:function(a){b=a},setClear:function(b){p!==b&&(a.clearStencil(b),p=b)},reset:function(){b=!1;p=t=n=l=h=e=d=c=null}}};c=a.getParameter(34921);var m=new Uint8Array(c),E=new Uint8Array(c),
-x=new Uint8Array(c),w={},ja=null,U=null,C=null,z=null,P=null,aa=null,fa=null,ka=null,B=null,y=!1,D=null,F=null,J=null,H=null,G=null,L=a.getParameter(35661),K=!1;c=0;c=a.getParameter(7938);-1!==c.indexOf("WebGL")?(c=parseFloat(/^WebGL ([0-9])/.exec(c)[1]),K=1<=c):-1!==c.indexOf("OpenGL ES")&&(c=parseFloat(/^OpenGL ES ([0-9])/.exec(c)[1]),K=2<=c);var M=null,Ld={},R=new Y,ba=new Y,Wa={};Wa[3553]=d(3553,3553,1);Wa[34067]=d(34067,34069,6);r.setClear(0,0,0,1);q.setClear(1);u.setClear(0);f(2929);q.setFunc(3);
-l(!1);n(1);f(2884);h(0);var ea={100:32774,101:32778,102:32779};k?(ea[103]=32775,ea[104]=32776):(c=b.get("EXT_blend_minmax"),null!==c&&(ea[103]=c.MIN_EXT,ea[104]=c.MAX_EXT));var da={200:0,201:1,202:768,204:770,210:776,208:774,206:772,203:769,205:771,209:775,207:773};return{buffers:{color:r,depth:q,stencil:u},initAttributes:function(){for(var a=0,b=m.length;a<b;a++)m[a]=0},enableAttribute:function(a){e(a,0)},enableAttributeAndDivisor:e,disableUnusedAttributes:function(){for(var b=0,c=E.length;b!==c;++b)E[b]!==
-m[b]&&(a.disableVertexAttribArray(b),E[b]=0)},vertexAttribPointer:function(b,c,d,e,f,g){!0!==k||5124!==d&&5125!==d?a.vertexAttribPointer(b,c,d,e,f,g):a.vertexAttribIPointer(b,c,d,e,f,g)},enable:f,disable:g,useProgram:function(b){return ja!==b?(a.useProgram(b),ja=b,!0):!1},setBlending:h,setMaterial:function(a,b){2===a.side?g(2884):f(2884);var c=1===a.side;b&&(c=!c);l(c);1===a.blending&&!1===a.transparent?h(0):h(a.blending,a.blendEquation,a.blendSrc,a.blendDst,a.blendEquationAlpha,a.blendSrcAlpha,a.blendDstAlpha,
-a.premultipliedAlpha);q.setFunc(a.depthFunc);q.setTest(a.depthTest);q.setMask(a.depthWrite);r.setMask(a.colorWrite);b=a.stencilWrite;u.setTest(b);b&&(u.setMask(a.stencilWriteMask),u.setFunc(a.stencilFunc,a.stencilRef,a.stencilFuncMask),u.setOp(a.stencilFail,a.stencilZFail,a.stencilZPass));t(a.polygonOffset,a.polygonOffsetFactor,a.polygonOffsetUnits)},setFlipSided:l,setCullFace:n,setLineWidth:function(b){b!==J&&(K&&a.lineWidth(b),J=b)},setPolygonOffset:t,setScissorTest:function(a){a?f(3089):g(3089)},
-activeTexture:p,bindTexture:function(b,c){null===M&&p();var d=Ld[M];void 0===d&&(d={type:void 0,texture:void 0},Ld[M]=d);if(d.type!==b||d.texture!==c)a.bindTexture(b,c||Wa[b]),d.type=b,d.texture=c},unbindTexture:function(){var b=Ld[M];void 0!==b&&void 0!==b.type&&(a.bindTexture(b.type,null),b.type=void 0,b.texture=void 0)},compressedTexImage2D:function(){try{a.compressedTexImage2D.apply(a,arguments)}catch(Jd){console.error("THREE.WebGLState:",Jd)}},texImage2D:function(){try{a.texImage2D.apply(a,arguments)}catch(Jd){console.error("THREE.WebGLState:",
-Jd)}},texImage3D:function(){try{a.texImage3D.apply(a,arguments)}catch(Jd){console.error("THREE.WebGLState:",Jd)}},scissor:function(b){!1===R.equals(b)&&(a.scissor(b.x,b.y,b.z,b.w),R.copy(b))},viewport:function(b){!1===ba.equals(b)&&(a.viewport(b.x,b.y,b.z,b.w),ba.copy(b))},reset:function(){for(var b=0;b<E.length;b++)1===E[b]&&(a.disableVertexAttribArray(b),E[b]=0);w={};M=null;Ld={};F=D=C=ja=null;r.reset();q.reset();u.reset()}}}function Bk(a,b,c,d,e,f,g){function h(a,b){return J?new OffscreenCanvas(a,
+!1,c=null,d=null,e=null,h=null,l=null,n=null,q=null,k=null;return{setTest:function(a){b||(a?f(2960):g(2960))},setMask:function(d){c===d||b||(a.stencilMask(d),c=d)},setFunc:function(b,c,f){if(d!==b||e!==c||h!==f)a.stencilFunc(b,c,f),d=b,e=c,h=f},setOp:function(b,c,d){if(l!==b||n!==c||q!==d)a.stencilOp(b,c,d),l=b,n=c,q=d},setLocked:function(a){b=a},setClear:function(b){k!==b&&(a.clearStencil(b),k=b)},reset:function(){b=!1;k=q=n=l=h=e=d=c=null}}};c=a.getParameter(34921);var m=new Uint8Array(c),E=new Uint8Array(c),
+x=new Uint8Array(c),w={},ja=null,U=null,C=null,z=null,P=null,aa=null,fa=null,ka=null,B=null,y=!1,D=null,F=null,J=null,H=null,G=null,L=a.getParameter(35661),K=!1;c=0;c=a.getParameter(7938);-1!==c.indexOf("WebGL")?(c=parseFloat(/^WebGL ([0-9])/.exec(c)[1]),K=1<=c):-1!==c.indexOf("OpenGL ES")&&(c=parseFloat(/^OpenGL ES ([0-9])/.exec(c)[1]),K=2<=c);var M=null,Ld={},R=new Y,ba=new Y,Wa={};Wa[3553]=d(3553,3553,1);Wa[34067]=d(34067,34069,6);t.setClear(0,0,0,1);r.setClear(1);u.setClear(0);f(2929);r.setFunc(3);
+l(!1);n(1);f(2884);h(0);var ea={100:32774,101:32778,102:32779};v?(ea[103]=32775,ea[104]=32776):(c=b.get("EXT_blend_minmax"),null!==c&&(ea[103]=c.MIN_EXT,ea[104]=c.MAX_EXT));var da={200:0,201:1,202:768,204:770,210:776,208:774,206:772,203:769,205:771,209:775,207:773};return{buffers:{color:t,depth:r,stencil:u},initAttributes:function(){for(var a=0,b=m.length;a<b;a++)m[a]=0},enableAttribute:function(a){e(a,0)},enableAttributeAndDivisor:e,disableUnusedAttributes:function(){for(var b=0,c=E.length;b!==c;++b)E[b]!==
+m[b]&&(a.disableVertexAttribArray(b),E[b]=0)},vertexAttribPointer:function(b,c,d,e,f,g){!0!==v||5124!==d&&5125!==d?a.vertexAttribPointer(b,c,d,e,f,g):a.vertexAttribIPointer(b,c,d,e,f,g)},enable:f,disable:g,useProgram:function(b){return ja!==b?(a.useProgram(b),ja=b,!0):!1},setBlending:h,setMaterial:function(a,b){2===a.side?g(2884):f(2884);var c=1===a.side;b&&(c=!c);l(c);1===a.blending&&!1===a.transparent?h(0):h(a.blending,a.blendEquation,a.blendSrc,a.blendDst,a.blendEquationAlpha,a.blendSrcAlpha,a.blendDstAlpha,
+a.premultipliedAlpha);r.setFunc(a.depthFunc);r.setTest(a.depthTest);r.setMask(a.depthWrite);t.setMask(a.colorWrite);b=a.stencilWrite;u.setTest(b);b&&(u.setMask(a.stencilWriteMask),u.setFunc(a.stencilFunc,a.stencilRef,a.stencilFuncMask),u.setOp(a.stencilFail,a.stencilZFail,a.stencilZPass));q(a.polygonOffset,a.polygonOffsetFactor,a.polygonOffsetUnits)},setFlipSided:l,setCullFace:n,setLineWidth:function(b){b!==J&&(K&&a.lineWidth(b),J=b)},setPolygonOffset:q,setScissorTest:function(a){a?f(3089):g(3089)},
+activeTexture:k,bindTexture:function(b,c){null===M&&k();var d=Ld[M];void 0===d&&(d={type:void 0,texture:void 0},Ld[M]=d);if(d.type!==b||d.texture!==c)a.bindTexture(b,c||Wa[b]),d.type=b,d.texture=c},unbindTexture:function(){var b=Ld[M];void 0!==b&&void 0!==b.type&&(a.bindTexture(b.type,null),b.type=void 0,b.texture=void 0)},compressedTexImage2D:function(){try{a.compressedTexImage2D.apply(a,arguments)}catch(Jd){console.error("THREE.WebGLState:",Jd)}},texImage2D:function(){try{a.texImage2D.apply(a,arguments)}catch(Jd){console.error("THREE.WebGLState:",
+Jd)}},texImage3D:function(){try{a.texImage3D.apply(a,arguments)}catch(Jd){console.error("THREE.WebGLState:",Jd)}},scissor:function(b){!1===R.equals(b)&&(a.scissor(b.x,b.y,b.z,b.w),R.copy(b))},viewport:function(b){!1===ba.equals(b)&&(a.viewport(b.x,b.y,b.z,b.w),ba.copy(b))},reset:function(){for(var b=0;b<E.length;b++)1===E[b]&&(a.disableVertexAttribArray(b),E[b]=0);w={};M=null;Ld={};F=D=C=ja=null;t.reset();r.reset();u.reset()}}}function Bk(a,b,c,d,e,f,g){function h(a,b){return J?new OffscreenCanvas(a,
 b):document.createElementNS("http://www.w3.org/1999/xhtml","canvas")}function l(a,b,c,d){var e=1;if(a.width>d||a.height>d)e=d/Math.max(a.width,a.height);if(1>e||!0===b){if("undefined"!==typeof HTMLImageElement&&a instanceof HTMLImageElement||"undefined"!==typeof HTMLCanvasElement&&a instanceof HTMLCanvasElement||"undefined"!==typeof ImageBitmap&&a instanceof ImageBitmap)return d=b?K.floorPowerOfTwo:Math.floor,b=d(e*a.width),e=d(e*a.height),void 0===F&&(F=h(b,e)),c=c?h(b,e):F,c.width=b,c.height=e,
 b):document.createElementNS("http://www.w3.org/1999/xhtml","canvas")}function l(a,b,c,d){var e=1;if(a.width>d||a.height>d)e=d/Math.max(a.width,a.height);if(1>e||!0===b){if("undefined"!==typeof HTMLImageElement&&a instanceof HTMLImageElement||"undefined"!==typeof HTMLCanvasElement&&a instanceof HTMLCanvasElement||"undefined"!==typeof ImageBitmap&&a instanceof ImageBitmap)return d=b?K.floorPowerOfTwo:Math.floor,b=d(e*a.width),e=d(e*a.height),void 0===F&&(F=h(b,e)),c=c?h(b,e):F,c.width=b,c.height=e,
-c.getContext("2d").drawImage(a,0,0,b,e),console.warn("THREE.WebGLRenderer: Texture has been resized from ("+a.width+"x"+a.height+") to ("+b+"x"+e+")."),c;"data"in a&&console.warn("THREE.WebGLRenderer: Image in DataTexture is too big ("+a.width+"x"+a.height+").")}return a}function n(a){return K.isPowerOfTwo(a.width)&&K.isPowerOfTwo(a.height)}function t(a,b){return a.generateMipmaps&&b&&1003!==a.minFilter&&1006!==a.minFilter}function p(b,c,e,f){a.generateMipmap(b);d.get(c).__maxMipLevel=Math.log(Math.max(e,
-f))*Math.LOG2E}function k(c,d,e){if(!1===aa)return d;if(null!==c){if(void 0!==a[c])return a[c];console.warn("THREE.WebGLRenderer: Attempt to use non-existing WebGL internal format '"+c+"'")}c=d;6403===d&&(5126===e&&(c=33326),5131===e&&(c=33325),5121===e&&(c=33321));6407===d&&(5126===e&&(c=34837),5131===e&&(c=34843),5121===e&&(c=32849));6408===d&&(5126===e&&(c=34836),5131===e&&(c=34842),5121===e&&(c=32856));33325!==c&&33326!==c&&34842!==c&&34836!==c||b.get("EXT_color_buffer_float");return c}function r(a){return 1003===
-a||1004===a||1005===a?9728:9729}function q(b){b=b.target;b.removeEventListener("dispose",q);var c=d.get(b);void 0!==c.__webglInit&&(a.deleteTexture(c.__webglTexture),d.remove(b));b.isVideoTexture&&D.delete(b);g.memory.textures--}function u(b){b=b.target;b.removeEventListener("dispose",u);var c=d.get(b),e=d.get(b.texture);if(b){void 0!==e.__webglTexture&&a.deleteTexture(e.__webglTexture);b.depthTexture&&b.depthTexture.dispose();if(b.isWebGLCubeRenderTarget)for(e=0;6>e;e++)a.deleteFramebuffer(c.__webglFramebuffer[e]),
+c.getContext("2d").drawImage(a,0,0,b,e),console.warn("THREE.WebGLRenderer: Texture has been resized from ("+a.width+"x"+a.height+") to ("+b+"x"+e+")."),c;"data"in a&&console.warn("THREE.WebGLRenderer: Image in DataTexture is too big ("+a.width+"x"+a.height+").")}return a}function n(a){return K.isPowerOfTwo(a.width)&&K.isPowerOfTwo(a.height)}function q(a,b){return a.generateMipmaps&&b&&1003!==a.minFilter&&1006!==a.minFilter}function k(b,c,e,f){a.generateMipmap(b);d.get(c).__maxMipLevel=Math.log(Math.max(e,
+f))*Math.LOG2E}function v(c,d,e){if(!1===aa)return d;if(null!==c){if(void 0!==a[c])return a[c];console.warn("THREE.WebGLRenderer: Attempt to use non-existing WebGL internal format '"+c+"'")}c=d;6403===d&&(5126===e&&(c=33326),5131===e&&(c=33325),5121===e&&(c=33321));6407===d&&(5126===e&&(c=34837),5131===e&&(c=34843),5121===e&&(c=32849));6408===d&&(5126===e&&(c=34836),5131===e&&(c=34842),5121===e&&(c=32856));33325!==c&&33326!==c&&34842!==c&&34836!==c||b.get("EXT_color_buffer_float");return c}function t(a){return 1003===
+a||1004===a||1005===a?9728:9729}function r(b){b=b.target;b.removeEventListener("dispose",r);var c=d.get(b);void 0!==c.__webglInit&&(a.deleteTexture(c.__webglTexture),d.remove(b));b.isVideoTexture&&D.delete(b);g.memory.textures--}function u(b){b=b.target;b.removeEventListener("dispose",u);var c=d.get(b),e=d.get(b.texture);if(b){void 0!==e.__webglTexture&&a.deleteTexture(e.__webglTexture);b.depthTexture&&b.depthTexture.dispose();if(b.isWebGLCubeRenderTarget)for(e=0;6>e;e++)a.deleteFramebuffer(c.__webglFramebuffer[e]),
 c.__webglDepthbuffer&&a.deleteRenderbuffer(c.__webglDepthbuffer[e]);else a.deleteFramebuffer(c.__webglFramebuffer),c.__webglDepthbuffer&&a.deleteRenderbuffer(c.__webglDepthbuffer),c.__webglMultisampledFramebuffer&&a.deleteFramebuffer(c.__webglMultisampledFramebuffer),c.__webglColorRenderbuffer&&a.deleteRenderbuffer(c.__webglColorRenderbuffer),c.__webglDepthRenderbuffer&&a.deleteRenderbuffer(c.__webglDepthRenderbuffer);d.remove(b.texture);d.remove(b)}g.memory.textures--}function m(a,b){var e=d.get(a);
 c.__webglDepthbuffer&&a.deleteRenderbuffer(c.__webglDepthbuffer[e]);else a.deleteFramebuffer(c.__webglFramebuffer),c.__webglDepthbuffer&&a.deleteRenderbuffer(c.__webglDepthbuffer),c.__webglMultisampledFramebuffer&&a.deleteFramebuffer(c.__webglMultisampledFramebuffer),c.__webglColorRenderbuffer&&a.deleteRenderbuffer(c.__webglColorRenderbuffer),c.__webglDepthRenderbuffer&&a.deleteRenderbuffer(c.__webglDepthRenderbuffer);d.remove(b.texture);d.remove(b)}g.memory.textures--}function m(a,b){var e=d.get(a);
 if(a.isVideoTexture){var f=g.render.frame;D.get(a)!==f&&(D.set(a,f),a.update())}if(0<a.version&&e.__version!==a.version)if(f=a.image,void 0===f)console.warn("THREE.WebGLRenderer: Texture marked for update but image is undefined");else if(!1===f.complete)console.warn("THREE.WebGLRenderer: Texture marked for update but image is incomplete");else{U(e,a,b);return}c.activeTexture(33984+b);c.bindTexture(3553,e.__webglTexture)}function E(b,e){if(6===b.image.length){var g=d.get(b);if(0<b.version&&g.__version!==
 if(a.isVideoTexture){var f=g.render.frame;D.get(a)!==f&&(D.set(a,f),a.update())}if(0<a.version&&e.__version!==a.version)if(f=a.image,void 0===f)console.warn("THREE.WebGLRenderer: Texture marked for update but image is undefined");else if(!1===f.complete)console.warn("THREE.WebGLRenderer: Texture marked for update but image is incomplete");else{U(e,a,b);return}c.activeTexture(33984+b);c.bindTexture(3553,e.__webglTexture)}function E(b,e){if(6===b.image.length){var g=d.get(b);if(0<b.version&&g.__version!==
-b.version){ja(g,b);c.activeTexture(33984+e);c.bindTexture(34067,g.__webglTexture);a.pixelStorei(37440,b.flipY);var h=b&&(b.isCompressedTexture||b.image[0].isCompressedTexture),q=b.image[0]&&b.image[0].isDataTexture;e=[];for(var v=0;6>v;v++)e[v]=h||q?q?b.image[v].image:b.image[v]:l(b.image[v],!1,!0,ka);v=e[0];var r=n(v)||aa,m=f.convert(b.format),u=f.convert(b.type),A=k(b.internalFormat,m,u);w(34067,b,r);if(h){for(q=0;6>q;q++){var x=e[q].mipmaps;for(h=0;h<x.length;h++){var R=x[h];1023!==b.format&&1022!==
-b.format?null!==m?c.compressedTexImage2D(34069+q,h,A,R.width,R.height,0,R.data):console.warn("THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .setTextureCube()"):c.texImage2D(34069+q,h,A,R.width,R.height,0,m,u,R.data)}}g.__maxMipLevel=x.length-1}else{x=b.mipmaps;for(h=0;6>h;h++)if(q)for(c.texImage2D(34069+h,0,A,e[h].width,e[h].height,0,m,u,e[h].data),R=0;R<x.length;R++){var E=x[R].image[h].image;c.texImage2D(34069+h,R+1,A,E.width,E.height,0,m,u,E.data)}else for(c.texImage2D(34069+
-h,0,A,m,u,e[h]),R=0;R<x.length;R++)c.texImage2D(34069+h,R+1,A,m,u,x[R].image[h]);g.__maxMipLevel=x.length}t(b,r)&&p(34067,b,v.width,v.height);g.__version=b.version;if(b.onUpdate)b.onUpdate(b)}else c.activeTexture(33984+e),c.bindTexture(34067,g.__webglTexture)}}function x(a,b){c.activeTexture(33984+b);c.bindTexture(34067,d.get(a).__webglTexture)}function w(c,f,g){g?(a.texParameteri(c,10242,G[f.wrapS]),a.texParameteri(c,10243,G[f.wrapT]),32879!==c&&35866!==c||a.texParameteri(c,32882,G[f.wrapR]),a.texParameteri(c,
-10240,L[f.magFilter]),a.texParameteri(c,10241,L[f.minFilter])):(a.texParameteri(c,10242,33071),a.texParameteri(c,10243,33071),32879!==c&&35866!==c||a.texParameteri(c,32882,33071),1001===f.wrapS&&1001===f.wrapT||console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.wrapS and Texture.wrapT should be set to THREE.ClampToEdgeWrapping."),a.texParameteri(c,10240,r(f.magFilter)),a.texParameteri(c,10241,r(f.minFilter)),1003!==f.minFilter&&1006!==f.minFilter&&console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.minFilter should be set to THREE.NearestFilter or THREE.LinearFilter."));
-!(g=b.get("EXT_texture_filter_anisotropic"))||1015===f.type&&null===b.get("OES_texture_float_linear")||1016===f.type&&null===(aa||b.get("OES_texture_half_float_linear"))||!(1<f.anisotropy||d.get(f).__currentAnisotropy)||(a.texParameterf(c,g.TEXTURE_MAX_ANISOTROPY_EXT,Math.min(f.anisotropy,e.getMaxAnisotropy())),d.get(f).__currentAnisotropy=f.anisotropy)}function ja(b,c){void 0===b.__webglInit&&(b.__webglInit=!0,c.addEventListener("dispose",q),b.__webglTexture=a.createTexture(),g.memory.textures++)}
-function U(b,d,e){var g=3553;d.isDataTexture2DArray&&(g=35866);d.isDataTexture3D&&(g=32879);ja(b,d);c.activeTexture(33984+e);c.bindTexture(g,b.__webglTexture);a.pixelStorei(37440,d.flipY);a.pixelStorei(37441,d.premultiplyAlpha);a.pixelStorei(3317,d.unpackAlignment);e=aa?!1:1001!==d.wrapS||1001!==d.wrapT||1003!==d.minFilter&&1006!==d.minFilter;e=e&&!1===n(d.image);e=l(d.image,e,!1,B);var h=n(e)||aa,q=f.convert(d.format),v=f.convert(d.type),r=k(d.internalFormat,q,v);w(g,d,h);var m=d.mipmaps;if(d.isDepthTexture)r=
-6402,aa?r=1015===d.type?36012:1014===d.type?33190:1020===d.type?35056:33189:1015===d.type&&console.error("WebGLRenderer: Floating point depth texture requires WebGL2."),1026===d.format&&6402===r&&1012!==d.type&&1014!==d.type&&(console.warn("THREE.WebGLRenderer: Use UnsignedShortType or UnsignedIntType for DepthFormat DepthTexture."),d.type=1012,v=f.convert(d.type)),1027===d.format&&6402===r&&(r=34041,1020!==d.type&&(console.warn("THREE.WebGLRenderer: Use UnsignedInt248Type for DepthStencilFormat DepthTexture."),
-d.type=1020,v=f.convert(d.type))),c.texImage2D(3553,0,r,e.width,e.height,0,q,v,null);else if(d.isDataTexture)if(0<m.length&&h){for(var u=0,A=m.length;u<A;u++){var x=m[u];c.texImage2D(3553,u,r,x.width,x.height,0,q,v,x.data)}d.generateMipmaps=!1;b.__maxMipLevel=m.length-1}else c.texImage2D(3553,0,r,e.width,e.height,0,q,v,e.data),b.__maxMipLevel=0;else if(d.isCompressedTexture){u=0;for(A=m.length;u<A;u++)x=m[u],1023!==d.format&&1022!==d.format?null!==q?c.compressedTexImage2D(3553,u,r,x.width,x.height,
-0,x.data):console.warn("THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .uploadTexture()"):c.texImage2D(3553,u,r,x.width,x.height,0,q,v,x.data);b.__maxMipLevel=m.length-1}else if(d.isDataTexture2DArray)c.texImage3D(35866,0,r,e.width,e.height,e.depth,0,q,v,e.data),b.__maxMipLevel=0;else if(d.isDataTexture3D)c.texImage3D(32879,0,r,e.width,e.height,e.depth,0,q,v,e.data),b.__maxMipLevel=0;else if(0<m.length&&h){u=0;for(A=m.length;u<A;u++)x=m[u],c.texImage2D(3553,u,r,q,v,
-x);d.generateMipmaps=!1;b.__maxMipLevel=m.length-1}else c.texImage2D(3553,0,r,q,v,e),b.__maxMipLevel=0;t(d,h)&&p(g,d,e.width,e.height);b.__version=d.version;if(d.onUpdate)d.onUpdate(d)}function C(b,e,g,h){var l=f.convert(e.texture.format),n=f.convert(e.texture.type),t=k(e.texture.internalFormat,l,n);c.texImage2D(h,0,t,e.width,e.height,0,l,n,null);a.bindFramebuffer(36160,b);a.framebufferTexture2D(36160,g,h,d.get(e.texture).__webglTexture,0);a.bindFramebuffer(36160,null)}function z(b,c,d){a.bindRenderbuffer(36161,
+b.version){ja(g,b);c.activeTexture(33984+e);c.bindTexture(34067,g.__webglTexture);a.pixelStorei(37440,b.flipY);var h=b&&(b.isCompressedTexture||b.image[0].isCompressedTexture),p=b.image[0]&&b.image[0].isDataTexture;e=[];for(var r=0;6>r;r++)e[r]=h||p?p?b.image[r].image:b.image[r]:l(b.image[r],!1,!0,ka);r=e[0];var t=n(r)||aa,m=f.convert(b.format),u=f.convert(b.type),A=v(b.internalFormat,m,u);w(34067,b,t);if(h){for(p=0;6>p;p++){var x=e[p].mipmaps;for(h=0;h<x.length;h++){var R=x[h];1023!==b.format&&1022!==
+b.format?null!==m?c.compressedTexImage2D(34069+p,h,A,R.width,R.height,0,R.data):console.warn("THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .setTextureCube()"):c.texImage2D(34069+p,h,A,R.width,R.height,0,m,u,R.data)}}g.__maxMipLevel=x.length-1}else{x=b.mipmaps;for(h=0;6>h;h++)if(p)for(c.texImage2D(34069+h,0,A,e[h].width,e[h].height,0,m,u,e[h].data),R=0;R<x.length;R++){var E=x[R].image[h].image;c.texImage2D(34069+h,R+1,A,E.width,E.height,0,m,u,E.data)}else for(c.texImage2D(34069+
+h,0,A,m,u,e[h]),R=0;R<x.length;R++)c.texImage2D(34069+h,R+1,A,m,u,x[R].image[h]);g.__maxMipLevel=x.length}q(b,t)&&k(34067,b,r.width,r.height);g.__version=b.version;if(b.onUpdate)b.onUpdate(b)}else c.activeTexture(33984+e),c.bindTexture(34067,g.__webglTexture)}}function x(a,b){c.activeTexture(33984+b);c.bindTexture(34067,d.get(a).__webglTexture)}function w(c,f,g){g?(a.texParameteri(c,10242,G[f.wrapS]),a.texParameteri(c,10243,G[f.wrapT]),32879!==c&&35866!==c||a.texParameteri(c,32882,G[f.wrapR]),a.texParameteri(c,
+10240,L[f.magFilter]),a.texParameteri(c,10241,L[f.minFilter])):(a.texParameteri(c,10242,33071),a.texParameteri(c,10243,33071),32879!==c&&35866!==c||a.texParameteri(c,32882,33071),1001===f.wrapS&&1001===f.wrapT||console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.wrapS and Texture.wrapT should be set to THREE.ClampToEdgeWrapping."),a.texParameteri(c,10240,t(f.magFilter)),a.texParameteri(c,10241,t(f.minFilter)),1003!==f.minFilter&&1006!==f.minFilter&&console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.minFilter should be set to THREE.NearestFilter or THREE.LinearFilter."));
+!(g=b.get("EXT_texture_filter_anisotropic"))||1015===f.type&&null===b.get("OES_texture_float_linear")||1016===f.type&&null===(aa||b.get("OES_texture_half_float_linear"))||!(1<f.anisotropy||d.get(f).__currentAnisotropy)||(a.texParameterf(c,g.TEXTURE_MAX_ANISOTROPY_EXT,Math.min(f.anisotropy,e.getMaxAnisotropy())),d.get(f).__currentAnisotropy=f.anisotropy)}function ja(b,c){void 0===b.__webglInit&&(b.__webglInit=!0,c.addEventListener("dispose",r),b.__webglTexture=a.createTexture(),g.memory.textures++)}
+function U(b,d,e){var g=3553;d.isDataTexture2DArray&&(g=35866);d.isDataTexture3D&&(g=32879);ja(b,d);c.activeTexture(33984+e);c.bindTexture(g,b.__webglTexture);a.pixelStorei(37440,d.flipY);a.pixelStorei(37441,d.premultiplyAlpha);a.pixelStorei(3317,d.unpackAlignment);e=aa?!1:1001!==d.wrapS||1001!==d.wrapT||1003!==d.minFilter&&1006!==d.minFilter;e=e&&!1===n(d.image);e=l(d.image,e,!1,B);var h=n(e)||aa,p=f.convert(d.format),r=f.convert(d.type),t=v(d.internalFormat,p,r);w(g,d,h);var m=d.mipmaps;if(d.isDepthTexture)t=
+6402,aa?t=1015===d.type?36012:1014===d.type?33190:1020===d.type?35056:33189:1015===d.type&&console.error("WebGLRenderer: Floating point depth texture requires WebGL2."),1026===d.format&&6402===t&&1012!==d.type&&1014!==d.type&&(console.warn("THREE.WebGLRenderer: Use UnsignedShortType or UnsignedIntType for DepthFormat DepthTexture."),d.type=1012,r=f.convert(d.type)),1027===d.format&&6402===t&&(t=34041,1020!==d.type&&(console.warn("THREE.WebGLRenderer: Use UnsignedInt248Type for DepthStencilFormat DepthTexture."),
+d.type=1020,r=f.convert(d.type))),c.texImage2D(3553,0,t,e.width,e.height,0,p,r,null);else if(d.isDataTexture)if(0<m.length&&h){for(var u=0,A=m.length;u<A;u++){var x=m[u];c.texImage2D(3553,u,t,x.width,x.height,0,p,r,x.data)}d.generateMipmaps=!1;b.__maxMipLevel=m.length-1}else c.texImage2D(3553,0,t,e.width,e.height,0,p,r,e.data),b.__maxMipLevel=0;else if(d.isCompressedTexture){u=0;for(A=m.length;u<A;u++)x=m[u],1023!==d.format&&1022!==d.format?null!==p?c.compressedTexImage2D(3553,u,t,x.width,x.height,
+0,x.data):console.warn("THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .uploadTexture()"):c.texImage2D(3553,u,t,x.width,x.height,0,p,r,x.data);b.__maxMipLevel=m.length-1}else if(d.isDataTexture2DArray)c.texImage3D(35866,0,t,e.width,e.height,e.depth,0,p,r,e.data),b.__maxMipLevel=0;else if(d.isDataTexture3D)c.texImage3D(32879,0,t,e.width,e.height,e.depth,0,p,r,e.data),b.__maxMipLevel=0;else if(0<m.length&&h){u=0;for(A=m.length;u<A;u++)x=m[u],c.texImage2D(3553,u,t,p,r,
+x);d.generateMipmaps=!1;b.__maxMipLevel=m.length-1}else c.texImage2D(3553,0,t,p,r,e),b.__maxMipLevel=0;q(d,h)&&k(g,d,e.width,e.height);b.__version=d.version;if(d.onUpdate)d.onUpdate(d)}function C(b,e,g,h){var l=f.convert(e.texture.format),n=f.convert(e.texture.type),q=v(e.texture.internalFormat,l,n);c.texImage2D(h,0,q,e.width,e.height,0,l,n,null);a.bindFramebuffer(36160,b);a.framebufferTexture2D(36160,g,h,d.get(e.texture).__webglTexture,0);a.bindFramebuffer(36160,null)}function z(b,c,d){a.bindRenderbuffer(36161,
 b);if(c.depthBuffer&&!c.stencilBuffer){var e=33189;d?((d=c.depthTexture)&&d.isDepthTexture&&(1015===d.type?e=36012:1014===d.type&&(e=33190)),d=P(c),a.renderbufferStorageMultisample(36161,d,e,c.width,c.height)):a.renderbufferStorage(36161,e,c.width,c.height);a.framebufferRenderbuffer(36160,36096,36161,b)}else c.depthBuffer&&c.stencilBuffer?(d?(d=P(c),a.renderbufferStorageMultisample(36161,d,35056,c.width,c.height)):a.renderbufferStorage(36161,34041,c.width,c.height),a.framebufferRenderbuffer(36160,
 b);if(c.depthBuffer&&!c.stencilBuffer){var e=33189;d?((d=c.depthTexture)&&d.isDepthTexture&&(1015===d.type?e=36012:1014===d.type&&(e=33190)),d=P(c),a.renderbufferStorageMultisample(36161,d,e,c.width,c.height)):a.renderbufferStorage(36161,e,c.width,c.height);a.framebufferRenderbuffer(36160,36096,36161,b)}else c.depthBuffer&&c.stencilBuffer?(d?(d=P(c),a.renderbufferStorageMultisample(36161,d,35056,c.width,c.height)):a.renderbufferStorage(36161,34041,c.width,c.height),a.framebufferRenderbuffer(36160,
-33306,36161,b)):(b=f.convert(c.texture.format),e=f.convert(c.texture.type),b=k(c.texture.internalFormat,b,e),d?(d=P(c),a.renderbufferStorageMultisample(36161,d,b,c.width,c.height)):a.renderbufferStorage(36161,b,c.width,c.height));a.bindRenderbuffer(36161,null)}function P(a){return aa&&a.isWebGLMultisampleRenderTarget?Math.min(y,a.samples):0}var aa=e.isWebGL2,fa=e.maxTextures,ka=e.maxCubemapSize,B=e.maxTextureSize,y=e.maxSamples,D=new WeakMap,F,J=!1;try{J="undefined"!==typeof OffscreenCanvas&&null!==
+33306,36161,b)):(b=f.convert(c.texture.format),e=f.convert(c.texture.type),b=v(c.texture.internalFormat,b,e),d?(d=P(c),a.renderbufferStorageMultisample(36161,d,b,c.width,c.height)):a.renderbufferStorage(36161,b,c.width,c.height));a.bindRenderbuffer(36161,null)}function P(a){return aa&&a.isWebGLMultisampleRenderTarget?Math.min(y,a.samples):0}var aa=e.isWebGL2,fa=e.maxTextures,ka=e.maxCubemapSize,B=e.maxTextureSize,y=e.maxSamples,D=new WeakMap,F,J=!1;try{J="undefined"!==typeof OffscreenCanvas&&null!==
 (new OffscreenCanvas(1,1)).getContext("2d")}catch(Ld){}var H=0,G={1E3:10497,1001:33071,1002:33648},L={1003:9728,1004:9984,1005:9986,1006:9729,1007:9985,1008:9987},M=!1,N=!1;this.allocateTextureUnit=function(){var a=H;a>=fa&&console.warn("THREE.WebGLTextures: Trying to use "+a+" texture units while this GPU supports only "+fa);H+=1;return a};this.resetTextureUnits=function(){H=0};this.setTexture2D=m;this.setTexture2DArray=function(a,b){var e=d.get(a);0<a.version&&e.__version!==a.version?U(e,a,b):(c.activeTexture(33984+
 (new OffscreenCanvas(1,1)).getContext("2d")}catch(Ld){}var H=0,G={1E3:10497,1001:33071,1002:33648},L={1003:9728,1004:9984,1005:9986,1006:9729,1007:9985,1008:9987},M=!1,N=!1;this.allocateTextureUnit=function(){var a=H;a>=fa&&console.warn("THREE.WebGLTextures: Trying to use "+a+" texture units while this GPU supports only "+fa);H+=1;return a};this.resetTextureUnits=function(){H=0};this.setTexture2D=m;this.setTexture2DArray=function(a,b){var e=d.get(a);0<a.version&&e.__version!==a.version?U(e,a,b):(c.activeTexture(33984+
-b),c.bindTexture(35866,e.__webglTexture))};this.setTexture3D=function(a,b){var e=d.get(a);0<a.version&&e.__version!==a.version?U(e,a,b):(c.activeTexture(33984+b),c.bindTexture(32879,e.__webglTexture))};this.setTextureCube=E;this.setTextureCubeDynamic=x;this.setupRenderTarget=function(b){var e=d.get(b),h=d.get(b.texture);b.addEventListener("dispose",u);h.__webglTexture=a.createTexture();g.memory.textures++;var l=!0===b.isWebGLCubeRenderTarget,q=!0===b.isWebGLMultisampleRenderTarget,v=n(b)||aa;!aa||
-1022!==b.texture.format||1015!==b.texture.type&&1016!==b.texture.type||(b.texture.format=1023,console.warn("THREE.WebGLRenderer: Rendering to textures with RGB format is not supported. Using RGBA format instead."));if(l)for(e.__webglFramebuffer=[],q=0;6>q;q++)e.__webglFramebuffer[q]=a.createFramebuffer();else if(e.__webglFramebuffer=a.createFramebuffer(),q)if(aa){e.__webglMultisampledFramebuffer=a.createFramebuffer();e.__webglColorRenderbuffer=a.createRenderbuffer();a.bindRenderbuffer(36161,e.__webglColorRenderbuffer);
-q=f.convert(b.texture.format);var r=f.convert(b.texture.type);q=k(b.texture.internalFormat,q,r);r=P(b);a.renderbufferStorageMultisample(36161,r,q,b.width,b.height);a.bindFramebuffer(36160,e.__webglMultisampledFramebuffer);a.framebufferRenderbuffer(36160,36064,36161,e.__webglColorRenderbuffer);a.bindRenderbuffer(36161,null);b.depthBuffer&&(e.__webglDepthRenderbuffer=a.createRenderbuffer(),z(e.__webglDepthRenderbuffer,b,!0));a.bindFramebuffer(36160,null)}else console.warn("THREE.WebGLRenderer: WebGLMultisampleRenderTarget can only be used with WebGL2.");
-if(l){c.bindTexture(34067,h.__webglTexture);w(34067,b.texture,v);for(h=0;6>h;h++)C(e.__webglFramebuffer[h],b,36064,34069+h);t(b.texture,v)&&p(34067,b.texture,b.width,b.height);c.bindTexture(34067,null)}else c.bindTexture(3553,h.__webglTexture),w(3553,b.texture,v),C(e.__webglFramebuffer,b,36064,3553),t(b.texture,v)&&p(3553,b.texture,b.width,b.height),c.bindTexture(3553,null);if(b.depthBuffer){e=d.get(b);v=!0===b.isWebGLCubeRenderTarget;if(b.depthTexture){if(v)throw Error("target.depthTexture not supported in Cube render targets");
+b),c.bindTexture(35866,e.__webglTexture))};this.setTexture3D=function(a,b){var e=d.get(a);0<a.version&&e.__version!==a.version?U(e,a,b):(c.activeTexture(33984+b),c.bindTexture(32879,e.__webglTexture))};this.setTextureCube=E;this.setTextureCubeDynamic=x;this.setupRenderTarget=function(b){var e=d.get(b),h=d.get(b.texture);b.addEventListener("dispose",u);h.__webglTexture=a.createTexture();g.memory.textures++;var l=!0===b.isWebGLCubeRenderTarget,p=!0===b.isWebGLMultisampleRenderTarget,r=n(b)||aa;!aa||
+1022!==b.texture.format||1015!==b.texture.type&&1016!==b.texture.type||(b.texture.format=1023,console.warn("THREE.WebGLRenderer: Rendering to textures with RGB format is not supported. Using RGBA format instead."));if(l)for(e.__webglFramebuffer=[],p=0;6>p;p++)e.__webglFramebuffer[p]=a.createFramebuffer();else if(e.__webglFramebuffer=a.createFramebuffer(),p)if(aa){e.__webglMultisampledFramebuffer=a.createFramebuffer();e.__webglColorRenderbuffer=a.createRenderbuffer();a.bindRenderbuffer(36161,e.__webglColorRenderbuffer);
+p=f.convert(b.texture.format);var t=f.convert(b.texture.type);p=v(b.texture.internalFormat,p,t);t=P(b);a.renderbufferStorageMultisample(36161,t,p,b.width,b.height);a.bindFramebuffer(36160,e.__webglMultisampledFramebuffer);a.framebufferRenderbuffer(36160,36064,36161,e.__webglColorRenderbuffer);a.bindRenderbuffer(36161,null);b.depthBuffer&&(e.__webglDepthRenderbuffer=a.createRenderbuffer(),z(e.__webglDepthRenderbuffer,b,!0));a.bindFramebuffer(36160,null)}else console.warn("THREE.WebGLRenderer: WebGLMultisampleRenderTarget can only be used with WebGL2.");
+if(l){c.bindTexture(34067,h.__webglTexture);w(34067,b.texture,r);for(h=0;6>h;h++)C(e.__webglFramebuffer[h],b,36064,34069+h);q(b.texture,r)&&k(34067,b.texture,b.width,b.height);c.bindTexture(34067,null)}else c.bindTexture(3553,h.__webglTexture),w(3553,b.texture,r),C(e.__webglFramebuffer,b,36064,3553),q(b.texture,r)&&k(3553,b.texture,b.width,b.height),c.bindTexture(3553,null);if(b.depthBuffer){e=d.get(b);r=!0===b.isWebGLCubeRenderTarget;if(b.depthTexture){if(r)throw Error("target.depthTexture not supported in Cube render targets");
 if(b&&b.isWebGLCubeRenderTarget)throw Error("Depth Texture with cube render targets is not supported");a.bindFramebuffer(36160,e.__webglFramebuffer);if(!b.depthTexture||!b.depthTexture.isDepthTexture)throw Error("renderTarget.depthTexture must be an instance of THREE.DepthTexture");d.get(b.depthTexture).__webglTexture&&b.depthTexture.image.width===b.width&&b.depthTexture.image.height===b.height||(b.depthTexture.image.width=b.width,b.depthTexture.image.height=b.height,b.depthTexture.needsUpdate=!0);
 if(b&&b.isWebGLCubeRenderTarget)throw Error("Depth Texture with cube render targets is not supported");a.bindFramebuffer(36160,e.__webglFramebuffer);if(!b.depthTexture||!b.depthTexture.isDepthTexture)throw Error("renderTarget.depthTexture must be an instance of THREE.DepthTexture");d.get(b.depthTexture).__webglTexture&&b.depthTexture.image.width===b.width&&b.depthTexture.image.height===b.height||(b.depthTexture.image.width=b.width,b.depthTexture.image.height=b.height,b.depthTexture.needsUpdate=!0);
-m(b.depthTexture,0);e=d.get(b.depthTexture).__webglTexture;if(1026===b.depthTexture.format)a.framebufferTexture2D(36160,36096,3553,e,0);else if(1027===b.depthTexture.format)a.framebufferTexture2D(36160,33306,3553,e,0);else throw Error("Unknown depthTexture format");}else if(v)for(e.__webglDepthbuffer=[],v=0;6>v;v++)a.bindFramebuffer(36160,e.__webglFramebuffer[v]),e.__webglDepthbuffer[v]=a.createRenderbuffer(),z(e.__webglDepthbuffer[v],b,!1);else a.bindFramebuffer(36160,e.__webglFramebuffer),e.__webglDepthbuffer=
-a.createRenderbuffer(),z(e.__webglDepthbuffer,b,!1);a.bindFramebuffer(36160,null)}};this.updateRenderTargetMipmap=function(a){var b=a.texture,e=n(a)||aa;if(t(b,e)){e=a.isWebGLCubeRenderTarget?34067:3553;var f=d.get(b).__webglTexture;c.bindTexture(e,f);p(e,b,a.width,a.height);c.bindTexture(e,null)}};this.updateMultisampleRenderTarget=function(b){if(b.isWebGLMultisampleRenderTarget)if(aa){var c=d.get(b);a.bindFramebuffer(36008,c.__webglMultisampledFramebuffer);a.bindFramebuffer(36009,c.__webglFramebuffer);
+m(b.depthTexture,0);e=d.get(b.depthTexture).__webglTexture;if(1026===b.depthTexture.format)a.framebufferTexture2D(36160,36096,3553,e,0);else if(1027===b.depthTexture.format)a.framebufferTexture2D(36160,33306,3553,e,0);else throw Error("Unknown depthTexture format");}else if(r)for(e.__webglDepthbuffer=[],r=0;6>r;r++)a.bindFramebuffer(36160,e.__webglFramebuffer[r]),e.__webglDepthbuffer[r]=a.createRenderbuffer(),z(e.__webglDepthbuffer[r],b,!1);else a.bindFramebuffer(36160,e.__webglFramebuffer),e.__webglDepthbuffer=
+a.createRenderbuffer(),z(e.__webglDepthbuffer,b,!1);a.bindFramebuffer(36160,null)}};this.updateRenderTargetMipmap=function(a){var b=a.texture,e=n(a)||aa;if(q(b,e)){e=a.isWebGLCubeRenderTarget?34067:3553;var f=d.get(b).__webglTexture;c.bindTexture(e,f);k(e,b,a.width,a.height);c.bindTexture(e,null)}};this.updateMultisampleRenderTarget=function(b){if(b.isWebGLMultisampleRenderTarget)if(aa){var c=d.get(b);a.bindFramebuffer(36008,c.__webglMultisampledFramebuffer);a.bindFramebuffer(36009,c.__webglFramebuffer);
 var e=b.width,f=b.height,g=16384;b.depthBuffer&&(g|=256);b.stencilBuffer&&(g|=1024);a.blitFramebuffer(0,0,e,f,0,0,e,f,g,9728);a.bindFramebuffer(36160,c.__webglMultisampledFramebuffer)}else console.warn("THREE.WebGLRenderer: WebGLMultisampleRenderTarget can only be used with WebGL2.")};this.safeSetTexture2D=function(a,b){a&&a.isWebGLRenderTarget&&(!1===M&&(console.warn("THREE.WebGLTextures.safeSetTexture2D: don't use render targets as textures. Use their .texture property instead."),M=!0),a=a.texture);
 var e=b.width,f=b.height,g=16384;b.depthBuffer&&(g|=256);b.stencilBuffer&&(g|=1024);a.blitFramebuffer(0,0,e,f,0,0,e,f,g,9728);a.bindFramebuffer(36160,c.__webglMultisampledFramebuffer)}else console.warn("THREE.WebGLRenderer: WebGLMultisampleRenderTarget can only be used with WebGL2.")};this.safeSetTexture2D=function(a,b){a&&a.isWebGLRenderTarget&&(!1===M&&(console.warn("THREE.WebGLTextures.safeSetTexture2D: don't use render targets as textures. Use their .texture property instead."),M=!0),a=a.texture);
 m(a,b)};this.safeSetTextureCube=function(a,b){a&&a.isWebGLCubeRenderTarget&&(!1===N&&(console.warn("THREE.WebGLTextures.safeSetTextureCube: don't use cube render targets as textures. Use their .texture property instead."),N=!0),a=a.texture);a&&a.isCubeTexture||Array.isArray(a.image)&&6===a.image.length?E(a,b):x(a,b)}}function Wh(a,b,c){var d=c.isWebGL2;return{convert:function(a){if(1009===a)return 5121;if(1017===a)return 32819;if(1018===a)return 32820;if(1019===a)return 33635;if(1010===a)return 5120;
 m(a,b)};this.safeSetTextureCube=function(a,b){a&&a.isWebGLCubeRenderTarget&&(!1===N&&(console.warn("THREE.WebGLTextures.safeSetTextureCube: don't use cube render targets as textures. Use their .texture property instead."),N=!0),a=a.texture);a&&a.isCubeTexture||Array.isArray(a.image)&&6===a.image.length?E(a,b):x(a,b)}}function Wh(a,b,c){var d=c.isWebGL2;return{convert:function(a){if(1009===a)return 5121;if(1017===a)return 32819;if(1018===a)return 32820;if(1019===a)return 33635;if(1010===a)return 5120;
 if(1011===a)return 5122;if(1012===a)return 5123;if(1013===a)return 5124;if(1014===a)return 5125;if(1015===a)return 5126;if(1016===a){if(d)return 5131;var c=b.get("OES_texture_half_float");return null!==c?c.HALF_FLOAT_OES:null}if(1021===a)return 6406;if(1022===a)return 6407;if(1023===a)return 6408;if(1024===a)return 6409;if(1025===a)return 6410;if(1026===a)return 6402;if(1027===a)return 34041;if(1028===a)return 6403;if(1029===a)return 36244;if(1030===a)return 33319;if(1031===a)return 33320;if(1032===
 if(1011===a)return 5122;if(1012===a)return 5123;if(1013===a)return 5124;if(1014===a)return 5125;if(1015===a)return 5126;if(1016===a){if(d)return 5131;var c=b.get("OES_texture_half_float");return null!==c?c.HALF_FLOAT_OES:null}if(1021===a)return 6406;if(1022===a)return 6407;if(1023===a)return 6408;if(1024===a)return 6409;if(1025===a)return 6410;if(1026===a)return 6402;if(1027===a)return 34041;if(1028===a)return 6403;if(1029===a)return 36244;if(1030===a)return 33319;if(1031===a)return 33320;if(1032===
 a)return 36248;if(1033===a)return 36249;if(33776===a||33777===a||33778===a||33779===a)if(c=b.get("WEBGL_compressed_texture_s3tc"),null!==c){if(33776===a)return c.COMPRESSED_RGB_S3TC_DXT1_EXT;if(33777===a)return c.COMPRESSED_RGBA_S3TC_DXT1_EXT;if(33778===a)return c.COMPRESSED_RGBA_S3TC_DXT3_EXT;if(33779===a)return c.COMPRESSED_RGBA_S3TC_DXT5_EXT}else return null;if(35840===a||35841===a||35842===a||35843===a)if(c=b.get("WEBGL_compressed_texture_pvrtc"),null!==c){if(35840===a)return c.COMPRESSED_RGB_PVRTC_4BPPV1_IMG;
 a)return 36248;if(1033===a)return 36249;if(33776===a||33777===a||33778===a||33779===a)if(c=b.get("WEBGL_compressed_texture_s3tc"),null!==c){if(33776===a)return c.COMPRESSED_RGB_S3TC_DXT1_EXT;if(33777===a)return c.COMPRESSED_RGBA_S3TC_DXT1_EXT;if(33778===a)return c.COMPRESSED_RGBA_S3TC_DXT3_EXT;if(33779===a)return c.COMPRESSED_RGBA_S3TC_DXT5_EXT}else return null;if(35840===a||35841===a||35842===a||35843===a)if(c=b.get("WEBGL_compressed_texture_pvrtc"),null!==c){if(35840===a)return c.COMPRESSED_RGB_PVRTC_4BPPV1_IMG;
 if(35841===a)return c.COMPRESSED_RGB_PVRTC_2BPPV1_IMG;if(35842===a)return c.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG;if(35843===a)return c.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG}else return null;if(36196===a)return c=b.get("WEBGL_compressed_texture_etc1"),null!==c?c.COMPRESSED_RGB_ETC1_WEBGL:null;if(37492===a||37496===a)if(c=b.get("WEBGL_compressed_texture_etc"),null!==c){if(37492===a)return c.COMPRESSED_RGB8_ETC2;if(37496===a)return c.COMPRESSED_RGBA8_ETC2_EAC}if(37808===a||37809===a||37810===a||37811===a||37812===
 if(35841===a)return c.COMPRESSED_RGB_PVRTC_2BPPV1_IMG;if(35842===a)return c.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG;if(35843===a)return c.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG}else return null;if(36196===a)return c=b.get("WEBGL_compressed_texture_etc1"),null!==c?c.COMPRESSED_RGB_ETC1_WEBGL:null;if(37492===a||37496===a)if(c=b.get("WEBGL_compressed_texture_etc"),null!==c){if(37492===a)return c.COMPRESSED_RGB8_ETC2;if(37496===a)return c.COMPRESSED_RGBA8_ETC2_EAC}if(37808===a||37809===a||37810===a||37811===a||37812===
 a||37813===a||37814===a||37815===a||37816===a||37817===a||37818===a||37819===a||37820===a||37821===a||37840===a||37841===a||37842===a||37843===a||37844===a||37845===a||37846===a||37847===a||37848===a||37849===a||37850===a||37851===a||37852===a||37853===a)return c=b.get("WEBGL_compressed_texture_astc"),null!==c?a:null;if(36492===a)return c=b.get("EXT_texture_compression_bptc"),null!==c?a:null;if(1020===a){if(d)return 34042;c=b.get("WEBGL_depth_texture");return null!==c?c.UNSIGNED_INT_24_8_WEBGL:null}}}}
 a||37813===a||37814===a||37815===a||37816===a||37817===a||37818===a||37819===a||37820===a||37821===a||37840===a||37841===a||37842===a||37843===a||37844===a||37845===a||37846===a||37847===a||37848===a||37849===a||37850===a||37851===a||37852===a||37853===a)return c=b.get("WEBGL_compressed_texture_astc"),null!==c?a:null;if(36492===a)return c=b.get("EXT_texture_compression_bptc"),null!==c?a:null;if(1020===a){if(d)return 34042;c=b.get("WEBGL_depth_texture");return null!==c?c.UNSIGNED_INT_24_8_WEBGL:null}}}}
-function Ne(a){O.call(this);this.cameras=a||[]}function Jc(){z.call(this);this.type="Group"}function Oe(){this._grip=this._targetRay=null}function Xh(a,b){function c(a){var b=q.get(a.inputSource);b&&b.dispatchEvent({type:a.type})}function d(){q.forEach(function(a,b){a.disconnect(b)});q.clear();a.setFramebuffer(null);a.setRenderTarget(a.getRenderTarget());P.stop();h.isPresenting=!1;h.dispatchEvent({type:"sessionend"})}function e(a){t=a;P.setContext(l);P.start();h.isPresenting=!0;h.dispatchEvent({type:"sessionstart"})}
-function f(a){for(var b=l.inputSources,c=0;c<r.length;c++)q.set(b[c],r[c]);for(b=0;b<a.removed.length;b++){c=a.removed[b];var d=q.get(c);d&&(d.dispatchEvent({type:"disconnected",data:c}),q.delete(c))}for(b=0;b<a.added.length;b++)c=a.added[b],(d=q.get(c))&&d.dispatchEvent({type:"connected",data:c})}function g(a,b){null===b?a.matrixWorld.copy(a.matrix):a.matrixWorld.multiplyMatrices(b.matrixWorld,a.matrix);a.matrixWorldInverse.getInverse(a.matrixWorld)}var h=this,l=null,n=1,t=null,p="local-floor",k=
-null,r=[],q=new Map,u=new O;u.layers.enable(1);u.viewport=new Y;var A=new O;A.layers.enable(2);A.viewport=new Y;var E=[u,A],x=new Ne;x.layers.enable(1);x.layers.enable(2);var w=null,ja=null;this.isPresenting=this.enabled=!1;this.getController=function(a){var b=r[a];void 0===b&&(b=new Oe,r[a]=b);return b.getTargetRaySpace()};this.getControllerGrip=function(a){var b=r[a];void 0===b&&(b=new Oe,r[a]=b);return b.getGripSpace()};this.setFramebufferScaleFactor=function(a){n=a;!0===h.isPresenting&&console.warn("THREE.WebXRManager: Cannot change framebuffer scale while presenting.")};
-this.setReferenceSpaceType=function(a){p=a;!0===h.isPresenting&&console.warn("THREE.WebXRManager: Cannot change reference space type while presenting.")};this.getReferenceSpace=function(){return t};this.getSession=function(){return l};this.setSession=function(a){l=a;null!==l&&(l.addEventListener("select",c),l.addEventListener("selectstart",c),l.addEventListener("selectend",c),l.addEventListener("squeeze",c),l.addEventListener("squeezestart",c),l.addEventListener("squeezeend",c),l.addEventListener("end",
-d),a=b.getContextAttributes(),!0!==a.xrCompatible&&b.makeXRCompatible(),a=new XRWebGLLayer(l,b,{antialias:a.antialias,alpha:a.alpha,depth:a.depth,stencil:a.stencil,framebufferScaleFactor:n}),l.updateRenderState({baseLayer:a}),l.requestReferenceSpace(p).then(e),l.addEventListener("inputsourceschange",f))};var U=new m,C=new m;this.getCamera=function(a){x.near=A.near=u.near=a.near;x.far=A.far=u.far=a.far;if(w!==x.near||ja!==x.far)l.updateRenderState({depthNear:x.near,depthFar:x.far}),w=x.near,ja=x.far;
-var b=a.parent,c=x.cameras;g(x,b);for(var d=0;d<c.length;d++)g(c[d],b);a.matrixWorld.copy(x.matrixWorld);a=a.children;b=0;for(d=a.length;b<d;b++)a[b].updateMatrixWorld(!0);if(2===c.length){U.setFromMatrixPosition(u.matrixWorld);C.setFromMatrixPosition(A.matrixWorld);c=U.distanceTo(C);var e=u.projectionMatrix.elements,f=A.projectionMatrix.elements,h=e[14]/(e[10]-1);a=e[14]/(e[10]+1);b=(e[9]+1)/e[5];d=(e[9]-1)/e[5];var n=(e[8]-1)/e[0],t=(f[8]+1)/f[0];f=h*n;e=h*t;t=c/(-n+t);n=t*-n;u.matrixWorld.decompose(x.position,
-x.quaternion,x.scale);x.translateX(n);x.translateZ(t);x.matrixWorld.compose(x.position,x.quaternion,x.scale);x.matrixWorldInverse.getInverse(x.matrixWorld);h+=t;t=a+t;x.projectionMatrix.makePerspective(f-n,e+(c-n),b*a/t*h,d*a/t*h,h,t)}else x.projectionMatrix.copy(u.projectionMatrix);return x};var z=null,P=new yh;P.setAnimationLoop(function(b,c){k=c.getViewerPose(t);if(null!==k){var d=k.views,e=l.renderState.baseLayer;a.setFramebuffer(e.framebuffer);var f=!1;d.length!==x.cameras.length&&(x.cameras.length=
-0,f=!0);for(var g=0;g<d.length;g++){var h=d[g],n=e.getViewport(h),p=E[g];p.matrix.fromArray(h.transform.matrix);p.projectionMatrix.fromArray(h.projectionMatrix);p.viewport.set(n.x,n.y,n.width,n.height);0===g&&x.matrix.copy(p.matrix);!0===f&&x.cameras.push(p)}}d=l.inputSources;for(e=0;e<r.length;e++)r[e].update(d[e],c,t);z&&z(b,c)});this.setAnimationLoop=function(a){z=a};this.dispose=function(){}}function Ck(a){function b(b,c,f){b.opacity.value=c.opacity;c.color&&b.diffuse.value.copy(c.color);c.emissive&&
+function Ne(a){O.call(this);this.cameras=a||[]}function Jc(){z.call(this);this.type="Group"}function Oe(){this._grip=this._targetRay=null}function Xh(a,b){function c(a){var b=r.get(a.inputSource);b&&b.dispatchEvent({type:a.type})}function d(){r.forEach(function(a,b){a.disconnect(b)});r.clear();a.setFramebuffer(null);a.setRenderTarget(a.getRenderTarget());P.stop();h.isPresenting=!1;h.dispatchEvent({type:"sessionend"})}function e(a){q=a;P.setContext(l);P.start();h.isPresenting=!0;h.dispatchEvent({type:"sessionstart"})}
+function f(a){for(var b=l.inputSources,c=0;c<t.length;c++)r.set(b[c],t[c]);for(b=0;b<a.removed.length;b++){c=a.removed[b];var d=r.get(c);d&&(d.dispatchEvent({type:"disconnected",data:c}),r.delete(c))}for(b=0;b<a.added.length;b++)c=a.added[b],(d=r.get(c))&&d.dispatchEvent({type:"connected",data:c})}function g(a,b){null===b?a.matrixWorld.copy(a.matrix):a.matrixWorld.multiplyMatrices(b.matrixWorld,a.matrix);a.matrixWorldInverse.getInverse(a.matrixWorld)}var h=this,l=null,n=1,q=null,k="local-floor",v=
+null,t=[],r=new Map,u=new O;u.layers.enable(1);u.viewport=new Y;var A=new O;A.layers.enable(2);A.viewport=new Y;var E=[u,A],x=new Ne;x.layers.enable(1);x.layers.enable(2);var w=null,ja=null;this.isPresenting=this.enabled=!1;this.getController=function(a){var b=t[a];void 0===b&&(b=new Oe,t[a]=b);return b.getTargetRaySpace()};this.getControllerGrip=function(a){var b=t[a];void 0===b&&(b=new Oe,t[a]=b);return b.getGripSpace()};this.setFramebufferScaleFactor=function(a){n=a;!0===h.isPresenting&&console.warn("THREE.WebXRManager: Cannot change framebuffer scale while presenting.")};
+this.setReferenceSpaceType=function(a){k=a;!0===h.isPresenting&&console.warn("THREE.WebXRManager: Cannot change reference space type while presenting.")};this.getReferenceSpace=function(){return q};this.getSession=function(){return l};this.setSession=function(a){l=a;null!==l&&(l.addEventListener("select",c),l.addEventListener("selectstart",c),l.addEventListener("selectend",c),l.addEventListener("squeeze",c),l.addEventListener("squeezestart",c),l.addEventListener("squeezeend",c),l.addEventListener("end",
+d),a=b.getContextAttributes(),!0!==a.xrCompatible&&b.makeXRCompatible(),a=new XRWebGLLayer(l,b,{antialias:a.antialias,alpha:a.alpha,depth:a.depth,stencil:a.stencil,framebufferScaleFactor:n}),l.updateRenderState({baseLayer:a}),l.requestReferenceSpace(k).then(e),l.addEventListener("inputsourceschange",f))};var U=new m,C=new m;this.getCamera=function(a){x.near=A.near=u.near=a.near;x.far=A.far=u.far=a.far;if(w!==x.near||ja!==x.far)l.updateRenderState({depthNear:x.near,depthFar:x.far}),w=x.near,ja=x.far;
+var b=a.parent,c=x.cameras;g(x,b);for(var d=0;d<c.length;d++)g(c[d],b);a.matrixWorld.copy(x.matrixWorld);a=a.children;b=0;for(d=a.length;b<d;b++)a[b].updateMatrixWorld(!0);if(2===c.length){U.setFromMatrixPosition(u.matrixWorld);C.setFromMatrixPosition(A.matrixWorld);c=U.distanceTo(C);var e=u.projectionMatrix.elements,f=A.projectionMatrix.elements,h=e[14]/(e[10]-1);a=e[14]/(e[10]+1);b=(e[9]+1)/e[5];d=(e[9]-1)/e[5];var n=(e[8]-1)/e[0],q=(f[8]+1)/f[0];f=h*n;e=h*q;q=c/(-n+q);n=q*-n;u.matrixWorld.decompose(x.position,
+x.quaternion,x.scale);x.translateX(n);x.translateZ(q);x.matrixWorld.compose(x.position,x.quaternion,x.scale);x.matrixWorldInverse.getInverse(x.matrixWorld);h+=q;q=a+q;x.projectionMatrix.makePerspective(f-n,e+(c-n),b*a/q*h,d*a/q*h,h,q)}else x.projectionMatrix.copy(u.projectionMatrix);return x};var z=null,P=new yh;P.setAnimationLoop(function(b,c){v=c.getViewerPose(q);if(null!==v){var d=v.views,e=l.renderState.baseLayer;a.setFramebuffer(e.framebuffer);var f=!1;d.length!==x.cameras.length&&(x.cameras.length=
+0,f=!0);for(var g=0;g<d.length;g++){var h=d[g],n=e.getViewport(h),k=E[g];k.matrix.fromArray(h.transform.matrix);k.projectionMatrix.fromArray(h.projectionMatrix);k.viewport.set(n.x,n.y,n.width,n.height);0===g&&x.matrix.copy(k.matrix);!0===f&&x.cameras.push(k)}}d=l.inputSources;for(e=0;e<t.length;e++)t[e].update(d[e],c,q);z&&z(b,c)});this.setAnimationLoop=function(a){z=a};this.dispose=function(){}}function Ck(a){function b(b,c,f){b.opacity.value=c.opacity;c.color&&b.diffuse.value.copy(c.color);c.emissive&&
 b.emissive.value.copy(c.emissive).multiplyScalar(c.emissiveIntensity);c.map&&(b.map.value=c.map);c.alphaMap&&(b.alphaMap.value=c.alphaMap);c.specularMap&&(b.specularMap.value=c.specularMap);if(f=c.envMap||f)b.envMap.value=f,b.flipEnvMap.value=f.isCubeTexture?-1:1,b.reflectivity.value=c.reflectivity,b.refractionRatio.value=c.refractionRatio,b.maxMipLevel.value=a.get(f).__maxMipLevel;c.lightMap&&(b.lightMap.value=c.lightMap,b.lightMapIntensity.value=c.lightMapIntensity);c.aoMap&&(b.aoMap.value=c.aoMap,
 b.emissive.value.copy(c.emissive).multiplyScalar(c.emissiveIntensity);c.map&&(b.map.value=c.map);c.alphaMap&&(b.alphaMap.value=c.alphaMap);c.specularMap&&(b.specularMap.value=c.specularMap);if(f=c.envMap||f)b.envMap.value=f,b.flipEnvMap.value=f.isCubeTexture?-1:1,b.reflectivity.value=c.reflectivity,b.refractionRatio.value=c.refractionRatio,b.maxMipLevel.value=a.get(f).__maxMipLevel;c.lightMap&&(b.lightMap.value=c.lightMap,b.lightMapIntensity.value=c.lightMapIntensity);c.aoMap&&(b.aoMap.value=c.aoMap,
 b.aoMapIntensity.value=c.aoMapIntensity);if(c.map)var d=c.map;else c.specularMap?d=c.specularMap:c.displacementMap?d=c.displacementMap:c.normalMap?d=c.normalMap:c.bumpMap?d=c.bumpMap:c.roughnessMap?d=c.roughnessMap:c.metalnessMap?d=c.metalnessMap:c.alphaMap?d=c.alphaMap:c.emissiveMap&&(d=c.emissiveMap);void 0!==d&&(d.isWebGLRenderTarget&&(d=d.texture),!0===d.matrixAutoUpdate&&d.updateMatrix(),b.uvTransform.value.copy(d.matrix));if(c.aoMap)var e=c.aoMap;else c.lightMap&&(e=c.lightMap);void 0!==e&&
 b.aoMapIntensity.value=c.aoMapIntensity);if(c.map)var d=c.map;else c.specularMap?d=c.specularMap:c.displacementMap?d=c.displacementMap:c.normalMap?d=c.normalMap:c.bumpMap?d=c.bumpMap:c.roughnessMap?d=c.roughnessMap:c.metalnessMap?d=c.metalnessMap:c.alphaMap?d=c.alphaMap:c.emissiveMap&&(d=c.emissiveMap);void 0!==d&&(d.isWebGLRenderTarget&&(d=d.texture),!0===d.matrixAutoUpdate&&d.updateMatrix(),b.uvTransform.value.copy(d.matrix));if(c.aoMap)var e=c.aoMap;else c.lightMap&&(e=c.lightMap);void 0!==e&&
 (e.isWebGLRenderTarget&&(e=e.texture),!0===e.matrixAutoUpdate&&e.updateMatrix(),b.uv2Transform.value.copy(e.matrix))}function c(a,b,c){a.roughness.value=b.roughness;a.metalness.value=b.metalness;b.roughnessMap&&(a.roughnessMap.value=b.roughnessMap);b.metalnessMap&&(a.metalnessMap.value=b.metalnessMap);b.emissiveMap&&(a.emissiveMap.value=b.emissiveMap);b.bumpMap&&(a.bumpMap.value=b.bumpMap,a.bumpScale.value=b.bumpScale,1===b.side&&(a.bumpScale.value*=-1));b.normalMap&&(a.normalMap.value=b.normalMap,
 (e.isWebGLRenderTarget&&(e=e.texture),!0===e.matrixAutoUpdate&&e.updateMatrix(),b.uv2Transform.value.copy(e.matrix))}function c(a,b,c){a.roughness.value=b.roughness;a.metalness.value=b.metalness;b.roughnessMap&&(a.roughnessMap.value=b.roughnessMap);b.metalnessMap&&(a.metalnessMap.value=b.metalnessMap);b.emissiveMap&&(a.emissiveMap.value=b.emissiveMap);b.bumpMap&&(a.bumpMap.value=b.bumpMap,a.bumpScale.value=b.bumpScale,1===b.side&&(a.bumpScale.value*=-1));b.normalMap&&(a.normalMap.value=b.normalMap,
@@ -181,46 +181,46 @@ e.normalMap&&(a.normalMap.value=e.normalMap,a.normalScale.value.copy(e.normalSca
 e),e.displacementMap&&(a.displacementMap.value=e.displacementMap,a.displacementScale.value=e.displacementScale,a.displacementBias.value=e.displacementBias),a.referencePosition.value.copy(e.referencePosition),a.nearDistance.value=e.nearDistance,a.farDistance.value=e.farDistance;else if(e.isMeshNormalMaterial)b(a,e),e.bumpMap&&(a.bumpMap.value=e.bumpMap,a.bumpScale.value=e.bumpScale,1===e.side&&(a.bumpScale.value*=-1)),e.normalMap&&(a.normalMap.value=e.normalMap,a.normalScale.value.copy(e.normalScale),
 e),e.displacementMap&&(a.displacementMap.value=e.displacementMap,a.displacementScale.value=e.displacementScale,a.displacementBias.value=e.displacementBias),a.referencePosition.value.copy(e.referencePosition),a.nearDistance.value=e.nearDistance,a.farDistance.value=e.farDistance;else if(e.isMeshNormalMaterial)b(a,e),e.bumpMap&&(a.bumpMap.value=e.bumpMap,a.bumpScale.value=e.bumpScale,1===e.side&&(a.bumpScale.value*=-1)),e.normalMap&&(a.normalMap.value=e.normalMap,a.normalScale.value.copy(e.normalScale),
 1===e.side&&a.normalScale.value.negate()),e.displacementMap&&(a.displacementMap.value=e.displacementMap,a.displacementScale.value=e.displacementScale,a.displacementBias.value=e.displacementBias);else if(e.isLineBasicMaterial)a.diffuse.value.copy(e.color),a.opacity.value=e.opacity,e.isLineDashedMaterial&&(a.dashSize.value=e.dashSize,a.totalSize.value=e.dashSize+e.gapSize,a.scale.value=e.scale);else if(e.isPointsMaterial){a.diffuse.value.copy(e.color);a.opacity.value=e.opacity;a.size.value=e.size*g;
 1===e.side&&a.normalScale.value.negate()),e.displacementMap&&(a.displacementMap.value=e.displacementMap,a.displacementScale.value=e.displacementScale,a.displacementBias.value=e.displacementBias);else if(e.isLineBasicMaterial)a.diffuse.value.copy(e.color),a.opacity.value=e.opacity,e.isLineDashedMaterial&&(a.dashSize.value=e.dashSize,a.totalSize.value=e.dashSize+e.gapSize,a.scale.value=e.scale);else if(e.isPointsMaterial){a.diffuse.value.copy(e.color);a.opacity.value=e.opacity;a.size.value=e.size*g;
 a.scale.value=.5*h;e.map&&(a.map.value=e.map);e.alphaMap&&(a.alphaMap.value=e.alphaMap);if(e.map)var d=e.map;else e.alphaMap&&(d=e.alphaMap);void 0!==d&&(!0===d.matrixAutoUpdate&&d.updateMatrix(),a.uvTransform.value.copy(d.matrix))}else if(e.isSpriteMaterial){a.diffuse.value.copy(e.color);a.opacity.value=e.opacity;a.rotation.value=e.rotation;e.map&&(a.map.value=e.map);e.alphaMap&&(a.alphaMap.value=e.alphaMap);if(e.map)var n=e.map;else e.alphaMap&&(n=e.alphaMap);void 0!==n&&(!0===n.matrixAutoUpdate&&
 a.scale.value=.5*h;e.map&&(a.map.value=e.map);e.alphaMap&&(a.alphaMap.value=e.alphaMap);if(e.map)var d=e.map;else e.alphaMap&&(d=e.alphaMap);void 0!==d&&(!0===d.matrixAutoUpdate&&d.updateMatrix(),a.uvTransform.value.copy(d.matrix))}else if(e.isSpriteMaterial){a.diffuse.value.copy(e.color);a.opacity.value=e.opacity;a.rotation.value=e.rotation;e.map&&(a.map.value=e.map);e.alphaMap&&(a.alphaMap.value=e.alphaMap);if(e.map)var n=e.map;else e.alphaMap&&(n=e.alphaMap);void 0!==n&&(!0===n.matrixAutoUpdate&&
-n.updateMatrix(),a.uvTransform.value.copy(n.matrix))}else e.isShadowMaterial?(a.color.value.copy(e.color),a.opacity.value=e.opacity):e.isShaderMaterial&&(e.uniformsNeedUpdate=!1)}}}function Md(a){var b;function c(a,b){for(var c=0;c<a.length;c++){var d=q.getContext(a[c],b);if(null!==d)return d}return null}function d(){sa=new rj(I);Ga=new pj(I,sa,a);!1===Ga.isWebGL2&&(sa.get("WEBGL_depth_texture"),sa.get("OES_texture_float"),sa.get("OES_texture_half_float"),sa.get("OES_texture_half_float_linear"),sa.get("OES_standard_derivatives"),
+n.updateMatrix(),a.uvTransform.value.copy(n.matrix))}else e.isShadowMaterial?(a.color.value.copy(e.color),a.opacity.value=e.opacity):e.isShaderMaterial&&(e.uniformsNeedUpdate=!1)}}}function Md(a){var b;function c(a,b){for(var c=0;c<a.length;c++){var d=r.getContext(a[c],b);if(null!==d)return d}return null}function d(){sa=new rj(I);Ga=new pj(I,sa,a);!1===Ga.isWebGL2&&(sa.get("WEBGL_depth_texture"),sa.get("OES_texture_float"),sa.get("OES_texture_half_float"),sa.get("OES_texture_half_float_linear"),sa.get("OES_standard_derivatives"),
 sa.get("OES_element_index_uint"),sa.get("ANGLE_instanced_arrays"));sa.get("OES_texture_float_linear");ra=new Wh(I,sa,Ga);V=new Ak(I,sa,Ga);V.scissor(R.copy(ha).multiplyScalar(da).floor());V.viewport(T.copy(Z).multiplyScalar(da).floor());ca=new uj(I);O=new qk;Q=new Bk(I,sa,V,O,Ga,ra,ca);na=new mj(I,Ga);wa=new sj(I,na,ca);qa=new xj(I,wa,na,ca);za=new wj(I);ta=new pk(B,sa,Ga);ya=new Ck(O);xa=new tk;va=new zk;pa=new nj(B,V,qa,ja);Ba=new oj(I,sa,ca,Ga);Da=new tj(I,sa,ca,Ga);ca.programs=ta.programs;B.capabilities=
 sa.get("OES_element_index_uint"),sa.get("ANGLE_instanced_arrays"));sa.get("OES_texture_float_linear");ra=new Wh(I,sa,Ga);V=new Ak(I,sa,Ga);V.scissor(R.copy(ha).multiplyScalar(da).floor());V.viewport(T.copy(Z).multiplyScalar(da).floor());ca=new uj(I);O=new qk;Q=new Bk(I,sa,V,O,Ga,ra,ca);na=new mj(I,Ga);wa=new sj(I,na,ca);qa=new xj(I,wa,na,ca);za=new wj(I);ta=new pk(B,sa,Ga);ya=new Ck(O);xa=new tk;va=new zk;pa=new nj(B,V,qa,ja);Ba=new oj(I,sa,ca,Ga);Da=new tj(I,sa,ca,Ga);ca.programs=ta.programs;B.capabilities=
 Ga;B.extensions=sa;B.properties=O;B.renderLists=xa;B.state=V;B.info=ca}function e(a){a.preventDefault();console.log("THREE.WebGLRenderer: Context Lost.");D=!0}function f(){console.log("THREE.WebGLRenderer: Context Restored.");D=!1;d()}function g(a){a=a.target;a.removeEventListener("dispose",g);h(a);O.remove(a)}function h(a){var b=O.get(a).program;a.program=void 0;void 0!==b&&ta.releaseProgram(b)}function l(a,b){a.render(function(a){B.renderBufferImmediate(a,b)})}function n(a,b,c,d){if(!1!==a.visible){if(a.layers.test(b.layers))if(a.isGroup)c=
 Ga;B.extensions=sa;B.properties=O;B.renderLists=xa;B.state=V;B.info=ca}function e(a){a.preventDefault();console.log("THREE.WebGLRenderer: Context Lost.");D=!0}function f(){console.log("THREE.WebGLRenderer: Context Restored.");D=!1;d()}function g(a){a=a.target;a.removeEventListener("dispose",g);h(a);O.remove(a)}function h(a){var b=O.get(a).program;a.program=void 0;void 0!==b&&ta.releaseProgram(b)}function l(a,b){a.render(function(a){B.renderBufferImmediate(a,b)})}function n(a,b,c,d){if(!1!==a.visible){if(a.layers.test(b.layers))if(a.isGroup)c=
 a.renderOrder;else if(a.isLOD)!0===a.autoUpdate&&a.update(b);else if(a.isLight)aa.pushLight(a),a.castShadow&&aa.pushShadow(a);else if(a.isSprite){if(!a.frustumCulled||mg.intersectsSprite(a)){d&&Ib.setFromMatrixPosition(a.matrixWorld).applyMatrix4(Kd);var e=qa.update(a),f=a.material;f.visible&&P.push(a,e,f,c,Ib.z,null)}}else if(a.isImmediateRenderObject)d&&Ib.setFromMatrixPosition(a.matrixWorld).applyMatrix4(Kd),P.push(a,null,a.material,c,Ib.z,null);else if(a.isMesh||a.isLine||a.isPoints)if(a.isSkinnedMesh&&
 a.renderOrder;else if(a.isLOD)!0===a.autoUpdate&&a.update(b);else if(a.isLight)aa.pushLight(a),a.castShadow&&aa.pushShadow(a);else if(a.isSprite){if(!a.frustumCulled||mg.intersectsSprite(a)){d&&Ib.setFromMatrixPosition(a.matrixWorld).applyMatrix4(Kd);var e=qa.update(a),f=a.material;f.visible&&P.push(a,e,f,c,Ib.z,null)}}else if(a.isImmediateRenderObject)d&&Ib.setFromMatrixPosition(a.matrixWorld).applyMatrix4(Kd),P.push(a,null,a.material,c,Ib.z,null);else if(a.isMesh||a.isLine||a.isPoints)if(a.isSkinnedMesh&&
-a.skeleton.frame!==ca.render.frame&&(a.skeleton.update(),a.skeleton.frame=ca.render.frame),!a.frustumCulled||mg.intersectsObject(a))if(d&&Ib.setFromMatrixPosition(a.matrixWorld).applyMatrix4(Kd),e=qa.update(a),f=a.material,Array.isArray(f))for(var g=e.groups,h=0,l=g.length;h<l;h++){var t=g[h],p=f[t.materialIndex];p&&p.visible&&P.push(a,e,p,c,Ib.z,t)}else f.visible&&P.push(a,e,f,c,Ib.z,null);a=a.children;e=0;for(f=a.length;e<f;e++)n(a[e],b,c,d)}}function t(a,b,c){for(var d=!0===b.isScene?b.overrideMaterial:
-null,e=0,f=a.length;e<f;e++){var g=a[e],h=g.object,l=g.geometry,n=null===d?g.material:d;g=g.group;if(c.isArrayCamera){X=c;for(var t=c.cameras,k=0,q=t.length;k<q;k++){var v=t[k];h.layers.test(v.layers)&&(V.viewport(T.copy(v.viewport)),aa.setupLights(v),p(h,b,v,l,n,g))}}else X=null,p(h,b,c,l,n,g)}}function p(a,c,d,e,f,g){a.onBeforeRender(B,c,d,e,f,g);aa=va.get(c,X||d);a.modelViewMatrix.multiplyMatrices(d.matrixWorldInverse,a.matrixWorld);a.normalMatrix.getNormalMatrix(a.modelViewMatrix);if(a.isImmediateRenderObject){var h=
-r(d,c,f,a);V.setMaterial(f);Me=b=null;S=!1;l(a,h)}else B.renderBufferDirect(d,c,e,f,a,g);a.onAfterRender(B,c,d,e,f,g);aa=va.get(c,X||d)}function k(a,b,c){!0!==b.isScene&&(b=oa);var d=O.get(a),e=aa.state.lights,f=e.state.version;c=ta.getParameters(a,e.state,aa.state.shadowsArray,b,Va.numPlanes,Va.numIntersection,c);var l=ta.getProgramCacheKey(c),n=d.program,t=!0;if(void 0===n)a.addEventListener("dispose",g);else if(n.cacheKey!==l)h(a);else{if(d.lightsStateVersion!==f)d.lightsStateVersion=f;else if(void 0!==
-c.shaderID)return;t=!1}t&&(n=ta.acquireProgram(c,l),d.program=n,d.uniforms=c.uniforms,d.outputEncoding=c.outputEncoding,a.program=n);c=n.getAttributes();if(a.morphTargets)for(l=a.numSupportedMorphTargets=0;l<B.maxMorphTargets;l++)0<=c["morphTarget"+l]&&a.numSupportedMorphTargets++;if(a.morphNormals)for(l=a.numSupportedMorphNormals=0;l<B.maxMorphNormals;l++)0<=c["morphNormal"+l]&&a.numSupportedMorphNormals++;c=d.uniforms;if(!a.isShaderMaterial&&!a.isRawShaderMaterial||!0===a.clipping)d.numClippingPlanes=
+a.skeleton.frame!==ca.render.frame&&(a.skeleton.update(),a.skeleton.frame=ca.render.frame),!a.frustumCulled||mg.intersectsObject(a))if(d&&Ib.setFromMatrixPosition(a.matrixWorld).applyMatrix4(Kd),e=qa.update(a),f=a.material,Array.isArray(f))for(var g=e.groups,h=0,l=g.length;h<l;h++){var q=g[h],k=f[q.materialIndex];k&&k.visible&&P.push(a,e,k,c,Ib.z,q)}else f.visible&&P.push(a,e,f,c,Ib.z,null);a=a.children;e=0;for(f=a.length;e<f;e++)n(a[e],b,c,d)}}function q(a,b,c){for(var d=!0===b.isScene?b.overrideMaterial:
+null,e=0,f=a.length;e<f;e++){var g=a[e],h=g.object,l=g.geometry,n=null===d?g.material:d;g=g.group;if(c.isArrayCamera){X=c;for(var q=c.cameras,p=0,r=q.length;p<r;p++){var v=q[p];h.layers.test(v.layers)&&(V.viewport(T.copy(v.viewport)),aa.setupLights(v),k(h,b,v,l,n,g))}}else X=null,k(h,b,c,l,n,g)}}function k(a,c,d,e,f,g){a.onBeforeRender(B,c,d,e,f,g);aa=va.get(c,X||d);a.modelViewMatrix.multiplyMatrices(d.matrixWorldInverse,a.matrixWorld);a.normalMatrix.getNormalMatrix(a.modelViewMatrix);if(a.isImmediateRenderObject){var h=
+t(d,c,f,a);V.setMaterial(f);Me=b=null;S=!1;l(a,h)}else B.renderBufferDirect(d,c,e,f,a,g);a.onAfterRender(B,c,d,e,f,g);aa=va.get(c,X||d)}function v(a,b,c){!0!==b.isScene&&(b=oa);var d=O.get(a),e=aa.state.lights,f=e.state.version;c=ta.getParameters(a,e.state,aa.state.shadowsArray,b,Va.numPlanes,Va.numIntersection,c);var l=ta.getProgramCacheKey(c),n=d.program,q=!0;if(void 0===n)a.addEventListener("dispose",g);else if(n.cacheKey!==l)h(a);else{if(d.lightsStateVersion!==f)d.lightsStateVersion=f;else if(void 0!==
+c.shaderID)return;q=!1}q&&(n=ta.acquireProgram(c,l),d.program=n,d.uniforms=c.uniforms,d.outputEncoding=c.outputEncoding,a.program=n);c=n.getAttributes();if(a.morphTargets)for(l=a.numSupportedMorphTargets=0;l<B.maxMorphTargets;l++)0<=c["morphTarget"+l]&&a.numSupportedMorphTargets++;if(a.morphNormals)for(l=a.numSupportedMorphNormals=0;l<B.maxMorphNormals;l++)0<=c["morphNormal"+l]&&a.numSupportedMorphNormals++;c=d.uniforms;if(!a.isShaderMaterial&&!a.isRawShaderMaterial||!0===a.clipping)d.numClippingPlanes=
 Va.numPlanes,d.numIntersection=Va.numIntersection,c.clippingPlanes=Va.uniform;d.environment=a.isMeshStandardMaterial?b.environment:null;d.fog=b.fog;d.needsLights=a.isMeshLambertMaterial||a.isMeshToonMaterial||a.isMeshPhongMaterial||a.isMeshStandardMaterial||a.isShadowMaterial||a.isShaderMaterial&&!0===a.lights;d.lightsStateVersion=f;d.needsLights&&(c.ambientLightColor.value=e.state.ambient,c.lightProbe.value=e.state.probe,c.directionalLights.value=e.state.directional,c.directionalLightShadows.value=
 Va.numPlanes,d.numIntersection=Va.numIntersection,c.clippingPlanes=Va.uniform;d.environment=a.isMeshStandardMaterial?b.environment:null;d.fog=b.fog;d.needsLights=a.isMeshLambertMaterial||a.isMeshToonMaterial||a.isMeshPhongMaterial||a.isMeshStandardMaterial||a.isShadowMaterial||a.isShaderMaterial&&!0===a.lights;d.lightsStateVersion=f;d.needsLights&&(c.ambientLightColor.value=e.state.ambient,c.lightProbe.value=e.state.probe,c.directionalLights.value=e.state.directional,c.directionalLightShadows.value=
 e.state.directionalShadow,c.spotLights.value=e.state.spot,c.spotLightShadows.value=e.state.spotShadow,c.rectAreaLights.value=e.state.rectArea,c.pointLights.value=e.state.point,c.pointLightShadows.value=e.state.pointShadow,c.hemisphereLights.value=e.state.hemi,c.directionalShadowMap.value=e.state.directionalShadowMap,c.directionalShadowMatrix.value=e.state.directionalShadowMatrix,c.spotShadowMap.value=e.state.spotShadowMap,c.spotShadowMatrix.value=e.state.spotShadowMatrix,c.pointShadowMap.value=e.state.pointShadowMap,
 e.state.directionalShadow,c.spotLights.value=e.state.spot,c.spotLightShadows.value=e.state.spotShadow,c.rectAreaLights.value=e.state.rectArea,c.pointLights.value=e.state.point,c.pointLightShadows.value=e.state.pointShadow,c.hemisphereLights.value=e.state.hemi,c.directionalShadowMap.value=e.state.directionalShadowMap,c.directionalShadowMatrix.value=e.state.directionalShadowMatrix,c.spotShadowMap.value=e.state.spotShadowMap,c.spotShadowMatrix.value=e.state.spotShadowMatrix,c.pointShadowMap.value=e.state.pointShadowMap,
-c.pointShadowMatrix.value=e.state.pointShadowMatrix);a=d.program.getUniforms();a=Fb.seqWithValue(a.seq,c);d.uniformsList=a}function r(a,b,c,d){!0!==b.isScene&&(b=oa);Q.resetTextureUnits();var e=b.fog,f=c.isMeshStandardMaterial?b.environment:null,g=null===G?B.outputEncoding:G.texture.encoding,h=O.get(c),l=aa.state.lights;!0!==Le||!0!==ng&&a===W||Va.setState(c.clippingPlanes,c.clipIntersection,c.clipShadows,a,h,a===W&&c.id===N);c.version===h.__version?void 0===h.program?k(c,b,d):c.fog&&h.fog!==e?k(c,
-b,d):h.environment!==f?k(c,b,d):h.needsLights&&h.lightsStateVersion!==l.state.version?k(c,b,d):void 0===h.numClippingPlanes||h.numClippingPlanes===Va.numPlanes&&h.numIntersection===Va.numIntersection?h.outputEncoding!==g&&k(c,b,d):k(c,b,d):(k(c,b,d),h.__version=c.version);var n=!1,t=!1,p=!1;b=h.program;g=b.getUniforms();l=h.uniforms;V.useProgram(b.program)&&(p=t=n=!0);c.id!==N&&(N=c.id,t=!0);if(n||W!==a){g.setValue(I,"projectionMatrix",a.projectionMatrix);Ga.logarithmicDepthBuffer&&g.setValue(I,"logDepthBufFC",
-2/(Math.log(a.far+1)/Math.LN2));W!==a&&(W=a,p=t=!0);if(c.isShaderMaterial||c.isMeshPhongMaterial||c.isMeshToonMaterial||c.isMeshStandardMaterial||c.envMap)n=g.map.cameraPosition,void 0!==n&&n.setValue(I,Ib.setFromMatrixPosition(a.matrixWorld));(c.isMeshPhongMaterial||c.isMeshToonMaterial||c.isMeshLambertMaterial||c.isMeshBasicMaterial||c.isMeshStandardMaterial||c.isShaderMaterial)&&g.setValue(I,"isOrthographic",!0===a.isOrthographicCamera);(c.isMeshPhongMaterial||c.isMeshToonMaterial||c.isMeshLambertMaterial||
-c.isMeshBasicMaterial||c.isMeshStandardMaterial||c.isShaderMaterial||c.skinning)&&g.setValue(I,"viewMatrix",a.matrixWorldInverse)}if(c.skinning&&(g.setOptional(I,d,"bindMatrix"),g.setOptional(I,d,"bindMatrixInverse"),a=d.skeleton))if(n=a.bones,Ga.floatVertexTextures){if(void 0===a.boneTexture){n=Math.sqrt(4*n.length);n=K.ceilPowerOfTwo(n);n=Math.max(n,4);var q=new Float32Array(n*n*4);q.set(a.boneMatrices);var v=new $b(q,n,n,1023,1015);a.boneMatrices=q;a.boneTexture=v;a.boneTextureSize=n}g.setValue(I,
-"boneTexture",a.boneTexture,Q);g.setValue(I,"boneTextureSize",a.boneTextureSize)}else g.setOptional(I,a,"boneMatrices");if(t||h.receiveShadow!==d.receiveShadow)h.receiveShadow=d.receiveShadow,g.setValue(I,"receiveShadow",d.receiveShadow);t&&(g.setValue(I,"toneMappingExposure",B.toneMappingExposure),h.needsLights&&(t=p,l.ambientLightColor.needsUpdate=t,l.lightProbe.needsUpdate=t,l.directionalLights.needsUpdate=t,l.directionalLightShadows.needsUpdate=t,l.pointLights.needsUpdate=t,l.pointLightShadows.needsUpdate=
-t,l.spotLights.needsUpdate=t,l.spotLightShadows.needsUpdate=t,l.rectAreaLights.needsUpdate=t,l.hemisphereLights.needsUpdate=t),e&&c.fog&&ya.refreshFogUniforms(l,e),ya.refreshMaterialUniforms(l,c,f,da,ea),void 0!==l.ltc_1&&(l.ltc_1.value=y.LTC_1),void 0!==l.ltc_2&&(l.ltc_2.value=y.LTC_2),Fb.upload(I,h.uniformsList,l,Q));c.isShaderMaterial&&!0===c.uniformsNeedUpdate&&(Fb.upload(I,h.uniformsList,l,Q),c.uniformsNeedUpdate=!1);c.isSpriteMaterial&&g.setValue(I,"center",d.center);g.setValue(I,"modelViewMatrix",
-d.modelViewMatrix);g.setValue(I,"normalMatrix",d.normalMatrix);g.setValue(I,"modelMatrix",d.matrixWorld);return b}a=a||{};var q=void 0!==a.canvas?a.canvas:document.createElementNS("http://www.w3.org/1999/xhtml","canvas"),u=void 0!==a.context?a.context:null,A=void 0!==a.alpha?a.alpha:!1,E=void 0!==a.depth?a.depth:!0,x=void 0!==a.stencil?a.stencil:!0,Ea=void 0!==a.antialias?a.antialias:!1,ja=void 0!==a.premultipliedAlpha?a.premultipliedAlpha:!0,U=void 0!==a.preserveDrawingBuffer?a.preserveDrawingBuffer:
-!1,C=void 0!==a.powerPreference?a.powerPreference:"default",z=void 0!==a.failIfMajorPerformanceCaveat?a.failIfMajorPerformanceCaveat:!1,P=null,aa=null;this.domElement=q;this.debug={checkShaderErrors:!0};this.sortObjects=this.autoClearStencil=this.autoClearDepth=this.autoClearColor=this.autoClear=!0;this.clippingPlanes=[];this.localClippingEnabled=!1;this.gammaFactor=2;this.outputEncoding=3E3;this.physicallyCorrectLights=!1;this.toneMapping=0;this.toneMappingExposure=1;this.maxMorphTargets=8;this.maxMorphNormals=
-4;var B=this,D=!1,F=null,J=0,H=0,G=null,L=null,N=-1;var Me=b=null;var S=!1;var W=null,X=null,T=new Y,R=new Y,ba=null,Wa=q.width,ea=q.height,da=1,ia=null,la=null,Z=new Y(0,0,Wa,ea),ha=new Y(0,0,Wa,ea),ma=!1,mg=new Fc,Va=new qj,Le=!1,ng=!1,Kd=new M,Ib=new m,oa={background:null,fog:null,environment:null,overrideMaterial:null,isScene:!0},I=u;try{u={alpha:A,depth:E,stencil:x,antialias:Ea,premultipliedAlpha:ja,preserveDrawingBuffer:U,powerPreference:C,failIfMajorPerformanceCaveat:z};q.addEventListener("webglcontextlost",
-e,!1);q.addEventListener("webglcontextrestored",f,!1);if(null===I&&(A=["webgl2","webgl","experimental-webgl"],!0===B.isWebGL1Renderer&&A.shift(),I=c(A,u),null===I)){if(c(A))throw Error("Error creating WebGL context with your selected attributes.");throw Error("Error creating WebGL context.");}void 0===I.getShaderPrecisionFormat&&(I.getShaderPrecisionFormat=function(){return{rangeMin:1,rangeMax:1,precision:1}})}catch(Yh){throw console.error("THREE.WebGLRenderer: "+Yh.message),Yh;}var sa,Ga,V,ca,O,
+c.pointShadowMatrix.value=e.state.pointShadowMatrix);a=d.program.getUniforms();a=Fb.seqWithValue(a.seq,c);d.uniformsList=a}function t(a,b,c,d){!0!==b.isScene&&(b=oa);Q.resetTextureUnits();var e=b.fog,f=c.isMeshStandardMaterial?b.environment:null,g=null===G?B.outputEncoding:G.texture.encoding,h=O.get(c),l=aa.state.lights;!0!==Le||!0!==ng&&a===W||Va.setState(c.clippingPlanes,c.clipIntersection,c.clipShadows,a,h,a===W&&c.id===N);c.version===h.__version?void 0===h.program?v(c,b,d):c.fog&&h.fog!==e?v(c,
+b,d):h.environment!==f?v(c,b,d):h.needsLights&&h.lightsStateVersion!==l.state.version?v(c,b,d):void 0===h.numClippingPlanes||h.numClippingPlanes===Va.numPlanes&&h.numIntersection===Va.numIntersection?h.outputEncoding!==g&&v(c,b,d):v(c,b,d):(v(c,b,d),h.__version=c.version);var n=!1,q=!1,k=!1;b=h.program;g=b.getUniforms();l=h.uniforms;V.useProgram(b.program)&&(k=q=n=!0);c.id!==N&&(N=c.id,q=!0);if(n||W!==a){g.setValue(I,"projectionMatrix",a.projectionMatrix);Ga.logarithmicDepthBuffer&&g.setValue(I,"logDepthBufFC",
+2/(Math.log(a.far+1)/Math.LN2));W!==a&&(W=a,k=q=!0);if(c.isShaderMaterial||c.isMeshPhongMaterial||c.isMeshToonMaterial||c.isMeshStandardMaterial||c.envMap)n=g.map.cameraPosition,void 0!==n&&n.setValue(I,Ib.setFromMatrixPosition(a.matrixWorld));(c.isMeshPhongMaterial||c.isMeshToonMaterial||c.isMeshLambertMaterial||c.isMeshBasicMaterial||c.isMeshStandardMaterial||c.isShaderMaterial)&&g.setValue(I,"isOrthographic",!0===a.isOrthographicCamera);(c.isMeshPhongMaterial||c.isMeshToonMaterial||c.isMeshLambertMaterial||
+c.isMeshBasicMaterial||c.isMeshStandardMaterial||c.isShaderMaterial||c.skinning)&&g.setValue(I,"viewMatrix",a.matrixWorldInverse)}if(c.skinning&&(g.setOptional(I,d,"bindMatrix"),g.setOptional(I,d,"bindMatrixInverse"),a=d.skeleton))if(n=a.bones,Ga.floatVertexTextures){if(void 0===a.boneTexture){n=Math.sqrt(4*n.length);n=K.ceilPowerOfTwo(n);n=Math.max(n,4);var p=new Float32Array(n*n*4);p.set(a.boneMatrices);var r=new $b(p,n,n,1023,1015);a.boneMatrices=p;a.boneTexture=r;a.boneTextureSize=n}g.setValue(I,
+"boneTexture",a.boneTexture,Q);g.setValue(I,"boneTextureSize",a.boneTextureSize)}else g.setOptional(I,a,"boneMatrices");if(q||h.receiveShadow!==d.receiveShadow)h.receiveShadow=d.receiveShadow,g.setValue(I,"receiveShadow",d.receiveShadow);q&&(g.setValue(I,"toneMappingExposure",B.toneMappingExposure),h.needsLights&&(q=k,l.ambientLightColor.needsUpdate=q,l.lightProbe.needsUpdate=q,l.directionalLights.needsUpdate=q,l.directionalLightShadows.needsUpdate=q,l.pointLights.needsUpdate=q,l.pointLightShadows.needsUpdate=
+q,l.spotLights.needsUpdate=q,l.spotLightShadows.needsUpdate=q,l.rectAreaLights.needsUpdate=q,l.hemisphereLights.needsUpdate=q),e&&c.fog&&ya.refreshFogUniforms(l,e),ya.refreshMaterialUniforms(l,c,f,da,ea),void 0!==l.ltc_1&&(l.ltc_1.value=y.LTC_1),void 0!==l.ltc_2&&(l.ltc_2.value=y.LTC_2),Fb.upload(I,h.uniformsList,l,Q));c.isShaderMaterial&&!0===c.uniformsNeedUpdate&&(Fb.upload(I,h.uniformsList,l,Q),c.uniformsNeedUpdate=!1);c.isSpriteMaterial&&g.setValue(I,"center",d.center);g.setValue(I,"modelViewMatrix",
+d.modelViewMatrix);g.setValue(I,"normalMatrix",d.normalMatrix);g.setValue(I,"modelMatrix",d.matrixWorld);return b}a=a||{};var r=void 0!==a.canvas?a.canvas:document.createElementNS("http://www.w3.org/1999/xhtml","canvas"),u=void 0!==a.context?a.context:null,A=void 0!==a.alpha?a.alpha:!1,E=void 0!==a.depth?a.depth:!0,x=void 0!==a.stencil?a.stencil:!0,Ea=void 0!==a.antialias?a.antialias:!1,ja=void 0!==a.premultipliedAlpha?a.premultipliedAlpha:!0,U=void 0!==a.preserveDrawingBuffer?a.preserveDrawingBuffer:
+!1,C=void 0!==a.powerPreference?a.powerPreference:"default",z=void 0!==a.failIfMajorPerformanceCaveat?a.failIfMajorPerformanceCaveat:!1,P=null,aa=null;this.domElement=r;this.debug={checkShaderErrors:!0};this.sortObjects=this.autoClearStencil=this.autoClearDepth=this.autoClearColor=this.autoClear=!0;this.clippingPlanes=[];this.localClippingEnabled=!1;this.gammaFactor=2;this.outputEncoding=3E3;this.physicallyCorrectLights=!1;this.toneMapping=0;this.toneMappingExposure=1;this.maxMorphTargets=8;this.maxMorphNormals=
+4;var B=this,D=!1,F=null,J=0,H=0,G=null,L=null,N=-1;var Me=b=null;var S=!1;var W=null,X=null,T=new Y,R=new Y,ba=null,Wa=r.width,ea=r.height,da=1,ia=null,la=null,Z=new Y(0,0,Wa,ea),ha=new Y(0,0,Wa,ea),ma=!1,mg=new Fc,Va=new qj,Le=!1,ng=!1,Kd=new M,Ib=new m,oa={background:null,fog:null,environment:null,overrideMaterial:null,isScene:!0},I=u;try{u={alpha:A,depth:E,stencil:x,antialias:Ea,premultipliedAlpha:ja,preserveDrawingBuffer:U,powerPreference:C,failIfMajorPerformanceCaveat:z};r.addEventListener("webglcontextlost",
+e,!1);r.addEventListener("webglcontextrestored",f,!1);if(null===I&&(A=["webgl2","webgl","experimental-webgl"],!0===B.isWebGL1Renderer&&A.shift(),I=c(A,u),null===I)){if(c(A))throw Error("Error creating WebGL context with your selected attributes.");throw Error("Error creating WebGL context.");}void 0===I.getShaderPrecisionFormat&&(I.getShaderPrecisionFormat=function(){return{rangeMin:1,rangeMax:1,precision:1}})}catch(Yh){throw console.error("THREE.WebGLRenderer: "+Yh.message),Yh;}var sa,Ga,V,ca,O,
 Q,na,wa,qa,ta,ya,xa,va,pa,za,Ba,Da,ra;d();var ua=new Xh(B,I);this.xr=ua;var Fa=new Vh(B,qa,Ga.maxTextureSize);this.shadowMap=Fa;this.getContext=function(){return I};this.getContextAttributes=function(){return I.getContextAttributes()};this.forceContextLoss=function(){var a=sa.get("WEBGL_lose_context");a&&a.loseContext()};this.forceContextRestore=function(){var a=sa.get("WEBGL_lose_context");a&&a.restoreContext()};this.getPixelRatio=function(){return da};this.setPixelRatio=function(a){void 0!==a&&
 Q,na,wa,qa,ta,ya,xa,va,pa,za,Ba,Da,ra;d();var ua=new Xh(B,I);this.xr=ua;var Fa=new Vh(B,qa,Ga.maxTextureSize);this.shadowMap=Fa;this.getContext=function(){return I};this.getContextAttributes=function(){return I.getContextAttributes()};this.forceContextLoss=function(){var a=sa.get("WEBGL_lose_context");a&&a.loseContext()};this.forceContextRestore=function(){var a=sa.get("WEBGL_lose_context");a&&a.restoreContext()};this.getPixelRatio=function(){return da};this.setPixelRatio=function(a){void 0!==a&&
-(da=a,this.setSize(Wa,ea,!1))};this.getSize=function(a){void 0===a&&(console.warn("WebGLRenderer: .getsize() now requires a Vector2 as an argument"),a=new w);return a.set(Wa,ea)};this.setSize=function(a,b,c){ua.isPresenting?console.warn("THREE.WebGLRenderer: Can't change size while VR device is presenting."):(Wa=a,ea=b,q.width=Math.floor(a*da),q.height=Math.floor(b*da),!1!==c&&(q.style.width=a+"px",q.style.height=b+"px"),this.setViewport(0,0,a,b))};this.getDrawingBufferSize=function(a){void 0===a&&
-(console.warn("WebGLRenderer: .getdrawingBufferSize() now requires a Vector2 as an argument"),a=new w);return a.set(Wa*da,ea*da).floor()};this.setDrawingBufferSize=function(a,b,c){Wa=a;ea=b;da=c;q.width=Math.floor(a*c);q.height=Math.floor(b*c);this.setViewport(0,0,a,b)};this.getCurrentViewport=function(a){void 0===a&&(console.warn("WebGLRenderer: .getCurrentViewport() now requires a Vector4 as an argument"),a=new Y);return a.copy(T)};this.getViewport=function(a){return a.copy(Z)};this.setViewport=
+(da=a,this.setSize(Wa,ea,!1))};this.getSize=function(a){void 0===a&&(console.warn("WebGLRenderer: .getsize() now requires a Vector2 as an argument"),a=new w);return a.set(Wa,ea)};this.setSize=function(a,b,c){ua.isPresenting?console.warn("THREE.WebGLRenderer: Can't change size while VR device is presenting."):(Wa=a,ea=b,r.width=Math.floor(a*da),r.height=Math.floor(b*da),!1!==c&&(r.style.width=a+"px",r.style.height=b+"px"),this.setViewport(0,0,a,b))};this.getDrawingBufferSize=function(a){void 0===a&&
+(console.warn("WebGLRenderer: .getdrawingBufferSize() now requires a Vector2 as an argument"),a=new w);return a.set(Wa*da,ea*da).floor()};this.setDrawingBufferSize=function(a,b,c){Wa=a;ea=b;da=c;r.width=Math.floor(a*c);r.height=Math.floor(b*c);this.setViewport(0,0,a,b)};this.getCurrentViewport=function(a){void 0===a&&(console.warn("WebGLRenderer: .getCurrentViewport() now requires a Vector4 as an argument"),a=new Y);return a.copy(T)};this.getViewport=function(a){return a.copy(Z)};this.setViewport=
 function(a,b,c,d){a.isVector4?Z.set(a.x,a.y,a.z,a.w):Z.set(a,b,c,d);V.viewport(T.copy(Z).multiplyScalar(da).floor())};this.getScissor=function(a){return a.copy(ha)};this.setScissor=function(a,b,c,d){a.isVector4?ha.set(a.x,a.y,a.z,a.w):ha.set(a,b,c,d);V.scissor(R.copy(ha).multiplyScalar(da).floor())};this.getScissorTest=function(){return ma};this.setScissorTest=function(a){V.setScissorTest(ma=a)};this.setOpaqueSort=function(a){ia=a};this.setTransparentSort=function(a){la=a};this.getClearColor=function(){return pa.getClearColor()};
 function(a,b,c,d){a.isVector4?Z.set(a.x,a.y,a.z,a.w):Z.set(a,b,c,d);V.viewport(T.copy(Z).multiplyScalar(da).floor())};this.getScissor=function(a){return a.copy(ha)};this.setScissor=function(a,b,c,d){a.isVector4?ha.set(a.x,a.y,a.z,a.w):ha.set(a,b,c,d);V.scissor(R.copy(ha).multiplyScalar(da).floor())};this.getScissorTest=function(){return ma};this.setScissorTest=function(a){V.setScissorTest(ma=a)};this.setOpaqueSort=function(a){ia=a};this.setTransparentSort=function(a){la=a};this.getClearColor=function(){return pa.getClearColor()};
-this.setClearColor=function(){pa.setClearColor.apply(pa,arguments)};this.getClearAlpha=function(){return pa.getClearAlpha()};this.setClearAlpha=function(){pa.setClearAlpha.apply(pa,arguments)};this.clear=function(a,b,c){var d=0;if(void 0===a||a)d|=16384;if(void 0===b||b)d|=256;if(void 0===c||c)d|=1024;I.clear(d)};this.clearColor=function(){this.clear(!0,!1,!1)};this.clearDepth=function(){this.clear(!1,!0,!1)};this.clearStencil=function(){this.clear(!1,!1,!0)};this.dispose=function(){q.removeEventListener("webglcontextlost",
-e,!1);q.removeEventListener("webglcontextrestored",f,!1);xa.dispose();va.dispose();O.dispose();qa.dispose();ua.dispose();Aa.stop()};this.renderBufferImmediate=function(a,b){V.initAttributes();var c=O.get(a);a.hasPositions&&!c.position&&(c.position=I.createBuffer());a.hasNormals&&!c.normal&&(c.normal=I.createBuffer());a.hasUvs&&!c.uv&&(c.uv=I.createBuffer());a.hasColors&&!c.color&&(c.color=I.createBuffer());b=b.getAttributes();a.hasPositions&&(I.bindBuffer(34962,c.position),I.bufferData(34962,a.positionArray,
+this.setClearColor=function(){pa.setClearColor.apply(pa,arguments)};this.getClearAlpha=function(){return pa.getClearAlpha()};this.setClearAlpha=function(){pa.setClearAlpha.apply(pa,arguments)};this.clear=function(a,b,c){var d=0;if(void 0===a||a)d|=16384;if(void 0===b||b)d|=256;if(void 0===c||c)d|=1024;I.clear(d)};this.clearColor=function(){this.clear(!0,!1,!1)};this.clearDepth=function(){this.clear(!1,!0,!1)};this.clearStencil=function(){this.clear(!1,!1,!0)};this.dispose=function(){r.removeEventListener("webglcontextlost",
+e,!1);r.removeEventListener("webglcontextrestored",f,!1);xa.dispose();va.dispose();O.dispose();qa.dispose();ua.dispose();Aa.stop()};this.renderBufferImmediate=function(a,b){V.initAttributes();var c=O.get(a);a.hasPositions&&!c.position&&(c.position=I.createBuffer());a.hasNormals&&!c.normal&&(c.normal=I.createBuffer());a.hasUvs&&!c.uv&&(c.uv=I.createBuffer());a.hasColors&&!c.color&&(c.color=I.createBuffer());b=b.getAttributes();a.hasPositions&&(I.bindBuffer(34962,c.position),I.bufferData(34962,a.positionArray,
 35048),V.enableAttribute(b.position),I.vertexAttribPointer(b.position,3,5126,!1,0,0));a.hasNormals&&(I.bindBuffer(34962,c.normal),I.bufferData(34962,a.normalArray,35048),V.enableAttribute(b.normal),I.vertexAttribPointer(b.normal,3,5126,!1,0,0));a.hasUvs&&(I.bindBuffer(34962,c.uv),I.bufferData(34962,a.uvArray,35048),V.enableAttribute(b.uv),I.vertexAttribPointer(b.uv,2,5126,!1,0,0));a.hasColors&&(I.bindBuffer(34962,c.color),I.bufferData(34962,a.colorArray,35048),V.enableAttribute(b.color),I.vertexAttribPointer(b.color,
 35048),V.enableAttribute(b.position),I.vertexAttribPointer(b.position,3,5126,!1,0,0));a.hasNormals&&(I.bindBuffer(34962,c.normal),I.bufferData(34962,a.normalArray,35048),V.enableAttribute(b.normal),I.vertexAttribPointer(b.normal,3,5126,!1,0,0));a.hasUvs&&(I.bindBuffer(34962,c.uv),I.bufferData(34962,a.uvArray,35048),V.enableAttribute(b.uv),I.vertexAttribPointer(b.uv,2,5126,!1,0,0));a.hasColors&&(I.bindBuffer(34962,c.color),I.bufferData(34962,a.colorArray,35048),V.enableAttribute(b.color),I.vertexAttribPointer(b.color,
-3,5126,!1,0,0));V.disableUnusedAttributes();I.drawArrays(4,0,a.count);a.count=0};this.renderBufferDirect=function(a,c,d,e,f,g){null===c&&(c=oa);var h=f.isMesh&&0>f.matrixWorld.determinant(),l=r(a,c,e,f);V.setMaterial(e,h);var n=!1;if(b!==d.id||Me!==l.id||S!==(!0===e.wireframe))b=d.id,Me=l.id,S=!0===e.wireframe,n=!0;if(e.morphTargets||e.morphNormals)za.update(f,d,e,l),n=!0;!0===f.isInstancedMesh&&(n=!0);a=d.index;c=d.attributes.position;if(null===a){if(void 0===c||0===c.count)return}else if(0===a.count)return;
-var t=1;!0===e.wireframe&&(a=wa.getWireframeAttribute(d),t=2);h=Ba;if(null!==a){var p=na.get(a);h=Da;h.setIndex(p)}if(n){if(!1!==Ga.isWebGL2||!f.isInstancedMesh&&!d.isInstancedBufferGeometry||null!==sa.get("ANGLE_instanced_arrays")){V.initAttributes();n=d.attributes;l=l.getAttributes();var k=e.defaultAttributeValues;for(U in l){var q=l[U];if(0<=q){var v=n[U];if(void 0!==v){var u=v.normalized,m=v.itemSize,A=na.get(v);if(void 0!==A){var x=A.buffer,E=A.type;A=A.bytesPerElement;if(v.isInterleavedBufferAttribute){var C=
-v.data,w=C.stride;v=v.offset;C&&C.isInstancedInterleavedBuffer?(V.enableAttributeAndDivisor(q,C.meshPerAttribute),void 0===d._maxInstanceCount&&(d._maxInstanceCount=C.meshPerAttribute*C.count)):V.enableAttribute(q);I.bindBuffer(34962,x);V.vertexAttribPointer(q,m,E,u,w*A,v*A)}else v.isInstancedBufferAttribute?(V.enableAttributeAndDivisor(q,v.meshPerAttribute),void 0===d._maxInstanceCount&&(d._maxInstanceCount=v.meshPerAttribute*v.count)):V.enableAttribute(q),I.bindBuffer(34962,x),V.vertexAttribPointer(q,
-m,E,u,0,0)}}else if("instanceMatrix"===U)m=na.get(f.instanceMatrix),void 0!==m&&(u=m.buffer,m=m.type,V.enableAttributeAndDivisor(q+0,1),V.enableAttributeAndDivisor(q+1,1),V.enableAttributeAndDivisor(q+2,1),V.enableAttributeAndDivisor(q+3,1),I.bindBuffer(34962,u),I.vertexAttribPointer(q+0,4,m,!1,64,0),I.vertexAttribPointer(q+1,4,m,!1,64,16),I.vertexAttribPointer(q+2,4,m,!1,64,32),I.vertexAttribPointer(q+3,4,m,!1,64,48));else if(void 0!==k&&(u=k[U],void 0!==u))switch(u.length){case 2:I.vertexAttrib2fv(q,
-u);break;case 3:I.vertexAttrib3fv(q,u);break;case 4:I.vertexAttrib4fv(q,u);break;default:I.vertexAttrib1fv(q,u)}}}V.disableUnusedAttributes()}null!==a&&I.bindBuffer(34963,p.buffer)}var U=d.drawRange.start*t;n=null!==g?g.start*t:0;p=Math.max(U,n);g=Math.max(0,Math.min(null!==a?a.count:c.count,U+d.drawRange.count*t,n+(null!==g?g.count*t:Infinity))-1-p+1);0!==g&&(f.isMesh?!0===e.wireframe?(V.setLineWidth(e.wireframeLinewidth*(null===G?da:1)),h.setMode(1)):h.setMode(4):f.isLine?(e=e.linewidth,void 0===
-e&&(e=1),V.setLineWidth(e*(null===G?da:1)),f.isLineSegments?h.setMode(1):f.isLineLoop?h.setMode(2):h.setMode(3)):f.isPoints?h.setMode(0):f.isSprite&&h.setMode(4),f.isInstancedMesh?h.renderInstances(d,p,g,f.count):d.isInstancedBufferGeometry?h.renderInstances(d,p,g,Math.min(d.instanceCount,d._maxInstanceCount)):h.render(p,g))};this.compile=function(a,b){aa=va.get(a,b);aa.init();a.traverse(function(a){a.isLight&&(aa.pushLight(a),a.castShadow&&aa.pushShadow(a))});aa.setupLights(b);var c=new WeakMap;
-a.traverse(function(b){var d=b.material;if(d)if(Array.isArray(d))for(var e=0;e<d.length;e++){var f=d[e];!1===c.has(f)&&(k(f,a,b),c.set(f))}else!1===c.has(d)&&(k(d,a,b),c.set(d))})};var Ca=null,Aa=new yh;Aa.setAnimationLoop(function(a){ua.isPresenting||Ca&&Ca(a)});"undefined"!==typeof window&&Aa.setContext(window);this.setAnimationLoop=function(a){Ca=a;ua.setAnimationLoop(a);Aa.start()};this.render=function(a,c,d,e){if(void 0!==d){console.warn("THREE.WebGLRenderer.render(): the renderTarget argument has been removed. Use .setRenderTarget() instead.");
+3,5126,!1,0,0));V.disableUnusedAttributes();I.drawArrays(4,0,a.count);a.count=0};this.renderBufferDirect=function(a,c,d,e,f,g){null===c&&(c=oa);var h=f.isMesh&&0>f.matrixWorld.determinant(),l=t(a,c,e,f);V.setMaterial(e,h);var n=!1;if(b!==d.id||Me!==l.id||S!==(!0===e.wireframe))b=d.id,Me=l.id,S=!0===e.wireframe,n=!0;if(e.morphTargets||e.morphNormals)za.update(f,d,e,l),n=!0;!0===f.isInstancedMesh&&(n=!0);a=d.index;c=d.attributes.position;if(null===a){if(void 0===c||0===c.count)return}else if(0===a.count)return;
+var q=1;!0===e.wireframe&&(a=wa.getWireframeAttribute(d),q=2);h=Ba;if(null!==a){var k=na.get(a);h=Da;h.setIndex(k)}if(n){if(!1!==Ga.isWebGL2||!f.isInstancedMesh&&!d.isInstancedBufferGeometry||null!==sa.get("ANGLE_instanced_arrays")){V.initAttributes();n=d.attributes;l=l.getAttributes();var p=e.defaultAttributeValues;for(U in l){var r=l[U];if(0<=r){var v=n[U];if(void 0!==v){var u=v.normalized,m=v.itemSize,A=na.get(v);if(void 0!==A){var x=A.buffer,E=A.type;A=A.bytesPerElement;if(v.isInterleavedBufferAttribute){var C=
+v.data,w=C.stride;v=v.offset;C&&C.isInstancedInterleavedBuffer?(V.enableAttributeAndDivisor(r,C.meshPerAttribute),void 0===d._maxInstanceCount&&(d._maxInstanceCount=C.meshPerAttribute*C.count)):V.enableAttribute(r);I.bindBuffer(34962,x);V.vertexAttribPointer(r,m,E,u,w*A,v*A)}else v.isInstancedBufferAttribute?(V.enableAttributeAndDivisor(r,v.meshPerAttribute),void 0===d._maxInstanceCount&&(d._maxInstanceCount=v.meshPerAttribute*v.count)):V.enableAttribute(r),I.bindBuffer(34962,x),V.vertexAttribPointer(r,
+m,E,u,0,0)}}else if("instanceMatrix"===U)m=na.get(f.instanceMatrix),void 0!==m&&(u=m.buffer,m=m.type,V.enableAttributeAndDivisor(r+0,1),V.enableAttributeAndDivisor(r+1,1),V.enableAttributeAndDivisor(r+2,1),V.enableAttributeAndDivisor(r+3,1),I.bindBuffer(34962,u),I.vertexAttribPointer(r+0,4,m,!1,64,0),I.vertexAttribPointer(r+1,4,m,!1,64,16),I.vertexAttribPointer(r+2,4,m,!1,64,32),I.vertexAttribPointer(r+3,4,m,!1,64,48));else if(void 0!==p&&(u=p[U],void 0!==u))switch(u.length){case 2:I.vertexAttrib2fv(r,
+u);break;case 3:I.vertexAttrib3fv(r,u);break;case 4:I.vertexAttrib4fv(r,u);break;default:I.vertexAttrib1fv(r,u)}}}V.disableUnusedAttributes()}null!==a&&I.bindBuffer(34963,k.buffer)}var U=d.drawRange.start*q;n=null!==g?g.start*q:0;k=Math.max(U,n);g=Math.max(0,Math.min(null!==a?a.count:c.count,U+d.drawRange.count*q,n+(null!==g?g.count*q:Infinity))-1-k+1);0!==g&&(f.isMesh?!0===e.wireframe?(V.setLineWidth(e.wireframeLinewidth*(null===G?da:1)),h.setMode(1)):h.setMode(4):f.isLine?(e=e.linewidth,void 0===
+e&&(e=1),V.setLineWidth(e*(null===G?da:1)),f.isLineSegments?h.setMode(1):f.isLineLoop?h.setMode(2):h.setMode(3)):f.isPoints?h.setMode(0):f.isSprite&&h.setMode(4),f.isInstancedMesh?h.renderInstances(d,k,g,f.count):d.isInstancedBufferGeometry?h.renderInstances(d,k,g,Math.min(d.instanceCount,d._maxInstanceCount)):h.render(k,g))};this.compile=function(a,b){aa=va.get(a,b);aa.init();a.traverse(function(a){a.isLight&&(aa.pushLight(a),a.castShadow&&aa.pushShadow(a))});aa.setupLights(b);var c=new WeakMap;
+a.traverse(function(b){var d=b.material;if(d)if(Array.isArray(d))for(var e=0;e<d.length;e++){var f=d[e];!1===c.has(f)&&(v(f,a,b),c.set(f))}else!1===c.has(d)&&(v(d,a,b),c.set(d))})};var Ca=null,Aa=new yh;Aa.setAnimationLoop(function(a){ua.isPresenting||Ca&&Ca(a)});"undefined"!==typeof window&&Aa.setContext(window);this.setAnimationLoop=function(a){Ca=a;ua.setAnimationLoop(a);Aa.start()};this.render=function(a,c,d,e){if(void 0!==d){console.warn("THREE.WebGLRenderer.render(): the renderTarget argument has been removed. Use .setRenderTarget() instead.");
 var f=d}if(void 0!==e){console.warn("THREE.WebGLRenderer.render(): the forceClear argument has been removed. Use .clear() instead.");var g=e}if(void 0!==c&&!0!==c.isCamera)console.error("THREE.WebGLRenderer.render: camera is not an instance of THREE.Camera.");else if(!0!==D){Me=b=null;S=!1;N=-1;W=null;!0===a.autoUpdate&&a.updateMatrixWorld();null===c.parent&&c.updateMatrixWorld();!0===ua.enabled&&!0===ua.isPresenting&&(c=ua.getCamera(c));if(!0===a.isScene)a.onBeforeRender(B,a,c,f||G);aa=va.get(a,
 var f=d}if(void 0!==e){console.warn("THREE.WebGLRenderer.render(): the forceClear argument has been removed. Use .clear() instead.");var g=e}if(void 0!==c&&!0!==c.isCamera)console.error("THREE.WebGLRenderer.render: camera is not an instance of THREE.Camera.");else if(!0!==D){Me=b=null;S=!1;N=-1;W=null;!0===a.autoUpdate&&a.updateMatrixWorld();null===c.parent&&c.updateMatrixWorld();!0===ua.enabled&&!0===ua.isPresenting&&(c=ua.getCamera(c));if(!0===a.isScene)a.onBeforeRender(B,a,c,f||G);aa=va.get(a,
 c);aa.init();Kd.multiplyMatrices(c.projectionMatrix,c.matrixWorldInverse);mg.setFromProjectionMatrix(Kd);ng=this.localClippingEnabled;Le=Va.init(this.clippingPlanes,ng,c);P=xa.get(a,c);P.init();n(a,c,0,B.sortObjects);P.finish();!0===B.sortObjects&&P.sort(ia,la);!0===Le&&Va.beginShadows();Fa.render(aa.state.shadowsArray,a,c);aa.setupLights(c);!0===Le&&Va.endShadows();!0===this.info.autoReset&&this.info.reset();void 0!==f&&this.setRenderTarget(f);pa.render(P,a,c,g);d=P.opaque;e=P.transparent;0<d.length&&
 c);aa.init();Kd.multiplyMatrices(c.projectionMatrix,c.matrixWorldInverse);mg.setFromProjectionMatrix(Kd);ng=this.localClippingEnabled;Le=Va.init(this.clippingPlanes,ng,c);P=xa.get(a,c);P.init();n(a,c,0,B.sortObjects);P.finish();!0===B.sortObjects&&P.sort(ia,la);!0===Le&&Va.beginShadows();Fa.render(aa.state.shadowsArray,a,c);aa.setupLights(c);!0===Le&&Va.endShadows();!0===this.info.autoReset&&this.info.reset();void 0!==f&&this.setRenderTarget(f);pa.render(P,a,c,g);d=P.opaque;e=P.transparent;0<d.length&&
-t(d,a,c);0<e.length&&t(e,a,c);if(!0===a.isScene)a.onAfterRender(B,a,c);null!==G&&(Q.updateRenderTargetMipmap(G),Q.updateMultisampleRenderTarget(G));V.buffers.depth.setTest(!0);V.buffers.depth.setMask(!0);V.buffers.color.setMask(!0);V.setPolygonOffset(!1);aa=P=null}};this.setFramebuffer=function(a){F!==a&&null===G&&I.bindFramebuffer(36160,a);F=a};this.getActiveCubeFace=function(){return J};this.getActiveMipmapLevel=function(){return H};this.getRenderTarget=function(){return G};this.setRenderTarget=
+q(d,a,c);0<e.length&&q(e,a,c);if(!0===a.isScene)a.onAfterRender(B,a,c);null!==G&&(Q.updateRenderTargetMipmap(G),Q.updateMultisampleRenderTarget(G));V.buffers.depth.setTest(!0);V.buffers.depth.setMask(!0);V.buffers.color.setMask(!0);V.setPolygonOffset(!1);aa=P=null}};this.setFramebuffer=function(a){F!==a&&null===G&&I.bindFramebuffer(36160,a);F=a};this.getActiveCubeFace=function(){return J};this.getActiveMipmapLevel=function(){return H};this.getRenderTarget=function(){return G};this.setRenderTarget=
 function(a,b,c){G=a;J=b;H=c;a&&void 0===O.get(a).__webglFramebuffer&&Q.setupRenderTarget(a);var d=F,e=!1;a?(d=O.get(a).__webglFramebuffer,a.isWebGLCubeRenderTarget?(d=d[b||0],e=!0):d=a.isWebGLMultisampleRenderTarget?O.get(a).__webglMultisampledFramebuffer:d,T.copy(a.viewport),R.copy(a.scissor),ba=a.scissorTest):(T.copy(Z).multiplyScalar(da).floor(),R.copy(ha).multiplyScalar(da).floor(),ba=ma);L!==d&&(I.bindFramebuffer(36160,d),L=d);V.viewport(T);V.scissor(R);V.setScissorTest(ba);e&&(a=O.get(a.texture),
 function(a,b,c){G=a;J=b;H=c;a&&void 0===O.get(a).__webglFramebuffer&&Q.setupRenderTarget(a);var d=F,e=!1;a?(d=O.get(a).__webglFramebuffer,a.isWebGLCubeRenderTarget?(d=d[b||0],e=!0):d=a.isWebGLMultisampleRenderTarget?O.get(a).__webglMultisampledFramebuffer:d,T.copy(a.viewport),R.copy(a.scissor),ba=a.scissorTest):(T.copy(Z).multiplyScalar(da).floor(),R.copy(ha).multiplyScalar(da).floor(),ba=ma);L!==d&&(I.bindFramebuffer(36160,d),L=d);V.viewport(T);V.scissor(R);V.setScissorTest(ba);e&&(a=O.get(a.texture),
-I.framebufferTexture2D(36160,36064,34069+(b||0),a.__webglTexture,c||0))};this.readRenderTargetPixels=function(a,b,c,d,e,f,g){if(a&&a.isWebGLRenderTarget){var h=O.get(a).__webglFramebuffer;a.isWebGLCubeRenderTarget&&void 0!==g&&(h=h[g]);if(h){g=!1;h!==L&&(I.bindFramebuffer(36160,h),g=!0);try{var l=a.texture,n=l.format,t=l.type;1023!==n&&ra.convert(n)!==I.getParameter(35739)?console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format."):1009===
-t||ra.convert(t)===I.getParameter(35738)||1015===t&&(Ga.isWebGL2||sa.get("OES_texture_float")||sa.get("WEBGL_color_buffer_float"))||1016===t&&(Ga.isWebGL2?sa.get("EXT_color_buffer_float"):sa.get("EXT_color_buffer_half_float"))?36053===I.checkFramebufferStatus(36160)?0<=b&&b<=a.width-d&&0<=c&&c<=a.height-e&&I.readPixels(b,c,d,e,ra.convert(n),ra.convert(t),f):console.error("THREE.WebGLRenderer.readRenderTargetPixels: readPixels from renderTarget failed. Framebuffer not complete."):console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in UnsignedByteType or implementation defined type.")}finally{g&&
+I.framebufferTexture2D(36160,36064,34069+(b||0),a.__webglTexture,c||0))};this.readRenderTargetPixels=function(a,b,c,d,e,f,g){if(a&&a.isWebGLRenderTarget){var h=O.get(a).__webglFramebuffer;a.isWebGLCubeRenderTarget&&void 0!==g&&(h=h[g]);if(h){g=!1;h!==L&&(I.bindFramebuffer(36160,h),g=!0);try{var l=a.texture,n=l.format,q=l.type;1023!==n&&ra.convert(n)!==I.getParameter(35739)?console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format."):1009===
+q||ra.convert(q)===I.getParameter(35738)||1015===q&&(Ga.isWebGL2||sa.get("OES_texture_float")||sa.get("WEBGL_color_buffer_float"))||1016===q&&(Ga.isWebGL2?sa.get("EXT_color_buffer_float"):sa.get("EXT_color_buffer_half_float"))?36053===I.checkFramebufferStatus(36160)?0<=b&&b<=a.width-d&&0<=c&&c<=a.height-e&&I.readPixels(b,c,d,e,ra.convert(n),ra.convert(q),f):console.error("THREE.WebGLRenderer.readRenderTargetPixels: readPixels from renderTarget failed. Framebuffer not complete."):console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in UnsignedByteType or implementation defined type.")}finally{g&&
 I.bindFramebuffer(36160,L)}}}else console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.")};this.copyFramebufferToTexture=function(a,b,c){void 0===c&&(c=0);var d=Math.pow(2,-c),e=Math.floor(b.image.width*d);d=Math.floor(b.image.height*d);var f=ra.convert(b.format);Q.setTexture2D(b,0);I.copyTexImage2D(3553,c,f,a.x,a.y,e,d,0);V.unbindTexture()};this.copyTextureToTexture=function(a,b,c,d){void 0===d&&(d=0);var e=b.image.width,f=b.image.height,g=ra.convert(c.format),
 I.bindFramebuffer(36160,L)}}}else console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.")};this.copyFramebufferToTexture=function(a,b,c){void 0===c&&(c=0);var d=Math.pow(2,-c),e=Math.floor(b.image.width*d);d=Math.floor(b.image.height*d);var f=ra.convert(b.format);Q.setTexture2D(b,0);I.copyTexImage2D(3553,c,f,a.x,a.y,e,d,0);V.unbindTexture()};this.copyTextureToTexture=function(a,b,c,d){void 0===d&&(d=0);var e=b.image.width,f=b.image.height,g=ra.convert(c.format),
 h=ra.convert(c.type);Q.setTexture2D(c,0);b.isDataTexture?I.texSubImage2D(3553,d,a.x,a.y,e,f,g,h,b.image.data):b.isCompressedTexture?I.compressedTexSubImage2D(3553,d,a.x,a.y,b.mipmaps[0].width,b.mipmaps[0].height,g,b.mipmaps[0].data):I.texSubImage2D(3553,d,a.x,a.y,g,h,b.image);0===d&&c.generateMipmaps&&I.generateMipmap(3553);V.unbindTexture()};this.initTexture=function(a){Q.setTexture2D(a,0);V.unbindTexture()};"undefined"!==typeof __THREE_DEVTOOLS__&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",
 h=ra.convert(c.type);Q.setTexture2D(c,0);b.isDataTexture?I.texSubImage2D(3553,d,a.x,a.y,e,f,g,h,b.image.data):b.isCompressedTexture?I.compressedTexSubImage2D(3553,d,a.x,a.y,b.mipmaps[0].width,b.mipmaps[0].height,g,b.mipmaps[0].data):I.texSubImage2D(3553,d,a.x,a.y,g,h,b.image);0===d&&c.generateMipmaps&&I.generateMipmap(3553);V.unbindTexture()};this.initTexture=function(a){Q.setTexture2D(a,0);V.unbindTexture()};"undefined"!==typeof __THREE_DEVTOOLS__&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",
 {detail:this}))}function og(a){Md.call(this,a)}function Pe(a,b){this.name="";this.color=new D(a);this.density=void 0!==b?b:2.5E-4}function Qe(a,b,c){this.name="";this.color=new D(a);this.near=void 0!==b?b:1;this.far=void 0!==c?c:1E3}function Ja(a,b){this.array=a;this.stride=b;this.count=void 0!==a?a.length/b:0;this.usage=35044;this.updateRange={offset:0,count:-1};this.version=0;this.uuid=K.generateUUID()}function Jb(a,b,c,d){this.name="";this.data=a;this.itemSize=b;this.offset=c;this.normalized=!0===
 {detail:this}))}function og(a){Md.call(this,a)}function Pe(a,b){this.name="";this.color=new D(a);this.density=void 0!==b?b:2.5E-4}function Qe(a,b,c){this.name="";this.color=new D(a);this.near=void 0!==b?b:1;this.far=void 0!==c?c:1E3}function Ja(a,b){this.array=a;this.stride=b;this.count=void 0!==a?a.length/b:0;this.usage=35044;this.updateRange={offset:0,count:-1};this.version=0;this.uuid=K.generateUUID()}function Jb(a,b,c,d){this.name="";this.data=a;this.itemSize=b;this.offset=c;this.normalized=!0===
@@ -229,13 +229,13 @@ a?a:new Kb;this.center=new w(.5,.5)}function Re(a,b,c,d,e,f){Lc.subVectors(a,c).
 X.call(this,a,b);this.type="SkinnedMesh";this.bindMode="attached";this.bindMatrix=new M;this.bindMatrixInverse=new M}function Te(a,b){a=a||[];this.bones=a.slice(0);this.boneMatrices=new Float32Array(16*this.bones.length);this.frame=-1;if(void 0===b)this.calculateInverses();else if(this.bones.length===b.length)this.boneInverses=b.slice(0);else for(console.warn("THREE.Skeleton boneInverses is the wrong length."),this.boneInverses=[],a=0,b=this.bones.length;a<b;a++)this.boneInverses.push(new M)}function pg(){z.call(this);
 X.call(this,a,b);this.type="SkinnedMesh";this.bindMode="attached";this.bindMatrix=new M;this.bindMatrixInverse=new M}function Te(a,b){a=a||[];this.bones=a.slice(0);this.boneMatrices=new Float32Array(16*this.bones.length);this.frame=-1;if(void 0===b)this.calculateInverses();else if(this.bones.length===b.length)this.boneInverses=b.slice(0);else for(console.warn("THREE.Skeleton boneInverses is the wrong length."),this.boneInverses=[],a=0,b=this.bones.length;a<b;a++)this.boneInverses.push(new M)}function pg(){z.call(this);
 this.type="Bone"}function Ue(a,b,c){X.call(this,a,b);this.instanceMatrix=new H(new Float32Array(16*c),16);this.count=c;this.frustumCulled=!1}function la(a){G.call(this);this.type="LineBasicMaterial";this.color=new D(16777215);this.linewidth=1;this.linejoin=this.linecap="round";this.morphTargets=!1;this.setValues(a)}function Ka(a,b,c){1===c&&console.error("THREE.Line: parameter THREE.LinePieces no longer supported. Use THREE.LineSegments instead.");z.call(this);this.type="Line";this.geometry=void 0!==
 this.type="Bone"}function Ue(a,b,c){X.call(this,a,b);this.instanceMatrix=new H(new Float32Array(16*c),16);this.count=c;this.frustumCulled=!1}function la(a){G.call(this);this.type="LineBasicMaterial";this.color=new D(16777215);this.linewidth=1;this.linejoin=this.linecap="round";this.morphTargets=!1;this.setValues(a)}function Ka(a,b,c){1===c&&console.error("THREE.Line: parameter THREE.LinePieces no longer supported. Use THREE.LineSegments instead.");z.call(this);this.type="Line";this.geometry=void 0!==
 a?a:new F;this.material=void 0!==b?b:new la;this.updateMorphTargets()}function ha(a,b){Ka.call(this,a,b);this.type="LineSegments"}function Ve(a,b){Ka.call(this,a,b);this.type="LineLoop"}function Xa(a){G.call(this);this.type="PointsMaterial";this.color=new D(16777215);this.alphaMap=this.map=null;this.size=1;this.sizeAttenuation=!0;this.morphTargets=!1;this.setValues(a)}function Mc(a,b){z.call(this);this.type="Points";this.geometry=void 0!==a?a:new F;this.material=void 0!==b?b:new Xa;this.updateMorphTargets()}
 a?a:new F;this.material=void 0!==b?b:new la;this.updateMorphTargets()}function ha(a,b){Ka.call(this,a,b);this.type="LineSegments"}function Ve(a,b){Ka.call(this,a,b);this.type="LineLoop"}function Xa(a){G.call(this);this.type="PointsMaterial";this.color=new D(16777215);this.alphaMap=this.map=null;this.size=1;this.sizeAttenuation=!0;this.morphTargets=!1;this.setValues(a)}function Mc(a,b){z.call(this);this.type="Points";this.geometry=void 0!==a?a:new F;this.material=void 0!==b?b:new Xa;this.updateMorphTargets()}
-function qg(a,b,c,d,e,f,g){var h=rg.distanceSqToPoint(a);h<c&&(c=new m,rg.closestPointToPoint(a,c),c.applyMatrix4(d),a=e.ray.origin.distanceTo(c),a<e.near||a>e.far||f.push({distance:a,distanceToRay:Math.sqrt(h),point:c,index:b,face:null,object:g}))}function sg(a,b,c,d,e,f,g,h,l){W.call(this,a,b,c,d,e,f,g,h,l);this.format=void 0!==g?g:1022;this.minFilter=void 0!==f?f:1006;this.magFilter=void 0!==e?e:1006;this.generateMipmaps=!1}function Nc(a,b,c,d,e,f,g,h,l,n,t,p){W.call(this,null,f,g,h,l,n,d,e,t,
-p);this.image={width:b,height:c};this.mipmaps=a;this.generateMipmaps=this.flipY=!1}function Qd(a,b,c,d,e,f,g,h,l){W.call(this,a,b,c,d,e,f,g,h,l);this.needsUpdate=!0}function Rd(a,b,c,d,e,f,g,h,l,n){n=void 0!==n?n:1026;if(1026!==n&&1027!==n)throw Error("DepthTexture format must be either THREE.DepthFormat or THREE.DepthStencilFormat");void 0===c&&1026===n&&(c=1012);void 0===c&&1027===n&&(c=1020);W.call(this,null,d,e,f,g,h,n,c,l);this.image={width:a,height:b};this.magFilter=void 0!==g?g:1003;this.minFilter=
-void 0!==h?h:1003;this.generateMipmaps=this.flipY=!1}function Oc(a){F.call(this);this.type="WireframeGeometry";var b=[],c=[0,0],d={},e=["a","b","c"];if(a&&a.isGeometry){for(var f=a.faces,g=0,h=f.length;g<h;g++)for(var l=f[g],n=0;3>n;n++){var t=l[e[n]],p=l[e[(n+1)%3]];c[0]=Math.min(t,p);c[1]=Math.max(t,p);t=c[0]+","+c[1];void 0===d[t]&&(d[t]={index1:c[0],index2:c[1]})}for(var k in d)c=d[k],f=a.vertices[c.index1],b.push(f.x,f.y,f.z),f=a.vertices[c.index2],b.push(f.x,f.y,f.z)}else if(a&&a.isBufferGeometry)if(k=
-new m,null!==a.index){e=a.attributes.position;g=a.index;a=a.groups;0===a.length&&(a=[{start:0,count:g.count,materialIndex:0}]);h=0;for(l=a.length;h<l;++h)for(t=a[h],n=p=t.start,t=p+t.count;n<t;n+=3)for(p=0;3>p;p++){var r=g.getX(n+p),q=g.getX(n+(p+1)%3);c[0]=Math.min(r,q);c[1]=Math.max(r,q);r=c[0]+","+c[1];void 0===d[r]&&(d[r]={index1:c[0],index2:c[1]})}for(f in d)c=d[f],k.fromBufferAttribute(e,c.index1),b.push(k.x,k.y,k.z),k.fromBufferAttribute(e,c.index2),b.push(k.x,k.y,k.z)}else for(d=a.attributes.position,
-c=0,f=d.count/3;c<f;c++)for(a=0;3>a;a++)k.fromBufferAttribute(d,3*c+a),b.push(k.x,k.y,k.z),k.fromBufferAttribute(d,3*c+(a+1)%3),b.push(k.x,k.y,k.z);this.setAttribute("position",new B(b,3))}function Sd(a,b,c){L.call(this);this.type="ParametricGeometry";this.parameters={func:a,slices:b,stacks:c};this.fromBufferGeometry(new Pc(a,b,c));this.mergeVertices()}function Pc(a,b,c){F.call(this);this.type="ParametricBufferGeometry";this.parameters={func:a,slices:b,stacks:c};var d=[],e=[],f=[],g=[],h=new m,l=
-new m,n=new m,t=new m,p=new m;3>a.length&&console.error("THREE.ParametricGeometry: Function must now modify a Vector3 as third parameter.");for(var k=b+1,r=0;r<=c;r++)for(var q=r/c,u=0;u<=b;u++){var A=u/b;a(A,q,l);e.push(l.x,l.y,l.z);0<=A-1E-5?(a(A-1E-5,q,n),t.subVectors(l,n)):(a(A+1E-5,q,n),t.subVectors(n,l));0<=q-1E-5?(a(A,q-1E-5,n),p.subVectors(l,n)):(a(A,q+1E-5,n),p.subVectors(n,l));h.crossVectors(t,p).normalize();f.push(h.x,h.y,h.z);g.push(A,q)}for(a=0;a<c;a++)for(h=0;h<b;h++)l=a*k+h+1,n=(a+
-1)*k+h+1,t=(a+1)*k+h,d.push(a*k+h,l,t),d.push(l,n,t);this.setIndex(d);this.setAttribute("position",new B(e,3));this.setAttribute("normal",new B(f,3));this.setAttribute("uv",new B(g,2))}function Td(a,b,c,d){L.call(this);this.type="PolyhedronGeometry";this.parameters={vertices:a,indices:b,radius:c,detail:d};this.fromBufferGeometry(new Fa(a,b,c,d));this.mergeVertices()}function Fa(a,b,c,d){function e(a){h.push(a.x,a.y,a.z)}function f(b,c){b*=3;c.x=a[b+0];c.y=a[b+1];c.z=a[b+2]}function g(a,b,c,d){0>d&&
+function qg(a,b,c,d,e,f,g){var h=rg.distanceSqToPoint(a);h<c&&(c=new m,rg.closestPointToPoint(a,c),c.applyMatrix4(d),a=e.ray.origin.distanceTo(c),a<e.near||a>e.far||f.push({distance:a,distanceToRay:Math.sqrt(h),point:c,index:b,face:null,object:g}))}function sg(a,b,c,d,e,f,g,h,l){W.call(this,a,b,c,d,e,f,g,h,l);this.format=void 0!==g?g:1022;this.minFilter=void 0!==f?f:1006;this.magFilter=void 0!==e?e:1006;this.generateMipmaps=!1}function Nc(a,b,c,d,e,f,g,h,l,n,q,k){W.call(this,null,f,g,h,l,n,d,e,q,
+k);this.image={width:b,height:c};this.mipmaps=a;this.generateMipmaps=this.flipY=!1}function Qd(a,b,c,d,e,f,g,h,l){W.call(this,a,b,c,d,e,f,g,h,l);this.needsUpdate=!0}function Rd(a,b,c,d,e,f,g,h,l,n){n=void 0!==n?n:1026;if(1026!==n&&1027!==n)throw Error("DepthTexture format must be either THREE.DepthFormat or THREE.DepthStencilFormat");void 0===c&&1026===n&&(c=1012);void 0===c&&1027===n&&(c=1020);W.call(this,null,d,e,f,g,h,n,c,l);this.image={width:a,height:b};this.magFilter=void 0!==g?g:1003;this.minFilter=
+void 0!==h?h:1003;this.generateMipmaps=this.flipY=!1}function Oc(a){F.call(this);this.type="WireframeGeometry";var b=[],c=[0,0],d={},e=["a","b","c"];if(a&&a.isGeometry){for(var f=a.faces,g=0,h=f.length;g<h;g++)for(var l=f[g],n=0;3>n;n++){var q=l[e[n]],k=l[e[(n+1)%3]];c[0]=Math.min(q,k);c[1]=Math.max(q,k);q=c[0]+","+c[1];void 0===d[q]&&(d[q]={index1:c[0],index2:c[1]})}for(var v in d)c=d[v],f=a.vertices[c.index1],b.push(f.x,f.y,f.z),f=a.vertices[c.index2],b.push(f.x,f.y,f.z)}else if(a&&a.isBufferGeometry)if(v=
+new m,null!==a.index){e=a.attributes.position;g=a.index;a=a.groups;0===a.length&&(a=[{start:0,count:g.count,materialIndex:0}]);h=0;for(l=a.length;h<l;++h)for(q=a[h],n=k=q.start,q=k+q.count;n<q;n+=3)for(k=0;3>k;k++){var t=g.getX(n+k),r=g.getX(n+(k+1)%3);c[0]=Math.min(t,r);c[1]=Math.max(t,r);t=c[0]+","+c[1];void 0===d[t]&&(d[t]={index1:c[0],index2:c[1]})}for(f in d)c=d[f],v.fromBufferAttribute(e,c.index1),b.push(v.x,v.y,v.z),v.fromBufferAttribute(e,c.index2),b.push(v.x,v.y,v.z)}else for(d=a.attributes.position,
+c=0,f=d.count/3;c<f;c++)for(a=0;3>a;a++)v.fromBufferAttribute(d,3*c+a),b.push(v.x,v.y,v.z),v.fromBufferAttribute(d,3*c+(a+1)%3),b.push(v.x,v.y,v.z);this.setAttribute("position",new B(b,3))}function Sd(a,b,c){L.call(this);this.type="ParametricGeometry";this.parameters={func:a,slices:b,stacks:c};this.fromBufferGeometry(new Pc(a,b,c));this.mergeVertices()}function Pc(a,b,c){F.call(this);this.type="ParametricBufferGeometry";this.parameters={func:a,slices:b,stacks:c};var d=[],e=[],f=[],g=[],h=new m,l=
+new m,n=new m,q=new m,k=new m;3>a.length&&console.error("THREE.ParametricGeometry: Function must now modify a Vector3 as third parameter.");for(var v=b+1,t=0;t<=c;t++)for(var r=t/c,u=0;u<=b;u++){var A=u/b;a(A,r,l);e.push(l.x,l.y,l.z);0<=A-1E-5?(a(A-1E-5,r,n),q.subVectors(l,n)):(a(A+1E-5,r,n),q.subVectors(n,l));0<=r-1E-5?(a(A,r-1E-5,n),k.subVectors(l,n)):(a(A,r+1E-5,n),k.subVectors(n,l));h.crossVectors(q,k).normalize();f.push(h.x,h.y,h.z);g.push(A,r)}for(a=0;a<c;a++)for(h=0;h<b;h++)l=a*v+h+1,n=(a+
+1)*v+h+1,q=(a+1)*v+h,d.push(a*v+h,l,q),d.push(l,n,q);this.setIndex(d);this.setAttribute("position",new B(e,3));this.setAttribute("normal",new B(f,3));this.setAttribute("uv",new B(g,2))}function Td(a,b,c,d){L.call(this);this.type="PolyhedronGeometry";this.parameters={vertices:a,indices:b,radius:c,detail:d};this.fromBufferGeometry(new Fa(a,b,c,d));this.mergeVertices()}function Fa(a,b,c,d){function e(a){h.push(a.x,a.y,a.z)}function f(b,c){b*=3;c.x=a[b+0];c.y=a[b+1];c.z=a[b+2]}function g(a,b,c,d){0>d&&
 1===a.x&&(l[b]=a.x-1);0===c.x&&0===c.z&&(l[b]=d/2/Math.PI+.5)}F.call(this);this.type="PolyhedronBufferGeometry";this.parameters={vertices:a,indices:b,radius:c,detail:d};c=c||1;d=d||0;var h=[],l=[];(function(a){for(var c=new m,d=new m,g=new m,h=0;h<b.length;h+=3){f(b[h+0],c);f(b[h+1],d);f(b[h+2],g);for(var l=c,n=d,k=g,E=Math.pow(2,a),x=[],w=0;w<=E;w++){x[w]=[];for(var B=l.clone().lerp(k,w/E),U=n.clone().lerp(k,w/E),C=E-w,z=0;z<=C;z++)x[w][z]=0===z&&w===E?B:B.clone().lerp(U,z/C)}for(l=0;l<E;l++)for(n=
 1===a.x&&(l[b]=a.x-1);0===c.x&&0===c.z&&(l[b]=d/2/Math.PI+.5)}F.call(this);this.type="PolyhedronBufferGeometry";this.parameters={vertices:a,indices:b,radius:c,detail:d};c=c||1;d=d||0;var h=[],l=[];(function(a){for(var c=new m,d=new m,g=new m,h=0;h<b.length;h+=3){f(b[h+0],c);f(b[h+1],d);f(b[h+2],g);for(var l=c,n=d,k=g,E=Math.pow(2,a),x=[],w=0;w<=E;w++){x[w]=[];for(var B=l.clone().lerp(k,w/E),U=n.clone().lerp(k,w/E),C=E-w,z=0;z<=C;z++)x[w][z]=0===z&&w===E?B:B.clone().lerp(U,z/C)}for(l=0;l<E;l++)for(n=
 0;n<2*(E-l)-1;n++)k=Math.floor(n/2),0===n%2?(e(x[l][k+1]),e(x[l+1][k]),e(x[l][k])):(e(x[l][k+1]),e(x[l+1][k+1]),e(x[l+1][k]))}})(d);(function(a){for(var b=new m,c=0;c<h.length;c+=3)b.x=h[c+0],b.y=h[c+1],b.z=h[c+2],b.normalize().multiplyScalar(a),h[c+0]=b.x,h[c+1]=b.y,h[c+2]=b.z})(c);(function(){for(var a=new m,b=0;b<h.length;b+=3)a.x=h[b+0],a.y=h[b+1],a.z=h[b+2],l.push(Math.atan2(a.z,-a.x)/2/Math.PI+.5,1-(Math.atan2(-a.y,Math.sqrt(a.x*a.x+a.z*a.z))/Math.PI+.5));a=new m;b=new m;for(var c=new m,d=new m,
 0;n<2*(E-l)-1;n++)k=Math.floor(n/2),0===n%2?(e(x[l][k+1]),e(x[l+1][k]),e(x[l][k])):(e(x[l][k+1]),e(x[l+1][k+1]),e(x[l+1][k]))}})(d);(function(a){for(var b=new m,c=0;c<h.length;c+=3)b.x=h[c+0],b.y=h[c+1],b.z=h[c+2],b.normalize().multiplyScalar(a),h[c+0]=b.x,h[c+1]=b.y,h[c+2]=b.z})(c);(function(){for(var a=new m,b=0;b<h.length;b+=3)a.x=h[b+0],a.y=h[b+1],a.z=h[b+2],l.push(Math.atan2(a.z,-a.x)/2/Math.PI+.5,1-(Math.atan2(-a.y,Math.sqrt(a.x*a.x+a.z*a.z))/Math.PI+.5));a=new m;b=new m;for(var c=new m,d=new m,
 e=new w,f=new w,k=new w,A=0,E=0;A<h.length;A+=9,E+=6){a.set(h[A+0],h[A+1],h[A+2]);b.set(h[A+3],h[A+4],h[A+5]);c.set(h[A+6],h[A+7],h[A+8]);e.set(l[E+0],l[E+1]);f.set(l[E+2],l[E+3]);k.set(l[E+4],l[E+5]);d.copy(a).add(b).add(c).divideScalar(3);var x=Math.atan2(d.z,-d.x);g(e,E+0,a,x);g(f,E+2,b,x);g(k,E+4,c,x)}for(a=0;a<l.length;a+=6)b=l[a+0],c=l[a+2],d=l[a+4],e=Math.min(b,c,d),.9<Math.max(b,c,d)&&.1>e&&(.2>b&&(l[a+0]+=1),.2>c&&(l[a+2]+=1),.2>d&&(l[a+4]+=1))})();this.setAttribute("position",new B(h,3));
 e=new w,f=new w,k=new w,A=0,E=0;A<h.length;A+=9,E+=6){a.set(h[A+0],h[A+1],h[A+2]);b.set(h[A+3],h[A+4],h[A+5]);c.set(h[A+6],h[A+7],h[A+8]);e.set(l[E+0],l[E+1]);f.set(l[E+2],l[E+3]);k.set(l[E+4],l[E+5]);d.copy(a).add(b).add(c).divideScalar(3);var x=Math.atan2(d.z,-d.x);g(e,E+0,a,x);g(f,E+2,b,x);g(k,E+4,c,x)}for(a=0;a<l.length;a+=6)b=l[a+0],c=l[a+2],d=l[a+4],e=Math.min(b,c,d),.9<Math.max(b,c,d)&&.1>e&&(.2>b&&(l[a+0]+=1),.2>c&&(l[a+2]+=1),.2>d&&(l[a+4]+=1))})();this.setAttribute("position",new B(h,3));
@@ -243,27 +243,27 @@ this.setAttribute("normal",new B(h.slice(),3));this.setAttribute("uv",new B(l,2)
 "OctahedronGeometry";this.parameters={radius:a,detail:b};this.fromBufferGeometry(new bc(a,b));this.mergeVertices()}function bc(a,b){Fa.call(this,[1,0,0,-1,0,0,0,1,0,0,-1,0,0,0,1,0,0,-1],[0,2,4,0,4,3,0,3,5,0,5,2,1,2,5,1,5,3,1,3,4,1,4,2],a,b);this.type="OctahedronBufferGeometry";this.parameters={radius:a,detail:b}}function Wd(a,b){L.call(this);this.type="IcosahedronGeometry";this.parameters={radius:a,detail:b};this.fromBufferGeometry(new Rc(a,b));this.mergeVertices()}function Rc(a,b){var c=(1+Math.sqrt(5))/
 "OctahedronGeometry";this.parameters={radius:a,detail:b};this.fromBufferGeometry(new bc(a,b));this.mergeVertices()}function bc(a,b){Fa.call(this,[1,0,0,-1,0,0,0,1,0,0,-1,0,0,0,1,0,0,-1],[0,2,4,0,4,3,0,3,5,0,5,2,1,2,5,1,5,3,1,3,4,1,4,2],a,b);this.type="OctahedronBufferGeometry";this.parameters={radius:a,detail:b}}function Wd(a,b){L.call(this);this.type="IcosahedronGeometry";this.parameters={radius:a,detail:b};this.fromBufferGeometry(new Rc(a,b));this.mergeVertices()}function Rc(a,b){var c=(1+Math.sqrt(5))/
 2;Fa.call(this,[-1,c,0,1,c,0,-1,-c,0,1,-c,0,0,-1,c,0,1,c,0,-1,-c,0,1,-c,c,0,-1,c,0,1,-c,0,-1,-c,0,1],[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],a,b);this.type="IcosahedronBufferGeometry";this.parameters={radius:a,detail:b}}function Xd(a,b){L.call(this);this.type="DodecahedronGeometry";this.parameters={radius:a,detail:b};this.fromBufferGeometry(new Sc(a,b));this.mergeVertices()}function Sc(a,b){var c=(1+Math.sqrt(5))/
 2;Fa.call(this,[-1,c,0,1,c,0,-1,-c,0,1,-c,0,0,-1,c,0,1,c,0,-1,-c,0,1,-c,c,0,-1,c,0,1,-c,0,-1,-c,0,1],[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],a,b);this.type="IcosahedronBufferGeometry";this.parameters={radius:a,detail:b}}function Xd(a,b){L.call(this);this.type="DodecahedronGeometry";this.parameters={radius:a,detail:b};this.fromBufferGeometry(new Sc(a,b));this.mergeVertices()}function Sc(a,b){var c=(1+Math.sqrt(5))/
 2,d=1/c;Fa.call(this,[-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,-d,-c,0,-d,c,0,d,-c,0,d,c,-d,-c,0,-d,c,0,d,-c,0,d,c,0,-c,0,-d,c,0,-d,-c,0,d,c,0,d],[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],a,b);this.type="DodecahedronBufferGeometry";this.parameters={radius:a,
 2,d=1/c;Fa.call(this,[-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,-d,-c,0,-d,c,0,d,-c,0,d,c,-d,-c,0,-d,c,0,d,-c,0,d,c,0,-c,0,-d,c,0,-d,-c,0,d,c,0,d],[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],a,b);this.type="DodecahedronBufferGeometry";this.parameters={radius:a,
-detail:b}}function Yd(a,b,c,d,e,f){L.call(this);this.type="TubeGeometry";this.parameters={path:a,tubularSegments:b,radius:c,radialSegments:d,closed:e};void 0!==f&&console.warn("THREE.TubeGeometry: taper has been removed.");a=new cc(a,b,c,d,e);this.tangents=a.tangents;this.normals=a.normals;this.binormals=a.binormals;this.fromBufferGeometry(a);this.mergeVertices()}function cc(a,b,c,d,e){function f(e){t=a.getPointAt(e/b,t);var f=g.normals[e];e=g.binormals[e];for(var n=0;n<=d;n++){var p=n/d*Math.PI*
-2,q=Math.sin(p);p=-Math.cos(p);l.x=p*f.x+q*e.x;l.y=p*f.y+q*e.y;l.z=p*f.z+q*e.z;l.normalize();v.push(l.x,l.y,l.z);h.x=t.x+c*l.x;h.y=t.y+c*l.y;h.z=t.z+c*l.z;k.push(h.x,h.y,h.z)}}F.call(this);this.type="TubeBufferGeometry";this.parameters={path:a,tubularSegments:b,radius:c,radialSegments:d,closed:e};b=b||64;c=c||1;d=d||8;e=e||!1;var g=a.computeFrenetFrames(b,e);this.tangents=g.tangents;this.normals=g.normals;this.binormals=g.binormals;var h=new m,l=new m,n=new w,t=new m,k=[],v=[],r=[],q=[];(function(){for(var a=
-0;a<b;a++)f(a);f(!1===e?b:0);for(a=0;a<=b;a++)for(var c=0;c<=d;c++)n.x=a/b,n.y=c/d,r.push(n.x,n.y);for(a=1;a<=b;a++)for(c=1;c<=d;c++){var g=(d+1)*a+(c-1),h=(d+1)*a+c,l=(d+1)*(a-1)+c;q.push((d+1)*(a-1)+(c-1),g,l);q.push(g,h,l)}})();this.setIndex(q);this.setAttribute("position",new B(k,3));this.setAttribute("normal",new B(v,3));this.setAttribute("uv",new B(r,2))}function Zd(a,b,c,d,e,f,g){L.call(this);this.type="TorusKnotGeometry";this.parameters={radius:a,tube:b,tubularSegments:c,radialSegments:d,
+detail:b}}function Yd(a,b,c,d,e,f){L.call(this);this.type="TubeGeometry";this.parameters={path:a,tubularSegments:b,radius:c,radialSegments:d,closed:e};void 0!==f&&console.warn("THREE.TubeGeometry: taper has been removed.");a=new cc(a,b,c,d,e);this.tangents=a.tangents;this.normals=a.normals;this.binormals=a.binormals;this.fromBufferGeometry(a);this.mergeVertices()}function cc(a,b,c,d,e){function f(e){q=a.getPointAt(e/b,q);var f=g.normals[e];e=g.binormals[e];for(var n=0;n<=d;n++){var p=n/d*Math.PI*
+2,r=Math.sin(p);p=-Math.cos(p);l.x=p*f.x+r*e.x;l.y=p*f.y+r*e.y;l.z=p*f.z+r*e.z;l.normalize();v.push(l.x,l.y,l.z);h.x=q.x+c*l.x;h.y=q.y+c*l.y;h.z=q.z+c*l.z;k.push(h.x,h.y,h.z)}}F.call(this);this.type="TubeBufferGeometry";this.parameters={path:a,tubularSegments:b,radius:c,radialSegments:d,closed:e};b=b||64;c=c||1;d=d||8;e=e||!1;var g=a.computeFrenetFrames(b,e);this.tangents=g.tangents;this.normals=g.normals;this.binormals=g.binormals;var h=new m,l=new m,n=new w,q=new m,k=[],v=[],t=[],r=[];(function(){for(var a=
+0;a<b;a++)f(a);f(!1===e?b:0);for(a=0;a<=b;a++)for(var c=0;c<=d;c++)n.x=a/b,n.y=c/d,t.push(n.x,n.y);for(a=1;a<=b;a++)for(c=1;c<=d;c++){var g=(d+1)*a+(c-1),h=(d+1)*a+c,l=(d+1)*(a-1)+c;r.push((d+1)*(a-1)+(c-1),g,l);r.push(g,h,l)}})();this.setIndex(r);this.setAttribute("position",new B(k,3));this.setAttribute("normal",new B(v,3));this.setAttribute("uv",new B(t,2))}function Zd(a,b,c,d,e,f,g){L.call(this);this.type="TorusKnotGeometry";this.parameters={radius:a,tube:b,tubularSegments:c,radialSegments:d,
 p:e,q:f};void 0!==g&&console.warn("THREE.TorusKnotGeometry: heightScale has been deprecated. Use .scale( x, y, z ) instead.");this.fromBufferGeometry(new Tc(a,b,c,d,e,f));this.mergeVertices()}function Tc(a,b,c,d,e,f){function g(a,b,c,d,e){var f=Math.sin(a);b=c/b*a;c=Math.cos(b);e.x=d*(2+c)*.5*Math.cos(a);e.y=d*(2+c)*f*.5;e.z=d*Math.sin(b)*.5}F.call(this);this.type="TorusKnotBufferGeometry";this.parameters={radius:a,tube:b,tubularSegments:c,radialSegments:d,p:e,q:f};a=a||1;b=b||.4;c=Math.floor(c)||
 p:e,q:f};void 0!==g&&console.warn("THREE.TorusKnotGeometry: heightScale has been deprecated. Use .scale( x, y, z ) instead.");this.fromBufferGeometry(new Tc(a,b,c,d,e,f));this.mergeVertices()}function Tc(a,b,c,d,e,f){function g(a,b,c,d,e){var f=Math.sin(a);b=c/b*a;c=Math.cos(b);e.x=d*(2+c)*.5*Math.cos(a);e.y=d*(2+c)*f*.5;e.z=d*Math.sin(b)*.5}F.call(this);this.type="TorusKnotBufferGeometry";this.parameters={radius:a,tube:b,tubularSegments:c,radialSegments:d,p:e,q:f};a=a||1;b=b||.4;c=Math.floor(c)||
-64;d=Math.floor(d)||8;e=e||2;f=f||3;for(var h=[],l=[],n=[],t=[],k=new m,v=new m,r=new m,q=new m,u=new m,A=new m,w=new m,x=0;x<=c;++x){var z=x/c*e*Math.PI*2;g(z,e,f,a,r);g(z+.01,e,f,a,q);A.subVectors(q,r);w.addVectors(q,r);u.crossVectors(A,w);w.crossVectors(u,A);u.normalize();w.normalize();for(z=0;z<=d;++z){var ja=z/d*Math.PI*2,U=-b*Math.cos(ja);ja=b*Math.sin(ja);k.x=r.x+(U*w.x+ja*u.x);k.y=r.y+(U*w.y+ja*u.y);k.z=r.z+(U*w.z+ja*u.z);l.push(k.x,k.y,k.z);v.subVectors(k,r).normalize();n.push(v.x,v.y,v.z);
-t.push(x/c);t.push(z/d)}}for(a=1;a<=c;a++)for(b=1;b<=d;b++)e=(d+1)*a+(b-1),f=(d+1)*a+b,k=(d+1)*(a-1)+b,h.push((d+1)*(a-1)+(b-1),e,k),h.push(e,f,k);this.setIndex(h);this.setAttribute("position",new B(l,3));this.setAttribute("normal",new B(n,3));this.setAttribute("uv",new B(t,2))}function $d(a,b,c,d,e){L.call(this);this.type="TorusGeometry";this.parameters={radius:a,tube:b,radialSegments:c,tubularSegments:d,arc:e};this.fromBufferGeometry(new Uc(a,b,c,d,e));this.mergeVertices()}function Uc(a,b,c,d,e){F.call(this);
-this.type="TorusBufferGeometry";this.parameters={radius:a,tube:b,radialSegments:c,tubularSegments:d,arc:e};a=a||1;b=b||.4;c=Math.floor(c)||8;d=Math.floor(d)||6;e=e||2*Math.PI;for(var f=[],g=[],h=[],l=[],n=new m,k=new m,p=new m,v=0;v<=c;v++)for(var r=0;r<=d;r++){var q=r/d*e,u=v/c*Math.PI*2;k.x=(a+b*Math.cos(u))*Math.cos(q);k.y=(a+b*Math.cos(u))*Math.sin(q);k.z=b*Math.sin(u);g.push(k.x,k.y,k.z);n.x=a*Math.cos(q);n.y=a*Math.sin(q);p.subVectors(k,n).normalize();h.push(p.x,p.y,p.z);l.push(r/d);l.push(v/
+64;d=Math.floor(d)||8;e=e||2;f=f||3;for(var h=[],l=[],n=[],q=[],k=new m,v=new m,t=new m,r=new m,u=new m,A=new m,w=new m,x=0;x<=c;++x){var z=x/c*e*Math.PI*2;g(z,e,f,a,t);g(z+.01,e,f,a,r);A.subVectors(r,t);w.addVectors(r,t);u.crossVectors(A,w);w.crossVectors(u,A);u.normalize();w.normalize();for(z=0;z<=d;++z){var ja=z/d*Math.PI*2,U=-b*Math.cos(ja);ja=b*Math.sin(ja);k.x=t.x+(U*w.x+ja*u.x);k.y=t.y+(U*w.y+ja*u.y);k.z=t.z+(U*w.z+ja*u.z);l.push(k.x,k.y,k.z);v.subVectors(k,t).normalize();n.push(v.x,v.y,v.z);
+q.push(x/c);q.push(z/d)}}for(a=1;a<=c;a++)for(b=1;b<=d;b++)e=(d+1)*a+(b-1),f=(d+1)*a+b,k=(d+1)*(a-1)+b,h.push((d+1)*(a-1)+(b-1),e,k),h.push(e,f,k);this.setIndex(h);this.setAttribute("position",new B(l,3));this.setAttribute("normal",new B(n,3));this.setAttribute("uv",new B(q,2))}function $d(a,b,c,d,e){L.call(this);this.type="TorusGeometry";this.parameters={radius:a,tube:b,radialSegments:c,tubularSegments:d,arc:e};this.fromBufferGeometry(new Uc(a,b,c,d,e));this.mergeVertices()}function Uc(a,b,c,d,e){F.call(this);
+this.type="TorusBufferGeometry";this.parameters={radius:a,tube:b,radialSegments:c,tubularSegments:d,arc:e};a=a||1;b=b||.4;c=Math.floor(c)||8;d=Math.floor(d)||6;e=e||2*Math.PI;for(var f=[],g=[],h=[],l=[],n=new m,k=new m,p=new m,v=0;v<=c;v++)for(var t=0;t<=d;t++){var r=t/d*e,u=v/c*Math.PI*2;k.x=(a+b*Math.cos(u))*Math.cos(r);k.y=(a+b*Math.cos(u))*Math.sin(r);k.z=b*Math.sin(u);g.push(k.x,k.y,k.z);n.x=a*Math.cos(r);n.y=a*Math.sin(r);p.subVectors(k,n).normalize();h.push(p.x,p.y,p.z);l.push(t/d);l.push(v/
 c)}for(a=1;a<=c;a++)for(b=1;b<=d;b++)e=(d+1)*(a-1)+b-1,n=(d+1)*(a-1)+b,k=(d+1)*a+b,f.push((d+1)*a+b-1,e,k),f.push(e,n,k);this.setIndex(f);this.setAttribute("position",new B(g,3));this.setAttribute("normal",new B(h,3));this.setAttribute("uv",new B(l,2))}function $h(a,b,c,d,e){for(var f,g=0,h=b,l=c-d;h<c;h+=d)g+=(a[l]-a[h])*(a[h+1]+a[l+1]),l=h;if(e===0<g)for(e=b;e<c;e+=d)f=ai(e,a[e],a[e+1],f);else for(e=c-d;e>=b;e-=d)f=ai(e,a[e],a[e+1],f);f&&We(f,f.next)&&(ae(f),f=f.next);return f}function Lb(a,b){if(!a)return a;
 c)}for(a=1;a<=c;a++)for(b=1;b<=d;b++)e=(d+1)*(a-1)+b-1,n=(d+1)*(a-1)+b,k=(d+1)*a+b,f.push((d+1)*a+b-1,e,k),f.push(e,n,k);this.setIndex(f);this.setAttribute("position",new B(g,3));this.setAttribute("normal",new B(h,3));this.setAttribute("uv",new B(l,2))}function $h(a,b,c,d,e){for(var f,g=0,h=b,l=c-d;h<c;h+=d)g+=(a[l]-a[h])*(a[h+1]+a[l+1]),l=h;if(e===0<g)for(e=b;e<c;e+=d)f=ai(e,a[e],a[e+1],f);else for(e=c-d;e>=b;e-=d)f=ai(e,a[e],a[e+1],f);f&&We(f,f.next)&&(ae(f),f=f.next);return f}function Lb(a,b){if(!a)return a;
-b||(b=a);do{var c=!1;if(a.steiner||!We(a,a.next)&&0!==ma(a.prev,a,a.next))a=a.next;else{ae(a);a=b=a.prev;if(a===a.next)break;c=!0}}while(c||a!==b);return b}function be(a,b,c,d,e,f,g){if(a){if(!g&&f){var h=a,l=h;do null===l.z&&(l.z=tg(l.x,l.y,d,e,f)),l.prevZ=l.prev,l=l.nextZ=l.next;while(l!==h);l.prevZ.nextZ=null;l.prevZ=null;h=l;var n,k,p,v,r=1;do{l=h;var q=h=null;for(k=0;l;){k++;var m=l;for(n=p=0;n<r&&(p++,m=m.nextZ,m);n++);for(v=r;0<p||0<v&&m;)0!==p&&(0===v||!m||l.z<=m.z)?(n=l,l=l.nextZ,p--):(n=
-m,m=m.nextZ,v--),q?q.nextZ=n:h=n,n.prevZ=q,q=n;l=m}q.nextZ=null;r*=2}while(1<k)}for(h=a;a.prev!==a.next;){l=a.prev;m=a.next;if(f)q=Dk(a,d,e,f);else a:if(q=a,k=q.prev,p=q,r=q.next,0<=ma(k,p,r))q=!1;else{for(n=q.next.next;n!==q.prev;){if(Vc(k.x,k.y,p.x,p.y,r.x,r.y,n.x,n.y)&&0<=ma(n.prev,n,n.next)){q=!1;break a}n=n.next}q=!0}if(q)b.push(l.i/c),b.push(a.i/c),b.push(m.i/c),ae(a),h=a=m.next;else if(a=m,a===h){if(!g)be(Lb(a),b,c,d,e,f,1);else if(1===g){a=Lb(a);g=b;h=c;l=a;do m=l.prev,q=l.next.next,!We(m,
-q)&&bi(m,l,l.next,q)&&ce(m,q)&&ce(q,m)&&(g.push(m.i/h),g.push(l.i/h),g.push(q.i/h),ae(l),ae(l.next),l=a=q),l=l.next;while(l!==a);a=Lb(l);be(a,b,c,d,e,f,2)}else if(2===g)a:{g=a;do{for(h=g.next.next;h!==g.prev;){if(l=g.i!==h.i){l=g;m=h;if(q=l.next.i!==m.i&&l.prev.i!==m.i){b:{q=l;do{if(q.i!==l.i&&q.next.i!==l.i&&q.i!==m.i&&q.next.i!==m.i&&bi(q,q.next,l,m)){q=!0;break b}q=q.next}while(q!==l);q=!1}q=!q}if(q){if(q=ce(l,m)&&ce(m,l)){q=l;k=!1;p=(l.x+m.x)/2;r=(l.y+m.y)/2;do q.y>r!==q.next.y>r&&q.next.y!==
-q.y&&p<(q.next.x-q.x)*(r-q.y)/(q.next.y-q.y)+q.x&&(k=!k),q=q.next;while(q!==l);q=k}q=q&&(ma(l.prev,l,m.prev)||ma(l,m.prev,m))||We(l,m)&&0<ma(l.prev,l,l.next)&&0<ma(m.prev,m,m.next)}l=q}if(l){a=ci(g,h);g=Lb(g,g.next);a=Lb(a,a.next);be(g,b,c,d,e,f);be(a,b,c,d,e,f);break a}h=h.next}g=g.next}while(g!==a)}break}}}}function Dk(a,b,c,d){var e=a.prev,f=a.next;if(0<=ma(e,a,f))return!1;var g=e.x>a.x?e.x>f.x?e.x:f.x:a.x>f.x?a.x:f.x,h=e.y>a.y?e.y>f.y?e.y:f.y:a.y>f.y?a.y:f.y,l=tg(e.x<a.x?e.x<f.x?e.x:f.x:a.x<f.x?
+b||(b=a);do{var c=!1;if(a.steiner||!We(a,a.next)&&0!==ma(a.prev,a,a.next))a=a.next;else{ae(a);a=b=a.prev;if(a===a.next)break;c=!0}}while(c||a!==b);return b}function be(a,b,c,d,e,f,g){if(a){if(!g&&f){var h=a,l=h;do null===l.z&&(l.z=tg(l.x,l.y,d,e,f)),l.prevZ=l.prev,l=l.nextZ=l.next;while(l!==h);l.prevZ.nextZ=null;l.prevZ=null;h=l;var n,k,p,v,t=1;do{l=h;var r=h=null;for(k=0;l;){k++;var m=l;for(n=p=0;n<t&&(p++,m=m.nextZ,m);n++);for(v=t;0<p||0<v&&m;)0!==p&&(0===v||!m||l.z<=m.z)?(n=l,l=l.nextZ,p--):(n=
+m,m=m.nextZ,v--),r?r.nextZ=n:h=n,n.prevZ=r,r=n;l=m}r.nextZ=null;t*=2}while(1<k)}for(h=a;a.prev!==a.next;){l=a.prev;m=a.next;if(f)r=Dk(a,d,e,f);else a:if(r=a,k=r.prev,p=r,t=r.next,0<=ma(k,p,t))r=!1;else{for(n=r.next.next;n!==r.prev;){if(Vc(k.x,k.y,p.x,p.y,t.x,t.y,n.x,n.y)&&0<=ma(n.prev,n,n.next)){r=!1;break a}n=n.next}r=!0}if(r)b.push(l.i/c),b.push(a.i/c),b.push(m.i/c),ae(a),h=a=m.next;else if(a=m,a===h){if(!g)be(Lb(a),b,c,d,e,f,1);else if(1===g){a=Lb(a);g=b;h=c;l=a;do m=l.prev,r=l.next.next,!We(m,
+r)&&bi(m,l,l.next,r)&&ce(m,r)&&ce(r,m)&&(g.push(m.i/h),g.push(l.i/h),g.push(r.i/h),ae(l),ae(l.next),l=a=r),l=l.next;while(l!==a);a=Lb(l);be(a,b,c,d,e,f,2)}else if(2===g)a:{g=a;do{for(h=g.next.next;h!==g.prev;){if(l=g.i!==h.i){l=g;m=h;if(r=l.next.i!==m.i&&l.prev.i!==m.i){b:{r=l;do{if(r.i!==l.i&&r.next.i!==l.i&&r.i!==m.i&&r.next.i!==m.i&&bi(r,r.next,l,m)){r=!0;break b}r=r.next}while(r!==l);r=!1}r=!r}if(r){if(r=ce(l,m)&&ce(m,l)){r=l;k=!1;p=(l.x+m.x)/2;t=(l.y+m.y)/2;do r.y>t!==r.next.y>t&&r.next.y!==
+r.y&&p<(r.next.x-r.x)*(t-r.y)/(r.next.y-r.y)+r.x&&(k=!k),r=r.next;while(r!==l);r=k}r=r&&(ma(l.prev,l,m.prev)||ma(l,m.prev,m))||We(l,m)&&0<ma(l.prev,l,l.next)&&0<ma(m.prev,m,m.next)}l=r}if(l){a=ci(g,h);g=Lb(g,g.next);a=Lb(a,a.next);be(g,b,c,d,e,f);be(a,b,c,d,e,f);break a}h=h.next}g=g.next}while(g!==a)}break}}}}function Dk(a,b,c,d){var e=a.prev,f=a.next;if(0<=ma(e,a,f))return!1;var g=e.x>a.x?e.x>f.x?e.x:f.x:a.x>f.x?a.x:f.x,h=e.y>a.y?e.y>f.y?e.y:f.y:a.y>f.y?a.y:f.y,l=tg(e.x<a.x?e.x<f.x?e.x:f.x:a.x<f.x?
 a.x:f.x,e.y<a.y?e.y<f.y?e.y:f.y:a.y<f.y?a.y:f.y,b,c,d);b=tg(g,h,b,c,d);c=a.prevZ;for(d=a.nextZ;c&&c.z>=l&&d&&d.z<=b;){if(c!==a.prev&&c!==a.next&&Vc(e.x,e.y,a.x,a.y,f.x,f.y,c.x,c.y)&&0<=ma(c.prev,c,c.next))return!1;c=c.prevZ;if(d!==a.prev&&d!==a.next&&Vc(e.x,e.y,a.x,a.y,f.x,f.y,d.x,d.y)&&0<=ma(d.prev,d,d.next))return!1;d=d.nextZ}for(;c&&c.z>=l;){if(c!==a.prev&&c!==a.next&&Vc(e.x,e.y,a.x,a.y,f.x,f.y,c.x,c.y)&&0<=ma(c.prev,c,c.next))return!1;c=c.prevZ}for(;d&&d.z<=b;){if(d!==a.prev&&d!==a.next&&Vc(e.x,
 a.x:f.x,e.y<a.y?e.y<f.y?e.y:f.y:a.y<f.y?a.y:f.y,b,c,d);b=tg(g,h,b,c,d);c=a.prevZ;for(d=a.nextZ;c&&c.z>=l&&d&&d.z<=b;){if(c!==a.prev&&c!==a.next&&Vc(e.x,e.y,a.x,a.y,f.x,f.y,c.x,c.y)&&0<=ma(c.prev,c,c.next))return!1;c=c.prevZ;if(d!==a.prev&&d!==a.next&&Vc(e.x,e.y,a.x,a.y,f.x,f.y,d.x,d.y)&&0<=ma(d.prev,d,d.next))return!1;d=d.nextZ}for(;c&&c.z>=l;){if(c!==a.prev&&c!==a.next&&Vc(e.x,e.y,a.x,a.y,f.x,f.y,c.x,c.y)&&0<=ma(c.prev,c,c.next))return!1;c=c.prevZ}for(;d&&d.z<=b;){if(d!==a.prev&&d!==a.next&&Vc(e.x,
 e.y,a.x,a.y,f.x,f.y,d.x,d.y)&&0<=ma(d.prev,d,d.next))return!1;d=d.nextZ}return!0}function Ek(a,b){return a.x-b.x}function Fk(a,b){var c=b,d=a.x,e=a.y,f=-Infinity;do{if(e<=c.y&&e>=c.next.y&&c.next.y!==c.y){var g=c.x+(e-c.y)*(c.next.x-c.x)/(c.next.y-c.y);if(g<=d&&g>f){f=g;if(g===d){if(e===c.y)return c;if(e===c.next.y)return c.next}var h=c.x<c.next.x?c:c.next}}c=c.next}while(c!==b);if(!h)return null;if(d===f)return h;b=h;g=h.x;var l=h.y,n=Infinity;c=h;do{if(d>=c.x&&c.x>=g&&d!==c.x&&Vc(e<l?d:f,e,g,l,
 e.y,a.x,a.y,f.x,f.y,d.x,d.y)&&0<=ma(d.prev,d,d.next))return!1;d=d.nextZ}return!0}function Ek(a,b){return a.x-b.x}function Fk(a,b){var c=b,d=a.x,e=a.y,f=-Infinity;do{if(e<=c.y&&e>=c.next.y&&c.next.y!==c.y){var g=c.x+(e-c.y)*(c.next.x-c.x)/(c.next.y-c.y);if(g<=d&&g>f){f=g;if(g===d){if(e===c.y)return c;if(e===c.next.y)return c.next}var h=c.x<c.next.x?c:c.next}}c=c.next}while(c!==b);if(!h)return null;if(d===f)return h;b=h;g=h.x;var l=h.y,n=Infinity;c=h;do{if(d>=c.x&&c.x>=g&&d!==c.x&&Vc(e<l?d:f,e,g,l,
-e<l?f:d,e,c.x,c.y)){var k=Math.abs(e-c.y)/(d-c.x);var p;if((p=ce(c,a))&&!(p=k<n)&&(p=k===n)&&!(p=c.x>h.x)&&(p=c.x===h.x)){p=h;var m=c;p=0>ma(p.prev,p,m.prev)&&0>ma(m.next,p,p.next)}p&&(h=c,n=k)}c=c.next}while(c!==b);return h}function tg(a,b,c,d,e){a=32767*(a-c)*e;b=32767*(b-d)*e;a=(a|a<<8)&16711935;a=(a|a<<4)&252645135;a=(a|a<<2)&858993459;b=(b|b<<8)&16711935;b=(b|b<<4)&252645135;b=(b|b<<2)&858993459;return(a|a<<1)&1431655765|((b|b<<1)&1431655765)<<1}function Gk(a){var b=a,c=a;do{if(b.x<c.x||b.x===
+e<l?f:d,e,c.x,c.y)){var k=Math.abs(e-c.y)/(d-c.x);var p;if((p=ce(c,a))&&!(p=k<n)&&(p=k===n)&&!(p=c.x>h.x)&&(p=c.x===h.x)){p=h;var v=c;p=0>ma(p.prev,p,v.prev)&&0>ma(v.next,p,p.next)}p&&(h=c,n=k)}c=c.next}while(c!==b);return h}function tg(a,b,c,d,e){a=32767*(a-c)*e;b=32767*(b-d)*e;a=(a|a<<8)&16711935;a=(a|a<<4)&252645135;a=(a|a<<2)&858993459;b=(b|b<<8)&16711935;b=(b|b<<4)&252645135;b=(b|b<<2)&858993459;return(a|a<<1)&1431655765|((b|b<<1)&1431655765)<<1}function Gk(a){var b=a,c=a;do{if(b.x<c.x||b.x===
 c.x&&b.y<c.y)c=b;b=b.next}while(b!==a);return c}function Vc(a,b,c,d,e,f,g,h){return 0<=(e-g)*(b-h)-(a-g)*(f-h)&&0<=(a-g)*(d-h)-(c-g)*(b-h)&&0<=(c-g)*(f-h)-(e-g)*(d-h)}function ma(a,b,c){return(b.y-a.y)*(c.x-b.x)-(b.x-a.x)*(c.y-b.y)}function We(a,b){return a.x===b.x&&a.y===b.y}function bi(a,b,c,d){var e=Xe(ma(a,b,c)),f=Xe(ma(a,b,d)),g=Xe(ma(c,d,a)),h=Xe(ma(c,d,b));return e!==f&&g!==h||0===e&&Ye(a,c,b)||0===f&&Ye(a,d,b)||0===g&&Ye(c,a,d)||0===h&&Ye(c,b,d)?!0:!1}function Ye(a,b,c){return b.x<=Math.max(a.x,
 c.x&&b.y<c.y)c=b;b=b.next}while(b!==a);return c}function Vc(a,b,c,d,e,f,g,h){return 0<=(e-g)*(b-h)-(a-g)*(f-h)&&0<=(a-g)*(d-h)-(c-g)*(b-h)&&0<=(c-g)*(f-h)-(e-g)*(d-h)}function ma(a,b,c){return(b.y-a.y)*(c.x-b.x)-(b.x-a.x)*(c.y-b.y)}function We(a,b){return a.x===b.x&&a.y===b.y}function bi(a,b,c,d){var e=Xe(ma(a,b,c)),f=Xe(ma(a,b,d)),g=Xe(ma(c,d,a)),h=Xe(ma(c,d,b));return e!==f&&g!==h||0===e&&Ye(a,c,b)||0===f&&Ye(a,d,b)||0===g&&Ye(c,a,d)||0===h&&Ye(c,b,d)?!0:!1}function Ye(a,b,c){return b.x<=Math.max(a.x,
 c.x)&&b.x>=Math.min(a.x,c.x)&&b.y<=Math.max(a.y,c.y)&&b.y>=Math.min(a.y,c.y)}function Xe(a){return 0<a?1:0>a?-1:0}function ce(a,b){return 0>ma(a.prev,a,a.next)?0<=ma(a,b,a.next)&&0<=ma(a,a.prev,b):0>ma(a,b,a.prev)||0>ma(a,a.next,b)}function ci(a,b){var c=new ug(a.i,a.x,a.y),d=new ug(b.i,b.x,b.y),e=a.next,f=b.prev;a.next=b;b.prev=a;c.next=e;e.prev=c;d.next=c;c.prev=d;f.next=d;d.prev=f;return d}function ai(a,b,c,d){a=new ug(a,b,c);d?(a.next=d.next,a.prev=d,d.next.prev=a,d.next=a):(a.prev=a,a.next=a);
 c.x)&&b.x>=Math.min(a.x,c.x)&&b.y<=Math.max(a.y,c.y)&&b.y>=Math.min(a.y,c.y)}function Xe(a){return 0<a?1:0>a?-1:0}function ce(a,b){return 0>ma(a.prev,a,a.next)?0<=ma(a,b,a.next)&&0<=ma(a,a.prev,b):0>ma(a,b,a.prev)||0>ma(a,a.next,b)}function ci(a,b){var c=new ug(a.i,a.x,a.y),d=new ug(b.i,b.x,b.y),e=a.next,f=b.prev;a.next=b;b.prev=a;c.next=e;e.prev=c;d.next=c;c.prev=d;f.next=d;d.prev=f;return d}function ai(a,b,c,d){a=new ug(a,b,c);d?(a.next=d.next,a.prev=d,d.next.prev=a,d.next=a):(a.prev=a,a.next=a);
 return a}function ae(a){a.next.prev=a.prev;a.prev.next=a.next;a.prevZ&&(a.prevZ.nextZ=a.nextZ);a.nextZ&&(a.nextZ.prevZ=a.prevZ)}function ug(a,b,c){this.i=a;this.x=b;this.y=c;this.nextZ=this.prevZ=this.z=this.next=this.prev=null;this.steiner=!1}function di(a){var b=a.length;2<b&&a[b-1].equals(a[0])&&a.pop()}function ei(a,b){for(var c=0;c<b.length;c++)a.push(b[c].x),a.push(b[c].y)}function dc(a,b){L.call(this);this.type="ExtrudeGeometry";this.parameters={shapes:a,options:b};this.fromBufferGeometry(new hb(a,
 return a}function ae(a){a.next.prev=a.prev;a.prev.next=a.next;a.prevZ&&(a.prevZ.nextZ=a.nextZ);a.nextZ&&(a.nextZ.prevZ=a.prevZ)}function ug(a,b,c){this.i=a;this.x=b;this.y=c;this.nextZ=this.prevZ=this.z=this.next=this.prev=null;this.steiner=!1}function di(a){var b=a.length;2<b&&a[b-1].equals(a[0])&&a.pop()}function ei(a,b){for(var c=0;c<b.length;c++)a.push(b[c].x),a.push(b[c].y)}function dc(a,b){L.call(this);this.type="ExtrudeGeometry";this.parameters={shapes:a,options:b};this.fromBufferGeometry(new hb(a,
 b));this.mergeVertices()}function hb(a,b){function c(a){function c(a,b,c){b||console.error("THREE.ExtrudeGeometry: vec does not exist");return b.clone().multiplyScalar(c).add(a)}function g(a,b,c){var d=a.x-b.x;var e=a.y-b.y;var f=c.x-a.x;var g=c.y-a.y,h=d*d+e*e;if(Math.abs(d*g-e*f)>Number.EPSILON){var l=Math.sqrt(h),n=Math.sqrt(f*f+g*g);h=b.x-e/l;b=b.y+d/l;g=((c.x-g/n-h)*g-(c.y+f/n-b)*f)/(d*g-e*f);f=h+d*g-a.x;d=b+e*g-a.y;e=f*f+d*d;if(2>=e)return new w(f,d);e=Math.sqrt(e/2)}else a=!1,d>Number.EPSILON?
 b));this.mergeVertices()}function hb(a,b){function c(a){function c(a,b,c){b||console.error("THREE.ExtrudeGeometry: vec does not exist");return b.clone().multiplyScalar(c).add(a)}function g(a,b,c){var d=a.x-b.x;var e=a.y-b.y;var f=c.x-a.x;var g=c.y-a.y,h=d*d+e*e;if(Math.abs(d*g-e*f)>Number.EPSILON){var l=Math.sqrt(h),n=Math.sqrt(f*f+g*g);h=b.x-e/l;b=b.y+d/l;g=((c.x-g/n-h)*g-(c.y+f/n-b)*f)/(d*g-e*f);f=h+d*g-a.x;d=b+e*g-a.y;e=f*f+d*d;if(2>=e)return new w(f,d);e=Math.sqrt(e/2)}else a=!1,d>Number.EPSILON?
-f>Number.EPSILON&&(a=!0):d<-Number.EPSILON?f<-Number.EPSILON&&(a=!0):Math.sign(e)===Math.sign(g)&&(a=!0),a?(f=-e,e=Math.sqrt(h)):(f=d,d=e,e=Math.sqrt(h/2));return new w(f/e,d/e)}function h(a,b){for(var c=a.length;0<=--c;){var f=c,g=c-1;0>g&&(g=a.length-1);for(var h=0,l=x+2*P;h<l;h++){var n=T*h,k=T*(h+1),t=b+g+n,p=b+g+k;k=b+f+k;q(b+f+n);q(t);q(k);q(t);q(p);q(k);n=e.length/3;n=F.generateSideWallUV(d,e,n-6,n-3,n-2,n-1);u(n[0]);u(n[1]);u(n[3]);u(n[1]);u(n[2]);u(n[3])}}}function l(a,b,c){A.push(a);A.push(b);
-A.push(c)}function k(a,b,c){q(a);q(b);q(c);a=e.length/3;a=F.generateTopUV(d,e,a-3,a-2,a-1);u(a[0]);u(a[1]);u(a[2])}function q(a){e.push(A[3*a]);e.push(A[3*a+1]);e.push(A[3*a+2])}function u(a){f.push(a.x);f.push(a.y)}var A=[],E=void 0!==b.curveSegments?b.curveSegments:12,x=void 0!==b.steps?b.steps:1,B=void 0!==b.depth?b.depth:100,z=void 0!==b.bevelEnabled?b.bevelEnabled:!0,U=void 0!==b.bevelThickness?b.bevelThickness:6,C=void 0!==b.bevelSize?b.bevelSize:U-2,D=void 0!==b.bevelOffset?b.bevelOffset:0,
+f>Number.EPSILON&&(a=!0):d<-Number.EPSILON?f<-Number.EPSILON&&(a=!0):Math.sign(e)===Math.sign(g)&&(a=!0),a?(f=-e,e=Math.sqrt(h)):(f=d,d=e,e=Math.sqrt(h/2));return new w(f/e,d/e)}function h(a,b){for(var c=a.length;0<=--c;){var f=c,g=c-1;0>g&&(g=a.length-1);for(var h=0,l=x+2*P;h<l;h++){var n=T*h,k=T*(h+1),q=b+g+n,p=b+g+k;k=b+f+k;r(b+f+n);r(q);r(k);r(q);r(p);r(k);n=e.length/3;n=F.generateSideWallUV(d,e,n-6,n-3,n-2,n-1);u(n[0]);u(n[1]);u(n[3]);u(n[1]);u(n[2]);u(n[3])}}}function l(a,b,c){A.push(a);A.push(b);
+A.push(c)}function k(a,b,c){r(a);r(b);r(c);a=e.length/3;a=F.generateTopUV(d,e,a-3,a-2,a-1);u(a[0]);u(a[1]);u(a[2])}function r(a){e.push(A[3*a]);e.push(A[3*a+1]);e.push(A[3*a+2])}function u(a){f.push(a.x);f.push(a.y)}var A=[],E=void 0!==b.curveSegments?b.curveSegments:12,x=void 0!==b.steps?b.steps:1,B=void 0!==b.depth?b.depth:100,z=void 0!==b.bevelEnabled?b.bevelEnabled:!0,U=void 0!==b.bevelThickness?b.bevelThickness:6,C=void 0!==b.bevelSize?b.bevelSize:U-2,D=void 0!==b.bevelOffset?b.bevelOffset:0,
 P=void 0!==b.bevelSegments?b.bevelSegments:3,y=b.extrudePath,F=void 0!==b.UVGenerator?b.UVGenerator:Hk;void 0!==b.amount&&(console.warn("THREE.ExtrudeBufferGeometry: amount has been renamed to depth."),B=b.amount);var G=!1;if(y){var J=y.getSpacedPoints(x);G=!0;z=!1;var H=y.computeFrenetFrames(x,!1);var L=new m;var M=new m;var K=new m}z||(D=C=U=P=0);a=a.extractPoints(E);y=a.shape;var N=a.holes;if(!rb.isClockWise(y))for(y=y.reverse(),a=0,E=N.length;a<E;a++){var O=N[a];rb.isClockWise(O)&&(N[a]=O.reverse())}var W=
 P=void 0!==b.bevelSegments?b.bevelSegments:3,y=b.extrudePath,F=void 0!==b.UVGenerator?b.UVGenerator:Hk;void 0!==b.amount&&(console.warn("THREE.ExtrudeBufferGeometry: amount has been renamed to depth."),B=b.amount);var G=!1;if(y){var J=y.getSpacedPoints(x);G=!0;z=!1;var H=y.computeFrenetFrames(x,!1);var L=new m;var M=new m;var K=new m}z||(D=C=U=P=0);a=a.extractPoints(E);y=a.shape;var N=a.holes;if(!rb.isClockWise(y))for(y=y.reverse(),a=0,E=N.length;a<E;a++){var O=N[a];rb.isClockWise(O)&&(N[a]=O.reverse())}var W=
 rb.triangulateShape(y,N),S=y;a=0;for(E=N.length;a<E;a++)y=y.concat(N[a]);var T=y.length,ca=W.length;a=[];E=0;O=S.length;for(var R=O-1,ba=E+1;E<O;E++,R++,ba++)R===O&&(R=0),ba===O&&(ba=0),a[E]=g(S[E],S[R],S[ba]);E=[];O=a.concat();ba=0;for(var Q=N.length;ba<Q;ba++){var ea=N[ba];R=[];for(var da=0,X=ea.length,Z=X-1,Y=da+1;da<X;da++,Z++,Y++)Z===X&&(Z=0),Y===X&&(Y=0),R[da]=g(ea[da],ea[Z],ea[Y]);E.push(R);O=O.concat(R)}for(ba=0;ba<P;ba++){R=ba/P;Q=U*Math.cos(R*Math.PI/2);ea=C*Math.sin(R*Math.PI/2)+D;R=0;
 rb.triangulateShape(y,N),S=y;a=0;for(E=N.length;a<E;a++)y=y.concat(N[a]);var T=y.length,ca=W.length;a=[];E=0;O=S.length;for(var R=O-1,ba=E+1;E<O;E++,R++,ba++)R===O&&(R=0),ba===O&&(ba=0),a[E]=g(S[E],S[R],S[ba]);E=[];O=a.concat();ba=0;for(var Q=N.length;ba<Q;ba++){var ea=N[ba];R=[];for(var da=0,X=ea.length,Z=X-1,Y=da+1;da<X;da++,Z++,Y++)Z===X&&(Z=0),Y===X&&(Y=0),R[da]=g(ea[da],ea[Z],ea[Y]);E.push(R);O=O.concat(R)}for(ba=0;ba<P;ba++){R=ba/P;Q=U*Math.cos(R*Math.PI/2);ea=C*Math.sin(R*Math.PI/2)+D;R=0;
 for(da=S.length;R<da;R++)X=c(S[R],a[R],ea),l(X.x,X.y,-Q);da=0;for(X=N.length;da<X;da++){Z=N[da];R=E[da];Y=0;for(var ha=Z.length;Y<ha;Y++){var ia=c(Z[Y],R[Y],ea);l(ia.x,ia.y,-Q)}}}R=C+D;for(ba=0;ba<T;ba++)Q=z?c(y[ba],O[ba],R):y[ba],G?(M.copy(H.normals[0]).multiplyScalar(Q.x),L.copy(H.binormals[0]).multiplyScalar(Q.y),K.copy(J[0]).add(M).add(L),l(K.x,K.y,K.z)):l(Q.x,Q.y,0);for(ba=1;ba<=x;ba++)for(Q=0;Q<T;Q++)ea=z?c(y[Q],O[Q],R):y[Q],G?(M.copy(H.normals[ba]).multiplyScalar(ea.x),L.copy(H.binormals[ba]).multiplyScalar(ea.y),
 for(da=S.length;R<da;R++)X=c(S[R],a[R],ea),l(X.x,X.y,-Q);da=0;for(X=N.length;da<X;da++){Z=N[da];R=E[da];Y=0;for(var ha=Z.length;Y<ha;Y++){var ia=c(Z[Y],R[Y],ea);l(ia.x,ia.y,-Q)}}}R=C+D;for(ba=0;ba<T;ba++)Q=z?c(y[ba],O[ba],R):y[ba],G?(M.copy(H.normals[0]).multiplyScalar(Q.x),L.copy(H.binormals[0]).multiplyScalar(Q.y),K.copy(J[0]).add(M).add(L),l(K.x,K.y,K.z)):l(Q.x,Q.y,0);for(ba=1;ba<=x;ba++)for(Q=0;Q<T;Q++)ea=z?c(y[Q],O[Q],R):y[Q],G?(M.copy(H.normals[ba]).multiplyScalar(ea.x),L.copy(H.binormals[ba]).multiplyScalar(ea.y),
@@ -271,20 +271,20 @@ K.copy(J[ba]).add(M).add(L),l(K.x,K.y,K.z)):l(ea.x,ea.y,B/x*ba);for(H=P-1;0<=H;H
 b)}else{for(b=0;b<ca;b++)c=W[b],k(c[2],c[1],c[0]);for(b=0;b<ca;b++)c=W[b],k(c[0]+T*x,c[1]+T*x,c[2]+T*x)}d.addGroup(a,e.length/3-a,0)})();(function(){var a=e.length/3,b=0;h(S,b);b+=S.length;for(var c=0,f=N.length;c<f;c++){var g=N[c];h(g,b);b+=g.length}d.addGroup(a,e.length/3-a,1)})()}F.call(this);this.type="ExtrudeBufferGeometry";this.parameters={shapes:a,options:b};a=Array.isArray(a)?a:[a];for(var d=this,e=[],f=[],g=0,h=a.length;g<h;g++)c(a[g]);this.setAttribute("position",new B(e,3));this.setAttribute("uv",
 b)}else{for(b=0;b<ca;b++)c=W[b],k(c[2],c[1],c[0]);for(b=0;b<ca;b++)c=W[b],k(c[0]+T*x,c[1]+T*x,c[2]+T*x)}d.addGroup(a,e.length/3-a,0)})();(function(){var a=e.length/3,b=0;h(S,b);b+=S.length;for(var c=0,f=N.length;c<f;c++){var g=N[c];h(g,b);b+=g.length}d.addGroup(a,e.length/3-a,1)})()}F.call(this);this.type="ExtrudeBufferGeometry";this.parameters={shapes:a,options:b};a=Array.isArray(a)?a:[a];for(var d=this,e=[],f=[],g=0,h=a.length;g<h;g++)c(a[g]);this.setAttribute("position",new B(e,3));this.setAttribute("uv",
 new B(f,2));this.computeVertexNormals()}function fi(a,b,c){c.shapes=[];if(Array.isArray(a))for(var d=0,e=a.length;d<e;d++)c.shapes.push(a[d].uuid);else c.shapes.push(a.uuid);void 0!==b.extrudePath&&(c.options.extrudePath=b.extrudePath.toJSON());return c}function de(a,b){L.call(this);this.type="TextGeometry";this.parameters={text:a,parameters:b};this.fromBufferGeometry(new Wc(a,b));this.mergeVertices()}function Wc(a,b){b=b||{};var c=b.font;if(!c||!c.isFont)return console.error("THREE.TextGeometry: font parameter is not an instance of THREE.Font."),
 new B(f,2));this.computeVertexNormals()}function fi(a,b,c){c.shapes=[];if(Array.isArray(a))for(var d=0,e=a.length;d<e;d++)c.shapes.push(a[d].uuid);else c.shapes.push(a.uuid);void 0!==b.extrudePath&&(c.options.extrudePath=b.extrudePath.toJSON());return c}function de(a,b){L.call(this);this.type="TextGeometry";this.parameters={text:a,parameters:b};this.fromBufferGeometry(new Wc(a,b));this.mergeVertices()}function Wc(a,b){b=b||{};var c=b.font;if(!c||!c.isFont)return console.error("THREE.TextGeometry: font parameter is not an instance of THREE.Font."),
 new L;a=c.generateShapes(a,b.size);b.depth=void 0!==b.height?b.height:50;void 0===b.bevelThickness&&(b.bevelThickness=10);void 0===b.bevelSize&&(b.bevelSize=8);void 0===b.bevelEnabled&&(b.bevelEnabled=!1);hb.call(this,a,b);this.type="TextBufferGeometry"}function ee(a,b,c,d,e,f,g){L.call(this);this.type="SphereGeometry";this.parameters={radius:a,widthSegments:b,heightSegments:c,phiStart:d,phiLength:e,thetaStart:f,thetaLength:g};this.fromBufferGeometry(new ec(a,b,c,d,e,f,g));this.mergeVertices()}function ec(a,
 new L;a=c.generateShapes(a,b.size);b.depth=void 0!==b.height?b.height:50;void 0===b.bevelThickness&&(b.bevelThickness=10);void 0===b.bevelSize&&(b.bevelSize=8);void 0===b.bevelEnabled&&(b.bevelEnabled=!1);hb.call(this,a,b);this.type="TextBufferGeometry"}function ee(a,b,c,d,e,f,g){L.call(this);this.type="SphereGeometry";this.parameters={radius:a,widthSegments:b,heightSegments:c,phiStart:d,phiLength:e,thetaStart:f,thetaLength:g};this.fromBufferGeometry(new ec(a,b,c,d,e,f,g));this.mergeVertices()}function ec(a,
-b,c,d,e,f,g){F.call(this);this.type="SphereBufferGeometry";this.parameters={radius:a,widthSegments:b,heightSegments:c,phiStart:d,phiLength:e,thetaStart:f,thetaLength:g};a=a||1;b=Math.max(3,Math.floor(b)||8);c=Math.max(2,Math.floor(c)||6);d=void 0!==d?d:0;e=void 0!==e?e:2*Math.PI;f=void 0!==f?f:0;g=void 0!==g?g:Math.PI;for(var h=Math.min(f+g,Math.PI),l=0,n=[],k=new m,p=new m,v=[],r=[],q=[],u=[],A=0;A<=c;A++){var w=[],x=A/c,z=0;0==A&&0==f?z=.5/b:A==c&&h==Math.PI&&(z=-.5/b);for(var y=0;y<=b;y++){var U=
-y/b;k.x=-a*Math.cos(d+U*e)*Math.sin(f+x*g);k.y=a*Math.cos(f+x*g);k.z=a*Math.sin(d+U*e)*Math.sin(f+x*g);r.push(k.x,k.y,k.z);p.copy(k).normalize();q.push(p.x,p.y,p.z);u.push(U+z,1-x);w.push(l++)}n.push(w)}for(a=0;a<c;a++)for(d=0;d<b;d++)e=n[a][d+1],g=n[a][d],l=n[a+1][d],k=n[a+1][d+1],(0!==a||0<f)&&v.push(e,g,k),(a!==c-1||h<Math.PI)&&v.push(g,l,k);this.setIndex(v);this.setAttribute("position",new B(r,3));this.setAttribute("normal",new B(q,3));this.setAttribute("uv",new B(u,2))}function fe(a,b,c,d,e,
+b,c,d,e,f,g){F.call(this);this.type="SphereBufferGeometry";this.parameters={radius:a,widthSegments:b,heightSegments:c,phiStart:d,phiLength:e,thetaStart:f,thetaLength:g};a=a||1;b=Math.max(3,Math.floor(b)||8);c=Math.max(2,Math.floor(c)||6);d=void 0!==d?d:0;e=void 0!==e?e:2*Math.PI;f=void 0!==f?f:0;g=void 0!==g?g:Math.PI;for(var h=Math.min(f+g,Math.PI),l=0,n=[],k=new m,p=new m,v=[],t=[],r=[],u=[],A=0;A<=c;A++){var w=[],x=A/c,z=0;0==A&&0==f?z=.5/b:A==c&&h==Math.PI&&(z=-.5/b);for(var y=0;y<=b;y++){var U=
+y/b;k.x=-a*Math.cos(d+U*e)*Math.sin(f+x*g);k.y=a*Math.cos(f+x*g);k.z=a*Math.sin(d+U*e)*Math.sin(f+x*g);t.push(k.x,k.y,k.z);p.copy(k).normalize();r.push(p.x,p.y,p.z);u.push(U+z,1-x);w.push(l++)}n.push(w)}for(a=0;a<c;a++)for(d=0;d<b;d++)e=n[a][d+1],g=n[a][d],l=n[a+1][d],k=n[a+1][d+1],(0!==a||0<f)&&v.push(e,g,k),(a!==c-1||h<Math.PI)&&v.push(g,l,k);this.setIndex(v);this.setAttribute("position",new B(t,3));this.setAttribute("normal",new B(r,3));this.setAttribute("uv",new B(u,2))}function fe(a,b,c,d,e,
 f){L.call(this);this.type="RingGeometry";this.parameters={innerRadius:a,outerRadius:b,thetaSegments:c,phiSegments:d,thetaStart:e,thetaLength:f};this.fromBufferGeometry(new Xc(a,b,c,d,e,f));this.mergeVertices()}function Xc(a,b,c,d,e,f){F.call(this);this.type="RingBufferGeometry";this.parameters={innerRadius:a,outerRadius:b,thetaSegments:c,phiSegments:d,thetaStart:e,thetaLength:f};a=a||.5;b=b||1;e=void 0!==e?e:0;f=void 0!==f?f:2*Math.PI;c=void 0!==c?Math.max(3,c):8;d=void 0!==d?Math.max(1,d):1;var g=
 f){L.call(this);this.type="RingGeometry";this.parameters={innerRadius:a,outerRadius:b,thetaSegments:c,phiSegments:d,thetaStart:e,thetaLength:f};this.fromBufferGeometry(new Xc(a,b,c,d,e,f));this.mergeVertices()}function Xc(a,b,c,d,e,f){F.call(this);this.type="RingBufferGeometry";this.parameters={innerRadius:a,outerRadius:b,thetaSegments:c,phiSegments:d,thetaStart:e,thetaLength:f};a=a||.5;b=b||1;e=void 0!==e?e:0;f=void 0!==f?f:2*Math.PI;c=void 0!==c?Math.max(3,c):8;d=void 0!==d?Math.max(1,d):1;var g=
-[],h=[],l=[],n=[],k=a;a=(b-a)/d;for(var p=new m,v=new w,r=0;r<=d;r++){for(var q=0;q<=c;q++){var u=e+q/c*f;p.x=k*Math.cos(u);p.y=k*Math.sin(u);h.push(p.x,p.y,p.z);l.push(0,0,1);v.x=(p.x/b+1)/2;v.y=(p.y/b+1)/2;n.push(v.x,v.y)}k+=a}for(b=0;b<d;b++)for(e=b*(c+1),f=0;f<c;f++)k=f+e,a=k+c+1,p=k+c+2,v=k+1,g.push(k,a,v),g.push(a,p,v);this.setIndex(g);this.setAttribute("position",new B(h,3));this.setAttribute("normal",new B(l,3));this.setAttribute("uv",new B(n,2))}function ge(a,b,c,d){L.call(this);this.type=
-"LatheGeometry";this.parameters={points:a,segments:b,phiStart:c,phiLength:d};this.fromBufferGeometry(new Yc(a,b,c,d));this.mergeVertices()}function Yc(a,b,c,d){F.call(this);this.type="LatheBufferGeometry";this.parameters={points:a,segments:b,phiStart:c,phiLength:d};b=Math.floor(b)||12;c=c||0;d=d||2*Math.PI;d=K.clamp(d,0,2*Math.PI);for(var e=[],f=[],g=[],h=1/b,l=new m,n=new w,k=0;k<=b;k++){var p=c+k*h*d,v=Math.sin(p);p=Math.cos(p);for(var r=0;r<=a.length-1;r++)l.x=a[r].x*v,l.y=a[r].y,l.z=a[r].x*p,
-f.push(l.x,l.y,l.z),n.x=k/b,n.y=r/(a.length-1),g.push(n.x,n.y)}for(c=0;c<b;c++)for(h=0;h<a.length-1;h++)l=h+c*a.length,n=l+a.length,k=l+a.length+1,v=l+1,e.push(l,n,v),e.push(n,k,v);this.setIndex(e);this.setAttribute("position",new B(f,3));this.setAttribute("uv",new B(g,2));this.computeVertexNormals();if(d===2*Math.PI)for(d=this.attributes.normal.array,e=new m,f=new m,g=new m,b=b*a.length*3,h=c=0;c<a.length;c++,h+=3)e.x=d[h+0],e.y=d[h+1],e.z=d[h+2],f.x=d[b+h+0],f.y=d[b+h+1],f.z=d[b+h+2],g.addVectors(e,
+[],h=[],l=[],n=[],k=a;a=(b-a)/d;for(var p=new m,v=new w,t=0;t<=d;t++){for(var r=0;r<=c;r++){var u=e+r/c*f;p.x=k*Math.cos(u);p.y=k*Math.sin(u);h.push(p.x,p.y,p.z);l.push(0,0,1);v.x=(p.x/b+1)/2;v.y=(p.y/b+1)/2;n.push(v.x,v.y)}k+=a}for(b=0;b<d;b++)for(e=b*(c+1),f=0;f<c;f++)k=f+e,a=k+c+1,p=k+c+2,v=k+1,g.push(k,a,v),g.push(a,p,v);this.setIndex(g);this.setAttribute("position",new B(h,3));this.setAttribute("normal",new B(l,3));this.setAttribute("uv",new B(n,2))}function ge(a,b,c,d){L.call(this);this.type=
+"LatheGeometry";this.parameters={points:a,segments:b,phiStart:c,phiLength:d};this.fromBufferGeometry(new Yc(a,b,c,d));this.mergeVertices()}function Yc(a,b,c,d){F.call(this);this.type="LatheBufferGeometry";this.parameters={points:a,segments:b,phiStart:c,phiLength:d};b=Math.floor(b)||12;c=c||0;d=d||2*Math.PI;d=K.clamp(d,0,2*Math.PI);for(var e=[],f=[],g=[],h=1/b,l=new m,n=new w,k=0;k<=b;k++){var p=c+k*h*d,v=Math.sin(p);p=Math.cos(p);for(var t=0;t<=a.length-1;t++)l.x=a[t].x*v,l.y=a[t].y,l.z=a[t].x*p,
+f.push(l.x,l.y,l.z),n.x=k/b,n.y=t/(a.length-1),g.push(n.x,n.y)}for(c=0;c<b;c++)for(h=0;h<a.length-1;h++)l=h+c*a.length,n=l+a.length,k=l+a.length+1,v=l+1,e.push(l,n,v),e.push(n,k,v);this.setIndex(e);this.setAttribute("position",new B(f,3));this.setAttribute("uv",new B(g,2));this.computeVertexNormals();if(d===2*Math.PI)for(d=this.attributes.normal.array,e=new m,f=new m,g=new m,b=b*a.length*3,h=c=0;c<a.length;c++,h+=3)e.x=d[h+0],e.y=d[h+1],e.z=d[h+2],f.x=d[b+h+0],f.y=d[b+h+1],f.z=d[b+h+2],g.addVectors(e,
 f).normalize(),d[h+0]=d[b+h+0]=g.x,d[h+1]=d[b+h+1]=g.y,d[h+2]=d[b+h+2]=g.z}function fc(a,b){L.call(this);this.type="ShapeGeometry";"object"===typeof b&&(console.warn("THREE.ShapeGeometry: Options parameter has been removed."),b=b.curveSegments);this.parameters={shapes:a,curveSegments:b};this.fromBufferGeometry(new gc(a,b));this.mergeVertices()}function gc(a,b){function c(a){var c=e.length/3,h=a.extractPoints(b);a=h.shape;var n=h.holes;!1===rb.isClockWise(a)&&(a=a.reverse());h=0;for(var k=n.length;h<
 f).normalize(),d[h+0]=d[b+h+0]=g.x,d[h+1]=d[b+h+1]=g.y,d[h+2]=d[b+h+2]=g.z}function fc(a,b){L.call(this);this.type="ShapeGeometry";"object"===typeof b&&(console.warn("THREE.ShapeGeometry: Options parameter has been removed."),b=b.curveSegments);this.parameters={shapes:a,curveSegments:b};this.fromBufferGeometry(new gc(a,b));this.mergeVertices()}function gc(a,b){function c(a){var c=e.length/3,h=a.extractPoints(b);a=h.shape;var n=h.holes;!1===rb.isClockWise(a)&&(a=a.reverse());h=0;for(var k=n.length;h<
-k;h++){var t=n[h];!0===rb.isClockWise(t)&&(n[h]=t.reverse())}h=rb.triangulateShape(a,n);k=0;for(t=n.length;k<t;k++)a=a.concat(n[k]);n=0;for(k=a.length;n<k;n++)t=a[n],e.push(t.x,t.y,0),f.push(0,0,1),g.push(t.x,t.y);a=0;for(n=h.length;a<n;a++)k=h[a],d.push(k[0]+c,k[1]+c,k[2]+c),l+=3}F.call(this);this.type="ShapeBufferGeometry";this.parameters={shapes:a,curveSegments:b};b=b||12;var d=[],e=[],f=[],g=[],h=0,l=0;if(!1===Array.isArray(a))c(a);else for(var n=0;n<a.length;n++)c(a[n]),this.addGroup(h,l,n),
+k;h++){var q=n[h];!0===rb.isClockWise(q)&&(n[h]=q.reverse())}h=rb.triangulateShape(a,n);k=0;for(q=n.length;k<q;k++)a=a.concat(n[k]);n=0;for(k=a.length;n<k;n++)q=a[n],e.push(q.x,q.y,0),f.push(0,0,1),g.push(q.x,q.y);a=0;for(n=h.length;a<n;a++)k=h[a],d.push(k[0]+c,k[1]+c,k[2]+c),l+=3}F.call(this);this.type="ShapeBufferGeometry";this.parameters={shapes:a,curveSegments:b};b=b||12;var d=[],e=[],f=[],g=[],h=0,l=0;if(!1===Array.isArray(a))c(a);else for(var n=0;n<a.length;n++)c(a[n]),this.addGroup(h,l,n),
 h+=l,l=0;this.setIndex(d);this.setAttribute("position",new B(e,3));this.setAttribute("normal",new B(f,3));this.setAttribute("uv",new B(g,2))}function gi(a,b){b.shapes=[];if(Array.isArray(a))for(var c=0,d=a.length;c<d;c++)b.shapes.push(a[c].uuid);else b.shapes.push(a.uuid);return b}function Zc(a,b){F.call(this);this.type="EdgesGeometry";this.parameters={thresholdAngle:b};var c=[];b=Math.cos(K.DEG2RAD*(void 0!==b?b:1));var d=[0,0],e={},f=["a","b","c"];if(a.isBufferGeometry){var g=new L;g.fromBufferGeometry(a)}else g=
 h+=l,l=0;this.setIndex(d);this.setAttribute("position",new B(e,3));this.setAttribute("normal",new B(f,3));this.setAttribute("uv",new B(g,2))}function gi(a,b){b.shapes=[];if(Array.isArray(a))for(var c=0,d=a.length;c<d;c++)b.shapes.push(a[c].uuid);else b.shapes.push(a.uuid);return b}function Zc(a,b){F.call(this);this.type="EdgesGeometry";this.parameters={thresholdAngle:b};var c=[];b=Math.cos(K.DEG2RAD*(void 0!==b?b:1));var d=[0,0],e={},f=["a","b","c"];if(a.isBufferGeometry){var g=new L;g.fromBufferGeometry(a)}else g=
 a.clone();g.mergeVertices();g.computeFaceNormals();a=g.vertices;g=g.faces;for(var h=0,l=g.length;h<l;h++)for(var n=g[h],k=0;3>k;k++){var p=n[f[k]];var m=n[f[(k+1)%3]];d[0]=Math.min(p,m);d[1]=Math.max(p,m);p=d[0]+","+d[1];void 0===e[p]?e[p]={index1:d[0],index2:d[1],face1:h,face2:void 0}:e[p].face2=h}for(p in e)if(d=e[p],void 0===d.face2||g[d.face1].normal.dot(g[d.face2].normal)<=b)f=a[d.index1],c.push(f.x,f.y,f.z),f=a[d.index2],c.push(f.x,f.y,f.z);this.setAttribute("position",new B(c,3))}function hc(a,
 a.clone();g.mergeVertices();g.computeFaceNormals();a=g.vertices;g=g.faces;for(var h=0,l=g.length;h<l;h++)for(var n=g[h],k=0;3>k;k++){var p=n[f[k]];var m=n[f[(k+1)%3]];d[0]=Math.min(p,m);d[1]=Math.max(p,m);p=d[0]+","+d[1];void 0===e[p]?e[p]={index1:d[0],index2:d[1],face1:h,face2:void 0}:e[p].face2=h}for(p in e)if(d=e[p],void 0===d.face2||g[d.face1].normal.dot(g[d.face2].normal)<=b)f=a[d.index1],c.push(f.x,f.y,f.z),f=a[d.index2],c.push(f.x,f.y,f.z);this.setAttribute("position",new B(c,3))}function hc(a,
-b,c,d,e,f,g,h){L.call(this);this.type="CylinderGeometry";this.parameters={radiusTop:a,radiusBottom:b,height:c,radialSegments:d,heightSegments:e,openEnded:f,thetaStart:g,thetaLength:h};this.fromBufferGeometry(new sb(a,b,c,d,e,f,g,h));this.mergeVertices()}function sb(a,b,c,d,e,f,g,h){function l(c){var e,f=new w,l=new m,t=0,u=!0===c?a:b,x=!0===c?1:-1;var z=q;for(e=1;e<=d;e++)p.push(0,A*x,0),v.push(0,x,0),r.push(.5,.5),q++;e=q;for(var B=0;B<=d;B++){var y=B/d*h+g,D=Math.cos(y);y=Math.sin(y);l.x=u*y;l.y=
-A*x;l.z=u*D;p.push(l.x,l.y,l.z);v.push(0,x,0);f.x=.5*D+.5;f.y=.5*y*x+.5;r.push(f.x,f.y);q++}for(f=0;f<d;f++)l=z+f,u=e+f,!0===c?k.push(u,u+1,l):k.push(u+1,u,l),t+=3;n.addGroup(E,t,!0===c?1:2);E+=t}F.call(this);this.type="CylinderBufferGeometry";this.parameters={radiusTop:a,radiusBottom:b,height:c,radialSegments:d,heightSegments:e,openEnded:f,thetaStart:g,thetaLength:h};var n=this;a=void 0!==a?a:1;b=void 0!==b?b:1;c=c||1;d=Math.floor(d)||8;e=Math.floor(e)||1;f=void 0!==f?f:!1;g=void 0!==g?g:0;h=void 0!==
-h?h:2*Math.PI;var k=[],p=[],v=[],r=[],q=0,u=[],A=c/2,E=0;(function(){for(var f=new m,l=new m,t=0,w=(b-a)/c,C=0;C<=e;C++){for(var z=[],B=C/e,y=B*(b-a)+a,D=0;D<=d;D++){var F=D/d,G=F*h+g,H=Math.sin(G);G=Math.cos(G);l.x=y*H;l.y=-B*c+A;l.z=y*G;p.push(l.x,l.y,l.z);f.set(H,w,G).normalize();v.push(f.x,f.y,f.z);r.push(F,1-B);z.push(q++)}u.push(z)}for(f=0;f<d;f++)for(l=0;l<e;l++)w=u[l+1][f],C=u[l+1][f+1],z=u[l][f+1],k.push(u[l][f],w,z),k.push(w,C,z),t+=6;n.addGroup(E,t,0);E+=t})();!1===f&&(0<a&&l(!0),0<b&&
-l(!1));this.setIndex(k);this.setAttribute("position",new B(p,3));this.setAttribute("normal",new B(v,3));this.setAttribute("uv",new B(r,2))}function he(a,b,c,d,e,f,g){hc.call(this,0,a,b,c,d,e,f,g);this.type="ConeGeometry";this.parameters={radius:a,height:b,radialSegments:c,heightSegments:d,openEnded:e,thetaStart:f,thetaLength:g}}function ie(a,b,c,d,e,f,g){sb.call(this,0,a,b,c,d,e,f,g);this.type="ConeBufferGeometry";this.parameters={radius:a,height:b,radialSegments:c,heightSegments:d,openEnded:e,thetaStart:f,
+b,c,d,e,f,g,h){L.call(this);this.type="CylinderGeometry";this.parameters={radiusTop:a,radiusBottom:b,height:c,radialSegments:d,heightSegments:e,openEnded:f,thetaStart:g,thetaLength:h};this.fromBufferGeometry(new sb(a,b,c,d,e,f,g,h));this.mergeVertices()}function sb(a,b,c,d,e,f,g,h){function l(c){var e,f=new w,l=new m,q=0,u=!0===c?a:b,x=!0===c?1:-1;var z=r;for(e=1;e<=d;e++)p.push(0,A*x,0),v.push(0,x,0),t.push(.5,.5),r++;e=r;for(var B=0;B<=d;B++){var y=B/d*h+g,D=Math.cos(y);y=Math.sin(y);l.x=u*y;l.y=
+A*x;l.z=u*D;p.push(l.x,l.y,l.z);v.push(0,x,0);f.x=.5*D+.5;f.y=.5*y*x+.5;t.push(f.x,f.y);r++}for(f=0;f<d;f++)l=z+f,u=e+f,!0===c?k.push(u,u+1,l):k.push(u+1,u,l),q+=3;n.addGroup(E,q,!0===c?1:2);E+=q}F.call(this);this.type="CylinderBufferGeometry";this.parameters={radiusTop:a,radiusBottom:b,height:c,radialSegments:d,heightSegments:e,openEnded:f,thetaStart:g,thetaLength:h};var n=this;a=void 0!==a?a:1;b=void 0!==b?b:1;c=c||1;d=Math.floor(d)||8;e=Math.floor(e)||1;f=void 0!==f?f:!1;g=void 0!==g?g:0;h=void 0!==
+h?h:2*Math.PI;var k=[],p=[],v=[],t=[],r=0,u=[],A=c/2,E=0;(function(){for(var f=new m,l=new m,q=0,w=(b-a)/c,C=0;C<=e;C++){for(var z=[],B=C/e,y=B*(b-a)+a,D=0;D<=d;D++){var F=D/d,G=F*h+g,H=Math.sin(G);G=Math.cos(G);l.x=y*H;l.y=-B*c+A;l.z=y*G;p.push(l.x,l.y,l.z);f.set(H,w,G).normalize();v.push(f.x,f.y,f.z);t.push(F,1-B);z.push(r++)}u.push(z)}for(f=0;f<d;f++)for(l=0;l<e;l++)w=u[l+1][f],C=u[l+1][f+1],z=u[l][f+1],k.push(u[l][f],w,z),k.push(w,C,z),q+=6;n.addGroup(E,q,0);E+=q})();!1===f&&(0<a&&l(!0),0<b&&
+l(!1));this.setIndex(k);this.setAttribute("position",new B(p,3));this.setAttribute("normal",new B(v,3));this.setAttribute("uv",new B(t,2))}function he(a,b,c,d,e,f,g){hc.call(this,0,a,b,c,d,e,f,g);this.type="ConeGeometry";this.parameters={radius:a,height:b,radialSegments:c,heightSegments:d,openEnded:e,thetaStart:f,thetaLength:g}}function ie(a,b,c,d,e,f,g){sb.call(this,0,a,b,c,d,e,f,g);this.type="ConeBufferGeometry";this.parameters={radius:a,height:b,radialSegments:c,heightSegments:d,openEnded:e,thetaStart:f,
 thetaLength:g}}function je(a,b,c,d){L.call(this);this.type="CircleGeometry";this.parameters={radius:a,segments:b,thetaStart:c,thetaLength:d};this.fromBufferGeometry(new $c(a,b,c,d));this.mergeVertices()}function $c(a,b,c,d){F.call(this);this.type="CircleBufferGeometry";this.parameters={radius:a,segments:b,thetaStart:c,thetaLength:d};a=a||1;b=void 0!==b?Math.max(3,b):8;c=void 0!==c?c:0;d=void 0!==d?d:2*Math.PI;var e=[],f=[],g=[],h=[],l=new m,n=new w;f.push(0,0,0);g.push(0,0,1);h.push(.5,.5);for(var k=
 thetaLength:g}}function je(a,b,c,d){L.call(this);this.type="CircleGeometry";this.parameters={radius:a,segments:b,thetaStart:c,thetaLength:d};this.fromBufferGeometry(new $c(a,b,c,d));this.mergeVertices()}function $c(a,b,c,d){F.call(this);this.type="CircleBufferGeometry";this.parameters={radius:a,segments:b,thetaStart:c,thetaLength:d};a=a||1;b=void 0!==b?Math.max(3,b):8;c=void 0!==c?c:0;d=void 0!==d?d:2*Math.PI;var e=[],f=[],g=[],h=[],l=new m,n=new w;f.push(0,0,0);g.push(0,0,1);h.push(.5,.5);for(var k=
 0,p=3;k<=b;k++,p+=3){var v=c+k/b*d;l.x=a*Math.cos(v);l.y=a*Math.sin(v);f.push(l.x,l.y,l.z);g.push(0,0,1);n.x=(f[p]/a+1)/2;n.y=(f[p+1]/a+1)/2;h.push(n.x,n.y)}for(a=1;a<=b;a++)e.push(a,a+1,0);this.setIndex(e);this.setAttribute("position",new B(f,3));this.setAttribute("normal",new B(g,3));this.setAttribute("uv",new B(h,2))}function ic(a){G.call(this);this.type="ShadowMaterial";this.color=new D(0);this.transparent=!0;this.setValues(a)}function tb(a){Ba.call(this,a);this.type="RawShaderMaterial"}function ib(a){G.call(this);
 0,p=3;k<=b;k++,p+=3){var v=c+k/b*d;l.x=a*Math.cos(v);l.y=a*Math.sin(v);f.push(l.x,l.y,l.z);g.push(0,0,1);n.x=(f[p]/a+1)/2;n.y=(f[p+1]/a+1)/2;h.push(n.x,n.y)}for(a=1;a<=b;a++)e.push(a,a+1,0);this.setIndex(e);this.setAttribute("position",new B(f,3));this.setAttribute("normal",new B(g,3));this.setAttribute("uv",new B(h,2))}function ic(a){G.call(this);this.type="ShadowMaterial";this.color=new D(0);this.transparent=!0;this.setValues(a)}function tb(a){Ba.call(this,a);this.type="RawShaderMaterial"}function ib(a){G.call(this);
 this.defines={STANDARD:""};this.type="MeshStandardMaterial";this.color=new D(16777215);this.roughness=1;this.metalness=0;this.lightMap=this.map=null;this.lightMapIntensity=1;this.aoMap=null;this.aoMapIntensity=1;this.emissive=new D(0);this.emissiveIntensity=1;this.bumpMap=this.emissiveMap=null;this.bumpScale=1;this.normalMap=null;this.normalMapType=0;this.normalScale=new w(1,1);this.displacementMap=null;this.displacementScale=1;this.displacementBias=0;this.envMap=this.alphaMap=this.metalnessMap=this.roughnessMap=
 this.defines={STANDARD:""};this.type="MeshStandardMaterial";this.color=new D(16777215);this.roughness=1;this.metalness=0;this.lightMap=this.map=null;this.lightMapIntensity=1;this.aoMap=null;this.aoMapIntensity=1;this.emissive=new D(0);this.emissiveIntensity=1;this.bumpMap=this.emissiveMap=null;this.bumpScale=1;this.normalMap=null;this.normalMapType=0;this.normalScale=new w(1,1);this.displacementMap=null;this.displacementScale=1;this.displacementBias=0;this.envMap=this.alphaMap=this.metalnessMap=this.roughnessMap=
@@ -358,9 +358,9 @@ this.x+this.y*this.y},length:function(){return Math.sqrt(this.x*this.x+this.y*th
 a.y)},setLength:function(a){return this.normalize().multiplyScalar(a)},lerp:function(a,b){this.x+=(a.x-this.x)*b;this.y+=(a.y-this.y)*b;return this},lerpVectors:function(a,b,c){this.x=a.x+(b.x-a.x)*c;this.y=a.y+(b.y-a.y)*c;return this},equals:function(a){return a.x===this.x&&a.y===this.y},fromArray:function(a,b){void 0===b&&(b=0);this.x=a[b];this.y=a[b+1];return this},toArray:function(a,b){void 0===a&&(a=[]);void 0===b&&(b=0);a[b]=this.x;a[b+1]=this.y;return a},fromBufferAttribute:function(a,b,c){void 0!==
 a.y)},setLength:function(a){return this.normalize().multiplyScalar(a)},lerp:function(a,b){this.x+=(a.x-this.x)*b;this.y+=(a.y-this.y)*b;return this},lerpVectors:function(a,b,c){this.x=a.x+(b.x-a.x)*c;this.y=a.y+(b.y-a.y)*c;return this},equals:function(a){return a.x===this.x&&a.y===this.y},fromArray:function(a,b){void 0===b&&(b=0);this.x=a[b];this.y=a[b+1];return this},toArray:function(a,b){void 0===a&&(a=[]);void 0===b&&(b=0);a[b]=this.x;a[b+1]=this.y;return a},fromBufferAttribute:function(a,b,c){void 0!==
 c&&console.warn("THREE.Vector2: offset has been removed from .fromBufferAttribute().");this.x=a.getX(b);this.y=a.getY(b);return this},rotateAround:function(a,b){var c=Math.cos(b);b=Math.sin(b);var d=this.x-a.x,e=this.y-a.y;this.x=d*c-e*b+a.x;this.y=d*b+e*c+a.y;return this},random:function(){this.x=Math.random();this.y=Math.random();return this}});Object.assign(xa.prototype,{isMatrix3:!0,set:function(a,b,c,d,e,f,g,h,l){var n=this.elements;n[0]=a;n[1]=d;n[2]=g;n[3]=b;n[4]=e;n[5]=h;n[6]=c;n[7]=f;n[8]=
 c&&console.warn("THREE.Vector2: offset has been removed from .fromBufferAttribute().");this.x=a.getX(b);this.y=a.getY(b);return this},rotateAround:function(a,b){var c=Math.cos(b);b=Math.sin(b);var d=this.x-a.x,e=this.y-a.y;this.x=d*c-e*b+a.x;this.y=d*b+e*c+a.y;return this},random:function(){this.x=Math.random();this.y=Math.random();return this}});Object.assign(xa.prototype,{isMatrix3:!0,set:function(a,b,c,d,e,f,g,h,l){var n=this.elements;n[0]=a;n[1]=d;n[2]=g;n[3]=b;n[4]=e;n[5]=h;n[6]=c;n[7]=f;n[8]=
 l;return this},identity:function(){this.set(1,0,0,0,1,0,0,0,1);return this},clone:function(){return(new this.constructor).fromArray(this.elements)},copy:function(a){var b=this.elements;a=a.elements;b[0]=a[0];b[1]=a[1];b[2]=a[2];b[3]=a[3];b[4]=a[4];b[5]=a[5];b[6]=a[6];b[7]=a[7];b[8]=a[8];return this},extractBasis:function(a,b,c){a.setFromMatrix3Column(this,0);b.setFromMatrix3Column(this,1);c.setFromMatrix3Column(this,2);return this},setFromMatrix4:function(a){a=a.elements;this.set(a[0],a[4],a[8],a[1],
 l;return this},identity:function(){this.set(1,0,0,0,1,0,0,0,1);return this},clone:function(){return(new this.constructor).fromArray(this.elements)},copy:function(a){var b=this.elements;a=a.elements;b[0]=a[0];b[1]=a[1];b[2]=a[2];b[3]=a[3];b[4]=a[4];b[5]=a[5];b[6]=a[6];b[7]=a[7];b[8]=a[8];return this},extractBasis:function(a,b,c){a.setFromMatrix3Column(this,0);b.setFromMatrix3Column(this,1);c.setFromMatrix3Column(this,2);return this},setFromMatrix4:function(a){a=a.elements;this.set(a[0],a[4],a[8],a[1],
-a[5],a[9],a[2],a[6],a[10]);return this},multiply:function(a){return this.multiplyMatrices(this,a)},premultiply:function(a){return this.multiplyMatrices(a,this)},multiplyMatrices:function(a,b){var c=a.elements,d=b.elements;b=this.elements;a=c[0];var e=c[3],f=c[6],g=c[1],h=c[4],l=c[7],n=c[2],k=c[5];c=c[8];var p=d[0],m=d[3],r=d[6],q=d[1],u=d[4],A=d[7],w=d[2],x=d[5];d=d[8];b[0]=a*p+e*q+f*w;b[3]=a*m+e*u+f*x;b[6]=a*r+e*A+f*d;b[1]=g*p+h*q+l*w;b[4]=g*m+h*u+l*x;b[7]=g*r+h*A+l*d;b[2]=n*p+k*q+c*w;b[5]=n*m+k*
-u+c*x;b[8]=n*r+k*A+c*d;return this},multiplyScalar:function(a){var b=this.elements;b[0]*=a;b[3]*=a;b[6]*=a;b[1]*=a;b[4]*=a;b[7]*=a;b[2]*=a;b[5]*=a;b[8]*=a;return this},determinant:function(){var a=this.elements,b=a[0],c=a[1],d=a[2],e=a[3],f=a[4],g=a[5],h=a[6],l=a[7];a=a[8];return b*f*a-b*g*l-c*e*a+c*g*h+d*e*l-d*f*h},getInverse:function(a,b){void 0!==b&&console.warn("THREE.Matrix3: .getInverse() can no longer be configured to throw on degenerate.");var c=a.elements;a=this.elements;b=c[0];var d=c[1],
-e=c[2],f=c[3],g=c[4],h=c[5],l=c[6],n=c[7];c=c[8];var k=c*g-h*n,p=h*l-c*f,m=n*f-g*l,r=b*k+d*p+e*m;if(0===r)return this.set(0,0,0,0,0,0,0,0,0);r=1/r;a[0]=k*r;a[1]=(e*n-c*d)*r;a[2]=(h*d-e*g)*r;a[3]=p*r;a[4]=(c*b-e*l)*r;a[5]=(e*f-h*b)*r;a[6]=m*r;a[7]=(d*l-n*b)*r;a[8]=(g*b-d*f)*r;return this},transpose:function(){var a=this.elements;var b=a[1];a[1]=a[3];a[3]=b;b=a[2];a[2]=a[6];a[6]=b;b=a[5];a[5]=a[7];a[7]=b;return this},getNormalMatrix:function(a){return this.setFromMatrix4(a).getInverse(this).transpose()},
+a[5],a[9],a[2],a[6],a[10]);return this},multiply:function(a){return this.multiplyMatrices(this,a)},premultiply:function(a){return this.multiplyMatrices(a,this)},multiplyMatrices:function(a,b){var c=a.elements,d=b.elements;b=this.elements;a=c[0];var e=c[3],f=c[6],g=c[1],h=c[4],l=c[7],n=c[2],k=c[5];c=c[8];var p=d[0],m=d[3],t=d[6],r=d[1],u=d[4],A=d[7],w=d[2],x=d[5];d=d[8];b[0]=a*p+e*r+f*w;b[3]=a*m+e*u+f*x;b[6]=a*t+e*A+f*d;b[1]=g*p+h*r+l*w;b[4]=g*m+h*u+l*x;b[7]=g*t+h*A+l*d;b[2]=n*p+k*r+c*w;b[5]=n*m+k*
+u+c*x;b[8]=n*t+k*A+c*d;return this},multiplyScalar:function(a){var b=this.elements;b[0]*=a;b[3]*=a;b[6]*=a;b[1]*=a;b[4]*=a;b[7]*=a;b[2]*=a;b[5]*=a;b[8]*=a;return this},determinant:function(){var a=this.elements,b=a[0],c=a[1],d=a[2],e=a[3],f=a[4],g=a[5],h=a[6],l=a[7];a=a[8];return b*f*a-b*g*l-c*e*a+c*g*h+d*e*l-d*f*h},getInverse:function(a,b){void 0!==b&&console.warn("THREE.Matrix3: .getInverse() can no longer be configured to throw on degenerate.");var c=a.elements;a=this.elements;b=c[0];var d=c[1],
+e=c[2],f=c[3],g=c[4],h=c[5],l=c[6],n=c[7];c=c[8];var k=c*g-h*n,p=h*l-c*f,m=n*f-g*l,t=b*k+d*p+e*m;if(0===t)return this.set(0,0,0,0,0,0,0,0,0);t=1/t;a[0]=k*t;a[1]=(e*n-c*d)*t;a[2]=(h*d-e*g)*t;a[3]=p*t;a[4]=(c*b-e*l)*t;a[5]=(e*f-h*b)*t;a[6]=m*t;a[7]=(d*l-n*b)*t;a[8]=(g*b-d*f)*t;return this},transpose:function(){var a=this.elements;var b=a[1];a[1]=a[3];a[3]=b;b=a[2];a[2]=a[6];a[6]=b;b=a[5];a[5]=a[7];a[7]=b;return this},getNormalMatrix:function(a){return this.setFromMatrix4(a).getInverse(this).transpose()},
 transposeIntoArray:function(a){var b=this.elements;a[0]=b[0];a[1]=b[3];a[2]=b[6];a[3]=b[1];a[4]=b[4];a[5]=b[7];a[6]=b[2];a[7]=b[5];a[8]=b[8];return this},setUvTransform:function(a,b,c,d,e,f,g){var h=Math.cos(e);e=Math.sin(e);this.set(c*h,c*e,-c*(h*f+e*g)+f+a,-d*e,d*h,-d*(-e*f+h*g)+g+b,0,0,1)},scale:function(a,b){var c=this.elements;c[0]*=a;c[3]*=a;c[6]*=a;c[1]*=b;c[4]*=b;c[7]*=b;return this},rotate:function(a){var b=Math.cos(a);a=Math.sin(a);var c=this.elements,d=c[0],e=c[3],f=c[6],g=c[1],h=c[4],
 transposeIntoArray:function(a){var b=this.elements;a[0]=b[0];a[1]=b[3];a[2]=b[6];a[3]=b[1];a[4]=b[4];a[5]=b[7];a[6]=b[2];a[7]=b[5];a[8]=b[8];return this},setUvTransform:function(a,b,c,d,e,f,g){var h=Math.cos(e);e=Math.sin(e);this.set(c*h,c*e,-c*(h*f+e*g)+f+a,-d*e,d*h,-d*(-e*f+h*g)+g+b,0,0,1)},scale:function(a,b){var c=this.elements;c[0]*=a;c[3]*=a;c[6]*=a;c[1]*=b;c[4]*=b;c[7]*=b;return this},rotate:function(a){var b=Math.cos(a);a=Math.sin(a);var c=this.elements,d=c[0],e=c[3],f=c[6],g=c[1],h=c[4],
 l=c[7];c[0]=b*d+a*g;c[3]=b*e+a*h;c[6]=b*f+a*l;c[1]=-a*d+b*g;c[4]=-a*e+b*h;c[7]=-a*f+b*l;return this},translate:function(a,b){var c=this.elements;c[0]+=a*c[2];c[3]+=a*c[5];c[6]+=a*c[8];c[1]+=b*c[2];c[4]+=b*c[5];c[7]+=b*c[8];return this},equals:function(a){var b=this.elements;a=a.elements;for(var c=0;9>c;c++)if(b[c]!==a[c])return!1;return!0},fromArray:function(a,b){void 0===b&&(b=0);for(var c=0;9>c;c++)this.elements[c]=a[c+b];return this},toArray:function(a,b){void 0===a&&(a=[]);void 0===b&&(b=0);var c=
 l=c[7];c[0]=b*d+a*g;c[3]=b*e+a*h;c[6]=b*f+a*l;c[1]=-a*d+b*g;c[4]=-a*e+b*h;c[7]=-a*f+b*l;return this},translate:function(a,b){var c=this.elements;c[0]+=a*c[2];c[3]+=a*c[5];c[6]+=a*c[8];c[1]+=b*c[2];c[4]+=b*c[5];c[7]+=b*c[8];return this},equals:function(a){var b=this.elements;a=a.elements;for(var c=0;9>c;c++)if(b[c]!==a[c])return!1;return!0},fromArray:function(a,b){void 0===b&&(b=0);for(var c=0;9>c;c++)this.elements[c]=a[c+b];return this},toArray:function(a,b){void 0===a&&(a=[]);void 0===b&&(b=0);var c=
 this.elements;a[b]=c[0];a[b+1]=c[1];a[b+2]=c[2];a[b+3]=c[3];a[b+4]=c[4];a[b+5]=c[5];a[b+6]=c[6];a[b+7]=c[7];a[b+8]=c[8];return a}});var kd,Ob={getDataURL:function(a){if(/^data:/i.test(a.src)||"undefined"==typeof HTMLCanvasElement)return a.src;if(!(a instanceof HTMLCanvasElement)){void 0===kd&&(kd=document.createElementNS("http://www.w3.org/1999/xhtml","canvas"));kd.width=a.width;kd.height=a.height;var b=kd.getContext("2d");a instanceof ImageData?b.putImageData(a,0,0):b.drawImage(a,0,0,a.width,a.height);
 this.elements;a[b]=c[0];a[b+1]=c[1];a[b+2]=c[2];a[b+3]=c[3];a[b+4]=c[4];a[b+5]=c[5];a[b+6]=c[6];a[b+7]=c[7];a[b+8]=c[8];return a}});var kd,Ob={getDataURL:function(a){if(/^data:/i.test(a.src)||"undefined"==typeof HTMLCanvasElement)return a.src;if(!(a instanceof HTMLCanvasElement)){void 0===kd&&(kd=document.createElementNS("http://www.w3.org/1999/xhtml","canvas"));kd.width=a.width;kd.height=a.height;var b=kd.getContext("2d");a instanceof ImageData?b.putImageData(a,0,0):b.drawImage(a,0,0,a.width,a.height);
@@ -383,7 +383,7 @@ manhattanLength:function(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(thi
 this.x&&a.y===this.y&&a.z===this.z&&a.w===this.w},fromArray:function(a,b){void 0===b&&(b=0);this.x=a[b];this.y=a[b+1];this.z=a[b+2];this.w=a[b+3];return this},toArray:function(a,b){void 0===a&&(a=[]);void 0===b&&(b=0);a[b]=this.x;a[b+1]=this.y;a[b+2]=this.z;a[b+3]=this.w;return a},fromBufferAttribute:function(a,b,c){void 0!==c&&console.warn("THREE.Vector4: offset has been removed from .fromBufferAttribute().");this.x=a.getX(b);this.y=a.getY(b);this.z=a.getZ(b);this.w=a.getW(b);return this},random:function(){this.x=
 this.x&&a.y===this.y&&a.z===this.z&&a.w===this.w},fromArray:function(a,b){void 0===b&&(b=0);this.x=a[b];this.y=a[b+1];this.z=a[b+2];this.w=a[b+3];return this},toArray:function(a,b){void 0===a&&(a=[]);void 0===b&&(b=0);a[b]=this.x;a[b+1]=this.y;a[b+2]=this.z;a[b+3]=this.w;return a},fromBufferAttribute:function(a,b,c){void 0!==c&&console.warn("THREE.Vector4: offset has been removed from .fromBufferAttribute().");this.x=a.getX(b);this.y=a.getY(b);this.z=a.getZ(b);this.w=a.getW(b);return this},random:function(){this.x=
 Math.random();this.y=Math.random();this.z=Math.random();this.w=Math.random();return this}});Ha.prototype=Object.assign(Object.create(ua.prototype),{constructor:Ha,isWebGLRenderTarget:!0,setSize:function(a,b){if(this.width!==a||this.height!==b)this.width=a,this.height=b,this.texture.image.width=a,this.texture.image.height=b,this.dispose();this.viewport.set(0,0,a,b);this.scissor.set(0,0,a,b)},clone:function(){return(new this.constructor).copy(this)},copy:function(a){this.width=a.width;this.height=a.height;
 Math.random();this.y=Math.random();this.z=Math.random();this.w=Math.random();return this}});Ha.prototype=Object.assign(Object.create(ua.prototype),{constructor:Ha,isWebGLRenderTarget:!0,setSize:function(a,b){if(this.width!==a||this.height!==b)this.width=a,this.height=b,this.texture.image.width=a,this.texture.image.height=b,this.dispose();this.viewport.set(0,0,a,b);this.scissor.set(0,0,a,b)},clone:function(){return(new this.constructor).copy(this)},copy:function(a){this.width=a.width;this.height=a.height;
 this.viewport.copy(a.viewport);this.texture=a.texture.clone();this.depthBuffer=a.depthBuffer;this.stencilBuffer=a.stencilBuffer;this.depthTexture=a.depthTexture;return this},dispose:function(){this.dispatchEvent({type:"dispose"})}});ag.prototype=Object.assign(Object.create(Ha.prototype),{constructor:ag,isWebGLMultisampleRenderTarget:!0,copy:function(a){Ha.prototype.copy.call(this,a);this.samples=a.samples;return this}});Object.assign(na,{slerp:function(a,b,c,d){return c.copy(a).slerp(b,d)},slerpFlat:function(a,
 this.viewport.copy(a.viewport);this.texture=a.texture.clone();this.depthBuffer=a.depthBuffer;this.stencilBuffer=a.stencilBuffer;this.depthTexture=a.depthTexture;return this},dispose:function(){this.dispatchEvent({type:"dispose"})}});ag.prototype=Object.assign(Object.create(Ha.prototype),{constructor:ag,isWebGLMultisampleRenderTarget:!0,copy:function(a){Ha.prototype.copy.call(this,a);this.samples=a.samples;return this}});Object.assign(na,{slerp:function(a,b,c,d){return c.copy(a).slerp(b,d)},slerpFlat:function(a,
-b,c,d,e,f,g){var h=c[d+0],l=c[d+1],n=c[d+2];c=c[d+3];d=e[f+0];var k=e[f+1],p=e[f+2];e=e[f+3];if(c!==e||h!==d||l!==k||n!==p){f=1-g;var m=h*d+l*k+n*p+c*e,r=0<=m?1:-1,q=1-m*m;q>Number.EPSILON&&(q=Math.sqrt(q),m=Math.atan2(q,m*r),f=Math.sin(f*m)/q,g=Math.sin(g*m)/q);r*=g;h=h*f+d*r;l=l*f+k*r;n=n*f+p*r;c=c*f+e*r;f===1-g&&(g=1/Math.sqrt(h*h+l*l+n*n+c*c),h*=g,l*=g,n*=g,c*=g)}a[b]=h;a[b+1]=l;a[b+2]=n;a[b+3]=c},multiplyQuaternionsFlat:function(a,b,c,d,e,f){var g=c[d],h=c[d+1],l=c[d+2];c=c[d+3];d=e[f];var n=
+b,c,d,e,f,g){var h=c[d+0],l=c[d+1],n=c[d+2];c=c[d+3];d=e[f+0];var k=e[f+1],p=e[f+2];e=e[f+3];if(c!==e||h!==d||l!==k||n!==p){f=1-g;var m=h*d+l*k+n*p+c*e,t=0<=m?1:-1,r=1-m*m;r>Number.EPSILON&&(r=Math.sqrt(r),m=Math.atan2(r,m*t),f=Math.sin(f*m)/r,g=Math.sin(g*m)/r);t*=g;h=h*f+d*t;l=l*f+k*t;n=n*f+p*t;c=c*f+e*t;f===1-g&&(g=1/Math.sqrt(h*h+l*l+n*n+c*c),h*=g,l*=g,n*=g,c*=g)}a[b]=h;a[b+1]=l;a[b+2]=n;a[b+3]=c},multiplyQuaternionsFlat:function(a,b,c,d,e,f){var g=c[d],h=c[d+1],l=c[d+2];c=c[d+3];d=e[f];var n=
 e[f+1],k=e[f+2];e=e[f+3];a[b]=g*e+c*d+h*k-l*n;a[b+1]=h*e+c*n+l*d-g*k;a[b+2]=l*e+c*k+g*n-h*d;a[b+3]=c*e-g*d-h*n-l*k;return a}});Object.defineProperties(na.prototype,{x:{get:function(){return this._x},set:function(a){this._x=a;this._onChangeCallback()}},y:{get:function(){return this._y},set:function(a){this._y=a;this._onChangeCallback()}},z:{get:function(){return this._z},set:function(a){this._z=a;this._onChangeCallback()}},w:{get:function(){return this._w},set:function(a){this._w=a;this._onChangeCallback()}}});
 e[f+1],k=e[f+2];e=e[f+3];a[b]=g*e+c*d+h*k-l*n;a[b+1]=h*e+c*n+l*d-g*k;a[b+2]=l*e+c*k+g*n-h*d;a[b+3]=c*e-g*d-h*n-l*k;return a}});Object.defineProperties(na.prototype,{x:{get:function(){return this._x},set:function(a){this._x=a;this._onChangeCallback()}},y:{get:function(){return this._y},set:function(a){this._y=a;this._onChangeCallback()}},z:{get:function(){return this._z},set:function(a){this._z=a;this._onChangeCallback()}},w:{get:function(){return this._w},set:function(a){this._w=a;this._onChangeCallback()}}});
 Object.assign(na.prototype,{isQuaternion:!0,set:function(a,b,c,d){this._x=a;this._y=b;this._z=c;this._w=d;this._onChangeCallback();return this},clone:function(){return new this.constructor(this._x,this._y,this._z,this._w)},copy:function(a){this._x=a.x;this._y=a.y;this._z=a.z;this._w=a.w;this._onChangeCallback();return this},setFromEuler:function(a,b){if(!a||!a.isEuler)throw Error("THREE.Quaternion: .setFromEuler() now expects an Euler rotation rather than a Vector3 and order.");var c=a._x,d=a._y,
 Object.assign(na.prototype,{isQuaternion:!0,set:function(a,b,c,d){this._x=a;this._y=b;this._z=c;this._w=d;this._onChangeCallback();return this},clone:function(){return new this.constructor(this._x,this._y,this._z,this._w)},copy:function(a){this._x=a.x;this._y=a.y;this._z=a.z;this._w=a.w;this._onChangeCallback();return this},setFromEuler:function(a,b){if(!a||!a.isEuler)throw Error("THREE.Quaternion: .setFromEuler() now expects an Euler rotation rather than a Vector3 and order.");var c=a._x,d=a._y,
 e=a._z;a=a.order;var f=Math.cos,g=Math.sin,h=f(c/2),l=f(d/2);f=f(e/2);c=g(c/2);d=g(d/2);e=g(e/2);switch(a){case "XYZ":this._x=c*l*f+h*d*e;this._y=h*d*f-c*l*e;this._z=h*l*e+c*d*f;this._w=h*l*f-c*d*e;break;case "YXZ":this._x=c*l*f+h*d*e;this._y=h*d*f-c*l*e;this._z=h*l*e-c*d*f;this._w=h*l*f+c*d*e;break;case "ZXY":this._x=c*l*f-h*d*e;this._y=h*d*f+c*l*e;this._z=h*l*e+c*d*f;this._w=h*l*f-c*d*e;break;case "ZYX":this._x=c*l*f-h*d*e;this._y=h*d*f+c*l*e;this._z=h*l*e-c*d*f;this._w=h*l*f+c*d*e;break;case "YZX":this._x=
 e=a._z;a=a.order;var f=Math.cos,g=Math.sin,h=f(c/2),l=f(d/2);f=f(e/2);c=g(c/2);d=g(d/2);e=g(e/2);switch(a){case "XYZ":this._x=c*l*f+h*d*e;this._y=h*d*f-c*l*e;this._z=h*l*e+c*d*f;this._w=h*l*f-c*d*e;break;case "YXZ":this._x=c*l*f+h*d*e;this._y=h*d*f-c*l*e;this._z=h*l*e-c*d*f;this._w=h*l*f+c*d*e;break;case "ZXY":this._x=c*l*f-h*d*e;this._y=h*d*f+c*l*e;this._z=h*l*e+c*d*f;this._w=h*l*f-c*d*e;break;case "ZYX":this._x=c*l*f-h*d*e;this._y=h*d*f+c*l*e;this._z=h*l*e-c*d*f;this._w=h*l*f+c*d*e;break;case "YZX":this._x=
@@ -409,27 +409,27 @@ e-c*b;this.z=c*f-d*e;return this},projectOnVector:function(a){var b=a.lengthSq()
 distanceToSquared:function(a){var b=this.x-a.x,c=this.y-a.y;a=this.z-a.z;return b*b+c*c+a*a},manhattanDistanceTo:function(a){return Math.abs(this.x-a.x)+Math.abs(this.y-a.y)+Math.abs(this.z-a.z)},setFromSpherical:function(a){return this.setFromSphericalCoords(a.radius,a.phi,a.theta)},setFromSphericalCoords:function(a,b,c){var d=Math.sin(b)*a;this.x=d*Math.sin(c);this.y=Math.cos(b)*a;this.z=d*Math.cos(c);return this},setFromCylindrical:function(a){return this.setFromCylindricalCoords(a.radius,a.theta,
 distanceToSquared:function(a){var b=this.x-a.x,c=this.y-a.y;a=this.z-a.z;return b*b+c*c+a*a},manhattanDistanceTo:function(a){return Math.abs(this.x-a.x)+Math.abs(this.y-a.y)+Math.abs(this.z-a.z)},setFromSpherical:function(a){return this.setFromSphericalCoords(a.radius,a.phi,a.theta)},setFromSphericalCoords:function(a,b,c){var d=Math.sin(b)*a;this.x=d*Math.sin(c);this.y=Math.cos(b)*a;this.z=d*Math.cos(c);return this},setFromCylindrical:function(a){return this.setFromCylindricalCoords(a.radius,a.theta,
 a.y)},setFromCylindricalCoords:function(a,b,c){this.x=a*Math.sin(b);this.y=c;this.z=a*Math.cos(b);return this},setFromMatrixPosition:function(a){a=a.elements;this.x=a[12];this.y=a[13];this.z=a[14];return this},setFromMatrixScale:function(a){var b=this.setFromMatrixColumn(a,0).length(),c=this.setFromMatrixColumn(a,1).length();a=this.setFromMatrixColumn(a,2).length();this.x=b;this.y=c;this.z=a;return this},setFromMatrixColumn:function(a,b){return this.fromArray(a.elements,4*b)},setFromMatrix3Column:function(a,
 a.y)},setFromCylindricalCoords:function(a,b,c){this.x=a*Math.sin(b);this.y=c;this.z=a*Math.cos(b);return this},setFromMatrixPosition:function(a){a=a.elements;this.x=a[12];this.y=a[13];this.z=a[14];return this},setFromMatrixScale:function(a){var b=this.setFromMatrixColumn(a,0).length(),c=this.setFromMatrixColumn(a,1).length();a=this.setFromMatrixColumn(a,2).length();this.x=b;this.y=c;this.z=a;return this},setFromMatrixColumn:function(a,b){return this.fromArray(a.elements,4*b)},setFromMatrix3Column:function(a,
 b){return this.fromArray(a.elements,3*b)},equals:function(a){return a.x===this.x&&a.y===this.y&&a.z===this.z},fromArray:function(a,b){void 0===b&&(b=0);this.x=a[b];this.y=a[b+1];this.z=a[b+2];return this},toArray:function(a,b){void 0===a&&(a=[]);void 0===b&&(b=0);a[b]=this.x;a[b+1]=this.y;a[b+2]=this.z;return a},fromBufferAttribute:function(a,b,c){void 0!==c&&console.warn("THREE.Vector3: offset has been removed from .fromBufferAttribute().");this.x=a.getX(b);this.y=a.getY(b);this.z=a.getZ(b);return this},
 b){return this.fromArray(a.elements,3*b)},equals:function(a){return a.x===this.x&&a.y===this.y&&a.z===this.z},fromArray:function(a,b){void 0===b&&(b=0);this.x=a[b];this.y=a[b+1];this.z=a[b+2];return this},toArray:function(a,b){void 0===a&&(a=[]);void 0===b&&(b=0);a[b]=this.x;a[b+1]=this.y;a[b+2]=this.z;return a},fromBufferAttribute:function(a,b,c){void 0!==c&&console.warn("THREE.Vector3: offset has been removed from .fromBufferAttribute().");this.x=a.getX(b);this.y=a.getY(b);this.z=a.getZ(b);return this},
-random:function(){this.x=Math.random();this.y=Math.random();this.z=Math.random();return this}});var ld=new m,Q=new M,Kk=new m(0,0,0),Lk=new m(1,1,1),Pb=new m,Bf=new m,Da=new m;Object.assign(M.prototype,{isMatrix4:!0,set:function(a,b,c,d,e,f,g,h,l,n,k,p,m,r,q,u){var t=this.elements;t[0]=a;t[4]=b;t[8]=c;t[12]=d;t[1]=e;t[5]=f;t[9]=g;t[13]=h;t[2]=l;t[6]=n;t[10]=k;t[14]=p;t[3]=m;t[7]=r;t[11]=q;t[15]=u;return this},identity:function(){this.set(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1);return this},clone:function(){return(new M).fromArray(this.elements)},
+random:function(){this.x=Math.random();this.y=Math.random();this.z=Math.random();return this}});var ld=new m,Q=new M,Kk=new m(0,0,0),Lk=new m(1,1,1),Pb=new m,Bf=new m,Da=new m;Object.assign(M.prototype,{isMatrix4:!0,set:function(a,b,c,d,e,f,g,h,l,n,k,p,m,t,r,u){var q=this.elements;q[0]=a;q[4]=b;q[8]=c;q[12]=d;q[1]=e;q[5]=f;q[9]=g;q[13]=h;q[2]=l;q[6]=n;q[10]=k;q[14]=p;q[3]=m;q[7]=t;q[11]=r;q[15]=u;return this},identity:function(){this.set(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1);return this},clone:function(){return(new M).fromArray(this.elements)},
 copy:function(a){var b=this.elements;a=a.elements;b[0]=a[0];b[1]=a[1];b[2]=a[2];b[3]=a[3];b[4]=a[4];b[5]=a[5];b[6]=a[6];b[7]=a[7];b[8]=a[8];b[9]=a[9];b[10]=a[10];b[11]=a[11];b[12]=a[12];b[13]=a[13];b[14]=a[14];b[15]=a[15];return this},copyPosition:function(a){var b=this.elements;a=a.elements;b[12]=a[12];b[13]=a[13];b[14]=a[14];return this},extractBasis:function(a,b,c){a.setFromMatrixColumn(this,0);b.setFromMatrixColumn(this,1);c.setFromMatrixColumn(this,2);return this},makeBasis:function(a,b,c){this.set(a.x,
 copy:function(a){var b=this.elements;a=a.elements;b[0]=a[0];b[1]=a[1];b[2]=a[2];b[3]=a[3];b[4]=a[4];b[5]=a[5];b[6]=a[6];b[7]=a[7];b[8]=a[8];b[9]=a[9];b[10]=a[10];b[11]=a[11];b[12]=a[12];b[13]=a[13];b[14]=a[14];b[15]=a[15];return this},copyPosition:function(a){var b=this.elements;a=a.elements;b[12]=a[12];b[13]=a[13];b[14]=a[14];return this},extractBasis:function(a,b,c){a.setFromMatrixColumn(this,0);b.setFromMatrixColumn(this,1);c.setFromMatrixColumn(this,2);return this},makeBasis:function(a,b,c){this.set(a.x,
 b.x,c.x,0,a.y,b.y,c.y,0,a.z,b.z,c.z,0,0,0,0,1);return this},extractRotation:function(a){var b=this.elements,c=a.elements,d=1/ld.setFromMatrixColumn(a,0).length(),e=1/ld.setFromMatrixColumn(a,1).length();a=1/ld.setFromMatrixColumn(a,2).length();b[0]=c[0]*d;b[1]=c[1]*d;b[2]=c[2]*d;b[3]=0;b[4]=c[4]*e;b[5]=c[5]*e;b[6]=c[6]*e;b[7]=0;b[8]=c[8]*a;b[9]=c[9]*a;b[10]=c[10]*a;b[11]=0;b[12]=0;b[13]=0;b[14]=0;b[15]=1;return this},makeRotationFromEuler:function(a){a&&a.isEuler||console.error("THREE.Matrix4: .makeRotationFromEuler() now expects a Euler rotation rather than a Vector3 and order.");
 b.x,c.x,0,a.y,b.y,c.y,0,a.z,b.z,c.z,0,0,0,0,1);return this},extractRotation:function(a){var b=this.elements,c=a.elements,d=1/ld.setFromMatrixColumn(a,0).length(),e=1/ld.setFromMatrixColumn(a,1).length();a=1/ld.setFromMatrixColumn(a,2).length();b[0]=c[0]*d;b[1]=c[1]*d;b[2]=c[2]*d;b[3]=0;b[4]=c[4]*e;b[5]=c[5]*e;b[6]=c[6]*e;b[7]=0;b[8]=c[8]*a;b[9]=c[9]*a;b[10]=c[10]*a;b[11]=0;b[12]=0;b[13]=0;b[14]=0;b[15]=1;return this},makeRotationFromEuler:function(a){a&&a.isEuler||console.error("THREE.Matrix4: .makeRotationFromEuler() now expects a Euler rotation rather than a Vector3 and order.");
 var b=this.elements,c=a.x,d=a.y,e=a.z,f=Math.cos(c);c=Math.sin(c);var g=Math.cos(d);d=Math.sin(d);var h=Math.cos(e);e=Math.sin(e);if("XYZ"===a.order){a=f*h;var l=f*e,n=c*h,k=c*e;b[0]=g*h;b[4]=-g*e;b[8]=d;b[1]=l+n*d;b[5]=a-k*d;b[9]=-c*g;b[2]=k-a*d;b[6]=n+l*d;b[10]=f*g}else"YXZ"===a.order?(a=g*h,l=g*e,n=d*h,k=d*e,b[0]=a+k*c,b[4]=n*c-l,b[8]=f*d,b[1]=f*e,b[5]=f*h,b[9]=-c,b[2]=l*c-n,b[6]=k+a*c,b[10]=f*g):"ZXY"===a.order?(a=g*h,l=g*e,n=d*h,k=d*e,b[0]=a-k*c,b[4]=-f*e,b[8]=n+l*c,b[1]=l+n*c,b[5]=f*h,b[9]=
 var b=this.elements,c=a.x,d=a.y,e=a.z,f=Math.cos(c);c=Math.sin(c);var g=Math.cos(d);d=Math.sin(d);var h=Math.cos(e);e=Math.sin(e);if("XYZ"===a.order){a=f*h;var l=f*e,n=c*h,k=c*e;b[0]=g*h;b[4]=-g*e;b[8]=d;b[1]=l+n*d;b[5]=a-k*d;b[9]=-c*g;b[2]=k-a*d;b[6]=n+l*d;b[10]=f*g}else"YXZ"===a.order?(a=g*h,l=g*e,n=d*h,k=d*e,b[0]=a+k*c,b[4]=n*c-l,b[8]=f*d,b[1]=f*e,b[5]=f*h,b[9]=-c,b[2]=l*c-n,b[6]=k+a*c,b[10]=f*g):"ZXY"===a.order?(a=g*h,l=g*e,n=d*h,k=d*e,b[0]=a-k*c,b[4]=-f*e,b[8]=n+l*c,b[1]=l+n*c,b[5]=f*h,b[9]=
 k-a*c,b[2]=-f*d,b[6]=c,b[10]=f*g):"ZYX"===a.order?(a=f*h,l=f*e,n=c*h,k=c*e,b[0]=g*h,b[4]=n*d-l,b[8]=a*d+k,b[1]=g*e,b[5]=k*d+a,b[9]=l*d-n,b[2]=-d,b[6]=c*g,b[10]=f*g):"YZX"===a.order?(a=f*g,l=f*d,n=c*g,k=c*d,b[0]=g*h,b[4]=k-a*e,b[8]=n*e+l,b[1]=e,b[5]=f*h,b[9]=-c*h,b[2]=-d*h,b[6]=l*e+n,b[10]=a-k*e):"XZY"===a.order&&(a=f*g,l=f*d,n=c*g,k=c*d,b[0]=g*h,b[4]=-e,b[8]=d*h,b[1]=a*e+k,b[5]=f*h,b[9]=l*e-n,b[2]=n*e-l,b[6]=c*h,b[10]=k*e+a);b[3]=0;b[7]=0;b[11]=0;b[12]=0;b[13]=0;b[14]=0;b[15]=1;return this},makeRotationFromQuaternion:function(a){return this.compose(Kk,
 k-a*c,b[2]=-f*d,b[6]=c,b[10]=f*g):"ZYX"===a.order?(a=f*h,l=f*e,n=c*h,k=c*e,b[0]=g*h,b[4]=n*d-l,b[8]=a*d+k,b[1]=g*e,b[5]=k*d+a,b[9]=l*d-n,b[2]=-d,b[6]=c*g,b[10]=f*g):"YZX"===a.order?(a=f*g,l=f*d,n=c*g,k=c*d,b[0]=g*h,b[4]=k-a*e,b[8]=n*e+l,b[1]=e,b[5]=f*h,b[9]=-c*h,b[2]=-d*h,b[6]=l*e+n,b[10]=a-k*e):"XZY"===a.order&&(a=f*g,l=f*d,n=c*g,k=c*d,b[0]=g*h,b[4]=-e,b[8]=d*h,b[1]=a*e+k,b[5]=f*h,b[9]=l*e-n,b[2]=n*e-l,b[6]=c*h,b[10]=k*e+a);b[3]=0;b[7]=0;b[11]=0;b[12]=0;b[13]=0;b[14]=0;b[15]=1;return this},makeRotationFromQuaternion:function(a){return this.compose(Kk,
 a,Lk)},lookAt:function(a,b,c){var d=this.elements;Da.subVectors(a,b);0===Da.lengthSq()&&(Da.z=1);Da.normalize();Pb.crossVectors(c,Da);0===Pb.lengthSq()&&(1===Math.abs(c.z)?Da.x+=1E-4:Da.z+=1E-4,Da.normalize(),Pb.crossVectors(c,Da));Pb.normalize();Bf.crossVectors(Da,Pb);d[0]=Pb.x;d[4]=Bf.x;d[8]=Da.x;d[1]=Pb.y;d[5]=Bf.y;d[9]=Da.y;d[2]=Pb.z;d[6]=Bf.z;d[10]=Da.z;return this},multiply:function(a,b){return void 0!==b?(console.warn("THREE.Matrix4: .multiply() now only accepts one argument. Use .multiplyMatrices( a, b ) instead."),
 a,Lk)},lookAt:function(a,b,c){var d=this.elements;Da.subVectors(a,b);0===Da.lengthSq()&&(Da.z=1);Da.normalize();Pb.crossVectors(c,Da);0===Pb.lengthSq()&&(1===Math.abs(c.z)?Da.x+=1E-4:Da.z+=1E-4,Da.normalize(),Pb.crossVectors(c,Da));Pb.normalize();Bf.crossVectors(Da,Pb);d[0]=Pb.x;d[4]=Bf.x;d[8]=Da.x;d[1]=Pb.y;d[5]=Bf.y;d[9]=Da.y;d[2]=Pb.z;d[6]=Bf.z;d[10]=Da.z;return this},multiply:function(a,b){return void 0!==b?(console.warn("THREE.Matrix4: .multiply() now only accepts one argument. Use .multiplyMatrices( a, b ) instead."),
-this.multiplyMatrices(a,b)):this.multiplyMatrices(this,a)},premultiply:function(a){return this.multiplyMatrices(a,this)},multiplyMatrices:function(a,b){var c=a.elements,d=b.elements;b=this.elements;a=c[0];var e=c[4],f=c[8],g=c[12],h=c[1],l=c[5],n=c[9],k=c[13],p=c[2],m=c[6],r=c[10],q=c[14],u=c[3],A=c[7],w=c[11];c=c[15];var x=d[0],z=d[4],B=d[8],y=d[12],C=d[1],D=d[5],F=d[9],G=d[13],H=d[2],J=d[6],K=d[10],L=d[14],M=d[3],N=d[7],O=d[11];d=d[15];b[0]=a*x+e*C+f*H+g*M;b[4]=a*z+e*D+f*J+g*N;b[8]=a*B+e*F+f*K+
-g*O;b[12]=a*y+e*G+f*L+g*d;b[1]=h*x+l*C+n*H+k*M;b[5]=h*z+l*D+n*J+k*N;b[9]=h*B+l*F+n*K+k*O;b[13]=h*y+l*G+n*L+k*d;b[2]=p*x+m*C+r*H+q*M;b[6]=p*z+m*D+r*J+q*N;b[10]=p*B+m*F+r*K+q*O;b[14]=p*y+m*G+r*L+q*d;b[3]=u*x+A*C+w*H+c*M;b[7]=u*z+A*D+w*J+c*N;b[11]=u*B+A*F+w*K+c*O;b[15]=u*y+A*G+w*L+c*d;return this},multiplyScalar:function(a){var b=this.elements;b[0]*=a;b[4]*=a;b[8]*=a;b[12]*=a;b[1]*=a;b[5]*=a;b[9]*=a;b[13]*=a;b[2]*=a;b[6]*=a;b[10]*=a;b[14]*=a;b[3]*=a;b[7]*=a;b[11]*=a;b[15]*=a;return this},determinant:function(){var a=
-this.elements,b=a[0],c=a[4],d=a[8],e=a[12],f=a[1],g=a[5],h=a[9],l=a[13],n=a[2],k=a[6],p=a[10],m=a[14];return a[3]*(+e*h*k-d*l*k-e*g*p+c*l*p+d*g*m-c*h*m)+a[7]*(+b*h*m-b*l*p+e*f*p-d*f*m+d*l*n-e*h*n)+a[11]*(+b*l*k-b*g*m-e*f*k+c*f*m+e*g*n-c*l*n)+a[15]*(-d*g*n-b*h*k+b*g*p+d*f*k-c*f*p+c*h*n)},transpose:function(){var a=this.elements;var b=a[1];a[1]=a[4];a[4]=b;b=a[2];a[2]=a[8];a[8]=b;b=a[6];a[6]=a[9];a[9]=b;b=a[3];a[3]=a[12];a[12]=b;b=a[7];a[7]=a[13];a[13]=b;b=a[11];a[11]=a[14];a[14]=b;return this},setPosition:function(a,
-b,c){var d=this.elements;a.isVector3?(d[12]=a.x,d[13]=a.y,d[14]=a.z):(d[12]=a,d[13]=b,d[14]=c);return this},getInverse:function(a,b){void 0!==b&&console.warn("THREE.Matrix4: .getInverse() can no longer be configured to throw on degenerate.");b=this.elements;var c=a.elements;a=c[0];var d=c[1],e=c[2],f=c[3],g=c[4],h=c[5],l=c[6],n=c[7],k=c[8],p=c[9],m=c[10],r=c[11],q=c[12],u=c[13],A=c[14];c=c[15];var w=p*A*n-u*m*n+u*l*r-h*A*r-p*l*c+h*m*c,x=q*m*n-k*A*n-q*l*r+g*A*r+k*l*c-g*m*c,z=k*u*n-q*p*n+q*h*r-g*u*
-r-k*h*c+g*p*c,B=q*p*l-k*u*l-q*h*m+g*u*m+k*h*A-g*p*A,y=a*w+d*x+e*z+f*B;if(0===y)return this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);y=1/y;b[0]=w*y;b[1]=(u*m*f-p*A*f-u*e*r+d*A*r+p*e*c-d*m*c)*y;b[2]=(h*A*f-u*l*f+u*e*n-d*A*n-h*e*c+d*l*c)*y;b[3]=(p*l*f-h*m*f-p*e*n+d*m*n+h*e*r-d*l*r)*y;b[4]=x*y;b[5]=(k*A*f-q*m*f+q*e*r-a*A*r-k*e*c+a*m*c)*y;b[6]=(q*l*f-g*A*f-q*e*n+a*A*n+g*e*c-a*l*c)*y;b[7]=(g*m*f-k*l*f+k*e*n-a*m*n-g*e*r+a*l*r)*y;b[8]=z*y;b[9]=(q*p*f-k*u*f-q*d*r+a*u*r+k*d*c-a*p*c)*y;b[10]=(g*u*f-q*h*f+q*d*n-
-a*u*n-g*d*c+a*h*c)*y;b[11]=(k*h*f-g*p*f-k*d*n+a*p*n+g*d*r-a*h*r)*y;b[12]=B*y;b[13]=(k*u*e-q*p*e+q*d*m-a*u*m-k*d*A+a*p*A)*y;b[14]=(q*h*e-g*u*e-q*d*l+a*u*l+g*d*A-a*h*A)*y;b[15]=(g*p*e-k*h*e+k*d*l-a*p*l-g*d*m+a*h*m)*y;return this},scale:function(a){var b=this.elements,c=a.x,d=a.y;a=a.z;b[0]*=c;b[4]*=d;b[8]*=a;b[1]*=c;b[5]*=d;b[9]*=a;b[2]*=c;b[6]*=d;b[10]*=a;b[3]*=c;b[7]*=d;b[11]*=a;return this},getMaxScaleOnAxis:function(){var a=this.elements;return Math.sqrt(Math.max(a[0]*a[0]+a[1]*a[1]+a[2]*a[2],a[4]*
+this.multiplyMatrices(a,b)):this.multiplyMatrices(this,a)},premultiply:function(a){return this.multiplyMatrices(a,this)},multiplyMatrices:function(a,b){var c=a.elements,d=b.elements;b=this.elements;a=c[0];var e=c[4],f=c[8],g=c[12],h=c[1],l=c[5],k=c[9],q=c[13],p=c[2],m=c[6],t=c[10],r=c[14],u=c[3],A=c[7],w=c[11];c=c[15];var x=d[0],z=d[4],B=d[8],y=d[12],C=d[1],D=d[5],F=d[9],G=d[13],H=d[2],J=d[6],K=d[10],L=d[14],M=d[3],N=d[7],O=d[11];d=d[15];b[0]=a*x+e*C+f*H+g*M;b[4]=a*z+e*D+f*J+g*N;b[8]=a*B+e*F+f*K+
+g*O;b[12]=a*y+e*G+f*L+g*d;b[1]=h*x+l*C+k*H+q*M;b[5]=h*z+l*D+k*J+q*N;b[9]=h*B+l*F+k*K+q*O;b[13]=h*y+l*G+k*L+q*d;b[2]=p*x+m*C+t*H+r*M;b[6]=p*z+m*D+t*J+r*N;b[10]=p*B+m*F+t*K+r*O;b[14]=p*y+m*G+t*L+r*d;b[3]=u*x+A*C+w*H+c*M;b[7]=u*z+A*D+w*J+c*N;b[11]=u*B+A*F+w*K+c*O;b[15]=u*y+A*G+w*L+c*d;return this},multiplyScalar:function(a){var b=this.elements;b[0]*=a;b[4]*=a;b[8]*=a;b[12]*=a;b[1]*=a;b[5]*=a;b[9]*=a;b[13]*=a;b[2]*=a;b[6]*=a;b[10]*=a;b[14]*=a;b[3]*=a;b[7]*=a;b[11]*=a;b[15]*=a;return this},determinant:function(){var a=
+this.elements,b=a[0],c=a[4],d=a[8],e=a[12],f=a[1],g=a[5],h=a[9],l=a[13],k=a[2],q=a[6],p=a[10],m=a[14];return a[3]*(+e*h*q-d*l*q-e*g*p+c*l*p+d*g*m-c*h*m)+a[7]*(+b*h*m-b*l*p+e*f*p-d*f*m+d*l*k-e*h*k)+a[11]*(+b*l*q-b*g*m-e*f*q+c*f*m+e*g*k-c*l*k)+a[15]*(-d*g*k-b*h*q+b*g*p+d*f*q-c*f*p+c*h*k)},transpose:function(){var a=this.elements;var b=a[1];a[1]=a[4];a[4]=b;b=a[2];a[2]=a[8];a[8]=b;b=a[6];a[6]=a[9];a[9]=b;b=a[3];a[3]=a[12];a[12]=b;b=a[7];a[7]=a[13];a[13]=b;b=a[11];a[11]=a[14];a[14]=b;return this},setPosition:function(a,
+b,c){var d=this.elements;a.isVector3?(d[12]=a.x,d[13]=a.y,d[14]=a.z):(d[12]=a,d[13]=b,d[14]=c);return this},getInverse:function(a,b){void 0!==b&&console.warn("THREE.Matrix4: .getInverse() can no longer be configured to throw on degenerate.");b=this.elements;var c=a.elements;a=c[0];var d=c[1],e=c[2],f=c[3],g=c[4],h=c[5],l=c[6],k=c[7],q=c[8],p=c[9],m=c[10],t=c[11],r=c[12],u=c[13],A=c[14];c=c[15];var w=p*A*k-u*m*k+u*l*t-h*A*t-p*l*c+h*m*c,x=r*m*k-q*A*k-r*l*t+g*A*t+q*l*c-g*m*c,z=q*u*k-r*p*k+r*h*t-g*u*
+t-q*h*c+g*p*c,B=r*p*l-q*u*l-r*h*m+g*u*m+q*h*A-g*p*A,y=a*w+d*x+e*z+f*B;if(0===y)return this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);y=1/y;b[0]=w*y;b[1]=(u*m*f-p*A*f-u*e*t+d*A*t+p*e*c-d*m*c)*y;b[2]=(h*A*f-u*l*f+u*e*k-d*A*k-h*e*c+d*l*c)*y;b[3]=(p*l*f-h*m*f-p*e*k+d*m*k+h*e*t-d*l*t)*y;b[4]=x*y;b[5]=(q*A*f-r*m*f+r*e*t-a*A*t-q*e*c+a*m*c)*y;b[6]=(r*l*f-g*A*f-r*e*k+a*A*k+g*e*c-a*l*c)*y;b[7]=(g*m*f-q*l*f+q*e*k-a*m*k-g*e*t+a*l*t)*y;b[8]=z*y;b[9]=(r*p*f-q*u*f-r*d*t+a*u*t+q*d*c-a*p*c)*y;b[10]=(g*u*f-r*h*f+r*d*k-
+a*u*k-g*d*c+a*h*c)*y;b[11]=(q*h*f-g*p*f-q*d*k+a*p*k+g*d*t-a*h*t)*y;b[12]=B*y;b[13]=(q*u*e-r*p*e+r*d*m-a*u*m-q*d*A+a*p*A)*y;b[14]=(r*h*e-g*u*e-r*d*l+a*u*l+g*d*A-a*h*A)*y;b[15]=(g*p*e-q*h*e+q*d*l-a*p*l-g*d*m+a*h*m)*y;return this},scale:function(a){var b=this.elements,c=a.x,d=a.y;a=a.z;b[0]*=c;b[4]*=d;b[8]*=a;b[1]*=c;b[5]*=d;b[9]*=a;b[2]*=c;b[6]*=d;b[10]*=a;b[3]*=c;b[7]*=d;b[11]*=a;return this},getMaxScaleOnAxis:function(){var a=this.elements;return Math.sqrt(Math.max(a[0]*a[0]+a[1]*a[1]+a[2]*a[2],a[4]*
 a[4]+a[5]*a[5]+a[6]*a[6],a[8]*a[8]+a[9]*a[9]+a[10]*a[10]))},makeTranslation:function(a,b,c){this.set(1,0,0,a,0,1,0,b,0,0,1,c,0,0,0,1);return this},makeRotationX:function(a){var b=Math.cos(a);a=Math.sin(a);this.set(1,0,0,0,0,b,-a,0,0,a,b,0,0,0,0,1);return this},makeRotationY:function(a){var b=Math.cos(a);a=Math.sin(a);this.set(b,0,a,0,0,1,0,0,-a,0,b,0,0,0,0,1);return this},makeRotationZ:function(a){var b=Math.cos(a);a=Math.sin(a);this.set(b,-a,0,0,a,b,0,0,0,0,1,0,0,0,0,1);return this},makeRotationAxis:function(a,
 a[4]+a[5]*a[5]+a[6]*a[6],a[8]*a[8]+a[9]*a[9]+a[10]*a[10]))},makeTranslation:function(a,b,c){this.set(1,0,0,a,0,1,0,b,0,0,1,c,0,0,0,1);return this},makeRotationX:function(a){var b=Math.cos(a);a=Math.sin(a);this.set(1,0,0,0,0,b,-a,0,0,a,b,0,0,0,0,1);return this},makeRotationY:function(a){var b=Math.cos(a);a=Math.sin(a);this.set(b,0,a,0,0,1,0,0,-a,0,b,0,0,0,0,1);return this},makeRotationZ:function(a){var b=Math.cos(a);a=Math.sin(a);this.set(b,-a,0,0,a,b,0,0,0,0,1,0,0,0,0,1);return this},makeRotationAxis:function(a,
-b){var c=Math.cos(b);b=Math.sin(b);var d=1-c,e=a.x,f=a.y;a=a.z;var g=d*e,h=d*f;this.set(g*e+c,g*f-b*a,g*a+b*f,0,g*f+b*a,h*f+c,h*a-b*e,0,g*a-b*f,h*a+b*e,d*a*a+c,0,0,0,0,1);return this},makeScale:function(a,b,c){this.set(a,0,0,0,0,b,0,0,0,0,c,0,0,0,0,1);return this},makeShear:function(a,b,c){this.set(1,b,c,0,a,1,c,0,a,b,1,0,0,0,0,1);return this},compose:function(a,b,c){var d=this.elements,e=b._x,f=b._y,g=b._z,h=b._w,l=e+e,k=f+f,t=g+g;b=e*l;var p=e*k;e*=t;var m=f*k;f*=t;g*=t;l*=h;k*=h;h*=t;t=c.x;var r=
-c.y;c=c.z;d[0]=(1-(m+g))*t;d[1]=(p+h)*t;d[2]=(e-k)*t;d[3]=0;d[4]=(p-h)*r;d[5]=(1-(b+g))*r;d[6]=(f+l)*r;d[7]=0;d[8]=(e+k)*c;d[9]=(f-l)*c;d[10]=(1-(b+m))*c;d[11]=0;d[12]=a.x;d[13]=a.y;d[14]=a.z;d[15]=1;return this},decompose:function(a,b,c){var d=this.elements,e=ld.set(d[0],d[1],d[2]).length(),f=ld.set(d[4],d[5],d[6]).length(),g=ld.set(d[8],d[9],d[10]).length();0>this.determinant()&&(e=-e);a.x=d[12];a.y=d[13];a.z=d[14];Q.copy(this);a=1/e;d=1/f;var h=1/g;Q.elements[0]*=a;Q.elements[1]*=a;Q.elements[2]*=
+b){var c=Math.cos(b);b=Math.sin(b);var d=1-c,e=a.x,f=a.y;a=a.z;var g=d*e,h=d*f;this.set(g*e+c,g*f-b*a,g*a+b*f,0,g*f+b*a,h*f+c,h*a-b*e,0,g*a-b*f,h*a+b*e,d*a*a+c,0,0,0,0,1);return this},makeScale:function(a,b,c){this.set(a,0,0,0,0,b,0,0,0,0,c,0,0,0,0,1);return this},makeShear:function(a,b,c){this.set(1,b,c,0,a,1,c,0,a,b,1,0,0,0,0,1);return this},compose:function(a,b,c){var d=this.elements,e=b._x,f=b._y,g=b._z,h=b._w,l=e+e,k=f+f,q=g+g;b=e*l;var p=e*k;e*=q;var m=f*k;f*=q;g*=q;l*=h;k*=h;h*=q;q=c.x;var t=
+c.y;c=c.z;d[0]=(1-(m+g))*q;d[1]=(p+h)*q;d[2]=(e-k)*q;d[3]=0;d[4]=(p-h)*t;d[5]=(1-(b+g))*t;d[6]=(f+l)*t;d[7]=0;d[8]=(e+k)*c;d[9]=(f-l)*c;d[10]=(1-(b+m))*c;d[11]=0;d[12]=a.x;d[13]=a.y;d[14]=a.z;d[15]=1;return this},decompose:function(a,b,c){var d=this.elements,e=ld.set(d[0],d[1],d[2]).length(),f=ld.set(d[4],d[5],d[6]).length(),g=ld.set(d[8],d[9],d[10]).length();0>this.determinant()&&(e=-e);a.x=d[12];a.y=d[13];a.z=d[14];Q.copy(this);a=1/e;d=1/f;var h=1/g;Q.elements[0]*=a;Q.elements[1]*=a;Q.elements[2]*=
 a;Q.elements[4]*=d;Q.elements[5]*=d;Q.elements[6]*=d;Q.elements[8]*=h;Q.elements[9]*=h;Q.elements[10]*=h;b.setFromRotationMatrix(Q);c.x=e;c.y=f;c.z=g;return this},makePerspective:function(a,b,c,d,e,f){void 0===f&&console.warn("THREE.Matrix4: .makePerspective() has been redefined and has a new signature. Please check the docs.");var g=this.elements;g[0]=2*e/(b-a);g[4]=0;g[8]=(b+a)/(b-a);g[12]=0;g[1]=0;g[5]=2*e/(c-d);g[9]=(c+d)/(c-d);g[13]=0;g[2]=0;g[6]=0;g[10]=-(f+e)/(f-e);g[14]=-2*f*e/(f-e);g[3]=
 a;Q.elements[4]*=d;Q.elements[5]*=d;Q.elements[6]*=d;Q.elements[8]*=h;Q.elements[9]*=h;Q.elements[10]*=h;b.setFromRotationMatrix(Q);c.x=e;c.y=f;c.z=g;return this},makePerspective:function(a,b,c,d,e,f){void 0===f&&console.warn("THREE.Matrix4: .makePerspective() has been redefined and has a new signature. Please check the docs.");var g=this.elements;g[0]=2*e/(b-a);g[4]=0;g[8]=(b+a)/(b-a);g[12]=0;g[1]=0;g[5]=2*e/(c-d);g[9]=(c+d)/(c-d);g[13]=0;g[2]=0;g[6]=0;g[10]=-(f+e)/(f-e);g[14]=-2*f*e/(f-e);g[3]=
 0;g[7]=0;g[11]=-1;g[15]=0;return this},makeOrthographic:function(a,b,c,d,e,f){var g=this.elements,h=1/(b-a),l=1/(c-d),k=1/(f-e);g[0]=2*h;g[4]=0;g[8]=0;g[12]=-((b+a)*h);g[1]=0;g[5]=2*l;g[9]=0;g[13]=-((c+d)*l);g[2]=0;g[6]=0;g[10]=-2*k;g[14]=-((f+e)*k);g[3]=0;g[7]=0;g[11]=0;g[15]=1;return this},equals:function(a){var b=this.elements;a=a.elements;for(var c=0;16>c;c++)if(b[c]!==a[c])return!1;return!0},fromArray:function(a,b){void 0===b&&(b=0);for(var c=0;16>c;c++)this.elements[c]=a[c+b];return this},toArray:function(a,
 0;g[7]=0;g[11]=-1;g[15]=0;return this},makeOrthographic:function(a,b,c,d,e,f){var g=this.elements,h=1/(b-a),l=1/(c-d),k=1/(f-e);g[0]=2*h;g[4]=0;g[8]=0;g[12]=-((b+a)*h);g[1]=0;g[5]=2*l;g[9]=0;g[13]=-((c+d)*l);g[2]=0;g[6]=0;g[10]=-2*k;g[14]=-((f+e)*k);g[3]=0;g[7]=0;g[11]=0;g[15]=1;return this},equals:function(a){var b=this.elements;a=a.elements;for(var c=0;16>c;c++)if(b[c]!==a[c])return!1;return!0},fromArray:function(a,b){void 0===b&&(b=0);for(var c=0;16>c;c++)this.elements[c]=a[c+b];return this},toArray:function(a,
 b){void 0===a&&(a=[]);void 0===b&&(b=0);var c=this.elements;a[b]=c[0];a[b+1]=c[1];a[b+2]=c[2];a[b+3]=c[3];a[b+4]=c[4];a[b+5]=c[5];a[b+6]=c[6];a[b+7]=c[7];a[b+8]=c[8];a[b+9]=c[9];a[b+10]=c[10];a[b+11]=c[11];a[b+12]=c[12];a[b+13]=c[13];a[b+14]=c[14];a[b+15]=c[15];return a}});var xi=new M,yi=new na;Ub.RotationOrders="XYZ YZX ZXY XZY YXZ ZYX".split(" ");Ub.DefaultOrder="XYZ";Object.defineProperties(Ub.prototype,{x:{get:function(){return this._x},set:function(a){this._x=a;this._onChangeCallback()}},y:{get:function(){return this._y},
 b){void 0===a&&(a=[]);void 0===b&&(b=0);var c=this.elements;a[b]=c[0];a[b+1]=c[1];a[b+2]=c[2];a[b+3]=c[3];a[b+4]=c[4];a[b+5]=c[5];a[b+6]=c[6];a[b+7]=c[7];a[b+8]=c[8];a[b+9]=c[9];a[b+10]=c[10];a[b+11]=c[11];a[b+12]=c[12];a[b+13]=c[13];a[b+14]=c[14];a[b+15]=c[15];return a}});var xi=new M,yi=new na;Ub.RotationOrders="XYZ YZX ZXY XZY YXZ ZYX".split(" ");Ub.DefaultOrder="XYZ";Object.defineProperties(Ub.prototype,{x:{get:function(){return this._x},set:function(a){this._x=a;this._onChangeCallback()}},y:{get:function(){return this._y},
 set:function(a){this._y=a;this._onChangeCallback()}},z:{get:function(){return this._z},set:function(a){this._z=a;this._onChangeCallback()}},order:{get:function(){return this._order},set:function(a){this._order=a;this._onChangeCallback()}}});Object.assign(Ub.prototype,{isEuler:!0,set:function(a,b,c,d){this._x=a;this._y=b;this._z=c;this._order=d||this._order;this._onChangeCallback();return this},clone:function(){return new this.constructor(this._x,this._y,this._z,this._order)},copy:function(a){this._x=
 set:function(a){this._y=a;this._onChangeCallback()}},z:{get:function(){return this._z},set:function(a){this._z=a;this._onChangeCallback()}},order:{get:function(){return this._order},set:function(a){this._order=a;this._onChangeCallback()}}});Object.assign(Ub.prototype,{isEuler:!0,set:function(a,b,c,d){this._x=a;this._y=b;this._z=c;this._order=d||this._order;this._onChangeCallback();return this},clone:function(){return new this.constructor(this._x,this._y,this._z,this._order)},copy:function(a){this._x=
-a._x;this._y=a._y;this._z=a._z;this._order=a._order;this._onChangeCallback();return this},setFromRotationMatrix:function(a,b,c){var d=K.clamp,e=a.elements;a=e[0];var f=e[4],g=e[8],h=e[1],l=e[5],k=e[9],t=e[2],p=e[6];e=e[10];b=b||this._order;switch(b){case "XYZ":this._y=Math.asin(d(g,-1,1));.9999999>Math.abs(g)?(this._x=Math.atan2(-k,e),this._z=Math.atan2(-f,a)):(this._x=Math.atan2(p,l),this._z=0);break;case "YXZ":this._x=Math.asin(-d(k,-1,1));.9999999>Math.abs(k)?(this._y=Math.atan2(g,e),this._z=Math.atan2(h,
-l)):(this._y=Math.atan2(-t,a),this._z=0);break;case "ZXY":this._x=Math.asin(d(p,-1,1));.9999999>Math.abs(p)?(this._y=Math.atan2(-t,e),this._z=Math.atan2(-f,l)):(this._y=0,this._z=Math.atan2(h,a));break;case "ZYX":this._y=Math.asin(-d(t,-1,1));.9999999>Math.abs(t)?(this._x=Math.atan2(p,e),this._z=Math.atan2(h,a)):(this._x=0,this._z=Math.atan2(-f,l));break;case "YZX":this._z=Math.asin(d(h,-1,1));.9999999>Math.abs(h)?(this._x=Math.atan2(-k,l),this._y=Math.atan2(-t,a)):(this._x=0,this._y=Math.atan2(g,
+a._x;this._y=a._y;this._z=a._z;this._order=a._order;this._onChangeCallback();return this},setFromRotationMatrix:function(a,b,c){var d=K.clamp,e=a.elements;a=e[0];var f=e[4],g=e[8],h=e[1],l=e[5],k=e[9],q=e[2],p=e[6];e=e[10];b=b||this._order;switch(b){case "XYZ":this._y=Math.asin(d(g,-1,1));.9999999>Math.abs(g)?(this._x=Math.atan2(-k,e),this._z=Math.atan2(-f,a)):(this._x=Math.atan2(p,l),this._z=0);break;case "YXZ":this._x=Math.asin(-d(k,-1,1));.9999999>Math.abs(k)?(this._y=Math.atan2(g,e),this._z=Math.atan2(h,
+l)):(this._y=Math.atan2(-q,a),this._z=0);break;case "ZXY":this._x=Math.asin(d(p,-1,1));.9999999>Math.abs(p)?(this._y=Math.atan2(-q,e),this._z=Math.atan2(-f,l)):(this._y=0,this._z=Math.atan2(h,a));break;case "ZYX":this._y=Math.asin(-d(q,-1,1));.9999999>Math.abs(q)?(this._x=Math.atan2(p,e),this._z=Math.atan2(h,a)):(this._x=0,this._z=Math.atan2(-f,l));break;case "YZX":this._z=Math.asin(d(h,-1,1));.9999999>Math.abs(h)?(this._x=Math.atan2(-k,l),this._y=Math.atan2(-q,a)):(this._x=0,this._y=Math.atan2(g,
 e));break;case "XZY":this._z=Math.asin(-d(f,-1,1));.9999999>Math.abs(f)?(this._x=Math.atan2(p,l),this._y=Math.atan2(g,a)):(this._x=Math.atan2(-k,e),this._y=0);break;default:console.warn("THREE.Euler: .setFromRotationMatrix() encountered an unknown order: "+b)}this._order=b;!1!==c&&this._onChangeCallback();return this},setFromQuaternion:function(a,b,c){xi.makeRotationFromQuaternion(a);return this.setFromRotationMatrix(xi,b,c)},setFromVector3:function(a,b){return this.set(a.x,a.y,a.z,b||this._order)},
 e));break;case "XZY":this._z=Math.asin(-d(f,-1,1));.9999999>Math.abs(f)?(this._x=Math.atan2(p,l),this._y=Math.atan2(g,a)):(this._x=Math.atan2(-k,e),this._y=0);break;default:console.warn("THREE.Euler: .setFromRotationMatrix() encountered an unknown order: "+b)}this._order=b;!1!==c&&this._onChangeCallback();return this},setFromQuaternion:function(a,b,c){xi.makeRotationFromQuaternion(a);return this.setFromRotationMatrix(xi,b,c)},setFromVector3:function(a,b){return this.set(a.x,a.y,a.z,b||this._order)},
 reorder:function(a){yi.setFromEuler(this);return this.setFromQuaternion(yi,a)},equals:function(a){return a._x===this._x&&a._y===this._y&&a._z===this._z&&a._order===this._order},fromArray:function(a){this._x=a[0];this._y=a[1];this._z=a[2];void 0!==a[3]&&(this._order=a[3]);this._onChangeCallback();return this},toArray:function(a,b){void 0===a&&(a=[]);void 0===b&&(b=0);a[b]=this._x;a[b+1]=this._y;a[b+2]=this._z;a[b+3]=this._order;return a},toVector3:function(a){return a?a.set(this._x,this._y,this._z):
 reorder:function(a){yi.setFromEuler(this);return this.setFromQuaternion(yi,a)},equals:function(a){return a._x===this._x&&a._y===this._y&&a._z===this._z&&a._order===this._order},fromArray:function(a){this._x=a[0];this._y=a[1];this._z=a[2];void 0!==a[3]&&(this._order=a[3]);this._onChangeCallback();return this},toArray:function(a,b){void 0===a&&(a=[]);void 0===b&&(b=0);a[b]=this._x;a[b+1]=this._y;a[b+2]=this._z;a[b+3]=this._order;return a},toVector3:function(a){return a?a.set(this._x,this._y,this._z):
 new m(this._x,this._y,this._z)},_onChange:function(a){this._onChangeCallback=a;return this},_onChangeCallback:function(){}});Object.assign(Fe.prototype,{set:function(a){this.mask=1<<a|0},enable:function(a){this.mask=this.mask|1<<a|0},enableAll:function(){this.mask=-1},toggle:function(a){this.mask^=1<<a|0},disable:function(a){this.mask&=~(1<<a|0)},disableAll:function(){this.mask=0},test:function(a){return 0!==(this.mask&a.mask)}});var ij=0,zi=new m,md=new na,xb=new M,Cf=new m,ve=new m,Mk=new m,Nk=
 new m(this._x,this._y,this._z)},_onChange:function(a){this._onChangeCallback=a;return this},_onChangeCallback:function(){}});Object.assign(Fe.prototype,{set:function(a){this.mask=1<<a|0},enable:function(a){this.mask=this.mask|1<<a|0},enableAll:function(){this.mask=-1},toggle:function(a){this.mask^=1<<a|0},disable:function(a){this.mask&=~(1<<a|0)},disableAll:function(){this.mask=0},test:function(a){return 0!==(this.mask&a.mask)}});var ij=0,zi=new m,md=new na,xb=new M,Cf=new m,ve=new m,Mk=new m,Nk=
@@ -449,8 +449,8 @@ traverseAncestors:function(a){var b=this.parent;null!==b&&(a(b),b.traverseAncest
 0<g.length&&(e.materials=g);0<h.length&&(e.textures=h);0<l.length&&(e.images=l);0<k.length&&(e.shapes=k)}e.object=f;return e},clone:function(a){return(new this.constructor).copy(this,a)},copy:function(a,b){void 0===b&&(b=!0);this.name=a.name;this.up.copy(a.up);this.position.copy(a.position);this.quaternion.copy(a.quaternion);this.scale.copy(a.scale);this.matrix.copy(a.matrix);this.matrixWorld.copy(a.matrixWorld);this.matrixAutoUpdate=a.matrixAutoUpdate;this.matrixWorldNeedsUpdate=a.matrixWorldNeedsUpdate;
 0<g.length&&(e.materials=g);0<h.length&&(e.textures=h);0<l.length&&(e.images=l);0<k.length&&(e.shapes=k)}e.object=f;return e},clone:function(a){return(new this.constructor).copy(this,a)},copy:function(a,b){void 0===b&&(b=!0);this.name=a.name;this.up.copy(a.up);this.position.copy(a.position);this.quaternion.copy(a.quaternion);this.scale.copy(a.scale);this.matrix.copy(a.matrix);this.matrixWorld.copy(a.matrixWorld);this.matrixAutoUpdate=a.matrixAutoUpdate;this.matrixWorldNeedsUpdate=a.matrixWorldNeedsUpdate;
 this.layers.mask=a.layers.mask;this.visible=a.visible;this.castShadow=a.castShadow;this.receiveShadow=a.receiveShadow;this.frustumCulled=a.frustumCulled;this.renderOrder=a.renderOrder;this.userData=JSON.parse(JSON.stringify(a.userData));if(!0===b)for(b=0;b<a.children.length;b++)this.add(a.children[b].clone());return this}});xd.prototype=Object.assign(Object.create(z.prototype),{constructor:xd,isScene:!0,copy:function(a,b){z.prototype.copy.call(this,a,b);null!==a.background&&(this.background=a.background.clone());
 this.layers.mask=a.layers.mask;this.visible=a.visible;this.castShadow=a.castShadow;this.receiveShadow=a.receiveShadow;this.frustumCulled=a.frustumCulled;this.renderOrder=a.renderOrder;this.userData=JSON.parse(JSON.stringify(a.userData));if(!0===b)for(b=0;b<a.children.length;b++)this.add(a.children[b].clone());return this}});xd.prototype=Object.assign(Object.create(z.prototype),{constructor:xd,isScene:!0,copy:function(a,b){z.prototype.copy.call(this,a,b);null!==a.background&&(this.background=a.background.clone());
 null!==a.environment&&(this.environment=a.environment.clone());null!==a.fog&&(this.fog=a.fog.clone());null!==a.overrideMaterial&&(this.overrideMaterial=a.overrideMaterial.clone());this.autoUpdate=a.autoUpdate;this.matrixAutoUpdate=a.matrixAutoUpdate;return this},toJSON:function(a){var b=z.prototype.toJSON.call(this,a);null!==this.background&&(b.object.background=this.background.toJSON(a));null!==this.environment&&(b.object.environment=this.environment.toJSON(a));null!==this.fog&&(b.object.fog=this.fog.toJSON());
 null!==a.environment&&(this.environment=a.environment.clone());null!==a.fog&&(this.fog=a.fog.clone());null!==a.overrideMaterial&&(this.overrideMaterial=a.overrideMaterial.clone());this.autoUpdate=a.autoUpdate;this.matrixAutoUpdate=a.matrixAutoUpdate;return this},toJSON:function(a){var b=z.prototype.toJSON.call(this,a);null!==this.background&&(b.object.background=this.background.toJSON(a));null!==this.environment&&(b.object.environment=this.environment.toJSON(a));null!==this.fog&&(b.object.fog=this.fog.toJSON());
-return b},dispose:function(){this.dispatchEvent({type:"dispose"})}});var yb=[new m,new m,new m,new m,new m,new m,new m,new m],we=new m,Zg=new Ta,nd=new m,od=new m,pd=new m,Qb=new m,Rb=new m,qc=new m,xe=new m,Df=new m,Ef=new m,Vb=new m;Object.assign(Ta.prototype,{isBox3:!0,set:function(a,b){this.min.copy(a);this.max.copy(b);return this},setFromArray:function(a){for(var b=Infinity,c=Infinity,d=Infinity,e=-Infinity,f=-Infinity,g=-Infinity,h=0,l=a.length;h<l;h+=3){var k=a[h],m=a[h+1],p=a[h+2];k<b&&(b=
-k);m<c&&(c=m);p<d&&(d=p);k>e&&(e=k);m>f&&(f=m);p>g&&(g=p)}this.min.set(b,c,d);this.max.set(e,f,g);return this},setFromBufferAttribute:function(a){for(var b=Infinity,c=Infinity,d=Infinity,e=-Infinity,f=-Infinity,g=-Infinity,h=0,l=a.count;h<l;h++){var k=a.getX(h),m=a.getY(h),p=a.getZ(h);k<b&&(b=k);m<c&&(c=m);p<d&&(d=p);k>e&&(e=k);m>f&&(f=m);p>g&&(g=p)}this.min.set(b,c,d);this.max.set(e,f,g);return this},setFromPoints:function(a){this.makeEmpty();for(var b=0,c=a.length;b<c;b++)this.expandByPoint(a[b]);
+return b},dispose:function(){this.dispatchEvent({type:"dispose"})}});var yb=[new m,new m,new m,new m,new m,new m,new m,new m],we=new m,Zg=new Ta,nd=new m,od=new m,pd=new m,Qb=new m,Rb=new m,qc=new m,xe=new m,Df=new m,Ef=new m,Vb=new m;Object.assign(Ta.prototype,{isBox3:!0,set:function(a,b){this.min.copy(a);this.max.copy(b);return this},setFromArray:function(a){for(var b=Infinity,c=Infinity,d=Infinity,e=-Infinity,f=-Infinity,g=-Infinity,h=0,l=a.length;h<l;h+=3){var k=a[h],q=a[h+1],p=a[h+2];k<b&&(b=
+k);q<c&&(c=q);p<d&&(d=p);k>e&&(e=k);q>f&&(f=q);p>g&&(g=p)}this.min.set(b,c,d);this.max.set(e,f,g);return this},setFromBufferAttribute:function(a){for(var b=Infinity,c=Infinity,d=Infinity,e=-Infinity,f=-Infinity,g=-Infinity,h=0,l=a.count;h<l;h++){var k=a.getX(h),q=a.getY(h),p=a.getZ(h);k<b&&(b=k);q<c&&(c=q);p<d&&(d=p);k>e&&(e=k);q>f&&(f=q);p>g&&(g=p)}this.min.set(b,c,d);this.max.set(e,f,g);return this},setFromPoints:function(a){this.makeEmpty();for(var b=0,c=a.length;b<c;b++)this.expandByPoint(a[b]);
 return this},setFromCenterAndSize:function(a,b){b=we.copy(b).multiplyScalar(.5);this.min.copy(a).sub(b);this.max.copy(a).add(b);return this},setFromObject:function(a){this.makeEmpty();return this.expandByObject(a)},clone:function(){return(new this.constructor).copy(this)},copy:function(a){this.min.copy(a.min);this.max.copy(a.max);return this},makeEmpty:function(){this.min.x=this.min.y=this.min.z=Infinity;this.max.x=this.max.y=this.max.z=-Infinity;return this},isEmpty:function(){return this.max.x<
 return this},setFromCenterAndSize:function(a,b){b=we.copy(b).multiplyScalar(.5);this.min.copy(a).sub(b);this.max.copy(a).add(b);return this},setFromObject:function(a){this.makeEmpty();return this.expandByObject(a)},clone:function(){return(new this.constructor).copy(this)},copy:function(a){this.min.copy(a.min);this.max.copy(a.max);return this},makeEmpty:function(){this.min.x=this.min.y=this.min.z=Infinity;this.max.x=this.max.y=this.max.z=-Infinity;return this},isEmpty:function(){return this.max.x<
 this.min.x||this.max.y<this.min.y||this.max.z<this.min.z},getCenter:function(a){void 0===a&&(console.warn("THREE.Box3: .getCenter() target is now required"),a=new m);return this.isEmpty()?a.set(0,0,0):a.addVectors(this.min,this.max).multiplyScalar(.5)},getSize:function(a){void 0===a&&(console.warn("THREE.Box3: .getSize() target is now required"),a=new m);return this.isEmpty()?a.set(0,0,0):a.subVectors(this.max,this.min)},expandByPoint:function(a){this.min.min(a);this.max.max(a);return this},expandByVector:function(a){this.min.sub(a);
 this.min.x||this.max.y<this.min.y||this.max.z<this.min.z},getCenter:function(a){void 0===a&&(console.warn("THREE.Box3: .getCenter() target is now required"),a=new m);return this.isEmpty()?a.set(0,0,0):a.addVectors(this.min,this.max).multiplyScalar(.5)},getSize:function(a){void 0===a&&(console.warn("THREE.Box3: .getSize() target is now required"),a=new m);return this.isEmpty()?a.set(0,0,0):a.subVectors(this.max,this.min)},expandByPoint:function(a){this.min.min(a);this.max.max(a);return this},expandByVector:function(a){this.min.sub(a);
 this.max.add(a);return this},expandByScalar:function(a){this.min.addScalar(-a);this.max.addScalar(a);return this},expandByObject:function(a){a.updateWorldMatrix(!1,!1);var b=a.geometry;void 0!==b&&(null===b.boundingBox&&b.computeBoundingBox(),Zg.copy(b.boundingBox),Zg.applyMatrix4(a.matrixWorld),this.union(Zg));a=a.children;b=0;for(var c=a.length;b<c;b++)this.expandByObject(a[b]);return this},containsPoint:function(a){return a.x<this.min.x||a.x>this.max.x||a.y<this.min.y||a.y>this.max.y||a.z<this.min.z||
 this.max.add(a);return this},expandByScalar:function(a){this.min.addScalar(-a);this.max.addScalar(a);return this},expandByObject:function(a){a.updateWorldMatrix(!1,!1);var b=a.geometry;void 0!==b&&(null===b.boundingBox&&b.computeBoundingBox(),Zg.copy(b.boundingBox),Zg.applyMatrix4(a.matrixWorld),this.union(Zg));a=a.children;b=0;for(var c=a.length;b<c;b++)this.expandByObject(a[b]);return this},containsPoint:function(a){return a.x<this.min.x||a.x>this.max.x||a.y<this.min.y||a.y>this.max.y||a.z<this.min.z||
@@ -466,7 +466,7 @@ b=new m);b.copy(a);c>this.radius*this.radius&&(b.sub(this.center).normalize(),b.
 return this},equals:function(a){return a.center.equals(this.center)&&a.radius===this.radius}});var zb=new m,$g=new m,Ff=new m,Sb=new m,ah=new m,Gf=new m,bh=new m;Object.assign(Wb.prototype,{set:function(a,b){this.origin.copy(a);this.direction.copy(b);return this},clone:function(){return(new this.constructor).copy(this)},copy:function(a){this.origin.copy(a.origin);this.direction.copy(a.direction);return this},at:function(a,b){void 0===b&&(console.warn("THREE.Ray: .at() target is now required"),b=new m);
 return this},equals:function(a){return a.center.equals(this.center)&&a.radius===this.radius}});var zb=new m,$g=new m,Ff=new m,Sb=new m,ah=new m,Gf=new m,bh=new m;Object.assign(Wb.prototype,{set:function(a,b){this.origin.copy(a);this.direction.copy(b);return this},clone:function(){return(new this.constructor).copy(this)},copy:function(a){this.origin.copy(a.origin);this.direction.copy(a.direction);return this},at:function(a,b){void 0===b&&(console.warn("THREE.Ray: .at() target is now required"),b=new m);
 return b.copy(this.direction).multiplyScalar(a).add(this.origin)},lookAt:function(a){this.direction.copy(a).sub(this.origin).normalize();return this},recast:function(a){this.origin.copy(this.at(a,zb));return this},closestPointToPoint:function(a,b){void 0===b&&(console.warn("THREE.Ray: .closestPointToPoint() target is now required"),b=new m);b.subVectors(a,this.origin);a=b.dot(this.direction);return 0>a?b.copy(this.origin):b.copy(this.direction).multiplyScalar(a).add(this.origin)},distanceToPoint:function(a){return Math.sqrt(this.distanceSqToPoint(a))},
 return b.copy(this.direction).multiplyScalar(a).add(this.origin)},lookAt:function(a){this.direction.copy(a).sub(this.origin).normalize();return this},recast:function(a){this.origin.copy(this.at(a,zb));return this},closestPointToPoint:function(a,b){void 0===b&&(console.warn("THREE.Ray: .closestPointToPoint() target is now required"),b=new m);b.subVectors(a,this.origin);a=b.dot(this.direction);return 0>a?b.copy(this.origin):b.copy(this.direction).multiplyScalar(a).add(this.origin)},distanceToPoint:function(a){return Math.sqrt(this.distanceSqToPoint(a))},
 distanceSqToPoint:function(a){var b=zb.subVectors(a,this.origin).dot(this.direction);if(0>b)return this.origin.distanceToSquared(a);zb.copy(this.direction).multiplyScalar(b).add(this.origin);return zb.distanceToSquared(a)},distanceSqToSegment:function(a,b,c,d){$g.copy(a).add(b).multiplyScalar(.5);Ff.copy(b).sub(a).normalize();Sb.copy(this.origin).sub($g);var e=.5*a.distanceTo(b),f=-this.direction.dot(Ff),g=Sb.dot(this.direction),h=-Sb.dot(Ff),l=Sb.lengthSq(),k=Math.abs(1-f*f);if(0<k){a=f*h-g;b=f*
 distanceSqToPoint:function(a){var b=zb.subVectors(a,this.origin).dot(this.direction);if(0>b)return this.origin.distanceToSquared(a);zb.copy(this.direction).multiplyScalar(b).add(this.origin);return zb.distanceToSquared(a)},distanceSqToSegment:function(a,b,c,d){$g.copy(a).add(b).multiplyScalar(.5);Ff.copy(b).sub(a).normalize();Sb.copy(this.origin).sub($g);var e=.5*a.distanceTo(b),f=-this.direction.dot(Ff),g=Sb.dot(this.direction),h=-Sb.dot(Ff),l=Sb.lengthSq(),k=Math.abs(1-f*f);if(0<k){a=f*h-g;b=f*
-g-h;var m=e*k;0<=a?b>=-m?b<=m?(e=1/k,a*=e,b*=e,f=a*(a+f*b+2*g)+b*(f*a+b+2*h)+l):(b=e,a=Math.max(0,-(f*b+g)),f=-a*a+b*(b+2*h)+l):(b=-e,a=Math.max(0,-(f*b+g)),f=-a*a+b*(b+2*h)+l):b<=-m?(a=Math.max(0,-(-f*e+g)),b=0<a?-e:Math.min(Math.max(-e,-h),e),f=-a*a+b*(b+2*h)+l):b<=m?(a=0,b=Math.min(Math.max(-e,-h),e),f=b*(b+2*h)+l):(a=Math.max(0,-(f*e+g)),b=0<a?e:Math.min(Math.max(-e,-h),e),f=-a*a+b*(b+2*h)+l)}else b=0<f?-e:e,a=Math.max(0,-(f*b+g)),f=-a*a+b*(b+2*h)+l;c&&c.copy(this.direction).multiplyScalar(a).add(this.origin);
+g-h;var q=e*k;0<=a?b>=-q?b<=q?(e=1/k,a*=e,b*=e,f=a*(a+f*b+2*g)+b*(f*a+b+2*h)+l):(b=e,a=Math.max(0,-(f*b+g)),f=-a*a+b*(b+2*h)+l):(b=-e,a=Math.max(0,-(f*b+g)),f=-a*a+b*(b+2*h)+l):b<=-q?(a=Math.max(0,-(-f*e+g)),b=0<a?-e:Math.min(Math.max(-e,-h),e),f=-a*a+b*(b+2*h)+l):b<=q?(a=0,b=Math.min(Math.max(-e,-h),e),f=b*(b+2*h)+l):(a=Math.max(0,-(f*e+g)),b=0<a?e:Math.min(Math.max(-e,-h),e),f=-a*a+b*(b+2*h)+l)}else b=0<f?-e:e,a=Math.max(0,-(f*b+g)),f=-a*a+b*(b+2*h)+l;c&&c.copy(this.direction).multiplyScalar(a).add(this.origin);
 d&&d.copy(Ff).multiplyScalar(b).add($g);return f},intersectSphere:function(a,b){zb.subVectors(a.center,this.origin);var c=zb.dot(this.direction),d=zb.dot(zb)-c*c;a=a.radius*a.radius;if(d>a)return null;a=Math.sqrt(a-d);d=c-a;c+=a;return 0>d&&0>c?null:0>d?this.at(c,b):this.at(d,b)},intersectsSphere:function(a){return this.distanceSqToPoint(a.center)<=a.radius*a.radius},distanceToPlane:function(a){var b=a.normal.dot(this.direction);if(0===b)return 0===a.distanceToPoint(this.origin)?0:null;a=-(this.origin.dot(a.normal)+
 d&&d.copy(Ff).multiplyScalar(b).add($g);return f},intersectSphere:function(a,b){zb.subVectors(a.center,this.origin);var c=zb.dot(this.direction),d=zb.dot(zb)-c*c;a=a.radius*a.radius;if(d>a)return null;a=Math.sqrt(a-d);d=c-a;c+=a;return 0>d&&0>c?null:0>d?this.at(c,b):this.at(d,b)},intersectsSphere:function(a){return this.distanceSqToPoint(a.center)<=a.radius*a.radius},distanceToPlane:function(a){var b=a.normal.dot(this.direction);if(0===b)return 0===a.distanceToPoint(this.origin)?0:null;a=-(this.origin.dot(a.normal)+
 a.constant)/b;return 0<=a?a:null},intersectPlane:function(a,b){a=this.distanceToPlane(a);return null===a?null:this.at(a,b)},intersectsPlane:function(a){var b=a.distanceToPoint(this.origin);return 0===b||0>a.normal.dot(this.direction)*b?!0:!1},intersectBox:function(a,b){var c=1/this.direction.x;var d=1/this.direction.y;var e=1/this.direction.z,f=this.origin;if(0<=c){var g=(a.min.x-f.x)*c;c*=a.max.x-f.x}else g=(a.max.x-f.x)*c,c*=a.min.x-f.x;if(0<=d){var h=(a.min.y-f.y)*d;d*=a.max.y-f.y}else h=(a.max.y-
 a.constant)/b;return 0<=a?a:null},intersectPlane:function(a,b){a=this.distanceToPlane(a);return null===a?null:this.at(a,b)},intersectsPlane:function(a){var b=a.distanceToPoint(this.origin);return 0===b||0>a.normal.dot(this.direction)*b?!0:!1},intersectBox:function(a,b){var c=1/this.direction.x;var d=1/this.direction.y;var e=1/this.direction.z,f=this.origin;if(0<=c){var g=(a.min.x-f.x)*c;c*=a.max.x-f.x}else g=(a.max.x-f.x)*c,c*=a.min.x-f.x;if(0<=d){var h=(a.min.y-f.y)*d;d*=a.max.y-f.y}else h=(a.max.y-
 f.y)*d,d*=a.min.y-f.y;if(g>d||h>c)return null;if(h>g||g!==g)g=h;if(d<c||c!==c)c=d;0<=e?(h=(a.min.z-f.z)*e,a=(a.max.z-f.z)*e):(h=(a.max.z-f.z)*e,a=(a.min.z-f.z)*e);if(g>a||h>c)return null;if(h>g||g!==g)g=h;if(a<c||c!==c)c=a;return 0>c?null:this.at(0<=g?g:c,b)},intersectsBox:function(a){return null!==this.intersectBox(a,zb)},intersectTriangle:function(a,b,c,d,e){ah.subVectors(b,a);Gf.subVectors(c,a);bh.crossVectors(ah,Gf);b=this.direction.dot(bh);if(0<b){if(d)return null;d=1}else if(0>b)d=-1,b=-b;else return null;
 f.y)*d,d*=a.min.y-f.y;if(g>d||h>c)return null;if(h>g||g!==g)g=h;if(d<c||c!==c)c=d;0<=e?(h=(a.min.z-f.z)*e,a=(a.max.z-f.z)*e):(h=(a.max.z-f.z)*e,a=(a.min.z-f.z)*e);if(g>a||h>c)return null;if(h>g||g!==g)g=h;if(a<c||c!==c)c=a;return 0>c?null:this.at(0<=g?g:c,b)},intersectsBox:function(a){return null!==this.intersectBox(a,zb)},intersectTriangle:function(a,b,c,d,e){ah.subVectors(b,a);Gf.subVectors(c,a);bh.crossVectors(ah,Gf);b=this.direction.dot(bh);if(0<b){if(d)return null;d=1}else if(0>b)d=-1,b=-b;else return null;
@@ -480,7 +480,7 @@ var f=Ab.dot(Ab);d=Ab.dot(dh);var g=a*f-b*b;void 0===e&&(console.warn("THREE.Tri
 b,c,d){cb.subVectors(c,b);Ab.subVectors(a,b);return 0>cb.cross(Ab).dot(d)?!0:!1}});Object.assign(wa.prototype,{set:function(a,b,c){this.a.copy(a);this.b.copy(b);this.c.copy(c);return this},setFromPointsAndIndices:function(a,b,c,d){this.a.copy(a[b]);this.b.copy(a[c]);this.c.copy(a[d]);return this},clone:function(){return(new this.constructor).copy(this)},copy:function(a){this.a.copy(a.a);this.b.copy(a.b);this.c.copy(a.c);return this},getArea:function(){cb.subVectors(this.c,this.b);Ab.subVectors(this.a,
 b,c,d){cb.subVectors(c,b);Ab.subVectors(a,b);return 0>cb.cross(Ab).dot(d)?!0:!1}});Object.assign(wa.prototype,{set:function(a,b,c){this.a.copy(a);this.b.copy(b);this.c.copy(c);return this},setFromPointsAndIndices:function(a,b,c,d){this.a.copy(a[b]);this.b.copy(a[c]);this.c.copy(a[d]);return this},clone:function(){return(new this.constructor).copy(this)},copy:function(a){this.a.copy(a.a);this.b.copy(a.b);this.c.copy(a.c);return this},getArea:function(){cb.subVectors(this.c,this.b);Ab.subVectors(this.a,
 this.b);return.5*cb.cross(Ab).length()},getMidpoint:function(a){void 0===a&&(console.warn("THREE.Triangle: .getMidpoint() target is now required"),a=new m);return a.addVectors(this.a,this.b).add(this.c).multiplyScalar(1/3)},getNormal:function(a){return wa.getNormal(this.a,this.b,this.c,a)},getPlane:function(a){void 0===a&&(console.warn("THREE.Triangle: .getPlane() target is now required"),a=new Ua);return a.setFromCoplanarPoints(this.a,this.b,this.c)},getBarycoord:function(a,b){return wa.getBarycoord(a,
 this.b);return.5*cb.cross(Ab).length()},getMidpoint:function(a){void 0===a&&(console.warn("THREE.Triangle: .getMidpoint() target is now required"),a=new m);return a.addVectors(this.a,this.b).add(this.c).multiplyScalar(1/3)},getNormal:function(a){return wa.getNormal(this.a,this.b,this.c,a)},getPlane:function(a){void 0===a&&(console.warn("THREE.Triangle: .getPlane() target is now required"),a=new Ua);return a.setFromCoplanarPoints(this.a,this.b,this.c)},getBarycoord:function(a,b){return wa.getBarycoord(a,
 this.a,this.b,this.c,b)},getUV:function(a,b,c,d,e){return wa.getUV(a,this.a,this.b,this.c,b,c,d,e)},containsPoint:function(a){return wa.containsPoint(a,this.a,this.b,this.c)},isFrontFacing:function(a){return wa.isFrontFacing(this.a,this.b,this.c,a)},intersectsBox:function(a){return a.intersectsTriangle(this)},closestPointToPoint:function(a,b){void 0===b&&(console.warn("THREE.Triangle: .closestPointToPoint() target is now required"),b=new m);var c=this.a,d=this.b,e=this.c;qd.subVectors(d,c);rd.subVectors(e,
 this.a,this.b,this.c,b)},getUV:function(a,b,c,d,e){return wa.getUV(a,this.a,this.b,this.c,b,c,d,e)},containsPoint:function(a){return wa.containsPoint(a,this.a,this.b,this.c)},isFrontFacing:function(a){return wa.isFrontFacing(this.a,this.b,this.c,a)},intersectsBox:function(a){return a.intersectsTriangle(this)},closestPointToPoint:function(a,b){void 0===b&&(console.warn("THREE.Triangle: .closestPointToPoint() target is now required"),b=new m);var c=this.a,d=this.b,e=this.c;qd.subVectors(d,c);rd.subVectors(e,
-c);eh.subVectors(a,c);var f=qd.dot(eh),g=rd.dot(eh);if(0>=f&&0>=g)return b.copy(c);fh.subVectors(a,d);var h=qd.dot(fh),l=rd.dot(fh);if(0<=h&&l<=h)return b.copy(d);var k=f*l-h*g;if(0>=k&&0<=f&&0>=h)return d=f/(f-h),b.copy(c).addScaledVector(qd,d);gh.subVectors(a,e);a=qd.dot(gh);var t=rd.dot(gh);if(0<=t&&a<=t)return b.copy(e);f=a*g-f*t;if(0>=f&&0<=g&&0>=t)return k=g/(g-t),b.copy(c).addScaledVector(rd,k);g=h*t-a*l;if(0>=g&&0<=l-h&&0<=a-t)return Di.subVectors(e,d),k=(l-h)/(l-h+(a-t)),b.copy(d).addScaledVector(Di,
+c);eh.subVectors(a,c);var f=qd.dot(eh),g=rd.dot(eh);if(0>=f&&0>=g)return b.copy(c);fh.subVectors(a,d);var h=qd.dot(fh),l=rd.dot(fh);if(0<=h&&l<=h)return b.copy(d);var k=f*l-h*g;if(0>=k&&0<=f&&0>=h)return d=f/(f-h),b.copy(c).addScaledVector(qd,d);gh.subVectors(a,e);a=qd.dot(gh);var q=rd.dot(gh);if(0<=q&&a<=q)return b.copy(e);f=a*g-f*q;if(0>=f&&0<=g&&0>=q)return k=g/(g-q),b.copy(c).addScaledVector(rd,k);g=h*q-a*l;if(0>=g&&0<=l-h&&0<=a-q)return Di.subVectors(e,d),k=(l-h)/(l-h+(a-q)),b.copy(d).addScaledVector(Di,
 k);e=1/(g+f+k);d=f*e;k*=e;return b.copy(c).addScaledVector(qd,d).addScaledVector(rd,k)},equals:function(a){return a.a.equals(this.a)&&a.b.equals(this.b)&&a.c.equals(this.c)}});var Ei={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,
 k);e=1/(g+f+k);d=f*e;k*=e;return b.copy(c).addScaledVector(qd,d).addScaledVector(rd,k)},equals:function(a){return a.a.equals(this.a)&&a.b.equals(this.b)&&a.c.equals(this.c)}});var Ei={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,
 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,
 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,
@@ -522,9 +522,9 @@ this.setXYZ(b,ia.x,ia.y,ia.z);return this},transformDirection:function(a){for(va
 0]=b;this.array[a+1]=c;this.array[a+2]=d;this.array[a+3]=e;return this},onUpload:function(a){this.onUploadCallback=a;return this},clone:function(){return(new this.constructor(this.array,this.itemSize)).copy(this)},toJSON:function(){return{itemSize:this.itemSize,type:this.array.constructor.name,array:Array.prototype.slice.call(this.array),normalized:this.normalized}}});yd.prototype=Object.create(H.prototype);yd.prototype.constructor=yd;zd.prototype=Object.create(H.prototype);zd.prototype.constructor=
 0]=b;this.array[a+1]=c;this.array[a+2]=d;this.array[a+3]=e;return this},onUpload:function(a){this.onUploadCallback=a;return this},clone:function(){return(new this.constructor(this.array,this.itemSize)).copy(this)},toJSON:function(){return{itemSize:this.itemSize,type:this.array.constructor.name,array:Array.prototype.slice.call(this.array),normalized:this.normalized}}});yd.prototype=Object.create(H.prototype);yd.prototype.constructor=yd;zd.prototype=Object.create(H.prototype);zd.prototype.constructor=
 zd;Ad.prototype=Object.create(H.prototype);Ad.prototype.constructor=Ad;Bd.prototype=Object.create(H.prototype);Bd.prototype.constructor=Bd;Xb.prototype=Object.create(H.prototype);Xb.prototype.constructor=Xb;Cd.prototype=Object.create(H.prototype);Cd.prototype.constructor=Cd;Yb.prototype=Object.create(H.prototype);Yb.prototype.constructor=Yb;B.prototype=Object.create(H.prototype);B.prototype.constructor=B;Dd.prototype=Object.create(H.prototype);Dd.prototype.constructor=Dd;Object.assign(vh.prototype,
 zd;Ad.prototype=Object.create(H.prototype);Ad.prototype.constructor=Ad;Bd.prototype=Object.create(H.prototype);Bd.prototype.constructor=Bd;Xb.prototype=Object.create(H.prototype);Xb.prototype.constructor=Xb;Cd.prototype=Object.create(H.prototype);Cd.prototype.constructor=Cd;Yb.prototype=Object.create(H.prototype);Yb.prototype.constructor=Yb;B.prototype=Object.create(H.prototype);B.prototype.constructor=B;Dd.prototype=Object.create(H.prototype);Dd.prototype.constructor=Dd;Object.assign(vh.prototype,
 {computeGroups:function(a){var b=[],c=void 0,d=a.faces;for(a=0;a<d.length;a++){var e=d[a];if(e.materialIndex!==c){c=e.materialIndex;void 0!==f&&(f.count=3*a-f.start,b.push(f));var f={start:3*a,materialIndex:c}}}void 0!==f&&(f.count=3*a-f.start,b.push(f));this.groups=b},fromGeometry:function(a){var b=a.faces,c=a.vertices,d=a.faceVertexUvs,e=d[0]&&0<d[0].length,f=d[1]&&0<d[1].length,g=a.morphTargets,h=g.length;if(0<h){var l=[];for(var k=0;k<h;k++)l[k]={name:g[k].name,data:[]};this.morphTargets.position=
 {computeGroups:function(a){var b=[],c=void 0,d=a.faces;for(a=0;a<d.length;a++){var e=d[a];if(e.materialIndex!==c){c=e.materialIndex;void 0!==f&&(f.count=3*a-f.start,b.push(f));var f={start:3*a,materialIndex:c}}}void 0!==f&&(f.count=3*a-f.start,b.push(f));this.groups=b},fromGeometry:function(a){var b=a.faces,c=a.vertices,d=a.faceVertexUvs,e=d[0]&&0<d[0].length,f=d[1]&&0<d[1].length,g=a.morphTargets,h=g.length;if(0<h){var l=[];for(var k=0;k<h;k++)l[k]={name:g[k].name,data:[]};this.morphTargets.position=
-l}k=a.morphNormals;var m=k.length;if(0<m){var p=[];for(var v=0;v<m;v++)p[v]={name:k[v].name,data:[]};this.morphTargets.normal=p}v=a.skinIndices;var r=a.skinWeights,q=v.length===c.length,u=r.length===c.length;0<c.length&&0===b.length&&console.error("THREE.DirectGeometry: Faceless geometries are not supported.");for(var A=0;A<b.length;A++){var E=b[A];this.vertices.push(c[E.a],c[E.b],c[E.c]);var x=E.vertexNormals;3===x.length?this.normals.push(x[0],x[1],x[2]):(x=E.normal,this.normals.push(x,x,x));x=
+l}k=a.morphNormals;var q=k.length;if(0<q){var p=[];for(var m=0;m<q;m++)p[m]={name:k[m].name,data:[]};this.morphTargets.normal=p}m=a.skinIndices;var t=a.skinWeights,r=m.length===c.length,u=t.length===c.length;0<c.length&&0===b.length&&console.error("THREE.DirectGeometry: Faceless geometries are not supported.");for(var A=0;A<b.length;A++){var E=b[A];this.vertices.push(c[E.a],c[E.b],c[E.c]);var x=E.vertexNormals;3===x.length?this.normals.push(x[0],x[1],x[2]):(x=E.normal,this.normals.push(x,x,x));x=
 E.vertexColors;3===x.length?this.colors.push(x[0],x[1],x[2]):(x=E.color,this.colors.push(x,x,x));!0===e&&(x=d[0][A],void 0!==x?this.uvs.push(x[0],x[1],x[2]):(console.warn("THREE.DirectGeometry.fromGeometry(): Undefined vertexUv ",A),this.uvs.push(new w,new w,new w)));!0===f&&(x=d[1][A],void 0!==x?this.uvs2.push(x[0],x[1],x[2]):(console.warn("THREE.DirectGeometry.fromGeometry(): Undefined vertexUv2 ",A),this.uvs2.push(new w,new w,new w)));for(x=0;x<h;x++){var y=g[x].vertices;l[x].data.push(y[E.a],
 E.vertexColors;3===x.length?this.colors.push(x[0],x[1],x[2]):(x=E.color,this.colors.push(x,x,x));!0===e&&(x=d[0][A],void 0!==x?this.uvs.push(x[0],x[1],x[2]):(console.warn("THREE.DirectGeometry.fromGeometry(): Undefined vertexUv ",A),this.uvs.push(new w,new w,new w)));!0===f&&(x=d[1][A],void 0!==x?this.uvs2.push(x[0],x[1],x[2]):(console.warn("THREE.DirectGeometry.fromGeometry(): Undefined vertexUv2 ",A),this.uvs2.push(new w,new w,new w)));for(x=0;x<h;x++){var y=g[x].vertices;l[x].data.push(y[E.a],
-y[E.b],y[E.c])}for(x=0;x<m;x++)y=k[x].vertexNormals[A],p[x].data.push(y.a,y.b,y.c);q&&this.skinIndices.push(v[E.a],v[E.b],v[E.c]);u&&this.skinWeights.push(r[E.a],r[E.b],r[E.c])}this.computeGroups(a);this.verticesNeedUpdate=a.verticesNeedUpdate;this.normalsNeedUpdate=a.normalsNeedUpdate;this.colorsNeedUpdate=a.colorsNeedUpdate;this.uvsNeedUpdate=a.uvsNeedUpdate;this.groupsNeedUpdate=a.groupsNeedUpdate;null!==a.boundingSphere&&(this.boundingSphere=a.boundingSphere.clone());null!==a.boundingBox&&(this.boundingBox=
+y[E.b],y[E.c])}for(x=0;x<q;x++)y=k[x].vertexNormals[A],p[x].data.push(y.a,y.b,y.c);r&&this.skinIndices.push(m[E.a],m[E.b],m[E.c]);u&&this.skinWeights.push(t[E.a],t[E.b],t[E.c])}this.computeGroups(a);this.verticesNeedUpdate=a.verticesNeedUpdate;this.normalsNeedUpdate=a.normalsNeedUpdate;this.colorsNeedUpdate=a.colorsNeedUpdate;this.uvsNeedUpdate=a.uvsNeedUpdate;this.groupsNeedUpdate=a.groupsNeedUpdate;null!==a.boundingSphere&&(this.boundingSphere=a.boundingSphere.clone());null!==a.boundingBox&&(this.boundingBox=
 a.boundingBox.clone());return this}});var kj=1,ob=new M,hh=new z,sd=new m,Na=new Ta,ye=new Ta,qa=new m;F.prototype=Object.assign(Object.create(ua.prototype),{constructor:F,isBufferGeometry:!0,getIndex:function(){return this.index},setIndex:function(a){Array.isArray(a)?this.index=new (65535<wh(a)?Yb:Xb)(a,1):this.index=a},getAttribute:function(a){return this.attributes[a]},setAttribute:function(a,b){this.attributes[a]=b;return this},deleteAttribute:function(a){delete this.attributes[a];return this},
 a.boundingBox.clone());return this}});var kj=1,ob=new M,hh=new z,sd=new m,Na=new Ta,ye=new Ta,qa=new m;F.prototype=Object.assign(Object.create(ua.prototype),{constructor:F,isBufferGeometry:!0,getIndex:function(){return this.index},setIndex:function(a){Array.isArray(a)?this.index=new (65535<wh(a)?Yb:Xb)(a,1):this.index=a},getAttribute:function(a){return this.attributes[a]},setAttribute:function(a,b){this.attributes[a]=b;return this},deleteAttribute:function(a){delete this.attributes[a];return this},
 addGroup:function(a,b,c){this.groups.push({start:a,count:b,materialIndex:void 0!==c?c:0})},clearGroups:function(){this.groups=[]},setDrawRange:function(a,b){this.drawRange.start=a;this.drawRange.count=b},applyMatrix4:function(a){var b=this.attributes.position;void 0!==b&&(b.applyMatrix4(a),b.needsUpdate=!0);b=this.attributes.normal;if(void 0!==b){var c=(new xa).getNormalMatrix(a);b.applyNormalMatrix(c);b.needsUpdate=!0}b=this.attributes.tangent;void 0!==b&&(b.transformDirection(a),b.needsUpdate=!0);
 addGroup:function(a,b,c){this.groups.push({start:a,count:b,materialIndex:void 0!==c?c:0})},clearGroups:function(){this.groups=[]},setDrawRange:function(a,b){this.drawRange.start=a;this.drawRange.count=b},applyMatrix4:function(a){var b=this.attributes.position;void 0!==b&&(b.applyMatrix4(a),b.needsUpdate=!0);b=this.attributes.normal;if(void 0!==b){var c=(new xa).getNormalMatrix(a);b.applyNormalMatrix(c);b.needsUpdate=!0}b=this.attributes.tangent;void 0!==b&&(b.transformDirection(a),b.needsUpdate=!0);
 null!==this.boundingBox&&this.computeBoundingBox();null!==this.boundingSphere&&this.computeBoundingSphere();return this},rotateX:function(a){ob.makeRotationX(a);this.applyMatrix4(ob);return this},rotateY:function(a){ob.makeRotationY(a);this.applyMatrix4(ob);return this},rotateZ:function(a){ob.makeRotationZ(a);this.applyMatrix4(ob);return this},translate:function(a,b,c){ob.makeTranslation(a,b,c);this.applyMatrix4(ob);return this},scale:function(a,b,c){ob.makeScale(a,b,c);this.applyMatrix4(ob);return this},
 null!==this.boundingBox&&this.computeBoundingBox();null!==this.boundingSphere&&this.computeBoundingSphere();return this},rotateX:function(a){ob.makeRotationX(a);this.applyMatrix4(ob);return this},rotateY:function(a){ob.makeRotationY(a);this.applyMatrix4(ob);return this},rotateZ:function(a){ob.makeRotationZ(a);this.applyMatrix4(ob);return this},translate:function(a,b,c){ob.makeTranslation(a,b,c);this.applyMatrix4(ob);return this},scale:function(a,b,c){ob.makeScale(a,b,c);this.applyMatrix4(ob);return this},
@@ -539,8 +539,8 @@ a.boundingBox&&(this.boundingBox=a.boundingBox.clone());return this},computeBoun
 (this.boundingBox.expandByPoint(Na.min),this.boundingBox.expandByPoint(Na.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:function(){null===this.boundingSphere&&(this.boundingSphere=new eb);var a=this.attributes.position,b=this.morphAttributes.position;
 (this.boundingBox.expandByPoint(Na.min),this.boundingBox.expandByPoint(Na.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:function(){null===this.boundingSphere&&(this.boundingSphere=new eb);var a=this.attributes.position,b=this.morphAttributes.position;
 if(a){var c=this.boundingSphere.center;Na.setFromBufferAttribute(a);if(b)for(var d=0,e=b.length;d<e;d++)ye.setFromBufferAttribute(b[d]),this.morphTargetsRelative?(qa.addVectors(Na.min,ye.min),Na.expandByPoint(qa),qa.addVectors(Na.max,ye.max),Na.expandByPoint(qa)):(Na.expandByPoint(ye.min),Na.expandByPoint(ye.max));Na.getCenter(c);e=d=0;for(var f=a.count;e<f;e++)qa.fromBufferAttribute(a,e),d=Math.max(d,c.distanceToSquared(qa));if(b)for(e=0,f=b.length;e<f;e++)for(var g=b[e],h=this.morphTargetsRelative,
 if(a){var c=this.boundingSphere.center;Na.setFromBufferAttribute(a);if(b)for(var d=0,e=b.length;d<e;d++)ye.setFromBufferAttribute(b[d]),this.morphTargetsRelative?(qa.addVectors(Na.min,ye.min),Na.expandByPoint(qa),qa.addVectors(Na.max,ye.max),Na.expandByPoint(qa)):(Na.expandByPoint(ye.min),Na.expandByPoint(ye.max));Na.getCenter(c);e=d=0;for(var f=a.count;e<f;e++)qa.fromBufferAttribute(a,e),d=Math.max(d,c.distanceToSquared(qa));if(b)for(e=0,f=b.length;e<f;e++)for(var g=b[e],h=this.morphTargetsRelative,
 l=0,k=g.count;l<k;l++)qa.fromBufferAttribute(g,l),h&&(sd.fromBufferAttribute(a,l),qa.add(sd)),d=Math.max(d,c.distanceToSquared(qa));this.boundingSphere.radius=Math.sqrt(d);isNaN(this.boundingSphere.radius)&&console.error('THREE.BufferGeometry.computeBoundingSphere(): Computed radius is NaN. The "position" attribute is likely to have NaN values.',this)}},computeFaceNormals:function(){},computeVertexNormals:function(){var a=this.index,b=this.getAttribute("position");if(void 0!==b){var c=this.getAttribute("normal");
 l=0,k=g.count;l<k;l++)qa.fromBufferAttribute(g,l),h&&(sd.fromBufferAttribute(a,l),qa.add(sd)),d=Math.max(d,c.distanceToSquared(qa));this.boundingSphere.radius=Math.sqrt(d);isNaN(this.boundingSphere.radius)&&console.error('THREE.BufferGeometry.computeBoundingSphere(): Computed radius is NaN. The "position" attribute is likely to have NaN values.',this)}},computeFaceNormals:function(){},computeVertexNormals:function(){var a=this.index,b=this.getAttribute("position");if(void 0!==b){var c=this.getAttribute("normal");
-if(void 0===c)c=new H(new Float32Array(3*b.count),3),this.setAttribute("normal",c);else for(var d=0,e=c.count;d<e;d++)c.setXYZ(d,0,0,0);d=new m;e=new m;var f=new m,g=new m,h=new m,l=new m,k=new m,t=new m;if(a)for(var p=0,v=a.count;p<v;p+=3){var r=a.getX(p+0),q=a.getX(p+1),u=a.getX(p+2);d.fromBufferAttribute(b,r);e.fromBufferAttribute(b,q);f.fromBufferAttribute(b,u);k.subVectors(f,e);t.subVectors(d,e);k.cross(t);g.fromBufferAttribute(c,r);h.fromBufferAttribute(c,q);l.fromBufferAttribute(c,u);g.add(k);
-h.add(k);l.add(k);c.setXYZ(r,g.x,g.y,g.z);c.setXYZ(q,h.x,h.y,h.z);c.setXYZ(u,l.x,l.y,l.z)}else for(a=0,g=b.count;a<g;a+=3)d.fromBufferAttribute(b,a+0),e.fromBufferAttribute(b,a+1),f.fromBufferAttribute(b,a+2),k.subVectors(f,e),t.subVectors(d,e),k.cross(t),c.setXYZ(a+0,k.x,k.y,k.z),c.setXYZ(a+1,k.x,k.y,k.z),c.setXYZ(a+2,k.x,k.y,k.z);this.normalizeNormals();c.needsUpdate=!0}},merge:function(a,b){if(a&&a.isBufferGeometry){void 0===b&&(b=0,console.warn("THREE.BufferGeometry.merge(): Overwriting original geometry, starting at offset=0. Use BufferGeometryUtils.mergeBufferGeometries() for lossless merge."));
+if(void 0===c)c=new H(new Float32Array(3*b.count),3),this.setAttribute("normal",c);else for(var d=0,e=c.count;d<e;d++)c.setXYZ(d,0,0,0);d=new m;e=new m;var f=new m,g=new m,h=new m,l=new m,k=new m,q=new m;if(a)for(var p=0,v=a.count;p<v;p+=3){var t=a.getX(p+0),r=a.getX(p+1),u=a.getX(p+2);d.fromBufferAttribute(b,t);e.fromBufferAttribute(b,r);f.fromBufferAttribute(b,u);k.subVectors(f,e);q.subVectors(d,e);k.cross(q);g.fromBufferAttribute(c,t);h.fromBufferAttribute(c,r);l.fromBufferAttribute(c,u);g.add(k);
+h.add(k);l.add(k);c.setXYZ(t,g.x,g.y,g.z);c.setXYZ(r,h.x,h.y,h.z);c.setXYZ(u,l.x,l.y,l.z)}else for(a=0,g=b.count;a<g;a+=3)d.fromBufferAttribute(b,a+0),e.fromBufferAttribute(b,a+1),f.fromBufferAttribute(b,a+2),k.subVectors(f,e),q.subVectors(d,e),k.cross(q),c.setXYZ(a+0,k.x,k.y,k.z),c.setXYZ(a+1,k.x,k.y,k.z),c.setXYZ(a+2,k.x,k.y,k.z);this.normalizeNormals();c.needsUpdate=!0}},merge:function(a,b){if(a&&a.isBufferGeometry){void 0===b&&(b=0,console.warn("THREE.BufferGeometry.merge(): Overwriting original geometry, starting at offset=0. Use BufferGeometryUtils.mergeBufferGeometries() for lossless merge."));
 var c=this.attributes,d;for(d in c)if(void 0!==a.attributes[d]){var e=c[d].array,f=a.attributes[d],g=f.array,h=f.itemSize*b;f=Math.min(g.length,e.length-h);for(var l=0;l<f;l++,h++)e[h]=g[l]}return this}console.error("THREE.BufferGeometry.merge(): geometry not an instance of THREE.BufferGeometry.",a)},normalizeNormals:function(){for(var a=this.attributes.normal,b=0,c=a.count;b<c;b++)qa.fromBufferAttribute(a,b),qa.normalize(),a.setXYZ(b,qa.x,qa.y,qa.z)},toNonIndexed:function(){function a(a,b){var c=
 var c=this.attributes,d;for(d in c)if(void 0!==a.attributes[d]){var e=c[d].array,f=a.attributes[d],g=f.array,h=f.itemSize*b;f=Math.min(g.length,e.length-h);for(var l=0;l<f;l++,h++)e[h]=g[l]}return this}console.error("THREE.BufferGeometry.merge(): geometry not an instance of THREE.BufferGeometry.",a)},normalizeNormals:function(){for(var a=this.attributes.normal,b=0,c=a.count;b<c;b++)qa.fromBufferAttribute(a,b),qa.normalize(),a.setXYZ(b,qa.x,qa.y,qa.z)},toNonIndexed:function(){function a(a,b){var c=
 a.array,d=a.itemSize;a=a.normalized;for(var e=new c.constructor(b.length*d),f,g=0,h=0,l=b.length;h<l;h++){f=b[h]*d;for(var k=0;k<d;k++)e[g++]=c[f++]}return new H(e,d,a)}if(null===this.index)return console.warn("THREE.BufferGeometry.toNonIndexed(): Geometry is already non-indexed."),this;var b=new F,c=this.index.array,d=this.attributes;for(g in d){var e=a(d[g],c);b.setAttribute(g,e)}d=this.morphAttributes;for(var f in d){var g=[];e=d[f];for(var h=0,l=e.length;h<l;h++){var k=a(e[h],c);g.push(k)}b.morphAttributes[f]=
 a.array,d=a.itemSize;a=a.normalized;for(var e=new c.constructor(b.length*d),f,g=0,h=0,l=b.length;h<l;h++){f=b[h]*d;for(var k=0;k<d;k++)e[g++]=c[f++]}return new H(e,d,a)}if(null===this.index)return console.warn("THREE.BufferGeometry.toNonIndexed(): Geometry is already non-indexed."),this;var b=new F,c=this.index.array,d=this.attributes;for(g in d){var e=a(d[g],c);b.setAttribute(g,e)}d=this.morphAttributes;for(var f in d){var g=[];e=d[f];for(var h=0,l=e.length;h<l;h++){var k=a(e[h],c);g.push(k)}b.morphAttributes[f]=
 g}b.morphTargetsRelative=this.morphTargetsRelative;c=this.groups;f=0;for(d=c.length;f<d;f++)g=c[f],b.addGroup(g.start,g.count,g.materialIndex);return b},toJSON:function(){var a={metadata:{version:4.5,type:"BufferGeometry",generator:"BufferGeometry.toJSON"}};a.uuid=this.uuid;a.type=this.type;""!==this.name&&(a.name=this.name);0<Object.keys(this.userData).length&&(a.userData=this.userData);if(void 0!==this.parameters){var b=this.parameters;for(c in b)void 0!==b[c]&&(a[c]=b[c]);return a}a.data={attributes:{}};
 g}b.morphTargetsRelative=this.morphTargetsRelative;c=this.groups;f=0;for(d=c.length;f<d;f++)g=c[f],b.addGroup(g.start,g.count,g.materialIndex);return b},toJSON:function(){var a={metadata:{version:4.5,type:"BufferGeometry",generator:"BufferGeometry.toJSON"}};a.uuid=this.uuid;a.type=this.type;""!==this.name&&(a.name=this.name);0<Object.keys(this.userData).length&&(a.userData=this.userData);if(void 0!==this.parameters){var b=this.parameters;for(c in b)void 0!==b[c]&&(a[c]=b[c]);return a}a.data={attributes:{}};
@@ -549,14 +549,14 @@ b=this.groups;0<b.length&&(a.data.groups=JSON.parse(JSON.stringify(b)));b=this.b
 a.morphAttributes;for(var e in d){c=[];for(var f=d[e],g=0,h=f.length;g<h;g++)c.push(f[g].clone(b));this.morphAttributes[e]=c}this.morphTargetsRelative=a.morphTargetsRelative;b=a.groups;e=0;for(d=b.length;e<d;e++)c=b[e],this.addGroup(c.start,c.count,c.materialIndex);b=a.boundingBox;null!==b&&(this.boundingBox=b.clone());b=a.boundingSphere;null!==b&&(this.boundingSphere=b.clone());this.drawRange.start=a.drawRange.start;this.drawRange.count=a.drawRange.count;this.userData=a.userData;return this},dispose:function(){this.dispatchEvent({type:"dispose"})}});
 a.morphAttributes;for(var e in d){c=[];for(var f=d[e],g=0,h=f.length;g<h;g++)c.push(f[g].clone(b));this.morphAttributes[e]=c}this.morphTargetsRelative=a.morphTargetsRelative;b=a.groups;e=0;for(d=b.length;e<d;e++)c=b[e],this.addGroup(c.start,c.count,c.materialIndex);b=a.boundingBox;null!==b&&(this.boundingBox=b.clone());b=a.boundingSphere;null!==b&&(this.boundingSphere=b.clone());this.drawRange.start=a.drawRange.start;this.drawRange.count=a.drawRange.count;this.userData=a.userData;return this},dispose:function(){this.dispatchEvent({type:"dispose"})}});
 var Fi=new M,rc=new Wb,ih=new eb,Cb=new m,Db=new m,Eb=new m,fg=new m,gg=new m,hg=new m,Ie=new m,Je=new m,Ke=new m,Ac=new w,Bc=new w,Cc=new w,Ed=new m,Ge=new m;X.prototype=Object.assign(Object.create(z.prototype),{constructor:X,isMesh:!0,copy:function(a){z.prototype.copy.call(this,a);void 0!==a.morphTargetInfluences&&(this.morphTargetInfluences=a.morphTargetInfluences.slice());void 0!==a.morphTargetDictionary&&(this.morphTargetDictionary=Object.assign({},a.morphTargetDictionary));this.material=a.material;
 var Fi=new M,rc=new Wb,ih=new eb,Cb=new m,Db=new m,Eb=new m,fg=new m,gg=new m,hg=new m,Ie=new m,Je=new m,Ke=new m,Ac=new w,Bc=new w,Cc=new w,Ed=new m,Ge=new m;X.prototype=Object.assign(Object.create(z.prototype),{constructor:X,isMesh:!0,copy:function(a){z.prototype.copy.call(this,a);void 0!==a.morphTargetInfluences&&(this.morphTargetInfluences=a.morphTargetInfluences.slice());void 0!==a.morphTargetDictionary&&(this.morphTargetDictionary=Object.assign({},a.morphTargetDictionary));this.material=a.material;
 this.geometry=a.geometry;return this},updateMorphTargets:function(){var a=this.geometry;if(a.isBufferGeometry){a=a.morphAttributes;var b=Object.keys(a);if(0<b.length&&(a=a[b[0]],void 0!==a)){this.morphTargetInfluences=[];this.morphTargetDictionary={};b=0;for(var c=a.length;b<c;b++){var d=a[b].name||String(b);this.morphTargetInfluences.push(0);this.morphTargetDictionary[d]=b}}}else a=a.morphTargets,void 0!==a&&0<a.length&&console.error("THREE.Mesh.updateMorphTargets() no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.")},
 this.geometry=a.geometry;return this},updateMorphTargets:function(){var a=this.geometry;if(a.isBufferGeometry){a=a.morphAttributes;var b=Object.keys(a);if(0<b.length&&(a=a[b[0]],void 0!==a)){this.morphTargetInfluences=[];this.morphTargetDictionary={};b=0;for(var c=a.length;b<c;b++){var d=a[b].name||String(b);this.morphTargetInfluences.push(0);this.morphTargetDictionary[d]=b}}}else a=a.morphTargets,void 0!==a&&0<a.length&&console.error("THREE.Mesh.updateMorphTargets() no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.")},
-raycast:function(a,b){var c=this.geometry,d=this.material,e=this.matrixWorld;if(void 0!==d&&(null===c.boundingSphere&&c.computeBoundingSphere(),ih.copy(c.boundingSphere),ih.applyMatrix4(e),!1!==a.ray.intersectsSphere(ih)&&(Fi.getInverse(e),rc.copy(a.ray).applyMatrix4(Fi),null===c.boundingBox||!1!==rc.intersectsBox(c.boundingBox))))if(c.isBufferGeometry){var f=c.index,g=c.attributes.position;e=c.morphAttributes.position;var h=c.morphTargetsRelative,l=c.attributes.uv,k=c.attributes.uv2,m=c.groups,p=
-c.drawRange;if(null!==f)if(Array.isArray(d))for(var v=0,r=m.length;v<r;v++)for(var q=m[v],u=d[q.materialIndex],A=Math.max(q.start,p.start),E=Math.min(q.start+q.count,p.start+p.count);A<E;A+=3){c=f.getX(A);var x=f.getX(A+1),y=f.getX(A+2);if(c=He(this,u,a,rc,g,e,h,l,k,c,x,y))c.faceIndex=Math.floor(A/3),c.face.materialIndex=q.materialIndex,b.push(c)}else for(m=Math.max(0,p.start),p=Math.min(f.count,p.start+p.count);m<p;m+=3){if(c=f.getX(m),v=f.getX(m+1),r=f.getX(m+2),c=He(this,d,a,rc,g,e,h,l,k,c,v,r))c.faceIndex=
-Math.floor(m/3),b.push(c)}else if(void 0!==g)if(Array.isArray(d))for(f=0,v=m.length;f<v;f++)for(r=m[f],q=d[r.materialIndex],u=Math.max(r.start,p.start),A=Math.min(r.start+r.count,p.start+p.count);u<A;u+=3){if(c=He(this,q,a,rc,g,e,h,l,k,u,u+1,u+2))c.faceIndex=Math.floor(u/3),c.face.materialIndex=r.materialIndex,b.push(c)}else for(m=Math.max(0,p.start),p=Math.min(g.count,p.start+p.count);m<p;m+=3)if(c=He(this,d,a,rc,g,e,h,l,k,m,m+1,m+2))c.faceIndex=Math.floor(m/3),b.push(c)}else if(c.isGeometry)for(e=
-Array.isArray(d),h=c.vertices,l=c.faces,c=c.faceVertexUvs[0],0<c.length&&(g=c),k=0,p=l.length;k<p;k++)if(m=l[k],c=e?d[m.materialIndex]:d,void 0!==c&&(f=h[m.a],v=h[m.b],r=h[m.c],c=xh(this,c,a,rc,f,v,r,Ed)))g&&g[k]&&(q=g[k],Ac.copy(q[0]),Bc.copy(q[1]),Cc.copy(q[2]),c.uv=wa.getUV(Ed,f,v,r,Ac,Bc,Cc,new w)),c.face=m,c.faceIndex=k,b.push(c)}});var lj=0,pb=new M,jh=new z,Jf=new m;L.prototype=Object.assign(Object.create(ua.prototype),{constructor:L,isGeometry:!0,applyMatrix4:function(a){for(var b=(new xa).getNormalMatrix(a),
+raycast:function(a,b){var c=this.geometry,d=this.material,e=this.matrixWorld;if(void 0!==d&&(null===c.boundingSphere&&c.computeBoundingSphere(),ih.copy(c.boundingSphere),ih.applyMatrix4(e),!1!==a.ray.intersectsSphere(ih)&&(Fi.getInverse(e),rc.copy(a.ray).applyMatrix4(Fi),null===c.boundingBox||!1!==rc.intersectsBox(c.boundingBox))))if(c.isBufferGeometry){var f=c.index,g=c.attributes.position;e=c.morphAttributes.position;var h=c.morphTargetsRelative,l=c.attributes.uv,k=c.attributes.uv2,q=c.groups,p=
+c.drawRange;if(null!==f)if(Array.isArray(d))for(var m=0,t=q.length;m<t;m++)for(var r=q[m],u=d[r.materialIndex],A=Math.max(r.start,p.start),E=Math.min(r.start+r.count,p.start+p.count);A<E;A+=3){c=f.getX(A);var x=f.getX(A+1),y=f.getX(A+2);if(c=He(this,u,a,rc,g,e,h,l,k,c,x,y))c.faceIndex=Math.floor(A/3),c.face.materialIndex=r.materialIndex,b.push(c)}else for(q=Math.max(0,p.start),p=Math.min(f.count,p.start+p.count);q<p;q+=3){if(c=f.getX(q),m=f.getX(q+1),t=f.getX(q+2),c=He(this,d,a,rc,g,e,h,l,k,c,m,t))c.faceIndex=
+Math.floor(q/3),b.push(c)}else if(void 0!==g)if(Array.isArray(d))for(f=0,m=q.length;f<m;f++)for(t=q[f],r=d[t.materialIndex],u=Math.max(t.start,p.start),A=Math.min(t.start+t.count,p.start+p.count);u<A;u+=3){if(c=He(this,r,a,rc,g,e,h,l,k,u,u+1,u+2))c.faceIndex=Math.floor(u/3),c.face.materialIndex=t.materialIndex,b.push(c)}else for(q=Math.max(0,p.start),p=Math.min(g.count,p.start+p.count);q<p;q+=3)if(c=He(this,d,a,rc,g,e,h,l,k,q,q+1,q+2))c.faceIndex=Math.floor(q/3),b.push(c)}else if(c.isGeometry)for(e=
+Array.isArray(d),h=c.vertices,l=c.faces,c=c.faceVertexUvs[0],0<c.length&&(g=c),k=0,p=l.length;k<p;k++)if(q=l[k],c=e?d[q.materialIndex]:d,void 0!==c&&(f=h[q.a],m=h[q.b],t=h[q.c],c=xh(this,c,a,rc,f,m,t,Ed)))g&&g[k]&&(r=g[k],Ac.copy(r[0]),Bc.copy(r[1]),Cc.copy(r[2]),c.uv=wa.getUV(Ed,f,m,t,Ac,Bc,Cc,new w)),c.face=q,c.faceIndex=k,b.push(c)}});var lj=0,pb=new M,jh=new z,Jf=new m;L.prototype=Object.assign(Object.create(ua.prototype),{constructor:L,isGeometry:!0,applyMatrix4:function(a){for(var b=(new xa).getNormalMatrix(a),
 c=0,d=this.vertices.length;c<d;c++)this.vertices[c].applyMatrix4(a);a=0;for(c=this.faces.length;a<c;a++){d=this.faces[a];d.normal.applyMatrix3(b).normalize();for(var e=0,f=d.vertexNormals.length;e<f;e++)d.vertexNormals[e].applyMatrix3(b).normalize()}null!==this.boundingBox&&this.computeBoundingBox();null!==this.boundingSphere&&this.computeBoundingSphere();this.normalsNeedUpdate=this.verticesNeedUpdate=!0;return this},rotateX:function(a){pb.makeRotationX(a);this.applyMatrix4(pb);return this},rotateY:function(a){pb.makeRotationY(a);
 c=0,d=this.vertices.length;c<d;c++)this.vertices[c].applyMatrix4(a);a=0;for(c=this.faces.length;a<c;a++){d=this.faces[a];d.normal.applyMatrix3(b).normalize();for(var e=0,f=d.vertexNormals.length;e<f;e++)d.vertexNormals[e].applyMatrix3(b).normalize()}null!==this.boundingBox&&this.computeBoundingBox();null!==this.boundingSphere&&this.computeBoundingSphere();this.normalsNeedUpdate=this.verticesNeedUpdate=!0;return this},rotateX:function(a){pb.makeRotationX(a);this.applyMatrix4(pb);return this},rotateY:function(a){pb.makeRotationY(a);
 this.applyMatrix4(pb);return this},rotateZ:function(a){pb.makeRotationZ(a);this.applyMatrix4(pb);return this},translate:function(a,b,c){pb.makeTranslation(a,b,c);this.applyMatrix4(pb);return this},scale:function(a,b,c){pb.makeScale(a,b,c);this.applyMatrix4(pb);return this},lookAt:function(a){jh.lookAt(a);jh.updateMatrix();this.applyMatrix4(jh.matrix);return this},fromBufferGeometry:function(a){function b(a,b,d,e){var f=void 0===h?[]:[c.colors[a].clone(),c.colors[b].clone(),c.colors[d].clone()],n=
 this.applyMatrix4(pb);return this},rotateZ:function(a){pb.makeRotationZ(a);this.applyMatrix4(pb);return this},translate:function(a,b,c){pb.makeTranslation(a,b,c);this.applyMatrix4(pb);return this},scale:function(a,b,c){pb.makeScale(a,b,c);this.applyMatrix4(pb);return this},lookAt:function(a){jh.lookAt(a);jh.updateMatrix();this.applyMatrix4(jh.matrix);return this},fromBufferGeometry:function(a){function b(a,b,d,e){var f=void 0===h?[]:[c.colors[a].clone(),c.colors[b].clone(),c.colors[d].clone()],n=
 void 0===g?[]:[(new m).fromBufferAttribute(g,a),(new m).fromBufferAttribute(g,b),(new m).fromBufferAttribute(g,d)];e=new zc(a,b,d,n,f,e);c.faces.push(e);void 0!==l&&c.faceVertexUvs[0].push([(new w).fromBufferAttribute(l,a),(new w).fromBufferAttribute(l,b),(new w).fromBufferAttribute(l,d)]);void 0!==k&&c.faceVertexUvs[1].push([(new w).fromBufferAttribute(k,a),(new w).fromBufferAttribute(k,b),(new w).fromBufferAttribute(k,d)])}var c=this,d=null!==a.index?a.index:void 0,e=a.attributes;if(void 0===e.position)return console.error("THREE.Geometry.fromBufferGeometry(): Position attribute required for conversion."),
 void 0===g?[]:[(new m).fromBufferAttribute(g,a),(new m).fromBufferAttribute(g,b),(new m).fromBufferAttribute(g,d)];e=new zc(a,b,d,n,f,e);c.faces.push(e);void 0!==l&&c.faceVertexUvs[0].push([(new w).fromBufferAttribute(l,a),(new w).fromBufferAttribute(l,b),(new w).fromBufferAttribute(l,d)]);void 0!==k&&c.faceVertexUvs[1].push([(new w).fromBufferAttribute(k,a),(new w).fromBufferAttribute(k,b),(new w).fromBufferAttribute(k,d)])}var c=this,d=null!==a.index?a.index:void 0,e=a.attributes;if(void 0===e.position)return console.error("THREE.Geometry.fromBufferGeometry(): Position attribute required for conversion."),
-this;var f=e.position,g=e.normal,h=e.color,l=e.uv,k=e.uv2;void 0!==k&&(this.faceVertexUvs[1]=[]);for(e=0;e<f.count;e++)c.vertices.push((new m).fromBufferAttribute(f,e)),void 0!==h&&c.colors.push((new D).fromBufferAttribute(h,e));e=a.groups;if(0<e.length)for(f=0;f<e.length;f++){var t=e[f],p=t.start,v=p;for(p+=t.count;v<p;v+=3)void 0!==d?b(d.getX(v),d.getX(v+1),d.getX(v+2),t.materialIndex):b(v,v+1,v+2,t.materialIndex)}else if(void 0!==d)for(e=0;e<d.count;e+=3)b(d.getX(e),d.getX(e+1),d.getX(e+2));else for(d=
+this;var f=e.position,g=e.normal,h=e.color,l=e.uv,k=e.uv2;void 0!==k&&(this.faceVertexUvs[1]=[]);for(e=0;e<f.count;e++)c.vertices.push((new m).fromBufferAttribute(f,e)),void 0!==h&&c.colors.push((new D).fromBufferAttribute(h,e));e=a.groups;if(0<e.length)for(f=0;f<e.length;f++){var q=e[f],p=q.start,v=p;for(p+=q.count;v<p;v+=3)void 0!==d?b(d.getX(v),d.getX(v+1),d.getX(v+2),q.materialIndex):b(v,v+1,v+2,q.materialIndex)}else if(void 0!==d)for(e=0;e<d.count;e+=3)b(d.getX(e),d.getX(e+1),d.getX(e+2));else for(d=
 0;d<f.count;d+=3)b(d,d+1,d+2);this.computeFaceNormals();null!==a.boundingBox&&(this.boundingBox=a.boundingBox.clone());null!==a.boundingSphere&&(this.boundingSphere=a.boundingSphere.clone());return this},center:function(){this.computeBoundingBox();this.boundingBox.getCenter(Jf).negate();this.translate(Jf.x,Jf.y,Jf.z);return this},normalize:function(){this.computeBoundingSphere();var a=this.boundingSphere.center,b=this.boundingSphere.radius;b=0===b?1:1/b;var c=new M;c.set(b,0,0,-b*a.x,0,b,0,-b*a.y,
 0;d<f.count;d+=3)b(d,d+1,d+2);this.computeFaceNormals();null!==a.boundingBox&&(this.boundingBox=a.boundingBox.clone());null!==a.boundingSphere&&(this.boundingSphere=a.boundingSphere.clone());return this},center:function(){this.computeBoundingBox();this.boundingBox.getCenter(Jf).negate();this.translate(Jf.x,Jf.y,Jf.z);return this},normalize:function(){this.computeBoundingSphere();var a=this.boundingSphere.center,b=this.boundingSphere.radius;b=0===b?1:1/b;var c=new M;c.set(b,0,0,-b*a.x,0,b,0,-b*a.y,
 0,0,b,-b*a.z,0,0,0,1);this.applyMatrix4(c);return this},computeFaceNormals:function(){for(var a=new m,b=new m,c=0,d=this.faces.length;c<d;c++){var e=this.faces[c],f=this.vertices[e.a],g=this.vertices[e.b];a.subVectors(this.vertices[e.c],g);b.subVectors(f,g);a.cross(b);a.normalize();e.normal.copy(a)}},computeVertexNormals:function(a){void 0===a&&(a=!0);for(var b=Array(this.vertices.length),c=0,d=this.vertices.length;c<d;c++)b[c]=new m;if(a){a=new m;c=new m;d=0;for(var e=this.faces.length;d<e;d++){var f=
 0,0,b,-b*a.z,0,0,0,1);this.applyMatrix4(c);return this},computeFaceNormals:function(){for(var a=new m,b=new m,c=0,d=this.faces.length;c<d;c++){var e=this.faces[c],f=this.vertices[e.a],g=this.vertices[e.b];a.subVectors(this.vertices[e.c],g);b.subVectors(f,g);a.cross(b);a.normalize();e.normal.copy(a)}},computeVertexNormals:function(a){void 0===a&&(a=!0);for(var b=Array(this.vertices.length),c=0,d=this.vertices.length;c<d;c++)b[c]=new m;if(a){a=new m;c=new m;d=0;for(var e=this.faces.length;d<e;d++){var f=
 this.faces[d],g=this.vertices[f.a],h=this.vertices[f.b];a.subVectors(this.vertices[f.c],h);c.subVectors(g,h);a.cross(c);b[f.a].add(a);b[f.b].add(a);b[f.c].add(a)}}else for(this.computeFaceNormals(),a=0,c=this.faces.length;a<c;a++)d=this.faces[a],b[d.a].add(d.normal),b[d.b].add(d.normal),b[d.c].add(d.normal);a=0;for(c=this.vertices.length;a<c;a++)b[a].normalize();a=0;for(c=this.faces.length;a<c;a++)d=this.faces[a],e=d.vertexNormals,3===e.length?(e[0].copy(b[d.a]),e[1].copy(b[d.b]),e[2].copy(b[d.c])):
 this.faces[d],g=this.vertices[f.a],h=this.vertices[f.b];a.subVectors(this.vertices[f.c],h);c.subVectors(g,h);a.cross(c);b[f.a].add(a);b[f.b].add(a);b[f.c].add(a)}}else for(this.computeFaceNormals(),a=0,c=this.faces.length;a<c;a++)d=this.faces[a],b[d.a].add(d.normal),b[d.b].add(d.normal),b[d.c].add(d.normal);a=0;for(c=this.vertices.length;a<c;a++)b[a].normalize();a=0;for(c=this.faces.length;a<c;a++)d=this.faces[a],e=d.vertexNormals,3===e.length?(e[0].copy(b[d.a]),e[1].copy(b[d.b]),e[2].copy(b[d.c])):
@@ -564,21 +564,21 @@ this.faces[d],g=this.vertices[f.a],h=this.vertices[f.b];a.subVectors(this.vertic
 b;a++){var c=this.faces[a];c.__originalFaceNormal?c.__originalFaceNormal.copy(c.normal):c.__originalFaceNormal=c.normal.clone();c.__originalVertexNormals||(c.__originalVertexNormals=[]);for(var d=0,e=c.vertexNormals.length;d<e;d++)c.__originalVertexNormals[d]?c.__originalVertexNormals[d].copy(c.vertexNormals[d]):c.__originalVertexNormals[d]=c.vertexNormals[d].clone()}a=new L;a.faces=this.faces;b=0;for(c=this.morphTargets.length;b<c;b++){if(!this.morphNormals[b]){this.morphNormals[b]={};this.morphNormals[b].faceNormals=
 b;a++){var c=this.faces[a];c.__originalFaceNormal?c.__originalFaceNormal.copy(c.normal):c.__originalFaceNormal=c.normal.clone();c.__originalVertexNormals||(c.__originalVertexNormals=[]);for(var d=0,e=c.vertexNormals.length;d<e;d++)c.__originalVertexNormals[d]?c.__originalVertexNormals[d].copy(c.vertexNormals[d]):c.__originalVertexNormals[d]=c.vertexNormals[d].clone()}a=new L;a.faces=this.faces;b=0;for(c=this.morphTargets.length;b<c;b++){if(!this.morphNormals[b]){this.morphNormals[b]={};this.morphNormals[b].faceNormals=
 [];this.morphNormals[b].vertexNormals=[];d=this.morphNormals[b].faceNormals;e=this.morphNormals[b].vertexNormals;for(var f=0,g=this.faces.length;f<g;f++){var h=new m,l={a:new m,b:new m,c:new m};d.push(h);e.push(l)}}d=this.morphNormals[b];a.vertices=this.morphTargets[b].vertices;a.computeFaceNormals();a.computeVertexNormals();e=0;for(f=this.faces.length;e<f;e++)g=this.faces[e],h=d.vertexNormals[e],d.faceNormals[e].copy(g.normal),h.a.copy(g.vertexNormals[0]),h.b.copy(g.vertexNormals[1]),h.c.copy(g.vertexNormals[2])}a=
 [];this.morphNormals[b].vertexNormals=[];d=this.morphNormals[b].faceNormals;e=this.morphNormals[b].vertexNormals;for(var f=0,g=this.faces.length;f<g;f++){var h=new m,l={a:new m,b:new m,c:new m};d.push(h);e.push(l)}}d=this.morphNormals[b];a.vertices=this.morphTargets[b].vertices;a.computeFaceNormals();a.computeVertexNormals();e=0;for(f=this.faces.length;e<f;e++)g=this.faces[e],h=d.vertexNormals[e],d.faceNormals[e].copy(g.normal),h.a.copy(g.vertexNormals[0]),h.b.copy(g.vertexNormals[1]),h.c.copy(g.vertexNormals[2])}a=
 0;for(b=this.faces.length;a<b;a++)c=this.faces[a],c.normal=c.__originalFaceNormal,c.vertexNormals=c.__originalVertexNormals},computeBoundingBox:function(){null===this.boundingBox&&(this.boundingBox=new Ta);this.boundingBox.setFromPoints(this.vertices)},computeBoundingSphere:function(){null===this.boundingSphere&&(this.boundingSphere=new eb);this.boundingSphere.setFromPoints(this.vertices)},merge:function(a,b,c){if(a&&a.isGeometry){var d,e=this.vertices.length,f=this.vertices,g=a.vertices,h=this.faces,
 0;for(b=this.faces.length;a<b;a++)c=this.faces[a],c.normal=c.__originalFaceNormal,c.vertexNormals=c.__originalVertexNormals},computeBoundingBox:function(){null===this.boundingBox&&(this.boundingBox=new Ta);this.boundingBox.setFromPoints(this.vertices)},computeBoundingSphere:function(){null===this.boundingSphere&&(this.boundingSphere=new eb);this.boundingSphere.setFromPoints(this.vertices)},merge:function(a,b,c){if(a&&a.isGeometry){var d,e=this.vertices.length,f=this.vertices,g=a.vertices,h=this.faces,
-l=a.faces,k=this.colors,m=a.colors;void 0===c&&(c=0);void 0!==b&&(d=(new xa).getNormalMatrix(b));for(var p=0,v=g.length;p<v;p++){var r=g[p].clone();void 0!==b&&r.applyMatrix4(b);f.push(r)}b=0;for(f=m.length;b<f;b++)k.push(m[b].clone());k=0;for(m=l.length;k<m;k++){b=l[k];v=b.vertexNormals;g=b.vertexColors;f=new zc(b.a+e,b.b+e,b.c+e);f.normal.copy(b.normal);void 0!==d&&f.normal.applyMatrix3(d).normalize();r=0;for(var q=v.length;r<q;r++)p=v[r].clone(),void 0!==d&&p.applyMatrix3(d).normalize(),f.vertexNormals.push(p);
-f.color.copy(b.color);v=0;for(r=g.length;v<r;v++)p=g[v],f.vertexColors.push(p.clone());f.materialIndex=b.materialIndex+c;h.push(f)}c=0;for(d=a.faceVertexUvs.length;c<d;c++)for(e=a.faceVertexUvs[c],void 0===this.faceVertexUvs[c]&&(this.faceVertexUvs[c]=[]),h=0,l=e.length;h<l;h++){k=e[h];m=[];b=0;for(f=k.length;b<f;b++)m.push(k[b].clone());this.faceVertexUvs[c].push(m)}}else console.error("THREE.Geometry.merge(): geometry not an instance of THREE.Geometry.",a)},mergeMesh:function(a){a&&a.isMesh?(a.matrixAutoUpdate&&
+l=a.faces,k=this.colors,q=a.colors;void 0===c&&(c=0);void 0!==b&&(d=(new xa).getNormalMatrix(b));for(var p=0,m=g.length;p<m;p++){var t=g[p].clone();void 0!==b&&t.applyMatrix4(b);f.push(t)}b=0;for(f=q.length;b<f;b++)k.push(q[b].clone());k=0;for(q=l.length;k<q;k++){b=l[k];m=b.vertexNormals;g=b.vertexColors;f=new zc(b.a+e,b.b+e,b.c+e);f.normal.copy(b.normal);void 0!==d&&f.normal.applyMatrix3(d).normalize();t=0;for(var r=m.length;t<r;t++)p=m[t].clone(),void 0!==d&&p.applyMatrix3(d).normalize(),f.vertexNormals.push(p);
+f.color.copy(b.color);m=0;for(t=g.length;m<t;m++)p=g[m],f.vertexColors.push(p.clone());f.materialIndex=b.materialIndex+c;h.push(f)}c=0;for(d=a.faceVertexUvs.length;c<d;c++)for(e=a.faceVertexUvs[c],void 0===this.faceVertexUvs[c]&&(this.faceVertexUvs[c]=[]),h=0,l=e.length;h<l;h++){k=e[h];q=[];b=0;for(f=k.length;b<f;b++)q.push(k[b].clone());this.faceVertexUvs[c].push(q)}}else console.error("THREE.Geometry.merge(): geometry not an instance of THREE.Geometry.",a)},mergeMesh:function(a){a&&a.isMesh?(a.matrixAutoUpdate&&
 a.updateMatrix(),this.merge(a.geometry,a.matrix)):console.error("THREE.Geometry.mergeMesh(): mesh not an instance of THREE.Mesh.",a)},mergeVertices:function(){for(var a={},b=[],c=[],d=Math.pow(10,4),e=0,f=this.vertices.length;e<f;e++){var g=this.vertices[e];g=Math.round(g.x*d)+"_"+Math.round(g.y*d)+"_"+Math.round(g.z*d);void 0===a[g]?(a[g]=e,b.push(this.vertices[e]),c[e]=b.length-1):c[e]=c[a[g]]}a=[];d=0;for(e=this.faces.length;d<e;d++)for(f=this.faces[d],f.a=c[f.a],f.b=c[f.b],f.c=c[f.c],f=[f.a,f.b,
 a.updateMatrix(),this.merge(a.geometry,a.matrix)):console.error("THREE.Geometry.mergeMesh(): mesh not an instance of THREE.Mesh.",a)},mergeVertices:function(){for(var a={},b=[],c=[],d=Math.pow(10,4),e=0,f=this.vertices.length;e<f;e++){var g=this.vertices[e];g=Math.round(g.x*d)+"_"+Math.round(g.y*d)+"_"+Math.round(g.z*d);void 0===a[g]?(a[g]=e,b.push(this.vertices[e]),c[e]=b.length-1):c[e]=c[a[g]]}a=[];d=0;for(e=this.faces.length;d<e;d++)for(f=this.faces[d],f.a=c[f.a],f.b=c[f.b],f.c=c[f.c],f=[f.a,f.b,
 f.c],g=0;3>g;g++)if(f[g]===f[(g+1)%3]){a.push(d);break}for(c=a.length-1;0<=c;c--)for(d=a[c],this.faces.splice(d,1),e=0,f=this.faceVertexUvs.length;e<f;e++)this.faceVertexUvs[e].splice(d,1);c=this.vertices.length-b.length;this.vertices=b;return c},setFromPoints:function(a){this.vertices=[];for(var b=0,c=a.length;b<c;b++){var d=a[b];this.vertices.push(new m(d.x,d.y,d.z||0))}return this},sortFacesByMaterialIndex:function(){for(var a=this.faces,b=a.length,c=0;c<b;c++)a[c]._id=c;a.sort(function(a,b){return a.materialIndex-
 f.c],g=0;3>g;g++)if(f[g]===f[(g+1)%3]){a.push(d);break}for(c=a.length-1;0<=c;c--)for(d=a[c],this.faces.splice(d,1),e=0,f=this.faceVertexUvs.length;e<f;e++)this.faceVertexUvs[e].splice(d,1);c=this.vertices.length-b.length;this.vertices=b;return c},setFromPoints:function(a){this.vertices=[];for(var b=0,c=a.length;b<c;b++){var d=a[b];this.vertices.push(new m(d.x,d.y,d.z||0))}return this},sortFacesByMaterialIndex:function(){for(var a=this.faces,b=a.length,c=0;c<b;c++)a[c]._id=c;a.sort(function(a,b){return a.materialIndex-
 b.materialIndex});c=this.faceVertexUvs[0];var d=this.faceVertexUvs[1],e,f;c&&c.length===b&&(e=[]);d&&d.length===b&&(f=[]);for(var g=0;g<b;g++){var h=a[g]._id;e&&e.push(c[h]);f&&f.push(d[h])}e&&(this.faceVertexUvs[0]=e);f&&(this.faceVertexUvs[1]=f)},toJSON:function(){function a(a,b,c){return c?a|1<<b:a&~(1<<b)}function b(a){var b=a.x.toString()+a.y.toString()+a.z.toString();if(void 0!==k[b])return k[b];k[b]=l.length/3;l.push(a.x,a.y,a.z);return k[b]}function c(a){var b=a.r.toString()+a.g.toString()+
 b.materialIndex});c=this.faceVertexUvs[0];var d=this.faceVertexUvs[1],e,f;c&&c.length===b&&(e=[]);d&&d.length===b&&(f=[]);for(var g=0;g<b;g++){var h=a[g]._id;e&&e.push(c[h]);f&&f.push(d[h])}e&&(this.faceVertexUvs[0]=e);f&&(this.faceVertexUvs[1]=f)},toJSON:function(){function a(a,b,c){return c?a|1<<b:a&~(1<<b)}function b(a){var b=a.x.toString()+a.y.toString()+a.z.toString();if(void 0!==k[b])return k[b];k[b]=l.length/3;l.push(a.x,a.y,a.z);return k[b]}function c(a){var b=a.r.toString()+a.g.toString()+
-a.b.toString();if(void 0!==p[b])return p[b];p[b]=m.length;m.push(a.getHex());return p[b]}function d(a){var b=a.x.toString()+a.y.toString();if(void 0!==r[b])return r[b];r[b]=v.length/2;v.push(a.x,a.y);return r[b]}var e={metadata:{version:4.5,type:"Geometry",generator:"Geometry.toJSON"}};e.uuid=this.uuid;e.type=this.type;""!==this.name&&(e.name=this.name);if(void 0!==this.parameters){var f=this.parameters,g;for(g in f)void 0!==f[g]&&(e[g]=f[g]);return e}f=[];for(g=0;g<this.vertices.length;g++){var h=
-this.vertices[g];f.push(h.x,h.y,h.z)}g=[];var l=[],k={},m=[],p={},v=[],r={};for(h=0;h<this.faces.length;h++){var q=this.faces[h],u=void 0!==this.faceVertexUvs[0][h],A=0<q.normal.length(),w=0<q.vertexNormals.length,x=1!==q.color.r||1!==q.color.g||1!==q.color.b,y=0<q.vertexColors.length,z=0;z=a(z,0,0);z=a(z,1,!0);z=a(z,2,!1);z=a(z,3,u);z=a(z,4,A);z=a(z,5,w);z=a(z,6,x);z=a(z,7,y);g.push(z);g.push(q.a,q.b,q.c);g.push(q.materialIndex);u&&(u=this.faceVertexUvs[0][h],g.push(d(u[0]),d(u[1]),d(u[2])));A&&
-g.push(b(q.normal));w&&(A=q.vertexNormals,g.push(b(A[0]),b(A[1]),b(A[2])));x&&g.push(c(q.color));y&&(q=q.vertexColors,g.push(c(q[0]),c(q[1]),c(q[2])))}e.data={};e.data.vertices=f;e.data.normals=l;0<m.length&&(e.data.colors=m);0<v.length&&(e.data.uvs=[v]);e.data.faces=g;return e},clone:function(){return(new L).copy(this)},copy:function(a){this.vertices=[];this.colors=[];this.faces=[];this.faceVertexUvs=[[]];this.morphTargets=[];this.morphNormals=[];this.skinWeights=[];this.skinIndices=[];this.lineDistances=
+a.b.toString();if(void 0!==p[b])return p[b];p[b]=q.length;q.push(a.getHex());return p[b]}function d(a){var b=a.x.toString()+a.y.toString();if(void 0!==t[b])return t[b];t[b]=m.length/2;m.push(a.x,a.y);return t[b]}var e={metadata:{version:4.5,type:"Geometry",generator:"Geometry.toJSON"}};e.uuid=this.uuid;e.type=this.type;""!==this.name&&(e.name=this.name);if(void 0!==this.parameters){var f=this.parameters,g;for(g in f)void 0!==f[g]&&(e[g]=f[g]);return e}f=[];for(g=0;g<this.vertices.length;g++){var h=
+this.vertices[g];f.push(h.x,h.y,h.z)}g=[];var l=[],k={},q=[],p={},m=[],t={};for(h=0;h<this.faces.length;h++){var r=this.faces[h],u=void 0!==this.faceVertexUvs[0][h],A=0<r.normal.length(),w=0<r.vertexNormals.length,x=1!==r.color.r||1!==r.color.g||1!==r.color.b,y=0<r.vertexColors.length,z=0;z=a(z,0,0);z=a(z,1,!0);z=a(z,2,!1);z=a(z,3,u);z=a(z,4,A);z=a(z,5,w);z=a(z,6,x);z=a(z,7,y);g.push(z);g.push(r.a,r.b,r.c);g.push(r.materialIndex);u&&(u=this.faceVertexUvs[0][h],g.push(d(u[0]),d(u[1]),d(u[2])));A&&
+g.push(b(r.normal));w&&(A=r.vertexNormals,g.push(b(A[0]),b(A[1]),b(A[2])));x&&g.push(c(r.color));y&&(r=r.vertexColors,g.push(c(r[0]),c(r[1]),c(r[2])))}e.data={};e.data.vertices=f;e.data.normals=l;0<q.length&&(e.data.colors=q);0<m.length&&(e.data.uvs=[m]);e.data.faces=g;return e},clone:function(){return(new L).copy(this)},copy:function(a){this.vertices=[];this.colors=[];this.faces=[];this.faceVertexUvs=[[]];this.morphTargets=[];this.morphNormals=[];this.skinWeights=[];this.skinIndices=[];this.lineDistances=
 [];this.boundingSphere=this.boundingBox=null;this.name=a.name;for(var b=a.vertices,c=0,d=b.length;c<d;c++)this.vertices.push(b[c].clone());b=a.colors;c=0;for(d=b.length;c<d;c++)this.colors.push(b[c].clone());b=a.faces;c=0;for(d=b.length;c<d;c++)this.faces.push(b[c].clone());b=0;for(c=a.faceVertexUvs.length;b<c;b++){d=a.faceVertexUvs[b];void 0===this.faceVertexUvs[b]&&(this.faceVertexUvs[b]=[]);for(var e=0,f=d.length;e<f;e++){for(var g=d[e],h=[],l=0,k=g.length;l<k;l++)h.push(g[l].clone());this.faceVertexUvs[b].push(h)}}b=
 [];this.boundingSphere=this.boundingBox=null;this.name=a.name;for(var b=a.vertices,c=0,d=b.length;c<d;c++)this.vertices.push(b[c].clone());b=a.colors;c=0;for(d=b.length;c<d;c++)this.colors.push(b[c].clone());b=a.faces;c=0;for(d=b.length;c<d;c++)this.faces.push(b[c].clone());b=0;for(c=a.faceVertexUvs.length;b<c;b++){d=a.faceVertexUvs[b];void 0===this.faceVertexUvs[b]&&(this.faceVertexUvs[b]=[]);for(var e=0,f=d.length;e<f;e++){for(var g=d[e],h=[],l=0,k=g.length;l<k;l++)h.push(g[l].clone());this.faceVertexUvs[b].push(h)}}b=
 a.morphTargets;c=0;for(d=b.length;c<d;c++){e={};e.name=b[c].name;if(void 0!==b[c].vertices)for(e.vertices=[],f=0,g=b[c].vertices.length;f<g;f++)e.vertices.push(b[c].vertices[f].clone());if(void 0!==b[c].normals)for(e.normals=[],f=0,g=b[c].normals.length;f<g;f++)e.normals.push(b[c].normals[f].clone());this.morphTargets.push(e)}b=a.morphNormals;c=0;for(d=b.length;c<d;c++){e={};if(void 0!==b[c].vertexNormals)for(e.vertexNormals=[],f=0,g=b[c].vertexNormals.length;f<g;f++)h=b[c].vertexNormals[f],l={},
 a.morphTargets;c=0;for(d=b.length;c<d;c++){e={};e.name=b[c].name;if(void 0!==b[c].vertices)for(e.vertices=[],f=0,g=b[c].vertices.length;f<g;f++)e.vertices.push(b[c].vertices[f].clone());if(void 0!==b[c].normals)for(e.normals=[],f=0,g=b[c].normals.length;f<g;f++)e.normals.push(b[c].normals[f].clone());this.morphTargets.push(e)}b=a.morphNormals;c=0;for(d=b.length;c<d;c++){e={};if(void 0!==b[c].vertexNormals)for(e.vertexNormals=[],f=0,g=b[c].vertexNormals.length;f<g;f++)h=b[c].vertexNormals[f],l={},
 l.a=h.a.clone(),l.b=h.b.clone(),l.c=h.c.clone(),e.vertexNormals.push(l);if(void 0!==b[c].faceNormals)for(e.faceNormals=[],f=0,g=b[c].faceNormals.length;f<g;f++)e.faceNormals.push(b[c].faceNormals[f].clone());this.morphNormals.push(e)}b=a.skinWeights;c=0;for(d=b.length;c<d;c++)this.skinWeights.push(b[c].clone());b=a.skinIndices;c=0;for(d=b.length;c<d;c++)this.skinIndices.push(b[c].clone());b=a.lineDistances;c=0;for(d=b.length;c<d;c++)this.lineDistances.push(b[c]);b=a.boundingBox;null!==b&&(this.boundingBox=
 l.a=h.a.clone(),l.b=h.b.clone(),l.c=h.c.clone(),e.vertexNormals.push(l);if(void 0!==b[c].faceNormals)for(e.faceNormals=[],f=0,g=b[c].faceNormals.length;f<g;f++)e.faceNormals.push(b[c].faceNormals[f].clone());this.morphNormals.push(e)}b=a.skinWeights;c=0;for(d=b.length;c<d;c++)this.skinWeights.push(b[c].clone());b=a.skinIndices;c=0;for(d=b.length;c<d;c++)this.skinIndices.push(b[c].clone());b=a.lineDistances;c=0;for(d=b.length;c<d;c++)this.lineDistances.push(b[c]);b=a.boundingBox;null!==b&&(this.boundingBox=
 b.clone());b=a.boundingSphere;null!==b&&(this.boundingSphere=b.clone());this.elementsNeedUpdate=a.elementsNeedUpdate;this.verticesNeedUpdate=a.verticesNeedUpdate;this.uvsNeedUpdate=a.uvsNeedUpdate;this.normalsNeedUpdate=a.normalsNeedUpdate;this.colorsNeedUpdate=a.colorsNeedUpdate;this.lineDistancesNeedUpdate=a.lineDistancesNeedUpdate;this.groupsNeedUpdate=a.groupsNeedUpdate;return this},dispose:function(){this.dispatchEvent({type:"dispose"})}});var kh=function(a){function b(b,d,e,f,g,h){a.call(this);
 b.clone());b=a.boundingSphere;null!==b&&(this.boundingSphere=b.clone());this.elementsNeedUpdate=a.elementsNeedUpdate;this.verticesNeedUpdate=a.verticesNeedUpdate;this.uvsNeedUpdate=a.uvsNeedUpdate;this.normalsNeedUpdate=a.normalsNeedUpdate;this.colorsNeedUpdate=a.colorsNeedUpdate;this.lineDistancesNeedUpdate=a.lineDistancesNeedUpdate;this.groupsNeedUpdate=a.groupsNeedUpdate;return this},dispose:function(){this.dispatchEvent({type:"dispose"})}});var kh=function(a){function b(b,d,e,f,g,h){a.call(this);
 this.type="BoxGeometry";this.parameters={width:b,height:d,depth:e,widthSegments:f,heightSegments:g,depthSegments:h};this.fromBufferGeometry(new Gd(b,d,e,f,g,h));this.mergeVertices()}a&&(b.__proto__=a);b.prototype=Object.create(a&&a.prototype);return b.prototype.constructor=b}(L),Gd=function(a){function b(b,d,e,f,g,h){function c(a,b,c,d,e,f,g,h,l,n,w){var A=f/l,x=g/n,y=f/2,z=g/2,C=h/2;g=l+1;for(var E=n+1,B=f=0,D=new m,F=0;F<E;F++)for(var G=F*x-z,H=0;H<g;H++)D[a]=(H*A-y)*d,D[b]=G*e,D[c]=C,p.push(D.x,
 this.type="BoxGeometry";this.parameters={width:b,height:d,depth:e,widthSegments:f,heightSegments:g,depthSegments:h};this.fromBufferGeometry(new Gd(b,d,e,f,g,h));this.mergeVertices()}a&&(b.__proto__=a);b.prototype=Object.create(a&&a.prototype);return b.prototype.constructor=b}(L),Gd=function(a){function b(b,d,e,f,g,h){function c(a,b,c,d,e,f,g,h,l,n,w){var A=f/l,x=g/n,y=f/2,z=g/2,C=h/2;g=l+1;for(var E=n+1,B=f=0,D=new m,F=0;F<E;F++)for(var G=F*x-z,H=0;H<g;H++)D[a]=(H*A-y)*d,D[b]=G*e,D[c]=C,p.push(D.x,
-D.y,D.z),D[a]=0,D[b]=0,D[c]=0<h?1:-1,v.push(D.x,D.y,D.z),r.push(H/l),r.push(1-F/n),f+=1;for(a=0;a<n;a++)for(b=0;b<l;b++)c=q+b+g*(a+1),d=q+(b+1)+g*(a+1),e=q+(b+1)+g*a,t.push(q+b+g*a,c,e),t.push(c,d,e),B+=6;k.addGroup(u,B,w);u+=B;q+=f}a.call(this);this.type="BoxBufferGeometry";this.parameters={width:b,height:d,depth:e,widthSegments:f,heightSegments:g,depthSegments:h};var k=this;b=b||1;d=d||1;e=e||1;f=Math.floor(f)||1;g=Math.floor(g)||1;h=Math.floor(h)||1;var t=[],p=[],v=[],r=[],q=0,u=0;c("z","y","x",
--1,-1,e,d,b,h,g,0);c("z","y","x",1,-1,e,d,-b,h,g,1);c("x","z","y",1,1,b,e,d,f,h,2);c("x","z","y",1,-1,b,e,-d,f,h,3);c("x","y","z",1,-1,b,d,e,f,g,4);c("x","y","z",-1,-1,b,d,-e,f,g,5);this.setIndex(t);this.setAttribute("position",new B(p,3));this.setAttribute("normal",new B(v,3));this.setAttribute("uv",new B(r,2))}a&&(b.__proto__=a);b.prototype=Object.create(a&&a.prototype);return b.prototype.constructor=b}(F),Sh={clone:Dc,merge:va};Ba.prototype=Object.create(G.prototype);Ba.prototype.constructor=Ba;
+D.y,D.z),D[a]=0,D[b]=0,D[c]=0<h?1:-1,v.push(D.x,D.y,D.z),t.push(H/l),t.push(1-F/n),f+=1;for(a=0;a<n;a++)for(b=0;b<l;b++)c=r+b+g*(a+1),d=r+(b+1)+g*(a+1),e=r+(b+1)+g*a,q.push(r+b+g*a,c,e),q.push(c,d,e),B+=6;k.addGroup(u,B,w);u+=B;r+=f}a.call(this);this.type="BoxBufferGeometry";this.parameters={width:b,height:d,depth:e,widthSegments:f,heightSegments:g,depthSegments:h};var k=this;b=b||1;d=d||1;e=e||1;f=Math.floor(f)||1;g=Math.floor(g)||1;h=Math.floor(h)||1;var q=[],p=[],v=[],t=[],r=0,u=0;c("z","y","x",
+-1,-1,e,d,b,h,g,0);c("z","y","x",1,-1,e,d,-b,h,g,1);c("x","z","y",1,1,b,e,d,f,h,2);c("x","z","y",1,-1,b,e,-d,f,h,3);c("x","y","z",1,-1,b,d,e,f,g,4);c("x","y","z",-1,-1,b,d,-e,f,g,5);this.setIndex(q);this.setAttribute("position",new B(p,3));this.setAttribute("normal",new B(v,3));this.setAttribute("uv",new B(t,2))}a&&(b.__proto__=a);b.prototype=Object.create(a&&a.prototype);return b.prototype.constructor=b}(F),Sh={clone:Dc,merge:va};Ba.prototype=Object.create(G.prototype);Ba.prototype.constructor=Ba;
 Ba.prototype.isShaderMaterial=!0;Ba.prototype.copy=function(a){G.prototype.copy.call(this,a);this.fragmentShader=a.fragmentShader;this.vertexShader=a.vertexShader;this.uniforms=Dc(a.uniforms);this.defines=Object.assign({},a.defines);this.wireframe=a.wireframe;this.wireframeLinewidth=a.wireframeLinewidth;this.lights=a.lights;this.clipping=a.clipping;this.skinning=a.skinning;this.morphTargets=a.morphTargets;this.morphNormals=a.morphNormals;this.extensions=Object.assign({},a.extensions);return this};
 Ba.prototype.isShaderMaterial=!0;Ba.prototype.copy=function(a){G.prototype.copy.call(this,a);this.fragmentShader=a.fragmentShader;this.vertexShader=a.vertexShader;this.uniforms=Dc(a.uniforms);this.defines=Object.assign({},a.defines);this.wireframe=a.wireframe;this.wireframeLinewidth=a.wireframeLinewidth;this.lights=a.lights;this.clipping=a.clipping;this.skinning=a.skinning;this.morphTargets=a.morphTargets;this.morphNormals=a.morphNormals;this.extensions=Object.assign({},a.extensions);return this};
 Ba.prototype.toJSON=function(a){var b=G.prototype.toJSON.call(this,a);b.uniforms={};for(var c in this.uniforms){var d=this.uniforms[c].value;b.uniforms[c]=d&&d.isTexture?{type:"t",value:d.toJSON(a).uuid}:d&&d.isColor?{type:"c",value:d.getHex()}:d&&d.isVector2?{type:"v2",value:d.toArray()}:d&&d.isVector3?{type:"v3",value:d.toArray()}:d&&d.isVector4?{type:"v4",value:d.toArray()}:d&&d.isMatrix3?{type:"m3",value:d.toArray()}:d&&d.isMatrix4?{type:"m4",value:d.toArray()}:{value:d}}0<Object.keys(this.defines).length&&
 Ba.prototype.toJSON=function(a){var b=G.prototype.toJSON.call(this,a);b.uniforms={};for(var c in this.uniforms){var d=this.uniforms[c].value;b.uniforms[c]=d&&d.isTexture?{type:"t",value:d.toJSON(a).uuid}:d&&d.isColor?{type:"c",value:d.getHex()}:d&&d.isVector2?{type:"v2",value:d.toArray()}:d&&d.isVector3?{type:"v3",value:d.toArray()}:d&&d.isVector4?{type:"v4",value:d.toArray()}:d&&d.isMatrix3?{type:"m3",value:d.toArray()}:d&&d.isMatrix4?{type:"m4",value:d.toArray()}:{value:d}}0<Object.keys(this.defines).length&&
 (b.defines=this.defines);b.vertexShader=this.vertexShader;b.fragmentShader=this.fragmentShader;a={};for(var e in this.extensions)!0===this.extensions[e]&&(a[e]=!0);0<Object.keys(a).length&&(b.extensions=a);return b};fb.prototype=Object.assign(Object.create(z.prototype),{constructor:fb,isCamera:!0,copy:function(a,b){z.prototype.copy.call(this,a,b);this.matrixWorldInverse.copy(a.matrixWorldInverse);this.projectionMatrix.copy(a.projectionMatrix);this.projectionMatrixInverse.copy(a.projectionMatrixInverse);
 (b.defines=this.defines);b.vertexShader=this.vertexShader;b.fragmentShader=this.fragmentShader;a={};for(var e in this.extensions)!0===this.extensions[e]&&(a[e]=!0);0<Object.keys(a).length&&(b.extensions=a);return b};fb.prototype=Object.assign(Object.create(z.prototype),{constructor:fb,isCamera:!0,copy:function(a,b){z.prototype.copy.call(this,a,b);this.matrixWorldInverse.copy(a.matrixWorldInverse);this.projectionMatrix.copy(a.projectionMatrix);this.projectionMatrixInverse.copy(a.projectionMatrixInverse);
@@ -589,8 +589,8 @@ offsetX:0,offsetY:0,width:1,height:1});this.view.enabled=!0;this.view.fullWidth=
 h=f.fullHeight;e+=f.offsetX*d/g;b-=f.offsetY*c/h;d*=f.width/g;c*=f.height/h}f=this.filmOffset;0!==f&&(e+=a*f/this.getFilmWidth());this.projectionMatrix.makePerspective(e,e+d,b,b-c,a,this.far);this.projectionMatrixInverse.getInverse(this.projectionMatrix)},toJSON:function(a){a=z.prototype.toJSON.call(this,a);a.object.fov=this.fov;a.object.zoom=this.zoom;a.object.near=this.near;a.object.far=this.far;a.object.focus=this.focus;a.object.aspect=this.aspect;null!==this.view&&(a.object.view=Object.assign({},
 h=f.fullHeight;e+=f.offsetX*d/g;b-=f.offsetY*c/h;d*=f.width/g;c*=f.height/h}f=this.filmOffset;0!==f&&(e+=a*f/this.getFilmWidth());this.projectionMatrix.makePerspective(e,e+d,b,b-c,a,this.far);this.projectionMatrixInverse.getInverse(this.projectionMatrix)},toJSON:function(a){a=z.prototype.toJSON.call(this,a);a.object.fov=this.fov;a.object.zoom=this.zoom;a.object.near=this.near;a.object.far=this.far;a.object.focus=this.focus;a.object.aspect=this.aspect;null!==this.view&&(a.object.view=Object.assign({},
 this.view));a.object.filmGauge=this.filmGauge;a.object.filmOffset=this.filmOffset;return a}});Ec.prototype=Object.create(z.prototype);Ec.prototype.constructor=Ec;Zb.prototype=Object.create(Ha.prototype);Zb.prototype.constructor=Zb;Zb.prototype.isWebGLCubeRenderTarget=!0;Zb.prototype.fromEquirectangularTexture=function(a,b){this.texture.type=b.type;this.texture.format=b.format;this.texture.encoding=b.encoding;var c=new xd,d=new Ba({name:"CubemapFromEquirect",uniforms:Dc({tEquirect:{value:null}}),vertexShader:"varying vec3 vWorldDirection;\nvec3 transformDirection( in vec3 dir, in mat4 matrix ) {\n\treturn normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );\n}\nvoid main() {\n\tvWorldDirection = transformDirection( position, modelMatrix );\n\t#include <begin_vertex>\n\t#include <project_vertex>\n}",
 this.view));a.object.filmGauge=this.filmGauge;a.object.filmOffset=this.filmOffset;return a}});Ec.prototype=Object.create(z.prototype);Ec.prototype.constructor=Ec;Zb.prototype=Object.create(Ha.prototype);Zb.prototype.constructor=Zb;Zb.prototype.isWebGLCubeRenderTarget=!0;Zb.prototype.fromEquirectangularTexture=function(a,b){this.texture.type=b.type;this.texture.format=b.format;this.texture.encoding=b.encoding;var c=new xd,d=new Ba({name:"CubemapFromEquirect",uniforms:Dc({tEquirect:{value:null}}),vertexShader:"varying vec3 vWorldDirection;\nvec3 transformDirection( in vec3 dir, in mat4 matrix ) {\n\treturn normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );\n}\nvoid main() {\n\tvWorldDirection = transformDirection( position, modelMatrix );\n\t#include <begin_vertex>\n\t#include <project_vertex>\n}",
 fragmentShader:"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}",side:1,blending:0});d.uniforms.tEquirect.value=b;b=new X(new Gd(5,5,5),d);c.add(b);(new Ec(1,10,this)).update(a,c);b.geometry.dispose();b.material.dispose();return this};$b.prototype=Object.create(W.prototype);$b.prototype.constructor=$b;$b.prototype.isDataTexture=
 fragmentShader:"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}",side:1,blending:0});d.uniforms.tEquirect.value=b;b=new X(new Gd(5,5,5),d);c.add(b);(new Ec(1,10,this)).update(a,c);b.geometry.dispose();b.material.dispose();return this};$b.prototype=Object.create(W.prototype);$b.prototype.constructor=$b;$b.prototype.isDataTexture=
-!0;var td=new eb,Kf=new m;Object.assign(Fc.prototype,{set:function(a,b,c,d,e,f){var g=this.planes;g[0].copy(a);g[1].copy(b);g[2].copy(c);g[3].copy(d);g[4].copy(e);g[5].copy(f);return this},clone:function(){return(new this.constructor).copy(this)},copy:function(a){for(var b=this.planes,c=0;6>c;c++)b[c].copy(a.planes[c]);return this},setFromProjectionMatrix:function(a){var b=this.planes,c=a.elements;a=c[0];var d=c[1],e=c[2],f=c[3],g=c[4],h=c[5],l=c[6],k=c[7],m=c[8],p=c[9],v=c[10],r=c[11],q=c[12],u=
-c[13],w=c[14];c=c[15];b[0].setComponents(f-a,k-g,r-m,c-q).normalize();b[1].setComponents(f+a,k+g,r+m,c+q).normalize();b[2].setComponents(f+d,k+h,r+p,c+u).normalize();b[3].setComponents(f-d,k-h,r-p,c-u).normalize();b[4].setComponents(f-e,k-l,r-v,c-w).normalize();b[5].setComponents(f+e,k+l,r+v,c+w).normalize();return this},intersectsObject:function(a){var b=a.geometry;null===b.boundingSphere&&b.computeBoundingSphere();td.copy(b.boundingSphere).applyMatrix4(a.matrixWorld);return this.intersectsSphere(td)},
+!0;var td=new eb,Kf=new m;Object.assign(Fc.prototype,{set:function(a,b,c,d,e,f){var g=this.planes;g[0].copy(a);g[1].copy(b);g[2].copy(c);g[3].copy(d);g[4].copy(e);g[5].copy(f);return this},clone:function(){return(new this.constructor).copy(this)},copy:function(a){for(var b=this.planes,c=0;6>c;c++)b[c].copy(a.planes[c]);return this},setFromProjectionMatrix:function(a){var b=this.planes,c=a.elements;a=c[0];var d=c[1],e=c[2],f=c[3],g=c[4],h=c[5],l=c[6],k=c[7],q=c[8],p=c[9],m=c[10],t=c[11],r=c[12],u=
+c[13],w=c[14];c=c[15];b[0].setComponents(f-a,k-g,t-q,c-r).normalize();b[1].setComponents(f+a,k+g,t+q,c+r).normalize();b[2].setComponents(f+d,k+h,t+p,c+u).normalize();b[3].setComponents(f-d,k-h,t-p,c-u).normalize();b[4].setComponents(f-e,k-l,t-m,c-w).normalize();b[5].setComponents(f+e,k+l,t+m,c+w).normalize();return this},intersectsObject:function(a){var b=a.geometry;null===b.boundingSphere&&b.computeBoundingSphere();td.copy(b.boundingSphere).applyMatrix4(a.matrixWorld);return this.intersectsSphere(td)},
 intersectsSprite:function(a){td.center.set(0,0,0);td.radius=.7071067811865476;td.applyMatrix4(a.matrixWorld);return this.intersectsSphere(td)},intersectsSphere:function(a){var b=this.planes,c=a.center;a=-a.radius;for(var d=0;6>d;d++)if(b[d].distanceToPoint(c)<a)return!1;return!0},intersectsBox:function(a){for(var b=this.planes,c=0;6>c;c++){var d=b[c];Kf.x=0<d.normal.x?a.max.x:a.min.x;Kf.y=0<d.normal.y?a.max.y:a.min.y;Kf.z=0<d.normal.z?a.max.z:a.min.z;if(0>d.distanceToPoint(Kf))return!1}return!0},
 intersectsSprite:function(a){td.center.set(0,0,0);td.radius=.7071067811865476;td.applyMatrix4(a.matrixWorld);return this.intersectsSphere(td)},intersectsSphere:function(a){var b=this.planes,c=a.center;a=-a.radius;for(var d=0;6>d;d++)if(b[d].distanceToPoint(c)<a)return!1;return!0},intersectsBox:function(a){for(var b=this.planes,c=0;6>c;c++){var d=b[c];Kf.x=0<d.normal.x?a.max.x:a.min.x;Kf.y=0<d.normal.y?a.max.y:a.min.y;Kf.z=0<d.normal.z?a.max.z:a.min.z;if(0>d.distanceToPoint(Kf))return!1}return!0},
 containsPoint:function(a){for(var b=this.planes,c=0;6>c;c++)if(0>b[c].distanceToPoint(a))return!1;return!0}});var y={common:{diffuse:{value:new D(15658734)},opacity:{value:1},map:{value:null},uvTransform:{value:new xa},uv2Transform:{value:new xa},alphaMap:{value:null}},specularmap:{specularMap:{value:null}},envmap:{envMap:{value:null},flipEnvMap:{value:-1},reflectivity:{value:1},refractionRatio:{value:.98},maxMipLevel:{value:0}},aomap:{aoMap:{value:null},aoMapIntensity:{value:1}},lightmap:{lightMap:{value:null},
 containsPoint:function(a){for(var b=this.planes,c=0;6>c;c++)if(0>b[c].distanceToPoint(a))return!1;return!0}});var y={common:{diffuse:{value:new D(15658734)},opacity:{value:1},map:{value:null},uvTransform:{value:new xa},uv2Transform:{value:new xa},alphaMap:{value:null}},specularmap:{specularMap:{value:null}},envmap:{envMap:{value:null},flipEnvMap:{value:-1},reflectivity:{value:1},refractionRatio:{value:.98},maxMipLevel:{value:0}},aomap:{aoMap:{value:null},aoMapIntensity:{value:1}},lightmap:{lightMap:{value:null},
 lightMapIntensity:{value:1}},emissivemap:{emissiveMap:{value:null}},bumpmap:{bumpMap:{value:null},bumpScale:{value:1}},normalmap:{normalMap:{value:null},normalScale:{value:new w(1,1)}},displacementmap:{displacementMap:{value:null},displacementScale:{value:1},displacementBias:{value:0}},roughnessmap:{roughnessMap:{value:null}},metalnessmap:{metalnessMap:{value:null}},gradientmap:{gradientMap:{value:null}},fog:{fogDensity:{value:2.5E-4},fogNear:{value:1},fogFar:{value:2E3},fogColor:{value:new D(16777215)}},
 lightMapIntensity:{value:1}},emissivemap:{emissiveMap:{value:null}},bumpmap:{bumpMap:{value:null},bumpScale:{value:1}},normalmap:{normalMap:{value:null},normalScale:{value:new w(1,1)}},displacementmap:{displacementMap:{value:null},displacementScale:{value:1},displacementBias:{value:0}},roughnessmap:{roughnessMap:{value:null}},metalnessmap:{metalnessMap:{value:null}},gradientmap:{gradientMap:{value:null}},fog:{fogDensity:{value:2.5E-4},fogNear:{value:1},fogFar:{value:2E3},fogColor:{value:new D(16777215)}},
@@ -707,22 +707,22 @@ b=this.boneInverses,c=this.boneMatrices,d=this.boneTexture,e=0,f=a.length;e<f;e+
 Ki);Li.multiplyMatrices(c,Ki);Be.matrixWorld=Li;Be.raycast(a,Of);for(var f=0,g=Of.length;f<g;f++){var h=Of[f];h.instanceId=e;h.object=this;b.push(h)}Of.length=0}},setMatrixAt:function(a,b){b.toArray(this.instanceMatrix.array,16*a)},updateMorphTargets:function(){}});la.prototype=Object.create(G.prototype);la.prototype.constructor=la;la.prototype.isLineBasicMaterial=!0;la.prototype.copy=function(a){G.prototype.copy.call(this,a);this.color.copy(a.color);this.linewidth=a.linewidth;this.linecap=a.linecap;
 Ki);Li.multiplyMatrices(c,Ki);Be.matrixWorld=Li;Be.raycast(a,Of);for(var f=0,g=Of.length;f<g;f++){var h=Of[f];h.instanceId=e;h.object=this;b.push(h)}Of.length=0}},setMatrixAt:function(a,b){b.toArray(this.instanceMatrix.array,16*a)},updateMorphTargets:function(){}});la.prototype=Object.create(G.prototype);la.prototype.constructor=la;la.prototype.isLineBasicMaterial=!0;la.prototype.copy=function(a){G.prototype.copy.call(this,a);this.color.copy(a.color);this.linewidth=a.linewidth;this.linecap=a.linecap;
 this.linejoin=a.linejoin;this.morphTargets=a.morphTargets;return this};var Mi=new m,Ni=new m,Oi=new M,Pf=new Wb,Ce=new eb;Ka.prototype=Object.assign(Object.create(z.prototype),{constructor:Ka,isLine:!0,copy:function(a){z.prototype.copy.call(this,a);this.material=a.material;this.geometry=a.geometry;return this},computeLineDistances:function(){var a=this.geometry;if(a.isBufferGeometry)if(null===a.index){for(var b=a.attributes.position,c=[0],d=1,e=b.count;d<e;d++)Mi.fromBufferAttribute(b,d-1),Ni.fromBufferAttribute(b,
 this.linejoin=a.linejoin;this.morphTargets=a.morphTargets;return this};var Mi=new m,Ni=new m,Oi=new M,Pf=new Wb,Ce=new eb;Ka.prototype=Object.assign(Object.create(z.prototype),{constructor:Ka,isLine:!0,copy:function(a){z.prototype.copy.call(this,a);this.material=a.material;this.geometry=a.geometry;return this},computeLineDistances:function(){var a=this.geometry;if(a.isBufferGeometry)if(null===a.index){for(var b=a.attributes.position,c=[0],d=1,e=b.count;d<e;d++)Mi.fromBufferAttribute(b,d-1),Ni.fromBufferAttribute(b,
 d),c[d]=c[d-1],c[d]+=Mi.distanceTo(Ni);a.setAttribute("lineDistance",new B(c,1))}else console.warn("THREE.Line.computeLineDistances(): Computation only possible with non-indexed BufferGeometry.");else if(a.isGeometry)for(b=a.vertices,a=a.lineDistances,a[0]=0,c=1,d=b.length;c<d;c++)a[c]=a[c-1],a[c]+=b[c-1].distanceTo(b[c]);return this},raycast:function(a,b){var c=this.geometry,d=this.matrixWorld,e=a.params.Line.threshold;null===c.boundingSphere&&c.computeBoundingSphere();Ce.copy(c.boundingSphere);
 d),c[d]=c[d-1],c[d]+=Mi.distanceTo(Ni);a.setAttribute("lineDistance",new B(c,1))}else console.warn("THREE.Line.computeLineDistances(): Computation only possible with non-indexed BufferGeometry.");else if(a.isGeometry)for(b=a.vertices,a=a.lineDistances,a[0]=0,c=1,d=b.length;c<d;c++)a[c]=a[c-1],a[c]+=b[c-1].distanceTo(b[c]);return this},raycast:function(a,b){var c=this.geometry,d=this.matrixWorld,e=a.params.Line.threshold;null===c.boundingSphere&&c.computeBoundingSphere();Ce.copy(c.boundingSphere);
-Ce.applyMatrix4(d);Ce.radius+=e;if(!1!==a.ray.intersectsSphere(Ce)){Oi.getInverse(d);Pf.copy(a.ray).applyMatrix4(Oi);d=e/((this.scale.x+this.scale.y+this.scale.z)/3);d*=d;var f=new m,g=new m;e=new m;var h=new m,l=this&&this.isLineSegments?2:1;if(c.isBufferGeometry){var k=c.index;c=c.attributes.position.array;if(null!==k){k=k.array;for(var t=0,p=k.length-1;t<p;t+=l){var v=k[t+1];f.fromArray(c,3*k[t]);g.fromArray(c,3*v);Pf.distanceSqToSegment(f,g,h,e)>d||(h.applyMatrix4(this.matrixWorld),v=a.ray.origin.distanceTo(h),
-v<a.near||v>a.far||b.push({distance:v,point:e.clone().applyMatrix4(this.matrixWorld),index:t,face:null,faceIndex:null,object:this}))}}else for(k=0,t=c.length/3-1;k<t;k+=l)f.fromArray(c,3*k),g.fromArray(c,3*k+3),Pf.distanceSqToSegment(f,g,h,e)>d||(h.applyMatrix4(this.matrixWorld),p=a.ray.origin.distanceTo(h),p<a.near||p>a.far||b.push({distance:p,point:e.clone().applyMatrix4(this.matrixWorld),index:k,face:null,faceIndex:null,object:this}))}else if(c.isGeometry)for(f=c.vertices,g=f.length,c=0;c<g-1;c+=
+Ce.applyMatrix4(d);Ce.radius+=e;if(!1!==a.ray.intersectsSphere(Ce)){Oi.getInverse(d);Pf.copy(a.ray).applyMatrix4(Oi);d=e/((this.scale.x+this.scale.y+this.scale.z)/3);d*=d;var f=new m,g=new m;e=new m;var h=new m,l=this&&this.isLineSegments?2:1;if(c.isBufferGeometry){var k=c.index;c=c.attributes.position.array;if(null!==k){k=k.array;for(var q=0,p=k.length-1;q<p;q+=l){var v=k[q+1];f.fromArray(c,3*k[q]);g.fromArray(c,3*v);Pf.distanceSqToSegment(f,g,h,e)>d||(h.applyMatrix4(this.matrixWorld),v=a.ray.origin.distanceTo(h),
+v<a.near||v>a.far||b.push({distance:v,point:e.clone().applyMatrix4(this.matrixWorld),index:q,face:null,faceIndex:null,object:this}))}}else for(k=0,q=c.length/3-1;k<q;k+=l)f.fromArray(c,3*k),g.fromArray(c,3*k+3),Pf.distanceSqToSegment(f,g,h,e)>d||(h.applyMatrix4(this.matrixWorld),p=a.ray.origin.distanceTo(h),p<a.near||p>a.far||b.push({distance:p,point:e.clone().applyMatrix4(this.matrixWorld),index:k,face:null,faceIndex:null,object:this}))}else if(c.isGeometry)for(f=c.vertices,g=f.length,c=0;c<g-1;c+=
 l)Pf.distanceSqToSegment(f[c],f[c+1],h,e)>d||(h.applyMatrix4(this.matrixWorld),k=a.ray.origin.distanceTo(h),k<a.near||k>a.far||b.push({distance:k,point:e.clone().applyMatrix4(this.matrixWorld),index:c,face:null,faceIndex:null,object:this}))}},updateMorphTargets:function(){var a=this.geometry;if(a.isBufferGeometry){a=a.morphAttributes;var b=Object.keys(a);if(0<b.length&&(a=a[b[0]],void 0!==a)){this.morphTargetInfluences=[];this.morphTargetDictionary={};b=0;for(var c=a.length;b<c;b++){var d=a[b].name||
 l)Pf.distanceSqToSegment(f[c],f[c+1],h,e)>d||(h.applyMatrix4(this.matrixWorld),k=a.ray.origin.distanceTo(h),k<a.near||k>a.far||b.push({distance:k,point:e.clone().applyMatrix4(this.matrixWorld),index:c,face:null,faceIndex:null,object:this}))}},updateMorphTargets:function(){var a=this.geometry;if(a.isBufferGeometry){a=a.morphAttributes;var b=Object.keys(a);if(0<b.length&&(a=a[b[0]],void 0!==a)){this.morphTargetInfluences=[];this.morphTargetDictionary={};b=0;for(var c=a.length;b<c;b++){var d=a[b].name||
 String(b);this.morphTargetInfluences.push(0);this.morphTargetDictionary[d]=b}}}else a=a.morphTargets,void 0!==a&&0<a.length&&console.error("THREE.Line.updateMorphTargets() does not support THREE.Geometry. Use THREE.BufferGeometry instead.")}});var Qf=new m,Rf=new m;ha.prototype=Object.assign(Object.create(Ka.prototype),{constructor:ha,isLineSegments:!0,computeLineDistances:function(){var a=this.geometry;if(a.isBufferGeometry)if(null===a.index){for(var b=a.attributes.position,c=[],d=0,e=b.count;d<
 String(b);this.morphTargetInfluences.push(0);this.morphTargetDictionary[d]=b}}}else a=a.morphTargets,void 0!==a&&0<a.length&&console.error("THREE.Line.updateMorphTargets() does not support THREE.Geometry. Use THREE.BufferGeometry instead.")}});var Qf=new m,Rf=new m;ha.prototype=Object.assign(Object.create(Ka.prototype),{constructor:ha,isLineSegments:!0,computeLineDistances:function(){var a=this.geometry;if(a.isBufferGeometry)if(null===a.index){for(var b=a.attributes.position,c=[],d=0,e=b.count;d<
 e;d+=2)Qf.fromBufferAttribute(b,d),Rf.fromBufferAttribute(b,d+1),c[d]=0===d?0:c[d-1],c[d+1]=c[d]+Qf.distanceTo(Rf);a.setAttribute("lineDistance",new B(c,1))}else console.warn("THREE.LineSegments.computeLineDistances(): Computation only possible with non-indexed BufferGeometry.");else if(a.isGeometry)for(b=a.vertices,a=a.lineDistances,c=0,d=b.length;c<d;c+=2)Qf.copy(b[c]),Rf.copy(b[c+1]),a[c]=0===c?0:a[c-1],a[c+1]=a[c]+Qf.distanceTo(Rf);return this}});Ve.prototype=Object.assign(Object.create(Ka.prototype),
 e;d+=2)Qf.fromBufferAttribute(b,d),Rf.fromBufferAttribute(b,d+1),c[d]=0===d?0:c[d-1],c[d+1]=c[d]+Qf.distanceTo(Rf);a.setAttribute("lineDistance",new B(c,1))}else console.warn("THREE.LineSegments.computeLineDistances(): Computation only possible with non-indexed BufferGeometry.");else if(a.isGeometry)for(b=a.vertices,a=a.lineDistances,c=0,d=b.length;c<d;c+=2)Qf.copy(b[c]),Rf.copy(b[c+1]),a[c]=0===c?0:a[c-1],a[c+1]=a[c]+Qf.distanceTo(Rf);return this}});Ve.prototype=Object.assign(Object.create(Ka.prototype),
 {constructor:Ve,isLineLoop:!0});Xa.prototype=Object.create(G.prototype);Xa.prototype.constructor=Xa;Xa.prototype.isPointsMaterial=!0;Xa.prototype.copy=function(a){G.prototype.copy.call(this,a);this.color.copy(a.color);this.map=a.map;this.alphaMap=a.alphaMap;this.size=a.size;this.sizeAttenuation=a.sizeAttenuation;this.morphTargets=a.morphTargets;return this};var Pi=new M,rg=new Wb,De=new eb,Sf=new m;Mc.prototype=Object.assign(Object.create(z.prototype),{constructor:Mc,isPoints:!0,copy:function(a){z.prototype.copy.call(this,
 {constructor:Ve,isLineLoop:!0});Xa.prototype=Object.create(G.prototype);Xa.prototype.constructor=Xa;Xa.prototype.isPointsMaterial=!0;Xa.prototype.copy=function(a){G.prototype.copy.call(this,a);this.color.copy(a.color);this.map=a.map;this.alphaMap=a.alphaMap;this.size=a.size;this.sizeAttenuation=a.sizeAttenuation;this.morphTargets=a.morphTargets;return this};var Pi=new M,rg=new Wb,De=new eb,Sf=new m;Mc.prototype=Object.assign(Object.create(z.prototype),{constructor:Mc,isPoints:!0,copy:function(a){z.prototype.copy.call(this,
 a);this.material=a.material;this.geometry=a.geometry;return this},raycast:function(a,b){var c=this.geometry,d=this.matrixWorld,e=a.params.Points.threshold;null===c.boundingSphere&&c.computeBoundingSphere();De.copy(c.boundingSphere);De.applyMatrix4(d);De.radius+=e;if(!1!==a.ray.intersectsSphere(De))if(Pi.getInverse(d),rg.copy(a.ray).applyMatrix4(Pi),e/=(this.scale.x+this.scale.y+this.scale.z)/3,e*=e,c.isBufferGeometry){var f=c.index;c=c.attributes.position.array;if(null!==f){f=f.array;for(var g=0,
 a);this.material=a.material;this.geometry=a.geometry;return this},raycast:function(a,b){var c=this.geometry,d=this.matrixWorld,e=a.params.Points.threshold;null===c.boundingSphere&&c.computeBoundingSphere();De.copy(c.boundingSphere);De.applyMatrix4(d);De.radius+=e;if(!1!==a.ray.intersectsSphere(De))if(Pi.getInverse(d),rg.copy(a.ray).applyMatrix4(Pi),e/=(this.scale.x+this.scale.y+this.scale.z)/3,e*=e,c.isBufferGeometry){var f=c.index;c=c.attributes.position.array;if(null!==f){f=f.array;for(var g=0,
-h=f.length;g<h;g++){var l=f[g];Sf.fromArray(c,3*l);qg(Sf,l,e,d,a,b,this)}}else for(f=0,g=c.length/3;f<g;f++)Sf.fromArray(c,3*f),qg(Sf,f,e,d,a,b,this)}else for(c=c.vertices,f=0,g=c.length;f<g;f++)qg(c[f],f,e,d,a,b,this)},updateMorphTargets:function(){var a=this.geometry;if(a.isBufferGeometry){a=a.morphAttributes;var b=Object.keys(a);if(0<b.length&&(a=a[b[0]],void 0!==a)){this.morphTargetInfluences=[];this.morphTargetDictionary={};b=0;for(var c=a.length;b<c;b++){var d=a[b].name||String(b);this.morphTargetInfluences.push(0);
+h=f.length;g<h;g++){var k=f[g];Sf.fromArray(c,3*k);qg(Sf,k,e,d,a,b,this)}}else for(f=0,g=c.length/3;f<g;f++)Sf.fromArray(c,3*f),qg(Sf,f,e,d,a,b,this)}else for(c=c.vertices,f=0,g=c.length;f<g;f++)qg(c[f],f,e,d,a,b,this)},updateMorphTargets:function(){var a=this.geometry;if(a.isBufferGeometry){a=a.morphAttributes;var b=Object.keys(a);if(0<b.length&&(a=a[b[0]],void 0!==a)){this.morphTargetInfluences=[];this.morphTargetDictionary={};b=0;for(var c=a.length;b<c;b++){var d=a[b].name||String(b);this.morphTargetInfluences.push(0);
 this.morphTargetDictionary[d]=b}}}else a=a.morphTargets,void 0!==a&&0<a.length&&console.error("THREE.Points.updateMorphTargets() does not support THREE.Geometry. Use THREE.BufferGeometry instead.")}});sg.prototype=Object.assign(Object.create(W.prototype),{constructor:sg,isVideoTexture:!0,update:function(){var a=this.image;a.readyState>=a.HAVE_CURRENT_DATA&&(this.needsUpdate=!0)}});Nc.prototype=Object.create(W.prototype);Nc.prototype.constructor=Nc;Nc.prototype.isCompressedTexture=!0;Qd.prototype=
 this.morphTargetDictionary[d]=b}}}else a=a.morphTargets,void 0!==a&&0<a.length&&console.error("THREE.Points.updateMorphTargets() does not support THREE.Geometry. Use THREE.BufferGeometry instead.")}});sg.prototype=Object.assign(Object.create(W.prototype),{constructor:sg,isVideoTexture:!0,update:function(){var a=this.image;a.readyState>=a.HAVE_CURRENT_DATA&&(this.needsUpdate=!0)}});Nc.prototype=Object.create(W.prototype);Nc.prototype.constructor=Nc;Nc.prototype.isCompressedTexture=!0;Qd.prototype=
 Object.create(W.prototype);Qd.prototype.constructor=Qd;Qd.prototype.isCanvasTexture=!0;Rd.prototype=Object.create(W.prototype);Rd.prototype.constructor=Rd;Rd.prototype.isDepthTexture=!0;Oc.prototype=Object.create(F.prototype);Oc.prototype.constructor=Oc;Sd.prototype=Object.create(L.prototype);Sd.prototype.constructor=Sd;Pc.prototype=Object.create(F.prototype);Pc.prototype.constructor=Pc;Td.prototype=Object.create(L.prototype);Td.prototype.constructor=Td;Fa.prototype=Object.create(F.prototype);Fa.prototype.constructor=
 Object.create(W.prototype);Qd.prototype.constructor=Qd;Qd.prototype.isCanvasTexture=!0;Rd.prototype=Object.create(W.prototype);Rd.prototype.constructor=Rd;Rd.prototype.isDepthTexture=!0;Oc.prototype=Object.create(F.prototype);Oc.prototype.constructor=Oc;Sd.prototype=Object.create(L.prototype);Sd.prototype.constructor=Sd;Pc.prototype=Object.create(F.prototype);Pc.prototype.constructor=Pc;Td.prototype=Object.create(L.prototype);Td.prototype.constructor=Td;Fa.prototype=Object.create(F.prototype);Fa.prototype.constructor=
 Fa;Ud.prototype=Object.create(L.prototype);Ud.prototype.constructor=Ud;Qc.prototype=Object.create(Fa.prototype);Qc.prototype.constructor=Qc;Vd.prototype=Object.create(L.prototype);Vd.prototype.constructor=Vd;bc.prototype=Object.create(Fa.prototype);bc.prototype.constructor=bc;Wd.prototype=Object.create(L.prototype);Wd.prototype.constructor=Wd;Rc.prototype=Object.create(Fa.prototype);Rc.prototype.constructor=Rc;Xd.prototype=Object.create(L.prototype);Xd.prototype.constructor=Xd;Sc.prototype=Object.create(Fa.prototype);
 Fa;Ud.prototype=Object.create(L.prototype);Ud.prototype.constructor=Ud;Qc.prototype=Object.create(Fa.prototype);Qc.prototype.constructor=Qc;Vd.prototype=Object.create(L.prototype);Vd.prototype.constructor=Vd;bc.prototype=Object.create(Fa.prototype);bc.prototype.constructor=bc;Wd.prototype=Object.create(L.prototype);Wd.prototype.constructor=Wd;Rc.prototype=Object.create(Fa.prototype);Rc.prototype.constructor=Rc;Xd.prototype=Object.create(L.prototype);Xd.prototype.constructor=Xd;Sc.prototype=Object.create(Fa.prototype);
 Sc.prototype.constructor=Sc;Yd.prototype=Object.create(L.prototype);Yd.prototype.constructor=Yd;cc.prototype=Object.create(F.prototype);cc.prototype.constructor=cc;cc.prototype.toJSON=function(){var a=F.prototype.toJSON.call(this);a.path=this.parameters.path.toJSON();return a};Zd.prototype=Object.create(L.prototype);Zd.prototype.constructor=Zd;Tc.prototype=Object.create(F.prototype);Tc.prototype.constructor=Tc;$d.prototype=Object.create(L.prototype);$d.prototype.constructor=$d;Uc.prototype=Object.create(F.prototype);
 Sc.prototype.constructor=Sc;Yd.prototype=Object.create(L.prototype);Yd.prototype.constructor=Yd;cc.prototype=Object.create(F.prototype);cc.prototype.constructor=cc;cc.prototype.toJSON=function(){var a=F.prototype.toJSON.call(this);a.path=this.parameters.path.toJSON();return a};Zd.prototype=Object.create(L.prototype);Zd.prototype.constructor=Zd;Tc.prototype=Object.create(F.prototype);Tc.prototype.constructor=Tc;$d.prototype=Object.create(L.prototype);$d.prototype.constructor=$d;Uc.prototype=Object.create(F.prototype);
-Uc.prototype.constructor=Uc;var Uk={triangulate:function(a,b,c){c=c||2;var d=b&&b.length,e=d?b[0]*c:a.length,f=$h(a,0,e,c,!0),g=[];if(!f||f.next===f.prev)return g;var h;if(d){var l=c;d=[];var k;var m=0;for(k=b.length;m<k;m++){var p=b[m]*l;var v=m<k-1?b[m+1]*l:a.length;p=$h(a,p,v,l,!1);p===p.next&&(p.steiner=!0);d.push(Gk(p))}d.sort(Ek);for(m=0;m<d.length;m++){l=d[m];b=f;if(b=Fk(l,b))l=ci(b,l),Lb(b,b.next),Lb(l,l.next);f=Lb(f,f.next)}}if(a.length>80*c){var r=h=a[0];var q=d=a[1];for(l=c;l<e;l+=c)m=
-a[l],b=a[l+1],m<r&&(r=m),b<q&&(q=b),m>h&&(h=m),b>d&&(d=b);h=Math.max(h-r,d-q);h=0!==h?1/h:0}be(f,g,c,r,q,h);return g}},rb={area:function(a){for(var b=a.length,c=0,d=b-1,e=0;e<b;d=e++)c+=a[d].x*a[e].y-a[e].x*a[d].y;return.5*c},isClockWise:function(a){return 0>rb.area(a)},triangulateShape:function(a,b){var c=[],d=[],e=[];di(a);ei(c,a);a=a.length;b.forEach(di);for(var f=0;f<b.length;f++)d.push(a),a+=b[f].length,ei(c,b[f]);b=Uk.triangulate(c,d);for(c=0;c<b.length;c+=3)e.push(b.slice(c,c+3));return e}};
+Uc.prototype.constructor=Uc;var Uk={triangulate:function(a,b,c){c=c||2;var d=b&&b.length,e=d?b[0]*c:a.length,f=$h(a,0,e,c,!0),g=[];if(!f||f.next===f.prev)return g;var h;if(d){var k=c;d=[];var n;var q=0;for(n=b.length;q<n;q++){var m=b[q]*k;var v=q<n-1?b[q+1]*k:a.length;m=$h(a,m,v,k,!1);m===m.next&&(m.steiner=!0);d.push(Gk(m))}d.sort(Ek);for(q=0;q<d.length;q++){k=d[q];b=f;if(b=Fk(k,b))k=ci(b,k),Lb(b,b.next),Lb(k,k.next);f=Lb(f,f.next)}}if(a.length>80*c){var t=h=a[0];var r=d=a[1];for(k=c;k<e;k+=c)q=
+a[k],b=a[k+1],q<t&&(t=q),b<r&&(r=b),q>h&&(h=q),b>d&&(d=b);h=Math.max(h-t,d-r);h=0!==h?1/h:0}be(f,g,c,t,r,h);return g}},rb={area:function(a){for(var b=a.length,c=0,d=b-1,e=0;e<b;d=e++)c+=a[d].x*a[e].y-a[e].x*a[d].y;return.5*c},isClockWise:function(a){return 0>rb.area(a)},triangulateShape:function(a,b){var c=[],d=[],e=[];di(a);ei(c,a);a=a.length;b.forEach(di);for(var f=0;f<b.length;f++)d.push(a),a+=b[f].length,ei(c,b[f]);b=Uk.triangulate(c,d);for(c=0;c<b.length;c+=3)e.push(b.slice(c,c+3));return e}};
 dc.prototype=Object.create(L.prototype);dc.prototype.constructor=dc;dc.prototype.toJSON=function(){var a=L.prototype.toJSON.call(this);return fi(this.parameters.shapes,this.parameters.options,a)};hb.prototype=Object.create(F.prototype);hb.prototype.constructor=hb;hb.prototype.toJSON=function(){var a=F.prototype.toJSON.call(this);return fi(this.parameters.shapes,this.parameters.options,a)};var Hk={generateTopUV:function(a,b,c,d,e){a=b[3*d];d=b[3*d+1];var f=b[3*e];e=b[3*e+1];return[new w(b[3*c],b[3*
 dc.prototype=Object.create(L.prototype);dc.prototype.constructor=dc;dc.prototype.toJSON=function(){var a=L.prototype.toJSON.call(this);return fi(this.parameters.shapes,this.parameters.options,a)};hb.prototype=Object.create(F.prototype);hb.prototype.constructor=hb;hb.prototype.toJSON=function(){var a=F.prototype.toJSON.call(this);return fi(this.parameters.shapes,this.parameters.options,a)};var Hk={generateTopUV:function(a,b,c,d,e){a=b[3*d];d=b[3*d+1];var f=b[3*e];e=b[3*e+1];return[new w(b[3*c],b[3*
-c+1]),new w(a,d),new w(f,e)]},generateSideWallUV:function(a,b,c,d,e,f){a=b[3*c];var g=b[3*c+1];c=b[3*c+2];var h=b[3*d],l=b[3*d+1];d=b[3*d+2];var k=b[3*e],m=b[3*e+1];e=b[3*e+2];var p=b[3*f],v=b[3*f+1];b=b[3*f+2];return.01>Math.abs(g-l)?[new w(a,1-c),new w(h,1-d),new w(k,1-e),new w(p,1-b)]:[new w(g,1-c),new w(l,1-d),new w(m,1-e),new w(v,1-b)]}};de.prototype=Object.create(L.prototype);de.prototype.constructor=de;Wc.prototype=Object.create(hb.prototype);Wc.prototype.constructor=Wc;ee.prototype=Object.create(L.prototype);
+c+1]),new w(a,d),new w(f,e)]},generateSideWallUV:function(a,b,c,d,e,f){a=b[3*c];var g=b[3*c+1];c=b[3*c+2];var h=b[3*d],k=b[3*d+1];d=b[3*d+2];var n=b[3*e],m=b[3*e+1];e=b[3*e+2];var p=b[3*f],v=b[3*f+1];b=b[3*f+2];return.01>Math.abs(g-k)?[new w(a,1-c),new w(h,1-d),new w(n,1-e),new w(p,1-b)]:[new w(g,1-c),new w(k,1-d),new w(m,1-e),new w(v,1-b)]}};de.prototype=Object.create(L.prototype);de.prototype.constructor=de;Wc.prototype=Object.create(hb.prototype);Wc.prototype.constructor=Wc;ee.prototype=Object.create(L.prototype);
 ee.prototype.constructor=ee;ec.prototype=Object.create(F.prototype);ec.prototype.constructor=ec;fe.prototype=Object.create(L.prototype);fe.prototype.constructor=fe;Xc.prototype=Object.create(F.prototype);Xc.prototype.constructor=Xc;ge.prototype=Object.create(L.prototype);ge.prototype.constructor=ge;Yc.prototype=Object.create(F.prototype);Yc.prototype.constructor=Yc;fc.prototype=Object.create(L.prototype);fc.prototype.constructor=fc;fc.prototype.toJSON=function(){var a=L.prototype.toJSON.call(this);
 ee.prototype.constructor=ee;ec.prototype=Object.create(F.prototype);ec.prototype.constructor=ec;fe.prototype=Object.create(L.prototype);fe.prototype.constructor=fe;Xc.prototype=Object.create(F.prototype);Xc.prototype.constructor=Xc;ge.prototype=Object.create(L.prototype);ge.prototype.constructor=ge;Yc.prototype=Object.create(F.prototype);Yc.prototype.constructor=Yc;fc.prototype=Object.create(L.prototype);fc.prototype.constructor=fc;fc.prototype.toJSON=function(){var a=L.prototype.toJSON.call(this);
 return gi(this.parameters.shapes,a)};gc.prototype=Object.create(F.prototype);gc.prototype.constructor=gc;gc.prototype.toJSON=function(){var a=F.prototype.toJSON.call(this);return gi(this.parameters.shapes,a)};Zc.prototype=Object.create(F.prototype);Zc.prototype.constructor=Zc;hc.prototype=Object.create(L.prototype);hc.prototype.constructor=hc;sb.prototype=Object.create(F.prototype);sb.prototype.constructor=sb;he.prototype=Object.create(hc.prototype);he.prototype.constructor=he;ie.prototype=Object.create(sb.prototype);
 return gi(this.parameters.shapes,a)};gc.prototype=Object.create(F.prototype);gc.prototype.constructor=gc;gc.prototype.toJSON=function(){var a=F.prototype.toJSON.call(this);return gi(this.parameters.shapes,a)};Zc.prototype=Object.create(F.prototype);Zc.prototype.constructor=Zc;hc.prototype=Object.create(L.prototype);hc.prototype.constructor=hc;sb.prototype=Object.create(F.prototype);sb.prototype.constructor=sb;he.prototype=Object.create(hc.prototype);he.prototype.constructor=he;ie.prototype=Object.create(sb.prototype);
 ie.prototype.constructor=ie;je.prototype=Object.create(L.prototype);je.prototype.constructor=je;$c.prototype=Object.create(F.prototype);$c.prototype.constructor=$c;var ra=Object.freeze({__proto__:null,WireframeGeometry:Oc,ParametricGeometry:Sd,ParametricBufferGeometry:Pc,TetrahedronGeometry:Ud,TetrahedronBufferGeometry:Qc,OctahedronGeometry:Vd,OctahedronBufferGeometry:bc,IcosahedronGeometry:Wd,IcosahedronBufferGeometry:Rc,DodecahedronGeometry:Xd,DodecahedronBufferGeometry:Sc,PolyhedronGeometry:Td,
 ie.prototype.constructor=ie;je.prototype=Object.create(L.prototype);je.prototype.constructor=je;$c.prototype=Object.create(F.prototype);$c.prototype.constructor=$c;var ra=Object.freeze({__proto__:null,WireframeGeometry:Oc,ParametricGeometry:Sd,ParametricBufferGeometry:Pc,TetrahedronGeometry:Ud,TetrahedronBufferGeometry:Qc,OctahedronGeometry:Vd,OctahedronBufferGeometry:bc,IcosahedronGeometry:Wd,IcosahedronBufferGeometry:Rc,DodecahedronGeometry:Xd,DodecahedronBufferGeometry:Sc,PolyhedronGeometry:Td,
@@ -742,10 +742,10 @@ a.emissiveIntensity;this.specularMap=a.specularMap;this.alphaMap=a.alphaMap;this
 nc;nc.prototype.isMeshMatcapMaterial=!0;nc.prototype.copy=function(a){G.prototype.copy.call(this,a);this.defines={MATCAP:""};this.color.copy(a.color);this.matcap=a.matcap;this.map=a.map;this.bumpMap=a.bumpMap;this.bumpScale=a.bumpScale;this.normalMap=a.normalMap;this.normalMapType=a.normalMapType;this.normalScale.copy(a.normalScale);this.displacementMap=a.displacementMap;this.displacementScale=a.displacementScale;this.displacementBias=a.displacementBias;this.alphaMap=a.alphaMap;this.skinning=a.skinning;
 nc;nc.prototype.isMeshMatcapMaterial=!0;nc.prototype.copy=function(a){G.prototype.copy.call(this,a);this.defines={MATCAP:""};this.color.copy(a.color);this.matcap=a.matcap;this.map=a.map;this.bumpMap=a.bumpMap;this.bumpScale=a.bumpScale;this.normalMap=a.normalMap;this.normalMapType=a.normalMapType;this.normalScale.copy(a.normalScale);this.displacementMap=a.displacementMap;this.displacementScale=a.displacementScale;this.displacementBias=a.displacementBias;this.alphaMap=a.alphaMap;this.skinning=a.skinning;
 this.morphTargets=a.morphTargets;this.morphNormals=a.morphNormals;return this};oc.prototype=Object.create(la.prototype);oc.prototype.constructor=oc;oc.prototype.isLineDashedMaterial=!0;oc.prototype.copy=function(a){la.prototype.copy.call(this,a);this.scale=a.scale;this.dashSize=a.dashSize;this.gapSize=a.gapSize;return this};var Vk=Object.freeze({__proto__:null,ShadowMaterial:ic,SpriteMaterial:Kb,RawShaderMaterial:tb,ShaderMaterial:Ba,PointsMaterial:Xa,MeshPhysicalMaterial:jc,MeshStandardMaterial:ib,
 this.morphTargets=a.morphTargets;this.morphNormals=a.morphNormals;return this};oc.prototype=Object.create(la.prototype);oc.prototype.constructor=oc;oc.prototype.isLineDashedMaterial=!0;oc.prototype.copy=function(a){la.prototype.copy.call(this,a);this.scale=a.scale;this.dashSize=a.dashSize;this.gapSize=a.gapSize;return this};var Vk=Object.freeze({__proto__:null,ShadowMaterial:ic,SpriteMaterial:Kb,RawShaderMaterial:tb,ShaderMaterial:Ba,PointsMaterial:Xa,MeshPhysicalMaterial:jc,MeshStandardMaterial:ib,
 MeshPhongMaterial:Mb,MeshToonMaterial:kc,MeshNormalMaterial:lc,MeshLambertMaterial:mc,MeshDepthMaterial:Gb,MeshDistanceMaterial:Hb,MeshBasicMaterial:Oa,MeshMatcapMaterial:nc,LineDashedMaterial:oc,LineBasicMaterial:la,Material:G}),Z={arraySlice:function(a,b,c){return Z.isTypedArray(a)?new a.constructor(a.subarray(b,void 0!==c?c:a.length)):a.slice(b,c)},convertArray:function(a,b,c){return!a||!c&&a.constructor===b?a:"number"===typeof b.BYTES_PER_ELEMENT?new b(a):Array.prototype.slice.call(a)},isTypedArray:function(a){return ArrayBuffer.isView(a)&&
 MeshPhongMaterial:Mb,MeshToonMaterial:kc,MeshNormalMaterial:lc,MeshLambertMaterial:mc,MeshDepthMaterial:Gb,MeshDistanceMaterial:Hb,MeshBasicMaterial:Oa,MeshMatcapMaterial:nc,LineDashedMaterial:oc,LineBasicMaterial:la,Material:G}),Z={arraySlice:function(a,b,c){return Z.isTypedArray(a)?new a.constructor(a.subarray(b,void 0!==c?c:a.length)):a.slice(b,c)},convertArray:function(a,b,c){return!a||!c&&a.constructor===b?a:"number"===typeof b.BYTES_PER_ELEMENT?new b(a):Array.prototype.slice.call(a)},isTypedArray:function(a){return ArrayBuffer.isView(a)&&
-!(a instanceof DataView)},getKeyframeOrder:function(a){for(var b=a.length,c=Array(b),d=0;d!==b;++d)c[d]=d;c.sort(function(b,c){return a[b]-a[c]});return c},sortedArray:function(a,b,c){for(var d=a.length,e=new a.constructor(d),f=0,g=0;g!==d;++f)for(var h=c[f]*b,l=0;l!==b;++l)e[g++]=a[h+l];return e},flattenJSON:function(a,b,c,d){for(var e=1,f=a[0];void 0!==f&&void 0===f[d];)f=a[e++];if(void 0!==f){var g=f[d];if(void 0!==g)if(Array.isArray(g)){do g=f[d],void 0!==g&&(b.push(f.time),c.push.apply(c,g)),
-f=a[e++];while(void 0!==f)}else if(void 0!==g.toArray){do g=f[d],void 0!==g&&(b.push(f.time),g.toArray(c,c.length)),f=a[e++];while(void 0!==f)}else{do g=f[d],void 0!==g&&(b.push(f.time),c.push(g)),f=a[e++];while(void 0!==f)}}},subclip:function(a,b,c,d,e){e=e||30;a=a.clone();a.name=b;b=[];for(var f=0;f<a.tracks.length;++f){for(var g=a.tracks[f],h=g.getValueSize(),l=[],k=[],m=0;m<g.times.length;++m){var p=g.times[m]*e;if(!(p<c||p>=d))for(l.push(g.times[m]),p=0;p<h;++p)k.push(g.values[m*h+p])}0!==l.length&&
-(g.times=Z.convertArray(l,g.times.constructor),g.values=Z.convertArray(k,g.values.constructor),b.push(g))}a.tracks=b;c=Infinity;for(d=0;d<a.tracks.length;++d)c>a.tracks[d].times[0]&&(c=a.tracks[d].times[0]);for(d=0;d<a.tracks.length;++d)a.tracks[d].shift(-1*c);a.resetDuration();return a},makeClipAdditive:function(a,b,c,d){void 0===b&&(b=0);void 0===c&&(c=a);if(void 0===d||0>=d)d=30;var e=a.tracks.length,f=b/d;b=function(b){var d=c.tracks[b],e=d.ValueTypeName;if("bool"!==e&&"string"!==e&&(b=a.tracks.find(function(a){return a.name===
-d.name&&a.ValueTypeName===e}),void 0!==b)){var g=d.getValueSize(),k=d.times.length-1,p=void 0;f<=d.times[0]?p=Z.arraySlice(d.values,0,d.valueSize):f>=d.times[k]?p=Z.arraySlice(d.values,k*g):(p=d.createInterpolant(),p.evaluate(f),p=p.resultBuffer);"quaternion"===e&&(new na(p[0],p[1],p[2],p[3])).normalize().conjugate().toArray(p);k=b.times.length;for(var m=0;m<k;++m){var r=m*g;if("quaternion"===e)na.multiplyQuaternionsFlat(b.values,r,p,0,b.values,r);else for(var q=0;q<g;++q)b.values[r+q]-=p[q]}}};for(d=
+!(a instanceof DataView)},getKeyframeOrder:function(a){for(var b=a.length,c=Array(b),d=0;d!==b;++d)c[d]=d;c.sort(function(b,c){return a[b]-a[c]});return c},sortedArray:function(a,b,c){for(var d=a.length,e=new a.constructor(d),f=0,g=0;g!==d;++f)for(var h=c[f]*b,k=0;k!==b;++k)e[g++]=a[h+k];return e},flattenJSON:function(a,b,c,d){for(var e=1,f=a[0];void 0!==f&&void 0===f[d];)f=a[e++];if(void 0!==f){var g=f[d];if(void 0!==g)if(Array.isArray(g)){do g=f[d],void 0!==g&&(b.push(f.time),c.push.apply(c,g)),
+f=a[e++];while(void 0!==f)}else if(void 0!==g.toArray){do g=f[d],void 0!==g&&(b.push(f.time),g.toArray(c,c.length)),f=a[e++];while(void 0!==f)}else{do g=f[d],void 0!==g&&(b.push(f.time),c.push(g)),f=a[e++];while(void 0!==f)}}},subclip:function(a,b,c,d,e){e=e||30;a=a.clone();a.name=b;b=[];for(var f=0;f<a.tracks.length;++f){for(var g=a.tracks[f],h=g.getValueSize(),k=[],n=[],m=0;m<g.times.length;++m){var p=g.times[m]*e;if(!(p<c||p>=d))for(k.push(g.times[m]),p=0;p<h;++p)n.push(g.values[m*h+p])}0!==k.length&&
+(g.times=Z.convertArray(k,g.times.constructor),g.values=Z.convertArray(n,g.values.constructor),b.push(g))}a.tracks=b;c=Infinity;for(d=0;d<a.tracks.length;++d)c>a.tracks[d].times[0]&&(c=a.tracks[d].times[0]);for(d=0;d<a.tracks.length;++d)a.tracks[d].shift(-1*c);a.resetDuration();return a},makeClipAdditive:function(a,b,c,d){void 0===b&&(b=0);void 0===c&&(c=a);if(void 0===d||0>=d)d=30;var e=a.tracks.length,f=b/d;b=function(b){var d=c.tracks[b],e=d.ValueTypeName;if("bool"!==e&&"string"!==e&&(b=a.tracks.find(function(a){return a.name===
+d.name&&a.ValueTypeName===e}),void 0!==b)){var g=d.getValueSize(),k=d.times.length-1,m=void 0;f<=d.times[0]?m=Z.arraySlice(d.values,0,d.valueSize):f>=d.times[k]?m=Z.arraySlice(d.values,k*g):(m=d.createInterpolant(),m.evaluate(f),m=m.resultBuffer);"quaternion"===e&&(new na(m[0],m[1],m[2],m[3])).normalize().conjugate().toArray(m);k=b.times.length;for(var v=0;v<k;++v){var t=v*g;if("quaternion"===e)na.multiplyQuaternionsFlat(b.values,t,m,0,b.values,t);else for(var r=0;r<g;++r)b.values[t+r]-=m[r]}}};for(d=
 0;d<e;++d)b(d);a.blendMode=2501;return a}};Object.assign(La.prototype,{evaluate:function(a){var b=this.parameterPositions,c=this._cachedIndex,d=b[c],e=b[c-1];a:{b:{c:{d:if(!(a<d)){for(var f=c+2;;){if(void 0===d){if(a<e)break d;this._cachedIndex=c=b.length;return this.afterEnd_(c-1,a,e)}if(c===f)break;e=d;d=b[++c];if(a<d)break b}d=b.length;break c}if(a>=e)break a;else{f=b[1];a<f&&(c=2,e=f);for(f=c-2;;){if(void 0===e)return this._cachedIndex=0,this.beforeStart_(0,a,d);if(c===f)break;d=e;e=b[--c-1];
 0;d<e;++d)b(d);a.blendMode=2501;return a}};Object.assign(La.prototype,{evaluate:function(a){var b=this.parameterPositions,c=this._cachedIndex,d=b[c],e=b[c-1];a:{b:{c:{d:if(!(a<d)){for(var f=c+2;;){if(void 0===d){if(a<e)break d;this._cachedIndex=c=b.length;return this.afterEnd_(c-1,a,e)}if(c===f)break;e=d;d=b[++c];if(a<d)break b}d=b.length;break c}if(a>=e)break a;else{f=b[1];a<f&&(c=2,e=f);for(f=c-2;;){if(void 0===e)return this._cachedIndex=0,this.beforeStart_(0,a,d);if(c===f)break;d=e;e=b[--c-1];
 if(a>=e)break b}d=c;c=0}}for(;c<d;)e=c+d>>>1,a<b[e]?d=e:c=e+1;d=b[c];e=b[c-1];if(void 0===e)return this._cachedIndex=0,this.beforeStart_(0,a,d);if(void 0===d)return this._cachedIndex=c=b.length,this.afterEnd_(c-1,e,a)}this._cachedIndex=c;this.intervalChanged_(c,e,d)}return this.interpolate_(c,e,a,d)},settings:null,DefaultSettings_:{},getSettings_:function(){return this.settings||this.DefaultSettings_},copySampleValue_:function(a){var b=this.resultBuffer,c=this.sampleValues,d=this.valueSize;a*=d;for(var e=
 if(a>=e)break b}d=c;c=0}}for(;c<d;)e=c+d>>>1,a<b[e]?d=e:c=e+1;d=b[c];e=b[c-1];if(void 0===e)return this._cachedIndex=0,this.beforeStart_(0,a,d);if(void 0===d)return this._cachedIndex=c=b.length,this.afterEnd_(c-1,e,a)}this._cachedIndex=c;this.intervalChanged_(c,e,d)}return this.interpolate_(c,e,a,d)},settings:null,DefaultSettings_:{},getSettings_:function(){return this.settings||this.DefaultSettings_},copySampleValue_:function(a){var b=this.resultBuffer,c=this.sampleValues,d=this.valueSize;a*=d;for(var e=
 0;e!==d;++e)b[e]=c[a+e];return b},interpolate_:function(){throw Error("call to abstract method");},intervalChanged_:function(){}});Object.assign(La.prototype,{beforeStart_:La.prototype.copySampleValue_,afterEnd_:La.prototype.copySampleValue_});Ze.prototype=Object.assign(Object.create(La.prototype),{constructor:Ze,DefaultSettings_:{endingStart:2400,endingEnd:2400},intervalChanged_:function(a,b,c){var d=this.parameterPositions,e=a-2,f=a+1,g=d[e],h=d[f];if(void 0===g)switch(this.getSettings_().endingStart){case 2401:e=
 0;e!==d;++e)b[e]=c[a+e];return b},interpolate_:function(){throw Error("call to abstract method");},intervalChanged_:function(){}});Object.assign(La.prototype,{beforeStart_:La.prototype.copySampleValue_,afterEnd_:La.prototype.copySampleValue_});Ze.prototype=Object.assign(Object.create(La.prototype),{constructor:Ze,DefaultSettings_:{endingStart:2400,endingEnd:2400},intervalChanged_:function(a,b,c){var d=this.parameterPositions,e=a-2,f=a+1,g=d[e],h=d[f];if(void 0===g)switch(this.getSettings_().endingStart){case 2401:e=
@@ -763,7 +763,7 @@ a+g;a!==c;a+=4)na.slerpFlat(e,0,f,a-g,f,a,b);return e}});le.prototype=Object.ass
 InterpolantFactoryMethodSmooth:void 0});bd.prototype=Object.assign(Object.create(ta.prototype),{constructor:bd,ValueTypeName:"vector"});Object.assign(Qa,{parse:function(a){for(var b=[],c=a.tracks,d=1/(a.fps||1),e=0,f=c.length;e!==f;++e)b.push(Jk(c[e]).scale(d));return new Qa(a.name,a.duration,b,a.blendMode)},toJSON:function(a){var b=[],c=a.tracks;a={name:a.name,duration:a.duration,tracks:b,uuid:a.uuid,blendMode:a.blendMode};for(var d=0,e=c.length;d!==e;++d)b.push(ta.toJSON(c[d]));return a},CreateFromMorphTargetSequence:function(a,
 InterpolantFactoryMethodSmooth:void 0});bd.prototype=Object.assign(Object.create(ta.prototype),{constructor:bd,ValueTypeName:"vector"});Object.assign(Qa,{parse:function(a){for(var b=[],c=a.tracks,d=1/(a.fps||1),e=0,f=c.length;e!==f;++e)b.push(Jk(c[e]).scale(d));return new Qa(a.name,a.duration,b,a.blendMode)},toJSON:function(a){var b=[],c=a.tracks;a={name:a.name,duration:a.duration,tracks:b,uuid:a.uuid,blendMode:a.blendMode};for(var d=0,e=c.length;d!==e;++d)b.push(ta.toJSON(c[d]));return a},CreateFromMorphTargetSequence:function(a,
 b,c,d){for(var e=b.length,f=[],g=0;g<e;g++){var h=[],k=[];h.push((g+e-1)%e,g,(g+1)%e);k.push(0,1,0);var n=Z.getKeyframeOrder(h);h=Z.sortedArray(h,1,n);k=Z.sortedArray(k,1,n);d||0!==h[0]||(h.push(e),k.push(k[0]));f.push((new ad(".morphTargetInfluences["+b[g].name+"]",h,k)).scale(1/c))}return new Qa(a,-1,f)},findByName:function(a,b){var c=a;Array.isArray(a)||(c=a.geometry&&a.geometry.animations||a.animations);for(a=0;a<c.length;a++)if(c[a].name===b)return c[a];return null},CreateClipsFromMorphTargetSequences:function(a,
 b,c,d){for(var e=b.length,f=[],g=0;g<e;g++){var h=[],k=[];h.push((g+e-1)%e,g,(g+1)%e);k.push(0,1,0);var n=Z.getKeyframeOrder(h);h=Z.sortedArray(h,1,n);k=Z.sortedArray(k,1,n);d||0!==h[0]||(h.push(e),k.push(k[0]));f.push((new ad(".morphTargetInfluences["+b[g].name+"]",h,k)).scale(1/c))}return new Qa(a,-1,f)},findByName:function(a,b){var c=a;Array.isArray(a)||(c=a.geometry&&a.geometry.animations||a.animations);for(a=0;a<c.length;a++)if(c[a].name===b)return c[a];return null},CreateClipsFromMorphTargetSequences:function(a,
 b,c){for(var d={},e=/^([\w-]*?)([\d]+)$/,f=0,g=a.length;f<g;f++){var h=a[f],k=h.name.match(e);if(k&&1<k.length){k=k[1];var n=d[k];n||(d[k]=n=[]);n.push(h)}}a=[];for(var m in d)a.push(Qa.CreateFromMorphTargetSequence(m,d[m],b,c));return a},parseAnimation:function(a,b){if(!a)return console.error("THREE.AnimationClip: No animation in JSONLoader data."),null;var c=function(a,b,c,d,e){if(0!==c.length){var f=[],g=[];Z.flattenJSON(c,f,g,d);0!==f.length&&e.push(new a(b,f,g))}},d=[],e=a.name||"default",f=
 b,c){for(var d={},e=/^([\w-]*?)([\d]+)$/,f=0,g=a.length;f<g;f++){var h=a[f],k=h.name.match(e);if(k&&1<k.length){k=k[1];var n=d[k];n||(d[k]=n=[]);n.push(h)}}a=[];for(var m in d)a.push(Qa.CreateFromMorphTargetSequence(m,d[m],b,c));return a},parseAnimation:function(a,b){if(!a)return console.error("THREE.AnimationClip: No animation in JSONLoader data."),null;var c=function(a,b,c,d,e){if(0!==c.length){var f=[],g=[];Z.flattenJSON(c,f,g,d);0!==f.length&&e.push(new a(b,f,g))}},d=[],e=a.name||"default",f=
-a.fps||30,g=a.blendMode,h=a.length||-1;a=a.hierarchy||[];for(var k=0;k<a.length;k++){var n=a[k].keys;if(n&&0!==n.length)if(n[0].morphTargets){h={};var m=void 0;for(m=0;m<n.length;m++)if(n[m].morphTargets)for(var p=0;p<n[m].morphTargets.length;p++)h[n[m].morphTargets[p]]=-1;for(var v in h){p=[];for(var r=[],q=0;q!==n[m].morphTargets.length;++q){var u=n[m];p.push(u.time);r.push(u.morphTarget===v?1:0)}d.push(new ad(".morphTargetInfluence["+v+"]",p,r))}h=h.length*(f||1)}else m=".bones["+b[k].name+"]",
+a.fps||30,g=a.blendMode,h=a.length||-1;a=a.hierarchy||[];for(var k=0;k<a.length;k++){var n=a[k].keys;if(n&&0!==n.length)if(n[0].morphTargets){h={};var m=void 0;for(m=0;m<n.length;m++)if(n[m].morphTargets)for(var p=0;p<n[m].morphTargets.length;p++)h[n[m].morphTargets[p]]=-1;for(var v in h){p=[];for(var t=[],r=0;r!==n[m].morphTargets.length;++r){var u=n[m];p.push(u.time);t.push(u.morphTarget===v?1:0)}d.push(new ad(".morphTargetInfluence["+v+"]",p,t))}h=h.length*(f||1)}else m=".bones["+b[k].name+"]",
 c(bd,m+".position",n,"pos",d),c(le,m+".quaternion",n,"rot",d),c(bd,m+".scale",n,"scl",d)}return 0===d.length?null:new Qa(e,h,d,g)}});Object.assign(Qa.prototype,{resetDuration:function(){for(var a=0,b=0,c=this.tracks.length;b!==c;++b){var d=this.tracks[b];a=Math.max(a,d.times[d.times.length-1])}this.duration=a;return this},trim:function(){for(var a=0;a<this.tracks.length;a++)this.tracks[a].trim(0,this.duration);return this},validate:function(){for(var a=!0,b=0;b<this.tracks.length;b++)a=a&&this.tracks[b].validate();
 c(bd,m+".position",n,"pos",d),c(le,m+".quaternion",n,"rot",d),c(bd,m+".scale",n,"scl",d)}return 0===d.length?null:new Qa(e,h,d,g)}});Object.assign(Qa.prototype,{resetDuration:function(){for(var a=0,b=0,c=this.tracks.length;b!==c;++b){var d=this.tracks[b];a=Math.max(a,d.times[d.times.length-1])}this.duration=a;return this},trim:function(){for(var a=0;a<this.tracks.length;a++)this.tracks[a].trim(0,this.duration);return this},validate:function(){for(var a=!0,b=0;b<this.tracks.length;b++)a=a&&this.tracks[b].validate();
 return a},optimize:function(){for(var a=0;a<this.tracks.length;a++)this.tracks[a].optimize();return this},clone:function(){for(var a=[],b=0;b<this.tracks.length;b++)a.push(this.tracks[b].clone());return new Qa(this.name,this.duration,a,this.blendMode)}});var tc={enabled:!1,files:{},add:function(a,b){!1!==this.enabled&&(this.files[a]=b)},get:function(a){if(!1!==this.enabled)return this.files[a]},remove:function(a){delete this.files[a]},clear:function(){this.files={}}},hi=new vg;Object.assign(S.prototype,
 return a},optimize:function(){for(var a=0;a<this.tracks.length;a++)this.tracks[a].optimize();return this},clone:function(){for(var a=[],b=0;b<this.tracks.length;b++)a.push(this.tracks[b].clone());return new Qa(this.name,this.duration,a,this.blendMode)}});var tc={enabled:!1,files:{},add:function(a,b){!1!==this.enabled&&(this.files[a]=b)},get:function(a){if(!1!==this.enabled)return this.files[a]},remove:function(a){delete this.files[a]},clear:function(){this.files={}}},hi=new vg;Object.assign(S.prototype,
 {load:function(){},loadAsync:function(a,b){var c=this;return new Promise(function(d,e){c.load(a,d,b,e)})},parse:function(){},setCrossOrigin:function(a){this.crossOrigin=a;return this},setPath:function(a){this.path=a;return this},setResourcePath:function(a){this.resourcePath=a;return this},setRequestHeader:function(a){this.requestHeader=a;return this}});var db={};Ra.prototype=Object.assign(Object.create(S.prototype),{constructor:Ra,load:function(a,b,c,d){void 0===a&&(a="");void 0!==this.path&&(a=this.path+
 {load:function(){},loadAsync:function(a,b){var c=this;return new Promise(function(d,e){c.load(a,d,b,e)})},parse:function(){},setCrossOrigin:function(a){this.crossOrigin=a;return this},setPath:function(a){this.path=a;return this},setResourcePath:function(a){this.resourcePath=a;return this},setRequestHeader:function(a){this.requestHeader=a;return this}});var db={};Ra.prototype=Object.assign(Object.create(S.prototype),{constructor:Ra,load:function(a,b,c,d){void 0===a&&(a="");void 0!==this.path&&(a=this.path+
@@ -781,8 +781,8 @@ e,!1);k.addEventListener("error",f,!1);"data:"!==a.substr(0,5)&&void 0!==this.cr
 gf.prototype=Object.assign(Object.create(S.prototype),{constructor:gf,load:function(a,b,c,d){var e=new W,f=new cd(this.manager);f.setCrossOrigin(this.crossOrigin);f.setPath(this.path);f.load(a,function(c){e.image=c;c=0<a.search(/\.jpe?g($|\?)/i)||0===a.search(/^data:image\/jpeg/);e.format=c?1022:1023;e.needsUpdate=!0;void 0!==b&&b(e)},c,d);return e}});Object.assign(J.prototype,{getPoint:function(){console.warn("THREE.Curve: .getPoint() not implemented.");return null},getPointAt:function(a,b){a=this.getUtoTmapping(a);
 gf.prototype=Object.assign(Object.create(S.prototype),{constructor:gf,load:function(a,b,c,d){var e=new W,f=new cd(this.manager);f.setCrossOrigin(this.crossOrigin);f.setPath(this.path);f.load(a,function(c){e.image=c;c=0<a.search(/\.jpe?g($|\?)/i)||0===a.search(/^data:image\/jpeg/);e.format=c?1022:1023;e.needsUpdate=!0;void 0!==b&&b(e)},c,d);return e}});Object.assign(J.prototype,{getPoint:function(){console.warn("THREE.Curve: .getPoint() not implemented.");return null},getPointAt:function(a,b){a=this.getUtoTmapping(a);
 return this.getPoint(a,b)},getPoints:function(a){void 0===a&&(a=5);for(var b=[],c=0;c<=a;c++)b.push(this.getPoint(c/a));return b},getSpacedPoints:function(a){void 0===a&&(a=5);for(var b=[],c=0;c<=a;c++)b.push(this.getPointAt(c/a));return b},getLength:function(){var a=this.getLengths();return a[a.length-1]},getLengths:function(a){void 0===a&&(a=this.arcLengthDivisions);if(this.cacheArcLengths&&this.cacheArcLengths.length===a+1&&!this.needsUpdate)return this.cacheArcLengths;this.needsUpdate=!1;var b=
 return this.getPoint(a,b)},getPoints:function(a){void 0===a&&(a=5);for(var b=[],c=0;c<=a;c++)b.push(this.getPoint(c/a));return b},getSpacedPoints:function(a){void 0===a&&(a=5);for(var b=[],c=0;c<=a;c++)b.push(this.getPointAt(c/a));return b},getLength:function(){var a=this.getLengths();return a[a.length-1]},getLengths:function(a){void 0===a&&(a=this.arcLengthDivisions);if(this.cacheArcLengths&&this.cacheArcLengths.length===a+1&&!this.needsUpdate)return this.cacheArcLengths;this.needsUpdate=!1;var b=
 [],c=this.getPoint(0),d=0;b.push(0);for(var e=1;e<=a;e++){var f=this.getPoint(e/a);d+=f.distanceTo(c);b.push(d);c=f}return this.cacheArcLengths=b},updateArcLengths:function(){this.needsUpdate=!0;this.getLengths()},getUtoTmapping:function(a,b){var c=this.getLengths(),d=c.length;b=b?b:a*c[d-1];for(var e=0,f=d-1,g;e<=f;)if(a=Math.floor(e+(f-e)/2),g=c[a]-b,0>g)e=a+1;else if(0<g)f=a-1;else{f=a;break}a=f;if(c[a]===b)return a/(d-1);e=c[a];return(a+(b-e)/(c[a+1]-e))/(d-1)},getTangent:function(a,b){var c=
 [],c=this.getPoint(0),d=0;b.push(0);for(var e=1;e<=a;e++){var f=this.getPoint(e/a);d+=f.distanceTo(c);b.push(d);c=f}return this.cacheArcLengths=b},updateArcLengths:function(){this.needsUpdate=!0;this.getLengths()},getUtoTmapping:function(a,b){var c=this.getLengths(),d=c.length;b=b?b:a*c[d-1];for(var e=0,f=d-1,g;e<=f;)if(a=Math.floor(e+(f-e)/2),g=c[a]-b,0>g)e=a+1;else if(0<g)f=a-1;else{f=a;break}a=f;if(c[a]===b)return a/(d-1);e=c[a];return(a+(b-e)/(c[a+1]-e))/(d-1)},getTangent:function(a,b){var c=
-a-1E-4;a+=1E-4;0>c&&(c=0);1<a&&(a=1);c=this.getPoint(c);a=this.getPoint(a);b=b||(c.isVector2?new w:new m);b.copy(a).sub(c).normalize();return b},getTangentAt:function(a,b){a=this.getUtoTmapping(a);return this.getTangent(a,b)},computeFrenetFrames:function(a,b){for(var c=new m,d=[],e=[],f=[],g=new m,h=new M,k=0;k<=a;k++)d[k]=this.getTangentAt(k/a,new m),d[k].normalize();e[0]=new m;f[0]=new m;k=Number.MAX_VALUE;var n=Math.abs(d[0].x),t=Math.abs(d[0].y),p=Math.abs(d[0].z);n<=k&&(k=n,c.set(1,0,0));t<=
-k&&(k=t,c.set(0,1,0));p<=k&&c.set(0,0,1);g.crossVectors(d[0],c).normalize();e[0].crossVectors(d[0],g);f[0].crossVectors(d[0],e[0]);for(c=1;c<=a;c++)e[c]=e[c-1].clone(),f[c]=f[c-1].clone(),g.crossVectors(d[c-1],d[c]),g.length()>Number.EPSILON&&(g.normalize(),k=Math.acos(K.clamp(d[c-1].dot(d[c]),-1,1)),e[c].applyMatrix4(h.makeRotationAxis(g,k))),f[c].crossVectors(d[c],e[c]);if(!0===b)for(b=Math.acos(K.clamp(e[0].dot(e[a]),-1,1)),b/=a,0<d[0].dot(g.crossVectors(e[0],e[a]))&&(b=-b),g=1;g<=a;g++)e[g].applyMatrix4(h.makeRotationAxis(d[g],
+a-1E-4;a+=1E-4;0>c&&(c=0);1<a&&(a=1);c=this.getPoint(c);a=this.getPoint(a);b=b||(c.isVector2?new w:new m);b.copy(a).sub(c).normalize();return b},getTangentAt:function(a,b){a=this.getUtoTmapping(a);return this.getTangent(a,b)},computeFrenetFrames:function(a,b){for(var c=new m,d=[],e=[],f=[],g=new m,h=new M,k=0;k<=a;k++)d[k]=this.getTangentAt(k/a,new m),d[k].normalize();e[0]=new m;f[0]=new m;k=Number.MAX_VALUE;var n=Math.abs(d[0].x),q=Math.abs(d[0].y),p=Math.abs(d[0].z);n<=k&&(k=n,c.set(1,0,0));q<=
+k&&(k=q,c.set(0,1,0));p<=k&&c.set(0,0,1);g.crossVectors(d[0],c).normalize();e[0].crossVectors(d[0],g);f[0].crossVectors(d[0],e[0]);for(c=1;c<=a;c++)e[c]=e[c-1].clone(),f[c]=f[c-1].clone(),g.crossVectors(d[c-1],d[c]),g.length()>Number.EPSILON&&(g.normalize(),k=Math.acos(K.clamp(d[c-1].dot(d[c]),-1,1)),e[c].applyMatrix4(h.makeRotationAxis(g,k))),f[c].crossVectors(d[c],e[c]);if(!0===b)for(b=Math.acos(K.clamp(e[0].dot(e[a]),-1,1)),b/=a,0<d[0].dot(g.crossVectors(e[0],e[a]))&&(b=-b),g=1;g<=a;g++)e[g].applyMatrix4(h.makeRotationAxis(d[g],
 b*g)),f[g].crossVectors(d[g],e[g]);return{tangents:d,normals:e,binormals:f}},clone:function(){return(new this.constructor).copy(this)},copy:function(a){this.arcLengthDivisions=a.arcLengthDivisions;return this},toJSON:function(){var a={metadata:{version:4.5,type:"Curve",generator:"Curve.toJSON"}};a.arcLengthDivisions=this.arcLengthDivisions;a.type=this.type;return a},fromJSON:function(a){this.arcLengthDivisions=a.arcLengthDivisions;return this}});Ma.prototype=Object.create(J.prototype);Ma.prototype.constructor=
 b*g)),f[g].crossVectors(d[g],e[g]);return{tangents:d,normals:e,binormals:f}},clone:function(){return(new this.constructor).copy(this)},copy:function(a){this.arcLengthDivisions=a.arcLengthDivisions;return this},toJSON:function(){var a={metadata:{version:4.5,type:"Curve",generator:"Curve.toJSON"}};a.arcLengthDivisions=this.arcLengthDivisions;a.type=this.type;return a},fromJSON:function(a){this.arcLengthDivisions=a.arcLengthDivisions;return this}});Ma.prototype=Object.create(J.prototype);Ma.prototype.constructor=
 Ma;Ma.prototype.isEllipseCurve=!0;Ma.prototype.getPoint=function(a,b){b=b||new w;for(var c=2*Math.PI,d=this.aEndAngle-this.aStartAngle,e=Math.abs(d)<Number.EPSILON;0>d;)d+=c;for(;d>c;)d-=c;d<Number.EPSILON&&(d=e?0:c);!0!==this.aClockwise||e||(d=d===c?-c:d-c);c=this.aStartAngle+a*d;a=this.aX+this.xRadius*Math.cos(c);var f=this.aY+this.yRadius*Math.sin(c);0!==this.aRotation&&(c=Math.cos(this.aRotation),d=Math.sin(this.aRotation),e=a-this.aX,f-=this.aY,a=e*c-f*d+this.aX,f=e*d+f*c+this.aY);return b.set(a,
 Ma;Ma.prototype.isEllipseCurve=!0;Ma.prototype.getPoint=function(a,b){b=b||new w;for(var c=2*Math.PI,d=this.aEndAngle-this.aStartAngle,e=Math.abs(d)<Number.EPSILON;0>d;)d+=c;for(;d>c;)d-=c;d<Number.EPSILON&&(d=e?0:c);!0!==this.aClockwise||e||(d=d===c?-c:d-c);c=this.aStartAngle+a*d;a=this.aX+this.xRadius*Math.cos(c);var f=this.aY+this.yRadius*Math.sin(c);0!==this.aRotation&&(c=Math.cos(this.aRotation),d=Math.sin(this.aRotation),e=a-this.aX,f-=this.aY,a=e*c-f*d+this.aX,f=e*d+f*c+this.aY);return b.set(a,
 f)};Ma.prototype.copy=function(a){J.prototype.copy.call(this,a);this.aX=a.aX;this.aY=a.aY;this.xRadius=a.xRadius;this.yRadius=a.yRadius;this.aStartAngle=a.aStartAngle;this.aEndAngle=a.aEndAngle;this.aClockwise=a.aClockwise;this.aRotation=a.aRotation;return this};Ma.prototype.toJSON=function(){var a=J.prototype.toJSON.call(this);a.aX=this.aX;a.aY=this.aY;a.xRadius=this.xRadius;a.yRadius=this.yRadius;a.aStartAngle=this.aStartAngle;a.aEndAngle=this.aEndAngle;a.aClockwise=this.aClockwise;a.aRotation=
 f)};Ma.prototype.copy=function(a){J.prototype.copy.call(this,a);this.aX=a.aX;this.aY=a.aY;this.xRadius=a.xRadius;this.yRadius=a.yRadius;this.aStartAngle=a.aStartAngle;this.aEndAngle=a.aEndAngle;this.aClockwise=a.aClockwise;this.aRotation=a.aRotation;return this};Ma.prototype.toJSON=function(){var a=J.prototype.toJSON.call(this);a.aX=this.aX;a.aY=this.aY;a.xRadius=this.xRadius;a.yRadius=this.yRadius;a.aStartAngle=this.aStartAngle;a.aEndAngle=this.aEndAngle;a.aClockwise=this.aClockwise;a.aRotation=
@@ -841,7 +841,7 @@ void 0!==a.clearcoatMap&&(d.clearcoatMap=b(a.clearcoatMap));void 0!==a.clearcoat
 "",c=0,d=a.length;c<d;c++)b+=String.fromCharCode(a[c]);try{return decodeURIComponent(escape(b))}catch(e){return b}},extractUrlBase:function(a){var b=a.lastIndexOf("/");return-1===b?"./":a.substr(0,b+1)}};oe.prototype=Object.assign(Object.create(F.prototype),{constructor:oe,isInstancedBufferGeometry:!0,copy:function(a){F.prototype.copy.call(this,a);this.instanceCount=a.instanceCount;return this},clone:function(){return(new this.constructor).copy(this)},toJSON:function(){var a=F.prototype.toJSON.call(this);
 "",c=0,d=a.length;c<d;c++)b+=String.fromCharCode(a[c]);try{return decodeURIComponent(escape(b))}catch(e){return b}},extractUrlBase:function(a){var b=a.lastIndexOf("/");return-1===b?"./":a.substr(0,b+1)}};oe.prototype=Object.assign(Object.create(F.prototype),{constructor:oe,isInstancedBufferGeometry:!0,copy:function(a){F.prototype.copy.call(this,a);this.instanceCount=a.instanceCount;return this},clone:function(){return(new this.constructor).copy(this)},toJSON:function(){var a=F.prototype.toJSON.call(this);
 a.instanceCount=this.instanceCount;a.isInstancedBufferGeometry=!0;return a}});sf.prototype=Object.assign(Object.create(H.prototype),{constructor:sf,isInstancedBufferAttribute:!0,copy:function(a){H.prototype.copy.call(this,a);this.meshPerAttribute=a.meshPerAttribute;return this},toJSON:function(){var a=H.prototype.toJSON.call(this);a.meshPerAttribute=this.meshPerAttribute;a.isInstancedBufferAttribute=!0;return a}});tf.prototype=Object.assign(Object.create(S.prototype),{constructor:tf,load:function(a,
 a.instanceCount=this.instanceCount;a.isInstancedBufferGeometry=!0;return a}});sf.prototype=Object.assign(Object.create(H.prototype),{constructor:sf,isInstancedBufferAttribute:!0,copy:function(a){H.prototype.copy.call(this,a);this.meshPerAttribute=a.meshPerAttribute;return this},toJSON:function(){var a=H.prototype.toJSON.call(this);a.meshPerAttribute=this.meshPerAttribute;a.isInstancedBufferAttribute=!0;return a}});tf.prototype=Object.assign(Object.create(S.prototype),{constructor:tf,load:function(a,
 b,c,d){var e=this,f=new Ra(e.manager);f.setPath(e.path);f.load(a,function(c){try{b(e.parse(JSON.parse(c)))}catch(h){d?d(h):console.error(h),e.manager.itemError(a)}},c,d)},parse:function(a){function b(a,b){if(void 0!==c[b])return c[b];var e=a.interleavedBuffers[b];var f=e.buffer;void 0!==d[f]?f=d[f]:(a=(new Uint32Array(a.arrayBuffers[f])).buffer,f=d[f]=a);f=new Uf[e.type](f);f=new Ja(f,e.stride);f.uuid=e.uuid;return c[b]=f}var c={},d={},e=a.isInstancedBufferGeometry?new oe:new F,f=a.data.index;void 0!==
 b,c,d){var e=this,f=new Ra(e.manager);f.setPath(e.path);f.load(a,function(c){try{b(e.parse(JSON.parse(c)))}catch(h){d?d(h):console.error(h),e.manager.itemError(a)}},c,d)},parse:function(a){function b(a,b){if(void 0!==c[b])return c[b];var e=a.interleavedBuffers[b];var f=e.buffer;void 0!==d[f]?f=d[f]:(a=(new Uint32Array(a.arrayBuffers[f])).buffer,f=d[f]=a);f=new Uf[e.type](f);f=new Ja(f,e.stride);f.uuid=e.uuid;return c[b]=f}var c={},d={},e=a.isInstancedBufferGeometry?new oe:new F,f=a.data.index;void 0!==
-f&&(f=new Uf[f.type](f.array),e.setIndex(new H(f,1)));f=a.data.attributes;for(var g in f){var h=f[g],k=void 0;h.isInterleavedBufferAttribute?(k=b(a.data,h.data),k=new Jb(k,h.itemSize,h.offset,h.normalized)):(k=new Uf[h.type](h.array),k=new (h.isInstancedBufferAttribute?sf:H)(k,h.itemSize,h.normalized));void 0!==h.name&&(k.name=h.name);e.setAttribute(g,k)}if(g=a.data.morphAttributes)for(var n in g){f=g[n];h=[];k=0;for(var t=f.length;k<t;k++){var p=f[k],v=void 0;p.isInterleavedBufferAttribute?(v=b(a.data,
+f&&(f=new Uf[f.type](f.array),e.setIndex(new H(f,1)));f=a.data.attributes;for(var g in f){var h=f[g],k=void 0;h.isInterleavedBufferAttribute?(k=b(a.data,h.data),k=new Jb(k,h.itemSize,h.offset,h.normalized)):(k=new Uf[h.type](h.array),k=new (h.isInstancedBufferAttribute?sf:H)(k,h.itemSize,h.normalized));void 0!==h.name&&(k.name=h.name);e.setAttribute(g,k)}if(g=a.data.morphAttributes)for(var n in g){f=g[n];h=[];k=0;for(var q=f.length;k<q;k++){var p=f[k],v=void 0;p.isInterleavedBufferAttribute?(v=b(a.data,
 p.data),v=new Jb(v,p.itemSize,p.offset,p.normalized)):(v=new Uf[p.type](p.array),v=new H(v,p.itemSize,p.normalized));void 0!==p.name&&(v.name=p.name);h.push(v)}e.morphAttributes[n]=h}a.data.morphTargetsRelative&&(e.morphTargetsRelative=!0);n=a.data.groups||a.data.drawcalls||a.data.offsets;if(void 0!==n)for(g=0,f=n.length;g!==f;++g)h=n[g],e.addGroup(h.start,h.count,h.materialIndex);n=a.data.boundingSphere;void 0!==n&&(g=new m,void 0!==n.center&&g.fromArray(n.center),e.boundingSphere=new eb(g,n.radius));
 p.data),v=new Jb(v,p.itemSize,p.offset,p.normalized)):(v=new Uf[p.type](p.array),v=new H(v,p.itemSize,p.normalized));void 0!==p.name&&(v.name=p.name);h.push(v)}e.morphAttributes[n]=h}a.data.morphTargetsRelative&&(e.morphTargetsRelative=!0);n=a.data.groups||a.data.drawcalls||a.data.offsets;if(void 0!==n)for(g=0,f=n.length;g!==f;++g)h=n[g],e.addGroup(h.start,h.count,h.materialIndex);n=a.data.boundingSphere;void 0!==n&&(g=new m,void 0!==n.center&&g.fromArray(n.center),e.boundingSphere=new eb(g,n.radius));
 a.name&&(e.name=a.name);a.userData&&(e.userData=a.userData);return e}});var Uf={Int8Array:Int8Array,Uint8Array:Uint8Array,Uint8ClampedArray:"undefined"!==typeof Uint8ClampedArray?Uint8ClampedArray:Uint8Array,Int16Array:Int16Array,Uint16Array:Uint16Array,Int32Array:Int32Array,Uint32Array:Uint32Array,Float32Array:Float32Array,Float64Array:Float64Array};uf.prototype=Object.assign(Object.create(S.prototype),{constructor:uf,load:function(a,b,c,d){var e=this,f=""===this.path?qh.extractUrlBase(a):this.path;
 a.name&&(e.name=a.name);a.userData&&(e.userData=a.userData);return e}});var Uf={Int8Array:Int8Array,Uint8Array:Uint8Array,Uint8ClampedArray:"undefined"!==typeof Uint8ClampedArray?Uint8ClampedArray:Uint8Array,Int16Array:Int16Array,Uint16Array:Uint16Array,Int32Array:Int32Array,Uint32Array:Uint32Array,Float32Array:Float32Array,Float64Array:Float64Array};uf.prototype=Object.assign(Object.create(S.prototype),{constructor:uf,load:function(a,b,c,d){var e=this,f=""===this.path?qh.extractUrlBase(a):this.path;
 this.resourcePath=this.resourcePath||f;f=new Ra(e.manager);f.setPath(this.path);f.load(a,function(c){var f=null;try{f=JSON.parse(c)}catch(l){void 0!==d&&d(l);console.error("THREE:ObjectLoader: Can't parse "+a+".",l.message);return}c=f.metadata;void 0===c||void 0===c.type||"geometry"===c.type.toLowerCase()?console.error("THREE.ObjectLoader: Can't load "+a):e.parse(f,b)},c,d)},parse:function(a,b){var c=this.parseShape(a.shapes);c=this.parseGeometries(a.geometries,c);var d=this.parseImages(a.images,
 this.resourcePath=this.resourcePath||f;f=new Ra(e.manager);f.setPath(this.path);f.load(a,function(c){var f=null;try{f=JSON.parse(c)}catch(l){void 0!==d&&d(l);console.error("THREE:ObjectLoader: Can't parse "+a+".",l.message);return}c=f.metadata;void 0===c||void 0===c.type||"geometry"===c.type.toLowerCase()?console.error("THREE.ObjectLoader: Can't load "+a):e.parse(f,b)},c,d)},parse:function(a,b){var c=this.parseShape(a.shapes);c=this.parseGeometries(a.geometries,c);var d=this.parseImages(a.images,
@@ -867,10 +867,10 @@ h=0;h<a.length;h++){g=a[h];var k=f.getObjectByProperty("uuid",g.object);void 0!=
 LinearMipmapNearestFilter:1007,LinearMipmapLinearFilter:1008};Ag.prototype=Object.assign(Object.create(S.prototype),{constructor:Ag,setOptions:function(a){this.options=a;return this},load:function(a,b,c,d){void 0===a&&(a="");void 0!==this.path&&(a=this.path+a);a=this.manager.resolveURL(a);var e=this,f=tc.get(a);if(void 0!==f)return e.manager.itemStart(a),setTimeout(function(){b&&b(f);e.manager.itemEnd(a)},0),f;fetch(a).then(function(a){return a.blob()}).then(function(a){return void 0===e.options?
 LinearMipmapNearestFilter:1007,LinearMipmapLinearFilter:1008};Ag.prototype=Object.assign(Object.create(S.prototype),{constructor:Ag,setOptions:function(a){this.options=a;return this},load:function(a,b,c,d){void 0===a&&(a="");void 0!==this.path&&(a=this.path+a);a=this.manager.resolveURL(a);var e=this,f=tc.get(a);if(void 0!==f)return e.manager.itemStart(a),setTimeout(function(){b&&b(f);e.manager.itemEnd(a)},0),f;fetch(a).then(function(a){return a.blob()}).then(function(a){return void 0===e.options?
 createImageBitmap(a):createImageBitmap(a,e.options)}).then(function(c){tc.add(a,c);b&&b(c);e.manager.itemEnd(a)}).catch(function(b){d&&d(b);e.manager.itemError(a);e.manager.itemEnd(a)});e.manager.itemStart(a)}});Object.assign(Bg.prototype,{moveTo:function(a,b){this.currentPath=new bb;this.subPaths.push(this.currentPath);this.currentPath.moveTo(a,b);return this},lineTo:function(a,b){this.currentPath.lineTo(a,b);return this},quadraticCurveTo:function(a,b,c,d){this.currentPath.quadraticCurveTo(a,b,c,
 createImageBitmap(a):createImageBitmap(a,e.options)}).then(function(c){tc.add(a,c);b&&b(c);e.manager.itemEnd(a)}).catch(function(b){d&&d(b);e.manager.itemError(a);e.manager.itemEnd(a)});e.manager.itemStart(a)}});Object.assign(Bg.prototype,{moveTo:function(a,b){this.currentPath=new bb;this.subPaths.push(this.currentPath);this.currentPath.moveTo(a,b);return this},lineTo:function(a,b){this.currentPath.lineTo(a,b);return this},quadraticCurveTo:function(a,b,c,d){this.currentPath.quadraticCurveTo(a,b,c,
 d);return this},bezierCurveTo:function(a,b,c,d,e,f){this.currentPath.bezierCurveTo(a,b,c,d,e,f);return this},splineThru:function(a){this.currentPath.splineThru(a);return this},toShapes:function(a,b){function c(a){for(var b=[],c=0,d=a.length;c<d;c++){var e=a[c],f=new Nb;f.curves=e.curves;b.push(f)}return b}function d(a,b){for(var c=b.length,d=!1,e=c-1,f=0;f<c;e=f++){var g=b[e],h=b[f],k=h.x-g.x,l=h.y-g.y;if(Math.abs(l)>Number.EPSILON){if(0>l&&(g=b[f],k=-k,h=b[e],l=-l),!(a.y<g.y||a.y>h.y))if(a.y===g.y){if(a.x===
 d);return this},bezierCurveTo:function(a,b,c,d,e,f){this.currentPath.bezierCurveTo(a,b,c,d,e,f);return this},splineThru:function(a){this.currentPath.splineThru(a);return this},toShapes:function(a,b){function c(a){for(var b=[],c=0,d=a.length;c<d;c++){var e=a[c],f=new Nb;f.curves=e.curves;b.push(f)}return b}function d(a,b){for(var c=b.length,d=!1,e=c-1,f=0;f<c;e=f++){var g=b[e],h=b[f],k=h.x-g.x,l=h.y-g.y;if(Math.abs(l)>Number.EPSILON){if(0>l&&(g=b[f],k=-k,h=b[e],l=-l),!(a.y<g.y||a.y>h.y))if(a.y===g.y){if(a.x===
-g.x)return!0}else{e=l*(a.x-g.x)-k*(a.y-g.y);if(0===e)return!0;0>e||(d=!d)}}else if(a.y===g.y&&(h.x<=a.x&&a.x<=g.x||g.x<=a.x&&a.x<=h.x))return!0}return d}var e=rb.isClockWise,f=this.subPaths;if(0===f.length)return[];if(!0===b)return c(f);b=[];if(1===f.length){var g=f[0];var h=new Nb;h.curves=g.curves;b.push(h);return b}var k=!e(f[0].getPoints());k=a?!k:k;h=[];var n=[],m=[],p=0;n[p]=void 0;m[p]=[];for(var v=0,r=f.length;v<r;v++){g=f[v];var q=g.getPoints();var u=e(q);(u=a?!u:u)?(!k&&n[p]&&p++,n[p]={s:new Nb,
-p:q},n[p].s.curves=g.curves,k&&p++,m[p]=[]):m[p].push({h:g,p:q[0]})}if(!n[0])return c(f);if(1<n.length){a=!1;e=[];f=0;for(g=n.length;f<g;f++)h[f]=[];f=0;for(g=n.length;f<g;f++)for(u=m[f],k=0;k<u.length;k++){p=u[k];q=!0;for(v=0;v<n.length;v++)d(p.p,n[v].p)&&(f!==v&&e.push({froms:f,tos:v,hole:k}),q?(q=!1,h[v].push(p)):a=!0);q&&h[f].push(p)}0<e.length&&(a||(m=h))}e=0;for(f=n.length;e<f;e++)for(h=n[e].s,b.push(h),a=m[e],g=0,u=a.length;g<u;g++)h.holes.push(a[g].h);return b}});Object.assign(Cg.prototype,
-{isFont:!0,generateShapes:function(a,b){void 0===b&&(b=100);var c=[],d=b;b=this.data;var e=Array.from?Array.from(a):String(a).split("");d/=b.resolution;var f=(b.boundingBox.yMax-b.boundingBox.yMin+b.underlineThickness)*d;a=[];for(var g=0,h=0,k=0;k<e.length;k++){var n=e[k];if("\n"===n)g=0,h-=f;else{var m=n;n=d;var p=g,v=h,r=b,q=r.glyphs[m]||r.glyphs["?"];if(q){m=new Bg;if(q.o){r=q._cachedOutline||(q._cachedOutline=q.o.split(" "));for(var u=0,w=r.length;u<w;)switch(r[u++]){case "m":var y=r[u++]*n+p;
-var x=r[u++]*n+v;m.moveTo(y,x);break;case "l":y=r[u++]*n+p;x=r[u++]*n+v;m.lineTo(y,x);break;case "q":var z=r[u++]*n+p;var B=r[u++]*n+v;var D=r[u++]*n+p;var C=r[u++]*n+v;m.quadraticCurveTo(D,C,z,B);break;case "b":z=r[u++]*n+p,B=r[u++]*n+v,D=r[u++]*n+p,C=r[u++]*n+v,y=r[u++]*n+p,x=r[u++]*n+v,m.bezierCurveTo(D,C,y,x,z,B)}}n={offsetX:q.ha*n,path:m}}else console.error('THREE.Font: character "'+m+'" does not exists in font family '+r.familyName+"."),n=void 0;g+=n.offsetX;a.push(n.path)}}b=0;for(e=a.length;b<
+g.x)return!0}else{e=l*(a.x-g.x)-k*(a.y-g.y);if(0===e)return!0;0>e||(d=!d)}}else if(a.y===g.y&&(h.x<=a.x&&a.x<=g.x||g.x<=a.x&&a.x<=h.x))return!0}return d}var e=rb.isClockWise,f=this.subPaths;if(0===f.length)return[];if(!0===b)return c(f);b=[];if(1===f.length){var g=f[0];var h=new Nb;h.curves=g.curves;b.push(h);return b}var k=!e(f[0].getPoints());k=a?!k:k;h=[];var n=[],m=[],p=0;n[p]=void 0;m[p]=[];for(var v=0,t=f.length;v<t;v++){g=f[v];var r=g.getPoints();var u=e(r);(u=a?!u:u)?(!k&&n[p]&&p++,n[p]={s:new Nb,
+p:r},n[p].s.curves=g.curves,k&&p++,m[p]=[]):m[p].push({h:g,p:r[0]})}if(!n[0])return c(f);if(1<n.length){a=!1;e=[];f=0;for(g=n.length;f<g;f++)h[f]=[];f=0;for(g=n.length;f<g;f++)for(u=m[f],k=0;k<u.length;k++){p=u[k];r=!0;for(v=0;v<n.length;v++)d(p.p,n[v].p)&&(f!==v&&e.push({froms:f,tos:v,hole:k}),r?(r=!1,h[v].push(p)):a=!0);r&&h[f].push(p)}0<e.length&&(a||(m=h))}e=0;for(f=n.length;e<f;e++)for(h=n[e].s,b.push(h),a=m[e],g=0,u=a.length;g<u;g++)h.holes.push(a[g].h);return b}});Object.assign(Cg.prototype,
+{isFont:!0,generateShapes:function(a,b){void 0===b&&(b=100);var c=[],d=b;b=this.data;var e=Array.from?Array.from(a):String(a).split("");d/=b.resolution;var f=(b.boundingBox.yMax-b.boundingBox.yMin+b.underlineThickness)*d;a=[];for(var g=0,h=0,k=0;k<e.length;k++){var n=e[k];if("\n"===n)g=0,h-=f;else{var m=n;n=d;var p=g,v=h,t=b,r=t.glyphs[m]||t.glyphs["?"];if(r){m=new Bg;if(r.o){t=r._cachedOutline||(r._cachedOutline=r.o.split(" "));for(var u=0,w=t.length;u<w;)switch(t[u++]){case "m":var y=t[u++]*n+p;
+var x=t[u++]*n+v;m.moveTo(y,x);break;case "l":y=t[u++]*n+p;x=t[u++]*n+v;m.lineTo(y,x);break;case "q":var z=t[u++]*n+p;var B=t[u++]*n+v;var D=t[u++]*n+p;var C=t[u++]*n+v;m.quadraticCurveTo(D,C,z,B);break;case "b":z=t[u++]*n+p,B=t[u++]*n+v,D=t[u++]*n+p,C=t[u++]*n+v,y=t[u++]*n+p,x=t[u++]*n+v,m.bezierCurveTo(D,C,y,x,z,B)}}n={offsetX:r.ha*n,path:m}}else console.error('THREE.Font: character "'+m+'" does not exists in font family '+t.familyName+"."),n=void 0;g+=n.offsetX;a.push(n.path)}}b=0;for(e=a.length;b<
 e;b++)Array.prototype.push.apply(c,a[b].toShapes());return c}});Dg.prototype=Object.assign(Object.create(S.prototype),{constructor:Dg,load:function(a,b,c,d){var e=this,f=new Ra(this.manager);f.setPath(this.path);f.load(a,function(a){try{var c=JSON.parse(a)}catch(l){console.warn("THREE.FontLoader: typeface.js support is being deprecated. Use typeface.json instead."),c=JSON.parse(a.substring(65,a.length-2))}a=e.parse(c);b&&b(a)},c,d)},parse:function(a){return new Cg(a)}});var Vf,Ig={getContext:function(){void 0===
 e;b++)Array.prototype.push.apply(c,a[b].toShapes());return c}});Dg.prototype=Object.assign(Object.create(S.prototype),{constructor:Dg,load:function(a,b,c,d){var e=this,f=new Ra(this.manager);f.setPath(this.path);f.load(a,function(a){try{var c=JSON.parse(a)}catch(l){console.warn("THREE.FontLoader: typeface.js support is being deprecated. Use typeface.json instead."),c=JSON.parse(a.substring(65,a.length-2))}a=e.parse(c);b&&b(a)},c,d)},parse:function(a){return new Cg(a)}});var Vf,Ig={getContext:function(){void 0===
 Vf&&(Vf=new (window.AudioContext||window.webkitAudioContext));return Vf},setContext:function(a){Vf=a}};vf.prototype=Object.assign(Object.create(S.prototype),{constructor:vf,load:function(a,b,c,d){var e=this,f=new Ra(e.manager);f.setResponseType("arraybuffer");f.setPath(e.path);f.load(a,function(c){try{var f=c.slice(0);Ig.getContext().decodeAudioData(f,function(a){b(a)})}catch(l){d?d(l):console.error(l),e.manager.itemError(a)}},c,d)}});Eg.prototype=Object.assign(Object.create(Sa.prototype),{constructor:Eg,
 Vf&&(Vf=new (window.AudioContext||window.webkitAudioContext));return Vf},setContext:function(a){Vf=a}};vf.prototype=Object.assign(Object.create(S.prototype),{constructor:vf,load:function(a,b,c,d){var e=this,f=new Ra(e.manager);f.setResponseType("arraybuffer");f.setPath(e.path);f.load(a,function(c){try{var f=c.slice(0);Ig.getContext().decodeAudioData(f,function(a){b(a)})}catch(l){d?d(l):console.error(l),e.manager.itemError(a)}},c,d)}});Eg.prototype=Object.assign(Object.create(Sa.prototype),{constructor:Eg,
 isHemisphereLightProbe:!0,copy:function(a){Sa.prototype.copy.call(this,a);return this},toJSON:function(a){return Sa.prototype.toJSON.call(this,a)}});Fg.prototype=Object.assign(Object.create(Sa.prototype),{constructor:Fg,isAmbientLightProbe:!0,copy:function(a){Sa.prototype.copy.call(this,a);return this},toJSON:function(a){return Sa.prototype.toJSON.call(this,a)}});var Si=new M,Ti=new M;Object.assign(ji.prototype,{update:function(a){var b=this._cache;if(b.focus!==a.focus||b.fov!==a.fov||b.aspect!==
 isHemisphereLightProbe:!0,copy:function(a){Sa.prototype.copy.call(this,a);return this},toJSON:function(a){return Sa.prototype.toJSON.call(this,a)}});Fg.prototype=Object.assign(Object.create(Sa.prototype),{constructor:Fg,isAmbientLightProbe:!0,copy:function(a){Sa.prototype.copy.call(this,a);return this},toJSON:function(a){return Sa.prototype.toJSON.call(this,a)}});var Si=new M,Ti=new M;Object.assign(ji.prototype,{update:function(a){var b=this._cache;if(b.focus!==a.focus||b.fov!==a.fov||b.aspect!==
@@ -906,10 +906,10 @@ this);return}a=a.material.materials;break;case "bones":if(!a.skeleton){console.e
 this,a);return}a=a[f]}}f=a[d];if(void 0===f)console.error("THREE.PropertyBinding: Trying to update property for track: "+b.nodeName+"."+d+" but it wasn't found.",a);else{b=this.Versioning.None;this.targetObject=a;void 0!==a.needsUpdate?b=this.Versioning.NeedsUpdate:void 0!==a.matrixWorldNeedsUpdate&&(b=this.Versioning.MatrixWorldNeedsUpdate);c=this.BindingType.Direct;if(void 0!==e){if("morphTargetInfluences"===d){if(!a.geometry){console.error("THREE.PropertyBinding: Can not bind to morphTargetInfluences because node does not have a geometry.",
 this,a);return}a=a[f]}}f=a[d];if(void 0===f)console.error("THREE.PropertyBinding: Trying to update property for track: "+b.nodeName+"."+d+" but it wasn't found.",a);else{b=this.Versioning.None;this.targetObject=a;void 0!==a.needsUpdate?b=this.Versioning.NeedsUpdate:void 0!==a.matrixWorldNeedsUpdate&&(b=this.Versioning.MatrixWorldNeedsUpdate);c=this.BindingType.Direct;if(void 0!==e){if("morphTargetInfluences"===d){if(!a.geometry){console.error("THREE.PropertyBinding: Can not bind to morphTargetInfluences because node does not have a geometry.",
 this);return}if(a.geometry.isBufferGeometry){if(!a.geometry.morphAttributes){console.error("THREE.PropertyBinding: Can not bind to morphTargetInfluences because node does not have a geometry.morphAttributes.",this);return}void 0!==a.morphTargetDictionary[e]&&(e=a.morphTargetDictionary[e])}else{console.error("THREE.PropertyBinding: Can not bind to morphTargetInfluences on THREE.Geometry. Use THREE.BufferGeometry instead.",this);return}}c=this.BindingType.ArrayElement;this.resolvedProperty=f;this.propertyIndex=
 this);return}if(a.geometry.isBufferGeometry){if(!a.geometry.morphAttributes){console.error("THREE.PropertyBinding: Can not bind to morphTargetInfluences because node does not have a geometry.morphAttributes.",this);return}void 0!==a.morphTargetDictionary[e]&&(e=a.morphTargetDictionary[e])}else{console.error("THREE.PropertyBinding: Can not bind to morphTargetInfluences on THREE.Geometry. Use THREE.BufferGeometry instead.",this);return}}c=this.BindingType.ArrayElement;this.resolvedProperty=f;this.propertyIndex=
 e}else void 0!==f.fromArray&&void 0!==f.toArray?(c=this.BindingType.HasFromToArray,this.resolvedProperty=f):Array.isArray(f)?(c=this.BindingType.EntireArray,this.resolvedProperty=f):this.propertyName=d;this.getValue=this.GetterByBindingType[c];this.setValue=this.SetterByBindingTypeAndVersioning[c][b]}}else console.error("THREE.PropertyBinding: Trying to update node for track: "+this.path+" but it wasn't found.")},unbind:function(){this.node=null;this.getValue=this._getValue_unbound;this.setValue=
 e}else void 0!==f.fromArray&&void 0!==f.toArray?(c=this.BindingType.HasFromToArray,this.resolvedProperty=f):Array.isArray(f)?(c=this.BindingType.EntireArray,this.resolvedProperty=f):this.propertyName=d;this.getValue=this.GetterByBindingType[c];this.setValue=this.SetterByBindingTypeAndVersioning[c][b]}}else console.error("THREE.PropertyBinding: Trying to update node for track: "+this.path+" but it wasn't found.")},unbind:function(){this.node=null;this.getValue=this._getValue_unbound;this.setValue=
-this._setValue_unbound}});Object.assign(za.prototype,{_getValue_unbound:za.prototype.getValue,_setValue_unbound:za.prototype.setValue});Object.assign(li.prototype,{isAnimationObjectGroup:!0,add:function(){for(var a=this._objects,b=this._indicesByUUID,c=this._paths,d=this._parsedPaths,e=this._bindings,f=e.length,g=void 0,h=a.length,k=this.nCachedObjects_,n=0,m=arguments.length;n!==m;++n){var p=arguments[n],v=p.uuid,r=b[v];if(void 0===r){r=h++;b[v]=r;a.push(p);r=0;for(var q=f;r!==q;++r)e[r].push(new za(p,
-c[r],d[r]))}else if(r<k){g=a[r];q=--k;var u=a[q];b[u.uuid]=r;a[r]=u;b[v]=q;a[q]=p;v=0;for(u=f;v!==u;++v){var w=e[v],y=w[r];w[r]=w[q];void 0===y&&(y=new za(p,c[v],d[v]));w[q]=y}}else a[r]!==g&&console.error("THREE.AnimationObjectGroup: Different objects with the same UUID detected. Clean the caches or recreate your infrastructure when reloading scenes.")}this.nCachedObjects_=k},remove:function(){for(var a=this._objects,b=this._indicesByUUID,c=this._bindings,d=c.length,e=this.nCachedObjects_,f=0,g=
+this._setValue_unbound}});Object.assign(za.prototype,{_getValue_unbound:za.prototype.getValue,_setValue_unbound:za.prototype.setValue});Object.assign(li.prototype,{isAnimationObjectGroup:!0,add:function(){for(var a=this._objects,b=this._indicesByUUID,c=this._paths,d=this._parsedPaths,e=this._bindings,f=e.length,g=void 0,h=a.length,k=this.nCachedObjects_,n=0,m=arguments.length;n!==m;++n){var p=arguments[n],v=p.uuid,t=b[v];if(void 0===t){t=h++;b[v]=t;a.push(p);t=0;for(var r=f;t!==r;++t)e[t].push(new za(p,
+c[t],d[t]))}else if(t<k){g=a[t];r=--k;var u=a[r];b[u.uuid]=t;a[t]=u;b[v]=r;a[r]=p;v=0;for(u=f;v!==u;++v){var w=e[v],y=w[t];w[t]=w[r];void 0===y&&(y=new za(p,c[v],d[v]));w[r]=y}}else a[t]!==g&&console.error("THREE.AnimationObjectGroup: Different objects with the same UUID detected. Clean the caches or recreate your infrastructure when reloading scenes.")}this.nCachedObjects_=k},remove:function(){for(var a=this._objects,b=this._indicesByUUID,c=this._bindings,d=c.length,e=this.nCachedObjects_,f=0,g=
 arguments.length;f!==g;++f){var h=arguments[f],k=h.uuid,n=b[k];if(void 0!==n&&n>=e){var m=e++,p=a[m];b[p.uuid]=n;a[n]=p;b[k]=m;a[m]=h;h=0;for(k=d;h!==k;++h){p=c[h];var v=p[n];p[n]=p[m];p[m]=v}}}this.nCachedObjects_=e},uncache:function(){for(var a=this._objects,b=this._indicesByUUID,c=this._bindings,d=c.length,e=this.nCachedObjects_,f=a.length,g=0,h=arguments.length;g!==h;++g){var k=arguments[g].uuid,n=b[k];if(void 0!==n)if(delete b[k],n<e){k=--e;var m=a[k],p=--f,v=a[p];b[m.uuid]=n;a[n]=m;b[v.uuid]=
 arguments.length;f!==g;++f){var h=arguments[f],k=h.uuid,n=b[k];if(void 0!==n&&n>=e){var m=e++,p=a[m];b[p.uuid]=n;a[n]=p;b[k]=m;a[m]=h;h=0;for(k=d;h!==k;++h){p=c[h];var v=p[n];p[n]=p[m];p[m]=v}}}this.nCachedObjects_=e},uncache:function(){for(var a=this._objects,b=this._indicesByUUID,c=this._bindings,d=c.length,e=this.nCachedObjects_,f=a.length,g=0,h=arguments.length;g!==h;++g){var k=arguments[g].uuid,n=b[k];if(void 0!==n)if(delete b[k],n<e){k=--e;var m=a[k],p=--f,v=a[p];b[m.uuid]=n;a[n]=m;b[v.uuid]=
-k;a[k]=v;a.pop();m=0;for(v=d;m!==v;++m){var r=c[m],q=r[p];r[n]=r[k];r[k]=q;r.pop()}}else for(k=--f,p=a[k],b[p.uuid]=n,a[n]=p,a.pop(),p=0,m=d;p!==m;++p)v=c[p],v[n]=v[k],v.pop()}this.nCachedObjects_=e},subscribe_:function(a,b){var c=this._bindingsIndicesByPath,d=c[a],e=this._bindings;if(void 0!==d)return e[d];var f=this._paths,g=this._parsedPaths,h=this._objects,k=this.nCachedObjects_,n=Array(h.length);d=e.length;c[a]=d;f.push(a);g.push(b);e.push(n);c=k;for(d=h.length;c!==d;++c)n[c]=new za(h[c],a,b);
+k;a[k]=v;a.pop();m=0;for(v=d;m!==v;++m){var t=c[m],r=t[p];t[n]=t[k];t[k]=r;t.pop()}}else for(k=--f,p=a[k],b[p.uuid]=n,a[n]=p,a.pop(),p=0,m=d;p!==m;++p)v=c[p],v[n]=v[k],v.pop()}this.nCachedObjects_=e},subscribe_:function(a,b){var c=this._bindingsIndicesByPath,d=c[a],e=this._bindings;if(void 0!==d)return e[d];var f=this._paths,g=this._parsedPaths,h=this._objects,k=this.nCachedObjects_,n=Array(h.length);d=e.length;c[a]=d;f.push(a);g.push(b);e.push(n);c=k;for(d=h.length;c!==d;++c)n[c]=new za(h[c],a,b);
 return n},unsubscribe_:function(a){var b=this._bindingsIndicesByPath,c=b[a];if(void 0!==c){var d=this._paths,e=this._parsedPaths,f=this._bindings,g=f.length-1,h=f[g];b[a[g]]=c;f[c]=h;f.pop();e[c]=e[g];e.pop();d[c]=d[g];d.pop()}}});Object.assign(mi.prototype,{play:function(){this._mixer._activateAction(this);return this},stop:function(){this._mixer._deactivateAction(this);return this.reset()},reset:function(){this.paused=!1;this.enabled=!0;this.time=0;this._loopCount=-1;this._startTime=null;return this.stopFading().stopWarping()},
 return n},unsubscribe_:function(a){var b=this._bindingsIndicesByPath,c=b[a];if(void 0!==c){var d=this._paths,e=this._parsedPaths,f=this._bindings,g=f.length-1,h=f[g];b[a[g]]=c;f[c]=h;f.pop();e[c]=e[g];e.pop();d[c]=d[g];d.pop()}}});Object.assign(mi.prototype,{play:function(){this._mixer._activateAction(this);return this},stop:function(){this._mixer._deactivateAction(this);return this.reset()},reset:function(){this.paused=!1;this.enabled=!0;this.time=0;this._loopCount=-1;this._startTime=null;return this.stopFading().stopWarping()},
 isRunning:function(){return this.enabled&&!this.paused&&0!==this.timeScale&&null===this._startTime&&this._mixer._isActiveAction(this)},isScheduled:function(){return this._mixer._isActiveAction(this)},startAt:function(a){this._startTime=a;return this},setLoop:function(a,b){this.loop=a;this.repetitions=b;return this},setEffectiveWeight:function(a){this.weight=a;this._effectiveWeight=this.enabled?a:0;return this.stopFading()},getEffectiveWeight:function(){return this._effectiveWeight},fadeIn:function(a){return this._scheduleFading(a,
 isRunning:function(){return this.enabled&&!this.paused&&0!==this.timeScale&&null===this._startTime&&this._mixer._isActiveAction(this)},isScheduled:function(){return this._mixer._isActiveAction(this)},startAt:function(a){this._startTime=a;return this},setLoop:function(a,b){this.loop=a;this.repetitions=b;return this},setEffectiveWeight:function(a){this.weight=a;this._effectiveWeight=this.enabled?a:0;return this.stopFading()},getEffectiveWeight:function(){return this._effectiveWeight},fadeIn:function(a){return this._scheduleFading(a,
 0,1)},fadeOut:function(a){return this._scheduleFading(a,1,0)},crossFadeFrom:function(a,b,c){a.fadeOut(b);this.fadeIn(b);if(c){c=this._clip.duration;var d=a._clip.duration,e=c/d;a.warp(1,d/c,b);this.warp(e,1,b)}return this},crossFadeTo:function(a,b,c){return a.crossFadeFrom(this,b,c)},stopFading:function(){var a=this._weightInterpolant;null!==a&&(this._weightInterpolant=null,this._mixer._takeBackControlInterpolant(a));return this},setEffectiveTimeScale:function(a){this.timeScale=a;this._effectiveTimeScale=
 0,1)},fadeOut:function(a){return this._scheduleFading(a,1,0)},crossFadeFrom:function(a,b,c){a.fadeOut(b);this.fadeIn(b);if(c){c=this._clip.duration;var d=a._clip.duration,e=c/d;a.warp(1,d/c,b);this.warp(e,1,b)}return this},crossFadeTo:function(a,b,c){return a.crossFadeFrom(this,b,c)},stopFading:function(){var a=this._weightInterpolant;null!==a&&(this._weightInterpolant=null,this._mixer._takeBackControlInterpolant(a));return this},setEffectiveTimeScale:function(a){this.timeScale=a;this._effectiveTimeScale=
@@ -960,23 +960,23 @@ b.push(f);var g=1/f;4<e?g=dj[e-8+4-1]:0==e&&(g=0);c.push(g);g=1/(f-1);f=-g/2;g=1
 _sigmas:c}}(),Ee=th._lodPlanes,fj=th._sizeLods,$f=th._sigmas,uh=null,yc=(1+Math.sqrt(5))/2,wd=1/yc,gj=[new m(1,1,1),new m(-1,1,1),new m(1,1,-1),new m(-1,1,-1),new m(0,yc,wd),new m(0,yc,-wd),new m(wd,0,yc),new m(-wd,0,yc),new m(yc,wd,0),new m(-yc,wd,0)];Tg.prototype={constructor:Tg,fromScene:function(a,b,c,d){void 0===b&&(b=0);void 0===c&&(c=.1);void 0===d&&(d=100);uh=this._renderer.getRenderTarget();var e=this._allocateTargets();this._sceneToCubeUV(a,c,d,e);0<b&&this._blur(e,0,0,b);this._applyPMREM(e);
 _sigmas:c}}(),Ee=th._lodPlanes,fj=th._sizeLods,$f=th._sigmas,uh=null,yc=(1+Math.sqrt(5))/2,wd=1/yc,gj=[new m(1,1,1),new m(-1,1,1),new m(1,1,-1),new m(-1,1,-1),new m(0,yc,wd),new m(0,yc,-wd),new m(wd,0,yc),new m(-wd,0,yc),new m(yc,wd,0),new m(-yc,wd,0)];Tg.prototype={constructor:Tg,fromScene:function(a,b,c,d){void 0===b&&(b=0);void 0===c&&(c=.1);void 0===d&&(d=100);uh=this._renderer.getRenderTarget();var e=this._allocateTargets();this._sceneToCubeUV(a,c,d,e);0<b&&this._blur(e,0,0,b);this._applyPMREM(e);
 this._cleanup(e);return e},fromEquirectangular:function(a){return this._fromTexture(a)},fromCubemap:function(a){return this._fromTexture(a)},compileCubemapShader:function(){null===this._cubemapShader&&(this._cubemapShader=ti(),this._compileMaterial(this._cubemapShader))},compileEquirectangularShader:function(){null===this._equirectShader&&(this._equirectShader=si(),this._compileMaterial(this._equirectShader))},dispose:function(){this._blurMaterial.dispose();null!==this._cubemapShader&&this._cubemapShader.dispose();
 this._cleanup(e);return e},fromEquirectangular:function(a){return this._fromTexture(a)},fromCubemap:function(a){return this._fromTexture(a)},compileCubemapShader:function(){null===this._cubemapShader&&(this._cubemapShader=ti(),this._compileMaterial(this._cubemapShader))},compileEquirectangularShader:function(){null===this._equirectShader&&(this._equirectShader=si(),this._compileMaterial(this._equirectShader))},dispose:function(){this._blurMaterial.dispose();null!==this._cubemapShader&&this._cubemapShader.dispose();
 null!==this._equirectShader&&this._equirectShader.dispose();for(var a=0;a<Ee.length;a++)Ee[a].dispose()},_cleanup:function(a){this._pingPongRenderTarget.dispose();this._renderer.setRenderTarget(uh);a.scissorTest=!1;a.setSize(a.width,a.height)},_fromTexture:function(a){uh=this._renderer.getRenderTarget();var b=this._allocateTargets(a);this._textureToCubeUV(a,b);this._applyPMREM(b);this._cleanup(b);return b},_allocateTargets:function(a){var b=void 0===a||1009!==a.type?!1:3E3===a.encoding||3001===a.encoding||
 null!==this._equirectShader&&this._equirectShader.dispose();for(var a=0;a<Ee.length;a++)Ee[a].dispose()},_cleanup:function(a){this._pingPongRenderTarget.dispose();this._renderer.setRenderTarget(uh);a.scissorTest=!1;a.setSize(a.width,a.height)},_fromTexture:function(a){uh=this._renderer.getRenderTarget();var b=this._allocateTargets(a);this._textureToCubeUV(a,b);this._applyPMREM(b);this._cleanup(b);return b},_allocateTargets:function(a){var b=void 0===a||1009!==a.type?!1:3E3===a.encoding||3001===a.encoding||
-3007===a.encoding;b={magFilter:1003,minFilter:1003,generateMipmaps:!1,type:1009,format:1023,encoding:b?a.encoding:3002,depthBuffer:!1,stencilBuffer:!1};var c=ri(b);c.depthBuffer=a?!1:!0;this._pingPongRenderTarget=ri(b);return c},_compileMaterial:function(a){a=new X(Ee[0],a);this._renderer.compile(a,sh)},_sceneToCubeUV:function(a,b,c,d){b=new O(90,1,b,c);c=[1,-1,1,1,1,1];var e=[1,1,1,-1,-1,-1],f=this._renderer,g=f.outputEncoding,h=f.toneMapping,k=f.toneMappingExposure,n=f.getClearColor(),m=f.getClearAlpha();
-f.toneMapping=1;f.toneMappingExposure=1;f.outputEncoding=3E3;var p=a.background;if(p&&p.isColor){p.convertSRGBToLinear();var v=Math.min(Math.max(Math.ceil(Math.log2(Math.max(p.r,p.g,p.b))),-128),127);p=p.multiplyScalar(Math.pow(2,-v));f.setClearColor(p,(v+128)/255);a.background=null}for(p=0;6>p;p++)v=p%3,0==v?(b.up.set(0,c[p],0),b.lookAt(e[p],0,0)):1==v?(b.up.set(0,0,c[p]),b.lookAt(0,e[p],0)):(b.up.set(0,c[p],0),b.lookAt(0,0,e[p])),Wg(d,v*nb,2<p?nb:0,nb,nb),f.setRenderTarget(d),f.render(a,b);f.toneMapping=
-h;f.toneMappingExposure=k;f.outputEncoding=g;f.setClearColor(n,m)},_textureToCubeUV:function(a,b){var c=this._renderer;a.isCubeTexture?null==this._cubemapShader&&(this._cubemapShader=ti()):null==this._equirectShader&&(this._equirectShader=si());var d=a.isCubeTexture?this._cubemapShader:this._equirectShader,e=new X(Ee[0],d);d=d.uniforms;d.envMap.value=a;a.isCubeTexture||d.texelSize.value.set(1/a.image.width,1/a.image.height);d.inputEncoding.value=mb[a.encoding];d.outputEncoding.value=mb[b.texture.encoding];
-Wg(b,0,0,3*nb,2*nb);c.setRenderTarget(b);c.render(e,sh)},_applyPMREM:function(a){var b=this._renderer,c=b.autoClear;b.autoClear=!1;for(var d=1;d<ej;d++)this._blur(a,d-1,d,Math.sqrt($f[d]*$f[d]-$f[d-1]*$f[d-1]),gj[(d-1)%gj.length]);b.autoClear=c},_blur:function(a,b,c,d,e){var f=this._pingPongRenderTarget;this._halfBlur(a,f,b,c,d,"latitudinal",e);this._halfBlur(f,a,c,c,d,"longitudinal",e)},_halfBlur:function(a,b,c,d,e,f,g){var h=this._renderer,k=this._blurMaterial;"latitudinal"!==f&&"longitudinal"!==
-f&&console.error("blur direction must be either latitudinal or longitudinal!");var n=new X(Ee[d],k);k=k.uniforms;var m=fj[c]-1;m=isFinite(e)?Math.PI/(2*m):2*Math.PI/39;var p=e/m,v=isFinite(e)?1+Math.floor(3*p):20;20<v&&console.warn("sigmaRadians, "+e+", is too large and will clip, as it requested "+v+" samples when the maximum is set to 20");e=[];for(var r=0,q=0;20>q;++q){var u=q/p;u=Math.exp(-u*u/2);e.push(u);0==q?r+=u:q<v&&(r+=2*u)}for(p=0;p<e.length;p++)e[p]/=r;k.envMap.value=a.texture;k.samples.value=
-v;k.weights.value=e;k.latitudinal.value="latitudinal"===f;g&&(k.poleAxis.value=g);k.dTheta.value=m;k.mipInt.value=8-c;k.inputEncoding.value=mb[a.texture.encoding];k.outputEncoding.value=mb[a.texture.encoding];a=fj[d];Wg(b,3*Math.max(0,nb-2*a),(0===d?0:2*nb)+2*a*(4<d?d-8+4:0),3*a,2*a);h.setRenderTarget(b);h.render(n,sh)}};J.create=function(a,b){console.log("THREE.Curve.create() has been deprecated");a.prototype=Object.create(J.prototype);a.prototype.constructor=a;a.prototype.getPoint=b;return a};Object.assign(ub.prototype,
-{createPointsGeometry:function(a){console.warn("THREE.CurvePath: .createPointsGeometry() has been removed. Use new THREE.Geometry().setFromPoints( points ) instead.");a=this.getPoints(a);return this.createGeometry(a)},createSpacedPointsGeometry:function(a){console.warn("THREE.CurvePath: .createSpacedPointsGeometry() has been removed. Use new THREE.Geometry().setFromPoints( points ) instead.");a=this.getSpacedPoints(a);return this.createGeometry(a)},createGeometry:function(a){console.warn("THREE.CurvePath: .createGeometry() has been removed. Use new THREE.Geometry().setFromPoints( points ) instead.");
-for(var b=new L,c=0,d=a.length;c<d;c++){var e=a[c];b.vertices.push(new m(e.x,e.y,e.z||0))}return b}});Object.assign(bb.prototype,{fromPoints:function(a){console.warn("THREE.Path: .fromPoints() has been renamed to .setFromPoints().");return this.setFromPoints(a)}});ui.prototype=Object.create(pa.prototype);vi.prototype=Object.create(pa.prototype);Xg.prototype=Object.create(pa.prototype);Object.assign(Xg.prototype,{initFromArray:function(){console.error("THREE.Spline: .initFromArray() has been removed.")},
-getControlPointsArray:function(){console.error("THREE.Spline: .getControlPointsArray() has been removed.")},reparametrizeByArcLength:function(){console.error("THREE.Spline: .reparametrizeByArcLength() has been removed.")}});xf.prototype.setColors=function(){console.error("THREE.GridHelper: setColors() has been deprecated, pass them in the constructor instead.")};pc.prototype.update=function(){console.error("THREE.SkeletonHelper: update() no longer needs to be called.")};Object.assign(S.prototype,
-{extractUrlBase:function(a){console.warn("THREE.Loader: .extractUrlBase() has been deprecated. Use THREE.LoaderUtils.extractUrlBase() instead.");return qh.extractUrlBase(a)}});S.Handlers={add:function(){console.error("THREE.Loader: Handlers.add() has been removed. Use LoadingManager.addHandler() instead.")},get:function(){console.error("THREE.Loader: Handlers.get() has been removed. Use LoadingManager.getHandler() instead.")}};Object.assign(uf.prototype,{setTexturePath:function(a){console.warn("THREE.ObjectLoader: .setTexturePath() has been renamed to .setResourcePath().");
-return this.setResourcePath(a)}});Object.assign(Qg.prototype,{center:function(a){console.warn("THREE.Box2: .center() has been renamed to .getCenter().");return this.getCenter(a)},empty:function(){console.warn("THREE.Box2: .empty() has been renamed to .isEmpty().");return this.isEmpty()},isIntersectionBox:function(a){console.warn("THREE.Box2: .isIntersectionBox() has been renamed to .intersectsBox().");return this.intersectsBox(a)},size:function(a){console.warn("THREE.Box2: .size() has been renamed to .getSize().");
-return this.getSize(a)}});Object.assign(Ta.prototype,{center:function(a){console.warn("THREE.Box3: .center() has been renamed to .getCenter().");return this.getCenter(a)},empty:function(){console.warn("THREE.Box3: .empty() has been renamed to .isEmpty().");return this.isEmpty()},isIntersectionBox:function(a){console.warn("THREE.Box3: .isIntersectionBox() has been renamed to .intersectsBox().");return this.intersectsBox(a)},isIntersectionSphere:function(a){console.warn("THREE.Box3: .isIntersectionSphere() has been renamed to .intersectsSphere().");
-return this.intersectsSphere(a)},size:function(a){console.warn("THREE.Box3: .size() has been renamed to .getSize().");return this.getSize(a)}});Object.assign(eb.prototype,{empty:function(){console.warn("THREE.Sphere: .empty() has been renamed to .isEmpty().");return this.isEmpty()}});Fc.prototype.setFromMatrix=function(a){console.warn("THREE.Frustum: .setFromMatrix() has been renamed to .setFromProjectionMatrix().");return this.setFromProjectionMatrix(a)};Rg.prototype.center=function(a){console.warn("THREE.Line3: .center() has been renamed to .getCenter().");
-return this.getCenter(a)};Object.assign(K,{random16:function(){console.warn("THREE.Math: .random16() has been deprecated. Use Math.random() instead.");return Math.random()},nearestPowerOfTwo:function(a){console.warn("THREE.Math: .nearestPowerOfTwo() has been renamed to .floorPowerOfTwo().");return K.floorPowerOfTwo(a)},nextPowerOfTwo:function(a){console.warn("THREE.Math: .nextPowerOfTwo() has been renamed to .ceilPowerOfTwo().");return K.ceilPowerOfTwo(a)}});Object.assign(xa.prototype,{flattenToArrayOffset:function(a,
-b){console.warn("THREE.Matrix3: .flattenToArrayOffset() has been deprecated. Use .toArray() instead.");return this.toArray(a,b)},multiplyVector3:function(a){console.warn("THREE.Matrix3: .multiplyVector3() has been removed. Use vector.applyMatrix3( matrix ) instead.");return a.applyMatrix3(this)},multiplyVector3Array:function(){console.error("THREE.Matrix3: .multiplyVector3Array() has been removed.")},applyToBufferAttribute:function(a){console.warn("THREE.Matrix3: .applyToBufferAttribute() has been removed. Use attribute.applyMatrix3( matrix ) instead.");
-return a.applyMatrix3(this)},applyToVector3Array:function(){console.error("THREE.Matrix3: .applyToVector3Array() has been removed.")}});Object.assign(M.prototype,{extractPosition:function(a){console.warn("THREE.Matrix4: .extractPosition() has been renamed to .copyPosition().");return this.copyPosition(a)},flattenToArrayOffset:function(a,b){console.warn("THREE.Matrix4: .flattenToArrayOffset() has been deprecated. Use .toArray() instead.");return this.toArray(a,b)},getPosition:function(){console.warn("THREE.Matrix4: .getPosition() has been removed. Use Vector3.setFromMatrixPosition( matrix ) instead.");
-return(new m).setFromMatrixColumn(this,3)},setRotationFromQuaternion:function(a){console.warn("THREE.Matrix4: .setRotationFromQuaternion() has been renamed to .makeRotationFromQuaternion().");return this.makeRotationFromQuaternion(a)},multiplyToArray:function(){console.warn("THREE.Matrix4: .multiplyToArray() has been removed.")},multiplyVector3:function(a){console.warn("THREE.Matrix4: .multiplyVector3() has been removed. Use vector.applyMatrix4( matrix ) instead.");return a.applyMatrix4(this)},multiplyVector4:function(a){console.warn("THREE.Matrix4: .multiplyVector4() has been removed. Use vector.applyMatrix4( matrix ) instead.");
+3007===a.encoding;b={magFilter:1003,minFilter:1003,generateMipmaps:!1,type:1009,format:1023,encoding:b?a.encoding:3002,depthBuffer:!1,stencilBuffer:!1};var c=ri(b);c.depthBuffer=a?!1:!0;this._pingPongRenderTarget=ri(b);return c},_compileMaterial:function(a){a=new X(Ee[0],a);this._renderer.compile(a,sh)},_sceneToCubeUV:function(a,b,c,d){b=new O(90,1,b,c);c=[1,-1,1,1,1,1];var e=[1,1,1,-1,-1,-1],f=this._renderer,g=f.outputEncoding,h=f.toneMapping,k=f.getClearColor(),n=f.getClearAlpha();f.toneMapping=
+0;f.outputEncoding=3E3;var m=a.background;if(m&&m.isColor){m.convertSRGBToLinear();var p=Math.min(Math.max(Math.ceil(Math.log2(Math.max(m.r,m.g,m.b))),-128),127);m=m.multiplyScalar(Math.pow(2,-p));f.setClearColor(m,(p+128)/255);a.background=null}for(m=0;6>m;m++)p=m%3,0==p?(b.up.set(0,c[m],0),b.lookAt(e[m],0,0)):1==p?(b.up.set(0,0,c[m]),b.lookAt(0,e[m],0)):(b.up.set(0,c[m],0),b.lookAt(0,0,e[m])),Wg(d,p*nb,2<m?nb:0,nb,nb),f.setRenderTarget(d),f.render(a,b);f.toneMapping=h;f.outputEncoding=g;f.setClearColor(k,
+n)},_textureToCubeUV:function(a,b){var c=this._renderer;a.isCubeTexture?null==this._cubemapShader&&(this._cubemapShader=ti()):null==this._equirectShader&&(this._equirectShader=si());var d=a.isCubeTexture?this._cubemapShader:this._equirectShader,e=new X(Ee[0],d);d=d.uniforms;d.envMap.value=a;a.isCubeTexture||d.texelSize.value.set(1/a.image.width,1/a.image.height);d.inputEncoding.value=mb[a.encoding];d.outputEncoding.value=mb[b.texture.encoding];Wg(b,0,0,3*nb,2*nb);c.setRenderTarget(b);c.render(e,sh)},
+_applyPMREM:function(a){var b=this._renderer,c=b.autoClear;b.autoClear=!1;for(var d=1;d<ej;d++)this._blur(a,d-1,d,Math.sqrt($f[d]*$f[d]-$f[d-1]*$f[d-1]),gj[(d-1)%gj.length]);b.autoClear=c},_blur:function(a,b,c,d,e){var f=this._pingPongRenderTarget;this._halfBlur(a,f,b,c,d,"latitudinal",e);this._halfBlur(f,a,c,c,d,"longitudinal",e)},_halfBlur:function(a,b,c,d,e,f,g){var h=this._renderer,k=this._blurMaterial;"latitudinal"!==f&&"longitudinal"!==f&&console.error("blur direction must be either latitudinal or longitudinal!");
+var m=new X(Ee[d],k);k=k.uniforms;var q=fj[c]-1;q=isFinite(e)?Math.PI/(2*q):2*Math.PI/39;var p=e/q,v=isFinite(e)?1+Math.floor(3*p):20;20<v&&console.warn("sigmaRadians, "+e+", is too large and will clip, as it requested "+v+" samples when the maximum is set to 20");e=[];for(var t=0,r=0;20>r;++r){var u=r/p;u=Math.exp(-u*u/2);e.push(u);0==r?t+=u:r<v&&(t+=2*u)}for(p=0;p<e.length;p++)e[p]/=t;k.envMap.value=a.texture;k.samples.value=v;k.weights.value=e;k.latitudinal.value="latitudinal"===f;g&&(k.poleAxis.value=
+g);k.dTheta.value=q;k.mipInt.value=8-c;k.inputEncoding.value=mb[a.texture.encoding];k.outputEncoding.value=mb[a.texture.encoding];a=fj[d];Wg(b,3*Math.max(0,nb-2*a),(0===d?0:2*nb)+2*a*(4<d?d-8+4:0),3*a,2*a);h.setRenderTarget(b);h.render(m,sh)}};J.create=function(a,b){console.log("THREE.Curve.create() has been deprecated");a.prototype=Object.create(J.prototype);a.prototype.constructor=a;a.prototype.getPoint=b;return a};Object.assign(ub.prototype,{createPointsGeometry:function(a){console.warn("THREE.CurvePath: .createPointsGeometry() has been removed. Use new THREE.Geometry().setFromPoints( points ) instead.");
+a=this.getPoints(a);return this.createGeometry(a)},createSpacedPointsGeometry:function(a){console.warn("THREE.CurvePath: .createSpacedPointsGeometry() has been removed. Use new THREE.Geometry().setFromPoints( points ) instead.");a=this.getSpacedPoints(a);return this.createGeometry(a)},createGeometry:function(a){console.warn("THREE.CurvePath: .createGeometry() has been removed. Use new THREE.Geometry().setFromPoints( points ) instead.");for(var b=new L,c=0,d=a.length;c<d;c++){var e=a[c];b.vertices.push(new m(e.x,
+e.y,e.z||0))}return b}});Object.assign(bb.prototype,{fromPoints:function(a){console.warn("THREE.Path: .fromPoints() has been renamed to .setFromPoints().");return this.setFromPoints(a)}});ui.prototype=Object.create(pa.prototype);vi.prototype=Object.create(pa.prototype);Xg.prototype=Object.create(pa.prototype);Object.assign(Xg.prototype,{initFromArray:function(){console.error("THREE.Spline: .initFromArray() has been removed.")},getControlPointsArray:function(){console.error("THREE.Spline: .getControlPointsArray() has been removed.")},
+reparametrizeByArcLength:function(){console.error("THREE.Spline: .reparametrizeByArcLength() has been removed.")}});xf.prototype.setColors=function(){console.error("THREE.GridHelper: setColors() has been deprecated, pass them in the constructor instead.")};pc.prototype.update=function(){console.error("THREE.SkeletonHelper: update() no longer needs to be called.")};Object.assign(S.prototype,{extractUrlBase:function(a){console.warn("THREE.Loader: .extractUrlBase() has been deprecated. Use THREE.LoaderUtils.extractUrlBase() instead.");
+return qh.extractUrlBase(a)}});S.Handlers={add:function(){console.error("THREE.Loader: Handlers.add() has been removed. Use LoadingManager.addHandler() instead.")},get:function(){console.error("THREE.Loader: Handlers.get() has been removed. Use LoadingManager.getHandler() instead.")}};Object.assign(uf.prototype,{setTexturePath:function(a){console.warn("THREE.ObjectLoader: .setTexturePath() has been renamed to .setResourcePath().");return this.setResourcePath(a)}});Object.assign(Qg.prototype,{center:function(a){console.warn("THREE.Box2: .center() has been renamed to .getCenter().");
+return this.getCenter(a)},empty:function(){console.warn("THREE.Box2: .empty() has been renamed to .isEmpty().");return this.isEmpty()},isIntersectionBox:function(a){console.warn("THREE.Box2: .isIntersectionBox() has been renamed to .intersectsBox().");return this.intersectsBox(a)},size:function(a){console.warn("THREE.Box2: .size() has been renamed to .getSize().");return this.getSize(a)}});Object.assign(Ta.prototype,{center:function(a){console.warn("THREE.Box3: .center() has been renamed to .getCenter().");
+return this.getCenter(a)},empty:function(){console.warn("THREE.Box3: .empty() has been renamed to .isEmpty().");return this.isEmpty()},isIntersectionBox:function(a){console.warn("THREE.Box3: .isIntersectionBox() has been renamed to .intersectsBox().");return this.intersectsBox(a)},isIntersectionSphere:function(a){console.warn("THREE.Box3: .isIntersectionSphere() has been renamed to .intersectsSphere().");return this.intersectsSphere(a)},size:function(a){console.warn("THREE.Box3: .size() has been renamed to .getSize().");
+return this.getSize(a)}});Object.assign(eb.prototype,{empty:function(){console.warn("THREE.Sphere: .empty() has been renamed to .isEmpty().");return this.isEmpty()}});Fc.prototype.setFromMatrix=function(a){console.warn("THREE.Frustum: .setFromMatrix() has been renamed to .setFromProjectionMatrix().");return this.setFromProjectionMatrix(a)};Rg.prototype.center=function(a){console.warn("THREE.Line3: .center() has been renamed to .getCenter().");return this.getCenter(a)};Object.assign(K,{random16:function(){console.warn("THREE.Math: .random16() has been deprecated. Use Math.random() instead.");
+return Math.random()},nearestPowerOfTwo:function(a){console.warn("THREE.Math: .nearestPowerOfTwo() has been renamed to .floorPowerOfTwo().");return K.floorPowerOfTwo(a)},nextPowerOfTwo:function(a){console.warn("THREE.Math: .nextPowerOfTwo() has been renamed to .ceilPowerOfTwo().");return K.ceilPowerOfTwo(a)}});Object.assign(xa.prototype,{flattenToArrayOffset:function(a,b){console.warn("THREE.Matrix3: .flattenToArrayOffset() has been deprecated. Use .toArray() instead.");return this.toArray(a,b)},
+multiplyVector3:function(a){console.warn("THREE.Matrix3: .multiplyVector3() has been removed. Use vector.applyMatrix3( matrix ) instead.");return a.applyMatrix3(this)},multiplyVector3Array:function(){console.error("THREE.Matrix3: .multiplyVector3Array() has been removed.")},applyToBufferAttribute:function(a){console.warn("THREE.Matrix3: .applyToBufferAttribute() has been removed. Use attribute.applyMatrix3( matrix ) instead.");return a.applyMatrix3(this)},applyToVector3Array:function(){console.error("THREE.Matrix3: .applyToVector3Array() has been removed.")}});
+Object.assign(M.prototype,{extractPosition:function(a){console.warn("THREE.Matrix4: .extractPosition() has been renamed to .copyPosition().");return this.copyPosition(a)},flattenToArrayOffset:function(a,b){console.warn("THREE.Matrix4: .flattenToArrayOffset() has been deprecated. Use .toArray() instead.");return this.toArray(a,b)},getPosition:function(){console.warn("THREE.Matrix4: .getPosition() has been removed. Use Vector3.setFromMatrixPosition( matrix ) instead.");return(new m).setFromMatrixColumn(this,
+3)},setRotationFromQuaternion:function(a){console.warn("THREE.Matrix4: .setRotationFromQuaternion() has been renamed to .makeRotationFromQuaternion().");return this.makeRotationFromQuaternion(a)},multiplyToArray:function(){console.warn("THREE.Matrix4: .multiplyToArray() has been removed.")},multiplyVector3:function(a){console.warn("THREE.Matrix4: .multiplyVector3() has been removed. Use vector.applyMatrix4( matrix ) instead.");return a.applyMatrix4(this)},multiplyVector4:function(a){console.warn("THREE.Matrix4: .multiplyVector4() has been removed. Use vector.applyMatrix4( matrix ) instead.");
 return a.applyMatrix4(this)},multiplyVector3Array:function(){console.error("THREE.Matrix4: .multiplyVector3Array() has been removed.")},rotateAxis:function(a){console.warn("THREE.Matrix4: .rotateAxis() has been removed. Use Vector3.transformDirection( matrix ) instead.");a.transformDirection(this)},crossVector:function(a){console.warn("THREE.Matrix4: .crossVector() has been removed. Use vector.applyMatrix4( matrix ) instead.");return a.applyMatrix4(this)},translate:function(){console.error("THREE.Matrix4: .translate() has been removed.")},
 return a.applyMatrix4(this)},multiplyVector3Array:function(){console.error("THREE.Matrix4: .multiplyVector3Array() has been removed.")},rotateAxis:function(a){console.warn("THREE.Matrix4: .rotateAxis() has been removed. Use Vector3.transformDirection( matrix ) instead.");a.transformDirection(this)},crossVector:function(a){console.warn("THREE.Matrix4: .crossVector() has been removed. Use vector.applyMatrix4( matrix ) instead.");return a.applyMatrix4(this)},translate:function(){console.error("THREE.Matrix4: .translate() has been removed.")},
 rotateX:function(){console.error("THREE.Matrix4: .rotateX() has been removed.")},rotateY:function(){console.error("THREE.Matrix4: .rotateY() has been removed.")},rotateZ:function(){console.error("THREE.Matrix4: .rotateZ() has been removed.")},rotateByAxis:function(){console.error("THREE.Matrix4: .rotateByAxis() has been removed.")},applyToBufferAttribute:function(a){console.warn("THREE.Matrix4: .applyToBufferAttribute() has been removed. Use attribute.applyMatrix4( matrix ) instead.");return a.applyMatrix4(this)},
 rotateX:function(){console.error("THREE.Matrix4: .rotateX() has been removed.")},rotateY:function(){console.error("THREE.Matrix4: .rotateY() has been removed.")},rotateZ:function(){console.error("THREE.Matrix4: .rotateZ() has been removed.")},rotateByAxis:function(){console.error("THREE.Matrix4: .rotateByAxis() has been removed.")},applyToBufferAttribute:function(a){console.warn("THREE.Matrix4: .applyToBufferAttribute() has been removed. Use attribute.applyMatrix4( matrix ) instead.");return a.applyMatrix4(this)},
 applyToVector3Array:function(){console.error("THREE.Matrix4: .applyToVector3Array() has been removed.")},makeFrustum:function(a,b,c,d,e,f){console.warn("THREE.Matrix4: .makeFrustum() has been removed. Use .makePerspective( left, right, top, bottom, near, far ) instead.");return this.makePerspective(a,b,d,c,e,f)}});Ua.prototype.isIntersectionLine=function(a){console.warn("THREE.Plane: .isIntersectionLine() has been renamed to .intersectsLine().");return this.intersectsLine(a)};na.prototype.multiplyVector3=
 applyToVector3Array:function(){console.error("THREE.Matrix4: .applyToVector3Array() has been removed.")},makeFrustum:function(a,b,c,d,e,f){console.warn("THREE.Matrix4: .makeFrustum() has been removed. Use .makePerspective( left, right, top, bottom, near, far ) instead.");return this.makePerspective(a,b,d,c,e,f)}});Ua.prototype.isIntersectionLine=function(a){console.warn("THREE.Plane: .isIntersectionLine() has been renamed to .intersectsLine().");return this.intersectsLine(a)};na.prototype.multiplyVector3=

+ 1 - 4
build/three.module.js

@@ -48465,12 +48465,10 @@ PMREMGenerator.prototype = {
 
 
 		const outputEncoding = renderer.outputEncoding;
 		const outputEncoding = renderer.outputEncoding;
 		const toneMapping = renderer.toneMapping;
 		const toneMapping = renderer.toneMapping;
-		const toneMappingExposure = renderer.toneMappingExposure;
 		const clearColor = renderer.getClearColor();
 		const clearColor = renderer.getClearColor();
 		const clearAlpha = renderer.getClearAlpha();
 		const clearAlpha = renderer.getClearAlpha();
 
 
-		renderer.toneMapping = LinearToneMapping;
-		renderer.toneMappingExposure = 1.0;
+		renderer.toneMapping = NoToneMapping;
 		renderer.outputEncoding = LinearEncoding;
 		renderer.outputEncoding = LinearEncoding;
 
 
 		let background = scene.background;
 		let background = scene.background;
@@ -48515,7 +48513,6 @@ PMREMGenerator.prototype = {
 		}
 		}
 
 
 		renderer.toneMapping = toneMapping;
 		renderer.toneMapping = toneMapping;
-		renderer.toneMappingExposure = toneMappingExposure;
 		renderer.outputEncoding = outputEncoding;
 		renderer.outputEncoding = outputEncoding;
 		renderer.setClearColor( clearColor, clearAlpha );
 		renderer.setClearColor( clearColor, clearAlpha );