Browse Source

Updated builds.

Mr.doob 5 năm trước cách đây
mục cha
commit
40576d7e43
3 tập tin đã thay đổi với 481 bổ sung423 xóa
  1. 32 3
      build/three.js
  2. 419 417
      build/three.min.js
  3. 30 3
      build/three.module.js

+ 32 - 3
build/three.js

@@ -215,6 +215,8 @@
 	var RGBA_PVRTC_4BPPV1_Format = 35842;
 	var RGBA_PVRTC_4BPPV1_Format = 35842;
 	var RGBA_PVRTC_2BPPV1_Format = 35843;
 	var RGBA_PVRTC_2BPPV1_Format = 35843;
 	var RGB_ETC1_Format = 36196;
 	var RGB_ETC1_Format = 36196;
+	var RGB_ETC2_Format = 37492;
+	var RGBA_ETC2_EAC_Format = 37496;
 	var RGBA_ASTC_4x4_Format = 37808;
 	var RGBA_ASTC_4x4_Format = 37808;
 	var RGBA_ASTC_5x4_Format = 37809;
 	var RGBA_ASTC_5x4_Format = 37809;
 	var RGBA_ASTC_5x5_Format = 37810;
 	var RGBA_ASTC_5x5_Format = 37810;
@@ -18744,8 +18746,8 @@
 				index0AttributeName: material.index0AttributeName,
 				index0AttributeName: material.index0AttributeName,
 
 
 				extensionDerivatives: material.extensions && material.extensions.derivatives,
 				extensionDerivatives: material.extensions && material.extensions.derivatives,
-				extensionFragDepth: material.extensions && material.extensions.frawbuffers,
-				extensionDrawbuffers: material.extensions && material.extensions.drawbuffers,
+				extensionFragDepth: material.extensions && material.extensions.fragDepth,
+				extensionDrawbuffers: material.extensions && material.extensions.drawBuffers,
 				extensionShaderTextureLOD: material.extensions && material.extensions.shaderTextureLOD,
 				extensionShaderTextureLOD: material.extensions && material.extensions.shaderTextureLOD,
 
 
 				rendererExtensionFragDepth: isWebGL2 || extensions.get( 'EXT_frag_depth' ) !== null,
 				rendererExtensionFragDepth: isWebGL2 || extensions.get( 'EXT_frag_depth' ) !== null,
@@ -22645,6 +22647,19 @@
 
 
 			}
 			}
 
 
+			if ( p === RGB_ETC2_Format || p === RGBA_ETC2_EAC_Format ) {
+
+				extension = extensions.get( 'WEBGL_compressed_texture_etc' );
+
+				if ( extension !== null ) {
+
+					if ( p === RGB_ETC2_Format ) { return extension.COMPRESSED_RGB8_ETC2; }
+					if ( p === RGBA_ETC2_EAC_Format ) { return extension.COMPRESSED_RGBA8_ETC2_EAC; }
+
+				}
+
+			}
+
 			if ( p === RGBA_ASTC_4x4_Format || p === RGBA_ASTC_5x4_Format || p === RGBA_ASTC_5x5_Format ||
 			if ( p === RGBA_ASTC_4x4_Format || p === RGBA_ASTC_5x4_Format || p === RGBA_ASTC_5x5_Format ||
 				p === RGBA_ASTC_6x5_Format || p === RGBA_ASTC_6x6_Format || p === RGBA_ASTC_8x5_Format ||
 				p === RGBA_ASTC_6x5_Format || p === RGBA_ASTC_6x6_Format || p === RGBA_ASTC_8x5_Format ||
 				p === RGBA_ASTC_8x6_Format || p === RGBA_ASTC_8x8_Format || p === RGBA_ASTC_10x5_Format ||
 				p === RGBA_ASTC_8x6_Format || p === RGBA_ASTC_8x8_Format || p === RGBA_ASTC_10x5_Format ||
@@ -26893,6 +26908,8 @@
 
 
 		Object3D.call( this );
 		Object3D.call( this );
 
 
+		this._currentLevel = 0;
+
 		this.type = 'LOD';
 		this.type = 'LOD';
 
 
 		Object.defineProperties( this, {
 		Object.defineProperties( this, {
@@ -26958,6 +26975,12 @@
 
 
 		},
 		},
 
 
+		getCurrentLevel: function () {
+
+			return this._currentLevel;
+
+		},
+
 		getObjectForDistance: function ( distance ) {
 		getObjectForDistance: function ( distance ) {
 
 
 			var levels = this.levels;
 			var levels = this.levels;
@@ -27026,6 +27049,8 @@
 
 
 				}
 				}
 
 
+				this._currentLevel = i - 1;
+
 				for ( ; i < l; i ++ ) {
 				for ( ; i < l; i ++ ) {
 
 
 					levels[ i ].object.visible = false;
 					levels[ i ].object.visible = false;
@@ -43137,7 +43162,7 @@
 
 
 		findNode: function ( root, nodeName ) {
 		findNode: function ( root, nodeName ) {
 
 
-			if ( ! nodeName || nodeName === "" || nodeName === "root" || nodeName === "." || nodeName === - 1 || nodeName === root.name || nodeName === root.uuid ) {
+			if ( ! nodeName || nodeName === "" || nodeName === "." || nodeName === - 1 || nodeName === root.name || nodeName === root.uuid ) {
 
 
 				return root;
 				return root;
 
 
@@ -46365,6 +46390,8 @@
 	SkeletonHelper.prototype = Object.create( LineSegments.prototype );
 	SkeletonHelper.prototype = Object.create( LineSegments.prototype );
 	SkeletonHelper.prototype.constructor = SkeletonHelper;
 	SkeletonHelper.prototype.constructor = SkeletonHelper;
 
 
+	SkeletonHelper.prototype.isSkeletonHelper = true;
+
 	SkeletonHelper.prototype.updateMatrixWorld = function ( force ) {
 	SkeletonHelper.prototype.updateMatrixWorld = function ( force ) {
 
 
 		var bones = this.bones;
 		var bones = this.bones;
@@ -50393,6 +50420,7 @@
 	exports.RGBA_ASTC_8x5_Format = RGBA_ASTC_8x5_Format;
 	exports.RGBA_ASTC_8x5_Format = RGBA_ASTC_8x5_Format;
 	exports.RGBA_ASTC_8x6_Format = RGBA_ASTC_8x6_Format;
 	exports.RGBA_ASTC_8x6_Format = RGBA_ASTC_8x6_Format;
 	exports.RGBA_ASTC_8x8_Format = RGBA_ASTC_8x8_Format;
 	exports.RGBA_ASTC_8x8_Format = RGBA_ASTC_8x8_Format;
+	exports.RGBA_ETC2_EAC_Format = RGBA_ETC2_EAC_Format;
 	exports.RGBA_PVRTC_2BPPV1_Format = RGBA_PVRTC_2BPPV1_Format;
 	exports.RGBA_PVRTC_2BPPV1_Format = RGBA_PVRTC_2BPPV1_Format;
 	exports.RGBA_PVRTC_4BPPV1_Format = RGBA_PVRTC_4BPPV1_Format;
 	exports.RGBA_PVRTC_4BPPV1_Format = RGBA_PVRTC_4BPPV1_Format;
 	exports.RGBA_S3TC_DXT1_Format = RGBA_S3TC_DXT1_Format;
 	exports.RGBA_S3TC_DXT1_Format = RGBA_S3TC_DXT1_Format;
@@ -50406,6 +50434,7 @@
 	exports.RGBM16Encoding = RGBM16Encoding;
 	exports.RGBM16Encoding = RGBM16Encoding;
 	exports.RGBM7Encoding = RGBM7Encoding;
 	exports.RGBM7Encoding = RGBM7Encoding;
 	exports.RGB_ETC1_Format = RGB_ETC1_Format;
 	exports.RGB_ETC1_Format = RGB_ETC1_Format;
+	exports.RGB_ETC2_Format = RGB_ETC2_Format;
 	exports.RGB_PVRTC_2BPPV1_Format = RGB_PVRTC_2BPPV1_Format;
 	exports.RGB_PVRTC_2BPPV1_Format = RGB_PVRTC_2BPPV1_Format;
 	exports.RGB_PVRTC_4BPPV1_Format = RGB_PVRTC_4BPPV1_Format;
 	exports.RGB_PVRTC_4BPPV1_Format = RGB_PVRTC_4BPPV1_Format;
 	exports.RGB_S3TC_DXT1_Format = RGB_S3TC_DXT1_Format;
 	exports.RGB_S3TC_DXT1_Format = RGB_S3TC_DXT1_Format;

+ 419 - 417
build/three.min.js

@@ -7,7 +7,7 @@ c){this.x=a||0;this.y=b||0;this.z=c||0}function O(){this.elements=[1,0,0,0,0,1,0
 var a=new n,b=new Ub,c=new Da,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 O},normalMatrix:{value:new za}});this.matrix=new O;this.matrixWorld=new O;this.matrixAutoUpdate=D.DefaultMatrixAutoUpdate;
 var a=new n,b=new Ub,c=new Da,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 O},normalMatrix:{value:new za}});this.matrix=new O;this.matrixWorld=new O;this.matrixAutoUpdate=D.DefaultMatrixAutoUpdate;
 this.matrixWorldNeedsUpdate=!1;this.layers=new ag;this.visible=!0;this.receiveShadow=this.castShadow=!1;this.frustumCulled=!0;this.renderOrder=0;this.userData={}}function pb(){D.call(this);this.type="Scene";this.overrideMaterial=this.fog=this.environment=this.background=null;this.autoUpdate=!0;"undefined"!==typeof __THREE_DEVTOOLS__&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}function Ta(a,b){this.min=void 0!==a?a:new n(Infinity,Infinity,Infinity);this.max=void 0!==
 this.matrixWorldNeedsUpdate=!1;this.layers=new ag;this.visible=!0;this.receiveShadow=this.castShadow=!1;this.frustumCulled=!0;this.renderOrder=0;this.userData={}}function pb(){D.call(this);this.type="Scene";this.overrideMaterial=this.fog=this.environment=this.background=null;this.autoUpdate=!0;"undefined"!==typeof __THREE_DEVTOOLS__&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}function Ta(a,b){this.min=void 0!==a?a:new n(Infinity,Infinity,Infinity);this.max=void 0!==
 b?b:new n(-Infinity,-Infinity,-Infinity)}function bg(a,b,c,d,e){var f;var g=0;for(f=a.length-3;g<=f;g+=3){Vb.fromArray(a,g);var k=e.x*Math.abs(Vb.x)+e.y*Math.abs(Vb.y)+e.z*Math.abs(Vb.z),l=b.dot(Vb),m=c.dot(Vb),x=d.dot(Vb);if(Math.max(-Math.max(l,m,x),Math.min(l,m,x))>k)return!1}return!0}function qb(a,b){this.center=void 0!==a?a:new n;this.radius=void 0!==b?b:0}function Wb(a,b){this.origin=void 0!==a?a:new n;this.direction=void 0!==b?b:new n(0,0,-1)}function Ua(a,b){this.normal=void 0!==a?a:new n(1,
 b?b:new n(-Infinity,-Infinity,-Infinity)}function bg(a,b,c,d,e){var f;var g=0;for(f=a.length-3;g<=f;g+=3){Vb.fromArray(a,g);var k=e.x*Math.abs(Vb.x)+e.y*Math.abs(Vb.y)+e.z*Math.abs(Vb.z),l=b.dot(Vb),m=c.dot(Vb),x=d.dot(Vb);if(Math.max(-Math.max(l,m,x),Math.min(l,m,x))>k)return!1}return!0}function qb(a,b){this.center=void 0!==a?a:new n;this.radius=void 0!==b?b:0}function Wb(a,b){this.origin=void 0!==a?a:new n;this.direction=void 0!==b?b:new n(0,0,-1)}function Ua(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 B(a,b,c){return void 0===b&&void 0===c?this.set(a):this.setRGB(a,b,c)}function cg(a,b,c){0>c&&(c+=1);1<c&&--c;return c<1/6?a+6*(b-a)*c:.5>c?b:c<2/3?a+6*(b-a)*(2/3-c):a}function dg(a){return.04045>a?.0773993808*a:Math.pow(.9478672986*a+.0521327014,2.4)}function eg(a){return.0031308>a?12.92*a:1.055*Math.pow(a,.41666)-.055}function Bc(a,b,c,d,e,f){this.a=a;this.b=
+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 B(a,b,c){return void 0===b&&void 0===c?this.set(a):this.setRGB(a,b,c)}function cg(a,b,c){0>c&&(c+=1);1<c&&--c;return c<1/6?a+6*(b-a)*c:.5>c?b:c<2/3?a+6*(b-a)*(2/3-c):a}function dg(a){return.04045>a?.0773993808*a:Math.pow(.9478672986*a+.0521327014,2.4)}function eg(a){return.0031308>a?12.92*a:1.055*Math.pow(a,.41666)-.055}function Cc(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 B;this.vertexColors=Array.isArray(e)?e:[];this.materialIndex=void 0!==f?f:0}function K(){Object.defineProperty(this,"id",{value:rj++});this.uuid=P.generateUUID();this.name="";this.type="Material";this.fog=!0;this.blending=1;this.side=0;this.vertexTangents=this.flatShading=!1;this.vertexColors=0;this.opacity=1;this.transparent=!1;this.blendSrc=204;this.blendDst=205;this.blendEquation=
 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 B;this.vertexColors=Array.isArray(e)?e:[];this.materialIndex=void 0!==f?f:0}function K(){Object.defineProperty(this,"id",{value:rj++});this.uuid=P.generateUUID();this.name="";this.type="Material";this.fog=!0;this.blending=1;this.side=0;this.vertexTangents=this.flatShading=!1;this.vertexColors=0;this.opacity=1;this.transparent=!1;this.blendSrc=204;this.blendDst=205;this.blendEquation=
 100;this.blendEquationAlpha=this.blendDstAlpha=this.blendSrcAlpha=null;this.depthFunc=3;this.depthWrite=this.depthTest=!0;this.stencilWriteMask=255;this.stencilFunc=519;this.stencilRef=0;this.stencilFuncMask=255;this.stencilZPass=this.stencilZFail=this.stencilFail=7680;this.stencilWrite=!1;this.clippingPlanes=null;this.clipShadows=this.clipIntersection=!1;this.shadowSide=null;this.colorWrite=!0;this.precision=null;this.polygonOffset=!1;this.polygonOffsetUnits=this.polygonOffsetFactor=0;this.dithering=
 100;this.blendEquationAlpha=this.blendDstAlpha=this.blendSrcAlpha=null;this.depthFunc=3;this.depthWrite=this.depthTest=!0;this.stencilWriteMask=255;this.stencilFunc=519;this.stencilRef=0;this.stencilFuncMask=255;this.stencilZPass=this.stencilZFail=this.stencilFail=7680;this.stencilWrite=!1;this.clippingPlanes=null;this.clipShadows=this.clipIntersection=!1;this.shadowSide=null;this.colorWrite=!0;this.precision=null;this.polygonOffset=!1;this.polygonOffsetUnits=this.polygonOffsetFactor=0;this.dithering=
 !1;this.alphaTest=0;this.premultipliedAlpha=!1;this.toneMapped=this.visible=!0;this.userData={};this.version=0}function Pa(a){K.call(this);this.type="MeshBasicMaterial";this.color=new B(16777215);this.lightMap=this.map=null;this.lightMapIntensity=1;this.aoMap=null;this.aoMapIntensity=1;this.envMap=this.alphaMap=this.specularMap=null;this.combine=0;this.reflectivity=1;this.refractionRatio=.98;this.wireframe=!1;this.wireframeLinewidth=1;this.wireframeLinejoin=this.wireframeLinecap="round";this.morphTargets=
 !1;this.alphaTest=0;this.premultipliedAlpha=!1;this.toneMapped=this.visible=!0;this.userData={};this.version=0}function Pa(a){K.call(this);this.type="MeshBasicMaterial";this.color=new B(16777215);this.lightMap=this.map=null;this.lightMapIntensity=1;this.aoMap=null;this.aoMapIntensity=1;this.envMap=this.alphaMap=this.specularMap=null;this.combine=0;this.reflectivity=1;this.refractionRatio=.98;this.wireframe=!1;this.wireframeLinewidth=1;this.wireframeLinejoin=this.wireframeLinecap="round";this.morphTargets=
@@ -16,22 +16,22 @@ b,c){M.call(this,new Int16Array(a),b,c)}function Xb(a,b,c){M.call(this,new Uint1
 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 A(){Object.defineProperty(this,"id",{value:sj+=2});this.uuid=P.generateUUID();this.name="";this.type="BufferGeometry";this.index=null;this.attributes={};this.morphAttributes={};this.morphTargetsRelative=!1;this.groups=[];this.boundingSphere=this.boundingBox=null;
 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 A(){Object.defineProperty(this,"id",{value:sj+=2});this.uuid=P.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 ca(a,b){D.call(this);this.type="Mesh";this.geometry=void 0!==a?a:new A;this.material=void 0!==b?b:new Pa;this.updateMorphTargets()}function zh(a,b,c,d,e,f,g,k){if(null===(1===b.side?d.intersectTriangle(g,f,e,!0,k):d.intersectTriangle(e,f,g,2!==b.side,k)))return null;Ke.copy(k);Ke.applyMatrix4(a.matrixWorld);b=c.ray.origin.distanceTo(Ke);return b<c.near||b>c.far?null:{distance:b,point:Ke.clone(),object:a}}function Le(a,b,c,d,e,f,g,k,
 this.drawRange={start:0,count:Infinity};this.userData={}}function ca(a,b){D.call(this);this.type="Mesh";this.geometry=void 0!==a?a:new A;this.material=void 0!==b?b:new Pa;this.updateMorphTargets()}function zh(a,b,c,d,e,f,g,k){if(null===(1===b.side?d.intersectTriangle(g,f,e,!0,k):d.intersectTriangle(e,f,g,2!==b.side,k)))return null;Ke.copy(k);Ke.applyMatrix4(a.matrixWorld);b=c.ray.origin.distanceTo(Ke);return b<c.near||b>c.far?null:{distance:b,point:Ke.clone(),object:a}}function Le(a,b,c,d,e,f,g,k,
 l,m,x,p){Zb.fromBufferAttribute(e,m);$b.fromBufferAttribute(e,x);ac.fromBufferAttribute(e,p);e=a.morphTargetInfluences;if(b.morphTargets&&f&&e){Me.set(0,0,0);Ne.set(0,0,0);Oe.set(0,0,0);for(var q=0,t=f.length;q<t;q++){var r=e[q],h=f[q];0!==r&&(fg.fromBufferAttribute(h,m),gg.fromBufferAttribute(h,x),hg.fromBufferAttribute(h,p),g?(Me.addScaledVector(fg,r),Ne.addScaledVector(gg,r),Oe.addScaledVector(hg,r)):(Me.addScaledVector(fg.sub(Zb),r),Ne.addScaledVector(gg.sub($b),r),Oe.addScaledVector(hg.sub(ac),
 l,m,x,p){Zb.fromBufferAttribute(e,m);$b.fromBufferAttribute(e,x);ac.fromBufferAttribute(e,p);e=a.morphTargetInfluences;if(b.morphTargets&&f&&e){Me.set(0,0,0);Ne.set(0,0,0);Oe.set(0,0,0);for(var q=0,t=f.length;q<t;q++){var r=e[q],h=f[q];0!==r&&(fg.fromBufferAttribute(h,m),gg.fromBufferAttribute(h,x),hg.fromBufferAttribute(h,p),g?(Me.addScaledVector(fg,r),Ne.addScaledVector(gg,r),Oe.addScaledVector(hg,r)):(Me.addScaledVector(fg.sub(Zb),r),Ne.addScaledVector(gg.sub($b),r),Oe.addScaledVector(hg.sub(ac),
-r)))}Zb.add(Me);$b.add(Ne);ac.add(Oe)}if(a=zh(a,b,c,d,Zb,$b,ac,Id))k&&(Cc.fromBufferAttribute(k,m),Dc.fromBufferAttribute(k,x),Ec.fromBufferAttribute(k,p),a.uv=oa.getUV(Id,Zb,$b,ac,Cc,Dc,Ec,new w)),l&&(Cc.fromBufferAttribute(l,m),Dc.fromBufferAttribute(l,x),Ec.fromBufferAttribute(l,p),a.uv2=oa.getUV(Id,Zb,$b,ac,Cc,Dc,Ec,new w)),k=new Bc(m,x,p),oa.getNormal(Zb,$b,ac,k.normal),a.face=k;return a}function L(){Object.defineProperty(this,"id",{value:tj+=2});this.uuid=P.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 pa(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 qa(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}";
+r)))}Zb.add(Me);$b.add(Ne);ac.add(Oe)}if(a=zh(a,b,c,d,Zb,$b,ac,Id))k&&(Dc.fromBufferAttribute(k,m),Ec.fromBufferAttribute(k,x),Fc.fromBufferAttribute(k,p),a.uv=oa.getUV(Id,Zb,$b,ac,Dc,Ec,Fc,new w)),l&&(Dc.fromBufferAttribute(l,m),Ec.fromBufferAttribute(l,x),Fc.fromBufferAttribute(l,p),a.uv2=oa.getUV(Id,Zb,$b,ac,Dc,Ec,Fc,new w)),k=new Cc(m,x,p),oa.getNormal(Zb,$b,ac,k.normal),a.face=k;return a}function L(){Object.defineProperty(this,"id",{value:tj+=2});this.uuid=P.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 Gc(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 pa(a){for(var b={},c=0;c<a.length;c++){var d=Gc(a[c]),e;for(e in d)b[e]=d[e]}return b}function qa(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=1;this.morphNormals=this.morphTargets=this.skinning=this.clipping=this.lights=this.fog=!1;this.extensions={derivatives:!1,fragDepth:!1,drawBuffers:!1,shaderTextureLOD:!1};this.defaultAttributeValues={color:[1,1,1],uv:[0,0],uv2:[0,0]};this.index0AttributeName=void 0;this.uniformsNeedUpdate=!1;void 0!==a&&(void 0!==a.attributes&&console.error("THREE.ShaderMaterial: attributes should now be defined in THREE.BufferGeometry instead."),this.setValues(a))}
 this.linewidth=1;this.wireframe=!1;this.wireframeLinewidth=1;this.morphNormals=this.morphTargets=this.skinning=this.clipping=this.lights=this.fog=!1;this.extensions={derivatives:!1,fragDepth:!1,drawBuffers:!1,shaderTextureLOD:!1};this.defaultAttributeValues={color:[1,1,1],uv:[0,0],uv2:[0,0]};this.index0AttributeName=void 0;this.uniformsNeedUpdate=!1;void 0!==a&&(void 0!==a.attributes&&console.error("THREE.ShaderMaterial: attributes should now be defined in THREE.BufferGeometry instead."),this.setValues(a))}
-function eb(){D.call(this);this.type="Camera";this.matrixWorldInverse=new O;this.projectionMatrix=new O;this.projectionMatrixInverse=new O}function da(a,b,c,d){eb.call(this);this.type="PerspectiveCamera";this.fov=void 0!==a?a:50;this.zoom=1;this.near=void 0!==c?c:.1;this.far=void 0!==d?d:2E3;this.focus=10;this.aspect=void 0!==b?b:1;this.view=null;this.filmGauge=35;this.filmOffset=0;this.updateProjectionMatrix()}function Gc(a,b,c,d){D.call(this);this.type="CubeCamera";var e=new da(90,1,a,b);e.up.set(0,
+function eb(){D.call(this);this.type="Camera";this.matrixWorldInverse=new O;this.projectionMatrix=new O;this.projectionMatrixInverse=new O}function da(a,b,c,d){eb.call(this);this.type="PerspectiveCamera";this.fov=void 0!==a?a:50;this.zoom=1;this.near=void 0!==c?c:.1;this.far=void 0!==d?d:2E3;this.focus=10;this.aspect=void 0!==b?b:1;this.view=null;this.filmGauge=35;this.filmOffset=0;this.updateProjectionMatrix()}function Hc(a,b,c,d){D.call(this);this.type="CubeCamera";var e=new da(90,1,a,b);e.up.set(0,
 -1,0);e.lookAt(new n(1,0,0));this.add(e);var f=new da(90,1,a,b);f.up.set(0,-1,0);f.lookAt(new n(-1,0,0));this.add(f);var g=new da(90,1,a,b);g.up.set(0,0,1);g.lookAt(new n(0,1,0));this.add(g);var k=new da(90,1,a,b);k.up.set(0,0,-1);k.lookAt(new n(0,-1,0));this.add(k);var l=new da(90,1,a,b);l.up.set(0,-1,0);l.lookAt(new n(0,0,1));this.add(l);var m=new da(90,1,a,b);m.up.set(0,-1,0);m.lookAt(new n(0,0,-1));this.add(m);d=d||{format:1022,magFilter:1006,minFilter:1006};this.renderTarget=new Eb(c,d);this.renderTarget.texture.name=
 -1,0);e.lookAt(new n(1,0,0));this.add(e);var f=new da(90,1,a,b);f.up.set(0,-1,0);f.lookAt(new n(-1,0,0));this.add(f);var g=new da(90,1,a,b);g.up.set(0,0,1);g.lookAt(new n(0,1,0));this.add(g);var k=new da(90,1,a,b);k.up.set(0,0,-1);k.lookAt(new n(0,-1,0));this.add(k);var l=new da(90,1,a,b);l.up.set(0,-1,0);l.lookAt(new n(0,0,1));this.add(l);var m=new da(90,1,a,b);m.up.set(0,-1,0);m.lookAt(new n(0,0,-1));this.add(m);d=d||{format:1022,magFilter:1006,minFilter:1006};this.renderTarget=new Eb(c,d);this.renderTarget.texture.name=
 "CubeCamera";this.update=function(a,b){null===this.parent&&this.updateMatrixWorld();var c=a.getRenderTarget(),d=this.renderTarget,p=d.texture.generateMipmaps;d.texture.generateMipmaps=!1;a.setRenderTarget(d,0);a.render(b,e);a.setRenderTarget(d,1);a.render(b,f);a.setRenderTarget(d,2);a.render(b,g);a.setRenderTarget(d,3);a.render(b,k);a.setRenderTarget(d,4);a.render(b,l);d.texture.generateMipmaps=p;a.setRenderTarget(d,5);a.render(b,m);a.setRenderTarget(c)};this.clear=function(a,b,c,d){for(var e=a.getRenderTarget(),
 "CubeCamera";this.update=function(a,b){null===this.parent&&this.updateMatrixWorld();var c=a.getRenderTarget(),d=this.renderTarget,p=d.texture.generateMipmaps;d.texture.generateMipmaps=!1;a.setRenderTarget(d,0);a.render(b,e);a.setRenderTarget(d,1);a.render(b,f);a.setRenderTarget(d,2);a.render(b,g);a.setRenderTarget(d,3);a.render(b,k);a.setRenderTarget(d,4);a.render(b,l);d.texture.generateMipmaps=p;a.setRenderTarget(d,5);a.render(b,m);a.setRenderTarget(c)};this.clear=function(a,b,c,d){for(var e=a.getRenderTarget(),
 f=this.renderTarget,g=0;6>g;g++)a.setRenderTarget(f,g),a.clear(b,c,d);a.setRenderTarget(e)}}function Eb(a,b,c){Number.isInteger(b)&&(console.warn("THREE.WebGLCubeRenderTarget: constructor signature is now WebGLCubeRenderTarget( size, options )"),b=c);wa.call(this,a,a,b)}function bc(a,b,c,d,e,f,g,k,l,m,x,p){Z.call(this,null,f,g,k,l,m,d,e,x,p);this.image={data:a||null,width:b||1,height:c||1};this.magFilter=void 0!==l?l:1003;this.minFilter=void 0!==m?m:1003;this.flipY=this.generateMipmaps=!1;this.unpackAlignment=
 f=this.renderTarget,g=0;6>g;g++)a.setRenderTarget(f,g),a.clear(b,c,d);a.setRenderTarget(e)}}function Eb(a,b,c){Number.isInteger(b)&&(console.warn("THREE.WebGLCubeRenderTarget: constructor signature is now WebGLCubeRenderTarget( size, options )"),b=c);wa.call(this,a,a,b)}function bc(a,b,c,d,e,f,g,k,l,m,x,p){Z.call(this,null,f,g,k,l,m,d,e,x,p);this.image={data:a||null,width:b||1,height:c||1};this.magFilter=void 0!==l?l:1003;this.minFilter=void 0!==m?m:1003;this.flipY=this.generateMipmaps=!1;this.unpackAlignment=
-1;this.needsUpdate=!0}function Hc(a,b,c,d,e,f){this.planes=[void 0!==a?a:new Ua,void 0!==b?b:new Ua,void 0!==c?c:new Ua,void 0!==d?d:new Ua,void 0!==e?e:new Ua,void 0!==f?f:new Ua]}function Ah(){function a(e,f){!1!==c&&(d(e,f),b.requestAnimationFrame(a))}var b=null,c=!1,d=null;return{start:function(){!0!==c&&null!==d&&(b.requestAnimationFrame(a),c=!0)},stop:function(){c=!1},setAnimationLoop:function(a){d=a},setContext:function(a){b=a}}}function uj(a,b){function c(b,c){var d=b.array,e=b.usage,f=a.createBuffer();
+1;this.needsUpdate=!0}function Ic(a,b,c,d,e,f){this.planes=[void 0!==a?a:new Ua,void 0!==b?b:new Ua,void 0!==c?c:new Ua,void 0!==d?d:new Ua,void 0!==e?e:new Ua,void 0!==f?f:new Ua]}function Ah(){function a(e,f){!1!==c&&(d(e,f),b.requestAnimationFrame(a))}var b=null,c=!1,d=null;return{start:function(){!0!==c&&null!==d&&(b.requestAnimationFrame(a),c=!0)},stop:function(){c=!1},setAnimationLoop:function(a){d=a},setContext:function(a){b=a}}}function uj(a,b){function c(b,c){var d=b.array,e=b.usage,f=a.createBuffer();
 a.bindBuffer(c,f);a.bufferData(c,d,e);b.onUploadCallback();c=5126;d instanceof Float32Array?c=5126:d instanceof Float64Array?console.warn("THREE.WebGLAttributes: Unsupported data buffer format: Float64Array."):d instanceof Uint16Array?c=5123:d instanceof Int16Array?c=5122:d instanceof Uint32Array?c=5125:d instanceof Int32Array?c=5124:d instanceof Int8Array?c=5120:d instanceof Uint8Array&&(c=5121);return{buffer:f,type:c,bytesPerElement:d.BYTES_PER_ELEMENT,version:b.version}}var d=b.isWebGL2,e=new WeakMap;
 a.bindBuffer(c,f);a.bufferData(c,d,e);b.onUploadCallback();c=5126;d instanceof Float32Array?c=5126:d instanceof Float64Array?console.warn("THREE.WebGLAttributes: Unsupported data buffer format: Float64Array."):d instanceof Uint16Array?c=5123:d instanceof Int16Array?c=5122:d instanceof Uint32Array?c=5125:d instanceof Int32Array?c=5124:d instanceof Int8Array?c=5120:d instanceof Uint8Array&&(c=5121);return{buffer:f,type:c,bytesPerElement:d.BYTES_PER_ELEMENT,version:b.version}}var d=b.isWebGL2,e=new WeakMap;
 return{get:function(a){a.isInterleavedBufferAttribute&&(a=a.data);return e.get(a)},remove:function(b){b.isInterleavedBufferAttribute&&(b=b.data);var c=e.get(b);c&&(a.deleteBuffer(c.buffer),e.delete(b))},update:function(b,g){b.isInterleavedBufferAttribute&&(b=b.data);var f=e.get(b);if(void 0===f)e.set(b,c(b,g));else if(f.version<b.version){var l=b.array,m=b.updateRange;a.bindBuffer(g,f.buffer);-1===m.count?a.bufferSubData(g,0,l):(d?a.bufferSubData(g,m.offset*l.BYTES_PER_ELEMENT,l,m.offset,m.count):
 return{get:function(a){a.isInterleavedBufferAttribute&&(a=a.data);return e.get(a)},remove:function(b){b.isInterleavedBufferAttribute&&(b=b.data);var c=e.get(b);c&&(a.deleteBuffer(c.buffer),e.delete(b))},update:function(b,g){b.isInterleavedBufferAttribute&&(b=b.data);var f=e.get(b);if(void 0===f)e.set(b,c(b,g));else if(f.version<b.version){var l=b.array,m=b.updateRange;a.bindBuffer(g,f.buffer);-1===m.count?a.bufferSubData(g,0,l):(d?a.bufferSubData(g,m.offset*l.BYTES_PER_ELEMENT,l,m.offset,m.count):
 a.bufferSubData(g,m.offset*l.BYTES_PER_ELEMENT,l.subarray(m.offset,m.offset+m.count)),m.count=-1);f.version=b.version}}}}function Jd(a,b,c,d){L.call(this);this.type="PlaneGeometry";this.parameters={width:a,height:b,widthSegments:c,heightSegments:d};this.fromBufferGeometry(new cc(a,b,c,d));this.mergeVertices()}function cc(a,b,c,d){A.call(this);this.type="PlaneBufferGeometry";this.parameters={width:a,height:b,widthSegments:c,heightSegments:d};a=a||1;b=b||1;var e=a/2,f=b/2;c=Math.floor(c)||1;d=Math.floor(d)||
 a.bufferSubData(g,m.offset*l.BYTES_PER_ELEMENT,l.subarray(m.offset,m.offset+m.count)),m.count=-1);f.version=b.version}}}}function Jd(a,b,c,d){L.call(this);this.type="PlaneGeometry";this.parameters={width:a,height:b,widthSegments:c,heightSegments:d};this.fromBufferGeometry(new cc(a,b,c,d));this.mergeVertices()}function cc(a,b,c,d){A.call(this);this.type="PlaneBufferGeometry";this.parameters={width:a,height:b,widthSegments:c,heightSegments:d};a=a||1;b=b||1;var e=a/2,f=b/2;c=Math.floor(c)||1;d=Math.floor(d)||
 1;var g=c+1,k=d+1,l=a/c,m=b/d,x=[],p=[],q=[],t=[];for(a=0;a<k;a++){var r=a*m-f;for(b=0;b<g;b++)p.push(b*l-e,-r,0),q.push(0,0,1),t.push(b/c),t.push(1-a/d)}for(a=0;a<d;a++)for(b=0;b<c;b++)e=b+g*(a+1),f=b+1+g*(a+1),k=b+1+g*a,x.push(b+g*a,e,k),x.push(e,f,k);this.setIndex(x);this.setAttribute("position",new E(p,3));this.setAttribute("normal",new E(q,3));this.setAttribute("uv",new E(t,2))}function vj(a,b,c,d){function e(a,c){b.buffers.color.setClear(a.r,a.g,a.b,c,d)}var f=new B(0),g=0,k,l,m=null,x=0,p=
 1;var g=c+1,k=d+1,l=a/c,m=b/d,x=[],p=[],q=[],t=[];for(a=0;a<k;a++){var r=a*m-f;for(b=0;b<g;b++)p.push(b*l-e,-r,0),q.push(0,0,1),t.push(b/c),t.push(1-a/d)}for(a=0;a<d;a++)for(b=0;b<c;b++)e=b+g*(a+1),f=b+1+g*(a+1),k=b+1+g*a,x.push(b+g*a,e,k),x.push(e,f,k);this.setIndex(x);this.setAttribute("position",new E(p,3));this.setAttribute("normal",new E(q,3));this.setAttribute("uv",new E(t,2))}function vj(a,b,c,d){function e(a,c){b.buffers.color.setClear(a.r,a.g,a.b,c,d)}var f=new B(0),g=0,k,l,m=null,x=0,p=
 null;return{getClearColor:function(){return f},setClearColor:function(a,b){f.set(a);g=void 0!==b?b:1;e(f,g)},getClearAlpha:function(){return g},setClearAlpha:function(a){g=a;e(f,g)},render:function(b,d,r,h){d=d.background;r=a.xr;(r=r.getSession&&r.getSession())&&"additive"===r.environmentBlendMode&&(d=null);null===d?e(f,g):d&&d.isColor&&(e(d,1),h=!0);(a.autoClear||h)&&a.clear(a.autoClearColor,a.autoClearDepth,a.autoClearStencil);if(d&&(d.isCubeTexture||d.isWebGLCubeRenderTarget||306===d.mapping)){void 0===
 null;return{getClearColor:function(){return f},setClearColor:function(a,b){f.set(a);g=void 0!==b?b:1;e(f,g)},getClearAlpha:function(){return g},setClearAlpha:function(a){g=a;e(f,g)},render:function(b,d,r,h){d=d.background;r=a.xr;(r=r.getSession&&r.getSession())&&"additive"===r.environmentBlendMode&&(d=null);null===d?e(f,g):d&&d.isColor&&(e(d,1),h=!0);(a.autoClear||h)&&a.clear(a.autoClearColor,a.autoClearDepth,a.autoClearStencil);if(d&&(d.isCubeTexture||d.isWebGLCubeRenderTarget||306===d.mapping)){void 0===
-l&&(l=new ca(new Kd(1,1,1),new qa({type:"BackgroundCubeMaterial",uniforms:Fc(fb.cube.uniforms),vertexShader:fb.cube.vertexShader,fragmentShader:fb.cube.fragmentShader,side:1,depthTest:!1,depthWrite:!1,fog:!1})),l.geometry.deleteAttribute("normal"),l.geometry.deleteAttribute("uv"),l.onBeforeRender=function(a,b,c){this.matrixWorld.copyPosition(c.matrixWorld)},Object.defineProperty(l.material,"envMap",{get:function(){return this.uniforms.envMap.value}}),c.update(l));h=d.isWebGLCubeRenderTarget?d.texture:
-d;l.material.uniforms.envMap.value=h;l.material.uniforms.flipEnvMap.value=h.isCubeTexture?-1:1;if(m!==d||x!==h.version||p!==a.toneMapping)l.material.needsUpdate=!0,m=d,x=h.version,p=a.toneMapping;b.unshift(l,l.geometry,l.material,0,0,null)}else if(d&&d.isTexture){void 0===k&&(k=new ca(new cc(2,2),new qa({type:"BackgroundMaterial",uniforms:Fc(fb.background.uniforms),vertexShader:fb.background.vertexShader,fragmentShader:fb.background.fragmentShader,side:0,depthTest:!1,depthWrite:!1,fog:!1})),k.geometry.deleteAttribute("normal"),
+l&&(l=new ca(new Kd(1,1,1),new qa({type:"BackgroundCubeMaterial",uniforms:Gc(fb.cube.uniforms),vertexShader:fb.cube.vertexShader,fragmentShader:fb.cube.fragmentShader,side:1,depthTest:!1,depthWrite:!1,fog:!1})),l.geometry.deleteAttribute("normal"),l.geometry.deleteAttribute("uv"),l.onBeforeRender=function(a,b,c){this.matrixWorld.copyPosition(c.matrixWorld)},Object.defineProperty(l.material,"envMap",{get:function(){return this.uniforms.envMap.value}}),c.update(l));h=d.isWebGLCubeRenderTarget?d.texture:
+d;l.material.uniforms.envMap.value=h;l.material.uniforms.flipEnvMap.value=h.isCubeTexture?-1:1;if(m!==d||x!==h.version||p!==a.toneMapping)l.material.needsUpdate=!0,m=d,x=h.version,p=a.toneMapping;b.unshift(l,l.geometry,l.material,0,0,null)}else if(d&&d.isTexture){void 0===k&&(k=new ca(new cc(2,2),new qa({type:"BackgroundMaterial",uniforms:Gc(fb.background.uniforms),vertexShader:fb.background.vertexShader,fragmentShader:fb.background.fragmentShader,side:0,depthTest:!1,depthWrite:!1,fog:!1})),k.geometry.deleteAttribute("normal"),
 Object.defineProperty(k.material,"map",{get:function(){return this.uniforms.t2D.value}}),c.update(k));k.material.uniforms.t2D.value=d;!0===d.matrixAutoUpdate&&d.updateMatrix();k.material.uniforms.uvTransform.value.copy(d.matrix);if(m!==d||x!==d.version||p!==a.toneMapping)k.material.needsUpdate=!0,m=d,x=d.version,p=a.toneMapping;b.unshift(k,k.geometry,k.material,0,0,null)}}}}function wj(a,b,c,d){var e=d.isWebGL2,f;this.setMode=function(a){f=a};this.render=function(b,d){a.drawArrays(f,b,d);c.update(d,
 Object.defineProperty(k.material,"map",{get:function(){return this.uniforms.t2D.value}}),c.update(k));k.material.uniforms.t2D.value=d;!0===d.matrixAutoUpdate&&d.updateMatrix();k.material.uniforms.uvTransform.value.copy(d.matrix);if(m!==d||x!==d.version||p!==a.toneMapping)k.material.needsUpdate=!0,m=d,x=d.version,p=a.toneMapping;b.unshift(k,k.geometry,k.material,0,0,null)}}}}function wj(a,b,c,d){var e=d.isWebGL2,f;this.setMode=function(a){f=a};this.render=function(b,d){a.drawArrays(f,b,d);c.update(d,
 f)};this.renderInstances=function(d,k,l,m){if(0!==m){if(e){d=a;var g="drawArraysInstanced"}else if(d=b.get("ANGLE_instanced_arrays"),g="drawArraysInstancedANGLE",null===d){console.error("THREE.WebGLBufferRenderer: using THREE.InstancedBufferGeometry but hardware does not support extension ANGLE_instanced_arrays.");return}d[g](f,k,l,m);c.update(l,f,m)}}}function xj(a,b,c){function d(b){if("highp"===b){if(0<a.getShaderPrecisionFormat(35633,36338).precision&&0<a.getShaderPrecisionFormat(35632,36338).precision)return"highp";
 f)};this.renderInstances=function(d,k,l,m){if(0!==m){if(e){d=a;var g="drawArraysInstanced"}else if(d=b.get("ANGLE_instanced_arrays"),g="drawArraysInstancedANGLE",null===d){console.error("THREE.WebGLBufferRenderer: using THREE.InstancedBufferGeometry but hardware does not support extension ANGLE_instanced_arrays.");return}d[g](f,k,l,m);c.update(l,f,m)}}}function xj(a,b,c){function d(b){if("highp"===b){if(0<a.getShaderPrecisionFormat(35633,36338).precision&&0<a.getShaderPrecisionFormat(35632,36338).precision)return"highp";
 b="mediump"}return"mediump"===b&&0<a.getShaderPrecisionFormat(35633,36337).precision&&0<a.getShaderPrecisionFormat(35632,36337).precision?"mediump":"lowp"}var e,f="undefined"!==typeof WebGL2RenderingContext&&a instanceof WebGL2RenderingContext||"undefined"!==typeof WebGL2ComputeRenderingContext&&a instanceof WebGL2ComputeRenderingContext,g=void 0!==c.precision?c.precision:"highp",k=d(g);k!==g&&(console.warn("THREE.WebGLRenderer:",g,"not supported, using",k,"instead."),g=k);c=!0===c.logarithmicDepthBuffer;
 b="mediump"}return"mediump"===b&&0<a.getShaderPrecisionFormat(35633,36337).precision&&0<a.getShaderPrecisionFormat(35632,36337).precision?"mediump":"lowp"}var e,f="undefined"!==typeof WebGL2RenderingContext&&a instanceof WebGL2RenderingContext||"undefined"!==typeof WebGL2ComputeRenderingContext&&a instanceof WebGL2ComputeRenderingContext,g=void 0!==c.precision?c.precision:"highp",k=d(g);k!==g&&(console.warn("THREE.WebGLRenderer:",g,"not supported, using",k,"instead."),g=k);c=!0===c.logarithmicDepthBuffer;
@@ -47,15 +47,15 @@ this.render=function(b,d){a.drawElements(f,d,g,b*k);c.update(d,f)};this.renderIn
 return{memory:{geometries:0,textures:0},render:b,programs:null,autoReset:!0,reset:function(){b.frame++;b.calls=0;b.triangles=0;b.points=0;b.lines=0},update:function(a,d,e){e=e||1;b.calls++;switch(d){case 4:b.triangles+=a/3*e;break;case 1:b.lines+=a/2*e;break;case 3:b.lines+=e*(a-1);break;case 2:b.lines+=e*a;break;case 0:b.points+=e*a;break;default:console.error("THREE.WebGLInfo: Unknown draw mode:",d)}}}}function Dj(a,b){return Math.abs(b[1])-Math.abs(a[1])}function Ej(a){var b={},c=new Float32Array(8);
 return{memory:{geometries:0,textures:0},render:b,programs:null,autoReset:!0,reset:function(){b.frame++;b.calls=0;b.triangles=0;b.points=0;b.lines=0},update:function(a,d,e){e=e||1;b.calls++;switch(d){case 4:b.triangles+=a/3*e;break;case 1:b.lines+=a/2*e;break;case 3:b.lines+=e*(a-1);break;case 2:b.lines+=e*a;break;case 0:b.points+=e*a;break;default:console.error("THREE.WebGLInfo: Unknown draw mode:",d)}}}}function Dj(a,b){return Math.abs(b[1])-Math.abs(a[1])}function Ej(a){var b={},c=new Float32Array(8);
 return{update:function(d,e,f,g){var k=d.morphTargetInfluences,l=void 0===k?0:k.length;d=b[e.id];if(void 0===d){d=[];for(var m=0;m<l;m++)d[m]=[m,0];b[e.id]=d}var x=f.morphTargets&&e.morphAttributes.position;f=f.morphNormals&&e.morphAttributes.normal;for(m=0;m<l;m++){var p=d[m];0!==p[1]&&(x&&e.deleteAttribute("morphTarget"+m),f&&e.deleteAttribute("morphNormal"+m))}for(m=0;m<l;m++)p=d[m],p[0]=m,p[1]=k[m];d.sort(Dj);for(m=k=0;8>m;m++){if(p=d[m])if(l=p[0],p=p[1]){x&&e.setAttribute("morphTarget"+m,x[l]);
 return{update:function(d,e,f,g){var k=d.morphTargetInfluences,l=void 0===k?0:k.length;d=b[e.id];if(void 0===d){d=[];for(var m=0;m<l;m++)d[m]=[m,0];b[e.id]=d}var x=f.morphTargets&&e.morphAttributes.position;f=f.morphNormals&&e.morphAttributes.normal;for(m=0;m<l;m++){var p=d[m];0!==p[1]&&(x&&e.deleteAttribute("morphTarget"+m),f&&e.deleteAttribute("morphNormal"+m))}for(m=0;m<l;m++)p=d[m],p[0]=m,p[1]=k[m];d.sort(Dj);for(m=k=0;8>m;m++){if(p=d[m])if(l=p[0],p=p[1]){x&&e.setAttribute("morphTarget"+m,x[l]);
 f&&e.setAttribute("morphNormal"+m,f[l]);c[m]=p;k+=p;continue}c[m]=0}e=e.morphTargetsRelative?1:1-k;g.getUniforms().setValue(a,"morphTargetBaseInfluence",e);g.getUniforms().setValue(a,"morphTargetInfluences",c)}}}function Fj(a,b,c,d){var e={};return{update:function(a){var f=d.render.frame,k=a.geometry,l=b.get(a,k);e[l.id]!==f&&(k.isGeometry&&l.updateFromObject(a),b.update(l),e[l.id]=f);a.isInstancedMesh&&c.update(a.instanceMatrix,34962);return l},dispose:function(){e={}}}}function rb(a,b,c,d,e,f,g,
 f&&e.setAttribute("morphNormal"+m,f[l]);c[m]=p;k+=p;continue}c[m]=0}e=e.morphTargetsRelative?1:1-k;g.getUniforms().setValue(a,"morphTargetBaseInfluence",e);g.getUniforms().setValue(a,"morphTargetInfluences",c)}}}function Fj(a,b,c,d){var e={};return{update:function(a){var f=d.render.frame,k=a.geometry,l=b.get(a,k);e[l.id]!==f&&(k.isGeometry&&l.updateFromObject(a),b.update(l),e[l.id]=f);a.isInstancedMesh&&c.update(a.instanceMatrix,34962);return l},dispose:function(){e={}}}}function rb(a,b,c,d,e,f,g,
-k,l,m){a=void 0!==a?a:[];Z.call(this,a,void 0!==b?b:301,c,d,e,f,void 0!==g?g:1022,k,l,m);this.flipY=!1}function Ic(a,b,c,d){Z.call(this,null);this.image={data:a||null,width:b||1,height:c||1,depth:d||1};this.minFilter=this.magFilter=1003;this.wrapR=1001;this.flipY=this.generateMipmaps=!1;this.needsUpdate=!0}function Jc(a,b,c,d){Z.call(this,null);this.image={data:a||null,width:b||1,height:c||1,depth:d||1};this.minFilter=this.magFilter=1003;this.wrapR=1001;this.flipY=this.generateMipmaps=!1;this.needsUpdate=
-!0}function Kc(a,b,c){var d=a[0];if(0>=d||0<d)return a;var e=b*c,f=Bh[e];void 0===f&&(f=new Float32Array(e),Bh[e]=f);if(0!==b)for(d.toArray(f,0),d=1,e=0;d!==b;++d)e+=c,a[d].toArray(f,e);return f}function Qa(a,b){if(a.length!==b.length)return!1;for(var c=0,d=a.length;c<d;c++)if(a[c]!==b[c])return!1;return!0}function Ka(a,b){for(var c=0,d=b.length;c<d;c++)a[c]=b[c]}function Ch(a,b){var c=Dh[b];void 0===c&&(c=new Int32Array(b),Dh[b]=c);for(var d=0;d!==b;++d)c[d]=a.allocateTextureUnit();return c}function Gj(a,
+k,l,m){a=void 0!==a?a:[];Z.call(this,a,void 0!==b?b:301,c,d,e,f,void 0!==g?g:1022,k,l,m);this.flipY=!1}function Jc(a,b,c,d){Z.call(this,null);this.image={data:a||null,width:b||1,height:c||1,depth:d||1};this.minFilter=this.magFilter=1003;this.wrapR=1001;this.flipY=this.generateMipmaps=!1;this.needsUpdate=!0}function Kc(a,b,c,d){Z.call(this,null);this.image={data:a||null,width:b||1,height:c||1,depth:d||1};this.minFilter=this.magFilter=1003;this.wrapR=1001;this.flipY=this.generateMipmaps=!1;this.needsUpdate=
+!0}function Lc(a,b,c){var d=a[0];if(0>=d||0<d)return a;var e=b*c,f=Bh[e];void 0===f&&(f=new Float32Array(e),Bh[e]=f);if(0!==b)for(d.toArray(f,0),d=1,e=0;d!==b;++d)e+=c,a[d].toArray(f,e);return f}function Qa(a,b){if(a.length!==b.length)return!1;for(var c=0,d=a.length;c<d;c++)if(a[c]!==b[c])return!1;return!0}function Ka(a,b){for(var c=0,d=b.length;c<d;c++)a[c]=b[c]}function Ch(a,b){var c=Dh[b];void 0===c&&(c=new Int32Array(b),Dh[b]=c);for(var d=0;d!==b;++d)c[d]=a.allocateTextureUnit();return c}function Gj(a,
 b){var c=this.cache;c[0]!==b&&(a.uniform1f(this.addr,b),c[0]=b)}function Hj(a,b){var c=this.cache;if(void 0!==b.x){if(c[0]!==b.x||c[1]!==b.y)a.uniform2f(this.addr,b.x,b.y),c[0]=b.x,c[1]=b.y}else Qa(c,b)||(a.uniform2fv(this.addr,b),Ka(c,b))}function Ij(a,b){var c=this.cache;if(void 0!==b.x){if(c[0]!==b.x||c[1]!==b.y||c[2]!==b.z)a.uniform3f(this.addr,b.x,b.y,b.z),c[0]=b.x,c[1]=b.y,c[2]=b.z}else if(void 0!==b.r){if(c[0]!==b.r||c[1]!==b.g||c[2]!==b.b)a.uniform3f(this.addr,b.r,b.g,b.b),c[0]=b.r,c[1]=b.g,
 b){var c=this.cache;c[0]!==b&&(a.uniform1f(this.addr,b),c[0]=b)}function Hj(a,b){var c=this.cache;if(void 0!==b.x){if(c[0]!==b.x||c[1]!==b.y)a.uniform2f(this.addr,b.x,b.y),c[0]=b.x,c[1]=b.y}else Qa(c,b)||(a.uniform2fv(this.addr,b),Ka(c,b))}function Ij(a,b){var c=this.cache;if(void 0!==b.x){if(c[0]!==b.x||c[1]!==b.y||c[2]!==b.z)a.uniform3f(this.addr,b.x,b.y,b.z),c[0]=b.x,c[1]=b.y,c[2]=b.z}else if(void 0!==b.r){if(c[0]!==b.r||c[1]!==b.g||c[2]!==b.b)a.uniform3f(this.addr,b.r,b.g,b.b),c[0]=b.r,c[1]=b.g,
 c[2]=b.b}else Qa(c,b)||(a.uniform3fv(this.addr,b),Ka(c,b))}function Jj(a,b){var c=this.cache;if(void 0!==b.x){if(c[0]!==b.x||c[1]!==b.y||c[2]!==b.z||c[3]!==b.w)a.uniform4f(this.addr,b.x,b.y,b.z,b.w),c[0]=b.x,c[1]=b.y,c[2]=b.z,c[3]=b.w}else Qa(c,b)||(a.uniform4fv(this.addr,b),Ka(c,b))}function Kj(a,b){var c=this.cache,d=b.elements;void 0===d?Qa(c,b)||(a.uniformMatrix2fv(this.addr,!1,b),Ka(c,b)):Qa(c,d)||(Eh.set(d),a.uniformMatrix2fv(this.addr,!1,Eh),Ka(c,d))}function Lj(a,b){var c=this.cache,d=b.elements;
 c[2]=b.b}else Qa(c,b)||(a.uniform3fv(this.addr,b),Ka(c,b))}function Jj(a,b){var c=this.cache;if(void 0!==b.x){if(c[0]!==b.x||c[1]!==b.y||c[2]!==b.z||c[3]!==b.w)a.uniform4f(this.addr,b.x,b.y,b.z,b.w),c[0]=b.x,c[1]=b.y,c[2]=b.z,c[3]=b.w}else Qa(c,b)||(a.uniform4fv(this.addr,b),Ka(c,b))}function Kj(a,b){var c=this.cache,d=b.elements;void 0===d?Qa(c,b)||(a.uniformMatrix2fv(this.addr,!1,b),Ka(c,b)):Qa(c,d)||(Eh.set(d),a.uniformMatrix2fv(this.addr,!1,Eh),Ka(c,d))}function Lj(a,b){var c=this.cache,d=b.elements;
 void 0===d?Qa(c,b)||(a.uniformMatrix3fv(this.addr,!1,b),Ka(c,b)):Qa(c,d)||(Fh.set(d),a.uniformMatrix3fv(this.addr,!1,Fh),Ka(c,d))}function Mj(a,b){var c=this.cache,d=b.elements;void 0===d?Qa(c,b)||(a.uniformMatrix4fv(this.addr,!1,b),Ka(c,b)):Qa(c,d)||(Gh.set(d),a.uniformMatrix4fv(this.addr,!1,Gh),Ka(c,d))}function Nj(a,b,c){var d=this.cache,e=c.allocateTextureUnit();d[0]!==e&&(a.uniform1i(this.addr,e),d[0]=e);c.safeSetTexture2D(b||Hh,e)}function Oj(a,b,c){var d=this.cache,e=c.allocateTextureUnit();
 void 0===d?Qa(c,b)||(a.uniformMatrix3fv(this.addr,!1,b),Ka(c,b)):Qa(c,d)||(Fh.set(d),a.uniformMatrix3fv(this.addr,!1,Fh),Ka(c,d))}function Mj(a,b){var c=this.cache,d=b.elements;void 0===d?Qa(c,b)||(a.uniformMatrix4fv(this.addr,!1,b),Ka(c,b)):Qa(c,d)||(Gh.set(d),a.uniformMatrix4fv(this.addr,!1,Gh),Ka(c,d))}function Nj(a,b,c){var d=this.cache,e=c.allocateTextureUnit();d[0]!==e&&(a.uniform1i(this.addr,e),d[0]=e);c.safeSetTexture2D(b||Hh,e)}function Oj(a,b,c){var d=this.cache,e=c.allocateTextureUnit();
 d[0]!==e&&(a.uniform1i(this.addr,e),d[0]=e);c.setTexture2DArray(b||Pj,e)}function Qj(a,b,c){var d=this.cache,e=c.allocateTextureUnit();d[0]!==e&&(a.uniform1i(this.addr,e),d[0]=e);c.setTexture3D(b||Rj,e)}function Sj(a,b,c){var d=this.cache,e=c.allocateTextureUnit();d[0]!==e&&(a.uniform1i(this.addr,e),d[0]=e);c.safeSetTextureCube(b||Ih,e)}function Tj(a,b){var c=this.cache;c[0]!==b&&(a.uniform1i(this.addr,b),c[0]=b)}function Uj(a,b){var c=this.cache;Qa(c,b)||(a.uniform2iv(this.addr,b),Ka(c,b))}function Vj(a,
 d[0]!==e&&(a.uniform1i(this.addr,e),d[0]=e);c.setTexture2DArray(b||Pj,e)}function Qj(a,b,c){var d=this.cache,e=c.allocateTextureUnit();d[0]!==e&&(a.uniform1i(this.addr,e),d[0]=e);c.setTexture3D(b||Rj,e)}function Sj(a,b,c){var d=this.cache,e=c.allocateTextureUnit();d[0]!==e&&(a.uniform1i(this.addr,e),d[0]=e);c.safeSetTextureCube(b||Ih,e)}function Tj(a,b){var c=this.cache;c[0]!==b&&(a.uniform1i(this.addr,b),c[0]=b)}function Uj(a,b){var c=this.cache;Qa(c,b)||(a.uniform2iv(this.addr,b),Ka(c,b))}function Vj(a,
 b){var c=this.cache;Qa(c,b)||(a.uniform3iv(this.addr,b),Ka(c,b))}function Wj(a,b){var c=this.cache;Qa(c,b)||(a.uniform4iv(this.addr,b),Ka(c,b))}function Xj(a,b){var c=this.cache;c[0]!==b&&(a.uniform1ui(this.addr,b),c[0]=b)}function Yj(a){switch(a){case 5126:return Gj;case 35664:return Hj;case 35665:return Ij;case 35666:return Jj;case 35674:return Kj;case 35675:return Lj;case 35676:return Mj;case 5124:case 35670:return Tj;case 35667:case 35671:return Uj;case 35668:case 35672:return Vj;case 35669:case 35673:return Wj;
 b){var c=this.cache;Qa(c,b)||(a.uniform3iv(this.addr,b),Ka(c,b))}function Wj(a,b){var c=this.cache;Qa(c,b)||(a.uniform4iv(this.addr,b),Ka(c,b))}function Xj(a,b){var c=this.cache;c[0]!==b&&(a.uniform1ui(this.addr,b),c[0]=b)}function Yj(a){switch(a){case 5126:return Gj;case 35664:return Hj;case 35665:return Ij;case 35666:return Jj;case 35674:return Kj;case 35675:return Lj;case 35676:return Mj;case 5124:case 35670:return Tj;case 35667:case 35671:return Uj;case 35668:case 35672:return Vj;case 35669:case 35673:return Wj;
-case 5125:return Xj;case 35678:case 36198:case 36298:case 36306:case 35682:return Nj;case 35679:case 36299:case 36307:return Qj;case 35680:case 36300:case 36308:case 36293:return Sj;case 36289:case 36303:case 36311:case 36292:return Oj}}function Zj(a,b){a.uniform1fv(this.addr,b)}function ak(a,b){a.uniform1iv(this.addr,b)}function bk(a,b){a.uniform2iv(this.addr,b)}function ck(a,b){a.uniform3iv(this.addr,b)}function dk(a,b){a.uniform4iv(this.addr,b)}function ek(a,b){b=Kc(b,this.size,2);a.uniform2fv(this.addr,
-b)}function fk(a,b){b=Kc(b,this.size,3);a.uniform3fv(this.addr,b)}function gk(a,b){b=Kc(b,this.size,4);a.uniform4fv(this.addr,b)}function hk(a,b){b=Kc(b,this.size,4);a.uniformMatrix2fv(this.addr,!1,b)}function ik(a,b){b=Kc(b,this.size,9);a.uniformMatrix3fv(this.addr,!1,b)}function jk(a,b){b=Kc(b,this.size,16);a.uniformMatrix4fv(this.addr,!1,b)}function kk(a,b,c){var d=b.length,e=Ch(c,d);a.uniform1iv(this.addr,e);for(a=0;a!==d;++a)c.safeSetTexture2D(b[a]||Hh,e[a])}function lk(a,b,c){var d=b.length,
+case 5125:return Xj;case 35678:case 36198:case 36298:case 36306:case 35682:return Nj;case 35679:case 36299:case 36307:return Qj;case 35680:case 36300:case 36308:case 36293:return Sj;case 36289:case 36303:case 36311:case 36292:return Oj}}function Zj(a,b){a.uniform1fv(this.addr,b)}function ak(a,b){a.uniform1iv(this.addr,b)}function bk(a,b){a.uniform2iv(this.addr,b)}function ck(a,b){a.uniform3iv(this.addr,b)}function dk(a,b){a.uniform4iv(this.addr,b)}function ek(a,b){b=Lc(b,this.size,2);a.uniform2fv(this.addr,
+b)}function fk(a,b){b=Lc(b,this.size,3);a.uniform3fv(this.addr,b)}function gk(a,b){b=Lc(b,this.size,4);a.uniform4fv(this.addr,b)}function hk(a,b){b=Lc(b,this.size,4);a.uniformMatrix2fv(this.addr,!1,b)}function ik(a,b){b=Lc(b,this.size,9);a.uniformMatrix3fv(this.addr,!1,b)}function jk(a,b){b=Lc(b,this.size,16);a.uniformMatrix4fv(this.addr,!1,b)}function kk(a,b,c){var d=b.length,e=Ch(c,d);a.uniform1iv(this.addr,e);for(a=0;a!==d;++a)c.safeSetTexture2D(b[a]||Hh,e[a])}function lk(a,b,c){var d=b.length,
 e=Ch(c,d);a.uniform1iv(this.addr,e);for(a=0;a!==d;++a)c.safeSetTextureCube(b[a]||Ih,e[a])}function mk(a){switch(a){case 5126:return Zj;case 35664:return ek;case 35665:return fk;case 35666:return gk;case 35674:return hk;case 35675:return ik;case 35676:return jk;case 5124:case 35670:return ak;case 35667:case 35671:return bk;case 35668:case 35672:return ck;case 35669:case 35673:return dk;case 35678:case 36198:case 36298:case 36306:case 35682:return kk;case 35680:case 36300:case 36308:case 36293:return lk}}
 e=Ch(c,d);a.uniform1iv(this.addr,e);for(a=0;a!==d;++a)c.safeSetTextureCube(b[a]||Ih,e[a])}function mk(a){switch(a){case 5126:return Zj;case 35664:return ek;case 35665:return fk;case 35666:return gk;case 35674:return hk;case 35675:return ik;case 35676:return jk;case 5124:case 35670:return ak;case 35667:case 35671:return bk;case 35668:case 35672:return ck;case 35669:case 35673:return dk;case 35678:case 36198:case 36298:case 36306:case 35682:return kk;case 35680:case 36300:case 36308:case 36293:return lk}}
 function nk(a,b,c){this.id=a;this.addr=c;this.cache=[];this.setValue=Yj(b.type)}function Jh(a,b,c){this.id=a;this.addr=c;this.cache=[];this.size=b.size;this.setValue=mk(b.type)}function Kh(a){this.id=a;this.seq=[];this.map={}}function Fb(a,b){this.seq=[];this.map={};for(var c=a.getProgramParameter(b,35718),d=0;d<c;++d){var e=a.getActiveUniform(b,d),f=a.getUniformLocation(b,e.name),g=this,k=e.name,l=k.length;for(ig.lastIndex=0;;){var m=ig.exec(k),x=ig.lastIndex,p=m[1],h=m[3];"]"===m[2]&&(p|=0);if(void 0===
 function nk(a,b,c){this.id=a;this.addr=c;this.cache=[];this.setValue=Yj(b.type)}function Jh(a,b,c){this.id=a;this.addr=c;this.cache=[];this.size=b.size;this.setValue=mk(b.type)}function Kh(a){this.id=a;this.seq=[];this.map={}}function Fb(a,b){this.seq=[];this.map={};for(var c=a.getProgramParameter(b,35718),d=0;d<c;++d){var e=a.getActiveUniform(b,d),f=a.getUniformLocation(b,e.name),g=this,k=e.name,l=k.length;for(ig.lastIndex=0;;){var m=ig.exec(k),x=ig.lastIndex,p=m[1],h=m[3];"]"===m[2]&&(p|=0);if(void 0===
 h||"["===h&&x+2===l){k=g;e=void 0===h?new nk(p,e,f):new Jh(p,e,f);k.seq.push(e);k.map[e.id]=e;break}else h=g.map[p],void 0===h&&(h=new Kh(p),p=g,g=h,p.seq.push(g),p.map[g.id]=g),g=h}}}function Lh(a,b,c){b=a.createShader(b);a.shaderSource(b,c);a.compileShader(b);return b}function Mh(a){switch(a){case 3E3:return["Linear","( value )"];case 3001:return["sRGB","( value )"];case 3002:return["RGBE","( value )"];case 3004:return["RGBM","( value, 7.0 )"];case 3005:return["RGBM","( value, 16.0 )"];case 3006:return["RGBD",
 h||"["===h&&x+2===l){k=g;e=void 0===h?new nk(p,e,f):new Jh(p,e,f);k.seq.push(e);k.map[e.id]=e;break}else h=g.map[p],void 0===h&&(h=new Kh(p),p=g,g=h,p.seq.push(g),p.map[g.id]=g),g=h}}}function Lh(a,b,c){b=a.createShader(b);a.shaderSource(b,c);a.compileShader(b);return b}function Mh(a){switch(a){case 3E3:return["Linear","( value )"];case 3001:return["sRGB","( value )"];case 3002:return["RGBE","( value )"];case 3004:return["RGBM","( value, 7.0 )"];case 3005:return["RGBM","( value, 16.0 )"];case 3006:return["RGBD",
@@ -91,7 +91,7 @@ precision:l,instancing:!0===W.isInstancedMesh,supportsVertexTextures:x,numMultiv
 bumpMap:!!e.bumpMap,normalMap:!!e.normalMap,objectSpaceNormalMap:1===e.normalMapType,tangentSpaceNormalMap:0===e.normalMapType,clearcoatNormalMap:!!e.clearcoatNormalMap,displacementMap:!!e.displacementMap,roughnessMap:!!e.roughnessMap,metalnessMap:!!e.metalnessMap,specularMap:!!e.specularMap,alphaMap:!!e.alphaMap,gradientMap:!!e.gradientMap,sheen:!!e.sheen,combine:e.combine,vertexTangents:e.normalMap&&e.vertexTangents,vertexColors:e.vertexColors,vertexUvs:!!e.map||!!e.bumpMap||!!e.normalMap||!!e.specularMap||
 bumpMap:!!e.bumpMap,normalMap:!!e.normalMap,objectSpaceNormalMap:1===e.normalMapType,tangentSpaceNormalMap:0===e.normalMapType,clearcoatNormalMap:!!e.clearcoatNormalMap,displacementMap:!!e.displacementMap,roughnessMap:!!e.roughnessMap,metalnessMap:!!e.metalnessMap,specularMap:!!e.specularMap,alphaMap:!!e.alphaMap,gradientMap:!!e.gradientMap,sheen:!!e.sheen,combine:e.combine,vertexTangents:e.normalMap&&e.vertexTangents,vertexColors:e.vertexColors,vertexUvs:!!e.map||!!e.bumpMap||!!e.normalMap||!!e.specularMap||
 !!e.alphaMap||!!e.emissiveMap||!!e.roughnessMap||!!e.metalnessMap||!!e.clearcoatNormalMap||!!e.displacementMap,uvsVertexOnly:!(e.map||e.bumpMap||e.normalMap||e.specularMap||e.alphaMap||e.emissiveMap||e.roughnessMap||e.metalnessMap||e.clearcoatNormalMap)&&!!e.displacementMap,fog:!!r,useFog:e.fog,fogExp2:r&&r.isFogExp2,flatShading:e.flatShading,sizeAttenuation:e.sizeAttenuation,logarithmicDepthBuffer:g,skinning:e.skinning&&0<u,maxBones:u,useVertexTexture:k,morphTargets:e.morphTargets,morphNormals:e.morphNormals,
 !!e.alphaMap||!!e.emissiveMap||!!e.roughnessMap||!!e.metalnessMap||!!e.clearcoatNormalMap||!!e.displacementMap,uvsVertexOnly:!(e.map||e.bumpMap||e.normalMap||e.specularMap||e.alphaMap||e.emissiveMap||e.roughnessMap||e.metalnessMap||e.clearcoatNormalMap)&&!!e.displacementMap,fog:!!r,useFog:e.fog,fogExp2:r&&r.isFogExp2,flatShading:e.flatShading,sizeAttenuation:e.sizeAttenuation,logarithmicDepthBuffer:g,skinning:e.skinning&&0<u,maxBones:u,useVertexTexture:k,morphTargets:e.morphTargets,morphNormals:e.morphNormals,
 maxMorphTargets:a.maxMorphTargets,maxMorphNormals:a.maxMorphNormals,numDirLights:h.directional.length,numPointLights:h.point.length,numSpotLights:h.spot.length,numRectAreaLights:h.rectArea.length,numHemiLights:h.hemi.length,numDirLightShadows:h.directionalShadowMap.length,numPointLightShadows:h.pointShadowMap.length,numSpotLightShadows:h.spotShadowMap.length,numClippingPlanes:v,numClipIntersection:C,dithering:e.dithering,shadowMapEnabled:a.shadowMap.enabled&&0<q.length,shadowMapType:a.shadowMap.type,
 maxMorphTargets:a.maxMorphTargets,maxMorphNormals:a.maxMorphNormals,numDirLights:h.directional.length,numPointLights:h.point.length,numSpotLights:h.spot.length,numRectAreaLights:h.rectArea.length,numHemiLights:h.hemi.length,numDirLightShadows:h.directionalShadowMap.length,numPointLightShadows:h.pointShadowMap.length,numSpotLightShadows:h.spotShadowMap.length,numClippingPlanes:v,numClipIntersection:C,dithering:e.dithering,shadowMapEnabled:a.shadowMap.enabled&&0<q.length,shadowMapType:a.shadowMap.type,
-toneMapping:e.toneMapped?a.toneMapping:0,physicallyCorrectLights:a.physicallyCorrectLights,premultipliedAlpha:e.premultipliedAlpha,alphaTest:e.alphaTest,doubleSided:2===e.side,flipSided:1===e.side,depthPacking:void 0!==e.depthPacking?e.depthPacking:!1,index0AttributeName:e.index0AttributeName,extensionDerivatives:e.extensions&&e.extensions.derivatives,extensionFragDepth:e.extensions&&e.extensions.frawbuffers,extensionDrawbuffers:e.extensions&&e.extensions.drawbuffers,extensionShaderTextureLOD:e.extensions&&
+toneMapping:e.toneMapped?a.toneMapping:0,physicallyCorrectLights:a.physicallyCorrectLights,premultipliedAlpha:e.premultipliedAlpha,alphaTest:e.alphaTest,doubleSided:2===e.side,flipSided:1===e.side,depthPacking:void 0!==e.depthPacking?e.depthPacking:!1,index0AttributeName:e.index0AttributeName,extensionDerivatives:e.extensions&&e.extensions.derivatives,extensionFragDepth:e.extensions&&e.extensions.fragDepth,extensionDrawbuffers:e.extensions&&e.extensions.drawBuffers,extensionShaderTextureLOD:e.extensions&&
 e.extensions.shaderTextureLOD,rendererExtensionFragDepth:f||null!==b.get("EXT_frag_depth"),rendererExtensionDrawBuffers:f||null!==b.get("WEBGL_draw_buffers"),rendererExtensionShaderTextureLod:f||null!==b.get("EXT_shader_texture_lod"),onBeforeCompile:e.onBeforeCompile}};this.getProgramCacheKey=function(b){var c=[];b.shaderID?c.push(b.shaderID):(c.push(b.fragmentShader),c.push(b.vertexShader));if(void 0!==b.defines)for(var d in b.defines)c.push(d),c.push(b.defines[d]);if(void 0===b.isRawShaderMaterial){for(d=
 e.extensions.shaderTextureLOD,rendererExtensionFragDepth:f||null!==b.get("EXT_frag_depth"),rendererExtensionDrawBuffers:f||null!==b.get("WEBGL_draw_buffers"),rendererExtensionShaderTextureLod:f||null!==b.get("EXT_shader_texture_lod"),onBeforeCompile:e.onBeforeCompile}};this.getProgramCacheKey=function(b){var c=[];b.shaderID?c.push(b.shaderID):(c.push(b.fragmentShader),c.push(b.vertexShader));if(void 0!==b.defines)for(var d in b.defines)c.push(d),c.push(b.defines[d]);if(void 0===b.isRawShaderMaterial){for(d=
 0;d<h.length;d++)c.push(b[h[d]]);c.push(a.outputEncoding);c.push(a.gammaFactor)}c.push(b.onBeforeCompile.toString());return c.join()};this.acquireProgram=function(b,c){for(var d,f=0,g=e.length;f<g;f++){var k=e[f];if(k.cacheKey===c){d=k;++d.usedTimes;break}}void 0===d&&(d=new vk(a,c,b),e.push(d));return d};this.releaseProgram=function(a){if(0===--a.usedTimes){var b=e.indexOf(a);e[b]=e[e.length-1];e.pop();a.destroy()}};this.programs=e}function yk(){var a=new WeakMap;return{get:function(b){var c=a.get(b);
 0;d<h.length;d++)c.push(b[h[d]]);c.push(a.outputEncoding);c.push(a.gammaFactor)}c.push(b.onBeforeCompile.toString());return c.join()};this.acquireProgram=function(b,c){for(var d,f=0,g=e.length;f<g;f++){var k=e[f];if(k.cacheKey===c){d=k;++d.usedTimes;break}}void 0===d&&(d=new vk(a,c,b),e.push(d));return d};this.releaseProgram=function(a){if(0===--a.usedTimes){var b=e.indexOf(a);e[b]=e[e.length-1];e.pop();a.destroy()}};this.programs=e}function yk(){var a=new WeakMap;return{get:function(b){var c=a.get(b);
 void 0===c&&(c={},a.set(b,c));return c},remove:function(b){a.delete(b)},update:function(b,c,d){a.get(b)[c]=d},dispose:function(){a=new WeakMap}}}function zk(a,b){return a.groupOrder!==b.groupOrder?a.groupOrder-b.groupOrder:a.renderOrder!==b.renderOrder?a.renderOrder-b.renderOrder:a.program!==b.program?a.program.id-b.program.id:a.material.id!==b.material.id?a.material.id-b.material.id:a.z!==b.z?a.z-b.z:a.id-b.id}function Ak(a,b){return a.groupOrder!==b.groupOrder?a.groupOrder-b.groupOrder:a.renderOrder!==
 void 0===c&&(c={},a.set(b,c));return c},remove:function(b){a.delete(b)},update:function(b,c,d){a.get(b)[c]=d},dispose:function(){a=new WeakMap}}}function zk(a,b){return a.groupOrder!==b.groupOrder?a.groupOrder-b.groupOrder:a.renderOrder!==b.renderOrder?a.renderOrder-b.renderOrder:a.program!==b.program?a.program.id-b.program.id:a.material.id!==b.material.id?a.material.id-b.material.id:a.z!==b.z?a.z-b.z:a.id-b.id}function Ak(a,b){return a.groupOrder!==b.groupOrder?a.groupOrder-b.groupOrder:a.renderOrder!==
@@ -112,19 +112,19 @@ Fk++},state:b}}function Vh(){var a=new Ek,b=[],c=[];return{init:function(){b.len
 !0===f.isPointLight&&(p=e,x=b.customDistanceMaterial);void 0===x?(x=!1,!0===c.morphTargets&&(!0===m.isBufferGeometry?x=m.morphAttributes&&m.morphAttributes.position&&0<m.morphAttributes.position.length:!0===m.isGeometry&&(x=m.morphTargets&&0<m.morphTargets.length)),m=!1,!0===b.isSkinnedMesh&&(!0===c.skinning?m=!0:console.warn("THREE.WebGLShadowMap: THREE.SkinnedMesh with material.skinning set to false:",b)),b=p(x,m,!0===b.isInstancedMesh)):b=x;a.localClippingEnabled&&!0===c.clipShadows&&0!==c.clippingPlanes.length&&
 !0===f.isPointLight&&(p=e,x=b.customDistanceMaterial);void 0===x?(x=!1,!0===c.morphTargets&&(!0===m.isBufferGeometry?x=m.morphAttributes&&m.morphAttributes.position&&0<m.morphAttributes.position.length:!0===m.isGeometry&&(x=m.morphTargets&&0<m.morphTargets.length)),m=!1,!0===b.isSkinnedMesh&&(!0===c.skinning?m=!0:console.warn("THREE.WebGLShadowMap: THREE.SkinnedMesh with material.skinning set to false:",b)),b=p(x,m,!0===b.isInstancedMesh)):b=x;a.localClippingEnabled&&!0===c.clipShadows&&0!==c.clippingPlanes.length&&
 (x=b.uuid,p=c.uuid,m=t[x],void 0===m&&(m={},t[x]=m),x=m[p],void 0===x&&(x=b.clone(),m[p]=x),b=x);b.visible=c.visible;b.wireframe=c.wireframe;b.side=3===l?null!==c.shadowSide?c.shadowSide:c.side:null!==c.shadowSide?c.shadowSide:r[c.side];b.clipShadows=c.clipShadows;b.clippingPlanes=c.clippingPlanes;b.clipIntersection=c.clipIntersection;b.wireframeLinewidth=c.wireframeLinewidth;b.linewidth=c.linewidth;!0===f.isPointLight&&!0===b.isMeshDistanceMaterial&&(b.referencePosition.setFromMatrixPosition(f.matrixWorld),
 (x=b.uuid,p=c.uuid,m=t[x],void 0===m&&(m={},t[x]=m),x=m[p],void 0===x&&(x=b.clone(),m[p]=x),b=x);b.visible=c.visible;b.wireframe=c.wireframe;b.side=3===l?null!==c.shadowSide?c.shadowSide:c.side:null!==c.shadowSide?c.shadowSide:r[c.side];b.clipShadows=c.clipShadows;b.clippingPlanes=c.clippingPlanes;b.clipIntersection=c.clipIntersection;b.wireframeLinewidth=c.wireframeLinewidth;b.linewidth=c.linewidth;!0===f.isPointLight&&!0===b.isMeshDistanceMaterial&&(b.referencePosition.setFromMatrixPosition(f.matrixWorld),
 b.nearDistance=g,b.farDistance=k);return b}function g(c,d,e,l,m){if(!1!==c.visible){if(c.layers.test(d.layers)&&(c.isMesh||c.isLine||c.isPoints)&&(c.castShadow||c.receiveShadow&&3===m)&&(!c.frustumCulled||k.intersectsObject(c))){c.modelViewMatrix.multiplyMatrices(e.matrixWorldInverse,c.matrixWorld);var p=b.update(c),x=c.material;if(Array.isArray(x))for(var h=p.groups,r=0,q=h.length;r<q;r++){var t=h[r],u=x[t.materialIndex];u&&u.visible&&(u=f(c,u,l,e.near,e.far,m),a.renderBufferDirect(e,null,p,u,c,
 b.nearDistance=g,b.farDistance=k);return b}function g(c,d,e,l,m){if(!1!==c.visible){if(c.layers.test(d.layers)&&(c.isMesh||c.isLine||c.isPoints)&&(c.castShadow||c.receiveShadow&&3===m)&&(!c.frustumCulled||k.intersectsObject(c))){c.modelViewMatrix.multiplyMatrices(e.matrixWorldInverse,c.matrixWorld);var p=b.update(c),x=c.material;if(Array.isArray(x))for(var h=p.groups,r=0,q=h.length;r<q;r++){var t=h[r],u=x[t.materialIndex];u&&u.visible&&(u=f(c,u,l,e.near,e.far,m),a.renderBufferDirect(e,null,p,u,c,
-t))}else x.visible&&(u=f(c,x,l,e.near,e.far,m),a.renderBufferDirect(e,null,p,u,c,null))}c=c.children;p=0;for(x=c.length;p<x;p++)g(c[p],d,e,l,m)}}var k=new Hc,l=new w,m=new w,x=new ia,p=[],h=[],t={},r={0:1,1:0,2:2},u=new qa({defines:{SAMPLE_RATE:.25,HALF_SAMPLE_RATE:.125},uniforms:{shadow_pass:{value:null},resolution:{value:new w},radius:{value:4}},vertexShader:"void main() {\n\tgl_Position = vec4( position, 1.0 );\n}",fragmentShader:"uniform sampler2D shadow_pass;\nuniform vec2 resolution;\nuniform float radius;\n#include <packing>\nvoid main() {\n  float mean = 0.0;\n  float squared_mean = 0.0;\n\tfloat depth = unpackRGBAToDepth( texture2D( shadow_pass, ( gl_FragCoord.xy  ) / resolution ) );\n  for ( float i = -1.0; i < 1.0 ; i += SAMPLE_RATE) {\n    #ifdef HORIZONAL_PASS\n      vec2 distribution = unpackRGBATo2Half( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( i, 0.0 ) * radius ) / resolution ) );\n      mean += distribution.x;\n      squared_mean += distribution.y * distribution.y + distribution.x * distribution.x;\n    #else\n      float depth = unpackRGBAToDepth( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( 0.0,  i )  * radius ) / resolution ) );\n      mean += depth;\n      squared_mean += depth * depth;\n    #endif\n  }\n  mean = mean * HALF_SAMPLE_RATE;\n  squared_mean = squared_mean * HALF_SAMPLE_RATE;\n  float std_dev = sqrt( squared_mean - mean * mean );\n  gl_FragColor = pack2HalfToRGBA( vec2( mean, std_dev ) );\n}"}),
+t))}else x.visible&&(u=f(c,x,l,e.near,e.far,m),a.renderBufferDirect(e,null,p,u,c,null))}c=c.children;p=0;for(x=c.length;p<x;p++)g(c[p],d,e,l,m)}}var k=new Ic,l=new w,m=new w,x=new ia,p=[],h=[],t={},r={0:1,1:0,2:2},u=new qa({defines:{SAMPLE_RATE:.25,HALF_SAMPLE_RATE:.125},uniforms:{shadow_pass:{value:null},resolution:{value:new w},radius:{value:4}},vertexShader:"void main() {\n\tgl_Position = vec4( position, 1.0 );\n}",fragmentShader:"uniform sampler2D shadow_pass;\nuniform vec2 resolution;\nuniform float radius;\n#include <packing>\nvoid main() {\n  float mean = 0.0;\n  float squared_mean = 0.0;\n\tfloat depth = unpackRGBAToDepth( texture2D( shadow_pass, ( gl_FragCoord.xy  ) / resolution ) );\n  for ( float i = -1.0; i < 1.0 ; i += SAMPLE_RATE) {\n    #ifdef HORIZONAL_PASS\n      vec2 distribution = unpackRGBATo2Half( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( i, 0.0 ) * radius ) / resolution ) );\n      mean += distribution.x;\n      squared_mean += distribution.y * distribution.y + distribution.x * distribution.x;\n    #else\n      float depth = unpackRGBAToDepth( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( 0.0,  i )  * radius ) / resolution ) );\n      mean += depth;\n      squared_mean += depth * depth;\n    #endif\n  }\n  mean = mean * HALF_SAMPLE_RATE;\n  squared_mean = squared_mean * HALF_SAMPLE_RATE;\n  float std_dev = sqrt( squared_mean - mean * mean );\n  gl_FragColor = pack2HalfToRGBA( vec2( mean, std_dev ) );\n}"}),
 n=u.clone();n.defines.HORIZONAL_PASS=1;var v=new A;v.setAttribute("position",new M(new Float32Array([-1,-1,.5,3,-1,.5,-1,3,.5]),3));var C=new ca(v,u),W=this;this.enabled=!1;this.autoUpdate=!0;this.needsUpdate=!1;this.type=1;this.render=function(d,e,f){if(!1!==W.enabled&&(!1!==W.autoUpdate||!1!==W.needsUpdate)&&0!==d.length){var p=a.getRenderTarget(),h=a.getActiveCubeFace(),r=a.getActiveMipmapLevel(),q=a.state;q.setBlending(0);q.buffers.color.setClear(1,1,1,1);q.buffers.depth.setTest(!0);q.setScissorTest(!1);
 n=u.clone();n.defines.HORIZONAL_PASS=1;var v=new A;v.setAttribute("position",new M(new Float32Array([-1,-1,.5,3,-1,.5,-1,3,.5]),3));var C=new ca(v,u),W=this;this.enabled=!1;this.autoUpdate=!0;this.needsUpdate=!1;this.type=1;this.render=function(d,e,f){if(!1!==W.enabled&&(!1!==W.autoUpdate||!1!==W.needsUpdate)&&0!==d.length){var p=a.getRenderTarget(),h=a.getActiveCubeFace(),r=a.getActiveMipmapLevel(),q=a.state;q.setBlending(0);q.buffers.color.setClear(1,1,1,1);q.buffers.depth.setTest(!0);q.setScissorTest(!1);
 for(var t=0,y=d.length;t<y;t++){var v=d[t],z=v.shadow;if(void 0===z)console.warn("THREE.WebGLShadowMap:",v,"has no shadow.");else{l.copy(z.mapSize);var w=z.getFrameExtents();l.multiply(w);m.copy(z.mapSize);if(l.x>c||l.y>c)console.warn("THREE.WebGLShadowMap:",v,"has shadow exceeding max texture size, reducing"),l.x>c&&(m.x=Math.floor(c/w.x),l.x=m.x*w.x,z.mapSize.x=m.x),l.y>c&&(m.y=Math.floor(c/w.y),l.y=m.y*w.y,z.mapSize.y=m.y);null!==z.map||z.isPointLightShadow||3!==this.type||(w={minFilter:1006,magFilter:1006,
 for(var t=0,y=d.length;t<y;t++){var v=d[t],z=v.shadow;if(void 0===z)console.warn("THREE.WebGLShadowMap:",v,"has no shadow.");else{l.copy(z.mapSize);var w=z.getFrameExtents();l.multiply(w);m.copy(z.mapSize);if(l.x>c||l.y>c)console.warn("THREE.WebGLShadowMap:",v,"has shadow exceeding max texture size, reducing"),l.x>c&&(m.x=Math.floor(c/w.x),l.x=m.x*w.x,z.mapSize.x=m.x),l.y>c&&(m.y=Math.floor(c/w.y),l.y=m.y*w.y,z.mapSize.y=m.y);null!==z.map||z.isPointLightShadow||3!==this.type||(w={minFilter:1006,magFilter:1006,
 format:1023},z.map=new wa(l.x,l.y,w),z.map.texture.name=v.name+".shadowMap",z.mapPass=new wa(l.x,l.y,w),z.camera.updateProjectionMatrix());null===z.map&&(w={minFilter:1003,magFilter:1003,format:1023},z.map=new wa(l.x,l.y,w),z.map.texture.name=v.name+".shadowMap",z.camera.updateProjectionMatrix());a.setRenderTarget(z.map);a.clear();w=z.getViewportCount();for(var ja=0;ja<w;ja++){var ra=z.getViewport(ja);x.set(m.x*ra.x,m.y*ra.y,m.x*ra.z,m.y*ra.w);q.viewport(x);z.updateMatrices(v,ja);k=z.getFrustum();
 format:1023},z.map=new wa(l.x,l.y,w),z.map.texture.name=v.name+".shadowMap",z.mapPass=new wa(l.x,l.y,w),z.camera.updateProjectionMatrix());null===z.map&&(w={minFilter:1003,magFilter:1003,format:1023},z.map=new wa(l.x,l.y,w),z.map.texture.name=v.name+".shadowMap",z.camera.updateProjectionMatrix());a.setRenderTarget(z.map);a.clear();w=z.getViewportCount();for(var ja=0;ja<w;ja++){var ra=z.getViewport(ja);x.set(m.x*ra.x,m.y*ra.y,m.x*ra.z,m.y*ra.w);q.viewport(x);z.updateMatrices(v,ja);k=z.getFrustum();
 g(e,f,z.camera,v,this.type)}z.isPointLightShadow||3!==this.type||(v=z,z=f,w=b.update(C),u.uniforms.shadow_pass.value=v.map.texture,u.uniforms.resolution.value=v.mapSize,u.uniforms.radius.value=v.radius,a.setRenderTarget(v.mapPass),a.clear(),a.renderBufferDirect(z,null,w,u,C,null),n.uniforms.shadow_pass.value=v.mapPass.texture,n.uniforms.resolution.value=v.mapSize,n.uniforms.radius.value=v.radius,a.setRenderTarget(v.map),a.clear(),a.renderBufferDirect(z,null,w,n,C,null))}}W.needsUpdate=!1;a.setRenderTarget(p,
 g(e,f,z.camera,v,this.type)}z.isPointLightShadow||3!==this.type||(v=z,z=f,w=b.update(C),u.uniforms.shadow_pass.value=v.map.texture,u.uniforms.resolution.value=v.mapSize,u.uniforms.radius.value=v.radius,a.setRenderTarget(v.mapPass),a.clear(),a.renderBufferDirect(z,null,w,u,C,null),n.uniforms.shadow_pass.value=v.mapPass.texture,n.uniforms.resolution.value=v.mapSize,n.uniforms.radius.value=v.radius,a.setRenderTarget(v.map),a.clear(),a.renderBufferDirect(z,null,w,n,C,null))}}W.needsUpdate=!1;a.setRenderTarget(p,
 h,r)}}}function Hk(a,b,c){function d(b,c,d){var e=new Uint8Array(4),f=a.createTexture();a.bindTexture(b,f);a.texParameteri(b,10241,9728);a.texParameteri(b,10240,9728);for(b=0;b<d;b++)a.texImage2D(c+b,0,6408,1,1,0,6408,5121,e);return f}function e(c,d){n[c]=1;0===v[c]&&(a.enableVertexAttribArray(c),v[c]=1);C[c]!==d&&((h?a:b.get("ANGLE_instanced_arrays"))[h?"vertexAttribDivisor":"vertexAttribDivisorANGLE"](c,d),C[c]=d)}function f(b){!0!==W[b]&&(a.enable(b),W[b]=!0)}function g(b){!1!==W[b]&&(a.disable(b),
 h,r)}}}function Hk(a,b,c){function d(b,c,d){var e=new Uint8Array(4),f=a.createTexture();a.bindTexture(b,f);a.texParameteri(b,10241,9728);a.texParameteri(b,10240,9728);for(b=0;b<d;b++)a.texImage2D(c+b,0,6408,1,1,0,6408,5121,e);return f}function e(c,d){n[c]=1;0===v[c]&&(a.enableVertexAttribArray(c),v[c]=1);C[c]!==d&&((h?a:b.get("ANGLE_instanced_arrays"))[h?"vertexAttribDivisor":"vertexAttribDivisorANGLE"](c,d),C[c]=d)}function f(b){!0!==W[b]&&(a.enable(b),W[b]=!0)}function g(b){!1!==W[b]&&(a.disable(b),
 W[b]=!1)}function k(b,c,d,e,k,l,m,p){if(0===b)z&&(g(3042),z=!1);else if(z||(f(3042),z=!0),5!==b){if(b!==ra||p!==F){if(100!==fa||100!==G)a.blendEquation(32774),G=fa=100;if(p)switch(b){case 1:a.blendFuncSeparate(1,771,1,771);break;case 2:a.blendFunc(1,1);break;case 3:a.blendFuncSeparate(0,0,769,771);break;case 4:a.blendFuncSeparate(0,768,0,770);break;default:console.error("THREE.WebGLState: Invalid blending: ",b)}else switch(b){case 1:a.blendFuncSeparate(770,771,1,771);break;case 2:a.blendFunc(770,
 W[b]=!1)}function k(b,c,d,e,k,l,m,p){if(0===b)z&&(g(3042),z=!1);else if(z||(f(3042),z=!0),5!==b){if(b!==ra||p!==F){if(100!==fa||100!==G)a.blendEquation(32774),G=fa=100;if(p)switch(b){case 1:a.blendFuncSeparate(1,771,1,771);break;case 2:a.blendFunc(1,1);break;case 3:a.blendFuncSeparate(0,0,769,771);break;case 4:a.blendFuncSeparate(0,768,0,770);break;default:console.error("THREE.WebGLState: Invalid blending: ",b)}else switch(b){case 1:a.blendFuncSeparate(770,771,1,771);break;case 2:a.blendFunc(770,
-1);break;case 3:a.blendFunc(0,769);break;case 4:a.blendFunc(0,768);break;default:console.error("THREE.WebGLState: Invalid blending: ",b)}E=Nd=Ha=Ga=null;ra=b;F=p}}else{k=k||c;l=l||d;m=m||e;if(c!==fa||k!==G)a.blendEquationSeparate(Lc[c],Lc[k]),fa=c,G=k;if(d!==Ga||e!==Ha||l!==Nd||m!==E)a.blendFuncSeparate(J[d],J[e],J[l],J[m]),Ga=d,Ha=e,Nd=l,E=m;ra=b;F=null}}function l(b){D!==b&&(b?a.frontFace(2304):a.frontFace(2305),D=b)}function m(b){0!==b?(f(2884),b!==B&&(1===b?a.cullFace(1029):2===b?a.cullFace(1028):
+1);break;case 3:a.blendFunc(0,769);break;case 4:a.blendFunc(0,768);break;default:console.error("THREE.WebGLState: Invalid blending: ",b)}E=Nd=Ha=Ga=null;ra=b;F=p}}else{k=k||c;l=l||d;m=m||e;if(c!==fa||k!==G)a.blendEquationSeparate(Mc[c],Mc[k]),fa=c,G=k;if(d!==Ga||e!==Ha||l!==Nd||m!==E)a.blendFuncSeparate(J[d],J[e],J[l],J[m]),Ga=d,Ha=e,Nd=l,E=m;ra=b;F=null}}function l(b){D!==b&&(b?a.frontFace(2304):a.frontFace(2305),D=b)}function m(b){0!==b?(f(2884),b!==B&&(1===b?a.cullFace(1029):2===b?a.cullFace(1028):
 a.cullFace(1032))):g(2884);B=b}function x(b,c,d){if(b){if(f(32823),I!==c||K!==d)a.polygonOffset(c,d),I=c,K=d}else g(32823)}function p(b){void 0===b&&(b=33984+M-1);P!==b&&(a.activeTexture(b),P=b)}var h=c.isWebGL2,t=new function(){var b=!1,c=new ia,d=null,e=new ia(0,0,0,0);return{setMask:function(c){d===c||b||(a.colorMask(c,c,c,c),d=c)},setLocked:function(a){b=a},setClear:function(b,d,f,g,k){!0===k&&(b*=g,d*=g,f*=g);c.set(b,d,f,g);!1===e.equals(c)&&(a.clearColor(b,d,f,g),e.copy(c))},reset:function(){b=
 a.cullFace(1032))):g(2884);B=b}function x(b,c,d){if(b){if(f(32823),I!==c||K!==d)a.polygonOffset(c,d),I=c,K=d}else g(32823)}function p(b){void 0===b&&(b=33984+M-1);P!==b&&(a.activeTexture(b),P=b)}var h=c.isWebGL2,t=new function(){var b=!1,c=new ia,d=null,e=new ia(0,0,0,0);return{setMask:function(c){d===c||b||(a.colorMask(c,c,c,c),d=c)},setLocked:function(a){b=a},setClear:function(b,d,f,g,k){!0===k&&(b*=g,d*=g,f*=g);c.set(b,d,f,g);!1===e.equals(c)&&(a.clearColor(b,d,f,g),e.copy(c))},reset:function(){b=
 !1;d=null;e.set(-1,0,0,0)}}},r=new function(){var b=!1,c=null,d=null,e=null;return{setTest:function(a){a?f(2929):g(2929)},setMask:function(d){c===d||b||(a.depthMask(d),c=d)},setFunc:function(b){if(d!==b){if(b)switch(b){case 0:a.depthFunc(512);break;case 1:a.depthFunc(519);break;case 2:a.depthFunc(513);break;case 3:a.depthFunc(515);break;case 4:a.depthFunc(514);break;case 5:a.depthFunc(518);break;case 6:a.depthFunc(516);break;case 7:a.depthFunc(517);break;default:a.depthFunc(515)}else a.depthFunc(515);
 !1;d=null;e.set(-1,0,0,0)}}},r=new function(){var b=!1,c=null,d=null,e=null;return{setTest:function(a){a?f(2929):g(2929)},setMask:function(d){c===d||b||(a.depthMask(d),c=d)},setFunc:function(b){if(d!==b){if(b)switch(b){case 0:a.depthFunc(512);break;case 1:a.depthFunc(519);break;case 2:a.depthFunc(513);break;case 3:a.depthFunc(515);break;case 4:a.depthFunc(514);break;case 5:a.depthFunc(518);break;case 6:a.depthFunc(516);break;case 7:a.depthFunc(517);break;default:a.depthFunc(515)}else a.depthFunc(515);
 d=b}},setLocked:function(a){b=a},setClear:function(b){e!==b&&(a.clearDepth(b),e=b)},reset:function(){b=!1;e=d=c=null}}},u=new function(){var b=!1,c=null,d=null,e=null,k=null,l=null,m=null,p=null,x=null;return{setTest:function(a){b||(a?f(2960):g(2960))},setMask:function(d){c===d||b||(a.stencilMask(d),c=d)},setFunc:function(b,c,f){if(d!==b||e!==c||k!==f)a.stencilFunc(b,c,f),d=b,e=c,k=f},setOp:function(b,c,d){if(l!==b||m!==c||p!==d)a.stencilOp(b,c,d),l=b,m=c,p=d},setLocked:function(a){b=a},setClear:function(b){x!==
 d=b}},setLocked:function(a){b=a},setClear:function(b){e!==b&&(a.clearDepth(b),e=b)},reset:function(){b=!1;e=d=c=null}}},u=new function(){var b=!1,c=null,d=null,e=null,k=null,l=null,m=null,p=null,x=null;return{setTest:function(a){b||(a?f(2960):g(2960))},setMask:function(d){c===d||b||(a.stencilMask(d),c=d)},setFunc:function(b,c,f){if(d!==b||e!==c||k!==f)a.stencilFunc(b,c,f),d=b,e=c,k=f},setOp:function(b,c,d){if(l!==b||m!==c||p!==d)a.stencilOp(b,c,d),l=b,m=c,p=d},setLocked:function(a){b=a},setClear:function(b){x!==
 b&&(a.clearStencil(b),x=b)},reset:function(){b=!1;x=p=m=l=k=e=d=c=null}}};c=a.getParameter(34921);var n=new Uint8Array(c),v=new Uint8Array(c),C=new Uint8Array(c),W={},w=null,z=null,ra=null,fa=null,Ga=null,Ha=null,G=null,Nd=null,E=null,F=!1,D=null,B=null,A=null,I=null,K=null,M=a.getParameter(35661),L=!1;c=0;c=a.getParameter(7938);-1!==c.indexOf("WebGL")?(c=parseFloat(/^WebGL ([0-9])/.exec(c)[1]),L=1<=c):-1!==c.indexOf("OpenGL ES")&&(c=parseFloat(/^OpenGL ES ([0-9])/.exec(c)[1]),L=2<=c);var P=null,
 b&&(a.clearStencil(b),x=b)},reset:function(){b=!1;x=p=m=l=k=e=d=c=null}}};c=a.getParameter(34921);var n=new Uint8Array(c),v=new Uint8Array(c),C=new Uint8Array(c),W={},w=null,z=null,ra=null,fa=null,Ga=null,Ha=null,G=null,Nd=null,E=null,F=!1,D=null,B=null,A=null,I=null,K=null,M=a.getParameter(35661),L=!1;c=0;c=a.getParameter(7938);-1!==c.indexOf("WebGL")?(c=parseFloat(/^WebGL ([0-9])/.exec(c)[1]),L=1<=c):-1!==c.indexOf("OpenGL ES")&&(c=parseFloat(/^OpenGL ES ([0-9])/.exec(c)[1]),L=2<=c);var P=null,
-Pd={},X=new ia,Xh=new ia,og={};og[3553]=d(3553,3553,1);og[34067]=d(34067,34069,6);t.setClear(0,0,0,1);r.setClear(1);u.setClear(0);f(2929);r.setFunc(3);l(!1);m(1);f(2884);k(0);var Lc={100:32774,101:32778,102:32779};h?(Lc[103]=32775,Lc[104]=32776):(c=b.get("EXT_blend_minmax"),null!==c&&(Lc[103]=c.MIN_EXT,Lc[104]=c.MAX_EXT));var J={200:0,201:1,202:768,204:770,210:776,208:774,206:772,203:769,205:771,209:775,207:773};return{buffers:{color:t,depth:r,stencil:u},initAttributes:function(){for(var a=0,b=n.length;a<
+Pd={},X=new ia,Xh=new ia,og={};og[3553]=d(3553,3553,1);og[34067]=d(34067,34069,6);t.setClear(0,0,0,1);r.setClear(1);u.setClear(0);f(2929);r.setFunc(3);l(!1);m(1);f(2884);k(0);var Mc={100:32774,101:32778,102:32779};h?(Mc[103]=32775,Mc[104]=32776):(c=b.get("EXT_blend_minmax"),null!==c&&(Mc[103]=c.MIN_EXT,Mc[104]=c.MAX_EXT));var J={200:0,201:1,202:768,204:770,210:776,208:774,206:772,203:769,205:771,209:775,207:773};return{buffers:{color:t,depth:r,stencil:u},initAttributes:function(){for(var a=0,b=n.length;a<
 b;a++)n[a]=0},enableAttribute:function(a){e(a,0)},enableAttributeAndDivisor:e,disableUnusedAttributes:function(){for(var b=0,c=v.length;b!==c;++b)v[b]!==n[b]&&(a.disableVertexAttribArray(b),v[b]=0)},enable:f,disable:g,useProgram:function(b){return w!==b?(a.useProgram(b),w=b,!0):!1},setBlending:k,setMaterial:function(a,b){2===a.side?g(2884):f(2884);var c=1===a.side;b&&(c=!c);l(c);1===a.blending&&!1===a.transparent?k(0):k(a.blending,a.blendEquation,a.blendSrc,a.blendDst,a.blendEquationAlpha,a.blendSrcAlpha,
 b;a++)n[a]=0},enableAttribute:function(a){e(a,0)},enableAttributeAndDivisor:e,disableUnusedAttributes:function(){for(var b=0,c=v.length;b!==c;++b)v[b]!==n[b]&&(a.disableVertexAttribArray(b),v[b]=0)},enable:f,disable:g,useProgram:function(b){return w!==b?(a.useProgram(b),w=b,!0):!1},setBlending:k,setMaterial:function(a,b){2===a.side?g(2884):f(2884);var c=1===a.side;b&&(c=!c);l(c);1===a.blending&&!1===a.transparent?k(0):k(a.blending,a.blendEquation,a.blendSrc,a.blendDst,a.blendEquationAlpha,a.blendSrcAlpha,
 a.blendDstAlpha,a.premultipliedAlpha);r.setFunc(a.depthFunc);r.setTest(a.depthTest);r.setMask(a.depthWrite);t.setMask(a.colorWrite);b=a.stencilWrite;u.setTest(b);b&&(u.setMask(a.stencilWriteMask),u.setFunc(a.stencilFunc,a.stencilRef,a.stencilFuncMask),u.setOp(a.stencilFail,a.stencilZFail,a.stencilZPass));x(a.polygonOffset,a.polygonOffsetFactor,a.polygonOffsetUnits)},setFlipSided:l,setCullFace:m,setLineWidth:function(b){b!==A&&(L&&a.lineWidth(b),A=b)},setPolygonOffset:x,setScissorTest:function(a){a?
 a.blendDstAlpha,a.premultipliedAlpha);r.setFunc(a.depthFunc);r.setTest(a.depthTest);r.setMask(a.depthWrite);t.setMask(a.colorWrite);b=a.stencilWrite;u.setTest(b);b&&(u.setMask(a.stencilWriteMask),u.setFunc(a.stencilFunc,a.stencilRef,a.stencilFuncMask),u.setOp(a.stencilFail,a.stencilZFail,a.stencilZPass));x(a.polygonOffset,a.polygonOffsetFactor,a.polygonOffsetUnits)},setFlipSided:l,setCullFace:m,setLineWidth:function(b){b!==A&&(L&&a.lineWidth(b),A=b)},setPolygonOffset:x,setScissorTest:function(a){a?
 f(3089):g(3089)},activeTexture:p,bindTexture:function(b,c){null===P&&p();var d=Pd[P];void 0===d&&(d={type:void 0,texture:void 0},Pd[P]=d);if(d.type!==b||d.texture!==c)a.bindTexture(b,c||og[b]),d.type=b,d.texture=c},unbindTexture:function(){var b=Pd[P];void 0!==b&&void 0!==b.type&&(a.bindTexture(b.type,null),b.type=void 0,b.texture=void 0)},compressedTexImage2D:function(){try{a.compressedTexImage2D.apply(a,arguments)}catch(Q){console.error("THREE.WebGLState:",Q)}},texImage2D:function(){try{a.texImage2D.apply(a,
 f(3089):g(3089)},activeTexture:p,bindTexture:function(b,c){null===P&&p();var d=Pd[P];void 0===d&&(d={type:void 0,texture:void 0},Pd[P]=d);if(d.type!==b||d.texture!==c)a.bindTexture(b,c||og[b]),d.type=b,d.texture=c},unbindTexture:function(){var b=Pd[P];void 0!==b&&void 0!==b.type&&(a.bindTexture(b.type,null),b.type=void 0,b.texture=void 0)},compressedTexImage2D:function(){try{a.compressedTexImage2D.apply(a,arguments)}catch(Q){console.error("THREE.WebGLState:",Q)}},texImage2D:function(){try{a.texImage2D.apply(a,
@@ -160,185 +160,186 @@ null)}};this.updateMultisampleRenderTarget=function(b){if(b.isWebGLMultisampleRe
 (!1===M&&(console.warn("THREE.WebGLTextures.safeSetTexture2D: don't use render targets as textures. Use their .texture property instead."),M=!0),a=a.texture);n(a,b)};this.safeSetTextureCube=function(a,b){a&&a.isWebGLCubeRenderTarget&&(!1===O&&(console.warn("THREE.WebGLTextures.safeSetTextureCube: don't use cube render targets as textures. Use their .texture property instead."),O=!0),a=a.texture);a&&a.isCubeTexture||Array.isArray(a.image)&&6===a.image.length?v(a,b):C(a,b)}}function Yh(a,b,c){var d=
 (!1===M&&(console.warn("THREE.WebGLTextures.safeSetTexture2D: don't use render targets as textures. Use their .texture property instead."),M=!0),a=a.texture);n(a,b)};this.safeSetTextureCube=function(a,b){a&&a.isWebGLCubeRenderTarget&&(!1===O&&(console.warn("THREE.WebGLTextures.safeSetTextureCube: don't use cube render targets as textures. Use their .texture property instead."),O=!0),a=a.texture);a&&a.isCubeTexture||Array.isArray(a.image)&&6===a.image.length?v(a,b):C(a,b)}}function Yh(a,b,c){var d=
 c.isWebGL2;return{convert:function(a){if(1009===a)return 5121;if(1017===a)return 32819;if(1018===a)return 32820;if(1019===a)return 33635;if(1010===a)return 5120;if(1011===a)return 5122;if(1012===a)return 5123;if(1013===a)return 5124;if(1014===a)return 5125;if(1015===a)return 5126;if(1016===a){if(d)return 5131;var c=b.get("OES_texture_half_float");return null!==c?c.HALF_FLOAT_OES:null}if(1021===a)return 6406;if(1022===a)return 6407;if(1023===a)return 6408;if(1024===a)return 6409;if(1025===a)return 6410;
 c.isWebGL2;return{convert:function(a){if(1009===a)return 5121;if(1017===a)return 32819;if(1018===a)return 32820;if(1019===a)return 33635;if(1010===a)return 5120;if(1011===a)return 5122;if(1012===a)return 5123;if(1013===a)return 5124;if(1014===a)return 5125;if(1015===a)return 5126;if(1016===a){if(d)return 5131;var c=b.get("OES_texture_half_float");return null!==c?c.HALF_FLOAT_OES:null}if(1021===a)return 6406;if(1022===a)return 6407;if(1023===a)return 6408;if(1024===a)return 6409;if(1025===a)return 6410;
 if(1026===a)return 6402;if(1027===a)return 34041;if(1028===a)return 6403;if(1029===a)return 36244;if(1030===a)return 33319;if(1031===a)return 33320;if(1032===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(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(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)return c=b.get("WEBGL_compressed_texture_astc"),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 pg(a,b,c,d){wa.call(this,a,b,d);this.stencilBuffer=this.depthBuffer=!1;this.numViews=c}function Jk(a,b){function c(a){if(a.isArrayCamera)return a.cameras;x[0]=a;return x}function d(a){if(void 0===a.isArrayCamera)return!0;a=a.cameras;
-if(a.length>t)return!1;for(var b=1,c=a.length;b<c;b++)if(a[0].viewport.z!==a[b].viewport.z||a[0].viewport.w!==a[b].viewport.w)return!1;return!0}var e=a.extensions,f=a.properties,g,k,l,m,x,p,h,t=0;this.isAvailable=function(){if(void 0===h){var a=e.get("OVR_multiview2");if(h=null!==a&&!1===b.getContextAttributes().antialias)for(t=b.getParameter(a.MAX_VIEWS_OVR),g=new pg(0,0,2),p=new w,m=[],l=[],x=[],a=0;a<t;a++)m[a]=new O,l[a]=new za}return h};this.attachCamera=function(b){if(!1!==d(b)){(k=a.getRenderTarget())?
-p.set(k.width,k.height):a.getDrawingBufferSize(p);if(b.isArrayCamera){var c=b.cameras[0].viewport;g.setSize(c.z,c.w);g.setNumViews(b.cameras.length)}else g.setSize(p.x,p.y),g.setNumViews(2);a.setRenderTarget(g)}};this.detachCamera=function(c){if(g===a.getRenderTarget()){a.setRenderTarget(k);var d=g,e=d.numViews,l=f.get(d).__webglViewFramebuffers,m=d.width;d=d.height;if(c.isArrayCamera)for(var x=0;x<e;x++){var h=c.cameras[x].viewport,q=h.x,r=h.y,t=q+h.z;h=r+h.w;b.bindFramebuffer(36008,l[x]);b.blitFramebuffer(0,
-0,m,d,q,r,t,h,16384,9728)}else b.bindFramebuffer(36008,l[0]),b.blitFramebuffer(0,0,m,d,0,0,p.x,p.y,16384,9728)}};this.updateCameraProjectionMatricesUniform=function(a,d){a=c(a);for(var e=0;e<a.length;e++)m[e].copy(a[e].projectionMatrix);d.setValue(b,"projectionMatrices",m)};this.updateCameraViewMatricesUniform=function(a,d){a=c(a);for(var e=0;e<a.length;e++)m[e].copy(a[e].matrixWorldInverse);d.setValue(b,"viewMatrices",m)};this.updateObjectMatricesUniforms=function(a,d,e){d=c(d);for(var f=0;f<d.length;f++)m[f].multiplyMatrices(d[f].matrixWorldInverse,
-a.matrixWorld),l[f].getNormalMatrix(m[f]);e.setValue(b,"modelViewMatrices",m);e.setValue(b,"normalMatrices",l)}}function Qe(a){da.call(this);this.cameras=a||[]}function Mc(){D.call(this);this.type="Group"}function Zh(a,b){function c(a){var b=t.get(a.inputSource);b&&(b.targetRay&&b.targetRay.dispatchEvent({type:a.type}),b.grip&&b.grip.dispatchEvent({type:a.type}))}function d(){t.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)});t.clear();a.setFramebuffer(null);a.setRenderTarget(a.getRenderTarget());ra.stop();k.isPresenting=!1;k.dispatchEvent({type:"sessionend"})}function e(a){m=a;ra.setContext(l);ra.start();k.isPresenting=!0;k.dispatchEvent({type:"sessionstart"})}function f(a){for(var b=l.inputSources,c=0;c<h.length;c++)t.set(b[c],h[c]);for(c=0;c<a.removed.length;c++){b=a.removed[c];var d=t.get(b);d&&(d.targetRay&&d.targetRay.dispatchEvent({type:"disconnected",
-data:b}),d.grip&&d.grip.dispatchEvent({type:"disconnected",data:b}),t.delete(b))}for(c=0;c<a.added.length;c++)if(b=a.added[c],d=t.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 k=this,l=null,m=null,x="local-floor",p=null,h=[],t=new Map,r=new da;r.layers.enable(1);
-r.viewport=new ia;var u=new da;u.layers.enable(2);u.viewport=new ia;var y=new Qe([r,u]);y.layers.enable(1);y.layers.enable(2);var v=null,C=null;this.isPresenting=this.enabled=!1;this.getController=function(a){var b=h[a];void 0===b&&(b={},h[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=h[a];void 0===b&&(b={},h[a]=b);void 0===b.grip&&(b.grip=new Mc,b.grip.matrixAutoUpdate=!1,b.grip.visible=
-!1);return b.grip};this.setFramebufferScaleFactor=function(){};this.setReferenceSpaceType=function(a){x=a};this.getReferenceSpace=function(){return m};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}),l.updateRenderState({baseLayer:a}),l.requestReferenceSpace(x).then(e),l.addEventListener("inputsourceschange",f))};var w=new n,ja=new n;this.getCamera=function(a){y.near=u.near=r.near=a.near;y.far=u.far=r.far=a.far;if(v!==y.near||C!==y.far)l.updateRenderState({depthNear:y.near,depthFar:y.far}),v=y.near,C=y.far;var b=a.parent,c=y.cameras;g(y,b);for(var d=0;d<c.length;d++)g(c[d],b);a.matrixWorld.copy(y.matrixWorld);a=a.children;
-d=0;for(b=a.length;d<b;d++)a[d].updateMatrixWorld(!0);w.setFromMatrixPosition(r.matrixWorld);ja.setFromMatrixPosition(u.matrixWorld);d=w.distanceTo(ja);var e=r.projectionMatrix.elements,f=u.projectionMatrix.elements,k=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=k*m;e=k*p;p=d/(-m+p);m=p*-m;r.matrixWorld.decompose(y.position,y.quaternion,y.scale);y.translateX(m);y.translateZ(p);y.matrixWorld.compose(y.position,y.quaternion,y.scale);y.matrixWorldInverse.getInverse(y.matrixWorld);
-k+=p;p=a+p;y.projectionMatrix.makePerspective(f-m,e+(d-m),b*a/p*k,c*a/p*k,k,p);return y};var z=null,ra=new Ah;ra.setAnimationLoop(function(b,c){p=c.getViewerPose(m);if(null!==p){var d=p.views,e=l.renderState.baseLayer;a.setFramebuffer(e.framebuffer);for(var f=0;f<d.length;f++){var g=d[f],k=e.getViewport(g),x=y.cameras[f];x.matrix.fromArray(g.transform.matrix);x.projectionMatrix.fromArray(g.projectionMatrix);x.viewport.set(k.x,k.y,k.width,k.height);0===f&&y.matrix.copy(x.matrix)}}d=l.inputSources;
-for(f=0;f<h.length;f++)e=h[f],g=d[f],x=k=null,g&&(e.targetRay&&(k=c.getPose(g.targetRaySpace,m),null!==k&&(e.targetRay.matrix.fromArray(k.transform.matrix),e.targetRay.matrix.decompose(e.targetRay.position,e.targetRay.rotation,e.targetRay.scale))),e.grip&&g.gripSpace&&(x=c.getPose(g.gripSpace,m),null!==x&&(e.grip.matrix.fromArray(x.transform.matrix),e.grip.matrix.decompose(e.grip.position,e.grip.rotation,e.grip.scale)))),e.targetRay&&(e.targetRay.visible=null!==k),e.grip&&(e.grip.visible=null!==x);
-z&&z(b,c)});this.setAnimationLoop=function(a){z=a};this.dispose=function(){}}function qg(a){var b;function c(){sa=new zj(H);Ia=new xj(H,sa,a);!1===Ia.isWebGL2&&(sa.get("WEBGL_depth_texture"),sa.get("OES_texture_float"),sa.get("OES_texture_half_float"),sa.get("OES_texture_half_float_linear"),sa.get("OES_standard_derivatives"),sa.get("OES_element_index_uint"),sa.get("ANGLE_instanced_arrays"));sa.get("OES_texture_float_linear");qa=new Yh(H,sa,Ia);aa=new Hk(H,sa,Ia);aa.scissor(Y.copy(R).multiplyScalar(Q).floor());
-aa.viewport(X.copy(ea).multiplyScalar(Q).floor());da=new Cj(H);S=new yk;U=new Ik(H,sa,aa,S,Ia,qa,da);oa=new uj(H,Ia);za=new Aj(H,oa,da);ta=new Fj(H,za,oa,da);Aa=new Ej(H);ua=new xk(A,sa,Ia);ya=new Bk;wa=new Gk;pa=new vj(A,aa,ta,z);Ba=new wj(H,sa,da,Ia);Da=new Bj(H,sa,da,Ia);da.programs=ua.programs;A.capabilities=Ia;A.extensions=sa;A.properties=S;A.renderLists=ya;A.state=aa;A.info=da}function d(a){a.preventDefault();console.log("THREE.WebGLRenderer: Context Lost.");I=!0}function e(){console.log("THREE.WebGLRenderer: Context Restored.");
-I=!1;c()}function f(a){a=a.target;a.removeEventListener("dispose",f);g(a);S.remove(a)}function g(a){var b=S.get(a).program;a.program=void 0;void 0!==b&&ua.releaseProgram(b)}function k(a,b){a.render(function(a){A.renderBufferImmediate(a,b)})}function l(a,b,c,d){if(!1!==a.visible){if(a.layers.test(b.layers))if(a.isGroup)c=a.renderOrder;else if(a.isLOD)!0===a.autoUpdate&&a.update(b);else if(a.isLight)G.pushLight(a),a.castShadow&&G.pushShadow(a);else if(a.isSprite){if(!a.frustumCulled||mg.intersectsSprite(a)){d&&
-Ib.setFromMatrixPosition(a.matrixWorld).applyMatrix4(Od);var e=ta.update(a),f=a.material;f.visible&&B.push(a,e,f,c,Ib.z,null)}}else if(a.isImmediateRenderObject)d&&Ib.setFromMatrixPosition(a.matrixWorld).applyMatrix4(Od),B.push(a,null,a.material,c,Ib.z,null);else if(a.isMesh||a.isLine||a.isPoints)if(a.isSkinnedMesh&&a.skeleton.frame!==da.render.frame&&(a.skeleton.update(),a.skeleton.frame=da.render.frame),!a.frustumCulled||mg.intersectsObject(a))if(d&&Ib.setFromMatrixPosition(a.matrixWorld).applyMatrix4(Od),
-e=ta.update(a),f=a.material,Array.isArray(f))for(var g=e.groups,k=0,m=g.length;k<m;k++){var p=g[k],x=f[p.materialIndex];x&&x.visible&&B.push(a,e,x,c,Ib.z,p)}else f.visible&&B.push(a,e,f,c,Ib.z,null);a=a.children;k=0;for(m=a.length;k<m;k++)l(a[k],b,c,d)}}function m(a,b,c,d){for(var e=0,f=a.length;e<f;e++){var g=a[e],k=g.object,l=g.geometry,m=void 0===d?g.material:d;g=g.group;if(c.isArrayCamera)if(T=c,la.enabled&&va.isAvailable())x(k,b,c,l,m,g);else for(var p=c.cameras,h=0,q=p.length;h<q;h++){var r=
-p[h];k.layers.test(r.layers)&&(aa.viewport(X.copy(r.viewport)),G.setupLights(r),x(k,b,r,l,m,g))}else T=null,x(k,b,c,l,m,g)}}function x(a,c,d,e,f,g){a.onBeforeRender(A,c,d,e,f,g);G=wa.get(c,T||d);a.modelViewMatrix.multiplyMatrices(d.matrixWorldInverse,a.matrixWorld);a.normalMatrix.getNormalMatrix(a.modelViewMatrix);if(a.isImmediateRenderObject){var l=h(d,c,f,a);aa.setMaterial(f);ha=b=null;xa=!1;k(a,l)}else A.renderBufferDirect(d,c,e,f,a,g);a.onAfterRender(A,c,d,e,f,g);G=wa.get(c,T||d)}function p(a,
-b,c){var d=S.get(a),e=G.state.lights,k=e.state.version;c=ua.getParameters(a,e.state,G.state.shadowsArray,b,Va.numPlanes,Va.numIntersection,c);var l=ua.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!==k)d.lightsStateVersion=k;else if(void 0!==c.shaderID)return;p=!1}p&&(m=ua.acquireProgram(c,l),d.program=m,d.uniforms=c.uniforms,d.environment=a.isMeshStandardMaterial?b.environment:null,d.outputEncoding=A.outputEncoding,
-a.program=m);c=m.getAttributes();if(a.morphTargets)for(l=a.numSupportedMorphTargets=0;l<A.maxMorphTargets;l++)0<=c["morphTarget"+l]&&a.numSupportedMorphTargets++;if(a.morphNormals)for(l=a.numSupportedMorphNormals=0;l<A.maxMorphNormals;l++)0<=c["morphNormal"+l]&&a.numSupportedMorphNormals++;c=d.uniforms;if(!a.isShaderMaterial&&!a.isRawShaderMaterial||!0===a.clipping)d.numClippingPlanes=Va.numPlanes,d.numIntersection=Va.numIntersection,c.clippingPlanes=Va.uniform;d.fog=b.fog;d.needsLights=a.isMeshLambertMaterial||
-a.isMeshToonMaterial||a.isMeshPhongMaterial||a.isMeshStandardMaterial||a.isShadowMaterial||a.isShaderMaterial&&!0===a.lights;d.lightsStateVersion=k;d.needsLights&&(c.ambientLightColor.value=e.state.ambient,c.lightProbe.value=e.state.probe,c.directionalLights.value=e.state.directional,c.spotLights.value=e.state.spot,c.rectAreaLights.value=e.state.rectArea,c.pointLights.value=e.state.point,c.hemisphereLights.value=e.state.hemi,c.directionalShadowMap.value=e.state.directionalShadowMap,c.directionalShadowMatrix.value=
-e.state.directionalShadowMatrix,c.spotShadowMap.value=e.state.spotShadowMap,c.spotShadowMatrix.value=e.state.spotShadowMatrix,c.pointShadowMap.value=e.state.pointShadowMap,c.pointShadowMatrix.value=e.state.pointShadowMatrix);a=d.program.getUniforms();a=Fb.seqWithValue(a.seq,c);d.uniformsList=a}function h(a,b,c,d){U.resetTextureUnits();var e=b.fog,f=c.isMeshStandardMaterial?b.environment:null,g=S.get(c),k=G.state.lights;na&&(ng||a!==Z)&&Va.setState(c.clippingPlanes,c.clipIntersection,c.clipShadows,
-a,g,a===Z&&c.id===Pe);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!==k.state.version?p(c,b,d):void 0===g.numClippingPlanes||g.numClippingPlanes===Va.numPlanes&&g.numIntersection===Va.numIntersection?g.outputEncoding!==A.outputEncoding&&p(c,b,d):p(c,b,d):(p(c,b,d),g.__version=c.version);var l=!1,m=!1,x=!1;b=g.program;k=b.getUniforms();var h=g.uniforms;aa.useProgram(b.program)&&(x=m=l=!0);c.id!==Pe&&(Pe=
-c.id,m=!0);if(l||Z!==a){0<b.numMultiviewViews?va.updateCameraProjectionMatricesUniform(a,k):k.setValue(H,"projectionMatrix",a.projectionMatrix);Ia.logarithmicDepthBuffer&&k.setValue(H,"logDepthBufFC",2/(Math.log(a.far+1)/Math.LN2));Z!==a&&(Z=a,x=m=!0);if(c.isShaderMaterial||c.isMeshPhongMaterial||c.isMeshToonMaterial||c.isMeshStandardMaterial||c.envMap)l=k.map.cameraPosition,void 0!==l&&l.setValue(H,Ib.setFromMatrixPosition(a.matrixWorld));(c.isMeshPhongMaterial||c.isMeshToonMaterial||c.isMeshLambertMaterial||
-c.isMeshBasicMaterial||c.isMeshStandardMaterial||c.isShaderMaterial)&&k.setValue(H,"isOrthographic",!0===a.isOrthographicCamera);if(c.isMeshPhongMaterial||c.isMeshToonMaterial||c.isMeshLambertMaterial||c.isMeshBasicMaterial||c.isMeshStandardMaterial||c.isShaderMaterial||c.skinning)0<b.numMultiviewViews?va.updateCameraViewMatricesUniform(a,k):k.setValue(H,"viewMatrix",a.matrixWorldInverse)}if(c.skinning&&(k.setOptional(H,d,"bindMatrix"),k.setOptional(H,d,"bindMatrixInverse"),l=d.skeleton)){var q=l.bones;
-if(Ia.floatVertexTextures){if(void 0===l.boneTexture){q=Math.sqrt(4*q.length);q=P.ceilPowerOfTwo(q);q=Math.max(q,4);var n=new Float32Array(q*q*4);n.set(l.boneMatrices);var u=new bc(n,q,q,1023,1015);l.boneMatrices=n;l.boneTexture=u;l.boneTextureSize=q}k.setValue(H,"boneTexture",l.boneTexture,U);k.setValue(H,"boneTextureSize",l.boneTextureSize)}else k.setOptional(H,l,"boneMatrices")}if(m||g.receiveShadow!==d.receiveShadow)g.receiveShadow=d.receiveShadow,k.setValue(H,"receiveShadow",d.receiveShadow);
-if(m){k.setValue(H,"toneMappingExposure",A.toneMappingExposure);k.setValue(H,"toneMappingWhitePoint",A.toneMappingWhitePoint);g.needsLights&&(m=x,h.ambientLightColor.needsUpdate=m,h.lightProbe.needsUpdate=m,h.directionalLights.needsUpdate=m,h.pointLights.needsUpdate=m,h.spotLights.needsUpdate=m,h.rectAreaLights.needsUpdate=m,h.hemisphereLights.needsUpdate=m);e&&c.fog&&(h.fogColor.value.copy(e.color),e.isFog?(h.fogNear.value=e.near,h.fogFar.value=e.far):e.isFogExp2&&(h.fogDensity.value=e.density));
-if(c.isMeshBasicMaterial)t(h,c);else if(c.isMeshLambertMaterial)t(h,c),c.emissiveMap&&(h.emissiveMap.value=c.emissiveMap);else if(c.isMeshToonMaterial)t(h,c),h.specular.value.copy(c.specular),h.shininess.value=Math.max(c.shininess,1E-4),c.gradientMap&&(h.gradientMap.value=c.gradientMap),c.emissiveMap&&(h.emissiveMap.value=c.emissiveMap),c.bumpMap&&(h.bumpMap.value=c.bumpMap,h.bumpScale.value=c.bumpScale,1===c.side&&(h.bumpScale.value*=-1)),c.normalMap&&(h.normalMap.value=c.normalMap,h.normalScale.value.copy(c.normalScale),
-1===c.side&&h.normalScale.value.negate()),c.displacementMap&&(h.displacementMap.value=c.displacementMap,h.displacementScale.value=c.displacementScale,h.displacementBias.value=c.displacementBias);else if(c.isMeshPhongMaterial)t(h,c),h.specular.value.copy(c.specular),h.shininess.value=Math.max(c.shininess,1E-4),c.emissiveMap&&(h.emissiveMap.value=c.emissiveMap),c.bumpMap&&(h.bumpMap.value=c.bumpMap,h.bumpScale.value=c.bumpScale,1===c.side&&(h.bumpScale.value*=-1)),c.normalMap&&(h.normalMap.value=c.normalMap,
-h.normalScale.value.copy(c.normalScale),1===c.side&&h.normalScale.value.negate()),c.displacementMap&&(h.displacementMap.value=c.displacementMap,h.displacementScale.value=c.displacementScale,h.displacementBias.value=c.displacementBias);else if(c.isMeshStandardMaterial)t(h,c,f),c.isMeshPhysicalMaterial?(r(h,c,f),h.reflectivity.value=c.reflectivity,h.clearcoat.value=c.clearcoat,h.clearcoatRoughness.value=c.clearcoatRoughness,c.sheen&&h.sheen.value.copy(c.sheen),c.clearcoatNormalMap&&(h.clearcoatNormalScale.value.copy(c.clearcoatNormalScale),
-h.clearcoatNormalMap.value=c.clearcoatNormalMap,1===c.side&&h.clearcoatNormalScale.value.negate()),h.transparency.value=c.transparency):r(h,c,f);else if(c.isMeshMatcapMaterial)t(h,c),c.matcap&&(h.matcap.value=c.matcap),c.bumpMap&&(h.bumpMap.value=c.bumpMap,h.bumpScale.value=c.bumpScale,1===c.side&&(h.bumpScale.value*=-1)),c.normalMap&&(h.normalMap.value=c.normalMap,h.normalScale.value.copy(c.normalScale),1===c.side&&h.normalScale.value.negate()),c.displacementMap&&(h.displacementMap.value=c.displacementMap,
-h.displacementScale.value=c.displacementScale,h.displacementBias.value=c.displacementBias);else if(c.isMeshDepthMaterial)t(h,c),c.displacementMap&&(h.displacementMap.value=c.displacementMap,h.displacementScale.value=c.displacementScale,h.displacementBias.value=c.displacementBias);else if(c.isMeshDistanceMaterial)t(h,c),c.displacementMap&&(h.displacementMap.value=c.displacementMap,h.displacementScale.value=c.displacementScale,h.displacementBias.value=c.displacementBias),h.referencePosition.value.copy(c.referencePosition),
-h.nearDistance.value=c.nearDistance,h.farDistance.value=c.farDistance;else if(c.isMeshNormalMaterial)t(h,c),c.bumpMap&&(h.bumpMap.value=c.bumpMap,h.bumpScale.value=c.bumpScale,1===c.side&&(h.bumpScale.value*=-1)),c.normalMap&&(h.normalMap.value=c.normalMap,h.normalScale.value.copy(c.normalScale),1===c.side&&h.normalScale.value.negate()),c.displacementMap&&(h.displacementMap.value=c.displacementMap,h.displacementScale.value=c.displacementScale,h.displacementBias.value=c.displacementBias);else if(c.isLineBasicMaterial)h.diffuse.value.copy(c.color),
-h.opacity.value=c.opacity,c.isLineDashedMaterial&&(h.dashSize.value=c.dashSize,h.totalSize.value=c.dashSize+c.gapSize,h.scale.value=c.scale);else if(c.isPointsMaterial){h.diffuse.value.copy(c.color);h.opacity.value=c.opacity;h.size.value=c.size*Q;h.scale.value=.5*J;c.map&&(h.map.value=c.map);c.alphaMap&&(h.alphaMap.value=c.alphaMap);if(c.map)var v=c.map;else c.alphaMap&&(v=c.alphaMap);void 0!==v&&(!0===v.matrixAutoUpdate&&v.updateMatrix(),h.uvTransform.value.copy(v.matrix))}else if(c.isSpriteMaterial){h.diffuse.value.copy(c.color);
-h.opacity.value=c.opacity;h.rotation.value=c.rotation;c.map&&(h.map.value=c.map);c.alphaMap&&(h.alphaMap.value=c.alphaMap);if(c.map)var y=c.map;else c.alphaMap&&(y=c.alphaMap);void 0!==y&&(!0===y.matrixAutoUpdate&&y.updateMatrix(),h.uvTransform.value.copy(y.matrix))}else c.isShadowMaterial&&(h.color.value.copy(c.color),h.opacity.value=c.opacity);void 0!==h.ltc_1&&(h.ltc_1.value=F.LTC_1);void 0!==h.ltc_2&&(h.ltc_2.value=F.LTC_2);Fb.upload(H,g.uniformsList,h,U);c.isShaderMaterial&&(c.uniformsNeedUpdate=
-!1)}c.isShaderMaterial&&!0===c.uniformsNeedUpdate&&(Fb.upload(H,g.uniformsList,h,U),c.uniformsNeedUpdate=!1);c.isSpriteMaterial&&k.setValue(H,"center",d.center);0<b.numMultiviewViews?va.updateObjectMatricesUniforms(d,a,k):(k.setValue(H,"modelViewMatrix",d.modelViewMatrix),k.setValue(H,"normalMatrix",d.normalMatrix));k.setValue(H,"modelMatrix",d.matrixWorld);return b}function t(a,b,c){a.opacity.value=b.opacity;b.color&&a.diffuse.value.copy(b.color);b.emissive&&a.emissive.value.copy(b.emissive).multiplyScalar(b.emissiveIntensity);
-b.map&&(a.map.value=b.map);b.alphaMap&&(a.alphaMap.value=b.alphaMap);b.specularMap&&(a.specularMap.value=b.specularMap);if(c=b.envMap||c)a.envMap.value=c,a.flipEnvMap.value=c.isCubeTexture?-1:1,a.reflectivity.value=b.reflectivity,a.refractionRatio.value=b.refractionRatio,a.maxMipLevel.value=S.get(c).__maxMipLevel;b.lightMap&&(a.lightMap.value=b.lightMap,a.lightMapIntensity.value=b.lightMapIntensity);b.aoMap&&(a.aoMap.value=b.aoMap,a.aoMapIntensity.value=b.aoMapIntensity);if(b.map)var d=b.map;else b.specularMap?
-d=b.specularMap:b.displacementMap?d=b.displacementMap:b.normalMap?d=b.normalMap:b.bumpMap?d=b.bumpMap:b.roughnessMap?d=b.roughnessMap:b.metalnessMap?d=b.metalnessMap:b.alphaMap?d=b.alphaMap:b.emissiveMap&&(d=b.emissiveMap);void 0!==d&&(d.isWebGLRenderTarget&&(d=d.texture),!0===d.matrixAutoUpdate&&d.updateMatrix(),a.uvTransform.value.copy(d.matrix));if(b.aoMap)var e=b.aoMap;else b.lightMap&&(e=b.lightMap);void 0!==e&&(e.isWebGLRenderTarget&&(e=e.texture),!0===e.matrixAutoUpdate&&e.updateMatrix(),a.uv2Transform.value.copy(e.matrix))}
-function r(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 u=void 0!==a.canvas?a.canvas:document.createElementNS("http://www.w3.org/1999/xhtml","canvas"),y=void 0!==a.context?a.context:null,v=void 0!==a.alpha?a.alpha:!1,C=void 0!==a.depth?a.depth:!0,W=void 0!==a.stencil?a.stencil:!0,ja=void 0!==a.antialias?a.antialias:!1,z=void 0!==a.premultipliedAlpha?a.premultipliedAlpha:!0,ra=
-void 0!==a.preserveDrawingBuffer?a.preserveDrawingBuffer:!1,D=void 0!==a.powerPreference?a.powerPreference:"default",E=void 0!==a.failIfMajorPerformanceCaveat?a.failIfMajorPerformanceCaveat:!1,B=null,G=null;this.domElement=u;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 A=this,I=!1,K=null,L=0,M=0,N=null,V=null,Pe=-1;var ha=b=null;var xa=!1;var Z=null,T=null,X=new ia,Y=new ia,ba=null,ca=u.width,J=u.height,Q=1,ka=null,ma=null,ea=new ia(0,0,ca,J),R=new ia(0,0,ca,J),lg=!1,mg=new Hc,Va=new yj,na=!1,ng=!1,Od=new O,Ib=new n;try{v={alpha:v,depth:C,stencil:W,antialias:ja,premultipliedAlpha:z,preserveDrawingBuffer:ra,powerPreference:D,failIfMajorPerformanceCaveat:E,xrCompatible:!0};
-u.addEventListener("webglcontextlost",d,!1);u.addEventListener("webglcontextrestored",e,!1);var H=y||u.getContext("webgl",v)||u.getContext("experimental-webgl",v);if(null===H){if(null!==u.getContext("webgl"))throw Error("Error creating WebGL context with your selected attributes.");throw Error("Error creating WebGL context.");}void 0===H.getShaderPrecisionFormat&&(H.getShaderPrecisionFormat=function(){return{rangeMin:1,rangeMax:1,precision:1}})}catch($h){throw console.error("THREE.WebGLRenderer: "+
-$h.message),$h;}var sa,Ia,aa,da,S,U,oa,za,ta,ua,ya,wa,pa,Aa,Ba,Da,qa;c();var la=new Zh(A,H);this.xr=la;var va=new Jk(A,H),Fa=new Wh(A,ta,Ia.maxTextureSize);this.shadowMap=Fa;this.getContext=function(){return H};this.getContextAttributes=function(){return H.getContextAttributes()};this.forceContextLoss=function(){var a=sa.get("WEBGL_lose_context");a&&a.loseContext()};this.forceContextRestore=function(){var a=sa.get("WEBGL_lose_context");a&&a.restoreContext()};this.getPixelRatio=function(){return Q};
-this.setPixelRatio=function(a){void 0!==a&&(Q=a,this.setSize(ca,J,!1))};this.getSize=function(a){void 0===a&&(console.warn("WebGLRenderer: .getsize() now requires a Vector2 as an argument"),a=new w);return a.set(ca,J)};this.setSize=function(a,b,c){la.isPresenting?console.warn("THREE.WebGLRenderer: Can't change size while VR device is presenting."):(ca=a,J=b,u.width=Math.floor(a*Q),u.height=Math.floor(b*Q),!1!==c&&(u.style.width=a+"px",u.style.height=b+"px"),this.setViewport(0,0,a,b))};this.getDrawingBufferSize=
-function(a){void 0===a&&(console.warn("WebGLRenderer: .getdrawingBufferSize() now requires a Vector2 as an argument"),a=new w);return a.set(ca*Q,J*Q).floor()};this.setDrawingBufferSize=function(a,b,c){ca=a;J=b;Q=c;u.width=Math.floor(a*c);u.height=Math.floor(b*c);this.setViewport(0,0,a,b)};this.getCurrentViewport=function(a){void 0===a&&(console.warn("WebGLRenderer: .getCurrentViewport() now requires a Vector4 as an argument"),a=new ia);return a.copy(X)};this.getViewport=function(a){return a.copy(ea)};
-this.setViewport=function(a,b,c,d){a.isVector4?ea.set(a.x,a.y,a.z,a.w):ea.set(a,b,c,d);aa.viewport(X.copy(ea).multiplyScalar(Q).floor())};this.getScissor=function(a){return a.copy(R)};this.setScissor=function(a,b,c,d){a.isVector4?R.set(a.x,a.y,a.z,a.w):R.set(a,b,c,d);aa.scissor(Y.copy(R).multiplyScalar(Q).floor())};this.getScissorTest=function(){return lg};this.setScissorTest=function(a){aa.setScissorTest(lg=a)};this.setOpaqueSort=function(a){ka=a};this.setTransparentSort=function(a){ma=a};this.getClearColor=
-function(){return pa.getClearColor()};this.setClearColor=function(){pa.setClearColor.apply(pa,arguments)};this.getClearAlpha=function(){return pa.getClearAlpha()};this.setClearAlpha=function(){pa.setClearAlpha.apply(pa,arguments)};this.clear=function(a,b,c){var d=0;if(void 0===a||a)d|=16384;if(void 0===b||b)d|=256;if(void 0===c||c)d|=1024;H.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(){u.removeEventListener("webglcontextlost",d,!1);u.removeEventListener("webglcontextrestored",e,!1);ya.dispose();wa.dispose();S.dispose();ta.dispose();la.dispose();Ca.stop()};this.renderBufferImmediate=function(a,b){aa.initAttributes();var c=S.get(a);a.hasPositions&&!c.position&&(c.position=H.createBuffer());a.hasNormals&&!c.normal&&(c.normal=H.createBuffer());a.hasUvs&&!c.uv&&(c.uv=H.createBuffer());a.hasColors&&!c.color&&(c.color=H.createBuffer());b=b.getAttributes();a.hasPositions&&
-(H.bindBuffer(34962,c.position),H.bufferData(34962,a.positionArray,35048),aa.enableAttribute(b.position),H.vertexAttribPointer(b.position,3,5126,!1,0,0));a.hasNormals&&(H.bindBuffer(34962,c.normal),H.bufferData(34962,a.normalArray,35048),aa.enableAttribute(b.normal),H.vertexAttribPointer(b.normal,3,5126,!1,0,0));a.hasUvs&&(H.bindBuffer(34962,c.uv),H.bufferData(34962,a.uvArray,35048),aa.enableAttribute(b.uv),H.vertexAttribPointer(b.uv,2,5126,!1,0,0));a.hasColors&&(H.bindBuffer(34962,c.color),H.bufferData(34962,
-a.colorArray,35048),aa.enableAttribute(b.color),H.vertexAttribPointer(b.color,3,5126,!1,0,0));aa.disableUnusedAttributes();H.drawArrays(4,0,a.count);a.count=0};var Ja=new pb;this.renderBufferDirect=function(a,c,d,e,f,g){null===c&&(c=Ja);var k=f.isMesh&&0>f.matrixWorld.determinant(),l=h(a,c,e,f);aa.setMaterial(e,k);var m=!1;if(b!==d.id||ha!==l.id||xa!==(!0===e.wireframe))b=d.id,ha=l.id,xa=!0===e.wireframe,m=!0;if(e.morphTargets||e.morphNormals)Aa.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 p=1;!0===e.wireframe&&(a=za.getWireframeAttribute(d),p=2);k=Ba;if(null!==a){var x=oa.get(a);k=Da;k.setIndex(x)}if(m){if(!1!==Ia.isWebGL2||!f.isInstancedMesh&&!d.isInstancedBufferGeometry||null!==sa.get("ANGLE_instanced_arrays")){aa.initAttributes();m=d.attributes;l=l.getAttributes();var q=e.defaultAttributeValues;for(W in l){var r=l[W];if(0<=r){var t=m[W];if(void 0!==t){var n=t.normalized,u=t.itemSize,v=oa.get(t);if(void 0!==
-v){var y=v.buffer,z=v.type;v=v.bytesPerElement;if(t.isInterleavedBufferAttribute){var C=t.data,w=C.stride;t=t.offset;C&&C.isInstancedInterleavedBuffer?(aa.enableAttributeAndDivisor(r,C.meshPerAttribute),void 0===d.maxInstancedCount&&(d.maxInstancedCount=C.meshPerAttribute*C.count)):aa.enableAttribute(r);H.bindBuffer(34962,y);H.vertexAttribPointer(r,u,z,n,w*v,t*v)}else t.isInstancedBufferAttribute?(aa.enableAttributeAndDivisor(r,t.meshPerAttribute),void 0===d.maxInstancedCount&&(d.maxInstancedCount=
-t.meshPerAttribute*t.count)):aa.enableAttribute(r),H.bindBuffer(34962,y),H.vertexAttribPointer(r,u,z,n,0,0)}}else if("instanceMatrix"===W)v=oa.get(f.instanceMatrix),void 0!==v&&(y=v.buffer,z=v.type,aa.enableAttributeAndDivisor(r+0,1),aa.enableAttributeAndDivisor(r+1,1),aa.enableAttributeAndDivisor(r+2,1),aa.enableAttributeAndDivisor(r+3,1),H.bindBuffer(34962,y),H.vertexAttribPointer(r+0,4,z,!1,64,0),H.vertexAttribPointer(r+1,4,z,!1,64,16),H.vertexAttribPointer(r+2,4,z,!1,64,32),H.vertexAttribPointer(r+
-3,4,z,!1,64,48));else if(void 0!==q&&(n=q[W],void 0!==n))switch(n.length){case 2:H.vertexAttrib2fv(r,n);break;case 3:H.vertexAttrib3fv(r,n);break;case 4:H.vertexAttrib4fv(r,n);break;default:H.vertexAttrib1fv(r,n)}}}aa.disableUnusedAttributes()}null!==a&&H.bindBuffer(34963,x.buffer)}var W=d.drawRange.start*p;m=null!==g?g.start*p:0;x=Math.max(W,m);g=Math.max(0,Math.min(null!==a?a.count:c.count,W+d.drawRange.count*p,m+(null!==g?g.count*p:Infinity))-1-x+1);0!==g&&(f.isMesh?!0===e.wireframe?(aa.setLineWidth(e.wireframeLinewidth*
-(null===N?Q:1)),k.setMode(1)):k.setMode(4):f.isLine?(e=e.linewidth,void 0===e&&(e=1),aa.setLineWidth(e*(null===N?Q:1)),f.isLineSegments?k.setMode(1):f.isLineLoop?k.setMode(2):k.setMode(3)):f.isPoints?k.setMode(0):f.isSprite&&k.setMode(4),f.isInstancedMesh?k.renderInstances(d,x,g,f.count):d.isInstancedBufferGeometry?k.renderInstances(d,x,g,d.maxInstancedCount):k.render(x,g))};this.compile=function(a,b){G=wa.get(a,b);G.init();a.traverse(function(a){a.isLight&&(G.pushLight(a),a.castShadow&&G.pushShadow(a))});
-G.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 Ea=null,Ca=new Ah;Ca.setAnimationLoop(function(a){la.isPresenting||Ea&&Ea(a)});"undefined"!==typeof window&&Ca.setContext(window);this.setAnimationLoop=function(a){Ea=a;la.setAnimationLoop(a);Ca.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?I||(ha=b=null,xa=!1,Pe=-1,Z=null,!0===a.autoUpdate&&a.updateMatrixWorld(),null===c.parent&&c.updateMatrixWorld(),la.enabled&&la.isPresenting&&(c=la.getCamera(c)),G=wa.get(a,c),G.init(),a.onBeforeRender(A,
-a,c,f||N),Od.multiplyMatrices(c.projectionMatrix,c.matrixWorldInverse),mg.setFromProjectionMatrix(Od),ng=this.localClippingEnabled,na=Va.init(this.clippingPlanes,ng,c),B=ya.get(a,c),B.init(),l(a,c,0,A.sortObjects),!0===A.sortObjects&&B.sort(ka,ma),na&&Va.beginShadows(),Fa.render(G.state.shadowsArray,a,c),G.setupLights(c),na&&Va.endShadows(),this.info.autoReset&&this.info.reset(),void 0!==f&&this.setRenderTarget(f),la.enabled&&va.isAvailable()&&va.attachCamera(c),pa.render(B,a,c,g),d=B.opaque,e=B.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(A,a,c),null!==N&&(U.updateRenderTargetMipmap(N),U.updateMultisampleRenderTarget(N)),aa.buffers.depth.setTest(!0),aa.buffers.depth.setMask(!0),aa.buffers.color.setMask(!0),aa.setPolygonOffset(!1),la.enabled&&va.isAvailable()&&va.detachCamera(c),G=B=null):console.error("THREE.WebGLRenderer.render: camera is not an instance of THREE.Camera.")};this.setFramebuffer=
-function(a){K!==a&&null===N&&H.bindFramebuffer(36160,a);K=a};this.getActiveCubeFace=function(){return L};this.getActiveMipmapLevel=function(){return M};this.getRenderTarget=function(){return N};this.setRenderTarget=function(a,b,c){N=a;L=b;M=c;a&&void 0===S.get(a).__webglFramebuffer&&U.setupRenderTarget(a);var d=K,e=!1;a?(d=S.get(a).__webglFramebuffer,a.isWebGLCubeRenderTarget?(d=d[b||0],e=!0):d=a.isWebGLMultisampleRenderTarget?S.get(a).__webglMultisampledFramebuffer:d,X.copy(a.viewport),Y.copy(a.scissor),
-ba=a.scissorTest):(X.copy(ea).multiplyScalar(Q).floor(),Y.copy(R).multiplyScalar(Q).floor(),ba=lg);V!==d&&(H.bindFramebuffer(36160,d),V=d);aa.viewport(X);aa.scissor(Y);aa.setScissorTest(ba);e&&(a=S.get(a.texture),H.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 k=S.get(a).__webglFramebuffer;a.isWebGLCubeRenderTarget&&void 0!==g&&(k=k[g]);if(k){g=!1;k!==V&&(H.bindFramebuffer(36160,k),g=!0);
-try{var l=a.texture,m=l.format,h=l.type;1023!==m&&qa.convert(m)!==H.getParameter(35739)?console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format."):1009===h||qa.convert(h)===H.getParameter(35738)||1015===h&&(Ia.isWebGL2||sa.get("OES_texture_float")||sa.get("WEBGL_color_buffer_float"))||1016===h&&(Ia.isWebGL2?sa.get("EXT_color_buffer_float"):sa.get("EXT_color_buffer_half_float"))?36053===H.checkFramebufferStatus(36160)?0<=b&&b<=a.width-
-d&&0<=c&&c<=a.height-e&&H.readPixels(b,c,d,e,qa.convert(m),qa.convert(h),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&&H.bindFramebuffer(36160,V)}}}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);U.setTexture2D(b,0);H.copyTexImage2D(3553,c,f,a.x,a.y,e,d,0);aa.unbindTexture()};this.copyTextureToTexture=function(a,b,c,d){var e=b.image.width,f=b.image.height,g=qa.convert(c.format),k=qa.convert(c.type);U.setTexture2D(c,0);b.isDataTexture?H.texSubImage2D(3553,d||0,a.x,a.y,e,f,g,k,b.image.data):H.texSubImage2D(3553,d||0,a.x,a.y,g,k,b.image);aa.unbindTexture()};
-this.initTexture=function(a){U.setTexture2D(a,0);aa.unbindTexture()};"undefined"!==typeof __THREE_DEVTOOLS__&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}function Re(a,b){this.name="";this.color=new B(a);this.density=void 0!==b?b:2.5E-4}function Se(a,b,c){this.name="";this.color=new B(a);this.near=void 0!==b?b:1;this.far=void 0!==c?c:1E3}function sb(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 Qd(a,b,c,d){this.data=a;this.itemSize=b;this.offset=c;this.normalized=!0===d}function Jb(a){K.call(this);this.type="SpriteMaterial";this.color=new B(16777215);this.alphaMap=this.map=null;this.rotation=0;this.transparent=this.sizeAttenuation=!0;this.setValues(a)}function Rd(a){D.call(this);this.type="Sprite";if(void 0===Nc){Nc=new A;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 sb(b,5);Nc.setIndex([0,1,2,0,2,3]);Nc.setAttribute("position",
-new Qd(b,3,0,!1));Nc.setAttribute("uv",new Qd(b,2,3,!1))}this.geometry=Nc;this.material=void 0!==a?a:new Jb;this.center=new w(.5,.5)}function Te(a,b,c,d,e,f){Oc.subVectors(a,c).addScalar(.5).multiply(d);void 0!==e?(Sd.x=f*Oc.x-e*Oc.y,Sd.y=e*Oc.x+f*Oc.y):Sd.copy(Oc);a.copy(b);a.x+=Sd.x;a.y+=Sd.y;a.applyMatrix4(ai)}function Td(){D.call(this);this.type="LOD";Object.defineProperties(this,{levels:{enumerable:!0,value:[]}});this.autoUpdate=!0}function Ud(a,b){a&&a.isGeometry&&console.error("THREE.SkinnedMesh no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.");
-ca.call(this,a,b);this.type="SkinnedMesh";this.bindMode="attached";this.bindMatrix=new O;this.bindMatrixInverse=new O}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 O)}function rg(){D.call(this);
-this.type="Bone"}function Ve(a,b,c){ca.call(this,a,b);this.instanceMatrix=new M(new Float32Array(16*c),16);this.count=c;this.frustumCulled=!1}function ka(a){K.call(this);this.type="LineBasicMaterial";this.color=new B(16777215);this.linewidth=1;this.linejoin=this.linecap="round";this.setValues(a)}function La(a,b,c){1===c&&console.error("THREE.Line: parameter THREE.LinePieces no longer supported. Use THREE.LineSegments instead.");D.call(this);this.type="Line";this.geometry=void 0!==a?a:new A;this.material=
-void 0!==b?b:new ka}function ma(a,b){La.call(this,a,b);this.type="LineSegments"}function We(a,b){La.call(this,a,b);this.type="LineLoop"}function Wa(a){K.call(this);this.type="PointsMaterial";this.color=new B(16777215);this.alphaMap=this.map=null;this.size=1;this.sizeAttenuation=!0;this.morphTargets=!1;this.setValues(a)}function Pc(a,b){D.call(this);this.type="Points";this.geometry=void 0!==a?a:new A;this.material=void 0!==b?b:new Wa;this.updateMorphTargets()}function sg(a,b,c,d,e,f,g){var k=tg.distanceSqToPoint(a);
-k<c&&(c=new n,tg.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(k),point:c,index:b,face:null,object:g}))}function ug(a,b,c,d,e,f,g,k,l){Z.call(this,a,b,c,d,e,f,g,k,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,k,l,m,h,p){Z.call(this,null,f,g,k,l,m,d,e,h,p);this.image={width:b,height:c};this.mipmaps=a;this.generateMipmaps=
-this.flipY=!1}function Vd(a,b,c,d,e,f,g,k,l){Z.call(this,a,b,c,d,e,f,g,k,l);this.needsUpdate=!0}function Wd(a,b,c,d,e,f,g,k,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);Z.call(this,null,d,e,f,g,k,m,c,l);this.image={width:a,height:b};this.magFilter=void 0!==g?g:1003;this.minFilter=void 0!==k?k:1003;this.generateMipmaps=this.flipY=!1}function Rc(a){A.call(this);
-this.type="WireframeGeometry";var b=[],c,d,e,f=[0,0],g={},k=["a","b","c"];if(a&&a.isGeometry){var l=a.faces;var m=0;for(d=l.length;m<d;m++){var h=l[m];for(c=0;3>c;c++){var p=h[k[c]];var q=h[k[(c+1)%3]];f[0]=Math.min(p,q);f[1]=Math.max(p,q);p=f[0]+","+f[1];void 0===g[p]&&(g[p]={index1:f[0],index2:f[1]})}}for(p in g)m=g[p],k=a.vertices[m.index1],b.push(k.x,k.y,k.z),k=a.vertices[m.index2],b.push(k.x,k.y,k.z)}else if(a&&a.isBufferGeometry)if(k=new n,null!==a.index){l=a.attributes.position;h=a.index;var t=
-a.groups;0===t.length&&(t=[{start:0,count:h.count,materialIndex:0}]);a=0;for(e=t.length;a<e;++a)for(m=t[a],c=m.start,d=m.count,m=c,d=c+d;m<d;m+=3)for(c=0;3>c;c++)p=h.getX(m+c),q=h.getX(m+(c+1)%3),f[0]=Math.min(p,q),f[1]=Math.max(p,q),p=f[0]+","+f[1],void 0===g[p]&&(g[p]={index1:f[0],index2:f[1]});for(p in g)m=g[p],k.fromBufferAttribute(l,m.index1),b.push(k.x,k.y,k.z),k.fromBufferAttribute(l,m.index2),b.push(k.x,k.y,k.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,k.fromBufferAttribute(l,g),b.push(k.x,k.y,k.z),g=3*m+(c+1)%3,k.fromBufferAttribute(l,g),b.push(k.x,k.y,k.z);this.setAttribute("position",new E(b,3))}function Xd(a,b,c){L.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){A.call(this);this.type="ParametricBufferGeometry";this.parameters={func:a,slices:b,stacks:c};var d=[],e=[],f=[],g=[],k=new n,l=new n,m=new n,h=new n,p=new n,q,t;3>
-a.length&&console.error("THREE.ParametricGeometry: Function must now modify a Vector3 as third parameter.");var r=b+1;for(q=0;q<=c;q++){var u=q/c;for(t=0;t<=b;t++){var y=t/b;a(y,u,l);e.push(l.x,l.y,l.z);0<=y-1E-5?(a(y-1E-5,u,m),h.subVectors(l,m)):(a(y+1E-5,u,m),h.subVectors(m,l));0<=u-1E-5?(a(y,u-1E-5,m),p.subVectors(l,m)):(a(y,u+1E-5,m),p.subVectors(m,l));k.crossVectors(h,p).normalize();f.push(k.x,k.y,k.z);g.push(y,u)}}for(q=0;q<c;q++)for(t=0;t<b;t++)a=q*r+t+1,k=(q+1)*r+t+1,l=(q+1)*r+t,d.push(q*
-r+t,a,l),d.push(a,k,l);this.setIndex(d);this.setAttribute("position",new E(e,3));this.setAttribute("normal",new E(f,3));this.setAttribute("uv",new E(g,2))}function Yd(a,b,c,d){L.call(this);this.type="PolyhedronGeometry";this.parameters={vertices:a,indices:b,radius:c,detail:d};this.fromBufferGeometry(new Ja(a,b,c,d));this.mergeVertices()}function Ja(a,b,c,d){function e(a){k.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)}A.call(this);this.type="PolyhedronBufferGeometry";this.parameters={vertices:a,indices:b,radius:c,detail:d};c=c||1;d=d||0;var k=[],l=[];(function(a){for(var c=new n,d=new n,g=new n,k=0;k<b.length;k+=3){f(b[k+0],c);f(b[k+1],d);f(b[k+2],g);var l,m,h=c,v=d,C=g,w=Math.pow(2,a),ja=[];for(m=0;m<=w;m++){ja[m]=[];var z=h.clone().lerp(C,m/w),A=v.clone().lerp(C,m/w),B=w-m;for(l=0;l<=B;l++)ja[m][l]=0===l&&m===w?z:z.clone().lerp(A,l/B)}for(m=0;m<w;m++)for(l=0;l<2*(w-m)-1;l++)h=Math.floor(l/
-2),0===l%2?(e(ja[m][h+1]),e(ja[m+1][h]),e(ja[m][h])):(e(ja[m][h+1]),e(ja[m+1][h+1]),e(ja[m+1][h]))}})(d);(function(a){for(var b=new n,c=0;c<k.length;c+=3)b.x=k[c+0],b.y=k[c+1],b.z=k[c+2],b.normalize().multiplyScalar(a),k[c+0]=b.x,k[c+1]=b.y,k[c+2]=b.z})(c);(function(){for(var a=new n,b=0;b<k.length;b+=3)a.x=k[b+0],a.y=k[b+1],a.z=k[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 w,f=new w,h=new w,
-y=0,v=0;y<k.length;y+=9,v+=6){a.set(k[y+0],k[y+1],k[y+2]);b.set(k[y+3],k[y+4],k[y+5]);c.set(k[y+6],k[y+7],k[y+8]);e.set(l[v+0],l[v+1]);f.set(l[v+2],l[v+3]);h.set(l[v+4],l[v+5]);d.copy(a).add(b).add(c).divideScalar(3);var C=Math.atan2(d.z,-d.x);g(e,v+0,a,C);g(f,v+2,b,C);g(h,v+4,c,C)}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 E(k,3));this.setAttribute("normal",
-new E(k.slice(),3));this.setAttribute("uv",new E(l,2));0===d?this.computeVertexNormals():this.normalizeNormals()}function Zd(a,b){L.call(this);this.type="TetrahedronGeometry";this.parameters={radius:a,detail:b};this.fromBufferGeometry(new Tc(a,b));this.mergeVertices()}function Tc(a,b){Ja.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 $d(a,b){L.call(this);this.type="OctahedronGeometry";this.parameters=
-{radius:a,detail:b};this.fromBufferGeometry(new dc(a,b));this.mergeVertices()}function dc(a,b){Ja.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 ae(a,b){L.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;Ja.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 be(a,b){L.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;Ja.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 ce(a,
-b,c,d,e,f){L.call(this);this.type="TubeGeometry";this.parameters={path:a,tubularSegments:b,radius:c,radialSegments:d,closed:e};void 0!==f&&console.warn("THREE.TubeGeometry: taper has been removed.");a=new ec(a,b,c,d,e);this.tangents=a.tangents;this.normals=a.normals;this.binormals=a.binormals;this.fromBufferGeometry(a);this.mergeVertices()}function ec(a,b,c,d,e){function f(e){h=a.getPointAt(e/b,h);var f=g.normals[e];e=g.binormals[e];for(q=0;q<=d;q++){var m=q/d*Math.PI*2,p=Math.sin(m);m=-Math.cos(m);
-l.x=m*f.x+p*e.x;l.y=m*f.y+p*e.y;l.z=m*f.z+p*e.z;l.normalize();r.push(l.x,l.y,l.z);k.x=h.x+c*l.x;k.y=h.y+c*l.y;k.z=h.z+c*l.z;t.push(k.x,k.y,k.z)}}A.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 k=new n,l=new n,m=new w,h=new n,p,q,t=[],r=[],u=[],y=[];for(p=0;p<b;p++)f(p);f(!1===e?b:0);for(p=
-0;p<=b;p++)for(q=0;q<=d;q++)m.x=p/b,m.y=q/d,u.push(m.x,m.y);(function(){for(q=1;q<=b;q++)for(p=1;p<=d;p++){var a=(d+1)*q+(p-1),c=(d+1)*q+p,e=(d+1)*(q-1)+p;y.push((d+1)*(q-1)+(p-1),a,e);y.push(a,c,e)}})();this.setIndex(y);this.setAttribute("position",new E(t,3));this.setAttribute("normal",new E(r,3));this.setAttribute("uv",new E(u,2))}function de(a,b,c,d,e,f,g){L.call(this);this.type="TorusKnotGeometry";this.parameters={radius:a,tube:b,tubularSegments:c,radialSegments:d,p:e,q:f};void 0!==g&&console.warn("THREE.TorusKnotGeometry: heightScale has been deprecated. Use .scale( x, y, z ) instead.");
-this.fromBufferGeometry(new 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}A.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 k=[],l=[],m=[],h=[],p,q=new n,t=new n,r=new n,u=new n,y=new n,v=new n,C=new n;for(p=0;p<=
-c;++p){var w=p/c*e*Math.PI*2;g(w,e,f,a,r);g(w+.01,e,f,a,u);v.subVectors(u,r);C.addVectors(u,r);y.crossVectors(v,C);C.crossVectors(y,v);y.normalize();C.normalize();for(w=0;w<=d;++w){var ja=w/d*Math.PI*2,z=-b*Math.cos(ja);ja=b*Math.sin(ja);q.x=r.x+(z*C.x+ja*y.x);q.y=r.y+(z*C.y+ja*y.y);q.z=r.z+(z*C.z+ja*y.z);l.push(q.x,q.y,q.z);t.subVectors(q,r).normalize();m.push(t.x,t.y,t.z);h.push(p/c);h.push(w/d)}}for(w=1;w<=c;w++)for(p=1;p<=d;p++)a=(d+1)*w+(p-1),b=(d+1)*w+p,e=(d+1)*(w-1)+p,k.push((d+1)*(w-1)+(p-
-1),a,e),k.push(a,b,e);this.setIndex(k);this.setAttribute("position",new E(l,3));this.setAttribute("normal",new E(m,3));this.setAttribute("uv",new E(h,2))}function ee(a,b,c,d,e){L.call(this);this.type="TorusGeometry";this.parameters={radius:a,tube:b,radialSegments:c,tubularSegments:d,arc:e};this.fromBufferGeometry(new Xc(a,b,c,d,e));this.mergeVertices()}function Xc(a,b,c,d,e){A.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=[],k=[],l=[],m=new n,h=new n,p=new n,q,t;for(q=0;q<=c;q++)for(t=0;t<=d;t++){var r=t/d*e,u=q/c*Math.PI*2;h.x=(a+b*Math.cos(u))*Math.cos(r);h.y=(a+b*Math.cos(u))*Math.sin(r);h.z=b*Math.sin(u);g.push(h.x,h.y,h.z);m.x=a*Math.cos(r);m.y=a*Math.sin(r);p.subVectors(h,m).normalize();k.push(p.x,p.y,p.z);l.push(t/d);l.push(q/c)}for(q=1;q<=c;q++)for(t=1;t<=d;t++)a=(d+1)*(q-1)+t-1,b=(d+1)*(q-1)+t,e=(d+1)*q+t,f.push((d+1)*q+t-1,a,e),f.push(a,
-b,e);this.setIndex(f);this.setAttribute("position",new E(g,3));this.setAttribute("normal",new E(k,3));this.setAttribute("uv",new E(l,2))}function bi(a,b,c,d,e){for(var f,g=0,k=b,l=c-d;k<c;k+=d)g+=(a[l]-a[k])*(a[k+1]+a[l+1]),l=k;if(e===0<g)for(e=b;e<c;e+=d)f=ci(e,a[e],a[e+1],f);else for(e=c-d;e>=b;e-=d)f=ci(e,a[e],a[e+1],f);f&&fc(f,f.next)&&(fe(f),f=f.next);return f}function ge(a,b){if(!a)return a;b||(b=a);do{var c=!1;if(a.steiner||!fc(a,a.next)&&0!==ta(a.prev,a,a.next))a=a.next;else{fe(a);a=b=a.prev;
-if(a===a.next)break;c=!0}}while(c||a!==b);return b}function he(a,b,c,d,e,f,g){if(a){if(!g&&f){var k=a,l=k;do null===l.z&&(l.z=vg(l.x,l.y,d,e,f)),l.prevZ=l.prev,l=l.nextZ=l.next;while(l!==k);l.prevZ.nextZ=null;l.prevZ=null;k=l;var m,h,p,q,t=1;do{l=k;var r=k=null;for(h=0;l;){h++;var n=l;for(m=p=0;m<t&&(p++,n=n.nextZ,n);m++);for(q=t;0<p||0<q&&n;)0!==p&&(0===q||!n||l.z<=n.z)?(m=l,l=l.nextZ,p--):(m=n,n=n.nextZ,q--),r?r.nextZ=m:k=m,m.prevZ=r,r=m;l=n}r.nextZ=null;t*=2}while(1<h)}for(k=a;a.prev!==a.next;){l=
-a.prev;n=a.next;if(f)r=Kk(a,d,e,f);else a:if(r=a,h=r.prev,p=r,t=r.next,0<=ta(h,p,t))r=!1;else{for(m=r.next.next;m!==r.prev;){if(Yc(h.x,h.y,p.x,p.y,t.x,t.y,m.x,m.y)&&0<=ta(m.prev,m,m.next)){r=!1;break a}m=m.next}r=!0}if(r)b.push(l.i/c),b.push(a.i/c),b.push(n.i/c),fe(a),k=a=n.next;else if(a=n,a===k){if(!g)he(ge(a),b,c,d,e,f,1);else if(1===g){g=b;k=c;l=a;do n=l.prev,r=l.next.next,!fc(n,r)&&di(n,l,l.next,r)&&ie(n,r)&&ie(r,n)&&(g.push(n.i/k),g.push(l.i/k),g.push(r.i/k),fe(l),fe(l.next),l=a=r),l=l.next;
-while(l!==a);a=l;he(a,b,c,d,e,f,2)}else if(2===g)a:{g=a;do{for(k=g.next.next;k!==g.prev;){if(l=g.i!==k.i){l=g;n=k;if(r=l.next.i!==n.i&&l.prev.i!==n.i){b:{r=l;do{if(r.i!==l.i&&r.next.i!==l.i&&r.i!==n.i&&r.next.i!==n.i&&di(r,r.next,l,n)){r=!0;break b}r=r.next}while(r!==l);r=!1}r=!r}if(r=r&&ie(l,n)&&ie(n,l)){r=l;h=!1;p=(l.x+n.x)/2;n=(l.y+n.y)/2;do r.y>n!==r.next.y>n&&r.next.y!==r.y&&p<(r.next.x-r.x)*(n-r.y)/(r.next.y-r.y)+r.x&&(h=!h),r=r.next;while(r!==l);r=h}l=r}if(l){a=ei(g,k);g=ge(g,g.next);a=ge(a,
-a.next);he(g,b,c,d,e,f);he(a,b,c,d,e,f);break a}k=k.next}g=g.next}while(g!==a)}break}}}}function Kk(a,b,c,d){var e=a.prev,f=a.next;if(0<=ta(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,k=e.y>a.y?e.y>f.y?e.y:f.y:a.y>f.y?a.y:f.y,l=vg(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=vg(g,k,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<=ta(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<=ta(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<=ta(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<=ta(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 k=c.x<c.next.x?c:c.next}}c=c.next}while(c!==b);if(!k)return null;if(d===f)return k.prev;b=k;g=k.x;var l=k.y,m=Infinity;for(c=k.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 h=Math.abs(e-c.y)/(d-c.x);(h<m||h===m&&c.x>k.x)&&ie(c,a)&&(k=c,m=h)}c=c.next}return k}function vg(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,k){return 0<=(e-g)*(b-k)-(a-g)*(f-k)&&0<=(a-g)*(d-k)-(c-g)*(b-k)&&0<=(c-g)*(f-k)-(e-g)*(d-k)}function ta(a,b,c){return(b.y-a.y)*(c.x-b.x)-(b.x-a.x)*(c.y-b.y)}function fc(a,b){return a.x===b.x&&a.y===b.y}function di(a,b,c,d){return fc(a,c)&&fc(b,
-d)||fc(a,d)&&fc(c,b)?!0:0<ta(a,b,c)!==0<ta(a,b,d)&&0<ta(c,d,a)!==0<ta(c,d,b)}function ie(a,b){return 0>ta(a.prev,a,a.next)?0<=ta(a,b,a.next)&&0<=ta(a,a.prev,b):0>ta(a,b,a.prev)||0>ta(a,a.next,b)}function ei(a,b){var c=new wg(a.i,a.x,a.y),d=new wg(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 ci(a,b,c,d){a=new wg(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 fe(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 wg(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 fi(a){var b=a.length;2<b&&a[b-1].equals(a[0])&&a.pop()}function gi(a,b){for(var c=0;c<b.length;c++)a.push(b[c].x),a.push(b[c].y)}function gc(a,b){L.call(this);this.type="ExtrudeGeometry";this.parameters={shapes:a,options:b};this.fromBufferGeometry(new gb(a,b));this.mergeVertices()}function gb(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,k=d*d+e*e;if(Math.abs(d*g-e*f)>Number.EPSILON){var l=Math.sqrt(k),m=Math.sqrt(f*f+g*g);k=b.x-e/l;b=b.y+d/l;g=((c.x-g/m-k)*g-(c.y+f/m-b)*f)/(d*g-e*f);f=k+d*g-a.x;d=b+e*g-a.y;e=f*f+d*d;if(2>=e)return new w(f,d);e=Math.sqrt(e/2)}else a=!1,d>Number.EPSILON?f>Number.EPSILON&&(a=!0):d<-Number.EPSILON?
-f<-Number.EPSILON&&(a=!0):Math.sign(e)===Math.sign(g)&&(a=!0),a?(f=-e,e=Math.sqrt(k)):(f=d,d=e,e=Math.sqrt(k/2));return new w(f/e,d/e)}function k(a,b){for(J=a.length;0<=--J;){var c=J;var f=J-1;0>f&&(f=a.length-1);var g,k=C+2*E;for(g=0;g<k;g++){var l=Y*g,m=Y*(g+1),h=b+f+l,p=b+f+m;m=b+c+m;r(b+c+l);r(h);r(m);r(h);r(p);r(m);l=e.length/3;l=G.generateSideWallUV(d,e,l-6,l-3,l-2,l-1);u(l[0]);u(l[1]);u(l[3]);u(l[1]);u(l[2]);u(l[3])}}}function l(a,b,c){y.push(a);y.push(b);y.push(c)}function h(a,b,c){r(a);r(b);
-r(c);a=e.length/3;a=G.generateTopUV(d,e,a-3,a-2,a-1);u(a[0]);u(a[1]);u(a[2])}function r(a){e.push(y[3*a]);e.push(y[3*a+1]);e.push(y[3*a+2])}function u(a){f.push(a.x);f.push(a.y)}var y=[],v=void 0!==b.curveSegments?b.curveSegments:12,C=void 0!==b.steps?b.steps:1,W=void 0!==b.depth?b.depth:100,A=void 0!==b.bevelEnabled?b.bevelEnabled:!0,z=void 0!==b.bevelThickness?b.bevelThickness:6,B=void 0!==b.bevelSize?b.bevelSize:z-2,D=void 0!==b.bevelOffset?b.bevelOffset:0,E=void 0!==b.bevelSegments?b.bevelSegments:
-3,F=b.extrudePath,G=void 0!==b.UVGenerator?b.UVGenerator:Ok;void 0!==b.amount&&(console.warn("THREE.ExtrudeBufferGeometry: amount has been renamed to depth."),W=b.amount);var I=!1;if(F){var K=F.getSpacedPoints(C);I=!0;A=!1;var L=F.computeFrenetFrames(C,!1);var M=new n;var P=new n;var N=new n}A||(D=B=z=E=0);var O;v=a.extractPoints(v);a=v.shape;var S=v.holes;if(!tb.isClockWise(a)){a=a.reverse();var ha=0;for(O=S.length;ha<O;ha++){var xa=S[ha];tb.isClockWise(xa)&&(S[ha]=xa.reverse())}}var Z=tb.triangulateShape(a,
-S),V=a;ha=0;for(O=S.length;ha<O;ha++)xa=S[ha],a=a.concat(xa);var X,Y=a.length,T,ca=Z.length;v=[];var J=0;var Q=V.length;var U=Q-1;for(X=J+1;J<Q;J++,U++,X++)U===Q&&(U=0),X===Q&&(X=0),v[J]=g(V[J],V[U],V[X]);F=[];var da=v.concat();ha=0;for(O=S.length;ha<O;ha++){xa=S[ha];var ba=[];J=0;Q=xa.length;U=Q-1;for(X=J+1;J<Q;J++,U++,X++)U===Q&&(U=0),X===Q&&(X=0),ba[J]=g(xa[J],xa[U],xa[X]);F.push(ba);da=da.concat(ba)}for(U=0;U<E;U++){Q=U/E;var ea=z*Math.cos(Q*Math.PI/2);X=B*Math.sin(Q*Math.PI/2)+D;J=0;for(Q=V.length;J<
-Q;J++){var R=c(V[J],v[J],X);l(R.x,R.y,-ea)}ha=0;for(O=S.length;ha<O;ha++)for(xa=S[ha],ba=F[ha],J=0,Q=xa.length;J<Q;J++)R=c(xa[J],ba[J],X),l(R.x,R.y,-ea)}X=B+D;for(J=0;J<Y;J++)R=A?c(a[J],da[J],X):a[J],I?(P.copy(L.normals[0]).multiplyScalar(R.x),M.copy(L.binormals[0]).multiplyScalar(R.y),N.copy(K[0]).add(P).add(M),l(N.x,N.y,N.z)):l(R.x,R.y,0);for(Q=1;Q<=C;Q++)for(J=0;J<Y;J++)R=A?c(a[J],da[J],X):a[J],I?(P.copy(L.normals[Q]).multiplyScalar(R.x),M.copy(L.binormals[Q]).multiplyScalar(R.y),N.copy(K[Q]).add(P).add(M),
-l(N.x,N.y,N.z)):l(R.x,R.y,W/C*Q);for(U=E-1;0<=U;U--){Q=U/E;ea=z*Math.cos(Q*Math.PI/2);X=B*Math.sin(Q*Math.PI/2)+D;J=0;for(Q=V.length;J<Q;J++)R=c(V[J],v[J],X),l(R.x,R.y,W+ea);ha=0;for(O=S.length;ha<O;ha++)for(xa=S[ha],ba=F[ha],J=0,Q=xa.length;J<Q;J++)R=c(xa[J],ba[J],X),I?l(R.x,R.y+K[C-1].y,K[C-1].x+ea):l(R.x,R.y,W+ea)}(function(){var a=e.length/3;if(A){var b=0*Y;for(J=0;J<ca;J++)T=Z[J],h(T[2]+b,T[1]+b,T[0]+b);b=Y*(C+2*E);for(J=0;J<ca;J++)T=Z[J],h(T[0]+b,T[1]+b,T[2]+b)}else{for(J=0;J<ca;J++)T=Z[J],
-h(T[2],T[1],T[0]);for(J=0;J<ca;J++)T=Z[J],h(T[0]+Y*C,T[1]+Y*C,T[2]+Y*C)}d.addGroup(a,e.length/3-a,0)})();(function(){var a=e.length/3,b=0;k(V,b);b+=V.length;ha=0;for(O=S.length;ha<O;ha++)xa=S[ha],k(xa,b),b+=xa.length;d.addGroup(a,e.length/3-a,1)})()}A.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,k=a.length;g<k;g++)c(a[g]);this.setAttribute("position",new E(e,3));this.setAttribute("uv",new E(f,2));this.computeVertexNormals()}
-function hi(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 je(a,b){L.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 L;a=c.generateShapes(a,b.size);b.depth=void 0!==b.height?b.height:50;void 0===b.bevelThickness&&(b.bevelThickness=10);void 0===b.bevelSize&&(b.bevelSize=8);void 0===b.bevelEnabled&&(b.bevelEnabled=!1);gb.call(this,a,b);this.type="TextBufferGeometry"}function ke(a,b,c,d,e,f,g){L.call(this);this.type="SphereGeometry";this.parameters={radius:a,widthSegments:b,heightSegments:c,phiStart:d,phiLength:e,thetaStart:f,thetaLength:g};this.fromBufferGeometry(new hc(a,b,c,d,e,f,g));this.mergeVertices()}function hc(a,
-b,c,d,e,f,g){A.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 k=Math.min(f+g,Math.PI),l,m,h=0,p=[],q=new n,t=new n,r=[],u=[],y=[],v=[];for(m=0;m<=c;m++){var w=[],W=m/c,B=0;0==m&&0==f?B=.5/b:m==c&&k==Math.PI&&(B=-.5/b);for(l=0;l<=b;l++){var z=
-l/b;q.x=-a*Math.cos(d+z*e)*Math.sin(f+W*g);q.y=a*Math.cos(f+W*g);q.z=a*Math.sin(d+z*e)*Math.sin(f+W*g);u.push(q.x,q.y,q.z);t.copy(q).normalize();y.push(t.x,t.y,t.z);v.push(z+B,1-W);w.push(h++)}p.push(w)}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)&&r.push(a,d,g),(m!==c-1||k<Math.PI)&&r.push(d,e,g);this.setIndex(r);this.setAttribute("position",new E(u,3));this.setAttribute("normal",new E(y,3));this.setAttribute("uv",new E(v,2))}function le(a,b,c,d,e,
-f){L.call(this);this.type="RingGeometry";this.parameters={innerRadius:a,outerRadius:b,thetaSegments:c,phiSegments:d,thetaStart:e,thetaLength:f};this.fromBufferGeometry(new $c(a,b,c,d,e,f));this.mergeVertices()}function $c(a,b,c,d,e,f){A.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=
-[],k=[],l=[],m=[],h=a,p=(b-a)/d,q=new n,t=new w,r,u;for(r=0;r<=d;r++){for(u=0;u<=c;u++)a=e+u/c*f,q.x=h*Math.cos(a),q.y=h*Math.sin(a),k.push(q.x,q.y,q.z),l.push(0,0,1),t.x=(q.x/b+1)/2,t.y=(q.y/b+1)/2,m.push(t.x,t.y);h+=p}for(r=0;r<d;r++)for(b=r*(c+1),u=0;u<c;u++)a=u+b,e=a+c+1,f=a+c+2,h=a+1,g.push(a,e,h),g.push(e,f,h);this.setIndex(g);this.setAttribute("position",new E(k,3));this.setAttribute("normal",new E(l,3));this.setAttribute("uv",new E(m,2))}function me(a,b,c,d){L.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){A.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=P.clamp(d,0,2*Math.PI);var e=[],f=[],g=[],k=1/b,l=new n,m=new w,h;for(h=0;h<=b;h++){var p=c+h*k*d;var q=Math.sin(p),t=Math.cos(p);for(p=0;p<=a.length-1;p++)l.x=a[p].x*q,l.y=a[p].y,l.z=a[p].x*t,f.push(l.x,l.y,
-l.z),m.x=h/b,m.y=p/(a.length-1),g.push(m.x,m.y)}for(h=0;h<b;h++)for(p=0;p<a.length-1;p++)c=p+h*a.length,k=c+a.length,l=c+a.length+1,m=c+1,e.push(c,k,m),e.push(k,l,m);this.setIndex(e);this.setAttribute("position",new E(f,3));this.setAttribute("uv",new E(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=h=0;h<a.length;h++,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 ic(a,b){L.call(this);this.type="ShapeGeometry";"object"===typeof b&&(console.warn("THREE.ShapeGeometry: Options parameter has been removed."),b=b.curveSegments);this.parameters={shapes:a,curveSegments:b};this.fromBufferGeometry(new jc(a,b));this.mergeVertices()}function jc(a,b){function c(a){var c,k=e.length/3;a=a.extractPoints(b);var m=a.shape,h=a.holes;!1===tb.isClockWise(m)&&(m=m.reverse());a=0;for(c=h.length;a<c;a++){var x=h[a];
-!0===tb.isClockWise(x)&&(h[a]=x.reverse())}var n=tb.triangulateShape(m,h);a=0;for(c=h.length;a<c;a++)x=h[a],m=m.concat(x);a=0;for(c=m.length;a<c;a++)x=m[a],e.push(x.x,x.y,0),f.push(0,0,1),g.push(x.x,x.y);a=0;for(c=n.length;a<c;a++)m=n[a],d.push(m[0]+k,m[1]+k,m[2]+k),l+=3}A.call(this);this.type="ShapeBufferGeometry";this.parameters={shapes:a,curveSegments:b};b=b||12;var d=[],e=[],f=[],g=[],k=0,l=0;if(!1===Array.isArray(a))c(a);else for(var m=0;m<a.length;m++)c(a[m]),this.addGroup(k,l,m),k+=l,l=0;this.setIndex(d);
-this.setAttribute("position",new E(e,3));this.setAttribute("normal",new E(f,3));this.setAttribute("uv",new E(g,2))}function ii(a,b){b.shapes=[];if(Array.isArray(a))for(var c=0,d=a.length;c<d;c++)b.shapes.push(a[c].uuid);else b.shapes.push(a.uuid);return b}function bd(a,b){A.call(this);this.type="EdgesGeometry";this.parameters={thresholdAngle:b};var c=[];b=Math.cos(P.DEG2RAD*(void 0!==b?b:1));var d=[0,0],e={},f=["a","b","c"];if(a.isBufferGeometry){var g=new L;g.fromBufferGeometry(a)}else g=a.clone();
-g.mergeVertices();g.computeFaceNormals();a=g.vertices;g=g.faces;for(var k=0,l=g.length;k<l;k++)for(var m=g[k],h=0;3>h;h++){var p=m[f[h]];var q=m[f[(h+1)%3]];d[0]=Math.min(p,q);d[1]=Math.max(p,q);p=d[0]+","+d[1];void 0===e[p]?e[p]={index1:d[0],index2:d[1],face1:k,face2:void 0}:e[p].face2=k}for(p in e)if(d=e[p],void 0===d.face2||g[d.face1].normal.dot(g[d.face2].normal)<=b)f=a[d.index1],c.push(f.x,f.y,f.z),f=a[d.index2],c.push(f.x,f.y,f.z);this.setAttribute("position",new E(c,3))}function kc(a,b,c,d,
-e,f,g,k){L.call(this);this.type="CylinderGeometry";this.parameters={radiusTop:a,radiusBottom:b,height:c,radialSegments:d,heightSegments:e,openEnded:f,thetaStart:g,thetaLength:k};this.fromBufferGeometry(new ub(a,b,c,d,e,f,g,k));this.mergeVertices()}function ub(a,b,c,d,e,f,g,k){function l(c){var e,f=new w,l=new n,x=0,u=!0===c?a:b,C=!0===c?1:-1;var A=r;for(e=1;e<=d;e++)p.push(0,y*C,0),q.push(0,C,0),t.push(.5,.5),r++;var B=r;for(e=0;e<=d;e++){var E=e/d*k+g,D=Math.cos(E);E=Math.sin(E);l.x=u*E;l.y=y*C;
-l.z=u*D;p.push(l.x,l.y,l.z);q.push(0,C,0);f.x=.5*D+.5;f.y=.5*E*C+.5;t.push(f.x,f.y);r++}for(e=0;e<d;e++)f=A+e,l=B+e,!0===c?h.push(l,l+1,f):h.push(l+1,l,f),x+=3;m.addGroup(v,x,!0===c?1:2);v+=x}A.call(this);this.type="CylinderBufferGeometry";this.parameters={radiusTop:a,radiusBottom:b,height:c,radialSegments:d,heightSegments:e,openEnded:f,thetaStart:g,thetaLength:k};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;k=void 0!==
-k?k:2*Math.PI;var h=[],p=[],q=[],t=[],r=0,u=[],y=c/2,v=0;(function(){var f,l,x=new n,z=new n,w=0,A=(b-a)/c;for(l=0;l<=e;l++){var B=[],E=l/e,G=E*(b-a)+a;for(f=0;f<=d;f++){var D=f/d,F=D*k+g,I=Math.sin(F);F=Math.cos(F);z.x=G*I;z.y=-E*c+y;z.z=G*F;p.push(z.x,z.y,z.z);x.set(I,A,F).normalize();q.push(x.x,x.y,x.z);t.push(D,1-E);B.push(r++)}u.push(B)}for(f=0;f<d;f++)for(l=0;l<e;l++)x=u[l+1][f],z=u[l+1][f+1],A=u[l][f+1],h.push(u[l][f],x,A),h.push(x,z,A),w+=6;m.addGroup(v,w,0);v+=w})();!1===f&&(0<a&&l(!0),0<
-b&&l(!1));this.setIndex(h);this.setAttribute("position",new E(p,3));this.setAttribute("normal",new E(q,3));this.setAttribute("uv",new E(t,2))}function ne(a,b,c,d,e,f,g){kc.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 oe(a,b,c,d,e,f,g){ub.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 pe(a,b,c,d){L.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){A.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=[],k=[],l,m=new n,h=new w;f.push(0,0,0);g.push(0,0,1);k.push(.5,
-.5);var p=0;for(l=3;p<=b;p++,l+=3){var q=c+p/b*d;m.x=a*Math.cos(q);m.y=a*Math.sin(q);f.push(m.x,m.y,m.z);g.push(0,0,1);h.x=(f[l]/a+1)/2;h.y=(f[l+1]/a+1)/2;k.push(h.x,h.y)}for(l=1;l<=b;l++)e.push(l,l+1,0);this.setIndex(e);this.setAttribute("position",new E(f,3));this.setAttribute("normal",new E(g,3));this.setAttribute("uv",new E(k,2))}function lc(a){K.call(this);this.type="ShadowMaterial";this.color=new B(0);this.transparent=!0;this.setValues(a)}function vb(a){qa.call(this,a);this.type="RawShaderMaterial"}
-function hb(a){K.call(this);this.defines={STANDARD:""};this.type="MeshStandardMaterial";this.color=new B(16777215);this.roughness=1;this.metalness=0;this.lightMap=this.map=null;this.lightMapIntensity=1;this.aoMap=null;this.aoMapIntensity=1;this.emissive=new B(0);this.emissiveIntensity=1;this.bumpMap=this.emissiveMap=null;this.bumpScale=1;this.normalMap=null;this.normalMapType=0;this.normalScale=new w(1,1);this.displacementMap=null;this.displacementScale=1;this.displacementBias=0;this.envMap=this.alphaMap=
-this.metalnessMap=this.roughnessMap=null;this.envMapIntensity=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 mc(a){hb.call(this);this.defines={STANDARD:"",PHYSICAL:""};this.type="MeshPhysicalMaterial";this.reflectivity=.5;this.clearcoatRoughness=this.clearcoat=0;this.sheen=null;this.clearcoatNormalScale=new w(1,1);this.clearcoatNormalMap=null;
-this.transparency=0;this.setValues(a)}function Kb(a){K.call(this);this.type="MeshPhongMaterial";this.color=new B(16777215);this.specular=new B(1118481);this.shininess=30;this.lightMap=this.map=null;this.lightMapIntensity=1;this.aoMap=null;this.aoMapIntensity=1;this.emissive=new B(0);this.emissiveIntensity=1;this.bumpMap=this.emissiveMap=null;this.bumpScale=1;this.normalMap=null;this.normalMapType=0;this.normalScale=new w(1,1);this.displacementMap=null;this.displacementScale=1;this.displacementBias=
-0;this.envMap=this.alphaMap=this.specularMap=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 nc(a){K.call(this);this.defines={TOON:""};this.type="MeshToonMaterial";this.color=new B(16777215);this.specular=new B(1118481);this.shininess=30;this.lightMap=this.gradientMap=this.map=null;this.lightMapIntensity=1;
-this.aoMap=null;this.aoMapIntensity=1;this.emissive=new B(0);this.emissiveIntensity=1;this.bumpMap=this.emissiveMap=null;this.bumpScale=1;this.normalMap=null;this.normalMapType=0;this.normalScale=new w(1,1);this.displacementMap=null;this.displacementScale=1;this.displacementBias=0;this.alphaMap=this.specularMap=null;this.wireframe=!1;this.wireframeLinewidth=1;this.wireframeLinejoin=this.wireframeLinecap="round";this.morphNormals=this.morphTargets=this.skinning=!1;this.setValues(a)}function oc(a){K.call(this);
-this.type="MeshNormalMaterial";this.bumpMap=null;this.bumpScale=1;this.normalMap=null;this.normalMapType=0;this.normalScale=new w(1,1);this.displacementMap=null;this.displacementScale=1;this.displacementBias=0;this.wireframe=!1;this.wireframeLinewidth=1;this.morphNormals=this.morphTargets=this.skinning=this.fog=!1;this.setValues(a)}function pc(a){K.call(this);this.type="MeshLambertMaterial";this.color=new B(16777215);this.lightMap=this.map=null;this.lightMapIntensity=1;this.aoMap=null;this.aoMapIntensity=
-1;this.emissive=new B(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 qc(a){K.call(this);this.defines={MATCAP:""};this.type="MeshMatcapMaterial";this.color=new B(16777215);this.bumpMap=this.map=this.matcap=null;this.bumpScale=
-1;this.normalMap=null;this.normalMapType=0;this.normalScale=new w(1,1);this.displacementMap=null;this.displacementScale=1;this.displacementBias=0;this.alphaMap=null;this.morphNormals=this.morphTargets=this.skinning=!1;this.setValues(a)}function rc(a){ka.call(this);this.type="LineDashedMaterial";this.scale=1;this.dashSize=3;this.gapSize=1;this.setValues(a)}function Ma(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){Ma.call(this,a,b,c,d);this._offsetNext=this._weightNext=this._offsetPrev=this._weightPrev=-0}function qe(a,b,c,d){Ma.call(this,a,b,c,d)}function Ye(a,b,c,d){Ma.call(this,a,b,c,d)}function ua(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=ea.convertArray(b,this.TimeBufferType);this.values=ea.convertArray(c,this.ValueBufferType);
-this.setInterpolation(d||this.DefaultInterpolation)}function Ze(a,b,c){ua.call(this,a,b,c)}function $e(a,b,c,d){ua.call(this,a,b,c,d)}function dd(a,b,c,d){ua.call(this,a,b,c,d)}function af(a,b,c,d){Ma.call(this,a,b,c,d)}function re(a,b,c,d){ua.call(this,a,b,c,d)}function bf(a,b,c,d){ua.call(this,a,b,c,d)}function ed(a,b,c,d){ua.call(this,a,b,c,d)}function Ra(a,b,c){this.name=a;this.tracks=c;this.duration=void 0!==b?b:-1;this.uuid=P.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 re;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=[];ea.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 xg(a,b,c){var d=this,e=!1,f=0,g=0,k=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 k?k(a):a};this.setURLModifier=function(a){k=
-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 V(a){this.manager=void 0!==a?a:ji;this.crossOrigin="anonymous";this.resourcePath=this.path=""}function Sa(a){V.call(this,a)}function yg(a){V.call(this,a)}function zg(a){V.call(this,a)}function cf(a){V.call(this,
-a)}function fd(a){V.call(this,a)}function df(a){V.call(this,a)}function ef(a){V.call(this,a)}function I(){this.type="Curve";this.arcLengthDivisions=200}function Na(a,b,c,d,e,f,g,k){I.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=k||0}function gd(a,b,c,d,e,f){Na.call(this,a,b,c,c,d,e,f);this.type="ArcCurve"}function Ag(){var a=0,b=0,c=0,d=0;return{initCatmullRom:function(e,
-f,g,k,l){e=l*(g-e);k=l*(k-f);a=f;b=e;c=-3*f+3*g-2*e-k;d=2*f-2*g+e+k},initNonuniformCatmullRom:function(e,f,g,k,l,m,h){e=((f-e)/l-(g-e)/(l+m)+(g-f)/m)*m;k=((g-f)/m-(k-f)/(m+h)+(k-g)/h)*m;a=f;b=e;c=-3*f+3*g-2*e-k;d=2*f-2*g+e+k},calc:function(e){var f=e*e;return a+b*e+c*f+d*f*e}}}function Aa(a,b,c,d){I.call(this);this.type="CatmullRomCurve3";this.points=a||[];this.closed=b||!1;this.curveType=c||"centripetal";this.tension=d||.5}function ki(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 se(a,b,c,d){var e=1-a;return e*e*b+2*(1-a)*a*c+a*a*d}function te(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 Xa(a,b,c,d){I.call(this);this.type="CubicBezierCurve";this.v0=a||new w;this.v1=b||new w;this.v2=c||new w;this.v3=d||new w}function ib(a,b,c,d){I.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 Ea(a,b){I.call(this);this.type="LineCurve";this.v1=a||
-new w;this.v2=b||new w}function Ya(a,b){I.call(this);this.type="LineCurve3";this.v1=a||new n;this.v2=b||new n}function Za(a,b,c){I.call(this);this.type="QuadraticBezierCurve";this.v0=a||new w;this.v1=b||new w;this.v2=c||new w}function jb(a,b,c){I.call(this);this.type="QuadraticBezierCurve3";this.v0=a||new n;this.v1=b||new n;this.v2=c||new n}function $a(a){I.call(this);this.type="SplineCurve";this.points=a||[]}function wb(){I.call(this);this.type="CurvePath";this.curves=[];this.autoClose=!1}function ab(a){wb.call(this);
-this.type="Path";this.currentPoint=new w;a&&this.setFromPoints(a)}function Lb(a){ab.call(this,a);this.uuid=P.generateUUID();this.type="Shape";this.holes=[]}function ba(a,b){D.call(this);this.type="Light";this.color=new B(a);this.intensity=void 0!==b?b:1;this.receiveShadow=void 0}function ff(a,b,c){ba.call(this,a,c);this.type="HemisphereLight";this.castShadow=void 0;this.position.copy(D.DefaultUp);this.updateMatrix();this.groundColor=new B(b)}function kb(a){this.camera=a;this.bias=0;this.radius=1;
-this.mapSize=new w(512,512);this.mapPass=this.map=null;this.matrix=new O;this._frustum=new Hc;this._frameExtents=new w(1,1);this._viewportCount=1;this._viewports=[new ia(0,0,1,1)]}function gf(){kb.call(this,new da(50,1,.5,500))}function hf(a,b,c,d,e,f){ba.call(this,a,b);this.type="SpotLight";this.position.copy(D.DefaultUp);this.updateMatrix();this.target=new D;Object.defineProperty(this,"power",{get:function(){return this.intensity*Math.PI},set:function(a){this.intensity=a/Math.PI}});this.distance=
-void 0!==c?c:0;this.angle=void 0!==d?d:Math.PI/3;this.penumbra=void 0!==e?e:0;this.decay=void 0!==f?f:1;this.shadow=new gf}function Bg(){kb.call(this,new da(90,1,.5,500));this._frameExtents=new w(4,2);this._viewportCount=6;this._viewports=[new ia(2,1,1,1),new ia(0,1,1,1),new ia(3,1,1,1),new ia(1,1,1,1),new ia(3,0,1,1),new ia(1,0,1,1)];this._cubeDirections=[new n(1,0,0),new n(-1,0,0),new n(0,0,1),new n(0,0,-1),new n(0,1,0),new n(0,-1,0)];this._cubeUps=[new n(0,1,0),new n(0,1,0),new n(0,1,0),new n(0,
-1,0),new n(0,0,1),new n(0,0,-1)]}function jf(a,b,c,d){ba.call(this,a,b);this.type="PointLight";Object.defineProperty(this,"power",{get:function(){return 4*this.intensity*Math.PI},set:function(a){this.intensity=a/(4*Math.PI)}});this.distance=void 0!==c?c:0;this.decay=void 0!==d?d:1;this.shadow=new Bg}function hd(a,b,c,d,e,f){eb.call(this);this.type="OrthographicCamera";this.zoom=1;this.view=null;this.left=void 0!==a?a:-1;this.right=void 0!==b?b:1;this.top=void 0!==c?c:1;this.bottom=void 0!==d?d:-1;
-this.near=void 0!==e?e:.1;this.far=void 0!==f?f:2E3;this.updateProjectionMatrix()}function kf(){kb.call(this,new hd(-5,5,5,-5,.5,500))}function lf(a,b){ba.call(this,a,b);this.type="DirectionalLight";this.position.copy(D.DefaultUp);this.updateMatrix();this.target=new D;this.shadow=new kf}function mf(a,b){ba.call(this,a,b);this.type="AmbientLight";this.castShadow=void 0}function nf(a,b,c,d){ba.call(this,a,b);this.type="RectAreaLight";this.width=void 0!==c?c:10;this.height=void 0!==d?d:10}function of(a){V.call(this,
-a);this.textures={}}function pf(){A.call(this);this.type="InstancedBufferGeometry";this.maxInstancedCount=void 0}function qf(a,b,c,d){"number"===typeof c&&(d=c,c=!1,console.error("THREE.InstancedBufferAttribute: The constructor now expects normalized as the third argument."));M.call(this,a,b,c);this.meshPerAttribute=d||1}function rf(a){V.call(this,a)}function sf(a){V.call(this,a)}function Cg(a){"undefined"===typeof createImageBitmap&&console.warn("THREE.ImageBitmapLoader: createImageBitmap() not supported.");
-"undefined"===typeof fetch&&console.warn("THREE.ImageBitmapLoader: fetch() not supported.");V.call(this,a);this.options=void 0}function Dg(){this.type="ShapePath";this.color=new B;this.subPaths=[];this.currentPath=null}function Eg(a){this.type="Font";this.data=a}function Fg(a){V.call(this,a)}function tf(a){V.call(this,a)}function uf(){this.coefficients=[];for(var a=0;9>a;a++)this.coefficients.push(new n)}function bb(a,b){ba.call(this,void 0,b);this.sh=void 0!==a?a:new uf}function Gg(a,b,c){bb.call(this,
-void 0,c);a=(new B).set(a);c=(new B).set(b);b=new n(a.r,a.g,a.b);a=new n(c.r,c.g,c.b);c=Math.sqrt(Math.PI);var d=c*Math.sqrt(.75);this.sh.coefficients[0].copy(b).add(a).multiplyScalar(c);this.sh.coefficients[1].copy(b).sub(a).multiplyScalar(d)}function Hg(a,b){bb.call(this,void 0,b);a=(new B).set(a);this.sh.coefficients[0].set(a.r,a.g,a.b).multiplyScalar(2*Math.sqrt(Math.PI))}function li(){this.type="StereoCamera";this.aspect=1;this.eyeSep=.064;this.cameraL=new da;this.cameraL.layers.enable(1);this.cameraL.matrixAutoUpdate=
-!1;this.cameraR=new da;this.cameraR.layers.enable(2);this.cameraR.matrixAutoUpdate=!1;this._cache={focus:null,fov:null,aspect:null,near:null,far:null,zoom:null,eyeSep:null}}function Ig(a){this.autoStart=void 0!==a?a:!0;this.elapsedTime=this.oldTime=this.startTime=0;this.running=!1}function Jg(){D.call(this);this.type="AudioListener";this.context=Kg.getContext();this.gain=this.context.createGain();this.gain.connect(this.context.destination);this.filter=null;this.timeDelta=0;this._clock=new Ig}function id(a){D.call(this);
-this.type="Audio";this.listener=a;this.context=a.context;this.gain=this.context.createGain();this.gain.connect(a.getInput());this.autoplay=!1;this.buffer=null;this.detune=0;this.loop=!1;this.offset=this.loopEnd=this.loopStart=0;this.duration=void 0;this.playbackRate=1;this.isPlaying=!1;this.hasPlaybackControl=!0;this.sourceType="empty";this._pausedAt=this._startedAt=0;this.filters=[]}function Lg(a){id.call(this,a);this.panner=this.context.createPanner();this.panner.panningModel="HRTF";this.panner.connect(this.gain)}
-function Mg(a,b){this.analyser=a.context.createAnalyser();this.analyser.fftSize=void 0!==b?b:2048;this.data=new Uint8Array(this.analyser.frequencyBinCount);a.getOutput().connect(this.analyser)}function Ng(a,b,c){this.binding=a;this.valueSize=c;a=Float64Array;switch(b){case "quaternion":b=this._slerp;break;case "string":case "bool":a=Array;b=this._select;break;default:b=this._lerp}this.buffer=new a(4*c);this._mixBufferRegion=b;this.referenceCount=this.useCount=this.cumulativeWeight=0}function mi(a,
-b,c){c=c||Ba.parseTrackName(b);this._targetGroup=a;this._bindings=a.subscribe_(b,c)}function Ba(a,b,c){this.path=b;this.parsedPath=c||Ba.parseTrackName(b);this.node=Ba.findNode(a,this.parsedPath.nodeName)||a;this.rootNode=a}function ni(){this.uuid=P.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 oi(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 Og(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 Pg(a,b,c){sb.call(this,a,b);this.meshPerAttribute=c||1}function pi(a,b,c,d){this.ray=new Wb(a,b);this.near=c||0;this.far=d||Infinity;this.camera=null;this.params={Mesh:{},Line:{},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 Qg(a,b,c,d){if(!1!==a.visible&&
-(a.raycast(b,c),!0===d)){a=a.children;d=0;for(var e=a.length;d<e;d++)Qg(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 Rg(a,b){this.min=void 0!==a?a:new w(Infinity,Infinity);this.max=void 0!==b?b:new w(-Infinity,-Infinity)}function Sg(a,b){this.start=void 0!==a?a:new n;this.end=void 0!==b?b:new n}function ue(a){D.call(this);
-this.material=a;this.render=function(){}}function jd(a,b){D.call(this);this.light=a;this.light.updateMatrixWorld();this.matrix=a.matrixWorld;this.matrixAutoUpdate=!1;this.color=b;a=new A;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 E(b,3));b=new ka({fog:!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 kd(a){for(var b=ti(a),c=new A,d=[],e=[],f=new B(0,0,1),g=new B(0,1,0),k=0;k<b.length;k++){var l=b[k];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 E(d,3));c.setAttribute("color",new E(e,3));d=new ka({vertexColors:2,depthTest:!1,depthWrite:!1,transparent:!0});ma.call(this,c,d);this.root=a;this.bones=b;this.matrix=
-a.matrixWorld;this.matrixAutoUpdate=!1}function ld(a,b,c){this.light=a;this.light.updateMatrixWorld();this.color=c;a=new hc(b,4,2);b=new Pa({wireframe:!0,fog:!1});ca.call(this,a,b);this.matrix=this.light.matrixWorld;this.matrixAutoUpdate=!1;this.update()}function md(a,b,c){D.call(this);this.light=a;this.light.updateMatrixWorld();this.matrix=a.matrixWorld;this.matrixAutoUpdate=!1;this.color=c;a=new dc(b);a.rotateY(.5*Math.PI);this.material=new Pa({wireframe:!0,fog:!1});void 0===this.color&&(this.material.vertexColors=
-2);b=a.getAttribute("position");b=new Float32Array(3*b.count);a.setAttribute("color",new M(b,3));this.add(new ca(a,this.material));this.update()}function wf(a,b,c,d){a=a||10;b=b||10;c=new B(void 0!==c?c:4473924);d=new B(void 0!==d?d:8947848);var e=b/2,f=a/b,g=a/2;a=[];for(var k=[],l=0,m=0,h=-g;l<=b;l++,h+=f){a.push(-g,0,h,g,0,h);a.push(h,0,-g,h,0,g);var p=l===e?c:d;p.toArray(k,m);m+=3;p.toArray(k,m);m+=3;p.toArray(k,m);m+=3;p.toArray(k,m);m+=3}b=new A;b.setAttribute("position",new E(a,3));b.setAttribute("color",
-new E(k,3));c=new ka({vertexColors:2});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 B(void 0!==e?e:4473924);f=new B(void 0!==f?f:8947848);var g=[],k=[],l;for(l=0;l<=b;l++){var m=l/b*2*Math.PI;var h=Math.sin(m)*a;m=Math.cos(m)*a;g.push(0,0,0);g.push(h,0,m);var p=l&1?e:f;k.push(p.r,p.g,p.b);k.push(p.r,p.g,p.b)}for(l=0;l<=c;l++){p=l&1?e:f;var q=a-a/c*l;for(b=0;b<d;b++)m=b/d*2*Math.PI,h=Math.sin(m)*q,m=Math.cos(m)*q,g.push(h,0,m),k.push(p.r,p.g,p.b),m=(b+1)/d*2*Math.PI,
-h=Math.sin(m)*q,m=Math.cos(m)*q,g.push(h,0,m),k.push(p.r,p.g,p.b)}a=new A;a.setAttribute("position",new E(g,3));a.setAttribute("color",new E(k,3));g=new ka({vertexColors:2});ma.call(this,a,g)}function nd(a,b,c){D.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 A;a.setAttribute("position",new E([-b,b,0,b,b,0,b,-b,0,-b,-b,0,-b,b,0],3));b=new ka({fog:!1});this.lightPlane=new La(a,b);this.add(this.lightPlane);
-a=new A;a.setAttribute("position",new E([0,0,0,0,0,1],3));this.targetLine=new La(a,b);this.add(this.targetLine);this.update()}function ve(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===k[a]&&(k[a]=[]);k[a].push(f.length/3-1)}var d=new A,e=new ka({color:16777215,vertexColors:1}),f=[],g=[],k={},l=new B(16755200),m=new B(16711680),h=new B(43775),p=new B(16777215),q=new B(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",h);b("u2","u3",h);b("u3","u1",h);b("c","t",p);b("p","c",q);b("cn1","cn2",q);b("cn3","cn4",q);b("cf1","cf2",q);b("cf3","cf4",q);d.setAttribute("position",new E(f,3));d.setAttribute("color",new E(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=k;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 xb(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 A;d.setIndex(new M(a,1));d.setAttribute("position",new M(c,3));ma.call(this,d,new ka({color:b}));this.matrixAutoUpdate=!1;this.update()}
-function we(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 A;c.setIndex(new M(a,1));c.setAttribute("position",new E([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 ka({color:b}));this.geometry.computeBoundingSphere()}function xe(a,b,c){this.type="PlaneHelper";this.plane=a;this.size=void 0===b?1:b;a=void 0!==c?c:16776960;b=new A;b.setAttribute("position",new E([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();La.call(this,b,new ka({color:a}));b=new A;b.setAttribute("position",new E([1,1,1,-1,1,1,-1,-1,1,1,1,1,-1,-1,1,1,-1,1],3));b.computeBoundingSphere();this.add(new ca(b,new Pa({color:a,opacity:.2,transparent:!0,depthWrite:!1})))}function yb(a,b,c,d,e,f){D.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 A,zf.setAttribute("position",new E([0,0,0,0,1,0],3)),Tg=new ub(0,.5,1,5,1),Tg.translate(0,-.5,0));this.position.copy(b);this.line=new La(zf,new ka({color:d}));this.line.matrixAutoUpdate=!1;this.add(this.line);this.cone=new ca(Tg,new Pa({color:d}));this.cone.matrixAutoUpdate=!1;this.add(this.cone);this.setDirection(a);this.setLength(c,e,f)}function ye(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 A;a.setAttribute("position",new E(b,3));a.setAttribute("color",new E([1,0,0,1,.6,
-0,0,1,0,.6,1,0,0,0,1,0,.6,1],3));b=new ka({vertexColors:2});ma.call(this,a,b)}function Ug(a){Y=a;Vg(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();Y.setRenderTarget(Wg);a.scissorTest=!1;a.setSize(a.width,a.height)}function Vg(a){var b=new pb;b.add(new ca(ze[0],a));Y.compile(b,Xg)}function vi(a){a=
-new wa(3*lb,3*lb,a);a.texture.mapping=306;a.texture.name="PMREM.cubeUv";a.scissorTest=!0;return a}function Yg(a,b,c,d,e){a.viewport.set(b,c,d,e);a.scissor.set(b,c,d,e)}function xi(a){var b=Y.autoClear;Y.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]);Y.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 k=new pb;k.add(new ca(ze[d],Af));var l=Af.uniforms,m=Ci[c]-1;m=isFinite(e)?Math.PI/(2*m):2*Math.PI/39;var h=e/m,p=isFinite(e)?1+Math.floor(3*h):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 q=0,n=0;20>n;++n){var r=n/h;r=Math.exp(-r*r/2);e.push(r);0==n?q+=r:n<p&&(q+=2*r)}for(n=0;n<e.length;n++)e[n]/=q;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=mb[a.texture.encoding];l.outputEncoding.value=mb[a.texture.encoding];a=Ci[d];r=3*Math.max(0,lb-2*a);Yg(b,r,(0===d?0:2*lb)+2*a*(4<d?d-8+4:0),3*a,2*a);Y.setRenderTarget(b);Y.render(k,Xg)}function Di(){var a=new w(1,1);a=new vb({uniforms:{envMap:{value:null},texelSize:{value:a},inputEncoding:{value:mb[3E3]},outputEncoding:{value:mb[3E3]}},vertexShader:Zg(),fragmentShader:"\nprecision mediump float;\nprecision mediump int;\nvarying vec3 vOutputDirection;\nuniform sampler2D envMap;\nuniform vec2 texelSize;\n\n"+
+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)return c=b.get("WEBGL_compressed_texture_astc"),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 pg(a,b,c,d){wa.call(this,a,b,d);this.stencilBuffer=this.depthBuffer=
+!1;this.numViews=c}function Jk(a,b){function c(a){if(a.isArrayCamera)return a.cameras;x[0]=a;return x}function d(a){if(void 0===a.isArrayCamera)return!0;a=a.cameras;if(a.length>t)return!1;for(var b=1,c=a.length;b<c;b++)if(a[0].viewport.z!==a[b].viewport.z||a[0].viewport.w!==a[b].viewport.w)return!1;return!0}var e=a.extensions,f=a.properties,g,k,l,m,x,p,h,t=0;this.isAvailable=function(){if(void 0===h){var a=e.get("OVR_multiview2");if(h=null!==a&&!1===b.getContextAttributes().antialias)for(t=b.getParameter(a.MAX_VIEWS_OVR),
+g=new pg(0,0,2),p=new w,m=[],l=[],x=[],a=0;a<t;a++)m[a]=new O,l[a]=new za}return h};this.attachCamera=function(b){if(!1!==d(b)){(k=a.getRenderTarget())?p.set(k.width,k.height):a.getDrawingBufferSize(p);if(b.isArrayCamera){var c=b.cameras[0].viewport;g.setSize(c.z,c.w);g.setNumViews(b.cameras.length)}else g.setSize(p.x,p.y),g.setNumViews(2);a.setRenderTarget(g)}};this.detachCamera=function(c){if(g===a.getRenderTarget()){a.setRenderTarget(k);var d=g,e=d.numViews,l=f.get(d).__webglViewFramebuffers,m=
+d.width;d=d.height;if(c.isArrayCamera)for(var x=0;x<e;x++){var h=c.cameras[x].viewport,q=h.x,r=h.y,t=q+h.z;h=r+h.w;b.bindFramebuffer(36008,l[x]);b.blitFramebuffer(0,0,m,d,q,r,t,h,16384,9728)}else b.bindFramebuffer(36008,l[0]),b.blitFramebuffer(0,0,m,d,0,0,p.x,p.y,16384,9728)}};this.updateCameraProjectionMatricesUniform=function(a,d){a=c(a);for(var e=0;e<a.length;e++)m[e].copy(a[e].projectionMatrix);d.setValue(b,"projectionMatrices",m)};this.updateCameraViewMatricesUniform=function(a,d){a=c(a);for(var e=
+0;e<a.length;e++)m[e].copy(a[e].matrixWorldInverse);d.setValue(b,"viewMatrices",m)};this.updateObjectMatricesUniforms=function(a,d,e){d=c(d);for(var f=0;f<d.length;f++)m[f].multiplyMatrices(d[f].matrixWorldInverse,a.matrixWorld),l[f].getNormalMatrix(m[f]);e.setValue(b,"modelViewMatrices",m);e.setValue(b,"normalMatrices",l)}}function Qe(a){da.call(this);this.cameras=a||[]}function Nc(){D.call(this);this.type="Group"}function Zh(a,b){function c(a){var b=t.get(a.inputSource);b&&(b.targetRay&&b.targetRay.dispatchEvent({type:a.type}),
+b.grip&&b.grip.dispatchEvent({type:a.type}))}function d(){t.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)});t.clear();a.setFramebuffer(null);a.setRenderTarget(a.getRenderTarget());ra.stop();k.isPresenting=!1;k.dispatchEvent({type:"sessionend"})}function e(a){m=a;ra.setContext(l);ra.start();k.isPresenting=!0;k.dispatchEvent({type:"sessionstart"})}function f(a){for(var b=
+l.inputSources,c=0;c<h.length;c++)t.set(b[c],h[c]);for(c=0;c<a.removed.length;c++){b=a.removed[c];var d=t.get(b);d&&(d.targetRay&&d.targetRay.dispatchEvent({type:"disconnected",data:b}),d.grip&&d.grip.dispatchEvent({type:"disconnected",data:b}),t.delete(b))}for(c=0;c<a.added.length;c++)if(b=a.added[c],d=t.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 k=this,l=null,m=null,x="local-floor",p=null,h=[],t=new Map,r=new da;r.layers.enable(1);r.viewport=new ia;var u=new da;u.layers.enable(2);u.viewport=new ia;var y=new Qe([r,u]);y.layers.enable(1);y.layers.enable(2);var v=null,C=null;this.isPresenting=this.enabled=!1;this.getController=function(a){var b=h[a];void 0===b&&(b={},h[a]=b);void 0===b.targetRay&&(b.targetRay=new Nc,b.targetRay.matrixAutoUpdate=!1,b.targetRay.visible=!1);return b.targetRay};
+this.getControllerGrip=function(a){var b=h[a];void 0===b&&(b={},h[a]=b);void 0===b.grip&&(b.grip=new Nc,b.grip.matrixAutoUpdate=!1,b.grip.visible=!1);return b.grip};this.setFramebufferScaleFactor=function(){};this.setReferenceSpaceType=function(a){x=a};this.getReferenceSpace=function(){return m};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}),l.updateRenderState({baseLayer:a}),l.requestReferenceSpace(x).then(e),l.addEventListener("inputsourceschange",f))};var w=new n,ja=new n;this.getCamera=function(a){y.near=u.near=r.near=a.near;y.far=u.far=r.far=a.far;if(v!==y.near||C!==y.far)l.updateRenderState({depthNear:y.near,
+depthFar:y.far}),v=y.near,C=y.far;var b=a.parent,c=y.cameras;g(y,b);for(var d=0;d<c.length;d++)g(c[d],b);a.matrixWorld.copy(y.matrixWorld);a=a.children;d=0;for(b=a.length;d<b;d++)a[d].updateMatrixWorld(!0);w.setFromMatrixPosition(r.matrixWorld);ja.setFromMatrixPosition(u.matrixWorld);d=w.distanceTo(ja);var e=r.projectionMatrix.elements,f=u.projectionMatrix.elements,k=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=k*m;e=k*p;p=d/(-m+p);m=p*-m;
+r.matrixWorld.decompose(y.position,y.quaternion,y.scale);y.translateX(m);y.translateZ(p);y.matrixWorld.compose(y.position,y.quaternion,y.scale);y.matrixWorldInverse.getInverse(y.matrixWorld);k+=p;p=a+p;y.projectionMatrix.makePerspective(f-m,e+(d-m),b*a/p*k,c*a/p*k,k,p);return y};var z=null,ra=new Ah;ra.setAnimationLoop(function(b,c){p=c.getViewerPose(m);if(null!==p){var d=p.views,e=l.renderState.baseLayer;a.setFramebuffer(e.framebuffer);for(var f=0;f<d.length;f++){var g=d[f],k=e.getViewport(g),x=
+y.cameras[f];x.matrix.fromArray(g.transform.matrix);x.projectionMatrix.fromArray(g.projectionMatrix);x.viewport.set(k.x,k.y,k.width,k.height);0===f&&y.matrix.copy(x.matrix)}}d=l.inputSources;for(f=0;f<h.length;f++)e=h[f],g=d[f],x=k=null,g&&(e.targetRay&&(k=c.getPose(g.targetRaySpace,m),null!==k&&(e.targetRay.matrix.fromArray(k.transform.matrix),e.targetRay.matrix.decompose(e.targetRay.position,e.targetRay.rotation,e.targetRay.scale))),e.grip&&g.gripSpace&&(x=c.getPose(g.gripSpace,m),null!==x&&(e.grip.matrix.fromArray(x.transform.matrix),
+e.grip.matrix.decompose(e.grip.position,e.grip.rotation,e.grip.scale)))),e.targetRay&&(e.targetRay.visible=null!==k),e.grip&&(e.grip.visible=null!==x);z&&z(b,c)});this.setAnimationLoop=function(a){z=a};this.dispose=function(){}}function qg(a){var b;function c(){sa=new zj(H);Ia=new xj(H,sa,a);!1===Ia.isWebGL2&&(sa.get("WEBGL_depth_texture"),sa.get("OES_texture_float"),sa.get("OES_texture_half_float"),sa.get("OES_texture_half_float_linear"),sa.get("OES_standard_derivatives"),sa.get("OES_element_index_uint"),
+sa.get("ANGLE_instanced_arrays"));sa.get("OES_texture_float_linear");qa=new Yh(H,sa,Ia);aa=new Hk(H,sa,Ia);aa.scissor(Y.copy(R).multiplyScalar(Q).floor());aa.viewport(X.copy(ea).multiplyScalar(Q).floor());da=new Cj(H);S=new yk;U=new Ik(H,sa,aa,S,Ia,qa,da);oa=new uj(H,Ia);za=new Aj(H,oa,da);ta=new Fj(H,za,oa,da);Aa=new Ej(H);ua=new xk(A,sa,Ia);ya=new Bk;wa=new Gk;pa=new vj(A,aa,ta,z);Ba=new wj(H,sa,da,Ia);Da=new Bj(H,sa,da,Ia);da.programs=ua.programs;A.capabilities=Ia;A.extensions=sa;A.properties=
+S;A.renderLists=ya;A.state=aa;A.info=da}function d(a){a.preventDefault();console.log("THREE.WebGLRenderer: Context Lost.");I=!0}function e(){console.log("THREE.WebGLRenderer: Context Restored.");I=!1;c()}function f(a){a=a.target;a.removeEventListener("dispose",f);g(a);S.remove(a)}function g(a){var b=S.get(a).program;a.program=void 0;void 0!==b&&ua.releaseProgram(b)}function k(a,b){a.render(function(a){A.renderBufferImmediate(a,b)})}function l(a,b,c,d){if(!1!==a.visible){if(a.layers.test(b.layers))if(a.isGroup)c=
+a.renderOrder;else if(a.isLOD)!0===a.autoUpdate&&a.update(b);else if(a.isLight)G.pushLight(a),a.castShadow&&G.pushShadow(a);else if(a.isSprite){if(!a.frustumCulled||mg.intersectsSprite(a)){d&&Ib.setFromMatrixPosition(a.matrixWorld).applyMatrix4(Od);var e=ta.update(a),f=a.material;f.visible&&B.push(a,e,f,c,Ib.z,null)}}else if(a.isImmediateRenderObject)d&&Ib.setFromMatrixPosition(a.matrixWorld).applyMatrix4(Od),B.push(a,null,a.material,c,Ib.z,null);else if(a.isMesh||a.isLine||a.isPoints)if(a.isSkinnedMesh&&
+a.skeleton.frame!==da.render.frame&&(a.skeleton.update(),a.skeleton.frame=da.render.frame),!a.frustumCulled||mg.intersectsObject(a))if(d&&Ib.setFromMatrixPosition(a.matrixWorld).applyMatrix4(Od),e=ta.update(a),f=a.material,Array.isArray(f))for(var g=e.groups,k=0,m=g.length;k<m;k++){var p=g[k],x=f[p.materialIndex];x&&x.visible&&B.push(a,e,x,c,Ib.z,p)}else f.visible&&B.push(a,e,f,c,Ib.z,null);a=a.children;k=0;for(m=a.length;k<m;k++)l(a[k],b,c,d)}}function m(a,b,c,d){for(var e=0,f=a.length;e<f;e++){var g=
+a[e],k=g.object,l=g.geometry,m=void 0===d?g.material:d;g=g.group;if(c.isArrayCamera)if(T=c,la.enabled&&va.isAvailable())x(k,b,c,l,m,g);else for(var p=c.cameras,h=0,q=p.length;h<q;h++){var r=p[h];k.layers.test(r.layers)&&(aa.viewport(X.copy(r.viewport)),G.setupLights(r),x(k,b,r,l,m,g))}else T=null,x(k,b,c,l,m,g)}}function x(a,c,d,e,f,g){a.onBeforeRender(A,c,d,e,f,g);G=wa.get(c,T||d);a.modelViewMatrix.multiplyMatrices(d.matrixWorldInverse,a.matrixWorld);a.normalMatrix.getNormalMatrix(a.modelViewMatrix);
+if(a.isImmediateRenderObject){var l=h(d,c,f,a);aa.setMaterial(f);ha=b=null;xa=!1;k(a,l)}else A.renderBufferDirect(d,c,e,f,a,g);a.onAfterRender(A,c,d,e,f,g);G=wa.get(c,T||d)}function p(a,b,c){var d=S.get(a),e=G.state.lights,k=e.state.version;c=ua.getParameters(a,e.state,G.state.shadowsArray,b,Va.numPlanes,Va.numIntersection,c);var l=ua.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!==k)d.lightsStateVersion=
+k;else if(void 0!==c.shaderID)return;p=!1}p&&(m=ua.acquireProgram(c,l),d.program=m,d.uniforms=c.uniforms,d.environment=a.isMeshStandardMaterial?b.environment:null,d.outputEncoding=A.outputEncoding,a.program=m);c=m.getAttributes();if(a.morphTargets)for(l=a.numSupportedMorphTargets=0;l<A.maxMorphTargets;l++)0<=c["morphTarget"+l]&&a.numSupportedMorphTargets++;if(a.morphNormals)for(l=a.numSupportedMorphNormals=0;l<A.maxMorphNormals;l++)0<=c["morphNormal"+l]&&a.numSupportedMorphNormals++;c=d.uniforms;
+if(!a.isShaderMaterial&&!a.isRawShaderMaterial||!0===a.clipping)d.numClippingPlanes=Va.numPlanes,d.numIntersection=Va.numIntersection,c.clippingPlanes=Va.uniform;d.fog=b.fog;d.needsLights=a.isMeshLambertMaterial||a.isMeshToonMaterial||a.isMeshPhongMaterial||a.isMeshStandardMaterial||a.isShadowMaterial||a.isShaderMaterial&&!0===a.lights;d.lightsStateVersion=k;d.needsLights&&(c.ambientLightColor.value=e.state.ambient,c.lightProbe.value=e.state.probe,c.directionalLights.value=e.state.directional,c.spotLights.value=
+e.state.spot,c.rectAreaLights.value=e.state.rectArea,c.pointLights.value=e.state.point,c.hemisphereLights.value=e.state.hemi,c.directionalShadowMap.value=e.state.directionalShadowMap,c.directionalShadowMatrix.value=e.state.directionalShadowMatrix,c.spotShadowMap.value=e.state.spotShadowMap,c.spotShadowMatrix.value=e.state.spotShadowMatrix,c.pointShadowMap.value=e.state.pointShadowMap,c.pointShadowMatrix.value=e.state.pointShadowMatrix);a=d.program.getUniforms();a=Fb.seqWithValue(a.seq,c);d.uniformsList=
+a}function h(a,b,c,d){U.resetTextureUnits();var e=b.fog,f=c.isMeshStandardMaterial?b.environment:null,g=S.get(c),k=G.state.lights;na&&(ng||a!==Z)&&Va.setState(c.clippingPlanes,c.clipIntersection,c.clipShadows,a,g,a===Z&&c.id===Pe);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!==k.state.version?p(c,b,d):void 0===g.numClippingPlanes||g.numClippingPlanes===Va.numPlanes&&g.numIntersection===Va.numIntersection?
+g.outputEncoding!==A.outputEncoding&&p(c,b,d):p(c,b,d):(p(c,b,d),g.__version=c.version);var l=!1,m=!1,x=!1;b=g.program;k=b.getUniforms();var h=g.uniforms;aa.useProgram(b.program)&&(x=m=l=!0);c.id!==Pe&&(Pe=c.id,m=!0);if(l||Z!==a){0<b.numMultiviewViews?va.updateCameraProjectionMatricesUniform(a,k):k.setValue(H,"projectionMatrix",a.projectionMatrix);Ia.logarithmicDepthBuffer&&k.setValue(H,"logDepthBufFC",2/(Math.log(a.far+1)/Math.LN2));Z!==a&&(Z=a,x=m=!0);if(c.isShaderMaterial||c.isMeshPhongMaterial||
+c.isMeshToonMaterial||c.isMeshStandardMaterial||c.envMap)l=k.map.cameraPosition,void 0!==l&&l.setValue(H,Ib.setFromMatrixPosition(a.matrixWorld));(c.isMeshPhongMaterial||c.isMeshToonMaterial||c.isMeshLambertMaterial||c.isMeshBasicMaterial||c.isMeshStandardMaterial||c.isShaderMaterial)&&k.setValue(H,"isOrthographic",!0===a.isOrthographicCamera);if(c.isMeshPhongMaterial||c.isMeshToonMaterial||c.isMeshLambertMaterial||c.isMeshBasicMaterial||c.isMeshStandardMaterial||c.isShaderMaterial||c.skinning)0<
+b.numMultiviewViews?va.updateCameraViewMatricesUniform(a,k):k.setValue(H,"viewMatrix",a.matrixWorldInverse)}if(c.skinning&&(k.setOptional(H,d,"bindMatrix"),k.setOptional(H,d,"bindMatrixInverse"),l=d.skeleton)){var q=l.bones;if(Ia.floatVertexTextures){if(void 0===l.boneTexture){q=Math.sqrt(4*q.length);q=P.ceilPowerOfTwo(q);q=Math.max(q,4);var n=new Float32Array(q*q*4);n.set(l.boneMatrices);var u=new bc(n,q,q,1023,1015);l.boneMatrices=n;l.boneTexture=u;l.boneTextureSize=q}k.setValue(H,"boneTexture",
+l.boneTexture,U);k.setValue(H,"boneTextureSize",l.boneTextureSize)}else k.setOptional(H,l,"boneMatrices")}if(m||g.receiveShadow!==d.receiveShadow)g.receiveShadow=d.receiveShadow,k.setValue(H,"receiveShadow",d.receiveShadow);if(m){k.setValue(H,"toneMappingExposure",A.toneMappingExposure);k.setValue(H,"toneMappingWhitePoint",A.toneMappingWhitePoint);g.needsLights&&(m=x,h.ambientLightColor.needsUpdate=m,h.lightProbe.needsUpdate=m,h.directionalLights.needsUpdate=m,h.pointLights.needsUpdate=m,h.spotLights.needsUpdate=
+m,h.rectAreaLights.needsUpdate=m,h.hemisphereLights.needsUpdate=m);e&&c.fog&&(h.fogColor.value.copy(e.color),e.isFog?(h.fogNear.value=e.near,h.fogFar.value=e.far):e.isFogExp2&&(h.fogDensity.value=e.density));if(c.isMeshBasicMaterial)t(h,c);else if(c.isMeshLambertMaterial)t(h,c),c.emissiveMap&&(h.emissiveMap.value=c.emissiveMap);else if(c.isMeshToonMaterial)t(h,c),h.specular.value.copy(c.specular),h.shininess.value=Math.max(c.shininess,1E-4),c.gradientMap&&(h.gradientMap.value=c.gradientMap),c.emissiveMap&&
+(h.emissiveMap.value=c.emissiveMap),c.bumpMap&&(h.bumpMap.value=c.bumpMap,h.bumpScale.value=c.bumpScale,1===c.side&&(h.bumpScale.value*=-1)),c.normalMap&&(h.normalMap.value=c.normalMap,h.normalScale.value.copy(c.normalScale),1===c.side&&h.normalScale.value.negate()),c.displacementMap&&(h.displacementMap.value=c.displacementMap,h.displacementScale.value=c.displacementScale,h.displacementBias.value=c.displacementBias);else if(c.isMeshPhongMaterial)t(h,c),h.specular.value.copy(c.specular),h.shininess.value=
+Math.max(c.shininess,1E-4),c.emissiveMap&&(h.emissiveMap.value=c.emissiveMap),c.bumpMap&&(h.bumpMap.value=c.bumpMap,h.bumpScale.value=c.bumpScale,1===c.side&&(h.bumpScale.value*=-1)),c.normalMap&&(h.normalMap.value=c.normalMap,h.normalScale.value.copy(c.normalScale),1===c.side&&h.normalScale.value.negate()),c.displacementMap&&(h.displacementMap.value=c.displacementMap,h.displacementScale.value=c.displacementScale,h.displacementBias.value=c.displacementBias);else if(c.isMeshStandardMaterial)t(h,c,
+f),c.isMeshPhysicalMaterial?(r(h,c,f),h.reflectivity.value=c.reflectivity,h.clearcoat.value=c.clearcoat,h.clearcoatRoughness.value=c.clearcoatRoughness,c.sheen&&h.sheen.value.copy(c.sheen),c.clearcoatNormalMap&&(h.clearcoatNormalScale.value.copy(c.clearcoatNormalScale),h.clearcoatNormalMap.value=c.clearcoatNormalMap,1===c.side&&h.clearcoatNormalScale.value.negate()),h.transparency.value=c.transparency):r(h,c,f);else if(c.isMeshMatcapMaterial)t(h,c),c.matcap&&(h.matcap.value=c.matcap),c.bumpMap&&(h.bumpMap.value=
+c.bumpMap,h.bumpScale.value=c.bumpScale,1===c.side&&(h.bumpScale.value*=-1)),c.normalMap&&(h.normalMap.value=c.normalMap,h.normalScale.value.copy(c.normalScale),1===c.side&&h.normalScale.value.negate()),c.displacementMap&&(h.displacementMap.value=c.displacementMap,h.displacementScale.value=c.displacementScale,h.displacementBias.value=c.displacementBias);else if(c.isMeshDepthMaterial)t(h,c),c.displacementMap&&(h.displacementMap.value=c.displacementMap,h.displacementScale.value=c.displacementScale,
+h.displacementBias.value=c.displacementBias);else if(c.isMeshDistanceMaterial)t(h,c),c.displacementMap&&(h.displacementMap.value=c.displacementMap,h.displacementScale.value=c.displacementScale,h.displacementBias.value=c.displacementBias),h.referencePosition.value.copy(c.referencePosition),h.nearDistance.value=c.nearDistance,h.farDistance.value=c.farDistance;else if(c.isMeshNormalMaterial)t(h,c),c.bumpMap&&(h.bumpMap.value=c.bumpMap,h.bumpScale.value=c.bumpScale,1===c.side&&(h.bumpScale.value*=-1)),
+c.normalMap&&(h.normalMap.value=c.normalMap,h.normalScale.value.copy(c.normalScale),1===c.side&&h.normalScale.value.negate()),c.displacementMap&&(h.displacementMap.value=c.displacementMap,h.displacementScale.value=c.displacementScale,h.displacementBias.value=c.displacementBias);else if(c.isLineBasicMaterial)h.diffuse.value.copy(c.color),h.opacity.value=c.opacity,c.isLineDashedMaterial&&(h.dashSize.value=c.dashSize,h.totalSize.value=c.dashSize+c.gapSize,h.scale.value=c.scale);else if(c.isPointsMaterial){h.diffuse.value.copy(c.color);
+h.opacity.value=c.opacity;h.size.value=c.size*Q;h.scale.value=.5*J;c.map&&(h.map.value=c.map);c.alphaMap&&(h.alphaMap.value=c.alphaMap);if(c.map)var v=c.map;else c.alphaMap&&(v=c.alphaMap);void 0!==v&&(!0===v.matrixAutoUpdate&&v.updateMatrix(),h.uvTransform.value.copy(v.matrix))}else if(c.isSpriteMaterial){h.diffuse.value.copy(c.color);h.opacity.value=c.opacity;h.rotation.value=c.rotation;c.map&&(h.map.value=c.map);c.alphaMap&&(h.alphaMap.value=c.alphaMap);if(c.map)var y=c.map;else c.alphaMap&&(y=
+c.alphaMap);void 0!==y&&(!0===y.matrixAutoUpdate&&y.updateMatrix(),h.uvTransform.value.copy(y.matrix))}else c.isShadowMaterial&&(h.color.value.copy(c.color),h.opacity.value=c.opacity);void 0!==h.ltc_1&&(h.ltc_1.value=F.LTC_1);void 0!==h.ltc_2&&(h.ltc_2.value=F.LTC_2);Fb.upload(H,g.uniformsList,h,U);c.isShaderMaterial&&(c.uniformsNeedUpdate=!1)}c.isShaderMaterial&&!0===c.uniformsNeedUpdate&&(Fb.upload(H,g.uniformsList,h,U),c.uniformsNeedUpdate=!1);c.isSpriteMaterial&&k.setValue(H,"center",d.center);
+0<b.numMultiviewViews?va.updateObjectMatricesUniforms(d,a,k):(k.setValue(H,"modelViewMatrix",d.modelViewMatrix),k.setValue(H,"normalMatrix",d.normalMatrix));k.setValue(H,"modelMatrix",d.matrixWorld);return b}function t(a,b,c){a.opacity.value=b.opacity;b.color&&a.diffuse.value.copy(b.color);b.emissive&&a.emissive.value.copy(b.emissive).multiplyScalar(b.emissiveIntensity);b.map&&(a.map.value=b.map);b.alphaMap&&(a.alphaMap.value=b.alphaMap);b.specularMap&&(a.specularMap.value=b.specularMap);if(c=b.envMap||
+c)a.envMap.value=c,a.flipEnvMap.value=c.isCubeTexture?-1:1,a.reflectivity.value=b.reflectivity,a.refractionRatio.value=b.refractionRatio,a.maxMipLevel.value=S.get(c).__maxMipLevel;b.lightMap&&(a.lightMap.value=b.lightMap,a.lightMapIntensity.value=b.lightMapIntensity);b.aoMap&&(a.aoMap.value=b.aoMap,a.aoMapIntensity.value=b.aoMapIntensity);if(b.map)var d=b.map;else b.specularMap?d=b.specularMap:b.displacementMap?d=b.displacementMap:b.normalMap?d=b.normalMap:b.bumpMap?d=b.bumpMap:b.roughnessMap?d=b.roughnessMap:
+b.metalnessMap?d=b.metalnessMap:b.alphaMap?d=b.alphaMap:b.emissiveMap&&(d=b.emissiveMap);void 0!==d&&(d.isWebGLRenderTarget&&(d=d.texture),!0===d.matrixAutoUpdate&&d.updateMatrix(),a.uvTransform.value.copy(d.matrix));if(b.aoMap)var e=b.aoMap;else b.lightMap&&(e=b.lightMap);void 0!==e&&(e.isWebGLRenderTarget&&(e=e.texture),!0===e.matrixAutoUpdate&&e.updateMatrix(),a.uv2Transform.value.copy(e.matrix))}function r(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 u=void 0!==a.canvas?a.canvas:document.createElementNS("http://www.w3.org/1999/xhtml","canvas"),y=void 0!==a.context?a.context:null,v=void 0!==a.alpha?a.alpha:!1,C=void 0!==a.depth?a.depth:!0,W=void 0!==a.stencil?a.stencil:!0,ja=void 0!==a.antialias?a.antialias:!1,z=void 0!==a.premultipliedAlpha?a.premultipliedAlpha:!0,ra=void 0!==a.preserveDrawingBuffer?a.preserveDrawingBuffer:!1,D=void 0!==a.powerPreference?a.powerPreference:"default",
+E=void 0!==a.failIfMajorPerformanceCaveat?a.failIfMajorPerformanceCaveat:!1,B=null,G=null;this.domElement=u;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 A=this,I=!1,K=
+null,L=0,M=0,N=null,V=null,Pe=-1;var ha=b=null;var xa=!1;var Z=null,T=null,X=new ia,Y=new ia,ba=null,ca=u.width,J=u.height,Q=1,ka=null,ma=null,ea=new ia(0,0,ca,J),R=new ia(0,0,ca,J),lg=!1,mg=new Ic,Va=new yj,na=!1,ng=!1,Od=new O,Ib=new n;try{v={alpha:v,depth:C,stencil:W,antialias:ja,premultipliedAlpha:z,preserveDrawingBuffer:ra,powerPreference:D,failIfMajorPerformanceCaveat:E,xrCompatible:!0};u.addEventListener("webglcontextlost",d,!1);u.addEventListener("webglcontextrestored",e,!1);var H=y||u.getContext("webgl",
+v)||u.getContext("experimental-webgl",v);if(null===H){if(null!==u.getContext("webgl"))throw Error("Error creating WebGL context with your selected attributes.");throw Error("Error creating WebGL context.");}void 0===H.getShaderPrecisionFormat&&(H.getShaderPrecisionFormat=function(){return{rangeMin:1,rangeMax:1,precision:1}})}catch($h){throw console.error("THREE.WebGLRenderer: "+$h.message),$h;}var sa,Ia,aa,da,S,U,oa,za,ta,ua,ya,wa,pa,Aa,Ba,Da,qa;c();var la=new Zh(A,H);this.xr=la;var va=new Jk(A,H),
+Fa=new Wh(A,ta,Ia.maxTextureSize);this.shadowMap=Fa;this.getContext=function(){return H};this.getContextAttributes=function(){return H.getContextAttributes()};this.forceContextLoss=function(){var a=sa.get("WEBGL_lose_context");a&&a.loseContext()};this.forceContextRestore=function(){var a=sa.get("WEBGL_lose_context");a&&a.restoreContext()};this.getPixelRatio=function(){return Q};this.setPixelRatio=function(a){void 0!==a&&(Q=a,this.setSize(ca,J,!1))};this.getSize=function(a){void 0===a&&(console.warn("WebGLRenderer: .getsize() now requires a Vector2 as an argument"),
+a=new w);return a.set(ca,J)};this.setSize=function(a,b,c){la.isPresenting?console.warn("THREE.WebGLRenderer: Can't change size while VR device is presenting."):(ca=a,J=b,u.width=Math.floor(a*Q),u.height=Math.floor(b*Q),!1!==c&&(u.style.width=a+"px",u.style.height=b+"px"),this.setViewport(0,0,a,b))};this.getDrawingBufferSize=function(a){void 0===a&&(console.warn("WebGLRenderer: .getdrawingBufferSize() now requires a Vector2 as an argument"),a=new w);return a.set(ca*Q,J*Q).floor()};this.setDrawingBufferSize=
+function(a,b,c){ca=a;J=b;Q=c;u.width=Math.floor(a*c);u.height=Math.floor(b*c);this.setViewport(0,0,a,b)};this.getCurrentViewport=function(a){void 0===a&&(console.warn("WebGLRenderer: .getCurrentViewport() now requires a Vector4 as an argument"),a=new ia);return a.copy(X)};this.getViewport=function(a){return a.copy(ea)};this.setViewport=function(a,b,c,d){a.isVector4?ea.set(a.x,a.y,a.z,a.w):ea.set(a,b,c,d);aa.viewport(X.copy(ea).multiplyScalar(Q).floor())};this.getScissor=function(a){return a.copy(R)};
+this.setScissor=function(a,b,c,d){a.isVector4?R.set(a.x,a.y,a.z,a.w):R.set(a,b,c,d);aa.scissor(Y.copy(R).multiplyScalar(Q).floor())};this.getScissorTest=function(){return lg};this.setScissorTest=function(a){aa.setScissorTest(lg=a)};this.setOpaqueSort=function(a){ka=a};this.setTransparentSort=function(a){ma=a};this.getClearColor=function(){return pa.getClearColor()};this.setClearColor=function(){pa.setClearColor.apply(pa,arguments)};this.getClearAlpha=function(){return pa.getClearAlpha()};this.setClearAlpha=
+function(){pa.setClearAlpha.apply(pa,arguments)};this.clear=function(a,b,c){var d=0;if(void 0===a||a)d|=16384;if(void 0===b||b)d|=256;if(void 0===c||c)d|=1024;H.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(){u.removeEventListener("webglcontextlost",d,!1);u.removeEventListener("webglcontextrestored",e,!1);ya.dispose();wa.dispose();S.dispose();ta.dispose();la.dispose();
+Ca.stop()};this.renderBufferImmediate=function(a,b){aa.initAttributes();var c=S.get(a);a.hasPositions&&!c.position&&(c.position=H.createBuffer());a.hasNormals&&!c.normal&&(c.normal=H.createBuffer());a.hasUvs&&!c.uv&&(c.uv=H.createBuffer());a.hasColors&&!c.color&&(c.color=H.createBuffer());b=b.getAttributes();a.hasPositions&&(H.bindBuffer(34962,c.position),H.bufferData(34962,a.positionArray,35048),aa.enableAttribute(b.position),H.vertexAttribPointer(b.position,3,5126,!1,0,0));a.hasNormals&&(H.bindBuffer(34962,
+c.normal),H.bufferData(34962,a.normalArray,35048),aa.enableAttribute(b.normal),H.vertexAttribPointer(b.normal,3,5126,!1,0,0));a.hasUvs&&(H.bindBuffer(34962,c.uv),H.bufferData(34962,a.uvArray,35048),aa.enableAttribute(b.uv),H.vertexAttribPointer(b.uv,2,5126,!1,0,0));a.hasColors&&(H.bindBuffer(34962,c.color),H.bufferData(34962,a.colorArray,35048),aa.enableAttribute(b.color),H.vertexAttribPointer(b.color,3,5126,!1,0,0));aa.disableUnusedAttributes();H.drawArrays(4,0,a.count);a.count=0};var Ja=new pb;
+this.renderBufferDirect=function(a,c,d,e,f,g){null===c&&(c=Ja);var k=f.isMesh&&0>f.matrixWorld.determinant(),l=h(a,c,e,f);aa.setMaterial(e,k);var m=!1;if(b!==d.id||ha!==l.id||xa!==(!0===e.wireframe))b=d.id,ha=l.id,xa=!0===e.wireframe,m=!0;if(e.morphTargets||e.morphNormals)Aa.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 p=1;!0===e.wireframe&&(a=za.getWireframeAttribute(d),p=2);k=Ba;if(null!==a){var x=oa.get(a);
+k=Da;k.setIndex(x)}if(m){if(!1!==Ia.isWebGL2||!f.isInstancedMesh&&!d.isInstancedBufferGeometry||null!==sa.get("ANGLE_instanced_arrays")){aa.initAttributes();m=d.attributes;l=l.getAttributes();var q=e.defaultAttributeValues;for(W in l){var r=l[W];if(0<=r){var t=m[W];if(void 0!==t){var n=t.normalized,u=t.itemSize,v=oa.get(t);if(void 0!==v){var y=v.buffer,z=v.type;v=v.bytesPerElement;if(t.isInterleavedBufferAttribute){var C=t.data,w=C.stride;t=t.offset;C&&C.isInstancedInterleavedBuffer?(aa.enableAttributeAndDivisor(r,
+C.meshPerAttribute),void 0===d.maxInstancedCount&&(d.maxInstancedCount=C.meshPerAttribute*C.count)):aa.enableAttribute(r);H.bindBuffer(34962,y);H.vertexAttribPointer(r,u,z,n,w*v,t*v)}else t.isInstancedBufferAttribute?(aa.enableAttributeAndDivisor(r,t.meshPerAttribute),void 0===d.maxInstancedCount&&(d.maxInstancedCount=t.meshPerAttribute*t.count)):aa.enableAttribute(r),H.bindBuffer(34962,y),H.vertexAttribPointer(r,u,z,n,0,0)}}else if("instanceMatrix"===W)v=oa.get(f.instanceMatrix),void 0!==v&&(y=v.buffer,
+z=v.type,aa.enableAttributeAndDivisor(r+0,1),aa.enableAttributeAndDivisor(r+1,1),aa.enableAttributeAndDivisor(r+2,1),aa.enableAttributeAndDivisor(r+3,1),H.bindBuffer(34962,y),H.vertexAttribPointer(r+0,4,z,!1,64,0),H.vertexAttribPointer(r+1,4,z,!1,64,16),H.vertexAttribPointer(r+2,4,z,!1,64,32),H.vertexAttribPointer(r+3,4,z,!1,64,48));else if(void 0!==q&&(n=q[W],void 0!==n))switch(n.length){case 2:H.vertexAttrib2fv(r,n);break;case 3:H.vertexAttrib3fv(r,n);break;case 4:H.vertexAttrib4fv(r,n);break;default:H.vertexAttrib1fv(r,
+n)}}}aa.disableUnusedAttributes()}null!==a&&H.bindBuffer(34963,x.buffer)}var W=d.drawRange.start*p;m=null!==g?g.start*p:0;x=Math.max(W,m);g=Math.max(0,Math.min(null!==a?a.count:c.count,W+d.drawRange.count*p,m+(null!==g?g.count*p:Infinity))-1-x+1);0!==g&&(f.isMesh?!0===e.wireframe?(aa.setLineWidth(e.wireframeLinewidth*(null===N?Q:1)),k.setMode(1)):k.setMode(4):f.isLine?(e=e.linewidth,void 0===e&&(e=1),aa.setLineWidth(e*(null===N?Q:1)),f.isLineSegments?k.setMode(1):f.isLineLoop?k.setMode(2):k.setMode(3)):
+f.isPoints?k.setMode(0):f.isSprite&&k.setMode(4),f.isInstancedMesh?k.renderInstances(d,x,g,f.count):d.isInstancedBufferGeometry?k.renderInstances(d,x,g,d.maxInstancedCount):k.render(x,g))};this.compile=function(a,b){G=wa.get(a,b);G.init();a.traverse(function(a){a.isLight&&(G.pushLight(a),a.castShadow&&G.pushShadow(a))});G.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 Ea=null,Ca=new Ah;Ca.setAnimationLoop(function(a){la.isPresenting||Ea&&Ea(a)});"undefined"!==typeof window&&Ca.setContext(window);this.setAnimationLoop=function(a){Ea=a;la.setAnimationLoop(a);Ca.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?I||(ha=b=null,xa=!1,Pe=-1,Z=null,!0===a.autoUpdate&&a.updateMatrixWorld(),null===c.parent&&c.updateMatrixWorld(),la.enabled&&la.isPresenting&&(c=la.getCamera(c)),G=wa.get(a,c),G.init(),a.onBeforeRender(A,a,c,f||N),Od.multiplyMatrices(c.projectionMatrix,c.matrixWorldInverse),mg.setFromProjectionMatrix(Od),ng=this.localClippingEnabled,na=Va.init(this.clippingPlanes,ng,c),B=ya.get(a,c),B.init(),l(a,c,0,A.sortObjects),!0===A.sortObjects&&B.sort(ka,ma),na&&Va.beginShadows(),Fa.render(G.state.shadowsArray,
+a,c),G.setupLights(c),na&&Va.endShadows(),this.info.autoReset&&this.info.reset(),void 0!==f&&this.setRenderTarget(f),la.enabled&&va.isAvailable()&&va.attachCamera(c),pa.render(B,a,c,g),d=B.opaque,e=B.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(A,a,c),null!==N&&(U.updateRenderTargetMipmap(N),U.updateMultisampleRenderTarget(N)),aa.buffers.depth.setTest(!0),aa.buffers.depth.setMask(!0),aa.buffers.color.setMask(!0),
+aa.setPolygonOffset(!1),la.enabled&&va.isAvailable()&&va.detachCamera(c),G=B=null):console.error("THREE.WebGLRenderer.render: camera is not an instance of THREE.Camera.")};this.setFramebuffer=function(a){K!==a&&null===N&&H.bindFramebuffer(36160,a);K=a};this.getActiveCubeFace=function(){return L};this.getActiveMipmapLevel=function(){return M};this.getRenderTarget=function(){return N};this.setRenderTarget=function(a,b,c){N=a;L=b;M=c;a&&void 0===S.get(a).__webglFramebuffer&&U.setupRenderTarget(a);var d=
+K,e=!1;a?(d=S.get(a).__webglFramebuffer,a.isWebGLCubeRenderTarget?(d=d[b||0],e=!0):d=a.isWebGLMultisampleRenderTarget?S.get(a).__webglMultisampledFramebuffer:d,X.copy(a.viewport),Y.copy(a.scissor),ba=a.scissorTest):(X.copy(ea).multiplyScalar(Q).floor(),Y.copy(R).multiplyScalar(Q).floor(),ba=lg);V!==d&&(H.bindFramebuffer(36160,d),V=d);aa.viewport(X);aa.scissor(Y);aa.setScissorTest(ba);e&&(a=S.get(a.texture),H.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 k=S.get(a).__webglFramebuffer;a.isWebGLCubeRenderTarget&&void 0!==g&&(k=k[g]);if(k){g=!1;k!==V&&(H.bindFramebuffer(36160,k),g=!0);try{var l=a.texture,m=l.format,h=l.type;1023!==m&&qa.convert(m)!==H.getParameter(35739)?console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format."):1009===h||qa.convert(h)===H.getParameter(35738)||1015===h&&(Ia.isWebGL2||sa.get("OES_texture_float")||sa.get("WEBGL_color_buffer_float"))||
+1016===h&&(Ia.isWebGL2?sa.get("EXT_color_buffer_float"):sa.get("EXT_color_buffer_half_float"))?36053===H.checkFramebufferStatus(36160)?0<=b&&b<=a.width-d&&0<=c&&c<=a.height-e&&H.readPixels(b,c,d,e,qa.convert(m),qa.convert(h),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&&H.bindFramebuffer(36160,
+V)}}}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);U.setTexture2D(b,0);H.copyTexImage2D(3553,c,f,a.x,a.y,e,d,0);aa.unbindTexture()};this.copyTextureToTexture=function(a,b,c,d){var e=b.image.width,f=b.image.height,g=qa.convert(c.format),k=qa.convert(c.type);U.setTexture2D(c,
+0);b.isDataTexture?H.texSubImage2D(3553,d||0,a.x,a.y,e,f,g,k,b.image.data):H.texSubImage2D(3553,d||0,a.x,a.y,g,k,b.image);aa.unbindTexture()};this.initTexture=function(a){U.setTexture2D(a,0);aa.unbindTexture()};"undefined"!==typeof __THREE_DEVTOOLS__&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}function Re(a,b){this.name="";this.color=new B(a);this.density=void 0!==b?b:2.5E-4}function Se(a,b,c){this.name="";this.color=new B(a);this.near=void 0!==b?b:1;this.far=void 0!==
+c?c:1E3}function sb(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 Qd(a,b,c,d){this.data=a;this.itemSize=b;this.offset=c;this.normalized=!0===d}function Jb(a){K.call(this);this.type="SpriteMaterial";this.color=new B(16777215);this.alphaMap=this.map=null;this.rotation=0;this.transparent=this.sizeAttenuation=!0;this.setValues(a)}function Rd(a){D.call(this);this.type="Sprite";if(void 0===Oc){Oc=new A;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 sb(b,5);Oc.setIndex([0,1,2,0,2,3]);Oc.setAttribute("position",new Qd(b,3,0,!1));Oc.setAttribute("uv",new Qd(b,2,3,!1))}this.geometry=Oc;this.material=void 0!==a?a:new Jb;this.center=new w(.5,.5)}function Te(a,b,c,d,e,f){Pc.subVectors(a,c).addScalar(.5).multiply(d);void 0!==e?(Sd.x=f*Pc.x-e*Pc.y,Sd.y=e*Pc.x+f*Pc.y):Sd.copy(Pc);a.copy(b);a.x+=Sd.x;a.y+=Sd.y;a.applyMatrix4(ai)}function Td(){D.call(this);this._currentLevel=
+0;this.type="LOD";Object.defineProperties(this,{levels:{enumerable:!0,value:[]}});this.autoUpdate=!0}function Ud(a,b){a&&a.isGeometry&&console.error("THREE.SkinnedMesh no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.");ca.call(this,a,b);this.type="SkinnedMesh";this.bindMode="attached";this.bindMatrix=new O;this.bindMatrixInverse=new O}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 O)}function rg(){D.call(this);this.type="Bone"}function Ve(a,b,c){ca.call(this,a,b);this.instanceMatrix=new M(new Float32Array(16*c),16);this.count=c;this.frustumCulled=!1}function ka(a){K.call(this);this.type="LineBasicMaterial";this.color=new B(16777215);this.linewidth=1;this.linejoin=
+this.linecap="round";this.setValues(a)}function La(a,b,c){1===c&&console.error("THREE.Line: parameter THREE.LinePieces no longer supported. Use THREE.LineSegments instead.");D.call(this);this.type="Line";this.geometry=void 0!==a?a:new A;this.material=void 0!==b?b:new ka}function ma(a,b){La.call(this,a,b);this.type="LineSegments"}function We(a,b){La.call(this,a,b);this.type="LineLoop"}function Wa(a){K.call(this);this.type="PointsMaterial";this.color=new B(16777215);this.alphaMap=this.map=null;this.size=
+1;this.sizeAttenuation=!0;this.morphTargets=!1;this.setValues(a)}function Qc(a,b){D.call(this);this.type="Points";this.geometry=void 0!==a?a:new A;this.material=void 0!==b?b:new Wa;this.updateMorphTargets()}function sg(a,b,c,d,e,f,g){var k=tg.distanceSqToPoint(a);k<c&&(c=new n,tg.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(k),point:c,index:b,face:null,object:g}))}function ug(a,b,c,d,e,f,g,k,l){Z.call(this,a,
+b,c,d,e,f,g,k,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 Rc(a,b,c,d,e,f,g,k,l,m,h,p){Z.call(this,null,f,g,k,l,m,d,e,h,p);this.image={width:b,height:c};this.mipmaps=a;this.generateMipmaps=this.flipY=!1}function Vd(a,b,c,d,e,f,g,k,l){Z.call(this,a,b,c,d,e,f,g,k,l);this.needsUpdate=!0}function Wd(a,b,c,d,e,f,g,k,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);Z.call(this,null,d,e,f,g,k,m,c,l);this.image={width:a,height:b};this.magFilter=void 0!==g?g:1003;this.minFilter=void 0!==k?k:1003;this.generateMipmaps=this.flipY=!1}function Sc(a){A.call(this);this.type="WireframeGeometry";var b=[],c,d,e,f=[0,0],g={},k=["a","b","c"];if(a&&a.isGeometry){var l=a.faces;var m=0;for(d=l.length;m<d;m++){var h=l[m];for(c=0;3>c;c++){var p=h[k[c]];var q=h[k[(c+1)%3]];f[0]=Math.min(p,q);f[1]=Math.max(p,q);p=f[0]+
+","+f[1];void 0===g[p]&&(g[p]={index1:f[0],index2:f[1]})}}for(p in g)m=g[p],k=a.vertices[m.index1],b.push(k.x,k.y,k.z),k=a.vertices[m.index2],b.push(k.x,k.y,k.z)}else if(a&&a.isBufferGeometry)if(k=new n,null!==a.index){l=a.attributes.position;h=a.index;var t=a.groups;0===t.length&&(t=[{start:0,count:h.count,materialIndex:0}]);a=0;for(e=t.length;a<e;++a)for(m=t[a],c=m.start,d=m.count,m=c,d=c+d;m<d;m+=3)for(c=0;3>c;c++)p=h.getX(m+c),q=h.getX(m+(c+1)%3),f[0]=Math.min(p,q),f[1]=Math.max(p,q),p=f[0]+","+
+f[1],void 0===g[p]&&(g[p]={index1:f[0],index2:f[1]});for(p in g)m=g[p],k.fromBufferAttribute(l,m.index1),b.push(k.x,k.y,k.z),k.fromBufferAttribute(l,m.index2),b.push(k.x,k.y,k.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,k.fromBufferAttribute(l,g),b.push(k.x,k.y,k.z),g=3*m+(c+1)%3,k.fromBufferAttribute(l,g),b.push(k.x,k.y,k.z);this.setAttribute("position",new E(b,3))}function Xd(a,b,c){L.call(this);this.type="ParametricGeometry";this.parameters={func:a,slices:b,
+stacks:c};this.fromBufferGeometry(new Tc(a,b,c));this.mergeVertices()}function Tc(a,b,c){A.call(this);this.type="ParametricBufferGeometry";this.parameters={func:a,slices:b,stacks:c};var d=[],e=[],f=[],g=[],k=new n,l=new n,m=new n,h=new n,p=new n,q,t;3>a.length&&console.error("THREE.ParametricGeometry: Function must now modify a Vector3 as third parameter.");var r=b+1;for(q=0;q<=c;q++){var u=q/c;for(t=0;t<=b;t++){var y=t/b;a(y,u,l);e.push(l.x,l.y,l.z);0<=y-1E-5?(a(y-1E-5,u,m),h.subVectors(l,m)):(a(y+
+1E-5,u,m),h.subVectors(m,l));0<=u-1E-5?(a(y,u-1E-5,m),p.subVectors(l,m)):(a(y,u+1E-5,m),p.subVectors(m,l));k.crossVectors(h,p).normalize();f.push(k.x,k.y,k.z);g.push(y,u)}}for(q=0;q<c;q++)for(t=0;t<b;t++)a=q*r+t+1,k=(q+1)*r+t+1,l=(q+1)*r+t,d.push(q*r+t,a,l),d.push(a,k,l);this.setIndex(d);this.setAttribute("position",new E(e,3));this.setAttribute("normal",new E(f,3));this.setAttribute("uv",new E(g,2))}function Yd(a,b,c,d){L.call(this);this.type="PolyhedronGeometry";this.parameters={vertices:a,indices:b,
+radius:c,detail:d};this.fromBufferGeometry(new Ja(a,b,c,d));this.mergeVertices()}function Ja(a,b,c,d){function e(a){k.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)}A.call(this);this.type="PolyhedronBufferGeometry";this.parameters={vertices:a,indices:b,radius:c,detail:d};c=c||1;d=d||0;var k=[],l=[];(function(a){for(var c=new n,d=new n,g=new n,k=0;k<b.length;k+=3){f(b[k+0],c);f(b[k+1],d);
+f(b[k+2],g);var l,m,h=c,v=d,C=g,w=Math.pow(2,a),ja=[];for(m=0;m<=w;m++){ja[m]=[];var z=h.clone().lerp(C,m/w),A=v.clone().lerp(C,m/w),B=w-m;for(l=0;l<=B;l++)ja[m][l]=0===l&&m===w?z:z.clone().lerp(A,l/B)}for(m=0;m<w;m++)for(l=0;l<2*(w-m)-1;l++)h=Math.floor(l/2),0===l%2?(e(ja[m][h+1]),e(ja[m+1][h]),e(ja[m][h])):(e(ja[m][h+1]),e(ja[m+1][h+1]),e(ja[m+1][h]))}})(d);(function(a){for(var b=new n,c=0;c<k.length;c+=3)b.x=k[c+0],b.y=k[c+1],b.z=k[c+2],b.normalize().multiplyScalar(a),k[c+0]=b.x,k[c+1]=b.y,k[c+
+2]=b.z})(c);(function(){for(var a=new n,b=0;b<k.length;b+=3)a.x=k[b+0],a.y=k[b+1],a.z=k[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 w,f=new w,h=new w,y=0,v=0;y<k.length;y+=9,v+=6){a.set(k[y+0],k[y+1],k[y+2]);b.set(k[y+3],k[y+4],k[y+5]);c.set(k[y+6],k[y+7],k[y+8]);e.set(l[v+0],l[v+1]);f.set(l[v+2],l[v+3]);h.set(l[v+4],l[v+5]);d.copy(a).add(b).add(c).divideScalar(3);var C=Math.atan2(d.z,-d.x);
+g(e,v+0,a,C);g(f,v+2,b,C);g(h,v+4,c,C)}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 E(k,3));this.setAttribute("normal",new E(k.slice(),3));this.setAttribute("uv",new E(l,2));0===d?this.computeVertexNormals():this.normalizeNormals()}function Zd(a,b){L.call(this);this.type="TetrahedronGeometry";this.parameters={radius:a,detail:b};this.fromBufferGeometry(new Uc(a,
+b));this.mergeVertices()}function Uc(a,b){Ja.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 $d(a,b){L.call(this);this.type="OctahedronGeometry";this.parameters={radius:a,detail:b};this.fromBufferGeometry(new dc(a,b));this.mergeVertices()}function dc(a,b){Ja.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 ae(a,b){L.call(this);this.type="IcosahedronGeometry";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;Ja.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 be(a,b){L.call(this);this.type="DodecahedronGeometry";this.parameters={radius:a,detail:b};this.fromBufferGeometry(new Wc(a,b));this.mergeVertices()}function Wc(a,b){var c=(1+Math.sqrt(5))/2,d=1/c;Ja.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 ce(a,b,c,d,e,f){L.call(this);this.type="TubeGeometry";this.parameters={path:a,tubularSegments:b,radius:c,radialSegments:d,closed:e};void 0!==f&&console.warn("THREE.TubeGeometry: taper has been removed.");a=new ec(a,b,c,d,e);this.tangents=a.tangents;
+this.normals=a.normals;this.binormals=a.binormals;this.fromBufferGeometry(a);this.mergeVertices()}function ec(a,b,c,d,e){function f(e){h=a.getPointAt(e/b,h);var f=g.normals[e];e=g.binormals[e];for(q=0;q<=d;q++){var m=q/d*Math.PI*2,p=Math.sin(m);m=-Math.cos(m);l.x=m*f.x+p*e.x;l.y=m*f.y+p*e.y;l.z=m*f.z+p*e.z;l.normalize();r.push(l.x,l.y,l.z);k.x=h.x+c*l.x;k.y=h.y+c*l.y;k.z=h.z+c*l.z;t.push(k.x,k.y,k.z)}}A.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 k=new n,l=new n,m=new w,h=new n,p,q,t=[],r=[],u=[],y=[];for(p=0;p<b;p++)f(p);f(!1===e?b:0);for(p=0;p<=b;p++)for(q=0;q<=d;q++)m.x=p/b,m.y=q/d,u.push(m.x,m.y);(function(){for(q=1;q<=b;q++)for(p=1;p<=d;p++){var a=(d+1)*q+(p-1),c=(d+1)*q+p,e=(d+1)*(q-1)+p;y.push((d+1)*(q-1)+(p-1),a,e);y.push(a,c,e)}})();this.setIndex(y);this.setAttribute("position",new E(t,
+3));this.setAttribute("normal",new E(r,3));this.setAttribute("uv",new E(u,2))}function de(a,b,c,d,e,f,g){L.call(this);this.type="TorusKnotGeometry";this.parameters={radius:a,tube:b,tubularSegments:c,radialSegments:d,p:e,q:f};void 0!==g&&console.warn("THREE.TorusKnotGeometry: heightScale has been deprecated. Use .scale( x, y, z ) instead.");this.fromBufferGeometry(new Xc(a,b,c,d,e,f));this.mergeVertices()}function Xc(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}A.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 k=[],l=[],m=[],h=[],p,q=new n,t=new n,r=new n,u=new n,y=new n,v=new n,C=new n;for(p=0;p<=c;++p){var w=p/c*e*Math.PI*2;g(w,e,f,a,r);g(w+.01,e,f,a,u);v.subVectors(u,r);C.addVectors(u,r);y.crossVectors(v,C);C.crossVectors(y,v);y.normalize();C.normalize();
+for(w=0;w<=d;++w){var ja=w/d*Math.PI*2,z=-b*Math.cos(ja);ja=b*Math.sin(ja);q.x=r.x+(z*C.x+ja*y.x);q.y=r.y+(z*C.y+ja*y.y);q.z=r.z+(z*C.z+ja*y.z);l.push(q.x,q.y,q.z);t.subVectors(q,r).normalize();m.push(t.x,t.y,t.z);h.push(p/c);h.push(w/d)}}for(w=1;w<=c;w++)for(p=1;p<=d;p++)a=(d+1)*w+(p-1),b=(d+1)*w+p,e=(d+1)*(w-1)+p,k.push((d+1)*(w-1)+(p-1),a,e),k.push(a,b,e);this.setIndex(k);this.setAttribute("position",new E(l,3));this.setAttribute("normal",new E(m,3));this.setAttribute("uv",new E(h,2))}function ee(a,
+b,c,d,e){L.call(this);this.type="TorusGeometry";this.parameters={radius:a,tube:b,radialSegments:c,tubularSegments:d,arc:e};this.fromBufferGeometry(new Yc(a,b,c,d,e));this.mergeVertices()}function Yc(a,b,c,d,e){A.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=[],k=[],l=[],m=new n,h=new n,p=new n,q,t;for(q=0;q<=c;q++)for(t=0;t<=d;t++){var r=t/d*e,u=q/
+c*Math.PI*2;h.x=(a+b*Math.cos(u))*Math.cos(r);h.y=(a+b*Math.cos(u))*Math.sin(r);h.z=b*Math.sin(u);g.push(h.x,h.y,h.z);m.x=a*Math.cos(r);m.y=a*Math.sin(r);p.subVectors(h,m).normalize();k.push(p.x,p.y,p.z);l.push(t/d);l.push(q/c)}for(q=1;q<=c;q++)for(t=1;t<=d;t++)a=(d+1)*(q-1)+t-1,b=(d+1)*(q-1)+t,e=(d+1)*q+t,f.push((d+1)*q+t-1,a,e),f.push(a,b,e);this.setIndex(f);this.setAttribute("position",new E(g,3));this.setAttribute("normal",new E(k,3));this.setAttribute("uv",new E(l,2))}function bi(a,b,c,d,e){for(var f,
+g=0,k=b,l=c-d;k<c;k+=d)g+=(a[l]-a[k])*(a[k+1]+a[l+1]),l=k;if(e===0<g)for(e=b;e<c;e+=d)f=ci(e,a[e],a[e+1],f);else for(e=c-d;e>=b;e-=d)f=ci(e,a[e],a[e+1],f);f&&fc(f,f.next)&&(fe(f),f=f.next);return f}function ge(a,b){if(!a)return a;b||(b=a);do{var c=!1;if(a.steiner||!fc(a,a.next)&&0!==ta(a.prev,a,a.next))a=a.next;else{fe(a);a=b=a.prev;if(a===a.next)break;c=!0}}while(c||a!==b);return b}function he(a,b,c,d,e,f,g){if(a){if(!g&&f){var k=a,l=k;do null===l.z&&(l.z=vg(l.x,l.y,d,e,f)),l.prevZ=l.prev,l=l.nextZ=
+l.next;while(l!==k);l.prevZ.nextZ=null;l.prevZ=null;k=l;var m,h,p,q,t=1;do{l=k;var r=k=null;for(h=0;l;){h++;var n=l;for(m=p=0;m<t&&(p++,n=n.nextZ,n);m++);for(q=t;0<p||0<q&&n;)0!==p&&(0===q||!n||l.z<=n.z)?(m=l,l=l.nextZ,p--):(m=n,n=n.nextZ,q--),r?r.nextZ=m:k=m,m.prevZ=r,r=m;l=n}r.nextZ=null;t*=2}while(1<h)}for(k=a;a.prev!==a.next;){l=a.prev;n=a.next;if(f)r=Kk(a,d,e,f);else a:if(r=a,h=r.prev,p=r,t=r.next,0<=ta(h,p,t))r=!1;else{for(m=r.next.next;m!==r.prev;){if(Zc(h.x,h.y,p.x,p.y,t.x,t.y,m.x,m.y)&&0<=
+ta(m.prev,m,m.next)){r=!1;break a}m=m.next}r=!0}if(r)b.push(l.i/c),b.push(a.i/c),b.push(n.i/c),fe(a),k=a=n.next;else if(a=n,a===k){if(!g)he(ge(a),b,c,d,e,f,1);else if(1===g){g=b;k=c;l=a;do n=l.prev,r=l.next.next,!fc(n,r)&&di(n,l,l.next,r)&&ie(n,r)&&ie(r,n)&&(g.push(n.i/k),g.push(l.i/k),g.push(r.i/k),fe(l),fe(l.next),l=a=r),l=l.next;while(l!==a);a=l;he(a,b,c,d,e,f,2)}else if(2===g)a:{g=a;do{for(k=g.next.next;k!==g.prev;){if(l=g.i!==k.i){l=g;n=k;if(r=l.next.i!==n.i&&l.prev.i!==n.i){b:{r=l;do{if(r.i!==
+l.i&&r.next.i!==l.i&&r.i!==n.i&&r.next.i!==n.i&&di(r,r.next,l,n)){r=!0;break b}r=r.next}while(r!==l);r=!1}r=!r}if(r=r&&ie(l,n)&&ie(n,l)){r=l;h=!1;p=(l.x+n.x)/2;n=(l.y+n.y)/2;do r.y>n!==r.next.y>n&&r.next.y!==r.y&&p<(r.next.x-r.x)*(n-r.y)/(r.next.y-r.y)+r.x&&(h=!h),r=r.next;while(r!==l);r=h}l=r}if(l){a=ei(g,k);g=ge(g,g.next);a=ge(a,a.next);he(g,b,c,d,e,f);he(a,b,c,d,e,f);break a}k=k.next}g=g.next}while(g!==a)}break}}}}function Kk(a,b,c,d){var e=a.prev,f=a.next;if(0<=ta(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,k=e.y>a.y?e.y>f.y?e.y:f.y:a.y>f.y?a.y:f.y,l=vg(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=vg(g,k,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&&Zc(e.x,e.y,a.x,a.y,f.x,f.y,c.x,c.y)&&0<=ta(c.prev,c,c.next))return!1;c=c.prevZ;if(d!==a.prev&&d!==a.next&&Zc(e.x,e.y,a.x,a.y,f.x,f.y,d.x,d.y)&&0<=ta(d.prev,d,d.next))return!1;d=d.nextZ}for(;c&&c.z>=l;){if(c!==a.prev&&c!==a.next&&Zc(e.x,e.y,a.x,a.y,
+f.x,f.y,c.x,c.y)&&0<=ta(c.prev,c,c.next))return!1;c=c.prevZ}for(;d&&d.z<=b;){if(d!==a.prev&&d!==a.next&&Zc(e.x,e.y,a.x,a.y,f.x,f.y,d.x,d.y)&&0<=ta(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 k=c.x<c.next.x?c:c.next}}c=c.next}while(c!==b);if(!k)return null;
+if(d===f)return k.prev;b=k;g=k.x;var l=k.y,m=Infinity;for(c=k.next;c!==b;){if(d>=c.x&&c.x>=g&&d!==c.x&&Zc(e<l?d:f,e,g,l,e<l?f:d,e,c.x,c.y)){var h=Math.abs(e-c.y)/(d-c.x);(h<m||h===m&&c.x>k.x)&&ie(c,a)&&(k=c,m=h)}c=c.next}return k}function vg(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 Zc(a,b,c,d,e,f,g,k){return 0<=(e-g)*(b-k)-(a-g)*(f-k)&&0<=(a-g)*(d-k)-(c-g)*(b-k)&&0<=(c-g)*(f-k)-(e-g)*(d-k)}function ta(a,b,c){return(b.y-a.y)*(c.x-b.x)-(b.x-a.x)*(c.y-b.y)}function fc(a,b){return a.x===b.x&&a.y===b.y}function di(a,b,c,d){return fc(a,c)&&fc(b,d)||fc(a,d)&&fc(c,b)?!0:0<ta(a,b,c)!==0<ta(a,b,d)&&0<ta(c,d,a)!==0<ta(c,d,b)}function ie(a,b){return 0>ta(a.prev,a,a.next)?0<=ta(a,b,a.next)&&0<=ta(a,a.prev,b):0>ta(a,b,a.prev)||
+0>ta(a,a.next,b)}function ei(a,b){var c=new wg(a.i,a.x,a.y),d=new wg(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 ci(a,b,c,d){a=new wg(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 fe(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 wg(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 fi(a){var b=a.length;2<b&&a[b-1].equals(a[0])&&a.pop()}function gi(a,b){for(var c=0;c<b.length;c++)a.push(b[c].x),a.push(b[c].y)}function gc(a,b){L.call(this);this.type="ExtrudeGeometry";this.parameters={shapes:a,options:b};this.fromBufferGeometry(new gb(a,b));this.mergeVertices()}function gb(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,k=d*d+e*e;if(Math.abs(d*g-e*f)>Number.EPSILON){var l=Math.sqrt(k),m=Math.sqrt(f*f+g*g);k=b.x-e/l;b=b.y+d/l;g=((c.x-g/m-k)*g-(c.y+f/m-b)*f)/(d*g-e*f);f=k+d*g-a.x;d=b+e*g-a.y;e=f*f+d*d;if(2>=e)return new w(f,d);e=Math.sqrt(e/2)}else a=!1,d>Number.EPSILON?f>Number.EPSILON&&(a=!0):d<-Number.EPSILON?f<-Number.EPSILON&&(a=!0):Math.sign(e)===Math.sign(g)&&(a=!0),a?(f=-e,e=Math.sqrt(k)):(f=d,d=e,e=Math.sqrt(k/2));return new w(f/e,d/e)}function k(a,b){for(J=a.length;0<=
+--J;){var c=J;var f=J-1;0>f&&(f=a.length-1);var g,k=C+2*E;for(g=0;g<k;g++){var l=Y*g,m=Y*(g+1),h=b+f+l,p=b+f+m;m=b+c+m;r(b+c+l);r(h);r(m);r(h);r(p);r(m);l=e.length/3;l=G.generateSideWallUV(d,e,l-6,l-3,l-2,l-1);u(l[0]);u(l[1]);u(l[3]);u(l[1]);u(l[2]);u(l[3])}}}function l(a,b,c){y.push(a);y.push(b);y.push(c)}function h(a,b,c){r(a);r(b);r(c);a=e.length/3;a=G.generateTopUV(d,e,a-3,a-2,a-1);u(a[0]);u(a[1]);u(a[2])}function r(a){e.push(y[3*a]);e.push(y[3*a+1]);e.push(y[3*a+2])}function u(a){f.push(a.x);
+f.push(a.y)}var y=[],v=void 0!==b.curveSegments?b.curveSegments:12,C=void 0!==b.steps?b.steps:1,W=void 0!==b.depth?b.depth:100,A=void 0!==b.bevelEnabled?b.bevelEnabled:!0,z=void 0!==b.bevelThickness?b.bevelThickness:6,B=void 0!==b.bevelSize?b.bevelSize:z-2,D=void 0!==b.bevelOffset?b.bevelOffset:0,E=void 0!==b.bevelSegments?b.bevelSegments:3,F=b.extrudePath,G=void 0!==b.UVGenerator?b.UVGenerator:Ok;void 0!==b.amount&&(console.warn("THREE.ExtrudeBufferGeometry: amount has been renamed to depth."),W=
+b.amount);var I=!1;if(F){var K=F.getSpacedPoints(C);I=!0;A=!1;var L=F.computeFrenetFrames(C,!1);var M=new n;var P=new n;var N=new n}A||(D=B=z=E=0);var O;v=a.extractPoints(v);a=v.shape;var S=v.holes;if(!tb.isClockWise(a)){a=a.reverse();var ha=0;for(O=S.length;ha<O;ha++){var xa=S[ha];tb.isClockWise(xa)&&(S[ha]=xa.reverse())}}var Z=tb.triangulateShape(a,S),V=a;ha=0;for(O=S.length;ha<O;ha++)xa=S[ha],a=a.concat(xa);var X,Y=a.length,T,ca=Z.length;v=[];var J=0;var Q=V.length;var U=Q-1;for(X=J+1;J<Q;J++,
+U++,X++)U===Q&&(U=0),X===Q&&(X=0),v[J]=g(V[J],V[U],V[X]);F=[];var da=v.concat();ha=0;for(O=S.length;ha<O;ha++){xa=S[ha];var ba=[];J=0;Q=xa.length;U=Q-1;for(X=J+1;J<Q;J++,U++,X++)U===Q&&(U=0),X===Q&&(X=0),ba[J]=g(xa[J],xa[U],xa[X]);F.push(ba);da=da.concat(ba)}for(U=0;U<E;U++){Q=U/E;var ea=z*Math.cos(Q*Math.PI/2);X=B*Math.sin(Q*Math.PI/2)+D;J=0;for(Q=V.length;J<Q;J++){var R=c(V[J],v[J],X);l(R.x,R.y,-ea)}ha=0;for(O=S.length;ha<O;ha++)for(xa=S[ha],ba=F[ha],J=0,Q=xa.length;J<Q;J++)R=c(xa[J],ba[J],X),l(R.x,
+R.y,-ea)}X=B+D;for(J=0;J<Y;J++)R=A?c(a[J],da[J],X):a[J],I?(P.copy(L.normals[0]).multiplyScalar(R.x),M.copy(L.binormals[0]).multiplyScalar(R.y),N.copy(K[0]).add(P).add(M),l(N.x,N.y,N.z)):l(R.x,R.y,0);for(Q=1;Q<=C;Q++)for(J=0;J<Y;J++)R=A?c(a[J],da[J],X):a[J],I?(P.copy(L.normals[Q]).multiplyScalar(R.x),M.copy(L.binormals[Q]).multiplyScalar(R.y),N.copy(K[Q]).add(P).add(M),l(N.x,N.y,N.z)):l(R.x,R.y,W/C*Q);for(U=E-1;0<=U;U--){Q=U/E;ea=z*Math.cos(Q*Math.PI/2);X=B*Math.sin(Q*Math.PI/2)+D;J=0;for(Q=V.length;J<
+Q;J++)R=c(V[J],v[J],X),l(R.x,R.y,W+ea);ha=0;for(O=S.length;ha<O;ha++)for(xa=S[ha],ba=F[ha],J=0,Q=xa.length;J<Q;J++)R=c(xa[J],ba[J],X),I?l(R.x,R.y+K[C-1].y,K[C-1].x+ea):l(R.x,R.y,W+ea)}(function(){var a=e.length/3;if(A){var b=0*Y;for(J=0;J<ca;J++)T=Z[J],h(T[2]+b,T[1]+b,T[0]+b);b=Y*(C+2*E);for(J=0;J<ca;J++)T=Z[J],h(T[0]+b,T[1]+b,T[2]+b)}else{for(J=0;J<ca;J++)T=Z[J],h(T[2],T[1],T[0]);for(J=0;J<ca;J++)T=Z[J],h(T[0]+Y*C,T[1]+Y*C,T[2]+Y*C)}d.addGroup(a,e.length/3-a,0)})();(function(){var a=e.length/3,b=
+0;k(V,b);b+=V.length;ha=0;for(O=S.length;ha<O;ha++)xa=S[ha],k(xa,b),b+=xa.length;d.addGroup(a,e.length/3-a,1)})()}A.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,k=a.length;g<k;g++)c(a[g]);this.setAttribute("position",new E(e,3));this.setAttribute("uv",new E(f,2));this.computeVertexNormals()}function hi(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 je(a,b){L.call(this);this.type="TextGeometry";this.parameters={text:a,parameters:b};this.fromBufferGeometry(new $c(a,b));this.mergeVertices()}function $c(a,b){b=b||{};var c=b.font;if(!c||!c.isFont)return console.error("THREE.TextGeometry: font parameter is not an instance of THREE.Font."),new L;a=c.generateShapes(a,b.size);b.depth=void 0!==b.height?b.height:50;void 0===b.bevelThickness&&(b.bevelThickness=10);
+void 0===b.bevelSize&&(b.bevelSize=8);void 0===b.bevelEnabled&&(b.bevelEnabled=!1);gb.call(this,a,b);this.type="TextBufferGeometry"}function ke(a,b,c,d,e,f,g){L.call(this);this.type="SphereGeometry";this.parameters={radius:a,widthSegments:b,heightSegments:c,phiStart:d,phiLength:e,thetaStart:f,thetaLength:g};this.fromBufferGeometry(new hc(a,b,c,d,e,f,g));this.mergeVertices()}function hc(a,b,c,d,e,f,g){A.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 k=Math.min(f+g,Math.PI),l,m,h=0,p=[],q=new n,t=new n,r=[],u=[],y=[],v=[];for(m=0;m<=c;m++){var w=[],W=m/c,B=0;0==m&&0==f?B=.5/b:m==c&&k==Math.PI&&(B=-.5/b);for(l=0;l<=b;l++){var z=l/b;q.x=-a*Math.cos(d+z*e)*Math.sin(f+W*g);q.y=a*Math.cos(f+W*g);q.z=a*Math.sin(d+z*e)*Math.sin(f+W*g);u.push(q.x,q.y,
+q.z);t.copy(q).normalize();y.push(t.x,t.y,t.z);v.push(z+B,1-W);w.push(h++)}p.push(w)}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)&&r.push(a,d,g),(m!==c-1||k<Math.PI)&&r.push(d,e,g);this.setIndex(r);this.setAttribute("position",new E(u,3));this.setAttribute("normal",new E(y,3));this.setAttribute("uv",new E(v,2))}function le(a,b,c,d,e,f){L.call(this);this.type="RingGeometry";this.parameters={innerRadius:a,outerRadius:b,thetaSegments:c,phiSegments:d,thetaStart:e,
+thetaLength:f};this.fromBufferGeometry(new ad(a,b,c,d,e,f));this.mergeVertices()}function ad(a,b,c,d,e,f){A.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=[],k=[],l=[],m=[],h=a,p=(b-a)/d,q=new n,t=new w,r,u;for(r=0;r<=d;r++){for(u=0;u<=c;u++)a=e+u/c*f,q.x=h*Math.cos(a),q.y=h*Math.sin(a),
+k.push(q.x,q.y,q.z),l.push(0,0,1),t.x=(q.x/b+1)/2,t.y=(q.y/b+1)/2,m.push(t.x,t.y);h+=p}for(r=0;r<d;r++)for(b=r*(c+1),u=0;u<c;u++)a=u+b,e=a+c+1,f=a+c+2,h=a+1,g.push(a,e,h),g.push(e,f,h);this.setIndex(g);this.setAttribute("position",new E(k,3));this.setAttribute("normal",new E(l,3));this.setAttribute("uv",new E(m,2))}function me(a,b,c,d){L.call(this);this.type="LatheGeometry";this.parameters={points:a,segments:b,phiStart:c,phiLength:d};this.fromBufferGeometry(new bd(a,b,c,d));this.mergeVertices()}function bd(a,
+b,c,d){A.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=P.clamp(d,0,2*Math.PI);var e=[],f=[],g=[],k=1/b,l=new n,m=new w,h;for(h=0;h<=b;h++){var p=c+h*k*d;var q=Math.sin(p),t=Math.cos(p);for(p=0;p<=a.length-1;p++)l.x=a[p].x*q,l.y=a[p].y,l.z=a[p].x*t,f.push(l.x,l.y,l.z),m.x=h/b,m.y=p/(a.length-1),g.push(m.x,m.y)}for(h=0;h<b;h++)for(p=0;p<a.length-1;p++)c=p+h*a.length,k=c+a.length,l=c+a.length+1,m=c+
+1,e.push(c,k,m),e.push(k,l,m);this.setIndex(e);this.setAttribute("position",new E(f,3));this.setAttribute("uv",new E(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=h=0;h<a.length;h++,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 ic(a,b){L.call(this);this.type="ShapeGeometry";"object"===typeof b&&
+(console.warn("THREE.ShapeGeometry: Options parameter has been removed."),b=b.curveSegments);this.parameters={shapes:a,curveSegments:b};this.fromBufferGeometry(new jc(a,b));this.mergeVertices()}function jc(a,b){function c(a){var c,k=e.length/3;a=a.extractPoints(b);var m=a.shape,h=a.holes;!1===tb.isClockWise(m)&&(m=m.reverse());a=0;for(c=h.length;a<c;a++){var x=h[a];!0===tb.isClockWise(x)&&(h[a]=x.reverse())}var n=tb.triangulateShape(m,h);a=0;for(c=h.length;a<c;a++)x=h[a],m=m.concat(x);a=0;for(c=m.length;a<
+c;a++)x=m[a],e.push(x.x,x.y,0),f.push(0,0,1),g.push(x.x,x.y);a=0;for(c=n.length;a<c;a++)m=n[a],d.push(m[0]+k,m[1]+k,m[2]+k),l+=3}A.call(this);this.type="ShapeBufferGeometry";this.parameters={shapes:a,curveSegments:b};b=b||12;var d=[],e=[],f=[],g=[],k=0,l=0;if(!1===Array.isArray(a))c(a);else for(var m=0;m<a.length;m++)c(a[m]),this.addGroup(k,l,m),k+=l,l=0;this.setIndex(d);this.setAttribute("position",new E(e,3));this.setAttribute("normal",new E(f,3));this.setAttribute("uv",new E(g,2))}function ii(a,
+b){b.shapes=[];if(Array.isArray(a))for(var c=0,d=a.length;c<d;c++)b.shapes.push(a[c].uuid);else b.shapes.push(a.uuid);return b}function cd(a,b){A.call(this);this.type="EdgesGeometry";this.parameters={thresholdAngle:b};var c=[];b=Math.cos(P.DEG2RAD*(void 0!==b?b:1));var d=[0,0],e={},f=["a","b","c"];if(a.isBufferGeometry){var g=new L;g.fromBufferGeometry(a)}else g=a.clone();g.mergeVertices();g.computeFaceNormals();a=g.vertices;g=g.faces;for(var k=0,l=g.length;k<l;k++)for(var m=g[k],h=0;3>h;h++){var p=
+m[f[h]];var q=m[f[(h+1)%3]];d[0]=Math.min(p,q);d[1]=Math.max(p,q);p=d[0]+","+d[1];void 0===e[p]?e[p]={index1:d[0],index2:d[1],face1:k,face2:void 0}:e[p].face2=k}for(p in e)if(d=e[p],void 0===d.face2||g[d.face1].normal.dot(g[d.face2].normal)<=b)f=a[d.index1],c.push(f.x,f.y,f.z),f=a[d.index2],c.push(f.x,f.y,f.z);this.setAttribute("position",new E(c,3))}function kc(a,b,c,d,e,f,g,k){L.call(this);this.type="CylinderGeometry";this.parameters={radiusTop:a,radiusBottom:b,height:c,radialSegments:d,heightSegments:e,
+openEnded:f,thetaStart:g,thetaLength:k};this.fromBufferGeometry(new ub(a,b,c,d,e,f,g,k));this.mergeVertices()}function ub(a,b,c,d,e,f,g,k){function l(c){var e,f=new w,l=new n,x=0,u=!0===c?a:b,C=!0===c?1:-1;var A=r;for(e=1;e<=d;e++)p.push(0,y*C,0),q.push(0,C,0),t.push(.5,.5),r++;var B=r;for(e=0;e<=d;e++){var E=e/d*k+g,D=Math.cos(E);E=Math.sin(E);l.x=u*E;l.y=y*C;l.z=u*D;p.push(l.x,l.y,l.z);q.push(0,C,0);f.x=.5*D+.5;f.y=.5*E*C+.5;t.push(f.x,f.y);r++}for(e=0;e<d;e++)f=A+e,l=B+e,!0===c?h.push(l,l+1,f):
+h.push(l+1,l,f),x+=3;m.addGroup(v,x,!0===c?1:2);v+=x}A.call(this);this.type="CylinderBufferGeometry";this.parameters={radiusTop:a,radiusBottom:b,height:c,radialSegments:d,heightSegments:e,openEnded:f,thetaStart:g,thetaLength:k};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;k=void 0!==k?k:2*Math.PI;var h=[],p=[],q=[],t=[],r=0,u=[],y=c/2,v=0;(function(){var f,l,x=new n,z=new n,w=0,A=(b-a)/c;for(l=0;l<=e;l++){var B=[],E=l/
+e,G=E*(b-a)+a;for(f=0;f<=d;f++){var D=f/d,F=D*k+g,I=Math.sin(F);F=Math.cos(F);z.x=G*I;z.y=-E*c+y;z.z=G*F;p.push(z.x,z.y,z.z);x.set(I,A,F).normalize();q.push(x.x,x.y,x.z);t.push(D,1-E);B.push(r++)}u.push(B)}for(f=0;f<d;f++)for(l=0;l<e;l++)x=u[l+1][f],z=u[l+1][f+1],A=u[l][f+1],h.push(u[l][f],x,A),h.push(x,z,A),w+=6;m.addGroup(v,w,0);v+=w})();!1===f&&(0<a&&l(!0),0<b&&l(!1));this.setIndex(h);this.setAttribute("position",new E(p,3));this.setAttribute("normal",new E(q,3));this.setAttribute("uv",new E(t,
+2))}function ne(a,b,c,d,e,f,g){kc.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 oe(a,b,c,d,e,f,g){ub.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 pe(a,b,c,d){L.call(this);this.type="CircleGeometry";this.parameters={radius:a,segments:b,thetaStart:c,
+thetaLength:d};this.fromBufferGeometry(new dd(a,b,c,d));this.mergeVertices()}function dd(a,b,c,d){A.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=[],k=[],l,m=new n,h=new w;f.push(0,0,0);g.push(0,0,1);k.push(.5,.5);var p=0;for(l=3;p<=b;p++,l+=3){var q=c+p/b*d;m.x=a*Math.cos(q);m.y=a*Math.sin(q);f.push(m.x,m.y,m.z);g.push(0,0,1);h.x=(f[l]/a+1)/
+2;h.y=(f[l+1]/a+1)/2;k.push(h.x,h.y)}for(l=1;l<=b;l++)e.push(l,l+1,0);this.setIndex(e);this.setAttribute("position",new E(f,3));this.setAttribute("normal",new E(g,3));this.setAttribute("uv",new E(k,2))}function lc(a){K.call(this);this.type="ShadowMaterial";this.color=new B(0);this.transparent=!0;this.setValues(a)}function vb(a){qa.call(this,a);this.type="RawShaderMaterial"}function hb(a){K.call(this);this.defines={STANDARD:""};this.type="MeshStandardMaterial";this.color=new B(16777215);this.roughness=
+1;this.metalness=0;this.lightMap=this.map=null;this.lightMapIntensity=1;this.aoMap=null;this.aoMapIntensity=1;this.emissive=new B(0);this.emissiveIntensity=1;this.bumpMap=this.emissiveMap=null;this.bumpScale=1;this.normalMap=null;this.normalMapType=0;this.normalScale=new w(1,1);this.displacementMap=null;this.displacementScale=1;this.displacementBias=0;this.envMap=this.alphaMap=this.metalnessMap=this.roughnessMap=null;this.envMapIntensity=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 mc(a){hb.call(this);this.defines={STANDARD:"",PHYSICAL:""};this.type="MeshPhysicalMaterial";this.reflectivity=.5;this.clearcoatRoughness=this.clearcoat=0;this.sheen=null;this.clearcoatNormalScale=new w(1,1);this.clearcoatNormalMap=null;this.transparency=0;this.setValues(a)}function Kb(a){K.call(this);this.type="MeshPhongMaterial";this.color=new B(16777215);this.specular=
+new B(1118481);this.shininess=30;this.lightMap=this.map=null;this.lightMapIntensity=1;this.aoMap=null;this.aoMapIntensity=1;this.emissive=new B(0);this.emissiveIntensity=1;this.bumpMap=this.emissiveMap=null;this.bumpScale=1;this.normalMap=null;this.normalMapType=0;this.normalScale=new w(1,1);this.displacementMap=null;this.displacementScale=1;this.displacementBias=0;this.envMap=this.alphaMap=this.specularMap=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 nc(a){K.call(this);this.defines={TOON:""};this.type="MeshToonMaterial";this.color=new B(16777215);this.specular=new B(1118481);this.shininess=30;this.lightMap=this.gradientMap=this.map=null;this.lightMapIntensity=1;this.aoMap=null;this.aoMapIntensity=1;this.emissive=new B(0);this.emissiveIntensity=1;this.bumpMap=this.emissiveMap=null;this.bumpScale=1;this.normalMap=
+null;this.normalMapType=0;this.normalScale=new w(1,1);this.displacementMap=null;this.displacementScale=1;this.displacementBias=0;this.alphaMap=this.specularMap=null;this.wireframe=!1;this.wireframeLinewidth=1;this.wireframeLinejoin=this.wireframeLinecap="round";this.morphNormals=this.morphTargets=this.skinning=!1;this.setValues(a)}function oc(a){K.call(this);this.type="MeshNormalMaterial";this.bumpMap=null;this.bumpScale=1;this.normalMap=null;this.normalMapType=0;this.normalScale=new w(1,1);this.displacementMap=
+null;this.displacementScale=1;this.displacementBias=0;this.wireframe=!1;this.wireframeLinewidth=1;this.morphNormals=this.morphTargets=this.skinning=this.fog=!1;this.setValues(a)}function pc(a){K.call(this);this.type="MeshLambertMaterial";this.color=new B(16777215);this.lightMap=this.map=null;this.lightMapIntensity=1;this.aoMap=null;this.aoMapIntensity=1;this.emissive=new B(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 qc(a){K.call(this);this.defines={MATCAP:""};this.type="MeshMatcapMaterial";this.color=new B(16777215);this.bumpMap=this.map=this.matcap=null;this.bumpScale=1;this.normalMap=null;this.normalMapType=0;this.normalScale=new w(1,1);this.displacementMap=null;this.displacementScale=1;this.displacementBias=
+0;this.alphaMap=null;this.morphNormals=this.morphTargets=this.skinning=!1;this.setValues(a)}function rc(a){ka.call(this);this.type="LineDashedMaterial";this.scale=1;this.dashSize=3;this.gapSize=1;this.setValues(a)}function Ma(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){Ma.call(this,a,b,c,d);this._offsetNext=this._weightNext=this._offsetPrev=this._weightPrev=-0}function qe(a,b,c,
+d){Ma.call(this,a,b,c,d)}function Ye(a,b,c,d){Ma.call(this,a,b,c,d)}function ua(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=ea.convertArray(b,this.TimeBufferType);this.values=ea.convertArray(c,this.ValueBufferType);this.setInterpolation(d||this.DefaultInterpolation)}function Ze(a,b,c){ua.call(this,a,b,c)}function $e(a,b,c,d){ua.call(this,a,b,
+c,d)}function ed(a,b,c,d){ua.call(this,a,b,c,d)}function af(a,b,c,d){Ma.call(this,a,b,c,d)}function re(a,b,c,d){ua.call(this,a,b,c,d)}function bf(a,b,c,d){ua.call(this,a,b,c,d)}function fd(a,b,c,d){ua.call(this,a,b,c,d)}function Ra(a,b,c){this.name=a;this.tracks=c;this.duration=void 0!==b?b:-1;this.uuid=P.generateUUID();0>this.duration&&this.resetDuration()}function Pk(a){switch(a.toLowerCase()){case "scalar":case "double":case "float":case "number":case "integer":return ed;case "vector":case "vector2":case "vector3":case "vector4":return fd;
+case "color":return $e;case "quaternion":return re;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=[];ea.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 xg(a,b,c){var d=this,e=
+!1,f=0,g=0,k=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 k?k(a):a};this.setURLModifier=function(a){k=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 V(a){this.manager=void 0!==a?a:ji;this.crossOrigin="anonymous";this.resourcePath=this.path=""}function Sa(a){V.call(this,a)}function yg(a){V.call(this,a)}function zg(a){V.call(this,a)}function cf(a){V.call(this,a)}function gd(a){V.call(this,a)}function df(a){V.call(this,
+a)}function ef(a){V.call(this,a)}function I(){this.type="Curve";this.arcLengthDivisions=200}function Na(a,b,c,d,e,f,g,k){I.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=k||0}function hd(a,b,c,d,e,f){Na.call(this,a,b,c,c,d,e,f);this.type="ArcCurve"}function Ag(){var a=0,b=0,c=0,d=0;return{initCatmullRom:function(e,f,g,k,l){e=l*(g-e);k=l*(k-f);a=f;b=e;c=-3*f+3*g-
+2*e-k;d=2*f-2*g+e+k},initNonuniformCatmullRom:function(e,f,g,k,l,m,h){e=((f-e)/l-(g-e)/(l+m)+(g-f)/m)*m;k=((g-f)/m-(k-f)/(m+h)+(k-g)/h)*m;a=f;b=e;c=-3*f+3*g-2*e-k;d=2*f-2*g+e+k},calc:function(e){var f=e*e;return a+b*e+c*f+d*f*e}}}function Aa(a,b,c,d){I.call(this);this.type="CatmullRomCurve3";this.points=a||[];this.closed=b||!1;this.curveType=c||"centripetal";this.tension=d||.5}function ki(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 se(a,b,c,
+d){var e=1-a;return e*e*b+2*(1-a)*a*c+a*a*d}function te(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 Xa(a,b,c,d){I.call(this);this.type="CubicBezierCurve";this.v0=a||new w;this.v1=b||new w;this.v2=c||new w;this.v3=d||new w}function ib(a,b,c,d){I.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 Ea(a,b){I.call(this);this.type="LineCurve";this.v1=a||new w;this.v2=b||new w}function Ya(a,b){I.call(this);
+this.type="LineCurve3";this.v1=a||new n;this.v2=b||new n}function Za(a,b,c){I.call(this);this.type="QuadraticBezierCurve";this.v0=a||new w;this.v1=b||new w;this.v2=c||new w}function jb(a,b,c){I.call(this);this.type="QuadraticBezierCurve3";this.v0=a||new n;this.v1=b||new n;this.v2=c||new n}function $a(a){I.call(this);this.type="SplineCurve";this.points=a||[]}function wb(){I.call(this);this.type="CurvePath";this.curves=[];this.autoClose=!1}function ab(a){wb.call(this);this.type="Path";this.currentPoint=
+new w;a&&this.setFromPoints(a)}function Lb(a){ab.call(this,a);this.uuid=P.generateUUID();this.type="Shape";this.holes=[]}function ba(a,b){D.call(this);this.type="Light";this.color=new B(a);this.intensity=void 0!==b?b:1;this.receiveShadow=void 0}function ff(a,b,c){ba.call(this,a,c);this.type="HemisphereLight";this.castShadow=void 0;this.position.copy(D.DefaultUp);this.updateMatrix();this.groundColor=new B(b)}function kb(a){this.camera=a;this.bias=0;this.radius=1;this.mapSize=new w(512,512);this.mapPass=
+this.map=null;this.matrix=new O;this._frustum=new Ic;this._frameExtents=new w(1,1);this._viewportCount=1;this._viewports=[new ia(0,0,1,1)]}function gf(){kb.call(this,new da(50,1,.5,500))}function hf(a,b,c,d,e,f){ba.call(this,a,b);this.type="SpotLight";this.position.copy(D.DefaultUp);this.updateMatrix();this.target=new D;Object.defineProperty(this,"power",{get:function(){return this.intensity*Math.PI},set:function(a){this.intensity=a/Math.PI}});this.distance=void 0!==c?c:0;this.angle=void 0!==d?d:
+Math.PI/3;this.penumbra=void 0!==e?e:0;this.decay=void 0!==f?f:1;this.shadow=new gf}function Bg(){kb.call(this,new da(90,1,.5,500));this._frameExtents=new w(4,2);this._viewportCount=6;this._viewports=[new ia(2,1,1,1),new ia(0,1,1,1),new ia(3,1,1,1),new ia(1,1,1,1),new ia(3,0,1,1),new ia(1,0,1,1)];this._cubeDirections=[new n(1,0,0),new n(-1,0,0),new n(0,0,1),new n(0,0,-1),new n(0,1,0),new n(0,-1,0)];this._cubeUps=[new n(0,1,0),new n(0,1,0),new n(0,1,0),new n(0,1,0),new n(0,0,1),new n(0,0,-1)]}function jf(a,
+b,c,d){ba.call(this,a,b);this.type="PointLight";Object.defineProperty(this,"power",{get:function(){return 4*this.intensity*Math.PI},set:function(a){this.intensity=a/(4*Math.PI)}});this.distance=void 0!==c?c:0;this.decay=void 0!==d?d:1;this.shadow=new Bg}function id(a,b,c,d,e,f){eb.call(this);this.type="OrthographicCamera";this.zoom=1;this.view=null;this.left=void 0!==a?a:-1;this.right=void 0!==b?b:1;this.top=void 0!==c?c:1;this.bottom=void 0!==d?d:-1;this.near=void 0!==e?e:.1;this.far=void 0!==f?
+f:2E3;this.updateProjectionMatrix()}function kf(){kb.call(this,new id(-5,5,5,-5,.5,500))}function lf(a,b){ba.call(this,a,b);this.type="DirectionalLight";this.position.copy(D.DefaultUp);this.updateMatrix();this.target=new D;this.shadow=new kf}function mf(a,b){ba.call(this,a,b);this.type="AmbientLight";this.castShadow=void 0}function nf(a,b,c,d){ba.call(this,a,b);this.type="RectAreaLight";this.width=void 0!==c?c:10;this.height=void 0!==d?d:10}function of(a){V.call(this,a);this.textures={}}function pf(){A.call(this);
+this.type="InstancedBufferGeometry";this.maxInstancedCount=void 0}function qf(a,b,c,d){"number"===typeof c&&(d=c,c=!1,console.error("THREE.InstancedBufferAttribute: The constructor now expects normalized as the third argument."));M.call(this,a,b,c);this.meshPerAttribute=d||1}function rf(a){V.call(this,a)}function sf(a){V.call(this,a)}function Cg(a){"undefined"===typeof createImageBitmap&&console.warn("THREE.ImageBitmapLoader: createImageBitmap() not supported.");"undefined"===typeof fetch&&console.warn("THREE.ImageBitmapLoader: fetch() not supported.");
+V.call(this,a);this.options=void 0}function Dg(){this.type="ShapePath";this.color=new B;this.subPaths=[];this.currentPath=null}function Eg(a){this.type="Font";this.data=a}function Fg(a){V.call(this,a)}function tf(a){V.call(this,a)}function uf(){this.coefficients=[];for(var a=0;9>a;a++)this.coefficients.push(new n)}function bb(a,b){ba.call(this,void 0,b);this.sh=void 0!==a?a:new uf}function Gg(a,b,c){bb.call(this,void 0,c);a=(new B).set(a);c=(new B).set(b);b=new n(a.r,a.g,a.b);a=new n(c.r,c.g,c.b);
+c=Math.sqrt(Math.PI);var d=c*Math.sqrt(.75);this.sh.coefficients[0].copy(b).add(a).multiplyScalar(c);this.sh.coefficients[1].copy(b).sub(a).multiplyScalar(d)}function Hg(a,b){bb.call(this,void 0,b);a=(new B).set(a);this.sh.coefficients[0].set(a.r,a.g,a.b).multiplyScalar(2*Math.sqrt(Math.PI))}function li(){this.type="StereoCamera";this.aspect=1;this.eyeSep=.064;this.cameraL=new da;this.cameraL.layers.enable(1);this.cameraL.matrixAutoUpdate=!1;this.cameraR=new da;this.cameraR.layers.enable(2);this.cameraR.matrixAutoUpdate=
+!1;this._cache={focus:null,fov:null,aspect:null,near:null,far:null,zoom:null,eyeSep:null}}function Ig(a){this.autoStart=void 0!==a?a:!0;this.elapsedTime=this.oldTime=this.startTime=0;this.running=!1}function Jg(){D.call(this);this.type="AudioListener";this.context=Kg.getContext();this.gain=this.context.createGain();this.gain.connect(this.context.destination);this.filter=null;this.timeDelta=0;this._clock=new Ig}function jd(a){D.call(this);this.type="Audio";this.listener=a;this.context=a.context;this.gain=
+this.context.createGain();this.gain.connect(a.getInput());this.autoplay=!1;this.buffer=null;this.detune=0;this.loop=!1;this.offset=this.loopEnd=this.loopStart=0;this.duration=void 0;this.playbackRate=1;this.isPlaying=!1;this.hasPlaybackControl=!0;this.sourceType="empty";this._pausedAt=this._startedAt=0;this.filters=[]}function Lg(a){jd.call(this,a);this.panner=this.context.createPanner();this.panner.panningModel="HRTF";this.panner.connect(this.gain)}function Mg(a,b){this.analyser=a.context.createAnalyser();
+this.analyser.fftSize=void 0!==b?b:2048;this.data=new Uint8Array(this.analyser.frequencyBinCount);a.getOutput().connect(this.analyser)}function Ng(a,b,c){this.binding=a;this.valueSize=c;a=Float64Array;switch(b){case "quaternion":b=this._slerp;break;case "string":case "bool":a=Array;b=this._select;break;default:b=this._lerp}this.buffer=new a(4*c);this._mixBufferRegion=b;this.referenceCount=this.useCount=this.cumulativeWeight=0}function mi(a,b,c){c=c||Ba.parseTrackName(b);this._targetGroup=a;this._bindings=
+a.subscribe_(b,c)}function Ba(a,b,c){this.path=b;this.parsedPath=c||Ba.parseTrackName(b);this.node=Ba.findNode(a,this.parsedPath.nodeName)||a;this.rootNode=a}function ni(){this.uuid=P.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 oi(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 Og(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 Pg(a,b,c){sb.call(this,
+a,b);this.meshPerAttribute=c||1}function pi(a,b,c,d){this.ray=new Wb(a,b);this.near=c||0;this.far=d||Infinity;this.camera=null;this.params={Mesh:{},Line:{},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 Qg(a,b,c,d){if(!1!==a.visible&&(a.raycast(b,c),!0===d)){a=a.children;d=0;for(var e=
+a.length;d<e;d++)Qg(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 Rg(a,b){this.min=void 0!==a?a:new w(Infinity,Infinity);this.max=void 0!==b?b:new w(-Infinity,-Infinity)}function Sg(a,b){this.start=void 0!==a?a:new n;this.end=void 0!==b?b:new n}function ue(a){D.call(this);this.material=a;this.render=function(){}}
+function kd(a,b){D.call(this);this.light=a;this.light.updateMatrixWorld();this.matrix=a.matrixWorld;this.matrixAutoUpdate=!1;this.color=b;a=new A;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 E(b,3));b=new ka({fog:!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 sc(a){for(var b=ti(a),c=new A,d=[],e=[],f=new B(0,0,1),g=new B(0,1,0),k=0;k<b.length;k++){var l=b[k];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 E(d,3));c.setAttribute("color",new E(e,3));d=new ka({vertexColors:2,depthTest:!1,depthWrite:!1,transparent:!0});ma.call(this,c,d);this.root=a;this.bones=b;this.matrix=a.matrixWorld;this.matrixAutoUpdate=
+!1}function ld(a,b,c){this.light=a;this.light.updateMatrixWorld();this.color=c;a=new hc(b,4,2);b=new Pa({wireframe:!0,fog:!1});ca.call(this,a,b);this.matrix=this.light.matrixWorld;this.matrixAutoUpdate=!1;this.update()}function md(a,b,c){D.call(this);this.light=a;this.light.updateMatrixWorld();this.matrix=a.matrixWorld;this.matrixAutoUpdate=!1;this.color=c;a=new dc(b);a.rotateY(.5*Math.PI);this.material=new Pa({wireframe:!0,fog:!1});void 0===this.color&&(this.material.vertexColors=2);b=a.getAttribute("position");
+b=new Float32Array(3*b.count);a.setAttribute("color",new M(b,3));this.add(new ca(a,this.material));this.update()}function wf(a,b,c,d){a=a||10;b=b||10;c=new B(void 0!==c?c:4473924);d=new B(void 0!==d?d:8947848);var e=b/2,f=a/b,g=a/2;a=[];for(var k=[],l=0,m=0,h=-g;l<=b;l++,h+=f){a.push(-g,0,h,g,0,h);a.push(h,0,-g,h,0,g);var p=l===e?c:d;p.toArray(k,m);m+=3;p.toArray(k,m);m+=3;p.toArray(k,m);m+=3;p.toArray(k,m);m+=3}b=new A;b.setAttribute("position",new E(a,3));b.setAttribute("color",new E(k,3));c=new ka({vertexColors:2});
+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 B(void 0!==e?e:4473924);f=new B(void 0!==f?f:8947848);var g=[],k=[],l;for(l=0;l<=b;l++){var m=l/b*2*Math.PI;var h=Math.sin(m)*a;m=Math.cos(m)*a;g.push(0,0,0);g.push(h,0,m);var p=l&1?e:f;k.push(p.r,p.g,p.b);k.push(p.r,p.g,p.b)}for(l=0;l<=c;l++){p=l&1?e:f;var q=a-a/c*l;for(b=0;b<d;b++)m=b/d*2*Math.PI,h=Math.sin(m)*q,m=Math.cos(m)*q,g.push(h,0,m),k.push(p.r,p.g,p.b),m=(b+1)/d*2*Math.PI,h=Math.sin(m)*q,m=Math.cos(m)*q,g.push(h,
+0,m),k.push(p.r,p.g,p.b)}a=new A;a.setAttribute("position",new E(g,3));a.setAttribute("color",new E(k,3));g=new ka({vertexColors:2});ma.call(this,a,g)}function nd(a,b,c){D.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 A;a.setAttribute("position",new E([-b,b,0,b,b,0,b,-b,0,-b,-b,0,-b,b,0],3));b=new ka({fog:!1});this.lightPlane=new La(a,b);this.add(this.lightPlane);a=new A;a.setAttribute("position",new E([0,
+0,0,0,0,1],3));this.targetLine=new La(a,b);this.add(this.targetLine);this.update()}function ve(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===k[a]&&(k[a]=[]);k[a].push(f.length/3-1)}var d=new A,e=new ka({color:16777215,vertexColors:1}),f=[],g=[],k={},l=new B(16755200),m=new B(16711680),h=new B(43775),p=new B(16777215),q=new B(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",h);b("u2","u3",h);b("u3","u1",h);b("c","t",p);b("p","c",q);b("cn1","cn2",q);b("cn3","cn4",q);b("cf1","cf2",q);b("cf3","cf4",q);d.setAttribute("position",new E(f,3));d.setAttribute("color",new E(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=
+k;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 xb(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 A;d.setIndex(new M(a,1));d.setAttribute("position",new M(c,3));ma.call(this,d,new ka({color:b}));this.matrixAutoUpdate=!1;this.update()}function we(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 A;c.setIndex(new M(a,1));c.setAttribute("position",new E([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 ka({color:b}));this.geometry.computeBoundingSphere()}function xe(a,b,c){this.type="PlaneHelper";this.plane=a;this.size=void 0===b?1:b;a=void 0!==c?c:16776960;b=new A;b.setAttribute("position",new E([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();La.call(this,b,new ka({color:a}));b=new A;b.setAttribute("position",new E([1,1,1,-1,1,1,-1,-1,1,1,1,1,-1,-1,1,1,-1,1],3));b.computeBoundingSphere();this.add(new ca(b,new Pa({color:a,opacity:.2,transparent:!0,depthWrite:!1})))}function yb(a,b,c,d,e,f){D.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 A,zf.setAttribute("position",new E([0,
+0,0,0,1,0],3)),Tg=new ub(0,.5,1,5,1),Tg.translate(0,-.5,0));this.position.copy(b);this.line=new La(zf,new ka({color:d}));this.line.matrixAutoUpdate=!1;this.add(this.line);this.cone=new ca(Tg,new Pa({color:d}));this.cone.matrixAutoUpdate=!1;this.add(this.cone);this.setDirection(a);this.setLength(c,e,f)}function ye(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 A;a.setAttribute("position",new E(b,3));a.setAttribute("color",new E([1,0,0,1,.6,0,0,1,0,.6,1,0,0,0,1,0,.6,1],3));b=new ka({vertexColors:2});
+ma.call(this,a,b)}function Ug(a){Y=a;Vg(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();Y.setRenderTarget(Wg);a.scissorTest=!1;a.setSize(a.width,a.height)}function Vg(a){var b=new pb;b.add(new ca(ze[0],a));Y.compile(b,Xg)}function vi(a){a=new wa(3*lb,3*lb,a);a.texture.mapping=306;a.texture.name=
+"PMREM.cubeUv";a.scissorTest=!0;return a}function Yg(a,b,c,d,e){a.viewport.set(b,c,d,e);a.scissor.set(b,c,d,e)}function xi(a){var b=Y.autoClear;Y.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]);Y.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 k=new pb;
+k.add(new ca(ze[d],Af));var l=Af.uniforms,m=Ci[c]-1;m=isFinite(e)?Math.PI/(2*m):2*Math.PI/39;var h=e/m,p=isFinite(e)?1+Math.floor(3*h):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 q=0,n=0;20>n;++n){var r=n/h;r=Math.exp(-r*r/2);e.push(r);0==n?q+=r:n<p&&(q+=2*r)}for(n=0;n<e.length;n++)e[n]/=q;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=mb[a.texture.encoding];l.outputEncoding.value=mb[a.texture.encoding];a=Ci[d];r=3*Math.max(0,lb-2*a);Yg(b,r,(0===d?0:2*lb)+2*a*(4<d?d-8+4:0),3*a,2*a);Y.setRenderTarget(b);Y.render(k,Xg)}function Di(){var a=new w(1,1);a=new vb({uniforms:{envMap:{value:null},texelSize:{value:a},inputEncoding:{value:mb[3E3]},outputEncoding:{value:mb[3E3]}},vertexShader:Zg(),fragmentShader:"\nprecision mediump float;\nprecision mediump int;\nvarying vec3 vOutputDirection;\nuniform sampler2D envMap;\nuniform vec2 texelSize;\n\n"+
 $g()+"\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",
 $g()+"\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 vb({uniforms:{envMap:{value:null},inputEncoding:{value:mb[3E3]},outputEncoding:{value:mb[3E3]}},vertexShader:Zg(),fragmentShader:"\nprecision mediump float;\nprecision mediump int;\nvarying vec3 vOutputDirection;\nuniform samplerCube envMap;\n\n"+$g()+"\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",
 blending:0,depthTest:!1,depthWrite:!1});a.type="EquirectangularToCubeUV";return a}function Ei(){var a=new vb({uniforms:{envMap:{value:null},inputEncoding:{value:mb[3E3]},outputEncoding:{value:mb[3E3]}},vertexShader:Zg(),fragmentShader:"\nprecision mediump float;\nprecision mediump int;\nvarying vec3 vOutputDirection;\nuniform samplerCube envMap;\n\n"+$g()+"\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",
 blending:0,depthTest:!1,depthWrite:!1});a.type="CubemapToCubeUV";return a}function Zg(){return"\nprecision mediump float;\nprecision mediump int;\nattribute vec3 position;\nattribute vec2 uv;\nattribute float faceIndex;\nvarying vec3 vOutputDirection;\nvec3 getDirection(vec2 uv, float face) {\n\tuv = 2.0 * uv - 1.0;\n\tvec3 direction = vec3(uv, 1.0);\n\tif (face == 0.0) {\n\t\tdirection = direction.zyx;\n\t\tdirection.z *= -1.0;\n\t} else if (face == 1.0) {\n\t\tdirection = direction.xzy;\n\t\tdirection.z *= -1.0;\n\t} else if (face == 3.0) {\n\t\tdirection = direction.zyx;\n\t\tdirection.x *= -1.0;\n\t} else if (face == 4.0) {\n\t\tdirection = direction.xzy;\n\t\tdirection.y *= -1.0;\n\t} else if (face == 5.0) {\n\t\tdirection.xz *= -1.0;\n\t}\n\treturn direction;\n}\nvoid main() {\n\tvOutputDirection = getDirection(uv, faceIndex);\n\tgl_Position = vec4( position, 1.0 );\n}\n\t"}
 blending:0,depthTest:!1,depthWrite:!1});a.type="CubemapToCubeUV";return a}function Zg(){return"\nprecision mediump float;\nprecision mediump int;\nattribute vec3 position;\nattribute vec2 uv;\nattribute float faceIndex;\nvarying vec3 vOutputDirection;\nvec3 getDirection(vec2 uv, float face) {\n\tuv = 2.0 * uv - 1.0;\n\tvec3 direction = vec3(uv, 1.0);\n\tif (face == 0.0) {\n\t\tdirection = direction.zyx;\n\t\tdirection.z *= -1.0;\n\t} else if (face == 1.0) {\n\t\tdirection = direction.xzy;\n\t\tdirection.z *= -1.0;\n\t} else if (face == 3.0) {\n\t\tdirection = direction.zyx;\n\t\tdirection.x *= -1.0;\n\t} else if (face == 4.0) {\n\t\tdirection = direction.xzy;\n\t\tdirection.y *= -1.0;\n\t} else if (face == 5.0) {\n\t\tdirection.xz *= -1.0;\n\t}\n\treturn direction;\n}\nvoid main() {\n\tvOutputDirection = getDirection(uv, faceIndex);\n\tgl_Position = vec4( position, 1.0 );\n}\n\t"}
@@ -426,12 +427,12 @@ a[8]*a[8]+a[9]*a[9]+a[10]*a[10]))},makeTranslation:function(a,b,c){this.set(1,0,
 Math.cos(b);b=Math.sin(b);var d=1-c,e=a.x,f=a.y;a=a.z;var g=d*e,k=d*f;this.set(g*e+c,g*f-b*a,g*a+b*f,0,g*f+b*a,k*f+c,k*a-b*e,0,g*a-b*f,k*a+b*e,d*a*a+c,0,0,0,0,1);return this},makeScale:function(a,b,c){this.set(a,0,0,0,0,b,0,0,0,0,c,0,0,0,0,1);return this},makeShear:function(a,b,c){this.set(1,b,c,0,a,1,c,0,a,b,1,0,0,0,0,1);return this},compose:function(a,b,c){var d=this.elements,e=b._x,f=b._y,g=b._z,k=b._w,l=e+e,m=f+f,h=g+g;b=e*l;var p=e*m;e*=h;var n=f*m;f*=h;g*=h;l*=k;m*=k;k*=h;h=c.x;var t=c.y;c=
 Math.cos(b);b=Math.sin(b);var d=1-c,e=a.x,f=a.y;a=a.z;var g=d*e,k=d*f;this.set(g*e+c,g*f-b*a,g*a+b*f,0,g*f+b*a,k*f+c,k*a-b*e,0,g*a-b*f,k*a+b*e,d*a*a+c,0,0,0,0,1);return this},makeScale:function(a,b,c){this.set(a,0,0,0,0,b,0,0,0,0,c,0,0,0,0,1);return this},makeShear:function(a,b,c){this.set(1,b,c,0,a,1,c,0,a,b,1,0,0,0,0,1);return this},compose:function(a,b,c){var d=this.elements,e=b._x,f=b._y,g=b._z,k=b._w,l=e+e,m=f+f,h=g+g;b=e*l;var p=e*m;e*=h;var n=f*m;f*=h;g*=h;l*=k;m*=k;k*=h;h=c.x;var t=c.y;c=
 c.z;d[0]=(1-(n+g))*h;d[1]=(p+k)*h;d[2]=(e-m)*h;d[3]=0;d[4]=(p-k)*t;d[5]=(1-(b+g))*t;d[6]=(f+l)*t;d[7]=0;d[8]=(e+m)*c;d[9]=(f-l)*c;d[10]=(1-(b+n))*c;d[11]=0;d[12]=a.x;d[13]=a.y;d[14]=a.z;d[15]=1;return this},decompose:function(a,b,c){var d=this.elements,e=pd.set(d[0],d[1],d[2]).length(),f=pd.set(d[4],d[5],d[6]).length(),g=pd.set(d[8],d[9],d[10]).length();0>this.determinant()&&(e=-e);a.x=d[12];a.y=d[13];a.z=d[14];S.copy(this);a=1/e;d=1/f;var k=1/g;S.elements[0]*=a;S.elements[1]*=a;S.elements[2]*=a;
 c.z;d[0]=(1-(n+g))*h;d[1]=(p+k)*h;d[2]=(e-m)*h;d[3]=0;d[4]=(p-k)*t;d[5]=(1-(b+g))*t;d[6]=(f+l)*t;d[7]=0;d[8]=(e+m)*c;d[9]=(f-l)*c;d[10]=(1-(b+n))*c;d[11]=0;d[12]=a.x;d[13]=a.y;d[14]=a.z;d[15]=1;return this},decompose:function(a,b,c){var d=this.elements,e=pd.set(d[0],d[1],d[2]).length(),f=pd.set(d[4],d[5],d[6]).length(),g=pd.set(d[8],d[9],d[10]).length();0>this.determinant()&&(e=-e);a.x=d[12];a.y=d[13];a.z=d[14];S.copy(this);a=1/e;d=1/f;var k=1/g;S.elements[0]*=a;S.elements[1]*=a;S.elements[2]*=a;
 S.elements[4]*=d;S.elements[5]*=d;S.elements[6]*=d;S.elements[8]*=k;S.elements[9]*=k;S.elements[10]*=k;b.setFromRotationMatrix(S);c.x=e;c.y=f;c.z=g;return this},makePerspective:function(a,b,c,d,e,f){void 0===f&&console.warn("THREE.Matrix4: .makePerspective() has been redefined and has a new signature. Please check the docs.");var g=this.elements;g[0]=2*e/(b-a);g[4]=0;g[8]=(b+a)/(b-a);g[12]=0;g[1]=0;g[5]=2*e/(c-d);g[9]=(c+d)/(c-d);g[13]=0;g[2]=0;g[6]=0;g[10]=-(f+e)/(f-e);g[14]=-2*f*e/(f-e);g[3]=0;
 S.elements[4]*=d;S.elements[5]*=d;S.elements[6]*=d;S.elements[8]*=k;S.elements[9]*=k;S.elements[10]*=k;b.setFromRotationMatrix(S);c.x=e;c.y=f;c.z=g;return this},makePerspective:function(a,b,c,d,e,f){void 0===f&&console.warn("THREE.Matrix4: .makePerspective() has been redefined and has a new signature. Please check the docs.");var g=this.elements;g[0]=2*e/(b-a);g[4]=0;g[8]=(b+a)/(b-a);g[12]=0;g[1]=0;g[5]=2*e/(c-d);g[9]=(c+d)/(c-d);g[13]=0;g[2]=0;g[6]=0;g[10]=-(f+e)/(f-e);g[14]=-2*f*e/(f-e);g[3]=0;
-g[7]=0;g[11]=-1;g[15]=0;return this},makeOrthographic:function(a,b,c,d,e,f){var g=this.elements,k=1/(b-a),l=1/(c-d),m=1/(f-e);g[0]=2*k;g[4]=0;g[8]=0;g[12]=-((b+a)*k);g[1]=0;g[5]=2*l;g[9]=0;g[13]=-((c+d)*l);g[2]=0;g[6]=0;g[10]=-2*m;g[14]=-((f+e)*m);g[3]=0;g[7]=0;g[11]=0;g[15]=1;return this},equals:function(a){var b=this.elements;a=a.elements;for(var c=0;16>c;c++)if(b[c]!==a[c])return!1;return!0},fromArray:function(a,b){void 0===b&&(b=0);for(var c=0;16>c;c++)this.elements[c]=a[c+b];return this},toArray:function(a,
+g[7]=0;g[11]=-1;g[15]=0;return this},makeOrthographic:function(a,b,c,d,e,f){var g=this.elements,k=1/(b-a),l=1/(c-d),h=1/(f-e);g[0]=2*k;g[4]=0;g[8]=0;g[12]=-((b+a)*k);g[1]=0;g[5]=2*l;g[9]=0;g[13]=-((c+d)*l);g[2]=0;g[6]=0;g[10]=-2*h;g[14]=-((f+e)*h);g[3]=0;g[7]=0;g[11]=0;g[15]=1;return this},equals:function(a){var b=this.elements;a=a.elements;for(var c=0;16>c;c++)if(b[c]!==a[c])return!1;return!0},fromArray:function(a,b){void 0===b&&(b=0);for(var c=0;16>c;c++)this.elements[c]=a[c+b];return this},toArray:function(a,
 b){void 0===a&&(a=[]);void 0===b&&(b=0);var c=this.elements;a[b]=c[0];a[b+1]=c[1];a[b+2]=c[2];a[b+3]=c[3];a[b+4]=c[4];a[b+5]=c[5];a[b+6]=c[6];a[b+7]=c[7];a[b+8]=c[8];a[b+9]=c[9];a[b+10]=c[10];a[b+11]=c[11];a[b+12]=c[12];a[b+13]=c[13];a[b+14]=c[14];a[b+15]=c[15];return a}});var Ii=new O,Ji=new Da;Ub.RotationOrders="XYZ YZX ZXY XZY YXZ ZYX".split(" ");Ub.DefaultOrder="XYZ";Object.defineProperties(Ub.prototype,{x:{get:function(){return this._x},set:function(a){this._x=a;this._onChangeCallback()}},y:{get:function(){return this._y},
 b){void 0===a&&(a=[]);void 0===b&&(b=0);var c=this.elements;a[b]=c[0];a[b+1]=c[1];a[b+2]=c[2];a[b+3]=c[3];a[b+4]=c[4];a[b+5]=c[5];a[b+6]=c[6];a[b+7]=c[7];a[b+8]=c[8];a[b+9]=c[9];a[b+10]=c[10];a[b+11]=c[11];a[b+12]=c[12];a[b+13]=c[13];a[b+14]=c[14];a[b+15]=c[15];return a}});var Ii=new O,Ji=new Da;Ub.RotationOrders="XYZ YZX ZXY XZY YXZ ZYX".split(" ");Ub.DefaultOrder="XYZ";Object.defineProperties(Ub.prototype,{x:{get:function(){return this._x},set:function(a){this._x=a;this._onChangeCallback()}},y:{get:function(){return this._y},
 set:function(a){this._y=a;this._onChangeCallback()}},z:{get:function(){return this._z},set:function(a){this._z=a;this._onChangeCallback()}},order:{get:function(){return this._order},set:function(a){this._order=a;this._onChangeCallback()}}});Object.assign(Ub.prototype,{isEuler:!0,set:function(a,b,c,d){this._x=a;this._y=b;this._z=c;this._order=d||this._order;this._onChangeCallback();return this},clone:function(){return new this.constructor(this._x,this._y,this._z,this._order)},copy:function(a){this._x=
 set:function(a){this._y=a;this._onChangeCallback()}},z:{get:function(){return this._z},set:function(a){this._z=a;this._onChangeCallback()}},order:{get:function(){return this._order},set:function(a){this._order=a;this._onChangeCallback()}}});Object.assign(Ub.prototype,{isEuler:!0,set:function(a,b,c,d){this._x=a;this._y=b;this._z=c;this._order=d||this._order;this._onChangeCallback();return this},clone:function(){return new this.constructor(this._x,this._y,this._z,this._order)},copy:function(a){this._x=
-a._x;this._y=a._y;this._z=a._z;this._order=a._order;this._onChangeCallback();return this},setFromRotationMatrix:function(a,b,c){var d=P.clamp,e=a.elements;a=e[0];var f=e[4],g=e[8],k=e[1],l=e[5],m=e[9],h=e[2],p=e[6];e=e[10];b=b||this._order;"XYZ"===b?(this._y=Math.asin(d(g,-1,1)),.9999999>Math.abs(g)?(this._x=Math.atan2(-m,e),this._z=Math.atan2(-f,a)):(this._x=Math.atan2(p,l),this._z=0)):"YXZ"===b?(this._x=Math.asin(-d(m,-1,1)),.9999999>Math.abs(m)?(this._y=Math.atan2(g,e),this._z=Math.atan2(k,l)):
-(this._y=Math.atan2(-h,a),this._z=0)):"ZXY"===b?(this._x=Math.asin(d(p,-1,1)),.9999999>Math.abs(p)?(this._y=Math.atan2(-h,e),this._z=Math.atan2(-f,l)):(this._y=0,this._z=Math.atan2(k,a))):"ZYX"===b?(this._y=Math.asin(-d(h,-1,1)),.9999999>Math.abs(h)?(this._x=Math.atan2(p,e),this._z=Math.atan2(k,a)):(this._x=0,this._z=Math.atan2(-f,l))):"YZX"===b?(this._z=Math.asin(d(k,-1,1)),.9999999>Math.abs(k)?(this._x=Math.atan2(-m,l),this._y=Math.atan2(-h,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._x;this._y=a._y;this._z=a._z;this._order=a._order;this._onChangeCallback();return this},setFromRotationMatrix:function(a,b,c){var d=P.clamp,e=a.elements;a=e[0];var f=e[4],g=e[8],k=e[1],l=e[5],h=e[9],n=e[2],p=e[6];e=e[10];b=b||this._order;"XYZ"===b?(this._y=Math.asin(d(g,-1,1)),.9999999>Math.abs(g)?(this._x=Math.atan2(-h,e),this._z=Math.atan2(-f,a)):(this._x=Math.atan2(p,l),this._z=0)):"YXZ"===b?(this._x=Math.asin(-d(h,-1,1)),.9999999>Math.abs(h)?(this._y=Math.atan2(g,e),this._z=Math.atan2(k,l)):
+(this._y=Math.atan2(-n,a),this._z=0)):"ZXY"===b?(this._x=Math.asin(d(p,-1,1)),.9999999>Math.abs(p)?(this._y=Math.atan2(-n,e),this._z=Math.atan2(-f,l)):(this._y=0,this._z=Math.atan2(k,a))):"ZYX"===b?(this._y=Math.asin(-d(n,-1,1)),.9999999>Math.abs(n)?(this._x=Math.atan2(p,e),this._z=Math.atan2(k,a)):(this._x=0,this._z=Math.atan2(-f,l))):"YZX"===b?(this._z=Math.asin(d(k,-1,1)),.9999999>Math.abs(k)?(this._x=Math.atan2(-h,l),this._y=Math.atan2(-n,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(-h,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)},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(ag.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,qd=new Da,zb=new O,Ef=new n,Be=new n,Tk=new n,Uk=new Da,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(ag.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,qd=new Da,zb=new O,Ef=new n,Be=new n,Tk=new n,Uk=new Da,Li=new n(1,0,0),Mi=new n(0,1,0),Ni=new n(0,0,1),Vk={type:"added"},Wk={type:"removed"};
 D.DefaultUp=new n(0,1,0);D.DefaultMatrixAutoUpdate=!0;D.prototype=Object.assign(Object.create(Fa.prototype),{constructor:D,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)},
 D.DefaultUp=new n(0,1,0);D.DefaultMatrixAutoUpdate=!0;D.prototype=Object.assign(Object.create(Fa.prototype),{constructor:D,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)},
@@ -450,15 +451,15 @@ traverseAncestors:function(a){var b=this.parent;null!==b&&(a(b),b.traverseAncest
 0<k.length&&(e.materials=k);0<l.length&&(e.textures=l);0<h.length&&(e.images=h);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;
 0<k.length&&(e.materials=k);0<l.length&&(e.textures=l);0<h.length&&(e.images=h);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}});pb.prototype=Object.assign(Object.create(D.prototype),{constructor:pb,isScene:!0,copy:function(a,b){D.prototype.copy.call(this,a,b);null!==a.background&&(this.background=a.background.clone());
 this.layers.mask=a.layers.mask;this.visible=a.visible;this.castShadow=a.castShadow;this.receiveShadow=a.receiveShadow;this.frustumCulled=a.frustumCulled;this.renderOrder=a.renderOrder;this.userData=JSON.parse(JSON.stringify(a.userData));if(!0===b)for(b=0;b<a.children.length;b++)this.add(a.children[b].clone());return this}});pb.prototype=Object.assign(Object.create(D.prototype),{constructor:pb,isScene:!0,copy:function(a,b){D.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=D.prototype.toJSON.call(this,a);null!==this.background&&(b.object.background=this.background.toJSON(a));null!==this.environment&&(b.object.environment=this.environment.toJSON(a));null!==this.fog&&(b.object.fog=this.fog.toJSON());
 null!==a.environment&&(this.environment=a.environment.clone());null!==a.fog&&(this.fog=a.fog.clone());null!==a.overrideMaterial&&(this.overrideMaterial=a.overrideMaterial.clone());this.autoUpdate=a.autoUpdate;this.matrixAutoUpdate=a.matrixAutoUpdate;return this},toJSON:function(a){var b=D.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 Ab=[new n,new n,new n,new n,new n,new n,new n,new n],Ce=new n,Ff=new Ta,rd=new n,sd=new n,td=new n,Ob=new n,Pb=new n,sc=new n,De=new n,Gf=new n,Hf=new n,Vb=new n;Object.assign(Ta.prototype,{isBox3:!0,set:function(a,b){this.min.copy(a);this.max.copy(b);return this},setFromArray:function(a){for(var b=Infinity,c=Infinity,d=Infinity,e=-Infinity,f=-Infinity,g=-Infinity,k=0,l=a.length;k<l;k+=3){var h=a[k],n=a[k+1],p=a[k+2];h<b&&(b=
+return b},dispose:function(){this.dispatchEvent({type:"dispose"})}});var Ab=[new n,new n,new n,new n,new n,new n,new n,new n],Ce=new n,Ff=new Ta,rd=new n,sd=new n,td=new n,Ob=new n,Pb=new n,tc=new n,De=new n,Gf=new n,Hf=new n,Vb=new n;Object.assign(Ta.prototype,{isBox3:!0,set:function(a,b){this.min.copy(a);this.max.copy(b);return this},setFromArray:function(a){for(var b=Infinity,c=Infinity,d=Infinity,e=-Infinity,f=-Infinity,g=-Infinity,k=0,l=a.length;k<l;k+=3){var h=a[k],n=a[k+1],p=a[k+2];h<b&&(b=
 h);n<c&&(c=n);p<d&&(d=p);h>e&&(e=h);n>f&&(f=n);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,k=0,l=a.count;k<l;k++){var h=a.getX(k),n=a.getY(k),p=a.getZ(k);h<b&&(b=h);n<c&&(c=n);p<d&&(d=p);h>e&&(e=h);n>f&&(f=n);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]);
 h);n<c&&(c=n);p<d&&(d=p);h>e&&(e=h);n>f&&(f=n);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,k=0,l=a.count;k<l;k++){var h=a.getX(k),n=a.getY(k),p=a.getZ(k);h<b&&(b=h);n<c&&(c=n);p<d&&(d=p);h>e&&(e=h);n>f&&(f=n);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=Ce.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=Ce.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.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(),Ff.copy(b.boundingBox),Ff.applyMatrix4(a.matrixWorld),this.expandByPoint(Ff.min),this.expandByPoint(Ff.max));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.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(),Ff.copy(b.boundingBox),Ff.applyMatrix4(a.matrixWorld),this.expandByPoint(Ff.min),this.expandByPoint(Ff.max));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.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,Ce);return Ce.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);
 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,Ce);return Ce.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(De);Gf.subVectors(this.max,De);rd.subVectors(a.a,De);sd.subVectors(a.b,De);td.subVectors(a.c,De);Ob.subVectors(sd,rd);Pb.subVectors(td,sd);sc.subVectors(rd,td);a=[0,-Ob.z,Ob.y,0,-Pb.z,Pb.y,0,-sc.z,sc.y,Ob.z,0,-Ob.x,Pb.z,0,-Pb.x,sc.z,0,-sc.x,-Ob.y,Ob.x,0,-Pb.y,Pb.x,0,-sc.y,
-sc.x,0];if(!bg(a,rd,sd,td,Gf))return!1;a=[1,0,0,0,1,0,0,0,1];if(!bg(a,rd,sd,td,Gf))return!1;Hf.crossVectors(Ob,Pb);a=[Hf.x,Hf.y,Hf.z];return bg(a,rd,sd,td,Gf)},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 Ce.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");
+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(De);Gf.subVectors(this.max,De);rd.subVectors(a.a,De);sd.subVectors(a.b,De);td.subVectors(a.c,De);Ob.subVectors(sd,rd);Pb.subVectors(td,sd);tc.subVectors(rd,td);a=[0,-Ob.z,Ob.y,0,-Pb.z,Pb.y,0,-tc.z,tc.y,Ob.z,0,-Ob.x,Pb.z,0,-Pb.x,tc.z,0,-tc.x,-Ob.y,Ob.x,0,-Pb.y,Pb.x,0,-tc.y,
+tc.x,0];if(!bg(a,rd,sd,td,Gf))return!1;a=[1,0,0,0,1,0,0,0,1];if(!bg(a,rd,sd,td,Gf))return!1;Hf.crossVectors(Ob,Pb);a=[Hf.x,Hf.y,Hf.z];return bg(a,rd,sd,td,Gf)},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 Ce.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(Ce).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;Ab[0].set(this.min.x,this.min.y,this.min.z).applyMatrix4(a);Ab[1].set(this.min.x,this.min.y,this.max.z).applyMatrix4(a);Ab[2].set(this.min.x,this.max.y,this.min.z).applyMatrix4(a);Ab[3].set(this.min.x,
 this.getCenter(a.center);a.radius=.5*this.getSize(Ce).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;Ab[0].set(this.min.x,this.min.y,this.min.z).applyMatrix4(a);Ab[1].set(this.min.x,this.min.y,this.max.z).applyMatrix4(a);Ab[2].set(this.min.x,this.max.y,this.min.z).applyMatrix4(a);Ab[3].set(this.min.x,
 this.max.y,this.max.z).applyMatrix4(a);Ab[4].set(this.max.x,this.min.y,this.min.z).applyMatrix4(a);Ab[5].set(this.max.x,this.min.y,this.max.z).applyMatrix4(a);Ab[6].set(this.max.x,this.max.y,this.min.z).applyMatrix4(a);Ab[7].set(this.max.x,this.max.y,this.max.z).applyMatrix4(a);this.setFromPoints(Ab);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 Ta;Object.assign(qb.prototype,{set:function(a,
 this.max.y,this.max.z).applyMatrix4(a);Ab[4].set(this.max.x,this.min.y,this.min.z).applyMatrix4(a);Ab[5].set(this.max.x,this.min.y,this.max.z).applyMatrix4(a);Ab[6].set(this.max.x,this.max.y,this.min.z).applyMatrix4(a);Ab[7].set(this.max.x,this.max.y,this.max.z).applyMatrix4(a);this.setFromPoints(Ab);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 Ta;Object.assign(qb.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)<=
 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)<=
@@ -497,7 +498,7 @@ dg(a.r);this.g=dg(a.g);this.b=dg(a.b);return this},copyLinearToSRGB:function(a){
 a={h:0,s:0,l:0});var b=this.r,c=this.g,d=this.b,e=Math.max(b,c,d),f=Math.min(b,c,d),g,k=(f+e)/2;if(f===e)f=g=0;else{var l=e-f;f=.5>=k?l/(e+f):l/(2-e-f);switch(e){case b:g=(c-d)/l+(c<d?6:0);break;case c:g=(d-b)/l+2;break;case d:g=(b-c)/l+4}g/=6}a.h=g;a.s=f;a.l=k;return a},getStyle:function(){return"rgb("+(255*this.r|0)+","+(255*this.g|0)+","+(255*this.b|0)+")"},offsetHSL:function(a,b,c){this.getHSL(Ca);Ca.h+=a;Ca.s+=b;Ca.l+=c;this.setHSL(Ca.h,Ca.s,Ca.l);return this},add:function(a){this.r+=a.r;this.g+=
 a={h:0,s:0,l:0});var b=this.r,c=this.g,d=this.b,e=Math.max(b,c,d),f=Math.min(b,c,d),g,k=(f+e)/2;if(f===e)f=g=0;else{var l=e-f;f=.5>=k?l/(e+f):l/(2-e-f);switch(e){case b:g=(c-d)/l+(c<d?6:0);break;case c:g=(d-b)/l+2;break;case d:g=(b-c)/l+4}g/=6}a.h=g;a.s=f;a.l=k;return a},getStyle:function(){return"rgb("+(255*this.r|0)+","+(255*this.g|0)+","+(255*this.b|0)+")"},offsetHSL:function(a,b,c){this.getHSL(Ca);Ca.h+=a;Ca.s+=b;Ca.l+=c;this.setHSL(Ca.h,Ca.s,Ca.l);return this},add:function(a){this.r+=a.r;this.g+=
 a.g;this.b+=a.b;return this},addColors:function(a,b){this.r=a.r+b.r;this.g=a.g+b.g;this.b=a.b+b.b;return this},addScalar:function(a){this.r+=a;this.g+=a;this.b+=a;return this},sub:function(a){this.r=Math.max(0,this.r-a.r);this.g=Math.max(0,this.g-a.g);this.b=Math.max(0,this.b-a.b);return this},multiply:function(a){this.r*=a.r;this.g*=a.g;this.b*=a.b;return this},multiplyScalar:function(a){this.r*=a;this.g*=a;this.b*=a;return this},lerp:function(a,b){this.r+=(a.r-this.r)*b;this.g+=(a.g-this.g)*b;this.b+=
 a.g;this.b+=a.b;return this},addColors:function(a,b){this.r=a.r+b.r;this.g=a.g+b.g;this.b=a.b+b.b;return this},addScalar:function(a){this.r+=a;this.g+=a;this.b+=a;return this},sub:function(a){this.r=Math.max(0,this.r-a.r);this.g=Math.max(0,this.g-a.g);this.b=Math.max(0,this.b-a.b);return this},multiply:function(a){this.r*=a.r;this.g*=a.g;this.b*=a.b;return this},multiplyScalar:function(a){this.r*=a;this.g*=a;this.b*=a;return this},lerp:function(a,b){this.r+=(a.r-this.r)*b;this.g+=(a.g-this.g)*b;this.b+=
 (a.b-this.b)*b;return this},lerpHSL:function(a,b){this.getHSL(Ca);a.getHSL(Kf);a=P.lerp(Ca.h,Kf.h,b);var c=P.lerp(Ca.s,Kf.s,b);b=P.lerp(Ca.l,Kf.l,b);this.setHSL(a,c,b);return this},equals:function(a){return a.r===this.r&&a.g===this.g&&a.b===this.b},fromArray:function(a,b){void 0===b&&(b=0);this.r=a[b];this.g=a[b+1];this.b=a[b+2];return this},toArray:function(a,b){void 0===a&&(a=[]);void 0===b&&(b=0);a[b]=this.r;a[b+1]=this.g;a[b+2]=this.b;return a},toJSON:function(){return this.getHex()}});B.NAMES=
 (a.b-this.b)*b;return this},lerpHSL:function(a,b){this.getHSL(Ca);a.getHSL(Kf);a=P.lerp(Ca.h,Kf.h,b);var c=P.lerp(Ca.s,Kf.s,b);b=P.lerp(Ca.l,Kf.l,b);this.setHSL(a,c,b);return this},equals:function(a){return a.r===this.r&&a.g===this.g&&a.b===this.b},fromArray:function(a,b){void 0===b&&(b=0);this.r=a[b];this.g=a[b+1];this.b=a[b+2];return this},toArray:function(a,b){void 0===a&&(a=[]);void 0===b&&(b=0);a[b]=this.r;a[b+1]=this.g;a[b+2]=this.b;return a},toJSON:function(){return this.getHex()}});B.NAMES=
-Pi;Object.assign(Bc.prototype,{clone:function(){return(new this.constructor).copy(this)},copy:function(a){this.a=a.a;this.b=a.b;this.c=a.c;this.normal.copy(a.normal);this.color.copy(a.color);this.materialIndex=a.materialIndex;for(var b=0,c=a.vertexNormals.length;b<c;b++)this.vertexNormals[b]=a.vertexNormals[b].clone();b=0;for(c=a.vertexColors.length;b<c;b++)this.vertexColors[b]=a.vertexColors[b].clone();return this}});var rj=0;K.prototype=Object.assign(Object.create(Fa.prototype),{constructor:K,isMaterial:!0,
+Pi;Object.assign(Cc.prototype,{clone:function(){return(new this.constructor).copy(this)},copy:function(a){this.a=a.a;this.b=a.b;this.c=a.c;this.normal.copy(a.normal);this.color.copy(a.color);this.materialIndex=a.materialIndex;for(var b=0,c=a.vertexNormals.length;b<c;b++)this.vertexNormals[b]=a.vertexNormals[b].clone();b=0;for(c=a.vertexColors.length;b<c;b++)this.vertexColors[b]=a.vertexColors[b].clone();return this}});var rj=0;K.prototype=Object.assign(Object.create(Fa.prototype),{constructor:K,isMaterial:!0,
 onBeforeCompile:function(){},setValues:function(a){if(void 0!==a)for(var b in a){var c=a[b];if(void 0===c)console.warn("THREE.Material: '"+b+"' parameter is undefined.");else if("shading"===b)console.warn("THREE."+this.type+": .shading has been removed. Use the boolean .flatShading instead."),this.flatShading=1===c?!0:!1;else{var d=this[b];void 0===d?console.warn("THREE."+this.type+": '"+b+"' is not a property of this material."):d&&d.isColor?d.set(c):d&&d.isVector3&&c&&c.isVector3?d.copy(c):this[b]=
 onBeforeCompile:function(){},setValues:function(a){if(void 0!==a)for(var b in a){var c=a[b];if(void 0===c)console.warn("THREE.Material: '"+b+"' parameter is undefined.");else if("shading"===b)console.warn("THREE."+this.type+": .shading has been removed. Use the boolean .flatShading instead."),this.flatShading=1===c?!0:!1;else{var d=this[b];void 0===d?console.warn("THREE."+this.type+": '"+b+"' is not a property of this material."):d&&d.isColor?d.set(c):d&&d.isVector3&&c&&c.isVector3?d.copy(c):this[b]=
 c}}},toJSON:function(a){function b(a){var b=[],c;for(c in a){var d=a[c];delete d.metadata;b.push(d)}return b}var c=void 0===a||"string"===typeof a;c&&(a={textures:{},images:{}});var d={metadata:{version:4.5,type:"Material",generator:"Material.toJSON"}};d.uuid=this.uuid;d.type=this.type;""!==this.name&&(d.name=this.name);this.color&&this.color.isColor&&(d.color=this.color.getHex());void 0!==this.roughness&&(d.roughness=this.roughness);void 0!==this.metalness&&(d.metalness=this.metalness);this.sheen&&
 c}}},toJSON:function(a){function b(a){var b=[],c;for(c in a){var d=a[c];delete d.metadata;b.push(d)}return b}var c=void 0===a||"string"===typeof a;c&&(a={textures:{},images:{}});var d={metadata:{version:4.5,type:"Material",generator:"Material.toJSON"}};d.uuid=this.uuid;d.type=this.type;""!==this.name&&(d.name=this.name);this.color&&this.color.isColor&&(d.color=this.color.getHex());void 0!==this.roughness&&(d.roughness=this.roughness);void 0!==this.metalness&&(d.metalness=this.metalness);this.sheen&&
 this.sheen.isColor&&(d.sheen=this.sheen.getHex());this.emissive&&this.emissive.isColor&&(d.emissive=this.emissive.getHex());this.emissiveIntensity&&1!==this.emissiveIntensity&&(d.emissiveIntensity=this.emissiveIntensity);this.specular&&this.specular.isColor&&(d.specular=this.specular.getHex());void 0!==this.shininess&&(d.shininess=this.shininess);void 0!==this.clearcoat&&(d.clearcoat=this.clearcoat);void 0!==this.clearcoatRoughness&&(d.clearcoatRoughness=this.clearcoatRoughness);this.clearcoatNormalMap&&
 this.sheen.isColor&&(d.sheen=this.sheen.getHex());this.emissive&&this.emissive.isColor&&(d.emissive=this.emissive.getHex());this.emissiveIntensity&&1!==this.emissiveIntensity&&(d.emissiveIntensity=this.emissiveIntensity);this.specular&&this.specular.isColor&&(d.specular=this.specular.getHex());void 0!==this.shininess&&(d.shininess=this.shininess);void 0!==this.clearcoat&&(d.clearcoat=this.clearcoat);void 0!==this.clearcoatRoughness&&(d.clearcoatRoughness=this.clearcoatRoughness);this.clearcoatNormalMap&&
@@ -546,16 +547,16 @@ k=b.length;g<k;g++){e=b[g]*a;for(var l=0;l<a;l++)d[f++]=c[e++]}return new M(d,a)
 d=0;for(e=c.length;d<e;d++)f=c[d],b.addGroup(f.start,f.count,f.materialIndex);return b},toJSON:function(){var a={metadata:{version:4.5,type:"BufferGeometry",generator:"BufferGeometry.toJSON"}};a.uuid=this.uuid;a.type=this.type;""!==this.name&&(a.name=this.name);0<Object.keys(this.userData).length&&(a.userData=this.userData);if(void 0!==this.parameters){var b=this.parameters;for(h in b)void 0!==b[h]&&(a[h]=b[h]);return a}a.data={attributes:{}};b=this.index;null!==b&&(a.data.index={type:b.array.constructor.name,
 d=0;for(e=c.length;d<e;d++)f=c[d],b.addGroup(f.start,f.count,f.materialIndex);return b},toJSON:function(){var a={metadata:{version:4.5,type:"BufferGeometry",generator:"BufferGeometry.toJSON"}};a.uuid=this.uuid;a.type=this.type;""!==this.name&&(a.name=this.name);0<Object.keys(this.userData).length&&(a.userData=this.userData);if(void 0!==this.parameters){var b=this.parameters;for(h in b)void 0!==b[h]&&(a[h]=b[h]);return a}a.data={attributes:{}};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(h in c){b=c[h];var d=b.toJSON();""!==b.name&&(d.name=b.name);a.data.attributes[h]=d}c={};var e=!1;for(h in this.morphAttributes){for(var f=this.morphAttributes[h],g=[],k=0,l=f.length;k<l;k++)b=f[k],d=b.toJSON(),""!==b.name&&(d.name=b.name),g.push(d);0<g.length&&(c[h]=g,e=!0)}e&&(a.data.morphAttributes=c,a.data.morphTargetsRelative=this.morphTargetsRelative);var h=this.groups;0<h.length&&(a.data.groups=JSON.parse(JSON.stringify(h)));
 array:Array.prototype.slice.call(b.array)});var c=this.attributes;for(h in c){b=c[h];var d=b.toJSON();""!==b.name&&(d.name=b.name);a.data.attributes[h]=d}c={};var e=!1;for(h in this.morphAttributes){for(var f=this.morphAttributes[h],g=[],k=0,l=f.length;k<l;k++)b=f[k],d=b.toJSON(),""!==b.name&&(d.name=b.name),g.push(d);0<g.length&&(c[h]=g,e=!0)}e&&(a.data.morphAttributes=c,a.data.morphTargetsRelative=this.morphTargetsRelative);var h=this.groups;0<h.length&&(a.data.groups=JSON.parse(JSON.stringify(h)));
 h=this.boundingSphere;null!==h&&(a.data.boundingSphere={center:h.center.toArray(),radius:h.radius});return a},clone:function(){return(new A).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());
 h=this.boundingSphere;null!==h&&(a.data.boundingSphere={center:h.center.toArray(),radius:h.radius});return a},clone:function(){return(new A).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 O,tc=new Wb,lh=new qb,Zb=new n,
-$b=new n,ac=new n,fg=new n,gg=new n,hg=new n,Me=new n,Ne=new n,Oe=new n,Cc=new w,Dc=new w,Ec=new w,Id=new n,Ke=new n;ca.prototype=Object.assign(Object.create(D.prototype),{constructor:ca,isMesh:!0,copy:function(a){D.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;
+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 O,uc=new Wb,lh=new qb,Zb=new n,
+$b=new n,ac=new n,fg=new n,gg=new n,hg=new n,Me=new n,Ne=new n,Oe=new n,Dc=new w,Ec=new w,Fc=new w,Id=new n,Ke=new n;ca.prototype=Object.assign(Object.create(D.prototype),{constructor:ca,isMesh:!0,copy:function(a){D.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,
 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,k=c.morphTargetsRelative,l=c.attributes.uv,h=c.attributes.uv2,n=c.groups,p=c.drawRange,q,t;if(null!==f)if(Array.isArray(d)){var r=0;
-for(q=n.length;r<q;r++){var u=n[r];var y=d[u.materialIndex];var v=Math.max(u.start,p.start);for(t=c=Math.min(u.start+u.count,p.start+p.count);v<t;v+=3){c=f.getX(v);var C=f.getX(v+1);var A=f.getX(v+2);if(c=Le(this,y,a,tc,e,g,k,l,h,c,C,A))c.faceIndex=Math.floor(v/3),c.face.materialIndex=u.materialIndex,b.push(c)}}}else for(v=Math.max(0,p.start),c=Math.min(f.count,p.start+p.count),r=v,q=c;r<q;r+=3){if(c=f.getX(r),C=f.getX(r+1),A=f.getX(r+2),c=Le(this,d,a,tc,e,g,k,l,h,c,C,A))c.faceIndex=Math.floor(r/
-3),b.push(c)}else if(void 0!==e)if(Array.isArray(d))for(r=0,q=n.length;r<q;r++)for(u=n[r],y=d[u.materialIndex],v=Math.max(u.start,p.start),t=c=Math.min(u.start+u.count,p.start+p.count);v<t;v+=3){if(c=v,C=v+1,A=v+2,c=Le(this,y,a,tc,e,g,k,l,h,c,C,A))c.faceIndex=Math.floor(v/3),c.face.materialIndex=u.materialIndex,b.push(c)}else for(v=Math.max(0,p.start),c=Math.min(e.count,p.start+p.count),r=v,q=c;r<q;r+=3)if(c=r,C=r+1,A=r+2,c=Le(this,d,a,tc,e,g,k,l,h,c,C,A))c.faceIndex=Math.floor(r/3),b.push(c)}else if(c.isGeometry)for(e=
-Array.isArray(d),g=c.vertices,k=c.faces,c=c.faceVertexUvs[0],0<c.length&&(f=c),p=0,r=k.length;p<r;p++)if(q=k[p],c=e?d[q.materialIndex]:d,void 0!==c&&(l=g[q.a],h=g[q.b],n=g[q.c],c=zh(this,c,a,tc,l,h,n,Id)))f&&f[p]&&(u=f[p],Cc.copy(u[0]),Dc.copy(u[1]),Ec.copy(u[2]),c.uv=oa.getUV(Id,l,h,n,Cc,Dc,Ec,new w)),c.face=q,c.faceIndex=p,b.push(c)},clone:function(){return(new this.constructor(this.geometry,this.material)).copy(this)}});var tj=0,ob=new O,mh=new D,Lf=new n;L.prototype=Object.assign(Object.create(Fa.prototype),
+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),uc.copy(a.ray).applyMatrix4(Qi),null===c.boundingBox||!1!==uc.intersectsBox(c.boundingBox))))if(c.isBufferGeometry){var f=c.index;e=c.attributes.position;var g=c.morphAttributes.position,k=c.morphTargetsRelative,l=c.attributes.uv,h=c.attributes.uv2,n=c.groups,p=c.drawRange,q,t;if(null!==f)if(Array.isArray(d)){var r=0;
+for(q=n.length;r<q;r++){var u=n[r];var y=d[u.materialIndex];var v=Math.max(u.start,p.start);for(t=c=Math.min(u.start+u.count,p.start+p.count);v<t;v+=3){c=f.getX(v);var C=f.getX(v+1);var A=f.getX(v+2);if(c=Le(this,y,a,uc,e,g,k,l,h,c,C,A))c.faceIndex=Math.floor(v/3),c.face.materialIndex=u.materialIndex,b.push(c)}}}else for(v=Math.max(0,p.start),c=Math.min(f.count,p.start+p.count),r=v,q=c;r<q;r+=3){if(c=f.getX(r),C=f.getX(r+1),A=f.getX(r+2),c=Le(this,d,a,uc,e,g,k,l,h,c,C,A))c.faceIndex=Math.floor(r/
+3),b.push(c)}else if(void 0!==e)if(Array.isArray(d))for(r=0,q=n.length;r<q;r++)for(u=n[r],y=d[u.materialIndex],v=Math.max(u.start,p.start),t=c=Math.min(u.start+u.count,p.start+p.count);v<t;v+=3){if(c=v,C=v+1,A=v+2,c=Le(this,y,a,uc,e,g,k,l,h,c,C,A))c.faceIndex=Math.floor(v/3),c.face.materialIndex=u.materialIndex,b.push(c)}else for(v=Math.max(0,p.start),c=Math.min(e.count,p.start+p.count),r=v,q=c;r<q;r+=3)if(c=r,C=r+1,A=r+2,c=Le(this,d,a,uc,e,g,k,l,h,c,C,A))c.faceIndex=Math.floor(r/3),b.push(c)}else if(c.isGeometry)for(e=
+Array.isArray(d),g=c.vertices,k=c.faces,c=c.faceVertexUvs[0],0<c.length&&(f=c),p=0,r=k.length;p<r;p++)if(q=k[p],c=e?d[q.materialIndex]:d,void 0!==c&&(l=g[q.a],h=g[q.b],n=g[q.c],c=zh(this,c,a,uc,l,h,n,Id)))f&&f[p]&&(u=f[p],Dc.copy(u[0]),Ec.copy(u[1]),Fc.copy(u[2]),c.uv=oa.getUV(Id,l,h,n,Dc,Ec,Fc,new w)),c.face=q,c.faceIndex=p,b.push(c)},clone:function(){return(new this.constructor(this.geometry,this.material)).copy(this)}});var tj=0,ob=new O,mh=new D,Lf=new n;L.prototype=Object.assign(Object.create(Fa.prototype),
 {constructor:L,isGeometry:!0,applyMatrix4:function(a){for(var b=(new za).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},
 {constructor:L,isGeometry:!0,applyMatrix4:function(a){for(var b=(new za).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){ob.makeRotationX(a);this.applyMatrix4(ob);return this},rotateY:function(a){ob.makeRotationY(a);this.applyMatrix4(ob);return this},rotateZ:function(a){ob.makeRotationZ(a);this.applyMatrix4(ob);return this},translate:function(a,b,c){ob.makeTranslation(a,b,c);this.applyMatrix4(ob);return this},scale:function(a,b,c){ob.makeScale(a,b,c);this.applyMatrix4(ob);return this},lookAt:function(a){mh.lookAt(a);mh.updateMatrix();this.applyMatrix4(mh.matrix);return this},fromBufferGeometry:function(a){function b(a,
 rotateX:function(a){ob.makeRotationX(a);this.applyMatrix4(ob);return this},rotateY:function(a){ob.makeRotationY(a);this.applyMatrix4(ob);return this},rotateZ:function(a){ob.makeRotationZ(a);this.applyMatrix4(ob);return this},translate:function(a,b,c){ob.makeTranslation(a,b,c);this.applyMatrix4(ob);return this},scale:function(a,b,c){ob.makeScale(a,b,c);this.applyMatrix4(ob);return this},lookAt:function(a){mh.lookAt(a);mh.updateMatrix();this.applyMatrix4(mh.matrix);return this},fromBufferGeometry:function(a){function b(a,
-b,d,e){var f=void 0===k?[]:[c.colors[a].clone(),c.colors[b].clone(),c.colors[d].clone()],m=void 0===g?[]:[(new n).fromArray(g,3*a),(new n).fromArray(g,3*b),(new n).fromArray(g,3*d)];e=new Bc(a,b,d,m,f,e);c.faces.push(e);void 0!==l&&c.faceVertexUvs[0].push([(new w).fromArray(l,2*a),(new w).fromArray(l,2*b),(new w).fromArray(l,2*d)]);void 0!==h&&c.faceVertexUvs[1].push([(new w).fromArray(h,2*a),(new w).fromArray(h,2*b),(new w).fromArray(h,2*d)])}var c=this,d=null!==a.index?a.index.array:void 0,e=a.attributes;
+b,d,e){var f=void 0===k?[]:[c.colors[a].clone(),c.colors[b].clone(),c.colors[d].clone()],m=void 0===g?[]:[(new n).fromArray(g,3*a),(new n).fromArray(g,3*b),(new n).fromArray(g,3*d)];e=new Cc(a,b,d,m,f,e);c.faces.push(e);void 0!==l&&c.faceVertexUvs[0].push([(new w).fromArray(l,2*a),(new w).fromArray(l,2*b),(new w).fromArray(l,2*d)]);void 0!==h&&c.faceVertexUvs[1].push([(new w).fromArray(h,2*a),(new w).fromArray(h,2*b),(new w).fromArray(h,2*d)])}var c=this,d=null!==a.index?a.index.array:void 0,e=a.attributes;
 if(void 0===e.position)return console.error("THREE.Geometry.fromBufferGeometry(): Position attribute required for conversion."),this;var f=e.position.array,g=void 0!==e.normal?e.normal.array:void 0,k=void 0!==e.color?e.color.array:void 0,l=void 0!==e.uv?e.uv.array:void 0,h=void 0!==e.uv2?e.uv2.array:void 0;void 0!==h&&(this.faceVertexUvs[1]=[]);for(e=0;e<f.length;e+=3)c.vertices.push((new n).fromArray(f,e)),void 0!==k&&c.colors.push((new B).fromArray(k,e));var x=a.groups;if(0<x.length)for(e=0;e<x.length;e++){f=
 if(void 0===e.position)return console.error("THREE.Geometry.fromBufferGeometry(): Position attribute required for conversion."),this;var f=e.position.array,g=void 0!==e.normal?e.normal.array:void 0,k=void 0!==e.color?e.color.array:void 0,l=void 0!==e.uv?e.uv.array:void 0,h=void 0!==e.uv2?e.uv2.array:void 0;void 0!==h&&(this.faceVertexUvs[1]=[]);for(e=0;e<f.length;e+=3)c.vertices.push((new n).fromArray(f,e)),void 0!==k&&c.colors.push((new B).fromArray(k,e));var x=a.groups;if(0<x.length)for(e=0;e<x.length;e++){f=
 x[e];var p=f.start,q=p;for(p+=f.count;q<p;q+=3)void 0!==d?b(d[q],d[q+1],d[q+2],f.materialIndex):b(q,q+1,q+2,f.materialIndex)}else if(void 0!==d)for(e=0;e<d.length;e+=3)b(d[e],d[e+1],d[e+2]);else for(e=0;e<f.length/3;e+=3)b(e,e+1,e+2);this.computeFaceNormals();null!==a.boundingBox&&(this.boundingBox=a.boundingBox.clone());null!==a.boundingSphere&&(this.boundingSphere=a.boundingSphere.clone());return this},center:function(){this.computeBoundingBox();this.boundingBox.getCenter(Lf).negate();this.translate(Lf.x,
 x[e];var p=f.start,q=p;for(p+=f.count;q<p;q+=3)void 0!==d?b(d[q],d[q+1],d[q+2],f.materialIndex):b(q,q+1,q+2,f.materialIndex)}else if(void 0!==d)for(e=0;e<d.length;e+=3)b(d[e],d[e+1],d[e+2]);else for(e=0;e<f.length/3;e+=3)b(e,e+1,e+2);this.computeFaceNormals();null!==a.boundingBox&&(this.boundingBox=a.boundingBox.clone());null!==a.boundingSphere&&(this.boundingSphere=a.boundingSphere.clone());return this},center:function(){this.computeBoundingBox();this.boundingBox.getCenter(Lf).negate();this.translate(Lf.x,
 Lf.y,Lf.z);return this},normalize:function(){this.computeBoundingSphere();var a=this.boundingSphere.center,b=this.boundingSphere.radius;b=0===b?1:1/b;var c=new O;c.set(b,0,0,-b*a.x,0,b,0,-b*a.y,0,0,b,-b*a.z,0,0,0,1);this.applyMatrix4(c);return this},computeFaceNormals:function(){for(var a=new n,b=new n,c=0,d=this.faces.length;c<d;c++){var e=this.faces[c],f=this.vertices[e.a],g=this.vertices[e.b];a.subVectors(this.vertices[e.c],g);b.subVectors(f,g);a.cross(b);a.normalize();e.normal.copy(a)}},computeVertexNormals:function(a){void 0===
 Lf.y,Lf.z);return this},normalize:function(){this.computeBoundingSphere();var a=this.boundingSphere.center,b=this.boundingSphere.radius;b=0===b?1:1/b;var c=new O;c.set(b,0,0,-b*a.x,0,b,0,-b*a.y,0,0,b,-b*a.z,0,0,0,1);this.applyMatrix4(c);return this},computeFaceNormals:function(){for(var a=new n,b=new n,c=0,d=this.faces.length;c<d;c++){var e=this.faces[c],f=this.vertices[e.a],g=this.vertices[e.b];a.subVectors(this.vertices[e.c],g);b.subVectors(f,g);a.cross(b);a.normalize();e.normal.copy(a)}},computeVertexNormals:function(a){void 0===
@@ -565,7 +566,7 @@ d[2].copy(c.normal)):(d[0]=c.normal.clone(),d[1]=c.normal.clone(),d[2]=c.normal.
 d.__originalVertexNormals[e]=d.vertexNormals[e].clone()}var f=new L;f.faces=this.faces;e=0;for(a=this.morphTargets.length;e<a;e++){if(!this.morphNormals[e]){this.morphNormals[e]={};this.morphNormals[e].faceNormals=[];this.morphNormals[e].vertexNormals=[];d=this.morphNormals[e].faceNormals;var g=this.morphNormals[e].vertexNormals;c=0;for(b=this.faces.length;c<b;c++){var k=new n;var l={a:new n,b:new n,c:new n};d.push(k);g.push(l)}}g=this.morphNormals[e];f.vertices=this.morphTargets[e].vertices;f.computeFaceNormals();
 d.__originalVertexNormals[e]=d.vertexNormals[e].clone()}var f=new L;f.faces=this.faces;e=0;for(a=this.morphTargets.length;e<a;e++){if(!this.morphNormals[e]){this.morphNormals[e]={};this.morphNormals[e].faceNormals=[];this.morphNormals[e].vertexNormals=[];d=this.morphNormals[e].faceNormals;var g=this.morphNormals[e].vertexNormals;c=0;for(b=this.faces.length;c<b;c++){var k=new n;var l={a:new n,b:new n,c:new n};d.push(k);g.push(l)}}g=this.morphNormals[e];f.vertices=this.morphTargets[e].vertices;f.computeFaceNormals();
 f.computeVertexNormals();c=0;for(b=this.faces.length;c<b;c++)d=this.faces[c],k=g.faceNormals[c],l=g.vertexNormals[c],k.copy(d.normal),l.a.copy(d.vertexNormals[0]),l.b.copy(d.vertexNormals[1]),l.c.copy(d.vertexNormals[2])}c=0;for(b=this.faces.length;c<b;c++)d=this.faces[c],d.normal=d.__originalFaceNormal,d.vertexNormals=d.__originalVertexNormals},computeBoundingBox:function(){null===this.boundingBox&&(this.boundingBox=new Ta);this.boundingBox.setFromPoints(this.vertices)},computeBoundingSphere:function(){null===
 f.computeVertexNormals();c=0;for(b=this.faces.length;c<b;c++)d=this.faces[c],k=g.faceNormals[c],l=g.vertexNormals[c],k.copy(d.normal),l.a.copy(d.vertexNormals[0]),l.b.copy(d.vertexNormals[1]),l.c.copy(d.vertexNormals[2])}c=0;for(b=this.faces.length;c<b;c++)d=this.faces[c],d.normal=d.__originalFaceNormal,d.vertexNormals=d.__originalVertexNormals},computeBoundingBox:function(){null===this.boundingBox&&(this.boundingBox=new Ta);this.boundingBox.setFromPoints(this.vertices)},computeBoundingSphere:function(){null===
 this.boundingSphere&&(this.boundingSphere=new qb);this.boundingSphere.setFromPoints(this.vertices)},merge:function(a,b,c){if(a&&a.isGeometry){var d,e=this.vertices.length,f=this.vertices,g=a.vertices,k=this.faces,l=a.faces,h=this.colors,n=a.colors;void 0===c&&(c=0);void 0!==b&&(d=(new za).getNormalMatrix(b));for(var p=0,q=g.length;p<q;p++){var t=g[p].clone();void 0!==b&&t.applyMatrix4(b);f.push(t)}p=0;for(q=n.length;p<q;p++)h.push(n[p].clone());p=0;for(q=l.length;p<q;p++){g=l[p];var r=g.vertexNormals;
 this.boundingSphere&&(this.boundingSphere=new qb);this.boundingSphere.setFromPoints(this.vertices)},merge:function(a,b,c){if(a&&a.isGeometry){var d,e=this.vertices.length,f=this.vertices,g=a.vertices,k=this.faces,l=a.faces,h=this.colors,n=a.colors;void 0===c&&(c=0);void 0!==b&&(d=(new za).getNormalMatrix(b));for(var p=0,q=g.length;p<q;p++){var t=g[p].clone();void 0!==b&&t.applyMatrix4(b);f.push(t)}p=0;for(q=n.length;p<q;p++)h.push(n[p].clone());p=0;for(q=l.length;p<q;p++){g=l[p];var r=g.vertexNormals;
-n=g.vertexColors;h=new Bc(g.a+e,g.b+e,g.c+e);h.normal.copy(g.normal);void 0!==d&&h.normal.applyMatrix3(d).normalize();b=0;for(f=r.length;b<f;b++)t=r[b].clone(),void 0!==d&&t.applyMatrix3(d).normalize(),h.vertexNormals.push(t);h.color.copy(g.color);b=0;for(f=n.length;b<f;b++)t=n[b],h.vertexColors.push(t.clone());h.materialIndex=g.materialIndex+c;k.push(h)}p=0;for(q=a.faceVertexUvs.length;p<q;p++)for(c=a.faceVertexUvs[p],void 0===this.faceVertexUvs[p]&&(this.faceVertexUvs[p]=[]),b=0,f=c.length;b<f;b++){d=
+n=g.vertexColors;h=new Cc(g.a+e,g.b+e,g.c+e);h.normal.copy(g.normal);void 0!==d&&h.normal.applyMatrix3(d).normalize();b=0;for(f=r.length;b<f;b++)t=r[b].clone(),void 0!==d&&t.applyMatrix3(d).normalize(),h.vertexNormals.push(t);h.color.copy(g.color);b=0;for(f=n.length;b<f;b++)t=n[b],h.vertexColors.push(t.clone());h.materialIndex=g.materialIndex+c;k.push(h)}p=0;for(q=a.faceVertexUvs.length;p<q;p++)for(c=a.faceVertexUvs[p],void 0===this.faceVertexUvs[p]&&(this.faceVertexUvs[p]=[]),b=0,f=c.length;b<f;b++){d=
 c[b];e=[];k=0;for(l=d.length;k<l;k++)e.push(d[k].clone());this.faceVertexUvs[p].push(e)}}else console.error("THREE.Geometry.merge(): geometry not an instance of THREE.Geometry.",a)},mergeMesh:function(a){a&&a.isMesh?(a.matrixAutoUpdate&&a.updateMatrix(),this.merge(a.geometry,a.matrix)):console.error("THREE.Geometry.mergeMesh(): mesh not an instance of THREE.Mesh.",a)},mergeVertices:function(){var a={},b=[],c=[],d=Math.pow(10,4),e;var f=0;for(e=this.vertices.length;f<e;f++){var g=this.vertices[f];
 c[b];e=[];k=0;for(l=d.length;k<l;k++)e.push(d[k].clone());this.faceVertexUvs[p].push(e)}}else console.error("THREE.Geometry.merge(): geometry not an instance of THREE.Geometry.",a)},mergeMesh:function(a){a&&a.isMesh?(a.matrixAutoUpdate&&a.updateMatrix(),this.merge(a.geometry,a.matrix)):console.error("THREE.Geometry.mergeMesh(): mesh not an instance of THREE.Mesh.",a)},mergeVertices:function(){var a={},b=[],c=[],d=Math.pow(10,4),e;var f=0;for(e=this.vertices.length;f<e;f++){var g=this.vertices[f];
 g=Math.round(g.x*d)+"_"+Math.round(g.y*d)+"_"+Math.round(g.z*d);void 0===a[g]?(a[g]=f,b.push(this.vertices[f]),c[f]=b.length-1):c[f]=c[a[g]]}a=[];f=0;for(e=this.faces.length;f<e;f++)for(d=this.faces[f],d.a=c[d.a],d.b=c[d.b],d.c=c[d.c],d=[d.a,d.b,d.c],g=0;3>g;g++)if(d[g]===d[(g+1)%3]){a.push(f);break}for(f=a.length-1;0<=f;f--)for(d=a[f],this.faces.splice(d,1),c=0,e=this.faceVertexUvs.length;c<e;c++)this.faceVertexUvs[c].splice(d,1);f=this.vertices.length-b.length;this.vertices=b;return f},setFromPoints:function(a){this.vertices=
 g=Math.round(g.x*d)+"_"+Math.round(g.y*d)+"_"+Math.round(g.z*d);void 0===a[g]?(a[g]=f,b.push(this.vertices[f]),c[f]=b.length-1):c[f]=c[a[g]]}a=[];f=0;for(e=this.faces.length;f<e;f++)for(d=this.faces[f],d.a=c[d.a],d.b=c[d.b],d.c=c[d.c],d=[d.a,d.b,d.c],g=0;3>g;g++)if(d[g]===d[(g+1)%3]){a.push(f);break}for(f=a.length-1;0<=f;f--)for(d=a[f],this.faces.splice(d,1),c=0,e=this.faceVertexUvs.length;c<e;c++)this.faceVertexUvs[c].splice(d,1);f=this.vertices.length-b.length;this.vertices=b;return f},setFromPoints:function(a){this.vertices=
 [];for(var b=0,c=a.length;b<c;b++){var d=a[b];this.vertices.push(new n(d.x,d.y,d.z||0))}return this},sortFacesByMaterialIndex:function(){for(var a=this.faces,b=a.length,c=0;c<b;c++)a[c]._id=c;a.sort(function(a,b){return a.materialIndex-b.materialIndex});var d=this.faceVertexUvs[0],e=this.faceVertexUvs[1],f,g;d&&d.length===b&&(f=[]);e&&e.length===b&&(g=[]);for(c=0;c<b;c++){var k=a[c]._id;f&&f.push(d[k]);g&&g.push(e[k])}f&&(this.faceVertexUvs[0]=f);g&&(this.faceVertexUvs[1]=g)},toJSON:function(){function a(a,
 [];for(var b=0,c=a.length;b<c;b++){var d=a[b];this.vertices.push(new n(d.x,d.y,d.z||0))}return this},sortFacesByMaterialIndex:function(){for(var a=this.faces,b=a.length,c=0;c<b;c++)a[c]._id=c;a.sort(function(a,b){return a.materialIndex-b.materialIndex});var d=this.faceVertexUvs[0],e=this.faceVertexUvs[1],f,g;d&&d.length===b&&(f=[]);e&&e.length===b&&(g=[]);for(c=0;c<b;c++){var k=a[c]._id;f&&f.push(d[k]);g&&g.push(e[k])}f&&(this.faceVertexUvs[0]=f);g&&(this.faceVertexUvs[1]=g)},toJSON:function(){function a(a,
@@ -579,7 +580,7 @@ e=a.skinIndices;f=0;for(b=e.length;f<b;f++)this.skinIndices.push(e[f].clone());e
 a.lineDistancesNeedUpdate;this.groupsNeedUpdate=a.groupsNeedUpdate;return this},dispose:function(){this.dispatchEvent({type:"dispose"})}});var nh=function(a){function b(b,d,e,f,g,k){a.call(this);this.type="BoxGeometry";this.parameters={width:b,height:d,depth:e,widthSegments:f,heightSegments:g,depthSegments:k};this.fromBufferGeometry(new Kd(b,d,e,f,g,k));this.mergeVertices()}a&&(b.__proto__=a);b.prototype=Object.create(a&&a.prototype);return b.prototype.constructor=b}(L),Kd=function(a){function b(b,
 a.lineDistancesNeedUpdate;this.groupsNeedUpdate=a.groupsNeedUpdate;return this},dispose:function(){this.dispatchEvent({type:"dispose"})}});var nh=function(a){function b(b,d,e,f,g,k){a.call(this);this.type="BoxGeometry";this.parameters={width:b,height:d,depth:e,widthSegments:f,heightSegments:g,depthSegments:k};this.fromBufferGeometry(new Kd(b,d,e,f,g,k));this.mergeVertices()}a&&(b.__proto__=a);b.prototype=Object.create(a&&a.prototype);return b.prototype.constructor=b}(L),Kd=function(a){function b(b,
 d,e,f,g,k){function c(a,b,c,d,e,f,g,k,l,m,w){var v=f/l,y=g/m,z=f/2,A=g/2,C=k/2;g=l+1;var B=m+1,E=f=0,D,F,G=new n;for(F=0;F<B;F++){var I=F*y-A;for(D=0;D<g;D++)G[a]=(D*v-z)*d,G[b]=I*e,G[c]=C,p.push(G.x,G.y,G.z),G[a]=0,G[b]=0,G[c]=0<k?1:-1,q.push(G.x,G.y,G.z),t.push(D/l),t.push(1-F/m),f+=1}for(F=0;F<m;F++)for(D=0;D<l;D++)a=r+D+g*(F+1),b=r+(D+1)+g*(F+1),c=r+(D+1)+g*F,x.push(r+D+g*F,a,c),x.push(a,b,c),E+=6;h.addGroup(u,E,w);u+=E;r+=f}a.call(this);this.type="BoxBufferGeometry";this.parameters={width:b,
 d,e,f,g,k){function c(a,b,c,d,e,f,g,k,l,m,w){var v=f/l,y=g/m,z=f/2,A=g/2,C=k/2;g=l+1;var B=m+1,E=f=0,D,F,G=new n;for(F=0;F<B;F++){var I=F*y-A;for(D=0;D<g;D++)G[a]=(D*v-z)*d,G[b]=I*e,G[c]=C,p.push(G.x,G.y,G.z),G[a]=0,G[b]=0,G[c]=0<k?1:-1,q.push(G.x,G.y,G.z),t.push(D/l),t.push(1-F/m),f+=1}for(F=0;F<m;F++)for(D=0;D<l;D++)a=r+D+g*(F+1),b=r+(D+1)+g*(F+1),c=r+(D+1)+g*F,x.push(r+D+g*F,a,c),x.push(a,b,c),E+=6;h.addGroup(u,E,w);u+=E;r+=f}a.call(this);this.type="BoxBufferGeometry";this.parameters={width:b,
 height:d,depth:e,widthSegments:f,heightSegments:g,depthSegments:k};var h=this;b=b||1;d=d||1;e=e||1;f=Math.floor(f)||1;g=Math.floor(g)||1;k=Math.floor(k)||1;var x=[],p=[],q=[],t=[],r=0,u=0;c("z","y","x",-1,-1,e,d,b,k,g,0);c("z","y","x",1,-1,e,d,-b,k,g,1);c("x","z","y",1,1,b,e,d,f,k,2);c("x","z","y",1,-1,b,e,-d,f,k,3);c("x","y","z",1,-1,b,d,e,f,g,4);c("x","y","z",-1,-1,b,d,-e,f,g,5);this.setIndex(x);this.setAttribute("position",new E(p,3));this.setAttribute("normal",new E(q,3));this.setAttribute("uv",
 height:d,depth:e,widthSegments:f,heightSegments:g,depthSegments:k};var h=this;b=b||1;d=d||1;e=e||1;f=Math.floor(f)||1;g=Math.floor(g)||1;k=Math.floor(k)||1;var x=[],p=[],q=[],t=[],r=0,u=0;c("z","y","x",-1,-1,e,d,b,k,g,0);c("z","y","x",1,-1,e,d,-b,k,g,1);c("x","z","y",1,1,b,e,d,f,k,2);c("x","z","y",1,-1,b,e,-d,f,k,3);c("x","y","z",1,-1,b,d,e,f,g,4);c("x","y","z",-1,-1,b,d,-e,f,g,5);this.setIndex(x);this.setAttribute("position",new E(p,3));this.setAttribute("normal",new E(q,3));this.setAttribute("uv",
-new E(t,2))}a&&(b.__proto__=a);b.prototype=Object.create(a&&a.prototype);return b.prototype.constructor=b}(A),Th={clone:Fc,merge:pa};qa.prototype=Object.create(K.prototype);qa.prototype.constructor=qa;qa.prototype.isShaderMaterial=!0;qa.prototype.copy=function(a){K.prototype.copy.call(this,a);this.fragmentShader=a.fragmentShader;this.vertexShader=a.vertexShader;this.uniforms=Fc(a.uniforms);this.defines=Object.assign({},a.defines);this.wireframe=a.wireframe;this.wireframeLinewidth=a.wireframeLinewidth;
+new E(t,2))}a&&(b.__proto__=a);b.prototype=Object.create(a&&a.prototype);return b.prototype.constructor=b}(A),Th={clone:Gc,merge:pa};qa.prototype=Object.create(K.prototype);qa.prototype.constructor=qa;qa.prototype.isShaderMaterial=!0;qa.prototype.copy=function(a){K.prototype.copy.call(this,a);this.fragmentShader=a.fragmentShader;this.vertexShader=a.vertexShader;this.uniforms=Gc(a.uniforms);this.defines=Object.assign({},a.defines);this.wireframe=a.wireframe;this.wireframeLinewidth=a.wireframeLinewidth;
 this.lights=a.lights;this.clipping=a.clipping;this.skinning=a.skinning;this.morphTargets=a.morphTargets;this.morphNormals=a.morphNormals;this.extensions=a.extensions;return this};qa.prototype.toJSON=function(a){var b=K.prototype.toJSON.call(this,a);b.uniforms={};for(var c in this.uniforms){var d=this.uniforms[c].value;b.uniforms[c]=d&&d.isTexture?{type:"t",value:d.toJSON(a).uuid}:d&&d.isColor?{type:"c",value:d.getHex()}:d&&d.isVector2?{type:"v2",value:d.toArray()}:d&&d.isVector3?{type:"v3",value:d.toArray()}:
 this.lights=a.lights;this.clipping=a.clipping;this.skinning=a.skinning;this.morphTargets=a.morphTargets;this.morphNormals=a.morphNormals;this.extensions=a.extensions;return this};qa.prototype.toJSON=function(a){var b=K.prototype.toJSON.call(this,a);b.uniforms={};for(var c in this.uniforms){var d=this.uniforms[c].value;b.uniforms[c]=d&&d.isTexture?{type:"t",value:d.toJSON(a).uuid}:d&&d.isColor?{type:"c",value:d.getHex()}:d&&d.isVector2?{type:"v2",value:d.toArray()}:d&&d.isVector3?{type:"v3",value:d.toArray()}:
 d&&d.isVector4?{type:"v4",value:d.toArray()}:d&&d.isMatrix3?{type:"m3",value:d.toArray()}:d&&d.isMatrix4?{type:"m4",value:d.toArray()}:{value:d}}0<Object.keys(this.defines).length&&(b.defines=this.defines);b.vertexShader=this.vertexShader;b.fragmentShader=this.fragmentShader;a={};for(var e in this.extensions)!0===this.extensions[e]&&(a[e]=!0);0<Object.keys(a).length&&(b.extensions=a);return b};eb.prototype=Object.assign(Object.create(D.prototype),{constructor:eb,isCamera:!0,copy:function(a,b){D.prototype.copy.call(this,
 d&&d.isVector4?{type:"v4",value:d.toArray()}:d&&d.isMatrix3?{type:"m3",value:d.toArray()}:d&&d.isMatrix4?{type:"m4",value:d.toArray()}:{value:d}}0<Object.keys(this.defines).length&&(b.defines=this.defines);b.vertexShader=this.vertexShader;b.fragmentShader=this.fragmentShader;a={};for(var e in this.extensions)!0===this.extensions[e]&&(a[e]=!0);0<Object.keys(a).length&&(b.extensions=a);return b};eb.prototype=Object.assign(Object.create(D.prototype),{constructor:eb,isCamera:!0,copy:function(a,b){D.prototype.copy.call(this,
 a,b);this.matrixWorldInverse.copy(a.matrixWorldInverse);this.projectionMatrix.copy(a.projectionMatrix);this.projectionMatrixInverse.copy(a.projectionMatrixInverse);return this},getWorldDirection:function(a){void 0===a&&(console.warn("THREE.Camera: .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()},updateMatrixWorld:function(a){D.prototype.updateMatrixWorld.call(this,a);this.matrixWorldInverse.getInverse(this.matrixWorld)},
 a,b);this.matrixWorldInverse.copy(a.matrixWorldInverse);this.projectionMatrix.copy(a.projectionMatrix);this.projectionMatrixInverse.copy(a.projectionMatrixInverse);return this},getWorldDirection:function(a){void 0===a&&(console.warn("THREE.Camera: .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()},updateMatrixWorld:function(a){D.prototype.updateMatrixWorld.call(this,a);this.matrixWorldInverse.getInverse(this.matrixWorld)},
@@ -587,9 +588,9 @@ updateWorldMatrix:function(a,b){D.prototype.updateWorldMatrix.call(this,a,b);thi
 a.filmGauge;this.filmOffset=a.filmOffset;return this},setFocalLength:function(a){a=.5*this.getFilmHeight()/a;this.fov=2*P.RAD2DEG*Math.atan(a);this.updateProjectionMatrix()},getFocalLength:function(){var a=Math.tan(.5*P.DEG2RAD*this.fov);return.5*this.getFilmHeight()/a},getEffectiveFOV:function(){return 2*P.RAD2DEG*Math.atan(Math.tan(.5*P.DEG2RAD*this.fov)/this.zoom)},getFilmWidth:function(){return this.filmGauge*Math.min(this.aspect,1)},getFilmHeight:function(){return this.filmGauge/Math.max(this.aspect,
 a.filmGauge;this.filmOffset=a.filmOffset;return this},setFocalLength:function(a){a=.5*this.getFilmHeight()/a;this.fov=2*P.RAD2DEG*Math.atan(a);this.updateProjectionMatrix()},getFocalLength:function(){var a=Math.tan(.5*P.DEG2RAD*this.fov);return.5*this.getFilmHeight()/a},getEffectiveFOV:function(){return 2*P.RAD2DEG*Math.atan(Math.tan(.5*P.DEG2RAD*this.fov)/this.zoom)},getFilmWidth:function(){return this.filmGauge*Math.min(this.aspect,1)},getFilmHeight:function(){return this.filmGauge/Math.max(this.aspect,
 1)},setViewOffset:function(a,b,c,d,e,f){this.aspect=a/b;null===this.view&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1});this.view.enabled=!0;this.view.fullWidth=a;this.view.fullHeight=b;this.view.offsetX=c;this.view.offsetY=d;this.view.width=e;this.view.height=f;this.updateProjectionMatrix()},clearViewOffset:function(){null!==this.view&&(this.view.enabled=!1);this.updateProjectionMatrix()},updateProjectionMatrix:function(){var a=this.near,b=a*Math.tan(.5*P.DEG2RAD*
 1)},setViewOffset:function(a,b,c,d,e,f){this.aspect=a/b;null===this.view&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1});this.view.enabled=!0;this.view.fullWidth=a;this.view.fullHeight=b;this.view.offsetX=c;this.view.offsetY=d;this.view.width=e;this.view.height=f;this.updateProjectionMatrix()},clearViewOffset:function(){null!==this.view&&(this.view.enabled=!1);this.updateProjectionMatrix()},updateProjectionMatrix:function(){var a=this.near,b=a*Math.tan(.5*P.DEG2RAD*
 this.fov)/this.zoom,c=2*b,d=this.aspect*c,e=-.5*d,f=this.view;if(null!==this.view&&this.view.enabled){var g=f.fullWidth,k=f.fullHeight;e+=f.offsetX*d/g;b-=f.offsetY*c/k;d*=f.width/g;c*=f.height/k}f=this.filmOffset;0!==f&&(e+=a*f/this.getFilmWidth());this.projectionMatrix.makePerspective(e,e+d,b,b-c,a,this.far);this.projectionMatrixInverse.getInverse(this.projectionMatrix)},toJSON:function(a){a=D.prototype.toJSON.call(this,a);a.object.fov=this.fov;a.object.zoom=this.zoom;a.object.near=this.near;a.object.far=
 this.fov)/this.zoom,c=2*b,d=this.aspect*c,e=-.5*d,f=this.view;if(null!==this.view&&this.view.enabled){var g=f.fullWidth,k=f.fullHeight;e+=f.offsetX*d/g;b-=f.offsetY*c/k;d*=f.width/g;c*=f.height/k}f=this.filmOffset;0!==f&&(e+=a*f/this.getFilmWidth());this.projectionMatrix.makePerspective(e,e+d,b,b-c,a,this.far);this.projectionMatrixInverse.getInverse(this.projectionMatrix)},toJSON:function(a){a=D.prototype.toJSON.call(this,a);a.object.fov=this.fov;a.object.zoom=this.zoom;a.object.near=this.near;a.object.far=
-this.far;a.object.focus=this.focus;a.object.aspect=this.aspect;null!==this.view&&(a.object.view=Object.assign({},this.view));a.object.filmGauge=this.filmGauge;a.object.filmOffset=this.filmOffset;return a}});Gc.prototype=Object.create(D.prototype);Gc.prototype.constructor=Gc;Eb.prototype=Object.create(wa.prototype);Eb.prototype.constructor=Eb;Eb.prototype.isWebGLCubeRenderTarget=!0;Eb.prototype.fromEquirectangularTexture=function(a,b){this.texture.type=b.type;this.texture.format=b.format;this.texture.encoding=
-b.encoding;var c=new pb,d=new qa({type:"CubemapFromEquirect",uniforms:Fc({tEquirect:{value:null}}),vertexShader:"varying vec3 vWorldDirection;\nvec3 transformDirection( in vec3 dir, in mat4 matrix ) {\n\treturn normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );\n}\nvoid main() {\n\tvWorldDirection = transformDirection( position, modelMatrix );\n\t#include <begin_vertex>\n\t#include <project_vertex>\n}",fragmentShader:"uniform sampler2D tEquirect;\nvarying vec3 vWorldDirection;\n#define RECIPROCAL_PI 0.31830988618\n#define RECIPROCAL_PI2 0.15915494\nvoid main() {\n\tvec3 direction = normalize( vWorldDirection );\n\tvec2 sampleUV;\n\tsampleUV.y = asin( clamp( direction.y, - 1.0, 1.0 ) ) * RECIPROCAL_PI + 0.5;\n\tsampleUV.x = atan( direction.z, direction.x ) * RECIPROCAL_PI2 + 0.5;\n\tgl_FragColor = texture2D( tEquirect, sampleUV );\n}",
-side:1,blending:0});d.uniforms.tEquirect.value=b;b=new ca(new Kd(5,5,5),d);c.add(b);d=new Gc(1,10,1);d.renderTarget=this;d.renderTarget.texture.name="CubeCameraTexture";d.update(a,c);b.geometry.dispose();b.material.dispose();return this};bc.prototype=Object.create(Z.prototype);bc.prototype.constructor=bc;bc.prototype.isDataTexture=!0;var xd=new qb,Mf=new n;Object.assign(Hc.prototype,{set:function(a,b,c,d,e,f){var g=this.planes;g[0].copy(a);g[1].copy(b);g[2].copy(c);g[3].copy(d);g[4].copy(e);g[5].copy(f);
+this.far;a.object.focus=this.focus;a.object.aspect=this.aspect;null!==this.view&&(a.object.view=Object.assign({},this.view));a.object.filmGauge=this.filmGauge;a.object.filmOffset=this.filmOffset;return a}});Hc.prototype=Object.create(D.prototype);Hc.prototype.constructor=Hc;Eb.prototype=Object.create(wa.prototype);Eb.prototype.constructor=Eb;Eb.prototype.isWebGLCubeRenderTarget=!0;Eb.prototype.fromEquirectangularTexture=function(a,b){this.texture.type=b.type;this.texture.format=b.format;this.texture.encoding=
+b.encoding;var c=new pb,d=new qa({type:"CubemapFromEquirect",uniforms:Gc({tEquirect:{value:null}}),vertexShader:"varying vec3 vWorldDirection;\nvec3 transformDirection( in vec3 dir, in mat4 matrix ) {\n\treturn normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );\n}\nvoid main() {\n\tvWorldDirection = transformDirection( position, modelMatrix );\n\t#include <begin_vertex>\n\t#include <project_vertex>\n}",fragmentShader:"uniform sampler2D tEquirect;\nvarying vec3 vWorldDirection;\n#define RECIPROCAL_PI 0.31830988618\n#define RECIPROCAL_PI2 0.15915494\nvoid main() {\n\tvec3 direction = normalize( vWorldDirection );\n\tvec2 sampleUV;\n\tsampleUV.y = asin( clamp( direction.y, - 1.0, 1.0 ) ) * RECIPROCAL_PI + 0.5;\n\tsampleUV.x = atan( direction.z, direction.x ) * RECIPROCAL_PI2 + 0.5;\n\tgl_FragColor = texture2D( tEquirect, sampleUV );\n}",
+side:1,blending:0});d.uniforms.tEquirect.value=b;b=new ca(new Kd(5,5,5),d);c.add(b);d=new Hc(1,10,1);d.renderTarget=this;d.renderTarget.texture.name="CubeCameraTexture";d.update(a,c);b.geometry.dispose();b.material.dispose();return this};bc.prototype=Object.create(Z.prototype);bc.prototype.constructor=bc;bc.prototype.isDataTexture=!0;var xd=new qb,Mf=new n;Object.assign(Ic.prototype,{set:function(a,b,c,d,e,f){var g=this.planes;g[0].copy(a);g[1].copy(b);g[2].copy(c);g[3].copy(d);g[4].copy(e);g[5].copy(f);
 return this},clone:function(){return(new this.constructor).copy(this)},copy:function(a){for(var b=this.planes,c=0;6>c;c++)b[c].copy(a.planes[c]);return this},setFromProjectionMatrix:function(a){var b=this.planes,c=a.elements;a=c[0];var d=c[1],e=c[2],f=c[3],g=c[4],k=c[5],h=c[6],m=c[7],n=c[8],p=c[9],q=c[10],t=c[11],r=c[12],u=c[13],y=c[14];c=c[15];b[0].setComponents(f-a,m-g,t-n,c-r).normalize();b[1].setComponents(f+a,m+g,t+n,c+r).normalize();b[2].setComponents(f+d,m+k,t+p,c+u).normalize();b[3].setComponents(f-
 return this},clone:function(){return(new this.constructor).copy(this)},copy:function(a){for(var b=this.planes,c=0;6>c;c++)b[c].copy(a.planes[c]);return this},setFromProjectionMatrix:function(a){var b=this.planes,c=a.elements;a=c[0];var d=c[1],e=c[2],f=c[3],g=c[4],k=c[5],h=c[6],m=c[7],n=c[8],p=c[9],q=c[10],t=c[11],r=c[12],u=c[13],y=c[14];c=c[15];b[0].setComponents(f-a,m-g,t-n,c-r).normalize();b[1].setComponents(f+a,m+g,t+n,c+r).normalize();b[2].setComponents(f+d,m+k,t+p,c+u).normalize();b[3].setComponents(f-
 d,m-k,t-p,c-u).normalize();b[4].setComponents(f-e,m-h,t-q,c-y).normalize();b[5].setComponents(f+e,m+h,t+q,c+y).normalize();return this},intersectsObject:function(a){var b=a.geometry;null===b.boundingSphere&&b.computeBoundingSphere();xd.copy(b.boundingSphere).applyMatrix4(a.matrixWorld);return this.intersectsSphere(xd)},intersectsSprite:function(a){xd.center.set(0,0,0);xd.radius=.7071067811865476;xd.applyMatrix4(a.matrixWorld);return this.intersectsSphere(xd)},intersectsSphere:function(a){var b=this.planes,
 d,m-k,t-p,c-u).normalize();b[4].setComponents(f-e,m-h,t-q,c-y).normalize();b[5].setComponents(f+e,m+h,t+q,c+y).normalize();return this},intersectsObject:function(a){var b=a.geometry;null===b.boundingSphere&&b.computeBoundingSphere();xd.copy(b.boundingSphere).applyMatrix4(a.matrixWorld);return this.intersectsSphere(xd)},intersectsSprite:function(a){xd.center.set(0,0,0);xd.radius=.7071067811865476;xd.applyMatrix4(a.matrixWorld);return this.intersectsSphere(xd)},intersectsSphere:function(a){var b=this.planes,
 c=a.center;a=-a.radius;for(var d=0;6>d;d++)if(b[d].distanceToPoint(c)<a)return!1;return!0},intersectsBox:function(a){for(var b=this.planes,c=0;6>c;c++){var d=b[c];Mf.x=0<d.normal.x?a.max.x:a.min.x;Mf.y=0<d.normal.y?a.max.y:a.min.y;Mf.z=0<d.normal.z?a.max.z:a.min.z;if(0>d.distanceToPoint(Mf))return!1}return!0},containsPoint:function(a){for(var b=this.planes,c=0;6>c;c++)if(0>b[c].distanceToPoint(a))return!1;return!0}});var F={common:{diffuse:{value:new B(15658734)},opacity:{value:1},map:{value:null},
 c=a.center;a=-a.radius;for(var d=0;6>d;d++)if(b[d].distanceToPoint(c)<a)return!1;return!0},intersectsBox:function(a){for(var b=this.planes,c=0;6>c;c++){var d=b[c];Mf.x=0<d.normal.x?a.max.x:a.min.x;Mf.y=0<d.normal.y?a.max.y:a.min.y;Mf.z=0<d.normal.z?a.max.z:a.min.z;if(0>d.distanceToPoint(Mf))return!1}return!0},containsPoint:function(a){for(var b=this.planes,c=0;6>c;c++)if(0>b[c].distanceToPoint(a))return!1;return!0}});var F={common:{diffuse:{value:new B(15658734)},opacity:{value:1},map:{value:null},
@@ -675,179 +676,179 @@ F.emissivemap,F.bumpmap,F.normalmap,F.displacementmap,F.gradientmap,F.fog,F.ligh
 F.fog,{scale:{value:1},dashSize:{value:1},totalSize:{value:2}}]),vertexShader:N.linedashed_vert,fragmentShader:N.linedashed_frag},depth:{uniforms:pa([F.common,F.displacementmap]),vertexShader:N.depth_vert,fragmentShader:N.depth_frag},normal:{uniforms:pa([F.common,F.bumpmap,F.normalmap,F.displacementmap,{opacity:{value:1}}]),vertexShader:N.normal_vert,fragmentShader:N.normal_frag},sprite:{uniforms:pa([F.sprite,F.fog]),vertexShader:N.sprite_vert,fragmentShader:N.sprite_frag},background:{uniforms:{uvTransform:{value:new za},
 F.fog,{scale:{value:1},dashSize:{value:1},totalSize:{value:2}}]),vertexShader:N.linedashed_vert,fragmentShader:N.linedashed_frag},depth:{uniforms:pa([F.common,F.displacementmap]),vertexShader:N.depth_vert,fragmentShader:N.depth_frag},normal:{uniforms:pa([F.common,F.bumpmap,F.normalmap,F.displacementmap,{opacity:{value:1}}]),vertexShader:N.normal_vert,fragmentShader:N.normal_frag},sprite:{uniforms:pa([F.sprite,F.fog]),vertexShader:N.sprite_vert,fragmentShader:N.sprite_frag},background:{uniforms:{uvTransform:{value:new za},
 t2D:{value:null}},vertexShader:N.background_vert,fragmentShader:N.background_frag},cube:{uniforms:pa([F.envmap,{opacity:{value:1}}]),vertexShader:N.cube_vert,fragmentShader:N.cube_frag},equirect:{uniforms:{tEquirect:{value:null}},vertexShader:N.equirect_vert,fragmentShader:N.equirect_frag},distanceRGBA:{uniforms:pa([F.common,F.displacementmap,{referencePosition:{value:new n},nearDistance:{value:1},farDistance:{value:1E3}}]),vertexShader:N.distanceRGBA_vert,fragmentShader:N.distanceRGBA_frag},shadow:{uniforms:pa([F.lights,
 t2D:{value:null}},vertexShader:N.background_vert,fragmentShader:N.background_frag},cube:{uniforms:pa([F.envmap,{opacity:{value:1}}]),vertexShader:N.cube_vert,fragmentShader:N.cube_frag},equirect:{uniforms:{tEquirect:{value:null}},vertexShader:N.equirect_vert,fragmentShader:N.equirect_frag},distanceRGBA:{uniforms:pa([F.common,F.displacementmap,{referencePosition:{value:new n},nearDistance:{value:1},farDistance:{value:1E3}}]),vertexShader:N.distanceRGBA_vert,fragmentShader:N.distanceRGBA_frag},shadow:{uniforms:pa([F.lights,
 F.fog,{color:{value:new B(0)},opacity:{value:1}}]),vertexShader:N.shadow_vert,fragmentShader:N.shadow_frag}};fb.physical={uniforms:pa([fb.standard.uniforms,{transparency:{value:0},clearcoat:{value:0},clearcoatRoughness:{value:0},sheen:{value:new B(0)},clearcoatNormalScale:{value:new w(1,1)},clearcoatNormalMap:{value:null}}]),vertexShader:N.meshphysical_vert,fragmentShader:N.meshphysical_frag};rb.prototype=Object.create(Z.prototype);rb.prototype.constructor=rb;rb.prototype.isCubeTexture=!0;Object.defineProperty(rb.prototype,
 F.fog,{color:{value:new B(0)},opacity:{value:1}}]),vertexShader:N.shadow_vert,fragmentShader:N.shadow_frag}};fb.physical={uniforms:pa([fb.standard.uniforms,{transparency:{value:0},clearcoat:{value:0},clearcoatRoughness:{value:0},sheen:{value:new B(0)},clearcoatNormalScale:{value:new w(1,1)},clearcoatNormalMap:{value:null}}]),vertexShader:N.meshphysical_vert,fragmentShader:N.meshphysical_frag};rb.prototype=Object.create(Z.prototype);rb.prototype.constructor=rb;rb.prototype.isCubeTexture=!0;Object.defineProperty(rb.prototype,
-"images",{get:function(){return this.image},set:function(a){this.image=a}});Ic.prototype=Object.create(Z.prototype);Ic.prototype.constructor=Ic;Ic.prototype.isDataTexture2DArray=!0;Jc.prototype=Object.create(Z.prototype);Jc.prototype.constructor=Jc;Jc.prototype.isDataTexture3D=!0;var Hh=new Z,Pj=new Ic,Rj=new Jc,Ih=new rb,Bh=[],Dh=[],Gh=new Float32Array(16),Fh=new Float32Array(9),Eh=new Float32Array(4);Jh.prototype.updateCache=function(a){var b=this.cache;a instanceof Float32Array&&b.length!==a.length&&
+"images",{get:function(){return this.image},set:function(a){this.image=a}});Jc.prototype=Object.create(Z.prototype);Jc.prototype.constructor=Jc;Jc.prototype.isDataTexture2DArray=!0;Kc.prototype=Object.create(Z.prototype);Kc.prototype.constructor=Kc;Kc.prototype.isDataTexture3D=!0;var Hh=new Z,Pj=new Jc,Rj=new Kc,Ih=new rb,Bh=[],Dh=[],Gh=new Float32Array(16),Fh=new Float32Array(9),Eh=new Float32Array(4);Jh.prototype.updateCache=function(a){var b=this.cache;a instanceof Float32Array&&b.length!==a.length&&
 (this.cache=new Float32Array(a.length));Ka(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 ig=/([\w\d_]+)(\])?(\[|\.)?/g;Fb.prototype.setValue=function(a,b,c,d){b=this.map[b];void 0!==b&&b.setValue(a,c,d)};Fb.prototype.setOptional=function(a,b,c){b=b[c];void 0!==b&&this.setValue(a,c,b)};Fb.upload=function(a,b,c,d){for(var e=0,f=b.length;e!==f;++e){var g=b[e],k=c[g.id];!1!==k.needsUpdate&&g.setValue(a,k.value,d)}};Fb.seqWithValue=
 (this.cache=new Float32Array(a.length));Ka(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 ig=/([\w\d_]+)(\])?(\[|\.)?/g;Fb.prototype.setValue=function(a,b,c,d){b=this.map[b];void 0!==b&&b.setValue(a,c,d)};Fb.prototype.setOptional=function(a,b,c){b=b[c];void 0!==b&&this.setValue(a,c,b)};Fb.upload=function(a,b,c,d){for(var e=0,f=b.length;e!==f;++e){var g=b[e],k=c[g.id];!1!==k.needsUpdate&&g.setValue(a,k.value,d)}};Fb.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,kg=/^[ \t]*#include +<([\w\d./]+)>/gm,Sh=/#pragma unroll_loop[\s]+?for \( int i = (\d+); i < (\d+); i \+\+ \) \{([\s\S]+?)(?=\})\}/g,Fk=0;Gb.prototype=Object.create(K.prototype);Gb.prototype.constructor=Gb;Gb.prototype.isMeshDepthMaterial=!0;Gb.prototype.copy=function(a){K.prototype.copy.call(this,a);this.depthPacking=a.depthPacking;this.skinning=a.skinning;this.morphTargets=a.morphTargets;this.map=
 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,kg=/^[ \t]*#include +<([\w\d./]+)>/gm,Sh=/#pragma unroll_loop[\s]+?for \( int i = (\d+); i < (\d+); i \+\+ \) \{([\s\S]+?)(?=\})\}/g,Fk=0;Gb.prototype=Object.create(K.prototype);Gb.prototype.constructor=Gb;Gb.prototype.isMeshDepthMaterial=!0;Gb.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};Hb.prototype=Object.create(K.prototype);Hb.prototype.constructor=Hb;Hb.prototype.isMeshDistanceMaterial=!0;Hb.prototype.copy=function(a){K.prototype.copy.call(this,a);this.referencePosition.copy(a.referencePosition);this.nearDistance=a.nearDistance;this.farDistance=
 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};Hb.prototype=Object.create(K.prototype);Hb.prototype.constructor=Hb;Hb.prototype.isMeshDistanceMaterial=!0;Hb.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};pg.prototype=Object.assign(Object.create(wa.prototype),{constructor:pg,isWebGLMultiviewRenderTarget:!0,copy:function(a){wa.prototype.copy.call(this,a);this.numViews=a.numViews;return this},setNumViews:function(a){this.numViews!==a&&(this.numViews=a,this.dispose());
 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};pg.prototype=Object.assign(Object.create(wa.prototype),{constructor:pg,isWebGLMultiviewRenderTarget:!0,copy:function(a){wa.prototype.copy.call(this,a);this.numViews=a.numViews;return this},setNumViews:function(a){this.numViews!==a&&(this.numViews=a,this.dispose());
-return this}});Qe.prototype=Object.assign(Object.create(da.prototype),{constructor:Qe,isArrayCamera:!0});Mc.prototype=Object.assign(Object.create(D.prototype),{constructor:Mc,isGroup:!0});Object.assign(Zh.prototype,Fa.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,
+return this}});Qe.prototype=Object.assign(Object.create(da.prototype),{constructor:Qe,isArrayCamera:!0});Nc.prototype=Object.assign(Object.create(D.prototype),{constructor:Nc,isGroup:!0});Object.assign(Zh.prototype,Fa.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(),near:this.near,far:this.far}}});Object.defineProperty(sb.prototype,"needsUpdate",{set:function(a){!0===a&&this.version++}});Object.assign(sb.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;
 this.far)},toJSON:function(){return{type:"Fog",color:this.color.getHex(),near:this.near,far:this.far}}});Object.defineProperty(sb.prototype,"needsUpdate",{set:function(a){!0===a&&this.version++}});Object.assign(sb.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(Qd.prototype,{count:{get:function(){return this.data.count}},array:{get:function(){return this.data.array}}});Object.assign(Qd.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*
+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 vc=new n;Object.defineProperties(Qd.prototype,{count:{get:function(){return this.data.count}},array:{get:function(){return this.data.array}}});Object.assign(Qd.prototype,{isInterleavedBufferAttribute:!0,applyMatrix4:function(a){for(var b=
+0,c=this.data.count;b<c;b++)vc.x=this.getX(b),vc.y=this.getY(b),vc.z=this.getZ(b),vc.applyMatrix4(a),this.setXYZ(b,vc.x,vc.y,vc.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},
 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}});Jb.prototype=Object.create(K.prototype);Jb.prototype.constructor=Jb;Jb.prototype.isSpriteMaterial=!0;Jb.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,Fe=new n,yd=new n,zd=new n,
-Oc=new w,Sd=new w,ai=new O,Nf=new n,Ge=new n,Of=new n,Ri=new w,oh=new w,Si=new w;Rd.prototype=Object.assign(Object.create(D.prototype),{constructor:Rd,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.');yd.setFromMatrixScale(this.matrixWorld);ai.copy(a.camera.matrixWorld);this.modelViewMatrix.multiplyMatrices(a.camera.matrixWorldInverse,this.matrixWorld);zd.setFromMatrixPosition(this.modelViewMatrix);
+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}});Jb.prototype=Object.create(K.prototype);Jb.prototype.constructor=Jb;Jb.prototype.isSpriteMaterial=!0;Jb.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 Oc,Fe=new n,yd=new n,zd=new n,
+Pc=new w,Sd=new w,ai=new O,Nf=new n,Ge=new n,Of=new n,Ri=new w,oh=new w,Si=new w;Rd.prototype=Object.assign(Object.create(D.prototype),{constructor:Rd,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.');yd.setFromMatrixScale(this.matrixWorld);ai.copy(a.camera.matrixWorld);this.modelViewMatrix.multiplyMatrices(a.camera.matrixWorldInverse,this.matrixWorld);zd.setFromMatrixPosition(this.modelViewMatrix);
 a.camera.isPerspectiveCamera&&!1===this.material.sizeAttenuation&&yd.multiplyScalar(-zd.z);var c=this.material.rotation;if(0!==c){var d=Math.cos(c);var e=Math.sin(c)}c=this.center;Te(Nf.set(-.5,-.5,0),zd,c,yd,e,d);Te(Ge.set(.5,-.5,0),zd,c,yd,e,d);Te(Of.set(.5,.5,0),zd,c,yd,e,d);Ri.set(0,0);oh.set(1,0);Si.set(1,1);var f=a.ray.intersectTriangle(Nf,Ge,Of,!1,Fe);if(null===f&&(Te(Ge.set(-.5,.5,0),zd,c,yd,e,d),oh.set(0,1),f=a.ray.intersectTriangle(Nf,Of,Ge,!1,Fe),null===f))return;e=a.ray.origin.distanceTo(Fe);
 a.camera.isPerspectiveCamera&&!1===this.material.sizeAttenuation&&yd.multiplyScalar(-zd.z);var c=this.material.rotation;if(0!==c){var d=Math.cos(c);var e=Math.sin(c)}c=this.center;Te(Nf.set(-.5,-.5,0),zd,c,yd,e,d);Te(Ge.set(.5,-.5,0),zd,c,yd,e,d);Te(Of.set(.5,.5,0),zd,c,yd,e,d);Ri.set(0,0);oh.set(1,0);Si.set(1,1);var f=a.ray.intersectTriangle(Nf,Ge,Of,!1,Fe);if(null===f&&(Te(Ge.set(-.5,.5,0),zd,c,yd,e,d),oh.set(0,1),f=a.ray.intersectTriangle(Nf,Of,Ge,!1,Fe),null===f))return;e=a.ray.origin.distanceTo(Fe);
 e<a.near||e>a.far||b.push({distance:e,point:Fe.clone(),uv:oa.getUV(Fe,Nf,Ge,Of,Ri,oh,Si,new w),face:null,object:this})},clone:function(){return(new this.constructor(this.material)).copy(this)},copy:function(a){D.prototype.copy.call(this,a);void 0!==a.center&&this.center.copy(a.center);return this}});var Pf=new n,Ti=new n;Td.prototype=Object.assign(Object.create(D.prototype),{constructor:Td,isLOD:!0,copy:function(a){D.prototype.copy.call(this,a,!1);for(var b=a.levels,c=0,d=b.length;c<d;c++){var e=
 e<a.near||e>a.far||b.push({distance:e,point:Fe.clone(),uv:oa.getUV(Fe,Nf,Ge,Of,Ri,oh,Si,new w),face:null,object:this})},clone:function(){return(new this.constructor(this.material)).copy(this)},copy:function(a){D.prototype.copy.call(this,a);void 0!==a.center&&this.center.copy(a.center);return this}});var Pf=new n,Ti=new n;Td.prototype=Object.assign(Object.create(D.prototype),{constructor:Td,isLOD:!0,copy:function(a){D.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},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){Pf.setFromMatrixPosition(this.matrixWorld);
-var c=a.ray.origin.distanceTo(Pf);this.getObjectForDistance(c).raycast(a,b)}},update:function(a){var b=this.levels;if(1<b.length){Pf.setFromMatrixPosition(a.matrixWorld);Ti.setFromMatrixPosition(this.matrixWorld);a=Pf.distanceTo(Ti);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(;c<d;c++)b[c].object.visible=!1}},toJSON:function(a){a=D.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}});Ud.prototype=Object.assign(Object.create(ca.prototype),{constructor:Ud,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 ia,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){ca.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 O,$k=new O;Object.assign(Ue.prototype,{calculateInverses:function(){this.boneInverses=[];for(var a=0,b=this.bones.length;a<b;a++){var c=new O;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}}});rg.prototype=Object.assign(Object.create(D.prototype),{constructor:rg,isBone:!0});var Vi=new O,Wi=new O,Ad=[],He=new ca;Ve.prototype=Object.assign(Object.create(ca.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;He.geometry=this.geometry;He.material=this.material;if(void 0!==He.material)for(var e=
-0;e<d;e++)this.getMatrixAt(e,Vi),Wi.multiplyMatrices(c,Vi),He.matrixWorld=Wi,He.raycast(a,Ad),0<Ad.length&&(Ad[0].instanceId=e,Ad[0].object=this,b.push(Ad[0]),Ad.length=0)},setMatrixAt:function(a,b){b.toArray(this.instanceMatrix.array,16*a)},updateMorphTargets:function(){}});ka.prototype=Object.create(K.prototype);ka.prototype.constructor=ka;ka.prototype.isLineBasicMaterial=!0;ka.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 O,Qf=new Wb,Ie=new qb;La.prototype=Object.assign(Object.create(D.prototype),{constructor:La,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 E(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=a.linePrecision,d=this.geometry,e=this.matrixWorld;null===d.boundingSphere&&d.computeBoundingSphere();Ie.copy(d.boundingSphere);Ie.applyMatrix4(e);Ie.radius+=c;if(!1!==a.ray.intersectsSphere(Ie)){Zi.getInverse(e);Qf.copy(a.ray).applyMatrix4(Zi);c/=(this.scale.x+this.scale.y+this.scale.z)/3;c*=c;var f=new n,g=new n;e=new n;var k=new n,
-h=this&&this.isLineSegments?2:1;if(d.isBufferGeometry){var m=d.index,x=d.attributes.position.array;if(null!==m){m=m.array;d=0;for(var p=m.length-1;d<p;d+=h){var q=m[d+1];f.fromArray(x,3*m[d]);g.fromArray(x,3*q);q=Qf.distanceSqToSegment(f,g,k,e);q>c||(k.applyMatrix4(this.matrixWorld),q=a.ray.origin.distanceTo(k),q<a.near||q>a.far||b.push({distance:q,point:e.clone().applyMatrix4(this.matrixWorld),index:d,face:null,faceIndex:null,object:this}))}}else for(d=0,p=x.length/3-1;d<p;d+=h)f.fromArray(x,3*d),
-g.fromArray(x,3*d+3),q=Qf.distanceSqToSegment(f,g,k,e),q>c||(k.applyMatrix4(this.matrixWorld),q=a.ray.origin.distanceTo(k),q<a.near||q>a.far||b.push({distance:q,point:e.clone().applyMatrix4(this.matrixWorld),index:d,face:null,faceIndex:null,object:this}))}else if(d.isGeometry)for(f=d.vertices,g=f.length,d=0;d<g-1;d+=h)q=Qf.distanceSqToSegment(f[d],f[d+1],k,e),q>c||(k.applyMatrix4(this.matrixWorld),q=a.ray.origin.distanceTo(k),q<a.near||q>a.far||b.push({distance:q,point:e.clone().applyMatrix4(this.matrixWorld),
-index:d,face:null,faceIndex:null,object:this}))}},clone:function(){return(new this.constructor(this.geometry,this.material)).copy(this)}});var Rf=new n,Sf=new n;ma.prototype=Object.assign(Object.create(La.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)Rf.fromBufferAttribute(b,d),Sf.fromBufferAttribute(b,d+1),c[d]=0===d?0:c[d-1],c[d+1]=c[d]+Rf.distanceTo(Sf);
-a.setAttribute("lineDistance",new E(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)Rf.copy(b[d]),Sf.copy(b[d+1]),c[d]=0===d?0:c[d-1],c[d+1]=c[d]+Rf.distanceTo(Sf);return this}});We.prototype=Object.assign(Object.create(La.prototype),{constructor:We,isLineLoop:!0});Wa.prototype=Object.create(K.prototype);Wa.prototype.constructor=Wa;Wa.prototype.isPointsMaterial=
-!0;Wa.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 O,tg=new Wb,Je=new qb,Tf=new n;Pc.prototype=Object.assign(Object.create(D.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();Je.copy(c.boundingSphere);
-Je.applyMatrix4(d);Je.radius+=e;if(!1!==a.ray.intersectsSphere(Je))if($i.getInverse(d),tg.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 k=g.length;f<k;f++){var h=g[f];Tf.fromArray(c,3*h);sg(Tf,h,e,d,a,b,this)}}else for(f=0,g=c.length/3;f<g;f++)Tf.fromArray(c,3*f),sg(Tf,f,e,d,a,b,this)}else for(c=c.vertices,f=0,g=c.length;f<g;f++)sg(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)}});ug.prototype=Object.assign(Object.create(Z.prototype),{constructor:ug,isVideoTexture:!0,update:function(){var a=this.image;a.readyState>=a.HAVE_CURRENT_DATA&&(this.needsUpdate=!0)}});Qc.prototype=Object.create(Z.prototype);Qc.prototype.constructor=Qc;Qc.prototype.isCompressedTexture=!0;Vd.prototype=Object.create(Z.prototype);Vd.prototype.constructor=Vd;Vd.prototype.isCanvasTexture=!0;Wd.prototype=Object.create(Z.prototype);Wd.prototype.constructor=Wd;Wd.prototype.isDepthTexture=
-!0;Rc.prototype=Object.create(A.prototype);Rc.prototype.constructor=Rc;Xd.prototype=Object.create(L.prototype);Xd.prototype.constructor=Xd;Sc.prototype=Object.create(A.prototype);Sc.prototype.constructor=Sc;Yd.prototype=Object.create(L.prototype);Yd.prototype.constructor=Yd;Ja.prototype=Object.create(A.prototype);Ja.prototype.constructor=Ja;Zd.prototype=Object.create(L.prototype);Zd.prototype.constructor=Zd;Tc.prototype=Object.create(Ja.prototype);Tc.prototype.constructor=Tc;$d.prototype=Object.create(L.prototype);
-$d.prototype.constructor=$d;dc.prototype=Object.create(Ja.prototype);dc.prototype.constructor=dc;ae.prototype=Object.create(L.prototype);ae.prototype.constructor=ae;Uc.prototype=Object.create(Ja.prototype);Uc.prototype.constructor=Uc;be.prototype=Object.create(L.prototype);be.prototype.constructor=be;Vc.prototype=Object.create(Ja.prototype);Vc.prototype.constructor=Vc;ce.prototype=Object.create(L.prototype);ce.prototype.constructor=ce;ec.prototype=Object.create(A.prototype);ec.prototype.constructor=
-ec;ec.prototype.toJSON=function(){var a=A.prototype.toJSON.call(this);a.path=this.parameters.path.toJSON();return a};de.prototype=Object.create(L.prototype);de.prototype.constructor=de;Wc.prototype=Object.create(A.prototype);Wc.prototype.constructor=Wc;ee.prototype=Object.create(L.prototype);ee.prototype.constructor=ee;Xc.prototype=Object.create(A.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=bi(a,0,e,c,!0),g=[];if(!f||f.next===
-f.prev)return g;var k;if(d){var h=c;d=[];var m;var n=0;for(m=b.length;n<m;n++){var p=b[n]*h;var q=n<m-1?b[n+1]*h:a.length;p=bi(a,p,q,h,!1);p===p.next&&(p.steiner=!0);d.push(Nk(p))}d.sort(Lk);for(n=0;n<d.length;n++){b=d[n];h=f;if(h=Mk(b,h))b=ei(h,b),ge(b,b.next);f=ge(f,f.next)}}if(a.length>80*c){var t=k=a[0];var r=d=a[1];for(h=c;h<e;h+=c)n=a[h],b=a[h+1],n<t&&(t=n),b<r&&(r=b),n>k&&(k=n),b>d&&(d=b);k=Math.max(k-t,d-r);k=0!==k?1/k:0}he(f,g,c,t,r,k);return g}},tb={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>tb.area(a)},triangulateShape:function(a,b){var c=[],d=[],e=[];fi(a);gi(c,a);var f=a.length;b.forEach(fi);for(a=0;a<b.length;a++)d.push(f),f+=b[a].length,gi(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}};gc.prototype=Object.create(L.prototype);gc.prototype.constructor=gc;gc.prototype.toJSON=function(){var a=L.prototype.toJSON.call(this);return hi(this.parameters.shapes,
-this.parameters.options,a)};gb.prototype=Object.create(A.prototype);gb.prototype.constructor=gb;gb.prototype.toJSON=function(){var a=A.prototype.toJSON.call(this);return hi(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 w(b[3*c],b[3*c+1]),new w(a,d),new w(f,e)]},generateSideWallUV:function(a,b,c,d,e,f){a=b[3*c];var g=b[3*c+1];c=b[3*c+2];var k=b[3*d],h=b[3*d+1];d=b[3*d+2];var m=b[3*e],n=b[3*e+1];e=
-b[3*e+2];var p=b[3*f],q=b[3*f+1];b=b[3*f+2];return.01>Math.abs(g-h)?[new w(a,1-c),new w(k,1-d),new w(m,1-e),new w(p,1-b)]:[new w(g,1-c),new w(h,1-d),new w(n,1-e),new w(q,1-b)]}};je.prototype=Object.create(L.prototype);je.prototype.constructor=je;Zc.prototype=Object.create(gb.prototype);Zc.prototype.constructor=Zc;ke.prototype=Object.create(L.prototype);ke.prototype.constructor=ke;hc.prototype=Object.create(A.prototype);hc.prototype.constructor=hc;le.prototype=Object.create(L.prototype);le.prototype.constructor=
-le;$c.prototype=Object.create(A.prototype);$c.prototype.constructor=$c;me.prototype=Object.create(L.prototype);me.prototype.constructor=me;ad.prototype=Object.create(A.prototype);ad.prototype.constructor=ad;ic.prototype=Object.create(L.prototype);ic.prototype.constructor=ic;ic.prototype.toJSON=function(){var a=L.prototype.toJSON.call(this);return ii(this.parameters.shapes,a)};jc.prototype=Object.create(A.prototype);jc.prototype.constructor=jc;jc.prototype.toJSON=function(){var a=A.prototype.toJSON.call(this);
-return ii(this.parameters.shapes,a)};bd.prototype=Object.create(A.prototype);bd.prototype.constructor=bd;kc.prototype=Object.create(L.prototype);kc.prototype.constructor=kc;ub.prototype=Object.create(A.prototype);ub.prototype.constructor=ub;ne.prototype=Object.create(kc.prototype);ne.prototype.constructor=ne;oe.prototype=Object.create(ub.prototype);oe.prototype.constructor=oe;pe.prototype=Object.create(L.prototype);pe.prototype.constructor=pe;cd.prototype=Object.create(A.prototype);cd.prototype.constructor=
-cd;var va=Object.freeze({__proto__:null,WireframeGeometry:Rc,ParametricGeometry:Xd,ParametricBufferGeometry:Sc,TetrahedronGeometry:Zd,TetrahedronBufferGeometry:Tc,OctahedronGeometry:$d,OctahedronBufferGeometry:dc,IcosahedronGeometry:ae,IcosahedronBufferGeometry:Uc,DodecahedronGeometry:be,DodecahedronBufferGeometry:Vc,PolyhedronGeometry:Yd,PolyhedronBufferGeometry:Ja,TubeGeometry:ce,TubeBufferGeometry:ec,TorusKnotGeometry:de,TorusKnotBufferGeometry:Wc,TorusGeometry:ee,TorusBufferGeometry:Xc,TextGeometry:je,
-TextBufferGeometry:Zc,SphereGeometry:ke,SphereBufferGeometry:hc,RingGeometry:le,RingBufferGeometry:$c,PlaneGeometry:Jd,PlaneBufferGeometry:cc,LatheGeometry:me,LatheBufferGeometry:ad,ShapeGeometry:ic,ShapeBufferGeometry:jc,ExtrudeGeometry:gc,ExtrudeBufferGeometry:gb,EdgesGeometry:bd,ConeGeometry:ne,ConeBufferGeometry:oe,CylinderGeometry:kc,CylinderBufferGeometry:ub,CircleGeometry:pe,CircleBufferGeometry:cd,BoxGeometry:nh,BoxBufferGeometry:Kd});lc.prototype=Object.create(K.prototype);lc.prototype.constructor=
-lc;lc.prototype.isShadowMaterial=!0;lc.prototype.copy=function(a){K.prototype.copy.call(this,a);this.color.copy(a.color);return this};vb.prototype=Object.create(qa.prototype);vb.prototype.constructor=vb;vb.prototype.isRawShaderMaterial=!0;hb.prototype=Object.create(K.prototype);hb.prototype.constructor=hb;hb.prototype.isMeshStandardMaterial=!0;hb.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;return this};mc.prototype=Object.create(hb.prototype);mc.prototype.constructor=
-mc;mc.prototype.isMeshPhysicalMaterial=!0;mc.prototype.copy=function(a){hb.prototype.copy.call(this,a);this.defines={STANDARD:"",PHYSICAL:""};this.reflectivity=a.reflectivity;this.clearcoat=a.clearcoat;this.clearcoatRoughness=a.clearcoatRoughness;this.sheen=a.sheen?(this.sheen||new B).copy(a.sheen):null;this.clearcoatNormalMap=a.clearcoatNormalMap;this.clearcoatNormalScale.copy(a.clearcoatNormalScale);this.transparency=a.transparency;return this};Kb.prototype=Object.create(K.prototype);Kb.prototype.constructor=
-Kb;Kb.prototype.isMeshPhongMaterial=!0;Kb.prototype.copy=function(a){K.prototype.copy.call(this,a);this.color.copy(a.color);this.specular.copy(a.specular);this.shininess=a.shininess;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.specularMap=a.specularMap;this.alphaMap=a.alphaMap;this.envMap=a.envMap;this.combine=a.combine;this.reflectivity=a.reflectivity;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;return this};nc.prototype=Object.create(K.prototype);nc.prototype.constructor=nc;nc.prototype.isMeshToonMaterial=!0;nc.prototype.copy=function(a){K.prototype.copy.call(this,a);this.color.copy(a.color);this.specular.copy(a.specular);this.shininess=a.shininess;this.map=a.map;this.gradientMap=a.gradientMap;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.specularMap=a.specularMap;this.alphaMap=a.alphaMap;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;return this};oc.prototype=Object.create(K.prototype);oc.prototype.constructor=oc;oc.prototype.isMeshNormalMaterial=!0;oc.prototype.copy=function(a){K.prototype.copy.call(this,a);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.wireframe=a.wireframe;this.wireframeLinewidth=a.wireframeLinewidth;this.skinning=a.skinning;this.morphTargets=a.morphTargets;this.morphNormals=a.morphNormals;return this};pc.prototype=Object.create(K.prototype);pc.prototype.constructor=pc;pc.prototype.isMeshLambertMaterial=!0;pc.prototype.copy=function(a){K.prototype.copy.call(this,a);this.color.copy(a.color);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.specularMap=a.specularMap;this.alphaMap=a.alphaMap;this.envMap=a.envMap;this.combine=a.combine;this.reflectivity=a.reflectivity;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;return this};qc.prototype=Object.create(K.prototype);qc.prototype.constructor=qc;qc.prototype.isMeshMatcapMaterial=!0;qc.prototype.copy=function(a){K.prototype.copy.call(this,a);this.defines={MATCAP:""};this.color.copy(a.color);this.matcap=a.matcap;this.map=a.map;this.bumpMap=a.bumpMap;this.bumpScale=a.bumpScale;this.normalMap=a.normalMap;this.normalMapType=a.normalMapType;
-this.normalScale.copy(a.normalScale);this.displacementMap=a.displacementMap;this.displacementScale=a.displacementScale;this.displacementBias=a.displacementBias;this.alphaMap=a.alphaMap;this.skinning=a.skinning;this.morphTargets=a.morphTargets;this.morphNormals=a.morphNormals;return this};rc.prototype=Object.create(ka.prototype);rc.prototype.constructor=rc;rc.prototype.isLineDashedMaterial=!0;rc.prototype.copy=function(a){ka.prototype.copy.call(this,a);this.scale=a.scale;this.dashSize=a.dashSize;this.gapSize=
-a.gapSize;return this};var bl=Object.freeze({__proto__:null,ShadowMaterial:lc,SpriteMaterial:Jb,RawShaderMaterial:vb,ShaderMaterial:qa,PointsMaterial:Wa,MeshPhysicalMaterial:mc,MeshStandardMaterial:hb,MeshPhongMaterial:Kb,MeshToonMaterial:nc,MeshNormalMaterial:oc,MeshLambertMaterial:pc,MeshDepthMaterial:Gb,MeshDistanceMaterial:Hb,MeshBasicMaterial:Pa,MeshMatcapMaterial:qc,LineDashedMaterial:rc,LineBasicMaterial:ka,Material:K}),ea={arraySlice:function(a,b,c){return ea.isTypedArray(a)?new a.constructor(a.subarray(b,
-void 0!==c?c:a.length)):a.slice(b,c)},convertArray:function(a,b,c){return!a||!c&&a.constructor===b?a:"number"===typeof b.BYTES_PER_ELEMENT?new b(a):Array.prototype.slice.call(a)},isTypedArray:function(a){return ArrayBuffer.isView(a)&&!(a instanceof DataView)},getKeyframeOrder:function(a){for(var b=a.length,c=Array(b),d=0;d!==b;++d)c[d]=d;c.sort(function(b,c){return a[b]-a[c]});return c},sortedArray:function(a,b,c){for(var d=a.length,e=new a.constructor(d),f=0,g=0;g!==d;++f)for(var k=c[f]*b,h=0;h!==
-b;++h)e[g++]=a[k+h];return e},flattenJSON:function(a,b,c,d){for(var e=1,f=a[0];void 0!==f&&void 0===f[d];)f=a[e++];if(void 0!==f){var g=f[d];if(void 0!==g)if(Array.isArray(g)){do g=f[d],void 0!==g&&(b.push(f.time),c.push.apply(c,g)),f=a[e++];while(void 0!==f)}else if(void 0!==g.toArray){do g=f[d],void 0!==g&&(b.push(f.time),g.toArray(c,c.length)),f=a[e++];while(void 0!==f)}else{do g=f[d],void 0!==g&&(b.push(f.time),c.push(g)),f=a[e++];while(void 0!==f)}}},subclip:function(a,b,c,d,e){e=e||30;a=a.clone();
-a.name=b;var f=[];for(b=0;b<a.tracks.length;++b){for(var g=a.tracks[b],k=g.getValueSize(),h=[],m=[],n=0;n<g.times.length;++n){var p=g.times[n]*e;if(!(p<c||p>=d))for(h.push(g.times[n]),p=0;p<k;++p)m.push(g.values[n*k+p])}0!==h.length&&(g.times=ea.convertArray(h,g.times.constructor),g.values=ea.convertArray(m,g.values.constructor),f.push(g))}a.tracks=f;c=Infinity;for(b=0;b<a.tracks.length;++b)c>a.tracks[b].times[0]&&(c=a.tracks[b].times[0]);for(b=0;b<a.tracks.length;++b)a.tracks[b].shift(-1*c);a.resetDuration();
-return a}};Object.assign(Ma.prototype,{evaluate:function(a){var b=this.parameterPositions,c=this._cachedIndex,d=b[c],e=b[c-1];a:{b:{c:{d:if(!(a<d)){for(var f=c+2;;){if(void 0===d){if(a<e)break d;this._cachedIndex=c=b.length;return this.afterEnd_(c-1,a,e)}if(c===f)break;e=d;d=b[++c];if(a<d)break b}d=b.length;break c}if(a>=e)break a;else{f=b[1];a<f&&(c=2,e=f);for(f=c-2;;){if(void 0===e)return this._cachedIndex=0,this.beforeStart_(0,a,d);if(c===f)break;d=e;e=b[--c-1];if(a>=e)break b}d=c;c=0}}for(;c<
-d;)e=c+d>>>1,a<b[e]?d=e:c=e+1;d=b[c];e=b[c-1];if(void 0===e)return this._cachedIndex=0,this.beforeStart_(0,a,d);if(void 0===d)return this._cachedIndex=c=b.length,this.afterEnd_(c-1,e,a)}this._cachedIndex=c;this.intervalChanged_(c,e,d)}return this.interpolate_(c,e,a,d)},settings:null,DefaultSettings_:{},getSettings_:function(){return this.settings||this.DefaultSettings_},copySampleValue_:function(a){var b=this.resultBuffer,c=this.sampleValues,d=this.valueSize;a*=d;for(var e=0;e!==d;++e)b[e]=c[a+e];
-return b},interpolate_:function(){throw Error("call to abstract method");},intervalChanged_:function(){}});Object.assign(Ma.prototype,{beforeStart_:Ma.prototype.copySampleValue_,afterEnd_:Ma.prototype.copySampleValue_});Xe.prototype=Object.assign(Object.create(Ma.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],k=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===k)switch(this.getSettings_().endingEnd){case 2401:f=a;k=2*c-b;break;case 2402:f=1;k=c+d[1]-d[0];break;default:f=a-1,k=b}a=.5*(c-b);d=this.valueSize;this._weightPrev=a/(b-g);this._weightNext=a/(k-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 k=a-g,h=this._offsetPrev,m=this._offsetNext,n=this._weightPrev,p=this._weightNext,
-q=(c-b)/(d-b);c=q*q;d=c*q;b=-n*d+2*n*c-n*q;n=(1+n)*d+(-1.5-2*n)*c+(-.5+n)*q+1;q=(-1-p)*d+(1.5+p)*c+.5*q;p=p*d-p*c;for(c=0;c!==g;++c)e[c]=b*f[h+c]+n*f[k+c]+q*f[a+c]+p*f[m+c];return e}});qe.prototype=Object.assign(Object.create(Ma.prototype),{constructor:qe,interpolate_:function(a,b,c,d){var e=this.resultBuffer,f=this.sampleValues,g=this.valueSize;a*=g;var k=a-g;b=(c-b)/(d-b);c=1-b;for(d=0;d!==g;++d)e[d]=f[k+d]*c+f[a+d]*b;return e}});Ye.prototype=Object.assign(Object.create(Ma.prototype),{constructor:Ye,
-interpolate_:function(a){return this.copySampleValue_(a-1)}});Object.assign(ua,{toJSON:function(a){var b=a.constructor;if(void 0!==b.toJSON)b=b.toJSON(a);else{b={name:a.name,times:ea.convertArray(a.times,Array),values:ea.convertArray(a.values,Array)};var c=a.getInterpolation();c!==a.DefaultInterpolation&&(b.interpolation=c)}b.type=a.ValueTypeName;return b}});Object.assign(ua.prototype,{constructor:ua,TimeBufferType:Float32Array,ValueBufferType:Float32Array,DefaultInterpolation:2301,InterpolantFactoryMethodDiscrete:function(a){return new Ye(this.times,
-this.values,this.getValueSize(),a)},InterpolantFactoryMethodLinear:function(a){return new qe(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=ea.arraySlice(c,e,f),this.values=ea.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&&ea.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=ea.arraySlice(this.times),b=ea.arraySlice(this.values),c=this.getValueSize(),d=2302===this.getInterpolation(),e=1,f=a.length-1,g=1;g<f;++g){var k=!1,h=a[g];if(h!==a[g+1]&&(1!==g||h!==h[0]))if(d)k=!0;else{var m=g*c,n=m-c,p=m+c;for(h=0;h!==c;++h){var q=b[m+h];if(q!==b[n+h]||q!==b[p+h]){k=!0;
-break}}}if(k){if(g!==e)for(a[e]=a[g],k=g*c,m=e*c,h=0;h!==c;++h)b[m+h]=b[k+h];++e}}if(0<f){a[e]=a[f];k=f*c;m=e*c;for(h=0;h!==c;++h)b[m+h]=b[k+h];++e}e!==a.length?(this.times=ea.arraySlice(a,0,e),this.values=ea.arraySlice(b,0,e*c)):(this.times=a,this.values=b);return this},clone:function(){var a=ea.arraySlice(this.times,0),b=ea.arraySlice(this.values,0);a=new this.constructor(this.name,a,b);a.createInterpolant=this.createInterpolant;return a}});Ze.prototype=Object.assign(Object.create(ua.prototype),
-{constructor:Ze,ValueTypeName:"bool",ValueBufferType:Array,DefaultInterpolation:2300,InterpolantFactoryMethodLinear:void 0,InterpolantFactoryMethodSmooth:void 0});$e.prototype=Object.assign(Object.create(ua.prototype),{constructor:$e,ValueTypeName:"color"});dd.prototype=Object.assign(Object.create(ua.prototype),{constructor:dd,ValueTypeName:"number"});af.prototype=Object.assign(Object.create(Ma.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)Da.slerpFlat(e,0,f,a-g,f,a,b);return e}});re.prototype=Object.assign(Object.create(ua.prototype),{constructor:re,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(ua.prototype),{constructor:bf,ValueTypeName:"string",ValueBufferType:Array,DefaultInterpolation:2300,
-InterpolantFactoryMethodLinear:void 0,InterpolantFactoryMethodSmooth:void 0});ed.prototype=Object.assign(Object.create(ua.prototype),{constructor:ed,ValueTypeName:"vector"});Object.assign(Ra,{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 Ra(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(ua.toJSON(c[d]));return a},CreateFromMorphTargetSequence:function(a,
-b,c,d){for(var e=b.length,f=[],g=0;g<e;g++){var k=[],h=[];k.push((g+e-1)%e,g,(g+1)%e);h.push(0,1,0);var m=ea.getKeyframeOrder(k);k=ea.sortedArray(k,1,m);h=ea.sortedArray(h,1,m);d||0!==k[0]||(k.push(e),h.push(h[0]));f.push((new dd(".morphTargetInfluences["+b[g].name+"]",k,h)).scale(1/c))}return new Ra(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 k=a[f],h=k.name.match(e);if(h&&1<h.length){var m=h[1];(h=d[m])||(d[m]=h=[]);h.push(k)}}a=[];for(m in d)a.push(Ra.CreateFromMorphTargetSequence(m,d[m],b,c));return a},parseAnimation:function(a,b){if(!a)return console.error("THREE.AnimationClip: No animation in JSONLoader data."),null;var c=function(a,b,c,d,e){if(0!==c.length){var f=[],g=[];ea.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 k=0;k<a.length;k++){var h=a[k].keys;if(h&&0!==h.length)if(h[0].morphTargets){f={};for(var m=0;m<h.length;m++)if(h[m].morphTargets)for(var n=0;n<h[m].morphTargets.length;n++)f[h[m].morphTargets[n]]=-1;for(var p in f){var q=[],t=[];for(n=0;n!==h[m].morphTargets.length;++n){var r=h[m];q.push(r.time);t.push(r.morphTarget===p?1:0)}d.push(new dd(".morphTargetInfluence["+p+"]",q,t))}f=f.length*(g||1)}else m=".bones["+b[k].name+"]",c(ed,m+".position",h,"pos",d),c(re,
-m+".quaternion",h,"rot",d),c(ed,m+".scale",h,"scl",d)}return 0===d.length?null:new Ra(e,f,d)}});Object.assign(Ra.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 Ra(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={}}},ji=new xg;Object.assign(V.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 db={};Sa.prototype=Object.assign(Object.create(V.prototype),{constructor:Sa,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!==db[a])db[a].push({onLoad:b,onProgress:c,onError:d});else{var g=
-a.match(/^data:(.*?)(;base64)?,(.*)$/);if(g){c=g[1];var k=!!g[2];g=g[3];g=decodeURIComponent(g);k&&(g=atob(g));try{var h=(this.responseType||"").toLowerCase();switch(h){case "arraybuffer":case "blob":var m=new Uint8Array(g.length);for(k=0;k<g.length;k++)m[k]=g.charCodeAt(k);var n="blob"===h?new Blob([m.buffer],{type:c}):m.buffer;break;case "document":n=(new DOMParser).parseFromString(g,c);break;case "json":n=JSON.parse(g);break;default:n=g}setTimeout(function(){b&&b(n);e.manager.itemEnd(a)},0)}catch(q){setTimeout(function(){d&&
-d(q);e.manager.itemError(a);e.manager.itemEnd(a)},0)}}else{db[a]=[];db[a].push({onLoad:b,onProgress:c,onError:d});var p=new XMLHttpRequest;p.open("GET",a,!0);p.addEventListener("load",function(b){var c=this.response,d=db[a];delete db[a];if(200===this.status||0===this.status){0===this.status&&console.warn("THREE.FileLoader: HTTP Status 0 received.");vc.add(a,c);for(var f=0,g=d.length;f<g;f++){var k=d[f];if(k.onLoad)k.onLoad(c)}}else{f=0;for(g=d.length;f<g;f++)if(k=d[f],k.onError)k.onError(b);e.manager.itemError(a)}e.manager.itemEnd(a)},
-!1);p.addEventListener("progress",function(b){for(var c=db[a],d=0,e=c.length;d<e;d++){var f=c[d];if(f.onProgress)f.onProgress(b)}},!1);p.addEventListener("error",function(b){var c=db[a];delete db[a];for(var d=0,f=c.length;d<f;d++){var g=c[d];if(g.onError)g.onError(b)}e.manager.itemError(a);e.manager.itemEnd(a)},!1);p.addEventListener("abort",function(b){var c=db[a];delete db[a];for(var d=0,f=c.length;d<f;d++){var g=c[d];if(g.onError)g.onError(b)}e.manager.itemError(a);e.manager.itemEnd(a)},!1);void 0!==
-this.responseType&&(p.responseType=this.responseType);void 0!==this.withCredentials&&(p.withCredentials=this.withCredentials);p.overrideMimeType&&p.overrideMimeType(void 0!==this.mimeType?this.mimeType:"text/plain");for(k in this.requestHeader)p.setRequestHeader(k,this.requestHeader[k]);p.send(null)}e.manager.itemStart(a);return p}},setResponseType:function(a){this.responseType=a;return this},setWithCredentials:function(a){this.withCredentials=a;return this},setMimeType:function(a){this.mimeType=
-a;return this},setRequestHeader:function(a){this.requestHeader=a;return this}});yg.prototype=Object.assign(Object.create(V.prototype),{constructor:yg,load:function(a,b,c,d){var e=this,f=new Sa(e.manager);f.setPath(e.path);f.load(a,function(a){b(e.parse(JSON.parse(a)))},c,d)},parse:function(a){for(var b=[],c=0;c<a.length;c++){var d=Ra.parse(a[c]);b.push(d)}return b}});zg.prototype=Object.assign(Object.create(V.prototype),{constructor:zg,load:function(a,b,c,d){function e(e){h.load(a[e],function(a){a=
-f.parse(a,!0);g[e]={width:a.width,height:a.height,format:a.format,mipmaps:a.mipmaps};m+=1;6===m&&(1===a.mipmapCount&&(k.minFilter=1006),k.format=a.format,k.needsUpdate=!0,b&&b(k))},c,d)}var f=this,g=[],k=new Qc;k.image=g;var h=new Sa(this.manager);h.setPath(this.path);h.setResponseType("arraybuffer");if(Array.isArray(a))for(var m=0,n=0,p=a.length;n<p;++n)e(n);else h.load(a,function(a){a=f.parse(a,!0);if(a.isCubemap)for(var c=a.mipmaps.length/a.mipmapCount,d=0;d<c;d++){g[d]={mipmaps:[]};for(var e=
-0;e<a.mipmapCount;e++)g[d].mipmaps.push(a.mipmaps[d*a.mipmapCount+e]),g[d].format=a.format,g[d].width=a.width,g[d].height=a.height}else k.image.width=a.width,k.image.height=a.height,k.mipmaps=a.mipmaps;1===a.mipmapCount&&(k.minFilter=1006);k.format=a.format;k.needsUpdate=!0;b&&b(k)},c,d);return k}});cf.prototype=Object.assign(Object.create(V.prototype),{constructor:cf,load:function(a,b,c,d){var e=this,f=new bc,g=new Sa(this.manager);g.setResponseType("arraybuffer");g.setPath(this.path);g.load(a,function(a){if(a=
-e.parse(a))void 0!==a.image?f.image=a.image:void 0!==a.data&&(f.image.width=a.width,f.image.height=a.height,f.image.data=a.data),f.wrapS=void 0!==a.wrapS?a.wrapS:1001,f.wrapT=void 0!==a.wrapT?a.wrapT:1001,f.magFilter=void 0!==a.magFilter?a.magFilter:1006,f.minFilter=void 0!==a.minFilter?a.minFilter:1006,f.anisotropy=void 0!==a.anisotropy?a.anisotropy:1,void 0!==a.format&&(f.format=a.format),void 0!==a.type&&(f.type=a.type),void 0!==a.mipmaps&&(f.mipmaps=a.mipmaps,f.minFilter=1008),1===a.mipmapCount&&
-(f.minFilter=1006),f.needsUpdate=!0,b&&b(f,a)},c,d);return f}});fd.prototype=Object.assign(Object.create(V.prototype),{constructor:fd,load:function(a,b,c,d){function e(){h.removeEventListener("load",e,!1);h.removeEventListener("error",f,!1);vc.add(a,this);b&&b(this);g.manager.itemEnd(a)}function f(b){h.removeEventListener("load",e,!1);h.removeEventListener("error",f,!1);d&&d(b);g.manager.itemError(a);g.manager.itemEnd(a)}void 0!==this.path&&(a=this.path+a);a=this.manager.resolveURL(a);var g=this,
-k=vc.get(a);if(void 0!==k)return g.manager.itemStart(a),setTimeout(function(){b&&b(k);g.manager.itemEnd(a)},0),k;var h=document.createElementNS("http://www.w3.org/1999/xhtml","img");h.addEventListener("load",e,!1);h.addEventListener("error",f,!1);"data:"!==a.substr(0,5)&&void 0!==this.crossOrigin&&(h.crossOrigin=this.crossOrigin);g.manager.itemStart(a);h.src=a;return h}});df.prototype=Object.assign(Object.create(V.prototype),{constructor:df,load:function(a,b,c,d){function e(c){g.load(a[c],function(a){f.images[c]=
-a;k++;6===k&&(f.needsUpdate=!0,b&&b(f))},void 0,d)}var f=new rb,g=new fd(this.manager);g.setCrossOrigin(this.crossOrigin);g.setPath(this.path);var k=0;for(c=0;c<a.length;++c)e(c);return f}});ef.prototype=Object.assign(Object.create(V.prototype),{constructor:ef,load:function(a,b,c,d){var e=new Z,f=new fd(this.manager);f.setCrossOrigin(this.crossOrigin);f.setPath(this.path);f.load(a,function(c){e.image=c;c=0<a.search(/\.jpe?g($|\?)/i)||0===a.search(/^data:image\/jpeg/);e.format=c?1022:1023;e.needsUpdate=
-!0;void 0!==b&&b(e)},c,d);return e}});Object.assign(I.prototype,{getPoint:function(){console.warn("THREE.Curve: .getPoint() not implemented.");return null},getPointAt:function(a,b){a=this.getUtoTmapping(a);return this.getPoint(a,b)},getPoints:function(a){void 0===a&&(a=5);for(var b=[],c=0;c<=a;c++)b.push(this.getPoint(c/a));return b},getSpacedPoints:function(a){void 0===a&&(a=5);for(var b=[],c=0;c<=a;c++)b.push(this.getPointAt(c/a));return b},getLength:function(){var a=this.getLengths();return a[a.length-
-1]},getLengths:function(a){void 0===a&&(a=this.arcLengthDivisions);if(this.cacheArcLengths&&this.cacheArcLengths.length===a+1&&!this.needsUpdate)return this.cacheArcLengths;this.needsUpdate=!1;var b=[],c=this.getPoint(0),d,e=0;b.push(0);for(d=1;d<=a;d++){var f=this.getPoint(d/a);e+=f.distanceTo(c);b.push(e);c=f}return this.cacheArcLengths=b},updateArcLengths:function(){this.needsUpdate=!0;this.getLengths()},getUtoTmapping:function(a,b){var c=this.getLengths(),d=c.length;b=b?b:a*c[d-1];for(var e=0,
-f=d-1,g;e<=f;)if(a=Math.floor(e+(f-e)/2),g=c[a]-b,0>g)e=a+1;else if(0<g)f=a-1;else{f=a;break}a=f;if(c[a]===b)return a/(d-1);e=c[a];return(a+(b-e)/(c[a+1]-e))/(d-1)},getTangent:function(a){var b=a-1E-4;a+=1E-4;0>b&&(b=0);1<a&&(a=1);b=this.getPoint(b);return this.getPoint(a).clone().sub(b).normalize()},getTangentAt:function(a){a=this.getUtoTmapping(a);return this.getTangent(a)},computeFrenetFrames:function(a,b){var c=new n,d=[],e=[],f=[],g=new n,k=new O,h;for(h=0;h<=a;h++){var m=h/a;d[h]=this.getTangentAt(m);
-d[h].normalize()}e[0]=new n;f[0]=new n;h=Number.MAX_VALUE;m=Math.abs(d[0].x);var x=Math.abs(d[0].y),p=Math.abs(d[0].z);m<=h&&(h=m,c.set(1,0,0));x<=h&&(h=x,c.set(0,1,0));p<=h&&c.set(0,0,1);g.crossVectors(d[0],c).normalize();e[0].crossVectors(d[0],g);f[0].crossVectors(d[0],e[0]);for(h=1;h<=a;h++)e[h]=e[h-1].clone(),f[h]=f[h-1].clone(),g.crossVectors(d[h-1],d[h]),g.length()>Number.EPSILON&&(g.normalize(),c=Math.acos(P.clamp(d[h-1].dot(d[h]),-1,1)),e[h].applyMatrix4(k.makeRotationAxis(g,c))),f[h].crossVectors(d[h],
-e[h]);if(!0===b)for(c=Math.acos(P.clamp(e[0].dot(e[a]),-1,1)),c/=a,0<d[0].dot(g.crossVectors(e[0],e[a]))&&(c=-c),h=1;h<=a;h++)e[h].applyMatrix4(k.makeRotationAxis(d[h],c*h)),f[h].crossVectors(d[h],e[h]);return{tangents:d,normals:e,binormals:f}},clone:function(){return(new this.constructor).copy(this)},copy:function(a){this.arcLengthDivisions=a.arcLengthDivisions;return this},toJSON:function(){var a={metadata:{version:4.5,type:"Curve",generator:"Curve.toJSON"}};a.arcLengthDivisions=this.arcLengthDivisions;
-a.type=this.type;return a},fromJSON:function(a){this.arcLengthDivisions=a.arcLengthDivisions;return this}});Na.prototype=Object.create(I.prototype);Na.prototype.constructor=Na;Na.prototype.isEllipseCurve=!0;Na.prototype.getPoint=function(a,b){b=b||new w;for(var c=2*Math.PI,d=this.aEndAngle-this.aStartAngle,e=Math.abs(d)<Number.EPSILON;0>d;)d+=c;for(;d>c;)d-=c;d<Number.EPSILON&&(d=e?0:c);!0!==this.aClockwise||e||(d=d===c?-c:d-c);c=this.aStartAngle+a*d;a=this.aX+this.xRadius*Math.cos(c);var f=this.aY+
-this.yRadius*Math.sin(c);0!==this.aRotation&&(c=Math.cos(this.aRotation),d=Math.sin(this.aRotation),e=a-this.aX,f-=this.aY,a=e*c-f*d+this.aX,f=e*d+f*c+this.aY);return b.set(a,f)};Na.prototype.copy=function(a){I.prototype.copy.call(this,a);this.aX=a.aX;this.aY=a.aY;this.xRadius=a.xRadius;this.yRadius=a.yRadius;this.aStartAngle=a.aStartAngle;this.aEndAngle=a.aEndAngle;this.aClockwise=a.aClockwise;this.aRotation=a.aRotation;return this};Na.prototype.toJSON=function(){var a=I.prototype.toJSON.call(this);
-a.aX=this.aX;a.aY=this.aY;a.xRadius=this.xRadius;a.yRadius=this.yRadius;a.aStartAngle=this.aStartAngle;a.aEndAngle=this.aEndAngle;a.aClockwise=this.aClockwise;a.aRotation=this.aRotation;return a};Na.prototype.fromJSON=function(a){I.prototype.fromJSON.call(this,a);this.aX=a.aX;this.aY=a.aY;this.xRadius=a.xRadius;this.yRadius=a.yRadius;this.aStartAngle=a.aStartAngle;this.aEndAngle=a.aEndAngle;this.aClockwise=a.aClockwise;this.aRotation=a.aRotation;return this};gd.prototype=Object.create(Na.prototype);
-gd.prototype.constructor=gd;gd.prototype.isArcCurve=!0;var Uf=new n,ph=new Ag,qh=new Ag,rh=new Ag;Aa.prototype=Object.create(I.prototype);Aa.prototype.constructor=Aa;Aa.prototype.isCatmullRomCurve3=!0;Aa.prototype.getPoint=function(a,b){b=b||new n;var c=this.points,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 Uf.subVectors(c[0],c[1]).add(c[0]),f=Uf;var g=c[e%d];
-var h=c[(e+1)%d];this.closed||e+2<d?c=c[(e+2)%d]:(Uf.subVectors(c[d-1],c[d-2]).add(c[d-1]),c=Uf);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};Aa.prototype.copy=function(a){I.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};Aa.prototype.toJSON=function(){var a=
-I.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};Aa.prototype.fromJSON=function(a){I.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};Xa.prototype=Object.create(I.prototype);
-Xa.prototype.constructor=Xa;Xa.prototype.isCubicBezierCurve=!0;Xa.prototype.getPoint=function(a,b){b=b||new w;var c=this.v0,d=this.v1,e=this.v2,f=this.v3;b.set(te(a,c.x,d.x,e.x,f.x),te(a,c.y,d.y,e.y,f.y));return b};Xa.prototype.copy=function(a){I.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};Xa.prototype.toJSON=function(){var a=I.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};Xa.prototype.fromJSON=function(a){I.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};ib.prototype=Object.create(I.prototype);ib.prototype.constructor=ib;ib.prototype.isCubicBezierCurve3=!0;ib.prototype.getPoint=function(a,b){b=b||new n;var c=this.v0,d=this.v1,e=this.v2,f=this.v3;b.set(te(a,c.x,d.x,e.x,f.x),te(a,c.y,d.y,e.y,f.y),te(a,c.z,d.z,e.z,f.z));return b};ib.prototype.copy=
-function(a){I.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};ib.prototype.toJSON=function(){var a=I.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};ib.prototype.fromJSON=function(a){I.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};Ea.prototype=Object.create(I.prototype);
-Ea.prototype.constructor=Ea;Ea.prototype.isLineCurve=!0;Ea.prototype.getPoint=function(a,b){b=b||new w;1===a?b.copy(this.v2):(b.copy(this.v2).sub(this.v1),b.multiplyScalar(a).add(this.v1));return b};Ea.prototype.getPointAt=function(a,b){return this.getPoint(a,b)};Ea.prototype.getTangent=function(){return this.v2.clone().sub(this.v1).normalize()};Ea.prototype.copy=function(a){I.prototype.copy.call(this,a);this.v1.copy(a.v1);this.v2.copy(a.v2);return this};Ea.prototype.toJSON=function(){var a=I.prototype.toJSON.call(this);
-a.v1=this.v1.toArray();a.v2=this.v2.toArray();return a};Ea.prototype.fromJSON=function(a){I.prototype.fromJSON.call(this,a);this.v1.fromArray(a.v1);this.v2.fromArray(a.v2);return this};Ya.prototype=Object.create(I.prototype);Ya.prototype.constructor=Ya;Ya.prototype.isLineCurve3=!0;Ya.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};Ya.prototype.getPointAt=function(a,b){return this.getPoint(a,b)};Ya.prototype.copy=
-function(a){I.prototype.copy.call(this,a);this.v1.copy(a.v1);this.v2.copy(a.v2);return this};Ya.prototype.toJSON=function(){var a=I.prototype.toJSON.call(this);a.v1=this.v1.toArray();a.v2=this.v2.toArray();return a};Ya.prototype.fromJSON=function(a){I.prototype.fromJSON.call(this,a);this.v1.fromArray(a.v1);this.v2.fromArray(a.v2);return this};Za.prototype=Object.create(I.prototype);Za.prototype.constructor=Za;Za.prototype.isQuadraticBezierCurve=!0;Za.prototype.getPoint=function(a,b){b=b||new w;var c=
-this.v0,d=this.v1,e=this.v2;b.set(se(a,c.x,d.x,e.x),se(a,c.y,d.y,e.y));return b};Za.prototype.copy=function(a){I.prototype.copy.call(this,a);this.v0.copy(a.v0);this.v1.copy(a.v1);this.v2.copy(a.v2);return this};Za.prototype.toJSON=function(){var a=I.prototype.toJSON.call(this);a.v0=this.v0.toArray();a.v1=this.v1.toArray();a.v2=this.v2.toArray();return a};Za.prototype.fromJSON=function(a){I.prototype.fromJSON.call(this,a);this.v0.fromArray(a.v0);this.v1.fromArray(a.v1);this.v2.fromArray(a.v2);return this};
-jb.prototype=Object.create(I.prototype);jb.prototype.constructor=jb;jb.prototype.isQuadraticBezierCurve3=!0;jb.prototype.getPoint=function(a,b){b=b||new n;var c=this.v0,d=this.v1,e=this.v2;b.set(se(a,c.x,d.x,e.x),se(a,c.y,d.y,e.y),se(a,c.z,d.z,e.z));return b};jb.prototype.copy=function(a){I.prototype.copy.call(this,a);this.v0.copy(a.v0);this.v1.copy(a.v1);this.v2.copy(a.v2);return this};jb.prototype.toJSON=function(){var a=I.prototype.toJSON.call(this);a.v0=this.v0.toArray();a.v1=this.v1.toArray();
-a.v2=this.v2.toArray();return a};jb.prototype.fromJSON=function(a){I.prototype.fromJSON.call(this,a);this.v0.fromArray(a.v0);this.v1.fromArray(a.v1);this.v2.fromArray(a.v2);return this};$a.prototype=Object.create(I.prototype);$a.prototype.constructor=$a;$a.prototype.isSplineCurve=!0;$a.prototype.getPoint=function(a,b){b=b||new w;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(ki(d,e.x,f.x,g.x,
-c.x),ki(d,e.y,f.y,g.y,c.y));return b};$a.prototype.copy=function(a){I.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};$a.prototype.toJSON=function(){var a=I.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};$a.prototype.fromJSON=function(a){I.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 w).fromArray(d))}return this};var sh=Object.freeze({__proto__:null,ArcCurve:gd,CatmullRomCurve3:Aa,CubicBezierCurve:Xa,CubicBezierCurve3:ib,EllipseCurve:Na,LineCurve:Ea,LineCurve3:Ya,QuadraticBezierCurve:Za,QuadraticBezierCurve3:jb,SplineCurve:$a});wb.prototype=Object.assign(Object.create(I.prototype),{constructor:wb,add:function(a){this.curves.push(a)},closePath:function(){var a=this.curves[0].getPoint(0),b=this.curves[this.curves.length-1].getPoint(1);a.equals(b)||this.curves.push(new Ea(b,
-a))},getPoint:function(a){var b=a*this.getLength(),c=this.getCurveLengths();for(a=0;a<c.length;){if(c[a]>=b)return b=c[a]-b,a=this.curves[a],c=a.getLength(),a.getPointAt(0===c?0:1-b/c);a++}return null},getLength:function(){var a=this.getCurveLengths();return a[a.length-1]},updateArcLengths:function(){this.needsUpdate=!0;this.cacheLengths=null;this.getCurveLengths()},getCurveLengths:function(){if(this.cacheLengths&&this.cacheLengths.length===this.curves.length)return this.cacheLengths;for(var a=[],
-b=0,c=0,d=this.curves.length;c<d;c++)b+=this.curves[c].getLength(),a.push(b);return this.cacheLengths=a},getSpacedPoints:function(a){void 0===a&&(a=40);for(var b=[],c=0;c<=a;c++)b.push(this.getPoint(c/a));this.autoClose&&b.push(b[0]);return b},getPoints:function(a){a=a||12;for(var b=[],c,d=0,e=this.curves;d<e.length;d++){var f=e[d];f=f.getPoints(f&&f.isEllipseCurve?2*a:f&&(f.isLineCurve||f.isLineCurve3)?1:f&&f.isSplineCurve?a*f.points.length:a);for(var g=0;g<f.length;g++){var h=f[g];c&&c.equals(h)||
-(b.push(h),c=h)}}this.autoClose&&1<b.length&&!b[b.length-1].equals(b[0])&&b.push(b[0]);return b},copy:function(a){I.prototype.copy.call(this,a);this.curves=[];for(var b=0,c=a.curves.length;b<c;b++)this.curves.push(a.curves[b].clone());this.autoClose=a.autoClose;return this},toJSON:function(){var a=I.prototype.toJSON.call(this);a.autoClose=this.autoClose;a.curves=[];for(var b=0,c=this.curves.length;b<c;b++)a.curves.push(this.curves[b].toJSON());return a},fromJSON:function(a){I.prototype.fromJSON.call(this,
-a);this.autoClose=a.autoClose;this.curves=[];for(var b=0,c=a.curves.length;b<c;b++){var d=a.curves[b];this.curves.push((new sh[d.type]).fromJSON(d))}return this}});ab.prototype=Object.assign(Object.create(wb.prototype),{constructor:ab,setFromPoints:function(a){this.moveTo(a[0].x,a[0].y);for(var b=1,c=a.length;b<c;b++)this.lineTo(a[b].x,a[b].y);return this},moveTo:function(a,b){this.currentPoint.set(a,b);return this},lineTo:function(a,b){var c=new Ea(this.currentPoint.clone(),new w(a,b));this.curves.push(c);
-this.currentPoint.set(a,b);return this},quadraticCurveTo:function(a,b,c,d){a=new Za(this.currentPoint.clone(),new w(a,b),new w(c,d));this.curves.push(a);this.currentPoint.set(c,d);return this},bezierCurveTo:function(a,b,c,d,e,f){a=new Xa(this.currentPoint.clone(),new w(a,b),new w(c,d),new w(e,f));this.curves.push(a);this.currentPoint.set(e,f);return this},splineThru:function(a){var b=[this.currentPoint.clone()].concat(a);b=new $a(b);this.curves.push(b);this.currentPoint.copy(a[a.length-1]);return this},
-arc:function(a,b,c,d,e,f){this.absarc(a+this.currentPoint.x,b+this.currentPoint.y,c,d,e,f);return this},absarc:function(a,b,c,d,e,f){this.absellipse(a,b,c,c,d,e,f);return this},ellipse:function(a,b,c,d,e,f,g,h){this.absellipse(a+this.currentPoint.x,b+this.currentPoint.y,c,d,e,f,g,h);return this},absellipse:function(a,b,c,d,e,f,g,h){a=new Na(a,b,c,d,e,f,g,h);0<this.curves.length&&(b=a.getPoint(0),b.equals(this.currentPoint)||this.lineTo(b.x,b.y));this.curves.push(a);a=a.getPoint(1);this.currentPoint.copy(a);
-return this},copy:function(a){wb.prototype.copy.call(this,a);this.currentPoint.copy(a.currentPoint);return this},toJSON:function(){var a=wb.prototype.toJSON.call(this);a.currentPoint=this.currentPoint.toArray();return a},fromJSON:function(a){wb.prototype.fromJSON.call(this,a);this.currentPoint.fromArray(a.currentPoint);return this}});Lb.prototype=Object.assign(Object.create(ab.prototype),{constructor:Lb,getPointsHoles:function(a){for(var b=[],c=0,d=this.holes.length;c<d;c++)b[c]=this.holes[c].getPoints(a);
-return b},extractPoints:function(a){return{shape:this.getPoints(a),holes:this.getPointsHoles(a)}},copy:function(a){ab.prototype.copy.call(this,a);this.holes=[];for(var b=0,c=a.holes.length;b<c;b++)this.holes.push(a.holes[b].clone());return this},toJSON:function(){var a=ab.prototype.toJSON.call(this);a.uuid=this.uuid;a.holes=[];for(var b=0,c=this.holes.length;b<c;b++)a.holes.push(this.holes[b].toJSON());return a},fromJSON:function(a){ab.prototype.fromJSON.call(this,a);this.uuid=a.uuid;this.holes=[];
-for(var b=0,c=a.holes.length;b<c;b++){var d=a.holes[b];this.holes.push((new ab).fromJSON(d))}return this}});ba.prototype=Object.assign(Object.create(D.prototype),{constructor:ba,isLight:!0,copy:function(a){D.prototype.copy.call(this,a);this.color.copy(a.color);this.intensity=a.intensity;return this},toJSON:function(a){a=D.prototype.toJSON.call(this,a);a.object.color=this.color.getHex();a.object.intensity=this.intensity;void 0!==this.groundColor&&(a.object.groundColor=this.groundColor.getHex());void 0!==
-this.distance&&(a.object.distance=this.distance);void 0!==this.angle&&(a.object.angle=this.angle);void 0!==this.decay&&(a.object.decay=this.decay);void 0!==this.penumbra&&(a.object.penumbra=this.penumbra);void 0!==this.shadow&&(a.object.shadow=this.shadow.toJSON());return a}});ff.prototype=Object.assign(Object.create(ba.prototype),{constructor:ff,isHemisphereLight:!0,copy:function(a){ba.prototype.copy.call(this,a);this.groundColor.copy(a.groundColor);return this}});Object.assign(kb.prototype,{_projScreenMatrix:new O,
-_lightPositionWorld:new n,_lookTarget:new n,getViewportCount:function(){return this._viewportCount},getFrustum:function(){return this._frustum},updateMatrices:function(a){var b=this.camera,c=this.matrix,d=this._projScreenMatrix,e=this._lookTarget,f=this._lightPositionWorld;f.setFromMatrixPosition(a.matrixWorld);b.position.copy(f);e.setFromMatrixPosition(a.target.matrixWorld);b.lookAt(e);b.updateMatrixWorld();d.multiplyMatrices(b.projectionMatrix,b.matrixWorldInverse);this._frustum.setFromProjectionMatrix(d);
-c.set(.5,0,0,.5,0,.5,0,.5,0,0,.5,.5,0,0,0,1);c.multiply(b.projectionMatrix);c.multiply(b.matrixWorldInverse)},getViewport:function(a){return this._viewports[a]},getFrameExtents:function(){return this._frameExtents},copy:function(a){this.camera=a.camera.clone();this.bias=a.bias;this.radius=a.radius;this.mapSize.copy(a.mapSize);return this},clone:function(){return(new this.constructor).copy(this)},toJSON:function(){var a={};0!==this.bias&&(a.bias=this.bias);1!==this.radius&&(a.radius=this.radius);if(512!==
-this.mapSize.x||512!==this.mapSize.y)a.mapSize=this.mapSize.toArray();a.camera=this.camera.toJSON(!1).object;delete a.camera.matrix;return a}});gf.prototype=Object.assign(Object.create(kb.prototype),{constructor:gf,isSpotLightShadow:!0,updateMatrices:function(a){var b=this.camera,c=2*P.RAD2DEG*a.angle,d=this.mapSize.width/this.mapSize.height,e=a.distance||b.far;if(c!==b.fov||d!==b.aspect||e!==b.far)b.fov=c,b.aspect=d,b.far=e,b.updateProjectionMatrix();kb.prototype.updateMatrices.call(this,a)}});hf.prototype=
-Object.assign(Object.create(ba.prototype),{constructor:hf,isSpotLight:!0,copy:function(a){ba.prototype.copy.call(this,a);this.distance=a.distance;this.angle=a.angle;this.penumbra=a.penumbra;this.decay=a.decay;this.target=a.target.clone();this.shadow=a.shadow.clone();return this}});Bg.prototype=Object.assign(Object.create(kb.prototype),{constructor:Bg,isPointLightShadow:!0,updateMatrices:function(a,b){void 0===b&&(b=0);var c=this.camera,d=this.matrix,e=this._lightPositionWorld,f=this._lookTarget,g=
-this._projScreenMatrix;e.setFromMatrixPosition(a.matrixWorld);c.position.copy(e);f.copy(c.position);f.add(this._cubeDirections[b]);c.up.copy(this._cubeUps[b]);c.lookAt(f);c.updateMatrixWorld();d.makeTranslation(-e.x,-e.y,-e.z);g.multiplyMatrices(c.projectionMatrix,c.matrixWorldInverse);this._frustum.setFromProjectionMatrix(g)}});jf.prototype=Object.assign(Object.create(ba.prototype),{constructor:jf,isPointLight:!0,copy:function(a){ba.prototype.copy.call(this,a);this.distance=a.distance;this.decay=
-a.decay;this.shadow=a.shadow.clone();return this}});hd.prototype=Object.assign(Object.create(eb.prototype),{constructor:hd,isOrthographicCamera:!0,copy:function(a,b){eb.prototype.copy.call(this,a,b);this.left=a.left;this.right=a.right;this.top=a.top;this.bottom=a.bottom;this.near=a.near;this.far=a.far;this.zoom=a.zoom;this.view=null===a.view?null:Object.assign({},a.view);return this},setViewOffset:function(a,b,c,d,e,f){null===this.view&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,
-width:1,height:1});this.view.enabled=!0;this.view.fullWidth=a;this.view.fullHeight=b;this.view.offsetX=c;this.view.offsetY=d;this.view.width=e;this.view.height=f;this.updateProjectionMatrix()},clearViewOffset:function(){null!==this.view&&(this.view.enabled=!1);this.updateProjectionMatrix()},updateProjectionMatrix:function(){var a=(this.right-this.left)/(2*this.zoom),b=(this.top-this.bottom)/(2*this.zoom),c=(this.right+this.left)/2,d=(this.top+this.bottom)/2,e=c-a;c+=a;a=d+b;b=d-b;null!==this.view&&
-this.view.enabled&&(d=(this.right-this.left)/this.view.fullWidth/this.zoom,b=(this.top-this.bottom)/this.view.fullHeight/this.zoom,e+=d*this.view.offsetX,c=e+d*this.view.width,a-=b*this.view.offsetY,b=a-b*this.view.height);this.projectionMatrix.makeOrthographic(e,c,a,b,this.near,this.far);this.projectionMatrixInverse.getInverse(this.projectionMatrix)},toJSON:function(a){a=D.prototype.toJSON.call(this,a);a.object.zoom=this.zoom;a.object.left=this.left;a.object.right=this.right;a.object.top=this.top;
-a.object.bottom=this.bottom;a.object.near=this.near;a.object.far=this.far;null!==this.view&&(a.object.view=Object.assign({},this.view));return a}});kf.prototype=Object.assign(Object.create(kb.prototype),{constructor:kf,isDirectionalLightShadow:!0,updateMatrices:function(a){kb.prototype.updateMatrices.call(this,a)}});lf.prototype=Object.assign(Object.create(ba.prototype),{constructor:lf,isDirectionalLight:!0,copy:function(a){ba.prototype.copy.call(this,a);this.target=a.target.clone();this.shadow=a.shadow.clone();
-return this}});mf.prototype=Object.assign(Object.create(ba.prototype),{constructor:mf,isAmbientLight:!0});nf.prototype=Object.assign(Object.create(ba.prototype),{constructor:nf,isRectAreaLight:!0,copy:function(a){ba.prototype.copy.call(this,a);this.width=a.width;this.height=a.height;return this},toJSON:function(a){a=ba.prototype.toJSON.call(this,a);a.object.width=this.width;a.object.height=this.height;return a}});of.prototype=Object.assign(Object.create(V.prototype),{constructor:of,load:function(a,
-b,c,d){var e=this,f=new Sa(e.manager);f.setPath(e.path);f.load(a,function(a){b(e.parse(JSON.parse(a)))},c,d)},parse:function(a){function b(a){void 0===c[a]&&console.warn("THREE.MaterialLoader: Undefined texture",a);return c[a]}var c=this.textures,d=new bl[a.type];void 0!==a.uuid&&(d.uuid=a.uuid);void 0!==a.name&&(d.name=a.name);void 0!==a.color&&d.color.setHex(a.color);void 0!==a.roughness&&(d.roughness=a.roughness);void 0!==a.metalness&&(d.metalness=a.metalness);void 0!==a.sheen&&(d.sheen=(new B).setHex(a.sheen));
-void 0!==a.emissive&&d.emissive.setHex(a.emissive);void 0!==a.specular&&d.specular.setHex(a.specular);void 0!==a.shininess&&(d.shininess=a.shininess);void 0!==a.clearcoat&&(d.clearcoat=a.clearcoat);void 0!==a.clearcoatRoughness&&(d.clearcoatRoughness=a.clearcoatRoughness);void 0!==a.vertexColors&&(d.vertexColors=a.vertexColors);void 0!==a.fog&&(d.fog=a.fog);void 0!==a.flatShading&&(d.flatShading=a.flatShading);void 0!==a.blending&&(d.blending=a.blending);void 0!==a.combine&&(d.combine=a.combine);
-void 0!==a.side&&(d.side=a.side);void 0!==a.opacity&&(d.opacity=a.opacity);void 0!==a.transparent&&(d.transparent=a.transparent);void 0!==a.alphaTest&&(d.alphaTest=a.alphaTest);void 0!==a.depthTest&&(d.depthTest=a.depthTest);void 0!==a.depthWrite&&(d.depthWrite=a.depthWrite);void 0!==a.colorWrite&&(d.colorWrite=a.colorWrite);void 0!==a.stencilWrite&&(d.stencilWrite=a.stencilWrite);void 0!==a.stencilWriteMask&&(d.stencilWriteMask=a.stencilWriteMask);void 0!==a.stencilFunc&&(d.stencilFunc=a.stencilFunc);
-void 0!==a.stencilRef&&(d.stencilRef=a.stencilRef);void 0!==a.stencilFuncMask&&(d.stencilFuncMask=a.stencilFuncMask);void 0!==a.stencilFail&&(d.stencilFail=a.stencilFail);void 0!==a.stencilZFail&&(d.stencilZFail=a.stencilZFail);void 0!==a.stencilZPass&&(d.stencilZPass=a.stencilZPass);void 0!==a.wireframe&&(d.wireframe=a.wireframe);void 0!==a.wireframeLinewidth&&(d.wireframeLinewidth=a.wireframeLinewidth);void 0!==a.wireframeLinecap&&(d.wireframeLinecap=a.wireframeLinecap);void 0!==a.wireframeLinejoin&&
-(d.wireframeLinejoin=a.wireframeLinejoin);void 0!==a.rotation&&(d.rotation=a.rotation);1!==a.linewidth&&(d.linewidth=a.linewidth);void 0!==a.dashSize&&(d.dashSize=a.dashSize);void 0!==a.gapSize&&(d.gapSize=a.gapSize);void 0!==a.scale&&(d.scale=a.scale);void 0!==a.polygonOffset&&(d.polygonOffset=a.polygonOffset);void 0!==a.polygonOffsetFactor&&(d.polygonOffsetFactor=a.polygonOffsetFactor);void 0!==a.polygonOffsetUnits&&(d.polygonOffsetUnits=a.polygonOffsetUnits);void 0!==a.skinning&&(d.skinning=a.skinning);
-void 0!==a.morphTargets&&(d.morphTargets=a.morphTargets);void 0!==a.morphNormals&&(d.morphNormals=a.morphNormals);void 0!==a.dithering&&(d.dithering=a.dithering);void 0!==a.visible&&(d.visible=a.visible);void 0!==a.toneMapped&&(d.toneMapped=a.toneMapped);void 0!==a.userData&&(d.userData=a.userData);if(void 0!==a.uniforms)for(var e in a.uniforms){var f=a.uniforms[e];d.uniforms[e]={};switch(f.type){case "t":d.uniforms[e].value=b(f.value);break;case "c":d.uniforms[e].value=(new B).setHex(f.value);break;
-case "v2":d.uniforms[e].value=(new w).fromArray(f.value);break;case "v3":d.uniforms[e].value=(new n).fromArray(f.value);break;case "v4":d.uniforms[e].value=(new ia).fromArray(f.value);break;case "m3":d.uniforms[e].value=(new za).fromArray(f.value);case "m4":d.uniforms[e].value=(new O).fromArray(f.value);break;default:d.uniforms[e].value=f.value}}void 0!==a.defines&&(d.defines=a.defines);void 0!==a.vertexShader&&(d.vertexShader=a.vertexShader);void 0!==a.fragmentShader&&(d.fragmentShader=a.fragmentShader);
-if(void 0!==a.extensions)for(var g in a.extensions)d.extensions[g]=a.extensions[g];void 0!==a.shading&&(d.flatShading=1===a.shading);void 0!==a.size&&(d.size=a.size);void 0!==a.sizeAttenuation&&(d.sizeAttenuation=a.sizeAttenuation);void 0!==a.map&&(d.map=b(a.map));void 0!==a.matcap&&(d.matcap=b(a.matcap));void 0!==a.alphaMap&&(d.alphaMap=b(a.alphaMap),d.transparent=!0);void 0!==a.bumpMap&&(d.bumpMap=b(a.bumpMap));void 0!==a.bumpScale&&(d.bumpScale=a.bumpScale);void 0!==a.normalMap&&(d.normalMap=b(a.normalMap));
-void 0!==a.normalMapType&&(d.normalMapType=a.normalMapType);void 0!==a.normalScale&&(e=a.normalScale,!1===Array.isArray(e)&&(e=[e,e]),d.normalScale=(new w).fromArray(e));void 0!==a.displacementMap&&(d.displacementMap=b(a.displacementMap));void 0!==a.displacementScale&&(d.displacementScale=a.displacementScale);void 0!==a.displacementBias&&(d.displacementBias=a.displacementBias);void 0!==a.roughnessMap&&(d.roughnessMap=b(a.roughnessMap));void 0!==a.metalnessMap&&(d.metalnessMap=b(a.metalnessMap));void 0!==
-a.emissiveMap&&(d.emissiveMap=b(a.emissiveMap));void 0!==a.emissiveIntensity&&(d.emissiveIntensity=a.emissiveIntensity);void 0!==a.specularMap&&(d.specularMap=b(a.specularMap));void 0!==a.envMap&&(d.envMap=b(a.envMap));void 0!==a.envMapIntensity&&(d.envMapIntensity=a.envMapIntensity);void 0!==a.reflectivity&&(d.reflectivity=a.reflectivity);void 0!==a.refractionRatio&&(d.refractionRatio=a.refractionRatio);void 0!==a.lightMap&&(d.lightMap=b(a.lightMap));void 0!==a.lightMapIntensity&&(d.lightMapIntensity=
-a.lightMapIntensity);void 0!==a.aoMap&&(d.aoMap=b(a.aoMap));void 0!==a.aoMapIntensity&&(d.aoMapIntensity=a.aoMapIntensity);void 0!==a.gradientMap&&(d.gradientMap=b(a.gradientMap));void 0!==a.clearcoatNormalMap&&(d.clearcoatNormalMap=b(a.clearcoatNormalMap));void 0!==a.clearcoatNormalScale&&(d.clearcoatNormalScale=(new w).fromArray(a.clearcoatNormalScale));return d},setTextures:function(a){this.textures=a;return this}});var th={decodeText:function(a){if("undefined"!==typeof TextDecoder)return(new TextDecoder).decode(a);
-for(var b="",c=0,d=a.length;c<d;c++)b+=String.fromCharCode(a[c]);try{return decodeURIComponent(escape(b))}catch(e){return b}},extractUrlBase:function(a){var b=a.lastIndexOf("/");return-1===b?"./":a.substr(0,b+1)}};pf.prototype=Object.assign(Object.create(A.prototype),{constructor:pf,isInstancedBufferGeometry:!0,copy:function(a){A.prototype.copy.call(this,a);this.maxInstancedCount=a.maxInstancedCount;return this},clone:function(){return(new this.constructor).copy(this)},toJSON:function(){var a=A.prototype.toJSON.call(this);
-a.maxInstancedCount=this.maxInstancedCount;a.isInstancedBufferGeometry=!0;return a}});qf.prototype=Object.assign(Object.create(M.prototype),{constructor:qf,isInstancedBufferAttribute:!0,copy:function(a){M.prototype.copy.call(this,a);this.meshPerAttribute=a.meshPerAttribute;return this},toJSON:function(){var a=M.prototype.toJSON.call(this);a.meshPerAttribute=this.meshPerAttribute;a.isInstancedBufferAttribute=!0;return a}});rf.prototype=Object.assign(Object.create(V.prototype),{constructor:rf,load:function(a,
-b,c,d){var e=this,f=new Sa(e.manager);f.setPath(e.path);f.load(a,function(a){b(e.parse(JSON.parse(a)))},c,d)},parse:function(a){var b=a.isInstancedBufferGeometry?new pf:new A,c=a.data.index;if(void 0!==c){var d=new uh[c.type](c.array);b.setIndex(new M(d,1))}c=a.data.attributes;for(var e in c){var f=c[e];d=new uh[f.type](f.array);d=new (f.isInstancedBufferAttribute?qf:M)(d,f.itemSize,f.normalized);void 0!==f.name&&(d.name=f.name);b.setAttribute(e,d)}var g=a.data.morphAttributes;if(g)for(e in g){var h=
-g[e],l=[];c=0;for(var m=h.length;c<m;c++)f=h[c],d=new uh[f.type](f.array),d=new M(d,f.itemSize,f.normalized),void 0!==f.name&&(d.name=f.name),l.push(d);b.morphAttributes[e]=l}a.data.morphTargetsRelative&&(b.morphTargetsRelative=!0);e=a.data.groups||a.data.drawcalls||a.data.offsets;if(void 0!==e)for(c=0,f=e.length;c!==f;++c)d=e[c],b.addGroup(d.start,d.count,d.materialIndex);c=a.data.boundingSphere;void 0!==c&&(e=new n,void 0!==c.center&&e.fromArray(c.center),b.boundingSphere=new qb(e,c.radius));a.name&&
-(b.name=a.name);a.userData&&(b.userData=a.userData);return b}});var uh={Int8Array:Int8Array,Uint8Array:Uint8Array,Uint8ClampedArray:"undefined"!==typeof Uint8ClampedArray?Uint8ClampedArray:Uint8Array,Int16Array:Int16Array,Uint16Array:Uint16Array,Int32Array:Int32Array,Uint32Array:Uint32Array,Float32Array:Float32Array,Float64Array:Float64Array};sf.prototype=Object.assign(Object.create(V.prototype),{constructor:sf,load:function(a,b,c,d){var e=this,f=""===this.path?th.extractUrlBase(a):this.path;this.resourcePath=
-this.resourcePath||f;f=new Sa(e.manager);f.setPath(this.path);f.load(a,function(c){var f=null;try{f=JSON.parse(c)}catch(l){void 0!==d&&d(l);console.error("THREE:ObjectLoader: Can't parse "+a+".",l.message);return}c=f.metadata;void 0===c||void 0===c.type||"geometry"===c.type.toLowerCase()?console.error("THREE.ObjectLoader: Can't load "+a):e.parse(f,b)},c,d)},parse:function(a,b){var c=this.parseShape(a.shapes);c=this.parseGeometries(a.geometries,c);var d=this.parseImages(a.images,function(){void 0!==
-b&&b(e)});d=this.parseTextures(a.textures,d);d=this.parseMaterials(a.materials,d);var e=this.parseObject(a.object,c,d);a.animations&&(e.animations=this.parseAnimations(a.animations));void 0!==a.images&&0!==a.images.length||void 0===b||b(e);return e},parseShape:function(a){var b={};if(void 0!==a)for(var c=0,d=a.length;c<d;c++){var e=(new Lb).fromJSON(a[c]);b[e.uuid]=e}return b},parseGeometries:function(a,b){var c={};if(void 0!==a)for(var d=new rf,e=0,f=a.length;e<f;e++){var g=a[e];switch(g.type){case "PlaneGeometry":case "PlaneBufferGeometry":var h=
-new va[g.type](g.width,g.height,g.widthSegments,g.heightSegments);break;case "BoxGeometry":case "BoxBufferGeometry":case "CubeGeometry":h=new va[g.type](g.width,g.height,g.depth,g.widthSegments,g.heightSegments,g.depthSegments);break;case "CircleGeometry":case "CircleBufferGeometry":h=new va[g.type](g.radius,g.segments,g.thetaStart,g.thetaLength);break;case "CylinderGeometry":case "CylinderBufferGeometry":h=new va[g.type](g.radiusTop,g.radiusBottom,g.height,g.radialSegments,g.heightSegments,g.openEnded,
-g.thetaStart,g.thetaLength);break;case "ConeGeometry":case "ConeBufferGeometry":h=new va[g.type](g.radius,g.height,g.radialSegments,g.heightSegments,g.openEnded,g.thetaStart,g.thetaLength);break;case "SphereGeometry":case "SphereBufferGeometry":h=new va[g.type](g.radius,g.widthSegments,g.heightSegments,g.phiStart,g.phiLength,g.thetaStart,g.thetaLength);break;case "DodecahedronGeometry":case "DodecahedronBufferGeometry":case "IcosahedronGeometry":case "IcosahedronBufferGeometry":case "OctahedronGeometry":case "OctahedronBufferGeometry":case "TetrahedronGeometry":case "TetrahedronBufferGeometry":h=
+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){Pf.setFromMatrixPosition(this.matrixWorld);var c=a.ray.origin.distanceTo(Pf);this.getObjectForDistance(c).raycast(a,b)}},update:function(a){var b=this.levels;if(1<b.length){Pf.setFromMatrixPosition(a.matrixWorld);Ti.setFromMatrixPosition(this.matrixWorld);a=Pf.distanceTo(Ti);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=
+D.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}});Ud.prototype=Object.assign(Object.create(ca.prototype),{constructor:Ud,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 ia,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){ca.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 O,$k=new O;Object.assign(Ue.prototype,{calculateInverses:function(){this.boneInverses=[];for(var a=0,b=this.bones.length;a<b;a++){var c=new O;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}}});rg.prototype=Object.assign(Object.create(D.prototype),{constructor:rg,isBone:!0});var Vi=new O,Wi=new O,Ad=[],He=new ca;Ve.prototype=Object.assign(Object.create(ca.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;He.geometry=this.geometry;He.material=
+this.material;if(void 0!==He.material)for(var e=0;e<d;e++)this.getMatrixAt(e,Vi),Wi.multiplyMatrices(c,Vi),He.matrixWorld=Wi,He.raycast(a,Ad),0<Ad.length&&(Ad[0].instanceId=e,Ad[0].object=this,b.push(Ad[0]),Ad.length=0)},setMatrixAt:function(a,b){b.toArray(this.instanceMatrix.array,16*a)},updateMorphTargets:function(){}});ka.prototype=Object.create(K.prototype);ka.prototype.constructor=ka;ka.prototype.isLineBasicMaterial=!0;ka.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 O,Qf=new Wb,Ie=new qb;La.prototype=Object.assign(Object.create(D.prototype),{constructor:La,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 E(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=a.linePrecision,d=this.geometry,e=this.matrixWorld;null===d.boundingSphere&&d.computeBoundingSphere();Ie.copy(d.boundingSphere);Ie.applyMatrix4(e);Ie.radius+=c;if(!1!==a.ray.intersectsSphere(Ie)){Zi.getInverse(e);
+Qf.copy(a.ray).applyMatrix4(Zi);c/=(this.scale.x+this.scale.y+this.scale.z)/3;c*=c;var f=new n,g=new n;e=new n;var k=new n,h=this&&this.isLineSegments?2:1;if(d.isBufferGeometry){var m=d.index,x=d.attributes.position.array;if(null!==m){m=m.array;d=0;for(var p=m.length-1;d<p;d+=h){var q=m[d+1];f.fromArray(x,3*m[d]);g.fromArray(x,3*q);q=Qf.distanceSqToSegment(f,g,k,e);q>c||(k.applyMatrix4(this.matrixWorld),q=a.ray.origin.distanceTo(k),q<a.near||q>a.far||b.push({distance:q,point:e.clone().applyMatrix4(this.matrixWorld),
+index:d,face:null,faceIndex:null,object:this}))}}else for(d=0,p=x.length/3-1;d<p;d+=h)f.fromArray(x,3*d),g.fromArray(x,3*d+3),q=Qf.distanceSqToSegment(f,g,k,e),q>c||(k.applyMatrix4(this.matrixWorld),q=a.ray.origin.distanceTo(k),q<a.near||q>a.far||b.push({distance:q,point:e.clone().applyMatrix4(this.matrixWorld),index:d,face:null,faceIndex:null,object:this}))}else if(d.isGeometry)for(f=d.vertices,g=f.length,d=0;d<g-1;d+=h)q=Qf.distanceSqToSegment(f[d],f[d+1],k,e),q>c||(k.applyMatrix4(this.matrixWorld),
+q=a.ray.origin.distanceTo(k),q<a.near||q>a.far||b.push({distance:q,point:e.clone().applyMatrix4(this.matrixWorld),index:d,face:null,faceIndex:null,object:this}))}},clone:function(){return(new this.constructor(this.geometry,this.material)).copy(this)}});var Rf=new n,Sf=new n;ma.prototype=Object.assign(Object.create(La.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)Rf.fromBufferAttribute(b,d),Sf.fromBufferAttribute(b,d+1),c[d]=0===d?0:c[d-1],c[d+1]=c[d]+Rf.distanceTo(Sf);a.setAttribute("lineDistance",new E(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)Rf.copy(b[d]),Sf.copy(b[d+1]),c[d]=0===d?0:c[d-1],c[d+1]=c[d]+Rf.distanceTo(Sf);return this}});We.prototype=Object.assign(Object.create(La.prototype),
+{constructor:We,isLineLoop:!0});Wa.prototype=Object.create(K.prototype);Wa.prototype.constructor=Wa;Wa.prototype.isPointsMaterial=!0;Wa.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 O,tg=new Wb,Je=new qb,Tf=new n;Qc.prototype=Object.assign(Object.create(D.prototype),{constructor:Qc,isPoints:!0,raycast:function(a,
+b){var c=this.geometry,d=this.matrixWorld,e=a.params.Points.threshold;null===c.boundingSphere&&c.computeBoundingSphere();Je.copy(c.boundingSphere);Je.applyMatrix4(d);Je.radius+=e;if(!1!==a.ray.intersectsSphere(Je))if($i.getInverse(d),tg.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 k=g.length;f<k;f++){var h=g[f];Tf.fromArray(c,3*h);sg(Tf,h,e,d,a,b,this)}}else for(f=
+0,g=c.length/3;f<g;f++)Tf.fromArray(c,3*f),sg(Tf,f,e,d,a,b,this)}else for(c=c.vertices,f=0,g=c.length;f<g;f++)sg(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)}});ug.prototype=Object.assign(Object.create(Z.prototype),{constructor:ug,isVideoTexture:!0,update:function(){var a=this.image;a.readyState>=a.HAVE_CURRENT_DATA&&(this.needsUpdate=!0)}});Rc.prototype=Object.create(Z.prototype);Rc.prototype.constructor=Rc;Rc.prototype.isCompressedTexture=
+!0;Vd.prototype=Object.create(Z.prototype);Vd.prototype.constructor=Vd;Vd.prototype.isCanvasTexture=!0;Wd.prototype=Object.create(Z.prototype);Wd.prototype.constructor=Wd;Wd.prototype.isDepthTexture=!0;Sc.prototype=Object.create(A.prototype);Sc.prototype.constructor=Sc;Xd.prototype=Object.create(L.prototype);Xd.prototype.constructor=Xd;Tc.prototype=Object.create(A.prototype);Tc.prototype.constructor=Tc;Yd.prototype=Object.create(L.prototype);Yd.prototype.constructor=Yd;Ja.prototype=Object.create(A.prototype);
+Ja.prototype.constructor=Ja;Zd.prototype=Object.create(L.prototype);Zd.prototype.constructor=Zd;Uc.prototype=Object.create(Ja.prototype);Uc.prototype.constructor=Uc;$d.prototype=Object.create(L.prototype);$d.prototype.constructor=$d;dc.prototype=Object.create(Ja.prototype);dc.prototype.constructor=dc;ae.prototype=Object.create(L.prototype);ae.prototype.constructor=ae;Vc.prototype=Object.create(Ja.prototype);Vc.prototype.constructor=Vc;be.prototype=Object.create(L.prototype);be.prototype.constructor=
+be;Wc.prototype=Object.create(Ja.prototype);Wc.prototype.constructor=Wc;ce.prototype=Object.create(L.prototype);ce.prototype.constructor=ce;ec.prototype=Object.create(A.prototype);ec.prototype.constructor=ec;ec.prototype.toJSON=function(){var a=A.prototype.toJSON.call(this);a.path=this.parameters.path.toJSON();return a};de.prototype=Object.create(L.prototype);de.prototype.constructor=de;Xc.prototype=Object.create(A.prototype);Xc.prototype.constructor=Xc;ee.prototype=Object.create(L.prototype);ee.prototype.constructor=
+ee;Yc.prototype=Object.create(A.prototype);Yc.prototype.constructor=Yc;var al={triangulate:function(a,b,c){c=c||2;var d=b&&b.length,e=d?b[0]*c:a.length,f=bi(a,0,e,c,!0),g=[];if(!f||f.next===f.prev)return g;var k;if(d){var h=c;d=[];var m;var n=0;for(m=b.length;n<m;n++){var p=b[n]*h;var q=n<m-1?b[n+1]*h:a.length;p=bi(a,p,q,h,!1);p===p.next&&(p.steiner=!0);d.push(Nk(p))}d.sort(Lk);for(n=0;n<d.length;n++){b=d[n];h=f;if(h=Mk(b,h))b=ei(h,b),ge(b,b.next);f=ge(f,f.next)}}if(a.length>80*c){var t=k=a[0];var r=
+d=a[1];for(h=c;h<e;h+=c)n=a[h],b=a[h+1],n<t&&(t=n),b<r&&(r=b),n>k&&(k=n),b>d&&(d=b);k=Math.max(k-t,d-r);k=0!==k?1/k:0}he(f,g,c,t,r,k);return g}},tb={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>tb.area(a)},triangulateShape:function(a,b){var c=[],d=[],e=[];fi(a);gi(c,a);var f=a.length;b.forEach(fi);for(a=0;a<b.length;a++)d.push(f),f+=b[a].length,gi(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}};gc.prototype=Object.create(L.prototype);gc.prototype.constructor=gc;gc.prototype.toJSON=function(){var a=L.prototype.toJSON.call(this);return hi(this.parameters.shapes,this.parameters.options,a)};gb.prototype=Object.create(A.prototype);gb.prototype.constructor=gb;gb.prototype.toJSON=function(){var a=A.prototype.toJSON.call(this);return hi(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 w(b[3*
+c],b[3*c+1]),new w(a,d),new w(f,e)]},generateSideWallUV:function(a,b,c,d,e,f){a=b[3*c];var g=b[3*c+1];c=b[3*c+2];var k=b[3*d],h=b[3*d+1];d=b[3*d+2];var m=b[3*e],n=b[3*e+1];e=b[3*e+2];var p=b[3*f],q=b[3*f+1];b=b[3*f+2];return.01>Math.abs(g-h)?[new w(a,1-c),new w(k,1-d),new w(m,1-e),new w(p,1-b)]:[new w(g,1-c),new w(h,1-d),new w(n,1-e),new w(q,1-b)]}};je.prototype=Object.create(L.prototype);je.prototype.constructor=je;$c.prototype=Object.create(gb.prototype);$c.prototype.constructor=$c;ke.prototype=
+Object.create(L.prototype);ke.prototype.constructor=ke;hc.prototype=Object.create(A.prototype);hc.prototype.constructor=hc;le.prototype=Object.create(L.prototype);le.prototype.constructor=le;ad.prototype=Object.create(A.prototype);ad.prototype.constructor=ad;me.prototype=Object.create(L.prototype);me.prototype.constructor=me;bd.prototype=Object.create(A.prototype);bd.prototype.constructor=bd;ic.prototype=Object.create(L.prototype);ic.prototype.constructor=ic;ic.prototype.toJSON=function(){var a=L.prototype.toJSON.call(this);
+return ii(this.parameters.shapes,a)};jc.prototype=Object.create(A.prototype);jc.prototype.constructor=jc;jc.prototype.toJSON=function(){var a=A.prototype.toJSON.call(this);return ii(this.parameters.shapes,a)};cd.prototype=Object.create(A.prototype);cd.prototype.constructor=cd;kc.prototype=Object.create(L.prototype);kc.prototype.constructor=kc;ub.prototype=Object.create(A.prototype);ub.prototype.constructor=ub;ne.prototype=Object.create(kc.prototype);ne.prototype.constructor=ne;oe.prototype=Object.create(ub.prototype);
+oe.prototype.constructor=oe;pe.prototype=Object.create(L.prototype);pe.prototype.constructor=pe;dd.prototype=Object.create(A.prototype);dd.prototype.constructor=dd;var va=Object.freeze({__proto__:null,WireframeGeometry:Sc,ParametricGeometry:Xd,ParametricBufferGeometry:Tc,TetrahedronGeometry:Zd,TetrahedronBufferGeometry:Uc,OctahedronGeometry:$d,OctahedronBufferGeometry:dc,IcosahedronGeometry:ae,IcosahedronBufferGeometry:Vc,DodecahedronGeometry:be,DodecahedronBufferGeometry:Wc,PolyhedronGeometry:Yd,
+PolyhedronBufferGeometry:Ja,TubeGeometry:ce,TubeBufferGeometry:ec,TorusKnotGeometry:de,TorusKnotBufferGeometry:Xc,TorusGeometry:ee,TorusBufferGeometry:Yc,TextGeometry:je,TextBufferGeometry:$c,SphereGeometry:ke,SphereBufferGeometry:hc,RingGeometry:le,RingBufferGeometry:ad,PlaneGeometry:Jd,PlaneBufferGeometry:cc,LatheGeometry:me,LatheBufferGeometry:bd,ShapeGeometry:ic,ShapeBufferGeometry:jc,ExtrudeGeometry:gc,ExtrudeBufferGeometry:gb,EdgesGeometry:cd,ConeGeometry:ne,ConeBufferGeometry:oe,CylinderGeometry:kc,
+CylinderBufferGeometry:ub,CircleGeometry:pe,CircleBufferGeometry:dd,BoxGeometry:nh,BoxBufferGeometry:Kd});lc.prototype=Object.create(K.prototype);lc.prototype.constructor=lc;lc.prototype.isShadowMaterial=!0;lc.prototype.copy=function(a){K.prototype.copy.call(this,a);this.color.copy(a.color);return this};vb.prototype=Object.create(qa.prototype);vb.prototype.constructor=vb;vb.prototype.isRawShaderMaterial=!0;hb.prototype=Object.create(K.prototype);hb.prototype.constructor=hb;hb.prototype.isMeshStandardMaterial=
+!0;hb.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;return this};mc.prototype=Object.create(hb.prototype);mc.prototype.constructor=mc;mc.prototype.isMeshPhysicalMaterial=!0;mc.prototype.copy=function(a){hb.prototype.copy.call(this,a);this.defines={STANDARD:"",PHYSICAL:""};this.reflectivity=a.reflectivity;this.clearcoat=a.clearcoat;this.clearcoatRoughness=a.clearcoatRoughness;this.sheen=a.sheen?(this.sheen||new B).copy(a.sheen):null;this.clearcoatNormalMap=
+a.clearcoatNormalMap;this.clearcoatNormalScale.copy(a.clearcoatNormalScale);this.transparency=a.transparency;return this};Kb.prototype=Object.create(K.prototype);Kb.prototype.constructor=Kb;Kb.prototype.isMeshPhongMaterial=!0;Kb.prototype.copy=function(a){K.prototype.copy.call(this,a);this.color.copy(a.color);this.specular.copy(a.specular);this.shininess=a.shininess;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.specularMap=a.specularMap;this.alphaMap=a.alphaMap;this.envMap=a.envMap;this.combine=a.combine;this.reflectivity=a.reflectivity;
+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;return this};nc.prototype=Object.create(K.prototype);nc.prototype.constructor=nc;nc.prototype.isMeshToonMaterial=!0;nc.prototype.copy=function(a){K.prototype.copy.call(this,a);this.color.copy(a.color);this.specular.copy(a.specular);
+this.shininess=a.shininess;this.map=a.map;this.gradientMap=a.gradientMap;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.specularMap=a.specularMap;this.alphaMap=a.alphaMap;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;return this};oc.prototype=Object.create(K.prototype);oc.prototype.constructor=oc;oc.prototype.isMeshNormalMaterial=!0;oc.prototype.copy=function(a){K.prototype.copy.call(this,
+a);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.wireframe=a.wireframe;this.wireframeLinewidth=a.wireframeLinewidth;this.skinning=a.skinning;this.morphTargets=a.morphTargets;this.morphNormals=a.morphNormals;return this};pc.prototype=Object.create(K.prototype);pc.prototype.constructor=
+pc;pc.prototype.isMeshLambertMaterial=!0;pc.prototype.copy=function(a){K.prototype.copy.call(this,a);this.color.copy(a.color);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.specularMap=a.specularMap;this.alphaMap=a.alphaMap;this.envMap=a.envMap;this.combine=a.combine;this.reflectivity=a.reflectivity;
+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;return this};qc.prototype=Object.create(K.prototype);qc.prototype.constructor=qc;qc.prototype.isMeshMatcapMaterial=!0;qc.prototype.copy=function(a){K.prototype.copy.call(this,a);this.defines={MATCAP:""};this.color.copy(a.color);
+this.matcap=a.matcap;this.map=a.map;this.bumpMap=a.bumpMap;this.bumpScale=a.bumpScale;this.normalMap=a.normalMap;this.normalMapType=a.normalMapType;this.normalScale.copy(a.normalScale);this.displacementMap=a.displacementMap;this.displacementScale=a.displacementScale;this.displacementBias=a.displacementBias;this.alphaMap=a.alphaMap;this.skinning=a.skinning;this.morphTargets=a.morphTargets;this.morphNormals=a.morphNormals;return this};rc.prototype=Object.create(ka.prototype);rc.prototype.constructor=
+rc;rc.prototype.isLineDashedMaterial=!0;rc.prototype.copy=function(a){ka.prototype.copy.call(this,a);this.scale=a.scale;this.dashSize=a.dashSize;this.gapSize=a.gapSize;return this};var bl=Object.freeze({__proto__:null,ShadowMaterial:lc,SpriteMaterial:Jb,RawShaderMaterial:vb,ShaderMaterial:qa,PointsMaterial:Wa,MeshPhysicalMaterial:mc,MeshStandardMaterial:hb,MeshPhongMaterial:Kb,MeshToonMaterial:nc,MeshNormalMaterial:oc,MeshLambertMaterial:pc,MeshDepthMaterial:Gb,MeshDistanceMaterial:Hb,MeshBasicMaterial:Pa,
+MeshMatcapMaterial:qc,LineDashedMaterial:rc,LineBasicMaterial:ka,Material:K}),ea={arraySlice:function(a,b,c){return ea.isTypedArray(a)?new a.constructor(a.subarray(b,void 0!==c?c:a.length)):a.slice(b,c)},convertArray:function(a,b,c){return!a||!c&&a.constructor===b?a:"number"===typeof b.BYTES_PER_ELEMENT?new b(a):Array.prototype.slice.call(a)},isTypedArray:function(a){return ArrayBuffer.isView(a)&&!(a instanceof DataView)},getKeyframeOrder:function(a){for(var b=a.length,c=Array(b),d=0;d!==b;++d)c[d]=
+d;c.sort(function(b,c){return a[b]-a[c]});return c},sortedArray:function(a,b,c){for(var d=a.length,e=new a.constructor(d),f=0,g=0;g!==d;++f)for(var k=c[f]*b,h=0;h!==b;++h)e[g++]=a[k+h];return e},flattenJSON:function(a,b,c,d){for(var e=1,f=a[0];void 0!==f&&void 0===f[d];)f=a[e++];if(void 0!==f){var g=f[d];if(void 0!==g)if(Array.isArray(g)){do g=f[d],void 0!==g&&(b.push(f.time),c.push.apply(c,g)),f=a[e++];while(void 0!==f)}else if(void 0!==g.toArray){do g=f[d],void 0!==g&&(b.push(f.time),g.toArray(c,
+c.length)),f=a[e++];while(void 0!==f)}else{do g=f[d],void 0!==g&&(b.push(f.time),c.push(g)),f=a[e++];while(void 0!==f)}}},subclip:function(a,b,c,d,e){e=e||30;a=a.clone();a.name=b;var f=[];for(b=0;b<a.tracks.length;++b){for(var g=a.tracks[b],k=g.getValueSize(),h=[],m=[],n=0;n<g.times.length;++n){var p=g.times[n]*e;if(!(p<c||p>=d))for(h.push(g.times[n]),p=0;p<k;++p)m.push(g.values[n*k+p])}0!==h.length&&(g.times=ea.convertArray(h,g.times.constructor),g.values=ea.convertArray(m,g.values.constructor),
+f.push(g))}a.tracks=f;c=Infinity;for(b=0;b<a.tracks.length;++b)c>a.tracks[b].times[0]&&(c=a.tracks[b].times[0]);for(b=0;b<a.tracks.length;++b)a.tracks[b].shift(-1*c);a.resetDuration();return a}};Object.assign(Ma.prototype,{evaluate:function(a){var b=this.parameterPositions,c=this._cachedIndex,d=b[c],e=b[c-1];a:{b:{c:{d:if(!(a<d)){for(var f=c+2;;){if(void 0===d){if(a<e)break d;this._cachedIndex=c=b.length;return this.afterEnd_(c-1,a,e)}if(c===f)break;e=d;d=b[++c];if(a<d)break b}d=b.length;break c}if(a>=
+e)break a;else{f=b[1];a<f&&(c=2,e=f);for(f=c-2;;){if(void 0===e)return this._cachedIndex=0,this.beforeStart_(0,a,d);if(c===f)break;d=e;e=b[--c-1];if(a>=e)break b}d=c;c=0}}for(;c<d;)e=c+d>>>1,a<b[e]?d=e:c=e+1;d=b[c];e=b[c-1];if(void 0===e)return this._cachedIndex=0,this.beforeStart_(0,a,d);if(void 0===d)return this._cachedIndex=c=b.length,this.afterEnd_(c-1,e,a)}this._cachedIndex=c;this.intervalChanged_(c,e,d)}return this.interpolate_(c,e,a,d)},settings:null,DefaultSettings_:{},getSettings_:function(){return this.settings||
+this.DefaultSettings_},copySampleValue_:function(a){var b=this.resultBuffer,c=this.sampleValues,d=this.valueSize;a*=d;for(var e=0;e!==d;++e)b[e]=c[a+e];return b},interpolate_:function(){throw Error("call to abstract method");},intervalChanged_:function(){}});Object.assign(Ma.prototype,{beforeStart_:Ma.prototype.copySampleValue_,afterEnd_:Ma.prototype.copySampleValue_});Xe.prototype=Object.assign(Object.create(Ma.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],k=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===k)switch(this.getSettings_().endingEnd){case 2401:f=a;k=2*c-b;break;case 2402:f=1;k=c+d[1]-d[0];break;default:f=a-1,k=b}a=.5*(c-b);d=this.valueSize;this._weightPrev=a/(b-g);this._weightNext=a/(k-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 k=a-g,h=this._offsetPrev,m=this._offsetNext,n=this._weightPrev,p=this._weightNext,q=(c-b)/(d-b);c=q*q;d=c*q;b=-n*d+2*n*c-n*q;n=(1+n)*d+(-1.5-2*n)*c+(-.5+n)*q+1;q=(-1-p)*d+(1.5+p)*c+.5*q;p=p*d-p*c;for(c=0;c!==g;++c)e[c]=b*f[h+c]+n*f[k+c]+q*f[a+c]+p*f[m+c];return e}});qe.prototype=Object.assign(Object.create(Ma.prototype),{constructor:qe,interpolate_:function(a,b,c,d){var e=this.resultBuffer,f=this.sampleValues,g=this.valueSize;a*=g;var k=a-g;b=(c-b)/(d-
+b);c=1-b;for(d=0;d!==g;++d)e[d]=f[k+d]*c+f[a+d]*b;return e}});Ye.prototype=Object.assign(Object.create(Ma.prototype),{constructor:Ye,interpolate_:function(a){return this.copySampleValue_(a-1)}});Object.assign(ua,{toJSON:function(a){var b=a.constructor;if(void 0!==b.toJSON)b=b.toJSON(a);else{b={name:a.name,times:ea.convertArray(a.times,Array),values:ea.convertArray(a.values,Array)};var c=a.getInterpolation();c!==a.DefaultInterpolation&&(b.interpolation=c)}b.type=a.ValueTypeName;return b}});Object.assign(ua.prototype,
+{constructor:ua,TimeBufferType:Float32Array,ValueBufferType:Float32Array,DefaultInterpolation:2301,InterpolantFactoryMethodDiscrete:function(a){return new Ye(this.times,this.values,this.getValueSize(),a)},InterpolantFactoryMethodLinear:function(a){return new qe(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=ea.arraySlice(c,e,f),this.values=ea.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&&ea.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=ea.arraySlice(this.times),b=ea.arraySlice(this.values),c=this.getValueSize(),d=2302===this.getInterpolation(),e=1,f=a.length-1,g=1;g<f;++g){var k=!1,h=a[g];if(h!==a[g+1]&&
+(1!==g||h!==h[0]))if(d)k=!0;else{var m=g*c,n=m-c,p=m+c;for(h=0;h!==c;++h){var q=b[m+h];if(q!==b[n+h]||q!==b[p+h]){k=!0;break}}}if(k){if(g!==e)for(a[e]=a[g],k=g*c,m=e*c,h=0;h!==c;++h)b[m+h]=b[k+h];++e}}if(0<f){a[e]=a[f];k=f*c;m=e*c;for(h=0;h!==c;++h)b[m+h]=b[k+h];++e}e!==a.length?(this.times=ea.arraySlice(a,0,e),this.values=ea.arraySlice(b,0,e*c)):(this.times=a,this.values=b);return this},clone:function(){var a=ea.arraySlice(this.times,0),b=ea.arraySlice(this.values,0);a=new this.constructor(this.name,
+a,b);a.createInterpolant=this.createInterpolant;return a}});Ze.prototype=Object.assign(Object.create(ua.prototype),{constructor:Ze,ValueTypeName:"bool",ValueBufferType:Array,DefaultInterpolation:2300,InterpolantFactoryMethodLinear:void 0,InterpolantFactoryMethodSmooth:void 0});$e.prototype=Object.assign(Object.create(ua.prototype),{constructor:$e,ValueTypeName:"color"});ed.prototype=Object.assign(Object.create(ua.prototype),{constructor:ed,ValueTypeName:"number"});af.prototype=Object.assign(Object.create(Ma.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)Da.slerpFlat(e,0,f,a-g,f,a,b);return e}});re.prototype=Object.assign(Object.create(ua.prototype),{constructor:re,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(ua.prototype),
+{constructor:bf,ValueTypeName:"string",ValueBufferType:Array,DefaultInterpolation:2300,InterpolantFactoryMethodLinear:void 0,InterpolantFactoryMethodSmooth:void 0});fd.prototype=Object.assign(Object.create(ua.prototype),{constructor:fd,ValueTypeName:"vector"});Object.assign(Ra,{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 Ra(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(ua.toJSON(c[d]));return a},CreateFromMorphTargetSequence:function(a,b,c,d){for(var e=b.length,f=[],g=0;g<e;g++){var k=[],h=[];k.push((g+e-1)%e,g,(g+1)%e);h.push(0,1,0);var m=ea.getKeyframeOrder(k);k=ea.sortedArray(k,1,m);h=ea.sortedArray(h,1,m);d||0!==k[0]||(k.push(e),h.push(h[0]));f.push((new ed(".morphTargetInfluences["+b[g].name+"]",k,h)).scale(1/c))}return new Ra(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 k=a[f],h=k.name.match(e);if(h&&1<h.length){var m=h[1];(h=d[m])||(d[m]=h=[]);h.push(k)}}a=[];for(m in d)a.push(Ra.CreateFromMorphTargetSequence(m,d[m],b,c));return a},parseAnimation:function(a,b){if(!a)return console.error("THREE.AnimationClip: No animation in JSONLoader data."),null;var c=function(a,b,c,d,
+e){if(0!==c.length){var f=[],g=[];ea.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 k=0;k<a.length;k++){var h=a[k].keys;if(h&&0!==h.length)if(h[0].morphTargets){f={};for(var m=0;m<h.length;m++)if(h[m].morphTargets)for(var n=0;n<h[m].morphTargets.length;n++)f[h[m].morphTargets[n]]=-1;for(var p in f){var q=[],t=[];for(n=0;n!==h[m].morphTargets.length;++n){var r=h[m];q.push(r.time);t.push(r.morphTarget===p?1:0)}d.push(new ed(".morphTargetInfluence["+
+p+"]",q,t))}f=f.length*(g||1)}else m=".bones["+b[k].name+"]",c(fd,m+".position",h,"pos",d),c(re,m+".quaternion",h,"rot",d),c(fd,m+".scale",h,"scl",d)}return 0===d.length?null:new Ra(e,f,d)}});Object.assign(Ra.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 Ra(this.name,this.duration,a)}});var wc={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=
+{}}},ji=new xg;Object.assign(V.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 db={};Sa.prototype=Object.assign(Object.create(V.prototype),{constructor:Sa,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=wc.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!==db[a])db[a].push({onLoad:b,onProgress:c,onError:d});else{var g=a.match(/^data:(.*?)(;base64)?,(.*)$/);if(g){c=g[1];var k=!!g[2];g=g[3];g=decodeURIComponent(g);k&&(g=atob(g));try{var h=(this.responseType||"").toLowerCase();switch(h){case "arraybuffer":case "blob":var m=new Uint8Array(g.length);for(k=0;k<g.length;k++)m[k]=g.charCodeAt(k);var n="blob"===h?new Blob([m.buffer],{type:c}):m.buffer;break;case "document":n=(new DOMParser).parseFromString(g,c);break;
+case "json":n=JSON.parse(g);break;default:n=g}setTimeout(function(){b&&b(n);e.manager.itemEnd(a)},0)}catch(q){setTimeout(function(){d&&d(q);e.manager.itemError(a);e.manager.itemEnd(a)},0)}}else{db[a]=[];db[a].push({onLoad:b,onProgress:c,onError:d});var p=new XMLHttpRequest;p.open("GET",a,!0);p.addEventListener("load",function(b){var c=this.response,d=db[a];delete db[a];if(200===this.status||0===this.status){0===this.status&&console.warn("THREE.FileLoader: HTTP Status 0 received.");wc.add(a,c);for(var f=
+0,g=d.length;f<g;f++){var k=d[f];if(k.onLoad)k.onLoad(c)}}else{f=0;for(g=d.length;f<g;f++)if(k=d[f],k.onError)k.onError(b);e.manager.itemError(a)}e.manager.itemEnd(a)},!1);p.addEventListener("progress",function(b){for(var c=db[a],d=0,e=c.length;d<e;d++){var f=c[d];if(f.onProgress)f.onProgress(b)}},!1);p.addEventListener("error",function(b){var c=db[a];delete db[a];for(var d=0,f=c.length;d<f;d++){var g=c[d];if(g.onError)g.onError(b)}e.manager.itemError(a);e.manager.itemEnd(a)},!1);p.addEventListener("abort",
+function(b){var c=db[a];delete db[a];for(var d=0,f=c.length;d<f;d++){var g=c[d];if(g.onError)g.onError(b)}e.manager.itemError(a);e.manager.itemEnd(a)},!1);void 0!==this.responseType&&(p.responseType=this.responseType);void 0!==this.withCredentials&&(p.withCredentials=this.withCredentials);p.overrideMimeType&&p.overrideMimeType(void 0!==this.mimeType?this.mimeType:"text/plain");for(k in this.requestHeader)p.setRequestHeader(k,this.requestHeader[k]);p.send(null)}e.manager.itemStart(a);return p}},setResponseType:function(a){this.responseType=
+a;return this},setWithCredentials:function(a){this.withCredentials=a;return this},setMimeType:function(a){this.mimeType=a;return this},setRequestHeader:function(a){this.requestHeader=a;return this}});yg.prototype=Object.assign(Object.create(V.prototype),{constructor:yg,load:function(a,b,c,d){var e=this,f=new Sa(e.manager);f.setPath(e.path);f.load(a,function(a){b(e.parse(JSON.parse(a)))},c,d)},parse:function(a){for(var b=[],c=0;c<a.length;c++){var d=Ra.parse(a[c]);b.push(d)}return b}});zg.prototype=
+Object.assign(Object.create(V.prototype),{constructor:zg,load:function(a,b,c,d){function e(e){h.load(a[e],function(a){a=f.parse(a,!0);g[e]={width:a.width,height:a.height,format:a.format,mipmaps:a.mipmaps};m+=1;6===m&&(1===a.mipmapCount&&(k.minFilter=1006),k.format=a.format,k.needsUpdate=!0,b&&b(k))},c,d)}var f=this,g=[],k=new Rc;k.image=g;var h=new Sa(this.manager);h.setPath(this.path);h.setResponseType("arraybuffer");if(Array.isArray(a))for(var m=0,n=0,p=a.length;n<p;++n)e(n);else h.load(a,function(a){a=
+f.parse(a,!0);if(a.isCubemap)for(var c=a.mipmaps.length/a.mipmapCount,d=0;d<c;d++){g[d]={mipmaps:[]};for(var e=0;e<a.mipmapCount;e++)g[d].mipmaps.push(a.mipmaps[d*a.mipmapCount+e]),g[d].format=a.format,g[d].width=a.width,g[d].height=a.height}else k.image.width=a.width,k.image.height=a.height,k.mipmaps=a.mipmaps;1===a.mipmapCount&&(k.minFilter=1006);k.format=a.format;k.needsUpdate=!0;b&&b(k)},c,d);return k}});cf.prototype=Object.assign(Object.create(V.prototype),{constructor:cf,load:function(a,b,c,
+d){var e=this,f=new bc,g=new Sa(this.manager);g.setResponseType("arraybuffer");g.setPath(this.path);g.load(a,function(a){if(a=e.parse(a))void 0!==a.image?f.image=a.image:void 0!==a.data&&(f.image.width=a.width,f.image.height=a.height,f.image.data=a.data),f.wrapS=void 0!==a.wrapS?a.wrapS:1001,f.wrapT=void 0!==a.wrapT?a.wrapT:1001,f.magFilter=void 0!==a.magFilter?a.magFilter:1006,f.minFilter=void 0!==a.minFilter?a.minFilter:1006,f.anisotropy=void 0!==a.anisotropy?a.anisotropy:1,void 0!==a.format&&(f.format=
+a.format),void 0!==a.type&&(f.type=a.type),void 0!==a.mipmaps&&(f.mipmaps=a.mipmaps,f.minFilter=1008),1===a.mipmapCount&&(f.minFilter=1006),f.needsUpdate=!0,b&&b(f,a)},c,d);return f}});gd.prototype=Object.assign(Object.create(V.prototype),{constructor:gd,load:function(a,b,c,d){function e(){h.removeEventListener("load",e,!1);h.removeEventListener("error",f,!1);wc.add(a,this);b&&b(this);g.manager.itemEnd(a)}function f(b){h.removeEventListener("load",e,!1);h.removeEventListener("error",f,!1);d&&d(b);
+g.manager.itemError(a);g.manager.itemEnd(a)}void 0!==this.path&&(a=this.path+a);a=this.manager.resolveURL(a);var g=this,k=wc.get(a);if(void 0!==k)return g.manager.itemStart(a),setTimeout(function(){b&&b(k);g.manager.itemEnd(a)},0),k;var h=document.createElementNS("http://www.w3.org/1999/xhtml","img");h.addEventListener("load",e,!1);h.addEventListener("error",f,!1);"data:"!==a.substr(0,5)&&void 0!==this.crossOrigin&&(h.crossOrigin=this.crossOrigin);g.manager.itemStart(a);h.src=a;return h}});df.prototype=
+Object.assign(Object.create(V.prototype),{constructor:df,load:function(a,b,c,d){function e(c){g.load(a[c],function(a){f.images[c]=a;k++;6===k&&(f.needsUpdate=!0,b&&b(f))},void 0,d)}var f=new rb,g=new gd(this.manager);g.setCrossOrigin(this.crossOrigin);g.setPath(this.path);var k=0;for(c=0;c<a.length;++c)e(c);return f}});ef.prototype=Object.assign(Object.create(V.prototype),{constructor:ef,load:function(a,b,c,d){var e=new Z,f=new gd(this.manager);f.setCrossOrigin(this.crossOrigin);f.setPath(this.path);
+f.load(a,function(c){e.image=c;c=0<a.search(/\.jpe?g($|\?)/i)||0===a.search(/^data:image\/jpeg/);e.format=c?1022:1023;e.needsUpdate=!0;void 0!==b&&b(e)},c,d);return e}});Object.assign(I.prototype,{getPoint:function(){console.warn("THREE.Curve: .getPoint() not implemented.");return null},getPointAt:function(a,b){a=this.getUtoTmapping(a);return this.getPoint(a,b)},getPoints:function(a){void 0===a&&(a=5);for(var b=[],c=0;c<=a;c++)b.push(this.getPoint(c/a));return b},getSpacedPoints:function(a){void 0===
+a&&(a=5);for(var b=[],c=0;c<=a;c++)b.push(this.getPointAt(c/a));return b},getLength:function(){var a=this.getLengths();return a[a.length-1]},getLengths:function(a){void 0===a&&(a=this.arcLengthDivisions);if(this.cacheArcLengths&&this.cacheArcLengths.length===a+1&&!this.needsUpdate)return this.cacheArcLengths;this.needsUpdate=!1;var b=[],c=this.getPoint(0),d,e=0;b.push(0);for(d=1;d<=a;d++){var f=this.getPoint(d/a);e+=f.distanceTo(c);b.push(e);c=f}return this.cacheArcLengths=b},updateArcLengths:function(){this.needsUpdate=
+!0;this.getLengths()},getUtoTmapping:function(a,b){var c=this.getLengths(),d=c.length;b=b?b:a*c[d-1];for(var e=0,f=d-1,g;e<=f;)if(a=Math.floor(e+(f-e)/2),g=c[a]-b,0>g)e=a+1;else if(0<g)f=a-1;else{f=a;break}a=f;if(c[a]===b)return a/(d-1);e=c[a];return(a+(b-e)/(c[a+1]-e))/(d-1)},getTangent:function(a){var b=a-1E-4;a+=1E-4;0>b&&(b=0);1<a&&(a=1);b=this.getPoint(b);return this.getPoint(a).clone().sub(b).normalize()},getTangentAt:function(a){a=this.getUtoTmapping(a);return this.getTangent(a)},computeFrenetFrames:function(a,
+b){var c=new n,d=[],e=[],f=[],g=new n,k=new O,h;for(h=0;h<=a;h++){var m=h/a;d[h]=this.getTangentAt(m);d[h].normalize()}e[0]=new n;f[0]=new n;h=Number.MAX_VALUE;m=Math.abs(d[0].x);var x=Math.abs(d[0].y),p=Math.abs(d[0].z);m<=h&&(h=m,c.set(1,0,0));x<=h&&(h=x,c.set(0,1,0));p<=h&&c.set(0,0,1);g.crossVectors(d[0],c).normalize();e[0].crossVectors(d[0],g);f[0].crossVectors(d[0],e[0]);for(h=1;h<=a;h++)e[h]=e[h-1].clone(),f[h]=f[h-1].clone(),g.crossVectors(d[h-1],d[h]),g.length()>Number.EPSILON&&(g.normalize(),
+c=Math.acos(P.clamp(d[h-1].dot(d[h]),-1,1)),e[h].applyMatrix4(k.makeRotationAxis(g,c))),f[h].crossVectors(d[h],e[h]);if(!0===b)for(c=Math.acos(P.clamp(e[0].dot(e[a]),-1,1)),c/=a,0<d[0].dot(g.crossVectors(e[0],e[a]))&&(c=-c),h=1;h<=a;h++)e[h].applyMatrix4(k.makeRotationAxis(d[h],c*h)),f[h].crossVectors(d[h],e[h]);return{tangents:d,normals:e,binormals:f}},clone:function(){return(new this.constructor).copy(this)},copy:function(a){this.arcLengthDivisions=a.arcLengthDivisions;return this},toJSON:function(){var a=
+{metadata:{version:4.5,type:"Curve",generator:"Curve.toJSON"}};a.arcLengthDivisions=this.arcLengthDivisions;a.type=this.type;return a},fromJSON:function(a){this.arcLengthDivisions=a.arcLengthDivisions;return this}});Na.prototype=Object.create(I.prototype);Na.prototype.constructor=Na;Na.prototype.isEllipseCurve=!0;Na.prototype.getPoint=function(a,b){b=b||new w;for(var c=2*Math.PI,d=this.aEndAngle-this.aStartAngle,e=Math.abs(d)<Number.EPSILON;0>d;)d+=c;for(;d>c;)d-=c;d<Number.EPSILON&&(d=e?0:c);!0!==
+this.aClockwise||e||(d=d===c?-c:d-c);c=this.aStartAngle+a*d;a=this.aX+this.xRadius*Math.cos(c);var f=this.aY+this.yRadius*Math.sin(c);0!==this.aRotation&&(c=Math.cos(this.aRotation),d=Math.sin(this.aRotation),e=a-this.aX,f-=this.aY,a=e*c-f*d+this.aX,f=e*d+f*c+this.aY);return b.set(a,f)};Na.prototype.copy=function(a){I.prototype.copy.call(this,a);this.aX=a.aX;this.aY=a.aY;this.xRadius=a.xRadius;this.yRadius=a.yRadius;this.aStartAngle=a.aStartAngle;this.aEndAngle=a.aEndAngle;this.aClockwise=a.aClockwise;
+this.aRotation=a.aRotation;return this};Na.prototype.toJSON=function(){var a=I.prototype.toJSON.call(this);a.aX=this.aX;a.aY=this.aY;a.xRadius=this.xRadius;a.yRadius=this.yRadius;a.aStartAngle=this.aStartAngle;a.aEndAngle=this.aEndAngle;a.aClockwise=this.aClockwise;a.aRotation=this.aRotation;return a};Na.prototype.fromJSON=function(a){I.prototype.fromJSON.call(this,a);this.aX=a.aX;this.aY=a.aY;this.xRadius=a.xRadius;this.yRadius=a.yRadius;this.aStartAngle=a.aStartAngle;this.aEndAngle=a.aEndAngle;
+this.aClockwise=a.aClockwise;this.aRotation=a.aRotation;return this};hd.prototype=Object.create(Na.prototype);hd.prototype.constructor=hd;hd.prototype.isArcCurve=!0;var Uf=new n,ph=new Ag,qh=new Ag,rh=new Ag;Aa.prototype=Object.create(I.prototype);Aa.prototype.constructor=Aa;Aa.prototype.isCatmullRomCurve3=!0;Aa.prototype.getPoint=function(a,b){b=b||new n;var c=this.points,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 Uf.subVectors(c[0],c[1]).add(c[0]),f=Uf;var g=c[e%d];var h=c[(e+1)%d];this.closed||e+2<d?c=c[(e+2)%d]:(Uf.subVectors(c[d-1],c[d-2]).add(c[d-1]),c=Uf);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};Aa.prototype.copy=function(a){I.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};Aa.prototype.toJSON=function(){var a=I.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};Aa.prototype.fromJSON=function(a){I.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};Xa.prototype=Object.create(I.prototype);Xa.prototype.constructor=Xa;Xa.prototype.isCubicBezierCurve=!0;Xa.prototype.getPoint=function(a,b){b=b||new w;var c=this.v0,d=this.v1,e=this.v2,f=this.v3;b.set(te(a,c.x,d.x,e.x,f.x),te(a,c.y,d.y,e.y,f.y));return b};Xa.prototype.copy=function(a){I.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};Xa.prototype.toJSON=function(){var a=
+I.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};Xa.prototype.fromJSON=function(a){I.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};ib.prototype=Object.create(I.prototype);ib.prototype.constructor=ib;ib.prototype.isCubicBezierCurve3=!0;ib.prototype.getPoint=function(a,b){b=b||new n;var c=this.v0,d=this.v1,e=this.v2,f=this.v3;
+b.set(te(a,c.x,d.x,e.x,f.x),te(a,c.y,d.y,e.y,f.y),te(a,c.z,d.z,e.z,f.z));return b};ib.prototype.copy=function(a){I.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};ib.prototype.toJSON=function(){var a=I.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};ib.prototype.fromJSON=function(a){I.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};Ea.prototype=Object.create(I.prototype);Ea.prototype.constructor=Ea;Ea.prototype.isLineCurve=!0;Ea.prototype.getPoint=function(a,b){b=b||new w;1===a?b.copy(this.v2):(b.copy(this.v2).sub(this.v1),b.multiplyScalar(a).add(this.v1));return b};Ea.prototype.getPointAt=function(a,b){return this.getPoint(a,b)};Ea.prototype.getTangent=function(){return this.v2.clone().sub(this.v1).normalize()};Ea.prototype.copy=function(a){I.prototype.copy.call(this,
+a);this.v1.copy(a.v1);this.v2.copy(a.v2);return this};Ea.prototype.toJSON=function(){var a=I.prototype.toJSON.call(this);a.v1=this.v1.toArray();a.v2=this.v2.toArray();return a};Ea.prototype.fromJSON=function(a){I.prototype.fromJSON.call(this,a);this.v1.fromArray(a.v1);this.v2.fromArray(a.v2);return this};Ya.prototype=Object.create(I.prototype);Ya.prototype.constructor=Ya;Ya.prototype.isLineCurve3=!0;Ya.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};Ya.prototype.getPointAt=function(a,b){return this.getPoint(a,b)};Ya.prototype.copy=function(a){I.prototype.copy.call(this,a);this.v1.copy(a.v1);this.v2.copy(a.v2);return this};Ya.prototype.toJSON=function(){var a=I.prototype.toJSON.call(this);a.v1=this.v1.toArray();a.v2=this.v2.toArray();return a};Ya.prototype.fromJSON=function(a){I.prototype.fromJSON.call(this,a);this.v1.fromArray(a.v1);this.v2.fromArray(a.v2);return this};Za.prototype=Object.create(I.prototype);
+Za.prototype.constructor=Za;Za.prototype.isQuadraticBezierCurve=!0;Za.prototype.getPoint=function(a,b){b=b||new w;var c=this.v0,d=this.v1,e=this.v2;b.set(se(a,c.x,d.x,e.x),se(a,c.y,d.y,e.y));return b};Za.prototype.copy=function(a){I.prototype.copy.call(this,a);this.v0.copy(a.v0);this.v1.copy(a.v1);this.v2.copy(a.v2);return this};Za.prototype.toJSON=function(){var a=I.prototype.toJSON.call(this);a.v0=this.v0.toArray();a.v1=this.v1.toArray();a.v2=this.v2.toArray();return a};Za.prototype.fromJSON=function(a){I.prototype.fromJSON.call(this,
+a);this.v0.fromArray(a.v0);this.v1.fromArray(a.v1);this.v2.fromArray(a.v2);return this};jb.prototype=Object.create(I.prototype);jb.prototype.constructor=jb;jb.prototype.isQuadraticBezierCurve3=!0;jb.prototype.getPoint=function(a,b){b=b||new n;var c=this.v0,d=this.v1,e=this.v2;b.set(se(a,c.x,d.x,e.x),se(a,c.y,d.y,e.y),se(a,c.z,d.z,e.z));return b};jb.prototype.copy=function(a){I.prototype.copy.call(this,a);this.v0.copy(a.v0);this.v1.copy(a.v1);this.v2.copy(a.v2);return this};jb.prototype.toJSON=function(){var a=
+I.prototype.toJSON.call(this);a.v0=this.v0.toArray();a.v1=this.v1.toArray();a.v2=this.v2.toArray();return a};jb.prototype.fromJSON=function(a){I.prototype.fromJSON.call(this,a);this.v0.fromArray(a.v0);this.v1.fromArray(a.v1);this.v2.fromArray(a.v2);return this};$a.prototype=Object.create(I.prototype);$a.prototype.constructor=$a;$a.prototype.isSplineCurve=!0;$a.prototype.getPoint=function(a,b){b=b||new w;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(ki(d,e.x,f.x,g.x,c.x),ki(d,e.y,f.y,g.y,c.y));return b};$a.prototype.copy=function(a){I.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};$a.prototype.toJSON=function(){var a=I.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};$a.prototype.fromJSON=function(a){I.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 w).fromArray(d))}return this};var sh=Object.freeze({__proto__:null,ArcCurve:hd,CatmullRomCurve3:Aa,CubicBezierCurve:Xa,CubicBezierCurve3:ib,EllipseCurve:Na,LineCurve:Ea,LineCurve3:Ya,QuadraticBezierCurve:Za,QuadraticBezierCurve3:jb,SplineCurve:$a});wb.prototype=Object.assign(Object.create(I.prototype),{constructor:wb,add:function(a){this.curves.push(a)},closePath:function(){var a=this.curves[0].getPoint(0),
+b=this.curves[this.curves.length-1].getPoint(1);a.equals(b)||this.curves.push(new Ea(b,a))},getPoint:function(a){var b=a*this.getLength(),c=this.getCurveLengths();for(a=0;a<c.length;){if(c[a]>=b)return b=c[a]-b,a=this.curves[a],c=a.getLength(),a.getPointAt(0===c?0:1-b/c);a++}return null},getLength:function(){var a=this.getCurveLengths();return a[a.length-1]},updateArcLengths:function(){this.needsUpdate=!0;this.cacheLengths=null;this.getCurveLengths()},getCurveLengths:function(){if(this.cacheLengths&&
+this.cacheLengths.length===this.curves.length)return this.cacheLengths;for(var a=[],b=0,c=0,d=this.curves.length;c<d;c++)b+=this.curves[c].getLength(),a.push(b);return this.cacheLengths=a},getSpacedPoints:function(a){void 0===a&&(a=40);for(var b=[],c=0;c<=a;c++)b.push(this.getPoint(c/a));this.autoClose&&b.push(b[0]);return b},getPoints:function(a){a=a||12;for(var b=[],c,d=0,e=this.curves;d<e.length;d++){var f=e[d];f=f.getPoints(f&&f.isEllipseCurve?2*a:f&&(f.isLineCurve||f.isLineCurve3)?1:f&&f.isSplineCurve?
+a*f.points.length:a);for(var g=0;g<f.length;g++){var h=f[g];c&&c.equals(h)||(b.push(h),c=h)}}this.autoClose&&1<b.length&&!b[b.length-1].equals(b[0])&&b.push(b[0]);return b},copy:function(a){I.prototype.copy.call(this,a);this.curves=[];for(var b=0,c=a.curves.length;b<c;b++)this.curves.push(a.curves[b].clone());this.autoClose=a.autoClose;return this},toJSON:function(){var a=I.prototype.toJSON.call(this);a.autoClose=this.autoClose;a.curves=[];for(var b=0,c=this.curves.length;b<c;b++)a.curves.push(this.curves[b].toJSON());
+return a},fromJSON:function(a){I.prototype.fromJSON.call(this,a);this.autoClose=a.autoClose;this.curves=[];for(var b=0,c=a.curves.length;b<c;b++){var d=a.curves[b];this.curves.push((new sh[d.type]).fromJSON(d))}return this}});ab.prototype=Object.assign(Object.create(wb.prototype),{constructor:ab,setFromPoints:function(a){this.moveTo(a[0].x,a[0].y);for(var b=1,c=a.length;b<c;b++)this.lineTo(a[b].x,a[b].y);return this},moveTo:function(a,b){this.currentPoint.set(a,b);return this},lineTo:function(a,b){var c=
+new Ea(this.currentPoint.clone(),new w(a,b));this.curves.push(c);this.currentPoint.set(a,b);return this},quadraticCurveTo:function(a,b,c,d){a=new Za(this.currentPoint.clone(),new w(a,b),new w(c,d));this.curves.push(a);this.currentPoint.set(c,d);return this},bezierCurveTo:function(a,b,c,d,e,f){a=new Xa(this.currentPoint.clone(),new w(a,b),new w(c,d),new w(e,f));this.curves.push(a);this.currentPoint.set(e,f);return this},splineThru:function(a){var b=[this.currentPoint.clone()].concat(a);b=new $a(b);
+this.curves.push(b);this.currentPoint.copy(a[a.length-1]);return this},arc:function(a,b,c,d,e,f){this.absarc(a+this.currentPoint.x,b+this.currentPoint.y,c,d,e,f);return this},absarc:function(a,b,c,d,e,f){this.absellipse(a,b,c,c,d,e,f);return this},ellipse:function(a,b,c,d,e,f,g,h){this.absellipse(a+this.currentPoint.x,b+this.currentPoint.y,c,d,e,f,g,h);return this},absellipse:function(a,b,c,d,e,f,g,h){a=new Na(a,b,c,d,e,f,g,h);0<this.curves.length&&(b=a.getPoint(0),b.equals(this.currentPoint)||this.lineTo(b.x,
+b.y));this.curves.push(a);a=a.getPoint(1);this.currentPoint.copy(a);return this},copy:function(a){wb.prototype.copy.call(this,a);this.currentPoint.copy(a.currentPoint);return this},toJSON:function(){var a=wb.prototype.toJSON.call(this);a.currentPoint=this.currentPoint.toArray();return a},fromJSON:function(a){wb.prototype.fromJSON.call(this,a);this.currentPoint.fromArray(a.currentPoint);return this}});Lb.prototype=Object.assign(Object.create(ab.prototype),{constructor:Lb,getPointsHoles:function(a){for(var b=
+[],c=0,d=this.holes.length;c<d;c++)b[c]=this.holes[c].getPoints(a);return b},extractPoints:function(a){return{shape:this.getPoints(a),holes:this.getPointsHoles(a)}},copy:function(a){ab.prototype.copy.call(this,a);this.holes=[];for(var b=0,c=a.holes.length;b<c;b++)this.holes.push(a.holes[b].clone());return this},toJSON:function(){var a=ab.prototype.toJSON.call(this);a.uuid=this.uuid;a.holes=[];for(var b=0,c=this.holes.length;b<c;b++)a.holes.push(this.holes[b].toJSON());return a},fromJSON:function(a){ab.prototype.fromJSON.call(this,
+a);this.uuid=a.uuid;this.holes=[];for(var b=0,c=a.holes.length;b<c;b++){var d=a.holes[b];this.holes.push((new ab).fromJSON(d))}return this}});ba.prototype=Object.assign(Object.create(D.prototype),{constructor:ba,isLight:!0,copy:function(a){D.prototype.copy.call(this,a);this.color.copy(a.color);this.intensity=a.intensity;return this},toJSON:function(a){a=D.prototype.toJSON.call(this,a);a.object.color=this.color.getHex();a.object.intensity=this.intensity;void 0!==this.groundColor&&(a.object.groundColor=
+this.groundColor.getHex());void 0!==this.distance&&(a.object.distance=this.distance);void 0!==this.angle&&(a.object.angle=this.angle);void 0!==this.decay&&(a.object.decay=this.decay);void 0!==this.penumbra&&(a.object.penumbra=this.penumbra);void 0!==this.shadow&&(a.object.shadow=this.shadow.toJSON());return a}});ff.prototype=Object.assign(Object.create(ba.prototype),{constructor:ff,isHemisphereLight:!0,copy:function(a){ba.prototype.copy.call(this,a);this.groundColor.copy(a.groundColor);return this}});
+Object.assign(kb.prototype,{_projScreenMatrix:new O,_lightPositionWorld:new n,_lookTarget:new n,getViewportCount:function(){return this._viewportCount},getFrustum:function(){return this._frustum},updateMatrices:function(a){var b=this.camera,c=this.matrix,d=this._projScreenMatrix,e=this._lookTarget,f=this._lightPositionWorld;f.setFromMatrixPosition(a.matrixWorld);b.position.copy(f);e.setFromMatrixPosition(a.target.matrixWorld);b.lookAt(e);b.updateMatrixWorld();d.multiplyMatrices(b.projectionMatrix,
+b.matrixWorldInverse);this._frustum.setFromProjectionMatrix(d);c.set(.5,0,0,.5,0,.5,0,.5,0,0,.5,.5,0,0,0,1);c.multiply(b.projectionMatrix);c.multiply(b.matrixWorldInverse)},getViewport:function(a){return this._viewports[a]},getFrameExtents:function(){return this._frameExtents},copy:function(a){this.camera=a.camera.clone();this.bias=a.bias;this.radius=a.radius;this.mapSize.copy(a.mapSize);return this},clone:function(){return(new this.constructor).copy(this)},toJSON:function(){var a={};0!==this.bias&&
+(a.bias=this.bias);1!==this.radius&&(a.radius=this.radius);if(512!==this.mapSize.x||512!==this.mapSize.y)a.mapSize=this.mapSize.toArray();a.camera=this.camera.toJSON(!1).object;delete a.camera.matrix;return a}});gf.prototype=Object.assign(Object.create(kb.prototype),{constructor:gf,isSpotLightShadow:!0,updateMatrices:function(a){var b=this.camera,c=2*P.RAD2DEG*a.angle,d=this.mapSize.width/this.mapSize.height,e=a.distance||b.far;if(c!==b.fov||d!==b.aspect||e!==b.far)b.fov=c,b.aspect=d,b.far=e,b.updateProjectionMatrix();
+kb.prototype.updateMatrices.call(this,a)}});hf.prototype=Object.assign(Object.create(ba.prototype),{constructor:hf,isSpotLight:!0,copy:function(a){ba.prototype.copy.call(this,a);this.distance=a.distance;this.angle=a.angle;this.penumbra=a.penumbra;this.decay=a.decay;this.target=a.target.clone();this.shadow=a.shadow.clone();return this}});Bg.prototype=Object.assign(Object.create(kb.prototype),{constructor:Bg,isPointLightShadow:!0,updateMatrices:function(a,b){void 0===b&&(b=0);var c=this.camera,d=this.matrix,
+e=this._lightPositionWorld,f=this._lookTarget,g=this._projScreenMatrix;e.setFromMatrixPosition(a.matrixWorld);c.position.copy(e);f.copy(c.position);f.add(this._cubeDirections[b]);c.up.copy(this._cubeUps[b]);c.lookAt(f);c.updateMatrixWorld();d.makeTranslation(-e.x,-e.y,-e.z);g.multiplyMatrices(c.projectionMatrix,c.matrixWorldInverse);this._frustum.setFromProjectionMatrix(g)}});jf.prototype=Object.assign(Object.create(ba.prototype),{constructor:jf,isPointLight:!0,copy:function(a){ba.prototype.copy.call(this,
+a);this.distance=a.distance;this.decay=a.decay;this.shadow=a.shadow.clone();return this}});id.prototype=Object.assign(Object.create(eb.prototype),{constructor:id,isOrthographicCamera:!0,copy:function(a,b){eb.prototype.copy.call(this,a,b);this.left=a.left;this.right=a.right;this.top=a.top;this.bottom=a.bottom;this.near=a.near;this.far=a.far;this.zoom=a.zoom;this.view=null===a.view?null:Object.assign({},a.view);return this},setViewOffset:function(a,b,c,d,e,f){null===this.view&&(this.view={enabled:!0,
+fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1});this.view.enabled=!0;this.view.fullWidth=a;this.view.fullHeight=b;this.view.offsetX=c;this.view.offsetY=d;this.view.width=e;this.view.height=f;this.updateProjectionMatrix()},clearViewOffset:function(){null!==this.view&&(this.view.enabled=!1);this.updateProjectionMatrix()},updateProjectionMatrix:function(){var a=(this.right-this.left)/(2*this.zoom),b=(this.top-this.bottom)/(2*this.zoom),c=(this.right+this.left)/2,d=(this.top+this.bottom)/
+2,e=c-a;c+=a;a=d+b;b=d-b;null!==this.view&&this.view.enabled&&(d=(this.right-this.left)/this.view.fullWidth/this.zoom,b=(this.top-this.bottom)/this.view.fullHeight/this.zoom,e+=d*this.view.offsetX,c=e+d*this.view.width,a-=b*this.view.offsetY,b=a-b*this.view.height);this.projectionMatrix.makeOrthographic(e,c,a,b,this.near,this.far);this.projectionMatrixInverse.getInverse(this.projectionMatrix)},toJSON:function(a){a=D.prototype.toJSON.call(this,a);a.object.zoom=this.zoom;a.object.left=this.left;a.object.right=
+this.right;a.object.top=this.top;a.object.bottom=this.bottom;a.object.near=this.near;a.object.far=this.far;null!==this.view&&(a.object.view=Object.assign({},this.view));return a}});kf.prototype=Object.assign(Object.create(kb.prototype),{constructor:kf,isDirectionalLightShadow:!0,updateMatrices:function(a){kb.prototype.updateMatrices.call(this,a)}});lf.prototype=Object.assign(Object.create(ba.prototype),{constructor:lf,isDirectionalLight:!0,copy:function(a){ba.prototype.copy.call(this,a);this.target=
+a.target.clone();this.shadow=a.shadow.clone();return this}});mf.prototype=Object.assign(Object.create(ba.prototype),{constructor:mf,isAmbientLight:!0});nf.prototype=Object.assign(Object.create(ba.prototype),{constructor:nf,isRectAreaLight:!0,copy:function(a){ba.prototype.copy.call(this,a);this.width=a.width;this.height=a.height;return this},toJSON:function(a){a=ba.prototype.toJSON.call(this,a);a.object.width=this.width;a.object.height=this.height;return a}});of.prototype=Object.assign(Object.create(V.prototype),
+{constructor:of,load:function(a,b,c,d){var e=this,f=new Sa(e.manager);f.setPath(e.path);f.load(a,function(a){b(e.parse(JSON.parse(a)))},c,d)},parse:function(a){function b(a){void 0===c[a]&&console.warn("THREE.MaterialLoader: Undefined texture",a);return c[a]}var c=this.textures,d=new bl[a.type];void 0!==a.uuid&&(d.uuid=a.uuid);void 0!==a.name&&(d.name=a.name);void 0!==a.color&&d.color.setHex(a.color);void 0!==a.roughness&&(d.roughness=a.roughness);void 0!==a.metalness&&(d.metalness=a.metalness);void 0!==
+a.sheen&&(d.sheen=(new B).setHex(a.sheen));void 0!==a.emissive&&d.emissive.setHex(a.emissive);void 0!==a.specular&&d.specular.setHex(a.specular);void 0!==a.shininess&&(d.shininess=a.shininess);void 0!==a.clearcoat&&(d.clearcoat=a.clearcoat);void 0!==a.clearcoatRoughness&&(d.clearcoatRoughness=a.clearcoatRoughness);void 0!==a.vertexColors&&(d.vertexColors=a.vertexColors);void 0!==a.fog&&(d.fog=a.fog);void 0!==a.flatShading&&(d.flatShading=a.flatShading);void 0!==a.blending&&(d.blending=a.blending);
+void 0!==a.combine&&(d.combine=a.combine);void 0!==a.side&&(d.side=a.side);void 0!==a.opacity&&(d.opacity=a.opacity);void 0!==a.transparent&&(d.transparent=a.transparent);void 0!==a.alphaTest&&(d.alphaTest=a.alphaTest);void 0!==a.depthTest&&(d.depthTest=a.depthTest);void 0!==a.depthWrite&&(d.depthWrite=a.depthWrite);void 0!==a.colorWrite&&(d.colorWrite=a.colorWrite);void 0!==a.stencilWrite&&(d.stencilWrite=a.stencilWrite);void 0!==a.stencilWriteMask&&(d.stencilWriteMask=a.stencilWriteMask);void 0!==
+a.stencilFunc&&(d.stencilFunc=a.stencilFunc);void 0!==a.stencilRef&&(d.stencilRef=a.stencilRef);void 0!==a.stencilFuncMask&&(d.stencilFuncMask=a.stencilFuncMask);void 0!==a.stencilFail&&(d.stencilFail=a.stencilFail);void 0!==a.stencilZFail&&(d.stencilZFail=a.stencilZFail);void 0!==a.stencilZPass&&(d.stencilZPass=a.stencilZPass);void 0!==a.wireframe&&(d.wireframe=a.wireframe);void 0!==a.wireframeLinewidth&&(d.wireframeLinewidth=a.wireframeLinewidth);void 0!==a.wireframeLinecap&&(d.wireframeLinecap=
+a.wireframeLinecap);void 0!==a.wireframeLinejoin&&(d.wireframeLinejoin=a.wireframeLinejoin);void 0!==a.rotation&&(d.rotation=a.rotation);1!==a.linewidth&&(d.linewidth=a.linewidth);void 0!==a.dashSize&&(d.dashSize=a.dashSize);void 0!==a.gapSize&&(d.gapSize=a.gapSize);void 0!==a.scale&&(d.scale=a.scale);void 0!==a.polygonOffset&&(d.polygonOffset=a.polygonOffset);void 0!==a.polygonOffsetFactor&&(d.polygonOffsetFactor=a.polygonOffsetFactor);void 0!==a.polygonOffsetUnits&&(d.polygonOffsetUnits=a.polygonOffsetUnits);
+void 0!==a.skinning&&(d.skinning=a.skinning);void 0!==a.morphTargets&&(d.morphTargets=a.morphTargets);void 0!==a.morphNormals&&(d.morphNormals=a.morphNormals);void 0!==a.dithering&&(d.dithering=a.dithering);void 0!==a.visible&&(d.visible=a.visible);void 0!==a.toneMapped&&(d.toneMapped=a.toneMapped);void 0!==a.userData&&(d.userData=a.userData);if(void 0!==a.uniforms)for(var e in a.uniforms){var f=a.uniforms[e];d.uniforms[e]={};switch(f.type){case "t":d.uniforms[e].value=b(f.value);break;case "c":d.uniforms[e].value=
+(new B).setHex(f.value);break;case "v2":d.uniforms[e].value=(new w).fromArray(f.value);break;case "v3":d.uniforms[e].value=(new n).fromArray(f.value);break;case "v4":d.uniforms[e].value=(new ia).fromArray(f.value);break;case "m3":d.uniforms[e].value=(new za).fromArray(f.value);case "m4":d.uniforms[e].value=(new O).fromArray(f.value);break;default:d.uniforms[e].value=f.value}}void 0!==a.defines&&(d.defines=a.defines);void 0!==a.vertexShader&&(d.vertexShader=a.vertexShader);void 0!==a.fragmentShader&&
+(d.fragmentShader=a.fragmentShader);if(void 0!==a.extensions)for(var g in a.extensions)d.extensions[g]=a.extensions[g];void 0!==a.shading&&(d.flatShading=1===a.shading);void 0!==a.size&&(d.size=a.size);void 0!==a.sizeAttenuation&&(d.sizeAttenuation=a.sizeAttenuation);void 0!==a.map&&(d.map=b(a.map));void 0!==a.matcap&&(d.matcap=b(a.matcap));void 0!==a.alphaMap&&(d.alphaMap=b(a.alphaMap),d.transparent=!0);void 0!==a.bumpMap&&(d.bumpMap=b(a.bumpMap));void 0!==a.bumpScale&&(d.bumpScale=a.bumpScale);
+void 0!==a.normalMap&&(d.normalMap=b(a.normalMap));void 0!==a.normalMapType&&(d.normalMapType=a.normalMapType);void 0!==a.normalScale&&(e=a.normalScale,!1===Array.isArray(e)&&(e=[e,e]),d.normalScale=(new w).fromArray(e));void 0!==a.displacementMap&&(d.displacementMap=b(a.displacementMap));void 0!==a.displacementScale&&(d.displacementScale=a.displacementScale);void 0!==a.displacementBias&&(d.displacementBias=a.displacementBias);void 0!==a.roughnessMap&&(d.roughnessMap=b(a.roughnessMap));void 0!==a.metalnessMap&&
+(d.metalnessMap=b(a.metalnessMap));void 0!==a.emissiveMap&&(d.emissiveMap=b(a.emissiveMap));void 0!==a.emissiveIntensity&&(d.emissiveIntensity=a.emissiveIntensity);void 0!==a.specularMap&&(d.specularMap=b(a.specularMap));void 0!==a.envMap&&(d.envMap=b(a.envMap));void 0!==a.envMapIntensity&&(d.envMapIntensity=a.envMapIntensity);void 0!==a.reflectivity&&(d.reflectivity=a.reflectivity);void 0!==a.refractionRatio&&(d.refractionRatio=a.refractionRatio);void 0!==a.lightMap&&(d.lightMap=b(a.lightMap));void 0!==
+a.lightMapIntensity&&(d.lightMapIntensity=a.lightMapIntensity);void 0!==a.aoMap&&(d.aoMap=b(a.aoMap));void 0!==a.aoMapIntensity&&(d.aoMapIntensity=a.aoMapIntensity);void 0!==a.gradientMap&&(d.gradientMap=b(a.gradientMap));void 0!==a.clearcoatNormalMap&&(d.clearcoatNormalMap=b(a.clearcoatNormalMap));void 0!==a.clearcoatNormalScale&&(d.clearcoatNormalScale=(new w).fromArray(a.clearcoatNormalScale));return d},setTextures:function(a){this.textures=a;return this}});var th={decodeText:function(a){if("undefined"!==
+typeof TextDecoder)return(new TextDecoder).decode(a);for(var b="",c=0,d=a.length;c<d;c++)b+=String.fromCharCode(a[c]);try{return decodeURIComponent(escape(b))}catch(e){return b}},extractUrlBase:function(a){var b=a.lastIndexOf("/");return-1===b?"./":a.substr(0,b+1)}};pf.prototype=Object.assign(Object.create(A.prototype),{constructor:pf,isInstancedBufferGeometry:!0,copy:function(a){A.prototype.copy.call(this,a);this.maxInstancedCount=a.maxInstancedCount;return this},clone:function(){return(new this.constructor).copy(this)},
+toJSON:function(){var a=A.prototype.toJSON.call(this);a.maxInstancedCount=this.maxInstancedCount;a.isInstancedBufferGeometry=!0;return a}});qf.prototype=Object.assign(Object.create(M.prototype),{constructor:qf,isInstancedBufferAttribute:!0,copy:function(a){M.prototype.copy.call(this,a);this.meshPerAttribute=a.meshPerAttribute;return this},toJSON:function(){var a=M.prototype.toJSON.call(this);a.meshPerAttribute=this.meshPerAttribute;a.isInstancedBufferAttribute=!0;return a}});rf.prototype=Object.assign(Object.create(V.prototype),
+{constructor:rf,load:function(a,b,c,d){var e=this,f=new Sa(e.manager);f.setPath(e.path);f.load(a,function(a){b(e.parse(JSON.parse(a)))},c,d)},parse:function(a){var b=a.isInstancedBufferGeometry?new pf:new A,c=a.data.index;if(void 0!==c){var d=new uh[c.type](c.array);b.setIndex(new M(d,1))}c=a.data.attributes;for(var e in c){var f=c[e];d=new uh[f.type](f.array);d=new (f.isInstancedBufferAttribute?qf:M)(d,f.itemSize,f.normalized);void 0!==f.name&&(d.name=f.name);b.setAttribute(e,d)}var g=a.data.morphAttributes;
+if(g)for(e in g){var h=g[e],l=[];c=0;for(var m=h.length;c<m;c++)f=h[c],d=new uh[f.type](f.array),d=new M(d,f.itemSize,f.normalized),void 0!==f.name&&(d.name=f.name),l.push(d);b.morphAttributes[e]=l}a.data.morphTargetsRelative&&(b.morphTargetsRelative=!0);e=a.data.groups||a.data.drawcalls||a.data.offsets;if(void 0!==e)for(c=0,f=e.length;c!==f;++c)d=e[c],b.addGroup(d.start,d.count,d.materialIndex);c=a.data.boundingSphere;void 0!==c&&(e=new n,void 0!==c.center&&e.fromArray(c.center),b.boundingSphere=
+new qb(e,c.radius));a.name&&(b.name=a.name);a.userData&&(b.userData=a.userData);return b}});var uh={Int8Array:Int8Array,Uint8Array:Uint8Array,Uint8ClampedArray:"undefined"!==typeof Uint8ClampedArray?Uint8ClampedArray:Uint8Array,Int16Array:Int16Array,Uint16Array:Uint16Array,Int32Array:Int32Array,Uint32Array:Uint32Array,Float32Array:Float32Array,Float64Array:Float64Array};sf.prototype=Object.assign(Object.create(V.prototype),{constructor:sf,load:function(a,b,c,d){var e=this,f=""===this.path?th.extractUrlBase(a):
+this.path;this.resourcePath=this.resourcePath||f;f=new Sa(e.manager);f.setPath(this.path);f.load(a,function(c){var f=null;try{f=JSON.parse(c)}catch(l){void 0!==d&&d(l);console.error("THREE:ObjectLoader: Can't parse "+a+".",l.message);return}c=f.metadata;void 0===c||void 0===c.type||"geometry"===c.type.toLowerCase()?console.error("THREE.ObjectLoader: Can't load "+a):e.parse(f,b)},c,d)},parse:function(a,b){var c=this.parseShape(a.shapes);c=this.parseGeometries(a.geometries,c);var d=this.parseImages(a.images,
+function(){void 0!==b&&b(e)});d=this.parseTextures(a.textures,d);d=this.parseMaterials(a.materials,d);var e=this.parseObject(a.object,c,d);a.animations&&(e.animations=this.parseAnimations(a.animations));void 0!==a.images&&0!==a.images.length||void 0===b||b(e);return e},parseShape:function(a){var b={};if(void 0!==a)for(var c=0,d=a.length;c<d;c++){var e=(new Lb).fromJSON(a[c]);b[e.uuid]=e}return b},parseGeometries:function(a,b){var c={};if(void 0!==a)for(var d=new rf,e=0,f=a.length;e<f;e++){var g=a[e];
+switch(g.type){case "PlaneGeometry":case "PlaneBufferGeometry":var h=new va[g.type](g.width,g.height,g.widthSegments,g.heightSegments);break;case "BoxGeometry":case "BoxBufferGeometry":case "CubeGeometry":h=new va[g.type](g.width,g.height,g.depth,g.widthSegments,g.heightSegments,g.depthSegments);break;case "CircleGeometry":case "CircleBufferGeometry":h=new va[g.type](g.radius,g.segments,g.thetaStart,g.thetaLength);break;case "CylinderGeometry":case "CylinderBufferGeometry":h=new va[g.type](g.radiusTop,
+g.radiusBottom,g.height,g.radialSegments,g.heightSegments,g.openEnded,g.thetaStart,g.thetaLength);break;case "ConeGeometry":case "ConeBufferGeometry":h=new va[g.type](g.radius,g.height,g.radialSegments,g.heightSegments,g.openEnded,g.thetaStart,g.thetaLength);break;case "SphereGeometry":case "SphereBufferGeometry":h=new va[g.type](g.radius,g.widthSegments,g.heightSegments,g.phiStart,g.phiLength,g.thetaStart,g.thetaLength);break;case "DodecahedronGeometry":case "DodecahedronBufferGeometry":case "IcosahedronGeometry":case "IcosahedronBufferGeometry":case "OctahedronGeometry":case "OctahedronBufferGeometry":case "TetrahedronGeometry":case "TetrahedronBufferGeometry":h=
 new va[g.type](g.radius,g.detail);break;case "RingGeometry":case "RingBufferGeometry":h=new va[g.type](g.innerRadius,g.outerRadius,g.thetaSegments,g.phiSegments,g.thetaStart,g.thetaLength);break;case "TorusGeometry":case "TorusBufferGeometry":h=new va[g.type](g.radius,g.tube,g.radialSegments,g.tubularSegments,g.arc);break;case "TorusKnotGeometry":case "TorusKnotBufferGeometry":h=new va[g.type](g.radius,g.tube,g.tubularSegments,g.radialSegments,g.p,g.q);break;case "TubeGeometry":case "TubeBufferGeometry":h=
 new va[g.type](g.radius,g.detail);break;case "RingGeometry":case "RingBufferGeometry":h=new va[g.type](g.innerRadius,g.outerRadius,g.thetaSegments,g.phiSegments,g.thetaStart,g.thetaLength);break;case "TorusGeometry":case "TorusBufferGeometry":h=new va[g.type](g.radius,g.tube,g.radialSegments,g.tubularSegments,g.arc);break;case "TorusKnotGeometry":case "TorusKnotBufferGeometry":h=new va[g.type](g.radius,g.tube,g.tubularSegments,g.radialSegments,g.p,g.q);break;case "TubeGeometry":case "TubeBufferGeometry":h=
 new va[g.type]((new sh[g.path.type]).fromJSON(g.path),g.tubularSegments,g.radius,g.radialSegments,g.closed);break;case "LatheGeometry":case "LatheBufferGeometry":h=new va[g.type](g.points,g.segments,g.phiStart,g.phiLength);break;case "PolyhedronGeometry":case "PolyhedronBufferGeometry":h=new va[g.type](g.vertices,g.indices,g.radius,g.details);break;case "ShapeGeometry":case "ShapeBufferGeometry":h=[];for(var l=0,m=g.shapes.length;l<m;l++){var n=b[g.shapes[l]];h.push(n)}h=new va[g.type](h,g.curveSegments);
 new va[g.type]((new sh[g.path.type]).fromJSON(g.path),g.tubularSegments,g.radius,g.radialSegments,g.closed);break;case "LatheGeometry":case "LatheBufferGeometry":h=new va[g.type](g.points,g.segments,g.phiStart,g.phiLength);break;case "PolyhedronGeometry":case "PolyhedronBufferGeometry":h=new va[g.type](g.vertices,g.indices,g.radius,g.details);break;case "ShapeGeometry":case "ShapeBufferGeometry":h=[];for(var l=0,m=g.shapes.length;l<m;l++){var n=b[g.shapes[l]];h.push(n)}h=new va[g.type](h,g.curveSegments);
 break;case "ExtrudeGeometry":case "ExtrudeBufferGeometry":h=[];l=0;for(m=g.shapes.length;l<m;l++)n=b[g.shapes[l]],h.push(n);l=g.options.extrudePath;void 0!==l&&(g.options.extrudePath=(new sh[l.type]).fromJSON(l));h=new va[g.type](h,g.options);break;case "BufferGeometry":case "InstancedBufferGeometry":h=d.parse(g);break;case "Geometry":"THREE"in window&&"LegacyJSONLoader"in THREE?h=(new THREE.LegacyJSONLoader).parse(g,this.resourcePath).geometry:console.error('THREE.ObjectLoader: You have to import LegacyJSONLoader in order load geometry data of type "Geometry".');
 break;case "ExtrudeGeometry":case "ExtrudeBufferGeometry":h=[];l=0;for(m=g.shapes.length;l<m;l++)n=b[g.shapes[l]],h.push(n);l=g.options.extrudePath;void 0!==l&&(g.options.extrudePath=(new sh[l.type]).fromJSON(l));h=new va[g.type](h,g.options);break;case "BufferGeometry":case "InstancedBufferGeometry":h=d.parse(g);break;case "Geometry":"THREE"in window&&"LegacyJSONLoader"in THREE?h=(new THREE.LegacyJSONLoader).parse(g,this.resourcePath).geometry:console.error('THREE.ObjectLoader: You have to import LegacyJSONLoader in order load geometry data of type "Geometry".');
 break;default:console.warn('THREE.ObjectLoader: Unsupported geometry type "'+g.type+'"');continue}h.uuid=g.uuid;void 0!==g.name&&(h.name=g.name);!0===h.isBufferGeometry&&void 0!==g.userData&&(h.userData=g.userData);c[g.uuid]=h}return c},parseMaterials:function(a,b){var c={},d={};if(void 0!==a){var e=new of;e.setTextures(b);b=0;for(var f=a.length;b<f;b++){var g=a[b];if("MultiMaterial"===g.type){for(var h=[],l=0;l<g.materials.length;l++){var m=g.materials[l];void 0===c[m.uuid]&&(c[m.uuid]=e.parse(m));
 break;default:console.warn('THREE.ObjectLoader: Unsupported geometry type "'+g.type+'"');continue}h.uuid=g.uuid;void 0!==g.name&&(h.name=g.name);!0===h.isBufferGeometry&&void 0!==g.userData&&(h.userData=g.userData);c[g.uuid]=h}return c},parseMaterials:function(a,b){var c={},d={};if(void 0!==a){var e=new of;e.setTextures(b);b=0;for(var f=a.length;b<f;b++){var g=a[b];if("MultiMaterial"===g.type){for(var h=[],l=0;l<g.materials.length;l++){var m=g.materials[l];void 0===c[m.uuid]&&(c[m.uuid]=e.parse(m));
-h.push(c[m.uuid])}d[g.uuid]=h}else void 0===c[g.uuid]&&(c[g.uuid]=e.parse(g)),d[g.uuid]=c[g.uuid]}}return d},parseAnimations:function(a){for(var b=[],c=0;c<a.length;c++){var d=a[c],e=Ra.parse(d);void 0!==d.uuid&&(e.uuid=d.uuid);b.push(e)}return b},parseImages:function(a,b){function c(a){d.manager.itemStart(a);return f.load(a,function(){d.manager.itemEnd(a)},void 0,function(){d.manager.itemError(a);d.manager.itemEnd(a)})}var d=this,e={};if(void 0!==a&&0<a.length){b=new xg(b);var f=new fd(b);f.setCrossOrigin(this.crossOrigin);
+h.push(c[m.uuid])}d[g.uuid]=h}else void 0===c[g.uuid]&&(c[g.uuid]=e.parse(g)),d[g.uuid]=c[g.uuid]}}return d},parseAnimations:function(a){for(var b=[],c=0;c<a.length;c++){var d=a[c],e=Ra.parse(d);void 0!==d.uuid&&(e.uuid=d.uuid);b.push(e)}return b},parseImages:function(a,b){function c(a){d.manager.itemStart(a);return f.load(a,function(){d.manager.itemEnd(a)},void 0,function(){d.manager.itemError(a);d.manager.itemEnd(a)})}var d=this,e={};if(void 0!==a&&0<a.length){b=new xg(b);var f=new gd(b);f.setCrossOrigin(this.crossOrigin);
 b=0;for(var g=a.length;b<g;b++){var h=a[b],l=h.url;if(Array.isArray(l)){e[h.uuid]=[];for(var m=0,n=l.length;m<n;m++){var p=l[m];p=/^(\/\/)|([a-z]+:(\/\/)?)/i.test(p)?p:d.resourcePath+p;e[h.uuid].push(c(p))}}else p=/^(\/\/)|([a-z]+:(\/\/)?)/i.test(h.url)?h.url:d.resourcePath+h.url,e[h.uuid]=c(p)}}return e},parseTextures:function(a,b){function c(a,b){if("number"===typeof a)return a;console.warn("THREE.ObjectLoader.parseTexture: Constant should be in numeric form.",a);return b[a]}var d={};if(void 0!==
 b=0;for(var g=a.length;b<g;b++){var h=a[b],l=h.url;if(Array.isArray(l)){e[h.uuid]=[];for(var m=0,n=l.length;m<n;m++){var p=l[m];p=/^(\/\/)|([a-z]+:(\/\/)?)/i.test(p)?p:d.resourcePath+p;e[h.uuid].push(c(p))}}else p=/^(\/\/)|([a-z]+:(\/\/)?)/i.test(h.url)?h.url:d.resourcePath+h.url,e[h.uuid]=c(p)}}return e},parseTextures:function(a,b){function c(a,b){if("number"===typeof a)return a;console.warn("THREE.ObjectLoader.parseTexture: Constant should be in numeric form.",a);return b[a]}var d={};if(void 0!==
 a)for(var e=0,f=a.length;e<f;e++){var g=a[e];void 0===g.image&&console.warn('THREE.ObjectLoader: No "image" specified for',g.uuid);void 0===b[g.image]&&console.warn("THREE.ObjectLoader: Undefined image",g.image);var h=Array.isArray(b[g.image])?new rb(b[g.image]):new Z(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&&
 a)for(var e=0,f=a.length;e<f;e++){var g=a[e];void 0===g.image&&console.warn('THREE.ObjectLoader: No "image" specified for',g.uuid);void 0===b[g.image]&&console.warn("THREE.ObjectLoader: Undefined image",g.image);var h=Array.isArray(b[g.image])?new rb(b[g.image]):new Z(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=
 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]}}
 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 pb;void 0!==a.background&&Number.isInteger(a.background)&&(f.background=new B(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 da(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=
 switch(a.type){case "Scene":var f=new pb;void 0!==a.background&&Number.isInteger(a.background)&&(f.background=new B(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 da(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;
+a.filmOffset);void 0!==a.view&&(f.view=Object.assign({},a.view));break;case "OrthographicCamera":f=new id(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 Ud(f,g):new ca(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),
 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 Ud(f,g):new ca(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 Td;break;case "Line":f=new La(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 Rd(e(a.material));break;case "Group":f=new Mc;break;default:f=new D}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&&
+16);break;case "LOD":f=new Td;break;case "Line":f=new La(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 Qc(d(a.geometry),e(a.material));break;case "Sprite":f=new Rd(e(a.material));break;case "Group":f=new Nc;break;default:f=new D}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),
 (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<
 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,
 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};Cg.prototype=Object.assign(Object.create(V.prototype),{constructor:Cg,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(Dg.prototype,{moveTo:function(a,b){this.currentPath=new ab;this.subPaths.push(this.currentPath);this.currentPath.moveTo(a,b);return this},
+ClampToEdgeWrapping:1001,MirroredRepeatWrapping:1002},bj={NearestFilter:1003,NearestMipmapNearestFilter:1004,NearestMipmapLinearFilter:1005,LinearFilter:1006,LinearMipmapNearestFilter:1007,LinearMipmapLinearFilter:1008};Cg.prototype=Object.assign(Object.create(V.prototype),{constructor:Cg,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=wc.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){wc.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(Dg.prototype,{moveTo:function(a,b){this.currentPath=new ab;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 Lb;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=
 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 Lb;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=tb.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 Lb;h.curves=g.curves;b.push(h);return b}var l=!e(f[0].getPoints());l=a?
 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=tb.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 Lb;h.curves=g.curves;b.push(h);return b}var l=!e(f[0].getPoints());l=a?
 !l:l;h=[];var m=[],n=[],p=0;m[p]=void 0;n[p]=[];for(var q=0,t=f.length;q<t;q++){g=f[q];var r=g.getPoints();var u=e(r);(u=a?!u:u)?(!l&&m[p]&&p++,m[p]={s:new Lb,p:r},m[p].s.curves=g.curves,l&&p++,n[p]=[]):n[p].push({h:g,p:r[0]})}if(!m[0])return c(f);if(1<m.length){q=!1;a=[];e=0;for(f=m.length;e<f;e++)h[e]=[];e=0;for(f=m.length;e<f;e++)for(g=n[e],u=0;u<g.length;u++){l=g[u];p=!0;for(r=0;r<m.length;r++)d(l.p,m[r].p)&&(e!==r&&a.push({froms:e,tos:r,hole:u}),p?(p=!1,h[r].push(l)):q=!0);p&&h[e].push(l)}0<
 !l:l;h=[];var m=[],n=[],p=0;m[p]=void 0;n[p]=[];for(var q=0,t=f.length;q<t;q++){g=f[q];var r=g.getPoints();var u=e(r);(u=a?!u:u)?(!l&&m[p]&&p++,m[p]={s:new Lb,p:r},m[p].s.curves=g.curves,l&&p++,n[p]=[]):n[p].push({h:g,p:r[0]})}if(!m[0])return c(f);if(1<m.length){q=!1;a=[];e=0;for(f=m.length;e<f;e++)h[e]=[];e=0;for(f=m.length;e<f;e++)for(g=n[e],u=0;u<g.length;u++){l=g[u];p=!0;for(r=0;r<m.length;r++)d(l.p,m[r].p)&&(e!==r&&a.push({froms:e,tos:r,hole:u}),p?(p=!1,h[r].push(l)):q=!0);p&&h[e].push(l)}0<
@@ -862,27 +863,27 @@ b){void 0===a&&(a=[]);void 0===b&&(b=0);for(var c=this.coefficients,d=0;9>d;d++)
 a.intensity;return this},toJSON:function(a){return ba.prototype.toJSON.call(this,a)}});Gg.prototype=Object.assign(Object.create(bb.prototype),{constructor:Gg,isHemisphereLightProbe:!0,copy:function(a){bb.prototype.copy.call(this,a);return this},toJSON:function(a){return bb.prototype.toJSON.call(this,a)}});Hg.prototype=Object.assign(Object.create(bb.prototype),{constructor:Hg,isAmbientLightProbe:!0,copy:function(a){bb.prototype.copy.call(this,a);return this},toJSON:function(a){return bb.prototype.toJSON.call(this,
 a.intensity;return this},toJSON:function(a){return ba.prototype.toJSON.call(this,a)}});Gg.prototype=Object.assign(Object.create(bb.prototype),{constructor:Gg,isHemisphereLightProbe:!0,copy:function(a){bb.prototype.copy.call(this,a);return this},toJSON:function(a){return bb.prototype.toJSON.call(this,a)}});Hg.prototype=Object.assign(Object.create(bb.prototype),{constructor:Hg,isAmbientLightProbe:!0,copy:function(a){bb.prototype.copy.call(this,a);return this},toJSON:function(a){return bb.prototype.toJSON.call(this,
 a)}});var cj=new O,dj=new O;Object.assign(li.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(P.DEG2RAD*b.fov*.5)/b.zoom;dj.elements[12]=-d;cj.elements[12]=d;
 a)}});var cj=new O,dj=new O;Object.assign(li.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(P.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(Ig.prototype,{start:function(){this.oldTime=this.startTime=("undefined"===typeof performance?Date:performance).now();
 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(Ig.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 Da,dl=new n,xc=new n;Jg.prototype=Object.assign(Object.create(D.prototype),
+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 xc=new n,ej=new Da,dl=new n,yc=new n;Jg.prototype=Object.assign(Object.create(D.prototype),
 {constructor:Jg,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);
 {constructor:Jg,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){D.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(D.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();
+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){D.prototype.updateMatrixWorld.call(this,a);a=this.context.listener;var b=this.up;this.timeDelta=this._clock.getDelta();this.matrixWorld.decompose(xc,ej,dl);yc.set(0,0,-1).applyQuaternion(ej);if(a.positionX){var c=this.context.currentTime+this.timeDelta;
+a.positionX.linearRampToValueAtTime(xc.x,c);a.positionY.linearRampToValueAtTime(xc.y,c);a.positionZ.linearRampToValueAtTime(xc.z,c);a.forwardX.linearRampToValueAtTime(yc.x,c);a.forwardY.linearRampToValueAtTime(yc.y,c);a.forwardZ.linearRampToValueAtTime(yc.z,c);a.upX.linearRampToValueAtTime(b.x,c);a.upY.linearRampToValueAtTime(b.y,c);a.upZ.linearRampToValueAtTime(b.z,c)}else a.setPosition(xc.x,xc.y,xc.z),a.setOrientation(yc.x,yc.y,yc.z,b.x,b.y,b.z)}});jd.prototype=Object.assign(Object.create(D.prototype),
+{constructor:jd,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,
 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=(this.context.currentTime-this._startedAt)*this.playbackRate,this.source.stop(),this.source.onended=null,this.isPlaying=!1),
 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=(this.context.currentTime-this._startedAt)*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},
 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=
 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,
 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;
 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 Da,el=new n,zc=new n;Lg.prototype=Object.assign(Object.create(id.prototype),{constructor:Lg,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},
+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 zc=new n,fj=new Da,el=new n,Ac=new n;Lg.prototype=Object.assign(Object.create(jd.prototype),{constructor:Lg,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){D.prototype.updateMatrixWorld.call(this,
 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){D.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(Mg.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(Ng.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=
+a);if(!0!==this.hasPlaybackControl||!1!==this.isPlaying)if(this.matrixWorld.decompose(zc,fj,el),Ac.set(0,0,1).applyQuaternion(fj),a=this.panner,a.positionX){var b=this.context.currentTime+this.listener.timeDelta;a.positionX.linearRampToValueAtTime(zc.x,b);a.positionY.linearRampToValueAtTime(zc.y,b);a.positionZ.linearRampToValueAtTime(zc.z,b);a.orientationX.linearRampToValueAtTime(Ac.x,b);a.orientationY.linearRampToValueAtTime(Ac.y,b);a.orientationZ.linearRampToValueAtTime(Ac.z,b)}else a.setPosition(zc.x,
+zc.y,zc.z),a.setOrientation(Ac.x,Ac.y,Ac.z)}});Object.assign(Mg.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(Ng.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,
 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){Da.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","[^\\[\\]\\.:\\/]"),
 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){Da.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(mi.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_,
 ll=new RegExp("^"+hl+il+jl+kl+"$"),ml=["material","materials","bones"];Object.assign(mi.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(Ba,{Composite:mi,create:function(a,b,c){return a&&a.isAnimationObjectGroup?new Ba.Composite(a,b,c):new Ba(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=a.length;b!==c;++b)a[b].unbind()}});Object.assign(Ba,{Composite:mi,create:function(a,b,c){return a&&a.isAnimationObjectGroup?new Ba.Composite(a,b,c):new Ba(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||"root"===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(Ba.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]},
+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(Ba.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++];
 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,
 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=Ba.findNode(this.rootNode,b.nodeName)||this.rootNode);this.getValue=this._getValue_unavailable;this.setValue=this._setValue_unavailable;if(a){if(c){var f=
 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=Ba.findNode(this.rootNode,b.nodeName)||this.rootNode);this.getValue=this._getValue_unavailable;this.setValue=this._setValue_unavailable;if(a){if(c){var f=
@@ -927,33 +928,34 @@ b){void 0===b&&(console.warn("THREE.Box2: .getParameter() target is now required
 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,Wf=new n;Object.assign(Sg.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.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,Wf=new n;Object.assign(Sg.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===
 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);Wf.subVectors(this.end,this.start);a=Wf.dot(Wf);a=Wf.dot(hj)/a;b&&(a=P.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)},
 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);Wf.subVectors(this.end,this.start);a=Wf.dot(Wf);a=Wf.dot(hj)/a;b&&(a=P.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)}});ue.prototype=Object.create(D.prototype);ue.prototype.constructor=ue;ue.prototype.isImmediateRenderObject=!0;var ij=new n;jd.prototype=Object.create(D.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 Rb=new n,Xf=new O,vh=new O;kd.prototype=Object.create(ma.prototype);kd.prototype.constructor=kd;kd.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&&(Xf.multiplyMatrices(vh,g.matrixWorld),Rb.setFromMatrixPosition(Xf),d.setXYZ(f,Rb.x,Rb.y,Rb.z),Xf.multiplyMatrices(vh,g.parent.matrixWorld),Rb.setFromMatrixPosition(Xf),d.setXYZ(f+1,Rb.x,Rb.y,Rb.z),f+=2)}c.getAttribute("position").needsUpdate=!0;D.prototype.updateMatrixWorld.call(this,a)};ld.prototype=Object.create(ca.prototype);ld.prototype.constructor=ld;ld.prototype.dispose=function(){this.geometry.dispose();this.material.dispose()};
-ld.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 B,kj=new B;md.prototype=Object.create(D.prototype);md.prototype.constructor=md;md.prototype.dispose=function(){this.children[0].geometry.dispose();this.children[0].material.dispose()};md.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,Yf=new n,mj=new n;nd.prototype=Object.create(D.prototype);nd.prototype.constructor=nd;nd.prototype.dispose=function(){this.lightPlane.geometry.dispose();this.lightPlane.material.dispose();this.targetLine.geometry.dispose();this.targetLine.material.dispose()};nd.prototype.update=function(){lj.setFromMatrixPosition(this.light.matrixWorld);Yf.setFromMatrixPosition(this.light.target.matrixWorld);mj.subVectors(Yf,lj);this.lightPlane.lookAt(Yf);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(Yf);this.targetLine.scale.z=mj.length()};var yf=new n,R=new eb;ve.prototype=Object.create(ma.prototype);ve.prototype.constructor=ve;ve.prototype.update=function(){var a=this.geometry,b=this.pointMap;R.projectionMatrixInverse.copy(this.camera.projectionMatrixInverse);na("c",b,a,R,0,0,-1);na("t",b,a,R,0,0,1);na("n1",b,a,
-R,-1,-1,-1);na("n2",b,a,R,1,-1,-1);na("n3",b,a,R,-1,1,-1);na("n4",b,a,R,1,1,-1);na("f1",b,a,R,-1,-1,1);na("f2",b,a,R,1,-1,1);na("f3",b,a,R,-1,1,1);na("f4",b,a,R,1,1,1);na("u1",b,a,R,.7,1.1,-1);na("u2",b,a,R,-.7,1.1,-1);na("u3",b,a,R,0,2,-1);na("cf1",b,a,R,-1,0,1);na("cf2",b,a,R,1,0,1);na("cf3",b,a,R,0,-1,1);na("cf4",b,a,R,0,1,1);na("cn1",b,a,R,-1,0,-1);na("cn2",b,a,R,1,0,-1);na("cn3",b,a,R,0,-1,-1);na("cn4",b,a,R,0,1,-1);a.getAttribute("position").needsUpdate=!0};var Zf=new Ta;xb.prototype=Object.create(ma.prototype);
-xb.prototype.constructor=xb;xb.prototype.update=function(a){void 0!==a&&console.warn("THREE.BoxHelper: .update() has no longer arguments.");void 0!==this.object&&Zf.setFromObject(this.object);if(!Zf.isEmpty()){a=Zf.min;var b=Zf.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()}};xb.prototype.setFromObject=function(a){this.object=a;this.update();return this};xb.prototype.copy=function(a){ma.prototype.copy.call(this,a);this.object=a.object;return this};xb.prototype.clone=function(){return(new this.constructor).copy(this)};we.prototype=Object.create(ma.prototype);we.prototype.constructor=we;we.prototype.updateMatrixWorld=function(a){var b=this.box;b.isEmpty()||(b.getCenter(this.position),b.getSize(this.scale),this.scale.multiplyScalar(.5),
-D.prototype.updateMatrixWorld.call(this,a))};xe.prototype=Object.create(La.prototype);xe.prototype.constructor=xe;xe.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);D.prototype.updateMatrixWorld.call(this,a)};var nj=new n,zf,Tg;yb.prototype=Object.create(D.prototype);yb.prototype.constructor=yb;yb.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)))};yb.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()};yb.prototype.setColor=function(a){this.line.material.color.set(a);this.cone.material.color.set(a)};yb.prototype.copy=
-function(a){D.prototype.copy.call(this,a,!1);this.line.copy(a.line);this.cone.copy(a.cone);return this};yb.prototype.clone=function(){return(new this.constructor).copy(this)};ye.prototype=Object.create(ma.prototype);ye.prototype.constructor=ye;var lb=Math.pow(2,8),oj=[.125,.215,.35,.446,.526,.582],yi=5+oj.length,mb={3E3:0,3001:1,3002:2,3004:3,3005:4,3006:5,3007:6},Xg=new hd,Af=function(a){var b=new Float32Array(a),c=new n(0,1,0);a=new vb({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:mb[3E3]},outputEncoding:{value:mb[3E3]}},vertexShader:Zg(),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"+$g()+"\n\n#define ENVMAP_TYPE_CUBE_UV\n#include <cube_uv_reflection_fragment>\n\nvoid main() {\n\tgl_FragColor = vec4(0.0);\n\tfor (int i = 0; i < n; i++) {\n\t\tif (i >= samples)\n\t\t\tbreak;\n\t\tfor (int dir = -1; dir < 2; dir += 2) {\n\t\t\tif (i == 0 && dir == 1)\n\t\t\t\tcontinue;\n\t\t\tvec3 axis = latitudinal ? poleAxis : cross(poleAxis, vOutputDirection);\n\t\t\tif (all(equal(axis, vec3(0.0))))\n\t\t\t\taxis = cross(vec3(0.0, 1.0, 0.0), vOutputDirection);\n\t\t\taxis = normalize(axis);\n\t\t\tfloat theta = dTheta * float(dir * i);\n\t\t\tfloat cosTheta = cos(theta);\n\t\t\t// Rodrigues' axis-angle rotation\n\t\t\tvec3 sampleDirection = vOutputDirection * cosTheta\n\t\t\t\t\t+ cross(axis, vOutputDirection) * sin(theta)\n\t\t\t\t\t+ axis * dot(axis, vOutputDirection) * (1.0 - cosTheta);\n\t\t\tgl_FragColor.rgb +=\n\t\t\t\t\tweights[i] * bilinearCubeUV(envMap, sampleDirection, mipInt);\n\t\t}\n\t}\n\tgl_FragColor = linearToOutputTexel(gl_FragColor);\n}\n\t\t",
+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)}});ue.prototype=Object.create(D.prototype);ue.prototype.constructor=ue;ue.prototype.isImmediateRenderObject=!0;var ij=new n;kd.prototype=Object.create(D.prototype);kd.prototype.constructor=kd;kd.prototype.dispose=function(){this.cone.geometry.dispose();this.cone.material.dispose()};kd.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 Rb=new n,Xf=new O,vh=new O;sc.prototype=Object.create(ma.prototype);sc.prototype.constructor=sc;sc.prototype.isSkeletonHelper=!0;sc.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&&(Xf.multiplyMatrices(vh,g.matrixWorld),Rb.setFromMatrixPosition(Xf),d.setXYZ(f,Rb.x,Rb.y,Rb.z),Xf.multiplyMatrices(vh,g.parent.matrixWorld),Rb.setFromMatrixPosition(Xf),d.setXYZ(f+1,Rb.x,Rb.y,Rb.z),f+=2)}c.getAttribute("position").needsUpdate=!0;D.prototype.updateMatrixWorld.call(this,a)};ld.prototype=Object.create(ca.prototype);ld.prototype.constructor=ld;ld.prototype.dispose=
+function(){this.geometry.dispose();this.material.dispose()};ld.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 B,kj=new B;md.prototype=Object.create(D.prototype);md.prototype.constructor=md;md.prototype.dispose=function(){this.children[0].geometry.dispose();this.children[0].material.dispose()};md.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,Yf=new n,mj=new n;nd.prototype=Object.create(D.prototype);nd.prototype.constructor=nd;nd.prototype.dispose=function(){this.lightPlane.geometry.dispose();this.lightPlane.material.dispose();this.targetLine.geometry.dispose();this.targetLine.material.dispose()};nd.prototype.update=function(){lj.setFromMatrixPosition(this.light.matrixWorld);Yf.setFromMatrixPosition(this.light.target.matrixWorld);mj.subVectors(Yf,lj);this.lightPlane.lookAt(Yf);
+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(Yf);this.targetLine.scale.z=mj.length()};var yf=new n,R=new eb;ve.prototype=Object.create(ma.prototype);ve.prototype.constructor=ve;ve.prototype.update=function(){var a=this.geometry,b=this.pointMap;R.projectionMatrixInverse.copy(this.camera.projectionMatrixInverse);
+na("c",b,a,R,0,0,-1);na("t",b,a,R,0,0,1);na("n1",b,a,R,-1,-1,-1);na("n2",b,a,R,1,-1,-1);na("n3",b,a,R,-1,1,-1);na("n4",b,a,R,1,1,-1);na("f1",b,a,R,-1,-1,1);na("f2",b,a,R,1,-1,1);na("f3",b,a,R,-1,1,1);na("f4",b,a,R,1,1,1);na("u1",b,a,R,.7,1.1,-1);na("u2",b,a,R,-.7,1.1,-1);na("u3",b,a,R,0,2,-1);na("cf1",b,a,R,-1,0,1);na("cf2",b,a,R,1,0,1);na("cf3",b,a,R,0,-1,1);na("cf4",b,a,R,0,1,1);na("cn1",b,a,R,-1,0,-1);na("cn2",b,a,R,1,0,-1);na("cn3",b,a,R,0,-1,-1);na("cn4",b,a,R,0,1,-1);a.getAttribute("position").needsUpdate=
+!0};var Zf=new Ta;xb.prototype=Object.create(ma.prototype);xb.prototype.constructor=xb;xb.prototype.update=function(a){void 0!==a&&console.warn("THREE.BoxHelper: .update() has no longer arguments.");void 0!==this.object&&Zf.setFromObject(this.object);if(!Zf.isEmpty()){a=Zf.min;var b=Zf.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()}};xb.prototype.setFromObject=function(a){this.object=a;this.update();return this};xb.prototype.copy=function(a){ma.prototype.copy.call(this,a);this.object=a.object;return this};xb.prototype.clone=function(){return(new this.constructor).copy(this)};we.prototype=Object.create(ma.prototype);we.prototype.constructor=we;we.prototype.updateMatrixWorld=function(a){var b=this.box;b.isEmpty()||
+(b.getCenter(this.position),b.getSize(this.scale),this.scale.multiplyScalar(.5),D.prototype.updateMatrixWorld.call(this,a))};xe.prototype=Object.create(La.prototype);xe.prototype.constructor=xe;xe.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);D.prototype.updateMatrixWorld.call(this,a)};var nj=new n,zf,Tg;yb.prototype=Object.create(D.prototype);
+yb.prototype.constructor=yb;yb.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)))};yb.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()};yb.prototype.setColor=function(a){this.line.material.color.set(a);
+this.cone.material.color.set(a)};yb.prototype.copy=function(a){D.prototype.copy.call(this,a,!1);this.line.copy(a.line);this.cone.copy(a.cone);return this};yb.prototype.clone=function(){return(new this.constructor).copy(this)};ye.prototype=Object.create(ma.prototype);ye.prototype.constructor=ye;var lb=Math.pow(2,8),oj=[.125,.215,.35,.446,.526,.582],yi=5+oj.length,mb={3E3:0,3001:1,3002:2,3004:3,3005:4,3006:5,3007:6},Xg=new id,Af=function(a){var b=new Float32Array(a),c=new n(0,1,0);a=new vb({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:mb[3E3]},outputEncoding:{value:mb[3E3]}},vertexShader:Zg(),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"+$g()+
+"\n\n#define ENVMAP_TYPE_CUBE_UV\n#include <cube_uv_reflection_fragment>\n\nvoid main() {\n\tgl_FragColor = vec4(0.0);\n\tfor (int i = 0; i < n; i++) {\n\t\tif (i >= samples)\n\t\t\tbreak;\n\t\tfor (int dir = -1; dir < 2; dir += 2) {\n\t\t\tif (i == 0 && dir == 1)\n\t\t\t\tcontinue;\n\t\t\tvec3 axis = latitudinal ? poleAxis : cross(poleAxis, vOutputDirection);\n\t\t\tif (all(equal(axis, vec3(0.0))))\n\t\t\t\taxis = cross(vec3(0.0, 1.0, 0.0), vOutputDirection);\n\t\t\taxis = normalize(axis);\n\t\t\tfloat theta = dTheta * float(dir * i);\n\t\t\tfloat cosTheta = cos(theta);\n\t\t\t// Rodrigues' axis-angle rotation\n\t\t\tvec3 sampleDirection = vOutputDirection * cosTheta\n\t\t\t\t\t+ cross(axis, vOutputDirection) * sin(theta)\n\t\t\t\t\t+ axis * dot(axis, vOutputDirection) * (1.0 - cosTheta);\n\t\t\tgl_FragColor.rgb +=\n\t\t\t\t\tweights[i] * bilinearCubeUV(envMap, sampleDirection, mipInt);\n\t\t}\n\t}\n\tgl_FragColor = linearToOutputTexel(gl_FragColor);\n}\n\t\t",
 blending:0,depthTest:!1,depthWrite:!1});a.type="SphericalGaussianBlur";return a}(20),Sb=null,Tb=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 l=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);l.set([m,
 blending:0,depthTest:!1,depthWrite:!1});a.type="SphericalGaussianBlur";return a}(20),Sb=null,Tb=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 l=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);l.set([m,
-m,m,m,m,m],6*m)}h=new A;h.setAttribute("position",new M(f,3));h.setAttribute("uv",new M(g,2));h.setAttribute("faceIndex",new M(l,1));a.push(h);4<d&&d--}return{_lodPlanes:a,_sizeLods:b,_sigmas:c}}(),ze=wh._lodPlanes,Ci=wh._sizeLods,Cf=wh._sigmas,Bf=null,Y=null,Wg=null,Ac=(1+Math.sqrt(5))/2,Bd=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,Bd),new n(0,Ac,-Bd),new n(Bd,0,Ac),new n(-Bd,0,Ac),new n(Ac,Bd,0),new n(-Ac,Bd,0)];Ug.prototype={constructor:Ug,fromScene:function(a,
+m,m,m,m,m],6*m)}h=new A;h.setAttribute("position",new M(f,3));h.setAttribute("uv",new M(g,2));h.setAttribute("faceIndex",new M(l,1));a.push(h);4<d&&d--}return{_lodPlanes:a,_sizeLods:b,_sigmas:c}}(),ze=wh._lodPlanes,Ci=wh._sizeLods,Cf=wh._sigmas,Bf=null,Y=null,Wg=null,Bc=(1+Math.sqrt(5))/2,Bd=1/Bc,Ai=[new n(1,1,1),new n(-1,1,1),new n(1,1,-1),new n(-1,1,-1),new n(0,Bc,Bd),new n(0,Bc,-Bd),new n(Bd,0,Bc),new n(-Bd,0,Bc),new n(Bc,Bd,0),new n(-Bc,Bd,0)];Ug.prototype={constructor:Ug,fromScene:function(a,
 b,c,d){void 0===b&&(b=0);void 0===c&&(c=.1);void 0===d&&(d=100);Wg=Y.getRenderTarget();var e=ui();c=new da(90,1,c,d);d=[1,1,1,1,-1,1];var f=[1,1,-1,-1,-1,1],g=Y.outputEncoding,h=Y.toneMapping,l=Y.toneMappingExposure,m=Y.getClearColor(),n=Y.getClearAlpha();Y.toneMapping=1;Y.toneMappingExposure=1;Y.outputEncoding=3E3;a.scale.z*=-1;var p=a.background;if(p&&p.isColor){p.convertSRGBToLinear();var q=Math.min(Math.max(Math.ceil(Math.log2(Math.max(p.r,p.g,p.b))),-128),127);p=p.multiplyScalar(Math.pow(2,-q));
 b,c,d){void 0===b&&(b=0);void 0===c&&(c=.1);void 0===d&&(d=100);Wg=Y.getRenderTarget();var e=ui();c=new da(90,1,c,d);d=[1,1,1,1,-1,1];var f=[1,1,-1,-1,-1,1],g=Y.outputEncoding,h=Y.toneMapping,l=Y.toneMappingExposure,m=Y.getClearColor(),n=Y.getClearAlpha();Y.toneMapping=1;Y.toneMappingExposure=1;Y.outputEncoding=3E3;a.scale.z*=-1;var p=a.background;if(p&&p.isColor){p.convertSRGBToLinear();var q=Math.min(Math.max(Math.ceil(Math.log2(Math.max(p.r,p.g,p.b))),-128),127);p=p.multiplyScalar(Math.pow(2,-q));
 Y.setClearColor(p,(q+128)/255);a.background=null}for(p=0;6>p;p++)q=p%3,0==q?(c.up.set(0,d[p],0),c.lookAt(f[p],0,0)):1==q?(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])),Yg(e,q*lb,2<p?lb:0,lb,lb),Y.setRenderTarget(e),Y.render(a,c);Y.toneMapping=h;Y.toneMappingExposure=l;Y.outputEncoding=g;Y.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)},
 Y.setClearColor(p,(q+128)/255);a.background=null}for(p=0;6>p;p++)q=p%3,0==q?(c.up.set(0,d[p],0),c.lookAt(f[p],0,0)):1==q?(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])),Yg(e,q*lb,2<p?lb:0,lb,lb),Y.setRenderTarget(e),Y.render(a,c);Y.toneMapping=h;Y.toneMappingExposure=l;Y.outputEncoding=g;Y.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){Wg=Y.getRenderTarget();var b=ui(a),c=new pb;a.isCubeTexture?null==Tb&&(Tb=Ei()):null==Sb&&(Sb=Di());var d=a.isCubeTexture?Tb:Sb;c.add(new ca(ze[0],d));d=d.uniforms;d.envMap.value=a;a.isCubeTexture||d.texelSize.value.set(1/a.image.width,1/a.image.height);d.inputEncoding.value=mb[a.encoding];d.outputEncoding.value=mb[a.encoding];Yg(b,0,0,3*lb,2*lb);Y.setRenderTarget(b);Y.render(c,Xg);xi(b);wi(b);return b},compileCubemapShader:function(){null==Tb&&(Tb=Ei(),Vg(Tb))},compileEquirectangularShader:function(){null==
 fromCubemap:function(a){Wg=Y.getRenderTarget();var b=ui(a),c=new pb;a.isCubeTexture?null==Tb&&(Tb=Ei()):null==Sb&&(Sb=Di());var d=a.isCubeTexture?Tb:Sb;c.add(new ca(ze[0],d));d=d.uniforms;d.envMap.value=a;a.isCubeTexture||d.texelSize.value.set(1/a.image.width,1/a.image.height);d.inputEncoding.value=mb[a.encoding];d.outputEncoding.value=mb[a.encoding];Yg(b,0,0,3*lb,2*lb);Y.setRenderTarget(b);Y.render(c,Xg);xi(b);wi(b);return b},compileCubemapShader:function(){null==Tb&&(Tb=Ei(),Vg(Tb))},compileEquirectangularShader:function(){null==
 Sb&&(Sb=Di(),Vg(Sb))},dispose:function(){Af.dispose();null!=Tb&&Tb.dispose();null!=Sb&&Sb.dispose();for(var a=0;a<ze.length;a++)ze[a].dispose()}};I.create=function(a,b){console.log("THREE.Curve.create() has been deprecated");a.prototype=Object.create(I.prototype);a.prototype.constructor=a;a.prototype.getPoint=b;return a};Object.assign(wb.prototype,{createPointsGeometry:function(a){console.warn("THREE.CurvePath: .createPointsGeometry() has been removed. Use new THREE.Geometry().setFromPoints( points ) instead.");
 Sb&&(Sb=Di(),Vg(Sb))},dispose:function(){Af.dispose();null!=Tb&&Tb.dispose();null!=Sb&&Sb.dispose();for(var a=0;a<ze.length;a++)ze[a].dispose()}};I.create=function(a,b){console.log("THREE.Curve.create() has been deprecated");a.prototype=Object.create(I.prototype);a.prototype.constructor=a;a.prototype.getPoint=b;return a};Object.assign(wb.prototype,{createPointsGeometry:function(a){console.warn("THREE.CurvePath: .createPointsGeometry() has been removed. Use new THREE.Geometry().setFromPoints( points ) instead.");
 a=this.getPoints(a);return this.createGeometry(a)},createSpacedPointsGeometry:function(a){console.warn("THREE.CurvePath: .createSpacedPointsGeometry() has been removed. Use new THREE.Geometry().setFromPoints( points ) instead.");a=this.getSpacedPoints(a);return this.createGeometry(a)},createGeometry:function(a){console.warn("THREE.CurvePath: .createGeometry() has been removed. Use new THREE.Geometry().setFromPoints( points ) instead.");for(var b=new L,c=0,d=a.length;c<d;c++){var e=a[c];b.vertices.push(new n(e.x,
 a=this.getPoints(a);return this.createGeometry(a)},createSpacedPointsGeometry:function(a){console.warn("THREE.CurvePath: .createSpacedPointsGeometry() has been removed. Use new THREE.Geometry().setFromPoints( points ) instead.");a=this.getSpacedPoints(a);return this.createGeometry(a)},createGeometry:function(a){console.warn("THREE.CurvePath: .createGeometry() has been removed. Use new THREE.Geometry().setFromPoints( points ) instead.");for(var b=new L,c=0,d=a.length;c<d;c++){var e=a[c];b.vertices.push(new n(e.x,
 e.y,e.z||0))}return b}});Object.assign(ab.prototype,{fromPoints:function(a){console.warn("THREE.Path: .fromPoints() has been renamed to .setFromPoints().");return this.setFromPoints(a)}});Fi.prototype=Object.create(Aa.prototype);Gi.prototype=Object.create(Aa.prototype);ah.prototype=Object.create(Aa.prototype);Object.assign(ah.prototype,{initFromArray:function(){console.error("THREE.Spline: .initFromArray() has been removed.")},getControlPointsArray:function(){console.error("THREE.Spline: .getControlPointsArray() has been removed.")},
 e.y,e.z||0))}return b}});Object.assign(ab.prototype,{fromPoints:function(a){console.warn("THREE.Path: .fromPoints() has been renamed to .setFromPoints().");return this.setFromPoints(a)}});Fi.prototype=Object.create(Aa.prototype);Gi.prototype=Object.create(Aa.prototype);ah.prototype=Object.create(Aa.prototype);Object.assign(ah.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.")};kd.prototype.update=function(){console.error("THREE.SkeletonHelper: update() no longer needs to be called.")};Object.assign(V.prototype,{extractUrlBase:function(a){console.warn("THREE.Loader: .extractUrlBase() has been deprecated. Use THREE.LoaderUtils.extractUrlBase() instead.");
+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.")};sc.prototype.update=function(){console.error("THREE.SkeletonHelper: update() no longer needs to be called.")};Object.assign(V.prototype,{extractUrlBase:function(a){console.warn("THREE.Loader: .extractUrlBase() has been deprecated. Use THREE.LoaderUtils.extractUrlBase() instead.");
 return th.extractUrlBase(a)}});V.Handlers={add:function(){console.error("THREE.Loader: Handlers.add() has been removed. Use LoadingManager.addHandler() instead.")},get:function(){console.error("THREE.Loader: Handlers.get() has been removed. Use LoadingManager.getHandler() instead.")}};Object.assign(sf.prototype,{setTexturePath:function(a){console.warn("THREE.ObjectLoader: .setTexturePath() has been renamed to .setResourcePath().");return this.setResourcePath(a)}});Object.assign(Rg.prototype,{center:function(a){console.warn("THREE.Box2: .center() has been renamed to .getCenter().");
 return th.extractUrlBase(a)}});V.Handlers={add:function(){console.error("THREE.Loader: Handlers.add() has been removed. Use LoadingManager.addHandler() instead.")},get:function(){console.error("THREE.Loader: Handlers.get() has been removed. Use LoadingManager.getHandler() instead.")}};Object.assign(sf.prototype,{setTexturePath:function(a){console.warn("THREE.ObjectLoader: .setTexturePath() has been renamed to .setResourcePath().");return this.setResourcePath(a)}});Object.assign(Rg.prototype,{center:function(a){console.warn("THREE.Box2: .center() has been renamed to .getCenter().");
 return this.getCenter(a)},empty:function(){console.warn("THREE.Box2: .empty() has been renamed to .isEmpty().");return this.isEmpty()},isIntersectionBox:function(a){console.warn("THREE.Box2: .isIntersectionBox() has been renamed to .intersectsBox().");return this.intersectsBox(a)},size:function(a){console.warn("THREE.Box2: .size() has been renamed to .getSize().");return this.getSize(a)}});Object.assign(Ta.prototype,{center:function(a){console.warn("THREE.Box3: .center() has been renamed to .getCenter().");
 return this.getCenter(a)},empty:function(){console.warn("THREE.Box2: .empty() has been renamed to .isEmpty().");return this.isEmpty()},isIntersectionBox:function(a){console.warn("THREE.Box2: .isIntersectionBox() has been renamed to .intersectsBox().");return this.intersectsBox(a)},size:function(a){console.warn("THREE.Box2: .size() has been renamed to .getSize().");return this.getSize(a)}});Object.assign(Ta.prototype,{center:function(a){console.warn("THREE.Box3: .center() has been renamed to .getCenter().");
 return this.getCenter(a)},empty:function(){console.warn("THREE.Box3: .empty() has been renamed to .isEmpty().");return this.isEmpty()},isIntersectionBox:function(a){console.warn("THREE.Box3: .isIntersectionBox() has been renamed to .intersectsBox().");return this.intersectsBox(a)},isIntersectionSphere:function(a){console.warn("THREE.Box3: .isIntersectionSphere() has been renamed to .intersectsSphere().");return this.intersectsSphere(a)},size:function(a){console.warn("THREE.Box3: .size() has been renamed to .getSize().");
 return this.getCenter(a)},empty:function(){console.warn("THREE.Box3: .empty() has been renamed to .isEmpty().");return this.isEmpty()},isIntersectionBox:function(a){console.warn("THREE.Box3: .isIntersectionBox() has been renamed to .intersectsBox().");return this.intersectsBox(a)},isIntersectionSphere:function(a){console.warn("THREE.Box3: .isIntersectionSphere() has been renamed to .intersectsSphere().");return this.intersectsSphere(a)},size:function(a){console.warn("THREE.Box3: .size() has been renamed to .getSize().");
-return this.getSize(a)}});Hc.prototype.setFromMatrix=function(a){console.warn("THREE.Frustum: .setFromMatrix() has been renamed to .setFromProjectionMatrix().");return this.setFromProjectionMatrix(a)};Sg.prototype.center=function(a){console.warn("THREE.Line3: .center() has been renamed to .getCenter().");return this.getCenter(a)};Object.assign(P,{random16:function(){console.warn("THREE.Math: .random16() has been deprecated. Use Math.random() instead.");return Math.random()},nearestPowerOfTwo:function(a){console.warn("THREE.Math: .nearestPowerOfTwo() has been renamed to .floorPowerOfTwo().");
+return this.getSize(a)}});Ic.prototype.setFromMatrix=function(a){console.warn("THREE.Frustum: .setFromMatrix() has been renamed to .setFromProjectionMatrix().");return this.setFromProjectionMatrix(a)};Sg.prototype.center=function(a){console.warn("THREE.Line3: .center() has been renamed to .getCenter().");return this.getCenter(a)};Object.assign(P,{random16:function(){console.warn("THREE.Math: .random16() has been deprecated. Use Math.random() instead.");return Math.random()},nearestPowerOfTwo:function(a){console.warn("THREE.Math: .nearestPowerOfTwo() has been renamed to .floorPowerOfTwo().");
 return P.floorPowerOfTwo(a)},nextPowerOfTwo:function(a){console.warn("THREE.Math: .nextPowerOfTwo() has been renamed to .ceilPowerOfTwo().");return P.ceilPowerOfTwo(a)}});Object.assign(za.prototype,{flattenToArrayOffset:function(a,b){console.warn("THREE.Matrix3: .flattenToArrayOffset() has been deprecated. Use .toArray() instead.");return this.toArray(a,b)},multiplyVector3:function(a){console.warn("THREE.Matrix3: .multiplyVector3() has been removed. Use vector.applyMatrix3( matrix ) instead.");return a.applyMatrix3(this)},
 return P.floorPowerOfTwo(a)},nextPowerOfTwo:function(a){console.warn("THREE.Math: .nextPowerOfTwo() has been renamed to .ceilPowerOfTwo().");return P.ceilPowerOfTwo(a)}});Object.assign(za.prototype,{flattenToArrayOffset:function(a,b){console.warn("THREE.Matrix3: .flattenToArrayOffset() has been deprecated. Use .toArray() instead.");return this.toArray(a,b)},multiplyVector3:function(a){console.warn("THREE.Matrix3: .multiplyVector3() has been removed. Use vector.applyMatrix3( matrix ) instead.");return a.applyMatrix3(this)},
 multiplyVector3Array:function(){console.error("THREE.Matrix3: .multiplyVector3Array() has been removed.")},applyToBufferAttribute:function(a){console.warn("THREE.Matrix3: .applyToBufferAttribute() has been removed. Use attribute.applyMatrix3( matrix ) instead.");return a.applyMatrix3(this)},applyToVector3Array:function(){console.error("THREE.Matrix3: .applyToVector3Array() has been removed.")}});Object.assign(O.prototype,{extractPosition:function(a){console.warn("THREE.Matrix4: .extractPosition() has been renamed to .copyPosition().");
 multiplyVector3Array:function(){console.error("THREE.Matrix3: .multiplyVector3Array() has been removed.")},applyToBufferAttribute:function(a){console.warn("THREE.Matrix3: .applyToBufferAttribute() has been removed. Use attribute.applyMatrix3( matrix ) instead.");return a.applyMatrix3(this)},applyToVector3Array:function(){console.error("THREE.Matrix3: .applyToVector3Array() has been removed.")}});Object.assign(O.prototype,{extractPosition:function(a){console.warn("THREE.Matrix4: .extractPosition() has been renamed to .copyPosition().");
 return this.copyPosition(a)},flattenToArrayOffset:function(a,b){console.warn("THREE.Matrix4: .flattenToArrayOffset() has been deprecated. Use .toArray() instead.");return this.toArray(a,b)},getPosition:function(){console.warn("THREE.Matrix4: .getPosition() has been removed. Use Vector3.setFromMatrixPosition( matrix ) instead.");return(new n).setFromMatrixColumn(this,3)},setRotationFromQuaternion:function(a){console.warn("THREE.Matrix4: .setRotationFromQuaternion() has been renamed to .makeRotationFromQuaternion().");
 return this.copyPosition(a)},flattenToArrayOffset:function(a,b){console.warn("THREE.Matrix4: .flattenToArrayOffset() has been deprecated. Use .toArray() instead.");return this.toArray(a,b)},getPosition:function(){console.warn("THREE.Matrix4: .getPosition() has been removed. Use Vector3.setFromMatrixPosition( matrix ) instead.");return(new n).setFromMatrixColumn(this,3)},setRotationFromQuaternion:function(a){console.warn("THREE.Matrix4: .setRotationFromQuaternion() has been renamed to .makeRotationFromQuaternion().");
@@ -1003,34 +1005,34 @@ return this.texture.wrapS},set:function(a){console.warn("THREE.WebGLRenderTarget
 set:function(a){console.warn("THREE.WebGLRenderTarget: .magFilter is now .texture.magFilter.");this.texture.magFilter=a}},minFilter:{get:function(){console.warn("THREE.WebGLRenderTarget: .minFilter is now .texture.minFilter.");return this.texture.minFilter},set:function(a){console.warn("THREE.WebGLRenderTarget: .minFilter is now .texture.minFilter.");this.texture.minFilter=a}},anisotropy:{get:function(){console.warn("THREE.WebGLRenderTarget: .anisotropy is now .texture.anisotropy.");return this.texture.anisotropy},
 set:function(a){console.warn("THREE.WebGLRenderTarget: .magFilter is now .texture.magFilter.");this.texture.magFilter=a}},minFilter:{get:function(){console.warn("THREE.WebGLRenderTarget: .minFilter is now .texture.minFilter.");return this.texture.minFilter},set:function(a){console.warn("THREE.WebGLRenderTarget: .minFilter is now .texture.minFilter.");this.texture.minFilter=a}},anisotropy:{get:function(){console.warn("THREE.WebGLRenderTarget: .anisotropy is now .texture.anisotropy.");return this.texture.anisotropy},
 set:function(a){console.warn("THREE.WebGLRenderTarget: .anisotropy is now .texture.anisotropy.");this.texture.anisotropy=a}},offset:{get:function(){console.warn("THREE.WebGLRenderTarget: .offset is now .texture.offset.");return this.texture.offset},set:function(a){console.warn("THREE.WebGLRenderTarget: .offset is now .texture.offset.");this.texture.offset=a}},repeat:{get:function(){console.warn("THREE.WebGLRenderTarget: .repeat is now .texture.repeat.");return this.texture.repeat},set:function(a){console.warn("THREE.WebGLRenderTarget: .repeat is now .texture.repeat.");
 set:function(a){console.warn("THREE.WebGLRenderTarget: .anisotropy is now .texture.anisotropy.");this.texture.anisotropy=a}},offset:{get:function(){console.warn("THREE.WebGLRenderTarget: .offset is now .texture.offset.");return this.texture.offset},set:function(a){console.warn("THREE.WebGLRenderTarget: .offset is now .texture.offset.");this.texture.offset=a}},repeat:{get:function(){console.warn("THREE.WebGLRenderTarget: .repeat is now .texture.repeat.");return this.texture.repeat},set:function(a){console.warn("THREE.WebGLRenderTarget: .repeat is now .texture.repeat.");
 this.texture.repeat=a}},format:{get:function(){console.warn("THREE.WebGLRenderTarget: .format is now .texture.format.");return this.texture.format},set:function(a){console.warn("THREE.WebGLRenderTarget: .format is now .texture.format.");this.texture.format=a}},type:{get:function(){console.warn("THREE.WebGLRenderTarget: .type is now .texture.type.");return this.texture.type},set:function(a){console.warn("THREE.WebGLRenderTarget: .type is now .texture.type.");this.texture.type=a}},generateMipmaps:{get:function(){console.warn("THREE.WebGLRenderTarget: .generateMipmaps is now .texture.generateMipmaps.");
 this.texture.repeat=a}},format:{get:function(){console.warn("THREE.WebGLRenderTarget: .format is now .texture.format.");return this.texture.format},set:function(a){console.warn("THREE.WebGLRenderTarget: .format is now .texture.format.");this.texture.format=a}},type:{get:function(){console.warn("THREE.WebGLRenderTarget: .type is now .texture.type.");return this.texture.type},set:function(a){console.warn("THREE.WebGLRenderTarget: .type is now .texture.type.");this.texture.type=a}},generateMipmaps:{get:function(){console.warn("THREE.WebGLRenderTarget: .generateMipmaps is now .texture.generateMipmaps.");
-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 ).")}}});Mg.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)};Mb.crossOrigin=void 0;Mb.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};
+return this.texture.generateMipmaps},set:function(a){console.warn("THREE.WebGLRenderTarget: .generateMipmaps is now .texture.generateMipmaps.");this.texture.generateMipmaps=a}}});Object.defineProperties(jd.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 ).")}}});Mg.prototype.getData=
+function(){console.warn("THREE.AudioAnalyser: .getData() is now .getFrequencyData().");return this.getFrequencyData()};Hc.prototype.updateCubeMap=function(a,b){console.warn("THREE.CubeCamera: .updateCubeMap() is now .update().");return this.update(a,b)};Mb.crossOrigin=void 0;Mb.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};
 Mb.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};Mb.loadCompressedTexture=function(){console.error("THREE.ImageUtils.loadCompressedTexture has been removed. Use THREE.DDSLoader instead.")};Mb.loadCompressedTextureCube=function(){console.error("THREE.ImageUtils.loadCompressedTextureCube has been removed. Use THREE.DDSLoader instead.")};
 Mb.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};Mb.loadCompressedTexture=function(){console.error("THREE.ImageUtils.loadCompressedTexture has been removed. Use THREE.DDSLoader instead.")};Mb.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:"114dev"}}));h.ACESFilmicToneMapping=5;h.AddEquation=100;h.AddOperation=2;h.AdditiveBlending=2;h.AlphaFormat=1021;h.AlwaysDepth=1;h.AlwaysStencilFunc=519;h.AmbientLight=mf;h.AmbientLightProbe=Hg;h.AnimationClip=Ra;h.AnimationLoader=yg;h.AnimationMixer=Og;h.AnimationObjectGroup=ni;h.AnimationUtils=ea;h.ArcCurve=gd;h.ArrayCamera=Qe;h.ArrowHelper=yb;h.Audio=id;h.AudioAnalyser=Mg;h.AudioContext=
+"undefined"!==typeof __THREE_DEVTOOLS__&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("register",{detail:{revision:"114dev"}}));h.ACESFilmicToneMapping=5;h.AddEquation=100;h.AddOperation=2;h.AdditiveBlending=2;h.AlphaFormat=1021;h.AlwaysDepth=1;h.AlwaysStencilFunc=519;h.AmbientLight=mf;h.AmbientLightProbe=Hg;h.AnimationClip=Ra;h.AnimationLoader=yg;h.AnimationMixer=Og;h.AnimationObjectGroup=ni;h.AnimationUtils=ea;h.ArcCurve=hd;h.ArrayCamera=Qe;h.ArrowHelper=yb;h.Audio=jd;h.AudioAnalyser=Mg;h.AudioContext=
 Kg;h.AudioListener=Jg;h.AudioLoader=tf;h.AxesHelper=ye;h.AxisHelper=function(a){console.warn("THREE.AxisHelper has been renamed to THREE.AxesHelper.");return new ye(a)};h.BackSide=1;h.BasicDepthPacking=3200;h.BasicShadowMap=0;h.BinaryTextureLoader=function(a){console.warn("THREE.BinaryTextureLoader has been renamed to THREE.DataTextureLoader.");return new cf(a)};h.Bone=rg;h.BooleanKeyframeTrack=Ze;h.BoundingBoxHelper=function(a,b){console.warn("THREE.BoundingBoxHelper has been deprecated. Creating a THREE.BoxHelper instead.");
 Kg;h.AudioListener=Jg;h.AudioLoader=tf;h.AxesHelper=ye;h.AxisHelper=function(a){console.warn("THREE.AxisHelper has been renamed to THREE.AxesHelper.");return new ye(a)};h.BackSide=1;h.BasicDepthPacking=3200;h.BasicShadowMap=0;h.BinaryTextureLoader=function(a){console.warn("THREE.BinaryTextureLoader has been renamed to THREE.DataTextureLoader.");return new cf(a)};h.Bone=rg;h.BooleanKeyframeTrack=Ze;h.BoundingBoxHelper=function(a,b){console.warn("THREE.BoundingBoxHelper has been deprecated. Creating a THREE.BoxHelper instead.");
-return new xb(a,b)};h.Box2=Rg;h.Box3=Ta;h.Box3Helper=we;h.BoxBufferGeometry=Kd;h.BoxGeometry=nh;h.BoxHelper=xb;h.BufferAttribute=M;h.BufferGeometry=A;h.BufferGeometryLoader=rf;h.ByteType=1010;h.Cache=vc;h.Camera=eb;h.CameraHelper=ve;h.CanvasRenderer=function(){console.error("THREE.CanvasRenderer has been removed")};h.CanvasTexture=Vd;h.CatmullRomCurve3=Aa;h.CineonToneMapping=4;h.CircleBufferGeometry=cd;h.CircleGeometry=pe;h.ClampToEdgeWrapping=1001;h.Clock=Ig;h.ClosedSplineCurve3=Fi;h.Color=B;h.ColorKeyframeTrack=
-$e;h.CompressedTexture=Qc;h.CompressedTextureLoader=zg;h.ConeBufferGeometry=oe;h.ConeGeometry=ne;h.CubeCamera=Gc;h.CubeGeometry=nh;h.CubeReflectionMapping=301;h.CubeRefractionMapping=302;h.CubeTexture=rb;h.CubeTextureLoader=df;h.CubeUVReflectionMapping=306;h.CubeUVRefractionMapping=307;h.CubicBezierCurve=Xa;h.CubicBezierCurve3=ib;h.CubicInterpolant=Xe;h.CullFaceBack=1;h.CullFaceFront=2;h.CullFaceFrontBack=3;h.CullFaceNone=0;h.Curve=I;h.CurvePath=wb;h.CustomBlending=5;h.CylinderBufferGeometry=ub;h.CylinderGeometry=
-kc;h.Cylindrical=si;h.DataTexture=bc;h.DataTexture2DArray=Ic;h.DataTexture3D=Jc;h.DataTextureLoader=cf;h.DecrementStencilOp=7683;h.DecrementWrapStencilOp=34056;h.DefaultLoadingManager=ji;h.DepthFormat=1026;h.DepthStencilFormat=1027;h.DepthTexture=Wd;h.DirectionalLight=lf;h.DirectionalLightHelper=nd;h.DirectionalLightShadow=kf;h.DiscreteInterpolant=Ye;h.DodecahedronBufferGeometry=Vc;h.DodecahedronGeometry=be;h.DoubleSide=2;h.DstAlphaFactor=206;h.DstColorFactor=208;h.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)};h.DynamicCopyUsage=35050;h.DynamicDrawUsage=35048;h.DynamicReadUsage=35049;h.EdgesGeometry=bd;h.EdgesHelper=function(a,b){console.warn("THREE.EdgesHelper has been removed. Use THREE.EdgesGeometry instead.");return new ma(new bd(a.geometry),new ka({color:void 0!==b?b:16777215}))};h.EllipseCurve=Na;h.EqualDepth=4;h.EqualStencilFunc=
-514;h.EquirectangularReflectionMapping=303;h.EquirectangularRefractionMapping=304;h.Euler=Ub;h.EventDispatcher=Fa;h.ExtrudeBufferGeometry=gb;h.ExtrudeGeometry=gc;h.Face3=Bc;h.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)};h.FaceColors=1;h.FileLoader=Sa;h.FlatShading=1;h.Float32Attribute=function(a,b){console.warn("THREE.Float32Attribute has been removed. Use new THREE.Float32BufferAttribute() instead.");
-return new E(a,b)};h.Float32BufferAttribute=E;h.Float64Attribute=function(a,b){console.warn("THREE.Float64Attribute has been removed. Use new THREE.Float64BufferAttribute() instead.");return new Hd(a,b)};h.Float64BufferAttribute=Hd;h.FloatType=1015;h.Fog=Se;h.FogExp2=Re;h.Font=Eg;h.FontLoader=Fg;h.FrontFaceDirectionCCW=1;h.FrontFaceDirectionCW=0;h.FrontSide=0;h.Frustum=Hc;h.GammaEncoding=3007;h.Geometry=L;h.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()}};h.GreaterDepth=6;h.GreaterEqualDepth=5;h.GreaterEqualStencilFunc=518;h.GreaterStencilFunc=516;h.GridHelper=wf;h.Group=Mc;h.HalfFloatType=1016;h.HemisphereLight=ff;h.HemisphereLightHelper=md;h.HemisphereLightProbe=Gg;h.IcosahedronBufferGeometry=Uc;h.IcosahedronGeometry=
-ae;h.ImageBitmapLoader=Cg;h.ImageLoader=fd;h.ImageUtils=Mb;h.ImmediateRenderObject=ue;h.IncrementStencilOp=7682;h.IncrementWrapStencilOp=34055;h.InstancedBufferAttribute=qf;h.InstancedBufferGeometry=pf;h.InstancedInterleavedBuffer=Pg;h.InstancedMesh=Ve;h.Int16Attribute=function(a,b){console.warn("THREE.Int16Attribute has been removed. Use new THREE.Int16BufferAttribute() instead.");return new Fd(a,b)};h.Int16BufferAttribute=Fd;h.Int32Attribute=function(a,b){console.warn("THREE.Int32Attribute has been removed. Use new THREE.Int32BufferAttribute() instead.");
+return new xb(a,b)};h.Box2=Rg;h.Box3=Ta;h.Box3Helper=we;h.BoxBufferGeometry=Kd;h.BoxGeometry=nh;h.BoxHelper=xb;h.BufferAttribute=M;h.BufferGeometry=A;h.BufferGeometryLoader=rf;h.ByteType=1010;h.Cache=wc;h.Camera=eb;h.CameraHelper=ve;h.CanvasRenderer=function(){console.error("THREE.CanvasRenderer has been removed")};h.CanvasTexture=Vd;h.CatmullRomCurve3=Aa;h.CineonToneMapping=4;h.CircleBufferGeometry=dd;h.CircleGeometry=pe;h.ClampToEdgeWrapping=1001;h.Clock=Ig;h.ClosedSplineCurve3=Fi;h.Color=B;h.ColorKeyframeTrack=
+$e;h.CompressedTexture=Rc;h.CompressedTextureLoader=zg;h.ConeBufferGeometry=oe;h.ConeGeometry=ne;h.CubeCamera=Hc;h.CubeGeometry=nh;h.CubeReflectionMapping=301;h.CubeRefractionMapping=302;h.CubeTexture=rb;h.CubeTextureLoader=df;h.CubeUVReflectionMapping=306;h.CubeUVRefractionMapping=307;h.CubicBezierCurve=Xa;h.CubicBezierCurve3=ib;h.CubicInterpolant=Xe;h.CullFaceBack=1;h.CullFaceFront=2;h.CullFaceFrontBack=3;h.CullFaceNone=0;h.Curve=I;h.CurvePath=wb;h.CustomBlending=5;h.CylinderBufferGeometry=ub;h.CylinderGeometry=
+kc;h.Cylindrical=si;h.DataTexture=bc;h.DataTexture2DArray=Jc;h.DataTexture3D=Kc;h.DataTextureLoader=cf;h.DecrementStencilOp=7683;h.DecrementWrapStencilOp=34056;h.DefaultLoadingManager=ji;h.DepthFormat=1026;h.DepthStencilFormat=1027;h.DepthTexture=Wd;h.DirectionalLight=lf;h.DirectionalLightHelper=nd;h.DirectionalLightShadow=kf;h.DiscreteInterpolant=Ye;h.DodecahedronBufferGeometry=Wc;h.DodecahedronGeometry=be;h.DoubleSide=2;h.DstAlphaFactor=206;h.DstColorFactor=208;h.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)};h.DynamicCopyUsage=35050;h.DynamicDrawUsage=35048;h.DynamicReadUsage=35049;h.EdgesGeometry=cd;h.EdgesHelper=function(a,b){console.warn("THREE.EdgesHelper has been removed. Use THREE.EdgesGeometry instead.");return new ma(new cd(a.geometry),new ka({color:void 0!==b?b:16777215}))};h.EllipseCurve=Na;h.EqualDepth=4;h.EqualStencilFunc=
+514;h.EquirectangularReflectionMapping=303;h.EquirectangularRefractionMapping=304;h.Euler=Ub;h.EventDispatcher=Fa;h.ExtrudeBufferGeometry=gb;h.ExtrudeGeometry=gc;h.Face3=Cc;h.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 Cc(a,b,c,e,f,g)};h.FaceColors=1;h.FileLoader=Sa;h.FlatShading=1;h.Float32Attribute=function(a,b){console.warn("THREE.Float32Attribute has been removed. Use new THREE.Float32BufferAttribute() instead.");
+return new E(a,b)};h.Float32BufferAttribute=E;h.Float64Attribute=function(a,b){console.warn("THREE.Float64Attribute has been removed. Use new THREE.Float64BufferAttribute() instead.");return new Hd(a,b)};h.Float64BufferAttribute=Hd;h.FloatType=1015;h.Fog=Se;h.FogExp2=Re;h.Font=Eg;h.FontLoader=Fg;h.FrontFaceDirectionCCW=1;h.FrontFaceDirectionCW=0;h.FrontSide=0;h.Frustum=Ic;h.GammaEncoding=3007;h.Geometry=L;h.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()}};h.GreaterDepth=6;h.GreaterEqualDepth=5;h.GreaterEqualStencilFunc=518;h.GreaterStencilFunc=516;h.GridHelper=wf;h.Group=Nc;h.HalfFloatType=1016;h.HemisphereLight=ff;h.HemisphereLightHelper=md;h.HemisphereLightProbe=Gg;h.IcosahedronBufferGeometry=Vc;h.IcosahedronGeometry=
+ae;h.ImageBitmapLoader=Cg;h.ImageLoader=gd;h.ImageUtils=Mb;h.ImmediateRenderObject=ue;h.IncrementStencilOp=7682;h.IncrementWrapStencilOp=34055;h.InstancedBufferAttribute=qf;h.InstancedBufferGeometry=pf;h.InstancedInterleavedBuffer=Pg;h.InstancedMesh=Ve;h.Int16Attribute=function(a,b){console.warn("THREE.Int16Attribute has been removed. Use new THREE.Int16BufferAttribute() instead.");return new Fd(a,b)};h.Int16BufferAttribute=Fd;h.Int32Attribute=function(a,b){console.warn("THREE.Int32Attribute has been removed. Use new THREE.Int32BufferAttribute() instead.");
 return new Gd(a,b)};h.Int32BufferAttribute=Gd;h.Int8Attribute=function(a,b){console.warn("THREE.Int8Attribute has been removed. Use new THREE.Int8BufferAttribute() instead.");return new Cd(a,b)};h.Int8BufferAttribute=Cd;h.IntType=1013;h.InterleavedBuffer=sb;h.InterleavedBufferAttribute=Qd;h.Interpolant=Ma;h.InterpolateDiscrete=2300;h.InterpolateLinear=2301;h.InterpolateSmooth=2302;h.InvertStencilOp=5386;h.JSONLoader=function(){console.error("THREE.JSONLoader has been removed.")};h.KeepStencilOp=7680;
 return new Gd(a,b)};h.Int32BufferAttribute=Gd;h.Int8Attribute=function(a,b){console.warn("THREE.Int8Attribute has been removed. Use new THREE.Int8BufferAttribute() instead.");return new Cd(a,b)};h.Int8BufferAttribute=Cd;h.IntType=1013;h.InterleavedBuffer=sb;h.InterleavedBufferAttribute=Qd;h.Interpolant=Ma;h.InterpolateDiscrete=2300;h.InterpolateLinear=2301;h.InterpolateSmooth=2302;h.InvertStencilOp=5386;h.JSONLoader=function(){console.error("THREE.JSONLoader has been removed.")};h.KeepStencilOp=7680;
-h.KeyframeTrack=ua;h.LOD=Td;h.LatheBufferGeometry=ad;h.LatheGeometry=me;h.Layers=ag;h.LensFlare=function(){console.error("THREE.LensFlare has been moved to /examples/js/objects/Lensflare.js")};h.LessDepth=2;h.LessEqualDepth=3;h.LessEqualStencilFunc=515;h.LessStencilFunc=513;h.Light=ba;h.LightProbe=bb;h.LightShadow=kb;h.Line=La;h.Line3=Sg;h.LineBasicMaterial=ka;h.LineCurve=Ea;h.LineCurve3=Ya;h.LineDashedMaterial=rc;h.LineLoop=We;h.LinePieces=1;h.LineSegments=ma;h.LineStrip=0;h.LinearEncoding=3E3;h.LinearFilter=
+h.KeyframeTrack=ua;h.LOD=Td;h.LatheBufferGeometry=bd;h.LatheGeometry=me;h.Layers=ag;h.LensFlare=function(){console.error("THREE.LensFlare has been moved to /examples/js/objects/Lensflare.js")};h.LessDepth=2;h.LessEqualDepth=3;h.LessEqualStencilFunc=515;h.LessStencilFunc=513;h.Light=ba;h.LightProbe=bb;h.LightShadow=kb;h.Line=La;h.Line3=Sg;h.LineBasicMaterial=ka;h.LineCurve=Ea;h.LineCurve3=Ya;h.LineDashedMaterial=rc;h.LineLoop=We;h.LinePieces=1;h.LineSegments=ma;h.LineStrip=0;h.LinearEncoding=3E3;h.LinearFilter=
 1006;h.LinearInterpolant=qe;h.LinearMipMapLinearFilter=1008;h.LinearMipMapNearestFilter=1007;h.LinearMipmapLinearFilter=1008;h.LinearMipmapNearestFilter=1007;h.LinearToneMapping=1;h.Loader=V;h.LoaderUtils=th;h.LoadingManager=xg;h.LogLuvEncoding=3003;h.LoopOnce=2200;h.LoopPingPong=2202;h.LoopRepeat=2201;h.LuminanceAlphaFormat=1025;h.LuminanceFormat=1024;h.MOUSE={LEFT:0,MIDDLE:1,RIGHT:2,ROTATE:0,DOLLY:1,PAN:2};h.Material=K;h.MaterialLoader=of;h.Math=P;h.MathUtils=P;h.Matrix3=za;h.Matrix4=O;h.MaxEquation=
 1006;h.LinearInterpolant=qe;h.LinearMipMapLinearFilter=1008;h.LinearMipMapNearestFilter=1007;h.LinearMipmapLinearFilter=1008;h.LinearMipmapNearestFilter=1007;h.LinearToneMapping=1;h.Loader=V;h.LoaderUtils=th;h.LoadingManager=xg;h.LogLuvEncoding=3003;h.LoopOnce=2200;h.LoopPingPong=2202;h.LoopRepeat=2201;h.LuminanceAlphaFormat=1025;h.LuminanceFormat=1024;h.MOUSE={LEFT:0,MIDDLE:1,RIGHT:2,ROTATE:0,DOLLY:1,PAN:2};h.Material=K;h.MaterialLoader=of;h.Math=P;h.MathUtils=P;h.Matrix3=za;h.Matrix4=O;h.MaxEquation=
 104;h.Mesh=ca;h.MeshBasicMaterial=Pa;h.MeshDepthMaterial=Gb;h.MeshDistanceMaterial=Hb;h.MeshFaceMaterial=function(a){console.warn("THREE.MeshFaceMaterial has been removed. Use an Array instead.");return a};h.MeshLambertMaterial=pc;h.MeshMatcapMaterial=qc;h.MeshNormalMaterial=oc;h.MeshPhongMaterial=Kb;h.MeshPhysicalMaterial=mc;h.MeshStandardMaterial=hb;h.MeshToonMaterial=nc;h.MinEquation=103;h.MirroredRepeatWrapping=1002;h.MixOperation=1;h.MultiMaterial=function(a){void 0===a&&(a=[]);console.warn("THREE.MultiMaterial has been removed. Use an Array instead.");
 104;h.Mesh=ca;h.MeshBasicMaterial=Pa;h.MeshDepthMaterial=Gb;h.MeshDistanceMaterial=Hb;h.MeshFaceMaterial=function(a){console.warn("THREE.MeshFaceMaterial has been removed. Use an Array instead.");return a};h.MeshLambertMaterial=pc;h.MeshMatcapMaterial=qc;h.MeshNormalMaterial=oc;h.MeshPhongMaterial=Kb;h.MeshPhysicalMaterial=mc;h.MeshStandardMaterial=hb;h.MeshToonMaterial=nc;h.MinEquation=103;h.MirroredRepeatWrapping=1002;h.MixOperation=1;h.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};h.MultiplyBlending=4;h.MultiplyOperation=0;h.NearestFilter=1003;h.NearestMipMapLinearFilter=1005;h.NearestMipMapNearestFilter=1004;h.NearestMipmapLinearFilter=1005;h.NearestMipmapNearestFilter=1004;h.NeverDepth=0;h.NeverStencilFunc=512;h.NoBlending=0;h.NoColors=0;h.NoToneMapping=0;h.NormalBlending=1;h.NotEqualDepth=7;h.NotEqualStencilFunc=517;h.NumberKeyframeTrack=dd;h.Object3D=D;h.ObjectLoader=sf;h.ObjectSpaceNormalMap=
-1;h.OctahedronBufferGeometry=dc;h.OctahedronGeometry=$d;h.OneFactor=201;h.OneMinusDstAlphaFactor=207;h.OneMinusDstColorFactor=209;h.OneMinusSrcAlphaFactor=205;h.OneMinusSrcColorFactor=203;h.OrthographicCamera=hd;h.PCFShadowMap=1;h.PCFSoftShadowMap=2;h.PMREMGenerator=Ug;h.ParametricBufferGeometry=Sc;h.ParametricGeometry=Xd;h.Particle=function(a){console.warn("THREE.Particle has been renamed to THREE.Sprite.");return new Rd(a)};h.ParticleBasicMaterial=function(a){console.warn("THREE.ParticleBasicMaterial has been renamed to THREE.PointsMaterial.");
-return new Wa(a)};h.ParticleSystem=function(a,b){console.warn("THREE.ParticleSystem has been renamed to THREE.Points.");return new Pc(a,b)};h.ParticleSystemMaterial=function(a){console.warn("THREE.ParticleSystemMaterial has been renamed to THREE.PointsMaterial.");return new Wa(a)};h.Path=ab;h.PerspectiveCamera=da;h.Plane=Ua;h.PlaneBufferGeometry=cc;h.PlaneGeometry=Jd;h.PlaneHelper=xe;h.PointCloud=function(a,b){console.warn("THREE.PointCloud has been renamed to THREE.Points.");return new Pc(a,b)};
-h.PointCloudMaterial=function(a){console.warn("THREE.PointCloudMaterial has been renamed to THREE.PointsMaterial.");return new Wa(a)};h.PointLight=jf;h.PointLightHelper=ld;h.Points=Pc;h.PointsMaterial=Wa;h.PolarGridHelper=xf;h.PolyhedronBufferGeometry=Ja;h.PolyhedronGeometry=Yd;h.PositionalAudio=Lg;h.PropertyBinding=Ba;h.PropertyMixer=Ng;h.QuadraticBezierCurve=Za;h.QuadraticBezierCurve3=jb;h.Quaternion=Da;h.QuaternionKeyframeTrack=re;h.QuaternionLinearInterpolant=af;h.REVISION="114dev";h.RGBADepthPacking=
-3201;h.RGBAFormat=1023;h.RGBAIntegerFormat=1033;h.RGBA_ASTC_10x10_Format=37819;h.RGBA_ASTC_10x5_Format=37816;h.RGBA_ASTC_10x6_Format=37817;h.RGBA_ASTC_10x8_Format=37818;h.RGBA_ASTC_12x10_Format=37820;h.RGBA_ASTC_12x12_Format=37821;h.RGBA_ASTC_4x4_Format=37808;h.RGBA_ASTC_5x4_Format=37809;h.RGBA_ASTC_5x5_Format=37810;h.RGBA_ASTC_6x5_Format=37811;h.RGBA_ASTC_6x6_Format=37812;h.RGBA_ASTC_8x5_Format=37813;h.RGBA_ASTC_8x6_Format=37814;h.RGBA_ASTC_8x8_Format=37815;h.RGBA_PVRTC_2BPPV1_Format=35843;h.RGBA_PVRTC_4BPPV1_Format=
-35842;h.RGBA_S3TC_DXT1_Format=33777;h.RGBA_S3TC_DXT3_Format=33778;h.RGBA_S3TC_DXT5_Format=33779;h.RGBDEncoding=3006;h.RGBEEncoding=3002;h.RGBEFormat=1023;h.RGBFormat=1022;h.RGBIntegerFormat=1032;h.RGBM16Encoding=3005;h.RGBM7Encoding=3004;h.RGB_ETC1_Format=36196;h.RGB_PVRTC_2BPPV1_Format=35841;h.RGB_PVRTC_4BPPV1_Format=35840;h.RGB_S3TC_DXT1_Format=33776;h.RGFormat=1030;h.RGIntegerFormat=1031;h.RawShaderMaterial=vb;h.Ray=Wb;h.Raycaster=pi;h.RectAreaLight=nf;h.RedFormat=1028;h.RedIntegerFormat=1029;
-h.ReinhardToneMapping=2;h.RepeatWrapping=1E3;h.ReplaceStencilOp=7681;h.ReverseSubtractEquation=102;h.RingBufferGeometry=$c;h.RingGeometry=le;h.Scene=pb;h.SceneUtils={createMultiMaterialObject:function(){console.error("THREE.SceneUtils has been moved to /examples/js/utils/SceneUtils.js")},detach:function(){console.error("THREE.SceneUtils has been moved to /examples/js/utils/SceneUtils.js")},attach:function(){console.error("THREE.SceneUtils has been moved to /examples/js/utils/SceneUtils.js")}};h.ShaderChunk=
-N;h.ShaderLib=fb;h.ShaderMaterial=qa;h.ShadowMaterial=lc;h.Shape=Lb;h.ShapeBufferGeometry=jc;h.ShapeGeometry=ic;h.ShapePath=Dg;h.ShapeUtils=tb;h.ShortType=1011;h.Skeleton=Ue;h.SkeletonHelper=kd;h.SkinnedMesh=Ud;h.SmoothShading=2;h.Sphere=qb;h.SphereBufferGeometry=hc;h.SphereGeometry=ke;h.Spherical=ri;h.SphericalHarmonics3=uf;h.SphericalReflectionMapping=305;h.Spline=ah;h.SplineCurve=$a;h.SplineCurve3=Gi;h.SpotLight=hf;h.SpotLightHelper=jd;h.SpotLightShadow=gf;h.Sprite=Rd;h.SpriteMaterial=Jb;h.SrcAlphaFactor=
-204;h.SrcAlphaSaturateFactor=210;h.SrcColorFactor=202;h.StaticCopyUsage=35046;h.StaticDrawUsage=35044;h.StaticReadUsage=35045;h.StereoCamera=li;h.StreamCopyUsage=35042;h.StreamDrawUsage=35040;h.StreamReadUsage=35041;h.StringKeyframeTrack=bf;h.SubtractEquation=101;h.SubtractiveBlending=3;h.TOUCH={ROTATE:0,PAN:1,DOLLY_PAN:2,DOLLY_ROTATE:3};h.TangentSpaceNormalMap=0;h.TetrahedronBufferGeometry=Tc;h.TetrahedronGeometry=Zd;h.TextBufferGeometry=Zc;h.TextGeometry=je;h.Texture=Z;h.TextureLoader=ef;h.TorusBufferGeometry=
-Xc;h.TorusGeometry=ee;h.TorusKnotBufferGeometry=Wc;h.TorusKnotGeometry=de;h.Triangle=oa;h.TriangleFanDrawMode=2;h.TriangleStripDrawMode=1;h.TrianglesDrawMode=0;h.TubeBufferGeometry=ec;h.TubeGeometry=ce;h.UVMapping=300;h.Uint16Attribute=function(a,b){console.warn("THREE.Uint16Attribute has been removed. Use new THREE.Uint16BufferAttribute() instead.");return new Xb(a,b)};h.Uint16BufferAttribute=Xb;h.Uint32Attribute=function(a,b){console.warn("THREE.Uint32Attribute has been removed. Use new THREE.Uint32BufferAttribute() instead.");
+a.isMultiMaterial=!0;a.materials=a;a.clone=function(){return a.slice()};return a};h.MultiplyBlending=4;h.MultiplyOperation=0;h.NearestFilter=1003;h.NearestMipMapLinearFilter=1005;h.NearestMipMapNearestFilter=1004;h.NearestMipmapLinearFilter=1005;h.NearestMipmapNearestFilter=1004;h.NeverDepth=0;h.NeverStencilFunc=512;h.NoBlending=0;h.NoColors=0;h.NoToneMapping=0;h.NormalBlending=1;h.NotEqualDepth=7;h.NotEqualStencilFunc=517;h.NumberKeyframeTrack=ed;h.Object3D=D;h.ObjectLoader=sf;h.ObjectSpaceNormalMap=
+1;h.OctahedronBufferGeometry=dc;h.OctahedronGeometry=$d;h.OneFactor=201;h.OneMinusDstAlphaFactor=207;h.OneMinusDstColorFactor=209;h.OneMinusSrcAlphaFactor=205;h.OneMinusSrcColorFactor=203;h.OrthographicCamera=id;h.PCFShadowMap=1;h.PCFSoftShadowMap=2;h.PMREMGenerator=Ug;h.ParametricBufferGeometry=Tc;h.ParametricGeometry=Xd;h.Particle=function(a){console.warn("THREE.Particle has been renamed to THREE.Sprite.");return new Rd(a)};h.ParticleBasicMaterial=function(a){console.warn("THREE.ParticleBasicMaterial has been renamed to THREE.PointsMaterial.");
+return new Wa(a)};h.ParticleSystem=function(a,b){console.warn("THREE.ParticleSystem has been renamed to THREE.Points.");return new Qc(a,b)};h.ParticleSystemMaterial=function(a){console.warn("THREE.ParticleSystemMaterial has been renamed to THREE.PointsMaterial.");return new Wa(a)};h.Path=ab;h.PerspectiveCamera=da;h.Plane=Ua;h.PlaneBufferGeometry=cc;h.PlaneGeometry=Jd;h.PlaneHelper=xe;h.PointCloud=function(a,b){console.warn("THREE.PointCloud has been renamed to THREE.Points.");return new Qc(a,b)};
+h.PointCloudMaterial=function(a){console.warn("THREE.PointCloudMaterial has been renamed to THREE.PointsMaterial.");return new Wa(a)};h.PointLight=jf;h.PointLightHelper=ld;h.Points=Qc;h.PointsMaterial=Wa;h.PolarGridHelper=xf;h.PolyhedronBufferGeometry=Ja;h.PolyhedronGeometry=Yd;h.PositionalAudio=Lg;h.PropertyBinding=Ba;h.PropertyMixer=Ng;h.QuadraticBezierCurve=Za;h.QuadraticBezierCurve3=jb;h.Quaternion=Da;h.QuaternionKeyframeTrack=re;h.QuaternionLinearInterpolant=af;h.REVISION="114dev";h.RGBADepthPacking=
+3201;h.RGBAFormat=1023;h.RGBAIntegerFormat=1033;h.RGBA_ASTC_10x10_Format=37819;h.RGBA_ASTC_10x5_Format=37816;h.RGBA_ASTC_10x6_Format=37817;h.RGBA_ASTC_10x8_Format=37818;h.RGBA_ASTC_12x10_Format=37820;h.RGBA_ASTC_12x12_Format=37821;h.RGBA_ASTC_4x4_Format=37808;h.RGBA_ASTC_5x4_Format=37809;h.RGBA_ASTC_5x5_Format=37810;h.RGBA_ASTC_6x5_Format=37811;h.RGBA_ASTC_6x6_Format=37812;h.RGBA_ASTC_8x5_Format=37813;h.RGBA_ASTC_8x6_Format=37814;h.RGBA_ASTC_8x8_Format=37815;h.RGBA_ETC2_EAC_Format=37496;h.RGBA_PVRTC_2BPPV1_Format=
+35843;h.RGBA_PVRTC_4BPPV1_Format=35842;h.RGBA_S3TC_DXT1_Format=33777;h.RGBA_S3TC_DXT3_Format=33778;h.RGBA_S3TC_DXT5_Format=33779;h.RGBDEncoding=3006;h.RGBEEncoding=3002;h.RGBEFormat=1023;h.RGBFormat=1022;h.RGBIntegerFormat=1032;h.RGBM16Encoding=3005;h.RGBM7Encoding=3004;h.RGB_ETC1_Format=36196;h.RGB_ETC2_Format=37492;h.RGB_PVRTC_2BPPV1_Format=35841;h.RGB_PVRTC_4BPPV1_Format=35840;h.RGB_S3TC_DXT1_Format=33776;h.RGFormat=1030;h.RGIntegerFormat=1031;h.RawShaderMaterial=vb;h.Ray=Wb;h.Raycaster=pi;h.RectAreaLight=
+nf;h.RedFormat=1028;h.RedIntegerFormat=1029;h.ReinhardToneMapping=2;h.RepeatWrapping=1E3;h.ReplaceStencilOp=7681;h.ReverseSubtractEquation=102;h.RingBufferGeometry=ad;h.RingGeometry=le;h.Scene=pb;h.SceneUtils={createMultiMaterialObject:function(){console.error("THREE.SceneUtils has been moved to /examples/js/utils/SceneUtils.js")},detach:function(){console.error("THREE.SceneUtils has been moved to /examples/js/utils/SceneUtils.js")},attach:function(){console.error("THREE.SceneUtils has been moved to /examples/js/utils/SceneUtils.js")}};
+h.ShaderChunk=N;h.ShaderLib=fb;h.ShaderMaterial=qa;h.ShadowMaterial=lc;h.Shape=Lb;h.ShapeBufferGeometry=jc;h.ShapeGeometry=ic;h.ShapePath=Dg;h.ShapeUtils=tb;h.ShortType=1011;h.Skeleton=Ue;h.SkeletonHelper=sc;h.SkinnedMesh=Ud;h.SmoothShading=2;h.Sphere=qb;h.SphereBufferGeometry=hc;h.SphereGeometry=ke;h.Spherical=ri;h.SphericalHarmonics3=uf;h.SphericalReflectionMapping=305;h.Spline=ah;h.SplineCurve=$a;h.SplineCurve3=Gi;h.SpotLight=hf;h.SpotLightHelper=kd;h.SpotLightShadow=gf;h.Sprite=Rd;h.SpriteMaterial=
+Jb;h.SrcAlphaFactor=204;h.SrcAlphaSaturateFactor=210;h.SrcColorFactor=202;h.StaticCopyUsage=35046;h.StaticDrawUsage=35044;h.StaticReadUsage=35045;h.StereoCamera=li;h.StreamCopyUsage=35042;h.StreamDrawUsage=35040;h.StreamReadUsage=35041;h.StringKeyframeTrack=bf;h.SubtractEquation=101;h.SubtractiveBlending=3;h.TOUCH={ROTATE:0,PAN:1,DOLLY_PAN:2,DOLLY_ROTATE:3};h.TangentSpaceNormalMap=0;h.TetrahedronBufferGeometry=Uc;h.TetrahedronGeometry=Zd;h.TextBufferGeometry=$c;h.TextGeometry=je;h.Texture=Z;h.TextureLoader=
+ef;h.TorusBufferGeometry=Yc;h.TorusGeometry=ee;h.TorusKnotBufferGeometry=Xc;h.TorusKnotGeometry=de;h.Triangle=oa;h.TriangleFanDrawMode=2;h.TriangleStripDrawMode=1;h.TrianglesDrawMode=0;h.TubeBufferGeometry=ec;h.TubeGeometry=ce;h.UVMapping=300;h.Uint16Attribute=function(a,b){console.warn("THREE.Uint16Attribute has been removed. Use new THREE.Uint16BufferAttribute() instead.");return new Xb(a,b)};h.Uint16BufferAttribute=Xb;h.Uint32Attribute=function(a,b){console.warn("THREE.Uint32Attribute has been removed. Use new THREE.Uint32BufferAttribute() instead.");
 return new Yb(a,b)};h.Uint32BufferAttribute=Yb;h.Uint8Attribute=function(a,b){console.warn("THREE.Uint8Attribute has been removed. Use new THREE.Uint8BufferAttribute() instead.");return new Dd(a,b)};h.Uint8BufferAttribute=Dd;h.Uint8ClampedAttribute=function(a,b){console.warn("THREE.Uint8ClampedAttribute has been removed. Use new THREE.Uint8ClampedBufferAttribute() instead.");return new Ed(a,b)};h.Uint8ClampedBufferAttribute=Ed;h.Uncharted2ToneMapping=3;h.Uniform=vf;h.UniformsLib=F;h.UniformsUtils=
 return new Yb(a,b)};h.Uint32BufferAttribute=Yb;h.Uint8Attribute=function(a,b){console.warn("THREE.Uint8Attribute has been removed. Use new THREE.Uint8BufferAttribute() instead.");return new Dd(a,b)};h.Uint8BufferAttribute=Dd;h.Uint8ClampedAttribute=function(a,b){console.warn("THREE.Uint8ClampedAttribute has been removed. Use new THREE.Uint8ClampedBufferAttribute() instead.");return new Ed(a,b)};h.Uint8ClampedBufferAttribute=Ed;h.Uncharted2ToneMapping=3;h.Uniform=vf;h.UniformsLib=F;h.UniformsUtils=
-Th;h.UnsignedByteType=1009;h.UnsignedInt248Type=1020;h.UnsignedIntType=1014;h.UnsignedShort4444Type=1017;h.UnsignedShort5551Type=1018;h.UnsignedShort565Type=1019;h.UnsignedShortType=1012;h.VSMShadowMap=3;h.Vector2=w;h.Vector3=n;h.Vector4=ia;h.VectorKeyframeTrack=ed;h.Vertex=function(a,b,c){console.warn("THREE.Vertex has been removed. Use THREE.Vector3 instead.");return new n(a,b,c)};h.VertexColors=2;h.VideoTexture=ug;h.WebGLCubeRenderTarget=Eb;h.WebGLMultisampleRenderTarget=$f;h.WebGLRenderTarget=
-wa;h.WebGLRenderTargetCube=function(a,b,c){console.warn("THREE.WebGLRenderTargetCube( width, height, options ) is now WebGLCubeRenderTarget( size, options ).");return new Eb(a,c)};h.WebGLRenderer=qg;h.WebGLUtils=Yh;h.WireframeGeometry=Rc;h.WireframeHelper=function(a,b){console.warn("THREE.WireframeHelper has been removed. Use THREE.WireframeGeometry instead.");return new ma(new Rc(a.geometry),new ka({color:void 0!==b?b:16777215}))};h.WrapAroundEnding=2402;h.XHRLoader=function(a){console.warn("THREE.XHRLoader has been renamed to THREE.FileLoader.");
+Th;h.UnsignedByteType=1009;h.UnsignedInt248Type=1020;h.UnsignedIntType=1014;h.UnsignedShort4444Type=1017;h.UnsignedShort5551Type=1018;h.UnsignedShort565Type=1019;h.UnsignedShortType=1012;h.VSMShadowMap=3;h.Vector2=w;h.Vector3=n;h.Vector4=ia;h.VectorKeyframeTrack=fd;h.Vertex=function(a,b,c){console.warn("THREE.Vertex has been removed. Use THREE.Vector3 instead.");return new n(a,b,c)};h.VertexColors=2;h.VideoTexture=ug;h.WebGLCubeRenderTarget=Eb;h.WebGLMultisampleRenderTarget=$f;h.WebGLRenderTarget=
+wa;h.WebGLRenderTargetCube=function(a,b,c){console.warn("THREE.WebGLRenderTargetCube( width, height, options ) is now WebGLCubeRenderTarget( size, options ).");return new Eb(a,c)};h.WebGLRenderer=qg;h.WebGLUtils=Yh;h.WireframeGeometry=Sc;h.WireframeHelper=function(a,b){console.warn("THREE.WireframeHelper has been removed. Use THREE.WireframeGeometry instead.");return new ma(new Sc(a.geometry),new ka({color:void 0!==b?b:16777215}))};h.WrapAroundEnding=2402;h.XHRLoader=function(a){console.warn("THREE.XHRLoader has been renamed to THREE.FileLoader.");
 return new Sa(a)};h.ZeroCurvatureEnding=2400;h.ZeroFactor=200;h.ZeroSlopeEnding=2401;h.ZeroStencilOp=0;h.sRGBEncoding=3001;Object.defineProperty(h,"__esModule",{value:!0})});
 return new Sa(a)};h.ZeroCurvatureEnding=2400;h.ZeroFactor=200;h.ZeroSlopeEnding=2401;h.ZeroStencilOp=0;h.sRGBEncoding=3001;Object.defineProperty(h,"__esModule",{value:!0})});

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 30 - 3
build/three.module.js


Một số tệp đã không được hiển thị bởi vì quá nhiều tập tin thay đổi trong này khác