Browse Source

Updated builds.

Mr.doob 5 years ago
parent
commit
0ccf4fe7d5
3 changed files with 226 additions and 219 deletions
  1. 28 25
      build/three.js
  2. 170 169
      build/three.min.js
  3. 28 25
      build/three.module.js

+ 28 - 25
build/three.js

@@ -40497,15 +40497,7 @@
 					var geometry = getGeometry( data.geometry );
 					var material = getMaterial( data.material );
 
-					if ( geometry.bones && geometry.bones.length > 0 ) {
-
-						object = new SkinnedMesh( geometry, material );
-
-					} else {
-
-						object = new Mesh( geometry, material );
-
-					}
+					object = new Mesh( geometry, material );
 
 					break;
 
@@ -41399,16 +41391,16 @@
 			target.copy( coeff[ 0 ] ).multiplyScalar( 0.282095 );
 
 			// band 1
-			target.addScale( coeff[ 1 ], 0.488603 * y );
-			target.addScale( coeff[ 2 ], 0.488603 * z );
-			target.addScale( coeff[ 3 ], 0.488603 * x );
+			target.addScaledVector( coeff[ 1 ], 0.488603 * y );
+			target.addScaledVector( coeff[ 2 ], 0.488603 * z );
+			target.addScaledVector( coeff[ 3 ], 0.488603 * x );
 
 			// band 2
-			target.addScale( coeff[ 4 ], 1.092548 * ( x * y ) );
-			target.addScale( coeff[ 5 ], 1.092548 * ( y * z ) );
-			target.addScale( coeff[ 6 ], 0.315392 * ( 3.0 * z * z - 1.0 ) );
-			target.addScale( coeff[ 7 ], 1.092548 * ( x * z ) );
-			target.addScale( coeff[ 8 ], 0.546274 * ( x * x - y * y ) );
+			target.addScaledVector( coeff[ 4 ], 1.092548 * ( x * y ) );
+			target.addScaledVector( coeff[ 5 ], 1.092548 * ( y * z ) );
+			target.addScaledVector( coeff[ 6 ], 0.315392 * ( 3.0 * z * z - 1.0 ) );
+			target.addScaledVector( coeff[ 7 ], 1.092548 * ( x * z ) );
+			target.addScaledVector( coeff[ 8 ], 0.546274 * ( x * x - y * y ) );
 
 			return target;
 
@@ -41429,16 +41421,16 @@
 			target.copy( coeff[ 0 ] ).multiplyScalar( 0.886227 ); // π * 0.282095
 
 			// band 1
-			target.addScale( coeff[ 1 ], 2.0 * 0.511664 * y ); // ( 2 * π / 3 ) * 0.488603
-			target.addScale( coeff[ 2 ], 2.0 * 0.511664 * z );
-			target.addScale( coeff[ 3 ], 2.0 * 0.511664 * x );
+			target.addScaledVector( coeff[ 1 ], 2.0 * 0.511664 * y ); // ( 2 * π / 3 ) * 0.488603
+			target.addScaledVector( coeff[ 2 ], 2.0 * 0.511664 * z );
+			target.addScaledVector( coeff[ 3 ], 2.0 * 0.511664 * x );
 
 			// band 2
-			target.addScale( coeff[ 4 ], 2.0 * 0.429043 * x * y ); // ( π / 4 ) * 1.092548
-			target.addScale( coeff[ 5 ], 2.0 * 0.429043 * y * z );
-			target.addScale( coeff[ 6 ], 0.743125 * z * z - 0.247708 ); // ( π / 4 ) * 0.315392 * 3
-			target.addScale( coeff[ 7 ], 2.0 * 0.429043 * x * z );
-			target.addScale( coeff[ 8 ], 0.429043 * ( x * x - y * y ) ); // ( π / 4 ) * 0.546274
+			target.addScaledVector( coeff[ 4 ], 2.0 * 0.429043 * x * y ); // ( π / 4 ) * 1.092548
+			target.addScaledVector( coeff[ 5 ], 2.0 * 0.429043 * y * z );
+			target.addScaledVector( coeff[ 6 ], 0.743125 * z * z - 0.247708 ); // ( π / 4 ) * 0.315392 * 3
+			target.addScaledVector( coeff[ 7 ], 2.0 * 0.429043 * x * z );
+			target.addScaledVector( coeff[ 8 ], 0.429043 * ( x * x - y * y ) ); // ( π / 4 ) * 0.546274
 
 			return target;
 
@@ -41456,6 +41448,17 @@
 
 		},
 
+		addScaledSH: function ( sh, s ) {
+
+			for ( var i = 0; i < 9; i ++ ) {
+
+				this.coefficients[ i ].addScaledVector( sh.coefficients[ i ], s );
+
+			}
+
+			return this;
+
+		},
 
 		scale: function ( s ) {
 

+ 170 - 169
build/three.min.js

@@ -3,9 +3,9 @@
 this.name="";this.image=void 0!==a?a:V.DEFAULT_IMAGE;this.mipmaps=[];this.mapping=void 0!==b?b:V.DEFAULT_MAPPING;this.wrapS=void 0!==c?c:1001;this.wrapT=void 0!==d?d:1001;this.magFilter=void 0!==e?e:1006;this.minFilter=void 0!==f?f:1008;this.anisotropy=void 0!==l?l:1;this.format=void 0!==g?g:1023;this.internalFormat=null;this.type=void 0!==h?h:1009;this.offset=new t(0,0);this.repeat=new t(1,1);this.center=new t(0,0);this.rotation=0;this.matrixAutoUpdate=!0;this.matrix=new wa;this.generateMipmaps=
 !0;this.premultiplyAlpha=!1;this.flipY=!0;this.unpackAlignment=4;this.encoding=void 0!==m?m:3E3;this.version=0;this.onUpdate=null}function ka(a,b,c,d){this.x=a||0;this.y=b||0;this.z=c||0;this.w=void 0!==d?d:1}function Ha(a,b,c){this.width=a;this.height=b;this.scissor=new ka(0,0,a,b);this.scissorTest=!1;this.viewport=new ka(0,0,a,b);c=c||{};this.texture=new V(void 0,c.mapping,c.wrapS,c.wrapT,c.magFilter,c.minFilter,c.format,c.type,c.anisotropy,c.encoding);this.texture.image={};this.texture.image.width=
 a;this.texture.image.height=b;this.texture.generateMipmaps=void 0!==c.generateMipmaps?c.generateMipmaps:!1;this.texture.minFilter=void 0!==c.minFilter?c.minFilter:1006;this.depthBuffer=void 0!==c.depthBuffer?c.depthBuffer:!0;this.stencilBuffer=void 0!==c.stencilBuffer?c.stencilBuffer:!0;this.depthTexture=void 0!==c.depthTexture?c.depthTexture:null}function Zf(a,b,c){Ha.call(this,a,b,c);this.samples=4}function Aa(a,b,c,d){this._x=a||0;this._y=b||0;this._z=c||0;this._w=void 0!==d?d:1}function n(a,b,
-c){this.x=a||0;this.y=b||0;this.z=c||0}function P(){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 Tb(a,b,c,d){this._x=a||0;this._y=b||0;this._z=c||0;this._order=d||Tb.DefaultOrder}function Ie(){this.mask=1}function F(){Object.defineProperty(this,"id",{value:qj++});this.uuid=L.generateUUID();this.name="";this.type="Object3D";this.parent=null;this.children=[];this.up=F.DefaultUp.clone();
+c){this.x=a||0;this.y=b||0;this.z=c||0}function P(){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 Tb(a,b,c,d){this._x=a||0;this._y=b||0;this._z=c||0;this._order=d||Tb.DefaultOrder}function He(){this.mask=1}function F(){Object.defineProperty(this,"id",{value:qj++});this.uuid=L.generateUUID();this.name="";this.type="Object3D";this.parent=null;this.children=[];this.up=F.DefaultUp.clone();
 var a=new n,b=new Tb,c=new Aa,d=new n(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 P},normalMatrix:{value:new wa}});this.matrix=new P;this.matrixWorld=new P;this.matrixAutoUpdate=F.DefaultMatrixAutoUpdate;
-this.matrixWorldNeedsUpdate=!1;this.layers=new Ie;this.visible=!0;this.receiveShadow=this.castShadow=!1;this.frustumCulled=!0;this.renderOrder=0;this.userData={}}function ob(){F.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 Sa(a,b){this.min=void 0!==a?a:new n(Infinity,Infinity,Infinity);this.max=void 0!==
+this.matrixWorldNeedsUpdate=!1;this.layers=new He;this.visible=!0;this.receiveShadow=this.castShadow=!1;this.frustumCulled=!0;this.renderOrder=0;this.userData={}}function ob(){F.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 Sa(a,b){this.min=void 0!==a?a:new n(Infinity,Infinity,Infinity);this.max=void 0!==
 b?b:new n(-Infinity,-Infinity,-Infinity)}function $f(a,b,c,d,e){var f;var g=0;for(f=a.length-3;g<=f;g+=3){Ub.fromArray(a,g);var h=e.x*Math.abs(Ub.x)+e.y*Math.abs(Ub.y)+e.z*Math.abs(Ub.z),l=b.dot(Ub),m=c.dot(Ub),u=d.dot(Ub);if(Math.max(-Math.max(l,m,u),Math.min(l,m,u))>h)return!1}return!0}function pb(a,b){this.center=void 0!==a?a:new n;this.radius=void 0!==b?b:0}function Vb(a,b){this.origin=void 0!==a?a:new n;this.direction=void 0!==b?b:new n(0,0,-1)}function Ta(a,b){this.normal=void 0!==a?a:new n(1,
 0,0);this.constant=void 0!==b?b:0}function oa(a,b,c){this.a=void 0!==a?a:new n;this.b=void 0!==b?b:new n;this.c=void 0!==c?c:new n}function A(a,b,c){return void 0===b&&void 0===c?this.set(a):this.setRGB(a,b,c)}function ag(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 bg(a){return.04045>a?.0773993808*a:Math.pow(.9478672986*a+.0521327014,2.4)}function cg(a){return.0031308>a?12.92*a:1.055*Math.pow(a,.41666)-.055}function Bc(a,b,c,d,e,f){this.a=a;this.b=
 b;this.c=c;this.normal=d&&d.isVector3?d:new n;this.vertexNormals=Array.isArray(d)?d:[];this.color=e&&e.isColor?e:new A;this.vertexColors=Array.isArray(e)?e:[];this.materialIndex=void 0!==f?f:0}function K(){Object.defineProperty(this,"id",{value:rj++});this.uuid=L.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=
@@ -14,8 +14,8 @@ this.blendDstAlpha=this.blendSrcAlpha=null;this.depthFunc=3;this.depthWrite=this
 function M(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 Bd(a,b,c){M.call(this,new Int8Array(a),b,c)}function Cd(a,b,c){M.call(this,new Uint8Array(a),b,c)}function Dd(a,b,c){M.call(this,new Uint8ClampedArray(a),b,c)}function Ed(a,b,c){M.call(this,new Int16Array(a),
 b,c)}function Wb(a,b,c){M.call(this,new Uint16Array(a),b,c)}function Fd(a,b,c){M.call(this,new Int32Array(a),b,c)}function Xb(a,b,c){M.call(this,new Uint32Array(a),b,c)}function y(a,b,c){M.call(this,new Float32Array(a),b,c)}function Gd(a,b,c){M.call(this,new Float64Array(a),b,c)}function xh(){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 yh(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 C(){Object.defineProperty(this,"id",{value:sj+=2});this.uuid=L.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 S(a,b){F.call(this);this.type="Mesh";this.geometry=void 0!==a?a:new C;this.material=void 0!==b?b:new Oa;this.updateMorphTargets()}function zh(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;Je.copy(h);Je.applyMatrix4(a.matrixWorld);b=c.ray.origin.distanceTo(Je);return b<c.near||b>c.far?null:{distance:b,point:Je.clone(),object:a}}function Ke(a,b,c,d,e,f,g,h,l,m,u,p){Yb.fromBufferAttribute(e,m);Zb.fromBufferAttribute(e,
-u);$b.fromBufferAttribute(e,p);e=a.morphTargetInfluences;if(b.morphTargets&&f&&e){Le.set(0,0,0);Me.set(0,0,0);Ne.set(0,0,0);for(var x=0,r=f.length;x<r;x++){var k=e[x],v=f[x];0!==k&&(dg.fromBufferAttribute(v,m),eg.fromBufferAttribute(v,u),fg.fromBufferAttribute(v,p),g?(Le.addScaledVector(dg,k),Me.addScaledVector(eg,k),Ne.addScaledVector(fg,k)):(Le.addScaledVector(dg.sub(Yb),k),Me.addScaledVector(eg.sub(Zb),k),Ne.addScaledVector(fg.sub($b),k)))}Yb.add(Le);Zb.add(Me);$b.add(Ne)}if(a=zh(a,b,c,d,Yb,Zb,
+this.userData={}}function S(a,b){F.call(this);this.type="Mesh";this.geometry=void 0!==a?a:new C;this.material=void 0!==b?b:new Oa;this.updateMorphTargets()}function zh(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;Ie.copy(h);Ie.applyMatrix4(a.matrixWorld);b=c.ray.origin.distanceTo(Ie);return b<c.near||b>c.far?null:{distance:b,point:Ie.clone(),object:a}}function Je(a,b,c,d,e,f,g,h,l,m,u,p){Yb.fromBufferAttribute(e,m);Zb.fromBufferAttribute(e,
+u);$b.fromBufferAttribute(e,p);e=a.morphTargetInfluences;if(b.morphTargets&&f&&e){Ke.set(0,0,0);Le.set(0,0,0);Me.set(0,0,0);for(var x=0,r=f.length;x<r;x++){var k=e[x],v=f[x];0!==k&&(dg.fromBufferAttribute(v,m),eg.fromBufferAttribute(v,u),fg.fromBufferAttribute(v,p),g?(Ke.addScaledVector(dg,k),Le.addScaledVector(eg,k),Me.addScaledVector(fg,k)):(Ke.addScaledVector(dg.sub(Yb),k),Le.addScaledVector(eg.sub(Zb),k),Me.addScaledVector(fg.sub($b),k)))}Yb.add(Ke);Zb.add(Le);$b.add(Me)}if(a=zh(a,b,c,d,Yb,Zb,
 $b,Hd))h&&(Cc.fromBufferAttribute(h,m),Dc.fromBufferAttribute(h,u),Ec.fromBufferAttribute(h,p),a.uv=oa.getUV(Hd,Yb,Zb,$b,Cc,Dc,Ec,new t)),l&&(Cc.fromBufferAttribute(l,m),Dc.fromBufferAttribute(l,u),Ec.fromBufferAttribute(l,p),a.uv2=oa.getUV(Hd,Yb,Zb,$b,Cc,Dc,Ec,new t)),h=new Bc(m,u,p),oa.getNormal(Yb,Zb,$b,h.normal),a.face=h;return a}function N(){Object.defineProperty(this,"id",{value:tj+=2});this.uuid=L.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 Fc(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=Fc(a[c]),e;for(e in d)b[e]=d[e]}return b}function Ba(a){K.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=
@@ -161,10 +161,10 @@ c.isWebGL2;return{convert:function(a){if(1009===a)return 5121;if(1017===a)return
 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;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}}}}function Qe(a){aa.call(this);this.cameras=a||[]}function Mc(){F.call(this);this.type="Group"}function $h(a,b){function c(a){var b=q.get(a.inputSource);b&&(b.targetRay&&b.targetRay.dispatchEvent({type:a.type}),b.grip&&b.grip.dispatchEvent({type:a.type}))}function d(){q.forEach(function(a,b){a.targetRay&&(a.targetRay.dispatchEvent({type:"disconnected",data:b}),a.targetRay.visible=
+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 Pe(a){aa.call(this);this.cameras=a||[]}function Mc(){F.call(this);this.type="Group"}function $h(a,b){function c(a){var b=q.get(a.inputSource);b&&(b.targetRay&&b.targetRay.dispatchEvent({type:a.type}),b.grip&&b.grip.dispatchEvent({type:a.type}))}function d(){q.forEach(function(a,b){a.targetRay&&(a.targetRay.dispatchEvent({type:"disconnected",data:b}),a.targetRay.visible=
 !1);a.grip&&(a.grip.dispatchEvent({type:"disconnected",data:b}),a.grip.visible=!1)});q.clear();a.setFramebuffer(null);a.setRenderTarget(a.getRenderTarget());y.stop();h.isPresenting=!1;h.dispatchEvent({type:"sessionend"})}function e(a){k=a;y.setContext(l);y.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(c=0;c<a.removed.length;c++){b=a.removed[c];var d=q.get(b);d&&(d.targetRay&&d.targetRay.dispatchEvent({type:"disconnected",
 data:b}),d.grip&&d.grip.dispatchEvent({type:"disconnected",data:b}),q.delete(b))}for(c=0;c<a.added.length;c++)if(b=a.added[c],d=q.get(b))d.targetRay&&d.targetRay.dispatchEvent({type:"connected",data:b}),d.grip&&d.grip.dispatchEvent({type:"connected",data:b})}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,m=1,k=null,p="local-floor",x=null,r=[],q=new Map,v=new aa;v.layers.enable(1);
-v.viewport=new ka;var E=new aa;E.layers.enable(2);E.viewport=new ka;var w=new Qe([v,E]);w.layers.enable(1);w.layers.enable(2);var z=null,t=null;this.isPresenting=this.enabled=!1;this.getController=function(a){var b=r[a];void 0===b&&(b={},r[a]=b);void 0===b.targetRay&&(b.targetRay=new Mc,b.targetRay.matrixAutoUpdate=!1,b.targetRay.visible=!1);return b.targetRay};this.getControllerGrip=function(a){var b=r[a];void 0===b&&(b={},r[a]=b);void 0===b.grip&&(b.grip=new Mc,b.grip.matrixAutoUpdate=!1,b.grip.visible=
+v.viewport=new ka;var E=new aa;E.layers.enable(2);E.viewport=new ka;var w=new Pe([v,E]);w.layers.enable(1);w.layers.enable(2);var z=null,t=null;this.isPresenting=this.enabled=!1;this.getController=function(a){var b=r[a];void 0===b&&(b={},r[a]=b);void 0===b.targetRay&&(b.targetRay=new Mc,b.targetRay.matrixAutoUpdate=!1,b.targetRay.visible=!1);return b.targetRay};this.getControllerGrip=function(a){var b=r[a];void 0===b&&(b={},r[a]=b);void 0===b.grip&&(b.grip=new Mc,b.grip.matrixAutoUpdate=!1,b.grip.visible=
 !1);return b.grip};this.setFramebufferScaleFactor=function(a){m=a;1==h.isPresenting&&console.warn("WebXRManager: Cannot change framebuffer scale while presenting VR content")};this.setReferenceSpaceType=function(a){p=a};this.getReferenceSpace=function(){return k};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(),a=new XRWebGLLayer(l,b,{antialias:a.antialias,alpha:a.alpha,depth:a.depth,stencil:a.stencil,framebufferScaleFactor:m}),l.updateRenderState({baseLayer:a}),l.requestReferenceSpace(p).then(e),l.addEventListener("inputsourceschange",f))};var U=new n,ca=new n;this.getCamera=function(a){w.near=E.near=v.near=a.near;w.far=E.far=v.far=a.far;if(z!==w.near||t!==w.far)l.updateRenderState({depthNear:w.near,depthFar:w.far}),
 z=w.near,t=w.far;var b=a.parent,c=w.cameras;g(w,b);for(var d=0;d<c.length;d++)g(c[d],b);a.matrixWorld.copy(w.matrixWorld);a=a.children;d=0;for(b=a.length;d<b;d++)a[d].updateMatrixWorld(!0);U.setFromMatrixPosition(v.matrixWorld);ca.setFromMatrixPosition(E.matrixWorld);d=U.distanceTo(ca);var e=v.projectionMatrix.elements,f=E.projectionMatrix.elements,h=e[14]/(e[10]-1);a=e[14]/(e[10]+1);b=(e[9]+1)/e[5];c=(e[9]-1)/e[5];var m=(e[8]-1)/e[0],p=(f[8]+1)/f[0];f=h*m;e=h*p;p=d/(-m+p);m=p*-m;v.matrixWorld.decompose(w.position,
@@ -176,12 +176,12 @@ function d(a){a.preventDefault();console.log("THREE.WebGLRenderer: Context Lost.
 a.autoUpdate&&a.update(b);else if(a.isLight)A.pushLight(a),a.castShadow&&A.pushShadow(a);else if(a.isSprite){if(!a.frustumCulled||lg.intersectsSprite(a)){d&&Hb.setFromMatrixPosition(a.matrixWorld).applyMatrix4(Md);var e=sa.update(a),f=a.material;f.visible&&C.push(a,e,f,c,Hb.z,null)}}else if(a.isImmediateRenderObject)d&&Hb.setFromMatrixPosition(a.matrixWorld).applyMatrix4(Md),C.push(a,null,a.material,c,Hb.z,null);else if(a.isMesh||a.isLine||a.isPoints)if(a.isSkinnedMesh&&a.skeleton.frame!==aa.render.frame&&
 (a.skeleton.update(),a.skeleton.frame=aa.render.frame),!a.frustumCulled||lg.intersectsObject(a))if(d&&Hb.setFromMatrixPosition(a.matrixWorld).applyMatrix4(Md),e=sa.update(a),f=a.material,Array.isArray(f))for(var g=e.groups,h=0,m=g.length;h<m;h++){var p=g[h],k=f[p.materialIndex];k&&k.visible&&C.push(a,e,k,c,Hb.z,p)}else f.visible&&C.push(a,e,f,c,Hb.z,null);a=a.children;h=0;for(m=a.length;h<m;h++)l(a[h],b,c,d)}}function m(a,b,c,d){for(var e=0,f=a.length;e<f;e++){var g=a[e],h=g.object,l=g.geometry,m=
 void 0===d?g.material:d;g=g.group;if(c.isArrayCamera){ba=c;for(var p=c.cameras,u=0,q=p.length;u<q;u++){var x=p[u];h.layers.test(x.layers)&&(Y.viewport(Z.copy(x.viewport)),A.setupLights(x),k(h,b,x,l,m,g))}}else ba=null,k(h,b,c,l,m,g)}}function k(a,c,d,e,f,g){a.onBeforeRender(H,c,d,e,f,g);A=va.get(c,ba||d);a.modelViewMatrix.multiplyMatrices(d.matrixWorldInverse,a.matrixWorld);a.normalMatrix.getNormalMatrix(a.modelViewMatrix);if(a.isImmediateRenderObject){var l=x(d,c,f,a);Y.setMaterial(f);fa=b=null;
-Pe=!1;h(a,l)}else H.renderBufferDirect(d,c,e,f,a,g);a.onAfterRender(H,c,d,e,f,g);A=va.get(c,ba||d)}function p(a,b,c){var d=X.get(a),e=A.state.lights,h=e.state.version;c=ta.getParameters(a,e.state,A.state.shadowsArray,b,Ua.numPlanes,Ua.numIntersection,c);var l=ta.getProgramCacheKey(c),m=d.program,p=!0;if(void 0===m)a.addEventListener("dispose",f);else if(m.cacheKey!==l)g(a);else{if(d.lightsStateVersion!==h)d.lightsStateVersion=h;else if(void 0!==c.shaderID)return;p=!1}p&&(m=ta.acquireProgram(c,l),
+Oe=!1;h(a,l)}else H.renderBufferDirect(d,c,e,f,a,g);a.onAfterRender(H,c,d,e,f,g);A=va.get(c,ba||d)}function p(a,b,c){var d=X.get(a),e=A.state.lights,h=e.state.version;c=ta.getParameters(a,e.state,A.state.shadowsArray,b,Ua.numPlanes,Ua.numIntersection,c);var l=ta.getProgramCacheKey(c),m=d.program,p=!0;if(void 0===m)a.addEventListener("dispose",f);else if(m.cacheKey!==l)g(a);else{if(d.lightsStateVersion!==h)d.lightsStateVersion=h;else if(void 0!==c.shaderID)return;p=!1}p&&(m=ta.acquireProgram(c,l),
 d.program=m,d.uniforms=c.uniforms,d.environment=a.isMeshStandardMaterial?b.environment:null,d.outputEncoding=H.outputEncoding,a.program=m);c=m.getAttributes();if(a.morphTargets)for(l=a.numSupportedMorphTargets=0;l<H.maxMorphTargets;l++)0<=c["morphTarget"+l]&&a.numSupportedMorphTargets++;if(a.morphNormals)for(l=a.numSupportedMorphNormals=0;l<H.maxMorphNormals;l++)0<=c["morphNormal"+l]&&a.numSupportedMorphNormals++;c=d.uniforms;if(!a.isShaderMaterial&&!a.isRawShaderMaterial||!0===a.clipping)d.numClippingPlanes=
 Ua.numPlanes,d.numIntersection=Ua.numIntersection,c.clippingPlanes=Ua.uniform;d.fog=b.fog;d.needsLights=a.isMeshLambertMaterial||a.isMeshToonMaterial||a.isMeshPhongMaterial||a.isMeshStandardMaterial||a.isShadowMaterial||a.isShaderMaterial&&!0===a.lights;d.lightsStateVersion=h;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,c.pointShadowMatrix.value=e.state.pointShadowMatrix);
-a=d.program.getUniforms();a=Eb.seqWithValue(a.seq,c);d.uniformsList=a}function x(a,b,c,d){ea.resetTextureUnits();var e=b.fog,f=c.isMeshStandardMaterial?b.environment:null,g=X.get(c),h=A.state.lights;na&&(mg||a!==V)&&Ua.setState(c.clippingPlanes,c.clipIntersection,c.clipShadows,a,g,a===V&&c.id===Oe);c.version===g.__version?void 0===g.program?p(c,b,d):c.fog&&g.fog!==e?p(c,b,d):g.environment!==f?p(c,b,d):g.needsLights&&g.lightsStateVersion!==h.state.version?p(c,b,d):void 0===g.numClippingPlanes||g.numClippingPlanes===
-Ua.numPlanes&&g.numIntersection===Ua.numIntersection?g.outputEncoding!==H.outputEncoding&&p(c,b,d):p(c,b,d):(p(c,b,d),g.__version=c.version);var l=!1,m=!1,k=!1;b=g.program;h=b.getUniforms();var u=g.uniforms;Y.useProgram(b.program)&&(k=m=l=!0);c.id!==Oe&&(Oe=c.id,m=!0);if(l||V!==a){h.setValue(I,"projectionMatrix",a.projectionMatrix);Fa.logarithmicDepthBuffer&&h.setValue(I,"logDepthBufFC",2/(Math.log(a.far+1)/Math.LN2));V!==a&&(V=a,k=m=!0);if(c.isShaderMaterial||c.isMeshPhongMaterial||c.isMeshToonMaterial||
+a=d.program.getUniforms();a=Eb.seqWithValue(a.seq,c);d.uniformsList=a}function x(a,b,c,d){ea.resetTextureUnits();var e=b.fog,f=c.isMeshStandardMaterial?b.environment:null,g=X.get(c),h=A.state.lights;na&&(mg||a!==V)&&Ua.setState(c.clippingPlanes,c.clipIntersection,c.clipShadows,a,g,a===V&&c.id===Ne);c.version===g.__version?void 0===g.program?p(c,b,d):c.fog&&g.fog!==e?p(c,b,d):g.environment!==f?p(c,b,d):g.needsLights&&g.lightsStateVersion!==h.state.version?p(c,b,d):void 0===g.numClippingPlanes||g.numClippingPlanes===
+Ua.numPlanes&&g.numIntersection===Ua.numIntersection?g.outputEncoding!==H.outputEncoding&&p(c,b,d):p(c,b,d):(p(c,b,d),g.__version=c.version);var l=!1,m=!1,k=!1;b=g.program;h=b.getUniforms();var u=g.uniforms;Y.useProgram(b.program)&&(k=m=l=!0);c.id!==Ne&&(Ne=c.id,m=!0);if(l||V!==a){h.setValue(I,"projectionMatrix",a.projectionMatrix);Fa.logarithmicDepthBuffer&&h.setValue(I,"logDepthBufFC",2/(Math.log(a.far+1)/Math.LN2));V!==a&&(V=a,k=m=!0);if(c.isShaderMaterial||c.isMeshPhongMaterial||c.isMeshToonMaterial||
 c.isMeshStandardMaterial||c.envMap)l=h.map.cameraPosition,void 0!==l&&l.setValue(I,Hb.setFromMatrixPosition(a.matrixWorld));(c.isMeshPhongMaterial||c.isMeshToonMaterial||c.isMeshLambertMaterial||c.isMeshBasicMaterial||c.isMeshStandardMaterial||c.isShaderMaterial)&&h.setValue(I,"isOrthographic",!0===a.isOrthographicCamera);(c.isMeshPhongMaterial||c.isMeshToonMaterial||c.isMeshLambertMaterial||c.isMeshBasicMaterial||c.isMeshStandardMaterial||c.isShaderMaterial||c.skinning)&&h.setValue(I,"viewMatrix",
 a.matrixWorldInverse)}if(c.skinning&&(h.setOptional(I,d,"bindMatrix"),h.setOptional(I,d,"bindMatrixInverse"),a=d.skeleton))if(l=a.bones,Fa.floatVertexTextures){if(void 0===a.boneTexture){l=Math.sqrt(4*l.length);l=L.ceilPowerOfTwo(l);l=Math.max(l,4);var x=new Float32Array(l*l*4);x.set(a.boneMatrices);var v=new ac(x,l,l,1023,1015);a.boneMatrices=x;a.boneTexture=v;a.boneTextureSize=l}h.setValue(I,"boneTexture",a.boneTexture,ea);h.setValue(I,"boneTextureSize",a.boneTextureSize)}else h.setOptional(I,a,
 "boneMatrices");if(m||g.receiveShadow!==d.receiveShadow)g.receiveShadow=d.receiveShadow,h.setValue(I,"receiveShadow",d.receiveShadow);if(m){h.setValue(I,"toneMappingExposure",H.toneMappingExposure);h.setValue(I,"toneMappingWhitePoint",H.toneMappingWhitePoint);g.needsLights&&(m=k,u.ambientLightColor.needsUpdate=m,u.lightProbe.needsUpdate=m,u.directionalLights.needsUpdate=m,u.directionalLightShadows.needsUpdate=m,u.pointLights.needsUpdate=m,u.pointLightShadows.needsUpdate=m,u.spotLights.needsUpdate=
@@ -200,7 +200,7 @@ d=b.displacementMap:b.normalMap?d=b.normalMap:b.bumpMap?d=b.bumpMap:b.roughnessM
 function q(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,a.normalScale.value.copy(b.normalScale),1===b.side&&a.normalScale.value.negate());b.displacementMap&&(a.displacementMap.value=
 b.displacementMap,a.displacementScale.value=b.displacementScale,a.displacementBias.value=b.displacementBias);if(b.envMap||c)a.envMapIntensity.value=b.envMapIntensity}a=a||{};var v=void 0!==a.canvas?a.canvas:document.createElementNS("http://www.w3.org/1999/xhtml","canvas"),E=void 0!==a.context?a.context:null,w=void 0!==a.alpha?a.alpha:!1,z=void 0!==a.depth?a.depth:!0,ha=void 0!==a.stencil?a.stencil:!0,U=void 0!==a.antialias?a.antialias:!1,ca=void 0!==a.premultipliedAlpha?a.premultipliedAlpha:!0,B=
 void 0!==a.preserveDrawingBuffer?a.preserveDrawingBuffer:!1,y=void 0!==a.powerPreference?a.powerPreference:"default",F=void 0!==a.failIfMajorPerformanceCaveat?a.failIfMajorPerformanceCaveat:!1,C=null,A=null;this.domElement=v;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.toneMappingWhitePoint=
-this.toneMappingExposure=this.toneMapping=1;this.maxMorphTargets=8;this.maxMorphNormals=4;var H=this,G=!1,M=null,N=0,K=0,O=null,W=null,Oe=-1;var fa=b=null;var Pe=!1;var V=null,ba=null,Z=new ka,T=new ka,da=null,S=v.width,J=v.height,Q=1,la=null,ma=null,R=new ka(0,0,S,J),ja=new ka(0,0,S,J),kg=!1,lg=new Hc,Ua=new yj,na=!1,mg=!1,Md=new P,Hb=new n;try{w={alpha:w,depth:z,stencil:ha,antialias:U,premultipliedAlpha:ca,preserveDrawingBuffer:B,powerPreference:y,failIfMajorPerformanceCaveat:F,xrCompatible:!0};
+this.toneMappingExposure=this.toneMapping=1;this.maxMorphTargets=8;this.maxMorphNormals=4;var H=this,G=!1,M=null,N=0,K=0,O=null,W=null,Ne=-1;var fa=b=null;var Oe=!1;var V=null,ba=null,Z=new ka,T=new ka,da=null,S=v.width,J=v.height,Q=1,la=null,ma=null,R=new ka(0,0,S,J),ja=new ka(0,0,S,J),kg=!1,lg=new Hc,Ua=new yj,na=!1,mg=!1,Md=new P,Hb=new n;try{w={alpha:w,depth:z,stencil:ha,antialias:U,premultipliedAlpha:ca,preserveDrawingBuffer:B,powerPreference:y,failIfMajorPerformanceCaveat:F,xrCompatible:!0};
 v.addEventListener("webglcontextlost",d,!1);v.addEventListener("webglcontextrestored",e,!1);var I=E||v.getContext("webgl",w)||v.getContext("experimental-webgl",w);if(null===I){if(null!==v.getContext("webgl"))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(ai){throw console.error("THREE.WebGLRenderer: "+
 ai.message),ai;}var ra,Fa,Y,aa,X,ea,oa,xa,sa,ta,wa,va,pa,ya,Aa,Ba,qa;c();var ua=new $h(H,I);this.xr=ua;var Ea=new Xh(H,sa,Fa.maxTextureSize);this.shadowMap=Ea;this.getContext=function(){return I};this.getContextAttributes=function(){return I.getContextAttributes()};this.forceContextLoss=function(){var a=ra.get("WEBGL_lose_context");a&&a.loseContext()};this.forceContextRestore=function(){var a=ra.get("WEBGL_lose_context");a&&a.restoreContext()};this.getPixelRatio=function(){return Q};this.setPixelRatio=
 function(a){void 0!==a&&(Q=a,this.setSize(S,J,!1))};this.getSize=function(a){void 0===a&&(console.warn("WebGLRenderer: .getsize() now requires a Vector2 as an argument"),a=new t);return a.set(S,J)};this.setSize=function(a,b,c){ua.isPresenting?console.warn("THREE.WebGLRenderer: Can't change size while VR device is presenting."):(S=a,J=b,v.width=Math.floor(a*Q),v.height=Math.floor(b*Q),!1!==c&&(v.style.width=a+"px",v.style.height=b+"px"),this.setViewport(0,0,a,b))};this.getDrawingBufferSize=function(a){void 0===
@@ -209,57 +209,57 @@ b,c,d){a.isVector4?R.set(a.x,a.y,a.z,a.w):R.set(a,b,c,d);Y.viewport(Z.copy(R).mu
 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(){v.removeEventListener("webglcontextlost",
 d,!1);v.removeEventListener("webglcontextrestored",e,!1);wa.dispose();va.dispose();X.dispose();sa.dispose();ua.dispose();za.stop();this.forceContextLoss()};this.renderBufferImmediate=function(a,b){Y.initAttributes();var c=X.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),Y.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),Y.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),Y.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),Y.enableAttribute(b.color),
-I.vertexAttribPointer(b.color,3,5126,!1,0,0));Y.disableUnusedAttributes();I.drawArrays(4,0,a.count);a.count=0};var Ga=new ob;this.renderBufferDirect=function(a,c,d,e,f,g){null===c&&(c=Ga);var h=f.isMesh&&0>f.matrixWorld.determinant(),l=x(a,c,e,f);Y.setMaterial(e,h);var m=!1;if(b!==d.id||fa!==l.id||Pe!==(!0===e.wireframe))b=d.id,fa=l.id,Pe=!0===e.wireframe,m=!0;if(e.morphTargets||e.morphNormals)ya.update(f,d,e,l),m=!0;a=d.index;c=d.attributes.position;if(null===a){if(void 0===c||0===c.count)return}else if(0===
+I.vertexAttribPointer(b.color,3,5126,!1,0,0));Y.disableUnusedAttributes();I.drawArrays(4,0,a.count);a.count=0};var Ga=new ob;this.renderBufferDirect=function(a,c,d,e,f,g){null===c&&(c=Ga);var h=f.isMesh&&0>f.matrixWorld.determinant(),l=x(a,c,e,f);Y.setMaterial(e,h);var m=!1;if(b!==d.id||fa!==l.id||Oe!==(!0===e.wireframe))b=d.id,fa=l.id,Oe=!0===e.wireframe,m=!0;if(e.morphTargets||e.morphNormals)ya.update(f,d,e,l),m=!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 u=1;!0===e.wireframe&&(a=xa.getWireframeAttribute(d),u=2);h=Aa;if(null!==a){var p=oa.get(a);h=Ba;h.setIndex(p)}if(m){if(!1!==Fa.isWebGL2||!f.isInstancedMesh&&!d.isInstancedBufferGeometry||null!==ra.get("ANGLE_instanced_arrays")){Y.initAttributes();m=d.attributes;l=l.getAttributes();var k=e.defaultAttributeValues;for(ha in l){var q=l[ha];if(0<=q){var r=m[ha];if(void 0!==r){var n=r.normalized,v=r.itemSize,w=oa.get(r);if(void 0!==w){var E=w.buffer,z=w.type;w=w.bytesPerElement;if(r.isInterleavedBufferAttribute){var B=
 r.data,t=B.stride;r=r.offset;B&&B.isInstancedInterleavedBuffer?(Y.enableAttributeAndDivisor(q,B.meshPerAttribute),void 0===d.maxInstancedCount&&(d.maxInstancedCount=B.meshPerAttribute*B.count)):Y.enableAttribute(q);I.bindBuffer(34962,E);I.vertexAttribPointer(q,v,z,n,t*w,r*w)}else r.isInstancedBufferAttribute?(Y.enableAttributeAndDivisor(q,r.meshPerAttribute),void 0===d.maxInstancedCount&&(d.maxInstancedCount=r.meshPerAttribute*r.count)):Y.enableAttribute(q),I.bindBuffer(34962,E),I.vertexAttribPointer(q,
 v,z,n,0,0)}}else if("instanceMatrix"===ha)w=oa.get(f.instanceMatrix),void 0!==w&&(E=w.buffer,z=w.type,Y.enableAttributeAndDivisor(q+0,1),Y.enableAttributeAndDivisor(q+1,1),Y.enableAttributeAndDivisor(q+2,1),Y.enableAttributeAndDivisor(q+3,1),I.bindBuffer(34962,E),I.vertexAttribPointer(q+0,4,z,!1,64,0),I.vertexAttribPointer(q+1,4,z,!1,64,16),I.vertexAttribPointer(q+2,4,z,!1,64,32),I.vertexAttribPointer(q+3,4,z,!1,64,48));else if(void 0!==k&&(n=k[ha],void 0!==n))switch(n.length){case 2:I.vertexAttrib2fv(q,
 n);break;case 3:I.vertexAttrib3fv(q,n);break;case 4:I.vertexAttrib4fv(q,n);break;default:I.vertexAttrib1fv(q,n)}}}Y.disableUnusedAttributes()}null!==a&&I.bindBuffer(34963,p.buffer)}var ha=d.drawRange.start*u;m=null!==g?g.start*u:0;p=Math.max(ha,m);g=Math.max(0,Math.min(null!==a?a.count:c.count,ha+d.drawRange.count*u,m+(null!==g?g.count*u:Infinity))-1-p+1);0!==g&&(f.isMesh?!0===e.wireframe?(Y.setLineWidth(e.wireframeLinewidth*(null===O?Q:1)),h.setMode(1)):h.setMode(4):f.isLine?(e=e.linewidth,void 0===
 e&&(e=1),Y.setLineWidth(e*(null===O?Q: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,d.maxInstancedCount):h.render(p,g))};this.compile=function(a,b){A=va.get(a,b);A.init();a.traverse(function(a){a.isLight&&(A.pushLight(a),a.castShadow&&A.pushShadow(a))});A.setupLights(b);var c={};a.traverse(function(b){if(b.material)if(Array.isArray(b.material))for(var d=
 0;d<b.material.length;d++)!1===b.material[d].uuid in c&&(p(b.material[d],a,b),c[b.material[d].uuid]=!0);else!1===b.material.uuid in c&&(p(b.material,a,b),c[b.material.uuid]=!0)})};var Da=null,za=new Ah;za.setAnimationLoop(function(a){ua.isPresenting||Da&&Da(a)});"undefined"!==typeof window&&za.setContext(window);this.setAnimationLoop=function(a){Da=a;ua.setAnimationLoop(a);za.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}c&&c.isCamera?G||(fa=b=null,Pe=!1,Oe=-1,V=null,!0===a.autoUpdate&&a.updateMatrixWorld(),null===c.parent&&c.updateMatrixWorld(),ua.enabled&&ua.isPresenting&&(c=ua.getCamera(c)),A=va.get(a,c),A.init(),a.onBeforeRender(H,a,c,f||O),Md.multiplyMatrices(c.projectionMatrix,c.matrixWorldInverse),lg.setFromProjectionMatrix(Md),mg=this.localClippingEnabled,na=Ua.init(this.clippingPlanes,
+var f=d}if(void 0!==e){console.warn("THREE.WebGLRenderer.render(): the forceClear argument has been removed. Use .clear() instead.");var g=e}c&&c.isCamera?G||(fa=b=null,Oe=!1,Ne=-1,V=null,!0===a.autoUpdate&&a.updateMatrixWorld(),null===c.parent&&c.updateMatrixWorld(),ua.enabled&&ua.isPresenting&&(c=ua.getCamera(c)),A=va.get(a,c),A.init(),a.onBeforeRender(H,a,c,f||O),Md.multiplyMatrices(c.projectionMatrix,c.matrixWorldInverse),lg.setFromProjectionMatrix(Md),mg=this.localClippingEnabled,na=Ua.init(this.clippingPlanes,
 mg,c),C=wa.get(a,c),C.init(),l(a,c,0,H.sortObjects),C.finish(),!0===H.sortObjects&&C.sort(la,ma),na&&Ua.beginShadows(),Ea.render(A.state.shadowsArray,a,c),A.setupLights(c),na&&Ua.endShadows(),this.info.autoReset&&this.info.reset(),void 0!==f&&this.setRenderTarget(f),pa.render(C,a,c,g),d=C.opaque,e=C.transparent,a.overrideMaterial?(f=a.overrideMaterial,d.length&&m(d,a,c,f),e.length&&m(e,a,c,f)):(d.length&&m(d,a,c),e.length&&m(e,a,c)),a.onAfterRender(H,a,c),null!==O&&(ea.updateRenderTargetMipmap(O),
 ea.updateMultisampleRenderTarget(O)),Y.buffers.depth.setTest(!0),Y.buffers.depth.setMask(!0),Y.buffers.color.setMask(!0),Y.setPolygonOffset(!1),A=C=null):console.error("THREE.WebGLRenderer.render: camera is not an instance of THREE.Camera.")};this.setFramebuffer=function(a){M!==a&&null===O&&I.bindFramebuffer(36160,a);M=a};this.getActiveCubeFace=function(){return N};this.getActiveMipmapLevel=function(){return K};this.getRenderTarget=function(){return O};this.setRenderTarget=function(a,b,c){O=a;N=b;
 K=c;a&&void 0===X.get(a).__webglFramebuffer&&ea.setupRenderTarget(a);var d=M,e=!1;a?(d=X.get(a).__webglFramebuffer,a.isWebGLCubeRenderTarget?(d=d[b||0],e=!0):d=a.isWebGLMultisampleRenderTarget?X.get(a).__webglMultisampledFramebuffer:d,Z.copy(a.viewport),T.copy(a.scissor),da=a.scissorTest):(Z.copy(R).multiplyScalar(Q).floor(),T.copy(ja).multiplyScalar(Q).floor(),da=kg);W!==d&&(I.bindFramebuffer(36160,d),W=d);Y.viewport(Z);Y.scissor(T);Y.setScissorTest(da);e&&(a=X.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=X.get(a).__webglFramebuffer;a.isWebGLCubeRenderTarget&&void 0!==g&&(h=h[g]);if(h){g=!1;h!==W&&(I.bindFramebuffer(36160,h),g=!0);try{var l=a.texture,m=l.format,u=l.type;1023!==m&&qa.convert(m)!==I.getParameter(35739)?console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format."):1009===u||qa.convert(u)===I.getParameter(35738)||
 1015===u&&(Fa.isWebGL2||ra.get("OES_texture_float")||ra.get("WEBGL_color_buffer_float"))||1016===u&&(Fa.isWebGL2?ra.get("EXT_color_buffer_float"):ra.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,qa.convert(m),qa.convert(u),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,W)}}}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=qa.convert(b.format);ea.setTexture2D(b,0);I.copyTexImage2D(3553,c,f,a.x,a.y,e,d,0);Y.unbindTexture()};this.copyTextureToTexture=function(a,b,c,d){var e=b.image.width,f=b.image.height,g=qa.convert(c.format),h=
-qa.convert(c.type);ea.setTexture2D(c,0);b.isDataTexture?I.texSubImage2D(3553,d||0,a.x,a.y,e,f,g,h,b.image.data):I.texSubImage2D(3553,d||0,a.x,a.y,g,h,b.image);Y.unbindTexture()};this.initTexture=function(a){ea.setTexture2D(a,0);Y.unbindTexture()};"undefined"!==typeof __THREE_DEVTOOLS__&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}function Re(a,b){this.name="";this.color=new A(a);this.density=void 0!==b?b:2.5E-4}function Se(a,b,c){this.name="";this.color=new A(a);this.near=
+qa.convert(c.type);ea.setTexture2D(c,0);b.isDataTexture?I.texSubImage2D(3553,d||0,a.x,a.y,e,f,g,h,b.image.data):I.texSubImage2D(3553,d||0,a.x,a.y,g,h,b.image);Y.unbindTexture()};this.initTexture=function(a){ea.setTexture2D(a,0);Y.unbindTexture()};"undefined"!==typeof __THREE_DEVTOOLS__&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}function Qe(a,b){this.name="";this.color=new A(a);this.density=void 0!==b?b:2.5E-4}function Re(a,b,c){this.name="";this.color=new A(a);this.near=
 void 0!==b?b:1;this.far=void 0!==c?c:1E3}function rb(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}function Od(a,b,c,d){this.data=a;this.itemSize=b;this.offset=c;this.normalized=!0===d}function Ib(a){K.call(this);this.type="SpriteMaterial";this.color=new A(16777215);this.alphaMap=this.map=null;this.rotation=0;this.transparent=this.sizeAttenuation=!0;this.setValues(a)}function Pd(a){F.call(this);this.type="Sprite";
-if(void 0===Nc){Nc=new C;var b=new Float32Array([-.5,-.5,0,0,0,.5,-.5,0,1,0,.5,.5,0,1,1,-.5,.5,0,0,1]);b=new rb(b,5);Nc.setIndex([0,1,2,0,2,3]);Nc.setAttribute("position",new Od(b,3,0,!1));Nc.setAttribute("uv",new Od(b,2,3,!1))}this.geometry=Nc;this.material=void 0!==a?a:new Ib;this.center=new t(.5,.5)}function Te(a,b,c,d,e,f){Oc.subVectors(a,c).addScalar(.5).multiply(d);void 0!==e?(Qd.x=f*Oc.x-e*Oc.y,Qd.y=e*Oc.x+f*Oc.y):Qd.copy(Oc);a.copy(b);a.x+=Qd.x;a.y+=Qd.y;a.applyMatrix4(bi)}function Rd(){F.call(this);
-this._currentLevel=0;this.type="LOD";Object.defineProperties(this,{levels:{enumerable:!0,value:[]}});this.autoUpdate=!0}function Sd(a,b){a&&a.isGeometry&&console.error("THREE.SkinnedMesh no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.");S.call(this,a,b);this.type="SkinnedMesh";this.bindMode="attached";this.bindMatrix=new P;this.bindMatrixInverse=new P}function Ue(a,b){a=a||[];this.bones=a.slice(0);this.boneMatrices=new Float32Array(16*this.bones.length);this.frame=-1;if(void 0===
+if(void 0===Nc){Nc=new C;var b=new Float32Array([-.5,-.5,0,0,0,.5,-.5,0,1,0,.5,.5,0,1,1,-.5,.5,0,0,1]);b=new rb(b,5);Nc.setIndex([0,1,2,0,2,3]);Nc.setAttribute("position",new Od(b,3,0,!1));Nc.setAttribute("uv",new Od(b,2,3,!1))}this.geometry=Nc;this.material=void 0!==a?a:new Ib;this.center=new t(.5,.5)}function Se(a,b,c,d,e,f){Oc.subVectors(a,c).addScalar(.5).multiply(d);void 0!==e?(Qd.x=f*Oc.x-e*Oc.y,Qd.y=e*Oc.x+f*Oc.y):Qd.copy(Oc);a.copy(b);a.x+=Qd.x;a.y+=Qd.y;a.applyMatrix4(bi)}function Rd(){F.call(this);
+this._currentLevel=0;this.type="LOD";Object.defineProperties(this,{levels:{enumerable:!0,value:[]}});this.autoUpdate=!0}function Te(a,b){a&&a.isGeometry&&console.error("THREE.SkinnedMesh no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.");S.call(this,a,b);this.type="SkinnedMesh";this.bindMode="attached";this.bindMatrix=new P;this.bindMatrixInverse=new P}function Ue(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 P)}function pg(){F.call(this);this.type="Bone"}function Ve(a,b,c){S.call(this,a,b);this.instanceMatrix=new M(new Float32Array(16*c),16);this.count=c;this.frustumCulled=!1}function la(a){K.call(this);this.type="LineBasicMaterial";this.color=new A(16777215);
 this.linewidth=1;this.linejoin=this.linecap="round";this.setValues(a)}function Ka(a,b,c){1===c&&console.error("THREE.Line: parameter THREE.LinePieces no longer supported. Use THREE.LineSegments instead.");F.call(this);this.type="Line";this.geometry=void 0!==a?a:new C;this.material=void 0!==b?b:new la}function ma(a,b){Ka.call(this,a,b);this.type="LineSegments"}function We(a,b){Ka.call(this,a,b);this.type="LineLoop"}function Va(a){K.call(this);this.type="PointsMaterial";this.color=new A(16777215);this.alphaMap=
 this.map=null;this.size=1;this.sizeAttenuation=!0;this.morphTargets=!1;this.setValues(a)}function Pc(a,b){F.call(this);this.type="Points";this.geometry=void 0!==a?a:new C;this.material=void 0!==b?b:new Va;this.updateMorphTargets()}function qg(a,b,c,d,e,f,g){var h=rg.distanceSqToPoint(a);h<c&&(c=new n,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){V.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 Qc(a,b,c,d,e,f,g,h,l,m,u,p){V.call(this,null,f,g,h,l,m,d,e,u,p);this.image={width:b,height:c};this.mipmaps=a;this.generateMipmaps=this.flipY=!1}function Td(a,b,c,d,e,f,g,h,l){V.call(this,a,b,c,d,e,f,g,h,l);this.needsUpdate=!0}function Ud(a,b,c,d,e,f,g,h,l,m){m=void 0!==m?m:1026;if(1026!==m&&1027!==m)throw Error("DepthTexture format must be either THREE.DepthFormat or THREE.DepthStencilFormat");
+f,g,h,l){V.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 Qc(a,b,c,d,e,f,g,h,l,m,u,p){V.call(this,null,f,g,h,l,m,d,e,u,p);this.image={width:b,height:c};this.mipmaps=a;this.generateMipmaps=this.flipY=!1}function Sd(a,b,c,d,e,f,g,h,l){V.call(this,a,b,c,d,e,f,g,h,l);this.needsUpdate=!0}function Td(a,b,c,d,e,f,g,h,l,m){m=void 0!==m?m:1026;if(1026!==m&&1027!==m)throw Error("DepthTexture format must be either THREE.DepthFormat or THREE.DepthStencilFormat");
 void 0===c&&1026===m&&(c=1012);void 0===c&&1027===m&&(c=1020);V.call(this,null,d,e,f,g,h,m,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 Rc(a){C.call(this);this.type="WireframeGeometry";var b=[],c,d,e,f=[0,0],g={},h=["a","b","c"];if(a&&a.isGeometry){var l=a.faces;var m=0;for(d=l.length;m<d;m++){var u=l[m];for(c=0;3>c;c++){var p=u[h[c]];var k=u[h[(c+1)%3]];f[0]=Math.min(p,k);f[1]=Math.max(p,k);p=f[0]+
 ","+f[1];void 0===g[p]&&(g[p]={index1:f[0],index2:f[1]})}}for(p in g)m=g[p],h=a.vertices[m.index1],b.push(h.x,h.y,h.z),h=a.vertices[m.index2],b.push(h.x,h.y,h.z)}else if(a&&a.isBufferGeometry)if(h=new n,null!==a.index){l=a.attributes.position;u=a.index;var r=a.groups;0===r.length&&(r=[{start:0,count:u.count,materialIndex:0}]);a=0;for(e=r.length;a<e;++a)for(m=r[a],c=m.start,d=m.count,m=c,d=c+d;m<d;m+=3)for(c=0;3>c;c++)p=u.getX(m+c),k=u.getX(m+(c+1)%3),f[0]=Math.min(p,k),f[1]=Math.max(p,k),p=f[0]+","+
-f[1],void 0===g[p]&&(g[p]={index1:f[0],index2:f[1]});for(p in g)m=g[p],h.fromBufferAttribute(l,m.index1),b.push(h.x,h.y,h.z),h.fromBufferAttribute(l,m.index2),b.push(h.x,h.y,h.z)}else for(l=a.attributes.position,m=0,d=l.count/3;m<d;m++)for(c=0;3>c;c++)g=3*m+c,h.fromBufferAttribute(l,g),b.push(h.x,h.y,h.z),g=3*m+(c+1)%3,h.fromBufferAttribute(l,g),b.push(h.x,h.y,h.z);this.setAttribute("position",new y(b,3))}function Vd(a,b,c){N.call(this);this.type="ParametricGeometry";this.parameters={func:a,slices:b,
+f[1],void 0===g[p]&&(g[p]={index1:f[0],index2:f[1]});for(p in g)m=g[p],h.fromBufferAttribute(l,m.index1),b.push(h.x,h.y,h.z),h.fromBufferAttribute(l,m.index2),b.push(h.x,h.y,h.z)}else for(l=a.attributes.position,m=0,d=l.count/3;m<d;m++)for(c=0;3>c;c++)g=3*m+c,h.fromBufferAttribute(l,g),b.push(h.x,h.y,h.z),g=3*m+(c+1)%3,h.fromBufferAttribute(l,g),b.push(h.x,h.y,h.z);this.setAttribute("position",new y(b,3))}function Ud(a,b,c){N.call(this);this.type="ParametricGeometry";this.parameters={func:a,slices:b,
 stacks:c};this.fromBufferGeometry(new Sc(a,b,c));this.mergeVertices()}function Sc(a,b,c){C.call(this);this.type="ParametricBufferGeometry";this.parameters={func:a,slices:b,stacks:c};var d=[],e=[],f=[],g=[],h=new n,l=new n,m=new n,u=new n,p=new n,k,r;3>a.length&&console.error("THREE.ParametricGeometry: Function must now modify a Vector3 as third parameter.");var q=b+1;for(k=0;k<=c;k++){var v=k/c;for(r=0;r<=b;r++){var E=r/b;a(E,v,l);e.push(l.x,l.y,l.z);0<=E-1E-5?(a(E-1E-5,v,m),u.subVectors(l,m)):(a(E+
-1E-5,v,m),u.subVectors(m,l));0<=v-1E-5?(a(E,v-1E-5,m),p.subVectors(l,m)):(a(E,v+1E-5,m),p.subVectors(m,l));h.crossVectors(u,p).normalize();f.push(h.x,h.y,h.z);g.push(E,v)}}for(k=0;k<c;k++)for(r=0;r<b;r++)a=k*q+r+1,h=(k+1)*q+r+1,l=(k+1)*q+r,d.push(k*q+r,a,l),d.push(a,h,l);this.setIndex(d);this.setAttribute("position",new y(e,3));this.setAttribute("normal",new y(f,3));this.setAttribute("uv",new y(g,2))}function Wd(a,b,c,d){N.call(this);this.type="PolyhedronGeometry";this.parameters={vertices:a,indices:b,
+1E-5,v,m),u.subVectors(m,l));0<=v-1E-5?(a(E,v-1E-5,m),p.subVectors(l,m)):(a(E,v+1E-5,m),p.subVectors(m,l));h.crossVectors(u,p).normalize();f.push(h.x,h.y,h.z);g.push(E,v)}}for(k=0;k<c;k++)for(r=0;r<b;r++)a=k*q+r+1,h=(k+1)*q+r+1,l=(k+1)*q+r,d.push(k*q+r,a,l),d.push(a,h,l);this.setIndex(d);this.setAttribute("position",new y(e,3));this.setAttribute("normal",new y(f,3));this.setAttribute("uv",new y(g,2))}function Vd(a,b,c,d){N.call(this);this.type="PolyhedronGeometry";this.parameters={vertices:a,indices:b,
 radius:c,detail:d};this.fromBufferGeometry(new Ga(a,b,c,d));this.mergeVertices()}function Ga(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)}C.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 n,d=new n,g=new n,h=0;h<b.length;h+=3){f(b[h+0],c);f(b[h+1],d);
 f(b[h+2],g);var l,m,k=c,w=d,z=g,t=Math.pow(2,a),U=[];for(m=0;m<=t;m++){U[m]=[];var ca=k.clone().lerp(z,m/t),B=w.clone().lerp(z,m/t),A=t-m;for(l=0;l<=A;l++)U[m][l]=0===l&&m===t?ca:ca.clone().lerp(B,l/A)}for(m=0;m<t;m++)for(l=0;l<2*(t-m)-1;l++)k=Math.floor(l/2),0===l%2?(e(U[m][k+1]),e(U[m+1][k]),e(U[m][k])):(e(U[m][k+1]),e(U[m+1][k+1]),e(U[m+1][k]))}})(d);(function(a){for(var b=new n,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 n,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 n;b=new n;for(var c=new n,d=new n,e=new t,f=new t,k=new t,E=0,w=0;E<h.length;E+=9,w+=6){a.set(h[E+0],h[E+1],h[E+2]);b.set(h[E+3],h[E+4],h[E+5]);c.set(h[E+6],h[E+7],h[E+8]);e.set(l[w+0],l[w+1]);f.set(l[w+2],l[w+3]);k.set(l[w+4],l[w+5]);d.copy(a).add(b).add(c).divideScalar(3);var z=Math.atan2(d.z,-d.x);g(e,w+0,a,z);
-g(f,w+2,b,z);g(k,w+4,c,z)}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 y(h,3));this.setAttribute("normal",new y(h.slice(),3));this.setAttribute("uv",new y(l,2));0===d?this.computeVertexNormals():this.normalizeNormals()}function Xd(a,b){N.call(this);this.type="TetrahedronGeometry";this.parameters={radius:a,detail:b};this.fromBufferGeometry(new Tc(a,b));this.mergeVertices()}
-function Tc(a,b){Ga.call(this,[1,1,1,-1,-1,1,-1,1,-1,1,-1,-1],[2,1,0,0,3,2,1,3,0,2,3,1],a,b);this.type="TetrahedronBufferGeometry";this.parameters={radius:a,detail:b}}function Yd(a,b){N.call(this);this.type="OctahedronGeometry";this.parameters={radius:a,detail:b};this.fromBufferGeometry(new cc(a,b));this.mergeVertices()}function cc(a,b){Ga.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 Zd(a,b){N.call(this);this.type="IcosahedronGeometry";this.parameters={radius:a,detail:b};this.fromBufferGeometry(new Uc(a,b));this.mergeVertices()}function Uc(a,b){var c=(1+Math.sqrt(5))/2;Ga.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 $d(a,b){N.call(this);this.type="DodecahedronGeometry";this.parameters={radius:a,detail:b};this.fromBufferGeometry(new Vc(a,b));this.mergeVertices()}function Vc(a,b){var c=(1+Math.sqrt(5))/2,d=1/c;Ga.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 ae(a,b,c,d,e,f){N.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 dc(a,b,c,d,e);this.tangents=a.tangents;this.normals=
+g(f,w+2,b,z);g(k,w+4,c,z)}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 y(h,3));this.setAttribute("normal",new y(h.slice(),3));this.setAttribute("uv",new y(l,2));0===d?this.computeVertexNormals():this.normalizeNormals()}function Wd(a,b){N.call(this);this.type="TetrahedronGeometry";this.parameters={radius:a,detail:b};this.fromBufferGeometry(new Tc(a,b));this.mergeVertices()}
+function Tc(a,b){Ga.call(this,[1,1,1,-1,-1,1,-1,1,-1,1,-1,-1],[2,1,0,0,3,2,1,3,0,2,3,1],a,b);this.type="TetrahedronBufferGeometry";this.parameters={radius:a,detail:b}}function Xd(a,b){N.call(this);this.type="OctahedronGeometry";this.parameters={radius:a,detail:b};this.fromBufferGeometry(new cc(a,b));this.mergeVertices()}function cc(a,b){Ga.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 Yd(a,b){N.call(this);this.type="IcosahedronGeometry";this.parameters={radius:a,detail:b};this.fromBufferGeometry(new Uc(a,b));this.mergeVertices()}function Uc(a,b){var c=(1+Math.sqrt(5))/2;Ga.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 Zd(a,b){N.call(this);this.type="DodecahedronGeometry";this.parameters={radius:a,detail:b};this.fromBufferGeometry(new Vc(a,b));this.mergeVertices()}function Vc(a,b){var c=(1+Math.sqrt(5))/2,d=1/c;Ga.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 $d(a,b,c,d,e,f){N.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 dc(a,b,c,d,e);this.tangents=a.tangents;this.normals=
 a.normals;this.binormals=a.binormals;this.fromBufferGeometry(a);this.mergeVertices()}function dc(a,b,c,d,e){function f(e){u=a.getPointAt(e/b,u);var f=g.normals[e];e=g.binormals[e];for(x=0;x<=d;x++){var m=x/d*Math.PI*2,k=Math.sin(m);m=-Math.cos(m);l.x=m*f.x+k*e.x;l.y=m*f.y+k*e.y;l.z=m*f.z+k*e.z;l.normalize();q.push(l.x,l.y,l.z);h.x=u.x+c*l.x;h.y=u.y+c*l.y;h.z=u.z+c*l.z;r.push(h.x,h.y,h.z)}}C.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 n,l=new n,m=new t,u=new n,k,x,r=[],q=[],v=[],E=[];for(k=0;k<b;k++)f(k);f(!1===e?b:0);for(k=0;k<=b;k++)for(x=0;x<=d;x++)m.x=k/b,m.y=x/d,v.push(m.x,m.y);(function(){for(x=1;x<=b;x++)for(k=1;k<=d;k++){var a=(d+1)*x+(k-1),c=(d+1)*x+k,e=(d+1)*(x-1)+k;E.push((d+1)*(x-1)+(k-1),a,e);E.push(a,c,e)}})();this.setIndex(E);this.setAttribute("position",new y(r,
-3));this.setAttribute("normal",new y(q,3));this.setAttribute("uv",new y(v,2))}function be(a,b,c,d,e,f,g){N.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 Wc(a,b,c,d,e,f));this.mergeVertices()}function Wc(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*
+3));this.setAttribute("normal",new y(q,3));this.setAttribute("uv",new y(v,2))}function ae(a,b,c,d,e,f,g){N.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 Wc(a,b,c,d,e,f));this.mergeVertices()}function Wc(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}C.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;var h=[],l=[],m=[],k=[],p,x=new n,r=new n,q=new n,v=new n,E=new n,w=new n,z=new n;for(p=0;p<=c;++p){var t=p/c*e*Math.PI*2;g(t,e,f,a,q);g(t+.01,e,f,a,v);w.subVectors(v,q);z.addVectors(v,q);E.crossVectors(w,z);z.crossVectors(E,w);E.normalize();z.normalize();
-for(t=0;t<=d;++t){var U=t/d*Math.PI*2,ca=-b*Math.cos(U);U=b*Math.sin(U);x.x=q.x+(ca*z.x+U*E.x);x.y=q.y+(ca*z.y+U*E.y);x.z=q.z+(ca*z.z+U*E.z);l.push(x.x,x.y,x.z);r.subVectors(x,q).normalize();m.push(r.x,r.y,r.z);k.push(p/c);k.push(t/d)}}for(t=1;t<=c;t++)for(p=1;p<=d;p++)a=(d+1)*t+(p-1),b=(d+1)*t+p,e=(d+1)*(t-1)+p,h.push((d+1)*(t-1)+(p-1),a,e),h.push(a,b,e);this.setIndex(h);this.setAttribute("position",new y(l,3));this.setAttribute("normal",new y(m,3));this.setAttribute("uv",new y(k,2))}function ce(a,
+for(t=0;t<=d;++t){var U=t/d*Math.PI*2,ca=-b*Math.cos(U);U=b*Math.sin(U);x.x=q.x+(ca*z.x+U*E.x);x.y=q.y+(ca*z.y+U*E.y);x.z=q.z+(ca*z.z+U*E.z);l.push(x.x,x.y,x.z);r.subVectors(x,q).normalize();m.push(r.x,r.y,r.z);k.push(p/c);k.push(t/d)}}for(t=1;t<=c;t++)for(p=1;p<=d;p++)a=(d+1)*t+(p-1),b=(d+1)*t+p,e=(d+1)*(t-1)+p,h.push((d+1)*(t-1)+(p-1),a,e),h.push(a,b,e);this.setIndex(h);this.setAttribute("position",new y(l,3));this.setAttribute("normal",new y(m,3));this.setAttribute("uv",new y(k,2))}function be(a,
 b,c,d,e){N.call(this);this.type="TorusGeometry";this.parameters={radius:a,tube:b,radialSegments:c,tubularSegments:d,arc:e};this.fromBufferGeometry(new Xc(a,b,c,d,e));this.mergeVertices()}function Xc(a,b,c,d,e){C.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;var f=[],g=[],h=[],l=[],m=new n,k=new n,p=new n,x,r;for(x=0;x<=c;x++)for(r=0;r<=d;r++){var q=r/d*e,v=x/
 c*Math.PI*2;k.x=(a+b*Math.cos(v))*Math.cos(q);k.y=(a+b*Math.cos(v))*Math.sin(q);k.z=b*Math.sin(v);g.push(k.x,k.y,k.z);m.x=a*Math.cos(q);m.y=a*Math.sin(q);p.subVectors(k,m).normalize();h.push(p.x,p.y,p.z);l.push(r/d);l.push(x/c)}for(x=1;x<=c;x++)for(r=1;r<=d;r++)a=(d+1)*(x-1)+r-1,b=(d+1)*(x-1)+r,e=(d+1)*x+r,f.push((d+1)*x+r-1,a,e),f.push(a,b,e);this.setIndex(f);this.setAttribute("position",new y(g,3));this.setAttribute("normal",new y(h,3));this.setAttribute("uv",new y(l,2))}function ci(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=di(e,a[e],a[e+1],f);else for(e=c-d;e>=b;e-=d)f=di(e,a[e],a[e+1],f);f&&ec(f,f.next)&&(de(f),f=f.next);return f}function ee(a,b){if(!a)return a;b||(b=a);do{var c=!1;if(a.steiner||!ec(a,a.next)&&0!==xa(a.prev,a,a.next))a=a.next;else{de(a);a=b=a.prev;if(a===a.next)break;c=!0}}while(c||a!==b);return b}function fe(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=
+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=di(e,a[e],a[e+1],f);else for(e=c-d;e>=b;e-=d)f=di(e,a[e],a[e+1],f);f&&ec(f,f.next)&&(ce(f),f=f.next);return f}function de(a,b){if(!a)return a;b||(b=a);do{var c=!1;if(a.steiner||!ec(a,a.next)&&0!==xa(a.prev,a,a.next))a=a.next;else{ce(a);a=b=a.prev;if(a===a.next)break;c=!0}}while(c||a!==b);return b}function ee(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 m,k,p,x,r=1;do{l=h;var q=h=null;for(k=0;l;){k++;var n=l;for(m=p=0;m<r&&(p++,n=n.nextZ,n);m++);for(x=r;0<p||0<x&&n;)0!==p&&(0===x||!n||l.z<=n.z)?(m=l,l=l.nextZ,p--):(m=n,n=n.nextZ,x--),q?q.nextZ=m:h=m,m.prevZ=q,q=m;l=n}q.nextZ=null;r*=2}while(1<k)}for(h=a;a.prev!==a.next;){l=a.prev;n=a.next;if(f)q=Kk(a,d,e,f);else a:if(q=a,k=q.prev,p=q,r=q.next,0<=xa(k,p,r))q=!1;else{for(m=q.next.next;m!==q.prev;){if(Yc(k.x,k.y,p.x,p.y,r.x,r.y,m.x,m.y)&&0<=
-xa(m.prev,m,m.next)){q=!1;break a}m=m.next}q=!0}if(q)b.push(l.i/c),b.push(a.i/c),b.push(n.i/c),de(a),h=a=n.next;else if(a=n,a===h){if(!g)fe(ee(a),b,c,d,e,f,1);else if(1===g){g=b;h=c;l=a;do n=l.prev,q=l.next.next,!ec(n,q)&&ei(n,l,l.next,q)&&ge(n,q)&&ge(q,n)&&(g.push(n.i/h),g.push(l.i/h),g.push(q.i/h),de(l),de(l.next),l=a=q),l=l.next;while(l!==a);a=l;fe(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;n=h;if(q=l.next.i!==n.i&&l.prev.i!==n.i){b:{q=l;do{if(q.i!==
-l.i&&q.next.i!==l.i&&q.i!==n.i&&q.next.i!==n.i&&ei(q,q.next,l,n)){q=!0;break b}q=q.next}while(q!==l);q=!1}q=!q}if(q=q&&ge(l,n)&&ge(n,l)){q=l;k=!1;p=(l.x+n.x)/2;n=(l.y+n.y)/2;do q.y>n!==q.next.y>n&&q.next.y!==q.y&&p<(q.next.x-q.x)*(n-q.y)/(q.next.y-q.y)+q.x&&(k=!k),q=q.next;while(q!==l);q=k}l=q}if(l){a=fi(g,h);g=ee(g,g.next);a=ee(a,a.next);fe(g,b,c,d,e,f);fe(a,b,c,d,e,f);break a}h=h.next}g=g.next}while(g!==a)}break}}}}function Kk(a,b,c,d){var e=a.prev,f=a.next;if(0<=xa(e,a,f))return!1;var g=e.x>a.x?
+xa(m.prev,m,m.next)){q=!1;break a}m=m.next}q=!0}if(q)b.push(l.i/c),b.push(a.i/c),b.push(n.i/c),ce(a),h=a=n.next;else if(a=n,a===h){if(!g)ee(de(a),b,c,d,e,f,1);else if(1===g){g=b;h=c;l=a;do n=l.prev,q=l.next.next,!ec(n,q)&&ei(n,l,l.next,q)&&fe(n,q)&&fe(q,n)&&(g.push(n.i/h),g.push(l.i/h),g.push(q.i/h),ce(l),ce(l.next),l=a=q),l=l.next;while(l!==a);a=l;ee(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;n=h;if(q=l.next.i!==n.i&&l.prev.i!==n.i){b:{q=l;do{if(q.i!==
+l.i&&q.next.i!==l.i&&q.i!==n.i&&q.next.i!==n.i&&ei(q,q.next,l,n)){q=!0;break b}q=q.next}while(q!==l);q=!1}q=!q}if(q=q&&fe(l,n)&&fe(n,l)){q=l;k=!1;p=(l.x+n.x)/2;n=(l.y+n.y)/2;do q.y>n!==q.next.y>n&&q.next.y!==q.y&&p<(q.next.x-q.x)*(n-q.y)/(q.next.y-q.y)+q.x&&(k=!k),q=q.next;while(q!==l);q=k}l=q}if(l){a=fi(g,h);g=de(g,g.next);a=de(a,a.next);ee(g,b,c,d,e,f);ee(a,b,c,d,e,f);break a}h=h.next}g=g.next}while(g!==a)}break}}}}function Kk(a,b,c,d){var e=a.prev,f=a.next;if(0<=xa(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&&Yc(e.x,e.y,a.x,a.y,f.x,f.y,c.x,c.y)&&0<=xa(c.prev,c,c.next))return!1;c=c.prevZ;if(d!==a.prev&&d!==a.next&&Yc(e.x,e.y,a.x,a.y,f.x,f.y,d.x,d.y)&&0<=xa(d.prev,d,d.next))return!1;d=d.nextZ}for(;c&&c.z>=l;){if(c!==a.prev&&c!==a.next&&Yc(e.x,e.y,a.x,a.y,
 f.x,f.y,c.x,c.y)&&0<=xa(c.prev,c,c.next))return!1;c=c.prevZ}for(;d&&d.z<=b;){if(d!==a.prev&&d!==a.next&&Yc(e.x,e.y,a.x,a.y,f.x,f.y,d.x,d.y)&&0<=xa(d.prev,d,d.next))return!1;d=d.nextZ}return!0}function Lk(a,b){return a.x-b.x}function Mk(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.prev;b=h;g=h.x;var l=h.y,m=Infinity;for(c=h.next;c!==b;){if(d>=c.x&&c.x>=g&&d!==c.x&&Yc(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);(k<m||k===m&&c.x>h.x)&&ge(c,a)&&(h=c,m=k)}c=c.next}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 Nk(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 Yc(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 xa(a,b,c){return(b.y-a.y)*(c.x-b.x)-(b.x-a.x)*(c.y-b.y)}function ec(a,b){return a.x===b.x&&a.y===b.y}function ei(a,b,c,d){return ec(a,c)&&ec(b,d)||ec(a,d)&&ec(c,b)?!0:0<xa(a,b,c)!==0<xa(a,b,d)&&0<xa(c,d,a)!==0<xa(c,d,b)}function ge(a,b){return 0>xa(a.prev,a,a.next)?0<=xa(a,b,a.next)&&0<=xa(a,a.prev,b):0>xa(a,b,a.prev)||
-0>xa(a,a.next,b)}function fi(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 di(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 de(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=
+if(d===f)return h.prev;b=h;g=h.x;var l=h.y,m=Infinity;for(c=h.next;c!==b;){if(d>=c.x&&c.x>=g&&d!==c.x&&Yc(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);(k<m||k===m&&c.x>h.x)&&fe(c,a)&&(h=c,m=k)}c=c.next}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 Nk(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 Yc(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 xa(a,b,c){return(b.y-a.y)*(c.x-b.x)-(b.x-a.x)*(c.y-b.y)}function ec(a,b){return a.x===b.x&&a.y===b.y}function ei(a,b,c,d){return ec(a,c)&&ec(b,d)||ec(a,d)&&ec(c,b)?!0:0<xa(a,b,c)!==0<xa(a,b,d)&&0<xa(c,d,a)!==0<xa(c,d,b)}function fe(a,b){return 0>xa(a.prev,a,a.next)?0<=xa(a,b,a.next)&&0<=xa(a,a.prev,b):0>xa(a,b,a.prev)||
+0>xa(a,a.next,b)}function fi(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 di(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 ce(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 gi(a){var b=a.length;2<b&&a[b-1].equals(a[0])&&a.pop()}function hi(a,b){for(var c=0;c<b.length;c++)a.push(b[c].x),a.push(b[c].y)}function fc(a,b){N.call(this);this.type="ExtrudeGeometry";this.parameters={shapes:a,options:b};this.fromBufferGeometry(new fb(a,b));this.mergeVertices()}function fb(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),m=Math.sqrt(f*f+g*g);h=b.x-e/l;b=b.y+d/l;g=((c.x-g/m-h)*g-(c.y+f/m-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 t(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 t(f/e,d/e)}function h(a,b){for(J=a.length;0<=
 --J;){var c=J;var f=J-1;0>f&&(f=a.length-1);var g,h=z+2*y;for(g=0;g<h;g++){var l=W*g,m=W*(g+1),k=b+f+l,u=b+f+m;m=b+c+m;q(b+c+l);q(k);q(m);q(k);q(u);q(m);l=e.length/3;l=F.generateSideWallUV(d,e,l-6,l-3,l-2,l-1);v(l[0]);v(l[1]);v(l[3]);v(l[1]);v(l[2]);v(l[3])}}}function l(a,b,c){E.push(a);E.push(b);E.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);v(a[0]);v(a[1]);v(a[2])}function q(a){e.push(E[3*a]);e.push(E[3*a+1]);e.push(E[3*a+2])}function v(a){f.push(a.x);
@@ -269,12 +269,12 @@ Z++)S===Q&&(S=0),Z===Q&&(Z=0),w[J]=g(V[J],V[S],V[Z]);C=[];var ea=w.concat();fa=0
 B+A;for(J=0;J<W;J++)R=U?c(a[J],ea[J],Z):a[J],H?(N.copy(G.normals[0]).multiplyScalar(R.x),M.copy(G.binormals[0]).multiplyScalar(R.y),K.copy(D[0]).add(N).add(M),l(K.x,K.y,K.z)):l(R.x,R.y,0);for(Q=1;Q<=z;Q++)for(J=0;J<W;J++)R=U?c(a[J],ea[J],Z):a[J],H?(N.copy(G.normals[Q]).multiplyScalar(R.x),M.copy(G.binormals[Q]).multiplyScalar(R.y),K.copy(D[Q]).add(N).add(M),l(K.x,K.y,K.z)):l(R.x,R.y,ha/z*Q);for(S=y-1;0<=S;S--){Q=S/y;da=ca*Math.cos(Q*Math.PI/2);Z=B*Math.sin(Q*Math.PI/2)+A;J=0;for(Q=V.length;J<Q;J++)R=
 c(V[J],w[J],Z),l(R.x,R.y,ha+da);fa=0;for(O=L.length;fa<O;fa++)for(P=L[fa],aa=C[fa],J=0,Q=P.length;J<Q;J++)R=c(P[J],aa[J],Z),H?l(R.x,R.y+D[z-1].y,D[z-1].x+da):l(R.x,R.y,ha+da)}(function(){var a=e.length/3;if(U){var b=0*W;for(J=0;J<ba;J++)T=X[J],k(T[2]+b,T[1]+b,T[0]+b);b=W*(z+2*y);for(J=0;J<ba;J++)T=X[J],k(T[0]+b,T[1]+b,T[2]+b)}else{for(J=0;J<ba;J++)T=X[J],k(T[2],T[1],T[0]);for(J=0;J<ba;J++)T=X[J],k(T[0]+W*z,T[1]+W*z,T[2]+W*z)}d.addGroup(a,e.length/3-a,0)})();(function(){var a=e.length/3,b=0;h(V,b);
 b+=V.length;fa=0;for(O=L.length;fa<O;fa++)P=L[fa],h(P,b),b+=P.length;d.addGroup(a,e.length/3-a,1)})()}C.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 y(e,3));this.setAttribute("uv",new y(f,2));this.computeVertexNormals()}function ii(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 he(a,b){N.call(this);this.type="TextGeometry";this.parameters={text:a,parameters:b};this.fromBufferGeometry(new Zc(a,b));this.mergeVertices()}function Zc(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 N;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);fb.call(this,a,b);this.type="TextBufferGeometry"}function ie(a,b,c,d,e,f,g){N.call(this);this.type="SphereGeometry";this.parameters={radius:a,widthSegments:b,heightSegments:c,phiStart:d,phiLength:e,thetaStart:f,thetaLength:g};this.fromBufferGeometry(new gc(a,b,c,d,e,f,g));this.mergeVertices()}function gc(a,b,c,d,e,f,g){C.call(this);this.type="SphereBufferGeometry";this.parameters={radius:a,widthSegments:b,heightSegments:c,
+void 0!==b.extrudePath&&(c.options.extrudePath=b.extrudePath.toJSON());return c}function ge(a,b){N.call(this);this.type="TextGeometry";this.parameters={text:a,parameters:b};this.fromBufferGeometry(new Zc(a,b));this.mergeVertices()}function Zc(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 N;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);fb.call(this,a,b);this.type="TextBufferGeometry"}function he(a,b,c,d,e,f,g){N.call(this);this.type="SphereGeometry";this.parameters={radius:a,widthSegments:b,heightSegments:c,phiStart:d,phiLength:e,thetaStart:f,thetaLength:g};this.fromBufferGeometry(new gc(a,b,c,d,e,f,g));this.mergeVertices()}function gc(a,b,c,d,e,f,g){C.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;var h=Math.min(f+g,Math.PI),l,m,k=0,p=[],x=new n,r=new n,q=[],v=[],E=[],w=[];for(m=0;m<=c;m++){var t=[],ha=m/c,U=0;0==m&&0==f?U=.5/b:m==c&&h==Math.PI&&(U=-.5/b);for(l=0;l<=b;l++){var ca=l/b;x.x=-a*Math.cos(d+ca*e)*Math.sin(f+ha*g);x.y=a*Math.cos(f+ha*g);x.z=a*Math.sin(d+ca*e)*Math.sin(f+ha*g);v.push(x.x,
-x.y,x.z);r.copy(x).normalize();E.push(r.x,r.y,r.z);w.push(ca+U,1-ha);t.push(k++)}p.push(t)}for(m=0;m<c;m++)for(l=0;l<b;l++)a=p[m][l+1],d=p[m][l],e=p[m+1][l],g=p[m+1][l+1],(0!==m||0<f)&&q.push(a,d,g),(m!==c-1||h<Math.PI)&&q.push(d,e,g);this.setIndex(q);this.setAttribute("position",new y(v,3));this.setAttribute("normal",new y(E,3));this.setAttribute("uv",new y(w,2))}function je(a,b,c,d,e,f){N.call(this);this.type="RingGeometry";this.parameters={innerRadius:a,outerRadius:b,thetaSegments:c,phiSegments:d,
+x.y,x.z);r.copy(x).normalize();E.push(r.x,r.y,r.z);w.push(ca+U,1-ha);t.push(k++)}p.push(t)}for(m=0;m<c;m++)for(l=0;l<b;l++)a=p[m][l+1],d=p[m][l],e=p[m+1][l],g=p[m+1][l+1],(0!==m||0<f)&&q.push(a,d,g),(m!==c-1||h<Math.PI)&&q.push(d,e,g);this.setIndex(q);this.setAttribute("position",new y(v,3));this.setAttribute("normal",new y(E,3));this.setAttribute("uv",new y(w,2))}function ie(a,b,c,d,e,f){N.call(this);this.type="RingGeometry";this.parameters={innerRadius:a,outerRadius:b,thetaSegments:c,phiSegments:d,
 thetaStart:e,thetaLength:f};this.fromBufferGeometry(new $c(a,b,c,d,e,f));this.mergeVertices()}function $c(a,b,c,d,e,f){C.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=[],m=[],k=a,p=(b-a)/d,x=new n,r=new t,q,v;for(q=0;q<=d;q++){for(v=0;v<=c;v++)a=e+v/c*f,x.x=k*Math.cos(a),
-x.y=k*Math.sin(a),h.push(x.x,x.y,x.z),l.push(0,0,1),r.x=(x.x/b+1)/2,r.y=(x.y/b+1)/2,m.push(r.x,r.y);k+=p}for(q=0;q<d;q++)for(b=q*(c+1),v=0;v<c;v++)a=v+b,e=a+c+1,f=a+c+2,k=a+1,g.push(a,e,k),g.push(e,f,k);this.setIndex(g);this.setAttribute("position",new y(h,3));this.setAttribute("normal",new y(l,3));this.setAttribute("uv",new y(m,2))}function ke(a,b,c,d){N.call(this);this.type="LatheGeometry";this.parameters={points:a,segments:b,phiStart:c,phiLength:d};this.fromBufferGeometry(new ad(a,b,c,d));this.mergeVertices()}
+x.y=k*Math.sin(a),h.push(x.x,x.y,x.z),l.push(0,0,1),r.x=(x.x/b+1)/2,r.y=(x.y/b+1)/2,m.push(r.x,r.y);k+=p}for(q=0;q<d;q++)for(b=q*(c+1),v=0;v<c;v++)a=v+b,e=a+c+1,f=a+c+2,k=a+1,g.push(a,e,k),g.push(e,f,k);this.setIndex(g);this.setAttribute("position",new y(h,3));this.setAttribute("normal",new y(l,3));this.setAttribute("uv",new y(m,2))}function je(a,b,c,d){N.call(this);this.type="LatheGeometry";this.parameters={points:a,segments:b,phiStart:c,phiLength:d};this.fromBufferGeometry(new ad(a,b,c,d));this.mergeVertices()}
 function ad(a,b,c,d){C.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=L.clamp(d,0,2*Math.PI);var e=[],f=[],g=[],h=1/b,l=new n,m=new t,k;for(k=0;k<=b;k++){var p=c+k*h*d;var x=Math.sin(p),r=Math.cos(p);for(p=0;p<=a.length-1;p++)l.x=a[p].x*x,l.y=a[p].y,l.z=a[p].x*r,f.push(l.x,l.y,l.z),m.x=k/b,m.y=p/(a.length-1),g.push(m.x,m.y)}for(k=0;k<b;k++)for(p=0;p<a.length-1;p++)c=p+k*a.length,h=c+a.length,l=c+a.length+
 1,m=c+1,e.push(c,h,m),e.push(h,l,m);this.setIndex(e);this.setAttribute("position",new y(f,3));this.setAttribute("uv",new y(g,2));this.computeVertexNormals();if(d===2*Math.PI)for(d=this.attributes.normal.array,e=new n,f=new n,g=new n,c=b*a.length*3,p=k=0;k<a.length;k++,p+=3)e.x=d[p+0],e.y=d[p+1],e.z=d[p+2],f.x=d[c+p+0],f.y=d[c+p+1],f.z=d[c+p+2],g.addVectors(e,f).normalize(),d[p+0]=d[c+p+0]=g.x,d[p+1]=d[c+p+1]=g.y,d[p+2]=d[c+p+2]=g.z}function hc(a,b){N.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 ic(a,b));this.mergeVertices()}function ic(a,b){function c(a){var c,h=e.length/3;a=a.extractPoints(b);var m=a.shape,k=a.holes;!1===sb.isClockWise(m)&&(m=m.reverse());a=0;for(c=k.length;a<c;a++){var u=k[a];!0===sb.isClockWise(u)&&(k[a]=u.reverse())}var n=sb.triangulateShape(m,k);a=0;for(c=k.length;a<c;a++)u=k[a],m=m.concat(u);a=
@@ -284,7 +284,7 @@ k=0;3>k;k++){var p=m[f[k]];var n=m[f[(k+1)%3]];d[0]=Math.min(p,n);d[1]=Math.max(
 heightSegments:e,openEnded:f,thetaStart:g,thetaLength:h};this.fromBufferGeometry(new tb(a,b,c,d,e,f,g,h));this.mergeVertices()}function tb(a,b,c,d,e,f,g,h){function l(c){var e,f=new t,l=new n,u=0,v=!0===c?a:b,z=!0===c?1:-1;var A=q;for(e=1;e<=d;e++)p.push(0,E*z,0),x.push(0,z,0),r.push(.5,.5),q++;var y=q;for(e=0;e<=d;e++){var C=e/d*h+g,D=Math.cos(C);C=Math.sin(C);l.x=v*C;l.y=E*z;l.z=v*D;p.push(l.x,l.y,l.z);x.push(0,z,0);f.x=.5*D+.5;f.y=.5*C*z+.5;r.push(f.x,f.y);q++}for(e=0;e<d;e++)f=A+e,l=y+e,!0===
 c?k.push(l,l+1,f):k.push(l+1,l,f),u+=3;m.addGroup(w,u,!0===c?1:2);w+=u}C.call(this);this.type="CylinderBufferGeometry";this.parameters={radiusTop:a,radiusBottom:b,height:c,radialSegments:d,heightSegments:e,openEnded:f,thetaStart:g,thetaLength:h};var m=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=[],x=[],r=[],q=0,v=[],E=c/2,w=0;(function(){var f,l,u=new n,t=new n,B=0,A=(b-a)/c;for(l=0;l<=e;l++){var C=
 [],y=l/e,D=y*(b-a)+a;for(f=0;f<=d;f++){var H=f/d,F=H*h+g,G=Math.sin(F);F=Math.cos(F);t.x=D*G;t.y=-y*c+E;t.z=D*F;p.push(t.x,t.y,t.z);u.set(G,A,F).normalize();x.push(u.x,u.y,u.z);r.push(H,1-y);C.push(q++)}v.push(C)}for(f=0;f<d;f++)for(l=0;l<e;l++)u=v[l+1][f],t=v[l+1][f+1],A=v[l][f+1],k.push(v[l][f],u,A),k.push(u,t,A),B+=6;m.addGroup(w,B,0);w+=B})();!1===f&&(0<a&&l(!0),0<b&&l(!1));this.setIndex(k);this.setAttribute("position",new y(p,3));this.setAttribute("normal",new y(x,3));this.setAttribute("uv",
-new y(r,2))}function le(a,b,c,d,e,f,g){jc.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 me(a,b,c,d,e,f,g){tb.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 ne(a,b,c,d){N.call(this);this.type="CircleGeometry";this.parameters={radius:a,segments:b,thetaStart:c,
+new y(r,2))}function ke(a,b,c,d,e,f,g){jc.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 le(a,b,c,d,e,f,g){tb.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 me(a,b,c,d){N.call(this);this.type="CircleGeometry";this.parameters={radius:a,segments:b,thetaStart:c,
 thetaLength:d};this.fromBufferGeometry(new cd(a,b,c,d));this.mergeVertices()}function cd(a,b,c,d){C.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,m=new n,k=new t;f.push(0,0,0);g.push(0,0,1);h.push(.5,.5);var p=0;for(l=3;p<=b;p++,l+=3){var x=c+p/b*d;m.x=a*Math.cos(x);m.y=a*Math.sin(x);f.push(m.x,m.y,m.z);g.push(0,0,1);k.x=(f[l]/a+1)/
 2;k.y=(f[l+1]/a+1)/2;h.push(k.x,k.y)}for(l=1;l<=b;l++)e.push(l,l+1,0);this.setIndex(e);this.setAttribute("position",new y(f,3));this.setAttribute("normal",new y(g,3));this.setAttribute("uv",new y(h,2))}function kc(a){K.call(this);this.type="ShadowMaterial";this.color=new A(0);this.transparent=!0;this.setValues(a)}function ub(a){Ba.call(this,a);this.type="RawShaderMaterial"}function gb(a){K.call(this);this.defines={STANDARD:""};this.type="MeshStandardMaterial";this.color=new A(16777215);this.roughness=
 1;this.metalness=0;this.lightMap=this.map=null;this.lightMapIntensity=1;this.aoMap=null;this.aoMapIntensity=1;this.emissive=new A(0);this.emissiveIntensity=1;this.bumpMap=this.emissiveMap=null;this.bumpScale=1;this.normalMap=null;this.normalMapType=0;this.normalScale=new t(1,1);this.displacementMap=null;this.displacementScale=1;this.displacementBias=0;this.envMap=this.alphaMap=this.metalnessMap=this.roughnessMap=null;this.envMapIntensity=1;this.refractionRatio=.98;this.wireframe=!1;this.wireframeLinewidth=
@@ -295,14 +295,14 @@ this.reflectivity=1;this.refractionRatio=.98;this.wireframe=!1;this.wireframeLin
 null;this.normalMapType=0;this.normalScale=new t(1,1);this.displacementMap=null;this.displacementScale=1;this.displacementBias=0;this.wireframe=!1;this.wireframeLinewidth=1;this.morphNormals=this.morphTargets=this.skinning=this.fog=!1;this.setValues(a)}function oc(a){K.call(this);this.type="MeshLambertMaterial";this.color=new A(16777215);this.lightMap=this.map=null;this.lightMapIntensity=1;this.aoMap=null;this.aoMapIntensity=1;this.emissive=new A(0);this.emissiveIntensity=1;this.envMap=this.alphaMap=
 this.specularMap=this.emissiveMap=null;this.combine=0;this.reflectivity=1;this.refractionRatio=.98;this.wireframe=!1;this.wireframeLinewidth=1;this.wireframeLinejoin=this.wireframeLinecap="round";this.morphNormals=this.morphTargets=this.skinning=!1;this.setValues(a)}function pc(a){K.call(this);this.defines={MATCAP:""};this.type="MeshMatcapMaterial";this.color=new A(16777215);this.bumpMap=this.map=this.matcap=null;this.bumpScale=1;this.normalMap=null;this.normalMapType=0;this.normalScale=new t(1,1);
 this.displacementMap=null;this.displacementScale=1;this.displacementBias=0;this.alphaMap=null;this.morphNormals=this.morphTargets=this.skinning=!1;this.setValues(a)}function qc(a){la.call(this);this.type="LineDashedMaterial";this.scale=1;this.dashSize=3;this.gapSize=1;this.setValues(a)}function La(a,b,c,d){this.parameterPositions=a;this._cachedIndex=0;this.resultBuffer=void 0!==d?d:new b.constructor(c);this.sampleValues=b;this.valueSize=c}function Xe(a,b,c,d){La.call(this,a,b,c,d);this._offsetNext=
-this._weightNext=this._offsetPrev=this._weightPrev=-0}function oe(a,b,c,d){La.call(this,a,b,c,d)}function Ye(a,b,c,d){La.call(this,a,b,c,d)}function sa(a,b,c,d){if(void 0===a)throw Error("THREE.KeyframeTrack: track name is undefined");if(void 0===b||0===b.length)throw Error("THREE.KeyframeTrack: no keyframes in track named "+a);this.name=a;this.times=R.convertArray(b,this.TimeBufferType);this.values=R.convertArray(c,this.ValueBufferType);this.setInterpolation(d||this.DefaultInterpolation)}function Ze(a,
-b,c){sa.call(this,a,b,c)}function $e(a,b,c,d){sa.call(this,a,b,c,d)}function dd(a,b,c,d){sa.call(this,a,b,c,d)}function af(a,b,c,d){La.call(this,a,b,c,d)}function pe(a,b,c,d){sa.call(this,a,b,c,d)}function bf(a,b,c,d){sa.call(this,a,b,c,d)}function ed(a,b,c,d){sa.call(this,a,b,c,d)}function Qa(a,b,c){this.name=a;this.tracks=c;this.duration=void 0!==b?b:-1;this.uuid=L.generateUUID();0>this.duration&&this.resetDuration()}function Pk(a){switch(a.toLowerCase()){case "scalar":case "double":case "float":case "number":case "integer":return dd;
-case "vector":case "vector2":case "vector3":case "vector4":return ed;case "color":return $e;case "quaternion":return pe;case "bool":case "boolean":return Ze;case "string":return bf}throw Error("THREE.KeyframeTrack: Unsupported typeName: "+a);}function Qk(a){if(void 0===a.type)throw Error("THREE.KeyframeTrack: track type undefined, can not parse");var b=Pk(a.type);if(void 0===a.times){var c=[],d=[];R.flattenJSON(a.keys,c,d,"value");a.times=c;a.values=d}return void 0!==b.parse?b.parse(a):new b(a.name,
+this._weightNext=this._offsetPrev=this._weightPrev=-0}function ne(a,b,c,d){La.call(this,a,b,c,d)}function Ye(a,b,c,d){La.call(this,a,b,c,d)}function sa(a,b,c,d){if(void 0===a)throw Error("THREE.KeyframeTrack: track name is undefined");if(void 0===b||0===b.length)throw Error("THREE.KeyframeTrack: no keyframes in track named "+a);this.name=a;this.times=R.convertArray(b,this.TimeBufferType);this.values=R.convertArray(c,this.ValueBufferType);this.setInterpolation(d||this.DefaultInterpolation)}function Ze(a,
+b,c){sa.call(this,a,b,c)}function $e(a,b,c,d){sa.call(this,a,b,c,d)}function dd(a,b,c,d){sa.call(this,a,b,c,d)}function af(a,b,c,d){La.call(this,a,b,c,d)}function oe(a,b,c,d){sa.call(this,a,b,c,d)}function bf(a,b,c,d){sa.call(this,a,b,c,d)}function ed(a,b,c,d){sa.call(this,a,b,c,d)}function Qa(a,b,c){this.name=a;this.tracks=c;this.duration=void 0!==b?b:-1;this.uuid=L.generateUUID();0>this.duration&&this.resetDuration()}function Pk(a){switch(a.toLowerCase()){case "scalar":case "double":case "float":case "number":case "integer":return dd;
+case "vector":case "vector2":case "vector3":case "vector4":return ed;case "color":return $e;case "quaternion":return oe;case "bool":case "boolean":return Ze;case "string":return bf}throw Error("THREE.KeyframeTrack: Unsupported typeName: "+a);}function Qk(a){if(void 0===a.type)throw Error("THREE.KeyframeTrack: track type undefined, can not parse");var b=Pk(a.type);if(void 0===a.times){var c=[],d=[];R.flattenJSON(a.keys,c,d,"value");a.times=c;a.values=d}return void 0!==b.parse?b.parse(a):new b(a.name,
 a.times,a.values,a.interpolation)}function vg(a,b,c){var d=this,e=!1,f=0,g=0,h=void 0,l=[];this.onStart=void 0;this.onLoad=a;this.onProgress=b;this.onError=c;this.itemStart=function(a){g++;if(!1===e&&void 0!==d.onStart)d.onStart(a,f,g);e=!0};this.itemEnd=function(a){f++;if(void 0!==d.onProgress)d.onProgress(a,f,g);if(f===g&&(e=!1,void 0!==d.onLoad))d.onLoad()};this.itemError=function(a){if(void 0!==d.onError)d.onError(a)};this.resolveURL=function(a){return h?h(a):a};this.setURLModifier=function(a){h=
 a;return this};this.addHandler=function(a,b){l.push(a,b);return this};this.removeHandler=function(a){a=l.indexOf(a);-1!==a&&l.splice(a,2);return this};this.getHandler=function(a){for(var b=0,c=l.length;b<c;b+=2){var d=l[b],e=l[b+1];d.global&&(d.lastIndex=0);if(d.test(a))return e}return null}}function W(a){this.manager=void 0!==a?a:ki;this.crossOrigin="anonymous";this.resourcePath=this.path=""}function Ra(a){W.call(this,a)}function wg(a){W.call(this,a)}function xg(a){W.call(this,a)}function cf(a){W.call(this,
 a)}function fd(a){W.call(this,a)}function df(a){W.call(this,a)}function ef(a){W.call(this,a)}function G(){this.type="Curve";this.arcLengthDivisions=200}function Ma(a,b,c,d,e,f,g,h){G.call(this);this.type="EllipseCurve";this.aX=a||0;this.aY=b||0;this.xRadius=c||1;this.yRadius=d||1;this.aStartAngle=e||0;this.aEndAngle=f||2*Math.PI;this.aClockwise=g||!1;this.aRotation=h||0}function gd(a,b,c,d,e,f){Ma.call(this,a,b,c,c,d,e,f);this.type="ArcCurve"}function yg(){var a=0,b=0,c=0,d=0;return{initCatmullRom:function(e,
 f,g,h,l){e=l*(g-e);h=l*(h-f);a=f;b=e;c=-3*f+3*g-2*e-h;d=2*f-2*g+e+h},initNonuniformCatmullRom:function(e,f,g,h,l,m,k){e=((f-e)/l-(g-e)/(l+m)+(g-f)/m)*m;h=((g-f)/m-(h-f)/(m+k)+(h-g)/k)*m;a=f;b=e;c=-3*f+3*g-2*e-h;d=2*f-2*g+e+h},calc:function(e){var f=e*e;return a+b*e+c*f+d*f*e}}}function pa(a,b,c,d){G.call(this);this.type="CatmullRomCurve3";this.points=a||[];this.closed=b||!1;this.curveType=c||"centripetal";this.tension=d||.5}function li(a,b,c,d,e){b=.5*(d-b);e=.5*(e-c);var f=a*a;return(2*c-2*d+b+e)*
-a*f+(-3*c+3*d-2*b-e)*f+b*a+c}function qe(a,b,c,d){var e=1-a;return e*e*b+2*(1-a)*a*c+a*a*d}function re(a,b,c,d,e){var f=1-a,g=1-a;return f*f*f*b+3*g*g*a*c+3*(1-a)*a*a*d+a*a*a*e}function Wa(a,b,c,d){G.call(this);this.type="CubicBezierCurve";this.v0=a||new t;this.v1=b||new t;this.v2=c||new t;this.v3=d||new t}function hb(a,b,c,d){G.call(this);this.type="CubicBezierCurve3";this.v0=a||new n;this.v1=b||new n;this.v2=c||new n;this.v3=d||new n}function Da(a,b){G.call(this);this.type="LineCurve";this.v1=a||
+a*f+(-3*c+3*d-2*b-e)*f+b*a+c}function pe(a,b,c,d){var e=1-a;return e*e*b+2*(1-a)*a*c+a*a*d}function qe(a,b,c,d,e){var f=1-a,g=1-a;return f*f*f*b+3*g*g*a*c+3*(1-a)*a*a*d+a*a*a*e}function Wa(a,b,c,d){G.call(this);this.type="CubicBezierCurve";this.v0=a||new t;this.v1=b||new t;this.v2=c||new t;this.v3=d||new t}function hb(a,b,c,d){G.call(this);this.type="CubicBezierCurve3";this.v0=a||new n;this.v1=b||new n;this.v2=c||new n;this.v3=d||new n}function Da(a,b){G.call(this);this.type="LineCurve";this.v1=a||
 new t;this.v2=b||new t}function Xa(a,b){G.call(this);this.type="LineCurve3";this.v1=a||new n;this.v2=b||new n}function Ya(a,b,c){G.call(this);this.type="QuadraticBezierCurve";this.v0=a||new t;this.v1=b||new t;this.v2=c||new t}function ib(a,b,c){G.call(this);this.type="QuadraticBezierCurve3";this.v0=a||new n;this.v1=b||new n;this.v2=c||new n}function Za(a){G.call(this);this.type="SplineCurve";this.points=a||[]}function vb(){G.call(this);this.type="CurvePath";this.curves=[];this.autoClose=!1}function $a(a){vb.call(this);
 this.type="Path";this.currentPoint=new t;a&&this.setFromPoints(a)}function Kb(a){$a.call(this,a);this.uuid=L.generateUUID();this.type="Shape";this.holes=[]}function da(a,b){F.call(this);this.type="Light";this.color=new A(a);this.intensity=void 0!==b?b:1;this.receiveShadow=void 0}function ff(a,b,c){da.call(this,a,c);this.type="HemisphereLight";this.castShadow=void 0;this.position.copy(F.DefaultUp);this.updateMatrix();this.groundColor=new A(b)}function jb(a){this.camera=a;this.bias=0;this.radius=1;
 this.mapSize=new t(512,512);this.mapPass=this.map=null;this.matrix=new P;this._frustum=new Hc;this._frameExtents=new t(1,1);this._viewportCount=1;this._viewports=[new ka(0,0,1,1)]}function gf(){jb.call(this,new aa(50,1,.5,500))}function hf(a,b,c,d,e,f){da.call(this,a,b);this.type="SpotLight";this.position.copy(F.DefaultUp);this.updateMatrix();this.target=new F;Object.defineProperty(this,"power",{get:function(){return this.intensity*Math.PI},set:function(a){this.intensity=a/Math.PI}});this.distance=
@@ -318,23 +318,23 @@ function Kg(a,b){this.analyser=a.context.createAnalyser();this.analyser.fftSize=
 b,c){c=c||ya.parseTrackName(b);this._targetGroup=a;this._bindings=a.subscribe_(b,c)}function ya(a,b,c){this.path=b;this.parsedPath=c||ya.parseTrackName(b);this.node=ya.findNode(a,this.parsedPath.nodeName)||a;this.rootNode=a}function oi(){this.uuid=L.generateUUID();this._objects=Array.prototype.slice.call(arguments);this.nCachedObjects_=0;var a={};this._indicesByUUID=a;for(var b=0,c=arguments.length;b!==c;++b)a[arguments[b].uuid]=b;this._paths=[];this._parsedPaths=[];this._bindings=[];this._bindingsIndicesByPath=
 {};var d=this;this.stats={objects:{get total(){return d._objects.length},get inUse(){return this.total-d.nCachedObjects_}},get bindingsPerObject(){return d._bindings.length}}}function pi(a,b,c){this._mixer=a;this._clip=b;this._localRoot=c||null;a=b.tracks;b=a.length;c=Array(b);for(var d={endingStart:2400,endingEnd:2400},e=0;e!==b;++e){var f=a[e].createInterpolant(null);c[e]=f;f.settings=d}this._interpolantSettings=d;this._interpolants=c;this._propertyBindings=Array(b);this._weightInterpolant=this._timeScaleInterpolant=
 this._byClipCacheIndex=this._cacheIndex=null;this.loop=2201;this._loopCount=-1;this._startTime=null;this.time=0;this._effectiveWeight=this.weight=this._effectiveTimeScale=this.timeScale=1;this.repetitions=Infinity;this.paused=!1;this.enabled=!0;this.clampWhenFinished=!1;this.zeroSlopeAtEnd=this.zeroSlopeAtStart=!0}function Mg(a){this._root=a;this._initMemoryManager();this.time=this._accuIndex=0;this.timeScale=1}function vf(a,b){"string"===typeof a&&(console.warn("THREE.Uniform: Type parameter is no longer needed."),
-a=b);this.value=a}function Ng(a,b,c){rb.call(this,a,b);this.meshPerAttribute=c||1}function Og(a,b,c,d){this.ray=new Vb(a,b);this.near=c||0;this.far=d||Infinity;this.camera=null;this.layers=new Ie;this.params={Mesh:{},Line:{threshold:1},LOD:{},Points:{threshold:1},Sprite:{}};Object.defineProperties(this.params,{PointCloud:{get:function(){console.warn("THREE.Raycaster: params.PointCloud has been renamed to params.Points.");return this.Points}}})}function qi(a,b){return a.distance-b.distance}function Pg(a,
+a=b);this.value=a}function Ng(a,b,c){rb.call(this,a,b);this.meshPerAttribute=c||1}function Og(a,b,c,d){this.ray=new Vb(a,b);this.near=c||0;this.far=d||Infinity;this.camera=null;this.layers=new He;this.params={Mesh:{},Line:{threshold:1},LOD:{},Points:{threshold:1},Sprite:{}};Object.defineProperties(this.params,{PointCloud:{get:function(){console.warn("THREE.Raycaster: params.PointCloud has been renamed to params.Points.");return this.Points}}})}function qi(a,b){return a.distance-b.distance}function Pg(a,
 b,c,d){a.layers.test(b.layers)&&a.raycast(b,c);if(!0===d){a=a.children;d=0;for(var e=a.length;d<e;d++)Pg(a[d],b,c,!0)}}function ri(a,b,c){this.radius=void 0!==a?a:1;this.phi=void 0!==b?b:0;this.theta=void 0!==c?c:0;return this}function si(a,b,c){this.radius=void 0!==a?a:1;this.theta=void 0!==b?b:0;this.y=void 0!==c?c:0;return this}function Qg(a,b){this.min=void 0!==a?a:new t(Infinity,Infinity);this.max=void 0!==b?b:new t(-Infinity,-Infinity)}function Rg(a,b){this.start=void 0!==a?a:new n;this.end=
-void 0!==b?b:new n}function se(a){F.call(this);this.material=a;this.render=function(){}}function jd(a,b){F.call(this);this.light=a;this.light.updateMatrixWorld();this.matrix=a.matrixWorld;this.matrixAutoUpdate=!1;this.color=b;a=new C;b=[0,0,0,0,0,1,0,0,0,1,0,1,0,0,0,-1,0,1,0,0,0,0,1,1,0,0,0,0,-1,1];for(var c=0,d=1;32>c;c++,d++){var e=c/32*Math.PI*2,f=d/32*Math.PI*2;b.push(Math.cos(e),Math.sin(e),1,Math.cos(f),Math.sin(f),1)}a.setAttribute("position",new y(b,3));b=new la({fog:!1,toneMapped:!1});this.cone=
+void 0!==b?b:new n}function re(a){F.call(this);this.material=a;this.render=function(){}}function jd(a,b){F.call(this);this.light=a;this.light.updateMatrixWorld();this.matrix=a.matrixWorld;this.matrixAutoUpdate=!1;this.color=b;a=new C;b=[0,0,0,0,0,1,0,0,0,1,0,1,0,0,0,-1,0,1,0,0,0,0,1,1,0,0,0,0,-1,1];for(var c=0,d=1;32>c;c++,d++){var e=c/32*Math.PI*2,f=d/32*Math.PI*2;b.push(Math.cos(e),Math.sin(e),1,Math.cos(f),Math.sin(f),1)}a.setAttribute("position",new y(b,3));b=new la({fog:!1,toneMapped:!1});this.cone=
 new ma(a,b);this.add(this.cone);this.update()}function ti(a){var b=[];a&&a.isBone&&b.push(a);for(var c=0;c<a.children.length;c++)b.push.apply(b,ti(a.children[c]));return b}function rc(a){for(var b=ti(a),c=new C,d=[],e=[],f=new A(0,0,1),g=new A(0,1,0),h=0;h<b.length;h++){var l=b[h];l.parent&&l.parent.isBone&&(d.push(0,0,0),d.push(0,0,0),e.push(f.r,f.g,f.b),e.push(g.r,g.g,g.b))}c.setAttribute("position",new y(d,3));c.setAttribute("color",new y(e,3));d=new la({vertexColors:!0,depthTest:!1,depthWrite:!1,
 toneMapped:!1,transparent:!0});ma.call(this,c,d);this.root=a;this.bones=b;this.matrix=a.matrixWorld;this.matrixAutoUpdate=!1}function kd(a,b,c){this.light=a;this.light.updateMatrixWorld();this.color=c;a=new gc(b,4,2);b=new Oa({wireframe:!0,fog:!1,toneMapped:!1});S.call(this,a,b);this.matrix=this.light.matrixWorld;this.matrixAutoUpdate=!1;this.update()}function ld(a,b,c){F.call(this);this.light=a;this.light.updateMatrixWorld();this.matrix=a.matrixWorld;this.matrixAutoUpdate=!1;this.color=c;a=new cc(b);
 a.rotateY(.5*Math.PI);this.material=new Oa({wireframe:!0,fog:!1,toneMapped:!1});void 0===this.color&&(this.material.vertexColors=!0);b=a.getAttribute("position");b=new Float32Array(3*b.count);a.setAttribute("color",new M(b,3));this.add(new S(a,this.material));this.update()}function wf(a,b,c,d){a=a||10;b=b||10;c=new A(void 0!==c?c:4473924);d=new A(void 0!==d?d:8947848);var e=b/2,f=a/b,g=a/2;a=[];for(var h=[],l=0,m=0,k=-g;l<=b;l++,k+=f){a.push(-g,0,k,g,0,k);a.push(k,0,-g,k,0,g);var p=l===e?c:d;p.toArray(h,
 m);m+=3;p.toArray(h,m);m+=3;p.toArray(h,m);m+=3;p.toArray(h,m);m+=3}b=new C;b.setAttribute("position",new y(a,3));b.setAttribute("color",new y(h,3));c=new la({vertexColors:!0,toneMapped:!1});ma.call(this,b,c)}function xf(a,b,c,d,e,f){a=a||10;b=b||16;c=c||8;d=d||64;e=new A(void 0!==e?e:4473924);f=new A(void 0!==f?f:8947848);var g=[],h=[],l;for(l=0;l<=b;l++){var m=l/b*2*Math.PI;var k=Math.sin(m)*a;m=Math.cos(m)*a;g.push(0,0,0);g.push(k,0,m);var p=l&1?e:f;h.push(p.r,p.g,p.b);h.push(p.r,p.g,p.b)}for(l=
 0;l<=c;l++){p=l&1?e:f;var n=a-a/c*l;for(b=0;b<d;b++)m=b/d*2*Math.PI,k=Math.sin(m)*n,m=Math.cos(m)*n,g.push(k,0,m),h.push(p.r,p.g,p.b),m=(b+1)/d*2*Math.PI,k=Math.sin(m)*n,m=Math.cos(m)*n,g.push(k,0,m),h.push(p.r,p.g,p.b)}a=new C;a.setAttribute("position",new y(g,3));a.setAttribute("color",new y(h,3));g=new la({vertexColors:!0,toneMapped:!1});ma.call(this,a,g)}function md(a,b,c){F.call(this);this.light=a;this.light.updateMatrixWorld();this.matrix=a.matrixWorld;this.matrixAutoUpdate=!1;this.color=c;
-void 0===b&&(b=1);a=new C;a.setAttribute("position",new y([-b,b,0,b,b,0,b,-b,0,-b,-b,0,-b,b,0],3));b=new la({fog:!1,toneMapped:!1});this.lightPlane=new Ka(a,b);this.add(this.lightPlane);a=new C;a.setAttribute("position",new y([0,0,0,0,0,1],3));this.targetLine=new Ka(a,b);this.add(this.targetLine);this.update()}function te(a){function b(a,b,d){c(a,d);c(b,d)}function c(a,b){f.push(0,0,0);g.push(b.r,b.g,b.b);void 0===h[a]&&(h[a]=[]);h[a].push(f.length/3-1)}var d=new C,e=new la({color:16777215,vertexColors:!0,
+void 0===b&&(b=1);a=new C;a.setAttribute("position",new y([-b,b,0,b,b,0,b,-b,0,-b,-b,0,-b,b,0],3));b=new la({fog:!1,toneMapped:!1});this.lightPlane=new Ka(a,b);this.add(this.lightPlane);a=new C;a.setAttribute("position",new y([0,0,0,0,0,1],3));this.targetLine=new Ka(a,b);this.add(this.targetLine);this.update()}function se(a){function b(a,b,d){c(a,d);c(b,d)}function c(a,b){f.push(0,0,0);g.push(b.r,b.g,b.b);void 0===h[a]&&(h[a]=[]);h[a].push(f.length/3-1)}var d=new C,e=new la({color:16777215,vertexColors:!0,
 toneMapped:!1}),f=[],g=[],h={},l=new A(16755200),m=new A(16711680),k=new A(43775),p=new A(16777215),n=new A(3355443);b("n1","n2",l);b("n2","n4",l);b("n4","n3",l);b("n3","n1",l);b("f1","f2",l);b("f2","f4",l);b("f4","f3",l);b("f3","f1",l);b("n1","f1",l);b("n2","f2",l);b("n3","f3",l);b("n4","f4",l);b("p","n1",m);b("p","n2",m);b("p","n3",m);b("p","n4",m);b("u1","u2",k);b("u2","u3",k);b("u3","u1",k);b("c","t",p);b("p","c",n);b("cn1","cn2",n);b("cn3","cn4",n);b("cf1","cf2",n);b("cf3","cf4",n);d.setAttribute("position",
 new y(f,3));d.setAttribute("color",new y(g,3));ma.call(this,d,e);this.camera=a;this.camera.updateProjectionMatrix&&this.camera.updateProjectionMatrix();this.matrix=a.matrixWorld;this.matrixAutoUpdate=!1;this.pointMap=h;this.update()}function na(a,b,c,d,e,f,g){yf.set(e,f,g).unproject(d);a=b[a];if(void 0!==a)for(c=c.getAttribute("position"),b=0,d=a.length;b<d;b++)c.setXYZ(a[b],yf.x,yf.y,yf.z)}function wb(a,b){this.object=a;void 0===b&&(b=16776960);a=new Uint16Array([0,1,1,2,2,3,3,0,4,5,5,6,6,7,7,4,
-0,4,1,5,2,6,3,7]);var c=new Float32Array(24),d=new C;d.setIndex(new M(a,1));d.setAttribute("position",new M(c,3));ma.call(this,d,new la({color:b,toneMapped:!1}));this.matrixAutoUpdate=!1;this.update()}function ue(a,b){this.type="Box3Helper";this.box=a;b=b||16776960;a=new Uint16Array([0,1,1,2,2,3,3,0,4,5,5,6,6,7,7,4,0,4,1,5,2,6,3,7]);var c=new C;c.setIndex(new M(a,1));c.setAttribute("position",new y([1,1,1,-1,1,1,-1,-1,1,1,-1,1,1,1,-1,-1,1,-1,-1,-1,-1,1,-1,-1],3));ma.call(this,c,new la({color:b,toneMapped:!1}));
-this.geometry.computeBoundingSphere()}function ve(a,b,c){this.type="PlaneHelper";this.plane=a;this.size=void 0===b?1:b;a=void 0!==c?c:16776960;b=new C;b.setAttribute("position",new y([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,0,1,0,0,0],3));b.computeBoundingSphere();Ka.call(this,b,new la({color:a,toneMapped:!1}));b=new C;b.setAttribute("position",new y([1,1,1,-1,1,1,-1,-1,1,1,1,1,-1,-1,1,1,-1,1],3));b.computeBoundingSphere();this.add(new S(b,new Oa({color:a,opacity:.2,transparent:!0,
+0,4,1,5,2,6,3,7]);var c=new Float32Array(24),d=new C;d.setIndex(new M(a,1));d.setAttribute("position",new M(c,3));ma.call(this,d,new la({color:b,toneMapped:!1}));this.matrixAutoUpdate=!1;this.update()}function te(a,b){this.type="Box3Helper";this.box=a;b=b||16776960;a=new Uint16Array([0,1,1,2,2,3,3,0,4,5,5,6,6,7,7,4,0,4,1,5,2,6,3,7]);var c=new C;c.setIndex(new M(a,1));c.setAttribute("position",new y([1,1,1,-1,1,1,-1,-1,1,1,-1,1,1,1,-1,-1,1,-1,-1,-1,-1,1,-1,-1],3));ma.call(this,c,new la({color:b,toneMapped:!1}));
+this.geometry.computeBoundingSphere()}function ue(a,b,c){this.type="PlaneHelper";this.plane=a;this.size=void 0===b?1:b;a=void 0!==c?c:16776960;b=new C;b.setAttribute("position",new y([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,0,1,0,0,0],3));b.computeBoundingSphere();Ka.call(this,b,new la({color:a,toneMapped:!1}));b=new C;b.setAttribute("position",new y([1,1,1,-1,1,1,-1,-1,1,1,1,1,-1,-1,1,1,-1,1],3));b.computeBoundingSphere();this.add(new S(b,new Oa({color:a,opacity:.2,transparent:!0,
 depthWrite:!1,toneMapped:!1})))}function xb(a,b,c,d,e,f){F.call(this);void 0===a&&(a=new n(0,0,1));void 0===b&&(b=new n(0,0,0));void 0===c&&(c=1);void 0===d&&(d=16776960);void 0===e&&(e=.2*c);void 0===f&&(f=.2*e);void 0===zf&&(zf=new C,zf.setAttribute("position",new y([0,0,0,0,1,0],3)),Sg=new tb(0,.5,1,5,1),Sg.translate(0,-.5,0));this.position.copy(b);this.line=new Ka(zf,new la({color:d,toneMapped:!1}));this.line.matrixAutoUpdate=!1;this.add(this.line);this.cone=new S(Sg,new Oa({color:d,toneMapped:!1}));
-this.cone.matrixAutoUpdate=!1;this.add(this.cone);this.setDirection(a);this.setLength(c,e,f)}function we(a){a=a||1;var b=[0,0,0,a,0,0,0,0,0,0,a,0,0,0,0,0,0,a];a=new C;a.setAttribute("position",new y(b,3));a.setAttribute("color",new y([1,0,0,1,.6,0,0,1,0,.6,1,0,0,0,1,0,.6,1],3));b=new la({vertexColors:!0,toneMapped:!1});ma.call(this,a,b)}function Tg(a){T=a;Ug(Af)}function ui(a){var b={magFilter:1003,minFilter:1003,generateMipmaps:!1,type:a?a.type:1009,format:a?a.format:1023,encoding:a?a.encoding:3002,
-depthBuffer:!1,stencilBuffer:!1},c=vi(b);c.depthBuffer=a?!1:!0;Bf=vi(b);return c}function wi(a){Bf.dispose();T.setRenderTarget(Vg);a.scissorTest=!1;a.setSize(a.width,a.height)}function Ug(a){var b=new ob;b.add(new S(xe[0],a));T.compile(b,Wg)}function vi(a){a=new Ha(3*kb,3*kb,a);a.texture.mapping=306;a.texture.name="PMREM.cubeUv";a.scissorTest=!0;return a}function Xg(a,b,c,d,e){a.viewport.set(b,c,d,e);a.scissor.set(b,c,d,e)}function xi(a){var b=T.autoClear;T.autoClear=!1;for(var c=1;c<yi;c++)zi(a,
-c-1,c,Math.sqrt(Cf[c]*Cf[c]-Cf[c-1]*Cf[c-1]),Ai[(c-1)%Ai.length]);T.autoClear=b}function zi(a,b,c,d,e){Bi(a,Bf,b,c,d,"latitudinal",e);Bi(Bf,a,c,c,d,"longitudinal",e)}function Bi(a,b,c,d,e,f,g){"latitudinal"!==f&&"longitudinal"!==f&&console.error("blur direction must be either latitudinal or longitudinal!");var h=new ob;h.add(new S(xe[d],Af));var l=Af.uniforms,m=Ci[c]-1;m=isFinite(e)?Math.PI/(2*m):2*Math.PI/39;var k=e/m,p=isFinite(e)?1+Math.floor(3*k):20;20<p&&console.warn("sigmaRadians, "+e+", is too large and will clip, as it requested "+
+this.cone.matrixAutoUpdate=!1;this.add(this.cone);this.setDirection(a);this.setLength(c,e,f)}function ve(a){a=a||1;var b=[0,0,0,a,0,0,0,0,0,0,a,0,0,0,0,0,0,a];a=new C;a.setAttribute("position",new y(b,3));a.setAttribute("color",new y([1,0,0,1,.6,0,0,1,0,.6,1,0,0,0,1,0,.6,1],3));b=new la({vertexColors:!0,toneMapped:!1});ma.call(this,a,b)}function Tg(a){T=a;Ug(Af)}function ui(a){var b={magFilter:1003,minFilter:1003,generateMipmaps:!1,type:a?a.type:1009,format:a?a.format:1023,encoding:a?a.encoding:3002,
+depthBuffer:!1,stencilBuffer:!1},c=vi(b);c.depthBuffer=a?!1:!0;Bf=vi(b);return c}function wi(a){Bf.dispose();T.setRenderTarget(Vg);a.scissorTest=!1;a.setSize(a.width,a.height)}function Ug(a){var b=new ob;b.add(new S(we[0],a));T.compile(b,Wg)}function vi(a){a=new Ha(3*kb,3*kb,a);a.texture.mapping=306;a.texture.name="PMREM.cubeUv";a.scissorTest=!0;return a}function Xg(a,b,c,d,e){a.viewport.set(b,c,d,e);a.scissor.set(b,c,d,e)}function xi(a){var b=T.autoClear;T.autoClear=!1;for(var c=1;c<yi;c++)zi(a,
+c-1,c,Math.sqrt(Cf[c]*Cf[c]-Cf[c-1]*Cf[c-1]),Ai[(c-1)%Ai.length]);T.autoClear=b}function zi(a,b,c,d,e){Bi(a,Bf,b,c,d,"latitudinal",e);Bi(Bf,a,c,c,d,"longitudinal",e)}function Bi(a,b,c,d,e,f,g){"latitudinal"!==f&&"longitudinal"!==f&&console.error("blur direction must be either latitudinal or longitudinal!");var h=new ob;h.add(new S(we[d],Af));var l=Af.uniforms,m=Ci[c]-1;m=isFinite(e)?Math.PI/(2*m):2*Math.PI/39;var k=e/m,p=isFinite(e)?1+Math.floor(3*k):20;20<p&&console.warn("sigmaRadians, "+e+", is too large and will clip, as it requested "+
 p+" samples when the maximum is set to 20");e=[];for(var n=0,r=0;20>r;++r){var q=r/k;q=Math.exp(-q*q/2);e.push(q);0==r?n+=q:r<p&&(n+=2*q)}for(r=0;r<e.length;r++)e[r]/=n;l.envMap.value=a.texture;l.samples.value=p;l.weights.value=e;l.latitudinal.value="latitudinal"===f;g&&(l.poleAxis.value=g);l.dTheta.value=m;l.mipInt.value=8-c;l.inputEncoding.value=lb[a.texture.encoding];l.outputEncoding.value=lb[a.texture.encoding];a=Ci[d];q=3*Math.max(0,kb-2*a);Xg(b,q,(0===d?0:2*kb)+2*a*(4<d?d-8+4:0),3*a,2*a);T.setRenderTarget(b);
 T.render(h,Wg)}function Di(){var a=new t(1,1);a=new ub({uniforms:{envMap:{value:null},texelSize:{value:a},inputEncoding:{value:lb[3E3]},outputEncoding:{value:lb[3E3]}},vertexShader:Yg(),fragmentShader:"\nprecision mediump float;\nprecision mediump int;\nvarying vec3 vOutputDirection;\nuniform sampler2D envMap;\nuniform vec2 texelSize;\n\n"+Zg()+"\n\n#define RECIPROCAL_PI 0.31830988618\n#define RECIPROCAL_PI2 0.15915494\n\nvoid main() {\n\tgl_FragColor = vec4(0.0);\n\tvec3 outputDirection = normalize(vOutputDirection);\n\tvec2 uv;\n\tuv.y = asin(clamp(outputDirection.y, -1.0, 1.0)) * RECIPROCAL_PI + 0.5;\n\tuv.x = atan(outputDirection.z, outputDirection.x) * RECIPROCAL_PI2 + 0.5;\n\tvec2 f = fract(uv / texelSize - 0.5);\n\tuv -= f * texelSize;\n\tvec3 tl = envMapTexelToLinear(texture2D(envMap, uv)).rgb;\n\tuv.x += texelSize.x;\n\tvec3 tr = envMapTexelToLinear(texture2D(envMap, uv)).rgb;\n\tuv.y += texelSize.y;\n\tvec3 br = envMapTexelToLinear(texture2D(envMap, uv)).rgb;\n\tuv.x -= texelSize.x;\n\tvec3 bl = envMapTexelToLinear(texture2D(envMap, uv)).rgb;\n\tvec3 tm = mix(tl, tr, f.x);\n\tvec3 bm = mix(bl, br, f.x);\n\tgl_FragColor.rgb = mix(tm, bm, f.y);\n\tgl_FragColor = linearToOutputTexel(gl_FragColor);\n}\n\t\t",
 blending:0,depthTest:!1,depthWrite:!1});a.type="EquirectangularToCubeUV";return a}function Ei(){var a=new ub({uniforms:{envMap:{value:null},inputEncoding:{value:lb[3E3]},outputEncoding:{value:lb[3E3]}},vertexShader:Yg(),fragmentShader:"\nprecision mediump float;\nprecision mediump int;\nvarying vec3 vOutputDirection;\nuniform samplerCube envMap;\n\n"+Zg()+"\n\nvoid main() {\n\tgl_FragColor = vec4(0.0);\n\tgl_FragColor.rgb = envMapTexelToLinear(textureCube(envMap, vec3( - vOutputDirection.x, vOutputDirection.yz ))).rgb;\n\tgl_FragColor = linearToOutputTexel(gl_FragColor);\n}\n\t\t",
@@ -343,7 +343,7 @@ function Zg(){return"\nuniform int inputEncoding;\nuniform int outputEncoding;\n
 function Fi(a){console.warn("THREE.ClosedSplineCurve3 has been deprecated. Use THREE.CatmullRomCurve3 instead.");pa.call(this,a);this.type="catmullrom";this.closed=!0}function Gi(a){console.warn("THREE.SplineCurve3 has been deprecated. Use THREE.CatmullRomCurve3 instead.");pa.call(this,a);this.type="catmullrom"}function $g(a){console.warn("THREE.Spline has been removed. Use THREE.CatmullRomCurve3 instead.");pa.call(this,a);this.type="catmullrom"}void 0===Number.EPSILON&&(Number.EPSILON=Math.pow(2,
 -52));void 0===Number.isInteger&&(Number.isInteger=function(a){return"number"===typeof a&&isFinite(a)&&Math.floor(a)===a});void 0===Math.sign&&(Math.sign=function(a){return 0>a?-1:0<a?1:+a});!1==="name"in Function.prototype&&Object.defineProperty(Function.prototype,"name",{get:function(){return this.toString().match(/^\s*function\s*([^\(\s]*)/)[1]}});void 0===Object.assign&&(Object.assign=function(a){if(void 0===a||null===a)throw new TypeError("Cannot convert undefined or null to object");for(var b=
 Object(a),c=1;c<arguments.length;c++){var d=arguments[c];if(void 0!==d&&null!==d)for(var e in d)Object.prototype.hasOwnProperty.call(d,e)&&(b[e]=d[e])}return b});Object.assign(Ea.prototype,{addEventListener:function(a,b){void 0===this._listeners&&(this._listeners={});var c=this._listeners;void 0===c[a]&&(c[a]=[]);-1===c[a].indexOf(b)&&c[a].push(b)},hasEventListener:function(a,b){if(void 0===this._listeners)return!1;var c=this._listeners;return void 0!==c[a]&&-1!==c[a].indexOf(b)},removeEventListener:function(a,
-b){void 0!==this._listeners&&(a=this._listeners[a],void 0!==a&&(b=a.indexOf(b),-1!==b&&a.splice(b,1)))},dispatchEvent:function(a){if(void 0!==this._listeners){var b=this._listeners[a.type];if(void 0!==b){a.target=this;b=b.slice(0);for(var c=0,d=b.length;c<d;c++)b[c].call(this,a)}}}});for(var ta=[],ye=0;256>ye;ye++)ta[ye]=(16>ye?"0":"")+ye.toString(16);var L={DEG2RAD:Math.PI/180,RAD2DEG:180/Math.PI,generateUUID:function(){var a=4294967295*Math.random()|0,b=4294967295*Math.random()|0,c=4294967295*Math.random()|
+b){void 0!==this._listeners&&(a=this._listeners[a],void 0!==a&&(b=a.indexOf(b),-1!==b&&a.splice(b,1)))},dispatchEvent:function(a){if(void 0!==this._listeners){var b=this._listeners[a.type];if(void 0!==b){a.target=this;b=b.slice(0);for(var c=0,d=b.length;c<d;c++)b[c].call(this,a)}}}});for(var ta=[],xe=0;256>xe;xe++)ta[xe]=(16>xe?"0":"")+xe.toString(16);var L={DEG2RAD:Math.PI/180,RAD2DEG:180/Math.PI,generateUUID:function(){var a=4294967295*Math.random()|0,b=4294967295*Math.random()|0,c=4294967295*Math.random()|
 0,d=4294967295*Math.random()|0;return(ta[a&255]+ta[a>>8&255]+ta[a>>16&255]+ta[a>>24&255]+"-"+ta[b&255]+ta[b>>8&255]+"-"+ta[b>>16&15|64]+ta[b>>24&255]+"-"+ta[c&63|128]+ta[c>>8&255]+"-"+ta[c>>16&255]+ta[c>>24&255]+ta[d&255]+ta[d>>8&255]+ta[d>>16&255]+ta[d>>24&255]).toUpperCase()},clamp:function(a,b,c){return Math.max(b,Math.min(c,a))},euclideanModulo:function(a,b){return(a%b+b)%b},mapLinear:function(a,b,c,d,e){return d+(a-b)*(e-d)/(c-b)},lerp:function(a,b,c){return(1-c)*a+c*b},smoothstep:function(a,
 b,c){if(a<=b)return 0;if(a>=c)return 1;a=(a-b)/(c-b);return a*a*(3-2*a)},smootherstep:function(a,b,c){if(a<=b)return 0;if(a>=c)return 1;a=(a-b)/(c-b);return a*a*a*(a*(6*a-15)+10)},randInt:function(a,b){return a+Math.floor(Math.random()*(b-a+1))},randFloat:function(a,b){return a+Math.random()*(b-a)},randFloatSpread:function(a){return a*(.5-Math.random())},degToRad:function(a){return a*L.DEG2RAD},radToDeg:function(a){return a*L.RAD2DEG},isPowerOfTwo:function(a){return 0===(a&a-1)&&0!==a},ceilPowerOfTwo:function(a){return Math.pow(2,
 Math.ceil(Math.log(a)/Math.LN2))},floorPowerOfTwo:function(a){return Math.pow(2,Math.floor(Math.log(a)/Math.LN2))},setQuaternionFromProperEuler:function(a,b,c,d,e){var f=Math.cos,g=Math.sin,h=f(c/2);c=g(c/2);var l=f((b+d)/2),m=g((b+d)/2),k=f((b-d)/2),p=g((b-d)/2);f=f((d-b)/2);b=g((d-b)/2);"XYX"===e?a.set(h*m,c*k,c*p,h*l):"YZY"===e?a.set(c*p,h*m,c*k,h*l):"ZXZ"===e?a.set(c*k,c*p,h*m,h*l):"XZX"===e?a.set(h*m,c*b,c*f,h*l):"YXY"===e?a.set(c*f,h*m,c*b,h*l):"ZYZ"===e?a.set(c*b,c*f,h*m,h*l):console.warn("THREE.MathUtils: .setQuaternionFromProperEuler() encountered an unknown order.")}};
@@ -430,15 +430,15 @@ a._x;this._y=a._y;this._z=a._z;this._order=a._order;this._onChangeCallback();ret
 (this._y=Math.atan2(-k,a),this._z=0)):"ZXY"===b?(this._x=Math.asin(d(p,-1,1)),.9999999>Math.abs(p)?(this._y=Math.atan2(-k,e),this._z=Math.atan2(-f,l)):(this._y=0,this._z=Math.atan2(h,a))):"ZYX"===b?(this._y=Math.asin(-d(k,-1,1)),.9999999>Math.abs(k)?(this._x=Math.atan2(p,e),this._z=Math.atan2(h,a)):(this._x=0,this._z=Math.atan2(-f,l))):"YZX"===b?(this._z=Math.asin(d(h,-1,1)),.9999999>Math.abs(h)?(this._x=Math.atan2(-m,l),this._y=Math.atan2(-k,a)):(this._x=0,this._y=Math.atan2(g,e))):"XZY"===b?(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(-m,e),this._y=0)):console.warn("THREE.Euler: .setFromRotationMatrix() given unsupported order: "+b);this._order=b;!1!==c&&this._onChangeCallback();return this},setFromQuaternion:function(a,b,c){Ii.makeRotationFromQuaternion(a);return this.setFromRotationMatrix(Ii,b,c)},setFromVector3:function(a,b){return this.set(a.x,a.y,a.z,b||this._order)},reorder:function(a){Ji.setFromEuler(this);return this.setFromQuaternion(Ji,
 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 n(this._x,this._y,this._z)},_onChange:function(a){this._onChangeCallback=
-a;return this},_onChangeCallback:function(){}});Object.assign(Ie.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 qj=0,Ki=new n,pd=new Aa,yb=new P,Ef=new n,ze=new n,Tk=new n,Uk=new Aa,Li=new n(1,0,0),Mi=new n(0,1,0),Ni=new n(0,0,1),Vk={type:"added"},Wk={type:"removed"};
+a;return this},_onChangeCallback:function(){}});Object.assign(He.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 qj=0,Ki=new n,pd=new Aa,yb=new P,Ef=new n,ye=new n,Tk=new n,Uk=new Aa,Li=new n(1,0,0),Mi=new n(0,1,0),Ni=new n(0,0,1),Vk={type:"added"},Wk={type:"removed"};
 F.DefaultUp=new n(0,1,0);F.DefaultMatrixAutoUpdate=!0;F.prototype=Object.assign(Object.create(Ea.prototype),{constructor:F,isObject3D:!0,onBeforeRender:function(){},onAfterRender:function(){},applyMatrix4:function(a){this.matrixAutoUpdate&&this.updateMatrix();this.matrix.premultiply(a);this.matrix.decompose(this.position,this.quaternion,this.scale)},applyQuaternion:function(a){this.quaternion.premultiply(a);return this},setRotationFromAxisAngle:function(a,b){this.quaternion.setFromAxisAngle(a,b)},
 setRotationFromEuler:function(a){this.quaternion.setFromEuler(a,!0)},setRotationFromMatrix:function(a){this.quaternion.setFromRotationMatrix(a)},setRotationFromQuaternion:function(a){this.quaternion.copy(a)},rotateOnAxis:function(a,b){pd.setFromAxisAngle(a,b);this.quaternion.multiply(pd);return this},rotateOnWorldAxis:function(a,b){pd.setFromAxisAngle(a,b);this.quaternion.premultiply(pd);return this},rotateX:function(a){return this.rotateOnAxis(Li,a)},rotateY:function(a){return this.rotateOnAxis(Mi,
 a)},rotateZ:function(a){return this.rotateOnAxis(Ni,a)},translateOnAxis:function(a,b){Ki.copy(a).applyQuaternion(this.quaternion);this.position.add(Ki.multiplyScalar(b));return this},translateX:function(a){return this.translateOnAxis(Li,a)},translateY:function(a){return this.translateOnAxis(Mi,a)},translateZ:function(a){return this.translateOnAxis(Ni,a)},localToWorld:function(a){return a.applyMatrix4(this.matrixWorld)},worldToLocal:function(a){return a.applyMatrix4(yb.getInverse(this.matrixWorld))},
-lookAt:function(a,b,c){a.isVector3?Ef.copy(a):Ef.set(a,b,c);a=this.parent;this.updateWorldMatrix(!0,!1);ze.setFromMatrixPosition(this.matrixWorld);this.isCamera||this.isLight?yb.lookAt(ze,Ef,this.up):yb.lookAt(Ef,ze,this.up);this.quaternion.setFromRotationMatrix(yb);a&&(yb.extractRotation(a.matrixWorld),pd.setFromRotationMatrix(yb),this.quaternion.premultiply(pd.inverse()))},add:function(a){if(1<arguments.length){for(var b=0;b<arguments.length;b++)this.add(arguments[b]);return this}if(a===this)return console.error("THREE.Object3D.add: object can't be added as a child of itself.",
+lookAt:function(a,b,c){a.isVector3?Ef.copy(a):Ef.set(a,b,c);a=this.parent;this.updateWorldMatrix(!0,!1);ye.setFromMatrixPosition(this.matrixWorld);this.isCamera||this.isLight?yb.lookAt(ye,Ef,this.up):yb.lookAt(Ef,ye,this.up);this.quaternion.setFromRotationMatrix(yb);a&&(yb.extractRotation(a.matrixWorld),pd.setFromRotationMatrix(yb),this.quaternion.premultiply(pd.inverse()))},add:function(a){if(1<arguments.length){for(var b=0;b<arguments.length;b++)this.add(arguments[b]);return this}if(a===this)return console.error("THREE.Object3D.add: object can't be added as a child of itself.",
 a),this;a&&a.isObject3D?(null!==a.parent&&a.parent.remove(a),a.parent=this,this.children.push(a),a.dispatchEvent(Vk)):console.error("THREE.Object3D.add: object not an instance of THREE.Object3D.",a);return this},remove:function(a){if(1<arguments.length){for(var b=0;b<arguments.length;b++)this.remove(arguments[b]);return this}b=this.children.indexOf(a);-1!==b&&(a.parent=null,this.children.splice(b,1),a.dispatchEvent(Wk));return this},attach:function(a){this.updateWorldMatrix(!0,!1);yb.getInverse(this.matrixWorld);
 null!==a.parent&&(a.parent.updateWorldMatrix(!0,!1),yb.multiply(a.parent.matrixWorld));a.applyMatrix4(yb);a.updateWorldMatrix(!1,!1);this.add(a);return this},getObjectById:function(a){return this.getObjectByProperty("id",a)},getObjectByName:function(a){return this.getObjectByProperty("name",a)},getObjectByProperty:function(a,b){if(this[a]===b)return this;for(var c=0,d=this.children.length;c<d;c++){var e=this.children[c].getObjectByProperty(a,b);if(void 0!==e)return e}},getWorldPosition:function(a){void 0===
-a&&(console.warn("THREE.Object3D: .getWorldPosition() target is now required"),a=new n);this.updateMatrixWorld(!0);return a.setFromMatrixPosition(this.matrixWorld)},getWorldQuaternion:function(a){void 0===a&&(console.warn("THREE.Object3D: .getWorldQuaternion() target is now required"),a=new Aa);this.updateMatrixWorld(!0);this.matrixWorld.decompose(ze,a,Tk);return a},getWorldScale:function(a){void 0===a&&(console.warn("THREE.Object3D: .getWorldScale() target is now required"),a=new n);this.updateMatrixWorld(!0);
-this.matrixWorld.decompose(ze,Uk,a);return a},getWorldDirection:function(a){void 0===a&&(console.warn("THREE.Object3D: .getWorldDirection() target is now required"),a=new n);this.updateMatrixWorld(!0);var b=this.matrixWorld.elements;return a.set(b[8],b[9],b[10]).normalize()},raycast:function(){},traverse:function(a){a(this);for(var b=this.children,c=0,d=b.length;c<d;c++)b[c].traverse(a)},traverseVisible:function(a){if(!1!==this.visible){a(this);for(var b=this.children,c=0,d=b.length;c<d;c++)b[c].traverseVisible(a)}},
+a&&(console.warn("THREE.Object3D: .getWorldPosition() target is now required"),a=new n);this.updateMatrixWorld(!0);return a.setFromMatrixPosition(this.matrixWorld)},getWorldQuaternion:function(a){void 0===a&&(console.warn("THREE.Object3D: .getWorldQuaternion() target is now required"),a=new Aa);this.updateMatrixWorld(!0);this.matrixWorld.decompose(ye,a,Tk);return a},getWorldScale:function(a){void 0===a&&(console.warn("THREE.Object3D: .getWorldScale() target is now required"),a=new n);this.updateMatrixWorld(!0);
+this.matrixWorld.decompose(ye,Uk,a);return a},getWorldDirection:function(a){void 0===a&&(console.warn("THREE.Object3D: .getWorldDirection() target is now required"),a=new n);this.updateMatrixWorld(!0);var b=this.matrixWorld.elements;return a.set(b[8],b[9],b[10]).normalize()},raycast:function(){},traverse:function(a){a(this);for(var b=this.children,c=0,d=b.length;c<d;c++)b[c].traverse(a)},traverseVisible:function(a){if(!1!==this.visible){a(this);for(var b=this.children,c=0,d=b.length;c<d;c++)b[c].traverseVisible(a)}},
 traverseAncestors:function(a){var b=this.parent;null!==b&&(a(b),b.traverseAncestors(a))},updateMatrix:function(){this.matrix.compose(this.position,this.quaternion,this.scale);this.matrixWorldNeedsUpdate=!0},updateMatrixWorld:function(a){this.matrixAutoUpdate&&this.updateMatrix();if(this.matrixWorldNeedsUpdate||a)null===this.parent?this.matrixWorld.copy(this.matrix):this.matrixWorld.multiplyMatrices(this.parent.matrixWorld,this.matrix),this.matrixWorldNeedsUpdate=!1,a=!0;for(var b=this.children,c=
 0,d=b.length;c<d;c++)b[c].updateMatrixWorld(a)},updateWorldMatrix:function(a,b){var c=this.parent;!0===a&&null!==c&&c.updateWorldMatrix(!0,!1);this.matrixAutoUpdate&&this.updateMatrix();null===this.parent?this.matrixWorld.copy(this.matrix):this.matrixWorld.multiplyMatrices(this.parent.matrixWorld,this.matrix);if(!0===b)for(a=this.children,b=0,c=a.length;b<c;b++)a[b].updateWorldMatrix(!1,!0)},toJSON:function(a){function b(b,c){void 0===b[c.uuid]&&(b[c.uuid]=c.toJSON(a));return c.uuid}function c(a){var b=
 [],c;for(c in a){var d=a[c];delete d.metadata;b.push(d)}return b}var d=void 0===a||"string"===typeof a,e={};d&&(a={geometries:{},materials:{},textures:{},images:{},shapes:{}},e.metadata={version:4.5,type:"Object",generator:"Object3D.toJSON"});var f={};f.uuid=this.uuid;f.type=this.type;""!==this.name&&(f.name=this.name);!0===this.castShadow&&(f.castShadow=!0);!0===this.receiveShadow&&(f.receiveShadow=!0);!1===this.visible&&(f.visible=!1);!1===this.frustumCulled&&(f.frustumCulled=!1);0!==this.renderOrder&&
@@ -447,16 +447,16 @@ traverseAncestors:function(a){var b=this.parent;null!==b&&(a(b),b.traverseAncest
 0<h.length&&(e.materials=h);0<l.length&&(e.textures=l);0<m.length&&(e.images=m);0<g.length&&(e.shapes=g)}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}});ob.prototype=Object.assign(Object.create(F.prototype),{constructor:ob,isScene:!0,copy:function(a,b){F.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=F.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 zb=[new n,new n,new n,new n,new n,new n,new n,new n],Ae=new n,bh=new Sa,qd=new n,rd=new n,sd=new n,Nb=new n,Ob=new n,sc=new n,Be=new n,Ff=new n,Gf=new n,Ub=new n;Object.assign(Sa.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 m=a[h],k=a[h+1],p=a[h+2];m<b&&(b=
+return b},dispose:function(){this.dispatchEvent({type:"dispose"})}});var zb=[new n,new n,new n,new n,new n,new n,new n,new n],ze=new n,bh=new Sa,qd=new n,rd=new n,sd=new n,Nb=new n,Ob=new n,sc=new n,Ae=new n,Ff=new n,Gf=new n,Ub=new n;Object.assign(Sa.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 m=a[h],k=a[h+1],p=a[h+2];m<b&&(b=
 m);k<c&&(c=k);p<d&&(d=p);m>e&&(e=m);k>f&&(f=k);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 m=a.getX(h),k=a.getY(h),p=a.getZ(h);m<b&&(b=m);k<c&&(c=k);p<d&&(d=p);m>e&&(e=m);k>f&&(f=k);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=Ae.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=ze.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 n);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 n);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(),bh.copy(b.boundingBox),bh.applyMatrix4(a.matrixWorld),this.union(bh));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||
 a.z>this.max.z?!1:!0},containsBox:function(a){return this.min.x<=a.min.x&&a.max.x<=this.max.x&&this.min.y<=a.min.y&&a.max.y<=this.max.y&&this.min.z<=a.min.z&&a.max.z<=this.max.z},getParameter:function(a,b){void 0===b&&(console.warn("THREE.Box3: .getParameter() target is now required"),b=new n);return b.set((a.x-this.min.x)/(this.max.x-this.min.x),(a.y-this.min.y)/(this.max.y-this.min.y),(a.z-this.min.z)/(this.max.z-this.min.z))},intersectsBox:function(a){return a.max.x<this.min.x||a.min.x>this.max.x||
-a.max.y<this.min.y||a.min.y>this.max.y||a.max.z<this.min.z||a.min.z>this.max.z?!1:!0},intersectsSphere:function(a){this.clampPoint(a.center,Ae);return Ae.distanceToSquared(a.center)<=a.radius*a.radius},intersectsPlane:function(a){if(0<a.normal.x){var b=a.normal.x*this.min.x;var c=a.normal.x*this.max.x}else b=a.normal.x*this.max.x,c=a.normal.x*this.min.x;0<a.normal.y?(b+=a.normal.y*this.min.y,c+=a.normal.y*this.max.y):(b+=a.normal.y*this.max.y,c+=a.normal.y*this.min.y);0<a.normal.z?(b+=a.normal.z*
-this.min.z,c+=a.normal.z*this.max.z):(b+=a.normal.z*this.max.z,c+=a.normal.z*this.min.z);return b<=-a.constant&&c>=-a.constant},intersectsTriangle:function(a){if(this.isEmpty())return!1;this.getCenter(Be);Ff.subVectors(this.max,Be);qd.subVectors(a.a,Be);rd.subVectors(a.b,Be);sd.subVectors(a.c,Be);Nb.subVectors(rd,qd);Ob.subVectors(sd,rd);sc.subVectors(qd,sd);a=[0,-Nb.z,Nb.y,0,-Ob.z,Ob.y,0,-sc.z,sc.y,Nb.z,0,-Nb.x,Ob.z,0,-Ob.x,sc.z,0,-sc.x,-Nb.y,Nb.x,0,-Ob.y,Ob.x,0,-sc.y,sc.x,0];if(!$f(a,qd,rd,sd,Ff))return!1;
-a=[1,0,0,0,1,0,0,0,1];if(!$f(a,qd,rd,sd,Ff))return!1;Gf.crossVectors(Nb,Ob);a=[Gf.x,Gf.y,Gf.z];return $f(a,qd,rd,sd,Ff)},clampPoint:function(a,b){void 0===b&&(console.warn("THREE.Box3: .clampPoint() target is now required"),b=new n);return b.copy(a).clamp(this.min,this.max)},distanceToPoint:function(a){return Ae.copy(a).clamp(this.min,this.max).sub(a).length()},getBoundingSphere:function(a){void 0===a&&console.error("THREE.Box3: .getBoundingSphere() target is now required");this.getCenter(a.center);
-a.radius=.5*this.getSize(Ae).length();return a},intersect:function(a){this.min.max(a.min);this.max.min(a.max);this.isEmpty()&&this.makeEmpty();return this},union:function(a){this.min.min(a.min);this.max.max(a.max);return this},applyMatrix4:function(a){if(this.isEmpty())return this;zb[0].set(this.min.x,this.min.y,this.min.z).applyMatrix4(a);zb[1].set(this.min.x,this.min.y,this.max.z).applyMatrix4(a);zb[2].set(this.min.x,this.max.y,this.min.z).applyMatrix4(a);zb[3].set(this.min.x,this.max.y,this.max.z).applyMatrix4(a);
+a.max.y<this.min.y||a.min.y>this.max.y||a.max.z<this.min.z||a.min.z>this.max.z?!1:!0},intersectsSphere:function(a){this.clampPoint(a.center,ze);return ze.distanceToSquared(a.center)<=a.radius*a.radius},intersectsPlane:function(a){if(0<a.normal.x){var b=a.normal.x*this.min.x;var c=a.normal.x*this.max.x}else b=a.normal.x*this.max.x,c=a.normal.x*this.min.x;0<a.normal.y?(b+=a.normal.y*this.min.y,c+=a.normal.y*this.max.y):(b+=a.normal.y*this.max.y,c+=a.normal.y*this.min.y);0<a.normal.z?(b+=a.normal.z*
+this.min.z,c+=a.normal.z*this.max.z):(b+=a.normal.z*this.max.z,c+=a.normal.z*this.min.z);return b<=-a.constant&&c>=-a.constant},intersectsTriangle:function(a){if(this.isEmpty())return!1;this.getCenter(Ae);Ff.subVectors(this.max,Ae);qd.subVectors(a.a,Ae);rd.subVectors(a.b,Ae);sd.subVectors(a.c,Ae);Nb.subVectors(rd,qd);Ob.subVectors(sd,rd);sc.subVectors(qd,sd);a=[0,-Nb.z,Nb.y,0,-Ob.z,Ob.y,0,-sc.z,sc.y,Nb.z,0,-Nb.x,Ob.z,0,-Ob.x,sc.z,0,-sc.x,-Nb.y,Nb.x,0,-Ob.y,Ob.x,0,-sc.y,sc.x,0];if(!$f(a,qd,rd,sd,Ff))return!1;
+a=[1,0,0,0,1,0,0,0,1];if(!$f(a,qd,rd,sd,Ff))return!1;Gf.crossVectors(Nb,Ob);a=[Gf.x,Gf.y,Gf.z];return $f(a,qd,rd,sd,Ff)},clampPoint:function(a,b){void 0===b&&(console.warn("THREE.Box3: .clampPoint() target is now required"),b=new n);return b.copy(a).clamp(this.min,this.max)},distanceToPoint:function(a){return ze.copy(a).clamp(this.min,this.max).sub(a).length()},getBoundingSphere:function(a){void 0===a&&console.error("THREE.Box3: .getBoundingSphere() target is now required");this.getCenter(a.center);
+a.radius=.5*this.getSize(ze).length();return a},intersect:function(a){this.min.max(a.min);this.max.min(a.max);this.isEmpty()&&this.makeEmpty();return this},union:function(a){this.min.min(a.min);this.max.max(a.max);return this},applyMatrix4:function(a){if(this.isEmpty())return this;zb[0].set(this.min.x,this.min.y,this.min.z).applyMatrix4(a);zb[1].set(this.min.x,this.min.y,this.max.z).applyMatrix4(a);zb[2].set(this.min.x,this.max.y,this.min.z).applyMatrix4(a);zb[3].set(this.min.x,this.max.y,this.max.z).applyMatrix4(a);
 zb[4].set(this.max.x,this.min.y,this.min.z).applyMatrix4(a);zb[5].set(this.max.x,this.min.y,this.max.z).applyMatrix4(a);zb[6].set(this.max.x,this.max.y,this.min.z).applyMatrix4(a);zb[7].set(this.max.x,this.max.y,this.max.z).applyMatrix4(a);this.setFromPoints(zb);return this},translate:function(a){this.min.add(a);this.max.add(a);return this},equals:function(a){return a.min.equals(this.min)&&a.max.equals(this.max)}});var Xk=new Sa;Object.assign(pb.prototype,{set:function(a,b){this.center.copy(a);this.radius=
 b;return this},setFromPoints:function(a,b){var c=this.center;void 0!==b?c.copy(b):Xk.setFromPoints(a).getCenter(c);for(var d=b=0,e=a.length;d<e;d++)b=Math.max(b,c.distanceToSquared(a[d]));this.radius=Math.sqrt(b);return this},clone:function(){return(new this.constructor).copy(this)},copy:function(a){this.center.copy(a.center);this.radius=a.radius;return this},empty:function(){return 0>=this.radius},containsPoint:function(a){return a.distanceToSquared(this.center)<=this.radius*this.radius},distanceToPoint:function(a){return a.distanceTo(this.center)-
 this.radius},intersectsSphere:function(a){var b=this.radius+a.radius;return a.center.distanceToSquared(this.center)<=b*b},intersectsBox:function(a){return a.intersectsSphere(this)},intersectsPlane:function(a){return Math.abs(a.distanceToPoint(this.center))<=this.radius},clampPoint:function(a,b){var c=this.center.distanceToSquared(a);void 0===b&&(console.warn("THREE.Sphere: .clampPoint() target is now required"),b=new n);b.copy(a);c>this.radius*this.radius&&(b.sub(this.center).normalize(),b.multiplyScalar(this.radius).add(this.center));
@@ -522,7 +522,7 @@ Gd.prototype=Object.create(M.prototype);Gd.prototype.constructor=Gd;Object.assig
 g.length;if(0<h){var l=[];for(var m=0;m<h;m++)l[m]={name:g[m].name,data:[]};this.morphTargets.position=l}var k=a.morphNormals,p=k.length;if(0<p){var n=[];for(m=0;m<p;m++)n[m]={name:k[m].name,data:[]};this.morphTargets.normal=n}var r=a.skinIndices,q=a.skinWeights,v=r.length===c.length,E=q.length===c.length;0<c.length&&0===b.length&&console.error("THREE.DirectGeometry: Faceless geometries are not supported.");for(m=0;m<b.length;m++){var w=b[m];this.vertices.push(c[w.a],c[w.b],c[w.c]);var z=w.vertexNormals;
 3===z.length?this.normals.push(z[0],z[1],z[2]):(z=w.normal,this.normals.push(z,z,z));z=w.vertexColors;3===z.length?this.colors.push(z[0],z[1],z[2]):(z=w.color,this.colors.push(z,z,z));!0===e&&(z=d[0][m],void 0!==z?this.uvs.push(z[0],z[1],z[2]):(console.warn("THREE.DirectGeometry.fromGeometry(): Undefined vertexUv ",m),this.uvs.push(new t,new t,new t)));!0===f&&(z=d[1][m],void 0!==z?this.uvs2.push(z[0],z[1],z[2]):(console.warn("THREE.DirectGeometry.fromGeometry(): Undefined vertexUv2 ",m),this.uvs2.push(new t,
 new t,new t)));for(z=0;z<h;z++){var y=g[z].vertices;l[z].data.push(y[w.a],y[w.b],y[w.c])}for(z=0;z<p;z++)y=k[z].vertexNormals[m],n[z].data.push(y.a,y.b,y.c);v&&this.skinIndices.push(r[w.a],r[w.b],r[w.c]);E&&this.skinWeights.push(q[w.a],q[w.b],q[w.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 sj=1,mb=new P,kh=new F,vd=new n,Na=new Sa,Ce=new Sa,ea=new n;C.prototype=Object.assign(Object.create(Ea.prototype),{constructor:C,isBufferGeometry:!0,getIndex:function(){return this.index},setIndex:function(a){Array.isArray(a)?this.index=new (65535<yh(a)?Xb:Wb)(a,1):this.index=a},getAttribute:function(a){return this.attributes[a]},setAttribute:function(a,b){this.attributes[a]=
+(this.boundingSphere=a.boundingSphere.clone());null!==a.boundingBox&&(this.boundingBox=a.boundingBox.clone());return this}});var sj=1,mb=new P,kh=new F,vd=new n,Na=new Sa,Be=new Sa,ea=new n;C.prototype=Object.assign(Object.create(Ea.prototype),{constructor:C,isBufferGeometry:!0,getIndex:function(){return this.index},setIndex:function(a){Array.isArray(a)?this.index=new (65535<yh(a)?Xb:Wb)(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 wa).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){mb.makeRotationX(a);this.applyMatrix4(mb);return this},rotateY:function(a){mb.makeRotationY(a);this.applyMatrix4(mb);return this},rotateZ:function(a){mb.makeRotationZ(a);this.applyMatrix4(mb);return this},translate:function(a,b,c){mb.makeTranslation(a,b,c);this.applyMatrix4(mb);
 return this},scale:function(a,b,c){mb.makeScale(a,b,c);this.applyMatrix4(mb);return this},lookAt:function(a){kh.lookAt(a);kh.updateMatrix();this.applyMatrix4(kh.matrix);return this},center:function(){this.computeBoundingBox();this.boundingBox.getCenter(vd).negate();this.translate(vd.x,vd.y,vd.z);return this},setFromObject:function(a){var b=a.geometry;if(a.isPoints||a.isLine){a=new y(3*b.vertices.length,3);var c=new y(3*b.colors.length,3);this.setAttribute("position",a.copyVector3sArray(b.vertices));
@@ -534,7 +534,7 @@ a.vertices.length);this.setAttribute("position",(new M(b,3)).copyVector3sArray(a
 a.uvs2.length),this.setAttribute("uv2",(new M(b,2)).copyVector2sArray(a.uvs2)));this.groups=a.groups;for(var c in a.morphTargets){b=[];for(var d=a.morphTargets[c],e=0,f=d.length;e<f;e++){var g=d[e],h=new y(3*g.data.length,3);h.name=g.name;b.push(h.copyVector3sArray(g.data))}this.morphAttributes[c]=b}0<a.skinIndices.length&&(c=new y(4*a.skinIndices.length,4),this.setAttribute("skinIndex",c.copyVector4sArray(a.skinIndices)));0<a.skinWeights.length&&(c=new y(4*a.skinWeights.length,4),this.setAttribute("skinWeight",
 c.copyVector4sArray(a.skinWeights)));null!==a.boundingSphere&&(this.boundingSphere=a.boundingSphere.clone());null!==a.boundingBox&&(this.boundingBox=a.boundingBox.clone());return this},computeBoundingBox:function(){null===this.boundingBox&&(this.boundingBox=new Sa);var a=this.attributes.position,b=this.morphAttributes.position;if(void 0!==a){if(this.boundingBox.setFromBufferAttribute(a),b){a=0;for(var c=b.length;a<c;a++)Na.setFromBufferAttribute(b[a]),this.morphTargetsRelative?(ea.addVectors(this.boundingBox.min,
 Na.min),this.boundingBox.expandByPoint(ea),ea.addVectors(this.boundingBox.max,Na.max),this.boundingBox.expandByPoint(ea)):(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 pb);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++){var f=b[d];Ce.setFromBufferAttribute(f);this.morphTargetsRelative?(ea.addVectors(Na.min,Ce.min),Na.expandByPoint(ea),ea.addVectors(Na.max,Ce.max),Na.expandByPoint(ea)):(Na.expandByPoint(Ce.min),Na.expandByPoint(Ce.max))}Na.getCenter(c);var g=0;d=0;for(e=a.count;d<e;d++)ea.fromBufferAttribute(a,
+this.boundingSphere&&(this.boundingSphere=new pb);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++){var f=b[d];Be.setFromBufferAttribute(f);this.morphTargetsRelative?(ea.addVectors(Na.min,Be.min),Na.expandByPoint(ea),ea.addVectors(Na.max,Be.max),Na.expandByPoint(ea)):(Na.expandByPoint(Be.min),Na.expandByPoint(Be.max))}Na.getCenter(c);var g=0;d=0;for(e=a.count;d<e;d++)ea.fromBufferAttribute(a,
 d),g=Math.max(g,c.distanceToSquared(ea));if(b)for(d=0,e=b.length;d<e;d++){f=b[d];for(var h=this.morphTargetsRelative,l=0,m=f.count;l<m;l++)ea.fromBufferAttribute(f,l),h&&(vd.fromBufferAttribute(a,l),ea.add(vd)),g=Math.max(g,c.distanceToSquared(ea))}this.boundingSphere.radius=Math.sqrt(g);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.attributes;if(b.position){var c=b.position.array;if(void 0===b.normal)this.setAttribute("normal",new M(new Float32Array(c.length),3));else for(var d=b.normal.array,e=0,f=d.length;e<f;e++)d[e]=0;d=b.normal.array;var g=new n,h=new n,l=new n,m=new n,k=new n;if(a){var p=a.array;e=0;for(f=a.count;e<f;e+=3){a=3*p[e+0];var x=3*p[e+1];var r=3*p[e+2];g.fromArray(c,a);h.fromArray(c,x);l.fromArray(c,r);m.subVectors(l,h);k.subVectors(g,h);m.cross(k);d[a]+=
 m.x;d[a+1]+=m.y;d[a+2]+=m.z;d[x]+=m.x;d[x+1]+=m.y;d[x+2]+=m.z;d[r]+=m.x;d[r+1]+=m.y;d[r+2]+=m.z}}else for(e=0,f=c.length;e<f;e+=9)g.fromArray(c,e),h.fromArray(c,e+3),l.fromArray(c,e+6),m.subVectors(l,h),k.subVectors(g,h),m.cross(k),d[e]=m.x,d[e+1]=m.y,d[e+2]=m.z,d[e+3]=m.x,d[e+4]=m.y,d[e+5]=m.z,d[e+6]=m.x,d[e+7]=m.y,d[e+8]=m.z;this.normalizeNormals();b.normal.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."));
@@ -544,11 +544,11 @@ h}b.morphTargetsRelative=this.morphTargetsRelative;c=this.groups;d=0;for(e=c.len
 b=this.index;null!==b&&(a.data.index={type:b.array.constructor.name,array:Array.prototype.slice.call(b.array)});var c=this.attributes;for(m in c){b=c[m];var d=b.toJSON();""!==b.name&&(d.name=b.name);a.data.attributes[m]=d}c={};var e=!1;for(m in this.morphAttributes){for(var f=this.morphAttributes[m],g=[],h=0,l=f.length;h<l;h++)b=f[h],d=b.toJSON(),""!==b.name&&(d.name=b.name),g.push(d);0<g.length&&(c[m]=g,e=!0)}e&&(a.data.morphAttributes=c,a.data.morphTargetsRelative=this.morphTargetsRelative);var m=
 this.groups;0<m.length&&(a.data.groups=JSON.parse(JSON.stringify(m)));m=this.boundingSphere;null!==m&&(a.data.boundingSphere={center:m.center.toArray(),radius:m.radius});return a},clone:function(){return(new C).copy(this)},copy:function(a){var b;this.index=null;this.attributes={};this.morphAttributes={};this.groups=[];this.boundingSphere=this.boundingBox=null;this.name=a.name;var c=a.index;null!==c&&this.setIndex(c.clone());c=a.attributes;for(g in c)this.setAttribute(g,c[g].clone());var d=a.morphAttributes;
 for(g in d){var e=[],f=d[g];c=0;for(b=f.length;c<b;c++)e.push(f[c].clone());this.morphAttributes[g]=e}this.morphTargetsRelative=a.morphTargetsRelative;var g=a.groups;c=0;for(b=g.length;c<b;c++)d=g[c],this.addGroup(d.start,d.count,d.materialIndex);g=a.boundingBox;null!==g&&(this.boundingBox=g.clone());g=a.boundingSphere;null!==g&&(this.boundingSphere=g.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 Qi=new P,tc=new Vb,lh=new pb,Yb=new n,Zb=new n,$b=new n,dg=new n,eg=new n,fg=new n,Le=new n,Me=new n,Ne=new n,Cc=new t,Dc=new t,Ec=new t,Hd=new n,Je=new n;S.prototype=Object.assign(Object.create(F.prototype),{constructor:S,isMesh:!0,copy:function(a){F.prototype.copy.call(this,a);void 0!==a.morphTargetInfluences&&(this.morphTargetInfluences=a.morphTargetInfluences.slice());void 0!==a.morphTargetDictionary&&(this.morphTargetDictionary=Object.assign({},a.morphTargetDictionary));return this},updateMorphTargets:function(){var a=
+var Qi=new P,tc=new Vb,lh=new pb,Yb=new n,Zb=new n,$b=new n,dg=new n,eg=new n,fg=new n,Ke=new n,Le=new n,Me=new n,Cc=new t,Dc=new t,Ec=new t,Hd=new n,Ie=new n;S.prototype=Object.assign(Object.create(F.prototype),{constructor:S,isMesh:!0,copy:function(a){F.prototype.copy.call(this,a);void 0!==a.morphTargetInfluences&&(this.morphTargetInfluences=a.morphTargetInfluences.slice());void 0!==a.morphTargetDictionary&&(this.morphTargetDictionary=Object.assign({},a.morphTargetDictionary));return this},updateMorphTargets:function(){var a=
 this.geometry;if(a.isBufferGeometry){a=a.morphAttributes;var b=Object.keys(a);if(0<b.length){var c=a[b[0]];if(void 0!==c)for(this.morphTargetInfluences=[],this.morphTargetDictionary={},a=0,b=c.length;a<b;a++){var d=c[a].name||String(a);this.morphTargetInfluences.push(0);this.morphTargetDictionary[d]=a}}}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(),lh.copy(c.boundingSphere),lh.applyMatrix4(e),!1!==a.ray.intersectsSphere(lh)&&(Qi.getInverse(e),tc.copy(a.ray).applyMatrix4(Qi),null===c.boundingBox||!1!==tc.intersectsBox(c.boundingBox))))if(c.isBufferGeometry){var f=c.index;e=c.attributes.position;var g=c.morphAttributes.position,h=c.morphTargetsRelative,l=c.attributes.uv,m=c.attributes.uv2,k=c.groups,p=c.drawRange,n,r;if(null!==f)if(Array.isArray(d)){var q=
-0;for(n=k.length;q<n;q++){var v=k[q];var E=d[v.materialIndex];var w=Math.max(v.start,p.start);for(r=c=Math.min(v.start+v.count,p.start+p.count);w<r;w+=3){c=f.getX(w);var z=f.getX(w+1);var y=f.getX(w+2);if(c=Ke(this,E,a,tc,e,g,h,l,m,c,z,y))c.faceIndex=Math.floor(w/3),c.face.materialIndex=v.materialIndex,b.push(c)}}}else for(w=Math.max(0,p.start),c=Math.min(f.count,p.start+p.count),q=w,n=c;q<n;q+=3){if(c=f.getX(q),z=f.getX(q+1),y=f.getX(q+2),c=Ke(this,d,a,tc,e,g,h,l,m,c,z,y))c.faceIndex=Math.floor(q/
-3),b.push(c)}else if(void 0!==e)if(Array.isArray(d))for(q=0,n=k.length;q<n;q++)for(v=k[q],E=d[v.materialIndex],w=Math.max(v.start,p.start),r=c=Math.min(v.start+v.count,p.start+p.count);w<r;w+=3){if(c=w,z=w+1,y=w+2,c=Ke(this,E,a,tc,e,g,h,l,m,c,z,y))c.faceIndex=Math.floor(w/3),c.face.materialIndex=v.materialIndex,b.push(c)}else for(w=Math.max(0,p.start),c=Math.min(e.count,p.start+p.count),q=w,n=c;q<n;q+=3)if(c=q,z=q+1,y=q+2,c=Ke(this,d,a,tc,e,g,h,l,m,c,z,y))c.faceIndex=Math.floor(q/3),b.push(c)}else if(c.isGeometry)for(e=
+0;for(n=k.length;q<n;q++){var v=k[q];var E=d[v.materialIndex];var w=Math.max(v.start,p.start);for(r=c=Math.min(v.start+v.count,p.start+p.count);w<r;w+=3){c=f.getX(w);var z=f.getX(w+1);var y=f.getX(w+2);if(c=Je(this,E,a,tc,e,g,h,l,m,c,z,y))c.faceIndex=Math.floor(w/3),c.face.materialIndex=v.materialIndex,b.push(c)}}}else for(w=Math.max(0,p.start),c=Math.min(f.count,p.start+p.count),q=w,n=c;q<n;q+=3){if(c=f.getX(q),z=f.getX(q+1),y=f.getX(q+2),c=Je(this,d,a,tc,e,g,h,l,m,c,z,y))c.faceIndex=Math.floor(q/
+3),b.push(c)}else if(void 0!==e)if(Array.isArray(d))for(q=0,n=k.length;q<n;q++)for(v=k[q],E=d[v.materialIndex],w=Math.max(v.start,p.start),r=c=Math.min(v.start+v.count,p.start+p.count);w<r;w+=3){if(c=w,z=w+1,y=w+2,c=Je(this,E,a,tc,e,g,h,l,m,c,z,y))c.faceIndex=Math.floor(w/3),c.face.materialIndex=v.materialIndex,b.push(c)}else for(w=Math.max(0,p.start),c=Math.min(e.count,p.start+p.count),q=w,n=c;q<n;q+=3)if(c=q,z=q+1,y=q+2,c=Je(this,d,a,tc,e,g,h,l,m,c,z,y))c.faceIndex=Math.floor(q/3),b.push(c)}else if(c.isGeometry)for(e=
 Array.isArray(d),g=c.vertices,h=c.faces,c=c.faceVertexUvs[0],0<c.length&&(f=c),p=0,q=h.length;p<q;p++)if(n=h[p],c=e?d[n.materialIndex]:d,void 0!==c&&(l=g[n.a],m=g[n.b],k=g[n.c],c=zh(this,c,a,tc,l,m,k,Hd)))f&&f[p]&&(v=f[p],Cc.copy(v[0]),Dc.copy(v[1]),Ec.copy(v[2]),c.uv=oa.getUV(Hd,l,m,k,Cc,Dc,Ec,new t)),c.face=n,c.faceIndex=p,b.push(c)},clone:function(){return(new this.constructor(this.geometry,this.material)).copy(this)}});var tj=0,nb=new P,mh=new F,Kf=new n;N.prototype=Object.assign(Object.create(Ea.prototype),
 {constructor:N,isGeometry:!0,applyMatrix4:function(a){for(var b=(new wa).getNormalMatrix(a),c=0,d=this.vertices.length;c<d;c++)this.vertices[c].applyMatrix4(a);c=0;for(d=this.faces.length;c<d;c++){a=this.faces[c];a.normal.applyMatrix3(b).normalize();for(var e=0,f=a.vertexNormals.length;e<f;e++)a.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){nb.makeRotationX(a);this.applyMatrix4(nb);return this},rotateY:function(a){nb.makeRotationY(a);this.applyMatrix4(nb);return this},rotateZ:function(a){nb.makeRotationZ(a);this.applyMatrix4(nb);return this},translate:function(a,b,c){nb.makeTranslation(a,b,c);this.applyMatrix4(nb);return this},scale:function(a,b,c){nb.makeScale(a,b,c);this.applyMatrix4(nb);return this},lookAt:function(a){mh.lookAt(a);mh.updateMatrix();this.applyMatrix4(mh.matrix);return this},fromBufferGeometry:function(a){function b(a,
@@ -676,46 +676,46 @@ qb;qb.prototype.isCubeTexture=!0;Object.defineProperty(qb.prototype,"images",{ge
 this.cache;a instanceof Float32Array&&b.length!==a.length&&(this.cache=new Float32Array(a.length));Ia(b,a)};Kh.prototype.setValue=function(a,b,c){for(var d=this.seq,e=0,f=d.length;e!==f;++e){var g=d[e];g.setValue(a,b[g.id],c)}};var gg=/([\w\d_]+)(\])?(\[|\.)?/g;Eb.prototype.setValue=function(a,b,c,d){b=this.map[b];void 0!==b&&b.setValue(a,c,d)};Eb.prototype.setOptional=function(a,b,c){b=b[c];void 0!==b&&this.setValue(a,c,b)};Eb.upload=function(a,b,c,d){for(var e=0,f=b.length;e!==f;++e){var g=b[e],
 h=c[g.id];!1!==h.needsUpdate&&g.setValue(a,h.value,d)}};Eb.seqWithValue=function(a,b){for(var c=[],d=0,e=a.length;d!==e;++d){var f=a[d];f.id in b&&c.push(f)}return c};var wk=0,ig=/^[ \t]*#include +<([\w\d./]+)>/gm,Th=/#pragma unroll_loop[\s]+?for \( int i = (\d+); i < (\d+); i \+\+ \) \{([\s\S]+?)(?=\})\}/g,Sh=/#pragma unroll_loop_start[\s]+?for \( int i = (\d+); i < (\d+); i \+\+ \) \{([\s\S]+?)(?=\})\}[\s]+?#pragma unroll_loop_end/g,Gk=0;Fb.prototype=Object.create(K.prototype);Fb.prototype.constructor=
 Fb;Fb.prototype.isMeshDepthMaterial=!0;Fb.prototype.copy=function(a){K.prototype.copy.call(this,a);this.depthPacking=a.depthPacking;this.skinning=a.skinning;this.morphTargets=a.morphTargets;this.map=a.map;this.alphaMap=a.alphaMap;this.displacementMap=a.displacementMap;this.displacementScale=a.displacementScale;this.displacementBias=a.displacementBias;this.wireframe=a.wireframe;this.wireframeLinewidth=a.wireframeLinewidth;return this};Gb.prototype=Object.create(K.prototype);Gb.prototype.constructor=
-Gb;Gb.prototype.isMeshDistanceMaterial=!0;Gb.prototype.copy=function(a){K.prototype.copy.call(this,a);this.referencePosition.copy(a.referencePosition);this.nearDistance=a.nearDistance;this.farDistance=a.farDistance;this.skinning=a.skinning;this.morphTargets=a.morphTargets;this.map=a.map;this.alphaMap=a.alphaMap;this.displacementMap=a.displacementMap;this.displacementScale=a.displacementScale;this.displacementBias=a.displacementBias;return this};Qe.prototype=Object.assign(Object.create(aa.prototype),
-{constructor:Qe,isArrayCamera:!0});Mc.prototype=Object.assign(Object.create(F.prototype),{constructor:Mc,isGroup:!0});Object.assign($h.prototype,Ea.prototype);Object.assign(Re.prototype,{isFogExp2:!0,clone:function(){return new Re(this.color,this.density)},toJSON:function(){return{type:"FogExp2",color:this.color.getHex(),density:this.density}}});Object.assign(Se.prototype,{isFog:!0,clone:function(){return new Se(this.color,this.near,this.far)},toJSON:function(){return{type:"Fog",color:this.color.getHex(),
+Gb;Gb.prototype.isMeshDistanceMaterial=!0;Gb.prototype.copy=function(a){K.prototype.copy.call(this,a);this.referencePosition.copy(a.referencePosition);this.nearDistance=a.nearDistance;this.farDistance=a.farDistance;this.skinning=a.skinning;this.morphTargets=a.morphTargets;this.map=a.map;this.alphaMap=a.alphaMap;this.displacementMap=a.displacementMap;this.displacementScale=a.displacementScale;this.displacementBias=a.displacementBias;return this};Pe.prototype=Object.assign(Object.create(aa.prototype),
+{constructor:Pe,isArrayCamera:!0});Mc.prototype=Object.assign(Object.create(F.prototype),{constructor:Mc,isGroup:!0});Object.assign($h.prototype,Ea.prototype);Object.assign(Qe.prototype,{isFogExp2:!0,clone:function(){return new Qe(this.color,this.density)},toJSON:function(){return{type:"FogExp2",color:this.color.getHex(),density:this.density}}});Object.assign(Re.prototype,{isFog:!0,clone:function(){return new Re(this.color,this.near,this.far)},toJSON:function(){return{type:"Fog",color:this.color.getHex(),
 near:this.near,far:this.far}}});Object.defineProperty(rb.prototype,"needsUpdate",{set:function(a){!0===a&&this.version++}});Object.assign(rb.prototype,{isInterleavedBuffer:!0,onUploadCallback:function(){},setUsage:function(a){this.usage=a;return this},copy:function(a){this.array=new a.array.constructor(a.array);this.count=a.count;this.stride=a.stride;this.usage=a.usage;return this},copyAt:function(a,b,c){a*=this.stride;c*=b.stride;for(var d=0,e=this.stride;d<e;d++)this.array[a+d]=b.array[c+d];return this},
 set:function(a,b){void 0===b&&(b=0);this.array.set(a,b);return this},clone:function(){return(new this.constructor).copy(this)},onUpload:function(a){this.onUploadCallback=a;return this}});var uc=new n;Object.defineProperties(Od.prototype,{count:{get:function(){return this.data.count}},array:{get:function(){return this.data.array}}});Object.assign(Od.prototype,{isInterleavedBufferAttribute:!0,applyMatrix4:function(a){for(var b=0,c=this.data.count;b<c;b++)uc.x=this.getX(b),uc.y=this.getY(b),uc.z=this.getZ(b),
 uc.applyMatrix4(a),this.setXYZ(b,uc.x,uc.y,uc.z);return this},setX:function(a,b){this.data.array[a*this.data.stride+this.offset]=b;return this},setY:function(a,b){this.data.array[a*this.data.stride+this.offset+1]=b;return this},setZ:function(a,b){this.data.array[a*this.data.stride+this.offset+2]=b;return this},setW:function(a,b){this.data.array[a*this.data.stride+this.offset+3]=b;return this},getX:function(a){return this.data.array[a*this.data.stride+this.offset]},getY:function(a){return this.data.array[a*
 this.data.stride+this.offset+1]},getZ:function(a){return this.data.array[a*this.data.stride+this.offset+2]},getW:function(a){return this.data.array[a*this.data.stride+this.offset+3]},setXY:function(a,b,c){a=a*this.data.stride+this.offset;this.data.array[a+0]=b;this.data.array[a+1]=c;return this},setXYZ:function(a,b,c,d){a=a*this.data.stride+this.offset;this.data.array[a+0]=b;this.data.array[a+1]=c;this.data.array[a+2]=d;return this},setXYZW:function(a,b,c,d,e){a=a*this.data.stride+this.offset;this.data.array[a+
-0]=b;this.data.array[a+1]=c;this.data.array[a+2]=d;this.data.array[a+3]=e;return this}});Ib.prototype=Object.create(K.prototype);Ib.prototype.constructor=Ib;Ib.prototype.isSpriteMaterial=!0;Ib.prototype.copy=function(a){K.prototype.copy.call(this,a);this.color.copy(a.color);this.map=a.map;this.alphaMap=a.alphaMap;this.rotation=a.rotation;this.sizeAttenuation=a.sizeAttenuation;return this};var Nc,De=new n,xd=new n,yd=new n,Oc=new t,Qd=new t,bi=new P,Mf=new n,Ee=new n,Nf=new n,Ri=new t,oh=new t,Si=
+0]=b;this.data.array[a+1]=c;this.data.array[a+2]=d;this.data.array[a+3]=e;return this}});Ib.prototype=Object.create(K.prototype);Ib.prototype.constructor=Ib;Ib.prototype.isSpriteMaterial=!0;Ib.prototype.copy=function(a){K.prototype.copy.call(this,a);this.color.copy(a.color);this.map=a.map;this.alphaMap=a.alphaMap;this.rotation=a.rotation;this.sizeAttenuation=a.sizeAttenuation;return this};var Nc,Ce=new n,xd=new n,yd=new n,Oc=new t,Qd=new t,bi=new P,Mf=new n,De=new n,Nf=new n,Ri=new t,oh=new t,Si=
 new t;Pd.prototype=Object.assign(Object.create(F.prototype),{constructor:Pd,isSprite:!0,raycast:function(a,b){null===a.camera&&console.error('THREE.Sprite: "Raycaster.camera" needs to be set in order to raycast against sprites.');xd.setFromMatrixScale(this.matrixWorld);bi.copy(a.camera.matrixWorld);this.modelViewMatrix.multiplyMatrices(a.camera.matrixWorldInverse,this.matrixWorld);yd.setFromMatrixPosition(this.modelViewMatrix);a.camera.isPerspectiveCamera&&!1===this.material.sizeAttenuation&&xd.multiplyScalar(-yd.z);
-var c=this.material.rotation;if(0!==c){var d=Math.cos(c);var e=Math.sin(c)}c=this.center;Te(Mf.set(-.5,-.5,0),yd,c,xd,e,d);Te(Ee.set(.5,-.5,0),yd,c,xd,e,d);Te(Nf.set(.5,.5,0),yd,c,xd,e,d);Ri.set(0,0);oh.set(1,0);Si.set(1,1);var f=a.ray.intersectTriangle(Mf,Ee,Nf,!1,De);if(null===f&&(Te(Ee.set(-.5,.5,0),yd,c,xd,e,d),oh.set(0,1),f=a.ray.intersectTriangle(Mf,Nf,Ee,!1,De),null===f))return;e=a.ray.origin.distanceTo(De);e<a.near||e>a.far||b.push({distance:e,point:De.clone(),uv:oa.getUV(De,Mf,Ee,Nf,Ri,oh,
+var c=this.material.rotation;if(0!==c){var d=Math.cos(c);var e=Math.sin(c)}c=this.center;Se(Mf.set(-.5,-.5,0),yd,c,xd,e,d);Se(De.set(.5,-.5,0),yd,c,xd,e,d);Se(Nf.set(.5,.5,0),yd,c,xd,e,d);Ri.set(0,0);oh.set(1,0);Si.set(1,1);var f=a.ray.intersectTriangle(Mf,De,Nf,!1,Ce);if(null===f&&(Se(De.set(-.5,.5,0),yd,c,xd,e,d),oh.set(0,1),f=a.ray.intersectTriangle(Mf,Nf,De,!1,Ce),null===f))return;e=a.ray.origin.distanceTo(Ce);e<a.near||e>a.far||b.push({distance:e,point:Ce.clone(),uv:oa.getUV(Ce,Mf,De,Nf,Ri,oh,
 Si,new t),face:null,object:this})},clone:function(){return(new this.constructor(this.material)).copy(this)},copy:function(a){F.prototype.copy.call(this,a);void 0!==a.center&&this.center.copy(a.center);return this}});var Of=new n,Ti=new n;Rd.prototype=Object.assign(Object.create(F.prototype),{constructor:Rd,isLOD:!0,copy:function(a){F.prototype.copy.call(this,a,!1);for(var b=a.levels,c=0,d=b.length;c<d;c++){var e=b[c];this.addLevel(e.object.clone(),e.distance)}this.autoUpdate=a.autoUpdate;return this},
 addLevel:function(a,b){void 0===b&&(b=0);b=Math.abs(b);for(var c=this.levels,d=0;d<c.length&&!(b<c[d].distance);d++);c.splice(d,0,{distance:b,object:a});this.add(a);return this},getCurrentLevel:function(){return this._currentLevel},getObjectForDistance:function(a){var b=this.levels;if(0<b.length){for(var c=1,d=b.length;c<d&&!(a<b[c].distance);c++);return b[c-1].object}return null},raycast:function(a,b){if(0<this.levels.length){Of.setFromMatrixPosition(this.matrixWorld);var c=a.ray.origin.distanceTo(Of);
 this.getObjectForDistance(c).raycast(a,b)}},update:function(a){var b=this.levels;if(1<b.length){Of.setFromMatrixPosition(a.matrixWorld);Ti.setFromMatrixPosition(this.matrixWorld);a=Of.distanceTo(Ti)/a.zoom;b[0].object.visible=!0;for(var c=1,d=b.length;c<d;c++)if(a>=b[c].distance)b[c-1].object.visible=!1,b[c].object.visible=!0;else break;for(this._currentLevel=c-1;c<d;c++)b[c].object.visible=!1}},toJSON:function(a){a=F.prototype.toJSON.call(this,a);!1===this.autoUpdate&&(a.object.autoUpdate=!1);a.object.levels=
-[];for(var b=this.levels,c=0,d=b.length;c<d;c++){var e=b[c];a.object.levels.push({object:e.object.uuid,distance:e.distance})}return a}});Sd.prototype=Object.assign(Object.create(S.prototype),{constructor:Sd,isSkinnedMesh:!0,bind:function(a,b){this.skeleton=a;void 0===b&&(this.updateMatrixWorld(!0),this.skeleton.calculateInverses(),b=this.matrixWorld);this.bindMatrix.copy(b);this.bindMatrixInverse.getInverse(b)},pose:function(){this.skeleton.pose()},normalizeSkinWeights:function(){for(var a=new ka,
+[];for(var b=this.levels,c=0,d=b.length;c<d;c++){var e=b[c];a.object.levels.push({object:e.object.uuid,distance:e.distance})}return a}});Te.prototype=Object.assign(Object.create(S.prototype),{constructor:Te,isSkinnedMesh:!0,bind:function(a,b){this.skeleton=a;void 0===b&&(this.updateMatrixWorld(!0),this.skeleton.calculateInverses(),b=this.matrixWorld);this.bindMatrix.copy(b);this.bindMatrixInverse.getInverse(b)},pose:function(){this.skeleton.pose()},normalizeSkinWeights:function(){for(var a=new ka,
 b=this.geometry.attributes.skinWeight,c=0,d=b.count;c<d;c++){a.x=b.getX(c);a.y=b.getY(c);a.z=b.getZ(c);a.w=b.getW(c);var e=1/a.manhattanLength();Infinity!==e?a.multiplyScalar(e):a.set(1,0,0,0);b.setXYZW(c,a.x,a.y,a.z,a.w)}},updateMatrixWorld:function(a){S.prototype.updateMatrixWorld.call(this,a);"attached"===this.bindMode?this.bindMatrixInverse.getInverse(this.matrixWorld):"detached"===this.bindMode?this.bindMatrixInverse.getInverse(this.bindMatrix):console.warn("THREE.SkinnedMesh: Unrecognized bindMode: "+
 this.bindMode)},clone:function(){return(new this.constructor(this.geometry,this.material)).copy(this)}});var Ui=new P,$k=new P;Object.assign(Ue.prototype,{calculateInverses:function(){this.boneInverses=[];for(var a=0,b=this.bones.length;a<b;a++){var c=new P;this.bones[a]&&c.getInverse(this.bones[a].matrixWorld);this.boneInverses.push(c)}},pose:function(){var a,b;var c=0;for(b=this.bones.length;c<b;c++)(a=this.bones[c])&&a.matrixWorld.getInverse(this.boneInverses[c]);c=0;for(b=this.bones.length;c<
 b;c++)if(a=this.bones[c])a.parent&&a.parent.isBone?(a.matrix.getInverse(a.parent.matrixWorld),a.matrix.multiply(a.matrixWorld)):a.matrix.copy(a.matrixWorld),a.matrix.decompose(a.position,a.quaternion,a.scale)},update:function(){for(var a=this.bones,b=this.boneInverses,c=this.boneMatrices,d=this.boneTexture,e=0,f=a.length;e<f;e++)Ui.multiplyMatrices(a[e]?a[e].matrixWorld:$k,b[e]),Ui.toArray(c,16*e);void 0!==d&&(d.needsUpdate=!0)},clone:function(){return new Ue(this.bones,this.boneInverses)},getBoneByName:function(a){for(var b=
-0,c=this.bones.length;b<c;b++){var d=this.bones[b];if(d.name===a)return d}},dispose:function(){this.boneTexture&&(this.boneTexture.dispose(),this.boneTexture=void 0)}});pg.prototype=Object.assign(Object.create(F.prototype),{constructor:pg,isBone:!0});var Vi=new P,Wi=new P,zd=[],Fe=new S;Ve.prototype=Object.assign(Object.create(S.prototype),{constructor:Ve,isInstancedMesh:!0,getMatrixAt:function(a,b){b.fromArray(this.instanceMatrix.array,16*a)},raycast:function(a,b){var c=this.matrixWorld,d=this.count;
-Fe.geometry=this.geometry;Fe.material=this.material;if(void 0!==Fe.material)for(var e=0;e<d;e++)this.getMatrixAt(e,Vi),Wi.multiplyMatrices(c,Vi),Fe.matrixWorld=Wi,Fe.raycast(a,zd),0<zd.length&&(zd[0].instanceId=e,zd[0].object=this,b.push(zd[0]),zd.length=0)},setMatrixAt:function(a,b){b.toArray(this.instanceMatrix.array,16*a)},updateMorphTargets:function(){}});la.prototype=Object.create(K.prototype);la.prototype.constructor=la;la.prototype.isLineBasicMaterial=!0;la.prototype.copy=function(a){K.prototype.copy.call(this,
-a);this.color.copy(a.color);this.linewidth=a.linewidth;this.linecap=a.linecap;this.linejoin=a.linejoin;return this};var Xi=new n,Yi=new n,Zi=new P,Pf=new Vb,Ge=new pb;Ka.prototype=Object.assign(Object.create(F.prototype),{constructor:Ka,isLine:!0,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++)Xi.fromBufferAttribute(b,d-1),Yi.fromBufferAttribute(b,d),c[d]=c[d-1],c[d]+=Xi.distanceTo(Yi);a.setAttribute("lineDistance",
-new y(c,1))}else console.warn("THREE.Line.computeLineDistances(): Computation only possible with non-indexed BufferGeometry.");else if(a.isGeometry)for(b=a.vertices,c=a.lineDistances,c[0]=0,d=1,e=b.length;d<e;d++)c[d]=c[d-1],c[d]+=b[d-1].distanceTo(b[d]);return this},raycast:function(a,b){var c=this.geometry,d=this.matrixWorld,e=a.params.Line.threshold;null===c.boundingSphere&&c.computeBoundingSphere();Ge.copy(c.boundingSphere);Ge.applyMatrix4(d);Ge.radius+=e;if(!1!==a.ray.intersectsSphere(Ge)){Zi.getInverse(d);
+0,c=this.bones.length;b<c;b++){var d=this.bones[b];if(d.name===a)return d}},dispose:function(){this.boneTexture&&(this.boneTexture.dispose(),this.boneTexture=void 0)}});pg.prototype=Object.assign(Object.create(F.prototype),{constructor:pg,isBone:!0});var Vi=new P,Wi=new P,zd=[],Ee=new S;Ve.prototype=Object.assign(Object.create(S.prototype),{constructor:Ve,isInstancedMesh:!0,getMatrixAt:function(a,b){b.fromArray(this.instanceMatrix.array,16*a)},raycast:function(a,b){var c=this.matrixWorld,d=this.count;
+Ee.geometry=this.geometry;Ee.material=this.material;if(void 0!==Ee.material)for(var e=0;e<d;e++)this.getMatrixAt(e,Vi),Wi.multiplyMatrices(c,Vi),Ee.matrixWorld=Wi,Ee.raycast(a,zd),0<zd.length&&(zd[0].instanceId=e,zd[0].object=this,b.push(zd[0]),zd.length=0)},setMatrixAt:function(a,b){b.toArray(this.instanceMatrix.array,16*a)},updateMorphTargets:function(){}});la.prototype=Object.create(K.prototype);la.prototype.constructor=la;la.prototype.isLineBasicMaterial=!0;la.prototype.copy=function(a){K.prototype.copy.call(this,
+a);this.color.copy(a.color);this.linewidth=a.linewidth;this.linecap=a.linecap;this.linejoin=a.linejoin;return this};var Xi=new n,Yi=new n,Zi=new P,Pf=new Vb,Fe=new pb;Ka.prototype=Object.assign(Object.create(F.prototype),{constructor:Ka,isLine:!0,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++)Xi.fromBufferAttribute(b,d-1),Yi.fromBufferAttribute(b,d),c[d]=c[d-1],c[d]+=Xi.distanceTo(Yi);a.setAttribute("lineDistance",
+new y(c,1))}else console.warn("THREE.Line.computeLineDistances(): Computation only possible with non-indexed BufferGeometry.");else if(a.isGeometry)for(b=a.vertices,c=a.lineDistances,c[0]=0,d=1,e=b.length;d<e;d++)c[d]=c[d-1],c[d]+=b[d-1].distanceTo(b[d]);return this},raycast:function(a,b){var c=this.geometry,d=this.matrixWorld,e=a.params.Line.threshold;null===c.boundingSphere&&c.computeBoundingSphere();Fe.copy(c.boundingSphere);Fe.applyMatrix4(d);Fe.radius+=e;if(!1!==a.ray.intersectsSphere(Fe)){Zi.getInverse(d);
 Pf.copy(a.ray).applyMatrix4(Zi);d=e/((this.scale.x+this.scale.y+this.scale.z)/3);d*=d;var f=new n,g=new n;e=new n;var h=new n,l=this&&this.isLineSegments?2:1;if(c.isBufferGeometry){var k=c.index,u=c.attributes.position.array;if(null!==k){k=k.array;c=0;for(var p=k.length-1;c<p;c+=l){var x=k[c+1];f.fromArray(u,3*k[c]);g.fromArray(u,3*x);x=Pf.distanceSqToSegment(f,g,h,e);x>d||(h.applyMatrix4(this.matrixWorld),x=a.ray.origin.distanceTo(h),x<a.near||x>a.far||b.push({distance:x,point:e.clone().applyMatrix4(this.matrixWorld),
 index:c,face:null,faceIndex:null,object:this}))}}else for(c=0,p=u.length/3-1;c<p;c+=l)f.fromArray(u,3*c),g.fromArray(u,3*c+3),x=Pf.distanceSqToSegment(f,g,h,e),x>d||(h.applyMatrix4(this.matrixWorld),x=a.ray.origin.distanceTo(h),x<a.near||x>a.far||b.push({distance:x,point:e.clone().applyMatrix4(this.matrixWorld),index:c,face:null,faceIndex:null,object:this}))}else if(c.isGeometry)for(f=c.vertices,g=f.length,c=0;c<g-1;c+=l)x=Pf.distanceSqToSegment(f[c],f[c+1],h,e),x>d||(h.applyMatrix4(this.matrixWorld),
 x=a.ray.origin.distanceTo(h),x<a.near||x>a.far||b.push({distance:x,point:e.clone().applyMatrix4(this.matrixWorld),index:c,face:null,faceIndex:null,object:this}))}},clone:function(){return(new this.constructor(this.geometry,this.material)).copy(this)}});var Qf=new n,Rf=new n;ma.prototype=Object.assign(Object.create(Ka.prototype),{constructor:ma,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 y(c,1))}else console.warn("THREE.LineSegments.computeLineDistances(): Computation only possible with non-indexed BufferGeometry.");else if(a.isGeometry)for(b=a.vertices,c=a.lineDistances,d=0,e=b.length;d<e;d+=2)Qf.copy(b[d]),Rf.copy(b[d+1]),c[d]=0===d?0:c[d-1],c[d+1]=c[d]+Qf.distanceTo(Rf);return this}});We.prototype=Object.assign(Object.create(Ka.prototype),
-{constructor:We,isLineLoop:!0});Va.prototype=Object.create(K.prototype);Va.prototype.constructor=Va;Va.prototype.isPointsMaterial=!0;Va.prototype.copy=function(a){K.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 $i=new P,rg=new Vb,He=new pb,Sf=new n;Pc.prototype=Object.assign(Object.create(F.prototype),{constructor:Pc,isPoints:!0,raycast:function(a,
-b){var c=this.geometry,d=this.matrixWorld,e=a.params.Points.threshold;null===c.boundingSphere&&c.computeBoundingSphere();He.copy(c.boundingSphere);He.applyMatrix4(d);He.radius+=e;if(!1!==a.ray.intersectsSphere(He))if($i.getInverse(d),rg.copy(a.ray).applyMatrix4($i),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){var g=f.array;f=0;for(var h=g.length;f<h;f++){var l=g[f];Sf.fromArray(c,3*l);qg(Sf,l,e,d,a,b,this)}}else for(f=
+{constructor:We,isLineLoop:!0});Va.prototype=Object.create(K.prototype);Va.prototype.constructor=Va;Va.prototype.isPointsMaterial=!0;Va.prototype.copy=function(a){K.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 $i=new P,rg=new Vb,Ge=new pb,Sf=new n;Pc.prototype=Object.assign(Object.create(F.prototype),{constructor:Pc,isPoints:!0,raycast:function(a,
+b){var c=this.geometry,d=this.matrixWorld,e=a.params.Points.threshold;null===c.boundingSphere&&c.computeBoundingSphere();Ge.copy(c.boundingSphere);Ge.applyMatrix4(d);Ge.radius+=e;if(!1!==a.ray.intersectsSphere(Ge))if($i.getInverse(d),rg.copy(a.ray).applyMatrix4($i),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){var g=f.array;f=0;for(var h=g.length;f<h;f++){var l=g[f];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){var c=a[b[0]];if(void 0!==c)for(this.morphTargetInfluences=[],this.morphTargetDictionary={},a=0,b=c.length;a<b;a++){var d=c[a].name||String(a);this.morphTargetInfluences.push(0);this.morphTargetDictionary[d]=a}}}else a=a.morphTargets,void 0!==
 a&&0<a.length&&console.error("THREE.Points.updateMorphTargets() does not support THREE.Geometry. Use THREE.BufferGeometry instead.")},clone:function(){return(new this.constructor(this.geometry,this.material)).copy(this)}});sg.prototype=Object.assign(Object.create(V.prototype),{constructor:sg,isVideoTexture:!0,update:function(){var a=this.image;a.readyState>=a.HAVE_CURRENT_DATA&&(this.needsUpdate=!0)}});Qc.prototype=Object.create(V.prototype);Qc.prototype.constructor=Qc;Qc.prototype.isCompressedTexture=
-!0;Td.prototype=Object.create(V.prototype);Td.prototype.constructor=Td;Td.prototype.isCanvasTexture=!0;Ud.prototype=Object.create(V.prototype);Ud.prototype.constructor=Ud;Ud.prototype.isDepthTexture=!0;Rc.prototype=Object.create(C.prototype);Rc.prototype.constructor=Rc;Vd.prototype=Object.create(N.prototype);Vd.prototype.constructor=Vd;Sc.prototype=Object.create(C.prototype);Sc.prototype.constructor=Sc;Wd.prototype=Object.create(N.prototype);Wd.prototype.constructor=Wd;Ga.prototype=Object.create(C.prototype);
-Ga.prototype.constructor=Ga;Xd.prototype=Object.create(N.prototype);Xd.prototype.constructor=Xd;Tc.prototype=Object.create(Ga.prototype);Tc.prototype.constructor=Tc;Yd.prototype=Object.create(N.prototype);Yd.prototype.constructor=Yd;cc.prototype=Object.create(Ga.prototype);cc.prototype.constructor=cc;Zd.prototype=Object.create(N.prototype);Zd.prototype.constructor=Zd;Uc.prototype=Object.create(Ga.prototype);Uc.prototype.constructor=Uc;$d.prototype=Object.create(N.prototype);$d.prototype.constructor=
-$d;Vc.prototype=Object.create(Ga.prototype);Vc.prototype.constructor=Vc;ae.prototype=Object.create(N.prototype);ae.prototype.constructor=ae;dc.prototype=Object.create(C.prototype);dc.prototype.constructor=dc;dc.prototype.toJSON=function(){var a=C.prototype.toJSON.call(this);a.path=this.parameters.path.toJSON();return a};be.prototype=Object.create(N.prototype);be.prototype.constructor=be;Wc.prototype=Object.create(C.prototype);Wc.prototype.constructor=Wc;ce.prototype=Object.create(N.prototype);ce.prototype.constructor=
-ce;Xc.prototype=Object.create(C.prototype);Xc.prototype.constructor=Xc;var al={triangulate:function(a,b,c){c=c||2;var d=b&&b.length,e=d?b[0]*c:a.length,f=ci(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 n=0;for(k=b.length;n<k;n++){var p=b[n]*l;var x=n<k-1?b[n+1]*l:a.length;p=ci(a,p,x,l,!1);p===p.next&&(p.steiner=!0);d.push(Nk(p))}d.sort(Lk);for(n=0;n<d.length;n++){b=d[n];l=f;if(l=Mk(b,l))b=fi(l,b),ee(b,b.next);f=ee(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)n=a[l],b=a[l+1],n<r&&(r=n),b<q&&(q=b),n>h&&(h=n),b>d&&(d=b);h=Math.max(h-r,d-q);h=0!==h?1/h:0}fe(f,g,c,r,q,h);return g}},sb={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>sb.area(a)},triangulateShape:function(a,b){var c=[],d=[],e=[];gi(a);hi(c,a);var f=a.length;b.forEach(gi);for(a=0;a<b.length;a++)d.push(f),f+=b[a].length,hi(c,b[a]);b=al.triangulate(c,d);for(a=0;a<b.length;a+=3)e.push(b.slice(a,
+!0;Sd.prototype=Object.create(V.prototype);Sd.prototype.constructor=Sd;Sd.prototype.isCanvasTexture=!0;Td.prototype=Object.create(V.prototype);Td.prototype.constructor=Td;Td.prototype.isDepthTexture=!0;Rc.prototype=Object.create(C.prototype);Rc.prototype.constructor=Rc;Ud.prototype=Object.create(N.prototype);Ud.prototype.constructor=Ud;Sc.prototype=Object.create(C.prototype);Sc.prototype.constructor=Sc;Vd.prototype=Object.create(N.prototype);Vd.prototype.constructor=Vd;Ga.prototype=Object.create(C.prototype);
+Ga.prototype.constructor=Ga;Wd.prototype=Object.create(N.prototype);Wd.prototype.constructor=Wd;Tc.prototype=Object.create(Ga.prototype);Tc.prototype.constructor=Tc;Xd.prototype=Object.create(N.prototype);Xd.prototype.constructor=Xd;cc.prototype=Object.create(Ga.prototype);cc.prototype.constructor=cc;Yd.prototype=Object.create(N.prototype);Yd.prototype.constructor=Yd;Uc.prototype=Object.create(Ga.prototype);Uc.prototype.constructor=Uc;Zd.prototype=Object.create(N.prototype);Zd.prototype.constructor=
+Zd;Vc.prototype=Object.create(Ga.prototype);Vc.prototype.constructor=Vc;$d.prototype=Object.create(N.prototype);$d.prototype.constructor=$d;dc.prototype=Object.create(C.prototype);dc.prototype.constructor=dc;dc.prototype.toJSON=function(){var a=C.prototype.toJSON.call(this);a.path=this.parameters.path.toJSON();return a};ae.prototype=Object.create(N.prototype);ae.prototype.constructor=ae;Wc.prototype=Object.create(C.prototype);Wc.prototype.constructor=Wc;be.prototype=Object.create(N.prototype);be.prototype.constructor=
+be;Xc.prototype=Object.create(C.prototype);Xc.prototype.constructor=Xc;var al={triangulate:function(a,b,c){c=c||2;var d=b&&b.length,e=d?b[0]*c:a.length,f=ci(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 n=0;for(k=b.length;n<k;n++){var p=b[n]*l;var x=n<k-1?b[n+1]*l:a.length;p=ci(a,p,x,l,!1);p===p.next&&(p.steiner=!0);d.push(Nk(p))}d.sort(Lk);for(n=0;n<d.length;n++){b=d[n];l=f;if(l=Mk(b,l))b=fi(l,b),de(b,b.next);f=de(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)n=a[l],b=a[l+1],n<r&&(r=n),b<q&&(q=b),n>h&&(h=n),b>d&&(d=b);h=Math.max(h-r,d-q);h=0!==h?1/h:0}ee(f,g,c,r,q,h);return g}},sb={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>sb.area(a)},triangulateShape:function(a,b){var c=[],d=[],e=[];gi(a);hi(c,a);var f=a.length;b.forEach(gi);for(a=0;a<b.length;a++)d.push(f),f+=b[a].length,hi(c,b[a]);b=al.triangulate(c,d);for(a=0;a<b.length;a+=3)e.push(b.slice(a,
 a+3));return e}};fc.prototype=Object.create(N.prototype);fc.prototype.constructor=fc;fc.prototype.toJSON=function(){var a=N.prototype.toJSON.call(this);return ii(this.parameters.shapes,this.parameters.options,a)};fb.prototype=Object.create(C.prototype);fb.prototype.constructor=fb;fb.prototype.toJSON=function(){var a=C.prototype.toJSON.call(this);return ii(this.parameters.shapes,this.parameters.options,a)};var Ok={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 t(b[3*
-c],b[3*c+1]),new t(a,d),new t(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],n=b[3*e+1];e=b[3*e+2];var p=b[3*f],x=b[3*f+1];b=b[3*f+2];return.01>Math.abs(g-l)?[new t(a,1-c),new t(h,1-d),new t(k,1-e),new t(p,1-b)]:[new t(g,1-c),new t(l,1-d),new t(n,1-e),new t(x,1-b)]}};he.prototype=Object.create(N.prototype);he.prototype.constructor=he;Zc.prototype=Object.create(fb.prototype);Zc.prototype.constructor=Zc;ie.prototype=
-Object.create(N.prototype);ie.prototype.constructor=ie;gc.prototype=Object.create(C.prototype);gc.prototype.constructor=gc;je.prototype=Object.create(N.prototype);je.prototype.constructor=je;$c.prototype=Object.create(C.prototype);$c.prototype.constructor=$c;ke.prototype=Object.create(N.prototype);ke.prototype.constructor=ke;ad.prototype=Object.create(C.prototype);ad.prototype.constructor=ad;hc.prototype=Object.create(N.prototype);hc.prototype.constructor=hc;hc.prototype.toJSON=function(){var a=N.prototype.toJSON.call(this);
-return ji(this.parameters.shapes,a)};ic.prototype=Object.create(C.prototype);ic.prototype.constructor=ic;ic.prototype.toJSON=function(){var a=C.prototype.toJSON.call(this);return ji(this.parameters.shapes,a)};bd.prototype=Object.create(C.prototype);bd.prototype.constructor=bd;jc.prototype=Object.create(N.prototype);jc.prototype.constructor=jc;tb.prototype=Object.create(C.prototype);tb.prototype.constructor=tb;le.prototype=Object.create(jc.prototype);le.prototype.constructor=le;me.prototype=Object.create(tb.prototype);
-me.prototype.constructor=me;ne.prototype=Object.create(N.prototype);ne.prototype.constructor=ne;cd.prototype=Object.create(C.prototype);cd.prototype.constructor=cd;var ua=Object.freeze({__proto__:null,WireframeGeometry:Rc,ParametricGeometry:Vd,ParametricBufferGeometry:Sc,TetrahedronGeometry:Xd,TetrahedronBufferGeometry:Tc,OctahedronGeometry:Yd,OctahedronBufferGeometry:cc,IcosahedronGeometry:Zd,IcosahedronBufferGeometry:Uc,DodecahedronGeometry:$d,DodecahedronBufferGeometry:Vc,PolyhedronGeometry:Wd,
-PolyhedronBufferGeometry:Ga,TubeGeometry:ae,TubeBufferGeometry:dc,TorusKnotGeometry:be,TorusKnotBufferGeometry:Wc,TorusGeometry:ce,TorusBufferGeometry:Xc,TextGeometry:he,TextBufferGeometry:Zc,SphereGeometry:ie,SphereBufferGeometry:gc,RingGeometry:je,RingBufferGeometry:$c,PlaneGeometry:Id,PlaneBufferGeometry:bc,LatheGeometry:ke,LatheBufferGeometry:ad,ShapeGeometry:hc,ShapeBufferGeometry:ic,ExtrudeGeometry:fc,ExtrudeBufferGeometry:fb,EdgesGeometry:bd,ConeGeometry:le,ConeBufferGeometry:me,CylinderGeometry:jc,
-CylinderBufferGeometry:tb,CircleGeometry:ne,CircleBufferGeometry:cd,BoxGeometry:nh,BoxBufferGeometry:Jd});kc.prototype=Object.create(K.prototype);kc.prototype.constructor=kc;kc.prototype.isShadowMaterial=!0;kc.prototype.copy=function(a){K.prototype.copy.call(this,a);this.color.copy(a.color);return this};ub.prototype=Object.create(Ba.prototype);ub.prototype.constructor=ub;ub.prototype.isRawShaderMaterial=!0;gb.prototype=Object.create(K.prototype);gb.prototype.constructor=gb;gb.prototype.isMeshStandardMaterial=
+c],b[3*c+1]),new t(a,d),new t(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],n=b[3*e+1];e=b[3*e+2];var p=b[3*f],x=b[3*f+1];b=b[3*f+2];return.01>Math.abs(g-l)?[new t(a,1-c),new t(h,1-d),new t(k,1-e),new t(p,1-b)]:[new t(g,1-c),new t(l,1-d),new t(n,1-e),new t(x,1-b)]}};ge.prototype=Object.create(N.prototype);ge.prototype.constructor=ge;Zc.prototype=Object.create(fb.prototype);Zc.prototype.constructor=Zc;he.prototype=
+Object.create(N.prototype);he.prototype.constructor=he;gc.prototype=Object.create(C.prototype);gc.prototype.constructor=gc;ie.prototype=Object.create(N.prototype);ie.prototype.constructor=ie;$c.prototype=Object.create(C.prototype);$c.prototype.constructor=$c;je.prototype=Object.create(N.prototype);je.prototype.constructor=je;ad.prototype=Object.create(C.prototype);ad.prototype.constructor=ad;hc.prototype=Object.create(N.prototype);hc.prototype.constructor=hc;hc.prototype.toJSON=function(){var a=N.prototype.toJSON.call(this);
+return ji(this.parameters.shapes,a)};ic.prototype=Object.create(C.prototype);ic.prototype.constructor=ic;ic.prototype.toJSON=function(){var a=C.prototype.toJSON.call(this);return ji(this.parameters.shapes,a)};bd.prototype=Object.create(C.prototype);bd.prototype.constructor=bd;jc.prototype=Object.create(N.prototype);jc.prototype.constructor=jc;tb.prototype=Object.create(C.prototype);tb.prototype.constructor=tb;ke.prototype=Object.create(jc.prototype);ke.prototype.constructor=ke;le.prototype=Object.create(tb.prototype);
+le.prototype.constructor=le;me.prototype=Object.create(N.prototype);me.prototype.constructor=me;cd.prototype=Object.create(C.prototype);cd.prototype.constructor=cd;var ua=Object.freeze({__proto__:null,WireframeGeometry:Rc,ParametricGeometry:Ud,ParametricBufferGeometry:Sc,TetrahedronGeometry:Wd,TetrahedronBufferGeometry:Tc,OctahedronGeometry:Xd,OctahedronBufferGeometry:cc,IcosahedronGeometry:Yd,IcosahedronBufferGeometry:Uc,DodecahedronGeometry:Zd,DodecahedronBufferGeometry:Vc,PolyhedronGeometry:Vd,
+PolyhedronBufferGeometry:Ga,TubeGeometry:$d,TubeBufferGeometry:dc,TorusKnotGeometry:ae,TorusKnotBufferGeometry:Wc,TorusGeometry:be,TorusBufferGeometry:Xc,TextGeometry:ge,TextBufferGeometry:Zc,SphereGeometry:he,SphereBufferGeometry:gc,RingGeometry:ie,RingBufferGeometry:$c,PlaneGeometry:Id,PlaneBufferGeometry:bc,LatheGeometry:je,LatheBufferGeometry:ad,ShapeGeometry:hc,ShapeBufferGeometry:ic,ExtrudeGeometry:fc,ExtrudeBufferGeometry:fb,EdgesGeometry:bd,ConeGeometry:ke,ConeBufferGeometry:le,CylinderGeometry:jc,
+CylinderBufferGeometry:tb,CircleGeometry:me,CircleBufferGeometry:cd,BoxGeometry:nh,BoxBufferGeometry:Jd});kc.prototype=Object.create(K.prototype);kc.prototype.constructor=kc;kc.prototype.isShadowMaterial=!0;kc.prototype.copy=function(a){K.prototype.copy.call(this,a);this.color.copy(a.color);return this};ub.prototype=Object.create(Ba.prototype);ub.prototype.constructor=ub;ub.prototype.isRawShaderMaterial=!0;gb.prototype=Object.create(K.prototype);gb.prototype.constructor=gb;gb.prototype.isMeshStandardMaterial=
 !0;gb.prototype.copy=function(a){K.prototype.copy.call(this,a);this.defines={STANDARD:""};this.color.copy(a.color);this.roughness=a.roughness;this.metalness=a.metalness;this.map=a.map;this.lightMap=a.lightMap;this.lightMapIntensity=a.lightMapIntensity;this.aoMap=a.aoMap;this.aoMapIntensity=a.aoMapIntensity;this.emissive.copy(a.emissive);this.emissiveMap=a.emissiveMap;this.emissiveIntensity=a.emissiveIntensity;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.roughnessMap=a.roughnessMap;this.metalnessMap=a.metalnessMap;this.alphaMap=a.alphaMap;this.envMap=a.envMap;this.envMapIntensity=a.envMapIntensity;this.refractionRatio=a.refractionRatio;this.wireframe=a.wireframe;this.wireframeLinewidth=a.wireframeLinewidth;this.wireframeLinecap=a.wireframeLinecap;this.wireframeLinejoin=
 a.wireframeLinejoin;this.skinning=a.skinning;this.morphTargets=a.morphTargets;this.morphNormals=a.morphNormals;this.vertexTangents=a.vertexTangents;return this};lc.prototype=Object.create(gb.prototype);lc.prototype.constructor=lc;lc.prototype.isMeshPhysicalMaterial=!0;lc.prototype.copy=function(a){gb.prototype.copy.call(this,a);this.defines={STANDARD:"",PHYSICAL:""};this.clearcoat=a.clearcoat;this.clearcoatMap=a.clearcoatMap;this.clearcoatRoughness=a.clearcoatRoughness;this.clearcoatRoughnessMap=
@@ -736,21 +736,21 @@ f=a[e++];while(void 0!==f)}else if(void 0!==g.toArray){do g=f[d],void 0!==g&&(b.
 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=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_});Xe.prototype=
 Object.assign(Object.create(La.prototype),{constructor:Xe,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=a;g=2*b-c;break;case 2402:e=d.length-2;g=b+d[e]-d[e+1];break;default:e=a,g=c}if(void 0===h)switch(this.getSettings_().endingEnd){case 2401:f=a;h=2*c-b;break;case 2402:f=1;h=c+d[1]-d[0];break;default:f=a-1,h=b}a=.5*(c-b);d=this.valueSize;
-this._weightPrev=a/(b-g);this._weightNext=a/(h-c);this._offsetPrev=e*d;this._offsetNext=f*d},interpolate_:function(a,b,c,d){var e=this.resultBuffer,f=this.sampleValues,g=this.valueSize;a*=g;var h=a-g,l=this._offsetPrev,k=this._offsetNext,n=this._weightPrev,p=this._weightNext,x=(c-b)/(d-b);c=x*x;d=c*x;b=-n*d+2*n*c-n*x;n=(1+n)*d+(-1.5-2*n)*c+(-.5+n)*x+1;x=(-1-p)*d+(1.5+p)*c+.5*x;p=p*d-p*c;for(c=0;c!==g;++c)e[c]=b*f[l+c]+n*f[h+c]+x*f[a+c]+p*f[k+c];return e}});oe.prototype=Object.assign(Object.create(La.prototype),
-{constructor:oe,interpolate_:function(a,b,c,d){var e=this.resultBuffer,f=this.sampleValues,g=this.valueSize;a*=g;var h=a-g;b=(c-b)/(d-b);c=1-b;for(d=0;d!==g;++d)e[d]=f[h+d]*c+f[a+d]*b;return e}});Ye.prototype=Object.assign(Object.create(La.prototype),{constructor:Ye,interpolate_:function(a){return this.copySampleValue_(a-1)}});Object.assign(sa,{toJSON:function(a){var b=a.constructor;if(void 0!==b.toJSON)b=b.toJSON(a);else{b={name:a.name,times:R.convertArray(a.times,Array),values:R.convertArray(a.values,
-Array)};var c=a.getInterpolation();c!==a.DefaultInterpolation&&(b.interpolation=c)}b.type=a.ValueTypeName;return b}});Object.assign(sa.prototype,{constructor:sa,TimeBufferType:Float32Array,ValueBufferType:Float32Array,DefaultInterpolation:2301,InterpolantFactoryMethodDiscrete:function(a){return new Ye(this.times,this.values,this.getValueSize(),a)},InterpolantFactoryMethodLinear:function(a){return new oe(this.times,this.values,this.getValueSize(),a)},InterpolantFactoryMethodSmooth:function(a){return new Xe(this.times,
+this._weightPrev=a/(b-g);this._weightNext=a/(h-c);this._offsetPrev=e*d;this._offsetNext=f*d},interpolate_:function(a,b,c,d){var e=this.resultBuffer,f=this.sampleValues,g=this.valueSize;a*=g;var h=a-g,l=this._offsetPrev,k=this._offsetNext,n=this._weightPrev,p=this._weightNext,x=(c-b)/(d-b);c=x*x;d=c*x;b=-n*d+2*n*c-n*x;n=(1+n)*d+(-1.5-2*n)*c+(-.5+n)*x+1;x=(-1-p)*d+(1.5+p)*c+.5*x;p=p*d-p*c;for(c=0;c!==g;++c)e[c]=b*f[l+c]+n*f[h+c]+x*f[a+c]+p*f[k+c];return e}});ne.prototype=Object.assign(Object.create(La.prototype),
+{constructor:ne,interpolate_:function(a,b,c,d){var e=this.resultBuffer,f=this.sampleValues,g=this.valueSize;a*=g;var h=a-g;b=(c-b)/(d-b);c=1-b;for(d=0;d!==g;++d)e[d]=f[h+d]*c+f[a+d]*b;return e}});Ye.prototype=Object.assign(Object.create(La.prototype),{constructor:Ye,interpolate_:function(a){return this.copySampleValue_(a-1)}});Object.assign(sa,{toJSON:function(a){var b=a.constructor;if(void 0!==b.toJSON)b=b.toJSON(a);else{b={name:a.name,times:R.convertArray(a.times,Array),values:R.convertArray(a.values,
+Array)};var c=a.getInterpolation();c!==a.DefaultInterpolation&&(b.interpolation=c)}b.type=a.ValueTypeName;return b}});Object.assign(sa.prototype,{constructor:sa,TimeBufferType:Float32Array,ValueBufferType:Float32Array,DefaultInterpolation:2301,InterpolantFactoryMethodDiscrete:function(a){return new Ye(this.times,this.values,this.getValueSize(),a)},InterpolantFactoryMethodLinear:function(a){return new ne(this.times,this.values,this.getValueSize(),a)},InterpolantFactoryMethodSmooth:function(a){return new Xe(this.times,
 this.values,this.getValueSize(),a)},setInterpolation:function(a){switch(a){case 2300:var b=this.InterpolantFactoryMethodDiscrete;break;case 2301:b=this.InterpolantFactoryMethodLinear;break;case 2302:b=this.InterpolantFactoryMethodSmooth}if(void 0===b){b="unsupported interpolation for "+this.ValueTypeName+" keyframe track named "+this.name;if(void 0===this.createInterpolant)if(a!==this.DefaultInterpolation)this.setInterpolation(this.DefaultInterpolation);else throw Error(b);console.warn("THREE.KeyframeTrack:",
 b);return this}this.createInterpolant=b;return this},getInterpolation:function(){switch(this.createInterpolant){case this.InterpolantFactoryMethodDiscrete:return 2300;case this.InterpolantFactoryMethodLinear:return 2301;case this.InterpolantFactoryMethodSmooth:return 2302}},getValueSize:function(){return this.values.length/this.times.length},shift:function(a){if(0!==a)for(var b=this.times,c=0,d=b.length;c!==d;++c)b[c]+=a;return this},scale:function(a){if(1!==a)for(var b=this.times,c=0,d=b.length;c!==
 d;++c)b[c]*=a;return this},trim:function(a,b){for(var c=this.times,d=c.length,e=0,f=d-1;e!==d&&c[e]<a;)++e;for(;-1!==f&&c[f]>b;)--f;++f;if(0!==e||f!==d)e>=f&&(f=Math.max(f,1),e=f-1),a=this.getValueSize(),this.times=R.arraySlice(c,e,f),this.values=R.arraySlice(this.values,e*a,f*a);return this},validate:function(){var a=!0,b=this.getValueSize();0!==b-Math.floor(b)&&(console.error("THREE.KeyframeTrack: Invalid value size in track.",this),a=!1);var c=this.times;b=this.values;var d=c.length;0===d&&(console.error("THREE.KeyframeTrack: Track is empty.",
 this),a=!1);for(var e=null,f=0;f!==d;f++){var g=c[f];if("number"===typeof g&&isNaN(g)){console.error("THREE.KeyframeTrack: Time is not a valid number.",this,f,g);a=!1;break}if(null!==e&&e>g){console.error("THREE.KeyframeTrack: Out of order keys.",this,f,g,e);a=!1;break}e=g}if(void 0!==b&&R.isTypedArray(b))for(f=0,c=b.length;f!==c;++f)if(d=b[f],isNaN(d)){console.error("THREE.KeyframeTrack: Value is not a valid number.",this,f,d);a=!1;break}return a},optimize:function(){for(var a=R.arraySlice(this.times),
 b=R.arraySlice(this.values),c=this.getValueSize(),d=2302===this.getInterpolation(),e=1,f=a.length-1,g=1;g<f;++g){var h=!1,l=a[g];if(l!==a[g+1]&&(1!==g||l!==l[0]))if(d)h=!0;else{var k=g*c,n=k-c,p=k+c;for(l=0;l!==c;++l){var x=b[k+l];if(x!==b[n+l]||x!==b[p+l]){h=!0;break}}}if(h){if(g!==e)for(a[e]=a[g],h=g*c,k=e*c,l=0;l!==c;++l)b[k+l]=b[h+l];++e}}if(0<f){a[e]=a[f];h=f*c;k=e*c;for(l=0;l!==c;++l)b[k+l]=b[h+l];++e}e!==a.length?(this.times=R.arraySlice(a,0,e),this.values=R.arraySlice(b,0,e*c)):(this.times=
 a,this.values=b);return this},clone:function(){var a=R.arraySlice(this.times,0),b=R.arraySlice(this.values,0);a=new this.constructor(this.name,a,b);a.createInterpolant=this.createInterpolant;return a}});Ze.prototype=Object.assign(Object.create(sa.prototype),{constructor:Ze,ValueTypeName:"bool",ValueBufferType:Array,DefaultInterpolation:2300,InterpolantFactoryMethodLinear:void 0,InterpolantFactoryMethodSmooth:void 0});$e.prototype=Object.assign(Object.create(sa.prototype),{constructor:$e,ValueTypeName:"color"});
-dd.prototype=Object.assign(Object.create(sa.prototype),{constructor:dd,ValueTypeName:"number"});af.prototype=Object.assign(Object.create(La.prototype),{constructor:af,interpolate_:function(a,b,c,d){var e=this.resultBuffer,f=this.sampleValues,g=this.valueSize;a*=g;b=(c-b)/(d-b);for(c=a+g;a!==c;a+=4)Aa.slerpFlat(e,0,f,a-g,f,a,b);return e}});pe.prototype=Object.assign(Object.create(sa.prototype),{constructor:pe,ValueTypeName:"quaternion",DefaultInterpolation:2301,InterpolantFactoryMethodLinear:function(a){return new af(this.times,
+dd.prototype=Object.assign(Object.create(sa.prototype),{constructor:dd,ValueTypeName:"number"});af.prototype=Object.assign(Object.create(La.prototype),{constructor:af,interpolate_:function(a,b,c,d){var e=this.resultBuffer,f=this.sampleValues,g=this.valueSize;a*=g;b=(c-b)/(d-b);for(c=a+g;a!==c;a+=4)Aa.slerpFlat(e,0,f,a-g,f,a,b);return e}});oe.prototype=Object.assign(Object.create(sa.prototype),{constructor:oe,ValueTypeName:"quaternion",DefaultInterpolation:2301,InterpolantFactoryMethodLinear:function(a){return new af(this.times,
 this.values,this.getValueSize(),a)},InterpolantFactoryMethodSmooth:void 0});bf.prototype=Object.assign(Object.create(sa.prototype),{constructor:bf,ValueTypeName:"string",ValueBufferType:Array,DefaultInterpolation:2300,InterpolantFactoryMethodLinear:void 0,InterpolantFactoryMethodSmooth:void 0});ed.prototype=Object.assign(Object.create(sa.prototype),{constructor:ed,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(Qk(c[e]).scale(d));
 return new Qa(a.name,a.duration,b)},toJSON:function(a){var b=[],c=a.tracks;a={name:a.name,duration:a.duration,tracks:b,uuid:a.uuid};for(var d=0,e=c.length;d!==e;++d)b.push(sa.toJSON(c[d]));return a},CreateFromMorphTargetSequence:function(a,b,c,d){for(var e=b.length,f=[],g=0;g<e;g++){var h=[],l=[];h.push((g+e-1)%e,g,(g+1)%e);l.push(0,1,0);var k=R.getKeyframeOrder(h);h=R.sortedArray(h,1,k);l=R.sortedArray(l,1,k);d||0!==h[0]||(h.push(e),l.push(l[0]));f.push((new dd(".morphTargetInfluences["+b[g].name+
 "]",h,l)).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],l=h.name.match(e);if(l&&1<l.length){var k=l[1];(l=d[k])||(d[k]=l=[]);l.push(h)}}a=[];for(k in d)a.push(Qa.CreateFromMorphTargetSequence(k,d[k],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=[];R.flattenJSON(c,f,g,d);0!==f.length&&e.push(new a(b,f,g))}},d=[],e=a.name||"default",f=a.length||-1,g=a.fps||30;a=a.hierarchy||[];for(var h=0;h<a.length;h++){var l=a[h].keys;if(l&&0!==l.length)if(l[0].morphTargets){f={};for(var k=0;k<l.length;k++)if(l[k].morphTargets)for(var n=0;n<l[k].morphTargets.length;n++)f[l[k].morphTargets[n]]=-1;for(var p in f){var x=
-[],r=[];for(n=0;n!==l[k].morphTargets.length;++n){var q=l[k];x.push(q.time);r.push(q.morphTarget===p?1:0)}d.push(new dd(".morphTargetInfluence["+p+"]",x,r))}f=f.length*(g||1)}else k=".bones["+b[h].name+"]",c(ed,k+".position",l,"pos",d),c(pe,k+".quaternion",l,"rot",d),c(ed,k+".scale",l,"scl",d)}return 0===d.length?null:new Qa(e,f,d)}});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=
+[],r=[];for(n=0;n!==l[k].morphTargets.length;++n){var q=l[k];x.push(q.time);r.push(q.morphTarget===p?1:0)}d.push(new dd(".morphTargetInfluence["+p+"]",x,r))}f=f.length*(g||1)}else k=".bones["+b[h].name+"]",c(ed,k+".position",l,"pos",d),c(oe,k+".quaternion",l,"rot",d),c(ed,k+".scale",l,"scl",d)}return 0===d.length?null:new Qa(e,f,d)}});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)}});var vc={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={}}},ki=new vg;Object.assign(W.prototype,{load:function(){},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}});var cb={};Ra.prototype=Object.assign(Object.create(W.prototype),{constructor:Ra,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=vc.get(a);if(void 0!==f)return e.manager.itemStart(a),setTimeout(function(){b&&b(f);e.manager.itemEnd(a)},0),f;if(void 0!==cb[a])cb[a].push({onLoad:b,onProgress:c,onError:d});else{var g=a.match(/^data:(.*?)(;base64)?,(.*)$/);if(g){c=g[1];var h=!!g[2];g=g[3];g=decodeURIComponent(g);h&&(g=atob(g));try{var l=(this.responseType||"").toLowerCase();switch(l){case "arraybuffer":case "blob":var k=new Uint8Array(g.length);
@@ -776,14 +776,14 @@ a);this.aX=a.aX;this.aY=a.aY;this.xRadius=a.xRadius;this.yRadius=a.yRadius;this.
 d=c.length;a*=d-(this.closed?0:1);var e=Math.floor(a);a-=e;this.closed?e+=0<e?0:(Math.floor(Math.abs(e)/d)+1)*d:0===a&&e===d-1&&(e=d-2,a=1);if(this.closed||0<e)var f=c[(e-1)%d];else Tf.subVectors(c[0],c[1]).add(c[0]),f=Tf;var g=c[e%d];var h=c[(e+1)%d];this.closed||e+2<d?c=c[(e+2)%d]:(Tf.subVectors(c[d-1],c[d-2]).add(c[d-1]),c=Tf);if("centripetal"===this.curveType||"chordal"===this.curveType){var l="chordal"===this.curveType?.5:.25;d=Math.pow(f.distanceToSquared(g),l);e=Math.pow(g.distanceToSquared(h),
 l);l=Math.pow(h.distanceToSquared(c),l);1E-4>e&&(e=1);1E-4>d&&(d=e);1E-4>l&&(l=e);ph.initNonuniformCatmullRom(f.x,g.x,h.x,c.x,d,e,l);qh.initNonuniformCatmullRom(f.y,g.y,h.y,c.y,d,e,l);rh.initNonuniformCatmullRom(f.z,g.z,h.z,c.z,d,e,l)}else"catmullrom"===this.curveType&&(ph.initCatmullRom(f.x,g.x,h.x,c.x,this.tension),qh.initCatmullRom(f.y,g.y,h.y,c.y,this.tension),rh.initCatmullRom(f.z,g.z,h.z,c.z,this.tension));b.set(ph.calc(a),qh.calc(a),rh.calc(a));return b};pa.prototype.copy=function(a){G.prototype.copy.call(this,
 a);this.points=[];for(var b=0,c=a.points.length;b<c;b++)this.points.push(a.points[b].clone());this.closed=a.closed;this.curveType=a.curveType;this.tension=a.tension;return this};pa.prototype.toJSON=function(){var a=G.prototype.toJSON.call(this);a.points=[];for(var b=0,c=this.points.length;b<c;b++)a.points.push(this.points[b].toArray());a.closed=this.closed;a.curveType=this.curveType;a.tension=this.tension;return a};pa.prototype.fromJSON=function(a){G.prototype.fromJSON.call(this,a);this.points=[];
-for(var b=0,c=a.points.length;b<c;b++){var d=a.points[b];this.points.push((new n).fromArray(d))}this.closed=a.closed;this.curveType=a.curveType;this.tension=a.tension;return this};Wa.prototype=Object.create(G.prototype);Wa.prototype.constructor=Wa;Wa.prototype.isCubicBezierCurve=!0;Wa.prototype.getPoint=function(a,b){b=b||new t;var c=this.v0,d=this.v1,e=this.v2,f=this.v3;b.set(re(a,c.x,d.x,e.x,f.x),re(a,c.y,d.y,e.y,f.y));return b};Wa.prototype.copy=function(a){G.prototype.copy.call(this,a);this.v0.copy(a.v0);
+for(var b=0,c=a.points.length;b<c;b++){var d=a.points[b];this.points.push((new n).fromArray(d))}this.closed=a.closed;this.curveType=a.curveType;this.tension=a.tension;return this};Wa.prototype=Object.create(G.prototype);Wa.prototype.constructor=Wa;Wa.prototype.isCubicBezierCurve=!0;Wa.prototype.getPoint=function(a,b){b=b||new t;var c=this.v0,d=this.v1,e=this.v2,f=this.v3;b.set(qe(a,c.x,d.x,e.x,f.x),qe(a,c.y,d.y,e.y,f.y));return b};Wa.prototype.copy=function(a){G.prototype.copy.call(this,a);this.v0.copy(a.v0);
 this.v1.copy(a.v1);this.v2.copy(a.v2);this.v3.copy(a.v3);return this};Wa.prototype.toJSON=function(){var a=G.prototype.toJSON.call(this);a.v0=this.v0.toArray();a.v1=this.v1.toArray();a.v2=this.v2.toArray();a.v3=this.v3.toArray();return a};Wa.prototype.fromJSON=function(a){G.prototype.fromJSON.call(this,a);this.v0.fromArray(a.v0);this.v1.fromArray(a.v1);this.v2.fromArray(a.v2);this.v3.fromArray(a.v3);return this};hb.prototype=Object.create(G.prototype);hb.prototype.constructor=hb;hb.prototype.isCubicBezierCurve3=
-!0;hb.prototype.getPoint=function(a,b){b=b||new n;var c=this.v0,d=this.v1,e=this.v2,f=this.v3;b.set(re(a,c.x,d.x,e.x,f.x),re(a,c.y,d.y,e.y,f.y),re(a,c.z,d.z,e.z,f.z));return b};hb.prototype.copy=function(a){G.prototype.copy.call(this,a);this.v0.copy(a.v0);this.v1.copy(a.v1);this.v2.copy(a.v2);this.v3.copy(a.v3);return this};hb.prototype.toJSON=function(){var a=G.prototype.toJSON.call(this);a.v0=this.v0.toArray();a.v1=this.v1.toArray();a.v2=this.v2.toArray();a.v3=this.v3.toArray();return a};hb.prototype.fromJSON=
+!0;hb.prototype.getPoint=function(a,b){b=b||new n;var c=this.v0,d=this.v1,e=this.v2,f=this.v3;b.set(qe(a,c.x,d.x,e.x,f.x),qe(a,c.y,d.y,e.y,f.y),qe(a,c.z,d.z,e.z,f.z));return b};hb.prototype.copy=function(a){G.prototype.copy.call(this,a);this.v0.copy(a.v0);this.v1.copy(a.v1);this.v2.copy(a.v2);this.v3.copy(a.v3);return this};hb.prototype.toJSON=function(){var a=G.prototype.toJSON.call(this);a.v0=this.v0.toArray();a.v1=this.v1.toArray();a.v2=this.v2.toArray();a.v3=this.v3.toArray();return a};hb.prototype.fromJSON=
 function(a){G.prototype.fromJSON.call(this,a);this.v0.fromArray(a.v0);this.v1.fromArray(a.v1);this.v2.fromArray(a.v2);this.v3.fromArray(a.v3);return this};Da.prototype=Object.create(G.prototype);Da.prototype.constructor=Da;Da.prototype.isLineCurve=!0;Da.prototype.getPoint=function(a,b){b=b||new t;1===a?b.copy(this.v2):(b.copy(this.v2).sub(this.v1),b.multiplyScalar(a).add(this.v1));return b};Da.prototype.getPointAt=function(a,b){return this.getPoint(a,b)};Da.prototype.getTangent=function(){return this.v2.clone().sub(this.v1).normalize()};
 Da.prototype.copy=function(a){G.prototype.copy.call(this,a);this.v1.copy(a.v1);this.v2.copy(a.v2);return this};Da.prototype.toJSON=function(){var a=G.prototype.toJSON.call(this);a.v1=this.v1.toArray();a.v2=this.v2.toArray();return a};Da.prototype.fromJSON=function(a){G.prototype.fromJSON.call(this,a);this.v1.fromArray(a.v1);this.v2.fromArray(a.v2);return this};Xa.prototype=Object.create(G.prototype);Xa.prototype.constructor=Xa;Xa.prototype.isLineCurve3=!0;Xa.prototype.getPoint=function(a,b){b=b||
 new n;1===a?b.copy(this.v2):(b.copy(this.v2).sub(this.v1),b.multiplyScalar(a).add(this.v1));return b};Xa.prototype.getPointAt=function(a,b){return this.getPoint(a,b)};Xa.prototype.copy=function(a){G.prototype.copy.call(this,a);this.v1.copy(a.v1);this.v2.copy(a.v2);return this};Xa.prototype.toJSON=function(){var a=G.prototype.toJSON.call(this);a.v1=this.v1.toArray();a.v2=this.v2.toArray();return a};Xa.prototype.fromJSON=function(a){G.prototype.fromJSON.call(this,a);this.v1.fromArray(a.v1);this.v2.fromArray(a.v2);
-return this};Ya.prototype=Object.create(G.prototype);Ya.prototype.constructor=Ya;Ya.prototype.isQuadraticBezierCurve=!0;Ya.prototype.getPoint=function(a,b){b=b||new t;var c=this.v0,d=this.v1,e=this.v2;b.set(qe(a,c.x,d.x,e.x),qe(a,c.y,d.y,e.y));return b};Ya.prototype.copy=function(a){G.prototype.copy.call(this,a);this.v0.copy(a.v0);this.v1.copy(a.v1);this.v2.copy(a.v2);return this};Ya.prototype.toJSON=function(){var a=G.prototype.toJSON.call(this);a.v0=this.v0.toArray();a.v1=this.v1.toArray();a.v2=
-this.v2.toArray();return a};Ya.prototype.fromJSON=function(a){G.prototype.fromJSON.call(this,a);this.v0.fromArray(a.v0);this.v1.fromArray(a.v1);this.v2.fromArray(a.v2);return this};ib.prototype=Object.create(G.prototype);ib.prototype.constructor=ib;ib.prototype.isQuadraticBezierCurve3=!0;ib.prototype.getPoint=function(a,b){b=b||new n;var c=this.v0,d=this.v1,e=this.v2;b.set(qe(a,c.x,d.x,e.x),qe(a,c.y,d.y,e.y),qe(a,c.z,d.z,e.z));return b};ib.prototype.copy=function(a){G.prototype.copy.call(this,a);
+return this};Ya.prototype=Object.create(G.prototype);Ya.prototype.constructor=Ya;Ya.prototype.isQuadraticBezierCurve=!0;Ya.prototype.getPoint=function(a,b){b=b||new t;var c=this.v0,d=this.v1,e=this.v2;b.set(pe(a,c.x,d.x,e.x),pe(a,c.y,d.y,e.y));return b};Ya.prototype.copy=function(a){G.prototype.copy.call(this,a);this.v0.copy(a.v0);this.v1.copy(a.v1);this.v2.copy(a.v2);return this};Ya.prototype.toJSON=function(){var a=G.prototype.toJSON.call(this);a.v0=this.v0.toArray();a.v1=this.v1.toArray();a.v2=
+this.v2.toArray();return a};Ya.prototype.fromJSON=function(a){G.prototype.fromJSON.call(this,a);this.v0.fromArray(a.v0);this.v1.fromArray(a.v1);this.v2.fromArray(a.v2);return this};ib.prototype=Object.create(G.prototype);ib.prototype.constructor=ib;ib.prototype.isQuadraticBezierCurve3=!0;ib.prototype.getPoint=function(a,b){b=b||new n;var c=this.v0,d=this.v1,e=this.v2;b.set(pe(a,c.x,d.x,e.x),pe(a,c.y,d.y,e.y),pe(a,c.z,d.z,e.z));return b};ib.prototype.copy=function(a){G.prototype.copy.call(this,a);
 this.v0.copy(a.v0);this.v1.copy(a.v1);this.v2.copy(a.v2);return this};ib.prototype.toJSON=function(){var a=G.prototype.toJSON.call(this);a.v0=this.v0.toArray();a.v1=this.v1.toArray();a.v2=this.v2.toArray();return a};ib.prototype.fromJSON=function(a){G.prototype.fromJSON.call(this,a);this.v0.fromArray(a.v0);this.v1.fromArray(a.v1);this.v2.fromArray(a.v2);return this};Za.prototype=Object.create(G.prototype);Za.prototype.constructor=Za;Za.prototype.isSplineCurve=!0;Za.prototype.getPoint=function(a,b){b=
 b||new t;var c=this.points,d=(c.length-1)*a;a=Math.floor(d);d-=a;var e=c[0===a?a:a-1],f=c[a],g=c[a>c.length-2?c.length-1:a+1];c=c[a>c.length-3?c.length-1:a+2];b.set(li(d,e.x,f.x,g.x,c.x),li(d,e.y,f.y,g.y,c.y));return b};Za.prototype.copy=function(a){G.prototype.copy.call(this,a);this.points=[];for(var b=0,c=a.points.length;b<c;b++)this.points.push(a.points[b].clone());return this};Za.prototype.toJSON=function(){var a=G.prototype.toJSON.call(this);a.points=[];for(var b=0,c=this.points.length;b<c;b++)a.points.push(this.points[b].toArray());
 return a};Za.prototype.fromJSON=function(a){G.prototype.fromJSON.call(this,a);this.points=[];for(var b=0,c=a.points.length;b<c;b++){var d=a.points[b];this.points.push((new t).fromArray(d))}return this};var sh=Object.freeze({__proto__:null,ArcCurve:gd,CatmullRomCurve3:pa,CubicBezierCurve:Wa,CubicBezierCurve3:hb,EllipseCurve:Ma,LineCurve:Da,LineCurve3:Xa,QuadraticBezierCurve:Ya,QuadraticBezierCurve3:ib,SplineCurve:Za});vb.prototype=Object.assign(Object.create(G.prototype),{constructor:vb,add:function(a){this.curves.push(a)},
@@ -837,55 +837,56 @@ l[k];p=/^(\/\/)|([a-z]+:(\/\/)?)/i.test(p)?p:d.resourcePath+p;e[h.uuid].push(c(p
 g.uuid);void 0===b[g.image]&&console.warn("THREE.ObjectLoader: Undefined image",g.image);var h=Array.isArray(b[g.image])?new qb(b[g.image]):new V(b[g.image]);h.needsUpdate=!0;h.uuid=g.uuid;void 0!==g.name&&(h.name=g.name);void 0!==g.mapping&&(h.mapping=c(g.mapping,cl));void 0!==g.offset&&h.offset.fromArray(g.offset);void 0!==g.repeat&&h.repeat.fromArray(g.repeat);void 0!==g.center&&h.center.fromArray(g.center);void 0!==g.rotation&&(h.rotation=g.rotation);void 0!==g.wrap&&(h.wrapS=c(g.wrap[0],aj),
 h.wrapT=c(g.wrap[1],aj));void 0!==g.format&&(h.format=g.format);void 0!==g.type&&(h.type=g.type);void 0!==g.encoding&&(h.encoding=g.encoding);void 0!==g.minFilter&&(h.minFilter=c(g.minFilter,bj));void 0!==g.magFilter&&(h.magFilter=c(g.magFilter,bj));void 0!==g.anisotropy&&(h.anisotropy=g.anisotropy);void 0!==g.flipY&&(h.flipY=g.flipY);void 0!==g.premultiplyAlpha&&(h.premultiplyAlpha=g.premultiplyAlpha);void 0!==g.unpackAlignment&&(h.unpackAlignment=g.unpackAlignment);d[g.uuid]=h}return d},parseObject:function(a,
 b,c){function d(a){void 0===b[a]&&console.warn("THREE.ObjectLoader: Undefined geometry",a);return b[a]}function e(a){if(void 0!==a){if(Array.isArray(a)){for(var b=[],d=0,e=a.length;d<e;d++){var f=a[d];void 0===c[f]&&console.warn("THREE.ObjectLoader: Undefined material",f);b.push(c[f])}return b}void 0===c[a]&&console.warn("THREE.ObjectLoader: Undefined material",a);return c[a]}}switch(a.type){case "Scene":var f=new ob;void 0!==a.background&&Number.isInteger(a.background)&&(f.background=new A(a.background));
-void 0!==a.fog&&("Fog"===a.fog.type?f.fog=new Se(a.fog.color,a.fog.near,a.fog.far):"FogExp2"===a.fog.type&&(f.fog=new Re(a.fog.color,a.fog.density)));break;case "PerspectiveCamera":f=new aa(a.fov,a.aspect,a.near,a.far);void 0!==a.focus&&(f.focus=a.focus);void 0!==a.zoom&&(f.zoom=a.zoom);void 0!==a.filmGauge&&(f.filmGauge=a.filmGauge);void 0!==a.filmOffset&&(f.filmOffset=a.filmOffset);void 0!==a.view&&(f.view=Object.assign({},a.view));break;case "OrthographicCamera":f=new hd(a.left,a.right,a.top,a.bottom,
+void 0!==a.fog&&("Fog"===a.fog.type?f.fog=new Re(a.fog.color,a.fog.near,a.fog.far):"FogExp2"===a.fog.type&&(f.fog=new Qe(a.fog.color,a.fog.density)));break;case "PerspectiveCamera":f=new aa(a.fov,a.aspect,a.near,a.far);void 0!==a.focus&&(f.focus=a.focus);void 0!==a.zoom&&(f.zoom=a.zoom);void 0!==a.filmGauge&&(f.filmGauge=a.filmGauge);void 0!==a.filmOffset&&(f.filmOffset=a.filmOffset);void 0!==a.view&&(f.view=Object.assign({},a.view));break;case "OrthographicCamera":f=new hd(a.left,a.right,a.top,a.bottom,
 a.near,a.far);void 0!==a.zoom&&(f.zoom=a.zoom);void 0!==a.view&&(f.view=Object.assign({},a.view));break;case "AmbientLight":f=new mf(a.color,a.intensity);break;case "DirectionalLight":f=new lf(a.color,a.intensity);break;case "PointLight":f=new jf(a.color,a.intensity,a.distance,a.decay);break;case "RectAreaLight":f=new nf(a.color,a.intensity,a.width,a.height);break;case "SpotLight":f=new hf(a.color,a.intensity,a.distance,a.angle,a.penumbra,a.decay);break;case "HemisphereLight":f=new ff(a.color,a.groundColor,
-a.intensity);break;case "SkinnedMesh":console.warn("THREE.ObjectLoader.parseObject() does not support SkinnedMesh yet.");case "Mesh":f=d(a.geometry);var g=e(a.material);f=f.bones&&0<f.bones.length?new Sd(f,g):new S(f,g);break;case "InstancedMesh":f=d(a.geometry);g=e(a.material);var h=a.instanceMatrix;f=new Ve(f,g,a.count);f.instanceMatrix=new M(new Float32Array(h.array),16);break;case "LOD":f=new Rd;break;case "Line":f=new Ka(d(a.geometry),e(a.material),a.mode);break;case "LineLoop":f=new We(d(a.geometry),
-e(a.material));break;case "LineSegments":f=new ma(d(a.geometry),e(a.material));break;case "PointCloud":case "Points":f=new Pc(d(a.geometry),e(a.material));break;case "Sprite":f=new Pd(e(a.material));break;case "Group":f=new Mc;break;default:f=new F}f.uuid=a.uuid;void 0!==a.name&&(f.name=a.name);void 0!==a.matrix?(f.matrix.fromArray(a.matrix),void 0!==a.matrixAutoUpdate&&(f.matrixAutoUpdate=a.matrixAutoUpdate),f.matrixAutoUpdate&&f.matrix.decompose(f.position,f.quaternion,f.scale)):(void 0!==a.position&&
-f.position.fromArray(a.position),void 0!==a.rotation&&f.rotation.fromArray(a.rotation),void 0!==a.quaternion&&f.quaternion.fromArray(a.quaternion),void 0!==a.scale&&f.scale.fromArray(a.scale));void 0!==a.castShadow&&(f.castShadow=a.castShadow);void 0!==a.receiveShadow&&(f.receiveShadow=a.receiveShadow);a.shadow&&(void 0!==a.shadow.bias&&(f.shadow.bias=a.shadow.bias),void 0!==a.shadow.radius&&(f.shadow.radius=a.shadow.radius),void 0!==a.shadow.mapSize&&f.shadow.mapSize.fromArray(a.shadow.mapSize),
-void 0!==a.shadow.camera&&(f.shadow.camera=this.parseObject(a.shadow.camera)));void 0!==a.visible&&(f.visible=a.visible);void 0!==a.frustumCulled&&(f.frustumCulled=a.frustumCulled);void 0!==a.renderOrder&&(f.renderOrder=a.renderOrder);void 0!==a.userData&&(f.userData=a.userData);void 0!==a.layers&&(f.layers.mask=a.layers);if(void 0!==a.children)for(h=a.children,g=0;g<h.length;g++)f.add(this.parseObject(h[g],b,c));if("LOD"===a.type)for(void 0!==a.autoUpdate&&(f.autoUpdate=a.autoUpdate),a=a.levels,
-h=0;h<a.length;h++){g=a[h];var l=f.getObjectByProperty("uuid",g.object);void 0!==l&&f.addLevel(l,g.distance)}return f}});var cl={UVMapping:300,CubeReflectionMapping:301,CubeRefractionMapping:302,EquirectangularReflectionMapping:303,EquirectangularRefractionMapping:304,SphericalReflectionMapping:305,CubeUVReflectionMapping:306,CubeUVRefractionMapping:307},aj={RepeatWrapping:1E3,ClampToEdgeWrapping:1001,MirroredRepeatWrapping:1002},bj={NearestFilter:1003,NearestMipmapNearestFilter:1004,NearestMipmapLinearFilter:1005,
-LinearFilter:1006,LinearMipmapNearestFilter:1007,LinearMipmapLinearFilter:1008};Ag.prototype=Object.assign(Object.create(W.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=vc.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){vc.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 $a;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 Kb;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=sb.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 Kb;h.curves=g.curves;b.push(h);return b}var l=!e(f[0].getPoints());l=a?!l:l;h=[];var k=[],n=[],p=0;k[p]=void 0;n[p]=[];for(var t=0,r=f.length;t<r;t++){g=f[t];var q=g.getPoints();var v=e(q);(v=a?!v:v)?(!l&&k[p]&&
-p++,k[p]={s:new Kb,p:q},k[p].s.curves=g.curves,l&&p++,n[p]=[]):n[p].push({h:g,p:q[0]})}if(!k[0])return c(f);if(1<k.length){t=!1;a=[];e=0;for(f=k.length;e<f;e++)h[e]=[];e=0;for(f=k.length;e<f;e++)for(g=n[e],v=0;v<g.length;v++){l=g[v];p=!0;for(q=0;q<k.length;q++)d(l.p,k[q].p)&&(e!==q&&a.push({froms:e,tos:q,hole:v}),p?(p=!1,h[q].push(l)):t=!0);p&&h[e].push(l)}0<a.length&&(t||(n=h))}t=0;for(e=k.length;t<e;t++)for(h=k[t].s,b.push(h),a=n[t],f=0,g=a.length;f<g;f++)h.holes.push(a[f].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,l=0;l<e.length;l++){var k=e[l];if("\n"===k)g=0,h-=f;else{var n=k;k=d;var p=g,t=h,r=b,q=r.glyphs[n]||r.glyphs["?"];if(q){n=new Bg;if(q.o){r=q._cachedOutline||(q._cachedOutline=q.o.split(" "));for(var v=0,y=r.length;v<y;)switch(r[v++]){case "m":var w=r[v++]*k+p;
-var z=r[v++]*k+t;n.moveTo(w,z);break;case "l":w=r[v++]*k+p;z=r[v++]*k+t;n.lineTo(w,z);break;case "q":var A=r[v++]*k+p;var C=r[v++]*k+t;var D=r[v++]*k+p;var B=r[v++]*k+t;n.quadraticCurveTo(D,B,A,C);break;case "b":A=r[v++]*k+p,C=r[v++]*k+t,D=r[v++]*k+p,B=r[v++]*k+t,w=r[v++]*k+p,z=r[v++]*k+t,n.bezierCurveTo(D,B,w,z,A,C)}}k={offsetX:q.ha*k,path:n}}else console.error('THREE.Font: character "'+n+'" does not exists in font family '+r.familyName+"."),k=void 0;g+=k.offsetX;a.push(k.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(W.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 Uf,Ig={getContext:function(){void 0===
-Uf&&(Uf=new (window.AudioContext||window.webkitAudioContext));return Uf},setContext:function(a){Uf=a}};tf.prototype=Object.assign(Object.create(W.prototype),{constructor:tf,load:function(a,b,c,d){var e=new Ra(this.manager);e.setResponseType("arraybuffer");e.setPath(this.path);e.load(a,function(a){a=a.slice(0);Ig.getContext().decodeAudioData(a,function(a){b(a)})},c,d)}});Object.assign(uf.prototype,{isSphericalHarmonics3:!0,set:function(a){for(var b=0;9>b;b++)this.coefficients[b].copy(a[b]);return this},
-zero:function(){for(var a=0;9>a;a++)this.coefficients[a].set(0,0,0);return this},getAt:function(a,b){var c=a.x,d=a.y;a=a.z;var e=this.coefficients;b.copy(e[0]).multiplyScalar(.282095);b.addScale(e[1],.488603*d);b.addScale(e[2],.488603*a);b.addScale(e[3],.488603*c);b.addScale(e[4],1.092548*c*d);b.addScale(e[5],1.092548*d*a);b.addScale(e[6],.315392*(3*a*a-1));b.addScale(e[7],1.092548*c*a);b.addScale(e[8],.546274*(c*c-d*d));return b},getIrradianceAt:function(a,b){var c=a.x,d=a.y;a=a.z;var e=this.coefficients;
-b.copy(e[0]).multiplyScalar(.886227);b.addScale(e[1],1.023328*d);b.addScale(e[2],1.023328*a);b.addScale(e[3],1.023328*c);b.addScale(e[4],.858086*c*d);b.addScale(e[5],.858086*d*a);b.addScale(e[6],.743125*a*a-.247708);b.addScale(e[7],.858086*c*a);b.addScale(e[8],.429043*(c*c-d*d));return b},add:function(a){for(var b=0;9>b;b++)this.coefficients[b].add(a.coefficients[b]);return this},scale:function(a){for(var b=0;9>b;b++)this.coefficients[b].multiplyScalar(a);return this},lerp:function(a,b){for(var c=
-0;9>c;c++)this.coefficients[c].lerp(a.coefficients[c],b);return this},equals:function(a){for(var b=0;9>b;b++)if(!this.coefficients[b].equals(a.coefficients[b]))return!1;return!0},copy:function(a){return this.set(a.coefficients)},clone:function(){return(new this.constructor).copy(this)},fromArray:function(a,b){void 0===b&&(b=0);for(var c=this.coefficients,d=0;9>d;d++)c[d].fromArray(a,b+3*d);return this},toArray:function(a,b){void 0===a&&(a=[]);void 0===b&&(b=0);for(var c=this.coefficients,d=0;9>d;d++)c[d].toArray(a,
-b+3*d);return a}});Object.assign(uf,{getBasisAt:function(a,b){var c=a.x,d=a.y;a=a.z;b[0]=.282095;b[1]=.488603*d;b[2]=.488603*a;b[3]=.488603*c;b[4]=1.092548*c*d;b[5]=1.092548*d*a;b[6]=.315392*(3*a*a-1);b[7]=1.092548*c*a;b[8]=.546274*(c*c-d*d)}});ab.prototype=Object.assign(Object.create(da.prototype),{constructor:ab,isLightProbe:!0,copy:function(a){da.prototype.copy.call(this,a);this.sh.copy(a.sh);this.intensity=a.intensity;return this},toJSON:function(a){return da.prototype.toJSON.call(this,a)}});
-Eg.prototype=Object.assign(Object.create(ab.prototype),{constructor:Eg,isHemisphereLightProbe:!0,copy:function(a){ab.prototype.copy.call(this,a);return this},toJSON:function(a){return ab.prototype.toJSON.call(this,a)}});Fg.prototype=Object.assign(Object.create(ab.prototype),{constructor:Fg,isAmbientLightProbe:!0,copy:function(a){ab.prototype.copy.call(this,a);return this},toJSON:function(a){return ab.prototype.toJSON.call(this,a)}});var cj=new P,dj=new P;Object.assign(mi.prototype,{update:function(a){var b=
-this._cache;if(b.focus!==a.focus||b.fov!==a.fov||b.aspect!==a.aspect*this.aspect||b.near!==a.near||b.far!==a.far||b.zoom!==a.zoom||b.eyeSep!==this.eyeSep){b.focus=a.focus;b.fov=a.fov;b.aspect=a.aspect*this.aspect;b.near=a.near;b.far=a.far;b.zoom=a.zoom;b.eyeSep=this.eyeSep;var c=a.projectionMatrix.clone(),d=b.eyeSep/2,e=d*b.near/b.focus,f=b.near*Math.tan(L.DEG2RAD*b.fov*.5)/b.zoom;dj.elements[12]=-d;cj.elements[12]=d;d=-f*b.aspect+e;var g=f*b.aspect+e;c.elements[0]=2*b.near/(g-d);c.elements[8]=(g+
-d)/(g-d);this.cameraL.projectionMatrix.copy(c);d=-f*b.aspect-e;g=f*b.aspect-e;c.elements[0]=2*b.near/(g-d);c.elements[8]=(g+d)/(g-d);this.cameraR.projectionMatrix.copy(c)}this.cameraL.matrixWorld.copy(a.matrixWorld).multiply(dj);this.cameraR.matrixWorld.copy(a.matrixWorld).multiply(cj)}});Object.assign(Gg.prototype,{start:function(){this.oldTime=this.startTime=("undefined"===typeof performance?Date:performance).now();this.elapsedTime=0;this.running=!0},stop:function(){this.getElapsedTime();this.autoStart=
-this.running=!1},getElapsedTime:function(){this.getDelta();return this.elapsedTime},getDelta:function(){var a=0;if(this.autoStart&&!this.running)return this.start(),0;if(this.running){var b=("undefined"===typeof performance?Date:performance).now();a=(b-this.oldTime)/1E3;this.oldTime=b;this.elapsedTime+=a}return a}});var wc=new n,ej=new Aa,dl=new n,xc=new n;Hg.prototype=Object.assign(Object.create(F.prototype),{constructor:Hg,getInput:function(){return this.gain},removeFilter:function(){null!==this.filter&&
-(this.gain.disconnect(this.filter),this.filter.disconnect(this.context.destination),this.gain.connect(this.context.destination),this.filter=null);return this},getFilter:function(){return this.filter},setFilter:function(a){null!==this.filter?(this.gain.disconnect(this.filter),this.filter.disconnect(this.context.destination)):this.gain.disconnect(this.context.destination);this.filter=a;this.gain.connect(this.filter);this.filter.connect(this.context.destination);return this},getMasterVolume:function(){return this.gain.gain.value},
-setMasterVolume:function(a){this.gain.gain.setTargetAtTime(a,this.context.currentTime,.01);return this},updateMatrixWorld:function(a){F.prototype.updateMatrixWorld.call(this,a);a=this.context.listener;var b=this.up;this.timeDelta=this._clock.getDelta();this.matrixWorld.decompose(wc,ej,dl);xc.set(0,0,-1).applyQuaternion(ej);if(a.positionX){var c=this.context.currentTime+this.timeDelta;a.positionX.linearRampToValueAtTime(wc.x,c);a.positionY.linearRampToValueAtTime(wc.y,c);a.positionZ.linearRampToValueAtTime(wc.z,
-c);a.forwardX.linearRampToValueAtTime(xc.x,c);a.forwardY.linearRampToValueAtTime(xc.y,c);a.forwardZ.linearRampToValueAtTime(xc.z,c);a.upX.linearRampToValueAtTime(b.x,c);a.upY.linearRampToValueAtTime(b.y,c);a.upZ.linearRampToValueAtTime(b.z,c)}else a.setPosition(wc.x,wc.y,wc.z),a.setOrientation(xc.x,xc.y,xc.z,b.x,b.y,b.z)}});id.prototype=Object.assign(Object.create(F.prototype),{constructor:id,getOutput:function(){return this.gain},setNodeSource:function(a){this.hasPlaybackControl=!1;this.sourceType=
-"audioNode";this.source=a;this.connect();return this},setMediaElementSource:function(a){this.hasPlaybackControl=!1;this.sourceType="mediaNode";this.source=this.context.createMediaElementSource(a);this.connect();return this},setMediaStreamSource:function(a){this.hasPlaybackControl=!1;this.sourceType="mediaStreamNode";this.source=this.context.createMediaStreamSource(a);this.connect();return this},setBuffer:function(a){this.buffer=a;this.sourceType="buffer";this.autoplay&&this.play();return this},play:function(a){void 0===
-a&&(a=0);if(!0===this.isPlaying)console.warn("THREE.Audio: Audio is already playing.");else if(!1===this.hasPlaybackControl)console.warn("THREE.Audio: this Audio has no playback control.");else return this._startedAt=this.context.currentTime+a,a=this.context.createBufferSource(),a.buffer=this.buffer,a.loop=this.loop,a.loopStart=this.loopStart,a.loopEnd=this.loopEnd,a.onended=this.onEnded.bind(this),a.start(this._startedAt,this._pausedAt+this.offset,this.duration),this.isPlaying=!0,this.source=a,this.setDetune(this.detune),
-this.setPlaybackRate(this.playbackRate),this.connect()},pause:function(){if(!1===this.hasPlaybackControl)console.warn("THREE.Audio: this Audio has no playback control.");else return!0===this.isPlaying&&(this._pausedAt+=Math.max(this.context.currentTime-this._startedAt,0)*this.playbackRate,this.source.stop(),this.source.onended=null,this.isPlaying=!1),this},stop:function(){if(!1===this.hasPlaybackControl)console.warn("THREE.Audio: this Audio has no playback control.");else return this._pausedAt=0,
-this.source.stop(),this.source.onended=null,this.isPlaying=!1,this},connect:function(){if(0<this.filters.length){this.source.connect(this.filters[0]);for(var a=1,b=this.filters.length;a<b;a++)this.filters[a-1].connect(this.filters[a]);this.filters[this.filters.length-1].connect(this.getOutput())}else this.source.connect(this.getOutput());return this},disconnect:function(){if(0<this.filters.length){this.source.disconnect(this.filters[0]);for(var a=1,b=this.filters.length;a<b;a++)this.filters[a-1].disconnect(this.filters[a]);
-this.filters[this.filters.length-1].disconnect(this.getOutput())}else this.source.disconnect(this.getOutput());return this},getFilters:function(){return this.filters},setFilters:function(a){a||(a=[]);!0===this.isPlaying?(this.disconnect(),this.filters=a,this.connect()):this.filters=a;return this},setDetune:function(a){this.detune=a;if(void 0!==this.source.detune)return!0===this.isPlaying&&this.source.detune.setTargetAtTime(this.detune,this.context.currentTime,.01),this},getDetune:function(){return this.detune},
-getFilter:function(){return this.getFilters()[0]},setFilter:function(a){return this.setFilters(a?[a]:[])},setPlaybackRate:function(a){if(!1===this.hasPlaybackControl)console.warn("THREE.Audio: this Audio has no playback control.");else return this.playbackRate=a,!0===this.isPlaying&&this.source.playbackRate.setTargetAtTime(this.playbackRate,this.context.currentTime,.01),this},getPlaybackRate:function(){return this.playbackRate},onEnded:function(){this.isPlaying=!1},getLoop:function(){return!1===this.hasPlaybackControl?
-(console.warn("THREE.Audio: this Audio has no playback control."),!1):this.loop},setLoop:function(a){if(!1===this.hasPlaybackControl)console.warn("THREE.Audio: this Audio has no playback control.");else return this.loop=a,!0===this.isPlaying&&(this.source.loop=this.loop),this},setLoopStart:function(a){this.loopStart=a;return this},setLoopEnd:function(a){this.loopEnd=a;return this},getVolume:function(){return this.gain.gain.value},setVolume:function(a){this.gain.gain.setTargetAtTime(a,this.context.currentTime,
-.01);return this}});var yc=new n,fj=new Aa,el=new n,zc=new n;Jg.prototype=Object.assign(Object.create(id.prototype),{constructor:Jg,getOutput:function(){return this.panner},getRefDistance:function(){return this.panner.refDistance},setRefDistance:function(a){this.panner.refDistance=a;return this},getRolloffFactor:function(){return this.panner.rolloffFactor},setRolloffFactor:function(a){this.panner.rolloffFactor=a;return this},getDistanceModel:function(){return this.panner.distanceModel},setDistanceModel:function(a){this.panner.distanceModel=
-a;return this},getMaxDistance:function(){return this.panner.maxDistance},setMaxDistance:function(a){this.panner.maxDistance=a;return this},setDirectionalCone:function(a,b,c){this.panner.coneInnerAngle=a;this.panner.coneOuterAngle=b;this.panner.coneOuterGain=c;return this},updateMatrixWorld:function(a){F.prototype.updateMatrixWorld.call(this,a);if(!0!==this.hasPlaybackControl||!1!==this.isPlaying)if(this.matrixWorld.decompose(yc,fj,el),zc.set(0,0,1).applyQuaternion(fj),a=this.panner,a.positionX){var b=
-this.context.currentTime+this.listener.timeDelta;a.positionX.linearRampToValueAtTime(yc.x,b);a.positionY.linearRampToValueAtTime(yc.y,b);a.positionZ.linearRampToValueAtTime(yc.z,b);a.orientationX.linearRampToValueAtTime(zc.x,b);a.orientationY.linearRampToValueAtTime(zc.y,b);a.orientationZ.linearRampToValueAtTime(zc.z,b)}else a.setPosition(yc.x,yc.y,yc.z),a.setOrientation(zc.x,zc.y,zc.z)}});Object.assign(Kg.prototype,{getFrequencyData:function(){this.analyser.getByteFrequencyData(this.data);return this.data},
-getAverageFrequency:function(){for(var a=0,b=this.getFrequencyData(),c=0;c<b.length;c++)a+=b[c];return a/b.length}});Object.assign(Lg.prototype,{accumulate:function(a,b){var c=this.buffer,d=this.valueSize;a=a*d+d;var e=this.cumulativeWeight;if(0===e){for(e=0;e!==d;++e)c[a+e]=c[e];e=b}else e+=b,this._mixBufferRegion(c,a,0,b/e,d);this.cumulativeWeight=e},apply:function(a){var b=this.valueSize,c=this.buffer;a=a*b+b;var d=this.cumulativeWeight,e=this.binding;this.cumulativeWeight=0;1>d&&this._mixBufferRegion(c,
-a,3*b,1-d,b);d=b;for(var f=b+b;d!==f;++d)if(c[d]!==c[d+b]){e.setValue(c,a);break}},saveOriginalState:function(){var a=this.buffer,b=this.valueSize,c=3*b;this.binding.getValue(a,c);for(var d=b;d!==c;++d)a[d]=a[c+d%b];this.cumulativeWeight=0},restoreOriginalState:function(){this.binding.setValue(this.buffer,3*this.valueSize)},_select:function(a,b,c,d,e){if(.5<=d)for(d=0;d!==e;++d)a[b+d]=a[c+d]},_slerp:function(a,b,c,d){Aa.slerpFlat(a,b,a,b,a,c,d)},_lerp:function(a,b,c,d,e){for(var f=1-d,g=0;g!==e;++g){var h=
-b+g;a[h]=a[h]*f+a[c+g]*d}}});var fl=/[\[\]\.:\/]/g,gl="[^"+"\\[\\]\\.:\\/".replace("\\.","")+"]",hl=/((?:WC+[\/:])*)/.source.replace("WC","[^\\[\\]\\.:\\/]"),il=/(WCOD+)?/.source.replace("WCOD",gl),jl=/(?:\.(WC+)(?:\[(.+)\])?)?/.source.replace("WC","[^\\[\\]\\.:\\/]"),kl=/\.(WC+)(?:\[(.+)\])?/.source.replace("WC","[^\\[\\]\\.:\\/]"),ll=new RegExp("^"+hl+il+jl+kl+"$"),ml=["material","materials","bones"];Object.assign(ni.prototype,{getValue:function(a,b){this.bind();var c=this._bindings[this._targetGroup.nCachedObjects_];
-void 0!==c&&c.getValue(a,b)},setValue:function(a,b){for(var c=this._bindings,d=this._targetGroup.nCachedObjects_,e=c.length;d!==e;++d)c[d].setValue(a,b)},bind:function(){for(var a=this._bindings,b=this._targetGroup.nCachedObjects_,c=a.length;b!==c;++b)a[b].bind()},unbind:function(){for(var a=this._bindings,b=this._targetGroup.nCachedObjects_,c=a.length;b!==c;++b)a[b].unbind()}});Object.assign(ya,{Composite:ni,create:function(a,b,c){return a&&a.isAnimationObjectGroup?new ya.Composite(a,b,c):new ya(a,
-b,c)},sanitizeNodeName:function(a){return a.replace(/\s/g,"_").replace(fl,"")},parseTrackName:function(a){var b=ll.exec(a);if(!b)throw Error("PropertyBinding: Cannot parse trackName: "+a);b={nodeName:b[2],objectName:b[3],objectIndex:b[4],propertyName:b[5],propertyIndex:b[6]};var c=b.nodeName&&b.nodeName.lastIndexOf(".");if(void 0!==c&&-1!==c){var d=b.nodeName.substring(c+1);-1!==ml.indexOf(d)&&(b.nodeName=b.nodeName.substring(0,c),b.objectName=d)}if(null===b.propertyName||0===b.propertyName.length)throw Error("PropertyBinding: can not parse propertyName from trackName: "+
-a);return b},findNode:function(a,b){if(!b||""===b||"."===b||-1===b||b===a.name||b===a.uuid)return a;if(a.skeleton){var c=a.skeleton.getBoneByName(b);if(void 0!==c)return c}if(a.children){var d=function(a){for(var c=0;c<a.length;c++){var e=a[c];if(e.name===b||e.uuid===b||(e=d(e.children)))return e}return null};if(a=d(a.children))return a}return null}});Object.assign(ya.prototype,{_getValue_unavailable:function(){},_setValue_unavailable:function(){},BindingType:{Direct:0,EntireArray:1,ArrayElement:2,
-HasFromToArray:3},Versioning:{None:0,NeedsUpdate:1,MatrixWorldNeedsUpdate:2},GetterByBindingType:[function(a,b){a[b]=this.node[this.propertyName]},function(a,b){for(var c=this.resolvedProperty,d=0,e=c.length;d!==e;++d)a[b++]=c[d]},function(a,b){a[b]=this.resolvedProperty[this.propertyIndex]},function(a,b){this.resolvedProperty.toArray(a,b)}],SetterByBindingTypeAndVersioning:[[function(a,b){this.targetObject[this.propertyName]=a[b]},function(a,b){this.targetObject[this.propertyName]=a[b];this.targetObject.needsUpdate=
-!0},function(a,b){this.targetObject[this.propertyName]=a[b];this.targetObject.matrixWorldNeedsUpdate=!0}],[function(a,b){for(var c=this.resolvedProperty,d=0,e=c.length;d!==e;++d)c[d]=a[b++]},function(a,b){for(var c=this.resolvedProperty,d=0,e=c.length;d!==e;++d)c[d]=a[b++];this.targetObject.needsUpdate=!0},function(a,b){for(var c=this.resolvedProperty,d=0,e=c.length;d!==e;++d)c[d]=a[b++];this.targetObject.matrixWorldNeedsUpdate=!0}],[function(a,b){this.resolvedProperty[this.propertyIndex]=a[b]},function(a,
-b){this.resolvedProperty[this.propertyIndex]=a[b];this.targetObject.needsUpdate=!0},function(a,b){this.resolvedProperty[this.propertyIndex]=a[b];this.targetObject.matrixWorldNeedsUpdate=!0}],[function(a,b){this.resolvedProperty.fromArray(a,b)},function(a,b){this.resolvedProperty.fromArray(a,b);this.targetObject.needsUpdate=!0},function(a,b){this.resolvedProperty.fromArray(a,b);this.targetObject.matrixWorldNeedsUpdate=!0}]],getValue:function(a,b){this.bind();this.getValue(a,b)},setValue:function(a,
-b){this.bind();this.setValue(a,b)},bind:function(){var a=this.node,b=this.parsedPath,c=b.objectName,d=b.propertyName,e=b.propertyIndex;a||(this.node=a=ya.findNode(this.rootNode,b.nodeName)||this.rootNode);this.getValue=this._getValue_unavailable;this.setValue=this._setValue_unavailable;if(a){if(c){var f=b.objectIndex;switch(c){case "materials":if(!a.material){console.error("THREE.PropertyBinding: Can not bind to material as node does not have a material.",this);return}if(!a.material.materials){console.error("THREE.PropertyBinding: Can not bind to material.materials as node.material does not have a materials array.",
-this);return}a=a.material.materials;break;case "bones":if(!a.skeleton){console.error("THREE.PropertyBinding: Can not bind to bones as node does not have a skeleton.",this);return}a=a.skeleton.bones;for(c=0;c<a.length;c++)if(a[c].name===f){f=c;break}break;default:if(void 0===a[c]){console.error("THREE.PropertyBinding: Can not bind to objectName of node undefined.",this);return}a=a[c]}if(void 0!==f){if(void 0===a[f]){console.error("THREE.PropertyBinding: Trying to bind to objectIndex of objectName, but is undefined.",
-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.",
+a.intensity);break;case "SkinnedMesh":console.warn("THREE.ObjectLoader.parseObject() does not support SkinnedMesh yet.");case "Mesh":f=d(a.geometry);var g=e(a.material);f=new S(f,g);break;case "InstancedMesh":f=d(a.geometry);g=e(a.material);var h=a.instanceMatrix;f=new Ve(f,g,a.count);f.instanceMatrix=new M(new Float32Array(h.array),16);break;case "LOD":f=new Rd;break;case "Line":f=new Ka(d(a.geometry),e(a.material),a.mode);break;case "LineLoop":f=new We(d(a.geometry),e(a.material));break;case "LineSegments":f=
+new ma(d(a.geometry),e(a.material));break;case "PointCloud":case "Points":f=new Pc(d(a.geometry),e(a.material));break;case "Sprite":f=new Pd(e(a.material));break;case "Group":f=new Mc;break;default:f=new F}f.uuid=a.uuid;void 0!==a.name&&(f.name=a.name);void 0!==a.matrix?(f.matrix.fromArray(a.matrix),void 0!==a.matrixAutoUpdate&&(f.matrixAutoUpdate=a.matrixAutoUpdate),f.matrixAutoUpdate&&f.matrix.decompose(f.position,f.quaternion,f.scale)):(void 0!==a.position&&f.position.fromArray(a.position),void 0!==
+a.rotation&&f.rotation.fromArray(a.rotation),void 0!==a.quaternion&&f.quaternion.fromArray(a.quaternion),void 0!==a.scale&&f.scale.fromArray(a.scale));void 0!==a.castShadow&&(f.castShadow=a.castShadow);void 0!==a.receiveShadow&&(f.receiveShadow=a.receiveShadow);a.shadow&&(void 0!==a.shadow.bias&&(f.shadow.bias=a.shadow.bias),void 0!==a.shadow.radius&&(f.shadow.radius=a.shadow.radius),void 0!==a.shadow.mapSize&&f.shadow.mapSize.fromArray(a.shadow.mapSize),void 0!==a.shadow.camera&&(f.shadow.camera=
+this.parseObject(a.shadow.camera)));void 0!==a.visible&&(f.visible=a.visible);void 0!==a.frustumCulled&&(f.frustumCulled=a.frustumCulled);void 0!==a.renderOrder&&(f.renderOrder=a.renderOrder);void 0!==a.userData&&(f.userData=a.userData);void 0!==a.layers&&(f.layers.mask=a.layers);if(void 0!==a.children)for(h=a.children,g=0;g<h.length;g++)f.add(this.parseObject(h[g],b,c));if("LOD"===a.type)for(void 0!==a.autoUpdate&&(f.autoUpdate=a.autoUpdate),a=a.levels,h=0;h<a.length;h++){g=a[h];var l=f.getObjectByProperty("uuid",
+g.object);void 0!==l&&f.addLevel(l,g.distance)}return f}});var cl={UVMapping:300,CubeReflectionMapping:301,CubeRefractionMapping:302,EquirectangularReflectionMapping:303,EquirectangularRefractionMapping:304,SphericalReflectionMapping:305,CubeUVReflectionMapping:306,CubeUVRefractionMapping:307},aj={RepeatWrapping:1E3,ClampToEdgeWrapping:1001,MirroredRepeatWrapping:1002},bj={NearestFilter:1003,NearestMipmapNearestFilter:1004,NearestMipmapLinearFilter:1005,LinearFilter:1006,LinearMipmapNearestFilter:1007,
+LinearMipmapLinearFilter:1008};Ag.prototype=Object.assign(Object.create(W.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=vc.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){vc.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 $a;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 Kb;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=sb.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 Kb;h.curves=g.curves;b.push(h);return b}var l=!e(f[0].getPoints());l=a?!l:l;h=[];var k=[],n=[],p=0;k[p]=void 0;n[p]=[];for(var t=0,r=f.length;t<r;t++){g=f[t];var q=g.getPoints();var v=e(q);(v=a?!v:v)?(!l&&k[p]&&p++,k[p]={s:new Kb,p:q},k[p].s.curves=g.curves,
+l&&p++,n[p]=[]):n[p].push({h:g,p:q[0]})}if(!k[0])return c(f);if(1<k.length){t=!1;a=[];e=0;for(f=k.length;e<f;e++)h[e]=[];e=0;for(f=k.length;e<f;e++)for(g=n[e],v=0;v<g.length;v++){l=g[v];p=!0;for(q=0;q<k.length;q++)d(l.p,k[q].p)&&(e!==q&&a.push({froms:e,tos:q,hole:v}),p?(p=!1,h[q].push(l)):t=!0);p&&h[e].push(l)}0<a.length&&(t||(n=h))}t=0;for(e=k.length;t<e;t++)for(h=k[t].s,b.push(h),a=n[t],f=0,g=a.length;f<g;f++)h.holes.push(a[f].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,l=0;l<e.length;l++){var k=e[l];if("\n"===k)g=0,h-=f;else{var n=k;k=d;var p=g,t=h,r=b,q=r.glyphs[n]||r.glyphs["?"];if(q){n=new Bg;if(q.o){r=q._cachedOutline||(q._cachedOutline=q.o.split(" "));for(var v=0,y=r.length;v<y;)switch(r[v++]){case "m":var w=r[v++]*k+p;var z=r[v++]*k+t;n.moveTo(w,z);break;
+case "l":w=r[v++]*k+p;z=r[v++]*k+t;n.lineTo(w,z);break;case "q":var A=r[v++]*k+p;var C=r[v++]*k+t;var D=r[v++]*k+p;var B=r[v++]*k+t;n.quadraticCurveTo(D,B,A,C);break;case "b":A=r[v++]*k+p,C=r[v++]*k+t,D=r[v++]*k+p,B=r[v++]*k+t,w=r[v++]*k+p,z=r[v++]*k+t,n.bezierCurveTo(D,B,w,z,A,C)}}k={offsetX:q.ha*k,path:n}}else console.error('THREE.Font: character "'+n+'" does not exists in font family '+r.familyName+"."),k=void 0;g+=k.offsetX;a.push(k.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(W.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 Uf,Ig={getContext:function(){void 0===Uf&&(Uf=new (window.AudioContext||
+window.webkitAudioContext));return Uf},setContext:function(a){Uf=a}};tf.prototype=Object.assign(Object.create(W.prototype),{constructor:tf,load:function(a,b,c,d){var e=new Ra(this.manager);e.setResponseType("arraybuffer");e.setPath(this.path);e.load(a,function(a){a=a.slice(0);Ig.getContext().decodeAudioData(a,function(a){b(a)})},c,d)}});Object.assign(uf.prototype,{isSphericalHarmonics3:!0,set:function(a){for(var b=0;9>b;b++)this.coefficients[b].copy(a[b]);return this},zero:function(){for(var a=0;9>
+a;a++)this.coefficients[a].set(0,0,0);return this},getAt:function(a,b){var c=a.x,d=a.y;a=a.z;var e=this.coefficients;b.copy(e[0]).multiplyScalar(.282095);b.addScaledVector(e[1],.488603*d);b.addScaledVector(e[2],.488603*a);b.addScaledVector(e[3],.488603*c);b.addScaledVector(e[4],1.092548*c*d);b.addScaledVector(e[5],1.092548*d*a);b.addScaledVector(e[6],.315392*(3*a*a-1));b.addScaledVector(e[7],1.092548*c*a);b.addScaledVector(e[8],.546274*(c*c-d*d));return b},getIrradianceAt:function(a,b){var c=a.x,
+d=a.y;a=a.z;var e=this.coefficients;b.copy(e[0]).multiplyScalar(.886227);b.addScaledVector(e[1],1.023328*d);b.addScaledVector(e[2],1.023328*a);b.addScaledVector(e[3],1.023328*c);b.addScaledVector(e[4],.858086*c*d);b.addScaledVector(e[5],.858086*d*a);b.addScaledVector(e[6],.743125*a*a-.247708);b.addScaledVector(e[7],.858086*c*a);b.addScaledVector(e[8],.429043*(c*c-d*d));return b},add:function(a){for(var b=0;9>b;b++)this.coefficients[b].add(a.coefficients[b]);return this},addScaledSH:function(a,b){for(var c=
+0;9>c;c++)this.coefficients[c].addScaledVector(a.coefficients[c],b);return this},scale:function(a){for(var b=0;9>b;b++)this.coefficients[b].multiplyScalar(a);return this},lerp:function(a,b){for(var c=0;9>c;c++)this.coefficients[c].lerp(a.coefficients[c],b);return this},equals:function(a){for(var b=0;9>b;b++)if(!this.coefficients[b].equals(a.coefficients[b]))return!1;return!0},copy:function(a){return this.set(a.coefficients)},clone:function(){return(new this.constructor).copy(this)},fromArray:function(a,
+b){void 0===b&&(b=0);for(var c=this.coefficients,d=0;9>d;d++)c[d].fromArray(a,b+3*d);return this},toArray:function(a,b){void 0===a&&(a=[]);void 0===b&&(b=0);for(var c=this.coefficients,d=0;9>d;d++)c[d].toArray(a,b+3*d);return a}});Object.assign(uf,{getBasisAt:function(a,b){var c=a.x,d=a.y;a=a.z;b[0]=.282095;b[1]=.488603*d;b[2]=.488603*a;b[3]=.488603*c;b[4]=1.092548*c*d;b[5]=1.092548*d*a;b[6]=.315392*(3*a*a-1);b[7]=1.092548*c*a;b[8]=.546274*(c*c-d*d)}});ab.prototype=Object.assign(Object.create(da.prototype),
+{constructor:ab,isLightProbe:!0,copy:function(a){da.prototype.copy.call(this,a);this.sh.copy(a.sh);this.intensity=a.intensity;return this},toJSON:function(a){return da.prototype.toJSON.call(this,a)}});Eg.prototype=Object.assign(Object.create(ab.prototype),{constructor:Eg,isHemisphereLightProbe:!0,copy:function(a){ab.prototype.copy.call(this,a);return this},toJSON:function(a){return ab.prototype.toJSON.call(this,a)}});Fg.prototype=Object.assign(Object.create(ab.prototype),{constructor:Fg,isAmbientLightProbe:!0,
+copy:function(a){ab.prototype.copy.call(this,a);return this},toJSON:function(a){return ab.prototype.toJSON.call(this,a)}});var cj=new P,dj=new P;Object.assign(mi.prototype,{update:function(a){var b=this._cache;if(b.focus!==a.focus||b.fov!==a.fov||b.aspect!==a.aspect*this.aspect||b.near!==a.near||b.far!==a.far||b.zoom!==a.zoom||b.eyeSep!==this.eyeSep){b.focus=a.focus;b.fov=a.fov;b.aspect=a.aspect*this.aspect;b.near=a.near;b.far=a.far;b.zoom=a.zoom;b.eyeSep=this.eyeSep;var c=a.projectionMatrix.clone(),
+d=b.eyeSep/2,e=d*b.near/b.focus,f=b.near*Math.tan(L.DEG2RAD*b.fov*.5)/b.zoom;dj.elements[12]=-d;cj.elements[12]=d;d=-f*b.aspect+e;var g=f*b.aspect+e;c.elements[0]=2*b.near/(g-d);c.elements[8]=(g+d)/(g-d);this.cameraL.projectionMatrix.copy(c);d=-f*b.aspect-e;g=f*b.aspect-e;c.elements[0]=2*b.near/(g-d);c.elements[8]=(g+d)/(g-d);this.cameraR.projectionMatrix.copy(c)}this.cameraL.matrixWorld.copy(a.matrixWorld).multiply(dj);this.cameraR.matrixWorld.copy(a.matrixWorld).multiply(cj)}});Object.assign(Gg.prototype,
+{start:function(){this.oldTime=this.startTime=("undefined"===typeof performance?Date:performance).now();this.elapsedTime=0;this.running=!0},stop:function(){this.getElapsedTime();this.autoStart=this.running=!1},getElapsedTime:function(){this.getDelta();return this.elapsedTime},getDelta:function(){var a=0;if(this.autoStart&&!this.running)return this.start(),0;if(this.running){var b=("undefined"===typeof performance?Date:performance).now();a=(b-this.oldTime)/1E3;this.oldTime=b;this.elapsedTime+=a}return a}});
+var wc=new n,ej=new Aa,dl=new n,xc=new n;Hg.prototype=Object.assign(Object.create(F.prototype),{constructor:Hg,getInput:function(){return this.gain},removeFilter:function(){null!==this.filter&&(this.gain.disconnect(this.filter),this.filter.disconnect(this.context.destination),this.gain.connect(this.context.destination),this.filter=null);return this},getFilter:function(){return this.filter},setFilter:function(a){null!==this.filter?(this.gain.disconnect(this.filter),this.filter.disconnect(this.context.destination)):
+this.gain.disconnect(this.context.destination);this.filter=a;this.gain.connect(this.filter);this.filter.connect(this.context.destination);return this},getMasterVolume:function(){return this.gain.gain.value},setMasterVolume:function(a){this.gain.gain.setTargetAtTime(a,this.context.currentTime,.01);return this},updateMatrixWorld:function(a){F.prototype.updateMatrixWorld.call(this,a);a=this.context.listener;var b=this.up;this.timeDelta=this._clock.getDelta();this.matrixWorld.decompose(wc,ej,dl);xc.set(0,
+0,-1).applyQuaternion(ej);if(a.positionX){var c=this.context.currentTime+this.timeDelta;a.positionX.linearRampToValueAtTime(wc.x,c);a.positionY.linearRampToValueAtTime(wc.y,c);a.positionZ.linearRampToValueAtTime(wc.z,c);a.forwardX.linearRampToValueAtTime(xc.x,c);a.forwardY.linearRampToValueAtTime(xc.y,c);a.forwardZ.linearRampToValueAtTime(xc.z,c);a.upX.linearRampToValueAtTime(b.x,c);a.upY.linearRampToValueAtTime(b.y,c);a.upZ.linearRampToValueAtTime(b.z,c)}else a.setPosition(wc.x,wc.y,wc.z),a.setOrientation(xc.x,
+xc.y,xc.z,b.x,b.y,b.z)}});id.prototype=Object.assign(Object.create(F.prototype),{constructor:id,getOutput:function(){return this.gain},setNodeSource:function(a){this.hasPlaybackControl=!1;this.sourceType="audioNode";this.source=a;this.connect();return this},setMediaElementSource:function(a){this.hasPlaybackControl=!1;this.sourceType="mediaNode";this.source=this.context.createMediaElementSource(a);this.connect();return this},setMediaStreamSource:function(a){this.hasPlaybackControl=!1;this.sourceType=
+"mediaStreamNode";this.source=this.context.createMediaStreamSource(a);this.connect();return this},setBuffer:function(a){this.buffer=a;this.sourceType="buffer";this.autoplay&&this.play();return this},play:function(a){void 0===a&&(a=0);if(!0===this.isPlaying)console.warn("THREE.Audio: Audio is already playing.");else if(!1===this.hasPlaybackControl)console.warn("THREE.Audio: this Audio has no playback control.");else return this._startedAt=this.context.currentTime+a,a=this.context.createBufferSource(),
+a.buffer=this.buffer,a.loop=this.loop,a.loopStart=this.loopStart,a.loopEnd=this.loopEnd,a.onended=this.onEnded.bind(this),a.start(this._startedAt,this._pausedAt+this.offset,this.duration),this.isPlaying=!0,this.source=a,this.setDetune(this.detune),this.setPlaybackRate(this.playbackRate),this.connect()},pause:function(){if(!1===this.hasPlaybackControl)console.warn("THREE.Audio: this Audio has no playback control.");else return!0===this.isPlaying&&(this._pausedAt+=Math.max(this.context.currentTime-
+this._startedAt,0)*this.playbackRate,this.source.stop(),this.source.onended=null,this.isPlaying=!1),this},stop:function(){if(!1===this.hasPlaybackControl)console.warn("THREE.Audio: this Audio has no playback control.");else return this._pausedAt=0,this.source.stop(),this.source.onended=null,this.isPlaying=!1,this},connect:function(){if(0<this.filters.length){this.source.connect(this.filters[0]);for(var a=1,b=this.filters.length;a<b;a++)this.filters[a-1].connect(this.filters[a]);this.filters[this.filters.length-
+1].connect(this.getOutput())}else this.source.connect(this.getOutput());return this},disconnect:function(){if(0<this.filters.length){this.source.disconnect(this.filters[0]);for(var a=1,b=this.filters.length;a<b;a++)this.filters[a-1].disconnect(this.filters[a]);this.filters[this.filters.length-1].disconnect(this.getOutput())}else this.source.disconnect(this.getOutput());return this},getFilters:function(){return this.filters},setFilters:function(a){a||(a=[]);!0===this.isPlaying?(this.disconnect(),this.filters=
+a,this.connect()):this.filters=a;return this},setDetune:function(a){this.detune=a;if(void 0!==this.source.detune)return!0===this.isPlaying&&this.source.detune.setTargetAtTime(this.detune,this.context.currentTime,.01),this},getDetune:function(){return this.detune},getFilter:function(){return this.getFilters()[0]},setFilter:function(a){return this.setFilters(a?[a]:[])},setPlaybackRate:function(a){if(!1===this.hasPlaybackControl)console.warn("THREE.Audio: this Audio has no playback control.");else return this.playbackRate=
+a,!0===this.isPlaying&&this.source.playbackRate.setTargetAtTime(this.playbackRate,this.context.currentTime,.01),this},getPlaybackRate:function(){return this.playbackRate},onEnded:function(){this.isPlaying=!1},getLoop:function(){return!1===this.hasPlaybackControl?(console.warn("THREE.Audio: this Audio has no playback control."),!1):this.loop},setLoop:function(a){if(!1===this.hasPlaybackControl)console.warn("THREE.Audio: this Audio has no playback control.");else return this.loop=a,!0===this.isPlaying&&
+(this.source.loop=this.loop),this},setLoopStart:function(a){this.loopStart=a;return this},setLoopEnd:function(a){this.loopEnd=a;return this},getVolume:function(){return this.gain.gain.value},setVolume:function(a){this.gain.gain.setTargetAtTime(a,this.context.currentTime,.01);return this}});var yc=new n,fj=new Aa,el=new n,zc=new n;Jg.prototype=Object.assign(Object.create(id.prototype),{constructor:Jg,getOutput:function(){return this.panner},getRefDistance:function(){return this.panner.refDistance},
+setRefDistance:function(a){this.panner.refDistance=a;return this},getRolloffFactor:function(){return this.panner.rolloffFactor},setRolloffFactor:function(a){this.panner.rolloffFactor=a;return this},getDistanceModel:function(){return this.panner.distanceModel},setDistanceModel:function(a){this.panner.distanceModel=a;return this},getMaxDistance:function(){return this.panner.maxDistance},setMaxDistance:function(a){this.panner.maxDistance=a;return this},setDirectionalCone:function(a,b,c){this.panner.coneInnerAngle=
+a;this.panner.coneOuterAngle=b;this.panner.coneOuterGain=c;return this},updateMatrixWorld:function(a){F.prototype.updateMatrixWorld.call(this,a);if(!0!==this.hasPlaybackControl||!1!==this.isPlaying)if(this.matrixWorld.decompose(yc,fj,el),zc.set(0,0,1).applyQuaternion(fj),a=this.panner,a.positionX){var b=this.context.currentTime+this.listener.timeDelta;a.positionX.linearRampToValueAtTime(yc.x,b);a.positionY.linearRampToValueAtTime(yc.y,b);a.positionZ.linearRampToValueAtTime(yc.z,b);a.orientationX.linearRampToValueAtTime(zc.x,
+b);a.orientationY.linearRampToValueAtTime(zc.y,b);a.orientationZ.linearRampToValueAtTime(zc.z,b)}else a.setPosition(yc.x,yc.y,yc.z),a.setOrientation(zc.x,zc.y,zc.z)}});Object.assign(Kg.prototype,{getFrequencyData:function(){this.analyser.getByteFrequencyData(this.data);return this.data},getAverageFrequency:function(){for(var a=0,b=this.getFrequencyData(),c=0;c<b.length;c++)a+=b[c];return a/b.length}});Object.assign(Lg.prototype,{accumulate:function(a,b){var c=this.buffer,d=this.valueSize;a=a*d+d;
+var e=this.cumulativeWeight;if(0===e){for(e=0;e!==d;++e)c[a+e]=c[e];e=b}else e+=b,this._mixBufferRegion(c,a,0,b/e,d);this.cumulativeWeight=e},apply:function(a){var b=this.valueSize,c=this.buffer;a=a*b+b;var d=this.cumulativeWeight,e=this.binding;this.cumulativeWeight=0;1>d&&this._mixBufferRegion(c,a,3*b,1-d,b);d=b;for(var f=b+b;d!==f;++d)if(c[d]!==c[d+b]){e.setValue(c,a);break}},saveOriginalState:function(){var a=this.buffer,b=this.valueSize,c=3*b;this.binding.getValue(a,c);for(var d=b;d!==c;++d)a[d]=
+a[c+d%b];this.cumulativeWeight=0},restoreOriginalState:function(){this.binding.setValue(this.buffer,3*this.valueSize)},_select:function(a,b,c,d,e){if(.5<=d)for(d=0;d!==e;++d)a[b+d]=a[c+d]},_slerp:function(a,b,c,d){Aa.slerpFlat(a,b,a,b,a,c,d)},_lerp:function(a,b,c,d,e){for(var f=1-d,g=0;g!==e;++g){var h=b+g;a[h]=a[h]*f+a[c+g]*d}}});var fl=/[\[\]\.:\/]/g,gl="[^"+"\\[\\]\\.:\\/".replace("\\.","")+"]",hl=/((?:WC+[\/:])*)/.source.replace("WC","[^\\[\\]\\.:\\/]"),il=/(WCOD+)?/.source.replace("WCOD",gl),
+jl=/(?:\.(WC+)(?:\[(.+)\])?)?/.source.replace("WC","[^\\[\\]\\.:\\/]"),kl=/\.(WC+)(?:\[(.+)\])?/.source.replace("WC","[^\\[\\]\\.:\\/]"),ll=new RegExp("^"+hl+il+jl+kl+"$"),ml=["material","materials","bones"];Object.assign(ni.prototype,{getValue:function(a,b){this.bind();var c=this._bindings[this._targetGroup.nCachedObjects_];void 0!==c&&c.getValue(a,b)},setValue:function(a,b){for(var c=this._bindings,d=this._targetGroup.nCachedObjects_,e=c.length;d!==e;++d)c[d].setValue(a,b)},bind:function(){for(var a=
+this._bindings,b=this._targetGroup.nCachedObjects_,c=a.length;b!==c;++b)a[b].bind()},unbind:function(){for(var a=this._bindings,b=this._targetGroup.nCachedObjects_,c=a.length;b!==c;++b)a[b].unbind()}});Object.assign(ya,{Composite:ni,create:function(a,b,c){return a&&a.isAnimationObjectGroup?new ya.Composite(a,b,c):new ya(a,b,c)},sanitizeNodeName:function(a){return a.replace(/\s/g,"_").replace(fl,"")},parseTrackName:function(a){var b=ll.exec(a);if(!b)throw Error("PropertyBinding: Cannot parse trackName: "+
+a);b={nodeName:b[2],objectName:b[3],objectIndex:b[4],propertyName:b[5],propertyIndex:b[6]};var c=b.nodeName&&b.nodeName.lastIndexOf(".");if(void 0!==c&&-1!==c){var d=b.nodeName.substring(c+1);-1!==ml.indexOf(d)&&(b.nodeName=b.nodeName.substring(0,c),b.objectName=d)}if(null===b.propertyName||0===b.propertyName.length)throw Error("PropertyBinding: can not parse propertyName from trackName: "+a);return b},findNode:function(a,b){if(!b||""===b||"."===b||-1===b||b===a.name||b===a.uuid)return a;if(a.skeleton){var c=
+a.skeleton.getBoneByName(b);if(void 0!==c)return c}if(a.children){var d=function(a){for(var c=0;c<a.length;c++){var e=a[c];if(e.name===b||e.uuid===b||(e=d(e.children)))return e}return null};if(a=d(a.children))return a}return null}});Object.assign(ya.prototype,{_getValue_unavailable:function(){},_setValue_unavailable:function(){},BindingType:{Direct:0,EntireArray:1,ArrayElement:2,HasFromToArray:3},Versioning:{None:0,NeedsUpdate:1,MatrixWorldNeedsUpdate:2},GetterByBindingType:[function(a,b){a[b]=this.node[this.propertyName]},
+function(a,b){for(var c=this.resolvedProperty,d=0,e=c.length;d!==e;++d)a[b++]=c[d]},function(a,b){a[b]=this.resolvedProperty[this.propertyIndex]},function(a,b){this.resolvedProperty.toArray(a,b)}],SetterByBindingTypeAndVersioning:[[function(a,b){this.targetObject[this.propertyName]=a[b]},function(a,b){this.targetObject[this.propertyName]=a[b];this.targetObject.needsUpdate=!0},function(a,b){this.targetObject[this.propertyName]=a[b];this.targetObject.matrixWorldNeedsUpdate=!0}],[function(a,b){for(var c=
+this.resolvedProperty,d=0,e=c.length;d!==e;++d)c[d]=a[b++]},function(a,b){for(var c=this.resolvedProperty,d=0,e=c.length;d!==e;++d)c[d]=a[b++];this.targetObject.needsUpdate=!0},function(a,b){for(var c=this.resolvedProperty,d=0,e=c.length;d!==e;++d)c[d]=a[b++];this.targetObject.matrixWorldNeedsUpdate=!0}],[function(a,b){this.resolvedProperty[this.propertyIndex]=a[b]},function(a,b){this.resolvedProperty[this.propertyIndex]=a[b];this.targetObject.needsUpdate=!0},function(a,b){this.resolvedProperty[this.propertyIndex]=
+a[b];this.targetObject.matrixWorldNeedsUpdate=!0}],[function(a,b){this.resolvedProperty.fromArray(a,b)},function(a,b){this.resolvedProperty.fromArray(a,b);this.targetObject.needsUpdate=!0},function(a,b){this.resolvedProperty.fromArray(a,b);this.targetObject.matrixWorldNeedsUpdate=!0}]],getValue:function(a,b){this.bind();this.getValue(a,b)},setValue:function(a,b){this.bind();this.setValue(a,b)},bind:function(){var a=this.node,b=this.parsedPath,c=b.objectName,d=b.propertyName,e=b.propertyIndex;a||(this.node=
+a=ya.findNode(this.rootNode,b.nodeName)||this.rootNode);this.getValue=this._getValue_unavailable;this.setValue=this._setValue_unavailable;if(a){if(c){var f=b.objectIndex;switch(c){case "materials":if(!a.material){console.error("THREE.PropertyBinding: Can not bind to material as node does not have a material.",this);return}if(!a.material.materials){console.error("THREE.PropertyBinding: Can not bind to material.materials as node.material does not have a materials array.",this);return}a=a.material.materials;
+break;case "bones":if(!a.skeleton){console.error("THREE.PropertyBinding: Can not bind to bones as node does not have a skeleton.",this);return}a=a.skeleton.bones;for(c=0;c<a.length;c++)if(a[c].name===f){f=c;break}break;default:if(void 0===a[c]){console.error("THREE.PropertyBinding: Can not bind to objectName of node undefined.",this);return}a=a[c]}if(void 0!==f){if(void 0===a[f]){console.error("THREE.PropertyBinding: Trying to bind to objectIndex of objectName, but is undefined.",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}for(c=0;c<this.node.geometry.morphAttributes.position.length;c++)if(a.geometry.morphAttributes.position[c].name===e){e=c;break}}else{if(!a.geometry.morphTargets){console.error("THREE.PropertyBinding: Can not bind to morphTargetInfluences because node does not have a geometry.morphTargets.",
 this);return}for(c=0;c<this.node.geometry.morphTargets.length;c++)if(a.geometry.morphTargets[c].name===e){e=c;break}}}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=this._setValue_unbound}});Object.assign(ya.prototype,{_getValue_unbound:ya.prototype.getValue,_setValue_unbound:ya.prototype.setValue});Object.assign(oi.prototype,{isAnimationObjectGroup:!0,add:function(){for(var a=this._objects,b=a.length,c=this.nCachedObjects_,d=this._indicesByUUID,e=this._paths,f=this._parsedPaths,g=this._bindings,h=g.length,k=void 0,m=0,n=arguments.length;m!==
@@ -909,7 +910,7 @@ _isActiveAction:function(a){a=a._cacheIndex;return null!==a&&a<this._nActiveActi
 c=this._actionsByClip;d=c[b];var e=d.knownActions,f=e[e.length-1],g=a._byClipCacheIndex;f._byClipCacheIndex=g;e[g]=f;e.pop();a._byClipCacheIndex=null;delete d.actionByRoot[(a._localRoot||this._root).uuid];0===e.length&&delete c[b];this._removeInactiveBindingsForAction(a)},_removeInactiveBindingsForAction:function(a){a=a._propertyBindings;for(var b=0,c=a.length;b!==c;++b){var d=a[b];0===--d.referenceCount&&this._removeInactiveBinding(d)}},_lendAction:function(a){var b=this._actions,c=a._cacheIndex,
 d=this._nActiveActions++,e=b[d];a._cacheIndex=d;b[d]=a;e._cacheIndex=c;b[c]=e},_takeBackAction:function(a){var b=this._actions,c=a._cacheIndex,d=--this._nActiveActions,e=b[d];a._cacheIndex=d;b[d]=a;e._cacheIndex=c;b[c]=e},_addInactiveBinding:function(a,b,c){var d=this._bindingsByRootAndName,e=d[b],f=this._bindings;void 0===e&&(e={},d[b]=e);e[c]=a;a._cacheIndex=f.length;f.push(a)},_removeInactiveBinding:function(a){var b=this._bindings,c=a.binding,d=c.rootNode.uuid;c=c.path;var e=this._bindingsByRootAndName,
 f=e[d],g=b[b.length-1];a=a._cacheIndex;g._cacheIndex=a;b[a]=g;b.pop();delete f[c];0===Object.keys(f).length&&delete e[d]},_lendBinding:function(a){var b=this._bindings,c=a._cacheIndex,d=this._nActiveBindings++,e=b[d];a._cacheIndex=d;b[d]=a;e._cacheIndex=c;b[c]=e},_takeBackBinding:function(a){var b=this._bindings,c=a._cacheIndex,d=--this._nActiveBindings,e=b[d];a._cacheIndex=d;b[d]=a;e._cacheIndex=c;b[c]=e},_lendControlInterpolant:function(){var a=this._controlInterpolants,b=this._nActiveControlInterpolants++,
-c=a[b];void 0===c&&(c=new oe(new Float32Array(2),new Float32Array(2),1,this._controlInterpolantsResultBuffer),c.__cacheIndex=b,a[b]=c);return c},_takeBackControlInterpolant:function(a){var b=this._controlInterpolants,c=a.__cacheIndex,d=--this._nActiveControlInterpolants,e=b[d];a.__cacheIndex=d;b[d]=a;e.__cacheIndex=c;b[c]=e},_controlInterpolantsResultBuffer:new Float32Array(1),clipAction:function(a,b){var c=b||this._root,d=c.uuid;c="string"===typeof a?Qa.findByName(c,a):a;a=null!==c?c.uuid:a;var e=
+c=a[b];void 0===c&&(c=new ne(new Float32Array(2),new Float32Array(2),1,this._controlInterpolantsResultBuffer),c.__cacheIndex=b,a[b]=c);return c},_takeBackControlInterpolant:function(a){var b=this._controlInterpolants,c=a.__cacheIndex,d=--this._nActiveControlInterpolants,e=b[d];a.__cacheIndex=d;b[d]=a;e.__cacheIndex=c;b[c]=e},_controlInterpolantsResultBuffer:new Float32Array(1),clipAction:function(a,b){var c=b||this._root,d=c.uuid;c="string"===typeof a?Qa.findByName(c,a):a;a=null!==c?c.uuid:a;var e=
 this._actionsByClip[a],f=null;if(void 0!==e){f=e.actionByRoot[d];if(void 0!==f)return f;f=e.knownActions[0];null===c&&(c=f._clip)}if(null===c)return null;b=new pi(this,c,b);this._bindAction(b,f);this._addInactiveAction(b,a,d);return b},existingAction:function(a,b){var c=b||this._root;b=c.uuid;c="string"===typeof a?Qa.findByName(c,a):a;a=this._actionsByClip[c?c.uuid:a];return void 0!==a?a.actionByRoot[b]||null:null},stopAllAction:function(){for(var a=this._actions,b=this._nActiveActions,c=this._bindings,
 d=this._nActiveBindings,e=this._nActiveBindings=this._nActiveActions=0;e!==b;++e)a[e].reset();for(e=0;e!==d;++e)c[e].useCount=0;return this},update:function(a){a*=this.timeScale;for(var b=this._actions,c=this._nActiveActions,d=this.time+=a,e=Math.sign(a),f=this._accuIndex^=1,g=0;g!==c;++g)b[g]._update(d,a,e,f);a=this._bindings;b=this._nActiveBindings;for(g=0;g!==b;++g)a[g].apply(f);return this},setTime:function(a){for(var b=this.time=0;b<this._actions.length;b++)this._actions[b].time=0;return this.update(a)},
 getRoot:function(){return this._root},uncacheClip:function(a){var b=this._actions;a=a.uuid;var c=this._actionsByClip,d=c[a];if(void 0!==d){d=d.knownActions;for(var e=0,f=d.length;e!==f;++e){var g=d[e];this._deactivateAction(g);var h=g._cacheIndex,k=b[b.length-1];g._cacheIndex=null;g._byClipCacheIndex=null;k._cacheIndex=h;b[h]=k;b.pop();this._removeInactiveBindingsForAction(g)}delete c[a]}},uncacheRoot:function(a){a=a.uuid;var b=this._actionsByClip;for(d in b){var c=b[d].actionByRoot[a];void 0!==c&&
@@ -924,27 +925,27 @@ this.max.addScalar(a);return this},containsPoint:function(a){return a.x<this.min
 this.min.x||a.min.x>this.max.x||a.max.y<this.min.y||a.min.y>this.max.y?!1:!0},clampPoint:function(a,b){void 0===b&&(console.warn("THREE.Box2: .clampPoint() target is now required"),b=new t);return b.copy(a).clamp(this.min,this.max)},distanceToPoint:function(a){return gj.copy(a).clamp(this.min,this.max).sub(a).length()},intersect:function(a){this.min.max(a.min);this.max.min(a.max);return this},union:function(a){this.min.min(a.min);this.max.max(a.max);return this},translate:function(a){this.min.add(a);
 this.max.add(a);return this},equals:function(a){return a.min.equals(this.min)&&a.max.equals(this.max)}});var hj=new n,Vf=new n;Object.assign(Rg.prototype,{set:function(a,b){this.start.copy(a);this.end.copy(b);return this},clone:function(){return(new this.constructor).copy(this)},copy:function(a){this.start.copy(a.start);this.end.copy(a.end);return this},getCenter:function(a){void 0===a&&(console.warn("THREE.Line3: .getCenter() target is now required"),a=new n);return a.addVectors(this.start,this.end).multiplyScalar(.5)},
 delta:function(a){void 0===a&&(console.warn("THREE.Line3: .delta() target is now required"),a=new n);return a.subVectors(this.end,this.start)},distanceSq:function(){return this.start.distanceToSquared(this.end)},distance:function(){return this.start.distanceTo(this.end)},at:function(a,b){void 0===b&&(console.warn("THREE.Line3: .at() target is now required"),b=new n);return this.delta(b).multiplyScalar(a).add(this.start)},closestPointToPointParameter:function(a,b){hj.subVectors(a,this.start);Vf.subVectors(this.end,
-this.start);a=Vf.dot(Vf);a=Vf.dot(hj)/a;b&&(a=L.clamp(a,0,1));return a},closestPointToPoint:function(a,b,c){a=this.closestPointToPointParameter(a,b);void 0===c&&(console.warn("THREE.Line3: .closestPointToPoint() target is now required"),c=new n);return this.delta(c).multiplyScalar(a).add(this.start)},applyMatrix4:function(a){this.start.applyMatrix4(a);this.end.applyMatrix4(a);return this},equals:function(a){return a.start.equals(this.start)&&a.end.equals(this.end)}});se.prototype=Object.create(F.prototype);
-se.prototype.constructor=se;se.prototype.isImmediateRenderObject=!0;var ij=new n;jd.prototype=Object.create(F.prototype);jd.prototype.constructor=jd;jd.prototype.dispose=function(){this.cone.geometry.dispose();this.cone.material.dispose()};jd.prototype.update=function(){this.light.updateMatrixWorld();var a=this.light.distance?this.light.distance:1E3,b=a*Math.tan(this.light.angle);this.cone.scale.set(b,b,a);ij.setFromMatrixPosition(this.light.target.matrixWorld);this.cone.lookAt(ij);void 0!==this.color?
+this.start);a=Vf.dot(Vf);a=Vf.dot(hj)/a;b&&(a=L.clamp(a,0,1));return a},closestPointToPoint:function(a,b,c){a=this.closestPointToPointParameter(a,b);void 0===c&&(console.warn("THREE.Line3: .closestPointToPoint() target is now required"),c=new n);return this.delta(c).multiplyScalar(a).add(this.start)},applyMatrix4:function(a){this.start.applyMatrix4(a);this.end.applyMatrix4(a);return this},equals:function(a){return a.start.equals(this.start)&&a.end.equals(this.end)}});re.prototype=Object.create(F.prototype);
+re.prototype.constructor=re;re.prototype.isImmediateRenderObject=!0;var ij=new n;jd.prototype=Object.create(F.prototype);jd.prototype.constructor=jd;jd.prototype.dispose=function(){this.cone.geometry.dispose();this.cone.material.dispose()};jd.prototype.update=function(){this.light.updateMatrixWorld();var a=this.light.distance?this.light.distance:1E3,b=a*Math.tan(this.light.angle);this.cone.scale.set(b,b,a);ij.setFromMatrixPosition(this.light.target.matrixWorld);this.cone.lookAt(ij);void 0!==this.color?
 this.cone.material.color.set(this.color):this.cone.material.color.copy(this.light.color)};var Qb=new n,Wf=new P,vh=new P;rc.prototype=Object.create(ma.prototype);rc.prototype.constructor=rc;rc.prototype.isSkeletonHelper=!0;rc.prototype.updateMatrixWorld=function(a){var b=this.bones,c=this.geometry,d=c.getAttribute("position");vh.getInverse(this.root.matrixWorld);for(var e=0,f=0;e<b.length;e++){var g=b[e];g.parent&&g.parent.isBone&&(Wf.multiplyMatrices(vh,g.matrixWorld),Qb.setFromMatrixPosition(Wf),
 d.setXYZ(f,Qb.x,Qb.y,Qb.z),Wf.multiplyMatrices(vh,g.parent.matrixWorld),Qb.setFromMatrixPosition(Wf),d.setXYZ(f+1,Qb.x,Qb.y,Qb.z),f+=2)}c.getAttribute("position").needsUpdate=!0;F.prototype.updateMatrixWorld.call(this,a)};kd.prototype=Object.create(S.prototype);kd.prototype.constructor=kd;kd.prototype.dispose=function(){this.geometry.dispose();this.material.dispose()};kd.prototype.update=function(){void 0!==this.color?this.material.color.set(this.color):this.material.color.copy(this.light.color)};
 var nl=new n,jj=new A,kj=new A;ld.prototype=Object.create(F.prototype);ld.prototype.constructor=ld;ld.prototype.dispose=function(){this.children[0].geometry.dispose();this.children[0].material.dispose()};ld.prototype.update=function(){var a=this.children[0];if(void 0!==this.color)this.material.color.set(this.color);else{var b=a.geometry.getAttribute("color");jj.copy(this.light.color);kj.copy(this.light.groundColor);for(var c=0,d=b.count;c<d;c++){var e=c<d/2?jj:kj;b.setXYZ(c,e.r,e.g,e.b)}b.needsUpdate=
 !0}a.lookAt(nl.setFromMatrixPosition(this.light.matrixWorld).negate())};wf.prototype=Object.assign(Object.create(ma.prototype),{constructor:wf,copy:function(a){ma.prototype.copy.call(this,a);this.geometry.copy(a.geometry);this.material.copy(a.material);return this},clone:function(){return(new this.constructor).copy(this)}});xf.prototype=Object.create(ma.prototype);xf.prototype.constructor=xf;var lj=new n,Xf=new n,mj=new n;md.prototype=Object.create(F.prototype);md.prototype.constructor=md;md.prototype.dispose=
 function(){this.lightPlane.geometry.dispose();this.lightPlane.material.dispose();this.targetLine.geometry.dispose();this.targetLine.material.dispose()};md.prototype.update=function(){lj.setFromMatrixPosition(this.light.matrixWorld);Xf.setFromMatrixPosition(this.light.target.matrixWorld);mj.subVectors(Xf,lj);this.lightPlane.lookAt(Xf);void 0!==this.color?(this.lightPlane.material.color.set(this.color),this.targetLine.material.color.set(this.color)):(this.lightPlane.material.color.copy(this.light.color),
-this.targetLine.material.color.copy(this.light.color));this.targetLine.lookAt(Xf);this.targetLine.scale.z=mj.length()};var yf=new n,ja=new db;te.prototype=Object.create(ma.prototype);te.prototype.constructor=te;te.prototype.update=function(){var a=this.geometry,b=this.pointMap;ja.projectionMatrixInverse.copy(this.camera.projectionMatrixInverse);na("c",b,a,ja,0,0,-1);na("t",b,a,ja,0,0,1);na("n1",b,a,ja,-1,-1,-1);na("n2",b,a,ja,1,-1,-1);na("n3",b,a,ja,-1,1,-1);na("n4",b,a,ja,1,1,-1);na("f1",b,a,ja,
+this.targetLine.material.color.copy(this.light.color));this.targetLine.lookAt(Xf);this.targetLine.scale.z=mj.length()};var yf=new n,ja=new db;se.prototype=Object.create(ma.prototype);se.prototype.constructor=se;se.prototype.update=function(){var a=this.geometry,b=this.pointMap;ja.projectionMatrixInverse.copy(this.camera.projectionMatrixInverse);na("c",b,a,ja,0,0,-1);na("t",b,a,ja,0,0,1);na("n1",b,a,ja,-1,-1,-1);na("n2",b,a,ja,1,-1,-1);na("n3",b,a,ja,-1,1,-1);na("n4",b,a,ja,1,1,-1);na("f1",b,a,ja,
 -1,-1,1);na("f2",b,a,ja,1,-1,1);na("f3",b,a,ja,-1,1,1);na("f4",b,a,ja,1,1,1);na("u1",b,a,ja,.7,1.1,-1);na("u2",b,a,ja,-.7,1.1,-1);na("u3",b,a,ja,0,2,-1);na("cf1",b,a,ja,-1,0,1);na("cf2",b,a,ja,1,0,1);na("cf3",b,a,ja,0,-1,1);na("cf4",b,a,ja,0,1,1);na("cn1",b,a,ja,-1,0,-1);na("cn2",b,a,ja,1,0,-1);na("cn3",b,a,ja,0,-1,-1);na("cn4",b,a,ja,0,1,-1);a.getAttribute("position").needsUpdate=!0};var Yf=new Sa;wb.prototype=Object.create(ma.prototype);wb.prototype.constructor=wb;wb.prototype.update=function(a){void 0!==
 a&&console.warn("THREE.BoxHelper: .update() has no longer arguments.");void 0!==this.object&&Yf.setFromObject(this.object);if(!Yf.isEmpty()){a=Yf.min;var b=Yf.max,c=this.geometry.attributes.position,d=c.array;d[0]=b.x;d[1]=b.y;d[2]=b.z;d[3]=a.x;d[4]=b.y;d[5]=b.z;d[6]=a.x;d[7]=a.y;d[8]=b.z;d[9]=b.x;d[10]=a.y;d[11]=b.z;d[12]=b.x;d[13]=b.y;d[14]=a.z;d[15]=a.x;d[16]=b.y;d[17]=a.z;d[18]=a.x;d[19]=a.y;d[20]=a.z;d[21]=b.x;d[22]=a.y;d[23]=a.z;c.needsUpdate=!0;this.geometry.computeBoundingSphere()}};wb.prototype.setFromObject=
-function(a){this.object=a;this.update();return this};wb.prototype.copy=function(a){ma.prototype.copy.call(this,a);this.object=a.object;return this};wb.prototype.clone=function(){return(new this.constructor).copy(this)};ue.prototype=Object.create(ma.prototype);ue.prototype.constructor=ue;ue.prototype.updateMatrixWorld=function(a){var b=this.box;b.isEmpty()||(b.getCenter(this.position),b.getSize(this.scale),this.scale.multiplyScalar(.5),F.prototype.updateMatrixWorld.call(this,a))};ve.prototype=Object.create(Ka.prototype);
-ve.prototype.constructor=ve;ve.prototype.updateMatrixWorld=function(a){var b=-this.plane.constant;1E-8>Math.abs(b)&&(b=1E-8);this.scale.set(.5*this.size,.5*this.size,b);this.children[0].material.side=0>b?1:0;this.lookAt(this.plane.normal);F.prototype.updateMatrixWorld.call(this,a)};var nj=new n,zf,Sg;xb.prototype=Object.create(F.prototype);xb.prototype.constructor=xb;xb.prototype.setDirection=function(a){.99999<a.y?this.quaternion.set(0,0,0,1):-.99999>a.y?this.quaternion.set(1,0,0,0):(nj.set(a.z,
+function(a){this.object=a;this.update();return this};wb.prototype.copy=function(a){ma.prototype.copy.call(this,a);this.object=a.object;return this};wb.prototype.clone=function(){return(new this.constructor).copy(this)};te.prototype=Object.create(ma.prototype);te.prototype.constructor=te;te.prototype.updateMatrixWorld=function(a){var b=this.box;b.isEmpty()||(b.getCenter(this.position),b.getSize(this.scale),this.scale.multiplyScalar(.5),F.prototype.updateMatrixWorld.call(this,a))};ue.prototype=Object.create(Ka.prototype);
+ue.prototype.constructor=ue;ue.prototype.updateMatrixWorld=function(a){var b=-this.plane.constant;1E-8>Math.abs(b)&&(b=1E-8);this.scale.set(.5*this.size,.5*this.size,b);this.children[0].material.side=0>b?1:0;this.lookAt(this.plane.normal);F.prototype.updateMatrixWorld.call(this,a)};var nj=new n,zf,Sg;xb.prototype=Object.create(F.prototype);xb.prototype.constructor=xb;xb.prototype.setDirection=function(a){.99999<a.y?this.quaternion.set(0,0,0,1):-.99999>a.y?this.quaternion.set(1,0,0,0):(nj.set(a.z,
 0,-a.x).normalize(),this.quaternion.setFromAxisAngle(nj,Math.acos(a.y)))};xb.prototype.setLength=function(a,b,c){void 0===b&&(b=.2*a);void 0===c&&(c=.2*b);this.line.scale.set(1,Math.max(1E-4,a-b),1);this.line.updateMatrix();this.cone.scale.set(c,b,c);this.cone.position.y=a;this.cone.updateMatrix()};xb.prototype.setColor=function(a){this.line.material.color.set(a);this.cone.material.color.set(a)};xb.prototype.copy=function(a){F.prototype.copy.call(this,a,!1);this.line.copy(a.line);this.cone.copy(a.cone);
-return this};xb.prototype.clone=function(){return(new this.constructor).copy(this)};we.prototype=Object.create(ma.prototype);we.prototype.constructor=we;var kb=Math.pow(2,8),oj=[.125,.215,.35,.446,.526,.582],yi=5+oj.length,lb={3E3:0,3001:1,3002:2,3004:3,3005:4,3006:5,3007:6},Wg=new hd,Af=function(a){var b=new Float32Array(a),c=new n(0,1,0);a=new ub({defines:{n:a},uniforms:{envMap:{value:null},samples:{value:1},weights:{value:b},latitudinal:{value:!1},dTheta:{value:0},mipInt:{value:0},poleAxis:{value:c},
+return this};xb.prototype.clone=function(){return(new this.constructor).copy(this)};ve.prototype=Object.create(ma.prototype);ve.prototype.constructor=ve;var kb=Math.pow(2,8),oj=[.125,.215,.35,.446,.526,.582],yi=5+oj.length,lb={3E3:0,3001:1,3002:2,3004:3,3005:4,3006:5,3007:6},Wg=new hd,Af=function(a){var b=new Float32Array(a),c=new n(0,1,0);a=new ub({defines:{n:a},uniforms:{envMap:{value:null},samples:{value:1},weights:{value:b},latitudinal:{value:!1},dTheta:{value:0},mipInt:{value:0},poleAxis:{value:c},
 inputEncoding:{value:lb[3E3]},outputEncoding:{value:lb[3E3]}},vertexShader:Yg(),fragmentShader:"\nprecision mediump float;\nprecision mediump int;\nvarying vec3 vOutputDirection;\nuniform sampler2D envMap;\nuniform int samples;\nuniform float weights[n];\nuniform bool latitudinal;\nuniform float dTheta;\nuniform float mipInt;\nuniform vec3 poleAxis;\n\n"+Zg()+"\n\n#define ENVMAP_TYPE_CUBE_UV\n#include <cube_uv_reflection_fragment>\n\nvec3 getSample(float theta, vec3 axis) {\n\tfloat cosTheta = cos(theta);\n\t// Rodrigues' axis-angle rotation\n\tvec3 sampleDirection = vOutputDirection * cosTheta\n\t\t+ cross(axis, vOutputDirection) * sin(theta)\n\t\t+ axis * dot(axis, vOutputDirection) * (1.0 - cosTheta);\n\treturn bilinearCubeUV(envMap, sampleDirection, mipInt);\n}\n\nvoid main() {\n\tvec3 axis = latitudinal ? poleAxis : cross(poleAxis, vOutputDirection);\n\tif (all(equal(axis, vec3(0.0))))\n\t\taxis = vec3(vOutputDirection.z, 0.0, - vOutputDirection.x);\n\taxis = normalize(axis);\n\tgl_FragColor = vec4(0.0);\n\tgl_FragColor.rgb += weights[0] * getSample(0.0, axis);\n\tfor (int i = 1; i < n; i++) {\n\t\tif (i >= samples)\n\t\t\tbreak;\n\t\tfloat theta = dTheta * float(i);\n\t\tgl_FragColor.rgb += weights[i] * getSample(-1.0 * theta, axis);\n\t\tgl_FragColor.rgb += weights[i] * getSample(theta, axis);\n\t}\n\tgl_FragColor = linearToOutputTexel(gl_FragColor);\n}\n\t\t",
 blending:0,depthTest:!1,depthWrite:!1});a.type="SphericalGaussianBlur";return a}(20),Rb=null,Sb=null,wh=function(){for(var a=[],b=[],c=[],d=8,e=0;e<yi;e++){var f=Math.pow(2,d);b.push(f);var g=1/f;4<e?g=oj[e-8+4-1]:0==e&&(g=0);c.push(g);g=1/(f-1);f=-g/2;g=1+g/2;var h=[f,f,g,f,g,g,f,f,g,g,f,g];f=new Float32Array(108);g=new Float32Array(72);for(var k=new Float32Array(36),m=0;6>m;m++){var n=m%3*2/3-1,p=2<m?0:-1;f.set([n,p,0,n+2/3,p,0,n+2/3,p+1,0,n,p,0,n+2/3,p+1,0,n,p+1,0],18*m);g.set(h,12*m);k.set([m,
-m,m,m,m,m],6*m)}h=new C;h.setAttribute("position",new M(f,3));h.setAttribute("uv",new M(g,2));h.setAttribute("faceIndex",new M(k,1));a.push(h);4<d&&d--}return{_lodPlanes:a,_sizeLods:b,_sigmas:c}}(),xe=wh._lodPlanes,Ci=wh._sizeLods,Cf=wh._sigmas,Bf=null,T=null,Vg=null,Ac=(1+Math.sqrt(5))/2,Ad=1/Ac,Ai=[new n(1,1,1),new n(-1,1,1),new n(1,1,-1),new n(-1,1,-1),new n(0,Ac,Ad),new n(0,Ac,-Ad),new n(Ad,0,Ac),new n(-Ad,0,Ac),new n(Ac,Ad,0),new n(-Ac,Ad,0)];Tg.prototype={constructor:Tg,fromScene:function(a,
+m,m,m,m,m],6*m)}h=new C;h.setAttribute("position",new M(f,3));h.setAttribute("uv",new M(g,2));h.setAttribute("faceIndex",new M(k,1));a.push(h);4<d&&d--}return{_lodPlanes:a,_sizeLods:b,_sigmas:c}}(),we=wh._lodPlanes,Ci=wh._sizeLods,Cf=wh._sigmas,Bf=null,T=null,Vg=null,Ac=(1+Math.sqrt(5))/2,Ad=1/Ac,Ai=[new n(1,1,1),new n(-1,1,1),new n(1,1,-1),new n(-1,1,-1),new n(0,Ac,Ad),new n(0,Ac,-Ad),new n(Ad,0,Ac),new n(-Ad,0,Ac),new n(Ac,Ad,0),new n(-Ac,Ad,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);Vg=T.getRenderTarget();var e=ui();c=new aa(90,1,c,d);d=[1,1,1,1,-1,1];var f=[1,1,-1,-1,-1,1],g=T.outputEncoding,h=T.toneMapping,k=T.toneMappingExposure,m=T.getClearColor(),n=T.getClearAlpha();T.toneMapping=1;T.toneMappingExposure=1;T.outputEncoding=3E3;a.scale.z*=-1;var p=a.background;if(p&&p.isColor){p.convertSRGBToLinear();var t=Math.min(Math.max(Math.ceil(Math.log2(Math.max(p.r,p.g,p.b))),-128),127);p=p.multiplyScalar(Math.pow(2,-t));
 T.setClearColor(p,(t+128)/255);a.background=null}for(p=0;6>p;p++)t=p%3,0==t?(c.up.set(0,d[p],0),c.lookAt(f[p],0,0)):1==t?(c.up.set(0,0,d[p]),c.lookAt(0,f[p],0)):(c.up.set(0,d[p],0),c.lookAt(0,0,f[p])),Xg(e,t*kb,2<p?kb:0,kb,kb),T.setRenderTarget(e),T.render(a,c);T.toneMapping=h;T.toneMappingExposure=k;T.outputEncoding=g;T.setClearColor(m,n);a.scale.z*=-1;0<b&&zi(e,0,0,b);xi(e);wi(e);return e},fromEquirectangular:function(a){a.magFilter=1003;a.minFilter=1003;a.generateMipmaps=!1;return this.fromCubemap(a)},
-fromCubemap:function(a){Vg=T.getRenderTarget();var b=ui(a),c=new ob;a.isCubeTexture?null==Sb&&(Sb=Ei()):null==Rb&&(Rb=Di());var d=a.isCubeTexture?Sb:Rb;c.add(new S(xe[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=lb[a.encoding];d.outputEncoding.value=lb[a.encoding];Xg(b,0,0,3*kb,2*kb);T.setRenderTarget(b);T.render(c,Wg);xi(b);wi(b);return b},compileCubemapShader:function(){null==Sb&&(Sb=Ei(),Ug(Sb))},compileEquirectangularShader:function(){null==
-Rb&&(Rb=Di(),Ug(Rb))},dispose:function(){Af.dispose();null!=Sb&&Sb.dispose();null!=Rb&&Rb.dispose();for(var a=0;a<xe.length;a++)xe[a].dispose()}};G.create=function(a,b){console.log("THREE.Curve.create() has been deprecated");a.prototype=Object.create(G.prototype);a.prototype.constructor=a;a.prototype.getPoint=b;return a};Object.assign(vb.prototype,{createPointsGeometry:function(a){console.warn("THREE.CurvePath: .createPointsGeometry() has been removed. Use new THREE.Geometry().setFromPoints( points ) instead.");
+fromCubemap:function(a){Vg=T.getRenderTarget();var b=ui(a),c=new ob;a.isCubeTexture?null==Sb&&(Sb=Ei()):null==Rb&&(Rb=Di());var d=a.isCubeTexture?Sb:Rb;c.add(new S(we[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=lb[a.encoding];d.outputEncoding.value=lb[a.encoding];Xg(b,0,0,3*kb,2*kb);T.setRenderTarget(b);T.render(c,Wg);xi(b);wi(b);return b},compileCubemapShader:function(){null==Sb&&(Sb=Ei(),Ug(Sb))},compileEquirectangularShader:function(){null==
+Rb&&(Rb=Di(),Ug(Rb))},dispose:function(){Af.dispose();null!=Sb&&Sb.dispose();null!=Rb&&Rb.dispose();for(var a=0;a<we.length;a++)we[a].dispose()}};G.create=function(a,b){console.log("THREE.Curve.create() has been deprecated");a.prototype=Object.create(G.prototype);a.prototype.constructor=a;a.prototype.getPoint=b;return a};Object.assign(vb.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 N,c=0,d=a.length;c<d;c++){var e=a[c];b.vertices.push(new n(e.x,
 e.y,e.z||0))}return b}});Object.assign($a.prototype,{fromPoints:function(a){console.warn("THREE.Path: .fromPoints() has been renamed to .setFromPoints().");return this.setFromPoints(a)}});Fi.prototype=Object.create(pa.prototype);Gi.prototype=Object.create(pa.prototype);$g.prototype=Object.create(pa.prototype);Object.assign($g.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.")}});wf.prototype.setColors=function(){console.error("THREE.GridHelper: setColors() has been deprecated, pass them in the constructor instead.")};rc.prototype.update=function(){console.error("THREE.SkeletonHelper: update() no longer needs to be called.")};Object.assign(W.prototype,{extractUrlBase:function(a){console.warn("THREE.Loader: .extractUrlBase() has been deprecated. Use THREE.LoaderUtils.extractUrlBase() instead.");
@@ -971,7 +972,7 @@ applyMatrix:function(a){console.warn("THREE.Geometry: .applyMatrix() has been re
 return this.translateOnAxis(b,a)},getWorldRotation:function(){console.error("THREE.Object3D: .getWorldRotation() has been removed. Use THREE.Object3D.getWorldQuaternion( target ) instead.")},applyMatrix:function(a){console.warn("THREE.Object3D: .applyMatrix() has been renamed to .applyMatrix4().");return this.applyMatrix4(a)}});Object.defineProperties(F.prototype,{eulerOrder:{get:function(){console.warn("THREE.Object3D: .eulerOrder is now .rotation.order.");return this.rotation.order},set:function(a){console.warn("THREE.Object3D: .eulerOrder is now .rotation.order.");
 this.rotation.order=a}},useQuaternion:{get:function(){console.warn("THREE.Object3D: .useQuaternion has been removed. The library now uses quaternions by default.")},set:function(){console.warn("THREE.Object3D: .useQuaternion has been removed. The library now uses quaternions by default.")}}});Object.assign(S.prototype,{setDrawMode:function(){console.error("THREE.Mesh: .setDrawMode() has been removed. The renderer now always assumes THREE.TrianglesDrawMode. Transform your geometry via BufferGeometryUtils.toTrianglesDrawMode() if necessary.")}});
 Object.defineProperties(S.prototype,{drawMode:{get:function(){console.error("THREE.Mesh: .drawMode has been removed. The renderer now always assumes THREE.TrianglesDrawMode.");return 0},set:function(){console.error("THREE.Mesh: .drawMode has been removed. The renderer now always assumes THREE.TrianglesDrawMode. Transform your geometry via BufferGeometryUtils.toTrianglesDrawMode() if necessary.")}}});Object.defineProperties(Rd.prototype,{objects:{get:function(){console.warn("THREE.LOD: .objects has been renamed to .levels.");
-return this.levels}}});Object.defineProperty(Ue.prototype,"useVertexTexture",{get:function(){console.warn("THREE.Skeleton: useVertexTexture has been removed.")},set:function(){console.warn("THREE.Skeleton: useVertexTexture has been removed.")}});Sd.prototype.initBones=function(){console.error("THREE.SkinnedMesh: initBones() has been removed.")};Object.defineProperty(G.prototype,"__arcLengthDivisions",{get:function(){console.warn("THREE.Curve: .__arcLengthDivisions is now .arcLengthDivisions.");return this.arcLengthDivisions},
+return this.levels}}});Object.defineProperty(Ue.prototype,"useVertexTexture",{get:function(){console.warn("THREE.Skeleton: useVertexTexture has been removed.")},set:function(){console.warn("THREE.Skeleton: useVertexTexture has been removed.")}});Te.prototype.initBones=function(){console.error("THREE.SkinnedMesh: initBones() has been removed.")};Object.defineProperty(G.prototype,"__arcLengthDivisions",{get:function(){console.warn("THREE.Curve: .__arcLengthDivisions is now .arcLengthDivisions.");return this.arcLengthDivisions},
 set:function(a){console.warn("THREE.Curve: .__arcLengthDivisions is now .arcLengthDivisions.");this.arcLengthDivisions=a}});aa.prototype.setLens=function(a,b){console.warn("THREE.PerspectiveCamera.setLens is deprecated. Use .setFocalLength and .filmGauge for a photographic setup.");void 0!==b&&(this.filmGauge=b);this.setFocalLength(a)};Object.defineProperties(da.prototype,{onlyShadow:{set:function(){console.warn("THREE.Light: .onlyShadow has been removed.")}},shadowCameraFov:{set:function(a){console.warn("THREE.Light: .shadowCameraFov is now .shadow.camera.fov.");
 this.shadow.camera.fov=a}},shadowCameraLeft:{set:function(a){console.warn("THREE.Light: .shadowCameraLeft is now .shadow.camera.left.");this.shadow.camera.left=a}},shadowCameraRight:{set:function(a){console.warn("THREE.Light: .shadowCameraRight is now .shadow.camera.right.");this.shadow.camera.right=a}},shadowCameraTop:{set:function(a){console.warn("THREE.Light: .shadowCameraTop is now .shadow.camera.top.");this.shadow.camera.top=a}},shadowCameraBottom:{set:function(a){console.warn("THREE.Light: .shadowCameraBottom is now .shadow.camera.bottom.");
 this.shadow.camera.bottom=a}},shadowCameraNear:{set:function(a){console.warn("THREE.Light: .shadowCameraNear is now .shadow.camera.near.");this.shadow.camera.near=a}},shadowCameraFar:{set:function(a){console.warn("THREE.Light: .shadowCameraFar is now .shadow.camera.far.");this.shadow.camera.far=a}},shadowCameraVisible:{set:function(){console.warn("THREE.Light: .shadowCameraVisible has been removed. Use new THREE.CameraHelper( light.shadow.camera ) instead.")}},shadowBias:{set:function(a){console.warn("THREE.Light: .shadowBias is now .shadow.bias.");
@@ -1005,31 +1006,31 @@ this.texture.repeat=a}},format:{get:function(){console.warn("THREE.WebGLRenderTa
 return this.texture.generateMipmaps},set:function(a){console.warn("THREE.WebGLRenderTarget: .generateMipmaps is now .texture.generateMipmaps.");this.texture.generateMipmaps=a}}});Object.defineProperties(id.prototype,{load:{value:function(a){console.warn("THREE.Audio: .load has been deprecated. Use THREE.AudioLoader instead.");var b=this;(new tf).load(a,function(a){b.setBuffer(a)});return this}},startTime:{set:function(){console.warn("THREE.Audio: .startTime is now .play( delay ).")}}});Kg.prototype.getData=
 function(){console.warn("THREE.AudioAnalyser: .getData() is now .getFrequencyData().");return this.getFrequencyData()};Gc.prototype.updateCubeMap=function(a,b){console.warn("THREE.CubeCamera: .updateCubeMap() is now .update().");return this.update(a,b)};Lb.crossOrigin=void 0;Lb.loadTexture=function(a,b,c,d){console.warn("THREE.ImageUtils.loadTexture has been deprecated. Use THREE.TextureLoader() instead.");var e=new ef;e.setCrossOrigin(this.crossOrigin);a=e.load(a,c,void 0,d);b&&(a.mapping=b);return a};
 Lb.loadTextureCube=function(a,b,c,d){console.warn("THREE.ImageUtils.loadTextureCube has been deprecated. Use THREE.CubeTextureLoader() instead.");var e=new df;e.setCrossOrigin(this.crossOrigin);a=e.load(a,c,void 0,d);b&&(a.mapping=b);return a};Lb.loadCompressedTexture=function(){console.error("THREE.ImageUtils.loadCompressedTexture has been removed. Use THREE.DDSLoader instead.")};Lb.loadCompressedTextureCube=function(){console.error("THREE.ImageUtils.loadCompressedTextureCube has been removed. Use THREE.DDSLoader instead.")};
-"undefined"!==typeof __THREE_DEVTOOLS__&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("register",{detail:{revision:"115dev"}}));k.ACESFilmicToneMapping=5;k.AddEquation=100;k.AddOperation=2;k.AdditiveBlending=2;k.AlphaFormat=1021;k.AlwaysDepth=1;k.AlwaysStencilFunc=519;k.AmbientLight=mf;k.AmbientLightProbe=Fg;k.AnimationClip=Qa;k.AnimationLoader=wg;k.AnimationMixer=Mg;k.AnimationObjectGroup=oi;k.AnimationUtils=R;k.ArcCurve=gd;k.ArrayCamera=Qe;k.ArrowHelper=xb;k.Audio=id;k.AudioAnalyser=Kg;k.AudioContext=
-Ig;k.AudioListener=Hg;k.AudioLoader=tf;k.AxesHelper=we;k.AxisHelper=function(a){console.warn("THREE.AxisHelper has been renamed to THREE.AxesHelper.");return new we(a)};k.BackSide=1;k.BasicDepthPacking=3200;k.BasicShadowMap=0;k.BinaryTextureLoader=function(a){console.warn("THREE.BinaryTextureLoader has been renamed to THREE.DataTextureLoader.");return new cf(a)};k.Bone=pg;k.BooleanKeyframeTrack=Ze;k.BoundingBoxHelper=function(a,b){console.warn("THREE.BoundingBoxHelper has been deprecated. Creating a THREE.BoxHelper instead.");
-return new wb(a,b)};k.Box2=Qg;k.Box3=Sa;k.Box3Helper=ue;k.BoxBufferGeometry=Jd;k.BoxGeometry=nh;k.BoxHelper=wb;k.BufferAttribute=M;k.BufferGeometry=C;k.BufferGeometryLoader=rf;k.ByteType=1010;k.Cache=vc;k.Camera=db;k.CameraHelper=te;k.CanvasRenderer=function(){console.error("THREE.CanvasRenderer has been removed")};k.CanvasTexture=Td;k.CatmullRomCurve3=pa;k.CineonToneMapping=4;k.CircleBufferGeometry=cd;k.CircleGeometry=ne;k.ClampToEdgeWrapping=1001;k.Clock=Gg;k.ClosedSplineCurve3=Fi;k.Color=A;k.ColorKeyframeTrack=
-$e;k.CompressedTexture=Qc;k.CompressedTextureLoader=xg;k.ConeBufferGeometry=me;k.ConeGeometry=le;k.CubeCamera=Gc;k.CubeGeometry=nh;k.CubeReflectionMapping=301;k.CubeRefractionMapping=302;k.CubeTexture=qb;k.CubeTextureLoader=df;k.CubeUVReflectionMapping=306;k.CubeUVRefractionMapping=307;k.CubicBezierCurve=Wa;k.CubicBezierCurve3=hb;k.CubicInterpolant=Xe;k.CullFaceBack=1;k.CullFaceFront=2;k.CullFaceFrontBack=3;k.CullFaceNone=0;k.Curve=G;k.CurvePath=vb;k.CustomBlending=5;k.CylinderBufferGeometry=tb;k.CylinderGeometry=
-jc;k.Cylindrical=si;k.DataTexture=ac;k.DataTexture2DArray=Ic;k.DataTexture3D=Jc;k.DataTextureLoader=cf;k.DecrementStencilOp=7683;k.DecrementWrapStencilOp=34056;k.DefaultLoadingManager=ki;k.DepthFormat=1026;k.DepthStencilFormat=1027;k.DepthTexture=Ud;k.DirectionalLight=lf;k.DirectionalLightHelper=md;k.DirectionalLightShadow=kf;k.DiscreteInterpolant=Ye;k.DodecahedronBufferGeometry=Vc;k.DodecahedronGeometry=$d;k.DoubleSide=2;k.DstAlphaFactor=206;k.DstColorFactor=208;k.DynamicBufferAttribute=function(a,
+"undefined"!==typeof __THREE_DEVTOOLS__&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("register",{detail:{revision:"115dev"}}));k.ACESFilmicToneMapping=5;k.AddEquation=100;k.AddOperation=2;k.AdditiveBlending=2;k.AlphaFormat=1021;k.AlwaysDepth=1;k.AlwaysStencilFunc=519;k.AmbientLight=mf;k.AmbientLightProbe=Fg;k.AnimationClip=Qa;k.AnimationLoader=wg;k.AnimationMixer=Mg;k.AnimationObjectGroup=oi;k.AnimationUtils=R;k.ArcCurve=gd;k.ArrayCamera=Pe;k.ArrowHelper=xb;k.Audio=id;k.AudioAnalyser=Kg;k.AudioContext=
+Ig;k.AudioListener=Hg;k.AudioLoader=tf;k.AxesHelper=ve;k.AxisHelper=function(a){console.warn("THREE.AxisHelper has been renamed to THREE.AxesHelper.");return new ve(a)};k.BackSide=1;k.BasicDepthPacking=3200;k.BasicShadowMap=0;k.BinaryTextureLoader=function(a){console.warn("THREE.BinaryTextureLoader has been renamed to THREE.DataTextureLoader.");return new cf(a)};k.Bone=pg;k.BooleanKeyframeTrack=Ze;k.BoundingBoxHelper=function(a,b){console.warn("THREE.BoundingBoxHelper has been deprecated. Creating a THREE.BoxHelper instead.");
+return new wb(a,b)};k.Box2=Qg;k.Box3=Sa;k.Box3Helper=te;k.BoxBufferGeometry=Jd;k.BoxGeometry=nh;k.BoxHelper=wb;k.BufferAttribute=M;k.BufferGeometry=C;k.BufferGeometryLoader=rf;k.ByteType=1010;k.Cache=vc;k.Camera=db;k.CameraHelper=se;k.CanvasRenderer=function(){console.error("THREE.CanvasRenderer has been removed")};k.CanvasTexture=Sd;k.CatmullRomCurve3=pa;k.CineonToneMapping=4;k.CircleBufferGeometry=cd;k.CircleGeometry=me;k.ClampToEdgeWrapping=1001;k.Clock=Gg;k.ClosedSplineCurve3=Fi;k.Color=A;k.ColorKeyframeTrack=
+$e;k.CompressedTexture=Qc;k.CompressedTextureLoader=xg;k.ConeBufferGeometry=le;k.ConeGeometry=ke;k.CubeCamera=Gc;k.CubeGeometry=nh;k.CubeReflectionMapping=301;k.CubeRefractionMapping=302;k.CubeTexture=qb;k.CubeTextureLoader=df;k.CubeUVReflectionMapping=306;k.CubeUVRefractionMapping=307;k.CubicBezierCurve=Wa;k.CubicBezierCurve3=hb;k.CubicInterpolant=Xe;k.CullFaceBack=1;k.CullFaceFront=2;k.CullFaceFrontBack=3;k.CullFaceNone=0;k.Curve=G;k.CurvePath=vb;k.CustomBlending=5;k.CylinderBufferGeometry=tb;k.CylinderGeometry=
+jc;k.Cylindrical=si;k.DataTexture=ac;k.DataTexture2DArray=Ic;k.DataTexture3D=Jc;k.DataTextureLoader=cf;k.DecrementStencilOp=7683;k.DecrementWrapStencilOp=34056;k.DefaultLoadingManager=ki;k.DepthFormat=1026;k.DepthStencilFormat=1027;k.DepthTexture=Td;k.DirectionalLight=lf;k.DirectionalLightHelper=md;k.DirectionalLightShadow=kf;k.DiscreteInterpolant=Ye;k.DodecahedronBufferGeometry=Vc;k.DodecahedronGeometry=Zd;k.DoubleSide=2;k.DstAlphaFactor=206;k.DstColorFactor=208;k.DynamicBufferAttribute=function(a,
 b){console.warn("THREE.DynamicBufferAttribute has been removed. Use new THREE.BufferAttribute().setUsage( THREE.DynamicDrawUsage ) instead.");return(new M(a,b)).setUsage(35048)};k.DynamicCopyUsage=35050;k.DynamicDrawUsage=35048;k.DynamicReadUsage=35049;k.EdgesGeometry=bd;k.EdgesHelper=function(a,b){console.warn("THREE.EdgesHelper has been removed. Use THREE.EdgesGeometry instead.");return new ma(new bd(a.geometry),new la({color:void 0!==b?b:16777215}))};k.EllipseCurve=Ma;k.EqualDepth=4;k.EqualStencilFunc=
 514;k.EquirectangularReflectionMapping=303;k.EquirectangularRefractionMapping=304;k.Euler=Tb;k.EventDispatcher=Ea;k.ExtrudeBufferGeometry=fb;k.ExtrudeGeometry=fc;k.Face3=Bc;k.Face4=function(a,b,c,d,e,f,g){console.warn("THREE.Face4 has been removed. A THREE.Face3 will be created instead.");return new Bc(a,b,c,e,f,g)};k.FaceColors=1;k.FileLoader=Ra;k.FlatShading=1;k.Float32Attribute=function(a,b){console.warn("THREE.Float32Attribute has been removed. Use new THREE.Float32BufferAttribute() instead.");
-return new y(a,b)};k.Float32BufferAttribute=y;k.Float64Attribute=function(a,b){console.warn("THREE.Float64Attribute has been removed. Use new THREE.Float64BufferAttribute() instead.");return new Gd(a,b)};k.Float64BufferAttribute=Gd;k.FloatType=1015;k.Fog=Se;k.FogExp2=Re;k.Font=Cg;k.FontLoader=Dg;k.FrontFaceDirectionCCW=1;k.FrontFaceDirectionCW=0;k.FrontSide=0;k.Frustum=Hc;k.GammaEncoding=3007;k.Geometry=N;k.GeometryUtils={merge:function(a,b,c){console.warn("THREE.GeometryUtils: .merge() has been moved to Geometry. Use geometry.merge( geometry2, matrix, materialIndexOffset ) instead.");
+return new y(a,b)};k.Float32BufferAttribute=y;k.Float64Attribute=function(a,b){console.warn("THREE.Float64Attribute has been removed. Use new THREE.Float64BufferAttribute() instead.");return new Gd(a,b)};k.Float64BufferAttribute=Gd;k.FloatType=1015;k.Fog=Re;k.FogExp2=Qe;k.Font=Cg;k.FontLoader=Dg;k.FrontFaceDirectionCCW=1;k.FrontFaceDirectionCW=0;k.FrontSide=0;k.Frustum=Hc;k.GammaEncoding=3007;k.Geometry=N;k.GeometryUtils={merge:function(a,b,c){console.warn("THREE.GeometryUtils: .merge() has been moved to Geometry. Use geometry.merge( geometry2, matrix, materialIndexOffset ) instead.");
 if(b.isMesh){b.matrixAutoUpdate&&b.updateMatrix();var d=b.matrix;b=b.geometry}a.merge(b,d,c)},center:function(a){console.warn("THREE.GeometryUtils: .center() has been moved to Geometry. Use geometry.center() instead.");return a.center()}};k.GreaterDepth=6;k.GreaterEqualDepth=5;k.GreaterEqualStencilFunc=518;k.GreaterStencilFunc=516;k.GridHelper=wf;k.Group=Mc;k.HalfFloatType=1016;k.HemisphereLight=ff;k.HemisphereLightHelper=ld;k.HemisphereLightProbe=Eg;k.IcosahedronBufferGeometry=Uc;k.IcosahedronGeometry=
-Zd;k.ImageBitmapLoader=Ag;k.ImageLoader=fd;k.ImageUtils=Lb;k.ImmediateRenderObject=se;k.IncrementStencilOp=7682;k.IncrementWrapStencilOp=34055;k.InstancedBufferAttribute=qf;k.InstancedBufferGeometry=pf;k.InstancedInterleavedBuffer=Ng;k.InstancedMesh=Ve;k.Int16Attribute=function(a,b){console.warn("THREE.Int16Attribute has been removed. Use new THREE.Int16BufferAttribute() instead.");return new Ed(a,b)};k.Int16BufferAttribute=Ed;k.Int32Attribute=function(a,b){console.warn("THREE.Int32Attribute has been removed. Use new THREE.Int32BufferAttribute() instead.");
+Yd;k.ImageBitmapLoader=Ag;k.ImageLoader=fd;k.ImageUtils=Lb;k.ImmediateRenderObject=re;k.IncrementStencilOp=7682;k.IncrementWrapStencilOp=34055;k.InstancedBufferAttribute=qf;k.InstancedBufferGeometry=pf;k.InstancedInterleavedBuffer=Ng;k.InstancedMesh=Ve;k.Int16Attribute=function(a,b){console.warn("THREE.Int16Attribute has been removed. Use new THREE.Int16BufferAttribute() instead.");return new Ed(a,b)};k.Int16BufferAttribute=Ed;k.Int32Attribute=function(a,b){console.warn("THREE.Int32Attribute has been removed. Use new THREE.Int32BufferAttribute() instead.");
 return new Fd(a,b)};k.Int32BufferAttribute=Fd;k.Int8Attribute=function(a,b){console.warn("THREE.Int8Attribute has been removed. Use new THREE.Int8BufferAttribute() instead.");return new Bd(a,b)};k.Int8BufferAttribute=Bd;k.IntType=1013;k.InterleavedBuffer=rb;k.InterleavedBufferAttribute=Od;k.Interpolant=La;k.InterpolateDiscrete=2300;k.InterpolateLinear=2301;k.InterpolateSmooth=2302;k.InvertStencilOp=5386;k.JSONLoader=function(){console.error("THREE.JSONLoader has been removed.")};k.KeepStencilOp=7680;
-k.KeyframeTrack=sa;k.LOD=Rd;k.LatheBufferGeometry=ad;k.LatheGeometry=ke;k.Layers=Ie;k.LensFlare=function(){console.error("THREE.LensFlare has been moved to /examples/jsm/objects/Lensflare.js")};k.LessDepth=2;k.LessEqualDepth=3;k.LessEqualStencilFunc=515;k.LessStencilFunc=513;k.Light=da;k.LightProbe=ab;k.LightShadow=jb;k.Line=Ka;k.Line3=Rg;k.LineBasicMaterial=la;k.LineCurve=Da;k.LineCurve3=Xa;k.LineDashedMaterial=qc;k.LineLoop=We;k.LinePieces=1;k.LineSegments=ma;k.LineStrip=0;k.LinearEncoding=3E3;
-k.LinearFilter=1006;k.LinearInterpolant=oe;k.LinearMipMapLinearFilter=1008;k.LinearMipMapNearestFilter=1007;k.LinearMipmapLinearFilter=1008;k.LinearMipmapNearestFilter=1007;k.LinearToneMapping=1;k.Loader=W;k.LoaderUtils=th;k.LoadingManager=vg;k.LogLuvEncoding=3003;k.LoopOnce=2200;k.LoopPingPong=2202;k.LoopRepeat=2201;k.LuminanceAlphaFormat=1025;k.LuminanceFormat=1024;k.MOUSE={LEFT:0,MIDDLE:1,RIGHT:2,ROTATE:0,DOLLY:1,PAN:2};k.Material=K;k.MaterialLoader=of;k.Math=L;k.MathUtils=L;k.Matrix3=wa;k.Matrix4=
+k.KeyframeTrack=sa;k.LOD=Rd;k.LatheBufferGeometry=ad;k.LatheGeometry=je;k.Layers=He;k.LensFlare=function(){console.error("THREE.LensFlare has been moved to /examples/jsm/objects/Lensflare.js")};k.LessDepth=2;k.LessEqualDepth=3;k.LessEqualStencilFunc=515;k.LessStencilFunc=513;k.Light=da;k.LightProbe=ab;k.LightShadow=jb;k.Line=Ka;k.Line3=Rg;k.LineBasicMaterial=la;k.LineCurve=Da;k.LineCurve3=Xa;k.LineDashedMaterial=qc;k.LineLoop=We;k.LinePieces=1;k.LineSegments=ma;k.LineStrip=0;k.LinearEncoding=3E3;
+k.LinearFilter=1006;k.LinearInterpolant=ne;k.LinearMipMapLinearFilter=1008;k.LinearMipMapNearestFilter=1007;k.LinearMipmapLinearFilter=1008;k.LinearMipmapNearestFilter=1007;k.LinearToneMapping=1;k.Loader=W;k.LoaderUtils=th;k.LoadingManager=vg;k.LogLuvEncoding=3003;k.LoopOnce=2200;k.LoopPingPong=2202;k.LoopRepeat=2201;k.LuminanceAlphaFormat=1025;k.LuminanceFormat=1024;k.MOUSE={LEFT:0,MIDDLE:1,RIGHT:2,ROTATE:0,DOLLY:1,PAN:2};k.Material=K;k.MaterialLoader=of;k.Math=L;k.MathUtils=L;k.Matrix3=wa;k.Matrix4=
 P;k.MaxEquation=104;k.Mesh=S;k.MeshBasicMaterial=Oa;k.MeshDepthMaterial=Fb;k.MeshDistanceMaterial=Gb;k.MeshFaceMaterial=function(a){console.warn("THREE.MeshFaceMaterial has been removed. Use an Array instead.");return a};k.MeshLambertMaterial=oc;k.MeshMatcapMaterial=pc;k.MeshNormalMaterial=nc;k.MeshPhongMaterial=Jb;k.MeshPhysicalMaterial=lc;k.MeshStandardMaterial=gb;k.MeshToonMaterial=mc;k.MinEquation=103;k.MirroredRepeatWrapping=1002;k.MixOperation=1;k.MultiMaterial=function(a){void 0===a&&(a=[]);
 console.warn("THREE.MultiMaterial has been removed. Use an Array instead.");a.isMultiMaterial=!0;a.materials=a;a.clone=function(){return a.slice()};return a};k.MultiplyBlending=4;k.MultiplyOperation=0;k.NearestFilter=1003;k.NearestMipMapLinearFilter=1005;k.NearestMipMapNearestFilter=1004;k.NearestMipmapLinearFilter=1005;k.NearestMipmapNearestFilter=1004;k.NeverDepth=0;k.NeverStencilFunc=512;k.NoBlending=0;k.NoColors=0;k.NoToneMapping=0;k.NormalBlending=1;k.NotEqualDepth=7;k.NotEqualStencilFunc=517;
-k.NumberKeyframeTrack=dd;k.Object3D=F;k.ObjectLoader=sf;k.ObjectSpaceNormalMap=1;k.OctahedronBufferGeometry=cc;k.OctahedronGeometry=Yd;k.OneFactor=201;k.OneMinusDstAlphaFactor=207;k.OneMinusDstColorFactor=209;k.OneMinusSrcAlphaFactor=205;k.OneMinusSrcColorFactor=203;k.OrthographicCamera=hd;k.PCFShadowMap=1;k.PCFSoftShadowMap=2;k.PMREMGenerator=Tg;k.ParametricBufferGeometry=Sc;k.ParametricGeometry=Vd;k.Particle=function(a){console.warn("THREE.Particle has been renamed to THREE.Sprite.");return new Pd(a)};
+k.NumberKeyframeTrack=dd;k.Object3D=F;k.ObjectLoader=sf;k.ObjectSpaceNormalMap=1;k.OctahedronBufferGeometry=cc;k.OctahedronGeometry=Xd;k.OneFactor=201;k.OneMinusDstAlphaFactor=207;k.OneMinusDstColorFactor=209;k.OneMinusSrcAlphaFactor=205;k.OneMinusSrcColorFactor=203;k.OrthographicCamera=hd;k.PCFShadowMap=1;k.PCFSoftShadowMap=2;k.PMREMGenerator=Tg;k.ParametricBufferGeometry=Sc;k.ParametricGeometry=Ud;k.Particle=function(a){console.warn("THREE.Particle has been renamed to THREE.Sprite.");return new Pd(a)};
 k.ParticleBasicMaterial=function(a){console.warn("THREE.ParticleBasicMaterial has been renamed to THREE.PointsMaterial.");return new Va(a)};k.ParticleSystem=function(a,b){console.warn("THREE.ParticleSystem has been renamed to THREE.Points.");return new Pc(a,b)};k.ParticleSystemMaterial=function(a){console.warn("THREE.ParticleSystemMaterial has been renamed to THREE.PointsMaterial.");return new Va(a)};k.Path=$a;k.PerspectiveCamera=aa;k.Plane=Ta;k.PlaneBufferGeometry=bc;k.PlaneGeometry=Id;k.PlaneHelper=
-ve;k.PointCloud=function(a,b){console.warn("THREE.PointCloud has been renamed to THREE.Points.");return new Pc(a,b)};k.PointCloudMaterial=function(a){console.warn("THREE.PointCloudMaterial has been renamed to THREE.PointsMaterial.");return new Va(a)};k.PointLight=jf;k.PointLightHelper=kd;k.Points=Pc;k.PointsMaterial=Va;k.PolarGridHelper=xf;k.PolyhedronBufferGeometry=Ga;k.PolyhedronGeometry=Wd;k.PositionalAudio=Jg;k.PropertyBinding=ya;k.PropertyMixer=Lg;k.QuadraticBezierCurve=Ya;k.QuadraticBezierCurve3=
-ib;k.Quaternion=Aa;k.QuaternionKeyframeTrack=pe;k.QuaternionLinearInterpolant=af;k.REVISION="115dev";k.RGBADepthPacking=3201;k.RGBAFormat=1023;k.RGBAIntegerFormat=1033;k.RGBA_ASTC_10x10_Format=37819;k.RGBA_ASTC_10x5_Format=37816;k.RGBA_ASTC_10x6_Format=37817;k.RGBA_ASTC_10x8_Format=37818;k.RGBA_ASTC_12x10_Format=37820;k.RGBA_ASTC_12x12_Format=37821;k.RGBA_ASTC_4x4_Format=37808;k.RGBA_ASTC_5x4_Format=37809;k.RGBA_ASTC_5x5_Format=37810;k.RGBA_ASTC_6x5_Format=37811;k.RGBA_ASTC_6x6_Format=37812;k.RGBA_ASTC_8x5_Format=
+ue;k.PointCloud=function(a,b){console.warn("THREE.PointCloud has been renamed to THREE.Points.");return new Pc(a,b)};k.PointCloudMaterial=function(a){console.warn("THREE.PointCloudMaterial has been renamed to THREE.PointsMaterial.");return new Va(a)};k.PointLight=jf;k.PointLightHelper=kd;k.Points=Pc;k.PointsMaterial=Va;k.PolarGridHelper=xf;k.PolyhedronBufferGeometry=Ga;k.PolyhedronGeometry=Vd;k.PositionalAudio=Jg;k.PropertyBinding=ya;k.PropertyMixer=Lg;k.QuadraticBezierCurve=Ya;k.QuadraticBezierCurve3=
+ib;k.Quaternion=Aa;k.QuaternionKeyframeTrack=oe;k.QuaternionLinearInterpolant=af;k.REVISION="115dev";k.RGBADepthPacking=3201;k.RGBAFormat=1023;k.RGBAIntegerFormat=1033;k.RGBA_ASTC_10x10_Format=37819;k.RGBA_ASTC_10x5_Format=37816;k.RGBA_ASTC_10x6_Format=37817;k.RGBA_ASTC_10x8_Format=37818;k.RGBA_ASTC_12x10_Format=37820;k.RGBA_ASTC_12x12_Format=37821;k.RGBA_ASTC_4x4_Format=37808;k.RGBA_ASTC_5x4_Format=37809;k.RGBA_ASTC_5x5_Format=37810;k.RGBA_ASTC_6x5_Format=37811;k.RGBA_ASTC_6x6_Format=37812;k.RGBA_ASTC_8x5_Format=
 37813;k.RGBA_ASTC_8x6_Format=37814;k.RGBA_ASTC_8x8_Format=37815;k.RGBA_BPTC_Format=36492;k.RGBA_ETC2_EAC_Format=37496;k.RGBA_PVRTC_2BPPV1_Format=35843;k.RGBA_PVRTC_4BPPV1_Format=35842;k.RGBA_S3TC_DXT1_Format=33777;k.RGBA_S3TC_DXT3_Format=33778;k.RGBA_S3TC_DXT5_Format=33779;k.RGBDEncoding=3006;k.RGBEEncoding=3002;k.RGBEFormat=1023;k.RGBFormat=1022;k.RGBIntegerFormat=1032;k.RGBM16Encoding=3005;k.RGBM7Encoding=3004;k.RGB_ETC1_Format=36196;k.RGB_ETC2_Format=37492;k.RGB_PVRTC_2BPPV1_Format=35841;k.RGB_PVRTC_4BPPV1_Format=
-35840;k.RGB_S3TC_DXT1_Format=33776;k.RGFormat=1030;k.RGIntegerFormat=1031;k.RawShaderMaterial=ub;k.Ray=Vb;k.Raycaster=Og;k.RectAreaLight=nf;k.RedFormat=1028;k.RedIntegerFormat=1029;k.ReinhardToneMapping=2;k.RepeatWrapping=1E3;k.ReplaceStencilOp=7681;k.ReverseSubtractEquation=102;k.RingBufferGeometry=$c;k.RingGeometry=je;k.SRGB8_ALPHA8_ASTC_10x10_Format=37851;k.SRGB8_ALPHA8_ASTC_10x5_Format=37848;k.SRGB8_ALPHA8_ASTC_10x6_Format=37849;k.SRGB8_ALPHA8_ASTC_10x8_Format=37850;k.SRGB8_ALPHA8_ASTC_12x10_Format=
+35840;k.RGB_S3TC_DXT1_Format=33776;k.RGFormat=1030;k.RGIntegerFormat=1031;k.RawShaderMaterial=ub;k.Ray=Vb;k.Raycaster=Og;k.RectAreaLight=nf;k.RedFormat=1028;k.RedIntegerFormat=1029;k.ReinhardToneMapping=2;k.RepeatWrapping=1E3;k.ReplaceStencilOp=7681;k.ReverseSubtractEquation=102;k.RingBufferGeometry=$c;k.RingGeometry=ie;k.SRGB8_ALPHA8_ASTC_10x10_Format=37851;k.SRGB8_ALPHA8_ASTC_10x5_Format=37848;k.SRGB8_ALPHA8_ASTC_10x6_Format=37849;k.SRGB8_ALPHA8_ASTC_10x8_Format=37850;k.SRGB8_ALPHA8_ASTC_12x10_Format=
 37852;k.SRGB8_ALPHA8_ASTC_12x12_Format=37853;k.SRGB8_ALPHA8_ASTC_4x4_Format=37840;k.SRGB8_ALPHA8_ASTC_5x4_Format=37841;k.SRGB8_ALPHA8_ASTC_5x5_Format=37842;k.SRGB8_ALPHA8_ASTC_6x5_Format=37843;k.SRGB8_ALPHA8_ASTC_6x6_Format=37844;k.SRGB8_ALPHA8_ASTC_8x5_Format=37845;k.SRGB8_ALPHA8_ASTC_8x6_Format=37846;k.SRGB8_ALPHA8_ASTC_8x8_Format=37847;k.Scene=ob;k.SceneUtils={createMultiMaterialObject:function(){console.error("THREE.SceneUtils has been moved to /examples/jsm/utils/SceneUtils.js")},detach:function(){console.error("THREE.SceneUtils has been moved to /examples/jsm/utils/SceneUtils.js")},
-attach:function(){console.error("THREE.SceneUtils has been moved to /examples/jsm/utils/SceneUtils.js")}};k.ShaderChunk=O;k.ShaderLib=eb;k.ShaderMaterial=Ba;k.ShadowMaterial=kc;k.Shape=Kb;k.ShapeBufferGeometry=ic;k.ShapeGeometry=hc;k.ShapePath=Bg;k.ShapeUtils=sb;k.ShortType=1011;k.Skeleton=Ue;k.SkeletonHelper=rc;k.SkinnedMesh=Sd;k.SmoothShading=2;k.Sphere=pb;k.SphereBufferGeometry=gc;k.SphereGeometry=ie;k.Spherical=ri;k.SphericalHarmonics3=uf;k.SphericalReflectionMapping=305;k.Spline=$g;k.SplineCurve=
+attach:function(){console.error("THREE.SceneUtils has been moved to /examples/jsm/utils/SceneUtils.js")}};k.ShaderChunk=O;k.ShaderLib=eb;k.ShaderMaterial=Ba;k.ShadowMaterial=kc;k.Shape=Kb;k.ShapeBufferGeometry=ic;k.ShapeGeometry=hc;k.ShapePath=Bg;k.ShapeUtils=sb;k.ShortType=1011;k.Skeleton=Ue;k.SkeletonHelper=rc;k.SkinnedMesh=Te;k.SmoothShading=2;k.Sphere=pb;k.SphereBufferGeometry=gc;k.SphereGeometry=he;k.Spherical=ri;k.SphericalHarmonics3=uf;k.SphericalReflectionMapping=305;k.Spline=$g;k.SplineCurve=
 Za;k.SplineCurve3=Gi;k.SpotLight=hf;k.SpotLightHelper=jd;k.SpotLightShadow=gf;k.Sprite=Pd;k.SpriteMaterial=Ib;k.SrcAlphaFactor=204;k.SrcAlphaSaturateFactor=210;k.SrcColorFactor=202;k.StaticCopyUsage=35046;k.StaticDrawUsage=35044;k.StaticReadUsage=35045;k.StereoCamera=mi;k.StreamCopyUsage=35042;k.StreamDrawUsage=35040;k.StreamReadUsage=35041;k.StringKeyframeTrack=bf;k.SubtractEquation=101;k.SubtractiveBlending=3;k.TOUCH={ROTATE:0,PAN:1,DOLLY_PAN:2,DOLLY_ROTATE:3};k.TangentSpaceNormalMap=0;k.TetrahedronBufferGeometry=
-Tc;k.TetrahedronGeometry=Xd;k.TextBufferGeometry=Zc;k.TextGeometry=he;k.Texture=V;k.TextureLoader=ef;k.TorusBufferGeometry=Xc;k.TorusGeometry=ce;k.TorusKnotBufferGeometry=Wc;k.TorusKnotGeometry=be;k.Triangle=oa;k.TriangleFanDrawMode=2;k.TriangleStripDrawMode=1;k.TrianglesDrawMode=0;k.TubeBufferGeometry=dc;k.TubeGeometry=ae;k.UVMapping=300;k.Uint16Attribute=function(a,b){console.warn("THREE.Uint16Attribute has been removed. Use new THREE.Uint16BufferAttribute() instead.");return new Wb(a,b)};k.Uint16BufferAttribute=
+Tc;k.TetrahedronGeometry=Wd;k.TextBufferGeometry=Zc;k.TextGeometry=ge;k.Texture=V;k.TextureLoader=ef;k.TorusBufferGeometry=Xc;k.TorusGeometry=be;k.TorusKnotBufferGeometry=Wc;k.TorusKnotGeometry=ae;k.Triangle=oa;k.TriangleFanDrawMode=2;k.TriangleStripDrawMode=1;k.TrianglesDrawMode=0;k.TubeBufferGeometry=dc;k.TubeGeometry=$d;k.UVMapping=300;k.Uint16Attribute=function(a,b){console.warn("THREE.Uint16Attribute has been removed. Use new THREE.Uint16BufferAttribute() instead.");return new Wb(a,b)};k.Uint16BufferAttribute=
 Wb;k.Uint32Attribute=function(a,b){console.warn("THREE.Uint32Attribute has been removed. Use new THREE.Uint32BufferAttribute() instead.");return new Xb(a,b)};k.Uint32BufferAttribute=Xb;k.Uint8Attribute=function(a,b){console.warn("THREE.Uint8Attribute has been removed. Use new THREE.Uint8BufferAttribute() instead.");return new Cd(a,b)};k.Uint8BufferAttribute=Cd;k.Uint8ClampedAttribute=function(a,b){console.warn("THREE.Uint8ClampedAttribute has been removed. Use new THREE.Uint8ClampedBufferAttribute() instead.");
 return new Dd(a,b)};k.Uint8ClampedBufferAttribute=Dd;k.Uncharted2ToneMapping=3;k.Uniform=vf;k.UniformsLib=D;k.UniformsUtils=Uh;k.UnsignedByteType=1009;k.UnsignedInt248Type=1020;k.UnsignedIntType=1014;k.UnsignedShort4444Type=1017;k.UnsignedShort5551Type=1018;k.UnsignedShort565Type=1019;k.UnsignedShortType=1012;k.VSMShadowMap=3;k.Vector2=t;k.Vector3=n;k.Vector4=ka;k.VectorKeyframeTrack=ed;k.Vertex=function(a,b,c){console.warn("THREE.Vertex has been removed. Use THREE.Vector3 instead.");return new n(a,
 b,c)};k.VertexColors=2;k.VideoTexture=sg;k.WebGLCubeRenderTarget=Db;k.WebGLMultisampleRenderTarget=Zf;k.WebGLRenderTarget=Ha;k.WebGLRenderTargetCube=function(a,b,c){console.warn("THREE.WebGLRenderTargetCube( width, height, options ) is now WebGLCubeRenderTarget( size, options ).");return new Db(a,c)};k.WebGLRenderer=og;k.WebGLUtils=Zh;k.WireframeGeometry=Rc;k.WireframeHelper=function(a,b){console.warn("THREE.WireframeHelper has been removed. Use THREE.WireframeGeometry instead.");return new ma(new Rc(a.geometry),

+ 28 - 25
build/three.module.js

@@ -40489,15 +40489,7 @@ ObjectLoader.prototype = Object.assign( Object.create( Loader.prototype ), {
 				var geometry = getGeometry( data.geometry );
 				var material = getMaterial( data.material );
 
-				if ( geometry.bones && geometry.bones.length > 0 ) {
-
-					object = new SkinnedMesh( geometry, material );
-
-				} else {
-
-					object = new Mesh( geometry, material );
-
-				}
+				object = new Mesh( geometry, material );
 
 				break;
 
@@ -41391,16 +41383,16 @@ Object.assign( SphericalHarmonics3.prototype, {
 		target.copy( coeff[ 0 ] ).multiplyScalar( 0.282095 );
 
 		// band 1
-		target.addScale( coeff[ 1 ], 0.488603 * y );
-		target.addScale( coeff[ 2 ], 0.488603 * z );
-		target.addScale( coeff[ 3 ], 0.488603 * x );
+		target.addScaledVector( coeff[ 1 ], 0.488603 * y );
+		target.addScaledVector( coeff[ 2 ], 0.488603 * z );
+		target.addScaledVector( coeff[ 3 ], 0.488603 * x );
 
 		// band 2
-		target.addScale( coeff[ 4 ], 1.092548 * ( x * y ) );
-		target.addScale( coeff[ 5 ], 1.092548 * ( y * z ) );
-		target.addScale( coeff[ 6 ], 0.315392 * ( 3.0 * z * z - 1.0 ) );
-		target.addScale( coeff[ 7 ], 1.092548 * ( x * z ) );
-		target.addScale( coeff[ 8 ], 0.546274 * ( x * x - y * y ) );
+		target.addScaledVector( coeff[ 4 ], 1.092548 * ( x * y ) );
+		target.addScaledVector( coeff[ 5 ], 1.092548 * ( y * z ) );
+		target.addScaledVector( coeff[ 6 ], 0.315392 * ( 3.0 * z * z - 1.0 ) );
+		target.addScaledVector( coeff[ 7 ], 1.092548 * ( x * z ) );
+		target.addScaledVector( coeff[ 8 ], 0.546274 * ( x * x - y * y ) );
 
 		return target;
 
@@ -41421,16 +41413,16 @@ Object.assign( SphericalHarmonics3.prototype, {
 		target.copy( coeff[ 0 ] ).multiplyScalar( 0.886227 ); // π * 0.282095
 
 		// band 1
-		target.addScale( coeff[ 1 ], 2.0 * 0.511664 * y ); // ( 2 * π / 3 ) * 0.488603
-		target.addScale( coeff[ 2 ], 2.0 * 0.511664 * z );
-		target.addScale( coeff[ 3 ], 2.0 * 0.511664 * x );
+		target.addScaledVector( coeff[ 1 ], 2.0 * 0.511664 * y ); // ( 2 * π / 3 ) * 0.488603
+		target.addScaledVector( coeff[ 2 ], 2.0 * 0.511664 * z );
+		target.addScaledVector( coeff[ 3 ], 2.0 * 0.511664 * x );
 
 		// band 2
-		target.addScale( coeff[ 4 ], 2.0 * 0.429043 * x * y ); // ( π / 4 ) * 1.092548
-		target.addScale( coeff[ 5 ], 2.0 * 0.429043 * y * z );
-		target.addScale( coeff[ 6 ], 0.743125 * z * z - 0.247708 ); // ( π / 4 ) * 0.315392 * 3
-		target.addScale( coeff[ 7 ], 2.0 * 0.429043 * x * z );
-		target.addScale( coeff[ 8 ], 0.429043 * ( x * x - y * y ) ); // ( π / 4 ) * 0.546274
+		target.addScaledVector( coeff[ 4 ], 2.0 * 0.429043 * x * y ); // ( π / 4 ) * 1.092548
+		target.addScaledVector( coeff[ 5 ], 2.0 * 0.429043 * y * z );
+		target.addScaledVector( coeff[ 6 ], 0.743125 * z * z - 0.247708 ); // ( π / 4 ) * 0.315392 * 3
+		target.addScaledVector( coeff[ 7 ], 2.0 * 0.429043 * x * z );
+		target.addScaledVector( coeff[ 8 ], 0.429043 * ( x * x - y * y ) ); // ( π / 4 ) * 0.546274
 
 		return target;
 
@@ -41448,6 +41440,17 @@ Object.assign( SphericalHarmonics3.prototype, {
 
 	},
 
+	addScaledSH: function ( sh, s ) {
+
+		for ( var i = 0; i < 9; i ++ ) {
+
+			this.coefficients[ i ].addScaledVector( sh.coefficients[ i ], s );
+
+		}
+
+		return this;
+
+	},
 
 	scale: function ( s ) {